diff --git a/.eslintrc b/.eslintrc
index 1335cb289f26a3f2c4c257343c31a598fd8b03cf..acd3ced696ab31ce84e089fbd5fc82e57319843d 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -10,17 +10,18 @@ find node_modules/eslint-config-airbnb -name '*.js'|xargs sed -i "s/': 2/': 1/"
     "env": {
         "browser": true,
         "node": true,
-        "es6": true
+        "es6": true,
+        "jest": true
     },
     "rules": {
         "max-len": 0,
         /*[1, 160, 4],*/
         "comma-dangle": 0,
         "semi": [
-            0
+            2
         ],
         "curly": [
-            0
+            1
         ],
         "one-var": [
             0
@@ -39,7 +40,14 @@ find node_modules/eslint-config-airbnb -name '*.js'|xargs sed -i "s/': 2/': 1/"
         "no-nested-ternary": [
             0
         ],
+        "prefer-destructuring": 0,
+        "react/no-unused-state": 1,
+        "no-unused-expressions": 1,
+        "react/no-string-refs": 1,
+        "no-restricted-syntax": 0,
         "no-undef": 2,
+        "no-case-declarations": 0,
+        "no-underscore-dangle": 0,
         "camelcase": [
             0
         ],
@@ -50,6 +58,14 @@ find node_modules/eslint-config-airbnb -name '*.js'|xargs sed -i "s/': 2/': 1/"
         "object-curly-spacing": [
             0
         ],
+        "class-methods-use-this": 0,
+        "react/no-array-index-key": 1,
+        "react/no-find-dom-node": 1,
+        "react/jsx-props-no-spreading": 1,
+        "react/static-property-placement": 1,
+        "react/forbid-prop-types": 1,
+        "react/require-default-props": 1,
+        "react/destructuring-assignment": 0,
         "react/jsx-indent": [
             1,
             4
@@ -61,6 +77,11 @@ find node_modules/eslint-config-airbnb -name '*.js'|xargs sed -i "s/': 2/': 1/"
         "react/jsx-closing-bracket-location": [
             0
         ],
+        "jsx-a11y/no-noninteractive-element-interactions": 1,
+        "jsx-a11y/accessible-emoji": 0,
+        "jsx-a11y/click-events-have-key-events": 0,
+        "jsx-a11y/label-has-associated-control": 0,
+        "consistent-return": 1,
         "no-use-before-define": [
             0,
             {
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2aef93819f93ae535030cc3ccdedad68225934fb
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,36 @@
+name: "CodeQL"
+
+on:
+  push:
+    branches: [  master, develop, g-maintenance ]
+  schedule:
+    - cron: '45 7 * * 0'
+
+jobs:
+  analyze:
+    name: Analyze
+    runs-on: ubuntu-18.04
+    permissions:
+      actions: read
+      contents: read
+      security-events: write
+
+    strategy:
+      fail-fast: false
+      matrix:
+        language: [ 'javascript' ]
+
+    steps:
+    - name: Checkout repository
+      uses: actions/checkout@v2
+
+    - name: Initialize CodeQL
+      uses: github/codeql-action/init@v1
+      with:
+        languages: ${{ matrix.language }}
+
+    - name: Autobuild
+      uses: github/codeql-action/autobuild@v1
+
+    - name: Perform CodeQL Analysis
+      uses: github/codeql-action/analyze@v1
diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js
index d6649818b5702c82d48f59ffac85601a999a2b9a..69ff892cdb77c8f4930007605ed7ed3e87aa45d5 100644
--- a/.storybook/webpack.config.js
+++ b/.storybook/webpack.config.js
@@ -1,2 +1,2 @@
-require('babel-register');
-module.exports = require('../webpack/storybook.config.js');
\ No newline at end of file
+require('@babel/register');
+module.exports = require('../webpack/storybook.config.js');
diff --git a/blackboxtest/Dockerfile b/blackboxtest/Dockerfile
deleted file mode 100644
index 64b33d2b5030a6aeec9c15071b2fad534a40f3aa..0000000000000000000000000000000000000000
--- a/blackboxtest/Dockerfile
+++ /dev/null
@@ -1,14 +0,0 @@
-FROM circleci/openjdk:jdk-node-browsers
-
-WORKDIR /home/circleci
-COPY package.json yarn.lock /home/circleci/
-RUN yarn install --non-interactive --frozen-lockfile
-RUN curl -s https://selenium-release.storage.googleapis.com/3.9/selenium-server-standalone-3.9.1.jar > /home/circleci/selenium-server-standalone.jar
-RUN curl -s https://chromedriver.storage.googleapis.com/2.36/chromedriver_linux64.zip | funzip > /home/circleci/chromedriver && chmod +x /home/circleci/chromedriver
-
-COPY . /home/circleci/
-
-
-CMD [ "yarn", "start" ]
-
-
diff --git a/blackboxtest/nightwatch-tests/homepage.js b/blackboxtest/nightwatch-tests/homepage.js
deleted file mode 100644
index 7d11342ad6c3182ba1b9875c60ad463f2b5fb30d..0000000000000000000000000000000000000000
--- a/blackboxtest/nightwatch-tests/homepage.js
+++ /dev/null
@@ -1,21 +0,0 @@
-module.exports = {
-    'Ensure homepage loads without strange errors': browser => {
-        browser
-            .url('http://localhost:8080')
-            .pause(300)
-            //.assert.containsText('h1.articles__h1', 'Trending: All tags')
-            .assert.containsText('a.Header__login-link', 'Login')
-            .getLog('browser', function(result) {
-                this.assert.ok(
-                    reasonableErrorLog(result),
-                    'error log is reasonable'
-                );
-            })
-            .end();
-    },
-};
-
-function reasonableErrorLog(logs) {
-    const logsMinusNetworkErrors = logs.filter(log => log.source !== 'network');
-    return logsMinusNetworkErrors.length === 0;
-}
diff --git a/blackboxtest/nightwatch-tests/ssr.js b/blackboxtest/nightwatch-tests/ssr.js
deleted file mode 100644
index 4096bf8604195c3bd950fe92da0d3de4a8d7651b..0000000000000000000000000000000000000000
--- a/blackboxtest/nightwatch-tests/ssr.js
+++ /dev/null
@@ -1,43 +0,0 @@
-const http = require('http');
-
-module.exports = {
-    'Ensure all of the standard routes return HTTP 200': (browser) => {
-        browser.end(); // Not needed.
-        [
-            '/',
-            '/trending',
-            '/created',
-            '/hot',
-            '/promoted',
-            '/about.html',
-            '/faq.html',
-            '/login.html',
-            '/privacy.html',
-            '/support.html',
-            '/tos.html',
-            '/change_password',
-            '/recover_account_step_1',
-            '/market',
-            '/submit.html',
-        ].forEach(path => testHttpGet('localhost', 8080, path, browser));
-    },
-};
-
-const testHttpGet = (host, port, path, browser) => {
-    http
-    .request({
-        host,
-        port,
-        path,
-        method: 'GET'
-    }, function(res) {
-        browser.assert.equal(res.statusCode, 200, `Response for ${path} is 200`);
-    })
-    .setTimeout(30000, function() {
-        browser.assert.equal(true, false, `request for ${path} took more than 30 seconds`);
-    })
-    .on('error', function (err) {
-        browser.assert.equal(true, false, err);
-    })
-    .end();
-};
diff --git a/blackboxtest/nightwatch.json b/blackboxtest/nightwatch.json
deleted file mode 100644
index 6f08e7f096f2f1517c4e51333a14d663b19e54fd..0000000000000000000000000000000000000000
--- a/blackboxtest/nightwatch.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-  "src_folders" : ["./nightwatch-tests"],
-  "output_folder" : "./nightwatch-reports",
-  "custom_commands_path" : "",
-  "custom_assertions_path" : "",
-  "page_objects_path" : "",
-  "globals_path" : "",
-
-  "selenium" : {
-    "start_process" : true,
-    "server_path" : "./selenium-server-standalone.jar",
-    "log_path" : "",
-    "port" : 4444,
-    "cli_args" : {
-      "webdriver.chrome.driver" : "./chromedriver"
-    }
-  },
-
-  "test_settings" : {
-    "default" : {
-      "launch_url" : "http://localhost",
-      "selenium_port"  : 4444,
-      "selenium_host"  : "localhost",
-      "silent": true,
-      "screenshots" : {
-        "enabled" : false,
-        "path" : ""
-      },
-      "desiredCapabilities": {
-        "browserName": "chrome",
-        "javascriptEnabled": true,
-        "acceptSslCerts": true
-      }
-    },
-
-    "chrome" : {
-      "desiredCapabilities": {
-        "browserName": "chrome",
-        "javascriptEnabled": true,
-        "acceptSslCerts": true
-      }
-    }
-  }
-}
diff --git a/blackboxtest/package.json b/blackboxtest/package.json
deleted file mode 100644
index d3f6526d85a22678cc76140fc4de1640c7deed96..0000000000000000000000000000000000000000
--- a/blackboxtest/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "name": "condenser-blackboxtest",
-  "version": "1.0.0",
-  "main": false,
-  "scripts": {
-    "start": "nightwatch --config nightwatch.json"
-  },
-  "license": "MIT",
-  "dependencies": {
-    "nightwatch": "0.9.19",
-    "phantomjs-prebuilt": "2.1.16"
-  }
-}
diff --git a/blackboxtest/yarn.lock b/blackboxtest/yarn.lock
deleted file mode 100644
index a7bdf3abd7309fa2c8b71ea58576b44d169391e5..0000000000000000000000000000000000000000
--- a/blackboxtest/yarn.lock
+++ /dev/null
@@ -1,1081 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-agent-base@2:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7"
-  dependencies:
-    extend "~3.0.0"
-    semver "~5.0.1"
-
-ajv@^5.1.0:
-  version "5.5.2"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
-  dependencies:
-    co "^4.6.0"
-    fast-deep-equal "^1.0.0"
-    fast-json-stable-stringify "^2.0.0"
-    json-schema-traverse "^0.3.0"
-
-asn1@~0.2.3:
-  version "0.2.4"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
-  dependencies:
-    safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-
-assertion-error@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.0.tgz#c7f85438fdd466bc7ca16ab90c81513797a5d23b"
-
-ast-types@0.x.x:
-  version "0.11.2"
-  resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.2.tgz#cc4e1d15a36b39979a1986fe1e91321cbfae7783"
-
-asynckit@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
-
-aws-sign2@~0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-
-aws4@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
-
-balanced-match@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-
-bcrypt-pbkdf@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
-  dependencies:
-    tweetnacl "^0.14.3"
-
-boom@4.x.x:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
-  dependencies:
-    hoek "4.x.x"
-
-boom@5.x.x:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
-  dependencies:
-    hoek "4.x.x"
-
-brace-expansion@^1.0.0, brace-expansion@^1.1.7:
-  version "1.1.11"
-  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
-  dependencies:
-    balanced-match "^1.0.0"
-    concat-map "0.0.1"
-
-browser-stdout@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
-
-bytes@3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
-
-caseless@~0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-
-chai-nightwatch@~0.1.x:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz#1ca56de768d3c0868fe7fc2f4d32c2fe894e6be9"
-  dependencies:
-    assertion-error "1.0.0"
-    deep-eql "0.1.3"
-
-co@^4.6.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-
-co@~3.0.6:
-  version "3.0.6"
-  resolved "https://registry.yarnpkg.com/co/-/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda"
-
-combined-stream@1.0.6, combined-stream@~1.0.5:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
-  dependencies:
-    delayed-stream "~1.0.0"
-
-commander@2.9.0:
-  version "2.9.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
-  dependencies:
-    graceful-readlink ">= 1.0.0"
-
-concat-map@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-concat-stream@1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
-  dependencies:
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
-
-core-util-is@1.0.2, core-util-is@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-
-cryptiles@3.x.x:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
-  dependencies:
-    boom "5.x.x"
-
-dashdash@^1.12.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
-  dependencies:
-    assert-plus "^1.0.0"
-
-data-uri-to-buffer@1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835"
-
-debug@2, debug@2.6.9:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
-  dependencies:
-    ms "2.0.0"
-
-debug@2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
-  dependencies:
-    ms "0.7.1"
-
-deep-eql@0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
-  dependencies:
-    type-detect "0.1.1"
-
-deep-is@~0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-
-degenerator@~1.0.2:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095"
-  dependencies:
-    ast-types "0.x.x"
-    escodegen "1.x.x"
-    esprima "3.x.x"
-
-delayed-stream@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-
-depd@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
-
-diff@1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf"
-
-ecc-jsbn@~0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
-  dependencies:
-    jsbn "~0.1.0"
-    safer-buffer "^2.1.0"
-
-ejs@2.5.7:
-  version "2.5.7"
-  resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
-
-es6-promise@^4.0.3:
-  version "4.2.4"
-  resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
-
-escape-string-regexp@1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-escodegen@1.x.x:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2"
-  dependencies:
-    esprima "^3.1.3"
-    estraverse "^4.2.0"
-    esutils "^2.0.2"
-    optionator "^0.8.1"
-  optionalDependencies:
-    source-map "~0.6.1"
-
-esprima@3.x.x, esprima@^3.1.3:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
-
-estraverse@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-
-esutils@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-
-extend@3, extend@~3.0.0, extend@~3.0.1:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
-
-extract-zip@^1.6.5:
-  version "1.6.6"
-  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c"
-  dependencies:
-    concat-stream "1.6.0"
-    debug "2.6.9"
-    mkdirp "0.5.0"
-    yauzl "2.4.1"
-
-extsprintf@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
-
-extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-
-fast-deep-equal@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
-
-fast-json-stable-stringify@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
-
-fast-levenshtein@~2.0.4:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-
-fd-slicer@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
-  dependencies:
-    pend "~1.2.0"
-
-file-uri-to-path@1:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
-
-forever-agent@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-
-form-data@~2.3.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
-  dependencies:
-    asynckit "^0.4.0"
-    combined-stream "1.0.6"
-    mime-types "^2.1.12"
-
-fs-extra@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
-  dependencies:
-    graceful-fs "^4.1.2"
-    jsonfile "^2.1.0"
-    klaw "^1.0.0"
-
-fs.realpath@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-ftp@~0.3.10:
-  version "0.3.10"
-  resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
-  dependencies:
-    readable-stream "1.1.x"
-    xregexp "2.0.0"
-
-get-uri@2:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.1.tgz#dbdcacacd8c608a38316869368117697a1631c59"
-  dependencies:
-    data-uri-to-buffer "1"
-    debug "2"
-    extend "3"
-    file-uri-to-path "1"
-    ftp "~0.3.10"
-    readable-stream "2"
-
-getpass@^0.1.1:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
-  dependencies:
-    assert-plus "^1.0.0"
-
-glob@7.0.5:
-  version "7.0.5"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95"
-  dependencies:
-    fs.realpath "^1.0.0"
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "^3.0.2"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
-graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
-  version "4.1.11"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-
-"graceful-readlink@>= 1.0.0":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
-
-growl@1.9.2:
-  version "1.9.2"
-  resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
-
-har-schema@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-
-har-validator@~5.0.3:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
-  dependencies:
-    ajv "^5.1.0"
-    har-schema "^2.0.0"
-
-has-flag@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-
-hasha@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
-  dependencies:
-    is-stream "^1.0.1"
-    pinkie-promise "^2.0.0"
-
-hawk@~6.0.2:
-  version "6.0.2"
-  resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
-  dependencies:
-    boom "4.x.x"
-    cryptiles "3.x.x"
-    hoek "4.x.x"
-    sntp "2.x.x"
-
-hoek@4.x.x:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
-
-http-errors@1.6.2:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
-  dependencies:
-    depd "1.1.1"
-    inherits "2.0.3"
-    setprototypeof "1.0.3"
-    statuses ">= 1.3.1 < 2"
-
-http-proxy-agent@1:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a"
-  dependencies:
-    agent-base "2"
-    debug "2"
-    extend "3"
-
-http-signature@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
-  dependencies:
-    assert-plus "^1.0.0"
-    jsprim "^1.2.2"
-    sshpk "^1.7.0"
-
-https-proxy-agent@1:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6"
-  dependencies:
-    agent-base "2"
-    debug "2"
-    extend "3"
-
-iconv-lite@0.4.19:
-  version "0.4.19"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
-
-inflight@^1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
-  dependencies:
-    once "^1.3.0"
-    wrappy "1"
-
-inherits@2, inherits@2.0.3, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-ip@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590"
-
-ip@^1.1.4:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
-
-is-stream@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-
-is-typedarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-
-isarray@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
-
-isarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
-isexe@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-
-isstream@~0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-
-jsbn@~0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-
-json-schema-traverse@^0.3.0:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
-
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-
-json-stringify-safe@~5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-
-json3@3.3.2:
-  version "3.3.2"
-  resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
-
-jsonfile@^2.1.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
-  optionalDependencies:
-    graceful-fs "^4.1.6"
-
-jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  dependencies:
-    assert-plus "1.0.0"
-    extsprintf "1.3.0"
-    json-schema "0.2.3"
-    verror "1.10.0"
-
-kew@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
-
-klaw@^1.0.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
-  optionalDependencies:
-    graceful-fs "^4.1.9"
-
-levn@~0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
-  dependencies:
-    prelude-ls "~1.1.2"
-    type-check "~0.3.2"
-
-lodash._arraycopy@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1"
-
-lodash._arrayeach@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e"
-
-lodash._baseassign@^3.0.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
-  dependencies:
-    lodash._basecopy "^3.0.0"
-    lodash.keys "^3.0.0"
-
-lodash._baseclone@^3.0.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7"
-  dependencies:
-    lodash._arraycopy "^3.0.0"
-    lodash._arrayeach "^3.0.0"
-    lodash._baseassign "^3.0.0"
-    lodash._basefor "^3.0.0"
-    lodash.isarray "^3.0.0"
-    lodash.keys "^3.0.0"
-
-lodash._baseclone@^4.0.0:
-  version "4.5.7"
-  resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434"
-
-lodash._basecopy@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
-
-lodash._basecreate@^3.0.0:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
-
-lodash._basefor@^3.0.0:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2"
-
-lodash._bindcallback@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
-
-lodash._getnative@^3.0.0:
-  version "3.9.1"
-  resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-
-lodash._isiterateecall@^3.0.0:
-  version "3.0.9"
-  resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
-
-lodash._stack@^4.0.0:
-  version "4.1.3"
-  resolved "https://registry.yarnpkg.com/lodash._stack/-/lodash._stack-4.1.3.tgz#751aa76c1b964b047e76d14fc72a093fcb5e2dd0"
-
-lodash.clone@3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-3.0.3.tgz#84688c73d32b5a90ca25616963f189252a997043"
-  dependencies:
-    lodash._baseclone "^3.0.0"
-    lodash._bindcallback "^3.0.0"
-    lodash._isiterateecall "^3.0.0"
-
-lodash.create@3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
-  dependencies:
-    lodash._baseassign "^3.0.0"
-    lodash._basecreate "^3.0.0"
-    lodash._isiterateecall "^3.0.0"
-
-lodash.defaultsdeep@4.3.2:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.3.2.tgz#6c1a586e6c5647b0e64e2d798141b8836158be8a"
-  dependencies:
-    lodash._baseclone "^4.0.0"
-    lodash._stack "^4.0.0"
-    lodash.isplainobject "^4.0.0"
-    lodash.keysin "^4.0.0"
-    lodash.mergewith "^4.0.0"
-    lodash.rest "^4.0.0"
-
-lodash.isarguments@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
-
-lodash.isarray@^3.0.0:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-
-lodash.isplainobject@^4.0.0:
-  version "4.0.6"
-  resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
-
-lodash.keys@^3.0.0:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
-  dependencies:
-    lodash._getnative "^3.0.0"
-    lodash.isarguments "^3.0.0"
-    lodash.isarray "^3.0.0"
-
-lodash.keysin@^4.0.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-4.2.0.tgz#8cc3fb35c2d94acc443a1863e02fa40799ea6f28"
-
-lodash.mergewith@^4.0.0:
-  version "4.6.1"
-  resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927"
-
-lodash.rest@^4.0.0:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa"
-
-lru-cache@~2.6.5:
-  version "2.6.5"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5"
-
-mime-db@~1.33.0:
-  version "1.33.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
-
-mime-types@^2.1.12, mime-types@~2.1.17:
-  version "2.1.18"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
-  dependencies:
-    mime-db "~1.33.0"
-
-minimatch@3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
-  dependencies:
-    brace-expansion "^1.0.0"
-
-minimatch@^3.0.2:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
-  dependencies:
-    brace-expansion "^1.1.7"
-
-minimist@0.0.8:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-minimist@~0.0.1:
-  version "0.0.10"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-
-mkdirp@0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
-  dependencies:
-    minimist "0.0.8"
-
-mkdirp@0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
-  dependencies:
-    minimist "0.0.8"
-
-mkpath@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d"
-
-mocha-nightwatch@3.2.2:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/mocha-nightwatch/-/mocha-nightwatch-3.2.2.tgz#91bcb9b3bde057dd7677c78125e491e58d66647c"
-  dependencies:
-    browser-stdout "1.3.0"
-    commander "2.9.0"
-    debug "2.2.0"
-    diff "1.4.0"
-    escape-string-regexp "1.0.5"
-    glob "7.0.5"
-    growl "1.9.2"
-    json3 "3.3.2"
-    lodash.create "3.1.1"
-    mkdirp "0.5.1"
-    supports-color "3.1.2"
-
-ms@0.7.1:
-  version "0.7.1"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-
-ms@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-
-netmask@~1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
-
-nightwatch@0.9.19:
-  version "0.9.19"
-  resolved "https://registry.yarnpkg.com/nightwatch/-/nightwatch-0.9.19.tgz#4bd9757273d30b845f04847a98b71be9bb7c4b3b"
-  dependencies:
-    chai-nightwatch "~0.1.x"
-    ejs "2.5.7"
-    lodash.clone "3.0.3"
-    lodash.defaultsdeep "4.3.2"
-    minimatch "3.0.3"
-    mkpath "1.0.0"
-    mocha-nightwatch "3.2.2"
-    optimist "0.6.1"
-    proxy-agent "2.0.0"
-    q "1.4.1"
-
-oauth-sign@~0.8.2:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
-
-once@^1.3.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
-  dependencies:
-    wrappy "1"
-
-optimist@0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
-  dependencies:
-    minimist "~0.0.1"
-    wordwrap "~0.0.2"
-
-optionator@^0.8.1:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
-  dependencies:
-    deep-is "~0.1.3"
-    fast-levenshtein "~2.0.4"
-    levn "~0.3.0"
-    prelude-ls "~1.1.2"
-    type-check "~0.3.2"
-    wordwrap "~1.0.0"
-
-pac-proxy-agent@1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d"
-  dependencies:
-    agent-base "2"
-    debug "2"
-    extend "3"
-    get-uri "2"
-    http-proxy-agent "1"
-    https-proxy-agent "1"
-    pac-resolver "~2.0.0"
-    raw-body "2"
-    socks-proxy-agent "2"
-
-pac-resolver@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd"
-  dependencies:
-    co "~3.0.6"
-    degenerator "~1.0.2"
-    ip "1.0.1"
-    netmask "~1.0.4"
-    thunkify "~2.1.1"
-
-path-is-absolute@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-pend@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
-
-performance-now@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-
-phantomjs-prebuilt@2.1.16:
-  version "2.1.16"
-  resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef"
-  dependencies:
-    es6-promise "^4.0.3"
-    extract-zip "^1.6.5"
-    fs-extra "^1.0.0"
-    hasha "^2.2.0"
-    kew "^0.7.0"
-    progress "^1.1.8"
-    request "^2.81.0"
-    request-progress "^2.0.1"
-    which "^1.2.10"
-
-pinkie-promise@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
-  dependencies:
-    pinkie "^2.0.0"
-
-pinkie@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-
-prelude-ls@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-
-process-nextick-args@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
-
-progress@^1.1.8:
-  version "1.1.8"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
-
-proxy-agent@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499"
-  dependencies:
-    agent-base "2"
-    debug "2"
-    extend "3"
-    http-proxy-agent "1"
-    https-proxy-agent "1"
-    lru-cache "~2.6.5"
-    pac-proxy-agent "1"
-    socks-proxy-agent "2"
-
-punycode@^1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-
-q@1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
-
-qs@~6.5.1:
-  version "6.5.1"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-
-raw-body@2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
-  dependencies:
-    bytes "3.0.0"
-    http-errors "1.6.2"
-    iconv-lite "0.4.19"
-    unpipe "1.0.0"
-
-readable-stream@1.1.x:
-  version "1.1.14"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.1"
-    isarray "0.0.1"
-    string_decoder "~0.10.x"
-
-readable-stream@2, readable-stream@^2.2.2:
-  version "2.3.5"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.3"
-    isarray "~1.0.0"
-    process-nextick-args "~2.0.0"
-    safe-buffer "~5.1.1"
-    string_decoder "~1.0.3"
-    util-deprecate "~1.0.1"
-
-request-progress@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08"
-  dependencies:
-    throttleit "^1.0.0"
-
-request@^2.81.0:
-  version "2.83.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.6.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.5"
-    extend "~3.0.1"
-    forever-agent "~0.6.1"
-    form-data "~2.3.1"
-    har-validator "~5.0.3"
-    hawk "~6.0.2"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.17"
-    oauth-sign "~0.8.2"
-    performance-now "^2.1.0"
-    qs "~6.5.1"
-    safe-buffer "^5.1.1"
-    stringstream "~0.0.5"
-    tough-cookie "~2.3.3"
-    tunnel-agent "^0.6.0"
-    uuid "^3.1.0"
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
-
-safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
-
-semver@~5.0.1:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a"
-
-setprototypeof@1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
-
-smart-buffer@^1.0.13:
-  version "1.1.15"
-  resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16"
-
-sntp@2.x.x:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
-  dependencies:
-    hoek "4.x.x"
-
-socks-proxy-agent@2:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3"
-  dependencies:
-    agent-base "2"
-    extend "3"
-    socks "~1.1.5"
-
-socks@~1.1.5:
-  version "1.1.10"
-  resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a"
-  dependencies:
-    ip "^1.1.4"
-    smart-buffer "^1.0.13"
-
-source-map@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
-
-sshpk@^1.7.0:
-  version "1.16.1"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
-  dependencies:
-    asn1 "~0.2.3"
-    assert-plus "^1.0.0"
-    bcrypt-pbkdf "^1.0.0"
-    dashdash "^1.12.0"
-    ecc-jsbn "~0.1.1"
-    getpass "^0.1.1"
-    jsbn "~0.1.0"
-    safer-buffer "^2.0.2"
-    tweetnacl "~0.14.0"
-
-"statuses@>= 1.3.1 < 2":
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
-
-string_decoder@~0.10.x:
-  version "0.10.31"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-
-string_decoder@~1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
-  dependencies:
-    safe-buffer "~5.1.0"
-
-stringstream@~0.0.5:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72"
-
-supports-color@3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
-  dependencies:
-    has-flag "^1.0.0"
-
-throttleit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
-
-thunkify@~2.1.1:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
-
-tough-cookie@~2.3.3:
-  version "2.3.4"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
-  dependencies:
-    punycode "^1.4.1"
-
-tunnel-agent@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
-  dependencies:
-    safe-buffer "^5.0.1"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
-  version "0.14.5"
-  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-
-type-check@~0.3.2:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
-  dependencies:
-    prelude-ls "~1.1.2"
-
-type-detect@0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
-
-typedarray@^0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-
-unpipe@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
-
-util-deprecate@~1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-
-uuid@^3.1.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
-
-verror@1.10.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
-  dependencies:
-    assert-plus "^1.0.0"
-    core-util-is "1.0.2"
-    extsprintf "^1.2.0"
-
-which@^1.2.10:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
-  dependencies:
-    isexe "^2.0.0"
-
-wordwrap@~0.0.2:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
-wordwrap@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
-wrappy@1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-
-xregexp@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
-
-yauzl@2.4.1:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
-  dependencies:
-    fd-slicer "~1.0.1"
diff --git a/package.json b/package.json
index bd90cdb07241a7c9fe4b2dd4429ab8ba44621cea..f67485fce1908b2076e5e7db0ef43d53e02088c9 100644
--- a/package.json
+++ b/package.json
@@ -11,13 +11,14 @@
     "build": "NODE_ENV=production webpack --config ./webpack/prod.config.js && rm -rf ./lib && babel src --out-dir lib -D",
     "test": "jest",
     "eslint": "LIST=`git diff-index --name-only HEAD | grep .*\\.js | grep -v json`; if [ \"$LIST\" ]; then eslint $LIST; fi",
+    "eslint:fix": "LIST=`git diff-index --name-only HEAD | grep .*\\.js | grep -v json`; if [ \"$LIST\" ]; then eslint --fix $LIST; fi",
     "ci:test": "jest --coverage",
     "ci:eslint": "eslint src/",
-    "fmt": "prettier --config .prettierrc --write 'src/**/*.js*'",
+    "fmt": "prettier --config .prettierrc --write 'src/**/*.+(js|jsx)'",
     "precommit": "lint-staged",
-    "production": "NODE_ENV=production node lib/server/index.js",
-    "start": "NODE_ENV=development babel-node ./webpack/dev-server.js",
-    "debug": "NODE_ENV=development webpack --config ./webpack/debug.config.js && rm -rf ./lib && babel src --source-maps --out-dir lib -D && node --inspect-brk lib/server/index.js",
+    "production": "NODE_OPTIONS=\"--trace-warnings\" NODE_ENV=production node lib/server/index.js",
+    "start": "NODE_OPTIONS=\"--trace-warnings\" NODE_ENV=development babel-node ./webpack/dev-server.js",
+    "debug": "NODE_OPTIONS=\"--trace-warnings\" NODE_ENV=development webpack --config ./webpack/debug.config.js && rm -rf ./lib && babel src --source-maps --out-dir lib -D && node --inspect-brk lib/server/index.js",
     "checktranslations": "node scripts/check_translations.js",
     "storybook": "start-storybook -p 9001 -c .storybook",
     "storybook-build": "build-storybook -c .storybook -o docs",
@@ -26,28 +27,6 @@
   "author": "HiveBlog",
   "license": "MIT",
   "dependencies": {
-    "@babel/cli": "^7.0.0",
-    "@babel/core": "^7.0.0",
-    "@babel/plugin-proposal-class-properties": "^7.12.1",
-    "@babel/plugin-proposal-decorators": "^7.0.0",
-    "@babel/plugin-proposal-do-expressions": "^7.0.0",
-    "@babel/plugin-proposal-export-default-from": "^7.0.0",
-    "@babel/plugin-proposal-export-namespace-from": "^7.0.0",
-    "@babel/plugin-proposal-function-bind": "^7.0.0",
-    "@babel/plugin-proposal-function-sent": "^7.0.0",
-    "@babel/plugin-proposal-json-strings": "^7.0.0",
-    "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0",
-    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
-    "@babel/plugin-proposal-numeric-separator": "^7.0.0",
-    "@babel/plugin-proposal-optional-chaining": "^7.0.0",
-    "@babel/plugin-proposal-pipeline-operator": "^7.0.0",
-    "@babel/plugin-proposal-throw-expressions": "^7.0.0",
-    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
-    "@babel/plugin-syntax-import-meta": "^7.0.0",
-    "@babel/plugin-transform-runtime": "^7.0.0",
-    "@babel/preset-env": "^7.0.0",
-    "@babel/preset-react": "^7.0.0",
-    "@babel/register": "^7.12.1",
     "@babel/runtime": "^7.12.5",
     "@hiveio/hive-js": "^2.0.4",
     "@hiveio/hivescript": "^1.2.0",
@@ -55,10 +34,6 @@
     "assert": "1.4.1",
     "autoprefixer": "^9.6.1",
     "axios": "^0.18.1",
-    "babel-eslint": "10.1.0",
-    "babel-loader": "8.1.0",
-    "babel-plugin-react-intl": "2.3.1",
-    "babel-plugin-transform-inline-environment-variables": "0.2.0",
     "big.js": "^5.2.2",
     "bigi": "1.4.2",
     "blocked": "1.2.1",
@@ -69,15 +44,20 @@
     "bytes": "2.5.0",
     "classnames": "2.2.5",
     "cluster": "0.7.7",
+    "co-body": "^5.1.1",
     "config": "1.26.2",
     "core-js": "^3.6.5",
     "counterpart": "0.17.9",
     "cpu-stat": "2.0.1",
+    "date-names": "^0.1.13",
     "diff-match-patch": "1.0.4",
     "disk-stat": "1.0.4",
+    "extract-text-webpack-plugin": "^v4.0.0-beta.0",
     "foundation-sites": "git+https://gitlab.syncad.com/hive/foundation-sites.git#544fb8a26efcf45e9ba9ccaa77b04d0ae35b9722",
+    "hive-uri": "^0.2.3",
     "hivesigner": "3.2.7",
     "humanize-number": "0.0.2",
+    "immutable": "^3.8.1",
     "intl": "1.2.5",
     "iso": "5.2.0",
     "koa": "1.4.1",
@@ -95,46 +75,55 @@
     "koa-proxy": "0.5.0",
     "koa-router": "5.4.2",
     "koa-static-cache": "4.1.1",
+    "lodash": "^4.17.21",
     "lodash.debounce": "4.0.8",
     "mem-stat": "1.0.5",
     "mini-css-extract-plugin": "^1.2.1",
-    "minimist": "1.2.0",
+    "minimist": "~1.2.3",
     "mixpanel": "0.5.0",
     "node-cache": "4.2.0",
+    "node-fetch": "^2.6.1",
     "os": "0.1.1",
+    "pluralizers": "^0.1.7",
     "postcss": "^8.1.6",
     "postcss-loader": "^4.0.4",
+    "prop-types": "^15.7.2",
     "qrious": "^4.0.2",
-    "react": "15.6.2",
+    "react": "16.8",
     "react-addons-pure-render-mixin": "15.4.2",
     "react-autocomplete": "1.8.1",
     "react-copy-to-clipboard": "4.3.1",
-    "react-dom": "15.6.2",
+    "react-dom": "16.8",
     "react-dropzone": "3.13.4",
     "react-headroom": "2.2.7",
     "react-intl": "2.4.0",
-    "react-notification": "5.0.7",
-    "react-overlays": "0.7.2",
-    "react-portal": "3.0.0",
+    "react-mde": "^11.0.6",
+    "react-notification": "6.8.5",
+    "react-overlays": "0.7.3",
+    "react-portal": "4.2.1",
     "react-rangeslider": "2.2.0",
     "react-redux": "5.0.6",
     "react-router": "3.2.0",
     "react-router-redux": "4.0.8",
     "react-router-scroll": "0.4.4",
+    "react-rte": "^0.16.3",
     "react-sparklines": "1.7.0",
     "react-tabs": "^3.1.1",
     "redux": "3.7.2",
     "redux-form": "5.3.4",
     "redux-saga": "0.16.0",
-    "remarkable": "1.7.1",
+    "regenerator-runtime": "^0.13.9",
+    "remarkable": "~1.7.2",
     "remove-markdown": "^0.3.0",
-    "sanitize-html": "1.14.1",
+    "sanitize-html": "~2.5.0",
     "sass": "^1.29.0",
+    "scroll-behavior": "^0.9.5",
     "secure-random": "1.1.1",
     "selection-position": "1.0.0",
-    "slate": "0.16.9",
-    "slate-drop-or-paste-images": "0.4.1",
-    "slate-insert-block-on-enter": "0.0.1",
+    "slate": "~0.43",
+    "slate-drop-or-paste-images": "0.9.1",
+    "slate-insert-block-on-enter": "0.4.0",
+    "slate-react": "~0.20.1",
     "slate-trailing-block": "0.2.4",
     "speakingurl": "9.0.0",
     "squarify": "1.1.0",
@@ -143,9 +132,9 @@
     "striptags": "^3.1.1",
     "universal-cookie": "^4.0.3",
     "webpack-cli": "^4.2.0",
-    "webpack-isomorphic-tools": "3.0.5",
+    "webpack-isomorphic-tools": "^4.0.0",
     "whatwg-fetch": "0.11.1",
-    "xmldom": "0.1.27"
+    "xmldom": "~0.5.0"
   },
   "devDependencies": {
     "@babel/cli": "^7.0.0",
@@ -170,20 +159,19 @@
     "@babel/plugin-transform-runtime": "^7.0.0",
     "@babel/preset-env": "^7.0.0",
     "@babel/preset-react": "^7.0.0",
-    "@storybook/addon-knobs": "3.2.19",
-    "@storybook/react": "3.2.19",
-    "assert": "1.4.1",
+    "@babel/register": "^7.12.1",
+    "@storybook/addon-knobs": "^6.3.1",
+    "@storybook/react": "^6.3.8",
     "babel-core": "^7.0.0-bridge.0",
     "babel-eslint": "10.1.0",
     "babel-jest": "^23.4.2",
     "babel-loader": "8.1.0",
     "babel-plugin-react-intl": "2.3.1",
     "babel-plugin-transform-inline-environment-variables": "0.2.0",
-    "co-body": "5.1.1",
     "css-loader": "5.0.1",
     "dev-ip": "1.0.1",
     "enzyme": "3.3.0",
-    "enzyme-adapter-react-15": "1.0.5",
+    "enzyme-adapter-react-16": "1.15.6",
     "eslint": "6.8.0",
     "eslint-config-airbnb": "18.1.0",
     "eslint-plugin-babel": "5.3.0",
@@ -192,7 +180,7 @@
     "eslint-plugin-jsx-a11y": "6.2.3",
     "eslint-plugin-react": "7.19.0",
     "file-loader": "6.2.0",
-    "git-rev-sync": "1.9.1",
+    "git-rev-sync": "^3.0.1",
     "husky": "0.14.3",
     "imports-loader": "1.2.0",
     "jest": "23",
@@ -200,15 +188,14 @@
     "json-loader": "0.5.7",
     "koa-webpack-dev-middleware": "1.4.6",
     "koa-webpack-hot-middleware": "1.0.3",
-    "lint-staged": "6.0.0",
+    "lint-staged": "10.5.3",
     "mock-local-storage": "1.0.5",
     "node-sass": "4.13.1",
     "node-watch": "0.5.5",
     "picturefill": "3.0.2",
-    "prettier": "1.8.2",
+    "prettier": "2.2.1",
     "raw-loader": "4.0.2",
-    "react-addons-perf": "15.4.2",
-    "react-test-renderer": "15.6.2",
+    "react-test-renderer": "16.8",
     "redux-devtools-extension": "2.13.5",
     "redux-mock-store": "1.5.1",
     "sass-loader": "10.0.5",
@@ -219,15 +206,18 @@
     "url-loader": "4.1.1",
     "webpack": "4.x.x",
     "webpack-bundle-analyzer": "^4.1.0",
-    "webpack-dev-middleware": "1.12.0",
-    "webpack-livereload-plugin": "1"
+    "webpack-dev-middleware": "^4.0.4",
+    "webpack-livereload-plugin": "^3.0.2"
   },
   "engines": {
     "node": ">=8.7.0",
     "npm": ">=5.4.2"
   },
   "lint-staged": {
-    "src/**/*.js*": [
+    "src/**/*.+(js)": [
+      "eslint"
+    ],
+    "src/**/*.+(json|css|md)": [
       "prettier --write",
       "git add"
     ]
diff --git a/scripts/check_translations.js b/scripts/check_translations.js
index 15b7a47650bc87f96d83d96c0d1b2d8588854584..f41eff6d20f320b5728935fb7b34d0c026743689 100644
--- a/scripts/check_translations.js
+++ b/scripts/check_translations.js
@@ -44,18 +44,20 @@ function loadTranslationFiles(path) {
 }
 
 function processFile(used_keys, path) {
-    const lines = fs.readFileSync(path, 'utf8').split(/\r?\n/);
-    for (const l of lines) {
-        const tts = l.match(/(tt\(["'.\-_\w]+)/g) || l.match(/(FormattedHTMLMessage.+id=["'.\-_\w]+)/g);
-        if (tts) {
-            // if(tts.length > 1) console.log('-- tt -->', path, l, tts.length, JSON.stringify(tts, null, 4));
-            for (const t of tts) {
-                if (t !== 'tt(id') {
-                    const m = t.match(/tt\(['"]([.\-_\w]+)/) || t.match(/id=['"]([.\-_\w]+)['"]/);
-                    if (!m) throw new Error('Wrong format: "' + t + '" in "' + l + '"');
-                    const key = m[1];
-                    if (used_keys[key]) used_keys[key] += 1;
-                    else used_keys[key] = 1;
+    if (path.indexOf('min.js') === -1) {
+        const lines = fs.readFileSync(path, 'utf8').split(/\r?\n/);
+        for (const l of lines) {
+            const tts = l.match(/(tt\(["'.\-_\w]+)/g) || l.match(/(FormattedHTMLMessage.+id=["'.\-_\w]+)/g);
+            if (tts) {
+                // if(tts.length > 1) console.log('-- tt -->', path, l, tts.length, JSON.stringify(tts, null, 4));
+                for (const t of tts) {
+                    if (t !== 'tt(id') {
+                        const m = t.match(/tt\(['"]([.\-_\w]+)/) || t.match(/id=['"]([.\-_\w]+)['"]/);
+                        if (!m) throw new Error('Wrong format: "' + t + '" in "' + l + '"');
+                        const key = m[1];
+                        if (used_keys[key]) used_keys[key] += 1;
+                        else used_keys[key] = 1;
+                    }
                 }
             }
         }
diff --git a/src/app/Main.js b/src/app/Main.js
index d0f921c9d98fddd2a4b76db391ca22855fb7b276..9606fec004e980872ab6c4865f95a40cb7c006a6 100644
--- a/src/app/Main.js
+++ b/src/app/Main.js
@@ -3,17 +3,16 @@ import 'core-js/stable';
 import 'regenerator-runtime/runtime';
 import 'whatwg-fetch';
 import store from 'store';
-import { VIEW_MODE_WHISTLE, PARAM_VIEW_MODE } from 'shared/constants';
 import './assets/stylesheets/app.scss';
 import plugins from 'app/utils/JsPlugins';
 import Iso from 'iso';
 import { clientRender } from 'shared/UniversalRender';
-import ConsoleExports from './utils/ConsoleExports';
 import { serverApiRecordEvent } from 'app/utils/ServerApiClient';
 import * as steem from '@hiveio/hive-js';
 import { determineViewMode } from 'app/utils/Links';
 import frontendLogger from 'app/utils/FrontendLogger';
 import Cookies from 'universal-cookie';
+import ConsoleExports from './utils/ConsoleExports';
 
 window.addEventListener('error', frontendLogger);
 
@@ -38,11 +37,12 @@ function runApp(initial_state) {
         enabled: false,
     };
     const buff = konami.code.split('');
-    const cmd = command => {
+    const cmd = (command) => {
         console.log('got command:' + command);
         switch (command) {
             case CMD_LOG_O:
                 konami.enabled = false;
+                return 'done';
             case CMD_LOG_TOGGLE:
             case CMD_LOG_T:
                 konami.enabled = !konami.enabled;
@@ -61,17 +61,17 @@ function runApp(initial_state) {
     const enableKonami = () => {
         if (!window.s) {
             console.log('The cupie doll is yours.');
-            window.s = command => {
+            window.s = (command) => {
                 return cmd.call(this, command);
             };
         }
     };
 
-    window.onunhandledrejection = function(evt) {
+    window.onunhandledrejection = function (evt) {
         console.error('unhandled rejection', evt ? evt.toString() : '<null>');
     };
 
-    window.document.body.onkeypress = e => {
+    window.document.body.onkeypress = (e) => {
         buff.shift();
         buff.push(e.key);
         if (buff.join('') === konami.code) {
@@ -86,13 +86,10 @@ function runApp(initial_state) {
     }
 
     const { config } = initial_state.offchain;
-    let cookies = new Cookies();
+    const cookies = new Cookies();
     const alternativeApiEndpoints = config.alternative_api_endpoints;
     const cookie_endpoint = cookies.get('user_preferred_api_endpoint');
-    const currentApiEndpoint =
-        cookie_endpoint === undefined
-            ? config.steemd_connection_client
-            : cookie_endpoint;
+    const currentApiEndpoint = cookie_endpoint === undefined ? config.steemd_connection_client : cookie_endpoint;
 
     steem.api.setOptions({
         url: currentApiEndpoint,
@@ -104,7 +101,6 @@ function runApp(initial_state) {
     });
     steem.config.set('address_prefix', config.address_prefix);
     steem.config.set('rebranded_api', true);
-    steem.broadcast.updateOperations();
 
     window.$STM_Config = config;
     plugins(config);
@@ -122,18 +118,12 @@ function runApp(initial_state) {
     if (locale) initial_state.user.locale = locale;
     initial_state.user.maybeLoggedIn = !!store.get('autopost2');
     if (initial_state.user.maybeLoggedIn) {
-        const username = new Buffer(store.get('autopost2'), 'hex')
-            .toString()
-            .split('\t')[0];
+        const username = Buffer.from(store.get('autopost2'), 'hex').toString().split('\t')[0];
         initial_state.user.current = {
             username,
         };
     }
 
-    const location = `${window.location.pathname}${window.location.search}${
-        window.location.hash
-    }`;
-
     try {
         clientRender(initial_state);
     } catch (error) {
@@ -145,7 +135,8 @@ function runApp(initial_state) {
 if (!window.Intl) {
     require.ensure(
         ['intl/dist/Intl'],
-        require => {
+        (require) => {
+            // eslint-disable-next-line no-multi-assign
             window.IntlPolyfill = window.Intl = require('intl/dist/Intl');
             require('intl/locale-data/jsonp/en-US.js');
             require('intl/locale-data/jsonp/es.js');
diff --git a/src/app/ResolveRoute.js b/src/app/ResolveRoute.js
index 82d2ddc2826fef6542012905dd513536f46352b6..b20205cdfdfefb981a73be4045fdcdf9e8d4f56f 100644
--- a/src/app/ResolveRoute.js
+++ b/src/app/ResolveRoute.js
@@ -1,23 +1,17 @@
 import GDPRUserList from './utils/GDPRUserList';
 
-const reg = pattern => {
+const reg = (pattern) => {
     pattern = pattern
-        .replace('<account>', '(@[\\w\\.\\d-]+)')
+        .replace('<account>', '(@[\\w.\\d-]+)')
         .replace(
             '<account-tab>',
             '(blog|posts|comments|replies|payout|feed|followed|followers|settings|notifications|communities)'
         )
-        .replace(
-            '<sort>',
-            '(hot|trending|promoted|payout|payout_comments|muted|created)'
-        )
+        .replace('<sort>', '(hot|trending|promoted|payout|payout_comments|muted|created)')
         .replace('<tag>', '([\\w\\W\\d-]{1,32})')
         .replace('<permlink>', '([\\w\\d-]+)')
         .replace('/', '\\/')
-        .replace(
-            '<list_type>',
-            '(blacklisted|muted|followed_blacklists|followed_muted_lists)'
-        );
+        .replace('<list_type>', '(blacklisted|muted|followed_blacklists|followed_muted_lists)');
     return new RegExp('^\\/' + pattern + '$');
 };
 
@@ -60,31 +54,27 @@ export default function resolveRoute(path) {
 
     // /@user/feed
     match = path.match(routeRegex.UserFeed);
-    if (match)
-        return GDPRUserList.includes(match[1].substring(1))
+    if (match) { return GDPRUserList.includes(match[1].substring(1))
             ? { page: 'NotFound' }
-            : { page: 'PostsIndex', params: ['home', match[1]] };
+            : { page: 'PostsIndex', params: ['home', match[1]] }; }
 
     // /@user, /@user/blog, /@user/settings
     match = path.match(routeRegex.UserProfile);
-    if (match)
-        return GDPRUserList.includes(match[1].substring(1))
+    if (match) { return GDPRUserList.includes(match[1].substring(1))
             ? { page: 'NotFound' }
-            : { page: 'UserProfile', params: match.slice(1) };
+            : { page: 'UserProfile', params: match.slice(1) }; }
 
-    // /@user/permlink (redirects to /category/@user/permlink)
+    // /@user/permlink (redirects to /category/@user/permlink):wq
     match = path.match(routeRegex.PostNoCategory);
-    if (match)
-        return GDPRUserList.includes(match[1].substring(1))
+    if (match) { return GDPRUserList.includes(match[1].substring(1))
             ? { page: 'NotFound' }
-            : { page: 'PostNoCategory', params: match.slice(1) };
+            : { page: 'PostNoCategory', params: match.slice(1) }; }
 
     // /category/@user/permlink
     match = path.match(routeRegex.Post);
-    if (match)
-        return GDPRUserList.includes(match[2].substring(1))
+    if (match) { return GDPRUserList.includes(match[2].substring(1))
             ? { page: 'NotFound' }
-            : { page: 'Post', params: match.slice(1) };
+            : { page: 'Post', params: match.slice(1) }; }
 
     // /trending, /trending/category
     match = path.match(routeRegex.CategoryFilters);
@@ -99,10 +89,8 @@ export default function resolveRoute(path) {
     // -----------
 
     // developer
-    if (path === '/xss/test' && process.env.NODE_ENV === 'development')
-        return { page: 'XSSTest' };
-    if (path === '/benchmark' && process.env.OFFLINE_SSR_TEST)
-        return { page: 'Benchmark' };
+    if (path === '/xss/test' && process.env.NODE_ENV === 'development') return { page: 'XSSTest' };
+    if (path === '/benchmark' && process.env.OFFLINE_SSR_TEST) return { page: 'Benchmark' };
 
     return { page: 'NotFound' };
 }
diff --git a/src/app/ResolveRoute.test.js b/src/app/ResolveRoute.test.js
index 97274c41817448bb46f37cfd56026a7be690d5a6..734cd52b78be938236def6cb0445ec2377c9295f 100644
--- a/src/app/ResolveRoute.test.js
+++ b/src/app/ResolveRoute.test.js
@@ -1,28 +1,26 @@
-jest.mock('./utils/GDPRUserList');
 import resolveRoute, { routeRegex } from './ResolveRoute';
 
+jest.mock('./utils/GDPRUserList');
+
 describe('routeRegex', () => {
     it('should produce the desired regex patterns', () => {
         const test_cases = [
-            ['UserFeed', /^\/(@[\w\.\d-]+)\/feed\/?$/],
+            ['UserFeed', /^\/(@[\w.\d-]+)\/feed\/?$/],
             [
                 'UserProfile',
-                /^\/(@[\w\.\d-]+)(?:\/(blog|posts|comments|replies|payout|feed|followed|followers|settings|notifications|communities))?\/?$/,
+                /^\/(@[\w.\d-]+)(?:\/(blog|posts|comments|replies|payout|feed|followed|followers|settings|notifications|communities))?\/?$/,
             ],
             [
                 'CategoryFilters',
                 /^\/(hot|trending|promoted|payout|payout_comments|muted|created)(?:\/([\w\W\d-]{1,32}))?\/?$/,
             ],
-            ['PostNoCategory', /^\/(@[\w\.\d-]+)\/([\w\d-]+)$/],
-            ['Post', /^\/([\w\W\d-]{1,32})\/(@[\w\.\d-]+)\/([\w\d-]+)\/?$/],
-            [
-                'PostJson',
-                /^\/([\w\W\d-]{1,32})\/(@[\w\.\d-]+)\/([\w\d-]+)(\.json)$/,
-            ],
-            ['UserJson', /^\/(@[\w\.\d-]+)(\.json)$/],
+            ['PostNoCategory', /^\/(@[\w.\d-]+)\/([\w\d-]+)$/],
+            ['Post', /^\/([\w\W\d-]{1,32})\/(@[\w.\d-]+)\/([\w\d-]+)\/?$/],
+            ['PostJson', /^\/([\w\W\d-]{1,32})\/(@[\w.\d-]+)\/([\w\d-]+)(\.json)$/],
+            ['UserJson', /^\/(@[\w.\d-]+)(\.json)$/],
         ];
 
-        test_cases.forEach(r => {
+        test_cases.forEach((r) => {
             expect(String(routeRegex[r[0]])).toEqual(String(r[1]));
         });
     });
@@ -44,27 +42,18 @@ describe('resolveRoute', () => {
         ['/@steem/feed', { page: 'PostsIndex', params: ['home', '@steem'] }],
         ['/@gdpr/feed', { page: 'NotFound' }],
         ['/@steem', { page: 'UserProfile', params: ['@steem', undefined] }],
-        [
-            '/@steem/communities',
-            { page: 'UserProfile', params: ['@steem', 'communities'] },
-        ],
+        ['/@steem/communities', { page: 'UserProfile', params: ['@steem', 'communities'] }],
         ['/@steem/blog', { page: 'UserProfile', params: ['@steem', 'blog'] }],
         ['/@gdpr/blog', { page: 'NotFound' }],
         ['/@foo/bar34', { page: 'PostNoCategory', params: ['@foo', 'bar34'] }],
         ['/@gdpr/nice345', { page: 'NotFound' }],
         ['/taggy/@gdpr/nice345', { page: 'NotFound' }],
-        [
-            '/ceasar/@salad/circa90',
-            { page: 'Post', params: ['ceasar', '@salad', 'circa90'] },
-        ],
-        [
-            '/roles/hive-105677',
-            { page: 'CommunityRoles', params: ['hive-105677'] },
-        ],
+        ['/ceasar/@salad/circa90', { page: 'Post', params: ['ceasar', '@salad', 'circa90'] }],
+        ['/roles/hive-105677', { page: 'CommunityRoles', params: ['hive-105677'] }],
         ['/search', { page: 'SearchIndex' }],
         ['/rewards', { page: 'Rewards' }],
     ];
-    test_cases.forEach(r => {
+    test_cases.forEach((r) => {
         it(`should resolve the route for the ${r[1].page} page`, () => {
             expect(resolveRoute(r[0])).toEqual(r[1]);
         });
diff --git a/src/app/RootRoute.js b/src/app/RootRoute.js
index b5db4591b96626ca0b52ff4da36f66ee7b6fa89a..56e3bafbd5db0025fa8e567c9355b61bae3ed41a 100644
--- a/src/app/RootRoute.js
+++ b/src/app/RootRoute.js
@@ -1,7 +1,6 @@
+/*eslint global-require: "warn"*/
 import App from 'app/components/App';
-import Benchmark from 'app/components/pages/Benchmark';
 import PostsIndex from 'app/components/pages/PostsIndex';
-import SearchIndex from 'app/components/pages/SearchIndex';
 import resolveRoute from './ResolveRoute';
 
 // polyfill webpack require.ensure
@@ -42,10 +41,7 @@ export default {
             //require.ensure([], (require) => {
             cb(null, [require('app/components/pages/Support')]);
             //});
-        } else if (
-            route.page === 'XSSTest' &&
-            process.env.NODE_ENV === 'development'
-        ) {
+        } else if (route.page === 'XSSTest' && process.env.NODE_ENV === 'development') {
             //require.ensure([], (require) => {
             cb(null, [require('app/components/pages/XSS')]);
             //});
@@ -71,9 +67,7 @@ export default {
                 cb(null, [require('app/components/pages/SubmitPost')]);
                 // });
             } else {
-                cb(null, [
-                    require('app/components/pages/SubmitPostServerRender'),
-                ]);
+                cb(null, [require('app/components/pages/SubmitPostServerRender')]);
             }
         } else if (route.page === 'UserProfile') {
             //require.ensure([], (require) => {
@@ -103,9 +97,7 @@ export default {
             cb(null, [require('app/components/pages/ListManagement')]);
         } else {
             //require.ensure([], (require) => {
-            cb(process.env.BROWSER ? null : Error(404), [
-                require('app/components/pages/NotFound'),
-            ]);
+            cb(process.env.BROWSER ? null : Error(404), [require('app/components/pages/NotFound')]);
             //});
         }
     },
diff --git a/src/app/Translator.js b/src/app/Translator.jsx
similarity index 97%
rename from src/app/Translator.js
rename to src/app/Translator.jsx
index af292b495ab7b94add1e72bc02f25f3521cae869..67e6f44868f368479707fbad0e03d8d3cb5beecb 100644
--- a/src/app/Translator.js
+++ b/src/app/Translator.jsx
@@ -48,7 +48,7 @@ if (process.env.NODE_ENV === 'production') {
 
 class Translator extends React.Component {
     render() {
-        const language = this.props.locale;
+        const { locale: language, children } = this.props;
         tt.setLocale(language);
         return (
             <IntlProvider
@@ -58,7 +58,7 @@ class Translator extends React.Component {
                 locale={language}
                 defaultLocale={DEFAULT_LANGUAGE}
             >
-                {this.props.children}
+                {children}
             </IntlProvider>
         );
     }
diff --git a/src/app/assets/static/Roboto-Bold-normal.js b/src/app/assets/static/Roboto-Bold-normal.js
index bde8ed7a1004bf7aa9cfec444a494fa804f5107f..dfffd1873e0c76838018c73e2e2d7c75b17e0341 100644
--- a/src/app/assets/static/Roboto-Bold-normal.js
+++ b/src/app/assets/static/Roboto-Bold-normal.js
@@ -1,7 +1,7 @@
-(function(jsPDFAPI) {
+(function (jsPDFAPI) {
     var font =
         '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AvoARQL6AEYC+gAzAvoARwL6AEMD0gCNAqoAkAPbAGMEO//7BK0ASQU5AIQFKwCEBEcAcQUwAIQEQABxBHUAYwSDAEAEbQBjBKz//wIBAIUDnQBqAAD8mgQHAIMEB/9FBAcAhAQHAIQDxQBjA50AagOdAGoC+wBHAvsANQL7AEUC+wBGAvsAMwL7AEcC+wBDBWoAWAWSAFgFcgCEBdYAWAXXAFgEaACPBIIAWARXAA8ErAAsBGsAaAQuADwDnQBqAdkAWgaOAEAEpwBgAhv/nwSXADcElwBhBJcANASXAFQElwBOBJcAMwSXAF8ElwBWBJcAXwSXANkCQf+tAkH/rQIxAIYCMf/8AjEAhgRtAGME0gBMBD4AOASRAG8ERgBEBJgARASWAEQEnAA8BJUAbwSaAEQEUwBIBJEAQgPUAGYFNQBWA9AABwZQ/9cEFABjBMAAQAUwADYE1gBjAf4AAAMaAG4FUf/sBVH/7ASY/8sE8wAoArT/4gViAAcFYgAHBWIABwViAAcFYgAHBWIABwViAAcFPABWBIAAggSAAIIEgACCBIAAggJV/7oCVQCVAlX/rwJV/60FpgCCBYYAVgWGAFYFhgBWBYYAVgWGAFYFRAB0BUQAdAVEAHQFRAB0BPIAAgRKAEQESgBEBEoARARKAEQESgBEBEoARARKAEQELABCBFMASARTAEgEUwBIBFMASAIx/6gCMQCGAjH/nQIx/5sEewBpBIYAQgSGAEIEhgBCBIYAQgSGAEIEegBoBHoAaAR6AGgEegBoBAQAAwQEAAMFYgAHBEoARAViAAcESgBEBWIABwRKAEQFPABWBCwAQgU8AFYELABCBTwAVgQsAEIFPABWBCwAQgUzAIIFGABCBIAAggRTAEgEgACCBFMASASAAIIEUwBIBIAAggRTAEgEgACCBFMASAVzAF4EkQBFBXMAXgSRAEUFcwBeBJEARQVzAF4EkQBFBacAggR6AGgCVf+yAjH/oAJV/9QCMf/CAlX/0gIx/8ACVQAXAh8AAwJVAJUGzQCVBDMAbQR4ACgCQf+XBRQAggRGAG8EVQCCAh8AfgRVAIICHwBbBFUAggK1AH4EVQCCAvsAfgWmAIIEewBpBaYAggR7AGkFpgCCBHsAaQR7/5IFhgBWBIYAQgWGAFYEhgBCBYYAVgSGAEIFGwCCAusAbwUbAIIC6wBQBRsAggLrABEE6wBFBB0AOATrAEUEHQA4BOsARQQdADgE6wBFBB0AOATrAEUEHQA4BPMAKAK0AAoE8wAoArQACgTzACgC3AAKBUQAdAR6AGgFRAB0BHoAaAVEAHQEegBoBUQAdAR6AGgFRAB0BHoAaAVEAHQEegBoBv8AIwXhABwE8gACBAQAAwTyAAIE2QBJBBIASgTZAEkEEgBKBNkASQQSAEoHhQACBsEAQgWDAF0EhABCBHX/kwR1/5MEUQAgBKz//wSs//8ErP//BKz//wSs//8ErP//BKz//wSDAEAD2wBjA9sAYwPbAGMD2wBjAg//mAIPAHYCD/+NAg//iwTWAGMEwABABMAAQATAAEAEwABABMAAQASPAF0EjwBdBI8AXQSPAF0ETf//BKz//wSs//8ErP//BIMAQASDAEAEgwBABIMAQAR1ABYD2wBjA9sAYwPbAGMD2wBjA9sAYwSiAEkEogBJBKIASQSiAEkE1wBjAg//kAIP/7ICD/+wAg8AJQIPAHQD3AAgBGQAYwO6AGMDugBjA7oAYwO6AGME1gBjBNYAYwTWAGMEwABABMAAQATAAEAEdgBjBHYAYwR2AGMESQA6BEkAOgRJADoESQA6BFEAIARRACAEUQAgBI8AXQSPAF0EjwBdBI8AXQSPAF0EjwBdBf0AHwRN//8ETf//BDEANwQxADcEMQA3BWIABwSA/qUFp/6pAlX+qgWa/2kFVv6zBXT/fwKy/3IFYgAHBRsAggSAAIIE2QBJBacAggJVAJUFFACCBwIAggWmAIIFhgBWBSkAggTzACgE8gACBRUAFgJV/60E8gACBIIASQRzAF8EhABsArIAigReAHEEuACCBIYAQgTtAIsECwANBBIAFQKy/6wEXgBxBIYAQgReAHEGkQBTBIAAggR1AIQE6wBFAlUAlQJV/60EeAAoBSsAhAUUAIIFDQAfBWIABwUbAIIEdQCEBIAAggWaAHgHAgCCBacAggWGAFYFqQCEBSkAggU8AFYE8wAoBRUAFgRKAEQEUwBIBIoAbwSGAEIEgQBvBCwAQgQEAAMEEgAVBFMASANaAG8EHQA4Ah8AbQIx/5sCFP+hBIIAggQEAAMG/wAjBeEAHAb/ACMF4QAcBv8AIwXhABwE8gACBAQAAwFLAD8CkQBABFoAfAJB/4kB1gA6BwIAggbtAG8FYgAHBEoARASAAIIFmgB4BFMASASKAG8F0AA0BfQARAUkAAsEFf/qCIoAQgmKAFYE7wBDBBwARQU8AFYELABCBPIAAgQVABECVQCVB/sAEQbVACcCVQCVBWIABwRKAEQFYgAHBEoARAeFAAIGwQBCBIAAggRTAEgFjwBLBDwATgQ8AE4H+wARBtUAJwTvAEMEHABFBZoAeASKAG8FmgB4BIoAbwWGAFYEhgBCBYEAWgSEAEAFgQBaBIQAQAU0AD4EKQA/BQ0AHwQEAAMFDQAfBAQAAwUNAB8EBAADBZAAiQRuAFgG+QCFBp8AggSCAEIFYgAHBEoARAViAAcESgBEBWIABwRKAEQFYgAGBEr/eQViAAcESgBEBWIABwRKAEQFYgAHBEoARAViAAcESgBEBWIABwRKAEQFYgAHBEoARAViAAcESgBEBWIABwRKAEQEgACCBFMASASAAIIEUwBIBIAAggRTAEgEgACCBFMASASA/80EU/9yBIAAggRTAEgEgACCBFMASASAAIIEUwBIAlUAlQIxAIYCVQCIAh8AbQWGAFYEhgBCBYYAVgSGAEIFhgBWBIYAQgWGABQEhv+SBYYAVgSGAEIFhgBWBIYAQgWGAFYEhgBCBZwAUASmAEAFnABQBKYAQAWcAFAEpgBABZwAUASmAEAFnABQBKYAQAVEAHQEegBoBUQAdAR6AGgFswB0BOEAaAWzAHQE4QBoBbMAdAThAGgFswB0BOEAaAWzAHQE4QBoBPIAAgQEAAME8gACBAQAAwTyAAIEBAADBKAAQgTzACgEEwAfBZAAiQRuAFgEdQCEA1oAbwYO/+UEyP+8BHoAaAUB/9UFAf/VBHX/5QNa/8YFP//MBFv/qATyAAIEFQARBRUAFgQSABUEcwBfBGL/8wYbAG0ElwBGBJcAQASXADcElwBpBKsAeAS/AHMEqwBWBL8AcwVzAF4EkQBFBaYAggR7AGkFYgAHBEr/6ASAADwEU//hAlX+6wIx/tkFhgBWBIYAAQUbABcC6/9bBUQAXwR6//0FHv6FBRsAggSBAG8FMwCCBIIAQgUzAIIEggBCBacAggR6AGgFFACCBEYAbwUUAIIERgBvBFUAggIfAG0HAgCCBu0AbwWmAIIEewBpBYYAVgUpAIIEgQBvBRsAggLrAGIE6wBFBB0AOATzACgCtAAKBUQAdAU7AAcECwANBTsABwQLAA0G/wAjBeEAHATZAEkEEgBKBcz+FwSs/90EF/72BRP+8AJL/vEEyv9VBIn+ugTb/2IErP//BG0AYwPbAGMEMQA3BNcAYwIPAHYEZABjBgcAYwTWAGMEwABABHgAYwRRACAETf//BGQAAwIP/4sETf//A9sAYwPFAGMESQA6Ag8AdgIP/4sD3AAgBGQAYwRuABsErP//BG0AYwPFAGMD2wBjBNoAYwYHAGME1wBjBMAAQATgAGMEeABjBIMAQARRACAEZAADBEoAPgTXAGMEgwBABE3//wYxABUE2gBjBG4AGwXXAEEF6wB2BlD/1wTAAEAESQA6Bf0AHwX9AB8F/QAfBE3//wViAAcESgBEBIAAggRTAEgErP//A9sAYwIxAG0AAAABAAAFEAkLBAAAAgICAwUFBwYBAwMEBQIDAwMFBQUFBQUFBQUFAwIFBQUECAYGBgYFBQYGAwUGBQgGBgYGBgYGBgYIBgYFAwQDBAQDBQUFBQUDBQUCAgUCCAUFBQUDBQMFBQcFBQUDAgMGAwUFBgUCBgQHBAUFBwUEBQMDAwYEAwIDBAUGBwcECAUGBQYIBQUFBQYGAgUFAwYFCQgCBgMGBQYFAwUEBAUEAgMDBAQDAAAAAAAAAwUDBQcGBgUGBQcHBgUFBQUFBQUFAwUFBgUFBQUFBwcHBQUHBwYKCgcGBgcJBgYGBgcHBgkJBwgGBggFBQUEBggFBQUFBwUFBQcFBQcIBgcFBQcFBQUICAUFCQcFCAcGBQgHCAcKCQUFBgUGBQYFCQcJBwYFBgAAAAAAAAcGBQYFBQQGBQoIBwYGBQcGBwYJBgkIBwYGBQgGBwYGBQYHBQYFBwYGBQcGCQcGBQUFBAYFBggIBwYFBQkICQcGBQYGBgcGBAUJBQkDAgIFAgIBAQAEBAYHBAICAgIEBAQFBQMFBwIJAwMEAwQFBwgKBwgFBwUFBgYHBAkGBgcICAgFBgYFBQkDBQUFBQUDAwIGBQYICAYIAAkJAwMDBQUFBQUFBQUFBQUFBQcFBQUFBQUFBQUHBAUEAgUFBAUFBAQFBQUEBQUHBgUGBQgIBgUFBgcFBQUFBQYFCAgGBwUFBwUFCAUGBgcFBQgFBQcFBQUFBQkGAwMDAwMDAwQDBAUFBgYFBgUFBQUFAgQABQUFBQQEBAMDAwMDAwMGBgYHBwUFBQUFBQQCBwUCBQUFBQUFBQUFBQMDAgICBQUFBQUFBQUFBQUFBAYEBwUFBgUCAwYGBQYDBgYGBgYGBgYFBQUFAwMDAwYGBgYGBgYGBgYGBQUFBQUFBQUFBQUFAgICAgUFBQUFBQUFBQUFBQYFBgUGBQYFBgUGBQYFBgYFBQUFBQUFBQUFBgUGBQYFBgUGBQMCAwIDAgMCAwgFBQMGBQUCBQIFAwUDBgUGBQYFBQYFBgUGBQYDBgMGAwYFBgUGBQYFBgUGAwYDBgMGBQYFBgUGBQYFBgUIBwYFBgUFBQUFBQgIBgUFBQUFBQUFBQUFBQQEBAQCAgICBQUFBQUFBQUFBQUFBQUFBQUFBQQEBAQEBQUFBQUCAgICAgQFBAQEBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUHBQUFBQUGBQYDBgYGAwYGBQUGAwYIBgYGBgYGAwYFBQUDBQUFBgUFAwUFBQcFBQYDAwUGBgYGBgUFBggGBgYGBgYGBQUFBQUFBQUFBAUCAgIFBQgHCAcIBwYFAQMFAwIICAYFBQYFBQcHBgUKCwYFBgUGBQMJCAMGBQYFCAgFBQYFBQkIBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQgHBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQUFBQUFBQUFBQUFBQUFBQUDAgMCBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUFBgUGBQUEBwUFBgYFBAYFBgUGBQUFBwUFBQUFBQUFBgUGBQYFBQUDAgYFBgMGBQYGBQYFBgUGBQYFBgUFAggIBgUGBgUGAwYFBgMGBgUGBQgHBQUHBQUGAwUFBQUFBAUFAgUHBQUFBQUFAgUEBAUCAgQFBQUFBAQFBwUFBQUFBQUFBQUFBwUFBwcHBQUHBwcFBgUFBQUEAgAAAAMAAAADAAAAHAADAAEAAAAcAAMACgAABooABAZuAAAA9ACAAAYAdAAAAAIADQB+AKAArACtAL8AxgDPAOYA7wD+AQ8BEQElAScBMAFTAV8BZwF+AX8BjwGSAaEBsAHwAf8CGwI3AlkCvALHAskC3QLzAwEDAwMJAw8DIwOKA4wDkgOhA7ADuQPJA84D0gPWBCUELwRFBE8EYgRvBHkEhgSfBKkEsQS6BM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSAJ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k2aT3ZRblK6U75VDlZqWF5aglt6XKZd0l7mX9pg6mHuYx5kfmSuZeZnzmnOay5sOm4ub4pw6nI+dGp0mnX6dzJ4cnmGez580n5WgEKC4oU2h6qJmoumjK6OPo/GkHqSdpQWlIqVzpbqmbKbWpzqngqfJqA6oU6ieqPSpfam9qd2qJ6qcqt2rJKt6q/esJaxwrMis3KzwrQKtFq0orT+tU62vrhiuY66+rx6vSa+hr/qwQ7CisMmxPLFTsdSyOrJnsniyibKcsq2yvrLRsuSy97MNsx6zJrMuszazQbNJs620A7QxtJK05rVGtb+2D7Z2ttm3RLe+t8a4RriOuPm5TLnFuje6irqKupK68btSu7W7+bxkvHu8jbykvLa8wrzVvOu8970OvSW9PL1IvV+9dr2NvZm9q73Cvdm98L4HvhO+Kr48vlO+X752voi+mr6wvsG+zL7fvwy/GL8pvzu/Ub9cv3O/ib+gv6y/vb/Pv+G/98AIwBPAKsBBwFfAYsB0wH/AlsCnwL7A1ME/weLB+cILwiLCOMJPwmHCc8KEwpbCpsK9ws7C5cL7ww3DH8OQxBvELcQ+xFXEa8SCxJjEqsS8xMjE2sTxxQPFGsUxxUjFX8V2xY3FmMWjxbXFwcXNxeTF+8YHxhPGKsZBxk3GWcZuxnrGhsaSxqnGu8bHxtPG6scAxxLHKcc6x1HHZ8d/x5LHqcfAx8zH2MfvyAXIF8gpyEDIVshiyG7IesiGyJ3Is8jEyNDI3MjoyP/JC8kdyTPJRclbyXLJiMmbya7JwcnZyjjKpMq7ytLK6cr/ywvLIss5y1DLZ8t+y5TLq8u9y9TL68wOzDHMQcxYzG/MhcybzKbMuczFzNHM6Mz/zRDNG80yzUjNX81rzYLNmc2rzcHN0s3ezfXODM4izi3ORM5aznHO287tzwPPFc8mzzfPTc9jz3XP4s/z0AnQINAy0EPQWdBw0IfQntCp0LrQ0dDi0PjRCdEe0S/RRtFS0WTRddGM0Z/RsdHC0dPR5dH70gfSGNIp0jrSRtJX0mjSftKR0qTTANMX0y3TONNP02HTctN+04rTltOi067TutPG09zT5NPs0/TT/NQE1AzUFNQc1CTULNQ01DzURNRM1FjUZNR21IjUmtSw1MXUzdTV1N3U5dVS1V7VadV71ZLVpNWw1cfWN9Y/1kvWU9Zb1m3WhNaM1pTWnNak1rvWw9bL1tPW29bj1uvW89b71wPXC9ci1yrXMteA14jXkNeb17LXutfC187X1tft2APYGtgx2EPYWthm2HLYidif2KfYr9i72NLY2tjx2QPZD9kb2TLZSdlf2XbZftmG2Z7ZttnC2c7Z2tnm2fLZ/toG2g7aFtot2kTaTNpj2nnahdqQ2pjaoNq32s3a2drh2uza+NsE2xDbG9sy20jbVNtf22vbdtt+24bbktud26nbtNvG29fb49vu3AbcHtwq3DXcRdxV3F3cadx13Ifcmdyx3Mjc4Nz33Q/dJt0+3VXdcN2K3aLdud3R3ejeAN4S3ireQd5c3nbegt6O3qDest7J3tre8t8J3yHfON9Q32fff9+W37Hfy9/d3+/f++AH4BPgH+A24EjgYOB34I/gpuC+4NXg7eEE4R/hOeFQ4WfhfuGV4azhw+Ha4fDh/OII4hTiIOIy4kTiW+Jy4onioOK34s7i5eL74wfjE+Mf4yvjPeNP42bjd+OZ46XjseO948nj1ePh4+3j+eQB5GHkweUB5UDloOYC5k7mn+b651LnWudu53jngOeI55DnmOeg56jnsOe458rn3Ofz6AroIug66FLoauiC6JrosujK6OLo+ukS6SrpNulC6U7pWulm6XrphumS6Z7psOnC6c7p2unm6fLp/uoK6hbqIuo66kzqXupq6nbqguqO6prqpuq+6tXq6+r36wPrD+sb6yfrM+s/60vrV+tj62/re+uH65Prm+uj66vrs+u768Pry+vT69vr4+vr6/Pr++wD7A/sGuwl7DzsROxM7FjsYOx37I7sluye7KbsruzF7M3s1ezd7OXs7ez17P3tBe2a7fDuUu5a7mbufO6N7pXuoe6t7rnuxe7R7t3u6e707wDvDO8Y7yTvMO8870gAAAAFAGQAAAMoBbAAAwAGAAkADAAPAFAAsABFWLACLxuxAhg+WbAARViwAC8bsQAMPlmyBAIAERI5sgUCABESObIHAgAREjmyCAIAERI5sArcsgwCABESObINAgAREjmwAhCwDtwwMSEhESEDEQEBEQEDIQE1ASEDKP08AsQ2/u7+ugEM5AID/v4BAv39BbD6pAUH/X0Cd/sRAnj9XgJeiAJeAAACAHz/8AG/BbAAAwAOADyyBA8QERI5sAQQsAHQALAARViwAy8bsQMYPlmwAEVYsAov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AC8ACQCwBy+wD9wwMQD//wA3AAAEBAYfAiYB0gAAAQYAn0MeAAkAsAcvsA7cMDEA//8ABwAABVwGQQImACUAAAAHAK7/bwAA///+pQAABFIGQgImACkAAAAHAK79ywAB///+qQAABSMGPwImACwAAAAHAK79z//+///+qgAAAcEGQwImAC0AAAAHAK790AAC////af/sBUIGQQAmADMUAAAHAK7+jwAA///+swAABVMGQQAmAD1kAAAHAK792QAA////fwAABP0GQQAmALoUAAAHAK7+pQAA////cv/1AvAGwgImAMMAAAEHAK//DP/rABIAsAAvsBjcsA3QsBgQsBvQMDH//wAHAAAFXAWwAgYAJQAA//8AggAABLwFsAIGACYAAP//AIIAAARSBbACBgApAAD//wBJAAAEngWwAgYAPgAA//8AggAABSMFsAIGACwAAP//AJUAAAHBBbACBgAtAAD//wCCAAAFJQWwAgYALwAA//8AggAABn4FsAIGADEAAP//AIIAAAUiBbACBgAyAAD//wBW/+wFLgXEAgYAMwAA//8AggAABN0FsAIGADQAAP//ACgAAATKBbACBgA4AAD//wACAAAE7wWwAgYAPQAA//8AFgAABQAFsAIGADwAAP///60AAAKpBw0CJgAtAAAABwBq/08BOf//AAIAAATvBwoCJgA9AAAABwBqAJ8BNv//AEn/6wR8BkECJgC7AAABBwCuAScAAAAJALATL7Aj3DAxAP//AF//7AQvBkECJgC/AAABBwCuAQQAAAAJALAIL7Ap3DAxAP//AGz+YQQXBkECJgDBAAABBwCuAP0AAAAJALADL7AS3DAxAP//AIr/9QJvBiwCJgDDAAABBgCu5usAEwCwAEVYsAwvG7EMFD5ZsA/cMDEA//8Acf/rBBAG0gImAMsAAAEGAK8W+wASALAAL7Ae3LAT0LAeELAh0DAx//8AggAABJIEOgIGAI4AAP//AEL/7ARDBE4CBgBTAAD//wCL/mAETgQ6AgYAdgAA//8ADQAAA/sEOgIGAFoAAAABABn+SwRKBEoAHQBqshQeHxESOQCwAEVYsAAvG7EAFD5ZsABFWLAFLxuxBRQ+WbAARViwDy8bsQ8OPlmwAEVYsBUvG7EVDj5ZsgQFDxESObAPELELAbAKK1gh2Bv0WbIUBQ8REjmwABCxGgGw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AI4B6wHtAJAB/wH/AJMCDgIQAJQCMAIwAJcCMwIzAJgCRQJFAJkCRwJIAJoCegJ7AJwCfQJ9AJ4CfwKUAJ8CmQKgALUCogKlAL0CqgKvAMECtAK8AMcCvgK+ANACwALAANECwgLCANICxALEANMCxgLPANQC2ALaAN4C3ALcAOEC3gLeAOIC4ALgAOMC4gLiAOQC5wLnAOUC6QLpAOYC6wLrAOcC7QLtAOgC7wLvAOkC8QL9AOoC/wL/APcDAQMBAPgDAwMDAPkDDgMOAPoDEAMQAPsDEgMSAPwDIAMgAP0DIgMlAP4DJwMnAQIDKQMpAQMDLwM4AQQDQwNHAQ4DTQNPARMDVANUARYDZQNpARcDbQNvARwDeAN4AR8DhgOLASADjgOdASYDoAOgATYDpAOkATcDpgOmATgDqgOqATkDrQOuAToDsAOxATwDswO5AT4DuwO9AUUDvwPEAUgDxgPHAU4DyQPMAVAD0gPTAVQD1QPVAVYD1wPXAVcD2QPcAVgD3wPkAVwD5gPmAWID6gPrAWMD8APwAWUD8gP7AWYD/gP/AXAEAQQEAXIECwQMAXYEEAQQAXgEEgQYAXkEHgRGAYAESARIAakESgRXAaoEXwRfAbgEcAR1AbkEdwR3Ab8EewR8AcAEfwR/AcIEgQSCAcMEhASEAcUEhgSGAcYElwSbAccEnQSdAcwEnwSgAc0EogSiAc8EpgSoAdAEqgSqAdMErASuAdQEsASwAdcEsgSyAdgEtAS6AdkEvAS8AeAEvwS/AeEEwgTGAeIEyATIAecEygTLAegEzwTPAeoE0gTSAesE2ATYAewE3QTdAe0E6AToAe4E6gTqAe8E8QTxAfAE9QT1AfEACwA4/8QA0v/EANb/xAE5/8QBRf/EAw7/xAMQ/8QDEv/EA8H/xAR3/8QEv//EABgAOgAUADsAJgA9ABYBGQAUApkAFgMgACYDIgAWAyQAFgOLABYDmgAWA50AFgPTACYD1QAmA9cAJgPZABYD6gAUA/IAFgRwABYEcgAWBHQAFgSGABYEwgAUBMQAFATGACYAAQAT/wgA5wAQ/u4AEv7uACX/QAAu/zAAOAAUAEX/3gBH/+sASP/rAEn/6wBL/+sAU//rAFX/6wBW/+YAWf/qAFr/6ABd/+gAlP/rAJn/6wCb/+oAsv9AALT/QAC7/+sAvf/oAMj/6wDJ/+sAy//qANIAFADWABQA9//rAQP/6wEN/0ABGP/rARr/6AEe/+sBIv/rATkAFAFC/+sBRQAUAWD/6wFh/+sBa//rAYb+7gGK/u4Bjv7uAY/+7gHr/8AB7f/AAjP/wAJ//0ACgP9AAoH/QAKC/0ACg/9AAoT/QAKF/0ACmv/eApv/3gKc/94Cnf/eAp7/3gKf/94CoP/eAqH/6wKi/+sCo//rAqT/6wKl/+sCq//rAqz/6wKt/+sCrv/rAq//6wKw/+oCsf/qArL/6gKz/+oCtP/oArX/6AK2/0ACt//eArj/QAK5/94Cuv9AArv/3gK9/+sCv//rAsH/6wLD/+sCxf/rAsf/6wLJ/+sCy//rAs3/6wLP/+sC0f/rAtP/6wLV/+sC1//rAuX/MAL5/+sC+//rAv3/6wMOABQDEAAUAxIAFAMV/+oDF//qAxn/6gMb/+oDHf/qAx//6gMj/+gDMv/AAzP/wAM0/8ADNf/AAzb/wAM3/8ADOP/AA03/wANO/8ADT//AA4b/QAOO/0ADnv/rA6L/6gOk/+sDpv/oA6n/6gOq/+sDq//qA7L/MAO2/0ADwQAUA8P/3gPE/+sDxv/rA8j/6wPJ/+gDy//rA9L/6APa/+gD4v9AA+P/3gPm/+sD6//oA+z/6wPx/+sD8//oA/j/QAP5/94D+v9AA/v/3gP//+sEAf/rBAL/6wQM/+sEDv/rBBD/6wQU/+gEFv/oBBj/6AQd/+sEHv9ABB//3gQg/0AEIf/eBCL/QAQj/94EJP9ABCX/3gQm/0AEJ//eBCj/QAQp/94EKv9ABCv/3gQs/0AELf/eBC7/QAQv/94EMP9ABDH/3gQy/0AEM//eBDT/QAQ1/94EN//rBDn/6wQ7/+sEPf/rBD//6wRB/+sEQ//rBEX/6wRL/+sETf/rBE//6wRR/+sEU//rBFX/6wRX/+sEWf/rBFv/6wRd/+sEX//rBGH/6wRj/+oEZf/qBGf/6gRp/+oEa//qBG3/6gRv/+oEcf/oBHP/6AR1/+gEdwAUBJn/QASa/94EnP/rBKD/6wSk/+oEqf/rBKv/6wS/ABQEw//oBMX/6ATL/8AE0v/ABOr/wAAzADj/3wA6/+QAO//sAD3/3QDS/98A1v/fARn/5AE5/98BRf/fAesADgHtAA4CMwAOApn/3QMO/98DEP/fAxL/3wMg/+wDIv/dAyT/3QMyAA4DMwAOAzQADgM1AA4DNgAOAzcADgM4AA4DTQAOA04ADgNPAA4Di//dA5r/3QOd/90Dwf/fA9P/7APV/+wD1//sA9n/3QPq/+QD8v/dBHD/3QRy/90EdP/dBHf/3wSG/90Ev//fBML/5ATE/+QExv/sBMsADgTSAA4E6gAOAB0AOP/OADr/7QA9/9AA0v/OANb/zgEZ/+0BOf/OAUX/zgKZ/9ADDv/OAxD/zgMS/84DIv/QAyT/0AOL/9ADmv/QA53/0APB/84D2f/QA+r/7QPy/9AEcP/QBHL/0AR0/9AEd//OBIb/0AS//84Ewv/tBMT/7QARAC7/7gA5/+4Clf/uApb/7gKX/+4CmP/uAuX/7gMU/+4DFv/uAxj/7gMa/+4DHP/uAx7/7gOy/+4EYv/uBGT/7gTB/+4ATQAGABAACwAQAA0AFABBABIAR//oAEj/6ABJ/+gAS//oAFX/6ABhABMAlP/oAJn/6AC7/+gAyP/oAMn/6AD3/+gBA//oAR7/6AEi/+gBQv/oAWD/6AFh/+gBa//oAYQAEAGFABABhwAQAYgAEAGJABACof/oAqL/6AKj/+gCpP/oAqX/6AK9/+gCv//oAsH/6ALD/+gCxf/oAsf/6ALJ/+gCy//oAs3/6ALP/+gC0f/oAtP/6ALV/+gC1//oA57/6APE/+gDyP/oA8v/6APbABAD3AAQA98AEAPm/+gD7P/oA/H/6AP//+gEAf/oBAL/6AQO/+gEHf/oBDf/6AQ5/+gEO//oBD3/6AQ//+gEQf/oBEP/6ARF/+gEWf/oBFv/6ARd/+gEYf/oBJz/6ASp/+gEq//oAAIA9v/WAYX/mABAAEf/7ABI/+wASf/sAEv/7ABV/+wAlP/sAJn/7AC7/+wAyP/sAMn/7AD3/+wBA//sAR7/7AEi/+wBQv/sAWD/7AFh/+wBa//sAqH/7AKi/+wCo//sAqT/7AKl/+wCvf/sAr//7ALB/+wCw//sAsX/7ALH/+wCyf/sAsv/7ALN/+wCz//sAtH/7ALT/+wC1f/sAtf/7AOe/+wDxP/sA8j/7APL/+wD5v/sA+z/7APx/+wD///sBAH/7AQC/+wEDv/sBB3/7AQ3/+wEOf/sBDv/7AQ9/+wEP//sBEH/7ARD/+wERf/sBFn/7ARb/+wEXf/sBGH/7ASc/+wEqf/sBKv/7AAZAFP/4gEY/+IBhQAYAqv/4gKs/+ICrf/iAq7/4gKv/+IC+f/iAvv/4gL9/+IDpP/iA6r/4gPG/+IEDP/iBBD/4gRL/+IETf/iBE//4gRR/+IEU//iBFX/4gRX/+IEX//iBKD/4gAGABD/hAAS/4QBhv+EAYr/hAGO/4QBj/+EABEALv/sADn/7AKV/+wClv/sApf/7AKY/+wC5f/sAxT/7AMW/+wDGP/sAxr/7AMc/+wDHv/sA7L/7ARi/+wEZP/sBMH/7AAgAAb/8gAL//IAWv/zAF3/8wC9//MA9v/1ARr/8wGE//IBhf/yAYf/8gGI//IBif/yArT/8wK1//MDI//zA6b/8wPJ//MD0v/zA9r/8wPb//ID3P/yA9//8gPr//MD8//zBBT/8wQW//MEGP/zBHH/8wRz//MEdf/zBMP/8wTF//MAPwAn//MAK//zADP/8wA1//MAg//zAJP/8wCY//MAs//zAMQADQDT//MBCP/zARf/8wEb//MBHf/zAR//8wEh//MBQf/zAWr/8wJF//MCRv/zAkj/8wJJ//MChv/zApD/8wKR//MCkv/zApP/8wKU//MCvP/zAr7/8wLA//MCwv/zAtD/8wLS//MC1P/zAtb/8wL4//MC+v/zAvz/8wMt//MDiv/zA5f/8wO9//MDwP/zA+3/8wPw//MEC//zBA3/8wQP//MESv/zBEz/8wRO//MEUP/zBFL/8wRU//MEVv/zBFj/8wRa//MEXP/zBF7/8wRg//MEn//zBLj/8wBAACf/5gAr/+YAM//mADX/5gCD/+YAk//mAJj/5gCz/+YAuP/CAMQAEADT/+YBCP/mARf/5gEb/+YBHf/mAR//5gEh/+YBQf/mAWr/5gJF/+YCRv/mAkj/5gJJ/+YChv/mApD/5gKR/+YCkv/mApP/5gKU/+YCvP/mAr7/5gLA/+YCwv/mAtD/5gLS/+YC1P/mAtb/5gL4/+YC+v/mAvz/5gMt/+YDiv/mA5f/5gO9/+YDwP/mA+3/5gPw/+YEC//mBA3/5gQP/+YESv/mBEz/5gRO/+YEUP/mBFL/5gRU/+YEVv/mBFj/5gRa/+YEXP/mBF7/5gRg/+YEn//mBLj/5gA4ACX/5AA8/9IAPf/TALL/5AC0/+QAxP/iANr/0gEN/+QBM//SAUP/0gFd/9ICf//kAoD/5AKB/+QCgv/kAoP/5AKE/+QChf/kApn/0wK2/+QCuP/kArr/5AMi/9MDJP/TA4b/5AOL/9MDjv/kA5r/0wOb/9IDnf/TA7b/5APC/9ID2f/TA+L/5APy/9MD9f/SA/j/5AP6/+QEA//SBB7/5AQg/+QEIv/kBCT/5AQm/+QEKP/kBCr/5AQs/+QELv/kBDD/5AQy/+QENP/kBHD/0wRy/9MEdP/TBIb/0wSZ/+QAKAAQ/0YAEv9GACX/zQCy/80AtP/NAMf/8gEN/80Bhv9GAYr/RgGO/0YBj/9GAn//zQKA/80Cgf/NAoL/zQKD/80ChP/NAoX/zQK2/80CuP/NArr/zQOG/80Djv/NA7b/zQPi/80D+P/NA/r/zQQe/80EIP/NBCL/zQQk/80EJv/NBCj/zQQq/80ELP/NBC7/zQQw/80EMv/NBDT/zQSZ/80AAQDEAA4AuQBH/9wASP/cAEn/3ABL/9wAUf/BAFL/wQBT/9YAVP/BAFX/3ABZ/90AWv/hAF3/4QCU/9wAmf/cAJv/3QC7/9wAvf/hAL//5gDB/8EAwv/rAMP/6QDF//AAxv/nAMj/3ADJ/9wAyv/jAMv/3QDM/84Azf/UAM7/2wDs/8EA8P/BAPH/wQDz/8EA9P/BAPX/wQD3/9wA+P/BAPr/wQD7/8EA/v/BAQD/wQED/9wBBf/BARj/1gEa/+EBHv/cASL/3AEr/8EBNv/BATz/wQE+/8EBQv/cAVP/wQFV/8EBV//BAVz/wQFg/9wBYf/cAWv/3AKh/9wCov/cAqP/3AKk/9wCpf/cAqr/wQKr/9YCrP/WAq3/1gKu/9YCr//WArD/3QKx/90Csv/dArP/3QK0/+ECtf/hAr3/3AK//9wCwf/cAsP/3ALF/9wCx//cAsn/3ALL/9wCzf/cAs//3ALR/9wC0//cAtX/3ALX/9wC8v/BAvT/wQL2/8EC9//BAvn/1gL7/9YC/f/WAxX/3QMX/90DGf/dAxv/3QMd/90DH//dAyP/4QOe/9wDoP/BA6L/3QOk/9YDpv/hA6n/3QOq/9YDq//dA8T/3APF/8EDxv/WA8f/wQPI/9wDyf/hA8v/3APM/8ED0f/BA9L/4QPa/+ED4f/BA+b/3APn/8ED6//hA+z/3APx/9wD8//hA///3AQB/9wEAv/cBAj/wQQK/8EEDP/WBA7/3AQQ/9YEFP/hBBb/4QQY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/6sDmv+rA5v/8AOd/6sDoP/SA7X/6gPB/50Dwv/wA8X/0gPH/9IDzP/SA9H/0gPZ/6sD2//AA9z/wAPf/8AD4f/SA+f/0gPq/8cD8v+rA/X/8AQD//AECP/SBAr/0gQT/+oEFf/qBBf/6gQZ/+UEHP/SBHD/qwRy/6sEdP+rBHf/nQR5/+UEfP/SBIb/qwSY/9IEtf/SBLf/0gS//50Ewv/HBMT/xwB1AAb/sQAL/7EAOP+eADr/xQA8//IAPf+oAFH/zwBS/88AVP/PAFz/7wDB/88A0v+eANb/ngDa//IA3v/sAOH/4QDm/8IA7P/PAO7/7wDw/88A8f/PAPP/zwD0/88A9f/PAPb/xgD4/88A+v/PAPv/zwD+/88BAP/PAQX/zwEZ/8UBK//PATP/8gE0/+8BNv/PATn/ngE6/8ABPP/PAT7/zwFD//IBRP/vAUX/ngFH/+EBSf/hAUz/3wFT/88BVf/PAVf/zwFc/88BXf/yAV7/7wFi/80BZP/oAWz/nwFt/8YBhP+xAYX/sQGH/7EBiP+xAYn/sQKZ/6gCqv/PAvL/zwL0/88C9v/PAvf/zwMO/54DEP+eAxL/ngMi/6gDJP+oA4v/qAOa/6gDm//yA53/qAOg/88Dtf/sA8H/ngPC//IDxf/PA8f/zwPK/+8DzP/PA9H/zwPZ/6gD2/+xA9z/sQPf/7ED4f/PA+f/zwPq/8UD8v+oA/X/8gP2/+8EA//yBAT/7wQI/88ECv/PBBP/7AQV/+wEF//sBBn/4QQc/88EcP+oBHL/qAR0/6gEd/+eBHn/4QR8/88Ehv+oBJj/zwS1/88Et//PBL//ngTC/8UExP/FAFMAOP++AFH/4QBS/+EAVP/hAFr/7wBd/+8Avf/vAMH/4QDS/74A1v++AOb/yQDs/+EA8P/hAPH/4QDz/+EA9P/hAPX/4QD2/98A+P/hAPr/4QD7/+EA/v/hAQD/4QEF/+EBCf/tARr/7wEg/+sBK//hATb/4QE5/74BOv/fATz/4QE+/+EBRf++AUz/6QFT/+EBVf/hAVf/4QFc/+EBY//1AW3/4AKq/+ECtP/vArX/7wLy/+EC9P/hAvb/4QL3/+EDDv++AxD/vgMS/74DI//vA6D/4QOm/+8Dwf++A8X/4QPH/+EDyf/vA8z/4QPR/+ED0v/vA9r/7wPh/+ED5//hA+v/7wPz/+8ECP/hBAr/4QQU/+8EFv/vBBj/7wQc/+EEcf/vBHP/7wR1/+8Ed/++BHz/4QSY/+EEtf/hBLf/4QS//74Ew//vBMX/7wBqADj/5gA6/+cAPP/yAD3/5wBR/9YAUv/WAFT/1gBc//EAwf/WANL/5gDW/+YA2v/yAN7/7gDh/+gA5v/mAOz/1gDu//EA8P/WAPH/1gDz/9YA9P/WAPX/1gD2/9AA+P/WAPr/1gD7/9YA/v/WAQD/1gEF/9YBGf/nASv/1gEz//IBNP/xATb/1gE5/+YBOv/OATz/1gE+/9YBQ//yAUT/8QFF/+YBR//oAUn/6AFT/9YBVf/WAVf/1gFc/9YBXf/yAV7/8QFi/+cBZP/tAWz/5gFt/9ACmf/nAqr/1gLy/9YC9P/WAvb/1gL3/9YDDv/mAxD/5gMS/+YDIv/nAyT/5wOL/+cDmv/nA5v/8gOd/+cDoP/WA7X/7gPB/+YDwv/yA8X/1gPH/9YDyv/xA8z/1gPR/9YD2f/nA+H/1gPn/9YD6v/nA/L/5wP1//ID9v/xBAP/8gQE//EECP/WBAr/1gQT/+4EFf/uBBf/7gQZ/+gEHP/WBHD/5wRy/+cEdP/nBHf/5gR5/+gEfP/WBIb/5wSY/9YEtf/WBLf/1gS//+YEwv/nBMT/5wCYACUAEAAn/+gAK//oADP/6AA1/+gAOP/gADr/4AA9/98Ag//oAJP/6ACY/+gAsgAQALP/6AC0ABAA0v/gANP/6ADUABAA1v/gANkAFADdABAA4f/hAOb/4ADtABMA8gAQAPn/4AEEABABCP/oAQ0AEAEX/+gBGf/gARv/6AEd/+gBH//oASH/6AE5/+ABQf/oAUX/4AFH/+EBSP/gAUn/4QFK/+ABTf/hAVAAEAFRABABWP/pAWL/3wFk/94BZgAQAWr/6AFs/98Bbv/yAW8AEAFwABACRf/oAkb/6AJI/+gCSf/oAn8AEAKAABACgQAQAoIAEAKDABAChAAQAoUAEAKG/+gCkP/oApH/6AKS/+gCk//oApT/6AKZ/98CtgAQArgAEAK6ABACvP/oAr7/6ALA/+gCwv/oAtD/6ALS/+gC1P/oAtb/6AL4/+gC+v/oAvz/6AMO/+ADEP/gAxL/4AMi/98DJP/fAy3/6AOGABADiv/oA4v/3wOOABADl//oA5r/3wOd/98DtgAQA73/6APA/+gDwf/gA9n/3wPiABAD6v/gA+3/6APw/+gD8v/fA/gAEAP6ABAEC//oBA3/6AQP/+gEGf/hBBr/4AQeABAEIAAQBCIAEAQkABAEJgAQBCgAEAQqABAELAAQBC4AEAQwABAEMgAQBDQAEARK/+gETP/oBE7/6ARQ/+gEUv/oBFT/6ARW/+gEWP/oBFr/6ARc/+gEXv/oBGD/6ARw/98Ecv/fBHT/3wR3/+AEef/hBHr/4ASG/98EmQAQBJ//6AS4/+gEv//gBML/4ATE/+AANQAb//IAOP/xADr/9AA8//QAPf/wANL/8QDU//UA1v/xANr/9ADd//UA3v/zAOb/8QEZ//QBM//0ATn/8QFD//QBRf/xAVD/9QFd//QBYv/yAWT/8gFm//UBbP/yAW//9QKZ//ADDv/xAxD/8QMS//EDIv/wAyT/8AOL//ADmv/wA5v/9AOd//ADtf/zA8H/8QPC//QD2f/wA+r/9APy//AD9f/0BAP/9AQT//MEFf/zBBf/8wRw//AEcv/wBHT/8AR3//EEhv/wBL//8QTC//QExP/0AGsAJQAPADj/5gA6/+YAPAAOAD3/5gCyAA8AtAAPANL/5gDUAA4A1v/mANkAEwDaAA4A3QAOAN4ACwDh/+UA5v/mAOf/9ADtABIA8gAPAPb/5wD5/+gA/v/nAQQADwENAA8BGf/mATMADgE5/+YBOv/nAUMADgFF/+YBR//lAUj/6AFJ/+UBSv/oAUz/5AFQAA4BUQAPAV0ADgFi/+YBZP/mAWYADgFs/+YBbf/nAW8ADgFwAA8CfwAPAoAADwKBAA8CggAPAoMADwKEAA8ChQAPApn/5gK2AA8CuAAPAroADwMO/+YDEP/mAxL/5gMi/+YDJP/mA4YADwOL/+YDjgAPA5r/5gObAA4Dnf/mA7UACwO2AA8Dwf/mA8IADgPZ/+YD4gAPA+r/5gPy/+YD9QAOA/gADwP6AA8EAwAOBBMACwQVAAsEFwALBBn/5QQa/+gEHgAPBCAADwQiAA8EJAAPBCYADwQoAA8EKgAPBCwADwQuAA8EMAAPBDIADwQ0AA8EcP/mBHL/5gR0/+YEd//mBHn/5QR6/+gEhv/mBJkADwS//+YEwv/mBMT/5gA6AAb/vwAL/78AOP+fADr/yQA9/60A0v+fANb/nwDe/+wA4f/mAOb/xAD2/80A/v/VARn/yQE5/58BOv/MAUX/nwFH/+YBSf/mAUz/3wFi/9EBZP/sAWz/oQFt/88BhP+/AYX/vwGH/78BiP+/AYn/vwKZ/60DDv+fAxD/nwMS/58DIv+tAyT/rQOL/60Dmv+tA53/rQO1/+wDwf+fA9n/rQPb/78D3P+/A9//vwPq/8kD8v+tBBP/7AQV/+wEF//sBBn/5gRw/60Ecv+tBHT/rQR3/58Eef/mBIb/rQS//58Ewv/JBMT/yQAxADj/4wA8/+UAPf/kANL/4wDU/+UA1v/jANn/4gDa/+UA3f/lAN7/6QDy/+oBBP/qATP/5QE5/+MBQ//lAUX/4wFQ/+UBUf/qAV3/5QFm/+UBbP/kAW//5QFw/+oCmf/kAw7/4wMQ/+MDEv/jAyL/5AMk/+QDi//kA5r/5AOb/+UDnf/kA7X/6QPB/+MDwv/lA9n/5APy/+QD9f/lBAP/5QQT/+kEFf/pBBf/6QRw/+QEcv/kBHT/5AR3/+MEhv/kBL//4wAkADj/4gA8/+QA0v/iANT/5ADW/+IA2f/hANr/5ADd/+QA3v/pAO3/5ADy/+sBBP/rATP/5AE5/+IBQ//kAUX/4gFQ/+QBUf/rAV3/5AFm/+QBb//kAXD/6wMO/+IDEP/iAxL/4gOb/+QDtf/pA8H/4gPC/+QD9f/kBAP/5AQT/+kEFf/pBBf/6QR3/+IEv//iABgAOP/rAD3/8wDS/+sA1v/rATn/6wFF/+sCmf/zAw7/6wMQ/+sDEv/rAyL/8wMk//MDi//zA5r/8wOd//MDwf/rA9n/8wPy//MEcP/zBHL/8wR0//MEd//rBIb/8wS//+sAOQBR/+8AUv/vAFT/7wBc//AAwf/vAOz/7wDt/+4A7v/wAPD/7wDx/+8A8//vAPT/7wD1/+8A9v/uAPj/7wD6/+8A+//vAP7/7wEA/+8BBf/vAQn/9AEg//EBK//vATT/8AE2/+8BOv/vATz/7wE+/+8BRP/wAVP/7wFV/+8BV//vAVz/7wFe//ABbf/vAqr/7wLy/+8C9P/vAvb/7wL3/+8DoP/vA8X/7wPH/+8Dyv/wA8z/7wPR/+8D4f/vA+f/7wP2//AEBP/wBAj/7wQK/+8EHP/vBHz/7wSY/+8Etf/vBLf/7wAkAAb/8gAL//IAWv/1AF3/9QC9//UA9v/0AP7/9AEJ//UBGv/1ATr/9QFt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/5gAu/+YAMj/mADJ/5gA9/+YAQP/mAEY/3ABHv+YASL/mAFC/5gBYP+YAWH/mAFr/5gBwf8YAqH/mAKi/5gCo/+YAqT/mAKl/5gCq/9wAqz/cAKt/3ACrv9wAq//cAK9/5gCv/+YAsH/mALD/5gCxf+YAsf/mALJ/5gCy/+YAs3/mALP/5gC0f+YAtP/mALV/5gC1/+YAvn/cAL7/3AC/f9wAwX/GAMH/xgDCf8YAwv/GAMN/xgDnv+YA6T/cAOq/3ADxP+YA8b/cAPI/5gDy/+YA83/GAPm/5gD7P+YA/H/mAP//5gEAf+YBAL/mAQM/3AEDv+YBBD/cAQd/5gEN/+YBDn/mAQ7/5gEPf+YBD//mARB/5gEQ/+YBEX/mARL/3AETf9wBE//cARR/3AEU/9wBFX/cARX/3AEWf+YBFv/mARd/5gEX/9wBGH/mASc/5gEoP9wBKn/mASr/5gEvv8YABMB0//uAdX/9QHW//EB2P/yAfT/8gH4//ICEP/yAhL/7gIU//IDTP/uA3j/8gOA//UDgf/uA4L/7gTQ/+4E3v/uBOH/7gT1//IE+v/uABMB0//lAdX/8QHW/+sB2P/pAfT/6QH4/+kCEP/pAhL/5QIU/+kDTP/lA3j/6QOA//EDgf/lA4L/5QTQ/+UE3v/lBOH/5QT1/+kE+v/lAAMB1f/1Adb/7gOA//UAAgHW/7cB2//wAAEAWwALAAQADf/mAEH/9ABh/+8BTf/tABYAuP/UAML/7QDEABEAyv/gAMz/5wDN/+UAzv/uANkAEgDq/+kA9v/XATr/1wFK/9MBTP/WAU3/xQFY/+cBYgANAWQADAFt/9YBbv/yAdv/6QHl/+cCMf/pAAEBHP/xABIA2f+uAOYAEgDr/+AA7f+tAO//1gD9/98BAf/SAQf/4AEc/84BLv/dATD/4gE4/+ABQP/gAUr/6QFN/9oBX/+9AWn/3wFsABEAAgD2//UBhf/AAAIA7f9oARz/7gAKAOb/wwD2/88A/v/UATr/zgFJ/+cBTP/fAWL/0QFk/+wBbP+gAW3/0QAwAFb/fgBb/50Abf7xAHz+9ACB/qsAhv9eAIn/SwC4/3IAv/8PAMP/CgDG/0EAx/8HAMr/aADM/w8Azf8OAM7/DADZ/2MA5gAFAOr/vQDr/0kA7f7+AO//EwD2/2gA/f8OAP7/aAD//xMBAf8H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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAAAAAAAAAgABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAgAGAAAAAAAAAAAAAAAAAAEAAAAJAAAAAAAAAAMAAAAAAAAAAAAAAAAAAQABAAAABQAAAAAAAAAAAAAAAAALAAIAGQAAAAsAAAAAAAAAEQAAAAAAGQAiAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABUAAAADAAMAGwADAAMAAwAAAAEAAwAhAAMAAwAAAAAAAwAAAAMAAAAAAAEAGwADAAAAAAACAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAACAAQAHQAJAAIAAAACAAEAAgAAAAIAAQAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAABEAFQAAAAMAAAAAAAsAAAAAAAMAAAADAAAAAAACAAEAEQAVAAsAAAAgACEAAAAAAAAAAAAAAAAAAAAZABsAAAADAAAAAwAAAAMAAAAAAAAAAAADABEAFQAAAAEAAQAAAAAAAAAAABkAAAAAAAAAAgABAAAAAAAAABkAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AHwAAABQAFAAaABQAFAAUABoAAAAAAAAAGgAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAcACQAAAASABgAHgAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADQAIAA0AAAAAAAAAAAAAAAAAGAAIAAAAAAAYAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAYAAgAFwAcABgAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAAAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAGAAYABgAGAAYABgAGAAIAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAoACgAKAAoADAAHAAcABwAHAAcABwAHAAEAAQABAAEAAQAAAAAAAAAAAAMABAAEAAQABAAEAAUABQAFAAUACQAJAAYABwAGAAcABgAHAAIAAQACAAEAAgABAAIAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQACAAEAAgABAAIAAQACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwADAAIABAACAAQAAgAEAAAAAAAAAAAAAAAAABAADgAQAA4AEAAOABAADgAQAA4ACwAAAAsAAAALAAAACgAFAAoABQAKAAUACgAFAAoABQAKAAUAFgAAAAwACQAMABMADwATAA8AEwAPAAAAAAACAAAAAAAAAAAADQANAA0ADQANAA0ADQAIAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAASABIAEgASABcADQANAA0ACAAIAAgACAAAAAAAAAAAAAAAAAAIAAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAAAAAAAAB4AHgAeAB4AAAAYAAAAEgASABIAEgASABIAJAAXABcAAAAAAAAABgAAAAAAAAACAAwAAAAAAAYAAAAAABMAAAAAAAAAAAAAAAIAAAAAAAwAEQAAAAwAAQAAAAMAAAAFAAAABAAAAAkAAAAAAAUABAAFAAAAAAAAAAAAAAAAACMAAAAAACIABgAAAAAAAAAAAAAAAAACAAAAAAACAAsAEQAHAAEAAwAEAAMAAQAJABUAAQADAA4AAAAAAAAAAwAJABYAAAAWAAAAFgAAAAwACQAUABQAAAAAABQAAAADAAYABwAAAAAAAQADAAAAAAAdAAkAAQACAAAAAAACAAEADAAJAAAAEQAVAAAABgAHAAYABwAAAAAAAAABAAAAAQABABEAFQAAAAAAAAADAAAAAwACAAQAAgABAAIABAAAAAAAIgAJACIACQAiAAkAIAAhAAAAAwABAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgABAAIAAQACAAEAAgAEAAIAAQAKAAUACgAFAAAABQAAAAUAAAAFAAAABQAAAAUADAAJAAwACQAMAAkAAAALAAAAIAAhAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAYABwAAAAEAAAAAAAIABAAAAAAAAAAFAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAgAAAAAAAAAAABAADgALAAAACgAdAAkAHQAJABYAAAATAA8AAAANAAAAAAAAAAgAFwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAHAAAABcAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAACAAAAAAACAAYABwAAAAAAAgAFwAAAAEAAAAKAWICkgAEREZMVAAaY3lybAAaZ3JlawAabGF0bgBIAAQAAAAA//8AEgAAAAEAAgADAAQACAAMAA0ADgAPABAAEQASABMAFAAVABYAFwAuAAdBWkUgAORDUlQgAORGUkEgAFpNT0wgALZOQVYgAIhST00gALZUUksgAOQAAP//ABMAAAABAAIAAwAEAAcACAAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AFAAAAAEAAgADAAQABgAIAAkADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABQAAAABAAIAAwAEAAYACAALAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wAUAAAAAQACAAMABAAGAAgACgAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AEwAAAAEAAgADAAQABQAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXABhjMnNjAJJjY21wAJhkbGlnAKBkbm9tAKZmcmFjAKxsaWdhALZsaWdhALxsaWdhAMhsbnVtANBsb2NsANZsb2NsANxsb2NsAOJudW1yAOhvbnVtAO5wbnVtAPRzbWNwAPpzczAxAQBzczAyAQZzczAzAQxzczA0ARJzczA1ARhzczA2AR5zczA3ASR0bnVtASoAAAABAAAAAAACAAIABAAAAAEACgAAAAEAGAAAAAMAFgAXABkAAAABAAkAAAAEAAgACQAIAAkAAAACAAgACQAAAAEAFQAAAAEABwAAAAEABQAAAAEABgAAAAEAGQAAAAEAEgAAAAEAEwAAAAEAAQAAAAEACwAAAAEADAAAAAEADQAAAAEADgAAAAEADwAAAAEAEAAAAAEAEQAAAAEAFAAaADYEMAfuCKAIyg9uD4QPrg/CD+YQEBBMEGAQdBCIEJoQtBD2ERQRZhGsEg4SbBKAErAS0gABAAAAAQAIAAIB+gD6AecCcQHRAdABzwHOAc0BzAHLAcoByQHIAjMCMgIxAjACKAHmAeUB5AHjAeIB4QHgAd8B3gHdAdwB2wHaAdkB2AHXAdYB1QHUAdMB0gHoAekCcwJ1AnQCdgJyAncCUgHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gIAAgEE/gICAgMCBAIFAgYCBwIIAgkCCgILAjsCDQIOAg8CEAT4AhECEwIUAhUCFgIXAhgCGQIbAhwCHgIdAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwT/A2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1BQIDdgN3A3kDeAN6A3sDfAN9A34DfwOAA4EDggODA4QDhQUABQEEywTMBM0EzgTPBNAE0QTSBNME1ATVBNYE1wTYBNkE2gTbBNwE3QTeBN8E4AThBOIE4wTkBOUE5gTnAf8E6ATpBOoE6wTsBO0E7gTvBPAE8QTyBPME9AT1BPYFAwUEBQUFBgT3BPkE+gT8AhoE/QT7AgwCEgULBQwAAQD6AAgACgAUABUAFgAXABgAGQAaABsAHAAdACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgBlAGcAgQCDAIQAjACPAJEAkwCxALIAswC0ALUAtgC3ALgAuQC6ANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA5QDmAOcA6ADpAS8BMwE1ATcBOQE7AUEBQwFFAUkBSwFMAVgBWQGXAZ0BogGlAnoCewJ9An8CgAKBAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZArYCuAK6ArwCvgLAAsICxALGAsgCygLMAs4C0ALSAtQC1gLYAtoC3ALeAuAC4gLjAuUC5wLpAusC7QLvAvEC8wL1AvgC+gL8Av4DAAMCAwQDBgMIAwoDDAMOAxADEgMUAxYDGAMaAxwDHgMgAyIDJAMlAycDKQMrAy0DhgOHA4gDiQOKA4sDjAOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8ID0wPVA9cD2QPuA/AD8gQHBA0EEwR9BIIEhgUHBQkAAQAAAAEACAACAdwA6wJxAjMCMgIxAjACKAHmAeUB5AHjAeIB4QHgAd8B3gHdAdwB2wHaAdkB2AHXAdYB1QHUAdMB0gJkAnMDMAJ1AnQDLwHjAnICdwJSBNIE0wHqAesE1ATVBNYB7ATXAe0B7gHvBNwB8AHwBN0E3gHxAfIB8wH6BOsE7AH7AfwB/QH+Af8CAATvBPAE8gT1BP4CAgIDAgQCBQIGAgcCCAIJAgoCCwH0AfUB9gH3AfgB+QI7Ag0CDgIPAhAE+AIRAhMCFAIVAhcCGQJ2AzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDggNNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiBP8DZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UFAgN2A3cDeQN4A3oDewN8A30DfgN/A4ADgQODA4QDhQUABQEEywTMBM0EzgTYBNsE2QTaBN8E4AThBM8E0ATRBOoE7QTuBPEE8wT0AgEE9gTiBOME5ATlBOYE5wToBOkFAwUEBQUFBgT3BPkE+gIYBPwCGgT9BPsCFgIMAhIFCwUMAAEA6wAKAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgCFAIYAhwCJAIoAiwCNAJAAkgCUALsAvAC9AL4AvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AQABAQECAQMBBAEFAQYBBwEwATQBNgE4AToBPAFCAUQBRgFKAU0BWgJ8An4CmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK3ArkCuwK9Ar8CwQLDAsUCxwLJAssCzQLPAtEC0wLVAtcC2QLbAt0C3wLhAuQC5gLoAuoC7ALuAvAC8gL0AvYC+QL7Av0C/wMBAwMDBQMHAwkDCwMNAw8DEQMTAxUDFwMZAxsDHQMfAyEDIwMmAygDKgMsAy4DngOfA6ADoQOjA6QDpQOmA6cDqAOpA6oDqwOsA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID1APWA9gD2gPvA/ED8wQBBAgEDgQUBH4EfwSDBIcFCAUKAAYAAAAGABIAKgBCAFoAcgCKAAMAAAABABIAAQCQAAEAAAADAAEAAQBNAAMAAAABABIAAQB4AAEAAAADAAEAAQBOAAMAAAABABIAAQBgAAEAAAADAAEAAQLhAAMAAAABABIAAQBIAAEAAAADAAEAAQPOAAMAAAABABIAAQAwAAEAAAADAAEAAQPQAAMAAAABABIAAQAYAAEAAAADAAEAAQRJAAIAAgCoAKwAAAEkAScABQABAAAAAQAIAAIAEgAGAmECXwJiAmMCYAUNAAEABgBNAE4C4QPOA9AESQAEAAAAAQAIAAEGMgA2AHIApACuALgAygD8AQ4BGAFKAWQBfgGQAboB9gIAAiICPAJOAooCnAK2AuAC8gMkAy4DOANKA3wDhgOQA5oDtAPOA+AECgQ8BEYEaASCBJQExgTYBPIFHAUuBTgFQgVMBVYFgAWqBdQF/gYoAAYADgAUABoAIAAmACwCgAACAKkEHgACAK0CfwACAKgEIAACAKsCggACAKoEmQACAKwAAQAEBKYAAgCtAAEABAK8AAIAqQACAAYADASqAAIBugSoAAIArQAGAA4AFAAaACAAJgAsAogAAgCpBDYAAgCtAocAAgCoBDgAAgCrBDoAAgCqBJsAAgCsAAIABgAMBJUAAgCpAtYAAgG6AAEABASsAAIArQAGAA4AFAAaACAAJgAsAowAAgCpBEgAAgCtAosAAgCoBEYAAgCrAtoAAgCqBJ0AAgCsAAMACAAOABQErgACAKkC5wACAboEsAACAK0AAwAIAA4AFALpAAIAqQLrAAIBugSyAAIArQACAAYADAPgAAIAqQS0AAIArQAFAAwAEgAYAB4AJALxAAIAqQLzAAIBugS2AAIArQSXAAIAqAKPAAIAqgAHABAAGAAeACQAKgAwADYEuAADAKoAqQKRAAIAqQRKAAIArQKQAAIAqARMAAIAqwKTAAIAqgSfAAIArAABAAQEuQACAKkABAAKABAAFgAcAv4AAgCpAwAAAgG6BLsAAgCtBKEAAgCsAAMACAAOABQDBAACAKkDCgACAboEvQACAK0AAgAGAAwDDgACAboEvwACAK0ABwAQABgAHgAkACoAMAA2BMEAAwCqAKkClgACAKkEYgACAK0ClQACAKgEZAACAKsDFAACAKoEowACAKwAAgAGAAwExAACAK0EwgACAKoAAwAIAA4AFAPVAAIAqQTGAAIArQPTAAIAqAAFAAwAEgAYAB4AJAKZAAIAqQRwAAIArQPZAAIAqARyAAIAqwR0AAIAqgACAAYADAMlAAIAqQTIAAIArQAGAA4AFAAaACAAJgAsApsAAgCpBB8AAgCtApoAAgCoBCEAAgCrAp0AAgCqBJoAAgCsAAEABASnAAIArQABAAQCvQACAKkAAgAGAAwEqwACAboEqQACAK0ABgAOABQAGgAgACYALAKjAAIAqQQ3AAIArQKiAAIAqAQ5AAIAqwQ7AAIAqgScAAIArAABAAQElgACAKkAAQAEBK0AAgCtAAEABARJAAIArQADAAgADgAUBK8AAgCpAugAAgG6BLEAAgCtAAMACAAOABQC6gACAKkC7AACAboEswACAK0AAgAGAAwD4QACAKkEtQACAK0ABQAMABIAGAAeACQC8gACAKkC9AACAboEtwACAK0EmAACAKgCqgACAKoABgAOABQAGgAg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';
-    var callAddFont = function() {
+    var callAddFont = function () {
         this.addFileToVFS('Roboto-Bold-normal.ttf', font);
         this.addFont('Roboto-Bold-normal.ttf', 'Roboto-Bold', 'normal');
     };
diff --git a/src/app/assets/static/Roboto-Regular-normal.js b/src/app/assets/static/Roboto-Regular-normal.js
index 25da678ba1a0552eebf9bb6d9240b4781af9f5aa..5f489d9e69cd308a10d09960161b3ed62b2844c6 100644
--- a/src/app/assets/static/Roboto-Regular-normal.js
+++ b/src/app/assets/static/Roboto-Regular-normal.js
@@ -1,7 +1,7 @@
-(function(jsPDFAPI) {
+(function (jsPDFAPI) {
     var font =
         'AAEAAAASAQAABAAgR0RFRrRCsIIAAijcAAACYkdQT1P/GhLXAAIrQAAAXcxHU1VC64LkWQACiQwAABWQT1MvMpeCsagAAAGoAAAAYGNtYXABd1geAAAbWAAAEkZjdnQgK6gHnQAAMKgAAABUZnBnbXf4YKsAAC2gAAABvGdhc3AACAATAAIo0AAAAAxnbHlmJroL9AAAOxwAAelsaGRteFV6YHoAABZAAAAFGGhlYWT8atJ6AAABLAAAADZoaGVhCroKrgAAAWQAAAAkaG10eK5yj5cAAAIIAAAUOGxvY2GAd/+7AAAw/AAACh5tYXhwBz4DCQAAAYgAAAAgbmFtZeakFYkAAiSIAAAEJnBvc3T/bQBkAAIosAAAACBwcmVwomb6yQAAL1wAAAFJAAEAAAACIxKKf3BIXw889QAZCAAAAAAAxPARLgAAAADVAVL0+hv91QkwCHMAAAAJAAIAAAAAAAAAAQAAB2z+DAAACUn6G/5KCTAAAQAAAAAAAAAAAAAAAAAABQ4AAQAABQ4AjwAWAFQABQABAAAAAAAOAAACAAIkAAYAAQADBIYBkAAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv9QACBbAAAAIAAAAABHT09HAEAAAP/9BgD+AABmB5oCACAAAZ8AAAAABDoFsAAgACAAAwOMAGQAAAAAAAAAAAH7AAAB+wAAAg8AoAKPAIgE7QB3BH4AbgXcAGkE+QBlAWUAZwK8AIUCyAAmA3IAHASJAE4BkgAdAjUAJQIbAJADTAASBH4AcwR+AKoEfgBdBH4AXgR+ADUEfgCaBH4AhAR+AE0EfgBwBH4AZAHwAIYBsQApBBEASARkAJgELgCGA8cASwcvAGoFOAAcBPsAqQU1AHcFPwCpBIwAqQRsAKkFcwB6BbQAqQItALcEagA1BQQAqQROAKkG/ACpBbQAqQWAAHYFDACpBYAAbQTtAKgEvwBQBMYAMQUwAIwFFwAcBxkAPQUEADkEzgAPBMoAVgIfAJIDSAAoAh8ACQNYAEADnAAEAnkAOQRaAG0EfQCMBDAAXASDAF8EPQBdAscAPAR9AGAEaACMAfEAjQHp/78EDgCNAfEAnAcDAIsEagCMBJAAWwR9AIwEjABfArUAjAQgAF8CnQAJBGkAiAPgACEGAwArA/cAKQPJABYD9wBYArUAQAHzAK8CtQATBXEAgwHzAIsEYABpBKYAWwW0AGkEMwAPAesAkwToAFoDWABlBkkAWwOTAJMDwQBmBG4AfwZKAFoDqgCOAv0AggRGAGEC7wBCAu8APgKCAHsEiACaA+kAQwIWAJMB+wB0Au8AegOjAHoDwABmBdwAVQY1AFAGOQBvA8kARAd6//IERABZBYAAdgS6AKYEwgCLBsEATgSwAH4EkQBHBIgAWwScAJUExwBfBZoAHQH6AJsEcwCaBE8AIgIpACIFiwCiBIgAkQehAGgHRABhAfwAoAWHAF0Cuf/kBX4AZQSSAFsFkACMBPMAiAID/7QENwBiA8QAqQONAI0DqwCOA2oAgQHxAI0CrQB5AioAMgPGAHsC/ABeAloAfgAA/KcAAP1vAAD8iwAA/V4AAPwnAAD9OAINALcECwBxAhcAkwRzALEFpAAfBXEAZwU+ADIEkQB4BbUAsgSRAEUFuwBNBYkAWgVSAHEEhQBkBL0AoAQCAC4EiABgBFAAYwQlAG0EiACRBI4AegKXAMMEbgAlA+wAZQTEACkEiACRBE0AZQSIAGAELABRBF0AjwWjAFcFmgBfBpcAegShAHkEQv/aBkgASgX/ACoFZAB7CJEAMQikALEGggA+BbQAsAULAKIGBAAyB0MAGwS/AFAFtACxBakALwUHAE0GLABTBdkArwV6AJYHhwCwB8AAsAYSABAG6wCyBQUAowVkAJMHJwC3BRgAWQRsAGEEkgCdA1sAmgTUAC4GIAAVBBAAWASeAJwEUgCcBKAALAXvAJ0EnQCcBJ4AnAPYACgFzQBkBL0AnARZAGcGeACcBp4AkQT3AB4GNgCdBFgAnQRNAGQGhwCdBGQALwRo/+gETQBnBskAJwbkAJwEif/9BJ4AnAcIAJwGKwCBBFb/3AcrALcF+ACZBNIAKARGAA8HCwDJBgsAvAbRAJMF4QCWCQQAtgfRAJsEIwBQA9sATAVxAGcEiwBbBQoAFgQDAC4FcQBnBIgAWwcBAJwGJAB+BwgAnAYrAIEFMgB1BEcAZAT9AHQAAPxnAAD8cQAA/WYAAP2kAAD6GwAA+iwGCQCxBO0AnARW/9wFGwCoBIkAjARjAKIDkACRBNsAsQQFAJEHogAbBmEAFQWaALIEuACcBQkAowR+AJoGjABEBYMAPgX/AKkE2QCcB88AqAW0AJEIMQCwBvQAkQXuAHEE0wBtBRgAOQQqACkHLAA0BVwAHwW8AJYElgBnBW8AlgRqAIMFbwCJBi8APwS9/94FCQCjBFoAmgX+AC8E7wAsBbIAsQSIAJEGEgCpBOwAnAdPAKkGPgCdBYcAXQSoAGgEqABpBLcAOgOrADsFLgA5BEAAKQT2AFcGlABZBuQAZAZWADYFKwAxBEkAUgQHAHkHwQBEBnUAPwf7AKkGoQCQBPYAdgQdAGUFrQAjBSAARgVkAJYGAgAvBPIALAMgAG8EFAAACCkAAAQUAAAIKQAAArkAAAIKAAABXAAABH8AAAIwAAABogAAAQAAAADRAAAAAAAAAjQAJQI0ACUFQACiBj8AkAOlAA0BmQBgAZkAMAGXACQBmQBPAtQAaALbADwCwQAkBGkARgSPAFcCsgCKA8QAlAVaAJQBfgBSB6oARAJmAGwCZgBZA6MAOwLvADYDYAB6BKYAWwZVAB8GkACnCHYAqAXrAB8GKwCMBH4AXwXaAB8EIgAqBHQAIAVIAF0FTwAfBecAegPOAGgIOgCiBQEAZwUXAJgGJgBUBtcAZAbPAGMGagBZBI8AagWOAKkErwBFBJIAqATFAD8IOgBiAgz/sASCAGUEZACYBBEAPgQvAIUECAArAkwAtQKPAG4CAwBcBPMAPARuAB8EiwA8BtQAPAbUADwE7gA8BpsAXwAAAAAIMwBbCDUAXALvAEIC7wB6Au8AUAQPAFUEDwBgBA8AQgQOAHIEDwCABA8AMAQPAE4EDwBOBA8AmAQPAGMEIwBHBCsADQRUACYGFQAxBGcAFAR8AHQEJgAoBCAAQwRKAIoEuwBZBFwAigS7AGAE4wCKBgIAigO0AIoEVACKA88AKwHoAJcE4wCKBKwAYwPLAIoEIABDBDMAMAOhAA0DrwCKBGcAFAS7AGAEZwAUA4kAPgTOAIoD7wA/BWcAYAUXAGAE8gB1BXIAJgR8AGAHQQAnB08AigV0ACgEzQCKBFkAigUkAC4GCwAfBD8ARwTsAIoETgCLBMEAJwQfACIFKACKBGoAPQZRAIoGrACKBR0ACAXxAIoETgCKBHsASwZ2AIoEhwBQBBEACwZHAB8EeQCLBQkAiwU3ACMFwgBgBF8ADQSoACYGYQAmBGoAPQRqAIoFwwACBMoAXgQ/AEcEuwBgBDMAMAPjAEIIIgCKBKsAKALvAD4C7wA2Au8AWwLvAFYC7wA6Au8ATwLvAEkDlgCPArUAngPmAIoEOgAeBMMAZAVMALEFJACyBBMAkgU9ALIEDwCSBIAAigR8AGAEUACKBIUAEwH9AJ8DpACBAAD8pAPvAG4D8/9eBA4AaQP0AGkDrwCKA58AgQOeAIEC7wBQAu8ANgLvAFsC7wBWAu8AOgLvAE8C7wBJBYEAfgWuAH4FkwCyBeAAfgXjAH4D1QCgBIIAgwRYAA8EzwA+BGsAZQQuAEoDpACDAZEAZwakAGAEuQCCAfz/tgR/ADsEfwBzBH8AIwR/AHcEfwB2BH8ANwR/AH4EfwBfBH8AcAR/APQCBv+0AgT/tAH7AJsB+//6AfsAmwRQAIoFAAB4BCAAOwR9AIwEMgBcBJMAWwSMAFsEngBaBI0AjAScAFsEPQBdBH0AYAN5AFcE1gBnA7QAAAY5AAkD+ACKBLsAYATjADAE4wCKAfsAAAI1ACUFXQAHBV0ABwSG/+IExgAxAp3/9AU4ABwFOAAcBTgAHAU4ABwFOAAcBTgAHAU4ABwFNQB3BIwAqQSMAKkEjACpBIwAqQIt/+ACLQCwAi3/6QIt/9UFtACpBYAAdgWAAHYFgAB2BYAAdgWAAHYFMACMBTAAjAUwAIwFMACMBM4ADwRaAG0EWgBtBFoAbQRaAG0EWgBtBFoAbQRaAG0EMABcBD0AXQQ9AF0EPQBdBD0AXQH6/8YB+gCWAfr/zwH6/7sEagCMBJAAWwSQAFsEkABbBJAAWwSQAFsEaQCIBGkAiARpAIgEaQCIA8kAFgPJABYFOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FNQB3BDAAXAU1AHcEMABcBTUAdwQwAFwFNQB3BDAAXAU/AKkFGQBfBIwAqQQ9AF0EjACpBD0AXQSMAKkEPQBdBIwAqQQ9AF0EjACpBD0AXQVzAHoEfQBgBXMAegR9AGAFcwB6BH0AYAVzAHoEfQBgBbQAqQRoAIwCLf+3Afr/nQIt/8wB+v+yAi3/7AH6/9ICLQAYAfH/+wItAKkGlwC3A9oAjQRqADUCA/+0BQQAqQQOAI0ETgChAfEAkwROAKkB8QBXBE4AqQKHAJwETgCpAs0AnAW0AKkEagCMBbQAqQRqAIwFtACpBGoAjARq/7wFgAB2BJAAWwWAAHYEkABbBYAAdgSQAFsE7QCoArUAjATtAKgCtQBTBO0AqAK1AGMEvwBQBCAAXwS/AFAEIABfBL8AUAQgAF8EvwBQBCAAXwS/AFAEIABfBMYAMQKdAAkExgAxAp0ACQTGADECxQAJBTAAjARpAIgFMACMBGkAiAUwAIwEaQCIBTAAjARpAIgFMACMBGkAiAUwAIwEaQCIBxkAPQYDACsEzgAPA8kAFgTOAA8EygBWA/cAWATKAFYD9wBYBMoAVgP3AFgHev/yBsEATgWAAHYEiABbBID/vgSA/74EJgAoBIUAEwSFABMEhQATBIUAEwSFABMEhQATBIUAEwR8AGAD5gCKA+YAigPmAIoD5gCKAej/vgHoAI4B6P/HAej/swTjAIoEuwBgBLsAYAS7AGAEuwBgBLsAYAR8AHQEfAB0BHwAdAR8AHQEKwANBIUAEwSFABMEhQATBHwAYAR8AGAEfABgBHwAYASAAIoD5gCKA+YAigPmAIoD5gCKA+YAigSsAGMErABjBKwAYwSsAGME4wCKAej/lQHo/6oB6P/KAegABgHoAIgDzwArBFQAigO0AIIDtACKA7QAigO0AIoE4wCKBOMAigTjAIoEuwBgBLsAYAS7AGAESgCKBEoAigRKAIoEIABDBCAAQwQgAEMEIABDBCYAKAQmACgEJgAoBHwAdAR8AHQEfAB0BHwAdAR8AHQEfAB0BhUAMQQrAA0EKwANBCMARwQjAEcEIwBHBTgAHASM/ykFtP83Ai3/PQWU/+YFMv8UBWb/6QKX/5sFOAAcBPsAqQSMAKkEygBWBbQAqQItALcFBACpBvwAqQW0AKkFgAB2BQwAqQTGADEEzgAPBQQAOQIt/9UEzgAPBIUAZARQAGMEiACRApcAwwRdAI8EcwCaBJAAWwSIAJoD4AAhA/cAKQKX/+UEXQCPBJAAWwRdAI8GlwB6BIwAqQRzALEEvwBQAi0AtwIt/9UEagA1BSQAsgUEAKkFBwBNBTgAHAT7AKkEcwCxBIwAqQW0ALEG/ACpBbQAqQWAAHYFtQCyBQwAqQU1AHcExgAxBQQAOQRaAG0EPQBdBJ4AnASQAFsEfQCMBDAAXAPJABYD9wApBD0AXQNbAJoEIABfAfEAjQH6/7sB6f+/BFIAnAPJABYHGQA9BgMAKwcZAD0GAwArBxkAPQYDACsEzgAPA8kAFgFlAGcCjwCIBB4AoAID/7QBmQAwBvwAqQcDAIsFOAAcBFoAbQSMAKkFtACxBD0AXQSeAJwFiQBaBZoAXwUKABYEA//7CFkAWwlJAHYEvwBQBBAAWAU1AHcEMABcBM4ADwQCAC4CLQC3B0MAGwYgABUCLQC3BTgAHARaAG0FOAAcBFoAbQd6//IGwQBOBIwAqQQ9AF0FhwBdBDcAYgQ3AGIHQwAbBiAAFQS/AFAEEABYBbQAsQSeAJwFtACxBJ4AnAWAAHYEkABbBXEAZwSLAFsFcQBnBIsAWwVkAJMETQBkBQcATQPJABYFBwBNA8kAFgUHAE0DyQAWBXoAlgRZAGcG6wCyBjYAnQSDAF8FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FOAAcBFr/ygU4ABwEWgBtBTgAHARaAG0FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0EjACpBD0AXQSMAKkEPQBdBIwAqQQ9AF0EjACpBD0AXQSM//AEPf+6BIwAqQQ9AF0EjACpBD0AXQSMAKkEPQBdAi0AtwH6AJsCLQCjAfEAhQWAAHYEkABbBYAAdgSQAFsFgAB2BJAAWwWAAEcEkP/EBYAAdgSQAFsFgAB2BJAAWwWAAHYEkABbBX4AZQSSAFsFfgBlBJIAWwV+AGUEkgBbBX4AZQSSAFsFfgBlBJIAWwUwAIwEaQCIBTAAjARpAIgFkACMBPMAiAWQAIwE8wCIBZAAjATzAIgFkACMBPMAiAWQAIwE8wCIBM4ADwPJABYEzgAPA8kAFgTOAA8DyQAWBKEAXwTGADED2AAoBXoAlgRZAGcEcwCxA1sAmgYvAD8Evf/eBGgAjAUF/9QFBf/UBHMAAwNb//wFOP/3BCf/vwTOAA8EAgAuBQQAOQP3ACkEUABjBGwAEgY/AJAEfgBdBH4AXgR+ADUEfgCaBJIAmASmAIQEkgBkBKYAhwVzAHoEfQBgBbQAqQRqAIwFOAAcBFoAOQSMAF8EPQApAi3/CgH6/vAFgAB2BJAAMwTtAFUCtf+LBTAAjARpACsEpv7WBPsAqQR9AIwFPwCpBIMAXwU/AKkEgwBfBbQAqQRoAIwFBACpBA4AjQUEAKkEDgCNBE4AqQHxAIYG/ACpBwMAiwW0AKkEagCMBYAAdgUMAKkEfQCMBO0AqAK1AIIEvwBQBCAAXwTGADECnQAJBTAAjAUXABwD4AAhBRcAHAPgACEHGQA9BgMAKwTKAFYD9wBYBcb+MgSFABMEIv9jBR//gAIk/4QExf/VBGf/GwT8/+4EhQATBFAAigPmAIoEIwBHBOMAigHoAJcEVACKBgIAigTjAIoEuwBgBFwAigQmACgEKwANBFQAJgHo/7MEKwANA+YAigOvAIoEIABDAegAlwHo/7MDzwArBFQAigQfACIEhQATBFAAigOvAIoD5gCKBOwAigYCAIoE4wCKBLsAYATOAIoEXACKBHwAYAQmACgEVAAmBD8ARwTjAIoEfABgBCsADQXDAAIE7ACKBB8AIgVnAGAFtwCXBjkACQS7AGAEIABDBhUAMQYVADEGFQAxBCsADQU4ABwEWgBtBIwAqQQ9AF0EhQATA+YAigH6AIUAAAABAAAFEAkKBAAAAgICAwYFBwYCAwMEBQICAgQFBQUFBQUFBQUFAgIFBQUECAYGBgYFBQYGAgUGBQgGBgYGBgUFBgYIBgUFAgQCBAQDBQUFBQUDBQUCAgUCCAUFBQUDBQMFBAcEBAQDAgMGAgUFBgUCBgQHBAQFBwQDBQMDAwUEAgIDBAQHBwcECAUGBQUIBQUFBQUGAgUFAgYFCQgCBgMGBQYGAgUEBAQEAgMCBAMDAAAAAAAAAgUCBQYGBgUGBQYGBgUFBQUFBQUFAwUEBQUFBQUFBgYHBQUHBwYKCgcGBgcIBQYGBgcHBggJBwgGBggGBQUEBQcFBQUFBwUFBAcFBQcHBgcFBQcFBQUICAUFCAcFCAcFBQgHCAcKCQUEBgUGBQYFCAcIBwYFBgAAAAAAAAcGBQYFBQQFBQkHBgUGBQcGBwUJBgkIBwUGBQgGBgUGBQYHBQYFBwYGBQcGCAcGBQUFBAYFBgcIBwYFBQkHCQcGBQYGBgcGBAUJBQkDAgIFAgIBAQACAgYHBAICAgIDAwMFBQMEBgIJAwMEAwQFBwcKBwcFBwUFBgYHBAkGBgcICAcFBgUFBQkCBQUFBQUDAwIGBQUICAYHAAkJAwMDBQUFBQUFBQUFBQUFBQcFBQUFBQUFBQYHBAUEAgYFBAUFBAQFBQUEBQQGBgYGBQgIBgUFBgcFBgUFBQYFBwgGBwUFBwUFBwUGBgYFBQcFBQYFBQUFBAkFAwMDAwMDAwQDBAUFBgYFBgUFBQUFAgQABAQFBAQEBAMDAwMDAwMGBgYHBwQFBQUFBQQCBwUCBQUFBQUFBQUFBQICAgICBQYFBQUFBQUFBQUFBAUEBwQFBgYCAgYGBQUDBgYGBgYGBgYFBQUFAgICAgYGBgYGBgYGBgYFBQUFBQUFBQUFBQUFAgICAgUFBQUFBQUFBQUEBAYFBgUGBQYFBgUGBQYFBgYFBQUFBQUFBQUFBgUGBQYFBgUGBQICAgICAgICAgcEBQIGBQUCBQIFAwUDBgUGBQYFBQYFBgUGBQYDBgMGAwUFBQUFBQUFBQUFAwUDBQMGBQYFBgUGBQYFBgUIBwUEBQUEBQQFBAgIBgUFBQUFBQUFBQUFBQQEBAQCAgICBgUFBQUFBQUFBQUFBQUFBQUFBQQEBAQEBQUFBQYCAgICAgQFBAQEBAYGBgUFBQUFBQUFBQUFBQUFBQUFBQUHBQUFBQUGBQYCBgYGAwYGBQUGAgYIBgYGBQUGAgUFBQUDBQUFBQQEAwUFBQcFBQUCAgUGBgYGBgUFBggGBgYGBgUGBQUFBQUFBAQFBAUCAgIFBAgHCAcIBwUEAgMFAgIICAYFBQYFBQYGBgUJCgUFBgUFBQIIBwIGBQYFCAgFBQYFBQgHBQUGBQYFBgUGBQYFBgUGBAYEBgQGBQgHBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQUFBQUFBQUFBQUFBQUFBQUCAgICBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYGBgYGBgYGBgYFBAUEBQQFBQQGBQUEBwUFBgYFBAYFBQUGBAUFBwUFBQUFBQUFBgUGBQYFBQUCAgYFBgMGBQUGBQYFBgUGBQYFBgUFAggIBgUGBgUGAwUFBQMGBgQGBAgHBQQHBQUGAgUFBgUFBAUGAgUHBgUFBQUFAgUEBAUCAgQFBQUFBAQGBwYFBQUFBQUFBgUFBgYFBgYHBQUHBwcFBgUFBQUEAgAAAAMAAAADAAAAHAADAAEAAAAcAAMACgAABooABAZuAAAA9ACAAAYAdAAAAAIADQB+AKAArACtAL8AxgDPAOYA7wD+AQ8BEQElAScBMAFTAV8BZwF+AX8BjwGSAaEBsAHwAf8CGwI3AlkCvALHAskC3QLzAwEDAwMJAw8DIwOKA4wDkgOhA7ADuQPJA84D0gPWBCUELwRFBE8EYgRvBHkEhgSfBKkEsQS6BM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSAJ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jf2OIY5kjpqOtY72j1aPjpACkGeQxpDwkSaRjpHAkg6SQJKAkueTP5OhlACUcpTolV6VsZXxlkqWopcWl5GXzZgdmGaYrJjnmSmZaZmzmg2aGZpnmtebVZutm/CcdpzYnTmdl54snj2emJ7lnzOfdZ/moEqgsKEhobWiO6LSo0WjtaP4pFWkr6TcpVmluKXPpjWmeqclp4mn7ag9qIOoxKkGqU6po6oKqkqqZKqzqyircKu4rBishqyzrQKtYq12rYqtnK2wrcKt2a3trkmuu68Ir2iv0a/8sFCworDmsT2xZLHVseuyb7LSsv6zD7MgszOzRLNVs2ize7OOs6SzrLO0s7yzzbPYs+C0SLSXtMS1JbV4tdm2VLaetwS3ZrfKuEO4S7jmuTO5n7nvumi61rsnuye7L7uVu/u8WrydvQO9Gr0xvUi9X714vZG9nb2pvcC9173uvge+Hr41vky+Zb58vpO+qr7Bvti+8b8Ivx+/Nr9Pv2a/fb+Uv6q/wL/Zv/K//sAKwCHAOMBOwGfAfcCTwKrAw8DZwPDBB8EdwTPBTMFjwXrBkMGpwcDB2MHvwgXCHMIzwpfDL8NGw13DdMOKw6HDuMPPw+XD/MQtxETEWsRxxIjEn8S2xSDFpsW9xdPF6sYAxhfGLsZFxlzGaMZ/xpbGqMa/xtbG7ccExxvHMsc9x0jHX8drx3fHjselx7HHvcfUx+vH98gDyBjITchZyGXIfMiTyJ/Iq8jCyNjI7ckEyRrJMclIyWHJesmRyajJtMnAydfJ7coEyhvKMspIylTKYMpsynjKj8qlyrHKvcrJytXK7MsCyxnLL8tGy1zLc8uKy6PLvMvVy+7MTMyzzMrM4cz4zQ7NJ80+zVXNbM2DzZrNsM3Hzd7N9c4Mzi/OV85qzoHOmM6uzsTO3c72zwLPDs8lzzzPUs9qz4DPls+tz8bP3c/00AvQItA50FLQadCA0JbQr9DG0NzQ89FX0W7RhNGb0bLRyNHe0fTSC9J20ozSotK50tDS3NLz0wrTIdM400PTWdNw03zTktOe07PTv9PW0+LT+dQQ1CfUQNRX1GPUedSQ1KbUstTI1NTU6tT21QzVItU51VLVa9XI1d/V9dYN1iTWO9ZR1lzWaNZ01oDWjNaY1qTWwNbI1tDW2Nbg1ujW8Nb41wDXCNcQ1xjXINco1zDXSddi13nXkNen173X2Nfg1+jX8Nf42GPYe9iT2KrYwdjY2PHZCNl02XzZldmd2aXZvNnT2dvZ49nr2fPaCtoS2hraItoq2jLaOtpC2kraUtpa2nHaedqB2tXa3drl2v7bFdsd2yXbPttG213bc9uK26HbuNvP2+jcAdwY3C/cN9w/3EvcYtxq3IHcmNyk3LDcx9ze3PXdDN0U3RzdNd1O3VrdZt1y3X7dit2W3Z7dpt2u3cXd3N3k3fveEt4r3kTeTN5U3mvegt6b3qPevN7V3u7fB98f3zbfTN9l337fl9+w37jfwN/Z3/LgC+Aj4DrgUOBp4IHgmuCz4Mzg5OEB4R7hJuEy4T7hVeFs4YXhneG24c7h5+H/4hjiMOJL4mXifuKX4rDiyeLi4vvjFOMt40jjY+Nv43vjkuOp48Dj1uPv5AfkIOQ45FHkaeSC5JrkteTP5Obk/eUJ5RXlIeUt5UTlW+V05YzlpeW95dbl7uYH5h/mOuZU5mvmguaZ5rDmx+be5vXnC+cX5yPnL+c751LnaeeA55fnrufF59zn8+gK6CDoLOg46EToUOhn6H7oleir6MDozOjY6OTo8Oj86QjpFOkg6SjpiOno6ivqa+rP6y7reOvI7CHseOyA7Izsluye7Kbsruy27L7sxuzO7Nbs7e0E7RvtMu1L7WTtfe2W7a/tyO3h7fruE+4s7kXuXu5q7nbugu6O7pruq+637sPuz+7m7vjvBO8Q7xzvKO8070DvTO9Y73rvke+o77TvwO/M79jv5O/w8AjwH/A18EHwTfBZ8GXwcfB98InwlfCh8K3wufDF8NHw3fDl8O3w9fD98QXxDfEV8R3xJfEt8TXxPfFF8U3xZvF+8ZbxrfG18b3x1vHe8fXyC/IT8hvyI/Ir8kLySvJS8lryYvJq8nLyevKC8w3zWvO588HzzfPk8/r0AvQO9Br0JvQy9D70SvRW9GL0bvR69Ib0kvSe9Kr0tgAAAAUAZAAAAygFsAADAAYACQAMAA8AcbIMEBEREjmwDBCwANCwDBCwBtCwDBCwCdCwDBCwDdAAsABFWLACLxuxAh4+WbAARViwAC8bsQASPlmyBAIAERI5sgUCABESObIHAgAREjmyCAIAERI5sQoM9LIMAgAREjmyDQIAERI5sAIQsQ4M9DAxISERIQMRAQERAQMhATUBIQMo/TwCxDb+7v66AQzkAgP+/gEC/f0FsPqkBQf9fQJ3+xECeP1eAl6IAl4AAgCg//UBewWwAAMADAAwALAARViwAi8bsQIePlmwAEVYsAsvG7ELEj5ZsQYFsAorWCHYG/RZsgEGAhESOTAxASMDMwM0NjIWFAYiJgFbpw3CyTdsODhsNwGbBBX6rS09PVo7OwAAAgCIBBICIwYAAAQACQAZALADL7ICCgMREjmwAi+wB9CwAxCwCNAwMQEDIxMzBQMjEzMBFR5vAYwBDh5vAYwFeP6aAe6I/poB7gACAHcAAATTBbAAGwAfAJEAsABFWLAMLxuxDB4+WbAARViwEC8bsRAePlmwAEVYsAIvG7ECEj5ZsABFWLAaLxuxGhI+WbIdDAIREjl8sB0vGLEAA7AKK1gh2Bv0WbAE0LAdELAG0LAdELAL0LALL7EIA7AKK1gh2Bv0WbALELAO0LALELAS0LAIELAU0LAdELAW0LAAELAY0LAIELAe0DAxASEDIxMjNSETITUhEzMDIRMzAzMVIwMzFSMDIwMhEyEC/f74UI9Q7wEJRf7+AR1Sj1IBCFKQUsznReH7UJCeAQhF/vgBmv5mAZqJAWKLAaD+YAGg/mCL/p6J/mYCIwFiAAABAG7/MAQRBpwAKwBpALAARViwCS8bsQkePlmwAEVYsCIvG7EiEj5ZsgIiCRESObAJELAM0LAJELAQ0LAJELETAbAKK1gh2Bv0WbACELEZAbAKK1gh2Bv0WbAiELAf0LAiELAm0LAiELEpAbAKK1gh2Bv0WTAxATQmJyYmNTQ2NzUzFRYWFSM0JiMiBhUUFgQWFhUUBgcVIzUmJjUzFBYzMjYDWIGZ1cO/p5Wou7iGcnd+hQExq1HLt5S607mShoOWAXdcfjNB0aGk0hTb3BfszY2me25meWN3nmqpzhO/vxHnxouWfgAABQBp/+sFgwXFAA0AGgAmADQAOAB8ALAARViwAy8bsQMePlmwAEVYsCMvG7EjEj5ZsAMQsArQsAovsREEsAorWCHYG/RZsAMQsRgEsAorWCHYG/RZsCMQsB3QsB0vsCMQsSoEsAorWCHYG/RZsB0QsTEEsAorWCHYG/RZsjUjAxESObA1L7I3AyMREjmwNy8wMRM0NjMyFhUVFAYjIiY1FxQWMzI2NTU0JiIGFQE0NiAWFRUUBiAmNRcUFjMyNjU1NCYjIgYVBScBF2mng4Wlp4GCqopYSkdXVpRWAjunAQaop/78qopYSkhWV0lHWf4HaQLHaQSYg6qriEeEp6eLB05lYlVJTmZmUvzRg6moi0eDqaeLBk9lY1VKT2RjVPNCBHJCAAMAZf/sBPMFxAAeACcAMwCHALAARViwCS8bsQkePlmwAEVYsBwvG7EcEj5ZsABFWLAYLxuxGBI+WbIiHAkREjmyKgkcERI5sgMiKhESObIQKiIREjmyEQkcERI5shMcCRESObIZHAkREjmyFhEZERI5sBwQsR8BsAorWCHYG/RZsiEfERESObAJELExAbAKK1gh2Bv0WTAxEzQ2NyYmNTQ2MzIWFRQGBwcBNjUzFAcXIycGBiMiJAUyNwEHBhUUFgMUFzc2NjU0JiMiBmV1pWFCxKiWxFlvawFERKd70N5hSsdn1f7+AdeTev6dIaeZInZ2RDJkTFJgAYdpsHV2kEemvK+FWJVST/59gp//qPlzQkXiS3ABqRh7gnaOA+VgkFMwVz5DWW8AAQBnBCEA/QYAAAQAEACwAy+yAgUDERI5sAIvMDETAyMTM/0VgQGVBZH+kAHfAAEAhf4qApUGawARAAkAsA4vsAQvMDETNBISNxcGAgMHEBMWFwcmJwKFefCBJpK7CQGNVXUmhXnsAk/iAaABVEZ6cP40/uNV/n7+5KpgcUquAVQAAAEAJv4qAjcGawARAAkAsA4vsAQvMDEBFAICByc2EhM1NAICJzcWEhICN3XxhCeauwJYnWInhO93AkXf/mf+pklxdgHxAS8g0gFpAR5QcUn+qv5kAAEAHAJhA1UFsAAOACAAsABFWLAELxuxBB4+WbAA0BmwAC8YsAnQGbAJLxgwMQElNwUDMwMlFwUTBwMDJwFK/tIuAS4JmQoBKS7+zcZ8urR9A9dal3ABWP6jbphb/vFeASD+51sAAAEATgCSBDQEtgALABsAsAkvsADQsAkQsQYBsAorWCHYG/RZsAPQMDEBIRUhESMRITUhETMCngGW/mq6/moBlroDDa/+NAHMrwGpAAABAB3+3gE0ANsACAAYALAJL7EEBbAKK1gh2Bv0WbAA0LAALzAxEyc2NzUzFRQGhmleBLVj/t5Ig4unkWXKAAEAJQIfAg0CtgADABIAsAIvsQEBsAorWCHYG/RZMDEBITUhAg3+GAHoAh+XAAABAJD/9QF2ANEACQAcALAARViwBy8bsQcSPlmxAgWwCitYIdgb9FkwMTc0NjIWFRQGIiaQOXI7O3I5YTBAQDAuPj4AAAEAEv+DAxAFsAADABMAsAAvsABFWLACLxuxAh4+WTAxFyMBM7GfAmCefQYtAAACAHP/7AQKBcQADQAbADsAsABFWLAKLxuxCh4+WbAARViwAy8bsQMSPlmwChCxEQGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMQEQAiMiAgM1EBIzMhITJzQmIyIGBxEUFjMyNjcECt7s6eAE3u3r3gO5hI+OggKJi4mFAwJt/rv+xAE1ATP3AUEBOP7T/sYN69fW3v7Y7OHU5AABAKoAAALZBbcABgA6ALAARViwBS8bsQUePlmwAEVYsAAvG7EAEj5ZsgQABRESObAEL7EDAbAKK1gh2Bv0WbICAwUREjkwMSEjEQU1JTMC2br+iwISHQTRiajHAAEAXQAABDMFxAAXAE8AsABFWLAQLxuxEB4+WbAARViwAC8bsQASPlmxFwGwCitYIdgb9FmwAtCyAxAXERI5sBAQsQkBsAorWCHYG/RZsBAQsAzQshUXEBESOTAxISE1ATY2NTQmIyIGFSM0JDMyFhUUAQEhBDP8RgH4cFWKc4qZuQED2cvs/u7+egLbhQIwf59VcpKdjMn41bHX/tf+WQABAF7/7AP5BcQAJgB7ALAARViwDS8bsQ0ePlmwAEVYsBkvG7EZEj5ZsgANGRESObAAL7LPAAFdsp8AAXGyLwABXbJfAAFysA0QsQYBsAorWCHYG/RZsA0QsAnQsAAQsSYBsAorWCHYG/RZshMmABESObAZELAc0LAZELEfAbAKK1gh2Bv0WTAxATM2NjUQIyIGFSM0NjMyFhUUBgcWFhUUBCAkNTMUFjMyNjU0JicjAYaLg5b/eI+5/cPO6ntqeIP/AP5m/v+6ln6GjpyTiwMyAoZyAQCJca3l2sJfsiwmsH/E5t62c4qMg3+IAgAAAgA1AAAEUAWwAAoADgBKALAARViwCS8bsQkePlmwAEVYsAQvG7EEEj5ZsgEJBBESObABL7ECAbAKK1gh2Bv0WbAG0LABELAL0LIIBgsREjmyDQkEERI5MDEBMxUjESMRITUBMwEhEQcDhsrKuv1pAozF/YEBxRYB6Zf+rgFSbQPx/DkCyigAAAEAmv/sBC0FsAAdAGQAsABFWLABLxuxAR4+WbAARViwDS8bsQ0SPlmwARCxBAGwCitYIdgb9FmyBw0BERI5sAcvsRoBsAorWCHYG/RZsgUHGhESObANELAR0LANELEUAbAKK1gh2Bv0WbAHELAd0DAxExMhFSEDNjMyEhUUAiMiJiczFhYzMjY1NCYjIgcHzkoC6v2zLGuIx+rz2sH0Ea8RkHaBk5+EeUUxAtoC1qv+cz/++eDh/v3WvX1/sJuSsTUoAAACAIT/7AQcBbEAFAAhAFEAsABFWLAALxuxAB4+WbAARViwDS8bsQ0SPlmwABCxAQGwCitYIdgb9FmyBw0AERI5sAcvsRUBsAorWCHYG/RZsA0QsRwBsAorWCHYG/RZMDEBFSMGBAc2MzISFRQCIyIANTUQACUDIgYHFRQWMzI2NTQmA08i2P8AFHPHvuP1ztH+/AFXAVPSX6Afonl9j5EFsZ0E+OGE/vTU4f7yAUH9RwGSAakF/XByVkS03LiVlrkAAAEATQAABCUFsAAGADMAsABFWLAFLxuxBR4+WbAARViwAS8bsQESPlmwBRCxAwGwCitYIdgb9FmyAAMFERI5MDEBASMBITUhBCX9pcICWfzsA9gFSPq4BRiYAAMAcP/sBA4FxAAXACEAKwBkALAARViwFS8bsRUePlmwAEVYsAkvG7EJEj5ZsicJFRESObAnL7LPJwFdsRoBsAorWCHYG/RZsgMaJxESObIPJxoREjmwCRCxHwGwCitYIdgb9FmwFRCxIgGwCitYIdgb9FkwMQEUBgcWFhUUBiMiJjU0NjcmJjU0NjMyFgM0JiIGFBYzMjYBIgYVFBYyNjQmA+xzYnKF/9DS/YFyYXDswcDtl5v6l5ODgpT+6m2Hhd6FigQ0baowMbx3veDhvHa+MTCqbLjY2PyhepqY+I6PBBqHdG+Jid6MAAIAZP//A/gFxAAXACQAWwCwAEVYsAsvG7ELHj5ZsABFWLATLxuxExI+WbIDEwsREjmwAy+yAAMLERI5sBMQsRQBsAorWCHYG/RZsAMQsRgBsAorWCHYG/RZsAsQsR8BsAorWCHYG/RZMDEBBgYjIiYmNTQ2NjMyEhEVEAAFIzUzNjYlMjY3NTQmIyIGFRQWAz46oWB+u2ZvzIjY+f6w/q0kJ+X2/u5dnSSeeXqUjwKARVR84YiS6nz+vf7pNv5X/nkFnATn+nJUSrbku5mVwf//AIb/9QFtBEQAJgAS9gABBwAS//cDcwAQALAARViwDS8bsQ0aPlkwMf//ACn+3gFVBEQAJwAS/98DcwEGABAMAAAQALAARViwAy8bsQMaPlkwMQABAEgAwwN6BEoABgAWALAARViwBS8bsQUaPlmwAtCwAi8wMQEFFQE1ARUBCAJy/M4DMgKE/cQBe5IBesQAAAIAmAGPA9oDzwADAAcAJwCwBy+wA9CwAy+xAAGwCitYIdgb9FmwBxCxBAGwCitYIdgb9FkwMQEhNSERITUhA9r8vgNC/L4DQgMuof3AoAAAAQCGAMQD3ARLAAYAFgCwAEVYsAIvG7ECGj5ZsAXQsAUvMDEBATUBFQE1Axv9awNW/KoCigEDvv6Gkv6FwAACAEv/9QN2BcQAGAAhAFMAsABFWLAQLxuxEB4+WbAARViwIC8bsSASPlmxGwWwCitYIdgb9FmyABsQERI5sgQQABESObAQELEJAbAKK1gh2Bv0WbAQELAM0LIVABAREjkwMQE2Njc3NjU0JiMiBhUjNjYzMhYVFAcHBhUDNDYyFhQGIiYBZQIyTYNUbmlmfLkC47a906JtScE3bDg4bDcBmneKVIdfbWl3bFuix8uxr6psUZj+wy09PVo7OwAAAgBq/jsG1gWXADUAQgBsALAyL7AARViwCC8bsQgSPlmwA9CyDzIIERI5sA8vsgUIDxESObAIELE5ArAKK1gh2Bv0WbAV0LAyELEbArAKK1gh2Bv0WbAIELAq0LAqL7EjArAKK1gh2Bv0WbAPELFAArAKK1gh2Bv0WTAxAQYCIyInBgYjIiY3NhI2MzIWFwMGMzI2NxIAISIEAgcGEgQzMjY3FwYGIyIkAhMSEiQzMgQSAQYWMzI2NzcTJiMiBgbKDNi1uzU2i0qOkhMPeb9pUYBQNBOTcYwGE/65/rLJ/si0CwyQASfRWrU8JT7Nafr+mLMMDN4BfO/5AWSu+/IOUVg8byQBLjhAdZkB9vL+6KhVU+jNpQEDlCs//dbn4LQBhQGYx/6I9vj+k8EsI3MnMuEBpwEbARMBt+/g/lr+kI6YZl8JAfcd7gAAAgAcAAAFHQWwAAcACgBUsgoLDBESObAKELAE0ACwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmyCAQCERI5sAgvsQABsAorWCHYG/RZsgoEAhESOTAxASEDIwEzASMBIQMDzf2eicYCLKgCLcX9TQHv+AF8/oQFsPpQAhoCqQADAKkAAASIBbAADgAWAB8AWACwAEVYsAEvG7EBHj5ZsABFWLAALxuxABI+WbIXAAEREjmwFy+xDwGwCitYIdgb9FmyCA8XERI5sAAQsRABsAorWCHYG/RZsAEQsR8BsAorWCHYG/RZMDEzESEyFhUUBgcWFhUUBiMBESEyNjUQISUhMjY1NCYjIakB3O3vdGR2if7o/scBPYab/uL+wAEifpeMj/7kBbDEwGadKyG5gMTgAqn99It6AQeafmx4bQABAHf/7ATYBcQAHABHALAARViwCy8bsQsePlmwAEVYsAMvG7EDEj5ZsAsQsA/QsAsQsRIBsAorWCHYG/RZsAMQsRkBsAorWCHYG/RZsAMQsBzQMDEBBgQjIAARNTQSJDMyABcjJiYjIgIVFRQSMzI2NwTYG/7h7v7+/smRAQqv6AEYF8EZp5a40cayoKscAc7n+wFyATaMywE0pf795a6c/vD7je3+6JG0AAIAqQAABMYFsAALABUAOwCwAEVYsAEvG7EBHj5ZsABFWLAALxuxABI+WbABELEMAbAKK1gh2Bv0WbAAELENAbAKK1gh2Bv0WTAxMxEhMgQSFxUUAgQHAxEzMhI1NTQCJ6kBm74BJJ8Bn/7ZxNPK3vfp1gWwqP7KyV3O/sqmAgUS+4sBFP9V+AETAgAAAQCpAAAERgWwAAsAUQCwAEVYsAYvG7EGHj5ZsABFWLAELxuxBBI+WbILBAYREjmwCy+xAAGwCitYIdgb9FmwBBCxAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FkwMQEhESEVIREhFSERIQPg/YkC3fxjA5P9LQJ3AqH9/J0FsJ7+LAAAAQCpAAAELwWwAAkAQgCwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhI+WbIJAgQREjmwCS+xAAGwCitYIdgb9FmwBBCxBgGwCitYIdgb9FkwMQEhESMRIRUhESEDzP2dwAOG/ToCYwKD/X0FsJ7+DgABAHr/7ATcBcQAHwBsALAARViwCy8bsQsePlmwAEVYsAMvG7EDEj5ZsAsQsA/QsAsQsREBsAorWCHYG/RZsAMQsRgBsAorWCHYG/RZsh4DCxESObAeL7S/Hs8eAl20Dx4fHgJdtD8eTx4CXbEdAbAKK1gh2Bv0WTAxJQYEIyIkAic1EAAhMgQXIwIhIgIDFRQSMzI2NxEhNSEE3Er+97Cy/uyXAgEzARbkARYfwDb+3sHHAeC/bKI1/q8CEL9qaacBNMt/AUkBaunWASH+8f7/d/X+3zA5AUecAAEAqQAABQgFsAALAGcAsABFWLAGLxuxBh4+WbAARViwCi8bsQoePlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbAAELAJ0LAJL7LvCQFdtM8J3wkCcbKPCQFxsi8JAV2ynwkBcrECAbAKK1gh2Bv0WTAxISMRIREjETMRIREzBQjB/SLAwALewQKh/V8FsP2OAnIAAAEAtwAAAXcFsAADAB0AsABFWLACLxuxAh4+WbAARViwAC8bsQASPlkwMSEjETMBd8DABbAAAAEANf/sA8wFsAAPAC8AsABFWLAALxuxAB4+WbAARViwBS8bsQUSPlmwCdCwBRCxDAGwCitYIdgb9FkwMQEzERQGIyImNTMUFjMyNjcDC8H70dnywImCd5MBBbD7+dHs3sh9jJaHAAEAqQAABQUFsAALAHQAsABFWLAFLxuxBR4+WbAARViwBy8bsQcePlmwAEVYsAIvG7ECEj5ZsABFWLALLxuxCxI+WbIAAgUREjlAEUoAWgBqAHoAigCaAKoAugAIXbI5AAFdsgYFAhESOUATNgZGBlYGZgZ2BoYGlgamBrYGCV0wMQEHESMRMxEBMwEBIwIbssDAAofo/cMCauYCpbn+FAWw/TAC0P19/NMAAQCpAAAEHAWwAAUAKQCwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhI+WbEAAbAKK1gh2Bv0WTAxJSEVIREzAWoCsvyNwZ2dBbAAAQCpAAAGUgWwAA4AWQCwAEVYsAAvG7EAHj5ZsABFWLACLxuxAh4+WbAARViwBC8bsQQSPlmwAEVYsAgvG7EIEj5ZsABFWLAMLxuxDBI+WbIBAAQREjmyBwAEERI5sgoABBESOTAxCQIzESMREwEjARMRIxEBoQHcAdz5wBL+IpP+IxPABbD7XASk+lACNwJk+2UEmP2f/ckFsAAAAQCpAAAFCAWwAAkATLIBCgsREjkAsABFWLAFLxuxBR4+WbAARViwCC8bsQgePlmwAEVYsAAvG7EAEj5ZsABFWLADLxuxAxI+WbICBQAREjmyBwUAERI5MDEhIwERIxEzAREzBQjB/SPBwQLfvwRi+54FsPuZBGcAAgB2/+wFCQXEABEAHwA7ALAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5ZsA0QsRUBsAorWCHYG/RZsAQQsRwBsAorWCHYG/RZMDEBFAIEIyIkAic1NBIkMzIEEhUnEAIjIgIHFRQSMzISNwUJkP74sKz+9pMCkgELrK8BC5C/0Lu20QPTubrMAwKp1v7BqKkBOc5p0gFCq6n+v9UCAQMBFf7r9mv7/uEBD/0AAAIAqQAABMAFsAAKABMAT7IKFBUREjmwChCwDNAAsABFWLADLxuxAx4+WbAARViwAS8bsQESPlmyCwMBERI5sAsvsQABsAorWCHYG/RZsAMQsRIBsAorWCHYG/RZMDEBESMRITIEFRQEIyUhMjY1NCYnIQFpwAIZ7wEP/vf3/qkBWZqkpI/+nAI6/cYFsPTJ1OWdkYmCnAMAAgBt/woFBgXEABUAIgBPsggjJBESObAIELAZ0ACwAEVYsBEvG7ERHj5ZsABFWLAILxuxCBI+WbIDCBEREjmwERCxGQGwCitYIdgb9FmwCBCxIAGwCitYIdgb9FkwMQEUAgcFByUGIyIkAic1NBIkMzIEEhUnEAIjIgIHFRQSIBI3BQGGeQEEg/7NSFCs/vaTApIBC6ywAQuQwM2+tdED0QF0zAMCqdP+z1bMefQSqQE5zmnSAUKrqv7B1QEBAQEX/uv2a/r+4AEP/QAAAgCoAAAEyQWwAA4AFwBjsgUYGRESObAFELAW0ACwAEVYsAQvG7EEHj5ZsABFWLACLxuxAhI+WbAARViwDS8bsQ0SPlmyEAQCERI5sBAvsQABsAorWCHYG/RZsgsABBESObAEELEWAbAKK1gh2Bv0WTAxASERIxEhMgQVFAYHARUjASEyNjU0JichAr/+qsEB4vYBCZODAVbO/W4BJ4+poZj+2gJN/bMFsODWiMoy/ZYMAuqUfIeQAQAAAQBQ/+wEcgXEACYAZLIAJygREjkAsABFWLAGLxuxBh4+WbAARViwGi8bsRoSPlmwBhCwC9CwBhCxDgGwCitYIdgb9FmyJhoGERI5sCYQsRQBsAorWCHYG/RZsBoQsB/QsBoQsSIBsAorWCHYG/RZMDEBJiY1NCQzMhYWFSM0JiMiBhUUFgQWFhUUBCMiJCY1MxQWMzI2NCYCVvfhARPcluuBwaiZjp+XAWvNY/7s55b+/I3Bw6OYopYCiUfPmKzhdMx5hJd9b1l7Znukb7HVc8h/hJl81nUAAQAxAAAElwWwAAcALwCwAEVYsAYvG7EGHj5ZsABFWLACLxuxAhI+WbAGELEAAbAKK1gh2Bv0WbAE0DAxASERIxEhNSEEl/4sv/4tBGYFEvruBRKeAAABAIz/7ASqBbAAEgA9sgUTFBESOQCwAEVYsAAvG7EAHj5ZsABFWLAJLxuxCR4+WbAARViwBS8bsQUSPlmxDgGwCitYIdgb9FkwMQERBgAHByIAJxEzERQWMzI2NREEqgH+/9wz7/7kAr6uoaOtBbD8Is7++hACAQLiA+D8Jp6vrp4D2wABABwAAAT9BbAABgA4sgAHCBESOQCwAEVYsAEvG7EBHj5ZsABFWLAFLxuxBR4+WbAARViwAy8bsQMSPlmyAAEDERI5MDElATMBIwEzAosBoNL95Kr95dH/BLH6UAWwAAABAD0AAAbtBbAAEgBZALAARViwAy8bsQMePlmwAEVYsAgvG7EIHj5ZsABFWLARLxuxER4+WbAARViwCi8bsQoSPlmwAEVYsA8vG7EPEj5ZsgEDChESObIGAwoREjmyDQMKERI5MDEBFzcBMwEXNxMzASMBJwcBIwEzAeMcKQEgogEZKB/iwf6fr/7UFxf+ya/+oMABy8CtA/j8CLDEA+T6UAQlb2/72wWwAAEAOQAABM4FsAALAGsAsABFWLABLxuxAR4+WbAARViwCi8bsQoePlmwAEVYsAQvG7EEEj5ZsABFWLAHLxuxBxI+WbIAAQQREjlACYYAlgCmALYABF2yBgEEERI5QAmJBpkGqQa5BgRdsgMABhESObIJBgAREjkwMQEBMwEBIwEBIwEBMwKEAV3i/jQB1+T+mv6Y4wHY/jPhA4ICLv0u/SICOP3IAt4C0gAAAQAPAAAEuwWwAAgAMQCwAEVYsAEvG7EBHj5ZsABFWLAHLxuxBx4+WbAARViwBC8bsQQSPlmyAAEEERI5MDEBATMBESMRATMCZQF82v4KwP4K3ALVAtv8b/3hAh8DkQAAAQBWAAAEegWwAAkARgCwAEVYsAcvG7EHHj5ZsABFWLACLxuxAhI+WbEAAbAKK1gh2Bv0WbIEAAIREjmwBxCxBQGwCitYIdgb9FmyCQUHERI5MDElIRUhNQEhNSEVATkDQfvcAx787wP3nZ2QBIKejQAAAQCS/sgCCwaAAAcAJACwBC+wBy+xAAGwCitYIdgb9FmwBBCxAwGwCitYIdgb9FkwMQEjETMVIREhAgu/v/6HAXkF6Pl4mAe4AAABACj/gwM4BbAAAwATALACL7AARViwAC8bsQAePlkwMRMzASMosAJgsAWw+dMAAQAJ/sgBgwaAAAcAJwCwAi+wAS+wAhCxBQGwCitYIdgb9FmwARCxBgGwCitYIdgb9FkwMRMhESE1MxEjCQF6/obBwQaA+EiYBogAAAEAQALZAxQFsAAGACeyAAcIERI5ALAARViwAy8bsQMePlmwANCyAQcDERI5sAEvsAXQMDEBAyMBMwEjAaq+rAErfwEqqwS7/h4C1/0pAAEABP9pA5gAAAADABwAsABFWLADLxuxAxI+WbEAAbAKK1gh2Bv0WTAxBSE1IQOY/GwDlJeXAAEAOQTaAdoGAAADACMAsAEvsg8BAV2wANAZsAAvGLABELAC0LACL7QPAh8CAl0wMQEjATMB2p/+/t8E2gEmAAACAG3/7APqBE4AHgAoAHyyFykqERI5sBcQsCDQALAARViwFy8bsRcaPlmwAEVYsAQvG7EEEj5ZsABFWLAALxuxABI+WbICFwQREjmyCxcEERI5sAsvsBcQsQ8BsAorWCHYG/RZshILFxESObAEELEfAbAKK1gh2Bv0WbALELEjAbAKK1gh2Bv0WTAxISYnBiMiJjU0JDMzNTQmIyIGFSM0NjYzMhYXERQXFSUyNjc1IyAVFBYDKBAKgbOgzQEB6bR0cWOGunPFdrvUBCb+C1ecI5H+rHQgUoa1i6m7VWFzZEdRl1i7pP4OlVgQjVpI3sdXYgAAAgCM/+wEIAYAAA4AGQBmshIaGxESObASELAD0ACwCC+wAEVYsAwvG7EMGj5ZsABFWLADLxuxAxI+WbAARViwBi8bsQYSPlmyBQgDERI5sgoMAxESObAMELESAbAKK1gh2Bv0WbADELEXAbAKK1gh2Bv0WTAxARQCIyInByMRMxE2IBIRJzQmIyIHERYzMjYEIOTAzXAJqrlwAYrhuZKJt1BVtIWUAhH4/tORfQYA/cOL/tb+/QW9zqr+LKrOAAEAXP/sA+wETgAdAEuyEB4fERI5ALAARViwEC8bsRAaPlmwAEVYsAgvG7EIEj5ZsQABsAorWCHYG/RZsAgQsAPQsBAQsBTQsBAQsRcBsAorWCHYG/RZMDElMjY3Mw4CIyIAETU0NjYzMhYXIyYmIyIGFRUUFgI+Y5QIrwV2xW7d/vt02ZS28QivCI9pjZuag3haXahkAScBAB+e9ojarmmHy8Aju8oAAAIAX//sA/AGAAAPABoAZrIYGxwREjmwGBCwA9AAsAYvsABFWLADLxuxAxo+WbAARViwDC8bsQwSPlmwAEVYsAgvG7EIEj5ZsgUDDBESObIKAwwREjmwDBCxEwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMRM0EjMyFxEzESMnBiMiAjUXFBYzMjcRJiMiBl/sv75vuaoJb8a87bmYhrBRU6yImAIm+QEvggI0+gB0iAE0+Ae40J4B8ZnSAAACAF3/7APzBE4AFQAdAGyyCB4fERI5sAgQsBbQALAARViwCC8bsQgaPlmwAEVYsAAvG7EAEj5ZshoIABESObAaL7S/Gs8aAl2xDAGwCitYIdgb9FmwABCxEAGwCitYIdgb9FmyEwgAERI5sAgQsRYBsAorWCHYG/RZMDEFIgA1NTQ2NjMyEhEVIRYWMzI2NxcGASIGByE1JiYCTdz+7HvdgdPq/SMEs4piiDNxiP7ZcJgSAh4IiBQBIfIiof2P/ur+/U2gxVBCWNEDyqOTDo2bAAABADwAAALKBhUAFQBlsg8WFxESOQCwAEVYsAgvG7EIID5ZsABFWLADLxuxAxo+WbAARViwES8bsREaPlmwAEVYsAAvG7EAEj5ZsAMQsQEBsAorWCHYG/RZsAgQsQ0BsAorWCHYG/RZsAEQsBPQsBTQMDEzESM1MzU0NjMyFwcmIyIGFRUzFSMR56uruqpAPwovNVpi5+cDq49vrr4RlglpYnKP/FUAAgBg/lYD8gROABkAJACGsiIlJhESObAiELAL0ACwAEVYsAMvG7EDGj5ZsABFWLAGLxuxBho+WbAARViwCy8bsQsUPlmwAEVYsBcvG7EXEj5ZsgUDFxESObIPFwsREjmwCxCxEQGwCitYIdgb9FmyFQMXERI5sBcQsR0BsAorWCHYG/RZsAMQsSIBsAorWCHYG/RZMDETNBIzMhc3MxEUBiMiJic3FjMyNjU1BiMiAjcUFjMyNxEmIyIGYOrBxm8JqfnSdeA7YHesh5dvwL7rupaHr1JVqoeYAib9ASuMePvg0vJkV2+TmIpdgAEy87fRnwHum9IAAQCMAAAD3wYAABEASrIKEhMREjkAsBAvsABFWLACLxuxAho+WbAARViwBS8bsQUSPlmwAEVYsA4vG7EOEj5ZsgACBRESObACELEKAbAKK1gh2Bv0WTAxATYzIBMRIxEmJiMiBgcRIxEzAUV7xQFXA7kBaW9aiCa5uQO3l/59/TUCzHVwYE78/QYAAAACAI0AAAFoBcQAAwAMAD+yBg0OERI5sAYQsAHQALAARViwAi8bsQIaPlmwAEVYsAAvG7EAEj5ZsAIQsArQsAovsQYFsAorWCHYG/RZMDEhIxEzAzQ2MhYUBiImAVW5ucg3bDg4bDcEOgEfLT4+Wjw8AAAC/7/+SwFZBcQADAAWAEuyEBcYERI5sBAQsADQALAARViwDC8bsQwaPlmwAEVYsAMvG7EDFD5ZsQgBsAorWCHYG/RZsAwQsBXQsBUvsRAFsAorWCHYG/RZMDEBERAhIic1FjMyNjURAzQ2MzIWFAYiJgFL/uU9NCA0PkETNzU2ODhsNgQ6+0n+yBKUCENTBLsBHyw/Plo8PAAAAQCNAAAEDAYAAAwAdQCwAEVYsAQvG7EEID5ZsABFWLAILxuxCBo+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgAIAhESOUAVOgBKAFoAagB6AIoAmgCqALoAygAKXbIGCAIREjlAFTYGRgZWBmYGdgaGBpYGpga2BsYGCl0wMQEHESMRMxE3ATMBASMBunS5uWMBUeH+WwHW2QH1ef6EBgD8X3cBZP48/YoAAQCcAAABVQYAAAMAHQCwAEVYsAIvG7ECID5ZsABFWLAALxuxABI+WTAxISMRMwFVubkGAAAAAQCLAAAGeAROAB0AeLIEHh8REjkAsABFWLADLxuxAxo+WbAARViwCC8bsQgaPlmwAEVYsAAvG7EAGj5ZsABFWLALLxuxCxI+WbAARViwFC8bsRQSPlmwAEVYsBsvG7EbEj5ZsgEICxESObIFCAsREjmwCBCxEAGwCitYIdgb9FmwGNAwMQEXNjMyFzY2MyATESMRNCYjIgYHESMRNCMiBxEjEQE6BXfK41I2rXYBZAa5an1niAu657ZDuQQ6eIyuTmD+h/0rAsp0c3to/TICxeyb/OoEOgAAAQCMAAAD3wROABEAVLILEhMREjkAsABFWLADLxuxAxo+WbAARViwAC8bsQAaPlmwAEVYsAYvG7EGEj5ZsABFWLAPLxuxDxI+WbIBAwYREjmwAxCxCwGwCitYIdgb9FkwMQEXNjMgExEjESYmIyIGBxEjEQE7BnzIAVcDuQFpb1qIJrkEOoic/n39NQLMdXBgTvz9BDoAAgBb/+wENAROAA8AGwBFsgwcHRESObAMELAT0ACwAEVYsAQvG7EEGj5ZsABFWLAMLxuxDBI+WbETAbAKK1gh2Bv0WbAEELEZAbAKK1gh2Bv0WTAxEzQ2NjMyABUVFAYGIyIANRcUFjMyNjU0JiMiBlt934/dARF54ZLc/u+6p4yNpqmMiagCJ5/+iv7O/g2e+4wBMvwJtNrdx7Ld2gACAIz+YAQeBE4ADwAaAHCyExscERI5sBMQsAzQALAARViwDC8bsQwaPlmwAEVYsAkvG7EJGj5ZsABFWLAGLxuxBhQ+WbAARViwAy8bsQMSPlmyBQwDERI5sgoMAxESObAMELETAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WTAxARQCIyInESMRMxc2MzISESc0JiMiBxEWMzI2BB7iwcVxuakJccnD47mciKhUU6uFnQIR9/7Sff33Bdp4jP7a/voEt9SV/fuU0wAAAgBf/mAD7wROAA8AGgBtshgbHBESObAYELAD0ACwAEVYsAMvG7EDGj5ZsABFWLAGLxuxBho+WbAARViwCC8bsQgUPlmwAEVYsAwvG7EMEj5ZsgUDDBESObIKAwwREjmxEwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMRM0EjMyFzczESMRBiMiAjUXFBYzMjcRJiMiBl/qxcBvCKq5cLrE6bmdhaVXWKKGngIm/wEpgW36JgIEeAEx/Ai61JICEo/VAAEAjAAAApcETgANAEeyBA4PERI5ALAARViwCy8bsQsaPlmwAEVYsAgvG7EIGj5ZsABFWLAFLxuxBRI+WbALELECAbAKK1gh2Bv0WbIJCwUREjkwMQEmIyIHESMRMxc2MzIXApcqMbZBubQDW6c2HAOUB5v9AAQ6fZEOAAABAF//7AO7BE4AJgBksgknKBESOQCwAEVYsAkvG7EJGj5ZsABFWLAcLxuxHBI+WbIDHAkREjmwCRCwDdCwCRCxEAGwCitYIdgb9FmwAxCxFQGwCitYIdgb9FmwHBCwIdCwHBCxJAGwCitYIdgb9FkwMQE0JiQmJjU0NjMyFhUjNCYjIgYVFBYEFhYVFAYjIiYmNTMWFjMyNgMCcf7npU/hr7jluoFiZXJqARWsU+i5gshxuQWLcml/AR9LUzxUdFCFuL6UTG5YR0NEPlZ5V5GvXKVgXW1VAAABAAn/7AJWBUAAFQBhsg4WFxESOQCwAEVYsAEvG7EBGj5ZsABFWLATLxuxExo+WbAARViwDS8bsQ0SPlmwARCwANCwAC+wARCxAwGwCitYIdgb9FmwDRCxCAGwCitYIdgb9FmwAxCwEdCwEtAwMQERMxUjERQWMzI3FQYjIiY1ESM1MxEBh8rKNkEgOElFfH7FxQVA/vqP/WFBQQyWFJaKAp+PAQYAAQCI/+wD3AQ6ABAAVLIKERIREjkAsABFWLAGLxuxBho+WbAARViwDS8bsQ0aPlmwAEVYsAIvG7ECEj5ZsABFWLAQLxuxEBI+WbIADQIREjmwAhCxCgGwCitYIdgb9FkwMSUGIyImJxEzERQzMjcRMxEjAyhs0a21AbnI1Ea5sGt/ycUCwP1F9p4DE/vGAAEAIQAAA7oEOgAGADiyAAcIERI5ALAARViwAS8bsQEaPlmwAEVYsAUvG7EFGj5ZsABFWLADLxuxAxI+WbIABQMREjkwMSUBMwEjATMB8QEMvf58jf54vfsDP/vGBDoAAAEAKwAABdMEOgAMAGCyBQ0OERI5ALAARViwAS8bsQEaPlmwAEVYsAgvG7EIGj5ZsABFWLALLxuxCxo+WbAARViwAy8bsQMSPlmwAEVYsAYvG7EGEj5ZsgALAxESObIFCwMREjmyCgsDERI5MDElEzMBIwEBIwEzExMzBErQuf7Flv75/wCW/sa41fyV/wM7+8YDNPzMBDr81gMqAAEAKQAAA8oEOgALAFMAsABFWLABLxuxARo+WbAARViwCi8bsQoaPlmwAEVYsAQvG7EEEj5ZsABFWLAHLxuxBxI+WbIACgQREjmyBgoEERI5sgMABhESObIJBgAREjkwMQETMwEBIwMDIwEBMwH38Nj+ngFt1vr61wFt/p7WAq8Bi/3p/d0Blf5rAiMCFwABABb+SwOwBDoADwBKsgAQERESOQCwAEVYsAEvG7EBGj5ZsABFWLAOLxuxDho+WbAARViwBS8bsQUUPlmyAA4FERI5sQkBsAorWCHYG/RZsAAQsA3QMDEBEzMBAiMnJzUXMjY3NwEzAe78xv5NZdwjRTJeaSIp/n7KAQ8DK/sf/vIDDZYETGVuBC4AAAEAWAAAA7MEOgAJAEYAsABFWLAHLxuxBxo+WbAARViwAi8bsQISPlmxAAGwCitYIdgb9FmyBAACERI5sAcQsQUBsAorWCHYG/RZsgkFBxESOTAxJSEVITUBITUhFQE6Ann8pQJV/bQDNJeXiAMZmYMAAAEAQP6SAp4GPQAYADKyExkaERI5ALANL7AAL7IHDQAREjmwBy+yHwcBXbEGA7AKK1gh2Bv0WbITBgcREjkwMQEmJjU1NCM1MjU1NjY3FwYRFRQHFhUVEhcCeLGz1NQCr7Mm0aenA87+kjLlvMfzkfLQt+Ezc0P+5srjWVrlzv7tQgABAK/+8gFEBbAAAwATALAAL7AARViwAi8bsQIePlkwMQEjETMBRJWV/vIGvgAAAQAT/pICcgY9ABgAMrIFGRoREjkAsAsvsBgvshELGBESObARL7IfEQFdsRIDsAorWCHYG/RZsgUSERESOTAxFzYTNTQ3JjU1ECc3FhYXFRQzFSIVFRQGBxPLB7W10SaxsgHU1LWv+0EBCtznVFLpywEaQ3My4bnS75HzyrziMgABAIMBkgTvAyIAFwBEshEYGRESOQCwAEVYsA8vG7EPGD5ZsADQsA8QsBTQsBQvsQMBsAorWCHYG/RZsA8QsQgBsAorWCHYG/RZsAMQsAvQMDEBFAYjIi4CIyIGFQc0NjMyFhYXFzI2NQTvu4lIgKlKKk5UobiLTIywQB1MXwMJntk1lCRrXgKgzkChCgJ0XwACAIv+mAFmBE0AAwAMADOyBg0OERI5sAYQsADQALACL7AARViwCy8bsQsaPlmxBgWwCitYIdgb9FmyAQIGERI5MDETMxMjExQGIiY0NjIWqqgNwsk3bDg4bDcCrPvsBUwtPj5aPDwAAAEAaf8LA/kFJgAhAFSyACIjERI5ALAARViwFC8bsRQaPlmwAEVYsAovG7EKEj5ZsAfQsQABsAorWCHYG/RZsAoQsAPQsBQQsBHQsBQQsBjQsBQQsRsBsAorWCHYG/RZMDElMjY3MwYGBxUjNSYCNTU0Ejc1MxUWFhcjJiYjIgYVFRQWAkpklAivBsaQubPIyrG5lsAGrwiPaY2bm4N5WX7JGunqIgEc3CPUAR0h4t8X1JZph8vAI7vKAAEAWwAABGgFxAAhAH+yHCIjERI5ALAARViwFC8bsRQePlmwAEVYsAUvG7EFEj5Zsh8UBRESObAfL7JfHwFyso8fAXGyvx8BXbEAAbAKK1gh2Bv0WbAFELEDAbAKK1gh2Bv0WbAH0LAI0LAAELAN0LAfELAP0LAUELAY0LAUELEbAbAKK1gh2Bv0WTAxARcUByEHITUzNjY3NScjNTMDNDYzMhYVIzQmIyIGFRMhFQHBCD4C3QH7+E0oMgIIpaAJ9ci+3r9/b2mCCQE/Am7cmludnQmDYAjdnQEEx+7UsWt8mn3+/J0AAgBp/+UFWwTxABsAKgBBsgIrLBESObACELAn0ACwAEVYsAIvG7ECEj5ZsBDQsBAvsAIQsR8BsAorWCHYG/RZsBAQsScBsAorWCHYG/RZMDElBiMiJwcnNyY1NDcnNxc2MzIXNxcHFhUUBxcHARQWFjI2NjU0JiYjIgYGBE+f0c+fhoKLaHCTgpOew8SflYSXbmaPhPxgc8TixHFxxXBxxHNwhIKIh42cys6jl4iWeHmYiZqjy8SfkIgCe3vUenvTe3rTeXjUAAABAA8AAAQkBbAAFgBxsgAXGBESOQCwAEVYsAEvG7EBHj5ZsABFWLALLxuxCxI+WbIACwEREjmyBwELERI5sAcvsAPQsAMvsQUCsAorWCHYG/RZsAcQsQkCsAorWCHYG/RZsA3QsAcQsA/QsAUQsBHQsAMQsBPQsAEQsBXQMDEBATMBIRUhFSEVIREjESE1ITUhNSEBMwIbATTV/pEBBf68AUT+vMH+wgE+/sIBB/6R2AMZApf9MH2lfP6+AUJ8pX0C0AAAAgCT/vIBTQWwAAMABwAYALAAL7AARViwBi8bsQYePlmyBQEDKzAxExEzEREjETOTurq6/vIDF/zpA8gC9gACAFr+EQR5BcQANABEAISyI0VGERI5sCMQsDXQALAIL7AARViwIy8bsSMePlmyFggjERI5sBYQsT8BsAorWCHYG/RZsgIWPxESObAIELAO0LAIELERAbAKK1gh2Bv0WbIwIwgREjmwMBCxNwGwCitYIdgb9FmyHTcwERI5sCMQsCfQsCMQsSoBsAorWCHYG/RZMDEBFAcWFhUUBCMiJicmNTcUFjMyNjU0JicuAjU0NyYmNTQkMzIEFSM0JiMiBhUUFhYEHgIlJicGBhUUFhYEFzY2NTQmBHm6RUj+/ORwyUaLurSciKaO0bbAXbZCRwEL3ugBBLmoi46hOIcBH6lxOv3hWktQSzaFARwsTlSLAa+9VTGIZKjHODlxzQKCl3VgWWk+MG+bb7pYMYhkpsjizX2bc2JFUEFQSGGBqxgbE2VFRlBCUhEUZUVYbQAAAgBlBPAC7gXFAAgAEQAeALAHL7ECBbAKK1gh2Bv0WbAL0LAHELAQ0LAQLzAxEzQ2MhYUBiImJTQ2MhYUBiImZTdsODhsNwGuN2w4OGw3BVstPT1aPDwrLT4+Wjw8AAMAW//rBeYFxAAbACoAOQCZsic6OxESObAnELAD0LAnELA20ACwAEVYsC4vG7EuHj5ZsABFWLA2LxuxNhI+WbIDNi4REjmwAy+0DwMfAwJdsgouNhESObAKL7QAChAKAl2yDgoDERI5sRECsAorWCHYG/RZsAMQsRgCsAorWCHYG/RZshsDChESObA2ELEgBLAKK1gh2Bv0WbAuELEnBLAKK1gh2Bv0WTAxARQGIyImNTU0NjMyFhUjNCYjIgYVFRQWMzI2NSUUEgQgJBI1NAIkIyIEAgc0EiQgBBIVFAIEIyIkAgRfrZ6dvb+boKySX1tebGxeXF39AaABEwFAARKgnv7toaD+7J9zuwFLAYABSru0/rXGxf61tgJVmaHTtm6w06SVY1WKe3F4ilRlhKz+26amASWsqgEip6X+3KrKAVrHx/6mysX+qNHPAVgAAAIAkwKzAw8FxAAbACUAb7IOJicREjmwDhCwHdAAsABFWLAVLxuxFR4+WbIEJhUREjmwBC+wANCyAgQVERI5sgsEFRESObALL7AVELEOA7AKK1gh2Bv0WbIRCxUREjmwBBCxHAOwCitYIdgb9FmwCxCxIASwCitYIdgb9FkwMQEmJwYjIiY1NDYzMzU0IyIGFSc0NjMyFhURFBclMjY3NSMGBhUUAmoMBkyAd4KnrGx8RU+hrImFmhr+pCtYHHBTWQLBIiZWfGdveDSHNjMMZ4KPhv7EYVF7KBuOAT8zXgD//wBmAJcDZAOzACYBkvr+AAcBkgFE//4AAQB/AXcDvgMgAAUAGwCwBC+wAdCwAS+wBBCxAgGwCitYIdgb9FkwMQEjESE1IQO+uv17Az8BdwEIoQAABABa/+sF5QXEAA4AHgA0AD0ArbI2Pj8REjmwNhCwC9CwNhCwE9CwNhCwI9AAsABFWLADLxuxAx4+WbAARViwCy8bsQsSPlmxEwSwCitYIdgb9FmwAxCxGwSwCitYIdgb9FmyIAsDERI5sCAvsiIDCxESObAiL7QAIhAiAl2yNSAiERI5sDUvsr81AV20ADUQNQJdsR8CsAorWCHYG/RZsigfNRESObAgELAv0LAvL7AiELE9ArAKK1gh2Bv0WTAxEzQSJCAEEhUUAgQjIiQCNxQSBDMyJBI1NAIkIyIEAgURIxEhMhYVFAcWFxUUFxUjJjQnJicnMzY2NTQmIyNauwFLAYABSru0/rXGxf61tnOgAROgoQEUnZ3+7KGg/uyfAcCNARSZqYB6ARGRDgMQc7CcSFhOZIoC2coBWsfH/qbKxf6o0c8BWMes/tumqQEirKsBIael/tz1/q4DUYN9e0Eymj1WJhAkuRFgBIACQjZJPQAAAQCOBRYDLgWlAAMAGbIBBAUREjkAsAIvsQAQsAorWCHYG/RZMDEBITUhAy79YAKgBRaPAAIAggPAAnwFxAALABYAMQCwAEVYsAMvG7EDHj5ZsAzQsAwvsQkCsAorWCHYG/RZsAMQsRICsAorWCHYG/RZMDETNDYzMhYVFAYjIiYXMjY1NCYjIgYUFoKVamiTk2hplv82Sko2N0tLBMBonJtpapaWFkc5OktPbEoAAgBhAAAD9QTzAAsADwBIALAJL7AARViwDS8bsQ0SPlmwCRCwANCwCRCxBgGwCitYIdgb9FmwA9CwDRCxDgGwCitYIdgb9FmyBQ4GERI5tAsFGwUCXTAxASEVIREjESE1IREzASE1IQKJAWz+lKf+fwGBpwFB/L0DQwNWl/5iAZ6XAZ37DZgAAAEAQgKbAqsFuwAWAFayCBcYERI5ALAARViwDi8bsQ4ePlmwAEVYsAAvG7EAFj5ZsRYCsAorWCHYG/RZsALQsgMOFhESObAOELEIArAKK1gh2Bv0WbAOELAL0LIUFg4REjkwMQEhNQE2NTQmIyIGFSM0NiAWFRQPAiECq/2pASxtQDxLR52nAQiaa1SwAY8Cm2wBGmZFMT1MOXKUf25oa0+RAAEAPgKQApoFuwAmAIyyICcoERI5ALAARViwDi8bsQ4ePlmwAEVYsBkvG7EZFj5ZsgAZDhESObAAL7ZvAH8AjwADXbI/AAFxtg8AHwAvAANdsl8AAXKwDhCxBwKwCitYIdgb9FmyCg4ZERI5sAAQsSYEsAorWCHYG/RZshQmABESObIdGQ4REjmwGRCxIAKwCitYIdgb9FkwMQEzMjY1NCYjIgYVIzQ2MzIWFRQGBxYVFAYjIiY1MxQWMzI2NTQnIwEJVEpIP0Y5S52jfImcRkKVqoiEpp5PQ0ZJnFgEZj0wLTozKWJ7eWg3Wxkpj2p9fmstPDwzcQIAAQB7BNoCHAYAAAMAIwCwAi+yDwIBXbAA0LAAL7QPAB8AAl2wAhCwA9AZsAMvGDAxATMBIwE84P70lQYA/toAAAEAmv5gA+4EOgASAFGyDRMUERI5ALAARViwAC8bsQAaPlmwAEVYsAcvG7EHGj5ZsABFWLAQLxuxEBQ+WbAARViwDS8bsQ0SPlmxBAGwCitYIdgb9FmyCwcNERI5MDEBERYWMzI3ETMRIycGIyInESMRAVMBZ3THPrqnCV2qk1G5BDr9h6OcmAMg+8Zzh0n+KwXaAAABAEMAAANABbAACgArsgILDBESOQCwAEVYsAgvG7EIHj5ZsABFWLAALxuxABI+WbIBAAgREjkwMSERIyIkNTQkMyERAoZU5v73AQrmAQ0CCP7W1f/6UAAAAQCTAmsBeQNJAAkAF7IDCgsREjkAsAIvsAiwCitY2BvcWTAxEzQ2MhYVFAYiJpM5cjs7cjkC2TBAQDAvPz8AAAEAdP5NAaoAAAAOAEKyBQ8QERI5ALAARViwAC8bsQASPlmwAEVYsAYvG7EGFD5ZtBMGIwYCXbIBBgAREjmwB7AKK1jYG9xZsAEQsA3QMDEhBxYVFAYjJzI2NTQmJzcBHQyZoI8HT1dAYiA0G5JhcWs0LywqCYYAAAEAegKbAe8FsAAGAEGyAQcIERI5ALAARViwBS8bsQUePlmwAEVYsAAvG7EAFj5ZsgQABRESObAEL7EDArAKK1gh2Bv0WbICAwUREjkwMQEjEQc1JTMB753YAWMSApsCWTmAdQACAHoCsgMnBcQADAAaAEKyAxscERI5sAMQsBDQALAARViwAy8bsQMePlmyChsDERI5sAovsRADsAorWCHYG/RZsAMQsRcDsAorWCHYG/RZMDETNDYzMhYVFRQGICY1FxQWMzI2NTU0JiMiBgd6vJqbvLv+zL6jYVRTX2FTUWACBGOew8GmSp/CwqUGZHJzZU5jcm5hAP//AGYAmAN4A7UAJgGTDQAABwGTAWoAAP//AFUAAAWRBa0AJwHG/9sCmAAnAZQBGAAIAQcCIALWAAAAEACwAEVYsAUvG7EFHj5ZMDH//wBQAAAFyQWtACcBlADsAAgAJwHG/9YCmAEHAcUDHgAAABAAsABFWLAJLxuxCR4+WTAx//8AbwAABe0FuwAnAZQBlwAIACcCIAMyAAABBwIfADECmwAQALAARViwIS8bsSEePlkwMQACAET+fwN4BE0AGAAiAFmyCSMkERI5sAkQsBzQALAQL7AARViwIS8bsSEaPlmyABAhERI5sgMQABESObAQELEJAbAKK1gh2Bv0WbAQELAM0LIVABAREjmwIRCxGwWwCitYIdgb9FkwMQEOAwcHFBYzMjY1MwYGIyImNTQ3NzY1ExQGIiY1NDYyFgJMASlguAsCdG1kfbkC4bfE1qBtQsE3bDg4bDcCqGp/dsFjJW1zcVuhzMmzra9xTpIBPS0+Pi0sPDwAAv/yAAAHVwWwAA8AEgB7ALAARViwBi8bsQYePlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbIRBgAREjmwES+xAgGwCitYIdgb9FmwBhCxCAGwCitYIdgb9FmyCwAGERI5sAsvsQwBsAorWCHYG/RZsAAQsQ4BsAorWCHYG/RZshIGABESOTAxISEDIQMjASEVIRMhFSETIQEhAwdX/I0P/czN4gNwA7f9TRQCTv24FgLB+q8ByB8BYf6fBbCY/imX/e0BeALdAAEAWQDOA90EYwALADgAsAMvsgkMAxESObAJL7IKCQMREjmyBAMJERI5sgEKBBESObADELAF0LIHBAoREjmwCRCwC9AwMRMBATcBARcBAQcBAVkBSv64dwFJAUl3/rgBSnf+tf61AUkBUAFPe/6xAU97/rH+sHsBUf6vAAADAHb/owUdBewAFwAgACkAaLIEKisREjmwBBCwHdCwBBCwJtAAsABFWLAQLxuxEB4+WbAARViwBC8bsQQSPlmyGhAEERI5siMQBBESObAjELAb0LAQELEdAbAKK1gh2Bv0WbAaELAk0LAEELEmAbAKK1gh2Bv0WTAxARQCBCMiJwcjNyYRNTQSJDMyFzczBxYTBRQXASYjIgIHBTQnARYzMhI3BQmQ/viwq4NhjpC+kgELrNaUZ42fiQL8LGICNGamttEDAxU4/dtbebrMAwKp1v7BqFKb58ABaFPSAUKrfaX/u/7aY/SNA4hv/uv2DbaD/I9AAQ/9AAIApgAABF0FsAANABYAWbIJFxgREjmwCRCwENAAsABFWLAALxuxAB4+WbAARViwCy8bsQsSPlmyAQALERI5sAEvshAACxESObAQL7EJAbAKK1gh2Bv0WbABELEOAbAKK1gh2Bv0WTAxAREhMhYWFRQEIyERIxETESEyNjU0JicBYAEXk9x3/vjj/u66ugEVjqCgiAWw/ttpwn7C5/7HBbD+Q/3el3h7lwEAAQCL/+wEagYSACoAa7IhKywREjkAsABFWLAFLxuxBSA+WbAARViwEy8bsRMSPlmwAEVYsAAvG7EAEj5ZsgoTBRESObIOBRMREjmwExCxGgGwCitYIdgb9FmyIBMFERI5siMFExESObAFELEoAbAKK1gh2Bv0WTAxISMRNDYzMhYVFAYVFB4CFRQGIyImJzcWFjMyNjU0LgI1NDY1NCYjIhEBRLnPurTFgEu8Vsu2UbUmKzGHNWtxSr1Xi2hY2gRX0Ouzn33LRTNfkIhMn7IsHJsgLF5SNGCTilFZz1Rea/7bAAMATv/sBnwETgAqADUAPQDKsgI+PxESObACELAu0LACELA50ACwAEVYsBcvG7EXGj5ZsABFWLAdLxuxHRo+WbAARViwAC8bsQASPlmwAEVYsAUvG7EFEj5ZsgIdABESObIMBRcREjmwDC+0vwzPDAJdsBcQsRABsAorWCHYG/RZshMMFxESObIaHQAREjmyOh0AERI5sDovtL86zzoCXbEhAbAKK1gh2Bv0WbAAELElAbAKK1gh2Bv0WbIoHQAREjmwK9CwDBCxLwGwCitYIdgb9FmwEBCwNtAwMQUgJwYGIyImNTQ2MzM1NCYjIgYVJzQ2MzIWFzY2MzISFRUhFhYzMjc3FwYlMjY3NSMGBhUUFgEiBgchNTQmBO7++4hB4o2nvOPd325oaYy48rtzsDI/rmnS6P0oB66VlHkvQJ78CUieMuR1jGoDUHOVEQIahhS0Vl6tl52uVWt7blETj7VTU09X/v/pc7C/TB+IeZZKNu0CblNNXQM0q4sfhJMAAAIAfv/sBC0GLAAdACsAVrIHLC0REjmwBxCwKNAAsABFWLAZLxuxGSA+WbAARViwBy8bsQcSPlmyDxkHERI5sA8vshEZBxESObEiAbAKK1gh2Bv0WbAHELEoAbAKK1gh2Bv0WTAxARIRFRQGBiMiJiY1NDY2MzIXJicHJzcmJzcWFzcXAycmJiMiBhUUFjMyNjUDNPl12IaH3Hlwz4GjeTCN2knAhLc576+9SWgCIYtckaKngH2ZBRX++P5nXZ79kIHghpPpgnLDjZRjg1sxnzaLgWT88zg9Sb+njMTiuAAAAwBHAKwELQS6AAMADQAXAFOyBxgZERI5sAcQsADQsAcQsBHQALACL7EBAbAKK1gh2Bv0WbACELAMsAorWNgb3FmwBrAKK1jYG9xZsAEQsBCwCitY2BvcWbAWsAorWNgb3FkwMQEhNSEBNDYyFhUUBiImETQ2MhYVFAYiJgQt/BoD5v2gOXI7O3I5OXI7O3I5Ali4ATowQEAwLz4+/P4wQEAwLj8/AAMAW/96BDQEuAAVAB0AJgBlsgQnKBESObAEELAb0LAEELAj0ACwAEVYsAQvG7EEGj5ZsABFWLAPLxuxDxI+WbEjAbAKK1gh2Bv0WbIhIwQREjmwIRCwGNCwBBCxGwGwCitYIdgb9FmyGRsPERI5sBkQsCDQMDETNDY2MzIXNzMHFhEUBgYjIicHIzcmExQXASYjIgYFNCcBFjMyNjVbe+GPbl5JfGbDfOCQaFZKfGTNuWEBVz5IiqgCZlf+rDdCi6cCJ5/9iyqUzZr+wJ7+iSOVy5UBN8JvArYg2rW2b/1QGdu5AAIAlf5gBCcGAAAPABoAZrIYGxwREjmwGBCwDNAAsAgvsABFWLAMLxuxDBo+WbAARViwBi8bsQYUPlmwAEVYsAMvG7EDEj5ZsgUMAxESObIKDAMREjmwDBCxEwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMQEUAiMiJxEjETMRNjMyEhEnNCYjIgcRFjMyNgQn4sHFcbm5ccLD47mciKhUU6uFnQIR9/7Sff33B6D9yoT+2v76BLfUlf37lNMAAAIAX//sBKwGAAAXACIAggCwFC+wAEVYsA0vG7ENGj5ZsABFWLADLxuxAxI+WbAARViwBi8bsQYSPlmyDxQBXbIvFAFdshMDFBESObATL7EQAbAKK1gh2Bv0WbAB0LIEBg0REjmyDw0GERI5sBMQsBbQsAYQsRsBsAorWCHYG/RZsA0QsSABsAorWCHYG/RZMDEBIxEjJwYjIgI1NTQSMzIXESE1ITUzFTMBFBYzMjcRJiMiBgSsvKoJb8a87ey/vm/++AEIubz8bJiGsFFTrIiYBNH7L3SIATT4DvkBL4IBBZeYmPypuNCeAfGZ0gACAB0AAAWIBbAAEwAXAG0AsABFWLAPLxuxDx4+WbAARViwCC8bsQgSPlmyFAgPERI5sBQvshAUDxESObAQL7AA0LAQELEXAbAKK1gh2Bv0WbAD0LAIELAF0LAUELEHAbAKK1gh2Bv0WbAXELAK0LAQELAN0LAPELAS0DAxATMVIxEjESERIxEjNTMRMxEhETMBITUhBQKGhsH9I8GGhsEC3cH8YgLd/SMEjo78AAKh/V8EAI4BIv7eASL9jsIAAQCbAAABVQQ6AAMAHQCwAEVYsAIvG7ECGj5ZsABFWLAALxuxABI+WTAxISMRMwFVuroEOgAAAQCaAAAEPwQ6AAwAaQCwAEVYsAQvG7EEGj5ZsABFWLAILxuxCBo+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsAIQsAbQsAYvsp8GAV20vwbPBgJdsi8GAV2y/wYBXbEBAbAKK1gh2Bv0WbIKAQYREjkwMQEjESMRMxEzATMBASMBv2u6ulsBjd/+PAHo6QHN/jMEOv42Acr98/3TAAEAIgAABBsFsAANAF0AsABFWLAMLxuxDB4+WbAARViwBi8bsQYSPlmyAQwGERI5sAEvsADQsAEQsQIBsAorWCHYG/RZsAPQsAYQsQQBsAorWCHYG/RZsAMQsAjQsAnQsAAQsAvQsArQMDEBJRUFESEVIREHNTcRMwFpAQf++QKy/I2GhsEDS1R9VP3PnQKRKn0qAqIAAAEAIgAAAgoGAAALAEsAsABFWLAKLxuxCiA+WbAARViwBC8bsQQSPlmyAQQKERI5sAEvsADQsAEQsQIBsAorWCHYG/RZsAPQsAbQsAfQsAAQsAnQsAjQMDEBNxUHESMRBzU3ETMBbJ6eupCQugNlPXs9/RYCozd7NwLiAAABAKL+SwTxBbAAEwBbsgYUFRESOQCwAEVYsAAvG7EAHj5ZsABFWLAQLxuxEB4+WbAARViwBC8bsQQUPlmwAEVYsA4vG7EOEj5ZsAQQsQkBsAorWCHYG/RZsg0OEBESObISDgAREjkwMQERFAYjIic3FjMyNTUBESMRMwERBPGrnD02DiU9iP0zwMACzQWw+f2ouhKaDtBHBGr7lgWw+5gEaAABAJH+SwPwBE4AGgBjsg0bHBESOQCwAEVYsAMvG7EDGj5ZsABFWLAALxuxABo+WbAARViwCi8bsQoUPlmwAEVYsBgvG7EYEj5ZsgEYAxESObAKELEPAbAKK1gh2Bv0WbADELEVAbAKK1gh2Bv0WTAxARc2MzIWFxEUBiMiJzcWMzI1ETQmIyIHESMRATcNdMuzuAKnmz02DiNCiW99r1G6BDqartDL/PSkuBKdDcIC94uAhfzUBDoAAgBo/+sHCQXEABcAIwCWsgEkJRESObABELAa0ACwAEVYsAwvG7EMHj5ZsABFWLAOLxuxDh4+WbAARViwAC8bsQASPlmwAEVYsAMvG7EDEj5ZsA4QsRABsAorWCHYG/RZshMADhESObATL7EUAbAKK1gh2Bv0WbAAELEWAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WbAMELEdAbAKK1gh2Bv0WTAxISEGIyImAicRNBI2MzIXIRUhESEVIREhBTI3ESYjIgYHERQWBwn8sLJyov6MAYv+onyqA0b9LQJ3/YkC3fuMcWZtbK3CAsMVlgEPqwE1rAERlxSe/iyd/fwbDgSOD+XP/sfT6wADAGH/7AcABE4AIAAsADQAmbIGNTYREjmwBhCwJtCwBhCwMNAAsABFWLAELxuxBBo+WbAARViwCi8bsQoaPlmwAEVYsBcvG7EXEj5ZsABFWLAdLxuxHRI+WbIHChcREjmyMQoXERI5sDEvsQ4BsAorWCHYG/RZsBcQsRIBsAorWCHYG/RZshQKFxESObIaChcREjmwJNCwBBCxKgGwCitYIdgb9FmwLdAwMRM0NjYzMhYXNjYzMhYVFSEWFjMyNxcGIyImJwYGIyIANRcUFjMyNjU0JiMiBiUiBgchNTQmYXnbjonJPUHEcM/q/TIHpIa8eEqJ9YfNPz7Hhtz++Lmgi4mgoYqHogQtY5YWAg6JAieg/ol1ZGZz/ut0qsVsfoRwZGNxATD+CbfY18622dbWo4oafZYAAQCgAAACggYVAAwAM7IDDQ4REjkAsABFWLAELxuxBCA+WbAARViwAC8bsQASPlmwBBCxCQGwCitYIdgb9FkwMTMRNjYzMhcHJiMiFRGgAbCiO1QXKDO3BK6pvhWOC937YAACAF3/7AUSBcQAFwAfAF6yACAhERI5sBjQALAARViwEC8bsRAePlmwAEVYsAAvG7EAEj5ZsgUQABESObAFL7AQELEJAbAKK1gh2Bv0WbAAELEYAbAKK1gh2Bv0WbAFELEbAbAKK1gh2Bv0WTAxBSAAETUhNRACIyIHByc3NjMgABEVFAIEJzISNyEVFBYCuf7j/sED9PTdpYs9Lxae6AEuAWSc/uqnqd4P/M/TFAFZAUV1BwECARw6Go8NWP6H/rFUxf6/tp4BBdsi2uQAAAH/5P5LArwGFQAeAHSyFB8gERI5ALAARViwFS8bsRUgPlmwAEVYsBAvG7EQGj5ZsABFWLAdLxuxHRo+WbAARViwBS8bsQUUPlmwHRCxAAGwCitYIdgb9FmwBRCxCgGwCitYIdgb9FmwABCwDtCwD9CwFRCxGgGwCitYIdgb9FkwMQEjERQGIyInNxYzMjY1ESM1MzU2NjMyFwcmIyIHFTMCYMuomj0yDh5DQUerqwKvoTtUFiY8qwTLA6v7/qe3EpMNaFwEBI94p7wVkwrDegACAGX/7AWdBjcAFwAlAFWyBCYnERI5sAQQsCLQALAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5Zsg8NBBESObAPELAV0LANELEbAbAKK1gh2Bv0WbAEELEiAbAKK1gh2Bv0WTAxARQCBCMiJAInNTQSJDMyFzY2NTMQBRYXBxACIyICBxUUEjMyEhEE+JD++LCr/vaVAZIBC6zwm2Bdp/75YQG+z7220QPTub/LAqnW/sGoqAE+z2TSAUGsmweDhP6zPaz2BAECARb+6/Zr+/7hARoBAQAAAgBb/+wEugSwABYAIwBVshMkJRESObATELAa0ACwAEVYsAQvG7EEGj5ZsABFWLATLxuxExI+WbIGBBMREjmwBhCwDNCwExCxGgGwCitYIdgb9FmwBBCxIQGwCitYIdgb9FkwMRM0NjYzMhc2NjUzEAcWFRUUBgYjIgA1FxQWMzI2NTU0JiMiBlt74Y/PiEdAls9JfOCQ3v7xuaeNi6epi4qoAief/YuKCGSA/t0ziqkWnv6JATP7CbTa27kQtdraAAABAIz/7AYdBgIAGgBNsgwbHBESOQCwAEVYsBIvG7ESHj5ZsABFWLAaLxuxGh4+WbAARViwDS8bsQ0SPlmyAQ0aERI5sAEQsAjQsA0QsRYBsAorWCHYG/RZMDEBFTY2NTMUBgcRBgIHByIAJxEzERQWMzI2NREEqnNhn7HCAfTTSe/+5AK+rqGjrQWw1QuJk9LRDP1+x/78FgQBAuID4Pwmnq+ungPbAAABAIj/7AUPBJAAGQBhsgcaGxESOQCwAEVYsBMvG7ETGj5ZsABFWLANLxuxDRo+WbAARViwCC8bsQgSPlmwAEVYsAUvG7EFEj5ZshUIExESObAVELAD0LIGCBMREjmwCBCxEAGwCitYIdgb9FkwMQEUBgcRIycGIyImJxEzERQzMjcRMxU+AjUFD5OgsARs0a21AbnI1Ea5REQdBJC0kwT8u2t/ycUCwP1F9p4DE4MCI0hsAAAB/7T+SwFlBDoADQApALAARViwAC8bsQAaPlmwAEVYsAQvG7EEFD5ZsQkBsAorWCHYG/RZMDEBERQGIyInNxYzMjY1EQFlqpg7NA4eQ0FIBDr7baqyEpMNaFwEkwAAAgBi/+wD6QRPABQAHABosggdHhESObAIELAV0ACwAEVYsAAvG7EAGj5ZsABFWLAILxuxCBI+WbINAAgREjmwDS+wABCxEAGwCitYIdgb9FmyEgAIERI5sAgQsRUBsAorWCHYG/RZsA0QsRgBsAorWCHYG/RZMDEBMgAVFRQGBiciJjU1ISYmIyIHJzYBMjY3IRUUFgH/3AEOfNh60OkCzQehiLp7SYwBDmKXFf3ziQRP/tT5JJX4jQH+6XSoyGx9hvw1pIkafZYAAAEAqQTkAwYGAAAIADQAsAQvsAfQsAcvtA8HHwcCXbIFBAcREjkZsAUvGLAB0BmwAS8YsAQQsALQsgMEBxESOTAxARUjJwcjNRMzAwaZlpWZ9nAE7gqqqgwBEAAAAQCNBOMC9wX/AAgAIACwBC+wAdCwAS+0DwEfAQJdsgAEARESObAI0LAILzAxATczFQMjAzUzAcGWoP5x+50FVaoK/u4BEgr//wCOBRYDLgWlAQYAcAAAAAoAsAEvsQID9DAxAAEAgQTLAtgF1wAMACeyCQ0OERI5ALADL7IPAwFdsQkEsAorWCHYG/RZsAbQsAYvsAzQMDEBFAYgJjUzFBYzMjY1Atil/vSml0xJRk8F13mTlHhGT05HAAABAI0E7gFoBcIACAAZsgIJChESOQCwBy+xAgWwCitYIdgb9FkwMRM0NjIWFAYiJo03bDg4bDcFVy0+Plo8PAAAAgB5BLQCJwZQAAkAFAAqsgMVFhESObADELAN0ACwAy+wB9CwBy+yPwcBXbADELAN0LAHELAS0DAxARQGIyImNDYyFgUUFjMyNjQmIyIGAid8W1x7e7h7/rVDMTBEQzEyQgWAV3V2rHp6Vi9EQmJFRgAAAQAy/k8BkgA4ABAAMrIFERIREjkAsBAvsABFWLAKLxuxChQ+WbEFA7AKK1gh2Bv0WUAJDxAfEC8QPxAEXTAxIQcGFRQzMjcXBiMiJjU0NjcBfjpxTjA0DUZaWWeGey1bVkgaeSxoVlmaOAAAAQB7BNkDPgXoABcAQACwAy+wCNCwCC+0DwgfCAJdsAMQsAvQsAsvsAgQsQ8DsAorWCHYG/RZsAMQsRQDsAorWCHYG/RZsA8QsBfQMDEBFAYjIi4CIyIGFSc0NjMyHgIzMjY1Az57XCk8YSscKTp8eV0jOGAzHys5BdxshhQ+DT8xB2uMFDoSRC0AAgBeBNADLAX/AAMABwA7ALACL7AA0LAAL7QPAB8AAl2wAhCwA9AZsAMvGLAAELAF0LAFL7ACELAG0LAGL7ADELAH0BmwBy8YMDEBMwEjAzMDIwJdz/7zqW3F2pYF//7RAS/+0QAAAgB+/msB1f+1AAsAFgA0ALADL0ALAAMQAyADMANAAwVdsAnQsAkvQAkwCUAJUAlgCQRdsgAJAV2wDtCwAxCwFNAwMRc0NjMyFhUUBiMiJjcUFjI2NTQmIyIGfmRKR2JgSUxiVzRGMDAjJTLyRmFgR0ZdXkUjMDAjJDI0AAH8pwTa/kgGAAADAB4AsAEvsADQGbAALxiwARCwAtCwAi+0DwIfAgJdMDEBIwEz/kif/v7gBNoBJgAB/W8E2v8QBgAAAwAeALACL7AB0LABL7QPAR8BAl2wAhCwA9AZsAMvGDAxATMBI/4w4P70lQYA/tr///yLBNn/TgXoAAcApfwQAAAAAf1eBNn+lAZ0AA4ALgCwAC+yDwABXbAH0LAHL0AJDwcfBy8HPwcEXbAG0LIBAAYREjmyDQAHERI5MDEBJzY2NCYjNzIWFRQGBwf9dAFLRltLB5WaTk0BBNmZBR5OJ2pnVT1QC0cAAvwnBOT/BwXuAAMABwA3ALABL7AA0BmwAC8YsAEQsAXQsAUvsAbQsAYvtg8GHwYvBgNdsAPQsAMvsAAQsATQGbAELxgwMQEjATMBIwMz/gKp/s7hAf+W9s4E5AEK/vYBCgAB/Tj+ov4T/3YACAASALACL7EHBbAKK1gh2Bv0WTAxBTQ2MhYUBiIm/Tg3bDg4bDf1LT4+Wjw8AAEAtwTuAZsGPwADAB0AsAIvsADQsAAvsg8AAV2yAwIAERI5GbADLxgwMRMzAyPtrnRwBj/+rwAAAwBxBPADgwaIAAMADAAVADgAsAsvsALQsAIvsAHQsAEvsAIQsAPQGbADLxiwCxCxBgWwCitYIdgb9FmwD9CwCxCwFNCwFC8wMQEzAyMFNDYyFhQGIiYlNDYyFhQGIiYB4bxlh/7AN2w4OGw3Ajc3bDg4bDcGiP74JS09PVo8PCstPj5aPDwA//8AkwJrAXkDSQEGAHgAAAAGALACLzAxAAEAsQAABDAFsAAFACwAsABFWLAELxuxBB4+WbAARViwAi8bsQISPlmwBBCxAAGwCitYIdgb9FkwMQEhESMRIQQw/ULBA38FEvruBbAAAAIAHwAABXMFsAADAAYAMACwAEVYsAAvG7EAHj5ZsABFWLACLxuxAhI+WbEEAbAKK1gh2Bv0WbIGAgAREjkwMQEzASElIQEChqoCQ/qsAQYDTP5nBbD6UJ0EKAAAAwBn/+wE+gXEAAMAFQAjAHqyCCQlERI5sAgQsAHQsAgQsCDQALAARViwES8bsREePlmwAEVYsAgvG7EIEj5ZsgIIERESObACL7LPAgFdsv8CAV2yLwIBXbS/As8CAnGxAQGwCitYIdgb9FmwERCxGQGwCitYIdgb9FmwCBCxIAGwCitYIdgb9FkwMQEhNSEFFAIEIyIkAic1NBIkMzIEEhcHEAIjIgIHFRQSMzISNwPA/fsCBQE6j/74saz+9pMCkgELrK8BCJECv9C7ttED0bu6zAMCk5iC1f7CqqkBOc5p0gFCq6j+xc8LAQMBFf7r9mv6/uABD/0AAAEAMgAABQMFsAAGADEAsABFWLADLxuxAx4+WbAARViwAS8bsQESPlmwAEVYsAUvG7EFEj5ZsgADARESOTAxAQEjATMBIwKa/mbOAhKsAhPPBIn7dwWw+lAAAAMAeAAABCEFsAADAAcACwBSALAARViwCC8bsQgePlmwAEVYsAIvG7ECEj5ZsQABsAorWCHYG/RZsAIQsAXQsAUvsi8FAV2xBgGwCitYIdgb9FmwCBCxCgGwCitYIdgb9FkwMTchFSETIRUhAyEVIXgDqfxXVwLy/Q5TA5T8bJ2dAz+dAw6eAAABALIAAAUBBbAABwA5ALAARViwBi8bsQYePlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbAGELECAbAKK1gh2Bv0WTAxISMRIREjESEFAcH9MsAETwUS+u4FsAAAAQBFAAAERAWwAAwAPgCwAEVYsAgvG7EIHj5ZsABFWLADLxuxAxI+WbEBAbAKK1gh2Bv0WbAF0LAIELEKAbAKK1gh2Bv0WbAH0DAxAQEhFSE1AQE1IRUhAQLy/kMDD/wBAeH+HwPO/SQBuwLO/c+djwJKAkeQnv3UAAADAE0AAAV0BbAAFQAcACMAbrIKJCUREjmwChCwGdCwChCwINAAsABFWLAULxuxFB4+WbAARViwCS8bsQkSPlmyExQJERI5sBMvsADQsggJFBESObAIL7AL0LAIELEhAbAKK1gh2Bv0WbAZ0LATELEaAbAKK1gh2Bv0WbAg0DAxARYEFhUUBgYHFSM1JgA1NDY3Njc1MwEUFhcRBgYFNCYnETY2A0KhAQGQj/+kwvv+yH10i7fC/crCsrTAA6nBsrS/BPcDivqcnvqJBK+vBAEv8JTuSVcDuf0iuMgEAwkEyrW1ygT89wTLAAABAFoAAAUhBbAAGABdsgAZGhESOQCwAEVYsAQvG7EEHj5ZsABFWLARLxuxER4+WbAARViwFy8bsRcePlmwAEVYsAsvG7ELEj5ZshYECxESObAWL7AA0LAWELENAbAKK1gh2Bv0WbAK0DAxATY2NREzERQGBgcRIxEmACcRMxEWFhcRMwMWnK7Bf+2fwef+7wPAAaWVwQILF9eqAg398J/1kw/+lgFqFwEq7QIY/e+j1xkDpAABAHEAAATLBcQAJABeshklJhESOQCwAEVYsBkvG7EZHj5ZsABFWLAOLxuxDhI+WbAARViwIy8bsSMSPlmwDhCxEAGwCitYIdgb9FmwDdCwANCwGRCxBgGwCitYIdgb9FmwEBCwIdCwItAwMSU2Ejc1NCYgBhUVFBIXFSE1MyYCNTU0EjYzMhYSFxUUAgczFSEC4YqaA8L+rsCdkf4U3Wp4jf6hoP2OA3hq3P4cohsBHOqG5/b65XHw/tgcop1mATOib7oBJJ+c/uS0gqD+zWadAAACAGT/6wR3BE4AFgAhAH+yHyIjERI5sB8QsBPQALAARViwEy8bsRMaPlmwAEVYsBYvG7EWGj5ZsABFWLAILxuxCBI+WbAARViwDC8bsQwSPlmwCBCxAwGwCitYIdgb9FmyChMIERI5shUTCBESObAMELEaAbAKK1gh2Bv0WbATELEfAbAKK1gh2Bv0WTAxAREWMzI3FwYjIicGIyICNTUQEjMyFzcBFBYzMjcRJiMiBgPuAk4TDxcwSpMma9HA5OLEy2sR/cySh61SVaiGlQQ6/OOMBYkipaUBG/QPAQgBPaGN/bqvw7oBvrzjAAIAoP6ABE0FxAAUACoAbLIAKywREjmwGNAAsA8vsABFWLAALxuxAB4+WbAARViwDC8bsQwSPlmyKAAMERI5sCgvsSUBsAorWCHYG/RZsgYlKBESObIODAAREjmwABCxGAGwCitYIdgb9FmwDBCxHwGwCitYIdgb9FkwMQEyFhUUBgcWFhUUBiMiJxEjETQ2NgE0JiMiBgcRFhYzMjY1NCYnIzUzMjYCXcHrYlh7g/nNtXi6es8BZ4hrbJYBLJBehpqMbZZVeH4FxNuuW5guLcOCze9f/jUFsWy8a/57ZoeOa/zDND+ggXalA5h3AAABAC7+YAPfBDoACAA4sgAJChESOQCwAEVYsAEvG7EBGj5ZsABFWLAHLxuxBxo+WbAARViwBC8bsQQUPlmyAAcEERI5MDEBATMBESMRATMCCgEYvf6Fuv6EvQEUAyb7//4nAeAD+gACAGD/7AQnBhwAHgAqAGGyFCssERI5sBQQsCLQALAARViwAy8bsQMgPlmwAEVYsBQvG7EUEj5ZsAMQsQgBsAorWCHYG/RZshsUAxESObAbL7EoC7AKK1gh2Bv0WbAM0LAUELEiAbAKK1gh2Bv0WTAxEzQ2MzIXByYjIgYVFAQSFxUUBgYjIgA1NTQSNycmJhMUFjMyNjU0JiciBt3Lr4uGApd8VmUBu88FdtuR3v75vJABY2s+oYmIoKl9iKQE9YifN6A7SD5smf7zxCeZ84UBJ/INpQEIIwUnjP1jsMvKxojbGc0AAAEAY//sA+wETQAlAHKyAyYnERI5ALAARViwFS8bsRUaPlmwAEVYsAovG7EKEj5ZsQMBsAorWCHYG/RZsAoQsAbQsAoQsCLQsCIvsi8iAV2yvyIBXbEjAbAKK1gh2Bv0WbIPIyIREjmyGRUiERI5sBUQsRwBsAorWCHYG/RZMDEBFBYzMjY1MxQGIyImNTQ3JiY1NDYzMhYVIzQmIyIGFRQzMxUjBgEek3Zxm7n/xsz4zVhi58q6+bmPa3CH9MTg6gEwTWJuUZu5sZO6QiR6SZSms45GZVtKoJQGAAABAG3+gQPDBbAAHwBNsgggIRESOQCwDy+wAEVYsAAvG7EAHj5ZsR0BsAorWCHYG/RZsAHQshUgABESObICFQAREjmwFRCxBwGwCitYIdgb9FmyHAAVERI5MDEBFQEGBhUUFhcXFhYVBgYHJzY2NTQkJyYmNTQSNwEhNQPD/qKKZkNS91FHAmxDYi8z/sw2Z1uSfwEd/YMFsHj+VaHlhVphGUgYWE5FrDZUNVUtRE4YLZmBggFAlgFDmAABAJH+YQPwBE4AEgBUsgwTFBESOQCwAEVYsAMvG7EDGj5ZsABFWLAALxuxABo+WbAARViwBy8bsQcUPlmwAEVYsBAvG7EQEj5ZsgEQAxESObADELEMAbAKK1gh2Bv0WTAxARc2MzIWFxEjETQmIyIGBxEjEQE4C3jIvq4BuWyAXIIiugQ6iJzFzPukBFGIfFdO/O8EOgADAHr/7AQSBcQADQAWAB4AlbIDHyAREjmwAxCwE9CwAxCwG9AAsABFWLAKLxuxCh4+WbAARViwAy8bsQMSPlmyDgMKERI5sA4vsl8OAV2y/w4BXbSPDp8OAnG0vw7PDgJxsi8OAXGyzw4BXbIvDgFdtO8O/w4CcbAKELETAbAKK1gh2Bv0WbAOELEYAbAKK1gh2Bv0WbADELEbAbAKK1gh2Bv0WTAxARACIyICAzUQEjMyEhMFITU0JiMiBhUFIRUUFiA2NwQS7N/b7gTs397rBP0hAiWLiIaMAiX925IBBI0CAoD+v/6tAUwBNM0BPQFO/rz+zSw34/Hx488n5frw4wABAMP/9AJLBDoADAApALAARViwAC8bsQAaPlmwAEVYsAkvG7EJEj5ZsQQBsAorWCHYG/RZMDEBERQWMzI3FwYjIhERAXw3QDAnAUZJ+QQ6/Nc/QAyXEwEmAyAAAAEAJf/vBDsF7gAaAFKyEBscERI5ALAAL7AARViwCy8bsQsSPlmwAEVYsBEvG7EREj5ZsAsQsQcBsAorWCHYG/RZshAACxESObAQELAT0LAAELEXAbAKK1gh2Bv0WTAxATIWFwEWFjM3FwYjIiYmJwMBIwEnJiYjByc2AQVieCEBqxQtIyYGJCpNTj4d5v7izgGKYBc1LS8BKgXuUF/7qzMnA5gMJVZQAlH89QQF6zguAo4MAAEAZf53A6kFxAAtAFmyAy4vERI5ALAXL7AARViwKy8bsSsePlmxAgGwCitYIdgb9FmyCC4rERI5sAgvsQkBsAorWCHYG/RZsh4uKxESObAeELEPAbAKK1gh2Bv0WbIlCQgREjkwMQEmIyIGFRQhMxUjBgYVFBYEFhcWFRQGByc3NjU0LgQ1NDY3JiY1NCQzMhcDcoRhjaABTYWWtseQAQ98IE9oSGs5MUzmqXdBpJZ2gwEC5JFwBQgkZ1XbmAKco3CdQSUUMWlApz1UQDw+Jy4zQmmZb5HLLiqYYJ+5JwAAAQAp//QEpAQ6ABQAXrILFRYREjkAsABFWLATLxuxExo+WbAARViwCi8bsQoSPlmwAEVYsA8vG7EPEj5ZsBMQsQABsAorWCHYG/RZsAoQsQUBsAorWCHYG/RZsAAQsA3QsA7QsBHQsBLQMDEBIxEUFjMyNxcGIyIRESERIxEjNSEEcZw2QTAnAUZJ+f5vuakESAOh/XJAQQyXEwEmAof8XwOhmQACAJH+YAQfBE4ADwAbAFmyEhwdERI5sBIQsADQALAARViwAC8bsQAaPlmwAEVYsAovG7EKFD5ZsABFWLAHLxuxBxI+WbIJAAcREjmxEgGwCitYIdgb9FmwABCxGAGwCitYIdgb9FkwMQEyEhcXFAIjIicRIxE0NjYDFjMyNjU0JiMiBhUCUM/0CwHgv8NyunHNhFOrh5aRhXWQBE7+5v5C8P7ofP34A+Se7ID8yJPDw83g2KkAAAEAZf6KA+EETgAiAEuyACMkERI5ALAUL7AARViwAC8bsQAaPlmwAEVYsBsvG7EbEj5ZsAAQsATQsAAQsQcBsAorWCHYG/RZsBsQsQ0BsAorWCHYG/RZMDEBMhYVIzQmIyIGFRUQBRcWFhUGBgcnNzY1NCYnJgI1NTQ2NgI9veevhm+EmwFAhmJQAmNKYi8xRlbs+HfXBE7VtG6D27Mg/vxjJh1gUD+nPlU2PEYrKxM0AQHTKpj7iQACAGD/7AR7BDoAEQAdAE6yCB4fERI5sAgQsBXQALAARViwEC8bsRAaPlmwAEVYsAgvG7EIEj5ZsBAQsQABsAorWCHYG/RZsAgQsRUBsAorWCHYG/RZsAAQsBvQMDEBIRYRFRQGBiMiADU1NDY2NyEBFBYzMjY1NCYjIgYEe/7kyHrdjNr+9nbZjAJA/J+gioufoYuJnwOhlP7vEYzriAEv/w2Y8ogB/de319nLrM7MAAEAUf/sA9kEOgAQAEuyChESERI5ALAARViwDy8bsQ8aPlmwAEVYsAkvG7EJEj5ZsA8QsQABsAorWCHYG/RZsAkQsQQBsAorWCHYG/RZsAAQsA3QsA7QMDEBIREUMzI3FwYjIiYnESE1IQPZ/o1pKzEqTGp9dQH+pQOIA6T9aYUagjSTkgKTlgABAI//7AP2BDoAEgA9sg4TFBESOQCwAEVYsAAvG7EAGj5ZsABFWLAILxuxCBo+WbAARViwDi8bsQ4SPlmxAwGwCitYIdgb9FkwMQEREDMyNjUmAzMWERAAIyImJxEBScmBqgV2w3H+/9rCyAIEOv15/s/6tucBIfH+6f75/sHg1wKXAAACAFf+IgVMBDoAGQAiAF6yDyMkERI5sA8QsBrQALAYL7AARViwBi8bsQYaPlmwAEVYsBAvG7EQGj5ZsABFWLAXLxuxFxI+WbAA0LAXELEaAbAKK1gh2Bv0WbAM0LAQELEgAbAKK1gh2Bv0WTAxBSQANTQSNxcGBxQWFxE0NjMyFhYVFAAFESMTNjY1JiYjIhUCbP8A/uuBf2WhCrWminGC4YL+3v77ubmqxAWlgkIRFwEz+6gBB1eFjPWt5RoCzGl9jfiV8/7XFf4zAmYW3qSp2FIAAAEAX/4oBUMEOgAZAFmyABobERI5ALANL7AARViwAC8bsQAaPlmwAEVYsAYvG7EGGj5ZsABFWLATLxuxExo+WbAARViwDC8bsQwSPlmxAQGwCitYIdgb9FmwDBCwD9CwARCwGNAwMQERNjY1JgMzFhEQAAURIxEmABERMxEWFhcRAxyrwwV6wnb+4/72uf/++7oCpqIEOvxOGOWy6AEb7P7p/v3+0BX+OQHJGgE2ARMB5v4OwuQZA7EAAAEAev/sBhkEOgAjAFuyGyQlERI5ALAARViwAC8bsQAaPlmwAEVYsBMvG7ETGj5ZsABFWLAZLxuxGRI+WbAARViwHi8bsR4SPlmxBQGwCitYIdgb9FmyCQAeERI5sA7QshsTGRESOTAxAQIHFBYzMjY1ETMRFhYzMjY1JgMzFhEQAiMiJwYGIyICERA3AcSKB3JqbHG7AXFranIHisOHz7zwVSmkd7zPhwQ6/uXvy+OtpgEt/s6kquLM7wEb9P7q/u3+z+51eQExARMBH+sAAgB5/+wEeQXGAB8AKABxshQpKhESObAUELAm0ACwAEVYsBkvG7EZHj5ZsABFWLAGLxuxBhI+WbIdGQYREjmwHS+xAgGwCitYIdgb9FmyCxkGERI5sAYQsQ8BsAorWCHYG/RZsAIQsBPQsB0QsCPQsBkQsSYBsAorWCHYG/RZMDEBBgcVBgYjIiY1ETcRFBYzMjY1NSYANTQ2MzIWFRE2NwEUFhcRJiMiFQR5PFMC5cjL97qMfHSC2f7zuJafsj9I/ZSiigWTlAJzFwmm0+731wFHAv6wj5uSmKYfARrZoLvFsv6hBRMBUoW9HgFoxsQAAf/aAAAEbgW8ABoASrIAGxwREjkAsABFWLAELxuxBB4+WbAARViwFy8bsRcePlmwAEVYsA0vG7ENEj5ZsgAEDRESObAEELEJAbAKK1gh2Bv0WbAS0DAxARM2NjMyFwcmIyIHAREjEQEmIyIHJzYzMhYXAiThK2tXSDQkDSdGJP7Xv/7YJ0MnDSQ0R1hrKgMGAftjWBuXCE/9d/3GAjwCh08IlhxUXQAAAgBK/+wGGwQ6ABIAJgBysggnKBESObAIELAe0ACwAEVYsBEvG7ERGj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmwERCxAAGwCitYIdgb9FmyCBEGERI5sA/QsBDQsBXQsBbQsAoQsRsBsAorWCHYG/RZsh8KERESObAk0DAxASMWFRACIyInBiMiAhE0NyM1IQEmJyEGBxQWMzI2NxEzERYWMzI2BhuIQLyr8VNT8Kq9QHQF0f7+BEr8u0sEYFhpcQK7AnFqVmADoazF/u/+ze/vATABFL+ymf32qsfIqcvjp6IBB/75oqfiAAEAKv/1BbEFsAAYAGSyERkaERI5ALAARViwFy8bsRcePlmwAEVYsAkvG7EJEj5ZsBcQsQABsAorWCHYG/RZsgQXCRESObAEL7AJELEKAbAKK1gh2Bv0WbAEELEQAbAKK1gh2Bv0WbAAELAV0LAW0DAxASERNjMyBBAEIycyNjUmJiMiBxEjESE1IQSU/fadhPQBEv787QKbmAKjopaKwf5hBGoFEv45MPH+TuOWkZSOli79WgUSngABAHv/7ATcBcQAHwCJsgMgIRESOQCwAEVYsAsvG7ELHj5ZsABFWLADLxuxAxI+WbALELAP0LALELESAbAKK1gh2Bv0WbIWAwsREjmwFi+0vxbPFgJxss8WAV2ynxYBcbL/FgFdsi8WAV2yXxYBcrKPFgFysRcBsAorWCHYG/RZsAMQsRwBsAorWCHYG/RZsAMQsB/QMDEBBgQjIAARNTQSJDMyABcjJiYjIgIHIRUhFRQSMzI2NwTcG/7h7v7+/smPAQuw6AEYF8AZp5e5zgICOv3GxrKgqxwBzuf7AXIBNovJATWn/v3lrJ7+8eqdAu3+6JG0AAACADEAAAg7BbAAGAAhAHeyCSIjERI5sAkQsBnQALAARViwAC8bsQAePlmwAEVYsAgvG7EIEj5ZsABFWLAQLxuxEBI+WbIBAAgREjmwAS+wABCxCgGwCitYIdgb9FmwEBCxEgGwCitYIdgb9FmwARCxGQGwCitYIdgb9FmwEhCwGtCwG9AwMQERIRYEFRQEByERIQMCAgYHIzU3PgI3EwERITI2NTQmJwTuAWneAQb+/t790/4AGg9ZrJA/KF1kNAseA3cBX4yinYoFsP3LA/DLxvMEBRL9v/7e/tyJAp0CB2vq8wLC/S39wJ6EgJwCAAACALEAAAhNBbAAEgAbAIWyARwdERI5sAEQsBPQALAARViwEi8bsRIePlmwAEVYsAIvG7ECHj5ZsABFWLAPLxuxDxI+WbAARViwDC8bsQwSPlmyAAIPERI5sAAvsgQMAhESObAEL7AAELEOAbAKK1gh2Bv0WbAEELETAbAKK1gh2Bv0WbAMELEUAbAKK1gh2Bv0WTAxASERMxEhFgQVFAQHIREhESMRMwERITI2NTQmJwFyAs7AAWriAQH+/9/90/0ywcEDjgFfjqCYigM5Anf9ngPivb/pBAKc/WQFsP0B/fWOenSMAwAAAQA+AAAF1AWwABUAX7IOFhcREjkAsABFWLAULxuxFB4+WbAARViwCC8bsQgSPlmwAEVYsBAvG7EQEj5ZsBQQsQABsAorWCHYG/RZsgQUCBESObAEL7ENAbAKK1gh2Bv0WbAAELAS0LAT0DAxASERNjMyFhcRIxEmJiMiBxEjESE1IQSm/fCgr/ryA8EBiaSppsD+aARoBRL+UCja3f4tAc6Yhir9PgUSngABALD+mQT/BbAACwBJALAJL7AARViwAC8bsQAePlmwAEVYsAQvG7EEHj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmxAgGwCitYIdgb9FmwA9AwMRMzESERMxEhESMRIbDBAs7A/kDB/jIFsPrtBRP6UP6ZAWcAAAIAogAABLEFsAAMABUAXrIPFhcREjmwDxCwA9AAsABFWLALLxuxCx4+WbAARViwCS8bsQkSPlmwCxCxAAGwCitYIdgb9FmyAgsJERI5sAIvsQ0BsAorWCHYG/RZsAkQsQ4BsAorWCHYG/RZMDEBIREhFgQVFAQHIREhAREhMjY1NCYnBCH9QgFq5AEA/v7f/dIDf/1CAV+Pn5mNBRL+TAPkxMXqBAWw/RD93ZiAe44CAAACADL+mgXJBbAADgAVAF2yEhYXERI5sBIQsAvQALAEL7AARViwCy8bsQsePlmwAEVYsAIvG7ECEj5ZsAQQsAHQsAIQsQYBsAorWCHYG/RZsA3QsA7QsA/QsBDQsAsQsREBsAorWCHYG/RZMDEBIxEhESMDMzYSNxMhETMhIREhAwYCBce/++vAAXdebw4gA2e++7sCxv4TFQ1r/psBZf6aAgNqAWXVAm/67QR1/lT7/p4AAQAbAAAHNQWwABUAhwCwAEVYsAkvG7EJHj5ZsABFWLANLxuxDR4+WbAARViwES8bsREePlmwAEVYsAIvG7ECEj5ZsABFWLAGLxuxBhI+WbAARViwFC8bsRQSPlmwAhCwENCwEC+yLxABXbLPEAFdsQABsAorWCHYG/RZsATQsggQABESObAQELAL0LITABAREjkwMQEjESMRIwEjAQEzATMRMxEzATMBASMEqJzApf5k8AHq/jzjAYOlwJ4Bg+L+PAHq7wKY/WgCmP1oAwACsP2IAnj9iAJ4/VH8/wAAAQBQ/+wEagXEACgAdbIDKSoREjkAsABFWLALLxuxCx4+WbAARViwFi8bsRYSPlmwCxCxAwGwCitYIdgb9FmwCxCwBtCyJRYLERI5sCUvss8lAV2ynyUBcbEkAbAKK1gh2Bv0WbIRJCUREjmwFhCwG9CwFhCxHgGwCitYIdgb9FkwMQE0JiMiBhUjNDY2MzIEFRQGBwQVFAQjIiYmNTMUFjMyNjUQJSM1MzY2A5SpmYCtwH/kivQBDnxvAQH+3PSR7YTAtoydu/7DtLOSlgQpdImNaHS4Z9vDZaYwVv/E5me+g3OZkngBAAWeA34AAAEAsQAABP8FsAAJAF0AsABFWLAALxuxAB4+WbAARViwBy8bsQcePlmwAEVYsAIvG7ECEj5ZsABFWLAFLxuxBRI+WbIEAAIREjlACYoEmgSqBLoEBF2yCQACERI5QAmFCZUJpQm1CQRdMDEBMxEjEQEjETMRBD/AwP0zwcEFsPpQBGL7ngWw+54AAAEALwAABPYFsAARAE+yBBITERI5ALAARViwAC8bsQAePlmwAEVYsAEvG7EBEj5ZsABFWLAJLxuxCRI+WbAAELEDAbAKK1gh2Bv0WbAJELELAbAKK1gh2Bv0WTAxAREjESEDAgIGByM1Nz4CNxME9sD99hoPWayQPyhdZDQLHgWw+lAFEv2//t7+3IkCnQIHa+rzAsIAAAEATf/rBMsFsAARAEuyBBITERI5ALAARViwAS8bsQEePlmwAEVYsBAvG7EQHj5ZsABFWLAHLxuxBxI+WbIAAQcREjmxCwGwCitYIdgb9FmyDwcQERI5MDEBATMBDgIjIic3FzI/AgEzAp0BT9/9/TRaeVtPFgZbaTMZJv4Q1wJjA037Q3RhMwmYBGU0WQQ2AAMAU//EBeMF7AAYACEAKgBdsgwrLBESObAMELAg0LAMELAi0ACwCy+wFy+yFRcLERI5sBUvsADQsgkLFxESObAJL7AN0LAVELEZAbAKK1gh2Bv0WbAJELEkAbAKK1gh2Bv0WbAf0LAZELAi0DAxATMWBBIVFAIEByMVIzUjIiQCEBIkMzM1MwMiBhUUFjMzETMRMzI2NTQmIwN4H6UBEJeY/vSkI7ocp/7vl5cBEaccuta829q/Grocv9fXwwUeAZj+9aWm/vKXAsTEmAEMAU4BDJjO/pvnzc7lA2f8mevKyOoAAAEAr/6hBZcFsAALADwAsAkvsABFWLAALxuxAB4+WbAARViwBC8bsQQePlmwAEVYsAovG7EKEj5ZsQIBsAorWCHYG/RZsAbQMDETMxEhETMRMwMjESGvwQLOwJkSrfvXBbD67QUT+vH+AAFfAAEAlgAABMgFsAASAEeyBRMUERI5ALAARViwAC8bsQAePlmwAEVYsAovG7EKHj5ZsABFWLABLxuxARI+WbIPAAEREjmwDy+xBgGwCitYIdgb9FkwMQERIxEGBiMiJicRMxEWFjMyNxEEyMFprG758gPBAYmjvsUFsPpQAlseF9jfAdP+MpiGNgK2AAEAsAAABtcFsAALAEkAsABFWLAALxuxAB4+WbAARViwAy8bsQMePlmwAEVYsAcvG7EHHj5ZsABFWLAJLxuxCRI+WbEBAbAKK1gh2Bv0WbAF0LAG0DAxAREhETMRIREzESERAXEB9b8B8sD52QWw+u0FE/rtBRP6UAWwAAABALD+oQdqBbAADwBVALALL7AARViwAC8bsQAePlmwAEVYsAMvG7EDHj5ZsABFWLAHLxuxBx4+WbAARViwDS8bsQ0SPlmxAQGwCitYIdgb9FmwBdCwBtCwCdCwCtCwAtAwMQERIREzESERMxEzAyMRIREBcQH1vwHywJMSpfn9BbD67QUT+u0FE/rn/goBXwWwAAIAEAAABbgFsAAMABUAYbIBFhcREjmwARCwDdAAsABFWLAALxuxAB4+WbAARViwCS8bsQkSPlmyAgAJERI5sAIvsAAQsQsBsAorWCHYG/RZsAIQsQ0BsAorWCHYG/RZsAkQsQ4BsAorWCHYG/RZMDETIREhMgQVFAQHIREhAREhMjY1NCYnEAJbAVrvAQT+/uL91v5mAlsBX46fmYwFsP2u5cbF6wMFGP2o/d2YgHuOAgADALIAAAYwBbAACgATABcAb7ISGBkREjmwEhCwBtCwEhCwFdAAsABFWLAJLxuxCR4+WbAARViwFi8bsRYePlmwAEVYsAcvG7EHEj5ZsABFWLAULxuxFBI+WbIACQcREjmwAC+xCwGwCitYIdgb9FmwBxCxDAGwCitYIdgb9FkwMQEhFgQVFAQHIREzEREhMjY1NCYnASMRMwFyAWrkAQD+/t/908ABX4+fmY0DV8DAA14D5MTF6gQFsP0Q/d2YgHuOAv1ABbAAAAIAowAABLEFsAAKABMAT7INFBUREjmwDRCwAdAAsABFWLAJLxuxCR4+WbAARViwBy8bsQcSPlmyAAkHERI5sAAvsQsBsAorWCHYG/RZsAcQsQwBsAorWCHYG/RZMDEBIRYEFRQEByERMxERITI2NTQmJwFjAWrkAQD+/t/908ABX4+fmY0DXgPkxMXqBAWw/RD93ZiAe44CAAABAJP/7AT0BcQAHwCSsgwgIRESOQCwAEVYsBMvG7ETHj5ZsABFWLAcLxuxHBI+WbAA0LAcELEDAbAKK1gh2Bv0WbIIHBMREjmwCC+07wj/CAJxss8IAV2yLwgBcbS/CM8IAnGynwgBcbL/CAFdsi8IAV2yXwgBcrKPCAFysQYBsAorWCHYG/RZsBMQsQwBsAorWCHYG/RZsBMQsA/QMDEBFhYzMhI3ITUhNAIjIgYHIzYAMzIEEhUVFAIEIyIkJwFUHKugrckC/cMCPc+6lqcZwRcBGOiwAQuPjv79qO7+4RsBzrSRAQ7wnu0BFJyu5QEDp/7LyZHJ/syl++cAAAIAt//sBtoFxAAXACUApLIhJicREjmwIRCwEtAAsABFWLATLxuxEx4+WbAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5ZsABFWLAKLxuxChI+WbIPCg0REjmwDy+yXw8BXbL/DwFdtE8PXw8CcbSPD58PAnGyLw8BcbLPDwFdsi8PAV2yzw8BcbEIAbAKK1gh2Bv0WbATELEbAbAKK1gh2Bv0WbAEELEiAbAKK1gh2Bv0WTAxARQCBCMiJAInIxEjETMRMzYSJDMyBBIVJxACIyICBxUUEjMyEjcG2pD++LCm/vmVCNHAwNADkAEKrK8BC5C/0Lu20QPTubrMAwKp1v7BqKABKsf9gwWw/WTOATerqf6/1QIBAwEV/uv2a/v+4QEP/QACAFkAAARkBbAADAAVAGOyEBYXERI5sBAQsArQALAARViwCi8bsQoePlmwAEVYsAAvG7EAEj5ZsABFWLADLxuxAxI+WbIRCgAREjmwES+xAQGwCitYIdgb9FmyBQEKERI5sAoQsRIBsAorWCHYG/RZMDEhESEBIwEkETQkMyERARQWFyERISIGA6P+sP7TzQFS/uYBEfMBz/ztpZMBGv7vnKUCN/3JAmxvAR7Q5/pQA/mEoAECPpQAAgBh/+wEKAYRABsAKABkshwpKhESObAcELAI0ACwAEVYsBIvG7ESID5ZsABFWLAILxuxCBI+WbIAEggREjmwAC+yFwASERI5sg8SFxESObIaAAgREjmxHAGwCitYIdgb9FmwCBCxIwGwCitYIdgb9FkwMQEyEhUVFAYGIyIANTUQEjc2NjUzFAYHBwYGBzYXIgYVFRQWMzI2NTQmAmfM9XbdkNr+9v33jGKYcXyKpaUZk6+IoKGJiqChA/z+798RmfGFASP1WgFVAZIsGUg/fYwdHye5mqqYt6IQrsvMxJm5AAMAnQAABCkEOgAOABYAHACRshgdHhESObAYELAC0LAYELAW0ACwAEVYsAEvG7EBGj5ZsABFWLAALxuxABI+WbIXAQAREjmwFy+0vxfPFwJdtJ8XrxcCcbL/FwFdsg8XAXG0Lxc/FwJdtG8XfxcCcrEPAbAKK1gh2Bv0WbIIDxcREjmwABCxEAGwCitYIdgb9FmwARCxGwGwCitYIdgb9FkwMTMRITIWFRQGBxYWFRQGIwERITI2NTQjJTMgECcjnQGm2OdaWGJ328j+0AEydHPu/tXvAQT2/QQ6l5JLeSAXhl2VngHb/rpWTqKUATAFAAEAmgAAA0cEOgAFACwAsABFWLAELxuxBBo+WbAARViwAi8bsQISPlmwBBCxAAGwCitYIdgb9FkwMQEhESMRIQNH/g26Aq0DofxfBDoAAAIALv7CBJMEOgAOABQAXbISFRYREjmwEhCwBNAAsAwvsABFWLAELxuxBBo+WbAARViwCi8bsQoSPlmxAAGwCitYIdgb9FmwBtCwB9CwDBCwCdCwBxCwD9CwENCwBBCxEQGwCitYIdgb9FkwMTc3NhMTIREzESMRIREjEyEhESEDAoNAbA8RArmLuf0NuQEBLwHx/rMLEZdPjAEYAbD8Xf4rAT7+wgHVAvj+/v69AAEAFQAABgQEOgAVAJEAsABFWLAJLxuxCRo+WbAARViwDS8bsQ0aPlmwAEVYsBEvG7ERGj5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmwAEVYsBQvG7EUEj5ZsAIQsBDQsBAvsr8QAV2y/xABXbIvEAFdss8QAXGxAAGwCitYIdgb9FmwBNCyCBAAERI5sBAQsAvQshMAEBESOTAxASMRIxEjASMBATMBMxEzETMBMwEBIwPrgrmC/tHqAYP+ouABF3+5fgEZ4P6hAYPqAdb+KgHW/ioCMAIK/kABwP5AAcD99f3RAAABAFj/7QOsBE0AJgCJsgMnKBESOQCwAEVYsAovG7EKGj5ZsABFWLAVLxuxFRI+WbAKELEDAbAKK1gh2Bv0WbIlChUREjmwJS+0LyU/JQJdtL8lzyUCXbSfJa8lAnG0byV/JQJysgYlChESObEiAbAKK1gh2Bv0WbIQIiUREjmyGRUKERI5sBUQsRwBsAorWCHYG/RZMDEBNCYjIgYVIzQ2MzIWFRQGBxYVFAYjIiY1MxQWMzI2NTQmIyM1MzYC33RlYoO47LG+1FhRvebAu/O4jWlqgm1zucm9AxJMWWZFjbSjl0l6JEC8la63nE9xYk5bT5wFAAABAJwAAAQBBDoACQBFALAARViwAC8bsQAaPlmwAEVYsAcvG7EHGj5ZsABFWLACLxuxAhI+WbAARViwBS8bsQUSPlmyBAcCERI5sgkHAhESOTAxATMRIxEBIxEzEQNIubn+Dbm5BDr7xgMV/OsEOvzqAAABAJwAAAQ/BDoADAB4ALAARViwBC8bsQQaPlmwAEVYsAgvG7EIGj5ZsABFWLACLxuxAhI+WbAARViwCy8bsQsSPlmwAhCwBtCwBi+ynwYBXbL/BgFdss8GAXGynwYBcbS/Bs8GAl2yLwYBXbJvBgFysQEBsAorWCHYG/RZsgoBBhESOTAxASMRIxEzETMBMwEBIwHdh7q6eQFs4P5UAdDrAc3+MwQ6/jYByv34/c4AAAEALAAABAMEOgAPAE+yBBARERI5ALAARViwAC8bsQAaPlmwAEVYsAEvG7EBEj5ZsABFWLAILxuxCBI+WbAAELEDAbAKK1gh2Bv0WbAIELEKAbAKK1gh2Bv0WTAxAREjESEDAgYHIzU3NjY3EwQDuv6QFhKXpEo1Wk4LFAQ6+8YDof5r/unwBaMECrz+Ac8AAAEAnQAABVIEOgAMAFkAsABFWLABLxuxARo+WbAARViwCy8bsQsaPlmwAEVYsAMvG7EDEj5ZsABFWLAGLxuxBhI+WbAARViwCS8bsQkSPlmyAAsDERI5sgULAxESObIICwMREjkwMSUBMxEjEQEjAREjETMC+wFw57n+ooD+m7nw9QNF+8YDE/ztAyT83AQ6AAEAnAAABAAEOgALAIsAsABFWLAGLxuxBho+WbAARViwCi8bsQoaPlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbAAELAJ0LAJL7JvCQFdtL8JzwkCXbI/CQFxtM8J3wkCcbIPCQFytJ8JrwkCcbL/CQFdsg8JAXGynwkBXbIvCQFdtG8JfwkCcrECAbAKK1gh2Bv0WTAxISMRIREjETMRIREzBAC5/g+6ugHxuQHO/jIEOv4rAdUAAAEAnAAABAEEOgAHADkAsABFWLAGLxuxBho+WbAARViwAC8bsQASPlmwAEVYsAQvG7EEEj5ZsAYQsQIBsAorWCHYG/RZMDEhIxEhESMRIQQBuf4OugNlA6H8XwQ6AAABACgAAAOwBDoABwAyALAARViwBi8bsQYaPlmwAEVYsAIvG7ECEj5ZsAYQsQABsAorWCHYG/RZsATQsAXQMDEBIREjESE1IQOw/pW5/pwDiAOk/FwDpJYAAwBk/mAFaQYAABoAJQAwAIGyBzEyERI5sAcQsCDQsAcQsCvQALAGL7AARViwAy8bsQMaPlmwAEVYsAovG7EKGj5ZsABFWLATLxuxExQ+WbAARViwEC8bsRASPlmwAEVYsBcvG7EXEj5ZsAoQsR4BsAorWCHYG/RZsBAQsSMBsAorWCHYG/RZsCnQsB4QsC7QMDETEBIzMhcRMxE2MzISERQCIyInESMRBiMiAjUlNCYjIgcRFjMyNiUUFjMyNxEmIyIGZNK3VUC5Rl640tG3YUW5QlW20QRMjHs/Ly1DfIn8bYJ6Oi8qPXqEAgkBDwE2HQHP/isj/sr+3O/+5iD+VQGoHQEa9Q/M4RT88RHAsra8EgMREdoAAAEAnP6/BIIEOgALADwAsAgvsABFWLAALxuxABo+WbAARViwBC8bsQQaPlmwAEVYsAovG7EKEj5ZsQIBsAorWCHYG/RZsAbQMDETMxEhETMRMwMjESGcugHyuYESpvzSBDr8XQOj/F3+KAFBAAEAZwAAA70EOwAQAEeyBBESERI5ALAARViwCC8bsQgaPlmwAEVYsA8vG7EPGj5ZsABFWLAALxuxABI+WbIMDwAREjmwDC+xBAGwCitYIdgb9FkwMSEjEQYjIiYnETMRFjMyNxEzA726eoDL1QK5BeSAeroBiCDQwAFD/rfyIAIaAAABAJwAAAXgBDoACwBJALAARViwAC8bsQAaPlmwAEVYsAMvG7EDGj5ZsABFWLAHLxuxBxo+WbAARViwCS8bsQkSPlmxAQGwCitYIdgb9FmwBdCwBtAwMQERIREzESERMxEhEQFWAYy5AYu6+rwEOvxdA6P8XQOj+8YEOgAAAQCR/r8GbQQ6AA8ATACwDC+wAEVYsAAvG7EAGj5ZsABFWLADLxuxAxo+WbAARViwBy8bsQcaPlmwAEVYsA0vG7ENEj5ZsQEBsAorWCHYG/RZsAXQsAnQMDEBESERMxEhETMRMwMjESERAUsBjLkBi7qYEqb63AQ6/F0Do/xdA6P8Xf4oAUEEOgAAAgAeAAAEvwQ6AAwAFQBhsgEWFxESObABELAN0ACwAEVYsAAvG7EAGj5ZsABFWLAJLxuxCRI+WbICAAkREjmwAi+wABCxCwGwCitYIdgb9FmwAhCxDQGwCitYIdgb9FmwCRCxDgGwCitYIdgb9FkwMRMhESEWFhUUBiMhESEBESEyNjU0JiceAfoBGbjW3Lr+Nv6/AfoBE2hyb2QEOv6LAryhosQDov6M/mlrXVpzAgADAJ0AAAV/BDoACgAOABcAb7IGGBkREjmwBhCwDNCwBhCwE9AAsABFWLAJLxuxCRo+WbAARViwDS8bsQ0aPlmwAEVYsAcvG7EHEj5ZsABFWLALLxuxCxI+WbIADQcREjmwAC+xDwGwCitYIdgb9FmwBxCxEAGwCitYIdgb9FkwMQEhFhYVFAYjIREzASMRMwERITI2NTQmJwFWARm41ty6/ja5BCm6uvvXARNocm9kAsUCvKGixAQ6+8YEOv30/mlrXVpzAgACAJ0AAAP9BDoACgATAE+yBxQVERI5sAcQsA3QALAARViwCS8bsQkaPlmwAEVYsAcvG7EHEj5ZsgAJBxESObAAL7ELAbAKK1gh2Bv0WbAHELEMAbAKK1gh2Bv0WTAxASEWFhUUBiMhETMRESEyNjU0JicBVgEZuNbcuv42uQETaHJvZALFAryhosQEOv30/mlrXVpzAgABAGT/7APgBE4AHwCFsgAgIRESOQCwAEVYsAgvG7EIGj5ZsABFWLAQLxuxEBI+WbAIELEAAbAKK1gh2Bv0WbIdCBAREjmwHS+0Lx0/HQJdtL8dzx0CXbSfHa8dAnG0bx1/HQJysgMIHRESObIUEAgREjmwEBCxFwGwCitYIdgb9FmwHRCxGgGwCitYIdgb9FkwMQEiBhUjNDY2MzIAFRUUBgYjIiY1MxQWMzI2NyE1ISYmAghjkbB2xGrTAQV314q08LCOZneaDP5qAZQOlgO2flZdqmX+z/YfmPuJ4Kdmi7ihmJKxAAIAnf/sBjAETgAUAB8AoLINICEREjmwDRCwFdAAsABFWLAULxuxFBo+WbAARViwBC8bsQQaPlmwAEVYsBEvG7EREj5ZsABFWLAMLxuxDBI+WbIAERQREjmwAC+0vwDPAAJdtJ8ArwACcbL/AAFdsg8AAXG0LwA/AAJdtl8AbwB/AANysRABsAorWCHYG/RZsAwQsRgBsAorWCHYG/RZsAQQsR0BsAorWCHYG/RZMDEBITYAMzIAFxcUBgYjIgAnIREjETMBFBYgNjU0JiMiBgFWAQQVAQnK1AEOCwF84JDR/vYQ/v25uQG6pwEapaiMiqgCb9gBB/7i5Tqe/okBEdr+KQQ6/de02t7Gsd7aAAIALwAAA8cEOgANABYAY7IUFxgREjmwFBCwDdAAsABFWLAALxuxABo+WbAARViwAS8bsQESPlmwAEVYsAUvG7EFEj5ZshIAARESObASL7EDAbAKK1gh2Bv0WbIHAwAREjmwABCxEwGwCitYIdgb9FkwMQERIxEhAyMBJiY1NDY3AxQWFyERISIGA8e6/un/yAEQaG/eut5sWQEm/vZnegQ6+8YBpf5bAcEmn2qUtQH+tE9hAQFnZQAB/+j+SwPfBgAAIgCHsg0jJBESOQCwHy+wAEVYsAQvG7EEGj5ZsABFWLAZLxuxGRI+WbAARViwCi8bsQoUPlmyvx8BXbIvHwFdsg8fAV2yHhkfERI5sB4vsCHQsQEBsAorWCHYG/RZsgIZBBESObAKELEPAbAKK1gh2Bv0WbAEELEVAbAKK1gh2Bv0WbABELAb0DAxASERNjMgExEUBiMiJzcWMjY1ETQmIyIGBxEjESM1MzUzFSECY/7ie8UBVwOqmD02DyOCSGlwWogmuaSkuQEeBLn+/pf+ffzcqrISkw1oXAMgeHJgTvz9BLmYr68AAAEAZ//sA/cETgAfAJ+yACAhERI5ALAARViwEC8bsRAaPlmwAEVYsAgvG7EIEj5ZsQABsAorWCHYG/RZsgMIEBESObIbEAgREjmwGy+0DxsfGwJytL8bzxsCXbSfG68bAnG0zxvfGwJxsv8bAV2yDxsBcbQvGz8bAl20bxt/GwJysr8bAXKyFBAbERI5sBAQsRcBsAorWCHYG/RZsBsQsRwBsAorWCHYG/RZMDElMjY3Mw4CIyIAETU0NjYzMhYXIyYmIyIGByEVIRYWAkhjlAiwBXjEbt7+/XXYlLbxCLAIj2iCmgoBlP5sCpmDeFpeqGMBKAEAHp/3htquaYexnZigrQAAAgAnAAAGhgQ6ABYAHwB9sgkgIRESObAJELAX0ACwAEVYsAAvG7EAGj5ZsABFWLAILxuxCBI+WbAARViwDy8bsQ8SPlmyAQAIERI5sAEvsAAQsQoBsAorWCHYG/RZsA8QsREBsAorWCHYG/RZsAEQsRcBsAorWCHYG/RZsAgQsRgBsAorWCHYG/RZMDEBESEWFhUUBgchESEDAgYHIzU3NjY3EwERITI2NTQmJwPfAR6209O3/in+rxcUnKVBNlVNDRcCvAETZXVyYwQ6/mQDtZSTvAMDof5a/uvkAqMECqfTAg/9zP6PaVZRYAEAAAIAnAAABqcEOgASABsAfrIBHB0REjmwARCwE9AAsABFWLACLxuxAho+WbAARViwES8bsREaPlmwAEVYsAsvG7ELEj5ZsABFWLAPLxuxDxI+WbIBEQsREjmwAS+wBNCwARCxDQGwCitYIdgb9FmwBBCxEwGwCitYIdgb9FmwCxCxFAGwCitYIdgb9FkwMQEhETMRIRYWFRQGIyERIREjETMBESEyNjU0JicBVgHxuQEitNHZvf42/g+6ugKqARNldXJjAqEBmf5jBLGWl7sCCv32BDr9zP6PaVZRYAEAAAH//QAAA98GAAAZAHuyDBobERI5ALAWL7AARViwBC8bsQQaPlmwAEVYsAcvG7EHEj5ZsABFWLAQLxuxEBI+WbK/FgFdsi8WAV2yDxYBXbIZEBYREjmwGS+xAAGwCitYIdgb9FmyAgQHERI5sAQQsQwBsAorWCHYG/RZsAAQsBLQsBkQsBTQMDEBIRE2MyATESMRJiYjIgYHESMRIzUzNTMVIQJ5/sx7xQFXA7kBaW9aiCa5j4+5ATQEvv75l/59/TUCzHVwYE78/QS+l6urAAABAJz+nAQBBDoACwBGALAIL7AARViwAC8bsQAaPlmwAEVYsAMvG7EDGj5ZsABFWLAFLxuxBRI+WbAARViwCS8bsQkSPlmxAQGwCitYIdgb9FkwMQERIREzESERIxEhEQFWAfK5/q25/qcEOvxdA6P7xv6cAWQEOgABAJz/7AZ1BbAAIABhsgchIhESOQCwAEVYsAAvG7EAHj5ZsABFWLAOLxuxDh4+WbAARViwFy8bsRcePlmwAEVYsAQvG7EEEj5ZsABFWLAKLxuxChI+WbIHAAQREjmxEwGwCitYIdgb9FmwHNAwMQERFAYjIiYnBgYjIiYnETMRFBYzMjY1ETMRFBYzMjY1EQZ14cNtqzE0snG91wHBcmJygsd8aWp6BbD73sbcV1lZV9vDBCb73XuKiXwEI/vdfYiJfQQiAAABAIH/6wWtBDoAHgBhsgYfIBESOQCwAEVYsAAvG7EAGj5ZsABFWLAMLxuxDBo+WbAARViwFS8bsRUaPlmwAEVYsAQvG7EEEj5ZsABFWLAILxuxCBI+WbIGFQQREjmxEQGwCitYIdgb9FmwGtAwMQERFAYjIicGIyImJxEzERYWMzI2NREzERQWMzI2NxEFrcquxllfzqfAAbkBW1Nib7plXFllAQQ6/SewxpSUw7AC3P0jZnV4ZwLZ/SdneHVmAt0AAAL/3AAAA/wGFgARABoAdLIUGxwREjmwFBCwA9AAsABFWLAOLxuxDiA+WbAARViwCC8bsQgSPlmyEQ4IERI5sBEvsQABsAorWCHYG/RZsgIOCBESObACL7AAELAK0LARELAM0LACELESAbAKK1gh2Bv0WbAIELETAbAKK1gh2Bv0WTAxASERIRYWEAYHIREjNTMRMxEhAREhMjY1NCYnApb+vwEYu9TUt/4qv7+6AUH+vwESaXFvZAQ6/rACyv620QMEOpcBRf67/YH+RXdkYX0CAAEAt//tBqAFxQAmAIqyHicoERI5ALAARViwBS8bsQUePlmwAEVYsCYvG7EmHj5ZsABFWLAdLxuxHRI+WbAARViwIy8bsSMSPlmyEAUdERI5sBAvsADQsAUQsAnQsAUQsQwBsAorWCHYG/RZsBAQsREBsAorWCHYG/RZsB0QsRYBsAorWCHYG/RZsB0QsBnQsBEQsCHQMDEBMzYSJDMyABcjJiYjIgIHIRUhFRQSMzI2NzMGBCMgABE1IxEjETMBeMcFkwEGrOYBGRjAGaeXtM8GAh794sayo6kcwBv+4e7+/v7Jx8HBA0DBASae/wDorJ7+++KXGu3+6JOy5/sBcgE2FP1XBbAAAAEAmf/sBaEETgAkAMeyAyUmERI5ALAARViwBC8bsQQaPlmwAEVYsCQvG7EkGj5ZsABFWLAhLxuxIRI+WbAARViwHC8bsRwSPlmyDxwEERI5sA8vtL8Pzw8CXbQ/D08PAnG0zw/fDwJxtA8PHw8CcrSfD68PAnGy/w8BXbIPDwFxtC8PPw8CXbRvD38PAnKwANCyCA8EERI5sAQQsQsBsAorWCHYG/RZsA8QsRABsAorWCHYG/RZsBwQsRQBsAorWCHYG/RZshccBBESObAQELAf0DAxATM2EjMyFhcjJiYjIgYHIRUhFhYzMjY3Mw4CIyICJyMRIxEzAVO/EP/RtvEIsAiPaISYCgG1/ksKmYNjlAiwBXjEbtH+EMC6ugJn3wEI2q5ph7Gel6CteFpeqGMBBt7+MAQ6AAIAKAAABOQFsAALAA4AVwCwAEVYsAgvG7EIHj5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmwAEVYsAovG7EKEj5Zsg0IAhESObANL7EAAbAKK1gh2Bv0WbAE0LIOCAIREjkwMQEjESMRIwMjATMBIwEhAwOJqryemMUCDasCBMX9nwGTxwG2/koBtv5KBbD6UAJaAkkAAgAPAAAEJQQ6AAsAEABXALAARViwCC8bsQgaPlmwAEVYsAIvG7ECEj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmyDQIIERI5sA0vsQEBsAorWCHYG/RZsATQsg8IAhESOTAxASMRIxEjAyMBMwEjASEDJwcC7XW5fHe9AbqfAb2+/hkBL4AYGAEp/tcBKf7XBDr7xgHBATtZWQACAMkAAAb1BbAAEwAWAH0AsABFWLACLxuxAh4+WbAARViwEi8bsRIePlmwAEVYsAQvG7EEEj5ZsABFWLAILxuxCBI+WbAARViwDC8bsQwSPlmwAEVYsBAvG7EQEj5ZshUCBBESObAVL7AA0LAVELEGAbAKK1gh2Bv0WbAK0LAGELAO0LIWAgQREjkwMQEhATMBIwMjESMRIwMjEyERIxEzASEDAYoBhwE1qwIExZaqvJ6YxZ7+s8HBAkUBk8cCWQNX+lABtv5KAbb+SgG4/kgFsPyqAkkAAgC8AAAF5AQ6ABMAGACAALAARViwAi8bsQIaPlmwAEVYsBIvG7ESGj5ZsABFWLAELxuxBBI+WbAARViwCC8bsQgSPlmwAEVYsAwvG7EMEj5ZsABFWLAQLxuxEBI+WbIAEBIREjmwAC+wAdCxDgGwCitYIdgb9FmwC9CwB9CwARCwFNCwFdCyFxIEERI5MDEBIQEzASMDIxEjESMDIxMjESMRMwEhAycHAXYBDwEDnwG9vnp1uXx3vXnRuroByQEvgBgYAcECefvGASn+1wEp/tcBKP7YBDr9hwE7WVkAAgCTAAAGPwWwAB0AIQB4sh4iIxESObAeELAO0ACwAEVYsBwvG7EcHj5ZsABFWLAFLxuxBRI+WbAARViwDS8bsQ0SPlmwAEVYsBUvG7EVEj5ZsgENHBESObABL7EKAbAKK1gh2Bv0WbAQ0LABELAa0LABELAe0LAcELEgAbAKK1gh2Bv0WTAxATMyFhcRIxEmJicjBxEjEScjIgYHESMRNjYzMwEhATMBIQRBG/TsA8EBfJqFFcENiJ6CBMAD7PMq/ngEsv2fEAEa/bsDKtTY/oIBeJCCAiP9lwJ2FnuN/nwBftjUAob9egHoAAACAJYAAAVLBDoAGwAfAHWyHCAhERI5sBwQsBTQALAARViwBi8bsQYaPlmwAEVYsBsvG7EbEj5ZsABFWLAULxuxFBI+WbAARViwDC8bsQwSPlmyHBQGERI5sBwvsATQsBwQsAfQsRABsAorWCHYG/RZsBfQsAYQsR4BsAorWCHYG/RZMDEzNTY2NwEhARYWFxUjNSYmIyMHESMRJyMiBgcVATMTIZYEytL+4QO//uDOxQK6AnOMNQu5Bj6MdQIBogi3/ou2zdIGAd/+IQvT0K2xkoET/k8Buwl+lbECXAFGAAIAtgAACHIFsAAiACYAlbImJygREjmwJhCwHtAAsABFWLAILxuxCB4+WbAARViwCy8bsQsePlmwAEVYsAUvG7EFEj5ZsABFWLAiLxuxIhI+WbAARViwGy8bsRsSPlmwAEVYsBMvG7ETEj5ZsgkFCBESObAJL7EEAbAKK1gh2Bv0WbAJELAj0LAN0LAEELAe0LAY0LALELEmAbAKK1gh2Bv0WTAxIRE2NyERIxEzESEBIQEzMhYXESMRJiYnIwcRIxEnIyIGBxEBMwEhAsUBT/5iwcEDWf55BLP+eBv07APBAXyahRbADoeeggQCFRABGv27AXizaf1sBbD9fAKE/XrU2P6CAXiQggIl/ZkCdRd7jf58AyoB6AACAJsAAAc7BDoAIQAlAJiyHiYnERI5sB4QsCXQALAARViwBy8bsQcaPlmwAEVYsAsvG7ELGj5ZsABFWLAALxuxABI+WbAARViwBS8bsQUSPlmwAEVYsBEvG7EREj5ZsABFWLAZLxuxGRI+WbIKCwAREjmwCi+xHQGwCitYIdgb9FmwA9CwChCwDdCwHRCwFtCwChCwItCwCxCxJAGwCitYIdgb9FkwMSE1NjchESMRMxEhASEBFhYXFSM1JiYjIwcRIxEnIwYGBxUBMxMhAoYCRv6HuroC0f7hA7/+4M7FAroCc4w1C7kGS4VvAgGiCLf+i6+taP48BDr+IgHe/iEL09CtsZKBE/5PAbsJAoCTrwJcAUYAAAIAUP5GA6oHhgApADIAirIqMzQREjmwKhCwAtAAsBkvsC4vsABFWLAFLxuxBR4+WbAARViwEi8bsRISPlmwBRCxAwGwCitYIdgb9FmyKAUSERI5sCgvsSUBsAorWCHYG/RZsgwlKBESObASELEfAbAKK1gh2Bv0WbIPLgFdsC4QsCvQsCsvtA8rHysCXbIqLisREjmwMtAwMQE0JiMhNSEyBBUUBgcWFhUUBCMjBhUUFxcHJiY1NDY3MzY2NRAlIzUzIAM3MxUDIwM1MwLanYf+zgEr3gEGgXOCif734DSNgh9Keo2lojSGn/6+mYYBP7uXoP5y+p0EKm6AmNiyZ6QtKa2CxOUDbWlCD301qGN6gwEBlHkBCAWYA6WqCv7uARIKAAACAEz+RgN2BjAAKQAyAJ+yLjM0ERI5sC4QsB/QALAYL7AuL7AARViwBS8bsQUaPlmwAEVYsBEvG7EREj5ZsAUQsQMBsAorWCHYG/RZsigFERESObAoL7IvKAFdtL8ozygCXbSfKK8oAnG0byh/KAJysSUBsAorWCHYG/RZsgwlKBESObARELEeAbAKK1gh2Bv0WbAuELAr0LArL7QPKx8rAl2yKi4rERI5sDLQMDEBNCYnITUhMhYVFAYHFhUUBiMjBhUUFxcHJiY1NDY3MzY3NjU0JSM1MyADNzMVAyMDNTMCp39w/skBJ8ruZlvX88gyjYIfS3yKpaI2ckM//uiZiAET2Zeg/nL6nQMJQ1MCmaqLSXckQq+UrwNtaUIPfTeoYXqDAQIwLkiiA5gDHaoK/u4BEgoAAwBn/+wE+gXEABEAGAAfAIyyBCAhERI5sAQQsBLQsAQQsBnQALAARViwDS8bsQ0ePlmwAEVYsAQvG7EEEj5ZsA0QsRIBsAorWCHYG/RZshYNBBESObAWL7IvFgFdss8WAV2yLxYBcbL/FgFdsl8WAV20TxZfFgJxsp8WAXGwBBCxGQGwCitYIdgb9FmwFhCxHAGwCitYIdgb9FkwMQEUAgQjIiQCJzU0EiQzMgQSFwEiAgchJgIDMhI3IRYSBPqP/vixrP72kwKSAQusrwEIkQL9trbQBAMUBM62tsoI/OwI0wKp1f7CqqkBOc5p0gFCq6j+xc8CDf7t8vgBDftwAQD07P74AAMAW//sBDQETgAPABUAHACKsgQdHhESObAEELAT0LAEELAW0ACwAEVYsAQvG7EEGj5ZsABFWLAMLxuxDBI+WbIaDAQREjmwGi+0vxrPGgJdtJ8arxoCcbL/GgFdsg8aAXG0Lxo/GgJdtM8a3xoCcbEQAbAKK1gh2Bv0WbAMELEUAbAKK1gh2Bv0WbAEELEWAbAKK1gh2Bv0WTAxEzQ2NjMyABcXFAYGIyIANQUhFhYgNgEiBgchJiZbe+GP1AEOCwF84JDe/vEDHP2fDaQBAqH+3H2iDwJeEqMCJ5/9i/7i5Tqe/okBM/tEm7i6Anm1k5exAAABABYAAATdBcMADwBHsgIQERESOQCwAEVYsAYvG7EGHj5ZsABFWLAPLxuxDx4+WbAARViwDC8bsQwSPlmyAQYMERI5sAYQsQgBsAorWCHYG/RZMDEBFzcBNjYzFwciBgcBIwEzAkMhIwEIM4ZnLgFAQB/+fKr+B9ABdoKBAz+XeAGrPFT7eQWwAAABAC4AAAQLBE0AEQBHsgISExESOQCwAEVYsAUvG7EFGj5ZsABFWLARLxuxERo+WbAARViwDi8bsQ4SPlmyAQUOERI5sAUQsQoBsAorWCHYG/RZMDEBFzcTNjMyFwcmIyIGBwEjATMB2xcZnU2sRyMVDR0fPBD+143+g70BPGRkAh/yGJQIMC38tAQ6AAIAZ/9zBPoGNAATACcAVLIFKCkREjmwBRCwGdAAsABFWLANLxuxDR4+WbAARViwAy8bsQMSPlmwBtCwDRCwENCxFwGwCitYIdgb9FmwGtCwAxCxJAGwCitYIdgb9FmwIdAwMQEQAAcVIzUmAAM1EAA3NTMVFgARJzQCJxUjNQYCFRUUEhc1MxU2EjUE+v7+47nl/vEBAQ7nueIBA7+ZjbmTo6SSuY+XAqn+3f6RI4F/HwFxASNgASQBdh92eCX+kP7ZB+ABCSNhZB/+7t9d3v7sH2ZkIgEL4gAAAgBb/4kENAS1ABMAJQBasgMmJxESObADELAc0ACwAEVYsAMvG7EDGj5ZsABFWLAQLxuxEBI+WbADELAG0LAQELAN0LAQELEjAbAKK1gh2Bv0WbAU0LADELEdAbAKK1gh2Bv0WbAa0DAxEzQSNzUzFRYSFRUUAgcVIzUmAjUBNjY1NCYnFSM1BgYVFBYXNTNb1Lm5utndtrm02QJGY3Z0ZblicnFjuQIn0gEqInBvIP7Y3RDY/tgda2wfASfc/nkfzauR0CBiYSHQpZLLImYAAAMAnP/rBm8HUQAsAEAASQCqsgpKSxESObAKELAy0LAKELBJ0ACwAEVYsBQvG7EUHj5ZsABFWLANLxuxDRI+WbAUELAA0LANELAH0LIKDRQREjmwFBCxFQGwCitYIdgb9FmwDRCxHAGwCitYIdgb9FmyIBQNERI5sCXQsBUQsCzQsBQQsDjQsDgvsC/QsS0CsAorWCHYG/RZsC8QsDTQsDQvsTwCsAorWCHYG/RZsDgQsETQsEnQsEkvMDEBMhYVERQGIyImJwYGIyImJxE0NjMVIgYVERQWMzI2NREzERQWMzI2NRE0JiMTFSMiLgIjIhUVIzU0NjMyHgIBNjc1MxUUBgcE27vZ2btwsjQ0sHC52ATYvWNxcmJygsGCc2Nwb2RoK1CCuDQYcYB/bihIv2r+QEIDnVs7Ba/w1v3G1PBVWFhV6M0CStTxnp2J/cSMm4l8Aaz+VHqLnIwCOoifAcJ/IlAMcA8kbmwRUhv+kFA8aWYydSAAAwB+/+sFqgXxACsAPwBIALCyCUlKERI5sAkQsDzQsAkQsEjQALAARViwEy8bsRMaPlmwAEVYsAwvG7EMEj5ZsBMQsADQsAwQsAfQsgkMExESObATELEUAbAKK1gh2Bv0WbAMELEbAbAKK1gh2Bv0WbIfEwwREjmwJNCwFBCwK9CwExCwN9CwNy+wLdCwLS+xLAKwCitYIdgb9FmwLRCwM9CwMy+xOwKwCitYIdgb9FmwNxCwQ9CwQy+wSNCwSC8wMQEyFhURFAYjIicGBiMiJicRNDYzFSIGFREUFjMyNjU1MxUWFjMyNjURNCYjExUjIi4CIyIVFSM1NDYzMh4CATY3NTMVFAYHBEKowMCo0F8vnGKjwQTAqFJdXFNib7kBcGFRXV1RqixPfsAwGHKAf28pSrdt/kFBA55bOwRE28L+38HalUtK0LsBMsHbmIh8/t57iXhn6+5ndYh9ASF8iAHHfyBSC28PJG5sElAc/oZOP2hmMnUgAAIAnP/sBnUHAwAgACgAhLIHKSoREjmwBxCwJ9AAsABFWLAPLxuxDx4+WbAARViwFy8bsRcePlmwAEVYsCAvG7EgHj5ZsABFWLAKLxuxChI+WbAE0LIHCg8REjmwChCxEwGwCitYIdgb9FmwHNCwDxCwJ9CwJy+wKNCwKC+xIgawCitYIdgb9FmwKBCwJdCwJS8wMQERFAYjIiYnBgYjIiYnETMRFBYzMjY1ETMRFBYzMjY1ESU1IRchFSM1BnXhw22rMTSycb3XAcFyYnKCx3xpanr8QgMsAf61qAWw+97G3FdZWVfbwwQm+917iol8BCP73X2IiX0EIuhra319AAACAIH/6wWtBbAAHgAmAIeyBicoERI5sAYQsCPQALAARViwDS8bsQ0aPlmwAEVYsBUvG7EVGj5ZsABFWLAeLxuxHho+WbAARViwCC8bsQgSPlmwBNCwBC+yBggNERI5sAgQsREBsAorWCHYG/RZsBrQsA0QsCXQsCUvsCbQsCYvsSAGsAorWCHYG/RZsCYQsCPQsCMvMDEBERQGIyInBiMiJicRMxEWFjMyNjURMxEUFjMyNjcRATUhFyEVIzUFrcquxllfzqfAAbkBW1Nib7plXFllAfyTAywD/rOpBDr9J7DGlJTDsALc/SNmdXhnAtn9J2d4dWYC3QELa2uAgAAAAQB1/oQEvAXFABkAS7IYGhsREjkAsAAvsABFWLAKLxuxCh4+WbAARViwAi8bsQISPlmwChCwDtCwChCxEQGwCitYIdgb9FmwAhCxGQGwCitYIdgb9FkwMQEjESYANTU0EiQzMgAXIyYmIyICFRUUEhczAxS/2P74jgEAoPcBIALBArWhoM3FnXz+hAFsHAFW//SxASCf/vjgnqz+/NT0yv77BAABAGT+ggPgBE4AGQBLshgaGxESOQCwAC+wAEVYsAovG7EKGj5ZsABFWLACLxuxAhI+WbAKELAO0LAKELERAbAKK1gh2Bv0WbACELEYAbAKK1gh2Bv0WTAxASMRJgI1NTQ2NjMyFhUjNCYjIgYVFRQWFzMCormx1HfXi7Pwr49lhJyWgm3+ggFwHgEm2SOZ+YrhqGWM2rUfqNsDAAABAHQAAASQBT4AEwATALAOL7AARViwBC8bsQQSPlkwMQEFByUDIxMlNwUTJTcFEzMDBQclAlgBIUT+3bao4f7fRAElzf7eRgEjvKXnASVI/uABvqx7qv6/AY6re6sBbat9qwFL/mireqoAAfxnBKb/JwX8AAcAEgCwAC+xAwawCitYIdgb9FkwMQEVJzchJxcV/Q2mAQIbAaUFI30B6WwB2AAB/HEFF/9kBhUAEwAwALAOL7AI0LAIL7EAArAKK1gh2Bv0WbAOELAF0LAFL7AOELEPArAKK1gh2Bv0WTAxATIWFRUjNTQjIgcHBgcjNTI+Av52b3+Aciotb4l2PGxqwUcGFWxuJA5wEi86An4bUxEAAf1mBRb+VAZXAAUADACwAS+wBdCwBS8wMQE1MxUXB/1msztNBdx7jHRBAAAB/aQFFv6TBlcABQAMALADL7AA0LAALzAxASc3JzMV/fFNOwG1BRZBdIx7AAj6G/7EAbYFrwAMABoAJwA1AEIATwBcAGoAfwCwRS+wUy+wYC+wOC+wAEVYsAIvG7ECHj5ZsQkLsAorWCHYG/RZsEUQsBDQsEUQsUwLsAorWCHYG/RZsBfQsFMQsB7QsFMQsVoLsAorWCHYG/RZsCXQsGAQsCvQsGAQsWcLsAorWCHYG/RZsDLQsDgQsT8LsAorWCHYG/RZMDEBNDYyFhUjNCYjIgYVATQ2MzIWFSM0JiMiBhUTNDYzMhYVIzQmIgYVATQ2MzIWFSM0JiMiBhUBNDYyFhUjNCYjIgYVATQ2MhYVIzQmIyIGFQE0NjMyFhUjNCYiBhUTNDYzMhYVIzQmIyIGFf0Ic750cDMwLjMB3nRdX3VxNS4sM0h1XV90cDVcM/7LdF1fdHA1Li0z/U9zvnRwMzAuM/1NdL50cDMwLjP+3nVdX3RwNVwzNXVdX3VxNS4tMwTzVGhoVC43NTD+61RoZ1UxNDUw/glVZ2hUMTQ3Lv35VGhoVDE0Ny7+5FRoaFQuNzcuBRpUaGhULjc1MP4JVWdoVDE0Ny79+VVnZ1UxNDUwAAAI+iz+YwFrBcYABAAJAA4AEwAYAB0AIgAnADkAsCEvsBIvsAsvsBsvsCYvsABFWLAHLxuxBx4+WbAARViwFi8bsRYcPlmwAEVYsAIvG7ECFD5ZMDEFFwMjEwMnEzMDATcFFSUFByU1BQE3JRcFAQcFJyUDJwM3EwEXEwcD/i8LemBGOgx6YEYCHQ0BTf6m+3UN/rMBWgOcAgFARP7b/PMC/sBFASYrEZRBxgNgEZRCxDwO/q0BYQSiDgFS/qD+EQx8Ykc7DHxiRwGuEJlEyPyOEZlFyALkAgFGRf7V/OMC/rtHASsA//8Asf6bBbMHGQAmANwAAAAnAKEBMQFCAQcAEAR//70AEwCwAEVYsAgvG7EIHj5ZsA3cMDEA//8AnP6bBLUFwwAmAPAAAAAnAKEAof/sAQcAEAOB/70AEwCwAEVYsAgvG7EIGj5ZsA3cMDEAAAL/3AAAA/wGcQARABoAd7IUGxwREjmwFBCwA9AAsABFWLAMLxuxDB4+WbAARViwEC8bsRAePlmwAEVYsAgvG7EIEj5ZsBAQsQABsAorWCHYG/RZsgIMCBESObACL7AAELAK0LAL0LACELESAbAKK1gh2Bv0WbAIELETAbAKK1gh2Bv0WTAxASERIRYWEAYHIREjNTM1MxUhAREhMjY1NCYnApb+vwEYu9TUt/4qv7+6AUH+vwESaXFvZAUY/dICyv620QMFGJjBwfyi/kV3ZGF9AgAAAgCoAAAE1wWwAA4AGwBWsgQcHRESObAEELAX0ACwAEVYsAMvG7EDHj5ZsABFWLABLxuxARI+WbIWAwEREjmwFi+xAAGwCitYIdgb9FmyCQADERI5sAMQsRQBsAorWCHYG/RZMDEBESMRITIEFRQHFwcnBiMBNjU0JichESEyNyc3AWnBAhnsARNnfm2LdqgBGSWlkf6gAVhiRW5uAjr9xgWw8su6cIpnmTcBG0Fbgp0C/cUdeWYAAAIAjP5gBCMETgATACIAd7IcIyQREjmwHBCwENAAsABFWLAQLxuxEBo+WbAARViwDS8bsQ0aPlmwAEVYsAovG7EKFD5ZsABFWLAHLxuxBxI+WbICBxAREjmyCRAHERI5sg4QBxESObAQELEXAbAKK1gh2Bv0WbAHELEcAbAKK1gh2Bv0WTAxARQHFwcnBiMiJxEjETMXNjMyEhEnNCYjIgcRFjMyNyc3FzYEHmpvbm5Zc8VxuakJccnD47mciKhUU6tSPGZuWjICEe6XfWZ7OH399wXaeIz+2v76BLfUlf37lCdzZ2diAAABAKIAAAQjBwAACQA2sgMKCxESOQCwCC+wAEVYsAYvG7EGHj5ZsABFWLAELxuxBBI+WbAGELECAbAKK1gh2Bv0WTAxASMVIREjESERMwQjA/1CwALIuQUYBvruBbABUAABAJEAAANCBXYABwAvALAGL7AARViwBC8bsQQaPlmwAEVYsAIvG7ECEj5ZsAQQsQABsAorWCHYG/RZMDEBIREjESERMwNC/gm6Afi5A6H8XwQ6ATwAAAEAsf7fBHwFsAAVAF6yChYXERI5ALAJL7AARViwFC8bsRQePlmwAEVYsBIvG7ESEj5ZsBQQsQABsAorWCHYG/RZsgMUCRESObADL7AJELEKAbAKK1gh2Bv0WbADELEQAbAKK1gh2Bv0WTAxASERMyAAERACIycyNjUmJiMjESMRIQQw/UKyARwBPPXkApGQAczOtcEDfwUS/i/+z/7w/vj+55PDy8vU/WEFsAABAJH+5QO+BDoAFgBesgsXGBESOQCwCi+wAEVYsBUvG7EVGj5ZsABFWLATLxuxExI+WbAVELEAAbAKK1gh2Bv0WbIDFQoREjmwAy+wChCxCwGwCitYIdgb9FmwAxCxEQGwCitYIdgb9FkwMQEhETMyABUUBgYHJzY2NTQmIyMRIxEhAz7+DWzvARhiqnUwgHiymHC6Aq0Dof7k/vzXYsiGFZIhmXmRqP4dBDr//wAb/pkHggWwACYA2gAAAAcCUQZhAAD//wAV/pkGPQQ6ACYA7gAAAAcCUQUcAAD//wCy/pcFRAWwACYCLAAAAAcCUQQj//7//wCc/pkEgQQ6ACYA8QAAAAcCUQNgAAAAAQCjAAAE/wWwABQAYwCwAEVYsAAvG7EAHj5ZsABFWLAMLxuxDB4+WbAARViwAi8bsQISPlmwAEVYsAovG7EKEj5ZsA/QsA8vsi8PAV2yzw8BXbEIAbAKK1gh2Bv0WbIBCA8REjmwBdCwDxCwEtAwMQkCIwEjFSM1IxEjETMRMxEzETMBBNL+cAG98f6iUJRowcFolE0BQwWw/U79AgKO9PT9cgWw/X8BAP8AAoEAAQCaAAAEfwQ6ABQAfACwAEVYsA0vG7ENGj5ZsABFWLAULxuxFBo+WbAARViwCi8bsQoSPlmwAEVYsAMvG7EDEj5ZsAoQsA7QsA4vsp8OAV2y/w4BXbKfDgFxtL8Ozw4CXbIvDgFdsm8OAXKxCQGwCitYIdgb9FmyAQkOERI5sAXQsA4QsBLQMDEJAiMBIxUjNSMRIxEzETM1MxUzAQRa/q4Bd+v+6zKUZbq6ZZQqAQMEOv3+/cgBzcLC/jMEOv421dUBygAAAQBEAAAGiwWwAA4AbQCwAEVYsAYvG7EGHj5ZsABFWLAKLxuxCh4+WbAARViwAi8bsQISPlmwAEVYsA0vG7ENEj5ZsggGAhESObAIL7IvCAFdss8IAV2xAQGwCitYIdgb9FmwBhCxBAGwCitYIdgb9FmyDAEIERI5MDEBIxEjESE1IREzATMBASMDkLDB/iUCnJYB/O/91AJW7AKO/XIFGJj9fgKC/T/9EQABAD4AAAV9BDoADgCCALAARViwBi8bsQYaPlmwAEVYsAovG7EKGj5ZsABFWLACLxuxAhI+WbAARViwDS8bsQ0SPlmwAhCwCdCwCS+ynwkBXbL/CQFdsp8JAXG0vwnPCQJdsi8JAV2ybwkBcrEAAbAKK1gh2Bv0WbAGELEEAbAKK1gh2Bv0WbIMAAkREjkwMQEjESMRITUhETMBMwEBIwMbiLr+ZQJVegFr4f5TAdHrAc3+MwOhmf42Acr9+P3OAP//AKn+mQWpBbAAJgAsAAAABwJRBIgAAP//AJz+mQSiBDoAJgD0AAAABwJRA4EAAAABAKgAAAeEBbAADQBgALAARViwAi8bsQIePlmwAEVYsAwvG7EMHj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmwAdCwAS+yLwEBXbACELEEAbAKK1gh2Bv0WbABELEIAbAKK1gh2Bv0WTAxASERIRUhESMRIREjETMBaQLeAz39g8D9IsHBAz4Ccpj66AKh/V8FsAABAJEAAAVpBDoADQCdALAARViwAi8bsQIaPlmwAEVYsAwvG7EMGj5ZsABFWLAGLxuxBhI+WbAARViwCi8bsQoSPlmwBhCwAdCwAS+ybwEBXbS/Ac8BAl2yPwEBcbTPAd8BAnGyDwEBcrSfAa8BAnGy/wEBXbIPAQFxsp8BAV2yLwEBXbRvAX8BAnKwAhCxBAGwCitYIdgb9FmwARCxCAGwCitYIdgb9FkwMQEhESEVIREjESERIxEzAUsB8QIt/oy5/g+6ugJlAdWZ/F8Bzv4yBDoAAAEAsP7fB80FsAAXAGuyERgZERI5ALAHL7AARViwFi8bsRYePlmwAEVYsBQvG7EUEj5ZsABFWLARLxuxERI+WbIBFgcREjmwAS+wBxCxCAGwCitYIdgb9FmwARCxDgGwCitYIdgb9FmwFhCxEgGwCitYIdgb9FkwMQEzIAAREAIjJzI2NSYmIyMRIxEhESMRIQT/dgEcATz15AKRkAHMznnB/TLABE8DQf7P/vD++P7nk8PLy9T9YQUS+u4FsAABAJH+5QawBDoAGABrshIZGhESOQCwCC+wAEVYsBcvG7EXGj5ZsABFWLAVLxuxFRI+WbAARViwEi8bsRISPlmyARcIERI5sAEvsAgQsQkBsAorWCHYG/RZsAEQsQ8BsAorWCHYG/RZsBcQsRMBsAorWCHYG/RZMDEBMzIAFQcGBgcnNjY1NCYjIxEjESERIxEhA/ag+AEiAxTRmTB8e7ygpLn+DroDZQKF/vzXJqPhG5Igln2Sp/4dA6H8XwQ6AAACAHH/5AWiBcUAKAA2AKCyGDc4ERI5sBgQsCnQALAARViwDS8bsQ0ePlmwAEVYsB8vG7EfHj5ZsABFWLAELxuxBBI+WbAA0LAAL7ICBB8REjmwAi+wDRCxDgGwCitYIdgb9FmwBBCxFQGwCitYIdgb9FmwAhCxLAGwCitYIdgb9FmyFwIsERI5siYsAhESObAAELEoAbAKK1gh2Bv0WbAfELEzAbAKK1gh2Bv0WTAxBSInBiMiJAI1NTQSNjMXIgYVFRQSMzI3JgI1NTQ2NjMyEhUVFAIHFjMBFBYXNjY1NTQmIyIGFQWi17OOrLL+5J910oQBdpTsv0Y4eYRovXa25m9maHn9fXh1Ymh5Y2F6HElCsgFCxKyxASKjpf7Zpuz+1w1hARWq45r9jf7M/eue/vZfGgI0mO1KSOeN+bHO0rIAAgBt/+sEnARPACQALwCnsgQwMRESObAEELAl0ACwAEVYsAwvG7EMGj5ZsABFWLAcLxuxHBo+WbAARViwBC8bsQQSPlmwAEVYsAAvG7EAEj5ZsgIEHBESObACL7AMELENAbAKK1gh2Bv0WbAEELEUAbAKK1gh2Bv0WbACELEnAbAKK1gh2Bv0WbIWFCcREjmwABCxJAGwCitYIdgb9FmyIickERI5sBwQsSwBsAorWCHYG/RZMDEFIicGIyImAjU1NBIzFSIGFRUUFjMyNyYRNTQ2MzIWFRUUBxYzARQXNjc1NCYiBgcEnLKMdo+M4X/Fm0ldqYkuLMGtj4yygE9h/g+fZgNJeEYBDDlClQESpzrNAQ6erZI4wfALogERXsDr+c5i450VAanWdHO6dYKejXr//wA5/pkE+AWwACYAPAAAAAcCUQPXAAD//wAp/pkEBgQ6ACYAXAAAAAcCUQLlAAAAAQA0/qEGkwWwABMAXQCwES+wAEVYsAcvG7EHHj5ZsABFWLAMLxuxDB4+WbAARViwEy8bsRMSPlmwBxCxCAGwCitYIdgb9FmwANCwBxCwBdCwA9CwAtCwExCxCgGwCitYIdgb9FmwDtAwMQEhNSE1MxUhFSERIREzETMDIxEhAav+iQF3wQGB/n8CzsGYEqz71gUYlwEBl/uFBRP68f4AAV8AAQAf/r8FFgQ6AA8ATQCwDS+wAEVYsAMvG7EDGj5ZsABFWLAPLxuxDxI+WbADELEEAbAKK1gh2Bv0WbAA0LAPELEGAbAKK1gh2Bv0WbADELAI0LAGELAK0DAxASE1IRUjESERMxEzAyMRIQEx/u4CxPkB8rqAEqX80gOjl5f89AOj/F3+KAFB//8Alv6ZBWcFsAAmAOEAAAAHAlEERgAA//8AZ/6ZBF8EOwAmAPkAAAAHAlEDPgAAAAEAlgAABMgFsAAXAFCyBBgZERI5ALAARViwAC8bsQAePlmwAEVYsAovG7EKHj5ZsABFWLAMLxuxDBI+WbIHAAwREjmwBy+wBNCwBxCxEAGwCitYIdgb9FmwE9AwMQERFhYzETMRNjcRMxEjEQYHFSM1IiYnEQFXAYmglXl4wcFyf5X47wQFsP4ymoQBNv7SDSECtvpQAlsiDe7o2doB1wABAIMAAAPZBDsAFgBQsgYXGBESOQCwAEVYsAsvG7ELGj5ZsABFWLAVLxuxFRo+WbAARViwAC8bsQASPlmyDxUAERI5sA8vsQcBsAorWCHYG/RZsATQsA8QsBLQMDEhIxEGBxUjNSYmJxEzERYXETMRNjcRMwPZukZTlrC7ArkFr5ZURboBiBMJh4UNzLUBQ/610xoBGP7qChECGgABAIkAAAS6BbAAEQBHsgUSExESOQCwAEVYsAEvG7EBHj5ZsABFWLAALxuxABI+WbAARViwCS8bsQkSPlmyBQEAERI5sAUvsQ4BsAorWCHYG/RZMDEzETMRNjMyFhcRIxEmJiMiBxGJwLnL+PIDwAGJo7zIBbD9pDXY3/4uAc2Yhjf9TAACAD//6gW9BcMAHQAlAGeyFyYnERI5sBcQsCTQALAARViwDy8bsQ8ePlmwAEVYsAAvG7EAEj5Zsh8PABESObAfL7ETAbAKK1gh2Bv0WbAE0LAfELAL0LAAELEYAbAKK1gh2Bv0WbAPELEjAbAKK1gh2Bv0WTAxBSAAETUmJjUzFBYXNBI2MyAAERUhFRQWMzI3FwYGASE1NCYjIgID6f7i/rOZpphQV479lgECARz8gt7Ms6YvQNL94AK+s6uewhYBUQEpWxPFolp9FLQBH6L+o/6+bF3c91OPLTUDWiHZ5f79AAAC/97/7ARjBE4AGQAhAHWyFCIjERI5sBQQsBvQALAARViwDS8bsQ0aPlmwAEVYsAAvG7EAEj5Zsh4NABESObAeL7S/Hs8eAl2xEQGwCitYIdgb9FmwA9CwHhCwCdCwABCxFQGwCitYIdgb9FmyFw0AERI5sA0QsRoBsAorWCHYG/RZMDEFIgA1JiY1MxQXPgIzMhIRFSEWFjMyNxcGASIGByE1JiYCvdz+7Hh3k2UUhMhw0+r9IwSziq5vcYj+2XCYEgIeCIgUASH6Ha6GkzCCyW7+6v79TaDFkljRA8qjkw6NmwABAKP+1gTMBbAAFgBfshUXGBESOQCwDi+wAEVYsAIvG7ECHj5ZsABFWLAGLxuxBh4+WbAARViwAC8bsQASPlmyBAACERI5sAQvsAjQsA4QsQ8BsAorWCHYG/RZsAQQsRYBsAorWCHYG/RZMDEhIxEzETMBMwEWABUQAiMnMjY1JiYnIQFkwcGFAgHi/fj4AQ355gKQkALHx/7sBbD9jwJx/YgW/tL6/vj+5JjBycrSAQAAAQCa/v4EGQQ6ABYAe7INFxgREjkAsAcvsABFWLARLxuxERo+WbAARViwFS8bsRUaPlmwAEVYsA8vG7EPEj5ZsBPQsBMvsp8TAV2y/xMBXbKfEwFxtL8TzxMCXbIvEwFdss8TAXGwANCwBxCxCAGwCitYIdgb9FmwExCxDgGwCitYIdgb9FkwMQEWFhUUBgYHJzY1NCYnIxEjETMRMwEzAn/DzmSscDD4raWyurpbAYrgAmQf4rRdxXwTkjnmipIC/jMEOv42AcoA//8AL/6bBagFsAAmAN0AAAAHABAEdP+9//8ALP6bBLcEOgAmAPIAAAAHABADg/+9AAEAsf5LBP4FsAAVAKmyChYXERI5ALAARViwAC8bsQAePlmwAEVYsAMvG7EDHj5ZsABFWLAILxuxCBQ+WbAARViwEy8bsRMSPlmwAtCwAi+yXwIBXbLPAgFdsh8CAXG0bwJ/AgJxtL8CzwICcbQPAh8CAnKy7wIBcbKfAgFxsk8CAXGy/wIBXbKvAgFdsi8CAV2yPwIBcrAIELENAbAKK1gh2Bv0WbACELERAbAKK1gh2Bv0WTAxAREhETMRFAYjIic3FjMyNjURIREjEQFyAszAq5w8Ng4lPUFI/TTBBbD9bgKS+f2ouhKaDmdcAtX9fwWwAAABAJH+SwP1BDoAFgChsgoXGBESOQCwAEVYsAAvG7EAGj5ZsABFWLADLxuxAxo+WbAARViwCC8bsQgUPlmwAEVYsBQvG7EUEj5ZsALQsAIvsm8CAV20vwLPAgJdsj8CAXG0zwLfAgJxsg8CAXK0nwKvAgJxsv8CAV2yDwIBcbKfAgFdsi8CAV20bwJ/AgJysAgQsQ4BsAorWCHYG/RZsAIQsRIBsAorWCHYG/RZMDEBESERMxEUBiMiJzcWFxcyNjURIREjEQFLAfG5q5g8NA8RPBRCSP4PugQ6/isB1fttqrISkwcFAWhcAif+MgQ6AP//AKn+mwW7BbAAJgAsAAAABwAQBIf/vf//AJz+mwS0BDoAJgD0AAAABwAQA4D/vf//AKn+mwb5BbAAJgAxAAAABwAQBcX/vf//AJ3+mwYHBDoAJgDzAAAABwAQBNP/vQACAF3/7AUSBcQAFwAfAGGyCCAhERI5sAgQsBjQALAARViwAC8bsQAePlmwAEVYsAgvG7EIEj5Zsg0ACBESObANL7AAELERAbAKK1gh2Bv0WbAIELEYAbAKK1gh2Bv0WbANELEbAbAKK1gh2Bv0WTAxASAAERUUAgQjIAARNSE1EAIjIgcHJzc2ATISNyEVFBYCgAEuAWSc/uqn/uP+wQP09N2liz0vFp4BIaneD/zP0wXE/of+sVTF/r+2AVkBRXUHAQIBHDoajw1Y+sYBBdsi2uQAAAEAaP/rBCwFsAAbAGqyCxwdERI5ALAARViwAi8bsQIePlmwAEVYsAsvG7ELEj5ZsAIQsQABsAorWCHYG/RZsATQsgUCCxESObAFL7ALELAQ0LALELETAbAKK1gh2Bv0WbAFELEZAbAKK1gh2Bv0WbAFELAb0DAxASE1IRcBFhYVFAQjIiYmNTMUFjMyNjU0JiMjNQMd/XYDawH+a9np/vPghtt2wJx7iaOmno0FEp59/h4O58bD6Gm+gnKaknidjpcAAQBp/nUEKAQ6ABoAXbILGxwREjkAsAsvsABFWLACLxuxAho+WbEAAbAKK1gh2Bv0WbAE0LIFAgsREjmwBS+wCxCwENCwCxCxEwGwCitYIdgb9FmwBRCxGAOwCitYIdgb9FmwBRCwGtAwMQEhNSEXARYWFRQEIyImJjUzFBYzMjY1ECUjNQMM/YgDZQH+ctTo/vTehNd6up59jaT+yaADoZl2/hEQ4cXD52a/g3GflXkBIgiXAP//ADr+SwR0BbAAJgCxRAAAJgImq0AABwJUAPAAAP//ADv+SwOWBDoAJgDsTwAAJgImrI4BBwJUAOEAAAAIALIABgFdMDH//wA5/ksFDgWwACYAPAAAAAcCVAOnAAD//wAp/ksEHAQ6ACYAXAAAAAcCVAK1AAAAAgBXAAAEZQWwAAoAEwBSsgQUFRESObAEELAN0ACwAEVYsAEvG7EBHj5ZsABFWLADLxuxAxI+WbIAAQMREjmwAC+wAxCxCwGwCitYIdgb9FmwABCxDAGwCitYIdgb9FkwMQERMxEhIiQ1NDY3AREhIgYVFBYXA6PC/d/k/vf/4AFt/qGMoZ+KA3MCPfpQ8svH6wT9KgI4loCCnwEAAgBZAAAGZwWwABcAHwBcsgcgIRESObAHELAY0ACwAEVYsAgvG7EIHj5ZsABFWLAALxuxABI+WbIHCAAREjmwBy+wABCxGAGwCitYIdgb9FmwCtCyEAAIERI5sAcQsRkBsAorWCHYG/RZMDEhIiQ1NCQ3IREzETc2Njc2JzMXFgcGBiMlESEiBhQWFwJH5f73AQHjAWrBWG9yAwRAuhYvAwTlw/7v/qCOnpiF9MnG7QMCPfrrAQKSe6KnRJduw+idAjiX/p8EAAACAGT/5wZuBhgAHwArAIayGiwtERI5sBoQsCrQALAARViwBi8bsQYgPlmwAEVYsAMvG7EDGj5ZsABFWLAYLxuxGBI+WbAARViwHC8bsRwSPlmyBQMYERI5sBgQsQsBsAorWCHYG/RZshEDGBESObIaAxgREjmwAxCxIgGwCitYIdgb9FmwHBCxKAGwCitYIdgb9FkwMRMQEjMyFxEzEQYWMzY2NzYnNxYWBw4CIwYnBiMiAjUBJiMiBhUUFjMyNydk4sS3arkCX06JlwQEQbMcKQICedmJ8k5s28DkAsdSoYeUkYinUwUCCQEIAT2DAk37QV94AtC9utgBZsdmqfmEBLq2ARv0ATGG396tv5M+AAEANv/jBdUFsAAnAGayECgpERI5ALAARViwCS8bsQkePlmwAEVYsCEvG7EhEj5ZsgEoCRESObABL7EAAbAKK1gh2Bv0WbAJELEHAbAKK1gh2Bv0WbIPAAEREjmwIRCxFQGwCitYIdgb9FmyGiEJERI5MDETNTM2NjU0ISE1IRYWFRQHFhMVFBYzNjY3NiczFxYHBgIjBAM1NCYn/pufk/7L/qABa+/87dsFU0F0hgQEQboXMAME9sf+vQ+HdQJ5ngJ7g/ueAdHJ6GJF/vxQT1sCzrm72Fi7gP3+1wgBTUB4kAEAAAEAMf/jBOgEOgAnAGOyDygpERI5ALAARViwHy8bsR8aPlmwAEVYsA4vG7EOEj5ZsQIBsAorWCHYG/RZsgcOHxESObIXKB8REjmwFy+xFAGwCitYIdgb9FmwHxCxHQGwCitYIdgb9FmyJRQXERI5MDElBjM2Njc2JzMWFgcGBiMGJic1NCMjJzM2NjU0JiMhJyEWFhUUBxYXAucCX3B2AwRCtC0YAQTnuIeJB9jNAsB6bn11/vsGARjE3Ly2BNVYApuJmaaGgDnN8ANwg0edlgFXSlVdlgOnmJ1KNLIAAAEAUv7XA/UFrwAhAGCyICIjERI5ALAXL7AARViwCS8bsQkePlmwAEVYsBovG7EaEj5ZsgEiCRESObABL7EAAbAKK1gh2Bv0WbAJELEHAbAKK1gh2Bv0WbIPAAEREjmwGhCwErAKK1jYG9xZMDETNTM2NjUQISE1IRYWFRQHFhMVMxUUBgcnNjcjJic1NCYjr6mkm/7K/vEBIej05d4EqWFNalEOazwDkncCeZcBfYUBBZcD0sniZEb++KmUYchASHNuNKuPfo0AAQB5/scD2QQ6ACAAYLIgISIREjkAsBcvsABFWLAILxuxCBo+WbAARViwGi8bsRoSPlmyASEIERI5sAEvsQABsAorWCHYG/RZsAgQsQYBsAorWCHYG/RZsg8AARESObAaELASsAorWNgb3FkwMRMnMzY1NCMhNSEWFxYVFAcWFxUzFRQGByc2NyMmJzU0I8IB2+n1/ukBJ91sVr69AZpiTWlUDWczAtoBuJcCobKWA2dThKFJNcpMlGHKPkh0fSGFXrQAAAEARP/rB3AFsAAjAGWyACQlERI5ALAARViwDi8bsQ4ePlmwAEVYsCAvG7EgEj5ZsABFWLAHLxuxBxI+WbAOELEAAbAKK1gh2Bv0WbAHELEIAbAKK1gh2Bv0WbAgELETAbAKK1gh2Bv0WbIZDiAREjkwMQEhAwICBgcjNTc+AjcTIREUFjMyNjc2JzcWFgcGAgcHIiY1BCf+GhoPWayQPyhdZDQLHgNfWU+ClwQCP7ocKQID6cMus7cFEv2//t7+3IkCnQIHa+rzAsL7rGB0zbzA0gFmx2bs/toSArq0AAEAP//rBjoEOgAhAGWyICIjERI5ALAARViwDC8bsQwaPlmwAEVYsB4vG7EeEj5ZsABFWLAGLxuxBhI+WbAMELEAAbAKK1gh2Bv0WbAGELEHAbAKK1gh2Bv0WbAeELERAbAKK1gh2Bv0WbIWHgwREjkwMQEhAwIGByM1NzY2NxMhERQWMzI2NzYnMxcWBw4CIyImJwMx/rsXFJylQTZVTQ0XAq9aT2x7BARBsxYwAwJsvniuswEDof5a/uvkAqMECqfTAg/9IWB5t6uyy1CxfJrmebixAAABAKn/5wdxBbAAHQCwshQeHxESOQCwAEVYsAAvG7EAHj5ZsABFWLAZLxuxGR4+WbAARViwES8bsRESPlmwAEVYsBcvG7EXEj5ZsBEQsQQBsAorWCHYG/RZsgoAERESObAXELAc0LAcL7LvHAFxsl8cAV2yzxwBXbIfHAFxtG8cfxwCcbS/HM8cAnGynxwBcbJPHAFxsv8cAV2yrxwBXbIvHAFdtA8cHxwCcrI/HAFysRUBsAorWCHYG/RZMDEBERQWMzY2NzYnNxYWBw4CIwYmJxEhESMRMxEhEQTpXUqGlAQEQrsbKwICe9iKq7UI/ULBwQK+BbD7rGVvAs26t9sBYspnqPuDBLi7ASf9fwWw/W4CkgABAJD/5wZNBDoAHAClshsdHhESOQCwAEVYsAQvG7EEGj5ZsABFWLAILxuxCBo+WbAARViwGS8bsRkSPlmwAEVYsAIvG7ECEj5ZsAfQsAcvsm8HAV20vwfPBwJdsj8HAXG0zwffBwJxsg8HAXK0nwevBwJxsv8HAV2yDwcBcbKfBwFdsi8HAV20bwd/BwJysQABsAorWCHYG/RZsBkQsQ0BsAorWCHYG/RZshIZCBESOTAxASERIxEzESERMxEUFjM2Njc2JzMXFgcGAiMGJicDQ/4GubkB+rlcTWx8BARBshcwAwTmu6ezCAHN/jMEOv4qAdb9IWR1ArWrrNFTsXnq/vEEt7sAAQB2/+sEoAXFACIASbIVIyQREjkAsABFWLAJLxuxCR4+WbAARViwAC8bsQASPlmwCRCxDgGwCitYIdgb9FmwABCxFgGwCitYIdgb9FmyGwAJERI5MDEFIiQCJxE0EiQzMhcHJiMiAhUVFBYWMzY2NzYnMxcWBw4CArmk/viVApQBCqXchzuGoqzXYrBxjZYDAzW6JhMBAnveFZsBGK0BEK8BHp1YikT+/tL+g9V1ApmGms+zW1uIyW0AAQBl/+sDxwROAB4ARrITHyAREjkAsABFWLATLxuxExo+WbAARViwCy8bsQsSPlmxAAGwCitYIdgb9FmyBQsTERI5sBMQsRgBsAorWCHYG/RZMDElNjY3NCczFgcGBiMiADU1NDY2MzIXByYjIgYVFRQWAlFgWgIUshwBBMSt3P7wdtaLuWAsY4qDm6aCAlBZenKWVpmpATL3Hpf5jEKQOtyzH6vbAAEAI//nBUcFsAAYAE+yBRkaERI5ALAARViwAi8bsQIePlmwAEVYsBUvG7EVEj5ZsAIQsQABsAorWCHYG/RZsATQsAXQsBUQsQkBsAorWCHYG/RZsg4CFRESOTAxASE1IRUhERQWMzY2Eic3FhYHDgIjBiYnAf7+JQSA/hxcTIaUCEK6GysDAnnZiaq3CAUSnp78SGByAtABbtsBYspnqfmEBLe8AAABAEb/5wS3BDoAGABPshYZGhESOQCwAEVYsAIvG7ECGj5ZsABFWLAVLxuxFRI+WbACELEAAbAKK1gh2Bv0WbAE0LAF0LAVELEJAbAKK1gh2Bv0WbIOFQIREjkwMQEhNSEVIREUFjM2Njc2JzMWFgcGBiMGJicBrP6aA4v+lV5NcXcDBECyKhsBBOi5qrMIA6SWlv21Y3QCnYmXrn2MPNDvBLm5AAEAlv/sBP8FxQApAHKyJCorERI5ALAARViwFi8bsRYePlmwAEVYsAsvG7ELEj5ZsQMBsAorWCHYG/RZsAsQsAbQsiULFhESObAlL7LPJQFdsp8lAXGxJgGwCitYIdgb9FmyECYlERI5sBYQsBvQsBYQsR4BsAorWCHYG/RZMDEBFBYzMjY1MxQGBiMgJDU0JSYmNTQkITIWFhUjNCYjIgYVFBYXMxUjBgYBWM+wm8zBjf6d/vv+xAEUeIYBJQEGk/WMwcGSp8Kto8TEsbUBkniSmHSDvmflxf9WMKZlxNtlunVnj4h2dX0CngJ+AP//AC/+SwWsBbAAJgDdAAAABwJUBEUAAP//ACz+SwS7BDoAJgDyAAAABwJUA1QAAAACAG8EcALJBdYABQANACMAsAsvsAfQsAcvsAHQsAEvsAsQsATQsAQvsAXQGbAFLxgwMQETMxUDIwEzFRYXByY1AZF0xN9Z/t6oA1BJsgSUAUIV/sMBUlt7VTtfuwD//wAlAh8CDQK2AAYAEQAA//8AJQIfAg0CtgAGABEAAP//AKMCiwSNAyIARgGv2QBMzUAA//8AkQKLBckDIgBGAa+EAGZmQAAAAgAN/msDoQAAAAMABwAIALIFAgMrMDEBITUhNSE1IQOh/GwDlPxsA5T+a5dnlwAAAQBgBDEBeAYTAAgAIbIICQoREjkAsABFWLAALxuxACA+WbIFCQAREjmwBS8wMQEXBgcVIzU0NgEOal0DuGEGE0h/k4h0ZsgAAQAwBBYBRwYAAAgAIbIICQoREjkAsABFWLAELxuxBCA+WbIACQQREjmwAC8wMRMnNjc1MxUGBplpXQO3AWEEFkiCkJCCZMcAAQAk/uUBOwC1AAgAH7IICQoREjkAsAkvsQQFsAorWCHYG/RZsADQsAAvMDETJzY3NTMVFAaNaVsDuWP+5Ul/knZkZcoAAAEATwQWAWcGAAAIAAwAsAgvsATQsAQvMDEBFRYXByYmJzUBBgRdak1fAgYAk5B/SEDCYYcA//8AaAQxArsGEwAmAYQIAAAHAYQBQwAA//8APAQWAoYGAAAmAYUMAAAHAYUBPwAAAAIAJP7TAmQA9gAIABEAMbIKEhMREjmwChCwBdAAsBIvsQQFsAorWCHYG/RZsADQsAAvsAnQsAkvsAQQsA3QMDETJzY3NTMVFAYXJzY3NTMVFAaNaVsDuWPdaVsDumH+00iJmbmkbNNASImZuaRr0QABAEYAAAQkBbAACwBMALAARViwCC8bsQgePlmwAEVYsAYvG7EGGj5ZsABFWLAKLxuxCho+WbAARViwAi8bsQISPlmwChCxAAGwCitYIdgb9FmwBNCwBdAwMQEhESMRITUhETMRIQQk/my6/nABkLoBlAOh/F8DoZkBdv6KAAABAFf+YAQ0BbAAEwB+ALAARViwDC8bsQwePlmwAEVYsAovG7EKGj5ZsABFWLAOLxuxDho+WbAARViwAi8bsQIUPlmwAEVYsAAvG7EAEj5ZsABFWLAELxuxBBI+WbEGAbAKK1gh2Bv0WbAOELEIAbAKK1gh2Bv0WbAJ0LAQ0LAR0LAGELAS0LAT0DAxISERIxEhNSERITUhETMRIRUhESEENP5quv5zAY3+cwGNugGW/moBlv5gAaCXAwqZAXb+ipn89gAAAQCKAhcCIgPLAA0AF7IKDg8REjkAsAMvsAqwCitY2BvcWTAxEzQ2MzIWFRUUBiMiJjWKb1xbcm5eXW8DBFdwbV0lV25vWAD//wCU//UDLwDRACYAEgQAAAcAEgG5AAD//wCU//UEzgDRACYAEgQAACcAEgG5AAAABwASA1gAAAABAFICAgEsAtUACwAZsgMMDRESOQCwAy+xCQWwCitYIdgb9FkwMRM0NjMyFhUUBiMiJlI2NjY4ODY2NgJrLT09LS08PAAABgBE/+sHVwXFABUAIwAnADUAQwBRALyyAlJTERI5sAIQsBvQsAIQsCbQsAIQsCjQsAIQsDbQsAIQsEnQALAARViwGS8bsRkePlmwAEVYsBIvG7ESEj5ZsAPQsAMvsAfQsAcvsBIQsA7QsA4vsBkQsCDQsCAvsiQSGRESObAkL7ImGRIREjmwJi+wEhCxKwSwCitYIdgb9FmwAxCxMgSwCitYIdgb9FmwKxCwOdCwMhCwQNCwIBCxRwSwCitYIdgb9FmwGRCxTgSwCitYIdgb9FkwMQE0NjMyFzYzMhYVFRQGIyInBiMiJjUBNDYzMhYVFRQGIyImNQEnARcDFBYzMjY1NTQmIyIGFQUUFjMyNjU1NCYjIgYVARQWMzI2NTU0JiMiBhUDN6eDmE1Pl4Oop4KZT0yXgqr9DaeDhKelhIKqAWloAsdos1hKSFZXSUdZActYSUhWV0lIV/tCWEpHV1ZKSFgBZYOpeXmoi0eDqXh4p4sDe4OqqohIgaqni/wcQgRyQvw3T2VjVUpPZGNUSk9lZlJKT2RkUwLqTmViVUlOZmVTAAABAGwAmQIgA7UABgAQALAFL7ICBwUREjmwAi8wMQEBIwE1ATMBHgECjf7ZASeNAib+cwGEEwGFAAEAWQCYAg4DtQAGABAAsAAvsgMHABESObADLzAxEwEVASMBAecBJ/7ZjgEC/v4Dtf57E/57AY4BjwABADsAbgNqBSIAAwAJALAAL7ACLzAxNycBF6NoAsdobkIEckIA//8ANgKbArsFsAMHAiAAAAKbABMAsABFWLAJLxuxCR4+WbAN0DAxAAABAHoCiwL4BboADwBUsgoQERESOQCwAEVYsAAvG7EAHj5ZsABFWLADLxuxAx4+WbAARViwDS8bsQ0WPlmwAEVYsAYvG7EGFj5ZsgENAxESObADELEKA7AKK1gh2Bv0WTAxExc2MyARESMRJiMiBxEjEfoeSpIBBKoDjW4sqgWre4r+xv4LAea5bf3OAyAAAQBbAAAEaAXEACkAmrIhKisREjkAsABFWLAZLxuxGR4+WbAARViwBi8bsQYSPlmyKRkGERI5sCkvsQACsAorWCHYG/RZsAYQsQQBsAorWCHYG/RZsAjQsAnQsAAQsA7QsCkQsBDQsCkQsBXQsBUvtg8VHxUvFQNdsRICsAorWCHYG/RZsBkQsB3QsBkQsSABsAorWCHYG/RZsBUQsCTQsBIQsCbQMDEBIRcUByEHITUzNjY3NScjNTMnIzUzJzQ2MzIWFSM0JiMiBhUXIRUhFyEDFf6xAz4C3QH7+E0oMgIDqqYEop0G9ci+3r9/b2mCBgFc/qkEAVMB1kSaW52dCYNgCEV9iH23x+7UsWt8mn23fYgABQAfAAAGNgWwABsAHwAjACYAKQCzALAARViwFy8bsRcePlmwAEVYsBovG7EaHj5ZsABFWLAMLxuxDBI+WbAARViwCS8bsQkSPlmyEAwXERI5sBAvsBTQsBQvtA8UHxQCXbAk0LAkL7AY0LAYL7AA0LAAL7AUELETAbAKK1gh2Bv0WbAf0LAj0LAD0LAQELAc0LAcL7Ag0LAgL7AE0LAEL7AQELEPAbAKK1gh2Bv0WbAL0LAp0LAH0LImFwwREjmyJwkaERI5MDEBMxUjFTMVIxEjASERIxEjNTM1IzUzETMBIREzASEnIwUzNSElMycBNSMFV9/f39/C/sH+YsDZ2dnZwAFRAY+//GEBO2HaAhTM/tT+THd3AuBoA6yYlJj+GAHo/hgB6JiUmAIE/fwCBPzQlJSUmLb8558AAAIAp//sBgMFsAAfACgAprIjKSoREjmwIxCwEdAAsABFWLAWLxuxFh4+WbAARViwGi8bsRoaPlmwAEVYsB4vG7EeGj5ZsABFWLAKLxuxChI+WbAARViwFC8bsRQSPlmwHhCxAAGwCitYIdgb9FmwChCxBQGwCitYIdgb9FmwABCwDtCwD9CyIRQWERI5sCEvsRIBsAorWCHYG/RZsB4QsB3QsB0vsBYQsScBsAorWCHYG/RZMDEBIxEUFjMyNxcGIyImNREjBgYHIxEjESEyFhczETMRMwEzMjY1NCYnIwX+yjZBIzQBSUZ8fo8U58fJuQF5yu0Uj7rK+2LAi4uHhMsDq/1hQUEMlhSWigKft70C/csFsMC2AQb++v6SjZeYjgL//wCo/+wIEAWwACYANgAAAAcAVwRVAAAABwAfAAAFzAWwAB8AIwAnACsAMAA1ADoA/rI5OzwREjmwORCwHtCwORCwItCwORCwJ9CwORCwK9CwORCwLdCwORCwM9AAsABFWLACLxuxAh4+WbAARViwDC8bsQwSPlmwAEVYsBAvG7EQEj5ZsggCDBESObAIL7AE0LAEL7AA0LAEELEGAbAKK1gh2Bv0WbAIELEKAbAKK1gh2Bv0WbAO0LAKELAS0LAIELAU0LAGELAW0LAEELAY0LACELAa0LAEELAc0LACELAe0LAIELAg0LAGELAi0LAIELAk0LAGELAm0LAIELAo0LAGELAq0LAKELAt0LIwAgwREjmwChCwMtCyNQIMERI5sAQQsDbQsjkCDBESOTAxATMTMwMzFSMHMxUjAyMDIwMjAyM1MycjNTMDMxMzEzMBMzcjBTM3IwUzJyMDNyMXFyU3IxcXATMnJwcDp+pYwWWHqCnR8Wa4VuVYuGfszCmjgmXAW/FWs/5IcCO4AnFsJLP+3K4iaNYCNwEXAmUBNQIb/sAyARgYA9QB3P4kmMKY/h4B4v4eAeKYwpgB3P4kAdz8ysLCwsLC/pwKBtLSBgfLAsQHrbEAAAIAjAAABZ4EOgANABsAZgCwAEVYsBYvG7EWGj5ZsABFWLAALxuxABo+WbAARViwCy8bsQsSPlmwAEVYsA4vG7EOEj5ZsREBsAorWCHYG/RZsgURABESObAFL7AAELEKAbAKK1gh2Bv0WbIPCgsREjmwDy8wMQEyFhcRIxE0JichESMRAREzESEyNjcRMxEGBgcCuq+oBLllb/69uQGJuQE+cWcBuQKlrQQ6wb/+owFMf3gB/F8EOvvGAt39u3V+Aq/9TsLEAgAAAQBf/+wEHAXEACMAi7IVJCUREjkAsABFWLAWLxuxFh4+WbAARViwCS8bsQkSPlmyIwkWERI5sCMvsQACsAorWCHYG/RZsAkQsQQBsAorWCHYG/RZsAAQsAzQsCMQsA/QsCMQsB/QsB8vtg8fHx8vHwNdsSACsAorWCHYG/RZsBDQsB8QsBPQsBYQsRsBsAorWCHYG/RZMDEBIRYWMzI3FwYjIgADIzUzNSM1MxIAMzIXByYjIgYHIRUhFSEDUf6ABLSldGYUeHj4/uMGsrKysgoBHfNqhxRtbqSxBgF//oABgAIdw9IioB4BJQEMfIl9AQYBHx+iI8u8fYkABAAfAAAFvAWwABkAHgAjACgAvACwAEVYsAsvG7ELHj5ZsABFWLABLxuxARI+WbALELEoAbAKK1gh2Bv0WbIkKAEREjmwJC+ycCQBcbYAJBAkICQDXbEcAbAKK1gh2Bv0WbAd0LAdL7JwHQFxtgAdEB0gHQNdsSABsAorWCHYG/RZsCHQsCEvsnAhAXGyICEBXbEAAbAKK1gh2Bv0WbAgELAD0LAdELAG0LAGL7AcELAH0LAkELAK0LAkELAP0LAcELAS0LAdELAU0LAULzAxAREjESM1MzUjNTM1ITIWFzMVIxcHMxUjBiEBJyEVIQchFSEyASEmIyEBpcDGxsbGAhmx6zbswwMCwuVr/owBRAT9bQKVP/2qAVms/fsCSlSe/qgCOv3GAzCXXpf0hHCXMiyX9gG3NF6XWQHlVgAAAQAqAAAD+AWwABoAaQCwAEVYsBkvG7EZHj5ZsABFWLAMLxuxDBI+WbAZELEYAbAKK1gh2Bv0WbAB0LAYELAU0LAUL7AD0LAUELETAbAKK1gh2Bv0WbAG0LATELAO0LAOL7EJAbAKK1gh2Bv0WbINCQ4REjkwMQEjFhczByMGBiMBFSMBJzM2NjchNyEmJyE3IQPK7EARyS6YEvbbAe3j/e4B+X2cFf29LgITMPb+5y8DnQUSUXWesrT9xAwCaX0Ba1yevgieAAABACD/7gQaBbAAHgCQALAARViwES8bsREePlmwAEVYsAUvG7EFEj5ZshMRBRESObATL7AX0LAXL7IAFwFdsRgBsAorWCHYG/RZsBnQsAjQsAnQsBcQsBbQsAvQsArQsBMQsRQBsAorWCHYG/RZsBXQsAzQsA3QsBMQsBLQsA/QsA7QsAUQsRoBsAorWCHYG/RZsh4FERESObAeLzAxARUGAgQjIicRBzU3NQc1NxEzETcVBxU3FQcRNhIRNQQaApD+969QbPT09PTA+/v7+77JAwNk0v7HphICWm+yb5lvsm8BWf7/c7JzmXOyc/3eAgEQAQlYAAABAF0AAATrBDoAFwBdsgAYGRESOQCwAEVYsBYvG7EWGj5ZsABFWLAELxuxBBI+WbAARViwCi8bsQoSPlmwAEVYsBAvG7EQEj5ZsgAKFhESObAAL7EJAbAKK1gh2Bv0WbAM0LAAELAV0DAxARYAERUjNSYCJxEjEQYCBxUjNRIANzUzAv/nAQW5Ap6TuY+fArkDAQffuQNxIf6N/tq3yN8BBSD9NALKIf712MbFAR0BbSLJAAACAB8AAAUDBbAAFgAfAHAAsABFWLAMLxuxDB4+WbAARViwAy8bsQMSPlmyBgMMERI5sAYvsQUBsAorWCHYG/RZsAHQsAYQsArQsAovtA8KHwoCXbEJAbAKK1gh2Bv0WbAU0LAGELAV0LAKELAX0LAMELEfAbAKK1gh2Bv0WTAxASERIxEjNTM1IzUzESEyBBUUBAchFSEBITI2NTQmJyEC/P6xv8/Pz88CGeoBEv758v6jAU/+sQFam6Koj/6gARP+7QETnomdAtnuy9XnAYkBJpKMf50BAAAEAHr/6wWDBcUAGwAnADUAOQC7shw6OxESObAcELAA0LAcELAo0LAcELA40ACwAEVYsAovG7EKHj5ZsABFWLAlLxuxJRI+WbAKELAD0LADL7IOCgMREjm2Kg46DkoOA12wChCxEQSwCitYIdgb9FmwAxCxGASwCitYIdgb9FmyGwMKERI5tDYbRhsCXbIlGwFdsCUQsB/QsB8vsCUQsSsEsAorWCHYG/RZsB8QsTIEsAorWCHYG/RZsjYlChESObA2L7I4CiUREjmwOC8wMQEUBiMiJjU1NDYzMhYVIzQmIyIGFRUUFjMyNjUBNDYgFhUVFAYgJjUXFBYzMjY1NTQmIyIGFQUnARcCqJh7eqGee3mciklCQU1PQT1MARCnAQaop/78qopYSkhWV0lHWf4GaQLHaQQebpCoiUeCq5FvOk1mUklOZUw6/UeDqaiLR4Opp4sGT2VjVUpPZGNU80IEckIAAAIAaP/rA2oGEwAXACEAZ7ITIiMREjmwExCwGNAAsABFWLAMLxuxDCA+WbAARViwAC8bsQASPlmyBgwAERI5sAYvsQUBsAorWCHYG/RZsBPQsAAQsRcBsAorWCHYG/RZsAYQsBjQsAwQsR8BsAorWCHYG/RZMDEFIiY1BiM1MjcRNjYzMhYVFRQCBxUUFjMDNjY1NTQmIyIHAszC0mJucV8BnYV4l86ra3DbWWcwJmcDFerrHLAjAiSyxq2TJcH+j2timo0CY1X1eydSTNEABACiAAAHxgXAAAMAEAAeACgAprIfKSoREjmwHxCwAdCwHxCwBNCwHxCwEdAAsABFWLAnLxuxJx4+WbAARViwJS8bsSUePlmwAEVYsAcvG7EHHj5ZsABFWLAiLxuxIhI+WbAARViwIC8bsSASPlmwBxCwDdCwAtCwAi+yEAIBXbEBA7AKK1gh2Bv0WbANELEUA7AKK1gh2Bv0WbAHELEbA7AKK1gh2Bv0WbIhJSAREjmyJiAlERI5MDEBITUhATQ2IBYVFRQGIyImNRcUFjMyNjc1NCYjIgYVASMBESMRMwERMwek/ZkCZ/11ugE4u7mcnrqjX1ZUXQFfVVRf/rzM/a+5ywJUtwGcjgI9m767o12duruhBWJramBlYWtrY/ubBG77kgWw+48EcQAAAgBnA5cEOAWwAAwAFABuALAARViwBi8bsQYePlmwAEVYsAkvG7EJHj5ZsABFWLATLxuxEx4+WbIBFQYREjmwAS+yAAkBERI5sgMBBhESObAE0LIIAQkREjmwARCwC9CwBhCwDbAKK1jYG9xZsAEQsA/QsA0QsBHQsBLQMDEBAyMDESMRMxMTMxEjASMRIxEjNSED3ow0jFpwkJBwWv4Lk1uUAYIFIf52AYn+dwIZ/nEBj/3nAcj+OAHIUQACAJj/7ASTBE4AFQAcAGWyAh0eERI5sAIQsBbQALAARViwCi8bsQoaPlmwAEVYsAIvG7ECEj5ZshoKAhESObAaL7EPCrAKK1gh2Bv0WbACELETCrAKK1gh2Bv0WbIVCgIREjmwChCxFgqwCitYIdgb9FkwMSUGIyImAjU0EjYzMhYWFxUhERYzMjcBIgcRIREmBBa3u5H0h5D4hIXjhAP9AHeaxKz+kJd6AhxzXnKdAQGTjwEDn4vzkD7+uG56Ayp6/usBHnEA//8AVP/1BbMFmwAnAcb/2gKGACcBlADmAAABBwIkAxQAAAAQALAARViwBS8bsQUePlkwMf//AGT/9QZTBbQAJwIfACYClAAnAZQBpQAAAQcCJAO0AAAAEACwAEVYsA4vG7EOHj5ZMDH//wBj//UGSQWkACcCIQAIAo8AJwGUAYMAAAEHAiQDqgAAABAAsABFWLABLxuxAR4+WTAx//8AWf/1Bf0FpAAnAiMAHwKPACcBlAEgAAABBwIkA14AAAAQALAARViwBS8bsQUePlkwMQACAGr/6wQyBewAGwAqAF6yFSssERI5sBUQsCPQALANL7AARViwFS8bsRUSPlmyAA0VERI5sAAvsgMAFRESObANELEHAbAKK1gh2Bv0WbAAELEcAbAKK1gh2Bv0WbAVELEjAbAKK1gh2Bv0WTAxATIWFy4CIyIHJzc2MyAAERUUAgYjIgA1NTQAFyIGFRUUFjMyNjU1JyYmAjxdpjoOaaZggZsQMXSXAQcBH3jekNr++AEA5Iyfn4qOnwQcoAP+TUSM2Xk7lxUw/k7+bjK8/talASP2DtwBEJi7oBCqz/nbPQ9aagABAKn/KwTlBbAABwAoALAEL7AARViwBi8bsQYePlmwBBCwAdCwBhCxAgGwCitYIdgb9FkwMQUjESERIxEhBOW5/Ta5BDzVBe36EwaFAAABAEX+8wSrBbAADAA3ALADL7AARViwCC8bsQgePlmwAxCxAgGwCitYIdgb9FmwBdCwCBCxCgGwCitYIdgb9FmwB9AwMQEBIRUhNQEBNSEVIQEDa/27A4X7mgJh/Z8EGfzHAkYCQf1KmI8CzALSkJj9QgABAKgCiwPrAyIAAwAcALAARViwAi8bsQIYPlmxAQGwCitYIdgb9FkwMQEhNSED6/y9A0MCi5cAAAEAPwAABJgFsAAIAD2yAwkKERI5ALAHL7AARViwAS8bsQEePlmwAEVYsAMvG7EDEj5ZsgABAxESObAHELEGAbAKK1gh2Bv0WTAxAQEzASMDIzUhAjABq7394o31uQE7ARwElPpQAnSaAAADAGL/6wfLBE4AHAAsADwAcbIHPT4REjmwBxCwJNCwBxCwNNAAsABFWLAELxuxBBI+WbAARViwCi8bsQoSPlmwE9CwEy+wGdCwGS+yBxkEERI5shYZBBESObAKELEgAbAKK1gh2Bv0WbATELEpAbAKK1gh2Bv0WbAw0LAgELA50DAxARQCBiMiJicGBiMiJgI1NTQSNjMyFhc2NjMyABUFFBYzMjY3NzUuAiMiBhUlNCYjIgYHBxUeAjMyNjUHy37fiZHuUFHskInegH7fiJHtUVDvks4BFvlQpohyuTQLGHKSUIamBfemhXO8NQkWdZBQiKUCD5P/AJG4sbO2jwEAlxiTAQCSt7Oxuf7B8w2x3LyjJypjwGHcuQiu372oHyphxWDeuAAB/7D+SwKOBhUAFQA/sgIWFxESOQCwAEVYsA4vG7EOID5ZsABFWLADLxuxAxQ+WbEIAbAKK1gh2Bv0WbAOELETAbAKK1gh2Bv0WTAxBRQGIyInNxYzMjURNDYzMhcHJiMiFQFlpJ45OhIuIZuxoTxUGCU2tmuiqBSRDbEFGaq+FY4L2wACAGUBGAQLA/QAFQArAJGyHCwtERI5sBwQsAXQALADL7IPAwFdsA3QsA0vsgANAV2xCAGwCitYIdgb9FmwAxCwCtCwCi+wAxCxEgGwCitYIdgb9FmwDRCwFdCwFS+wDRCwGdCwGS+wI9CwIy+yACMBXbEeAbAKK1gh2Bv0WbAZELAg0LAgL7AZELEoAbAKK1gh2Bv0WbAjELAr0LArLzAxEzY2MzYXFxYzMjcVBiMiJycmByIGBwc2NjM2FxcWMzI3FwYjIicnJgciBgdmMINCUkqYQk6GZmeFTkKhRE9CgzABMIJCUkqVRFCFZgFnhU5CmEpSQoMwA4UzOgIjTh+Avm0fUx8CRDzlMzsCI00hgL1tH04jAkQ8AAABAJgAmwPaBNUAEwA5ALATL7EAAbAKK1gh2Bv0WbAE0LATELAH0LATELAP0LAPL7EQAbAKK1gh2Bv0WbAI0LAPELAL0DAxASEHJzcjNSE3ITUhExcHMxUhByED2v3tjl9srgELlf5gAf6ZX3fD/t+UAbUBj/Q7uaD/oQEGO8uh/wD//wA+AAIDgQQ9AGYAIABhQAA5mgEHAa//lv13AB0AsABFWLAFLxuxBRo+WbAARViwCC8bsQgSPlkwMQD//wCFAAED3ARQAGYAIgBzQAA5mgEHAa//3f12AB0AsABFWLACLxuxAho+WbAARViwCC8bsQgSPlkwMQAAAgArAAAD3AWwAAUACQA4sggKCxESObAIELAB0ACwAEVYsAAvG7EAHj5ZsABFWLADLxuxAxI+WbIGAAMREjmyCAADERI5MDEBMwEBIwkEAbyMAZT+cI3+bAHW/ukBHAEYBbD9J/0pAtcCD/3x/fICDgD//wC1AKcBmwT1ACcAEgAlALIABwASACUEJAACAG4CeQIzBDoAAwAHACwAsABFWLACLxuxAho+WbAARViwBi8bsQYaPlmwAhCwANCwAC+wBNCwBdAwMRMjETMBIxEz+42NATiNjQJ5AcH+PwHBAAABAFz/XwFXAO8ACAAgsggJChESOQCwCS+wBNCwBC+0QARQBAJdsADQsAAvMDEXJzY3NTMVFAbFaUgCsU+hSG1/XExbswD//wA8AAAE9gYVACYASgAAAAcASgIsAAAAAgAfAAADzQYVABUAGQCFsggaGxESObAIELAX0ACwAEVYsAgvG7EIID5ZsABFWLADLxuxAxo+WbAARViwES8bsREaPlmwAEVYsBgvG7EYGj5ZsABFWLAALxuxABI+WbAARViwFi8bsRYSPlmwAxCxAQGwCitYIdgb9FmwCBCxDQGwCitYIdgb9FmwARCwE9CwFNAwMTMRIzUzNTQ2MzIXByYjIgYVFTMVIxEhIxEzyqurz71wqx99cXdp3d0CSbq6A6uPXLXKPZwya2tej/xVBDoAAQA8AAAD6QYVABYAXgCwAEVYsBIvG7ESID5ZsABFWLAGLxuxBho+WbAARViwCS8bsQkSPlmwAEVYsBYvG7EWEj5ZsBIQsQIBsAorWCHYG/RZsAYQsQcBsAorWCHYG/RZsAvQsAYQsA7QMDEBJiMiFRUzFSMRIxEjNTM1NjYzMgURIwMwfEzI5+e5q6sBwLFlASu5BWMU0muP/FUDq492rbg9+igAAAIAPAAABjIGFQAnACsAnwCwAEVYsBYvG7EWID5ZsABFWLAILxuxCCA+WbAARViwIC8bsSAaPlmwAEVYsBIvG7ESGj5ZsABFWLAELxuxBBo+WbAARViwKi8bsSoaPlmwAEVYsCkvG7EpEj5ZsABFWLAjLxuxIxI+WbAARViwJy8bsScSPlmwIBCxIQGwCitYIdgb9FmwJdCwAdCwCBCxDQGwCitYIdgb9FmwG9AwMTMRIzUzNTQ2MzIXByYjIgYVFSE1NDYzMhcHJiMiBhUVMxUjESMRIREhIxEz56uruqpAPwovNVpiAZDPvXCrH31yd2ne3rn+cASSubkDq49vrr4RlglpYnJctco9nDJqbF6P/FUDq/xVBDoAAAEAPAAABjIGFQAoAGwAsABFWLAILxuxCCA+WbAARViwIS8bsSEaPlmwAEVYsCgvG7EoEj5ZsCEQsSIBsAorWCHYG/RZsCbQsAHQsCEQsBLQsATQsAgQsQ0BsAorWCHYG/RZsAgQsBbQsCgQsCXQsBrQsA0QsB3QMDEzESM1MzU0NjMyFwcmIyIGFRUhNTY2MzIFESMRJiMiFRUzFSMRIxEhEeerq7qqQD8KLzVaYgGQAcCxZQEruXxMyOfnuf5wA6uPb66+EZYJaWJydq24PfooBWMU0muP/FUDq/xVAAEAPP/sBJsGFQAmAHYAsABFWLAhLxuxISA+WbAARViwHS8bsR0aPlmwAEVYsBgvG7EYEj5ZsABFWLAKLxuxChI+WbAdELAQ0LAl0LEBAbAKK1gh2Bv0WbAKELEFAbAKK1gh2Bv0WbABELAO0LAhELEVAbAKK1gh2Bv0WbAOELAa0DAxASMRFBYzMjcXBiMiJjURIzUzESYnJyIVESMRIzUzNTQ2MzIWFxEzBJbKNkEjNAFJRnx+xcU9Zhi3uaurs6Bd21rKA6v9YUFBDJYUlooCn48BHxwHAd37YAOrj3Ctvjks/ooAAQBf/+wGVAYRAEwAzbIWTU4REjkAsABFWLBHLxuxRyA+WbAARViwDy8bsQ8aPlmwAEVYsEsvG7FLGj5ZsABFWLBALxuxQBo+WbAARViwCS8bsQkSPlmwAEVYsCwvG7EsEj5ZsEsQsQEBsAorWCHYG/RZsAkQsQQBsAorWCHYG/RZsAEQsA3QsEcQsRQBsAorWCHYG/RZsh1ALBESObBAELEgAbAKK1gh2Bv0WbI6LEAREjmwOhCxJQGwCitYIdgb9FmyMSxAERI5sCwQsTQBsAorWCHYG/RZMDEBIxEUMzI3FwYjIiY1ESM1MzU0JiMiBhUUHgIVIzQmIyIGFRQWBBYWFRQGIyImJjUzFhYzMjY1NCYkJiY1NDYzMhcmNTQ2MzIWFRUzBk/KdyM0AU1CdoS8vGZiWFwfJR66gWJlcmoBFaxT6LmCyHG5BYtyaX9x/uelT+GvYFYsypu5ycoDq/1+nwyWFKaXAoKPVXJ1WEY7aXB8TExuWEdDRD5WeVeRr1ylYF1tVUdLUzxUdFCFuB5uUnylx8NNAAAWAFv+cgfuBa4ADQAaACgANwA9AEMASQBPAFYAWgBeAGIAZgBqAG4AdgB6AH4AggCGAIoAjgHGshCPkBESObAQELAA0LAQELAb0LAQELAw0LAQELA80LAQELA+0LAQELBG0LAQELBK0LAQELBQ0LAQELBX0LAQELBb0LAQELBh0LAQELBj0LAQELBn0LAQELBt0LAQELBw0LAQELB30LAQELB70LAQELB/0LAQELCE0LAQELCI0LAQELCM0ACwPS+wAEVYsEYvG7FGHj5Zsn5JAyuyensDK7KCdwMrsn86AyuyCj1GERI5sAovsAPQsAMvsA7QsA4vsAoQsA/QsA8vslAODxESObBQL7FvB7AKK1gh2Bv0WbIVUG8REjmwChCxHgewCitYIdgb9FmwAxCxJQewCitYIdgb9FmwDxCwKdCwKS+wDhCwLtCwLi+xNAewCitYIdgb9FmwPRCxPAqwCitYIdgb9FmwPRCwa9CwZ9CwY9CwPtCwPBCwbNCwaNCwZNCwP9CwOhCwQdCwRhCwYNCwXNCwWNCwS9CxSgqwCitYIdgb9FmwWtCwXtCwYtCwR9CwSRCwTtCwDhCxUQewCitYIdgb9FmwDxCxdgewCitYIdgb9FmwdxCwhNCwehCwhdCwexCwiNCwfhCwidCwfxCwjNCwghCwjdAwMQEUBiMiJic1NDYzMhYXExEzMhYVFAcWFhUUIwE0JiMiBhUVFBYzMjY1ATMRFAYjIiY1MxQzMjY1AREzFTMVITUzNTMRAREhFSMVJTUhESM1ARUzMjU0JxM1IRUhNSEVITUhFQE1IRUhNSEVITUhFRMzMjU0JiMjASM1MzUjNTMRIzUzJSM1MzUjNTMRIzUzAzmBZGaAAn5oZYACQ7xiclQyNND+j0pBQEpKQkBJA7pcaVJYbV1oKTb5xHHEBSjHb/htATXEBewBNm/8XH5nYssBFv1bARX9XAEUAgoBFv1bARX9XAEUvF12Ojxd/PFxcXFxcXEHIm9vb29vbwHUYnl4XnVffHhe/rMCJUlNVCANRi2bAUhFTk5FcEVOTkUBT/6GTl1RU1s2LPzJATvKcXHK/sUGHwEddKmpdP7jqfy2qVNSBANKdHR0dHR0+ThxcXFxcXEDxFApHv7T/H76/BX5fvx++vwV+QAFAFz91QfXCHMAAwAcACAAJAAoAFKzEREQBCuzBBEcBCuzChEXBCuwBBCwHdCwHBCwHtAAsCEvsCUvshweAyuwJRCwANCwAC+wIRCwAtCwAi+yDQACERI5sA0vsh8eAhESObAfLzAxCQMFNDY3NjY1NCYjIgYHMzY2MzIWFRQHBgYVFyMVMwMzFSMDMxUjBBgDv/xB/EQEDx4kSlynlZCgAssCOis5OF1bL8rKyksEBAIEBAZS/DH8MQPP8To6GCeHSoCXi38zNEA0XzxBXExbqv1MBAqeBAABAEIAAAKrAyAAFgBWsggXGBESOQCwAEVYsA4vG7EOGD5ZsABFWLAALxuxABI+WbEVArAKK1gh2Bv0WbAC0LIUFQ4REjmyAw4UERI5sA4QsQgCsAorWCHYG/RZsA4QsAvQMDEhITUBNjU0JiMiBhUjNDYgFhUUDwIhAqv9qQEsbUA8S0edpwEImmtUsAGPbAEaZkUxPUw5cpR/bmhrT5EAAQB6AAAB7wMVAAYANgCwAEVYsAUvG7EFGD5ZsABFWLABLxuxARI+WbIEBQEREjmwBC+xAwKwCitYIdgb9FmwAtAwMSEjEQc1JTMB753YAWMSAlk5gHUAAAIAUP/1Ap0DIAANABcASLIDGBkREjmwAxCwENAAsABFWLAKLxuxChg+WbAARViwAy8bsQMSPlmwChCxEAKwCitYIdgb9FmwAxCxFQKwCitYIdgb9FkwMQEUBiMiJic1NDYzMhYXJzQjIgcVFDMyNwKdmI2LnAGbi42YAp2KhQSLhAQBRaKurKCOo66snQfAtLPCtQACAFX/+gOaBJ0AEwAgAFQAsABFWLAILxuxCBw+WbAARViwEC8bsRASPlmyAhAIERI5sAIvsBAQsREBsAorWCHYG/RZsAIQsRQBsAorWCHYG/RZsAgQsRsBsAorWCHYG/RZMDEBBiMiJjU0NjMyFhUVEAAFIzUzJAMyNjc1NCYjIgYVFBYC32Wrrszlusbg/sz+1CkjAZTXT4MehGlof3wB7G7XsLTk/uI//sH+wAWYBwF4T0BChJ6PbG2LAAMAYP/wA60EnQAVACEALABlALAARViwEy8bsRMcPlmwAEVYsAkvG7EJEj5ZsCrQsCovst8qAV2yHyoBXbEZAbAKK1gh2Bv0WbIDKhkREjmyDhkqERI5sAkQsR8BsAorWCHYG/RZsBMQsSUBsAorWCHYG/RZMDEBFAYHFhYVFAYgJjU0NjcmJjU0NiAWAzQmIyIGFRQWMzI2AzQmIyIGFRQWMjYDkGNVYnPo/oTpcWJVYNYBYtqcg2xrgH9ubYAedF1ebm++cANaVocmJpNil7WzmWOSJyaGVpSvr/1YVm5sWFtkZwJlTmRhUVBiYwABAEIAAAPABI0ABgA6sgEHCBESOQCwAEVYsAUvG7EFHD5ZsABFWLABLxuxARI+WbAFELEDAbAKK1gh2Bv0WbIABQMREjkwMQEBIwEhNSEDwP3owwIX/UYDfgQk+9wD9JkAAAIAcv/wA7sEkwAVACAAZbIHISIREjmwBxCwFtAAsABFWLAALxuxABw+WbAARViwDi8bsQ4SPlmwABCxAQGwCitYIdgb9FmyCA4AERI5sAgvsgUIDhESObEWAbAKK1gh2Bv0WbAOELEcAbAKK1gh2Bv0WTAxARUjBgYHNjYzMhYVFAYjIiY1NRAAIQMiBgcVFBYyNjQmAwAeyOAONJZOrsnfvsLqAUABPNBQgyCJ0n57BJOcA7ixOT/XrrDe+9RLAT8BSv3YTUAoiqSF2IYAAQCA//ADxQSNAB0Aa7IaHh8REjkAsABFWLABLxuxARw+WbAARViwDS8bsQ0SPlmwARCxAwGwCitYIdgb9FmyBwENERI5sAcvsRoBsAorWCHYG/RZsgUHGhESObANELAR0LANELEUAbAKK1gh2Bv0WbAHELAd0DAxExMhFSEDNjMyFhUUBiMiJiczFhYzMjY1NCYjIgcHpEUCqP30JWNzuNffxKvqDbIOgGJweYxzaUIpAkMCSqL+3zDStLLSsZdbVoJxan8qGwACADAAAAPkBI0ACgAOAFCyDg8QERI5sA4QsAnQALAARViwCS8bsQkcPlmwAEVYsAQvG7EEEj5ZsgEJBBESObABL7ECAbAKK1gh2Bv0WbAG0LABELAL0LINCQQREjkwMQEzFSMRIxEhJwEzASERBwM1r6+6/bgDAkLD/cEBhRoBnZf++gEGcwMU/RAB/C8AAQBO//ADnwSdACYAj7IgJygREjkAsABFWLAOLxuxDhw+WbAARViwGS8bsRkSPlmyAQ4ZERI5sAEvsr8BAV20rwG/AQJxtN8B7wECXbQfAS8BAl20bwF/AQJysA4QsQcBsAorWCHYG/RZsA4QsArQsAEQsSUBsAorWCHYG/RZshQlARESObAZELAd0LAZELEgAbAKK1gh2Bv0WTAxATMyNjU0JiMiBhUjNDYzMhYVFAYHFhUUBiMiJjUzFBYzMjY1NCEjAWB6doFscGJ/ueazvNplW9Xpwb3quYNscH/+7HECm2NUU2BbTYy0r5xPiSVA0Zq6s5ZPY2JbwwAAAQBOAAADygSdABgAVrIJGRoREjkAsABFWLAQLxuxEBw+WbAARViwAC8bsQASPlmxFwGwCitYIdgb9FmwAtCyAxAAERI5sBAQsQkBsAorWCHYG/RZsBAQsAzQshYAEBESOTAxISE1ATY2NTQmIyIGFSM0NjMyFhUUBgcBIQPK/J8Bq2dddF55hbr1w7bWY5v+uAJ+gwGdXotBUmlwa6XOupVRrqH+6QAAAQCYAAACnQSQAAYAQbIBBwgREjkAsABFWLAFLxuxBRw+WbAARViwAC8bsQASPlmyBAAFERI5sAQvsQMBsAorWCHYG/RZsgIDBRESOTAxISMRBTUlMwKduv61AesaA69jn6UAAAIAY//wA6sEnQANABgASLIDGRoREjmwAxCwENAAsABFWLAKLxuxChw+WbAARViwAy8bsQMSPlmwChCxEAGwCitYIdgb9FmwAxCxFgGwCitYIdgb9FkwMQEUAiMiAic1NBIzMhIXJxAjIhEVFBYzMhEDq9jLydoC2crL1wO66+p6cukB8fj+9wEF9Lb5AQX+/u8PAUn+s+GnqAFTAAEARwAAA+AEjQAJAEYAsABFWLAHLxuxBxw+WbAARViwAi8bsQISPlmxAAGwCitYIdgb9FmyBAACERI5sAcQsQUBsAorWCHYG/RZsgkFBxESOTAxJSEVITUBITUhFQEvArH8ZwKY/XEDeJeXfAN4mXkAAAEADQAABBwEjQAIADEAsABFWLABLxuxARw+WbAARViwBy8bsQccPlmwAEVYsAQvG7EEEj5ZsgABBBESOTAxAQEzAREjEQEzAhQBOND+Urn+WNACSgJD/Qr+aQGiAusAAAEAJgAABDEEjQALAFMAsABFWLABLxuxARw+WbAARViwCi8bsQocPlmwAEVYsAQvG7EEEj5ZsABFWLAHLxuxBxI+WbIAAQQREjmyBgEEERI5sgMABhESObIJBgAREjkwMQEBMwEBIwEBIwEBMwIoAR/c/nUBmdz+1f7Y3AGW/nPbAtoBs/2+/bUBu/5FAksCQgAAAQAxAAAF8QSNABIAYLIOExQREjkAsABFWLADLxuxAxw+WbAARViwCC8bsQgcPlmwAEVYsBEvG7ERHD5ZsABFWLAKLxuxChI+WbAARViwDy8bsQ8SPlmyAQMKERI5sgYDChESObINAwoREjkwMQEXNxMzExc3EzMBIwEnBwEjATMBrwsP+KX0DQzGuP7Wrv78AQH+9K3+17cBJlBAA3f8hjtQA2X7cwOVBQX8awSNAAABABQAAARTBI0ACAAxALAARViwAy8bsQMcPlmwAEVYsAcvG7EHHD5ZsABFWLAFLxuxBRI+WbIBAwUREjkwMQEXNwEzASMBMwIaGRoBQMb+N63+N8cBJF5cA2v7cwSNAAABAHT/8AQKBI0AEQA9sgQSExESOQCwAEVYsAAvG7EAHD5ZsABFWLAILxuxCBw+WbAARViwBC8bsQQSPlmxDQGwCitYIdgb9FkwMQERFAYjIiYnETMRFBYzMjY1EQQK+tHS9gO3j4WDjwSN/PS229O2AxT89HmBf3sDDAAAAQAoAAAD/QSNAAcALwCwAEVYsAYvG7EGHD5ZsABFWLACLxuxAhI+WbAGELEAAbAKK1gh2Bv0WbAE0DAxASERIxEhNSED/f5xuf5zA9UD9PwMA/SZAAABAEP/8APdBJ0AJQBdALAARViwCS8bsQkcPlmwAEVYsBwvG7EcEj5ZsgIcCRESObAJELAN0LAJELEQAbAKK1gh2Bv0WbACELEWAbAKK1gh2Bv0WbAcELAg0LAcELEjAbAKK1gh2Bv0WTAxATQmJCcmNTQ2MzIWFSM0JiMiBhUUFgQWFhUUBiMiJDUzFBYzMjYDI3n+2lbD87/E+bmNeXGGewE4sFbzx8/+77qajH6CASpQWEorYrOPssicYmtZUEFYUGWIW5Opy6JmclsAAAIAigAABCUEjQANABYAY7IVFxgREjmwFRCwBdAAsABFWLAELxuxBBw+WbAARViwAi8bsQISPlmwAEVYsAwvG7EMEj5Zsg8EAhESObAPL7EAAbAKK1gh2Bv0WbIKAAQREjmwBBCxFQGwCitYIdgb9FkwMQEhESMRITIWFRQHARUjATMyNjU0JiMjAlr+6bkBqtXn6wEgxv3k9nWJhn7wAcH+PwSNuqrkWf4eCgJYbV1kbgACAFn/NgRXBJ0AEwAhAE+yCCIjERI5sAgQsB7QALAARViwEC8bsRAcPlmwAEVYsAgvG7EIEj5ZsgMIEBESObAQELEXAbAKK1gh2Bv0WbAIELEeAbAKK1gh2Bv0WTAxARQGBxcHJQYjIgARNTQSNjMyABEnNCYjIgYHFRQWMzI2NQRVcGbYfP75Nkbk/uV/6JbqARW3rJyUrASumJyqAiSm80agb8cNATEBCD6pAQOK/s3++QbG0s+5VcLY08cAAgCKAAAEGwSNAAoAEwBPsgoUFRESObAKELAM0ACwAEVYsAMvG7EDHD5ZsABFWLABLxuxARI+WbILAwEREjmwCy+xAAGwCitYIdgb9FmwAxCxEgGwCitYIdgb9FkwMQERIxEhMhYVFAYjJSEyNjU0JichAUO5AdPM8urW/ugBGnyIiHf+4QG2/koEjceoqr6YamRgdwEAAgBg//AEWgSdAA0AGwBIsgMcHRESObADELAR0ACwAEVYsAovG7EKHD5ZsABFWLADLxuxAxI+WbAKELERAbAKK1gh2Bv0WbADELEYAbAKK1gh2Bv0WTAxARAAIyIAETUQADMyABcHNCYjIgYVFRQWMzI2NQRa/uzo5f7nARfl6QETAresm5avsJecqQIk/vv+0QEyAQc+AQIBNP7Q/wXG0tbFQsPX08cAAQCKAAAEWASNAAkARQCwAEVYsAUvG7EFHD5ZsABFWLAILxuxCBw+WbAARViwAC8bsQASPlmwAEVYsAMvG7EDEj5ZsgIFABESObIHBQAREjkwMSEjAREjETMBETMEWLj9o7m5Al24A2z8lASN/JMDbQAAAQCKAAAFdwSNAA4AYLIBDxAREjkAsABFWLAALxuxABw+WbAARViwAi8bsQIcPlmwAEVYsAQvG7EEEj5ZsABFWLAILxuxCBI+WbAARViwDC8bsQwSPlmyAQAEERI5sgcABBESObIKAAQREjkwMQkCMxEjERMBIwETESMRAXoBhwGF8bgT/nKI/nMTuASN/HEDj/tzAZECFfxaA6L97/5vBI0AAQCKAAADiwSNAAUAKQCwAEVYsAQvG7EEHD5ZsABFWLACLxuxAhI+WbEAAbAKK1gh2Bv0WTAxJSEVIREzAUMCSPz/uZeXBI0AAQCKAAAEVwSNAAwATACwAEVYsAQvG7EEHD5ZsABFWLAILxuxCBw+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgACCBESObIGAgQREjmyCgIIERI5MDEBBxEjETMRNwEzAQEjAdaTubmCAY3j/iECAeECB47+hwSN/dWQAZv9+f16AAABACv/8ANNBI0ADwA2sgUQERESOQCwAEVYsAAvG7EAHD5ZsABFWLAFLxuxBRI+WbAJ0LAFELEMAbAKK1gh2Bv0WTAxATMRFAYjIiY1MxQWMzI2NQKSu9Sxwtu6cXJcbgSN/MWdxbekXmZtXwABAJcAAAFRBI0AAwAdALAARViwAi8bsQIcPlmwAEVYsAAvG7EAEj5ZMDEhIxEzAVG6ugSNAAABAIoAAARYBI0ACwBUALAARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLAALxuxABI+WbAARViwBC8bsQQSPlmyCQAKERI5fLAJLxiyowkBXbECAbAKK1gh2Bv0WTAxISMRIREjETMRIREzBFi5/aS5uQJcuQHy/g4Ejf39AgMAAQBj//AENQSdAB0AYrIKHh8REjkAsABFWLAKLxuxChw+WbAARViwAy8bsQMSPlmyHQoDERI5sB0vsg0dChESObAKELEQAbAKK1gh2Bv0WbADELEXAbAKK1gh2Bv0WbAdELEaA7AKK1gh2Bv0WTAxJQYGIyIAJzUQADMyFhcjJiMiBhUVFBYzMjc1ITUhBDVC6Zfu/uACAQvyyPIbuCb1n6a5oLZR/ucB0ZZTUwEq/FoBBgEnvLXZzsdUvtdK7pAAAQCKAAADmwSNAAkAQwCwAEVYsAQvG7EEHD5ZsABFWLACLxuxAhI+WbAJ0LAJL7IfCQFdsQABsAorWCHYG/RZsAQQsQYBsAorWCHYG/RZMDEBIREjESEVIREhA0v9+LkDEf2oAggB8/4NBI2Z/pgAAAEAQ/8TA90FcwArAGkAsABFWLAJLxuxCRw+WbAARViwIi8bsSISPlmyAiIJERI5sAkQsAzQsAkQsBDQsAkQsRMBsAorWCHYG/RZsAIQsRkBsAorWCHYG/RZsCIQsB/QsCIQsCbQsCIQsSkBsAorWCHYG/RZMDEBNCYkJyY1NDY3NTMVFhYVIzQmIyIGFRQWBBYWFRQGBxUjNSYmNTMUFjMyNgMjef7aVsPLppWjxrmNeXGGewE4sFbDqZW637qajH6CASpQWEorYrOCrBDZ2xXCiGJrWVBBWFBliFuCphDh4RPClGZyWwABADAAAAPvBJ0AIABjALAARViwFC8bsRQcPlmwAEVYsAcvG7EHEj5Zsg8HFBESObAPL7EOBLAKK1gh2Bv0WbAB0LAHELEEAbAKK1gh2Bv0WbAI0LAUELAY0LAUELEbAbAKK1gh2Bv0WbAPELAf0DAxASEXFgchByE1MzY3NycjNTMnJjYzMhYVIzQmIyIGFxchAx3+cAEFOAKUAfyECk8JAQGkoAQGy7W3yrloYF1oBAQBlAH0IstvmJgX3UYieXvJ7My3cHePinsAAQANAAADkgSNABcAbbIAGBkREjkAsABFWLABLxuxARw+WbAARViwDC8bsQwSPlmyAAwBERI5sggBDBESObAIL7AD0LADL7AFsAorWNgb3FmwCBCwCrAKK1jYG9xZsA7QsAgQsBDQsAUQsBLQsAMQsBTQsAEQsBbQMDEBEzMBMxUhBxUhFSEVIzUhNSE1ITUzATMB0f3E/tTV/vEDARL+7rn+7gES/u7b/tTHAk0CQP2MeQdEeN3deEt5AnQAAAEAigAAA4UEjQAFADOyAQYHERI5ALAARViwBC8bsQQcPlmwAEVYsAIvG7ECEj5ZsAQQsQABsAorWCHYG/RZMDEBIREjESEDhf2+uQL7A/T8DASNAAIAFAAABFMEjQADAAgAPbIFCQoREjmwBRCwAtAAsABFWLACLxuxAhw+WbAARViwAC8bsQASPlmyBQIAERI5sQcBsAorWCHYG/RZMDEhIQEzAycHASEEU/vBAcmtPRoZ/vgCQwSN/t1cXv0wAAMAYP/wBFoEnQADABEAHwBhALAARViwDi8bsQ4cPlmwAEVYsAcvG7EHEj5ZsgIHDhESOXywAi8YtGACcAICcbRgAnACAl2xAQGwCitYIdgb9FmwDhCxFQGwCitYIdgb9FmwBxCxHAGwCitYIdgb9FkwMQEhNSEFEAAjIgARNRAAMzIAFwc0JiMiBhUVFBYzMjY1A1X+HwHhAQX+7Ojl/ucBF+XpARMCt6yblq+wl5ypAfmZbv77/tEBMgEHPgECATT+0P8FxtLWxULD19PHAAABABQAAARTBI0ACAA4sgcJChESOQCwAEVYsAIvG7ECHD5ZsABFWLAALxuxABI+WbAARViwBC8bsQQSPlmyBwIAERI5MDEzIwEzASMBJwfbxwHJrQHJxv7AGhkEjftzA2pcXgAAAwA+AAADSwSNAAMABwALAGayBAwNERI5sAQQsAHQsAQQsAnQALAARViwCi8bsQocPlmwAEVYsAAvG7EAEj5ZsQIBsAorWCHYG/RZsgcKABESObAHL7K/BwFdsQQBsAorWCHYG/RZsAoQsQgBsAorWCHYG/RZMDEhITUhAyE1IRMhNSEDS/zzAw1D/XcCiUP88wMNmAF7mAFJmQAAAQCKAAAERASNAAcAQLIBCAkREjkAsABFWLAGLxuxBhw+WbAARViwAC8bsQASPlmwAEVYsAQvG7EEEj5ZsAYQsQIBsAorWCHYG/RZMDEhIxEhESMRIQREuv25uQO6A/T8DASNAAEAPwAAA8gEjQAMAEWyBg0OERI5ALAARViwCC8bsQgcPlmwAEVYsAMvG7EDEj5ZsQEBsAorWCHYG/RZsAXQsAgQsQoBsAorWCHYG/RZsAfQMDEBASEVITUBATUhFSEBAm/+tgKj/HcBUf6vA1f9jwFKAjr+X5mQAbcBtpCZ/l8AAwBgAAAFBgSNABEAFwAeAF4AsABFWLAQLxuxEBw+WbAARViwCC8bsQgSPlmyDxAIERI5sA8vsADQsgkIEBESObAJL7AG0LAJELEUAbAKK1gh2Bv0WbAPELEVAbAKK1gh2Bv0WbAb0LAUELAc0DAxARYEFRQEBxUjNSYkNTQkNzUzARAFEQYGBTQmJxE2NgMQ5gEQ/u3juer+8wEQ57n+CAE/mqUDNqaYmKYEFg36y838DW5uDf3KzPwNdv21/tgRAnIJlpiZlQn9jgqWAAABAGAAAAS2BI0AFQBdsgAWFxESOQCwAEVYsAMvG7EDHD5ZsABFWLAPLxuxDxw+WbAARViwFC8bsRQcPlmwAEVYsAkvG7EJEj5ZshMDCRESObATL7AA0LATELELAbAKK1gh2Bv0WbAI0DAxASQRETMRBgIHESMRJgInETMREAURMwLoARW5A/LZutnwBboBFLoBuzMBawE0/r3z/uIY/t8BHxQBHfIBS/7L/o4tAtQAAAEAdQAABH4EnQAhAF6yByIjERI5ALAARViwGC8bsRgcPlmwAEVYsA8vG7EPEj5ZsABFWLAgLxuxIBI+WbAPELERAbAKK1gh2Bv0WbAO0LAA0LAYELEHAbAKK1gh2Bv0WbARELAe0LAf0DAxJTY2NTU0JiMiBhUVFBYXFSE1MyYRNTQAMzIAFRUQBzMVIQK7iH+unZysjX/+Pq+zARvn6AEcsrX+PZ0f380ms8DBtyHM3yCdl50BOh7uASP+3PUc/suclwABACb/7AUsBI0AGQBushYaGxESOQCwAEVYsAIvG7ECHD5ZsABFWLAOLxuxDhI+WbAARViwGC8bsRgSPlmwAhCxAAGwCitYIdgb9FmwBNCwBdCyCAIOERI5sAgvsA4QsQ8BsAorWCHYG/RZsAgQsRUBsAorWCHYG/RZMDEBITUhFSERNjMyFhUUBiM1MjY1NCYjIgcRIwGK/pwDif6Ul5zU4uXgjX99gJ2WuQP0mZn+1zHQxL6+l214g3ky/c4AAQBg//AEMASdAB4AgLIDHyAREjkAsABFWLALLxuxCxw+WbAARViwAy8bsQMSPlmyDwsDERI5sAsQsRIBsAorWCHYG/RZshYLAxESOXywFi8YsqAWAV20YBZwFgJdsjAWAXG0YBZwFgJxsRcBsAorWCHYG/RZsAMQsRsBsAorWCHYG/RZsh4DCxESOTAxAQYGIyIAETU0NjYzMhYXIyYmIyIGByEVIRYWMzI2NwQwFPzR4P7xe+eYzPcTuRKNfpmiBgG//kEEoZGHjRQBebvOAScBA16k+YjTu4J0w6+YssJvgwAAAgAnAAAG+wSNABcAIAB6sgQhIhESObAEELAY0ACwAEVYsBIvG7ESHD5ZsABFWLADLxuxAxI+WbAARViwCy8bsQsSPlmwEhCxBQGwCitYIdgb9FmwCxCxDgGwCitYIdgb9FmyFBIDERI5sBQvsRgBsAorWCHYG/RZsAMQsRkBsAorWCHYG/RZMDEBFAYHIREhAw4CByM3NzY2ExMhESEWFiURITI2NTQmIwb75sP+K/5eDwtNl3s7BC5gUQoUAw4BJMHg/TsBFXKEg3MBbqXHAgP0/mXt9nUBpQEEvgEJAhz+SgTBLf5ZdWNfcAACAIoAAAcJBI0AEgAbAIyyARwdERI5sAEQsBPQALAARViwAi8bsQIcPlmwAEVYsBEvG7ERHD5ZsABFWLALLxuxCxI+WbAARViwDy8bsQ8SPlmyAQILERI5fLABLxiyoAEBXbIEAgsREjmwBC+wARCxDQGwCitYIdgb9FmwBBCxEwGwCitYIdgb9FmwCxCxFAGwCitYIdgb9FkwMQEhETMRIRYWFRQGByERIREjETMBESEyNjU0JicBQwJIuQEkweDmw/4r/bi5uQMBARVzhH1uAooCA/5KBMGkpccCAfL+DgSN/bL+WXdhW3EDAAEAKAAABS4EjQAVAFyyBxYXERI5ALAARViwAi8bsQIcPlmwAEVYsAwvG7EMEj5ZsABFWLAULxuxFBI+WbACELEAAbAKK1gh2Bv0WbAE0LAF0LIIAgwREjmwCC+xEQGwCitYIdgb9FkwMQEhNSEVIRE2MzIWFxEjETQmIyIHESMBi/6dA4n+lJOg1N4Eun1/nZa6A/SZmf7XMcrB/o8BZId5Mv3OAAABAIr+mwRDBI0ACwBQsgMMDRESOQCwAi+wAEVYsAYvG7EGHD5ZsABFWLAKLxuxChw+WbAARViwAC8bsQASPlmwAEVYsAQvG7EEEj5ZsQgBsAorWCHYG/RZsAnQMDEhIREjESERMxEhETMEQ/6Buf5/uQJHuf6bAWUEjfwLA/UAAAIAigAABAgEjQAMABUAYbIDFhcREjmwAxCwDdAAsABFWLALLxuxCxw+WbAARViwCS8bsQkSPlmwCxCxAAGwCitYIdgb9FmyAwsJERI5sAMvsAkQsQ0BsAorWCHYG/RZsAMQsRMBsAorWCHYG/RZMDEBIREhMhYVFAYHIREhATI2NTQmJyERA5X9rgERzubkxf4rAwv+w3OEfW7+3wP3/uDEpaTIAgSN/At3YVtxA/5ZAAACAC7+rATnBI0ADwAVAF2yExYXERI5sBMQsAXQALAJL7AARViwBS8bsQUcPlmwAEVYsAsvG7ELEj5ZsQABsAorWCHYG/RZsAfQsAjQsAkQsA3QsAgQsBDQsBHQsAUQsRIBsAorWCHYG/RZMDE3NzY2NxMhETMRIxEhESMTISERIQMChSlHRwcOAwePufy6ugEBLgJC/mQMEZgxVv3YAZn8C/4UAVT+rQHrA1z+yP6ZAAEAHwAABesEjQAVAJKyARYXERI5ALAARViwCS8bsQkcPlmwAEVYsA0vG7ENHD5ZsABFWLARLxuxERw+WbAARViwAi8bsQISPlmwAEVYsAYvG7EGEj5ZsABFWLAULxuxFBI+WbIQCQIREjl8sBAvGLKgEAFdtGAQcBACXbEAAbAKK1gh2Bv0WbAE0LITEAAREjmwExCwCNCwEBCwC9AwMQEjESMRIwEjAQEzATMRMxEzATMBASMDxWO6ZP7F6gGG/p7gASxZulkBLOD+nAGI6gH2/goB9v4KAlECPP4DAf3+AwH9/c39pgABAEf/8APUBJ0AKACAsiQpKhESOQCwAEVYsAovG7EKHD5ZsABFWLAWLxuxFhI+WbAKELEDAbAKK1gh2Bv0WbIGChYREjmyJwoWERI5sCcvtB8nLycCXbK/JwFdtN8n7ycCXbEkAbAKK1gh2Bv0WbIQJCcREjmyHBYKERI5sBYQsR8BsAorWCHYG/RZMDEBNCYjIgYVIzQ2MzIWFRQGBxYWFRQGIyImJyY1MxYWMzI2NTQlIzUzNgMIin1ugbrtvNPubmd2cf7VW6k9ebkFg3mIkv7/nZzvA1BUXVhPjrWollaNKSSSW560LC5ZnVZgYFjBBZgFAAABAIoAAARhBI0ACQBMsgAKCxESOQCwAEVYsAAvG7EAHD5ZsABFWLAHLxuxBxw+WbAARViwAi8bsQISPlmwAEVYsAUvG7EFEj5ZsgQAAhESObIJAAIREjkwMQEzESMRASMRMxEDqLm5/Zu5uQSN+3MDdPyMBI38jAABAIsAAAQsBI0ADABpsgoNDhESOQCwAEVYsAQvG7EEHD5ZsABFWLAILxuxCBw+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgYCBBESOXywBi8YsqAGAV20YAZwBgJdsQEBsAorWCHYG/RZsgoBBhESOTAxASMRIxEzETMBMwEBIwGuarm5ZAGF3/41AevvAfb+CgSN/gMB/f3F/a4AAQAnAAAENgSNAA8AT7IEEBEREjkAsABFWLAALxuxABw+WbAARViwAS8bsQESPlmwAEVYsAgvG7EIEj5ZsAAQsQMBsAorWCHYG/RZsAgQsQoBsAorWCHYG/RZMDEBESMRIQMCAgcjNzc2NjcTBDa5/l4PDaSwRAQpXlANGQSN+3MD9P6C/qr+5QWlAwee4gJeAAABACL/7AQLBI0AEQBEsgESExESOQCwAEVYsAIvG7ECHD5ZsABFWLAQLxuxEBw+WbAARViwCC8bsQgSPlmyAQgCERI5sQwBsAorWCHYG/RZMDEBFwEzAQcGBwciJzcXMjY3ATMB9S0BFNX+XiVQqiZQFAZcMUkg/mbWAjB4AtX8RUmRCwEIkwUxOwOfAAEAiv6sBPEEjQALAEayCQwNERI5ALACL7AARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLAELxuxBBI+WbEAAbAKK1gh2Bv0WbAI0LAJ0DAxJTMDIxEhETMRIREzBEStEqX8ULkCR7qY/hQBVASN/AsD9QABAD0AAAPfBI0AEQBHsgQSExESOQCwAEVYsAgvG7EIHD5ZsABFWLAQLxuxEBw+WbAARViwAC8bsQASPlmyDQgAERI5sA0vsQQBsAorWCHYG/RZMDEhIxEGIyImJxEzERQWMzI3ETMD37mQo9TeBLl+f52WuQHCMMrBAXD+nYd5MgIxAAABAIoAAAXGBI0ACwBQsgUMDRESOQCwAEVYsAIvG7ECHD5ZsABFWLAGLxuxBhw+WbAARViwCi8bsQocPlmwAEVYsAAvG7EAEj5ZsQQBsAorWCHYG/RZsAjQsAnQMDEhIREzESERMxEhETMFxvrEuQGIugGIuQSN/AsD9fwLA/UAAAEAiv6sBnUEjQAPAFmyCxARERI5ALACL7AARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLAOLxuxDhw+WbAARViwBC8bsQQSPlmxAAGwCitYIdgb9FmwCNCwCdCwDNCwDdAwMSUzAyMRIREzESERMxEhETMFx64SpvrNuQGIugGIupj+FAFUBI38CwP1/AsD9QACAAgAAATWBI0ADQAWAGGyCBcYERI5sAgQsBXQALAARViwBy8bsQccPlmwAEVYsAMvG7EDEj5ZsAcQsQUBsAorWCHYG/RZsgoHAxESObAKL7ADELEOAbAKK1gh2Bv0WbAKELEUAbAKK1gh2Bv0WTAxARQGByERITUhESEyFhYBMjY1NCYjIREE1uTE/ir+sAIKARaEwmj+UXKEg3P+6wFupMgCA/SZ/kpYo/68dWNfcP5ZAP//AIoAAAVnBI0AJgIIAAAABwHjBBYAAAACAIoAAAQIBI0ACgATAFKyCBQVERI5sAgQsAvQALAARViwBS8bsQUcPlmwAEVYsAMvG7EDEj5ZsggFAxESObAIL7ADELELAbAKK1gh2Bv0WbAIELERAbAKK1gh2Bv0WTAxARQGByERMxEhMhYBMjY1NCYnIREECOTF/iu5ARHO5v5Qc4R9bv7fAW6kyAIEjf5KxP6Fd2FbcQP+WQABAEv/8AQbBJ0AHgB9sgMfIBESOQCwAEVYsBMvG7ETHD5ZsABFWLAbLxuxGxI+WbIAGxMREjmxAwGwCitYIdgb9FmyCRMbERI5fLAJLxiyoAkBXbRgCXAJAl2yMAkBcbRgCXAJAnGxBgGwCitYIdgb9FmwExCxDAGwCitYIdgb9FmyDxMbERI5MDEBFhYzMjY3ITUhJiYjIgYHIzY2MzIAFxUUBgYjIiYnAQQUjYeNogf+QQG+BaOYfo0SuRP3zOQBEQV44pXP/hQBeYNvu7mYr8N0grvT/t/0daP5h867AAIAiv/wBhUEnQATACEAjbIEIiMREjmwBBCwGNAAsABFWLAQLxuxEBw+WbAARViwCy8bsQscPlmwAEVYsAMvG7EDEj5ZsABFWLAILxuxCBI+WbINCAsREjl8sA0vGLRgDXANAnGyoA0BXbRgDXANAl2xBgGwCitYIdgb9FmwEBCxFwGwCitYIdgb9FmwAxCxHgGwCitYIdgb9FkwMQEQACMiACcjESMRMxEzNgAzMgAXBzQmIyIGFRUUFjMyNjUGFf7s6N3+6wzYubnYDgEU2ukBEwK3rJuWr7CXnKkCJP77/tEBHPL+AgSN/gnxARb+0P8FxtLWxULD19PHAAIAUAAAA/wEjQANABQAY7ITFRYREjmwExCwB9AAsABFWLAHLxuxBxw+WbAARViwAC8bsQASPlmwAEVYsAkvG7EJEj5ZshEHABESObARL7ELAbAKK1gh2Bv0WbIBCwcREjmwBxCxEgGwCitYIdgb9FkwMTMBJiY1NDY3IREjESEDExQXIREhIlABInpx3MgB0bn+0P8u5gEb/u/wAg0mnWihsgL7cwHf/iEDMLQEAXwAAQALAAAD5wSNAA0AUrIBDg8REjkAsABFWLAILxuxCBw+WbAARViwAi8bsQISPlmyDQgCERI5sA0vsQABsAorWCHYG/RZsATQsA0QsAbQsAgQsQoBsAorWCHYG/RZMDEBIxEjESM1MxEhFSERMwKH4rnh4QL7/b7iAf3+AwH9lwH5mf6gAAABAB/+rAYiBI0AGQCssggaGxESOQCwAEVYsBAvG7EQHD5ZsABFWLAULxuxFBw+WbAARViwGC8bsRgcPlmwAEVYsA0vG7ENEj5ZsABFWLAKLxuxChI+WbAARViwBS8bsQUSPlmyFwoYERI5fLAXLxiyoBcBXbRgF3AXAl20YBdwFwJxsQcBsAorWCHYG/RZsgAHFxESObAFELEBAbAKK1gh2Bv0WbAHELAL0LIPFwcREjmwFxCwEtAwMQEBMxEjESMBIxEjESMBIwEBMwEzETMRMwEzBGMBJpmnev7EY7pk/sXqAYb+nuABLFm6WQEs4AJa/jz+FgFUAfb+CgH2/goCUQI8/gMB/f4DAf0AAQCL/qwETgSNABAAgrIAERIREjkAsAMvsABFWLALLxuxCxw+WbAARViwDy8bsQ8cPlmwAEVYsAkvG7EJEj5ZsABFWLAFLxuxBRI+WbINCQsREjl8sA0vGLRgDXANAnGyoA0BXbRgDXANAl2xCAGwCitYIdgb9FmyAAgNERI5sAUQsQEBsAorWCHYG/RZMDEBATMRIxEjASMRIxEzETMBMwJBAW+eqGn+cWq5uWQBhd8CUv5E/hYBVAH2/goEjf4DAf0AAAEAiwAABOcEjQAUAHmyCxUWERI5ALAARViwBi8bsQYcPlmwAEVYsBMvG7ETHD5ZsABFWLAJLxuxCRI+WbAARViwES8bsRESPlmyABETERI5fLAALxiyoAABXbRgAHAAAl20YABwAAJxsATQsAAQsRABsAorWCHYG/RZsggQABESObAM0DAxATM1MxUzATMBASMBIxUjNSMRIxEzAURQlDwBhOD+NAHr7/5xQZRQubkCkOTkAf39xf2uAfbOzv4KBI0AAQAjAAAFFQSNAA4Af7IADxAREjkAsABFWLAGLxuxBhw+WbAARViwCi8bsQocPlmwAEVYsAIvG7ECEj5ZsABFWLANLxuxDRI+WbIIAgYREjl8sAgvGLKgCAFdtGAIcAgCXbRgCHAIAnGxAQGwCitYIdgb9FmwBhCxBAGwCitYIdgb9FmyDAEIERI5MDEBIxEjESE1IREzATMBASMCl2m6/q8CC2MBheD+NAHr7wH2/goD9Zj+AwH9/cX9rgACAGD/6wVbBJ8AIwAuAJiyFC8wERI5sBQQsCTQALAARViwCy8bsQscPlmwAEVYsBsvG7EbHD5ZsABFWLAALxuxABI+WbAARViwBC8bsQQSPlmyAgQbERI5sAIvsAsQsQwBsAorWCHYG/RZsAQQsRMBsAorWCHYG/RZsAIQsSYBsAorWCHYG/RZshUTJhESObIhAiYREjmwGxCxLAGwCitYIdgb9FkwMQUiJwYjIAARNRASMxciBhUVFBYzMjcmAzU0EjMyEhUVEAcWMwEQFzYRNTQmIyIDBVvZpomj/ur+xvTSAX6Q0Mc2MuMBz7W4zbZedv2S4bZiasYFFDs8AUUBKhoBAwEonsPIIejlCLIBRSfrAQT+//E4/tqyEgH9/sx5gQEeOKyj/sP//wANAAAEHASNACYB0wAAAQcCJgBE/t4ACACyAAoBXTAxAAEAJv6sBHEEjQAQAGyyCxESERI5ALAHL7AARViwAS8bsQEcPlmwAEVYsA8vG7EPHD5ZsABFWLAJLxuxCRI+WbAARViwDC8bsQwSPlmyAAEMERI5sgsMARESObIDCwAREjmwCRCxBAGwCitYIdgb9FmyDgALERI5MDEBATMBATUzESMRIwEBIwEBMwIoAR/c/nUBMaiodP7V/tjcAZb+c9sC2gGz/b7+SgH+FgFUAbv+RQJLAkIAAQAm/qwF8gSNAA8AXrIJEBEREjkAsAIvsABFWLAILxuxCBw+WbAARViwDi8bsQ4cPlmwAEVYsAQvG7EEEj5ZsQABsAorWCHYG/RZsAgQsQYBsAorWCHYG/RZsArQsAvQsAAQsAzQsA3QMDElMwMjESERITUhFSERIREzBUSuEqX8UP6bA4n+lQJGupj+FAFUA/SZmfykA/UAAAEAPQAAA98EjQAXAFCyBBgZERI5ALAARViwCy8bsQscPlmwAEVYsBYvG7EWHD5ZsABFWLAALxuxABI+WbIQCwAREjmwEC+xBwGwCitYIdgb9FmwBNCwEBCwE9AwMSEjEQYHFSM1JiYnETMRFBYXNTMVNjcRMwPfuWNplbzJA7lnaJVnZbkBwiELxsMKyboBbf6de3gL8O0LIgIxAAEAigAABCwEjQARAEeyBBITERI5ALAARViwAC8bsQAcPlmwAEVYsAgvG7EIEj5ZsABFWLAQLxuxEBI+WbIEAAgREjmwBC+xDQGwCitYIdgb9FkwMRMzETYzMhYXESMRNCYjIgcRI4q5mpnU3gS5fn+Ym7kEjf4+McrB/o8BZId5M/3PAAIAAv/wBWsEnQAcACQAbLIVJSYREjmwFRCwHtAAsABFWLAOLxuxDhw+WbAARViwAC8bsQASPlmyIQ4AERI5sCEvsr8hAV2xEgGwCitYIdgb9FmwA9CwIRCwCtCwABCxFgGwCitYIdgb9FmwDhCxHQGwCitYIdgb9FkwMQUiADUmJjUzFBYXPgIzMgARFSEUFjMyNjcXBgYDIgYHITU0JgOR//7OpriZX2YFh+mO+AEQ/K7Bt0yHUDk8uJaPtQYCma4QASLzC8aoXncMk+yB/uv+/YKxwB8okigvBBHCpBuhqgACAF7/8ARpBJ0AFgAeAGGyCB8gERI5sAgQsBfQALAARViwAC8bsQAcPlmwAEVYsAgvG7EIEj5Zsg0ACBESObANL7AAELERAbAKK1gh2Bv0WbAIELEXAbAKK1gh2Bv0WbANELEaAbAKK1gh2Bv0WTAxATIAFxUUBgYjIgARNSE1NCYjIgcnNjYTMjY3IRUUFgJH9wEpAoTsk/j+8ANSwbeTkDlBwImRswb9Z60Enf7g74iZ9IkBFQEBggGxwUiSKS/77cahG6CsAAEAR//tA9QEjQAcAHCyGh0eERI5ALAARViwAi8bsQIcPlmwAEVYsAsvG7ELEj5ZsAIQsQABsAorWCHYG/RZsgQAAhESObIFCwIREjmwBS+yEQsCERI5sAsQsRQBsAorWCHYG/RZsAUQsRoBsAorWCHYG/RZshwFGhESOTAxASE1IRcBFhYVFAYjIiYnJjUzFhYzMjY1NCYjIzUCs/28AzgC/qmx0fzXWas8erkFiXOIkoqGgAP0mXb+mxDFi6e+LS5anllkaGpfaqUAAAMAYP/wBFoEnQANABQAGwB2sgMcHRESObADELAO0LADELAV0ACwAEVYsAovG7EKHD5ZsABFWLADLxuxAxI+WbEOAbAKK1gh2Bv0WbIZCgMREjl8sBkvGLKgGQFdtGAZcBkCXbRgGXAZAnGxEQGwCitYIdgb9FmwChCxFQGwCitYIdgb9FkwMQEQACMiABE1EAAzMgAXATI2NyEWFhMiBgchJiYEWv7s6OX+5wEX5ekBEwL+BJOoCf12Cq2NkasIAooJqgIk/vv+0QEyAQc+AQIBNP7Q//4cvLSwwAN3w6yzvAABADAAAAPvBJ0AJwCysh0oKRESOQCwAEVYsB0vG7EdHD5ZsABFWLAMLxuxDBI+WbIGHQwREjmwBi+yDwYBcbIPBgFdsk8GAXGwAdCwAS9ACR8BLwE/AU8BBF2yAAEBXbECBLAKK1gh2Bv0WbAGELEHBLAKK1gh2Bv0WbAMELEKAbAKK1gh2Bv0WbAO0LAP0LAHELAR0LAGELAT0LACELAW0LABELAY0LIhAR0REjmwHRCxJAGwCitYIdgb9FkwMQEhFSEXFSEVIQYHIQchNTM2NyM1MzUnIzUzJyY2MzIWFSM0JiMiBhcBhwGW/m4DAY/+bAokApQB/IQKPxSfpQOingIGy7W3yrloYF1oBAKoeV0QeWpHmJgSn3kQXXlAyezMt3B3j4oAAAEAQv/wA54EnQAhAKKyFCIjERI5ALAARViwFS8bsRUcPlmwAEVYsAgvG7EIEj5ZsiEVCBESObAhL7IPIQFdtBAhICECXbEABLAKK1gh2Bv0WbAIELEDAbAKK1gh2Bv0WbAAELAL0LAhELAN0LAhELAS0LASL0AJHxIvEj8STxIEXbIAEgFdsQ8EsAorWCHYG/RZsBUQsRoBsAorWCHYG/RZsBIQsBzQsA8QsB7QMDEBIRIhMjcXBiMiJicjNTM1IzUzNjYzMhcHJiMgAyEVIRUhAy/+aCABAmJoG3Zv0/UUm5eXmxb1z2CHFVl5/wAgAZj+ZAGcAZb+8RyVHtrMeW15zNwflRz+8HltAAAEAIoAAAetBJ0AAwAQAB4AKACrsh8pKhESObAfELAB0LAfELAE0LAfELAR0ACwAEVYsCcvG7EnHD5ZsABFWLAlLxuxJRw+WbAARViwBy8bsQccPlmwAEVYsCIvG7EiEj5ZsABFWLAgLxuxIBI+WbAHELAN0LANL7AC0LACL7QAAhACAl2xAQOwCitYIdgb9FmwDRCxFAOwCitYIdgb9FmwBxCxGwOwCitYIdgb9FmyIScgERI5siYgJxESOTAxJSE1IQE0NiAWFRUUBiMiJjUXFBYzMjY1NTQmIyIGFQEjAREjETMBETMHbv3TAi39krwBNL2+l5m/o15XVF5hU1Jh/rW4/aO5uQJduL2OAgOVuribUJi2t5wFWWppXFJaaGde/LUDbPyUBI38kwNtAAIAKAAABGYEjQAWAB8AhrIAICEREjmwGNAAsABFWLAMLxuxDBw+WbAARViwAi8bsQISPlmyFgwCERI5sBYvsQABsAorWCHYG/RZsATQsBYQsAbQsBYQsAvQsAsvQAkPCx8LLws/CwRdtL8LzwsCXbEIAbAKK1gh2Bv0WbAT0LALELAX0LAMELEeAbAKK1gh2Bv0WTAxJSEVIzUjNTM1IzUzESEyFhUUBgchFSElITI2NTQmIyECpP7+usDAwMABz8Xq477+3QEC/v4BFXKDhHD+6rS0tJhZmAJQzKilywRZ8XhiZHoAAQA+//UCmgMgACYAdACwAEVYsA4vG7EOGD5ZsABFWLAZLxuxGRI+WbIAGQ4REjl8sAAvGLaAAJAAoAADXbAOELEHArAKK1gh2Bv0WbIKAAcREjmwABCxJgKwCitYIdgb9FmyFCYAERI5sBkQsSACsAorWCHYG/RZsh0mIBESOTAxATMyNjU0JiMiBhUjNDYzMhYVFAYHFhUUBiMiJjUzFBYzMjY1NCcjAQlUSkg/RjlLnaN8iZxGQpWqiISmnk9DRkmcWAHLPTAtOjMpYnt5aDdbGSmPan1+ay08PDNxAgACADYAAAK7AxUACgAOAEoAsABFWLAJLxuxCRg+WbAARViwBC8bsQQSPlmyAQkEERI5sAEvsQICsAorWCHYG/RZsAbQsAEQsAvQsggLBhESObINCQQREjkwMQEzFSMVIzUhJwEzATMRBwJQa2ud/okGAXmh/oTfEQErgqmpZgIG/hYBIRwAAAEAW//1AqcDFQAbAGQAsABFWLABLxuxARg+WbAARViwDS8bsQ0SPlmwARCxBAmwCitYIdgb9FmyBw0BERI5sAcvsRkCsAorWCHYG/RZsgUHGRESObANELAR0LANELETArAKK1gh2Bv0WbAHELAb0DAxExMhFSEHNjMyFhUUBiMiJiczFjMyNjU0JiMiB3AyAd7+oxZBSoCPoIZ5pwabCoFBSE5KSTsBgwGShKodiXl8kX5lY0tEPk0rAAIAVv/1AqsDHgATAB8AUQCwAEVYsAAvG7EAGD5ZsABFWLAMLxuxDBI+WbAAELEBArAKK1gh2Bv0WbIGDAAREjmwBi+xFAKwCitYIdgb9FmwDBCxGwKwCitYIdgb9FkwMQEVIwQHNjMyFhUUBiMiJjU1NDY3AyIGBxUUFjMyNjQmAigR/vQXSHJ2h5+Ei6fezX4zTRFTPz1ORwMegwLbTZF3dJqmlzPQ5AX+biwgIlRVT3xMAAEAOgAAAqUDFQAGADMAsABFWLAFLxuxBRg+WbAARViwAi8bsQISPlmwBRCxBAKwCitYIdgb9FmyAAUEERI5MDEBASMBITUhAqX+o6YBXf47AmsCu/1FApOCAAMAT//1Ap8DIAATAB4AKAB9ALAARViwES8bsREYPlmwAEVYsAYvG7EGEj5ZsiQGERESObAkL7bfJO8k/yQDXbYPJB8kLyQDXbL/JAFxtA8kHyQCcrEXArAKK1gh2Bv0WbICJBcREjmyDBckERI5sAYQsR0CsAorWCHYG/RZsBEQsR8CsAorWCHYG/RZMDEBFAcWFRQGICY1NDY3JjU0NjMyFgM0JiMiBhUUFjI2AyIGFRQWMjY0JgKLd4ug/vCgSkB3l31+l4lOPj9LTH5MjDc/P3A/QAJDdjc7g2p5eWpCYRs3dmd2dv46NDo6NDU6OgHwNTAuODhcNwACAEn/+QKVAyAAEgAeAF0AsABFWLAILxuxCBg+WbAARViwDy8bsQ8SPlmyAg8IERI5sAIvtg8CHwIvAgNdsA8QsRACsAorWCHYG/RZsAIQsRMCsAorWCHYG/RZsAgQsRkCsAorWCHYG/RZMDEBBiMiJjU0NjMyFhcVEAUHNTI2JzI3NTQmIyIGFRQWAfZFZXaNo4GJnAP+czeWhHteKk88O0xKAUBBin55oKWUPf5kFAF/Yp5HPFNQVENBTgAAAQCPAosDCwMiAAMAEgCwAi+xAQGwCitYIdgb9FkwMQEhNSEDC/2EAnwCi5cAAAMAngRAAm4GcgADAA8AGwB0ALAARViwDS8bsQ0aPlmwB9CwBy9ACT8HTwdfB28HBF2wAtCwAi+2PwJPAl8CA12wANCwAC9AEQ8AHwAvAD8ATwBfAG8AfwAIXbACELAD0BmwAy8YsA0QsRMHsAorWCHYG/RZsAcQsRkHsAorWCHYG/RZMDEBMwcjBzQ2MzIWFRQGIyImNxQWMzI2NTQmIyIGAbG93HKCZEhEY2FGSGRVMyQjMDAjJTIGcrjXRmFeSUdcXkUjMjEkJjI0AAEAigAAA64EjQALAFcAsABFWLAGLxuxBhw+WbAARViwBC8bsQQSPlmwC9CwCy+y3wsBXbIfCwFdsQABsAorWCHYG/RZsAQQsQIBsAorWCHYG/RZsAYQsQgBsAorWCHYG/RZMDEBIREhFSERIRUhESEDV/3sAmv83AMe/ZsCFAIO/omXBI2Z/rIAAAMAHv5KBBEETgApADcARACUALAARViwJi8bsSYaPlmwAEVYsBYvG7EWFD5ZsCYQsCnQsCkvsQADsAorWCHYG/RZsggWJhESObAIL7IOCBYREjmwDi+0kA6gDgJdsTcBsAorWCHYG/RZshw3DhESObIgCCYREjmwFhCxMAGwCitYIdgb9FmwCBCxOwGwCitYIdgb9FmwJhCxQgGwCitYIdgb9FkwMQEjFhcVFAYGIyInBhUUFzMWFhUUBgYjIiY1NDY3JjU0NyY1NTQ2MzIXIQEGBhUUFjMyNjU0JicjAxQWMzI2NTU0JiIGFQQRlzoBb8N4T0k0erfIzo30l9H/XlQ4c67xu1BHAW/9PDg8lIOSzWhs73SMaWeKitKKA6dUaRlipl4VKkBQAgGVj1ShYJt6U4oqL0p8UmrFC53KFPv4Gl03SllyTEpBAgKlU3t6WBJXeHhaAAIAZP/rBFgETgAQABwAYwCwAEVYsAkvG7EJGj5ZsABFWLAMLxuxDBo+WbAARViwAi8bsQISPlmwAEVYsBAvG7EQEj5ZsgACCRESObILCQIREjmwAhCxFAGwCitYIdgb9FmwCRCxGgGwCitYIdgb9FkwMSUCISICNTUQEjMgEzczAxMjARQWMzITNSYmIyIGA4Js/vLA5OLEAQlsIrBqcbD9dZKH00gckmuGlfH++gEb9A8BCAE9/v/t/eL95AH0r8MBhyS+y+MAAgCxAAAE4wWvABYAHgBjshgfIBESObAYELAE0ACwAEVYsAMvG7EDHj5ZsABFWLABLxuxARI+WbAARViwDy8bsQ8SPlmyFwMBERI5sBcvsQABsAorWCHYG/RZsgkXABESObADELEdAbAKK1gh2Bv0WTAxAREjESEyFhUUBxYTFRYXFSMmJzU0JiMlITI2NRAhIQFywQIO8Pvt3gUCQcY7A4x//p4BOaKd/s/+uQJ0/YwFr9LM5WNF/vqcjT0YNqyLeI+dfIQBAAABALIAAAUdBbAADABpALAARViwBC8bsQQePlmwAEVYsAgvG7EIHj5ZsABFWLACLxuxAhI+WbAARViwCy8bsQsSPlmyBgIEERI5fLAGLxi0YwZzBgJdtDMGQwYCXbKTBgFdsQEBsAorWCHYG/RZsgoBBhESOTAxASMRIxEzETMBMwEBIwIjscDAlgH97/3UAlXrAo79cgWw/X4Cgv0+/RIAAQCSAAAEFAYAAAwAVACwAEVYsAQvG7EEID5ZsABFWLAILxuxCBo+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgcIAhESObAHL7EAAbAKK1gh2Bv0WbIKAAcREjkwMQEjESMRMxEzATMBASMBzIC6un4BO9v+hgGu2wH1/gsGAPyOAaz+E/2zAAABALIAAAT6BbAACwBMALAARViwAy8bsQMePlmwAEVYsAcvG7EHHj5ZsABFWLABLxuxARI+WbAARViwCi8bsQoSPlmyAAMBERI5sgUDARESObIJAAUREjkwMQERIxEzETMBMwEBIwFywMAMAmPx/WsCve0Ctf1LBbD9eQKH/Tv9FQAAAQCSAAAD8QYYAAwATACwAEVYsAQvG7EEID5ZsABFWLAILxuxCBo+WbAARViwAi8bsQISPlmwAEVYsAsvG7ELEj5ZsgAIAhESObIGCAIREjmyCgYAERI5MDEBIxEjETMRMwEzAQEjAVAEuroBAYrw/isB/+QB8/4NBhj8dQGt/g39uQAAAgCKAAAEHwSNAAoAFABIsgIVFhESObACELAU0ACwAEVYsAEvG7EBHD5ZsABFWLAALxuxABI+WbABELELAbAKK1gh2Bv0WbAAELEMAbAKK1gh2Bv0WTAxMxEhMhYWFxUUACEDETMyNjU1NCYjigFpovuMA/7J/vmepLrGvbcEjYX2n038/tYD9Pyj0MBAwM0AAQBg//AEMASdABwATrIDHR4REjkAsABFWLALLxuxCxw+WbAARViwAy8bsQMSPlmwCxCwD9CwCxCxEgGwCitYIdgb9FmwAxCxGQGwCitYIdgb9FmwAxCwHNAwMQEGBiMiABE1NDY2MzIWFyMmJiMiBgcVFBYzMjY3BDAU/NHg/vF755jM9xO5Eo1+macBn5eHjRQBebvOAScBA16k+YjTu4J0y71qvc9vgwADAIoAAAPvBI0ADgAWAB4AawCwAEVYsAEvG7EBHD5ZsABFWLAALxuxABI+WbIXAAEREjmwFy+yvxcBXbQfFy8XAl203xfvFwJdsQ8BsAorWCHYG/RZsggPFxESObAAELEQAbAKK1gh2Bv0WbABELEeAbAKK1gh2Bv0WTAxMxEhMhYVFAYHFhYVFAYHAREhMjY1NCMlMzI2NTQnI4oBltHeX1hjdNrJ/vcBBnN66/746mx85e0EjaObUX4hGJVlnq4BAhL+hWJVxI1VU6gFAAIAEwAABHAEjQAHAAoARwCwAEVYsAQvG7EEHD5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmyCQQCERI5sAkvsQABsAorWCHYG/RZsgoEAhESOTAxASEDIwEzASMBIQMDRv34br0B36YB2Lz9xgGRxwEX/ukEjftzAa4B/QAAAQCfBI4BlgY7AAgADACwAC+wBNCwBC8wMQEXBgcVIzU0NgErazsDuVQGO1Njb4iCTa0AAAIAgQTfAuAGigANABEAYACwAy+wB9CwBy9ADQ8HHwcvBz8HTwdfBwZdsAMQsQoEsAorWCHYG/RZsAcQsA3QsA0vsAcQsBHQsBEvsA/QsA8vQA8PDx8PLw8/D08PXw9vDwddsBEQsBDQGbAQLxgwMQEUBiMiJjUzFBYzMjY1JTMXIwLgqIeIqJhPSUdP/qaacGUFsF9ycl83PT812sYAAvykBLz+zAaTABQAGACaALADL7IPAwFdsv8DAV2ycAMBXbAH0LAHL0ALDwcfBy8HPwdPBwVdsAMQsArQsAovsAcQsQ4DsAorWCHYG/RZsAMQsREDsAorWCHYG/RZsA4QsBTQsA4QsBfQsBcvQBk/F08XXxdvF38XjxefF68XvxfPF98X7xcMXbAV0LAVL0ALDxUfFS8VPxVPFQVdsBcQsBjQGbAYLxgwMQEUBiMiJiYjIgYVJzQ2MzIWMzI2NSczByP+zGBGNXEiFCMvVGBGL4EsIzCNq7Z4BX1KaUIJMyYVS2tLMyb+4QAAAgBuBOEEWAaVAAYACgBdALADL7IPAwFdsAXQsAUvsADQsAAvtg8AHwAvAANdsAMQsALQGbACLxiyBAMAERI5sAbQGbAGLxiwAxCwCdCwCS+wB9CwBy+2DwcfBy8HA12wCRCwCtAZsAovGDAxATMBIycHIwEzAyMBkpgBIsWpqsYDIsjJjQXo/vmfnwG0/v0AAv9eBM8DRgaCAAYACgBdALADL7IPAwFdsATQGbAELxiwANAZsAAvGLADELAB0LABL7AG0LAGL7YPBh8GLwYDXbICAwYREjmwAxCwCNCwCC+wB9AZsAcvGLAIELAK0LAKL7YPCh8KLwoDXTAxASMnByMBMwUjAzMDRsWqqsQBIpj+j4zIxwTPnp4BBlUBAgAAAgBpBOQD7AbPAAYAFQBzALADL7AF0LAFL7YPBR8FLwUDXbIEAwUREjkZsAQvGLAA0LADELAB0LABL7ICBQMREjmwB9B8sAcvGEANDwcfBy8HPwdPB18HBl2wDtCwDi9ADQ8OHw4vDj8OTw5fDgZdsA3QsggHDRESObIUDgcREjkwMQEjJwcjATMXJzY2NTQjNzIWFRQGBwcDRqrFxakBELy+AUE7jQWAhko8AQTkuroBBnyDBBohQ1xYSTtCBzwAAgBpBOQDRgbUAAYAGgCHALADL7AB0LABL7AG0LAGL0AJDwYfBi8GPwYEXbIEAwYREjkZsAQvGLAA0LICBgEREjmwBhCwCtCwCi+0PwpPCgJdsA3QsA0vQA0PDR8NLw0/DU8NXw0GXbAKELAQ0LAQL7ANELEUBLAKK1gh2Bv0WbAKELEXBLAKK1gh2Bv0WbAUELAa0DAxASMnByMlMzcUBiMiJiMiBhUnNDYzMhYzMjY1A0aqxcWpAS2Dw2BBNm4oHTZNYEAqfCYfNATknp705T5eRy4dEz9iRi0cAAEAigAAA4UFxAAHADOyAwgJERI5ALAARViwBi8bsQYcPlmwAEVYsAQvG7EEEj5ZsAYQsQIBsAorWCHYG/RZMDEBMxEhESMRIQLMuf2+uQJCBcT+MPwMBI0AAAIAgQTfAuAGigANABEAYACwAy+wB9CwBy9ADQ8HHwcvBz8HTwdfBwZdsAMQsQoEsAorWCHYG/RZsAcQsA3QsA0vsAcQsBDQsBAvsA/QsA8vQA8PDx8PLw8/D08PXw9vDwddsBAQsBHQGbARLxgwMQEUBiMiJjUzFBYzMjY1JzMHIwLgqIeIqJhPSUdPYJmkZgWwX3JyXzc9PzXaxgAAAgCBBOACygcDAA0AHABmALADL7AH0LAHL0ANDwcfBy8HPwdPB18HBl2wAxCxCgSwCitYIdgb9FmwBxCwDdCwDS+wBxCwDtCwDi+wFdCwFS9ADw8VHxUvFT8VTxVfFW8VB12wFNCyDxQOERI5shsOFRESOTAxARQGIyImNTMUFjMyNjUnJzY2NTQjNzIWFRQGBwcCyqGDhKGSSklFTMkBSkKgB5CUUUQBBbBecnNdNT49NhF8BBgdO1JOQjI7Bz7//wBQAo0CnQW4AwcBxwAAApgAEwCwAEVYsAovG7EKHj5ZsBDQMDEA//8ANgKYArsFrQMHAiAAAAKYABMAsABFWLAJLxuxCR4+WbAN0DAxAP//AFsCjQKnBa0DBwIhAAACmAAQALAARViwAS8bsQEePlkwMf//AFYCjQKrBbYDBwIiAAACmAATALAARViwAC8bsQAePlmwFNAwMQD//wA6ApgCpQWtAwcCIwAAApgAEACwAEVYsAUvG7EFHj5ZMDH//wBPAo0CnwW4AwcCJAAAApgAGQCwAEVYsBEvG7ERHj5ZsBfQsBEQsB/QMDEA//8ASQKRApUFuAMHAiUAAAKYABMAsABFWLAILxuxCB4+WbAZ0DAxAAABAH7/6wUdBcUAHgBOsgwfIBESOQCwAEVYsAwvG7EMHj5ZsABFWLADLxuxAxI+WbAMELAQ0LAMELETAbAKK1gh2Bv0WbADELEbAbAKK1gh2Bv0WbADELAe0DAxAQYAIyIkAic1NBIkMzIAFyMmJiMiAhEVFBIWMzI2NwUcGP7b7rH+4aIBnQEbsu0BLxnBGL+dwOpuyH2hsBoBzt/+/LQBR8tE0wFKs/7646Oo/sv+/jeh/wCQnakAAQB+/+sFHgXEACIAcLIMIyQREjkAsABFWLAMLxuxDB4+WbAARViwAy8bsQMSPlmyEAMMERI5sBAvsAwQsRMBsAorWCHYG/RZsAMQsRsBsAorWCHYG/RZsiIMAxESObAiL7Q/Ik8iAl20DyIfIgJdsR8BsAorWCHYG/RZMDElBgQjIiQCJzU0EiQzMgQXIyYmIyICBwcUEhYzMjY3ESE1IQUeQ/7jsLv+1qgDmwEctfEBISLAHrqctewKAXjThXK1Kv6wAg++YXK0AUfSLdsBTrbl2pWM/tzyRqz+9ow6MAFGmwAAAgCyAAAFEQWwAAsAFQBIsgMWFxESObADELAV0ACwAEVYsAEvG7EBHj5ZsABFWLAALxuxABI+WbABELEMAbAKK1gh2Bv0WbAAELENAbAKK1gh2Bv0WTAxMxEhMgQSFxUUAgQHAxEzMgARNTQAI7IBscEBOLEErf7Cy+nf6gET/vfoBbCs/sTIPtD+wbECBRL7iwEqAQMk/AEoAAIAfv/rBV8FxQARACIASLIEIyQREjmwBBCwH9AAsABFWLANLxuxDR4+WbAARViwBC8bsQQSPlmwDRCxFgGwCitYIdgb9FmwBBCxHwGwCitYIdgb9FkwMQEUAgQjIiQCJzU0EiQzMgQSFwc0AiYjIgYGBxUUEhYzMhI1BV+i/uKvq/7hpgKkASGrrQEgowG/bsd9eMZyAXHJecHvAsLO/rC5uQFKyDfNAU+8uf60zAWiAQCPj/6cNaD+/pIBO/8AAAIAfv8EBV8FxQAVACYAT7IIJygREjmwCBCwI9AAsABFWLARLxuxER4+WbAARViwCC8bsQgSPlmyAwgRERI5sBEQsRoBsAorWCHYG/RZsAgQsSMBsAorWCHYG/RZMDEBFAIHFwclBiMiJAInNTQSJDMyBBIVJzQCJiMiBgYHFRQSFjMyEjUFX6mU+oP+zDk8q/7gpAOiASKsrgEhor9ux314x3EBccl5we8CwtT+rFrDefMMugFGxjrMAVC+u/6wzgGjAQGPkP+cM6D+/pIBO/8AAAEAoAAAAskEjQAGADMAsABFWLAFLxuxBRw+WbAARViwAC8bsQASPlmyBAAFERI5sAQvsQMBsAorWCHYG/RZMDEhIxEFNSUzAsm5/pACCh8DpouoygAAAQCDAAAEIASgABgAVrIJGRoREjkAsABFWLARLxuxERw+WbAARViwAC8bsQASPlmxFwGwCitYIdgb9FmwAtCyFhcRERI5sgMRFhESObARELEJAbAKK1gh2Bv0WbARELAM0DAxISE1ATY3NzQmIyIGFSM0NjYzMhYVFAcBIQQg/IcB/X0KA31mepW5eNJ+u+HF/oYCeIMByXNUNVRsjnVwv2y4mLG0/qwAAQAP/qMD3gSNABgAUQCwCy+wAEVYsAIvG7ECHD5ZsQEBsAorWCHYG/RZsATQsgULAhESObAFL7ALELEQAbAKK1gh2Bv0WbAFELEXAbAKK1gh2Bv0WbIYFwUREjkwMQEhNSEVARYWFRQAIyInNxYzMjY1NCYjIzUC5P10A3L+gLLi/sz/ytI0pbG017nAPAP0mXb+bBj2s/n+2meLWMqlq6VnAAACAD7+tgSgBI0ACgAOAEwAsABFWLAJLxuxCRw+WbAARViwAi8bsQISPlmwAEVYsAYvG7EGEj5ZsQABsAorWCHYG/RZsAYQsAXQsAUvsAAQsAzQsg0JAhESOTAxJTMVIxEjESE1ATMBIREHA9vFxbr9HQLWx/08Agoclpf+twFJbQQh/AkC/DUAAQBl/qAEBQSMABsAUQCwDS+wAEVYsAEvG7EBHD5ZsQQBsAorWCHYG/RZsgcNARESObAHL7EYAbAKK1gh2Bv0WbIFBxgREjmwDRCxEgGwCitYIdgb9FmwBxCwG9AwMRMTIRUhAzY3NhIVFAAjIic3FjMyNjU0JiMiBgeGZgMU/X42b5XI8f7g8eCvOoLTmb+lh2p1IgF0Axir/nRAAgL+9eHv/uJyi2XPpI+2OlMAAQBK/rYD8gSNAAYAJgCwAS+wAEVYsAUvG7EFHD5ZsQMBsAorWCHYG/RZsgADBRESOTAxAQEjASE1IQPy/aC6Alf9GwOoBCP6kwU/mAAAAgCDBNkC0gbQAA0AIQB+ALADL7AH0LAHL0ANDwcfBy8HPwdPB18HBl2wAxCxCgSwCitYIdgb9FmwBxCwDdCwDS+wBxCwEdCwES+wFNCwFC9ACw8UHxQvFD8UTxQFXbARELAX0LAXL7AUELEbBLAKK1gh2Bv0WbARELEeBLAKK1gh2Bv0WbAbELAh0DAxARQGIyImNTMUFjMyNjUTFAYjIiYjIgYVJzQ2MzIWMzI2NQLSoYaHoZZKSEdKjWBGOncsIjBTYEUwgSwjMAWuX3Z2XzZAQDYBCkppSzMmFUtrSzMmAAEAZ/6ZASEAmQADABIAsAQvsALQsAIvsAHQsAEvMDEBIxEzASG6uv6ZAgAAAgBg//AGbQSdABMAHQCfshUeHxESObAVELAK0ACwAEVYsAkvG7EJHD5ZsABFWLALLxuxCxw+WbAARViwAi8bsQISPlmwAEVYsAAvG7EAEj5ZsAsQsQwBsAorWCHYG/RZsAAQsA/QsA8vsh8PAV2y3w8BXbEQAbAKK1gh2Bv0WbAAELETAbAKK1gh2Bv0WbACELEUAbAKK1gh2Bv0WbAJELEXAbAKK1gh2Bv0WTAxISEFIgARNRAAMwUhFSERIRUhESEFNxEnIgYVFRQWBm39Y/6O5f7nARflAVsCr/2bAhT97AJs+/Hq7JavsBABMgEHPgECATQQmf6ymP6JDQcDZwnWxULD1wAAAgCC/qkEPwShABgAJQBOALAUL7AARViwDC8bsQwcPlmwFBCxAAGwCitYIdgb9FmyBRQMERI5sAUvsgMFDBESObEaAbAKK1gh2Bv0WbAMELEgAbAKK1gh2Bv0WTAxBTI2NwYjIgI1NDY2MzIAExUUAgQjIic3FhMyNjc1NCYjIgYVFBYB37HcFXe30v910oTrAQUCkv7zr592JnrgaZ8ioZJ/mKO/9NlpARTinOx+/tz+9vrc/rquPI4yAfxcUpTFxcOrlckAAf+2/ksBZwCYAAwAKACwDS+wAEVYsAQvG7EEFD5ZsQkBsAorWCHYG/RZsA0QsAzQsAwvMDElFQYGIyInNxYzMjU1AWcBqpc7NA4eQ4mY9aiwEp0NwukA//8AO/6jBAoEjQEGAkwsAAAQALAARViwAi8bsQIcPlkwMf//AHP+oAQTBIwBBgJODgAAEACwAEVYsAEvG7EBHD5ZMDH//wAj/rYEhQSNAQYCTeUAABMAsABFWLAGLxuxBhI+WbAM0DAxAP//AHcAAAQUBKABBgJL9AAAEACwAEVYsBEvG7ERHD5ZMDH//wB2/rYEHgSNAQYCTywAABAAsABFWLAFLxuxBRw+WTAx//8AN//rBEgEoQEGAmW/AAATALAARViwCC8bsQgcPlmwD9AwMQD//wB+/+wEFgWxAQYAGvoAABMAsABFWLAALxuxAB4+WbAV0DAxAP//AF/+qQQcBKEBBgJT3QAAEwCwAEVYsAwvG7EMHD5ZsCDQMDEA//8AcP/sBA4FxAEGABwAAAAZALAARViwFS8bsRUePlmwG9CwFRCwItAwMQD//wD0AAADHQSNAAYCSlQA////tP5LAWUEOgAGAJwAAP///7T+SwFlBDoABgCcAAD//wCbAAABVQQ6AQYAjQAAABAAsABFWLACLxuxAho+WTAx////+v5ZAVoEOgAmAI0AAAAGAKTICv//AJsAAAFVBDoABgCNAAAAAQCK/+wD+QSdACEAZgCwAEVYsBUvG7EVHD5ZsABFWLAQLxuxEBI+WbAARViwHy8bsR8SPlmxAgGwCitYIdgb9FmyGR8VERI5sBkvtB8ZLxkCXbAIsAorWNgb3FmwGRCwCtCwFRCxDQGwCitYIdgb9FkwMSUWMzI2NTQmIyM1EyYjIgMRIxE2NjMyFhcBFhYVFAYjIicBw1JYYXKIh1TtTmPTBLgBxclrw2X+7qm217V3aLUze2NiVYkBJz7+9f0GAvXS1lVi/rYPo4aszDEAAAIAeP/rBIkEoQALABkAOwCwAEVYsAgvG7EIHD5ZsABFWLADLxuxAxI+WbAIELEPAbAKK1gh2Bv0WbADELEWAbAKK1gh2Bv0WTAxARAAIAADNRAAIAATJzQmIyIGBxUUFjMyNjcEif7o/iL+5gEBGQHeARkBurKdm7ICtpuasQICPP7q/sUBPAEUFAEUAT7+xP7rDcri4MU0yeXdygAAAQA7AAAD0gWwAAYAMwCwAEVYsAUvG7EFHj5ZsABFWLABLxuxARI+WbAFELEDAbAKK1gh2Bv0WbIAAwUREjkwMQEBIwEhNSED0v2+ugJA/SUDlwVI+rgFGJgAAgCM/+wENAYAABAAGwBmshQcHRESObAUELAN0ACwCS+wAEVYsA0vG7ENGj5ZsABFWLAELxuxBBI+WbAARViwBy8bsQcSPlmyBg0EERI5sgsNBBESObANELEUAbAKK1gh2Bv0WbAEELEZAbAKK1gh2Bv0WTAxARQGBiMiJwcjETMRNjMyEhEnNCYjIgcRFjMyNgQ0b8mA0XAPoLlwxcnxuaOMt1BVtIqjAhKf/IuVgQYA/cOL/tP+/we01qr+LKvYAAABAFz/7APvBE4AHQBLsgAeHxESOQCwAEVYsBAvG7EQGj5ZsABFWLAILxuxCBI+WbEAAbAKK1gh2Bv0WbAIELAD0LAQELAU0LAQELEXAbAKK1gh2Bv0WTAxJTI2NzMOAiMiADU1NDY2MzIWFyMmJiMiBhUVFBYCQGOUCLAFeMRu3/77dtuTtvEIsAiPaI+bnYN4Wl6oYwEq/CCd+YbarmmHzr8hvMkAAgBb/+wEAAYAABEAHABmshodHhESObAaELAE0ACwBy+wAEVYsAQvG7EEGj5ZsABFWLANLxuxDRI+WbAARViwCS8bsQkSPlmyBgQNERI5sgsEDRESObANELEVAbAKK1gh2Bv0WbAEELEaAbAKK1gh2Bv0WTAxEzQ2NjMyFxEzESMnBiMiJiYnNxQWMzI3ESYjIgZbcc6Avm+5oQ5vynzLdQG5qIqvUlOsjacCJp/8jYICNPoAeIyM+5gGsdifAfGZ1gACAFv+VgQABE4AGwAmAH+yHycoERI5sB8QsAvQALAARViwAy8bsQMaPlmwAEVYsAYvG7EGGj5ZsABFWLALLxuxCxQ+WbAARViwGC8bsRgSPlmyBQMYERI5sAsQsRIBsAorWCHYG/RZshYDGBESObAYELEfAbAKK1gh2Bv0WbADELEkAbAKK1gh2Bv0WTAxEzQSMzIXNzMRBgIjIiYnNxYWMzI2NTUGIyICNRcUFjMyNxEmIyIGW/jGzG8PnQL04FbISDc/n0+Vim/Bwvq5pouvU1OtjqUCJvYBMpSA/A7v/v03MooqMrCoKIEBOPQHsNmhAeud1wACAFr/7AREBE4AEAAcADgAsABFWLAELxuxBBo+WbAARViwDC8bsQwSPlmxFAGwCitYIdgb9FmwBBCxGgGwCitYIdgb9FkwMRM0NjYzMgAVFRQGBiMiJiYnNxQWMzI2NTQmIyIGWoDjkN0BGn7lko/jgQK5r42OrrGNi68CJ5z/jP7M+w6d/IyI+ZoKsN7gxK/g3gAAAgCM/mAEMgROABAAGwBwshkcHRESObAZELAN0ACwAEVYsA0vG7ENGj5ZsABFWLAKLxuxCho+WbAARViwBy8bsQcUPlmwAEVYsAQvG7EEEj5ZsgYNBBESObILDQQREjmwDRCxFAGwCitYIdgb9FmwBBCxGQGwCitYIdgb9FkwMQEUBgYjIicRIxEzFzYzMhIXBzQmIyIHERYzMjYEMm7IgcVxuZ8PdMrB7gq4qY+oVFOrjKoCEZ78i3399wXafZH+6eonsNuV/fuU3wAAAgBb/mAD/wROAA8AGgBtshgbHBESObAYELAD0ACwAEVYsAMvG7EDGj5ZsABFWLAGLxuxBho+WbAARViwCC8bsQgUPlmwAEVYsAwvG7EMEj5ZsgUDDBESObIKAwwREjmxEwGwCitYIdgb9FmwAxCxGAGwCitYIdgb9FkwMRM0EjMyFzczESMRBiMiAjUXFBYzMjcRJiMiBlv3zMRvDqC5cLrH+rmqjKZWWKKOqgIl9QE0hnL6JgIEeAE19geu35MCEY/fAAIAXf/sA/METgAUABwAZbIIHR4REjmwCBCwFdAAsABFWLAILxuxCBo+WbAARViwAC8bsQASPlmyGQgAERI5sBkvtL8ZzxkCXbEMAbAKK1gh2Bv0WbAAELEQAbAKK1gh2Bv0WbAIELEVAbAKK1gh2Bv0WTAxBSIAJyc0NjYzMhIVFSEWFjMyNxcGASIGByE1NCYCceX+3QsBfN2A1ej9JAjCmaB4OYP+7nOYEQIgiRQBF+NOm/WK/v7wdJ3IWn9yA8qglhmDmgAAAgBg/lYD8gROABoAJQB/siMmJxESObAjELAL0ACwAEVYsAMvG7EDGj5ZsABFWLAGLxuxBho+WbAARViwCy8bsQsUPlmwAEVYsBcvG7EXEj5ZsgUDFxESObALELERAbAKK1gh2Bv0WbIVAxcREjmwFxCxHgGwCitYIdgb9FmwAxCxIwGwCitYIdgb9FkwMRM0EjMyFzczERQGIyImJzcWMzI2NTUGIyICNRcUFjMyNxEmIyIGYOjDynAQnfXhUq9BN3qPlYlvwL7rupWIr1JVqomWAiX6AS+Tf/wF6v8tKYpJp546gAEy+gi106AB7pvQAP//AFcAAAKGBbcABgAVrQAAAwBn//AEkQSdAB0AJgAyAJqyLDM0ERI5sCwQsA7QsCwQsB/QALAARViwDS8bsQ0cPlmwAEVYsAAvG7EAEj5ZsABFWLAaLxuxGhI+WbIqDRoREjmyIQ0aERI5sgcqIRESObITISoREjmwABCxHgGwCitYIdgb9FmyFB4NERI5shYNABESObIcAA0REjmyGRQcERI5siAeFBESObANELEwAbAKK1gh2Bv0WTAxBSImNTQ2NzcnJjU0NjMyFhUUBwcBNjUzFAcXIycGJzI3AQcGFRQWAxQXFzc2NTQmIyIGAeir1k5oS0tdrZCGsZtJAQxFqH/H0l6X0ZFq/ttkTGsVPzZCU0hCOEgQpYFWhks2T2hsc5SWcJBvNP7jdJ3gptJhcZlLATNJO1RJXQMAOkY5MDxNNEVGAAEAAAAAA4sEjQANAGGyAA4PERI5ALAARViwCi8bsQocPlmwAEVYsAQvG7EEEj5Zsg0EChESObANL7EAArAKK1gh2Bv0WbAB0LAEELECAbAKK1gh2Bv0WbABELAG0LAH0LANELAM0LAJ0LAI0DAxAQURIRUhEQc1NxEzESUCTf72Akj8/4qKuQEKApFV/luXAgIsfSwCDv4sVQACAAkAAAXxBI0ADwASAIiyBRMUERI5sAUQsBHQALAARViwCi8bsQocPlmwAEVYsAQvG7EEEj5ZsABFWLAILxuxCBI+WbIPCgQREjmwDy+xAAGwCitYIdgb9FmwBBCxAgGwCitYIdgb9FmyEQoEERI5sBEvsQYBsAorWCHYG/RZsAoQsQwBsAorWCHYG/RZshIKBBESOTAxASETIRUhAyEDIwEhFSETIQUhAwWI/jUOAib9Jgv+ZqPGApYDKf3kDAHQ/DsBRBMCFf6AlQEt/tMEjZb+tOcCMgACAIoAAAO3BI0ADAAVAFmyFRYXERI5sBUQsAnQALAARViwAC8bsQAcPlmwAEVYsAsvG7ELEj5ZsgIACxESObACL7IPAAsREjmwDy+xCQGwCitYIdgb9FmwAhCxDQGwCitYIdgb9FkwMRMzFTMWFhUUBiMjFSMTETMyNjU0JieKucXE6+rWtLm5toCEiHcEjcsExaapvuwDKv5abGJgdwEAAwBg/8cEWgS2ABUAHgAnAGqyBigpERI5sAYQsBvQsAYQsCTQALAARViwES8bsREcPlmwAEVYsAYvG7EGEj5ZshgRBhESObIZEQYREjmwERCxGwGwCitYIdgb9FmyIREGERI5siIGERESObAGELEkAbAKK1gh2Bv0WTAxARYRFRAAIyInByM3JhE1EAAzMhc3MwEUFwEmIyIGFSU0JwEWMzI2NQPWhP7s6Jp0S5V/jwEX5aF7RZX8xT0ByU9ylq8CjDT+O0pqnKkD/Jn+/z7++/7RR3C+mgEJPwECATROZ/1un2kCqjvWxQOXYv1cNNPHAAACADAAAASzBI0AEwAXAI2yAxgZERI5sAMQsBTQALAARViwDC8bsQwcPlmwAEVYsBAvG7EQHD5ZsABFWLACLxuxAhI+WbAARViwBi8bsQYSPlmyEwwCERI5sBMvsg8TAV2xAAGwCitYIdgb9FmyFQwCERI5sBUvsQQBsAorWCHYG/RZsAAQsAjQsBMQsArQsBMQsA7QsAAQsBbQMDEBIxEjESERIxEjNTM1MxUhNTMVMwEhNSEEs1u5/aS5Wlq5Aly5W/yQAlz9pANP/LEB8v4OA0+Xp6enp/6kxQAAAQCK/ksEWASNABMAW7ICFBUREjkAsABFWLAMLxuxDBw+WbAARViwDy8bsQ8cPlmwAEVYsAAvG7EAFD5ZsABFWLAKLxuxChI+WbAAELEFAbAKK1gh2Bv0WbIJDAoREjmyDgoMERI5MDEBIic3FjMyNTUBESMRMwERMxEUBgMXPDQNI0CI/aS5uQJduKr+SxKdDcNRA2v8lASN/JMDbfsaqbP//wAlAh8CDQK2AgYAEQAAAAIABwAABOQFsAAPAB0AaQCwAEVYsAUvG7EFHj5ZsABFWLAALxuxABI+WbIEAAUREjmwBC+yzwQBXbIvBAFdsp8EAXGxAQGwCitYIdgb9FmwEdCwABCxEgGwCitYIdgb9FmwBRCxGwGwCitYIdgb9FmwBBCwHNAwMTMRIzUzESEyBBIXFRQCBAcTIxEzMhI3NTQCJyMRM8fAwAGbvgEknwGf/tnEKfzJ3vcB6dbg/AKalwJ/qP7KyV3O/sqmAgKa/gMBEvld+AETAv4fAAIABwAABOQFsAAPAB0AaQCwAEVYsAUvG7EFHj5ZsABFWLAALxuxABI+WbIEAAUREjmwBC+yzwQBXbIvBAFdsp8EAXGxAQGwCitYIdgb9FmwEdCwABCxEgGwCitYIdgb9FmwBRCxGwGwCitYIdgb9FmwBBCwHNAwMTMRIzUzESEyBBIXFRQCBAcTIxEzMhI3NTQCJyMRM8fAwAGbvgEknwGf/tnEKfzJ3vcB6dbg/AKalwJ/qP7KyV3O/sqmAgKa/gMBEvld+AETAv4fAAH/4gAAA/0GAAAZAGwAsBcvsABFWLAELxuxBBo+WbAARViwEC8bsRASPlmwAEVYsAgvG7EIEj5Zsi8XAV2yDxcBXbIVEBcREjmwFS+xEgGwCitYIdgb9FmwAdCyAhAEERI5sAQQsQwBsAorWCHYG/RZsBUQsBjQMDEBIxE2MyATESMRJiYjIgYHESMRIzUzNTMVMwJe+3vFAVcDuQFpb1qIJrnIyLn7BNL+5Zf+ff01Asx1cGBO/P0E0peXlwABADEAAASXBbAADwBOALAARViwCi8bsQoePlmwAEVYsAIvG7ECEj5Zsg8KAhESObAPL7EAAbAKK1gh2Bv0WbAE0LAPELAG0LAKELEIAbAKK1gh2Bv0WbAM0DAxASMRIxEjNTMRITUhFSERMwOq57/W1v4tBGb+LOcDN/zJAzeXAUSenv68AAH/9P/sAnAFQAAdAHYAsABFWLABLxuxARo+WbAARViwES8bsRESPlmwARCwANCwAC+wARCxBAGwCitYIdgb9FmwARCwBdCwBS+yAAUBXbEIAbAKK1gh2Bv0WbARELEMAbAKK1gh2Bv0WbAIELAV0LAFELAY0LAEELAZ0LABELAc0DAxAREzFSMVMxUjERQWMzI3FQYjIiY1ESM1MzUjNTMRAYfKyunpNkEgOElFfH7a2sXFBUD++o+6l/6yQUEMlhSWigFOl7qPAQYA//8AHAAABR0HNgImACUAAAEHAEQBMAE2ABQAsABFWLAELxuxBB4+WbEMCPQwMf//ABwAAAUdBzYCJgAlAAABBwB1Ab8BNgAUALAARViwBS8bsQUePlmxDQj0MDH//wAcAAAFHQc2AiYAJQAAAQcAngDJATYAFACwAEVYsAQvG7EEHj5ZsQ8G9DAx//8AHAAABR0HIgImACUAAAEHAKUAxQE6ABQAsABFWLAFLxuxBR4+WbEOBPQwMf//ABwAAAUdBvsCJgAlAAABBwBqAPkBNgAXALAARViwBC8bsQQePlmxEQT0sBvQMDEA//8AHAAABR0HkQImACUAAAEHAKMBUAFBABcAsABFWLAELxuxBB4+WbEOBvSwGNAwMQD//wAcAAAFHQeUAiYAJQAAAAcCJwFaASL//wB3/kQE2AXEAiYAJwAAAAcAeQHS//f//wCpAAAERgdCAiYAKQAAAQcARAD7AUIAFACwAEVYsAYvG7EGHj5ZsQ0I9DAx//8AqQAABEYHQgImACkAAAEHAHUBigFCABQAsABFWLAGLxuxBh4+WbEOCPQwMf//AKkAAARGB0ICJgApAAABBwCeAJQBQgAUALAARViwBi8bsQYePlmxEAb0MDH//wCpAAAERgcHAiYAKQAAAQcAagDEAUIAFwCwAEVYsAYvG7EGHj5ZsRIE9LAb0DAxAP///+AAAAGBB0ICJgAtAAABBwBE/6cBQgAUALAARViwAi8bsQIePlmxBQj0MDH//wCwAAACUQdCAiYALQAAAQcAdQA1AUIAFACwAEVYsAMvG7EDHj5ZsQYI9DAx////6QAAAkYHQgImAC0AAAEHAJ7/QAFCABQAsABFWLACLxuxAh4+WbEIBvQwMf///9UAAAJeBwcCJgAtAAABBwBq/3ABQgAXALAARViwAi8bsQIePlmxCgT0sBTQMDEA//8AqQAABQgHIgImADIAAAEHAKUA+wE6ABQAsABFWLAGLxuxBh4+WbENBPQwMf//AHb/7AUJBzgCJgAzAAABBwBEAVIBOAAUALAARViwDS8bsQ0ePlmxIQj0MDH//wB2/+wFCQc4AiYAMwAAAQcAdQHhATgAFACwAEVYsA0vG7ENHj5ZsSII9DAx//8Adv/sBQkHOAImADMAAAEHAJ4A6wE4ABQAsABFWLANLxuxDR4+WbEiBvQwMf//AHb/7AUJByQCJgAzAAABBwClAOcBPAAUALAARViwDS8bsQ0ePlmxIwT0MDH//wB2/+wFCQb9AiYAMwAAAQcAagEbATgAFwCwAEVYsA0vG7ENHj5ZsScE9LAw0DAxAP//AIz/7ASqBzYCJgA5AAABBwBEASsBNgAUALAARViwCi8bsQoePlmxFAj0MDH//wCM/+wEqgc2AiYAOQAAAQcAdQG6ATYAFACwAEVYsBIvG7ESHj5ZsRUI9DAx//8AjP/sBKoHNgImADkAAAEHAJ4AxAE2ABQAsABFWLAKLxuxCh4+WbEXBvQwMf//AIz/7ASqBvsCJgA5AAABBwBqAPQBNgAXALAARViwCi8bsQoePlmxGQT0sCPQMDEA//8ADwAABLsHNgImAD0AAAEHAHUBiAE2ABQAsABFWLABLxuxAR4+WbELCPQwMf//AG3/7APqBgACJgBFAAABBwBEANUAAAAUALAARViwFy8bsRcaPlmxKgn0MDH//wBt/+wD6gYAAiYARQAAAQcAdQFkAAAAFACwAEVYsBcvG7EXGj5ZsSsJ9DAx//8Abf/sA+oGAAImAEUAAAEGAJ5uAAAUALAARViwFy8bsRcaPlmxKwH0MDH//wBt/+wD6gXsAiYARQAAAQYApWoEABQAsABFWLAXLxuxFxo+WbEsAfQwMf//AG3/7APqBcUCJgBFAAABBwBqAJ4AAAAXALAARViwFy8bsRcaPlmxMAH0sDnQMDEA//8Abf/sA+oGWwImAEUAAAEHAKMA9QALABcAsABFWLAXLxuxFxo+WbEsBPSwNtAwMQD//wBt/+wD6gZfAiYARQAAAAcCJwD//+3//wBc/kQD7AROAiYARwAAAAcAeQE///f//wBd/+wD8wYAAiYASQAAAQcARADFAAAAFACwAEVYsAgvG7EIGj5ZsR8J9DAx//8AXf/sA/MGAAImAEkAAAEHAHUBVAAAABQAsABFWLAILxuxCBo+WbEgCfQwMf//AF3/7APzBgACJgBJAAABBgCeXgAAFACwAEVYsAgvG7EIGj5ZsSAB9DAx//8AXf/sA/MFxQImAEkAAAEHAGoAjgAAABcAsABFWLAILxuxCBo+WbElAfSwLtAwMQD////GAAABZwX/AiYAjQAAAQYARI3/ABQAsABFWLACLxuxAho+WbEFCfQwMf//AJYAAAI3Bf8CJgCNAAABBgB1G/8AFACwAEVYsAMvG7EDGj5ZsQYJ9DAx////zwAAAiwF/wImAI0AAAEHAJ7/Jv//ABQAsABFWLACLxuxAho+WbEIAfQwMf///7sAAAJEBcQCJgCNAAABBwBq/1b//wAXALAARViwAi8bsQIaPlmxCwH0sBTQMDEA//8AjAAAA98F7AImAFIAAAEGAKVhBAAUALAARViwAy8bsQMaPlmxFQH0MDH//wBb/+wENAYAAiYAUwAAAQcARADPAAAAFACwAEVYsAQvG7EEGj5ZsR0J9DAx//8AW//sBDQGAAImAFMAAAEHAHUBXgAAABQAsABFWLAELxuxBBo+WbEeCfQwMf//AFv/7AQ0BgACJgBTAAABBgCeaAAAFACwAEVYsAQvG7EEGj5ZsR4B9DAx//8AW//sBDQF7AImAFMAAAEGAKVkBAAUALAARViwBC8bsQQaPlmxHwH0MDH//wBb/+wENAXFAiYAUwAAAQcAagCYAAAAFwCwAEVYsAQvG7EEGj5ZsSMB9LAs0DAxAP//AIj/7APcBgACJgBZAAABBwBEAMcAAAAUALAARViwBy8bsQcaPlmxEgn0MDH//wCI/+wD3AYAAiYAWQAAAQcAdQFWAAAAFACwAEVYsA0vG7ENGj5ZsRMJ9DAx//8AiP/sA9wGAAImAFkAAAEGAJ5gAAAUALAARViwBy8bsQcaPlmxFQH0MDH//wCI/+wD3AXFAiYAWQAAAQcAagCQAAAAFwCwAEVYsAcvG7EHGj5ZsRgB9LAh0DAxAP//ABb+SwOwBgACJgBdAAABBwB1ARsAAAAUALAARViwAS8bsQEaPlmxEgn0MDH//wAW/ksDsAXFAiYAXQAAAQYAalUAABcAsABFWLAPLxuxDxo+WbEXAfSwINAwMQD//wAcAAAFHQbjAiYAJQAAAQcAcADHAT4AEwCwAEVYsAQvG7EEHj5ZsAzcMDEA//8Abf/sA+oFrQImAEUAAAEGAHBsCAATALAARViwFy8bsRcaPlmwKtwwMQD//wAcAAAFHQcOAiYAJQAAAQcAoQD0ATcAEwCwAEVYsAQvG7EEHj5ZsA3cMDEA//8Abf/sA+oF2AImAEUAAAEHAKEAmQABABMAsABFWLAXLxuxFxo+WbAr3DAxAAACABz+TwUdBbAAFgAZAGkAsABFWLAWLxuxFh4+WbAARViwFC8bsRQSPlmwAEVYsAEvG7EBEj5ZsABFWLAMLxuxDBQ+WbEHA7AKK1gh2Bv0WbABELAR0LARL7IXFBYREjmwFy+xEwGwCitYIdgb9FmyGRYUERI5MDEBASMHBhUUMzI3FwYjIiY1NDcDIQMjAQMhAwLwAi0mOnFOMDQNRlpZZ6mH/Z6JxgIsowHv+AWw+lAtW1ZIGnksaFaQbAFz/oQFsPxqAqkAAAIAbf5PA+oETgAtADcAlACwAEVYsBcvG7EXGj5ZsABFWLAELxuxBBI+WbAARViwHi8bsR4SPlmwAEVYsCkvG7EpFD5ZsB4QsADQsAAvsgIEFxESObILFwQREjmwCy+wFxCxDwGwCitYIdgb9FmyEgsXERI5sCkQsSQDsAorWCHYG/RZsAQQsS4BsAorWCHYG/RZsAsQsTMBsAorWCHYG/RZMDElJicGIyImNTQkMzM1NCYjIgYVIzQ2NjMyFhcRFBcVIwcGFRQzMjcXBiMiJjU0JzI2NzUjIBUUFgMkDweBs6DNAQHptHRxY4a6c8V2u9QEJiE6cU4wNA1GWllniFecI5H+rHQHJkWGtYupu1Vhc2RHUZdYu6T+DpVYEC1bVkgaeSxoVpDwWkjex1diAP//AHf/7ATYB1cCJgAnAAABBwB1AcYBVwAUALAARViwCy8bsQsePlmxHwj0MDH//wBc/+wD7AYAAiYARwAAAQcAdQEzAAAAFACwAEVYsBAvG7EQGj5ZsSAJ9DAx//8Ad//sBNgHVwImACcAAAEHAJ4A0AFXABQAsABFWLALLxuxCx4+WbEfBvQwMf//AFz/7APsBgACJgBHAAABBgCePQAAFACwAEVYsBAvG7EQGj5ZsSAB9DAx//8Ad//sBNgHGQImACcAAAEHAKIBrQFXABQAsABFWLALLxuxCx4+WbEjBPQwMf//AFz/7APsBcICJgBHAAABBwCiARoAAAAUALAARViwEC8bsRAaPlmxJAH0MDH//wB3/+wE2AdXAiYAJwAAAQcAnwDlAVgAFACwAEVYsAsvG7ELHj5ZsSEG9DAx//8AXP/sA+wGAAImAEcAAAEGAJ9SAQAUALAARViwEC8bsRAaPlmxIgH0MDH//wCpAAAExgdCAiYAKAAAAQcAnwCeAUMAFACwAEVYsAEvG7EBHj5ZsRsG9DAx//8AX//sBSsGAgAmAEgAAAEHAboD1AUTAEgAsvAfAXKyHx8BXbKfHwFdsh8fAXG0zx/fHwJxst8fAXKyXx8BcrJPHwFxss8fAV20Tx9fHwJdsmAfAV2y4B8BcbLgHwFdMDH//wCpAAAERgbvAiYAKQAAAQcAcACSAUoAEwCwAEVYsAYvG7EGHj5ZsA3cMDEA//8AXf/sA/MFrQImAEkAAAEGAHBcCAATALAARViwCC8bsQgaPlmwH9wwMQD//wCpAAAERgcaAiYAKQAAAQcAoQC/AUMAEwCwAEVYsAYvG7EGHj5ZsA/cMDEA//8AXf/sA/MF2AImAEkAAAEHAKEAiQABABMAsABFWLAILxuxCBo+WbAh3DAxAP//AKkAAARGBwQCJgApAAABBwCiAXEBQgAUALAARViwBi8bsQYePlmxEwT0MDH//wBd/+wD8wXCAiYASQAAAQcAogE7AAAAFACwAEVYsAgvG7EIGj5ZsSUB9DAxAAEAqf5PBEYFsAAbAHoAsABFWLAWLxuxFh4+WbAARViwFS8bsRUSPlmwAEVYsA8vG7EPFD5ZsABFWLAELxuxBBI+WbIaFRYREjmwGi+xAQGwCitYIdgb9FmwFRCxAgGwCitYIdgb9FmwDxCxCgOwCitYIdgb9FmwFhCxGQGwCitYIdgb9FkwMQEhESEVIwcGFRQzMjcXBiMiJjU0NyERIRUhESED4P2JAt1JOnFOMDQNRlpZZ5v9XQOT/S0CdwKh/fydLVtWSBp5LGhWimkFsJ7+LAAAAgBd/mgD8wROACUALQB+ALAARViwGi8bsRoaPlmwAEVYsA0vG7ENFD5ZsABFWLASLxuxEhI+WbAE0LANELEIA7AKK1gh2Bv0WbIqEhoREjmwKi+0vyrPKgJdsR4BsAorWCHYG/RZsBIQsSIBsAorWCHYG/RZsiUSGhESObAaELEmAbAKK1gh2Bv0WTAxJQYHMwcGFRQzMjcXBiMiJjU0NyYANTU0NjYzMhIRFSEWFjMyNjcBIgYHITUmJgPlR3MBOnFOMDQNRlpZZ2La/vV73YHT6v0jBLOKYogz/sJwmBICHgiIvW42LVtWSBp5LGhWbFoEASHvIaH9j/7q/v1NoMVQQgKho5MOjZsA//8AqQAABEYHQgImACkAAAEHAJ8AqQFDABQAsABFWLAGLxuxBh4+WbERBvQwMf//AF3/7APzBgACJgBJAAABBgCfcwEAFACwAEVYsAgvG7EIGj5ZsSIB9DAx//8Aev/sBNwHVwImACsAAAEHAJ4AyAFXABQAsABFWLALLxuxCx4+WbEiBvQwMf//AGD+VgPyBgACJgBLAAABBgCeVQAAFACwAEVYsAMvG7EDGj5ZsScB9DAx//8Aev/sBNwHLwImACsAAAEHAKEA8wFYABMAsABFWLALLxuxCx4+WbAi3DAxAP//AGD+VgPyBdgCJgBLAAABBwChAIAAAQATALAARViwAy8bsQMaPlmwJ9wwMQD//wB6/+wE3AcZAiYAKwAAAQcAogGlAVcAFACwAEVYsAsvG7ELHj5ZsScE9DAx//8AYP5WA/IFwgImAEsAAAEHAKIBMgAAABQAsABFWLADLxuxAxo+WbEsAfQwMf//AHr99gTcBcQCJgArAAAABwG6Adr+l///AGD+VgPyBpMCJgBLAAABBwI0ASsAWAATALAARViwAy8bsQMaPlmwKtwwMQD//wCpAAAFCAdCAiYALAAAAQcAngDxAUIAFACwAEVYsAcvG7EHHj5ZsRAG9DAx//8AjAAAA98HQQImAEwAAAEHAJ4AHQFBAAkAsBEvsBTcMDEA////twAAAnoHLgImAC0AAAEHAKX/PAFGABQAsABFWLADLxuxAx4+WbEHBPQwMf///50AAAJgBeoCJgCNAAABBwCl/yIAAgAUALAARViwAy8bsQMaPlmxBwH0MDH////MAAACbAbvAiYALQAAAQcAcP8+AUoAEwCwAEVYsAIvG7ECHj5ZsAXcMDEA////sgAAAlIFqwImAI0AAAEHAHD/JAAGABMAsABFWLACLxuxAho+WbAF3DAxAP///+wAAAJDBxoCJgAtAAABBwCh/2sBQwATALAARViwAi8bsQIePlmwB9wwMQD////SAAACKQXXAiYAjQAAAQcAof9RAAAAEwCwAEVYsAIvG7ECGj5ZsAfcMDEA//8AGP5YAXgFsAImAC0AAAAGAKTmCf////v+TwFoBcQCJgBNAAAABgCkyQD//wCpAAABhAcEAiYALQAAAQcAogAcAUIAFACwAEVYsAIvG7ECHj5ZsQsE9DAx//8At//sBfkFsAAmAC0AAAAHAC4CLQAA//8Ajf5LA0oFxAAmAE0AAAAHAE4B8QAA//8ANf/sBIIHNQImAC4AAAEHAJ4BfAE1ABQAsABFWLAALxuxAB4+WbEUBvQwMf///7T+SwI5BdgCJgCcAAABBwCe/zP/2AAUALAARViwDS8bsQ0aPlmxEgT0MDH//wCp/lgFBQWwAiYALwAAAAcBugGU/vn//wCN/kUEDAYAAiYATwAAAAcBugER/ub//wChAAAEHAcxAiYAMAAAAQcAdQAmATEAFACwAEVYsAUvG7EFHj5ZsQgI9DAx//8AkwAAAjQHlgImAFAAAAEHAHUAGAGWABQAsABFWLADLxuxAyA+WbEGCfQwMf//AKn+CQQcBbACJgAwAAAABwG6AWz+qv//AFf+CQFVBgACJgBQAAAABwG6//v+qv//AKkAAAQcBbECJgAwAAABBwG6AdUEwgAQALAARViwCi8bsQoePlkwMf//AJwAAAKtBgIAJgBQAAABBwG6AVYFEwBQALIfCAFdsp8IAV20HwgvCAJxsq8IAXG0Lwg/CAJyst8IAXK2XwhvCH8IA3K0zwjfCAJxsk8IAXGyzwgBXbRPCF8IAl2yYAgBXbLwCAFyMDH//wCpAAAEHAWwAiYAMAAAAAcAogG8/cX//wCcAAACoAYAACYAUAAAAAcAogE4/bb//wCpAAAFCAc2AiYAMgAAAQcAdQH1ATYAFACwAEVYsAgvG7EIHj5ZsQwI9DAx//8AjAAAA98GAAImAFIAAAEHAHUBWwAAABQAsABFWLADLxuxAxo+WbEUCfQwMf//AKn+CQUIBbACJgAyAAAABwG6AdD+qv//AIz+CQPfBE4CJgBSAAAABwG6ATP+qv//AKkAAAUIBzYCJgAyAAABBwCfARQBNwAUALAARViwBi8bsQYePlmxDwb0MDH//wCMAAAD3wYAAiYAUgAAAQYAn3oBABQAsABFWLADLxuxAxo+WbEWAfQwMf///7wAAAPfBgQCJgBSAAABBwG6/2AFFQAQALAXL7JPFwFdsp8XAV0wMf//AHb/7AUJBuUCJgAzAAABBwBwAOkBQAATALAARViwDS8bsQ0ePlmwIdwwMQD//wBb/+wENAWtAiYAUwAAAQYAcGYIABMAsABFWLAELxuxBBo+WbAd3DAxAP//AHb/7AUJBxACJgAzAAABBwChARYBOQATALAARViwDS8bsQ0ePlmwItwwMQD//wBb/+wENAXYAiYAUwAAAQcAoQCTAAEAEwCwAEVYsAQvG7EEGj5ZsB/cMDEA//8Adv/sBQkHNwImADMAAAEHAKYBawE4ABcAsABFWLANLxuxDR4+WbEmCPSwItAwMQD//wBb/+wENAX/AiYAUwAAAQcApgDoAAAAFwCwAEVYsAQvG7EEGj5ZsSIJ9LAe0DAxAP//AKgAAATJBzYCJgA2AAABBwB1AYABNgAUALAARViwBC8bsQQePlmxGgj0MDH//wCMAAAC0gYAAiYAVgAAAQcAdQC2AAAAFACwAEVYsAsvG7ELGj5ZsRAJ9DAx//8AqP4JBMkFsAImADYAAAAHAboBY/6q//8AU/4JApcETgImAFYAAAAHAbr/9/6q//8AqAAABMkHNgImADYAAAEHAJ8AnwE3ABQAsABFWLAELxuxBB4+WbEdBvQwMf//AGMAAALNBgACJgBWAAABBgCf1gEAFACwAEVYsAsvG7ELGj5ZsRIB9DAx//8AUP/sBHIHOAImADcAAAEHAHUBjQE4ABQAsABFWLAGLxuxBh4+WbEpCPQwMf//AF//7AO7BgACJgBXAAABBwB1AVEAAAAUALAARViwCS8bsQkaPlmxKQn0MDH//wBQ/+wEcgc4AiYANwAAAQcAngCXATgAFACwAEVYsAYvG7EGHj5ZsSkG9DAx//8AX//sA7sGAAImAFcAAAEGAJ5bAAAUALAARViwCS8bsQkaPlmxKQH0MDH//wBQ/k0EcgXEAiYANwAAAAcAeQGfAAD//wBf/kUDuwROAiYAVwAAAAcAeQFd//j//wBQ/f8EcgXEAiYANwAAAAcBugF1/qD//wBf/fYDuwROAiYAVwAAAAcBugEz/pf//wBQ/+wEcgc4AiYANwAAAQcAnwCsATkAFACwAEVYsAYvG7EGHj5ZsSsG9DAx//8AX//sA7sGAAImAFcAAAEGAJ9wAQAUALAARViwCS8bsQkaPlmxKwH0MDH//wAx/f8ElwWwAiYAOAAAAAcBugFm/qD//wAJ/f8CVgVAAiYAWAAAAAcBugDF/qD//wAx/k0ElwWwAiYAOAAAAAcAeQGQAAD//wAJ/k0CmQVAAiYAWAAAAAcAeQDvAAD//wAxAAAElwc2AiYAOAAAAQcAnwChATcAFACwAEVYsAYvG7EGHj5ZsQ0G9DAx//8ACf/sAuwGeQAmAFgAAAEHAboBlQWKABIAsg8aAV2ynxoBXbJPGgFdMDH//wCM/+wEqgciAiYAOQAAAQcApQDAAToAFACwAEVYsBIvG7ESHj5ZsRYE9DAx//8AiP/sA9wF7AImAFkAAAEGAKVcBAAUALAARViwDS8bsQ0aPlmxFAH0MDH//wCM/+wEqgbjAiYAOQAAAQcAcADCAT4AEwCwAEVYsBIvG7ESHj5ZsBPcMDEA//8AiP/sA9wFrQImAFkAAAEGAHBeCAATALAARViwBy8bsQcaPlmwEtwwMQD//wCM/+wEqgcOAiYAOQAAAQcAoQDvATcAEwCwAEVYsAovG7EKHj5ZsBbcMDEA//8AiP/sA9wF2AImAFkAAAEHAKEAiwABABMAsABFWLAHLxuxBxo+WbAU3DAxAP//AIz/7ASqB5ECJgA5AAABBwCjAUsBQQAXALAARViwCi8bsQoePlmxFgb0sCDQMDEA//8AiP/sA9wGWwImAFkAAAEHAKMA5wALABcAsABFWLAHLxuxBxo+WbEUBPSwHtAwMQD//wCM/+wEqgc1AiYAOQAAAQcApgFEATYAFwCwAEVYsBIvG7ESHj5ZsRUI9LAZ0DAxAP//AIj/7AQMBf8CJgBZAAABBwCmAOAAAAAXALAARViwDS8bsQ0aPlmxEwn0sBfQMDEAAAEAjP57BKoFsAAgAFUAsABFWLAYLxuxGB4+WbAARViwDS8bsQ0UPlmwAEVYsBMvG7ETEj5ZsBgQsCDQsgQTIBESObANELEIA7AKK1gh2Bv0WbATELEcAbAKK1gh2Bv0WTAxAREGBgcGFRQzMjcXBiMiJjU0NwciACcRMxEUFjMyNjURBKoBioObTjA0DUZaWWdPFu/+5AK+rqGjrQWw/CGU4jtyYEgaeSxoVmFTAQEC4gPg/Caer66eA9sAAQCI/k8D5gQ6AB8AbwCwAEVYsBcvG7EXGj5ZsABFWLAdLxuxHRo+WbAARViwHy8bsR8SPlmwAEVYsBIvG7ESEj5ZsABFWLAKLxuxChQ+WbEFA7AKK1gh2Bv0WbAfELAP0LAPL7IQEh0REjmwEhCxGgGwCitYIdgb9FkwMSEHBhUUMzI3FwYjIiY1NDcnBiMiJicRMxEUMzI3ETMRA9I6cU4wNA1GWllnpgRs0a21AbnI1Ea5LVtWSBp5LGhWj2plf8nFAsD9RfaeAxP7xv//AD0AAAbtBzYCJgA7AAABBwCeAcUBNgAUALAARViwAy8bsQMePlmxFwb0MDH//wArAAAF0wYAAiYAWwAAAQcAngEkAAAAFACwAEVYsAwvG7EMGj5ZsQ8B9DAx//8ADwAABLsHNgImAD0AAAEHAJ4AkgE2ABQAsABFWLABLxuxAR4+WbELBvQwMf//ABb+SwOwBgACJgBdAAABBgCeJQAAFACwAEVYsA8vG7EPGj5ZsRQB9DAx//8ADwAABLsG+wImAD0AAAEHAGoAwgE2ABcAsABFWLAILxuxCB4+WbEQBPSwGdAwMQD//wBWAAAEegc2AiYAPgAAAQcAdQGHATYAFACwAEVYsAcvG7EHHj5ZsQwI9DAx//8AWAAAA7MGAAImAF4AAAEHAHUBIQAAABQAsABFWLAHLxuxBxo+WbEMCfQwMf//AFYAAAR6BvgCJgA+AAABBwCiAW4BNgAUALAARViwBy8bsQcePlmxEQT0MDH//wBYAAADswXCAiYAXgAAAQcAogEIAAAAFACwAEVYsAcvG7EHGj5ZsREB9DAx//8AVgAABHoHNgImAD4AAAEHAJ8ApgE3ABQAsABFWLAHLxuxBx4+WbEPBvQwMf//AFgAAAOzBgACJgBeAAABBgCfQAEAFACwAEVYsAcvG7EHGj5ZsQ8B9DAx////8gAAB1cHQgImAIEAAAEHAHUCyQFCABQAsABFWLAGLxuxBh4+WbEVCPQwMf//AE7/7AZ8BgECJgCGAAABBwB1AnoAAQAUALAARViwHS8bsR0aPlmxQAn0MDH//wB2/6MFHQeAAiYAgwAAAQcAdQHpAYAAFACwAEVYsBAvG7EQHj5ZsSwI9DAx//8AW/96BDQGAAImAIkAAAEHAHUBNwAAABQAsABFWLAELxuxBBo+WbEpCfQwMf///74AAAQfBI0CJgIwAAABBwIm/y//eAAsALIfGAFxtN8Y7xgCcbQfGC8YAl2yHxgBcrJPGAFxtO8Y/xgCXbJfGAFdMDH///++AAAEHwSNAiYCMAAAAQcCJv8v/3gANgC07xf/FwJdsk8XAXGyHxcBcrLfFwFysm8XAXK03xfvFwJxsh8XAXGyXxcBXbQfFy8XAl0wMf//ACgAAAP9BI0CJgHYAAABBgImReAADQCyAwoBXbKwCgFdMDEA//8AEwAABHAGHgImAjMAAAEHAEQA1QAeABQAsABFWLAELxuxBBw+WbEMBvQwMf//ABMAAARwBh4CJgIzAAABBwB1AWQAHgAUALAARViwBS8bsQUcPlmxDQb0MDH//wATAAAEcAYeAiYCMwAAAQYAnm4eABQAsABFWLAELxuxBBw+WbEPBPQwMf//ABMAAARwBgoCJgIzAAABBgClaiIAFACwAEVYsAUvG7EFHD5ZsQ4C9DAx//8AEwAABHAF4wImAjMAAAEHAGoAngAeABcAsABFWLAELxuxBBw+WbESAvSwG9AwMQD//wATAAAEcAZ5AiYCMwAAAQcAowD1ACkAFwCwAEVYsAQvG7EEHD5ZsQ4G9LAY0DAxAP//ABMAAARwBnwCJgIzAAAABwInAP8ACv//AGD+SgQwBJ0CJgIxAAAABwB5AXT//f//AIoAAAOuBh4CJgIoAAABBwBEAKgAHgAUALAARViwBi8bsQYcPlmxDQb0MDH//wCKAAADrgYeAiYCKAAAAQcAdQE3AB4AFACwAEVYsAcvG7EHHD5ZsQ4G9DAx//8AigAAA64GHgImAigAAAEGAJ5BHgAUALAARViwBi8bsQYcPlmxEAT0MDH//wCKAAADrgXjAiYCKAAAAQYAanEeABcAsABFWLAGLxuxBhw+WbETAvSwHNAwMQD///++AAABXwYeAiYB4wAAAQYARIUeABQAsABFWLACLxuxAhw+WbEFBvQwMf//AI4AAAIvBh4CJgHjAAABBgB1Ex4AFACwAEVYsAMvG7EDHD5ZsQYG9DAx////xwAAAiQGHgImAeMAAAEHAJ7/HgAeABQAsABFWLACLxuxAhw+WbEIBPQwMf///7MAAAI8BeMCJgHjAAABBwBq/04AHgAXALAARViwAi8bsQIcPlmxCwL0sBTQMDEA//8AigAABFgGCgImAd4AAAEHAKUAlQAiABQAsABFWLAGLxuxBhw+WbENAvQwMf//AGD/8ARaBh4CJgHdAAABBwBEAO4AHgAUALAARViwCi8bsQocPlmxHQb0MDH//wBg//AEWgYeAiYB3QAAAQcAdQF9AB4AFACwAEVYsAovG7EKHD5ZsR4G9DAx//8AYP/wBFoGHgImAd0AAAEHAJ4AhwAeABQAsABFWLAKLxuxChw+WbEgBPQwMf//AGD/8ARaBgoCJgHdAAABBwClAIMAIgAUALAARViwCi8bsQocPlmxHwL0MDH//wBg//AEWgXjAiYB3QAAAQcAagC3AB4AFwCwAEVYsAovG7EKHD5ZsSMC9LAs0DAxAP//AHT/8AQKBh4CJgHXAAABBwBEAM8AHgAUALAARViwCS8bsQkcPlmxEwb0MDH//wB0//AECgYeAiYB1wAAAQcAdQFeAB4AFACwAEVYsBEvG7ERHD5ZsRQG9DAx//8AdP/wBAoGHgImAdcAAAEGAJ5oHgAUALAARViwCS8bsQkcPlmxFgT0MDH//wB0//AECgXjAiYB1wAAAQcAagCYAB4AFwCwAEVYsAkvG7EJHD5ZsRkC9LAi0DAxAP//AA0AAAQcBh4CJgHTAAABBwB1ATMAHgAUALAARViwAS8bsQEcPlmxCwb0MDH//wATAAAEcAXLAiYCMwAAAQYAcGwmABMAsABFWLAELxuxBBw+WbAM3DAxAP//ABMAAARwBfYCJgIzAAABBwChAJkAHwAUALAARViwBC8bsQQcPlmxDgj0MDEAAgAT/k8EcASNABYAGQBpALAARViwAC8bsQAcPlmwAEVYsBQvG7EUEj5ZsABFWLABLxuxARI+WbAARViwDC8bsQwUPlmxBwOwCitYIdgb9FmwARCwEdCwES+yFxQAERI5sBcvsRMBsAorWCHYG/RZshkAFBESOTAxAQEjBwYVFDMyNxcGIyImNTQ3AyEDIwEDIQMCmAHYJjpxTjA0DUZaWWewaP34br0B33gBkccEjftzLVtWSBp5LGhWlGwBCv7pBI39IQH9AP//AGD/8AQwBh4CJgIxAAABBwB1AWkAHgAUALAARViwCy8bsQscPlmxHwb0MDH//wBg//AEMAYeAiYCMQAAAQYAnnMeABQAsABFWLALLxuxCxw+WbEhBPQwMf//AGD/8AQwBeACJgIxAAABBwCiAVAAHgAUALAARViwCy8bsQscPlmxIwL0MDH//wBg//AEMAYeAiYCMQAAAQcAnwCIAB8AFACwAEVYsAsvG7ELHD5ZsSEG9DAx//8AigAABB8GHgImAjAAAAEGAJ8xHwAUALAARViwAS8bsQEcPlmxGgb0MDH//wCKAAADrgXLAiYCKAAAAQYAcD8mABMAsABFWLAGLxuxBhw+WbAN3DAxAP//AIoAAAOuBfYCJgIoAAABBgChbB8AFACwAEVYsAYvG7EGHD5ZsQ8I9DAx//8AigAAA64F4AImAigAAAEHAKIBHgAeABQAsABFWLAGLxuxBhw+WbETAvQwMQABAIr+TwOuBI0AGwB8ALAARViwFi8bsRYcPlmwAEVYsBQvG7EUEj5ZsABFWLAPLxuxDxQ+WbAUELAb0LAbL7IfGwFdst8bAV2xAAGwCitYIdgb9FmwFBCxAgGwCitYIdgb9FmwFBCwBdCwDxCxCgOwCitYIdgb9FmwFhCxGQGwCitYIdgb9FkwMQEhESEVIwcGFRQzMjcXBiMiJjU0NyERIRUhESEDV/3sAms9OnFOMDQNRlpZZ5v9ygMe/ZsCFAIO/omXLVtWSBp5LGhWimkEjZn+sgD//wCKAAADrgYeAiYCKAAAAQYAn1YfABQAsABFWLAGLxuxBhw+WbERBvQwMf//AGP/8AQ1Bh4CJgHlAAABBgCecR4AFACwAEVYsAovG7EKHD5ZsSAE9DAx//8AY//wBDUF9gImAeUAAAEHAKEAnAAfABQAsABFWLAKLxuxChw+WbEgCPQwMf//AGP/8AQ1BeACJgHlAAABBwCiAU4AHgAUALAARViwCi8bsQocPlmxJQL0MDH//wBj/fwENQSdAiYB5QAAAAcBugFP/p3//wCKAAAEWAYeAiYB5AAAAQcAngCQAB4AFACwAEVYsAcvG7EHHD5ZsRAE9DAx////lQAAAlgGCgImAeMAAAEHAKX/GgAiABQAsABFWLADLxuxAxw+WbEHAvQwMf///6oAAAJKBcsCJgHjAAABBwBw/xwAJgATALAARViwAi8bsQIcPlmwBdwwMQD////KAAACIQX2AiYB4wAAAQcAof9JAB8AFACwAEVYsAIvG7ECHD5ZsQcI9DAx//8ABv5PAWYEjQImAeMAAAAGAKTUAP//AIgAAAFjBeACJgHjAAABBgCi+x4AFACwAEVYsAIvG7ECHD5ZsQsC9DAx//8AK//wBA0GHgImAeIAAAEHAJ4BBwAeABQAsABFWLAALxuxABw+WbEUBPQwMf//AIr+BQRXBI0CJgHhAAAABwG6ART+pv//AIIAAAOLBh4CJgHgAAABBgB1Bx4AFACwAEVYsAUvG7EFHD5ZsQgG9DAx//8Aiv4HA4sEjQImAeAAAAAHAboBEP6o//8AigAAA4sEjgImAeAAAAEHAboBfgOfABAAsABFWLAKLxuxChw+WTAx//8AigAAA4sEjQImAeAAAAAHAKIBZv03//8AigAABFgGHgImAd4AAAEHAHUBjwAeABQAsABFWLAILxuxCBw+WbEMBvQwMf//AIr+AwRYBI0CJgHeAAAABwG6AWz+pP//AIoAAARYBh4CJgHeAAABBwCfAK4AHwAUALAARViwBi8bsQYcPlmxDwb0MDH//wBg//AEWgXLAiYB3QAAAQcAcACFACYAEwCwAEVYsAovG7EKHD5ZsB3cMDEA//8AYP/wBFoF9gImAd0AAAEHAKEAsgAfABQAsABFWLAKLxuxChw+WbEfCPQwMf//AGD/8ARaBh0CJgHdAAABBwCmAQcAHgAXALAARViwCi8bsQocPlmxHgb0sCLQMDEA//8AigAABCUGHgImAdoAAAEHAHUBJwAeABQAsABFWLAFLxuxBRw+WbEZBvQwMf//AIr+BwQlBI0CJgHaAAAABwG6AQ3+qP//AIoAAAQlBh4CJgHaAAABBgCfRh8AFACwAEVYsAQvG7EEHD5ZsRwG9DAx//8AQ//wA90GHgImAdkAAAEHAHUBPgAeABQAsABFWLAJLxuxCRw+WbEoBvQwMf//AEP/8APdBh4CJgHZAAABBgCeSB4AFACwAEVYsAkvG7EJHD5ZsSoE9DAx//8AQ/5NA90EnQImAdkAAAAHAHkBUwAA//8AQ//wA90GHgImAdkAAAEGAJ9dHwAUALAARViwCS8bsQkcPlmxKgb0MDH//wAo/gED/QSNAiYB2AAAAAcBugEU/qL//wAoAAAD/QYeAiYB2AAAAQYAn1AfABQAsABFWLAGLxuxBhw+WbENBvQwMf//ACj+TwP9BI0CJgHYAAAABwB5AT4AAv//AHT/8AQKBgoCJgHXAAABBgClZCIAFACwAEVYsBEvG7ERHD5ZsRUC9DAx//8AdP/wBAoFywImAdcAAAEGAHBmJgATALAARViwCS8bsQkcPlmwE9wwMQD//wB0//AECgX2AiYB1wAAAQcAoQCTAB8AFACwAEVYsAkvG7EJHD5ZsRUI9DAx//8AdP/wBAoGeQImAdcAAAEHAKMA7wApABcAsABFWLAJLxuxCRw+WbEVBvSwH9AwMQD//wB0//AEFAYdAiYB1wAAAQcApgDoAB4AFwCwAEVYsBEvG7ERHD5ZsRQG9LAY0DAxAAABAHT+dAQKBI0AIABVALAARViwGC8bsRgcPlmwAEVYsA4vG7EOFD5ZsABFWLATLxuxExI+WbAYELAg0LIFEyAREjmwDhCxCQOwCitYIdgb9FmwExCxHAGwCitYIdgb9FkwMQERFAYHBwYVFDMyNxcGIyImNTQ3IiYnETMRFBYzMjY1EQQKeG8ybE4wNA1GWllnWs35BLePhYOPBI3883q6MChbUkgaeSxoVmhWzrgDF/z0eYF/ewMMAP//ADEAAAXxBh4CJgHVAAABBwCeATsAHgAUALAARViwAy8bsQMcPlmxFwT0MDH//wANAAAEHAYeAiYB0wAAAQYAnj0eABQAsABFWLAILxuxCBw+WbENBPQwMf//AA0AAAQcBeMCJgHTAAABBgBqbR4AFwCwAEVYsAgvG7EIHD5ZsRAC9LAZ0DAxAP//AEcAAAPgBh4CJgHSAAABBwB1ATMAHgAUALAARViwCC8bsQgcPlmxDAb0MDH//wBHAAAD4AXgAiYB0gAAAQcAogEaAB4AFACwAEVYsAcvG7EHHD5ZsREC9DAx//8ARwAAA+AGHgImAdIAAAEGAJ9SHwAUALAARViwBy8bsQccPlmxDwb0MDH//wAcAAAFHQY/AiYAJQAAAAYArgQA////KQAABEYGPwImACkAAAAHAK7+cgAA////NwAABQgGQQImACwAAAAHAK7+gAAC////PQAAAXcGQAImAC0AAAAHAK7+hgAB////5v/sBR0GPwAmADMUAAAHAK7/LwAA////FAAABR8GPwAmAD1kAAAHAK7+XQAA////6QAABN8GPwAmALoUAAAHAK7/MgAA////m//0Aq0GdAImAMMAAAEHAK//Kv/sAB0AsABFWLAMLxuxDBo+WbEYAfSwD9CwGBCwIdAwMQD//wAcAAAFHQWwAgYAJQAA//8AqQAABIgFsAIGACYAAP//AKkAAARGBbACBgApAAD//wBWAAAEegWwAgYAPgAA//8AqQAABQgFsAIGACwAAP//ALcAAAF3BbACBgAtAAD//wCpAAAFBQWwAgYALwAA//8AqQAABlIFsAIGADEAAP//AKkAAAUIBbACBgAyAAD//wB2/+wFCQXEAgYAMwAA//8AqQAABMAFsAIGADQAAP//ADEAAASXBbACBgA4AAD//wAPAAAEuwWwAgYAPQAA//8AOQAABM4FsAIGADwAAP///9UAAAJeBwcCJgAtAAABBwBq/3ABQgAXALAARViwAi8bsQIePlmxCwT0sBTQMDEA//8ADwAABLsG+wImAD0AAAEHAGoAwgE2ABcAsABFWLAILxuxCB4+WbEQBPSwGdAwMQD//wBk/+sEdwY6AiYAuwAAAQcArgF1//sAFACwAEVYsBMvG7ETGj5ZsSQB9DAx//8AY//sA+wGOQImAL8AAAEHAK4BK//6ABQAsABFWLAVLxuxFRo+WbEoAfQwMf//AJH+YQPwBjoCJgDBAAABBwCuAUb/+wAUALAARViwAy8bsQMaPlmxFQH0MDH//wDD//QCSwYlAiYAwwAAAQYArirmABQAsABFWLAMLxuxDBo+WbEPAfQwMf//AI//7AP2BnQCJgDLAAABBgCvIewAHQCwAEVYsAAvG7EAGj5ZsR0B9LAV0LAdELAn0DAxAP//AJoAAAQ/BDoCBgCOAAD//wBb/+wENAROAgYAUwAA//8Amv5gA+4EOgIGAHYAAP//ACEAAAO6BDoCBgBaAAAAAQBa/kwEdARJABsAbgCwAEVYsAQvG7EEGj5ZsABFWLAALxuxABo+WbAARViwEy8bsRMUPlmwAEVYsA4vG7EOFD5ZsgMEExESObISEwQREjmyBgMSERI5sQkBsAorWCHYG/RZshUSAxESObAAELEYAbAKK1gh2Bv0WTAxEzIXExMzARMWFzM3BwYjIiYnAwEjAQMmIwcnNsKuWJX/u/6g2j1EGkgvGCVbeD6i/ufEAYOoSWtEAUQEScD+rQIE/S/+DoADBZ4PXoYBcv2/AxABg7cFlA8A////5f/0Am4FsQImAMMAAAEGAGqA7AAXALAARViwDC8bsQwaPlmxFAH0sB3QMDEA//8Aj//sA/YFsQImAMsAAAEGAGp37AAXALAARViwAC8bsQAaPlmxGgH0sCPQMDEA//8AW//sBDQGOgImAFMAAAEHAK4BQ//7ABQAsABFWLAELxuxBBo+WbEeAfQwMf//AI//7AP2BiUCJgDLAAABBwCuASL/5gAUALAARViwAC8bsQAaPlmxFQH0MDH//wB6/+wGGQYiAiYAzgAAAQcArgJT/+MAFACwAEVYsAAvG7EAGj5ZsSYB9DAx//8AqQAABEYHBwImACkAAAEHAGoAxAFCABcAsABFWLAGLxuxBh4+WbETBPSwHNAwMQD//wCxAAAEMAdCAiYAsQAAAQcAdQGQAUIAFACwAEVYsAQvG7EEHj5ZsQgI9DAxAAEAUP/sBHIFxAAmAGSyACcoERI5ALAARViwBi8bsQYePlmwAEVYsBovG7EaEj5ZsAYQsAvQsAYQsQ4BsAorWCHYG/RZsiYaBhESObAmELEUAbAKK1gh2Bv0WbAaELAf0LAaELEiAbAKK1gh2Bv0WTAxASYmNTQkMzIWFhUjNCYjIgYVFBYEFhYVFAQjIiQmNTMUFjMyNjQmAlb34QET3JbrgcGomY6flwFrzWP+7OeW/vyNwcOjmKKWAolHz5is4XTMeYSXfW9Ze2Z7pG+x1XPIf4SZfNZ1//8AtwAAAXcFsAIGAC0AAP///9UAAAJeBwcCJgAtAAABBwBq/3ABQgAXALAARViwAi8bsQIePlmxCwT0sBTQMDEA//8ANf/sA8wFsAIGAC4AAP//ALIAAAUdBbACBgIsAAD//wCpAAAFBQcwAiYALwAAAQcAdQF7ATAAFACwAEVYsAUvG7EFHj5ZsQ4I9DAx//8ATf/rBMsHGgImAN4AAAEHAKEA2gFDABMAsABFWLARLxuxER4+WbAV3DAxAP//ABwAAAUdBbACBgAlAAD//wCpAAAEiAWwAgYAJgAA//8AsQAABDAFsAIGALEAAP//AKkAAARGBbACBgApAAD//wCxAAAE/wcaAiYA3AAAAQcAoQExAUMAEwCwAEVYsAgvG7EIHj5ZsA3cMDEA//8AqQAABlIFsAIGADEAAP//AKkAAAUIBbACBgAsAAD//wB2/+wFCQXEAgYAMwAA//8AsgAABQEFsAIGALYAAP//AKkAAATABbACBgA0AAD//wB3/+wE2AXEAgYAJwAA//8AMQAABJcFsAIGADgAAP//ADkAAATOBbACBgA8AAD//wBt/+wD6gROAgYARQAA//8AXf/sA/METgIGAEkAAP//AJwAAAQBBcQCJgDwAAABBwChAKL/7QATALAARViwCC8bsQgaPlmwDdwwMQD//wBb/+wENAROAgYAUwAA//8AjP5gBB4ETgIGAFQAAAABAFz/7APsBE4AHQBLshAeHxESOQCwAEVYsBAvG7EQGj5ZsABFWLAILxuxCBI+WbEAAbAKK1gh2Bv0WbAIELAD0LAQELAU0LAQELEXAbAKK1gh2Bv0WTAxJTI2NzMOAiMiABE1NDY2MzIWFyMmJiMiBhUVFBYCPmOUCK8FdsVu3f77dNmUtvEIrwiPaY2bmoN4Wl2oZAEnAQAfnvaI2q5ph8vAI7vKAP//ABb+SwOwBDoCBgBdAAD//wApAAADygQ6AgYAXAAA//8AXf/sA/MFxQImAEkAAAEHAGoAjgAAABcAsABFWLAILxuxCBo+WbElAfSwLtAwMQD//wCaAAADRwXsAiYA7AAAAQcAdQDN/+wAFACwAEVYsAQvG7EEGj5ZsQgJ9DAx//8AX//sA7sETgIGAFcAAP//AI0AAAFoBcQCBgBNAAD///+7AAACRAXEAiYAjQAAAQcAav9W//8AFwCwAEVYsAIvG7ECGj5ZsQsB9LAU0DAxAP///7/+SwFZBcQCBgBOAAD//wCcAAAEPwXrAiYA8QAAAQcAdQE7/+sAFACwAEVYsAQvG7EEGj5ZsQ8J9DAx//8AFv5LA7AF2AImAF0AAAEGAKFQAQATALAARViwDy8bsQ8aPlmwE9wwMQD//wA9AAAG7Qc2AiYAOwAAAQcARAIsATYAFACwAEVYsAMvG7EDHj5ZsRQI9DAx//8AKwAABdMGAAImAFsAAAEHAEQBiwAAABQAsABFWLALLxuxCxo+WbEOCfQwMf//AD0AAAbtBzYCJgA7AAABBwB1ArsBNgAUALAARViwBC8bsQQePlmxFQj0MDH//wArAAAF0wYAAiYAWwAAAQcAdQIaAAAAFACwAEVYsAwvG7EMGj5ZsQ8J9DAx//8APQAABu0G+wImADsAAAEHAGoB9QE2ABcAsABFWLADLxuxAx4+WbEaBPSwI9AwMQD//wArAAAF0wXFAiYAWwAAAQcAagFUAAAAFwCwAEVYsAsvG7ELGj5ZsRQB9LAd0DAxAP//AA8AAAS7BzYCJgA9AAABBwBEAPkBNgAUALAARViwCC8bsQgePlmxCgj0MDH//wAW/ksDsAYAAiYAXQAAAQcARACMAAAAFACwAEVYsA8vG7EPGj5ZsREJ9DAx//8AZwQhAP0GAAIGAAsAAP//AIgEEgIjBgACBgAGAAD//wCg//UDigWwACYABQAAAAcABQIPAAD///+0/ksCPwXYAiYAnAAAAQcAn/9I/9kAFACwAEVYsA0vG7ENGj5ZsRMB9DAx//8AMAQWAUcGAAIGAYUAAP//AKkAAAZSBzYCJgAxAAABBwB1ApkBNgAUALAARViwAi8bsQIePlmxEQj0MDH//wCLAAAGeAYAAiYAUQAAAQcAdQKtAAAAFACwAEVYsAMvG7EDGj5ZsSAJ9DAx//8AHP5rBR0FsAImACUAAAAHAKcBfwAA//8Abf5rA+oETgImAEUAAAAHAKcAxwAA//8AqQAABEYHQgImACkAAAEHAEQA+wFCABQAsABFWLAGLxuxBh4+WbENCPQwMf//ALEAAAT/B0ICJgDcAAABBwBEAW0BQgAUALAARViwCC8bsQgePlmxCwj0MDH//wBd/+wD8wYAAiYASQAAAQcARADFAAAAFACwAEVYsAgvG7EIGj5ZsR8J9DAx//8AnAAABAEF7AImAPAAAAEHAEQA3v/sABQAsABFWLAILxuxCBo+WbELCfQwMf//AFoAAAUhBbACBgC5AAD//wBf/igFQwQ6AgYAzQAA//8AFgAABN0G6AImARkAAAEHAKwEOQD6ABcAsABFWLAPLxuxDx4+WbERCPSwFdAwMQD////7AAAECwXBAiYBGgAAAQcArAPU/9MAFwCwAEVYsBEvG7ERGj5ZsRMJ9LAX0DAxAP//AFv+SwhABE4AJgBTAAAABwBdBJAAAP//AHb+SwkwBcQAJgAzAAAABwBdBYAAAP//AFD+UQRqBcQCJgDbAAAABwJRAZz/uP//AFj+UgOsBE0CJgDvAAAABwJRAUP/uf//AHf+UQTYBcQCJgAnAAAABwJRAeX/uP//AFz+UQPsBE4CJgBHAAAABwJRAVL/uP//AA8AAAS7BbACBgA9AAD//wAu/mAD3wQ6AgYAvQAA//8AtwAAAXcFsAIGAC0AAP//ABsAAAc1BxoCJgDaAAABBwChAfgBQwATALAARViwDS8bsQ0ePlmwGdwwMQD//wAVAAAGBAXEAiYA7gAAAQcAoQFf/+0AEwCwAEVYsA0vG7ENGj5ZsBncMDEA//8AtwAAAXcFsAIGAC0AAP//ABwAAAUdBw4CJgAlAAABBwChAPQBNwATALAARViwBC8bsQQePlmwDtwwMQD//wBt/+wD6gXYAiYARQAAAQcAoQCZAAEAEwCwAEVYsBcvG7EXGj5ZsCzcMDEA//8AHAAABR0G+wImACUAAAEHAGoA+QE2ABcAsABFWLAELxuxBB4+WbESBPSwG9AwMQD//wBt/+wD6gXFAiYARQAAAQcAagCeAAAAFwCwAEVYsBcvG7EXGj5ZsTAB9LA50DAxAP////IAAAdXBbACBgCBAAD//wBO/+wGfAROAgYAhgAA//8AqQAABEYHGgImACkAAAEHAKEAvwFDABMAsABFWLAGLxuxBh4+WbAP3DAxAP//AF3/7APzBdgCJgBJAAABBwChAIkAAQATALAARViwCC8bsQgaPlmwIdwwMQD//wBd/+wFEgbZAiYBWAAAAQcAagDTARQAFwCwAEVYsAAvG7EAHj5ZsScE9LAw0DAxAP//AGL/7APpBE8CBgCdAAD//wBi/+wD6QXGAiYAnQAAAQcAagCHAAEAFwCwAEVYsAAvG7EAGj5ZsSQB9LAt0DAxAP//ABsAAAc1BwcCJgDaAAABBwBqAf0BQgAXALAARViwDS8bsQ0ePlmxHQT0sCbQMDEA//8AFQAABgQFsQImAO4AAAEHAGoBZP/sABcAsABFWLANLxuxDRo+WbEdAfSwJtAwMQD//wBQ/+wEagccAiYA2wAAAQcAagC3AVcAFwCwAEVYsAsvG7ELHj5ZsTAE9LA50DAxAP//AFj/7QOsBcUCJgDvAAABBgBqXgAAFwCwAEVYsAovG7EKGj5ZsS4B9LA30DAxAP//ALEAAAT/Bu8CJgDcAAABBwBwAQQBSgATALAARViwCC8bsQgePlmwC9wwMQD//wCcAAAEAQWZAiYA8AAAAQYAcHX0ABMAsABFWLAHLxuxBxo+WbAL3DAxAP//ALEAAAT/BwcCJgDcAAABBwBqATYBQgAXALAARViwCC8bsQgePlmxEQT0sBrQMDEA//8AnAAABAEFsQImAPAAAAEHAGoAp//sABcAsABFWLAILxuxCBo+WbERAfSwGtAwMQD//wB2/+wFCQb9AiYAMwAAAQcAagEbATgAFwCwAEVYsA0vG7ENHj5ZsScE9LAw0DAxAP//AFv/7AQ0BcUCJgBTAAABBwBqAJgAAAAXALAARViwBC8bsQQaPlmxIwH0sCzQMDEA//8AZ//sBPoFxAIGARcAAP//AFv/7AQ0BE4CBgEYAAD//wBn/+wE+gcCAiYBFwAAAQcAagEnAT0AFwCwAEVYsA0vG7ENHj5ZsScE9LAw0DAxAP//AFv/7AQ0BccCJgEYAAABBwBqAIgAAgAXALAARViwBC8bsQQaPlmxJAH0sC3QMDEA//8Ak//sBPQHHQImAOcAAAEHAGoBDQFYABcAsABFWLATLxuxEx4+WbEnBPSwMNAwMQD//wBk/+wD4AXFAiYA/wAAAQYAanwAABcAsABFWLAILxuxCBo+WbEnAfSwMNAwMQD//wBN/+sEywbvAiYA3gAAAQcAcACtAUoAEwCwAEVYsBEvG7ERHj5ZsBPcMDEA//8AFv5LA7AFrQImAF0AAAEGAHAjCAATALAARViwDi8bsQ4aPlmwEdwwMQD//wBN/+sEywcHAiYA3gAAAQcAagDfAUIAFwCwAEVYsBEvG7ERHj5ZsRkE9LAi0DAxAP//ABb+SwOwBcUCJgBdAAABBgBqVQAAFwCwAEVYsA8vG7EPGj5ZsRcB9LAg0DAxAP//AE3/6wTLB0ECJgDeAAABBwCmAS8BQgAXALAARViwAS8bsQEePlmxFAj0sBjQMDEA//8AFv5LA9EF/wImAF0AAAEHAKYApQAAABcAsABFWLAPLxuxDxo+WbEWCfSwEtAwMQD//wCWAAAEyAcHAiYA4QAAAQcAagEJAUIAFwCwAEVYsAsvG7ELHj5ZsRoE9LAj0DAxAP//AGcAAAO9BbECJgD5AAABBgBqZOwAFwCwAEVYsAkvG7EJGj5ZsRgB9LAh0DAxAP//ALIAAAYwBwcAJgDmDwAAJwAtBLkAAAEHAGoB0wFCABcAsABFWLAKLxuxCh4+WbEfBPSwKNAwMQD//wCdAAAFfwWxACYA/gAAACcAjQQqAAABBwBqAW3/7AAXALAARViwCi8bsQoaPlmxHwH0sCjQMDEA//8AX//sA/AGAAIGAEgAAP//ABz+ogUdBbACJgAlAAAABwCtBQIAAP//AG3+ogPqBE4CJgBFAAAABwCtBEoAAP//ABwAAAUdB7oCJgAlAAABBwCrBO4BRgAUALAARViwBC8bsQQePlmxCwj0MDH//wBt/+wD6gaEAiYARQAAAQcAqwSTABAAFACwAEVYsBcvG7EXGj5ZsSkB9DAx//8AHAAABR0HwwImACUAAAEHAjcAwwEuABcAsABFWLAFLxuxBR4+WbEODPSwFNAwMQD//wBt/+wEwAaOAiYARQAAAQYCN2j5ABcAsABFWLAXLxuxFxo+WbEsCPSwMtAwMQD//wAcAAAFHQe/AiYAJQAAAQcCOADHAT0AFwCwAEVYsAQvG7EEHj5ZsQ4M9LAT0DAxAP///8r/7APqBokCJgBFAAABBgI4bAcAFwCwAEVYsBcvG7EXGj5ZsSwI9LAx0DAxAP//ABwAAAUdB+oCJgAlAAABBwI5AMgBGwAXALAARViwBS8bsQUePlmxDAz0sCDQMDEA//8Abf/sBFkGtQImAEUAAAEGAjlt5gAXALAARViwFy8bsRcaPlmxKgj0sDDQMDEA//8AHAAABR0H2gImACUAAAEHAjoAxwEGABcAsABFWLAFLxuxBR4+WbEMDPSwFdAwMQD//wBt/+wD6galAiYARQAAAQYCOmzRABcAsABFWLAXLxuxFxo+WbEqCPSwM9AwMQD//wAc/qIFHQc2AiYAJQAAACcAngDJATYBBwCtBQIAAAAUALAARViwBC8bsQQePlmxDwb0MDH//wBt/qID6gYAAiYARQAAACYAnm4AAQcArQRKAAAAFACwAEVYsBcvG7EXGj5ZsS0B9DAx//8AHAAABR0HtwImACUAAAEHAjwA6gEtABcAsABFWLAELxuxBB4+WbEOB/SwG9AwMQD//wBt/+wD6gaCAiYARQAAAQcCPACP//gAFwCwAEVYsBcvG7EXGj5ZsSwE9LA50DAxAP//ABwAAAUdB7cCJgAlAAABBwI1AOoBLQAXALAARViwBC8bsQQePlmxDgf0sBzQMDEA//8Abf/sA+oGggImAEUAAAEHAjUAj//4ABcAsABFWLAXLxuxFxo+WbEsBPSwOtAwMQD//wAcAAAFHQhAAiYAJQAAAQcCPQDuAT0AFwCwAEVYsAQvG7EEHj5ZsQ4H9LAn0DAxAP//AG3/7APqBwoCJgBFAAABBwI9AJMABwAXALAARViwFy8bsRcaPlmxLAT0sEXQMDEA//8AHAAABR0IFQImACUAAAEHAlAA7gFFABcAsABFWLAELxuxBB4+WbEOB/SwHNAwMQD//wBt/+wD6gbfAiYARQAAAQcCUACTAA8AFwCwAEVYsBcvG7EXGj5ZsSwE9LA60DAxAP//ABz+ogUdBw4CJgAlAAAAJwChAPQBNwEHAK0FAgAAABMAsABFWLAELxuxBB4+WbAO3DAxAP//AG3+ogPqBdgCJgBFAAAAJwChAJkAAQEHAK0ESgAAABMAsABFWLAXLxuxFxo+WbAs3DAxAP//AKn+rARGBbACJgApAAAABwCtBMAACv//AF3+ogPzBE4CJgBJAAAABwCtBIwAAP//AKkAAARGB8YCJgApAAABBwCrBLkBUgAUALAARViwBi8bsQYePlmxDAj0MDH//wBd/+wD8waEAiYASQAAAQcAqwSDABAAFACwAEVYsAgvG7EIGj5ZsR4B9DAx//8AqQAABEYHLgImACkAAAEHAKUAkAFGABQAsABFWLAGLxuxBh4+WbEPBPQwMf//AF3/7APzBewCJgBJAAABBgClWgQAFACwAEVYsAgvG7EIGj5ZsSEB9DAx//8AqQAABOYHzwImACkAAAEHAjcAjgE6ABcAsABFWLAHLxuxBx4+WbEPDPSwFdAwMQD//wBd/+wEsAaOAiYASQAAAQYCN1j5ABcAsABFWLAILxuxCBo+WbEhCPSwJ9AwMQD////wAAAERgfLAiYAKQAAAQcCOACSAUkAFwCwAEVYsAYvG7EGHj5ZsQ8M9LAU0DAxAP///7r/7APzBokCJgBJAAABBgI4XAcAFwCwAEVYsAgvG7EIGj5ZsSEI9LAm0DAxAP//AKkAAAR/B/YCJgApAAABBwI5AJMBJwAXALAARViwBi8bsQYePlmxDwz0sBPQMDEA//8AXf/sBEkGtQImAEkAAAEGAjld5gAXALAARViwCC8bsQgaPlmxHwj0sCXQMDEA//8AqQAABEYH5gImACkAAAEHAjoAkgESABcAsABFWLAGLxuxBh4+WbEPDPSwFtAwMQD//wBd/+wD8walAiYASQAAAQYCOlzRABcAsABFWLAILxuxCBo+WbEhCPSwKNAwMQD//wCp/qwERgdCAiYAKQAAACcAngCUAUIBBwCtBMAACgAUALAARViwBi8bsQYePlmxEAb0MDH//wBd/qID8wYAAiYASQAAACYAnl4AAQcArQSMAAAAFACwAEVYsAgvG7EIGj5ZsSAB9DAx//8AtwAAAfgHxgImAC0AAAEHAKsDZAFSABQAsABFWLACLxuxAh4+WbEECPQwMf//AJsAAAHeBoICJgCNAAABBwCrA0oADgAUALAARViwAi8bsQIaPlmxBAH0MDH//wCj/qsBfgWwAiYALQAAAAcArQNrAAn//wCF/qwBaAXEAiYATQAAAAcArQNNAAr//wB2/qIFCQXEAiYAMwAAAAcArQUYAAD//wBb/qIENAROAiYAUwAAAAcArQSdAAD//wB2/+wFCQe8AiYAMwAAAQcAqwUQAUgAFACwAEVYsA0vG7ENHj5ZsS4I9DAx//8AW//sBDQGhAImAFMAAAEHAKsEjQAQABQAsABFWLAELxuxBBo+WbEqAfQwMf//AHb/7AU9B8UCJgAzAAABBwI3AOUBMAAXALAARViwDS8bsQ0ePlmxIwz0sCnQMDEA//8AW//sBLoGjgImAFMAAAEGAjdi+QAXALAARViwBC8bsQQaPlmxHwj0sCXQMDEA//8AR//sBQkHwQImADMAAAEHAjgA6QE/ABcAsABFWLANLxuxDR4+WbEhDPSwKNAwMQD////E/+wENAaJAiYAUwAAAQYCOGYHABcAsABFWLAELxuxBBo+WbEdCPSwJNAwMQD//wB2/+wFCQfsAiYAMwAAAQcCOQDqAR0AFwCwAEVYsA0vG7ENHj5ZsSEM9LAn0DAxAP//AFv/7ARTBrUCJgBTAAABBgI5Z+YAFwCwAEVYsAQvG7EEGj5ZsR0I9LAj0DAxAP//AHb/7AUJB9wCJgAzAAABBwI6AOkBCAAXALAARViwDS8bsQ0ePlmxIQz0sCrQMDEA//8AW//sBDQGpQImAFMAAAEGAjpm0QAXALAARViwBC8bsQQaPlmxHQj0sCbQMDEA//8Adv6iBQkHOAImADMAAAAnAJ4A6wE4AQcArQUYAAAAFACwAEVYsA0vG7ENHj5ZsSIG9DAx//8AW/6iBDQGAAImAFMAAAAmAJ5oAAEHAK0EnQAAABQAsABFWLAELxuxBBo+WbEeAfQwMf//AGX/7AWdBzECJgCYAAABBwB1Ad0BMQAUALAARViwDS8bsQ0ePlmxKAj0MDH//wBb/+wEugYAAiYAmQAAAQcAdQFlAAAAFACwAEVYsAQvG7EEGj5ZsSYJ9DAx//8AZf/sBZ0HMQImAJgAAAEHAEQBTgExABQAsABFWLANLxuxDR4+WbEnCPQwMf//AFv/7AS6BgACJgCZAAABBwBEANYAAAAUALAARViwBC8bsQQaPlmxJQn0MDH//wBl/+wFnQe1AiYAmAAAAQcAqwUMAUEAFACwAEVYsA0vG7ENHj5ZsTQI9DAx//8AW//sBLoGhAImAJkAAAEHAKsElAAQABQAsABFWLAELxuxBBo+WbEyAfQwMf//AGX/7AWdBx0CJgCYAAABBwClAOMBNQAUALAARViwDS8bsQ0ePlmxKQT0MDH//wBb/+wEugXsAiYAmQAAAQYApWsEABQAsABFWLAELxuxBBo+WbEnAfQwMf//AGX+ogWdBjcCJgCYAAAABwCtBQkAAP//AFv+mQS6BLACJgCZAAAABwCtBJv/9///AIz+ogSqBbACJgA5AAAABwCtBO4AAP//AIj+ogPcBDoCJgBZAAAABwCtBFEAAP//AIz/7ASqB7oCJgA5AAABBwCrBOkBRgAUALAARViwCi8bsQoePlmxEwj0MDH//wCI/+wD3AaEAiYAWQAAAQcAqwSFABAAFACwAEVYsAcvG7EHGj5ZsREB9DAx//8AjP/sBh0HQgImAJoAAAEHAHUB1AFCABQAsABFWLAaLxuxGh4+WbEdCPQwMf//AIj/7AUPBewCJgCbAAABBwB1AWP/7AAUALAARViwEy8bsRMaPlmxHAn0MDH//wCM/+wGHQdCAiYAmgAAAQcARAFFAUIAFACwAEVYsBIvG7ESHj5ZsRwI9DAx//8AiP/sBQ8F7AImAJsAAAEHAEQA1P/sABQAsABFWLANLxuxDRo+WbEbCfQwMf//AIz/7AYdB8YCJgCaAAABBwCrBQMBUgAUALAARViwGi8bsRoePlmxKQj0MDH//wCI/+wFDwZwAiYAmwAAAQcAqwSS//wAFACwAEVYsBMvG7ETGj5ZsSgB9DAx//8AjP/sBh0HLgImAJoAAAEHAKUA2gFGABQAsABFWLASLxuxEh4+WbEeBPQwMf//AIj/7AUPBdgCJgCbAAABBgClafAAFACwAEVYsBMvG7ETGj5ZsR0B9DAx//8AjP6aBh0GAgImAJoAAAAHAK0FCf/4//8AiP6iBQ8EkAImAJsAAAAHAK0EhwAA//8AD/6iBLsFsAImAD0AAAAHAK0EuwAA//8AFv4FA7AEOgImAF0AAAAHAK0FHP9j//8ADwAABLsHugImAD0AAAEHAKsEtwFGABQAsABFWLAILxuxCB4+WbEJCPQwMf//ABb+SwOwBoQCJgBdAAABBwCrBEoAEAAUALAARViwDy8bsQ8aPlmxEAH0MDH//wAPAAAEuwciAiYAPQAAAQcApQCOAToAFACwAEVYsAEvG7EBHj5ZsQwE9DAx//8AFv5LA7AF7AImAF0AAAEGAKUhBAAUALAARViwAS8bsQEaPlmxEwH0MDH//wBf/s0ErAYAACYASAAAACcCJgGhAkcBBwBDAJ//ZAAIALIvHgFdMDH//wAx/pkElwWwAiYAOAAAAAcCUQI/AAD//wAo/pkDsAQ6AiYA9gAAAAcCUQHGAAD//wCW/pkEyAWwAiYA4QAAAAcCUQL+AAD//wBn/pkDvQQ7AiYA+QAAAAcCUQH1AAD//wCx/pkEMAWwAiYAsQAAAAcCUQDvAAD//wCa/pkDRwQ6AiYA7AAAAAcCUQDVAAD//wA//lUFvQXDAiYBTAAAAAcCUQMG/7z////e/lkEYwROAiYBTQAAAAcCUQIB/8D//wCMAAAD3wYAAgYATAAAAAL/1AAABLEFsAASABsAZACwAEVYsA8vG7EPHj5ZsABFWLAKLxuxChI+WbICCg8REjmwAi+yDg8CERI5sA4vsQsBsAorWCHYG/RZsAHQsA4QsBHQsAIQsRMBsAorWCHYG/RZsAoQsRQBsAorWCHYG/RZMDEBIxUhFgQVFAQHIREjNTM1MxUzAxEhMjY1NCYnAlDtAWrkAQD+/t/908/PwO3tAV+Pn5mNBFDyA+TExeoEBFCXycn92f3dmIB7jgIAAAL/1AAABLEFsAASABsAZACwAEVYsBAvG7EQHj5ZsABFWLAKLxuxChI+WbICChAREjmwAi+yEQIQERI5sBEvsQEBsAorWCHYG/RZsAvQsBEQsA7QsAIQsRMBsAorWCHYG/RZsAoQsRQBsAorWCHYG/RZMDEBIxUhFgQVFAQHIREjNTM1MxUzAxEhMjY1NCYnAlDtAWrkAQD+/t/908/PwO3tAV+Pn5mNBFDyA+TExeoEBFCXycn92f3dmIB7jgIAAAEAAwAABDAFsAANAFAAsABFWLAILxuxCB4+WbAARViwAi8bsQISPlmyDQgCERI5sA0vsnoNAV2xAAGwCitYIdgb9FmwBNCwDRCwBtCwCBCxCgGwCitYIdgb9FkwMQEhESMRIzUzESEVIREhAn/+88GurgN//UIBDQKs/VQCrJcCbZ7+MQAAAf/8AAADRwQ6AA0ASwCwAEVYsAgvG7EIGj5ZsABFWLACLxuxAhI+WbINCAIREjmwDS+xAAGwCitYIdgb9FmwBNCwDRCwBtCwCBCxCgGwCitYIdgb9FkwMQEhESMRIzUzESEVIREhAnj+3LqengKt/g0BJAHf/iEB35cBxJn+1QAB//cAAAUxBbAAFACAALAARViwCC8bsQgePlmwAEVYsBAvG7EQHj5ZsABFWLACLxuxAhI+WbAARViwEy8bsRMSPlmyDggCERI5sA4vsi8OAV2yzw4BXbEBAbAKK1gh2Bv0WbIHCAIREjmwBy+xBAGwCitYIdgb9FmwBxCwCtCwBBCwDNCyEgEOERI5MDEBIxEjESM1MzUzFTMVIxEzATMBASMCN7HAz8/A7e2WAf3v/dQCVesCjv1yBDeX4uKX/vcCgv0+/RIAAAH/vwAABCgGAAAUAHYAsABFWLAILxuxCCA+WbAARViwEC8bsRAaPlmwAEVYsAIvG7ECEj5ZsABFWLATLxuxExI+WbIOEAIREjmwDi+xAQGwCitYIdgb9FmyBwgQERI5sAcvsQQBsAorWCHYG/RZsAcQsArQsAQQsAzQshIBDhESOTAxASMRIxEjNTM1MxUzFSMRMwEzAQEjAeCAuufnutvbfgE72/6GAa7bAfX+CwTBl6iol/3NAaz+E/2zAAABAA8AAAS7BbAADgBXsgoPEBESOQCwAEVYsAgvG7EIHj5ZsABFWLALLxuxCx4+WbAARViwAi8bsQISPlmyBggCERI5sAYvsQUBsAorWCHYG/RZsADQsgoIAhESObAGELAO0DAxASMRIxEjNTMBMwEBMwEzA6bhwNuU/lHcAXoBfNr+UZoCCf33AgmXAxD9JQLb/PAAAQAu/mAD3wQ6AA4AZLIKDxAREjkAsABFWLAILxuxCBo+WbAARViwCy8bsQsaPlmwAEVYsAIvG7ECFD5ZsABFWLAALxuxABI+WbAARViwBC8bsQQSPlmxBgGwCitYIdgb9FmyCgsAERI5sA3QsA7QMDEFIxEjESM1MwEzAQEzATMDSua63L/+ob0BHwEYvf6jyAv+awGVlwOu/NoDJvxSAAEAOQAABM4FsAARAGQAsABFWLALLxuxCx4+WbAARViwDi8bsQ4ePlmwAEVYsAIvG7ECEj5ZsABFWLAFLxuxBRI+WbIRCwIREjmwES+xAAGwCitYIdgb9FmyBAsCERI5sAfQsBEQsAnQsg0LAhESOTAxASMBIwEBIwEjNTMBMwEBMwEzA8SkAa7k/pr+mOMBr6CR/mvhAV8BXeL+a5YCnv1iAjj9yAKelwJ7/dICLv2FAAABACkAAAPKBDoAEQBkALAARViwCy8bsQsaPlmwAEVYsA4vG7EOGj5ZsABFWLACLxuxAhI+WbAARViwBS8bsQUSPlmyEQ4CERI5sBEvsQABsAorWCHYG/RZsgQOAhESObAH0LARELAJ0LINDgIREjkwMQEjASMDAyMBIzUzATMTEzMBMwM8swFB1vr61wFBqp7+1tbt8Nj+1qcB4f4fAZX+awHhlwHC/nUBi/4+AP//AGP/7APsBE0CBgC/AAD//wASAAAELwWwAiYAKgAAAAcCJv+D/n///wCRAosFyQMiAEYBr4QAZmZAAP//AF0AAAQzBcQCBgAWAAD//wBe/+wD+QXEAgYAFwAA//8ANQAABFAFsAIGABgAAP//AJr/7AQtBbACBgAZAAD//wCY/+wEMAWxAAYAGhQA//8AhP/sBCIFxAAGABwUAP//AGT//wP4BcQABgAdAAD//wCH/+wEHgXEAAYAFBQA//8Aev/sBNwHVwImACsAAAEHAHUBvgFXABQAsABFWLALLxuxCx4+WbEiCPQwMf//AGD+VgPyBgACJgBLAAABBwB1AUsAAAAUALAARViwAy8bsQMaPlmxJwn0MDH//wCpAAAFCAc2AiYAMgAAAQcARAFmATYAFACwAEVYsAYvG7EGHj5ZsQsI9DAx//8AjAAAA98GAAImAFIAAAEHAEQAzAAAABQAsABFWLADLxuxAxo+WbETCfQwMf//ABwAAAUdByACJgAlAAABBwCsBG0BMgAXALAARViwBC8bsQQePlmxDAj0sBDQMDEA//8AOf/sA+oF6wImAEUAAAEHAKwEEv/9ABcAsABFWLAXLxuxFxo+WbEqCfSwLtAwMQD//wBfAAAERgcsAiYAKQAAAQcArAQ4AT4AFwCwAEVYsAYvG7EGHj5ZsQ0I9LAR0DAxAP//ACn/7APzBesCJgBJAAABBwCsBAL//QAXALAARViwCC8bsQgaPlmxHwn0sCPQMDEA////CgAAAeoHLAImAC0AAAEHAKwC4wE+ABcAsABFWLACLxuxAh4+WbEFCPSwCdAwMQD///7wAAAB0AXpAiYAjQAAAQcArALJ//sAFwCwAEVYsAIvG7ECGj5ZsQUJ9LAJ0DAxAP//AHb/7AUJByICJgAzAAABBwCsBI8BNAAXALAARViwDS8bsQ0ePlmxIQj0sCXQMDEA//8AM//sBDQF6wImAFMAAAEHAKwEDP/9ABcAsABFWLAELxuxBBo+WbEdCfSwIdAwMQD//wBVAAAEyQcgAiYANgAAAQcArAQuATIAFwCwAEVYsAQvG7EEHj5ZsRkI9LAd0DAxAP///4sAAAKXBesCJgBWAAABBwCsA2T//QAXALAARViwCy8bsQsaPlmxDwn0sBPQMDEA//8AjP/sBKoHIAImADkAAAEHAKwEaAEyABcAsABFWLAJLxuxCR4+WbEUCPSwGNAwMQD//wAr/+wD3AXrAiYAWQAAAQcArAQE//0AFwCwAEVYsAcvG7EHGj5ZsRIJ9LAW0DAxAP///tYAAATSBj8AJgDQZAAABwCu/h8AAP//AKn+rASIBbACJgAmAAAABwCtBLoACv//AIz+mQQgBgACJgBGAAAABwCtBKv/9///AKn+rATGBbACJgAoAAAABwCtBLkACv//AF/+ogPwBgACJgBIAAAABwCtBL0AAP//AKn+CQTGBbACJgAoAAABBwG6AWX+qgAIALIAGgFdMDH//wBf/f8D8AYAAiYASAAAAAcBugFp/qD//wCp/qwFCAWwAiYALAAAAAcArQUfAAr//wCM/qwD3wYAAiYATAAAAAcArQShAAr//wCpAAAFBQcwAiYALwAAAQcAdQF7ATAAFACwAEVYsAUvG7EFHj5ZsQ4I9DAx//8AjQAABAwHQQImAE8AAAEHAHUBRAFBAAkAsAUvsA/cMDEA//8Aqf77BQUFsAImAC8AAAAHAK0E6ABZ//8Ajf7oBAwGAAImAE8AAAAHAK0EZQBG//8Aqf6sBBwFsAImADAAAAAHAK0EwAAK//8Ahv6sAWEGAAImAFAAAAAHAK0DTgAK//8Aqf6sBlIFsAImADEAAAAHAK0F0gAK//8Ai/6sBngETgImAFEAAAAHAK0F1gAK//8Aqf6sBQgFsAImADIAAAAHAK0FJAAK//8AjP6sA98ETgImAFIAAAAHAK0EhwAK//8Adv/sBQkH5gImADMAAAEHAjYFCwFTACoAsABFWLANLxuxDR4+WbAj3LJ/IwFxsu8jAXGyTyMBcbIvIwFxsDfQMDH//wCpAAAEwAdCAiYANAAAAQcAdQF8AUIAFACwAEVYsAMvG7EDHj5ZsRYI9DAx//8AjP5gBB4F9wImAFQAAAEHAHUBk//3ABQAsABFWLAMLxuxDBo+WbEdCfQwMf//AKj+rATJBbACJgA2AAAABwCtBLcACv//AIL+rAKXBE4CJgBWAAAABwCtA0oACv//AFD+ogRyBcQCJgA3AAAABwCtBMkAAP//AF/+mgO7BE4CJgBXAAAABwCtBIf/+P//ADH+ogSXBbACJgA4AAAABwCtBLoAAP//AAn+ogJWBUACJgBYAAAABwCtBBkAAP//AIz/7ASqB+QCJgA5AAABBwI2BOQBUQAWALAARViwEi8bsRIePlmwFtywKtAwMf//ABwAAAT9By4CJgA6AAABBwClALQBRgAUALAARViwBi8bsQYePlmxCgT0MDH//wAhAAADugXjAiYAWgAAAQYApR37ABQAsABFWLABLxuxARo+WbEKAfQwMf//ABz+rAT9BbACJgA6AAAABwCtBOQACv//ACH+rAO6BDoCJgBaAAAABwCtBE0ACv//AD3+rAbtBbACJgA7AAAABwCtBe8ACv//ACv+rAXTBDoCJgBbAAAABwCtBVMACv//AFb+rAR6BbACJgA+AAAABwCtBLoACv//AFj+rAOzBDoCJgBeAAAABwCtBGIACv///jL/7AVPBdYAJgAzRgAABwFx/cMAAP//ABMAAARwBRwCJgIzAAAABwCu/9z+3f///2MAAAPqBR8AJgIoPAAABwCu/qz+4P///4AAAASUBRwAJgHkPAAABwCu/sn+3f///4QAAAGNBR4AJgHjPAAABwCu/s3+3////9X/8ARkBRwAJgHdCgAABwCu/x7+3f///xsAAARYBRwAJgHTPAAABwCu/mT+3f///+4AAASIBRsAJgHzCgAABwCu/zf+3P//ABMAAARwBI0CBgIzAAD//wCKAAAD7wSNAgYCMgAA//8AigAAA64EjQIGAigAAP//AEcAAAPgBI0CBgHSAAD//wCKAAAEWASNAgYB5AAA//8AlwAAAVEEjQIGAeMAAP//AIoAAARXBI0CBgHhAAD//wCKAAAFdwSNAgYB3wAA//8AigAABFgEjQIGAd4AAP//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ARgBGgByASIBIgB1AS4BMAB2ATMBNQB5ATcBNwB8ATkBOQB9ATsBOwB+AUMBRAB/AVQBVACBAVYBVgCCAVgBWACDAVwBXgCEAYQBhQCHAYcBiQCJAdgB2ACMAdoB2wCNAd0B3QCPAeAB4QCQAesB7QCSAf8B/wCVAg4CEACWAjACMACZAjMCMwCaAkUCRQCbAkcCSACcAnoCewCeAn0CfQCgAn8ClAChApkCoAC3AqICpQC/AqoCrwDDArQCvADJAr4CvgDSAsACwADTAsICwgDUAsQCxADVAsYCzwDWAtgC2gDgAtwC3ADjAt4C3gDkAuAC4ADlAuIC4gDmAucC5wDnAukC6QDoAusC6wDpAu0C7QDqAu8C7wDrAvEC/QDsAv8C/wD5AwEDAQD6AwMDAwD7Aw4DDgD8AxADEAD9AxIDEgD+AyADIAD/AyIDJQEAAycDJwEEAykDKQEFAy8DOAEGA0MDRwEQA00DTwEVA1QDVAEYA2UDaQEZA20DbwEeA3gDeAEhA4YDiwEiA44DnQEoA6ADoAE4A6QDpAE5A6YDpgE6A6oDqgE7A60DrgE8A7ADsQE+A7MDuQFAA7sDvQFHA78DxAFKA8YDxwFQA8kDzAFSA9ID0wFWA9UD1QFYA9cD1wFZA9kD3AFaA98D5AFeA+YD5gFkA+oD6wFlA/AD8AFnA/ID+wFoA/4D/wFyBAEEBAF0BAsEDAF4BBAEEAF6BBIEGAF7BB4ERgGCBEgESAGrBEoEVwGsBF8EXwG6BHAEdQG7BHcEdwHBBHsEfAHCBH8EfwHEBIEEggHFBIQEhAHHBIYEhgHIBJcEmwHJBJ0EnQHOBJ8EoAHPBKIEogHRBKYEqAHSBKoEqgHVBKwErgHWBLAEsAHZBLIEsgHaBLQEugHbBLwEvAHiBL8EvwHjBMIExgHkBMgEyAHpBMoEywHqBM8EzwHsBNIE0gHtBNgE2AHuBN0E3QHvBOgE6AHwBOoE6gHxBPEE8QHyBPUE9QHzAAsAOP/YANL/2ADW/9gBOf/YAUX/2AMO/9gDEP/YAxL/2APB/9gEd//YBL//2AAYADoAFAA7ABIAPQAWARkAFAKZABYDIAASAyIAFgMkABYDiwAWA5oAFgOdABYD0wASA9UAEgPXABID2QAWA+oAFAPyABYEcAAWBHIAFgR0ABYEhgAWBMIAFATEABQExgASAAEAE/8gAOcAEP8WABL/FgAl/1YALv74ADgAFABF/94AR//rAEj/6wBJ/+sAS//rAFP/6wBV/+sAVv/mAFn/6gBa/+gAXf/oAJT/6wCZ/+sAm//qALL/VgC0/1YAu//rAL3/6ADI/+sAyf/rAMv/6gDSABQA1gAUAPf/6wED/+sBDf9WARj/6wEa/+gBHv/rASL/6wE5ABQBQv/rAUUAFAFg/+sBYf/rAWv/6wGG/xYBiv8WAY7/FgGP/xYB6//AAe3/wAIz/8ACf/9WAoD/VgKB/1YCgv9WAoP/VgKE/1YChf9WApr/3gKb/94CnP/eAp3/3gKe/94Cn//eAqD/3gKh/+sCov/rAqP/6wKk/+sCpf/rAqv/6wKs/+sCrf/rAq7/6wKv/+sCsP/qArH/6gKy/+oCs//qArT/6AK1/+gCtv9WArf/3gK4/1YCuf/eArr/VgK7/94Cvf/rAr//6wLB/+sCw//rAsX/6wLH/+sCyf/rAsv/6wLN/+sCz//rAtH/6wLT/+sC1f/rAtf/6wLl/vgC+f/rAvv/6wL9/+sDDgAUAxAAFAMSABQDFf/qAxf/6gMZ/+oDG//qAx3/6gMf/+oDI//oAzL/wAMz/8ADNP/AAzX/wAM2/8ADN//AAzj/wANN/8ADTv/AA0//wAOG/1YDjv9WA57/6wOi/+oDpP/rA6b/6AOp/+oDqv/rA6v/6gOy/vgDtv9WA8EAFAPD/94DxP/rA8b/6wPI/+sDyf/oA8v/6wPS/+gD2v/oA+L/VgPj/94D5v/rA+v/6APs/+sD8f/rA/P/6AP4/1YD+f/eA/r/VgP7/94D///rBAH/6wQC/+sEDP/rBA7/6wQQ/+sEFP/oBBb/6AQY/+gEHf/rBB7/VgQf/94EIP9WBCH/3gQi/1YEI//eBCT/VgQl/94EJv9WBCf/3gQo/1YEKf/eBCr/VgQr/94ELP9WBC3/3gQu/1YEL//eBDD/VgQx/94EMv9WBDP/3gQ0/1YENf/eBDf/6wQ5/+sEO//rBD3/6wQ//+sEQf/rBEP/6wRF/+sES//rBE3/6wRP/+sEUf/rBFP/6wRV/+sEV//rBFn/6wRb/+sEXf/rBF//6wRh/+sEY//qBGX/6gRn/+oEaf/qBGv/6gRt/+oEb//qBHH/6ARz/+gEdf/oBHcAFASZ/1YEmv/eBJz/6wSg/+sEpP/qBKn/6wSr/+sEvwAUBMP/6ATF/+gEy//ABNL/wATq/8AAMwA4/9UAOv/kADv/7AA9/90A0v/VANb/1QEZ/+QBOf/VAUX/1QHrAA4B7QAOAjMADgKZ/90DDv/VAxD/1QMS/9UDIP/sAyL/3QMk/90DMgAOAzMADgM0AA4DNQAOAzYADgM3AA4DOAAOA00ADgNOAA4DTwAOA4v/3QOa/90Dnf/dA8H/1QPT/+wD1f/sA9f/7APZ/90D6v/kA/L/3QRw/90Ecv/dBHT/3QR3/9UEhv/dBL//1QTC/+QExP/kBMb/7ATLAA4E0gAOBOoADgAdADj/sAA6/+0APf/QANL/sADW/7ABGf/tATn/sAFF/7ACmf/QAw7/sAMQ/7ADEv+wAyL/0AMk/9ADi//QA5r/0AOd/9ADwf+wA9n/0APq/+0D8v/QBHD/0ARy/9AEdP/QBHf/sASG/9AEv/+wBML/7QTE/+0AEQAu/+4AOf/uApX/7gKW/+4Cl//uApj/7gLl/+4DFP/uAxb/7gMY/+4DGv/uAxz/7gMe/+4Dsv/uBGL/7gRk/+4Ewf/uAE0ABgAQAAsAEAANABQAQQASAEf/6ABI/+gASf/oAEv/6ABV/+gAYQATAJT/6ACZ/+gAu//oAMj/6ADJ/+gA9//oAQP/6AEe/+gBIv/oAUL/6AFg/+gBYf/oAWv/6AGEABABhQAQAYcAEAGIABABiQAQAqH/6AKi/+gCo//oAqT/6AKl/+gCvf/oAr//6ALB/+gCw//oAsX/6ALH/+gCyf/oAsv/6ALN/+gCz//oAtH/6ALT/+gC1f/oAtf/6AOe/+gDxP/oA8j/6APL/+gD2wAQA9wAEAPfABAD5v/oA+z/6APx/+gD///oBAH/6AQC/+gEDv/oBB3/6AQ3/+gEOf/oBDv/6AQ9/+gEP//oBEH/6ARD/+gERf/oBFn/6ARb/+gEXf/oBGH/6ASc/+gEqf/oBKv/6ABAAEf/7ABI/+wASf/sAEv/7ABV/+wAlP/sAJn/7AC7/+wAyP/sAMn/7AD3/+wBA//sAR7/7AEi/+wBQv/sAWD/7AFh/+wBa//sAqH/7AKi/+wCo//sAqT/7AKl/+wCvf/sAr//7ALB/+wCw//sAsX/7ALH/+wCyf/sAsv/7ALN/+wCz//sAtH/7ALT/+wC1f/sAtf/7AOe/+wDxP/sA8j/7APL/+wD5v/sA+z/7APx/+wD///sBAH/7AQC/+wEDv/sBB3/7AQ3/+wEOf/sBDv/7AQ9/+wEP//sBEH/7ARD/+wERf/sBFn/7ARb/+wEXf/sBGH/7ASc/+wEqf/sBKv/7AAYAFP/7AEY/+wCq//sAqz/7AKt/+wCrv/sAq//7AL5/+wC+//sAv3/7AOk/+wDqv/sA8b/7AQM/+wEEP/sBEv/7ARN/+wET//sBFH/7ART/+wEVf/sBFf/7ARf/+wEoP/sAAYAEP+EABL/hAGG/4QBiv+EAY7/hAGP/4QAEQAu/+wAOf/sApX/7AKW/+wCl//sApj/7ALl/+wDFP/sAxb/7AMY/+wDGv/sAxz/7AMe/+wDsv/sBGL/7ARk/+wEwf/sACAABv/yAAv/8gBa//MAXf/zAL3/8wD2//UBGv/zAYT/8gGF//IBh//yAYj/8gGJ//ICtP/zArX/8wMj//MDpv/zA8n/8wPS//MD2v/zA9v/8gPc//ID3//yA+v/8wPz//MEFP/zBBb/8wQY//MEcf/zBHP/8wR1//MEw//zBMX/8wA/ACf/8wAr//MAM//zADX/8wCD//MAk//zAJj/8wCz//MAxAANANP/8wEI//MBF//zARv/8wEd//MBH//zASH/8wFB//MBav/zAkX/8wJG//MCSP/zAkn/8wKG//MCkP/zApH/8wKS//MCk//zApT/8wK8//MCvv/zAsD/8wLC//MC0P/zAtL/8wLU//MC1v/zAvj/8wL6//MC/P/zAy3/8wOK//MDl//zA73/8wPA//MD7f/zA/D/8wQL//MEDf/zBA//8wRK//METP/zBE7/8wRQ//MEUv/zBFT/8wRW//MEWP/zBFr/8wRc//MEXv/zBGD/8wSf//MEuP/zAEAAJ//mACv/5gAz/+YANf/mAIP/5gCT/+YAmP/mALP/5gC4/8IAxAAQANP/5gEI/+YBF//mARv/5gEd/+YBH//mASH/5gFB/+YBav/mAkX/5gJG/+YCSP/mAkn/5gKG/+YCkP/mApH/5gKS/+YCk//mApT/5gK8/+YCvv/mAsD/5gLC/+YC0P/mAtL/5gLU/+YC1v/mAvj/5gL6/+YC/P/mAy3/5gOK/+YDl//mA73/5gPA/+YD7f/mA/D/5gQL/+YEDf/mBA//5gRK/+YETP/mBE7/5gRQ/+YEUv/mBFT/5gRW/+YEWP/mBFr/5gRc/+YEXv/mBGD/5gSf/+YEuP/mADgAJf/kADz/0gA9/9MAsv/kALT/5ADE/+IA2v/SAQ3/5AEz/9IBQ//SAV3/0gJ//+QCgP/kAoH/5AKC/+QCg//kAoT/5AKF/+QCmf/TArb/5AK4/+QCuv/kAyL/0wMk/9MDhv/kA4v/0wOO/+QDmv/TA5v/0gOd/9MDtv/kA8L/0gPZ/9MD4v/kA/L/0wP1/9ID+P/kA/r/5AQD/9IEHv/kBCD/5AQi/+QEJP/kBCb/5AQo/+QEKv/kBCz/5AQu/+QEMP/kBDL/5AQ0/+QEcP/TBHL/0wR0/9MEhv/TBJn/5AAoABD/HgAS/x4AJf/NALL/zQC0/80Ax//yAQ3/zQGG/x4Biv8eAY7/HgGP/x4Cf//NAoD/zQKB/80Cgv/NAoP/zQKE/80Chf/NArb/zQK4/80Cuv/NA4b/zQOO/80Dtv/NA+L/zQP4/80D+v/NBB7/zQQg/80EIv/NBCT/zQQm/80EKP/NBCr/zQQs/80ELv/NBDD/zQQy/80ENP/NBJn/zQABAMQADgACAMr/7QD2/8AAugBH/9wASP/cAEn/3ABL/9wAUf/zAFL/8wBT/9YAVP/zAFX/3ABZ/90AWv/hAF3/4QCU/9wAmf/cAJv/3QC7/9wAvf/hAL7/7gC//+YAwf/zAML/6wDD/+kAxf/wAMb/5wDI/9wAyf/cAMr/4wDL/90AzP/OAM3/1ADO/9sA7P/zAPD/8wDx//MA8//zAPT/8wD1//MA9//cAPj/8wD6//MA+//zAP7/8wEA//MBA//cAQX/8wEY/9YBGv/hAR7/3AEi/9wBK//zATb/8wE8//MBPv/zAUL/3AFT//MBVf/zAVf/8wFc//MBYP/cAWH/3AFr/9wCof/cAqL/3AKj/9wCpP/cAqX/3AKq//MCq//WAqz/1gKt/9YCrv/WAq//1gKw/90Csf/dArL/3QKz/90CtP/hArX/4QK9/9wCv//cAsH/3ALD/9wCxf/cAsf/3ALJ/9wCy//cAs3/3ALP/9wC0f/cAtP/3ALV/9wC1//cAvL/8wL0//MC9v/zAvf/8wL5/9YC+//WAv3/1gMV/90DF//dAxn/3QMb/90DHf/dAx//3QMj/+EDnv/cA6D/8wOi/90DpP/WA6b/4QOp/90Dqv/WA6v/3QPE/9wDxf/zA8b/1gPH//MDyP/cA8n/4QPL/9wDzP/zA9H/8wPS/+ED2v/hA+H/8wPm/9wD5//zA+v/4QPs/9wD8f/cA/P/4QP//9wEAf/cBAL/3AQI//MECv/zBAz/1gQO/9wEEP/WBBT/4QQW/+EEGP/hBBz/8wQd/9wEN//cBDn/3AQ7/9wEPf/cBD//3ARB/9wEQ//cBEX/3ARL/9YETf/WBE//1gRR/9YEU//WBFX/1gRX/9YEWf/cBFv/3ARd/9wEX//WBGH/3ARj/90EZf/dBGf/3QRp/90Ea//dBG3/3QRv/90Ecf/hBHP/4QR1/+EEfP/zBJj/8wSc/9wEoP/WBKT/3QSp/9wEq//cBLX/8wS3//MEw//hBMX/4QB8AAb/2gAL/9oAR//wAEj/8ABJ//AAS//wAFX/8ABZ/+8AWv/cAF3/3ACU//AAmf/wAJv/7wC7//AAvf/cAML/7ADEAA8Axv/qAMj/8ADJ//AAyv/EAMv/7wDM/+cA9//wAQP/8AEa/9wBHv/wASL/8AFC//ABYP/wAWH/8AFr//ABhP/aAYX/2gGH/9oBiP/aAYn/2gKh//ACov/wAqP/8AKk//ACpf/wArD/7wKx/+8Csv/vArP/7wK0/9wCtf/cAr3/8AK///ACwf/wAsP/8ALF//ACx//wAsn/8ALL//ACzf/wAs//8ALR//AC0//wAtX/8ALX//ADFf/vAxf/7wMZ/+8DG//vAx3/7wMf/+8DI//cA57/8AOi/+8Dpv/cA6n/7wOr/+8DxP/wA8j/8APJ/9wDy//wA9L/3APa/9wD2//aA9z/2gPf/9oD5v/wA+v/3APs//AD8f/wA/P/3AP///AEAf/wBAL/8AQO//AEFP/cBBb/3AQY/9wEHf/wBDf/8AQ5//AEO//wBD3/8AQ///AEQf/wBEP/8ARF//AEWf/wBFv/8ARd//AEYf/wBGP/7wRl/+8EZ//vBGn/7wRr/+8Ebf/vBG//7wRx/9wEc//cBHX/3ASc//AEpP/vBKn/8ASr//AEw//cBMX/3AA8AAb/oAAL/6AASv/pAFn/8QBa/8UAXf/FAJv/8QC9/8UAwv/uAMQAEADG/+wAyv8gAMv/8QEa/8UBhP+gAYX/oAGH/6ABiP+gAYn/oAKw//ECsf/xArL/8QKz//ECtP/FArX/xQMV//EDF//xAxn/8QMb//EDHf/xAx//8QMj/8UDov/xA6b/xQOp//EDq//xA8n/xQPS/8UD2v/FA9v/oAPc/6AD3/+gA+v/xQPz/8UEFP/FBBb/xQQY/8UEY//xBGX/8QRn//EEaf/xBGv/8QRt//EEb//xBHH/xQRz/8UEdf/FBKT/8QTD/8UExf/FAEEAR//nAEj/5wBJ/+cAS//nAFX/5wCU/+cAmf/nALv/5wDEAA8AyP/nAMn/5wD3/+cBA//nAR7/5wEi/+cBQv/nAWD/5wFh/+cBa//nAqH/5wKi/+cCo//nAqT/5wKl/+cCvf/nAr//5wLB/+cCw//nAsX/5wLH/+cCyf/nAsv/5wLN/+cCz//nAtH/5wLT/+cC1f/nAtf/5wOe/+cDxP/nA8j/5wPL/+cD5v/nA+z/5wPx/+cD///nBAH/5wQC/+cEDv/nBB3/5wQ3/+cEOf/nBDv/5wQ9/+cEP//nBEH/5wRD/+cERf/nBFn/5wRb/+cEXf/nBGH/5wSc/+cEqf/nBKv/5wAFAMr/6gDt/+4A9v+rATr/7AFt/+wAAQD2/9UAAQDKAAsAvgAGAAwACwAMAEf/6ABI/+gASf/oAEoADABL/+gAU//qAFX/6ABaAAsAXQALAJT/6ACZ/+gAu//oAL0ACwC+/+0AxgALAMj/6ADJ/+gAygAMAPf/6AED/+gBGP/qARoACwEe/+gBIv/oAUL/6AFg/+gBYf/oAWv/6AGEAAwBhQAMAYcADAGIAAwBiQAMAdMADQHWAA0B2AAOAdn/9QHb/+wB3f/tAeX/7AHr/78B7P/tAe3/vwH0AA4B9f/tAfgADgIQAA4CEf/tAhIADQIUAA4CGv/tAjH/7gIz/78Cof/oAqL/6AKj/+gCpP/oAqX/6AKr/+oCrP/qAq3/6gKu/+oCr//qArQACwK1AAsCvf/oAr//6ALB/+gCw//oAsX/6ALH/+gCyf/oAsv/6ALN/+gCz//oAtH/6ALT/+gC1f/oAtf/6AL5/+oC+//qAv3/6gMjAAsDMv+/AzP/vwM0/78DNf+/Azb/vwM3/78DOP+/Azn/7QND/+0DRP/tA0X/7QNG/+0DR//tA0wADQNN/78DTv+/A0//vwNQ/+0DUf/tA1L/7QNT/+0DWv/tA1v/7QNc/+0DXf/tA23/7QNu/+0Db//tA3P/9QN0//UDdf/1A3b/9QN4AA4DgQANA4IADQOe/+gDpP/qA6YACwOq/+oDxP/oA8b/6gPI/+gDyQALA8v/6APSAAsD2gALA9sADAPcAAwD3wAMA+b/6APrAAsD7P/oA/H/6APzAAsD///oBAH/6AQC/+gEDP/qBA7/6AQQ/+oEFAALBBYACwQYAAsEHf/oBDf/6AQ5/+gEO//oBD3/6AQ//+gEQf/oBEP/6ARF/+gES//qBE3/6gRP/+oEUf/qBFP/6gRV/+oEV//qBFn/6ARb/+gEXf/oBF//6gRh/+gEcQALBHMACwR1AAsEnP/oBKD/6gSp/+gEq//oBMMACwTFAAsEy/+/BM//7QTQAA0E0v+/BN4ADQThAA0E6v+/BPH/7QT0/+0E9QAOBPn/7QT6AA0AAQD2/9gADgBc/+0AXv/tAO7/7QD2/6oBNP/tAUT/7QFe/+0DJv/tAyj/7QMq/+0Dyv/tA/b/7QQE/+0Eyf/tAA0AXP/yAF7/8gDu//IBNP/yAUT/8gFe//IDJv/yAyj/8gMq//IDyv/yA/b/8gQE//IEyf/yACIAWv/0AFz/8gBd//QAXv/zAL3/9ADu//IBGv/0ATT/8gFE//IBXv/yArT/9AK1//QDI//0Ayb/8wMo//MDKv/zA6b/9APJ//QDyv/yA9L/9APa//QD6//0A/P/9AP2//IEBP/yBBT/9AQW//QEGP/0BHH/9ARz//QEdf/0BMP/9ATF//QEyf/zAIwABv/KAAv/ygA4/9IAOv/UADz/9AA9/9MAUf/RAFL/0QBU/9EAWv/mAFz/7wBd/+YAvf/mAMH/0QDS/9IA1v/SANr/9ADe/+0A4f/hAOb/1ADs/9EA7v/vAPD/0QDx/9EA8//RAPT/0QD1/9EA9v/JAPj/0QD6/9EA+//RAP7/0QEA/9EBBf/RAQn/5QEZ/9QBGv/mASD/4wEr/9EBM//0ATT/7wE2/9EBOf/SATr/xAE8/9EBPv/RAUP/9AFE/+8BRf/SAUf/4QFJ/+EBU//RAVX/0QFX/9EBXP/RAV3/9AFe/+8BYv/UAWP/9QFk/+cBbP/SAW3/yQGE/8oBhf/KAYf/ygGI/8oBif/KApn/0wKq/9ECtP/mArX/5gLy/9EC9P/RAvb/0QL3/9EDDv/SAxD/0gMS/9IDIv/TAyP/5gMk/9MDi//TA5r/0wOb//QDnf/TA6D/0QOm/+YDtf/tA8H/0gPC//QDxf/RA8f/0QPJ/+YDyv/vA8z/0QPR/9ED0v/mA9n/0wPa/+YD2//KA9z/ygPf/8oD4f/RA+f/0QPq/9QD6//mA/L/0wPz/+YD9f/0A/b/7wQD//QEBP/vBAj/0QQK/9EEE//tBBT/5gQV/+0EFv/mBBf/7QQY/+YEGf/hBBz/0QRw/9MEcf/mBHL/0wRz/+YEdP/TBHX/5gR3/9IEef/hBHz/0QSG/9MEmP/RBLX/0QS3/9EEv//SBML/1ATD/+YExP/UBMX/5gAoADj/vgBa/+8AXf/vAL3/7wDS/74A1v++AOb/yQD2/98BCf/tARr/7wEg/+sBOf++ATr/3wFF/74BTP/pAWP/9QFt/+ACtP/vArX/7wMO/74DEP++AxL/vgMj/+8Dpv/vA8H/vgPJ/+8D0v/vA9r/7wPr/+8D8//vBBT/7wQW/+8EGP/vBHH/7wRz/+8Edf/vBHf/vgS//74Ew//vBMX/7wA/ADj/5gA6/+cAPP/yAD3/5wBc//EA0v/mANb/5gDa//IA3v/uAOH/6ADm/+YA7v/xAPb/0AEZ/+cBM//yATT/8QE5/+YBOv/OAUP/8gFE//EBRf/mAUf/6AFJ/+gBXf/yAV7/8QFi/+cBZP/tAWz/5gFt/9ACmf/nAw7/5gMQ/+YDEv/mAyL/5wMk/+cDi//nA5r/5wOb//IDnf/nA7X/7gPB/+YDwv/yA8r/8QPZ/+cD6v/nA/L/5wP1//ID9v/xBAP/8gQE//EEE//uBBX/7gQX/+4EGf/oBHD/5wRy/+cEdP/nBHf/5gR5/+gEhv/nBL//5gTC/+cExP/nAJgAJQAQACf/6AAr/+gAM//oADX/6AA4/+AAOv/gAD3/3wCD/+gAk//oAJj/6ACyABAAs//oALQAEADS/+AA0//oANQAEADW/+AA2QAUAN0AEADh/+EA5v/gAO0AEwDyABAA+f/gAQQAEAEI/+gBDQAQARf/6AEZ/+ABG//oAR3/6AEf/+gBIf/oATn/4AFB/+gBRf/gAUf/4QFI/+ABSf/hAUr/4AFN/+EBUAAQAVEAEAFY/+kBYv/fAWT/3gFmABABav/oAWz/3wFu//IBbwAQAXAAEAJF/+gCRv/oAkj/6AJJ/+gCfwAQAoAAEAKBABACggAQAoMAEAKEABAChQAQAob/6AKQ/+gCkf/oApL/6AKT/+gClP/oApn/3wK2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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAAAAAAAAAgABAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAgAGAAAAAAAAAAAAAAAAAAEAAAAJAAAAAAAAAAMAAAAAAAAAAAAAAAAAAQABAAAABQAAAAAAAAAAAAAAAAALAAIAGQAAAAsAAAAAAAAAEQAAAAAAGQAiAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABUAAAADAAMAGwADAAMAAwAAAAEAAwAhAAMAAwAAAAAAAwAAAAMAAAAAAAEAGwADAAAAAAACAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAACAAQAHQAJAAIAAAACAAEAAgAAAAIAAQAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAABEAFQAAAAMAAAAAAAsAAAAAAAMAAAADAAAAAAACAAEAEQAVAAsAAAAgACEAAAAAAAAAAAAAAAAAAAAZABsAAAADAAAAAwAAAAMAAAAAAAAAAAADABEAFQAAAAEAAQAAAAAAAAAAABkAAAAAAAAAAgABAAAAAAAAABkAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AHwAAABQAFAAaABQAFAAUABoAAAAAAAAAGgAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAcACQAAAASABgAHgAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADQAIAA0AAAAAAAAAAAAAAAAAGAAIAAAAAAAYAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAYAAgAFwAcABgAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAAAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAGAAYABgAGAAYABgAGAAIAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAoACgAKAAoADAAHAAcABwAHAAcABwAHAAEAAQABAAEAAQAAAAAAAAAAAAMABAAEAAQABAAEAAUABQAFAAUACQAJAAYABwAGAAcABgAHAAIAAQACAAEAAgABAAIAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQACAAEAAgABAAIAAQACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwADAAIABAACAAQAAgAEAAAAAAAAAAAAAAAAABAADgAQAA4AEAAOABAADgAQAA4ACwAAAAsAAAALAAAACgAFAAoABQAKAAUACgAFAAoABQAKAAUAFgAAAAwACQAMABMADwATAA8AEwAPAAAAAAACAAAAAAAAAAAADQANAA0ADQANAA0ADQAIAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAASABIAEgASABcADQANAA0ACAAIAAgACAAAAAAAAAAAAAAAAAAIAAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAAAAAAAAB4AHgAeAB4AAAAYAAAAEgASABIAEgASABIAJAAXABcAAAAAAAAABgAAAAAAAAACAAwAAAAAAAYAAAAAABMAAAAAAAAAAAAAAAIAAAAAAAwAEQAAAAwAAQAAAAMAAAAFAAAABAAAAAkAAAAAAAUABAAFAAAAAAAAAAAAAAAAACMAAAAAACIABgAAAAAAAAAAAAAAAAACAAAAAAACAAsAEQAHAAEAAwAEAAMAAQAJABUAAQADAA4AAAAAAAAAAwAJABYAAAAWAAAAFgAAAAwACQAUABQAAAAAABQAAAADAAYABwAAAAAAAQADAAAAAAAdAAkAAQACAAAAAAACAAEADAAJAAAAEQAVAAAABgAHAAYABwAAAAAAAAABAAAAAQABABEAFQAAAAAAAAADAAAAAwACAAQAAgABAAIABAAAAAAAIgAJACIACQAiAAkAIAAhAAAAAwABAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgABAAIAAQACAAEAAgAEAAIAAQAKAAUACgAFAAAABQAAAAUAAAAFAAAABQAAAAUADAAJAAwACQAMAAkAAAALAAAAIAAhAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAYABwAAAAEAAAAAAAIABAAAAAAAAAAFAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAgAAAAAAAAAAABAADgALAAAACgAdAAkAHQAJABYAAAATAA8AAAANAAAAAAAAAAgAFwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAHAAAABcAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAACAAAAAAACAAYABwAAAAAAAgAFwABAAAACgFiApIABERGTFQAGmN5cmwAGmdyZWsAGmxhdG4ASAAEAAAAAP//ABIAAAABAAIAAwAEAAgADAANAA4ADwAQABEAEgATABQAFQAWABcALgAHQVpFIADkQ1JUIADkRlJBIABaTU9MIAC2TkFWIACIUk9NIAC2VFJLIADkAAD//wATAAAAAQACAAMABAAHAAgADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABQAAAABAAIAAwAEAAYACAAJAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wAUAAAAAQACAAMABAAGAAgACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AFAAAAAEAAgADAAQABgAIAAoADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABMAAAABAAIAAwAEAAUACAAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYYzJzYwCSY2NtcACYZGxpZwCgZG5vbQCmZnJhYwCsbGlnYQC2bGlnYQC8bGlnYQDIbG51bQDQbG9jbADWbG9jbADcbG9jbADibnVtcgDob251bQDucG51bQD0c21jcAD6c3MwMQEAc3MwMgEGc3MwMwEMc3MwNAESc3MwNQEYc3MwNgEec3MwNwEkdG51bQEqAAAAAQAAAAAAAgACAAQAAAABAAoAAAABABgAAAADABYAFwAZAAAAAQAJAAAABAAIAAkACAAJAAAAAgAIAAkAAAABABUAAAABAAcAAAABAAUAAAABAAYAAAABABkAAAABABIAAAABABMAAAABAAEAAAABAAsAAAABAAwAAAABAA0AAAABAA4AAAABAA8AAAABABAAAAABABEAAAABABQAGgA2BDAH7gigCMoPbg+ED64Pwg/mEBAQTBBgEHQQiBCaELQQ9hEUEWYRrBIOEmwSgBKwEtIAAQAAAAEACAACAfoA+gHnAnEB0QHQAc8BzgHNAcwBywHKAckByAIzAjICMQIwAigB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdIB6AHpAnMCdQJ0AnYCcgJ3AlIB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4CAAIBBP4CAgIDAgQCBQIGAgcCCAIJAgoCCwI7Ag0CDgIPAhAE+AIRAhMCFAIVAhYCFwIYAhkCGwIcAh4CHQMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2ME/wNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQUCA3YDdwN5A3gDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UFAAUBBMsEzATNBM4EzwTQBNEE0gTTBNQE1QTWBNcE2ATZBNoE2wTcBN0E3gTfBOAE4QTiBOME5ATlBOYE5wH/BOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BQMFBAUFBQYE9wT5BPoE/AIaBP0E+wIMAhIFCwUMAAEA+gAIAAoAFAAVABYAFwAYABkAGgAbABwAHQAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4AZQBnAIEAgwCEAIwAjwCRAJMAsQCyALMAtAC1ALYAtwC4ALkAugDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QEvATMBNQE3ATkBOwFBAUMBRQFJAUsBTAFYAVkBlwGdAaIBpQJ6AnsCfQJ/AoACgQKCAoMChAKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQK2ArgCugK8Ar4CwALCAsQCxgLIAsoCzALOAtAC0gLUAtYC2ALaAtwC3gLgAuIC4wLlAucC6QLrAu0C7wLxAvMC9QL4AvoC/AL+AwADAgMEAwYDCAMKAwwDDgMQAxIDFAMWAxgDGgMcAx4DIAMiAyQDJQMnAykDKwMtA4YDhwOIA4kDigOLA4wDjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA9MD1QPXA9kD7gPwA/IEBwQNBBMEfQSCBIYFBwUJAAEAAAABAAgAAgHcAOsCcQIzAjICMQIwAigB5gHlAeQB4wHiAeEB4AHfAd4B3QHcAdsB2gHZAdgB1wHWAdUB1AHTAdICZAJzAzACdQJ0Ay8B4wJyAncCUgTSBNMB6gHrBNQE1QTWAewE1wHtAe4B7wTcAfAB8ATdBN4B8QHyAfMB+gTrBOwB+wH8Af0B/gH/AgAE7wTwBPIE9QT+AgICAwIEAgUCBgIHAggCCQIKAgsB9AH1AfYB9wH4AfkCOwINAg4CDwIQBPgCEQITAhQCFQIXAhkCdgMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA4IDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgT/A2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1BQIDdgN3A3kDeAN6A3sDfAN9A34DfwOAA4EDgwOEA4UFAAUBBMsEzATNBM4E2ATbBNkE2gTfBOAE4QTPBNAE0QTqBO0E7gTxBPME9AIBBPYE4gTjBOQE5QTmBOcE6ATpBQMFBAUFBQYE9wT5BPoCGAT8AhoE/QT7AhYCDAISBQsFDAABAOsACgBFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AhQCGAIcAiQCKAIsAjQCQAJIAlAC7ALwAvQC+AL8AwADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4A6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wEAAQEBAgEDAQQBBQEGAQcBMAE0ATYBOAE6ATwBQgFEAUYBSgFNAVoCfAJ+ApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtwK5ArsCvQK/AsECwwLFAscCyQLLAs0CzwLRAtMC1QLXAtkC2wLdAt8C4QLkAuYC6ALqAuwC7gLwAvIC9AL2AvkC+wL9Av8DAQMDAwUDBwMJAwsDDQMPAxEDEwMVAxcDGQMbAx0DHwMhAyMDJgMoAyoDLAMuA54DnwOgA6EDowOkA6UDpgOnA6gDqQOqA6sDrAPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9QD1gPYA9oD7wPxA/MEAQQIBA4EFAR+BH8EgwSHBQgFCgAGAAAABgASACoAQgBaAHIAigADAAAAAQASAAEAkAABAAAAAwABAAEATQADAAAAAQASAAEAeAABAAAAAwABAAEATgADAAAAAQASAAEAYAABAAAAAwABAAEC4QADAAAAAQASAAEASAABAAAAAwABAAEDzgADAAAAAQASAAEAMAABAAAAAwABAAED0AADAAAAAQASAAEAGAABAAAAAwABAAEESQACAAIAqACsAAABJAEnAAUAAQAAAAEACAACABIABgJhAl8CYgJjAmAFDQABAAYATQBOAuEDzgPQBEkABAAAAAEACAABBjIANgByAKQArgC4AMoA/AEOARgBSgFkAX4BkAG6AfYCAAIiAjwCTgKKApwCtgLgAvIDJAMuAzgDSgN8A4YDkAOaA7QDzgPgBAoEPARGBGgEggSUBMYE2ATyBRwFLgU4BUIFTAVWBYAFqgXUBf4GKAAGAA4AFAAaACAAJgAsAoAAAgCpBB4AAgCtAn8AAgCoBCAAAgCrAoIAAgCqBJkAAgCsAAEABASmAAIArQABAAQCvAACAKkAAgAGAAwEqgACAboEqAACAK0ABgAOABQAGgAgACYALAKIAAIAqQQ2AAIArQKHAAIAqAQ4AAIAqwQ6AAIAqgSbAAIArAACAAYADASVAAIAqQLWAAIBugABAAQErAACAK0ABgAOABQAGgAgACYALAKMAAIAqQRIAAIArQKLAAIAqARGAAIAqwLaAAIAqgSdAAIArAADAAgADgAUBK4AAgCpAucAAgG6BLAAAgCtAAMACAAOABQC6QACAKkC6wACAboEsgACAK0AAgAGAAwD4AACAKkEtAACAK0ABQAMABIAGAAeACQC8QACAKkC8wACAboEtgACAK0ElwACAKgCjwACAKoABwAQABgAHgAkACoAMAA2BLgAAwCqAKkCkQACAKkESgACAK0CkAACAKgETAACAKsCkwACAKoEnwACAKwAAQAEBLkAAgCpAAQACgAQABYAHAL+AAIAqQMAAAIBugS7AAIArQShAAIArAADAAgADgAUAwQAAgCpAwoAAgG6BL0AAgCtAAIABgAMAw4AAgG6BL8AAgCtAAcAEAAYAB4AJAAqADAANgTBAAMAqgCpApYAAgCpBGIAAgCtApUAAgCoBGQAAgCrAxQAAgCqBKMAAgCsAAIABgAMBMQAAgCtBMIAAgCqAAMACAAOABQD1QACAKkExgACAK0D0wACAKgABQAMABIAGAAeACQCmQACAKkEcAACAK0D2QACAKgEcgACAKsEdAACAKoAAgAGAAwDJQACAKkEyAACAK0ABgAOABQAGgAgACYALAKbAAIAqQQfAAIArQKaAAIAqAQhAAIAqwKdAAIAqgSaAAIArAABAAQEpwACAK0AAQAEAr0AAgCpAAIABgAMBKsAAgG6BKkAAgCtAAYADgAUABoAIAAmACwCowACAKkENwACAK0CogACAKgEOQACAKsEOwACAKoEnAACAKwAAQAEBJYAAgCpAAEABAStAAIArQABAAQESQACAK0AAwAIAA4AFASvAAIAqQLoAAIBugSxAAIArQADAAgADgAUAuoAAgCpAuwAAgG6BLMAAgCtAAIABgAMA+EAAgCpBLUAAgCtAAUADAASABgAHgAkAvIAAgCpAvQAAgG6BLcAAgCtBJgAAgCoAqoAAgCqAAYADgAUABoAIAAmACwCrAACAKkESwACAK0CqwACAKgETQACAKsCrgACAKoEoAACAKwAAQAEBLoAAgCpAAQACgAQABYAHAL/AAIAqQMBAAIBugS8AAIArQSiAAIArAADAAgADgAUAwUAAgCpAwsAAgG6BL4AAgCtAAIABgAMAw8AAgG6BMAAAgCtAAYADgAUABoAIAAmACwCsQACAKkEYwACAK0CsAACAKgEZQACAKsDFQACAKoEpAACAKwAAgAGAAwExQACAK0EwwACAKoAAwAIAA4AFAPWAAIAqQTHAAIArQPUAAIAqAAFAAwAEgAYAB4AJAK0AAIAqQRxAAIArQPaAAIAqARzAAIAqwR1AAIAqgACAAYADAMmAAIAqQTJAAIArQABAAQDKwACAKkAAQAEAy0AAgCpAAEABAMsAAIAqQABAAQDLgACAKkABQAMABIAGAAeACQCpwACAKkCpgACAKgERwACAKsC2wACAKoEngACAKwABQAMABIAGAAeACQEWAACAKkEYAACAK0EWgACAKgEXAACAKsEXgACAKoABQAMABIAGAAeACQEWQACAKkEYQACAK0EWwACAKgEXQACAKsEXwACAKoABQAMABIAGAAeACQEZgACAKkEbgACAK0EaAACAKgEagACAKsEbAACAKoABQAMABIAGAAeACQEZwACAKkEbwACAK0EaQACAKgEawACAKsEbQACAKoAAQAEBKUAAgCpAAIAEQAlACkAAAArAC0ABQAvADQACAA2ADsADgA9AD4AFABFAEkAFgBLAE0AGwBPAFQAHgBWAFsAJABdAF4AKgCBAIEALACDAIMALQCGAIYALgCJAIkALwCNAI0AMACYAJsAMQDQANAANQABAAAAAQAIAAEABgACAAEAAgMIAwkAAQAAAAEACAACABIABgUHBQgFCQUKBQsFDAABAAYCugK7AswCzQNPA1gAAQAAAAEACAABAAYAAQABAAEBewAEAAAAAQAIAAEAQAABAAgAAgAGAA4BvgADAEoATQG8AAIATQAEAAAAAQAIAAEAHAABAAgAAgAGAA4BvwADAEoAUAG9AAIAUAABAAEASgAEAAAAAQAIAAEAKgADAAwAFgAgAAEABAG7AAIASgABAAQBwQACAFgAAQAEAcAAAgBYAAEAAwBKAFcAlQABAAAAAQAIAAEABgHeAAEAAQBLAAEAAAABAAgAAQAGAW8AAQABALsAAQAAAAEACAABAAYB9QABAAEANgABAAAAAQAIAAIAHAACAiwCLQABAAAAAQAIAAIACgACAi4CLwABAAIALwBPAAEAAAABAAgAAgAeAAwCRQJHAkYCSAJJAmcCaAJpAmoCawJsAm0AAQAMACcAKAArADMANQBGAEcASABLAFMAVABVAAEAAAABAAgAAgAMAAMCbgJvAm8AAQADAEkASwJqAAEAAAABAAgAAgAuABQCWgJeAlgCVQJXAlYCWwJZAl0CXAJPAkoCSwJMAk0CTgAaABwCUwJlAAIABAAUAB0AAAJmAmYACgJwAnAACwSNBJQADAABAAAAAQAIAAIALgAUBJQCcASNBI4EjwSQBJECZgSSBJMCTAJOAk0CSwJPAmUAGgJTABwCSgACAAIAFAAdAAACVQJeAAoAAQAAAAEACAACAC4AFAJbAl0CXgJYAlUCVwJWAlkCXAJaABsAFQAWABcAGAAZABoAHAAdABQAAQAUABoAHAJKAksCTAJNAk4CTwJTAmUCZgJwBI0EjgSPBJAEkQSSBJMElAABAAAAAQAIAAIALgAUBJEEkgJwBI0EjgSPBJACZgSTABcAGQAYABYAGwAUABoAHQAcABUElAACAAYAGgAaAAAAHAAcAAECSgJPAAICUwJTAAgCVQJeAAkCZQJlABMAAQAAAAEACAABAAYBgQABAAEAEwAGAAAAAQAIAAMAAQASAAEAbAAAAAEAAAAYAAIAAwGUAZQAAAHFAccAAQIfAiUABAABAAAAAQAIAAIAPAAKAccBxgHFAh8CIAIhAiICIwIkAiUAAQAAAAEACAACABoACgI+AHoAcwB0Aj8CQAJBAkICQwJEAAIAAQAUAB0AAA==';
-    var callAddFont = function() {
+    var callAddFont = function () {
         this.addFileToVFS('Roboto-Regular-normal.ttf', font);
         this.addFont('Roboto-Regular-normal.ttf', 'Roboto-Regular', 'normal');
     };
diff --git a/src/app/assets/static/RobotoMono-Regular-normal.js b/src/app/assets/static/RobotoMono-Regular-normal.js
index 2700dbaeaa470e56472cd06f709631a4a0241fe0..a1f8d7146a06c9351f441fb014f806efd7ee9729 100644
--- a/src/app/assets/static/RobotoMono-Regular-normal.js
+++ b/src/app/assets/static/RobotoMono-Regular-normal.js
@@ -1,13 +1,9 @@
-(function(jsPDFAPI) {
+(function (jsPDFAPI) {
     var font =
         'AAEAAAAQAQAABAAAR0RFRgsxCzIAAbjUAAAAQEdTVULmEd8TAAG5FAAAAkhPUy8yuK7p+QAAAYgAAABgY21hcFPnoi8AABIMAAAIamN2dCBh8hRdAAAmuAAAAJxmcGdt9ETCtAAAGngAAAuWZ2FzcAAAABAAAbjMAAAACGdseWbUbtEIAAAveAABYnRoZWFk+TIlPAAAAQwAAAA2aGhlYQsNBBkAAAFEAAAAJGhtdHgdyjhbAAAB6AAAECJsb2NhvQYT1wAAJ1QAAAgkbWF4cAXUDRoAAAFoAAAAIG5hbWVD7WwQAAGR7AAAAwpwb3N05UKn6QABlPgAACPRcHJlcDPNE4IAACYQAAAApgABAAAAAgBBoHTpWV8PPPUACwgAAAAAAMTwES4AAAAA0YPIh/wF/dUHmQhzAAAACQACAAAAAAAAAAEAAAds/gwAAAma/AX4cgeZAAEAAAAAAAAAAAAAAAAAAAQAAAEAAAQRALAAFgBwAAUAAgBQAGAAdwAAAN0LlwADAAEAAwTOAZAABQAABZoFMwAAAR8FmgUzAAAD0QBmAgAAAAAAAAAAAAAAAADgAAL/EAAgWwAAACAAAAAAcHlycwBAAAD//QYA/gAAZgeaAgAgAAGfTwEAAAQ6BbAAAAAgAAEEzQAAAAAAAATNAAAEzQAABM0BYgTNAD0EzQCiBM0ALATNAGsEzQHuBM0BZQTNAUAEzQCgBM0AdwTNAWIEzgDaBM0B8ATNAPwEzQCRBM0A0ATNAFUEzQBeBM0ASwTNALsEzQCNBM0AcATNALEEzQCVBM0CIgTNAeYEzQCqBM0ArQTNALIEzQC/BM0AQATNAFEEzQCsBM0AawTNAJsEzQC2BM0AvwTNAGQEzQCNBM0ArgTNAGIEzQCsBM0AxgTNAJQEzQCPBM0AagTNAL8EzQBeBM0AtQTNAHYEzQBMBM0AiwTNAEcEzQBJBM0AVwTNAD0EzQByBM0BqgTNAOcEzQGVBM0A5wTNAJsEzQGfBM0AnATNAK8EzQCPBM0AiwTNAIcEzgCYBM0AjATNAK4EzQDLBM0A0wTNALAEzQDLBM0AXQTNAK4EzQB6BM0ArQTNAIwEzQFJBM0ArwTNAI4EzQC0BM0AYgTNADAEzQBuBM0ARATNAKAEzQFDBM0CHATNAUMEzQAwBM0B8gTNAJMEzQBxBM0AZwTNACEEzQH/BM0AVwTNAR8EzQBaBM0BHATNANQEzQC9BM0AVwTNAQEEzQFpBM0AnATNATwEzQFDBM0BmgTNALwEzQDTBM0B+ATNAc0EzQGCBM0BEATNAPEEzQAwBM0AJATNACUEzQDMBM0AIATNALUEzQBHBM0AqATNAKkEzQArBM0ASQTNAHMEzQB6BM0ArQTNABgEzQDLBM0AgATNAFAEzQC6BM0AOgTNAMsEzQCvBM0AuATNAE8EzQAuBM0ByATNAKAEzQBjBM0AdwTNAIsEzQC0BM0AsATNALEEzQDBBM0BMATNATsEzQHyBM0BmgTNAY4EzQCKBM0A9gTNAa0EUvzKBFL9aARS/IgEUv1ZBFL8BQRS/ScEzQIpBM0BEwTNAjAEzQC1BM0ALgTNAGoEzQA2BM0AkQTNAKIEzQBwBM0ARQTNAGUEzQBhBM0AgQTNAK4EzQBHBM0AeATNAIsEzQB1BM0ApATNALkEzQC4BM0AOQTNAK8EzQBZBM0ApQTNAHgEzQBtBM0ArQTNAJ4EzQBuBM0AYQTNAE8EzQCYBM0ANgTNAC4EzQAqBM0AgQTNAB4EzQCDBM0AQwTNAKIEzQCiBM0ARgTNAB0EzQBZBM0AogTNAC8EzQArBM0ApgTNAKsEzQB9BM0AfQTNADIEzQCQBM0AqATNAHIEzQB3BM0AQQTNAIEEzQCkBM0AtwTNADYEzQARBM0AhwTNAKUEzQCkBM0ANwTNAIkEzQClBM0ApQTNAGgEzQB6BM0AqgTNAI0EzQCBBM0AdgTNADkEzQCQBM0ApQTNAIEEzQBxBM0ATwTN/+kEzQCPBM0AJgTNAIIEzQAcBM0ApQTNAGsEzQBfBM0AHATNAH0EzQCbBM0AJwTNAFcEzQBxBM0AcATNAFUEzQBpBM0AUATNAFEEzQDKBM0A3gTNAGMEzQBdBM0AGgTNAFEEzQBFBM0ANwTNAGoEzQB6BM0ATQTNAGcEzQBxBM0AXwTNAJcEzQC/BM0AdgAAANEAAAD8AAABwwAAAjwAAP7nAAAATgTNAL8EzQCtBM0AtgTNALYEzQC5BM0AuATNAK4EzQCjBM0ALQTNADgEzQByBM0AbgTNAG0EzQB0BM0AaATNAFwEzQA5BM0ANATNAKsEzQCSBM0A4wTNACYEzQAmBM0AyATNALQEzQC2BM0AswTNAFoEzQCUBM0AiQTNAEIEzQB0BM0AYQTNAE0EzQBlBM0ANwTNAFAEzQCzBM0A0ATNABQEzQAvBM0AbwTNAHUEzQCOBM0AoATNAEwEzQBJBM0AbATNAAAEzQAABM0AAATNAAAEzQAABM0AAATNAAAEzQAABM0AAATNAAAEzQAABM0AAATNAEkEzQBOBM0ApgTNAewEzQHNBM0BvATNAc8EzQFJBM0BLQTNAS8EzQB3BM0AeQTNAZoEzQFcBM0BCQTNADYEzQGMBM0BjATNASsEzQEPBM0BSwTNAGkEzQB/BM0AfwTNAEkEzQDdBM0AeQTNAGcEzQCZBM0AUATNADIEzQAkBM0AQATNAH4EzQCnBM0AMwTNAKkEzQA5BM0ANQTNAPgEzQCNBM0AqQTNALsEzQDCBM0AjgTNAS4EzQAABM0AXATNAA8EzQC4BM0BOgTNAREEzQD8BM0AEATNAQsEzQEwBM0B+QTNADYEzQDQBM0AbgTNALcEzQDIBM0A5wTNAHwEzQCbBM0A2QTNAJYEzQC0BM0A0QTNAJsEzQDCBM0AggTNAF4EzQCQBM0AigTNAF0EzQC1BM0AVgTNAC8EzQBgBM0ATQTNALkEzQFSBM0BDgTNALYEzQDFBM0AiQTNANEEzQDhBM0AvATNANEEzQC6BM0BPwTNAVsEzQFCBM0BOATNASMEzQFABM0BOwTNATAEzQE+BM0BQATNATUEzQHRBM0B9QTNAXQEzQIGBM0BaQTNAWAEzQBuBM0AsgTNAMsEzQGgBM0A0ATNAFQEzQDMBM0AawTNAKMEzQCpBM0AeQTNAKAEzQDOBMsAjQTNAFoEzQCPBM0A0gTNATsEzQAABM4A2gTr/9QE6//UBOsAGgTNAEwEzQCOBM0AUQTNAFEEzQBRBM0AUQTNAFEEzQBRBM0AUQTNAGsEzQC2BM0AtgTNALYEzQC2BM0ArgTNAK4EzQCuBM0ArgTNAI8EzQBqBM0AagTNAGoEzQBqBM0AagTNAIsEzQCLBM0AiwTNAIsEzQA9BM0AnATNAJwEzQCcBM0AnATNAJwEzQCcBM0AnATNAI8EzQCHBM0AhwTNAIcEzQCHBM0AywTNAMsEzQDLBM0AywTNAK4EzQB6BM0AegTNAHoEzQB6BM0AegTNALQEzQC0BM0AtATNALQEzQBEBM0ARATNAFEEzQCcBM0AUQTNAJwEzQBRBM0AnATNAGsEzQCPBM0AawTNAI8EzQBrBM0AjwTNAGsEzQCPBM0AmwVjAIsEzQC2BM0AhwTNALYEzQCHBM0AtgTNAIcEzQC2BM0AhwTNALYEzQCHBM0AZATNAIwEzQBkBM0AjATNAGQEzQCMBM0AZATNAIwEzQCNBM0ArgTNAK4EzQDLBM0ArgTNAMsEzQCuBM0AywTNAK4EzQDLBM0ArgTNAGIEzQCwBM0ArATNALAEzQDGBM0AywTNAMYEzQDLBM0AxgVjAMsEzQDGBakAywTNAI8EzQCuBM0AjwTNAK4EzQCPBM0ArgTN/7oEzQBqBM0AegTNAGoEzQB6BM0AagTNAHoEzQC1BM0BSQTNALUEzQEQBM0AtQTNARQEzQB2BM0ArwTNAHYEzQCvBM0AdgTNAK8EzQB2BM0ArwTNAHYEzQCvBM0ATATNAI4EzQBMBM0AXQTNAI4EzQBMBPUAjgTNAIsEzQC0BM0AiwTNALQEzQCLBM0AtATNAIsEzQC0BM0AiwTNALQEzQCLBM0AtATNAEkEzQAwBM0APQTNAEQEzQA9BM0AcgTNAKAEzQByBM0AoATNAHIEzQCgBM0AIATNACsEzQBHBM0AegTN/+cEzf/nBM0AXQTNADYEzQA2BM0ANgTNADYEzQA2BM0ANgTNADYEzQBuBM0AyATNAMgEzQDIBM0AyATNANkEzQDZBM0A2QTNANkEzQDCBM0AggTNAIIEzQCCBM0AggTNAIIEzQC1BM0AtQTNALUEzQC1BM0ATQTNADYEzQA2BM0ANgTNAG4EzQBuBM0AbgTNAG4EzQC3BM0AyATNAMgEzQDIBM0AyATNAMgEzQB8BM0AfATNAHwEzQB8BM0AmwTNANkEzQDZBM0A2QTNANkEzQDZBM0AlgTNALQEzQC2BM0A0QTNANEEzQDRBM0AwgTNAMIEzQDCBM0AggTNAIIEzQCCBM0AkATNAJAEzQCQBM0AigTNAIoEzQCKBM0AigTNAF0EzQBdBM0AtQTNALUEzQC1BM0AtQTNALUEzQC1BM0ALwTNAE0EzQBNBM0AuQTNALkEzQC5BM0AUQUxAA8FMf/9BTH/7AThAAkFMf+yBOEABQTNALgEzQBRBM0ArATNALYEzQByBM0AjQTNAK4EzQCsBM0AlATNAI8EzQBqBM0AvwTNAEwEzQA9BM0AVwTNAK4EzQA9BM0AgQTNAIsEzQCkBM0AuATNAJ4EzQC6BM0AegTNALwEzQBiBM0AbgTNALgEzQCeBM0AegTNAJ4EzQBPBM0AtgTNALUEzQB2BM0ArgTNAK4EzQBiBM0AqQTNAKwEzQArBM0AUQTNAKwEzQC1BM0AtgTNAKIEzQCUBM0AjQTNAGoEzQCiBM0AvwTNAGsEzQBMBM0ARQTNAFcEzQCcBM0AhwTNAKUEzQB6BM0ArQTNAI8EzQBEBM0AbgTNAIcEzQC3BM0ArwTNAMsEzQDLBM0A0wTNAKQEzQBEBM0ASQTNADAEzQBJBM0AMATNAEkEzQAwBM0APQTNAEQEzQHuBM0BYgmaAeYEzQCwBM0BzQTNAJQEzQBdBM0AUQTNAJwEzf+JBM0AtgTNAKIEzQCHBM0ApQTNAGUEzQBhBM0AGgTNADUEzQBZBM0AhwTNAGsEzQCPBM0APQTNAEcEzQCuBM0AHQTNABEEzQCuBM0AUQTNAJwEzQBRBM0AnATNACAEzQArBM0AtgTNAIcEzQBaBM0AsQTNALEEzQAdBM0AEQTNAFkEzQCHBM0AogTNAKUEzQCiBM0ApQTNAGoEzQB6BM0AYwTNAF0EzQBjBM0AXQTNAHIEzQCBBM0AKwTNAEQEzQArBM0ARATNACsEzQBEBM0AqwTNAI0EzQCQBM0AkATNAFcEzQBuBM0AiwTNAC8EzQA3BM0AUQTNAJwEzQBRBM0AnATNAFEEzQCcBM3//ATN//gEzQBRBM0AnATNAFEEzQCcBM0AUQTNAJwEzQBRBM0AnATNAFEEzQCcBM0AUQTNAJwEzQBRBM0AnATNAFEEzQCcBM0AtgTNAIcEzQC2BM0AhwTNALYEzQCHBM0AtgTNAIcEzf/yBM3/8wTNALYEzQCHBM0AtgTNAIcEzQC2BM0AhwTNAK4EzQDLBM0ArgTNAMsEzQBqBM0AegTNAGoEzQB6BM0AagTNAHoEzQAABM3/7QTNAGoEzQB6BM0AagTNAHoEzQBqBM0AegTNAGMEzQB3BM0AYwTNAHcEzQBjBM0AdwTNAGMEzQB3BM0AYwTNAHcEzQCLBM0AtATNAIsEzQC0BM0AiwTNALQEzQCLBM0AtATNAIsEzQC0BM0AiwTNALQEzQCLBM0AtATNAD0EzQBEBM0APQTNAEQEzQA9BM0ARATrAIsE6wCLBM0AqQTNAKQEzQCNBM0ApQTNAEwEzQBo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a/RsHmxbbIpsl2yobXttnm3HbdluDW5obtdvdG/hcGRwrnEKcTVxdnGOcapxxXHdcjZyTHJtcodyo3Mjc1hzwHPnc/90F3Q+dFh0WHU+dZh13HYidmB2kXaudsx2+XcUd0N3rXgCeER4cXiYePV5HXlGeXx5qHnEefJ6GHpnesN7C3uCe6J73nwDfDB8X3yEfK587H0AfTx9l326fft+S35iftV/JH9cf3B/m3/hgBSAVICZgLCBVYGagauB54IJglKCa4KXgsmDXIOCg6eDz4PXg9+EIoRthLSE44UhhVCFaoXhhj+GiocAhwiHEIcYh2mHuogaiEuIqIi6iMyI3ojwiQKJFIkmiTGJQ4lViWeJeYmLiZ2Jr4nBidOJ5Yn3igmKG4otij+KUYpjinWKh4qWiqaKtorGitWK5Irziv6LDYsciyuLOotJi1WLZYt0i4OLkouhi7CLwIvPi96L7Yv8jAuMG4wqjDyMS4xdjGyMxI1gjXKNgo2UjaSNto3FjdeN5o34jgqOHI4rjj2OTI5ejm2Ow49Dj1WPZI92j4WPl4+mj7iPx4/Zj+iP+pAMkB6QLpBAkFGQY5BykMWRK5E9kU+RYZFzkYWRl5GpkbuRzZHfkfGSA5IVkieSNpJIklqSbJJ7koeSmZKokrqSyZLbkuuS/ZMMkx6TMJNCk1GTY5Nzk4WTlZOmk7eTyZPbk+2T/JQOlCCUK5Q6lEaUWJRolHqUipSclK2Uv5TOlOCU75UBlRGVh5XmlfiWB5YZlimWO5ZNll2Wb5Z+lpCWn5axlsGW05bilvSXBpcXlyaXNZdEl1SXY5dzl4OXlJekl7OXwpfRl+CX8JgAmA+YH5gumD6YTphemG2YfJiMmJyYq5i6mMmY2JkymUGZUJlfmW6ZfZmMmZuZqpn/mg6aHZosmjuaTZpdmm2afJqLmt2a7Jr8mw6bHpswm0KbVJtkm3abhZuUm6Obs5vCm9Sb45vynAGcDJwbnC2cPJxMnFucapx6nIqdAZ0RnSCdL50/nU6dXZ1pnXWdhZ2VnaGdrZ25ncqd0p3aneKd6p3ynfqeAp4KnhKeGp4iniqeMp46nkyeXp5tnnyei56cnq2etZ69nsWezZ7VnuSe858CnxOfJJ82n0ifuJ/An9Kf2p/in/SgBqAOoBagHqAmoDigQKBIoFCgWKBgoGigcKB4oICgiKCQ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EAkIHSsBIREhFSMGBhUUFjMWNjcXBgYjIi4CNTQ2NyERIRUhESEDxf3AAp6HTl4kKiA1EB8cVUEpRjQeUEj94QNV/WgCQAIO/omXKm9CIikBEwh5EBwYMEcvP381BI2Z/rL//wDIAAAEIwYlAiYBoQAAAQYAneU4AAazAQE4Myv//wB8//AEQQYkAiYBowAAAQYAnHQ3AAazAQE3Myv//wB8//AEQQYmAiYBowAAAQYAnv10AAazAQF0Myv//wB8//AEQQX1AiYBowAAAQYAn/03AAazAQE3Myv//wB8/isEQQSdAiYBowAAAQcBkQCd/tUACbEBAbj+1bAzKwD//wCbAAAD+QYkAiYBpAAAAQcAnACeADcABrMBATczK///ANkAAAQQBhICJgGlAAABBwCiAKAAIQAGswEBITMr//8A2QAABBAFugImAaUAAAEGAG4gCgAGswEBCjMr//8A2QAABBAGCgImAaUAAAEGAJ4cWAAGswEBWDMrAAEA2f5PBBAEjAAhADlANhABBAMRAQUEAkoAAAgBAQIAAWEHAQICA1kGAQMDPUsABAQFWwAFBUkFTBERFyUlEREREAkIHSsTIRUhESEVIQYGFRQWMxY2NxcGBiMiLgI1NDY3ITUhESHZAzf+vQFD/upOXiQqIDUQHxxVQSlGNB5QSP6UATv+xQSMofy1oCpvQiIpARMIeRAcGDBHLz9/NaADSwD//wDZAAAEEAXZAiYBpQAAAQYAnxwbAAazAQEbMyv//wCW//AEdwYkAiYBpgAAAQcAnAFZADcABrMBATczK///ALT+NASABI0CJgGnAAABBwGRAGv+3gAJsQEBuP7esDMrAP//ALYAAARSBfwCJgGoAAABBwBz/xwAMwAGswEBMzMr//8A0f42BFIEjQImAagAAAEHAZEAaP7gAAmxAQG4/uCwMysA//8A0QAABFIEjQImAagAAAEHAWgAlP53AAmxAQG4/newMysA//8A0QAABFIEjQImAagAAAEHAJ8AGf03AAmxAQG4/TewMysA//8AwgAABA8F/AImAaoAAAEHAHMAzgAzAAazAQEzMyv//wDC/jIEDwSNAiYBqgAAAQcBkQDv/twACbEBAbj+3LAzKwD//wDCAAAEDwYlAiYBqgAAAQYAnVk4AAazAQE4Myv//wCC//AESgXWAiYBqwAAAQYAbicm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KwD//wCH/+wERQXiAiYARwAAAQYAQpAZAAazAgEZMyv//wClAAAEJwXMAiYA7AAAAQcAQv99AAMABrMBAQMzK///AGUAAARyBbACBgC2AAD//wBh/igEgAQ6AgYAygAA//8AGgAABOEHQgImARUAAAEHAKkEWQFUAAmxAQK4AVSwMysA//8ANQAABGAGGgImARYAAAEHAKkEMAAsAAazAQIsMyv//wBZ/i8EcAXEAiYA2AAAAQYBzvGWAAmxAQG4/5awMysA//8Ah/45BEoETQImAOsAAAEGAc4IoAAJsQEBuP+gsDMrAP//AGv+OQRdBcQCJgAlAAABBgHO/6AACbEBAbj/oLAzKwD//wCP/jkEMwROAiYARQAAAQYBzhOgAAmxAQG4/6CwMysA//8APQAABHkFsAIGADsAAP//AEf+YASWBDoCBgC6AAD//wCuAAAEHgWwAgYAKwAA//8AHQAABK4HSgImANcAAAEHAJ4ADQGYAAmxAQG4AZiwMysA//8AEQAABKwF8wImAOoAAAEGAJ70QQAGswEBQTMr//8ArgAABB4FsAIGACsAAP//AFEAAASQB0oCJgAjAAABBwCeAA8BmAAJsQIBuAGYsDMrAP//AJz/7AQ2BggCJgBDAAABBgCeC1YABrMCAVYzK///AFEAAASQByACJgAjAAABBwBoAA8BWwAJsQICuAFbsDMrAP//AJz/7AQ2Bd4CJgBDAAABBgBoCxkABrMCAhkzK///ACAAAASrBbACBgB/AAD//wAr/+wEqQROAgYAhAAA//8AtgAABDQHSgImACcAAAEHAJ4ABQGYAAmxAQG4AZiwMysA//8Ah//sBEUGCQImAEcAAAEGAJ4GVwAGswIBVzMr//8AWv/rBFcG8gImAUMAAAEHAGj/+wEtAAmxAgK4AS2wMysA//8Asf/sBF8ETwIGAJsAAP//ALH/7ARfBd8CJgCbAAABBgBoKBoABrMCAhozK///AB0AAASuByACJgDXAAABBwBoAA0BWwAJsQECuAFbsDMrAP//ABEAAASsBckCJgDqAAABBgBo9AQABrMBAgQzK///AFn/6wRwBzUCJgDYAAABBwBo//wBcAAJsQECuAFwsDMrAP//AIf/7QRKBd0CJgDrAAABBgBoChgABrMBAhgzK///AKIAAAQqBu4CJgDZAAABBwBu//0BPgAJsQEBuAE+sDMrAP//AKUAAAQnBaQCJgDsAAABBgBu+PQACbEBAbj/9LAzKwD//wCiAAAEKgcUAiYA2QAAAQcAaP/5AU8ACbEBArgBT7AzKwD//wClAAAEJwXJAiYA7AAAAQYAaPQEAAazAQIEMyv//wBq/+wEYQc1AiYAMQAAAQcAaAATAXAACbECArgBcLAzKwD//wB6/+wEUgXeAiYAUQAAAQYAaAAZAAazAgIZMyv//wBj/+wEWgXEAgYBEwAA//8AXf/sBDUETgIGARQAAP//AGP/7ARaBxsCJgETAAABBwBoABQBVgAJsQMCuAFWsDMrAP//AF3/7AQ1BfoCJgEUAAABBgBo0DUABrMDAjUzK///AHL/7ARTBzYCJgDjAAABBwBo//EBcQAJsQECuAFxsDMrAP//AIH/7AQ6Bd4CJgD7AAABBgBo7RkABrMBAhkzK///ACv/6wS1BvoCJgDbAAABBwBuACUBSgAJsQEBuAFKsDMrAP//AET+SwSFBaUCJgBbAAABBgBuF/UACbEBAbj/9bAzKwD//wAr/+sEtQcgAiYA2wAAAQcAaAAhAVsACbEBArgBW7AzKwD//wBE/ksEhQXKAiYAWwAAAQYAaBMFAAazAQIFMyv//wAr/+sEtQdKAiYA2wAAAQcAowCnAVsACbEBArgBW7AzKwD//wBE/ksEhQX0AiYAWwAAAQcAowCZAAUABrMBAgUzK///AKsAAAQnByACJgDdAAABBwBo/7MBWwAJsQECuAFbsDMrAP//AI0AAAQnBckCJgD1AAABBgBoGwQABrMBAgQzK///AJAAAARLByACJgDhAAABBwBo/+EBWwAJsQMCuAFbsDMrAP//AJAAAAQ/BckCJgD5AAABBgBoQwQABrMDAgQzK///AFf+SwUWBbACJgA6AAAABwHQAgQAAP//AG7+SwSlBDoCJgBaAAAABwHQAZMAAP//AIv/7AQcBgACBgBGAAD//wAv/ksE4wWwAiYA2gAAAAcB0AHRAAD//wA3/ksE3gQ6AiYA7gAAAAcB0AHMAAD//wBR/qgEkAWwAiYAIwAAAAcAqgTfAAD//wCc/qgENgROAiYAQwAAAAcAqgSjAAD//wBRAAAEkAfGAiYAIwAAAQcAqATIAVIACbECAbgBUrAzKwD//wCc/+wENgaEAiYAQwAAAQcAqATEABAABrMCARAzK///AFEAAATpB+4CJgAjAAABBwGa//UBWQAJsQICuAFZsDMrAP//AJz/7ATlBqwCJgBDAAABBgGa8RcABrMCAhczK/////wAAASQB90CJgAjAAABBwGZ/+wBSAAJsQICuAFIsDMrAP////j/7AQ2BpsCJgBDAAABBgGZ6AYABrMCAgYzK///AFEAAAS7CAQCJgAjAAABBwGYAAEBNQAJsQICuAE1sDMrAP//AJz/7AS4BsMCJgBDAAABBgGY/vQACbECArj/9LAzKwD//wBRAAAEkAgvAiYAIwAAAQcBl//zATYACbECArgBNrAzKwD//wCc/+wENgbuAiYAQwAAAQYBl+/1AAmxAgK4//WwMysA//8AUf6oBJAHSAImACMAAAAnAJwAhwFbAQcAqgTfAAAACbECAbgBW7AzKwD//wCc/qgENgYGAiYAQwAAACcAnACDABkBBwCqBKMAAAAGswIBGTMr//8AUQAABJAH3gImACMAAAEHAcIAAAFUAAmxAgK4AVSwMysA//8AnP/sBDYGnAImAEMAAAEGAcL8EgAGswICEjMr//8AUQAABJAIIQImACMAAAEHAZsAAwF6AAmxAgK4AXqwMysA//8AnP/sBDYG3wImAEMAAAEGAZsAOAAGswICODMr//8AUQAABJAITAImACMAAAEHAbb/9AFJAAmxAgK4AUmwMysA//8AnP/sBDYHCgImAEMAAAEGAbbwBwAGswICBzMr//8AUQAABJAIIQImACMAAAEHAc3/1AFRAAmxAgK4AVGwMysA//8AnP/sBDYG3wImAEMAAAEGAc3QDwAGswICDzMr//8AUf6oBJAHSgImACMAAAAnAJ4ADwGYAQcAqgTfAAAACbECAbgBmLAzKwD//wCc/qgENgYIAiYAQwAAACYAngtWAQcAqgSjAAAABrMCAVYzK///ALb+sgQ0BbACJgAnAAABBwCqBNIACgAGswEBCjMr//8Ah/6oBEUETgImAEcAAAAHAKoE4wAA//8AtgAABDQHxgImACcAAAEHAKgEvgFSAAmxAQG4AVKwMysA//8Ah//sBEUGhQImAEcAAAEHAKgEvwARAAazAgERMyv//wC2AAAENAdSAiYAJwAAAQcAogCJAWEACbEBAbgBYbAzKwD//wCH/+wERQYRAiYARwAAAQcAogCKACAABrMCASAzK///ALYAAATfB+4CJgAnAAABBwGa/+sBWQAJsQECuAFZsDMrAP//AIf/7ATgBq0CJgBHAAABBgGa7BgABrMCAhgzK/////IAAAQ0B90CJgAnAAABBwGZ/+IBSAAJsQECuAFIsDMrAP////P/7ARFBpwCJgBHAAABBgGZ4wcABrMCAgczK///ALYAAASyCAQCJgAnAAABBwGY//gBNQAJsQECuAE1sDMrAP//AIf/7ASzBsQCJgBHAAABBgGY+fUACbECArj/9bAzKwD//wC2AAAENAgvAiYAJwAAAQcBl//pATYACbEBArgBNrAzKwD//wCH/+wERQbvAiYARwAAAQYBl+r2AAmxAgK4//awMysA//8Atv6yBDQHSAImACcAAAAnAJwAfQFbAQcAqgTSAAoAD7EBAbgBW7AzK7MCAQozKwD//wCH/qgERQYHAiYARwAAACYAnH4aAQcAqgTjAAAABrMCARozK///AK4AAAQeB8YCJgArAAABBwCoBIoBUgAJsQEBuAFSsDMrAP//AMsAAARVBnACJgCKAAABBwCoBO3//AAJsQEBuP/8sDMrAP//AK7+sgQeBbACJgArAAABBwCqBJ4ACgAGswEBCjMr//8Ay/6yBFUFwwImAEsAAAEHAKoFBgAKAAazAgEKMyv//wBq/qAEYQXEAiYAMQAAAQcAqgTf//gACbECAbj/+LAzKwD//wB6/p8EUgROAiYAUQAAAQcAqgTN//cACbECAbj/97AzKwD//wBq/+wEYQfbAiYAMQAAAQcAqATMAWcACbECAbgBZ7AzKwD//wB6/+wEUgaEAiYAUQAAAQcAqAS5ABAABrMCARAzK///AGr/7ATtCAMCJgAxAAABBwGa//kBbgAJsQICuAFusDMrAP//AHr/7ATaBqwCJgBRAAABBgGa5hcABrMCAhczK///AAD/7ARhB/ICJgAxAAABBwGZ//ABXQAJsQICuAFdsDMrAP///+3/7ARSBpsCJgBRAAABBgGZ3QYABrMCAgYzK///AGr/7AS/CBkCJgAxAAABBwGYAAUBSgAJsQICuAFKsDMrAP//AHr/7AStBsMCJgBRAAABBgGY8/QACbECArj/9LAzKwD//wBq/+wEYQhEAiYAMQAAAQcBl//3AUsACbECArgBS7AzKwD//wB6/+wEUgbuAiYAUQAAAQYBl+T1AAmxAgK4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AGUAbgBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAQQBwAGEAYwBoAGUAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMgAuADAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAAAACAAAAAAAA/2oAZAAAAAAAAAAAAAAAAAAAAAAAAAAABBEAAAECAAIAAwAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCjAIQAhQC9AJYA6ACGAI4AiwCdAKkApACKAQMAgwCTAPIA8wCNAJcAiAEEAN4A8QCeAKoA9QD0APYAogCQAPAAkQDtAIkAoADqALgAoQDuAQUA1wEGAQcBCADiAOMBCQEKALAAsQELAKYBDAENAQ4BDwEQAREA2ADhANsA3ADdAOAA2QDfARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQAnwElASYBJwEoASkBKgErASwBLQEuAS8AmwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPALIAswHQALYAtwDEAdEAtAC1AMUAggDCAIcB0gCrAMYAvgC/ALwB0wHUAdUB1gHXAdgB2QHaAIwB2wHcAd0B3gHfAJgAmgCZAO8ApQCSAJwApwCPAJQAlQC5AeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjEArAIyAjMA6QI0AjUCNgCtAMkAxwCuAGIAYwI3AGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnANYA1ADVAGgA6wBqAGkAawBtAGwAbgI4AG8AcQBwAHIAcwB1AHQAdgB3AHgAegB5AHsAfQB8AH8AfgCAAIEA7AC6AjkCOgI7AjwCPQI+AP0A/gI/AkACQQJCAP8BAAJDAkQCRQJGAkcCSAJJAkoCSwJMAk0CTgJPAlAA+AD5AlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggD7APwCgwKEAOQA5QKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsAuwKcAp0CngKfAOYA5wKgAqECogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+Ar8CwALBAsICwwLEAsUCxgLHAsgCyQLKAssCzALNAs4CzwLQAtEC0gLTAtQC1QLWAtcC2ALZAtoC2wLcAt0C3gLfAuAC4QLiAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuAu8C8ALxAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4C/wMAAwEDAgMDAwQDBQMGAwcDCAMJAwoDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbAxwDHQMeAx8DIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UDhgOHA4gDiQOKA4sDjAONA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9MD1APVA9YD1wPYA9kD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gD6QPqA+sD7APtA+4D7wPwA/ED8gPzA/QD9QP2A/cD+AP5A/oD+wP8A/0D/gP/BAAEAQQCBAMEBAQFBAYEBwQIBAkECgQLBAwEDQQOBA8EEAQRBBIEEwQUBBUEFgD3BBcEGAQZAAQETlVMTAZtYWNyb24OcGVyaW9kY2VudGVyZWQESGJhcgJJSgJpagxrZ3JlZW5sYW5kaWMDRW5nA2VuZwVsb25ncwVPaG9ybgVvaG9ybgVVaG9ybgV1aG9ybgd1bmkwMjM3BXNjaHdhB3VuaTAyRjMJZ3JhdmVjb21iCWFjdXRlY29tYgl0aWxkZWNvbWIEaG9vawd1bmkwMzBGCGRvdGJlbG93BXRvbm9zDWRpZXJlc2lzdG9ub3MJYW5vdGVsZWlhBUdhbW1hBURlbHRhBVRoZXRhBkxhbWJkYQJYaQJQaQVTaWdtYQNQaGkDUHNpBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBmxhbWJkYQJ4aQNyaG8Gc2lnbWExBXNpZ21hA3RhdQd1cHNpbG9uA3BoaQNwc2kFb21lZ2EHdW5pMDNEMQd1bmkwM0QyB3VuaTAzRDYHdW5pMDQwMgd1bmkwNDA0B3VuaTA0MDkHdW5pMDQwQQd1bmkwNDBCB3VuaTA0MEYHdW5pMDQxMQd1bmkwNDE0B3VuaTA0MTYHdW5pMDQxNwd1bmkwNDE4B3VuaTA0MUIHdW5pMDQyMwd1bmkwNDI2B3VuaTA0MjcHdW5pMDQyOAd1bmkwNDI5B3VuaTA0MkEHdW5pMDQyQgd1bmkwNDJDB3VuaTA0MkQHdW5pMDQyRQd1bmkwNDJGB3VuaTA0MzEHdW5pMDQzMgd1bmkwNDMzB3VuaTA0MzQHdW5pMDQzNgd1bmkwNDM3B3VuaTA0MzgHdW5pMDQzQQd1bmkwNDNCB3VuaTA0M0MHdW5pMDQzRAd1bmkwNDNGB3VuaTA0NDIHdW5pMDQ0NAd1bmkwNDQ2B3VuaTA0NDcHdW5pMDQ0OAd1bmkwNDQ5B3VuaTA0NEEHdW5pMDQ0Qgd1bmkwNDRDB3VuaTA0NEQHdW5pMDQ0RQd1bmkwNDRGB3VuaTA0NTIHdW5pMDQ1NAd1bmkwNDU5B3VuaTA0NUEHdW5pMDQ1Qgd1bmkwNDVGB3VuaTA0NjAHdW5pMDQ2MQd1bmkwNDYzB3VuaTA0NjQHdW5pMDQ2NQd1bmkwNDY2B3VuaTA0NjcHdW5pMDQ2OAd1bmkwNDY5B3VuaTA0NkEHdW5pMDQ2Qgd1bmkwNDZDB3VuaTA0NkQHdW5pMDQ2RQd1bmkwNDZGB3VuaTA0NzIHdW5pMDQ3Mwd1bmkwNDc0B3VuaTA0NzUHdW5pMDQ3OAd1bmkwNDc5B3VuaTA0N0EHdW5pMDQ3Qgd1bmkwNDdDB3VuaTA0N0QHdW5pMDQ3RQd1bmkwNDdGB3VuaTA0ODAHdW5pMDQ4MQd1bmkwNDgyB3VuaTA0ODMHdW5pMDQ4NAd1bmkwNDg1B3VuaTA0ODYHdW5pMDQ4OAd1bmkwNDg5B3VuaTA0OEUHdW5pMDQ4Rgd1bmkwNDkwB3VuaTA0OTEHdW5pMDQ5NAd1bmkwNDk1B3VuaTA0OUMHdW5pMDQ5RAd1bmkwNEEwB3VuaTA0QTEHdW5pMDRBNAd1bmkwNEE1B3VuaTA0QTYHdW5pMDRBNwd1bmkwNEE4B3VuaTA0QTkHdW5pMDRCNAd1bmkwNEI1B3VuaTA0QjgHdW5pMDRCOQd1bmkwNEJBB3VuaTA0QkMHdW5pMDRCRAd1bmkwNEMzB3VuaTA0QzQHdW5pMDRDNwd1bmkwNEM4B3VuaTA0RDgHdW5pMDRFMAd1bmkwNEUxB3VuaTA0RkEHdW5pMDRGQgd1bmkwNTAwB3VuaTA1MDIHdW5pMDUwMwd1bmkwNTA0B3VuaTA1MDUHdW5pMDUwNgd1bmkwNTA3B3VuaTA1MDgHdW5pMDUwOQd1bmkwNTBBB3VuaTA1MEIHdW5pMDUwQwd1bmkwNTBEB3VuaTA1MEUHdW5pMDUwRgd1bmkwNTEwB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCDXVuZGVyc2NvcmVkYmwNcXVvdGVyZXZlcnNlZAd1bmkyMDI1B3VuaTIwNzQJbnN1cGVyaW9yBGxpcmEGcGVzZXRhBEV1cm8HdW5pMjEwNQd1bmkyMTEzB3VuaTIxMTYJZXN0aW1hdGVkCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzC2NvbW1hYWNjZW50B3VuaUZFRkYHdW5pRkZGQwd1bmlGRkZECXplcm8uc21jcAd0d28uc3VwE2NpcmN1bWZsZXh0aWxkZWNvbWISY2lyY3VtZmxleGhvb2tjb21iE2NpcmN1bWZsZXhncmF2ZWNvbWITY2lyY3VtZmxleGFjdXRlY29tYg5icmV2ZWdyYXZlY29tYhFjb21tYWFjY2VudHJvdGF0ZQZBLnNtY3AGQi5zbWNwBkMuc21jcAZELnNtY3AGRS5zbWNwBkYuc21jcAZHLnNtY3AGSC5zbWNwBkkuc21jcAZKLnNtY3AGSy5zbWNwBkwuc21jcAZNLnNtY3AGTi5zbWNwBk8uc21jcAZRLnNtY3AGUi5zbWNwBlMuc21jcAZULnNtY3AGVS5zbWNwBlYuc21jcAZXLnNtY3AGWC5zbWNwBlkuc21jcAZaLnNtY3ANYnJldmVob29rY29tYghvbmUuc21jcAh0d28uc21jcAp0aHJlZS5zbWNwCWZvdXIuc21jcAlmaXZlLnNtY3AIc2l4LnNtY3AKc2V2ZW4uc21jcAplaWdodC5zbWNwCW5pbmUuc21jcAh6ZXJvLnN1cAdvbmUuc3VwDmJyZXZlYWN1dGVjb21iCXRocmVlLnN1cAhmb3VyLnN1cAhmaXZlLnN1cAdzaXguc3VwCXNldmVuLnN1cAllaWdodC5zdXAIbmluZS5zdXAIY3Jvc3NiYXIJcmluZ2FjdXRlCWRhc2lhb3hpYQ5icmV2ZXRpbGRlY29tYgtjeXJpbGxpY3RpYxBjeXJpbGxpY2hvb2tsZWZ0DGN5cmlsbGljaG9vawVnLmFsdA5sYXJnZXJpZ2h0aG9vawVpLmFsdAVsLmFsdAhvbmUubG51bQpzZXZlbi5sbnVtBlAuc21jcAdjaGkuYWx0BVIuYWx0BUsuYWx0BGkuaXQEbC5pdAdvbmUuYWx0BmF0LmFsdA1hbXBlcnNhbmQuYWx0Ckdlcm1hbmRibHMPR2VybWFuZGJscy5zbWNwDWN5cmlsbGljYnJldmUHdW5pMDBBRAZEY3JvYXQEaGJhcgRUYmFyBHRiYXIKQXJpbmdhY3V0ZQphcmluZ2FjdXRlB0FtYWNyb24HYW1hY3JvbgZBYnJldmUGYWJyZXZlB0FvZ29uZWsHYW9nb25lawtDY2lyY3VtZmxleAtjY2lyY3VtZmxleAd1bmkwMTBBB3VuaTAxMEIGRGNhcm9uBmRjYXJvbgdFbWFjcm9uB2VtYWNyb24GRWJyZXZlBmVicmV2ZQpFZG90YWNjZW50CmVkb3RhY2NlbnQHRW9nb25lawdlb2dvbmVrBkVjYXJvbgZlY2Fyb24LR2NpcmN1bWZsZXgLZ2NpcmN1bWZsZXgHdW5pMDEyMAd1bmkwMTIxDEdjb21tYWFjY2VudAxnY29tbWFhY2NlbnQLSGNpcmN1bWZsZXgLaGNpcmN1bWZsZXgGSXRpbGRlBml0aWxkZQdJbWFjcm9uB2ltYWNyb24GSWJyZXZlBmlicmV2ZQdJb2dvbmVrB2lvZ29uZWsKSWRvdGFjY2VudAtKY2lyY3VtZmxleAtqY2lyY3VtZmxleAxLY29tbWFhY2NlbnQMa2NvbW1hYWNjZW50BkxhY3V0ZQZsYWN1dGUMTGNvbW1hYWNjZW50DGxjb21tYWFjY2VudAZMY2Fyb24GbGNhcm9uBExkb3QEbGRvdAZOYWN1dGUGbmFjdXRlDE5jb21tYWFjY2VudAxuY29tbWFhY2NlbnQGTmNhcm9uBm5jYXJvbgtuYXBvc3Ryb3BoZQdPbWFjcm9uB29tYWNyb24GT2JyZXZlBm9icmV2ZQ1PaHVuZ2FydW1sYXV0DW9odW5nYXJ1bWxhdXQGUmFjdXRlBnJhY3V0ZQxSY29tbWFhY2NlbnQMcmNvbW1hYWNjZW50BlJjYXJvbgZyY2Fyb24GU2FjdXRlBnNhY3V0ZQtTY2lyY3VtZmxleAtzY2lyY3VtZmxleAd1bmkwMjE4B3VuaTAyMTkHdW5pMDIxQQd1bmkwMjFCB3VuaTAxNjIMdW5pMDE2Mi5zbWNwB3VuaTAxNjMGVGNhcm9uBnRjYXJvbgZVdGlsZGUGdXRpbGRlB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsLV2NpcmN1bWZsZXgLd2NpcmN1bWZsZXgLWWNpcmN1bWZsZXgLeWNpcmN1bWZsZXgGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQHQUVhY3V0ZQdhZWFjdXRlC09zbGFzaGFjdXRlC29zbGFzaGFjdXRlC0Rjcm9hdC5zbWNwCEV0aC5zbWNwCVRiYXIuc21jcAtBZ3JhdmUuc21jcAtBYWN1dGUuc21jcBBBY2lyY3VtZmxleC5zbWNwC0F0aWxkZS5zbWNwDkFkaWVyZXNpcy5zbWNwCkFyaW5nLnNtY3APQXJpbmdhY3V0ZS5zbWNwDUNjZWRpbGxhLnNtY3ALRWdyYXZlLnNtY3ALRWFjdXRlLnNtY3AQRWNpcmN1bWZsZXguc21jcA5FZGllcmVzaXMuc21jcAtJZ3JhdmUuc21jcAtJYWN1dGUuc21jcBBJY2lyY3VtZmxleC5zbWNwDklkaWVyZXNpcy5zbWNwC050aWxkZS5zbWNwC09ncmF2ZS5zbWNwC09hY3V0ZS5zbWNwEE9jaXJjdW1mbGV4LnNtY3ALT3RpbGRlLnNtY3AOT2RpZXJlc2lzLnNtY3ALVWdyYXZlLnNtY3ALVWFjdXRlLnNtY3AQVWNpcmN1bWZsZXguc21jcA5VZGllcmVzaXMuc21jcAtZYWN1dGUuc21jcAxBbWFjcm9uLnNtY3ALQWJyZXZlLnNtY3AMQW9nb25lay5zbWNwC0NhY3V0ZS5zbWNwEENjaXJjdW1mbGV4LnNtY3AMdW5pMDEwQS5zbWNwC0NjYXJvbi5zbWNwC0RjYXJvbi5zbWNwDEVtYWNyb24uc21jcAtFYnJldmUuc21jcA9FZG90YWNjZW50LnNtY3AMRW9nb25lay5zbWNwC0VjYXJvbi5zbWNwEEdjaXJjdW1mbGV4LnNtY3ALR2JyZXZlLnNtY3AMdW5pMDEyMC5zbWNwEUdjb21tYWFjY2VudC5zbWNwEEhjaXJjdW1mbGV4LnNtY3ALSXRpbGRlLnNtY3AMSW1hY3Jvbi5zbWNwC0licmV2ZS5zbWNwDElvZ29uZWsuc21jcA9JZG90YWNjZW50LnNtY3AQSmNpcmN1bWZsZXguc21jcBFLY29tbWFhY2NlbnQuc21jcAtMYWN1dGUuc21jcBFMY29tbWFhY2NlbnQuc21jcAtMY2Fyb24uc21jcAlMZG90LnNtY3ALTmFjdXRlLnNtY3ARTmNvbW1hYWNjZW50LnNtY3ALTmNhcm9uLnNtY3AMT21hY3Jvbi5zbWNwC09icmV2ZS5zbWNwEk9odW5nYXJ1bWxhdXQuc21jcAtSYWN1dGUuc21jcBFSY29tbWFhY2NlbnQuc21jcAtSY2Fyb24uc21jcAtTYWN1dGUuc21jcBBTY2lyY3VtZmxleC5zbWNwDVNjZWRpbGxhLnNtY3ALU2Nhcm9uLnNtY3ARVGNvbW1hYWNjZW50LnNtY3ALVGNhcm9uLnNtY3ALVXRpbGRlLnNtY3AMVW1hY3Jvbi5zbWNwC1VicmV2ZS5zbWNwClVyaW5nLnNtY3ASVWh1bmdhcnVtbGF1dC5zbWNwDFVvZ29uZWsuc21jcBBXY2lyY3VtZmxleC5zbWNwEFljaXJjdW1mbGV4LnNtY3AOWWRpZXJlc2lzLnNtY3ALWmFjdXRlLnNtY3APWmRvdGFjY2VudC5zbWNwC1pjYXJvbi5zbWNwCkFscGhhdG9ub3MMRXBzaWxvbnRvbm9zCEV0YXRvbm9zCUlvdGF0b25vcwxPbWljcm9udG9ub3MMVXBzaWxvbnRvbm9zCk9tZWdhdG9ub3MRaW90YWRpZXJlc2lzdG9ub3MFQWxwaGEEQmV0YQdFcHNpbG9uBFpldGEDRXRhBElvdGEFS2FwcGECTXUCTnUHT21pY3JvbgNSaG8DVGF1B1Vwc2lsb24DQ2hpDElvdGFkaWVyZXNpcw9VcHNpbG9uZGllcmVzaXMKYWxwaGF0b25vcwxlcHNpbG9udG9ub3MIZXRhdG9ub3MJaW90YXRvbm9zFHVwc2lsb25kaWVyZXNpc3Rvbm9zBWthcHBhB29taWNyb24HdW5pMDNCQwJudQNjaGkMaW90YWRpZXJlc2lzD3Vwc2lsb25kaWVyZXNpcwxvbWljcm9udG9ub3MMdXBzaWxvbnRvbm9zCm9tZWdhdG9ub3MHdW5pMDQwMQd1bmkwNDAzB3VuaTA0MDUHdW5pMDQwNgd1bmkwNDA3B3VuaTA0MDgHdW5pMDQxQQd1bmkwNDBDB3VuaTA0MEUHdW5pMDQxMAd1bmkwNDEyB3VuaTA0MTMHdW5pMDQxNQd1bmkwNDE5B3VuaTA0MUMHdW5pMDQxRAd1bmkwNDFFB3VuaTA0MUYHdW5pMDQyMAd1bmkwNDIxB3VuaTA0MjIHdW5pMDQyNAd1bmkwNDI1B3VuaTA0MzAHdW5pMDQzNQd1bmkwNDM5B3VuaTA0M0UHdW5pMDQ0MAd1bmkwNDQxB3VuaTA0NDMHdW5pMDQ0NQd1bmkwNDUxB3VuaTA0NTMHdW5pMDQ1NQd1bmkwNDU2B3VuaTA0NTcHdW5pMDQ1OAd1bmkwNDVDB3VuaTA0NUUGV2dyYXZlBndncmF2ZQZXYWN1dGUGd2FjdXRlCVdkaWVyZXNpcwl3ZGllcmVzaXMGWWdyYXZlBnlncmF2ZQZtaW51dGUGc2Vjb25kCWV4Y2xhbWRibAd1bmkwMUYwB3VuaTAyQkMHdW5pMUUzRQd1bmkxRTNGB3VuaTFFMDAHdW5pMUUwMQd1bmkxRjREB3VuaTA0MDAHdW5pMDQwRAd1bmkwNDUwB3VuaTA0NUQHdW5pMDQ3MAd1bmkwNDcxB3VuaTA0NzYHdW5pMDQ3Nwd1bmkwNDk4B3VuaTA0OTkHdW5pMDRBQQd1bmkwNEFCB3VuaTA0QUUHdW5pMDRBRgd1bmkwNEMwB3VuaTA0QzEHdW5pMDRDMgd1bmkwNENGB3VuaTA0RDAHdW5pMDREMQd1bmkwNEQyB3VuaTA0RDMHdW5pMDRENAd1bmkwNEQ1B3VuaTA0RDYHdW5pMDRENwd1bmkwNERBB3VuaTA0RDkHdW5pMDREQgd1bmkwNERDB3VuaTA0REQHdW5pMDRERQd1bmkwNERGB3VuaTA0RTIHdW5pMDRFMwd1bmkwNEU0B3VuaTA0RTUHdW5pMDRFNgd1bmkwNEU3B3VuaTA0RTgHdW5pMDRFOQd1bmkwNEVBB3VuaTA0RUIHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RUUHdW5pMDRFRgd1bmkwNEYwB3VuaTA0RjEHdW5pMDRGMgd1bmkwNEYzB3VuaTA0RjQHdW5pMDRGNQd1bmkwNEY4B3VuaTA0RjkHdW5pMDRGQwd1bmkwNEZEB3VuaTA1MDEHdW5pMDUxMgd1bmkwNTEzB3VuaTFFQTAHdW5pMUVBMQd1bmkxRUEyB3VuaTFFQTMHdW5pMUVBNAd1bmkxRUE1B3VuaTFFQTYHdW5pMUVBNwd1bmkxRUE4B3VuaTFFQTkHdW5pMUVBQQd1bmkxRUFCB3VuaTFFQUMHdW5pMUVBRAd1bmkxRUFFB3VuaTFFQUYHdW5pMUVCMAd1bmkxRUIxB3VuaTFFQjIHdW5pMUVCMwd1bmkxRUI0B3VuaTFFQjUHdW5pMUVCNgd1bmkxRUI3B3VuaTFFQjgHdW5pMUVCOQd1bmkxRUJBB3VuaTFFQkIHdW5pMUVCQwd1bmkxRUJEB3VuaTFFQkUHdW5pMUVCRgd1bmkxRUMwB3VuaTFFQzEHdW5pMUVDMgd1bmkxRUMzB3VuaTFFQzQHdW5pMUVDNQd1bmkxRUM2B3VuaTFFQzcHdW5pMUVDOAd1bmkxRUM5B3VuaTFFQ0EHdW5pMUVDQgd1bmkxRUNDB3VuaTFFQ0QHdW5pMUVDRQd1bmkxRUNGB3VuaTFFRDAHdW5pMUVEMQd1bmkxRUQyB3VuaTFFRDMHdW5pMUVENAd1bmkxRUQ1B3VuaTFFRDYHdW5pMUVENwd1bmkxRUQ4B3VuaTFFRDkHdW5pMUVEQQd1bmkxRURCB3VuaTFFREMHdW5pMUVERAd1bmkxRURFB3VuaTFFREYHdW5pMUVFMAd1bmkxRUUxB3VuaTFFRTIHdW5pMUVFMwd1bmkxRUU0B3VuaTFFRTUHdW5pMUVFNgd1bmkxRUU3B3VuaTFFRTgHdW5pMUVFOQd1bmkxRUVBB3VuaTFFRUIHdW5pMUVFQwd1bmkxRUVEB3VuaTFFRUUHdW5pMUVFRgd1bmkxRUYwB3VuaTFFRjEHdW5pMUVGNAd1bmkxRUY1B3VuaTFFRjYHdW5pMUVGNwd1bmkxRUY4B3VuaTFFRjkGZGNyb2F0B3VuaTIwQUIHdW5pMDQ5QQd1bmkwNDlCB3VuaTA0QTIHdW5pMDRBMwd1bmkwNEFDB3VuaTA0QUQHdW5pMDRCMgd1bmkwNEIzB3VuaTA0QjYHdW5pMDRCNwd1bmkwNENCB3VuaTA0Q0MHdW5pMDRGNgd1bmkwNEY3B3VuaTA0OTYHdW5pMDQ5Nwd1bmkwNEJFB3VuaTA0QkYHdW5pMDRCQgd1bmkwNDhEB3VuaTA0OEMHdW5pMDQ2Mgd1bmkwNDkyB3VuaTA0OTMHdW5pMDQ5RQd1bmkwNDlGB3VuaTA0OEEHdW5pMDQ4Qgd1bmkwNEM5B3VuaTA0Q0EHdW5pMDRDRAd1bmkwNENFB3VuaTA0QzUHdW5pMDRDNgd1bmkwNEIwB3VuaTA0QjEHdW5pMDRGRQd1bmkwNEZGB3VuaTA1MTEHdW5pMjAxNQd1bmkwMDAyB3VuaTAwMDkAAAAAAQAB//8ADwABAAAADAAAAAAAAAACAAgAzADMAAEBIQEnAAEBWAFjAAEBeAF4AAEBfQF+AAEBgAGAAAEBkgGUAAEBzAHMAAEAAQAAAAoAHgAsAAFERkxUAAgABAAAAAD//wABAAAAAXNtY3AACAAAAAEAAAABAAQAAQAAAAEACAACAb4A3AGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwHXAawBrQGuAa8BsAGxAbIBswG0AbUBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasB1wGsAa0BrgGvAbABsQGyAbMBtAG1AeECmgKZApoCmwKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2AusCtwK3ArgCuAK5ArkCugK6ArsCuwK9Ar0CvgK+Ar8CvwLAAsACwQLBAsICwgLDAsMCxALEAsUCxQLHAscCyALIAskCyQLKAsoCywLLAswCzALNAs4CzgLPAs8C0ALQAtEC0QLSAtIC0wLTAtQC1ALVAtUC1gLWAtcC1wLYAtgC2QLZAtoC2gLbAtsC3ALcAt0C3QLeAt4C3wLfAuAC4AJ6AnoC4gLiAuMC4wLkAuQC5QLlAuYC5gLnAucC6ALoAukC6QLqAuoC6wLsAuwC7QLtAu4C7gKZAAIADQAjADwAAABDAFwAGgCDAIMANACFAIUANQHlAeYANgHoAioAOAItAj4AewJBAl8AjQJhAnIArAJ1AnYAvgJ5AnkAwAJ7ApQAwQPjA+MA2w==';
-    var callAddFont = function() {
+    var callAddFont = function () {
         this.addFileToVFS('RobotoMono-Regular-normal.ttf', font);
-        this.addFont(
-            'RobotoMono-Regular-normal.ttf',
-            'RobotoMono-Regular',
-            'normal'
-        );
+        this.addFont('RobotoMono-Regular-normal.ttf', 'RobotoMono-Regular', 'normal');
     };
     jsPDFAPI.events.push(['addFonts', callAddFont]);
 })(jsPDF.API);
diff --git a/src/app/client_config.js b/src/app/client_config.js
index ec16b007639ac8bc69622ec83d3a4e0d87bdb76c..97c08d17d271df71d4732e02c83d0b5ffa061614 100644
--- a/src/app/client_config.js
+++ b/src/app/client_config.js
@@ -38,14 +38,11 @@ export const ALLOWED_CURRENCIES = ['USD'];
 
 // meta info
 export const TWITTER_HANDLE = '@';
-export const SHARE_IMAGE =
-    'https://' + APP_DOMAIN + '/images/hive-blog-share.png';
-export const TWITTER_SHARE_IMAGE =
-    'https://' + APP_DOMAIN + '/images/hive-blog-twshare.png';
-export const SITE_DESCRIPTION =
-    'Hive is a social media platform where everyone gets paid for ' +
-    'creating and curating content. It leverages a robust digital points system, called Hive, that ' +
-    'supports real value for digital rewards through market price discovery and liquidity';
+export const SHARE_IMAGE = 'https://' + APP_DOMAIN + '/images/hive-blog-share.png';
+export const TWITTER_SHARE_IMAGE = 'https://' + APP_DOMAIN + '/images/hive-blog-twshare.png';
+export const SITE_DESCRIPTION = 'Hive is a social media platform where everyone gets paid for '
+    + 'creating and curating content. It leverages a robust digital points system, called Hive, that '
+    + 'supports real value for digital rewards through market price discovery and liquidity';
 
 // various
 export const SUPPORT_EMAIL = 'support@' + APP_DOMAIN;
diff --git a/src/app/components/App.jsx b/src/app/components/App.jsx
index 6e70ed6ad86d0c1a641acefd44018ef9c91f8085..f856d4eb47e736464323afd83a153c4358c393b3 100644
--- a/src/app/components/App.jsx
+++ b/src/app/components/App.jsx
@@ -50,12 +50,7 @@ class App extends React.Component {
     }
 
     shouldComponentUpdate(nextProps, nextState) {
-        const {
-            pathname,
-            new_visitor,
-            nightmodeEnabled,
-            showAnnouncement,
-        } = this.props;
+        const { pathname, new_visitor, nightmodeEnabled, showAnnouncement } = this.props;
         const n = nextProps;
         return (
             pathname !== n.pathname ||
@@ -72,25 +67,14 @@ class App extends React.Component {
     };
 
     render() {
-        const {
-            params,
-            children,
-            new_visitor,
-            nightmodeEnabled,
-            viewMode,
-            pathname,
-            category,
-            order,
-        } = this.props;
+        const { params, children, new_visitor, nightmodeEnabled, viewMode, pathname, category, order } = this.props;
 
         const whistleView = viewMode === VIEW_MODE_WHISTLE;
         const headerHidden = whistleView;
         const params_keys = Object.keys(params);
         const ip =
             pathname === '/' ||
-            (params_keys.length === 2 &&
-                params_keys[0] === 'order' &&
-                params_keys[1] === 'category');
+            (params_keys.length === 2 && params_keys[0] === 'order' && params_keys[1] === 'category');
         const alert = this.props.error;
         let callout = null;
         if (this.state.showCallout && alert) {
@@ -98,11 +82,7 @@ class App extends React.Component {
                 <div className="App__announcement row">
                     <div className="column">
                         <div className={classNames('callout', { alert })}>
-                            <CloseButton
-                                onClick={() =>
-                                    this.setState({ showCallout: false })
-                                }
-                            />
+                            <CloseButton onClick={() => this.setState({ showCallout: false })} />
                             <p>{alert}</p>
                         </div>
                     </div>
@@ -112,24 +92,15 @@ class App extends React.Component {
             callout = (
                 <div className="App__announcement row">
                     <div className="column">
-                        <div
-                            className={classNames(
-                                'callout success',
-                                { alert },
-                                { warning },
-                                { success }
-                            )}
-                        >
-                            <CloseButton
-                                onClick={() =>
-                                    this.setState({ showCallout: false })
-                                }
-                            />
+                        <div className={classNames('callout success', { alert }, { warning }, { success })}>
+                            <CloseButton onClick={() => this.setState({ showCallout: false })} />
                             <ul>
                                 <li>
-                                    /*<a href="https://steemit.com/steemit/@steemitblog/steemit-com-is-now-open-source">
+                                    /*
+                                    <a href="https://steemit.com/steemit/@steemitblog/steemit-com-is-now-open-source">
                                         ...STORY TEXT...
-                                    </a>*/
+                                    </a>
+                                    */
                                 </li>
                             </ul>
                         </div>
@@ -141,19 +112,8 @@ class App extends React.Component {
             callout = (
                 <div className="App__announcement row">
                     <div className="column">
-                        <div
-                            className={classNames(
-                                'callout warning',
-                                { alert },
-                                { warning },
-                                { success }
-                            )}
-                        >
-                            <CloseButton
-                                onClick={() =>
-                                    this.setState({ showCallout: false })
-                                }
-                            />
+                        <div className={classNames('callout warning', { alert }, { warning }, { success })}>
+                            <CloseButton onClick={() => this.setState({ showCallout: false })} />
                             <p>{tt('g.read_only_mode')}</p>
                         </div>
                     </div>
@@ -174,22 +134,11 @@ class App extends React.Component {
             >
                 <ConnectedSidePanel alignment="right" />
 
-                {headerHidden ? null : (
-                    <Header
-                        pathname={pathname}
-                        category={category}
-                        order={order}
-                    />
-                )}
+                {headerHidden ? null : <Header pathname={pathname} category={category} order={order} />}
 
                 <div className="App__content">
-                    {process.env.BROWSER &&
-                    ip &&
-                    new_visitor &&
-                    this.state.showBanner ? (
-                        <WelcomePanel
-                            setShowBannerFalse={this.setShowBannerFalse}
-                        />
+                    {process.env.BROWSER && ip && new_visitor && this.state.showBanner ? (
+                        <WelcomePanel setShowBannerFalse={this.setShowBannerFalse} />
                     ) : null}
                     {callout}
                     {children}
@@ -213,9 +162,7 @@ App.propTypes = {
 export default connect(
     (state, ownProps) => {
         const current_user = state.user.get('current');
-        const current_account_name = current_user
-            ? current_user.get('username')
-            : state.offchain.get('account');
+        const current_account_name = current_user ? current_user.get('username') : state.offchain.get('account');
 
         return {
             viewMode: state.app.get('viewMode'),
@@ -226,17 +173,14 @@ export default connect(
                 !state.offchain.get('account') &&
                 state.offchain.get('new_visit'),
 
-            nightmodeEnabled: state.app.getIn([
-                'user_preferences',
-                'nightmode',
-            ]),
+            nightmodeEnabled: state.app.getIn(['user_preferences', 'nightmode']),
             pathname: ownProps.location.pathname,
             order: ownProps.params.order,
             category: ownProps.params.category,
             showAnnouncement: state.user.get('showAnnouncement'),
         };
     },
-    dispatch => ({
+    (dispatch) => ({
         loginUser: () => dispatch(userActions.usernamePasswordLogin({})),
     })
 )(App);
diff --git a/src/app/components/all.scss b/src/app/components/all.scss
index b6ee77359599f86774eb5a3e69fb6ae4af1fd602..71a78c1c756978c8ba7564e660c0632992f2d700 100644
--- a/src/app/components/all.scss
+++ b/src/app/components/all.scss
@@ -42,6 +42,7 @@
 @import "./elements/PostCategoryBanner";
 @import "./elements/FlagButton";
 @import "./elements/VideoAd";
+@import "./elements/VisualEditor";
 
 // modules
 @import "./modules/Header/styles";
diff --git a/src/app/components/cards/BeneficiarySelector.jsx b/src/app/components/cards/BeneficiarySelector.jsx
index e3d1a88416c4a84cfc4d1a862b473141f2fec9a5..5198c8e1603711fec14cb321e953a4e5ee650af4 100644
--- a/src/app/components/cards/BeneficiarySelector.jsx
+++ b/src/app/components/cards/BeneficiarySelector.jsx
@@ -1,55 +1,42 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import Autocomplete from 'react-autocomplete';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import { validate_account_name } from 'app/utils/ChainValidation';
-import reactForm from 'app/utils/ReactForm';
 import { List, Set } from 'immutable';
 import tt from 'counterpart';
+import PropTypes from 'prop-types';
 
-export class BeneficiarySelector extends React.Component {
+import { connect } from 'react-redux';
+
+export class BeneficiarySelector extends PureComponent {
     static propTypes = {
         // HTML props
-        id: React.PropTypes.string, // DOM id for active component (focusing, etc...)
-        onChange: React.PropTypes.func.isRequired,
-        onBlur: React.PropTypes.func.isRequired,
-        value: React.PropTypes.array,
-        tabIndex: React.PropTypes.number,
+        onChange: PropTypes.func.isRequired,
+        value: PropTypes.array,
 
         // redux connect
-        following: React.PropTypes.array.isRequired,
-    };
-    static defaultProps = {
-        id: 'BeneficiarySelectorId',
+        following: PropTypes.array.isRequired,
     };
-    constructor() {
-        super();
-        this.shouldComponentUpdate = shouldComponentUpdate(
-            this,
-            'BeneficiarySelector'
-        );
-    }
 
     matchAutocompleteUser(item, value) {
         return item.toLowerCase().indexOf(value.toLowerCase()) > -1;
     }
 
-    handleAddBeneficiary = e => {
+    handleAddBeneficiary = (e) => {
         e.preventDefault();
         const beneficiaries = this.props.value;
         if (beneficiaries.length < 8) {
-            this.props.onChange(
-                beneficiaries.concat([{ username: '', percent: '' }])
-            );
+            this.props.onChange(beneficiaries.concat([{ username: '', percent: '' }]));
         }
     };
 
-    handleRemoveBeneficiary = idx => e => {
+    handleRemoveBeneficiary = (idx) => (e) => {
         e.preventDefault();
         const beneficiaries = this.props.value;
         this.props.onChange(beneficiaries.filter((s, bidx) => idx != bidx));
     };
 
-    handleBeneficiaryUserChange = idx => e => {
+    handleBeneficiaryUserChange = (idx) => (e) => {
         e.preventDefault();
         const beneficiaries = this.props.value;
         const newBeneficiaries = beneficiaries.map((beneficiary, bidx) => {
@@ -59,7 +46,7 @@ export class BeneficiarySelector extends React.Component {
         this.props.onChange(newBeneficiaries);
     };
 
-    handleBeneficiaryUserSelect = idx => val => {
+    handleBeneficiaryUserSelect = (idx) => (val) => {
         const beneficiaries = this.props.value;
         const newBeneficiaries = beneficiaries.map((beneficiary, bidx) => {
             if (idx != bidx) return beneficiary;
@@ -68,7 +55,7 @@ export class BeneficiarySelector extends React.Component {
         this.props.onChange(newBeneficiaries);
     };
 
-    handleBeneficiaryPercentChange = idx => e => {
+    handleBeneficiaryPercentChange = (idx) => (e) => {
         e.preventDefault();
         const beneficiaries = this.props.value;
         const newBeneficiaries = beneficiaries.map((beneficiary, bidx) => {
@@ -79,13 +66,9 @@ export class BeneficiarySelector extends React.Component {
     };
 
     render() {
-        const { username, following, tabIndex } = this.props;
+        const { username } = this.props;
         const beneficiaries = this.props.value;
-        const remainingPercent =
-            100 -
-            beneficiaries
-                .map(b => (b.percent ? parseInt(b.percent) : 0))
-                .reduce((sum, elt) => sum + elt, 0);
+        const remainingPercent = 100 - beneficiaries.map((b) => (b.percent ? parseInt(b.percent) : 0)).reduce((sum, elt) => sum + elt, 0);
 
         return (
             <span>
@@ -100,20 +83,13 @@ export class BeneficiarySelector extends React.Component {
                                 disabled
                                 className="BeneficiarySelector__percentbox"
                             />
-                            <span className="BeneficiarySelector__percentrow">
-                                %
-                            </span>
+                            <span className="BeneficiarySelector__percentrow">%</span>
                         </div>
                     </div>
                     <div className="column small-5">
                         <div className="input-group">
                             <span className="input-group-label">@</span>
-                            <input
-                                className="input-group-field bold"
-                                type="text"
-                                disabled
-                                value={username}
-                            />
+                            <input className="input-group-field bold" type="text" disabled value={username} />
                         </div>
                     </div>
                 </div>
@@ -126,14 +102,10 @@ export class BeneficiarySelector extends React.Component {
                                     type="text"
                                     pattern="[0-9]*"
                                     value={beneficiary.percent}
-                                    onChange={this.handleBeneficiaryPercentChange(
-                                        idx
-                                    )}
+                                    onChange={this.handleBeneficiaryPercentChange(idx)}
                                     className="BeneficiarySelector__percentbox"
                                 />
-                                <span className="BeneficiarySelector__percentrow">
-                                    %
-                                </span>
+                                <span className="BeneficiarySelector__percentrow">%</span>
                             </div>
                         </div>
                         <div className="column small-5">
@@ -153,42 +125,25 @@ export class BeneficiarySelector extends React.Component {
                                         autoCapitalize: 'off',
                                         spellCheck: 'false',
                                     }}
-                                    renderMenu={items => (
-                                        <div
-                                            className="react-autocomplete-input"
-                                            children={items}
-                                        />
+                                    renderMenu={(items) => (
+                                        <div className="react-autocomplete-input">
+                                            {items}
+                                        </div>
                                     )}
-                                    getItemValue={item => item}
+                                    getItemValue={(item) => item}
                                     items={this.props.following}
-                                    shouldItemRender={
-                                        this.matchAutocompleteUser
-                                    }
+                                    shouldItemRender={this.matchAutocompleteUser}
                                     renderItem={(item, isHighlighted) => (
-                                        <div
-                                            className={
-                                                isHighlighted ? 'active' : ''
-                                            }
-                                        >
-                                            {item}
-                                        </div>
+                                        <div className={isHighlighted ? 'active' : ''}>{item}</div>
                                     )}
                                     value={beneficiary.username}
-                                    onChange={this.handleBeneficiaryUserChange(
-                                        idx
-                                    )}
-                                    onSelect={this.handleBeneficiaryUserSelect(
-                                        idx
-                                    )}
+                                    onChange={this.handleBeneficiaryUserChange(idx)}
+                                    onSelect={this.handleBeneficiaryUserSelect(idx)}
                                 />
                             </div>
                         </div>
                         <div className="BeneficiarySelector__percentrow column small-5">
-                            <a
-                                id="remove"
-                                href="#"
-                                onClick={this.handleRemoveBeneficiary(idx)}
-                            >
+                            <a id="remove" href="#" onClick={this.handleRemoveBeneficiary(idx)}>
                                 {tt('g.remove')}
                             </a>
                         </div>
@@ -196,12 +151,7 @@ export class BeneficiarySelector extends React.Component {
                 ))}
                 <div className="row">
                     <div className="column">
-                        <a
-                            id="add"
-                            href="#"
-                            onClick={this.handleAddBeneficiary}
-                            hidden={beneficiaries.length >= 8}
-                        >
+                        <a id="add" href="#" onClick={this.handleAddBeneficiary} hidden={beneficiaries.length >= 8}>
                             {tt('beneficiary_selector_jsx.add')}
                         </a>
                     </div>
@@ -211,18 +161,14 @@ export class BeneficiarySelector extends React.Component {
     }
 }
 
-export function validateBeneficiaries(
-    username,
-    beneficiaries,
-    required = true
-) {
+export function validateBeneficiaries(username, beneficiaries, required = true) {
     if (beneficiaries.length > 8) {
         return tt('beneficiary_selector_jsx.exceeds_max_beneficiaries');
     }
-    var totalPercent = 0;
+    let totalPercent = 0;
 
-    var beneficiaryNames = Set();
-    for (var i = 0; i < beneficiaries.length; i++) {
+    let beneficiaryNames = Set();
+    for (let i = 0; i < beneficiaries.length; i += 1) {
         const beneficiary = beneficiaries[i];
         const accountError = validate_account_name(beneficiary.username, '');
         if ((required || beneficiary.username) && accountError) {
@@ -232,16 +178,11 @@ export function validateBeneficiaries(
             return tt('beneficiary_selector_jsx.beneficiary_cannot_be_self');
         }
         if (beneficiaryNames.has(beneficiary.username)) {
-            return tt(
-                'beneficiary_selector_jsx.beneficiary_cannot_be_duplicate'
-            );
-        } else {
-            beneficiaryNames = beneficiaryNames.add(beneficiary.username);
+            return tt('beneficiary_selector_jsx.beneficiary_cannot_be_duplicate');
         }
-        if (
-            (required || beneficiary.percent) &&
-            !/^[1-9]\d{0,2}$/.test(beneficiary.percent)
-        ) {
+            beneficiaryNames = beneficiaryNames.add(beneficiary.username);
+
+        if ((required || beneficiary.percent) && !/^[1-9]\d{0,2}$/.test(beneficiary.percent)) {
             return tt('beneficiary_selector_jsx.beneficiary_percent_invalid');
         }
         totalPercent += parseInt(beneficiary.percent);
@@ -251,18 +192,12 @@ export function validateBeneficiaries(
     }
 }
 
-import { connect } from 'react-redux';
-
 export default connect((state, ownProps) => {
     let following = List();
     const username = state.user.getIn(['current', 'username']);
     const follow = state.global.get('follow');
     if (follow) {
-        const followingData = follow.getIn([
-            'getFollowingAsync',
-            username,
-            'blog_result',
-        ]);
+        const followingData = follow.getIn(['getFollowingAsync', username, 'blog_result']);
         if (followingData) following = followingData.sort();
     }
     return {
diff --git a/src/app/components/cards/BeneficiarySelector.test.jsx b/src/app/components/cards/BeneficiarySelector.test.jsx
index 853103eea45b15154975b510b2285a4aead9d441..c586e70f8b458a4dbaa7d17ab47eec79edf8dd1f 100644
--- a/src/app/components/cards/BeneficiarySelector.test.jsx
+++ b/src/app/components/cards/BeneficiarySelector.test.jsx
@@ -1,25 +1,22 @@
 import React from 'react';
 import reactForm from 'app/utils/ReactForm';
 import { configure, mount } from 'enzyme';
-import Adapter from 'enzyme-adapter-react-15';
+import Adapter from 'enzyme-adapter-react-16';
 
-import {
-    BeneficiarySelector,
-    validateBeneficiaries,
-} from './BeneficiarySelector';
+import { BeneficiarySelector, validateBeneficiaries } from './BeneficiarySelector';
 
 require('app/Translator');
 
 configure({ adapter: new Adapter() });
 
 class FormWrapper extends React.Component {
-    constructor(props) {
+    constructor() {
         super();
         this.state = {};
         reactForm({
             fields: ['beneficiaries'],
             initialValues: { beneficiaries: [] },
-            validation: values => {
+            validation: () => {
                 return {
                     beneficiaries: true,
                 };
@@ -31,13 +28,7 @@ class FormWrapper extends React.Component {
 
     render() {
         const { beneficiaries } = this.state;
-        return (
-            <BeneficiarySelector
-                {...beneficiaries.props}
-                username="testuser"
-                following={['testfollowing']}
-            />
-        );
+        return <BeneficiarySelector {...beneficiaries.props} username="testuser" following={['testfollowing']} />;
     }
 }
 
@@ -47,35 +38,23 @@ describe('BeneficiarySelector', () => {
 
         const component = wrapper.instance();
         expect(component.state.beneficiaries.value.length).toBe(0);
-        expect(wrapper.find('input #remainingPercent').get(0).props.value).toBe(
-            100
-        );
+        expect(wrapper.find('input #remainingPercent').get(0).props.value).toBe(100);
 
         // add beneficiary
         wrapper.find('a #add').simulate('click');
         expect(component.state.beneficiaries.value.length).toBe(1);
 
         // add name and percent
-        wrapper
-            .find('input #percent')
-            .simulate('change', { target: { value: 20 } });
-        expect(wrapper.find('input #remainingPercent').get(0).props.value).toBe(
-            80
-        );
-        wrapper
-            .find('input #user')
-            .simulate('change', { target: { value: 'testuser' } });
+        wrapper.find('input #percent').simulate('change', { target: { value: 20 } });
+        expect(wrapper.find('input #remainingPercent').get(0).props.value).toBe(80);
+        wrapper.find('input #user').simulate('change', { target: { value: 'testuser' } });
         expect(component.state.beneficiaries.value[0].percent).toBe(20);
-        expect(component.state.beneficiaries.value[0].username).toBe(
-            'testuser'
-        );
+        expect(component.state.beneficiaries.value[0].username).toBe('testuser');
 
         // remove beneficiary
         wrapper.find('a #remove').simulate('click');
         expect(component.state.beneficiaries.value.length).toBe(0);
-        expect(wrapper.find('input #remainingPercent').get(0).props.value).toBe(
-            100
-        );
+        expect(wrapper.find('input #remainingPercent').get(0).props.value).toBe(100);
     });
 });
 
@@ -85,12 +64,10 @@ describe('BeneficiarySelector_maxEntries', () => {
 
         const component = wrapper.instance();
         expect(component.state.beneficiaries.value.length).toBe(0);
-        expect(wrapper.find('input #remainingPercent').get(0).props.value).toBe(
-            100
-        );
+        expect(wrapper.find('input #remainingPercent').get(0).props.value).toBe(100);
 
         // add beneficiary 8 times
-        for (var i = 0; i < 8; i++) {
+        for (let i = 0; i < 8; i += 1) {
             wrapper.find('a #add').simulate('click');
         }
         expect(component.state.beneficiaries.value.length).toBe(8);
@@ -101,63 +78,48 @@ describe('BeneficiarySelector_maxEntries', () => {
 
 describe('BeneficiarySelector_validate', () => {
     it('beneficiary size exceeded', () => {
-        var beneficiaries = [];
-        for (var i = 0; i < 9; i++) {
+        const beneficiaries = [];
+        for (let i = 0; i < 9; i += 1) {
             beneficiaries[i] = { username: 'abc' + i, percent: 1 };
         }
-        expect(validateBeneficiaries('', beneficiaries, true)).toContain(
-            'at most 8 beneficiaries'
-        );
+        expect(validateBeneficiaries('', beneficiaries, true)).toContain('at most 8 beneficiaries');
     });
 
     it('beneficiary cannot have duplicate', () => {
-        var beneficiaries = [];
-        for (var i = 0; i < 2; i++) {
+        const beneficiaries = [];
+        for (let i = 0; i < 2; i += 1) {
             beneficiaries[i] = { username: 'abc', percent: 1 };
         }
-        expect(validateBeneficiaries('', beneficiaries, true)).toContain(
-            'duplicate'
-        );
+        expect(validateBeneficiaries('', beneficiaries, true)).toContain('duplicate');
     });
 
     it('beneficiary cannot be self', () => {
-        var beneficiaries = [{ username: 'abc', percent: 1 }];
-        expect(validateBeneficiaries('abc', beneficiaries, true)).toContain(
-            'self'
-        );
+        const beneficiaries = [{ username: 'abc', percent: 1 }];
+        expect(validateBeneficiaries('abc', beneficiaries, true)).toContain('self');
     });
 
     it('beneficiary user missing when optional no error', () => {
-        var beneficiaries = [{ username: '', percent: 0 }];
+        const beneficiaries = [{ username: '', percent: 0 }];
         expect(validateBeneficiaries('a', beneficiaries, false)).toBeFalsy();
     });
 
     it('beneficiary percent missing when optional no error', () => {
-        var beneficiaries = [{ username: 'abc', percent: 0 }];
+        const beneficiaries = [{ username: 'abc', percent: 0 }];
         expect(validateBeneficiaries('', beneficiaries, false)).toBeFalsy();
     });
 
     it('beneficiary percent too low when required', () => {
-        var beneficiaries = [{ username: 'abc', percent: 0 }];
-        expect(validateBeneficiaries('', beneficiaries, true)).toContain(
-            'percent'
-        );
+        const beneficiaries = [{ username: 'abc', percent: 0 }];
+        expect(validateBeneficiaries('', beneficiaries, true)).toContain('percent');
     });
 
     it('beneficiary percent too high', () => {
-        var beneficiaries = [{ username: 'abc', percent: 101 }];
-        expect(validateBeneficiaries('', beneficiaries, true)).toContain(
-            'percent'
-        );
+        const beneficiaries = [{ username: 'abc', percent: 101 }];
+        expect(validateBeneficiaries('', beneficiaries, true)).toContain('percent');
     });
 
     it('beneficiary percent sum too high', () => {
-        var beneficiaries = [
-            { username: 'abc', percent: 50 },
-            { username: 'def', percent: 51 },
-        ];
-        expect(validateBeneficiaries('', beneficiaries, true)).toContain(
-            'percent'
-        );
+        const beneficiaries = [{ username: 'abc', percent: 50 }, { username: 'def', percent: 51 }];
+        expect(validateBeneficiaries('', beneficiaries, true)).toContain('percent');
     });
 });
diff --git a/src/app/components/cards/Comment.jsx b/src/app/components/cards/Comment.jsx
index 2ef7648580b9249c8b15e720eb81f04050299b6a..0b83db357760a0d06da0997ffaeb71f224553c7d 100644
--- a/src/app/components/cards/Comment.jsx
+++ b/src/app/components/cards/Comment.jsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { Map } from 'immutable';
 import Author from 'app/components/elements/Author';
@@ -6,7 +6,7 @@ import ReplyEditor from 'app/components/elements/ReplyEditor';
 import MuteButton from 'app/components/elements/MuteButton';
 import FlagButton from 'app/components/elements/FlagButton';
 import MarkdownViewer from 'app/components/cards/MarkdownViewer';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import Voting from 'app/components/elements/Voting';
 import { connect } from 'react-redux';
 import { Link } from 'react-router';
@@ -15,20 +15,19 @@ import TimeAgoWrapper from 'app/components/elements/TimeAgoWrapper';
 import Userpic from 'app/components/elements/Userpic';
 import * as transactionActions from 'app/redux/TransactionReducer';
 import tt from 'counterpart';
-import { parsePayoutAmount } from 'app/utils/ParsersAndFormatters';
 import { Long } from 'bytebuffer';
 import ImageUserBlockList from 'app/utils/ImageUserBlockList';
-import ContentEditedWrapper from '../elements/ContentEditedWrapper';
 import { allowDelete } from 'app/utils/StateFunctions';
 import { Role } from 'app/utils/Community';
 import Icon from 'app/components/elements/Icon';
+import ContentEditedWrapper from '../elements/ContentEditedWrapper';
 
 export function sortComments(cont, comments, sort_order) {
-    const rshares = post => Long.fromString(String(post.get('net_rshares')));
-    const demote = post => post.getIn(['stats', 'gray']);
-    const upvotes = post => post.get('active_votes').filter(v => v.get('rshares') != '0').size;
-    const ts = post => Date.parse(post.get('created'));
-    const payout = post => post.get('payout');
+    const rshares = (post) => Long.fromString(String(post.get('net_rshares')));
+    const demote = (post) => post.getIn(['stats', 'gray']);
+    const upvotes = (post) => post.get('active_votes').filter((v) => v.get('rshares') != '0').size;
+    const ts = (post) => Date.parse(post.get('created'));
+    const payout = (post) => post.get('payout');
 
     const sort_orders = {
         votes: (pa, pb) => {
@@ -56,7 +55,7 @@ function commentUrl(post, rootRef) {
     return `/${post.category}/${root}@${post.author}/${post.permlink}`;
 }
 
-class CommentImpl extends React.Component {
+class CommentImpl extends PureComponent {
     static propTypes = {
         // html props
         cont: PropTypes.object.isRequired,
@@ -91,7 +90,7 @@ class CommentImpl extends React.Component {
             this.setState({ showEdit: !showEdit, showReply: false });
             this.saveOnShow(!showEdit ? 'edit' : null);
         };
-        this.saveOnShow = type => {
+        this.saveOnShow = (type) => {
             if (process.env.BROWSER) {
                 const { postref } = this.props;
                 const formId = postref;
@@ -128,7 +127,7 @@ class CommentImpl extends React.Component {
      *    it hides the comment body (but not the header) until the "reveal comment" link is clicked.
      */
     _checkHide(props) {
-        const { cont, postref, post } = props;
+        const { post } = props;
         if (post) {
             const hide = false && post.getIn(['stats', 'hide']);
             const gray = post.getIn(['stats', 'gray']);
@@ -145,12 +144,15 @@ class CommentImpl extends React.Component {
     }
 
     toggleCollapsed() {
+        // eslint-disable-next-line react/no-access-state-in-setstate
         this.setState({ collapsed: !this.state.collapsed });
     }
+
     revealBody() {
         this.setState({ hide_body: false });
     }
-    initEditor(props) {
+
+    initEditor() {
         if (this.state.PostReplyEditor) return;
         const { post, postref } = this.props;
         if (!post) return;
@@ -171,19 +173,31 @@ class CommentImpl extends React.Component {
         }
         this.setState({ PostReplyEditor, PostEditEditor });
     }
+
     render() {
-        const { cont, post, postref, viewer_role } = this.props;
+        const {
+ cont, post, postref, viewer_role
+} = this.props;
 
         // Don't server-side render the comment if it has a certain number of newlines
         if (!post || (global.process !== undefined && (post.get('body').match(/\r?\n/g) || '').length > 25)) {
-            return <div>{tt('g.loading')}...</div>;
+            return (
+                <div>
+                    {tt('g.loading')}
+                    ...
+                </div>
+);
         }
 
         const { onShowReply, onShowEdit, onDeletePost } = this;
 
-        const { username, depth, anchor_link, showNegativeComments, ignored, rootComment, community } = this.props;
+        const {
+            username, depth, anchor_link, showNegativeComments, ignored, rootComment, community
+        } = this.props;
 
-        const { PostReplyEditor, PostEditEditor, showReply, showEdit, hide, hide_body } = this.state;
+        const {
+            PostReplyEditor, PostEditEditor, showReply, showEdit, hide, hide_body
+        } = this.state;
 
         if (!showNegativeComments && (hide || ignored)) return null;
 
@@ -217,9 +231,13 @@ class CommentImpl extends React.Component {
                 <div>
                     <Voting post={post} />
                     <span className="Comment__footer__controls">
-                        {canReply && <a onClick={onShowReply}>{tt('g.reply')}</a>}{' '}
-                        {canMute && <MuteButton post={post} />} {canEdit && <a onClick={onShowEdit}>{tt('g.edit')}</a>}{' '}
-                        {canDelete && <a onClick={onDeletePost}>{tt('g.delete')}</a>}
+                        {canReply && <a role="button" tabIndex={0} onClick={onShowReply}>{tt('g.reply')}</a>}
+                        {' '}
+                        {canMute && <MuteButton post={post} />}
+                        {' '}
+                        {canEdit && <a role="button" tabIndex={0} onClick={onShowEdit}>{tt('g.edit')}</a>}
+                        {' '}
+                        {canDelete && <a role="button" tabIndex={0} onClick={onDeletePost}>{tt('g.delete')}</a>}
                     </span>
                 </div>
             );
@@ -230,15 +248,21 @@ class CommentImpl extends React.Component {
             if (depth > 7) {
                 replies = (
                     <Link to={commentUrl(comment)}>
-                        Show {comment.children} more {comment.children == 1 ? 'reply' : 'replies'}
+                        Show
+                        {' '}
+                        {comment.children}
+                        {' '}
+                        more
+                        {' '}
+                        {comment.children == 1 ? 'reply' : 'replies'}
                     </Link>
                 );
             } else {
                 replies = comment.replies;
                 sortComments(cont, replies, this.props.sort_order);
-                replies = replies.map((reply, idx) => (
+                replies = replies.map((reply) => (
                     <Comment
-                        key={idx}
+                        key={reply}
                         postref={reply}
                         cont={cont}
                         sort_order={this.props.sort_order}
@@ -298,8 +322,8 @@ class CommentImpl extends React.Component {
                     </div>
                     <div className="Comment__header">
                         <div className="Comment__header_collapse">
-                            {canFlag && <FlagButton post={post} isComment={true} />}
-                            <a onClick={this.toggleCollapsed}>{this.state.collapsed ? '[+]' : '[-]'}</a>
+                            {canFlag && <FlagButton post={post} isComment />}
+                            <a role="link" tabIndex={0} onClick={this.toggleCollapsed}>{this.state.collapsed ? '[+]' : '[-]'}</a>
                         </div>
                         <span className="Comment__header-user">
                             <div className="Comment__Userpic-small">
@@ -307,7 +331,8 @@ class CommentImpl extends React.Component {
                             </div>
                             <Author post={post} showAffiliation />
                         </span>
-                        &nbsp;{/* &middot; &nbsp;*/}
+                        &nbsp;
+                        {/* &middot; &nbsp;*/}
                         <Link to={commentUrl(comment, rootComment)} className="PlainLink">
                             <TimeAgoWrapper date={comment.created} />
                         </Link>
@@ -318,19 +343,19 @@ class CommentImpl extends React.Component {
                             <Icon name="link" className="chain-rotated" />
                         </Link>
                         {(this.state.collapsed || hide_body) && <Voting post={post} showList={false} />}
-                        {this.state.collapsed &&
-                            comment.children > 0 && (
+                        {this.state.collapsed
+                            && comment.children > 0 && (
                                 <span>
                                     {tt('g.reply_count', {
                                         count: comment.children,
                                     })}
                                 </span>
                             )}
-                        {!this.state.collapsed &&
-                            hide_body && <a onClick={this.revealBody}>{tt('g.reveal_comment')}</a>}
-                        {!this.state.collapsed &&
-                            !hide_body &&
-                            (ignored || gray) && (
+                        {!this.state.collapsed
+                            && hide_body && <a role="link" tabIndex={0} onClick={this.revealBody}>{tt('g.reveal_comment')}</a>}
+                        {!this.state.collapsed
+                            && !hide_body
+                            && (ignored || gray) && (
                                 <span>
                                     &middot;&nbsp;
                                     {tt('g.will_be_hidden_due_to_low_rating')}
@@ -352,15 +377,14 @@ class CommentImpl extends React.Component {
 const Comment = connect(
     // mapStateToProps
     (state, ownProps) => {
-        const { postref, cont, sort_order } = ownProps;
+        const { postref, cont } = ownProps;
         const post = ownProps.cont.get(postref);
 
         const category = post.get('category');
         const community = state.global.getIn(['community', category], Map());
         const author = post.get('author');
         const username = state.user.getIn(['current', 'username']);
-        const ignored =
-            author && username
+        const ignored = author && username
                 ? state.global.hasIn(['follow', 'getFollowingAsync', username, 'ignore_result', author])
                 : null;
 
@@ -385,7 +409,7 @@ const Comment = connect(
     },
 
     // mapDispatchToProps
-    dispatch => ({
+    (dispatch) => ({
         unlock: () => {
             dispatch(userActions.showLogin());
         },
diff --git a/src/app/components/cards/MarkdownViewer.jsx b/src/app/components/cards/MarkdownViewer.jsx
index beae2075b37e22a1b42ae6de0f8cbaadb9884e58..a02937401efa4ea0d40205fe1c23cbb0ef95e9b7 100644
--- a/src/app/components/cards/MarkdownViewer.jsx
+++ b/src/app/components/cards/MarkdownViewer.jsx
@@ -54,9 +54,7 @@ class MarkdownViewer extends Component {
 
     shouldComponentUpdate(np, ns) {
         return (
-            np.text !== this.props.text ||
-            np.large !== this.props.large ||
-            ns.allowNoImage !== this.state.allowNoImage
+            np.text !== this.props.text || np.large !== this.props.large || ns.allowNoImage !== this.state.allowNoImage
         );
     }
 
@@ -83,10 +81,7 @@ class MarkdownViewer extends Component {
         }
 
         // Strip out HTML comments. "JS-DOS" bug.
-        text = text.replace(
-            /<!--([\s\S]+?)(-->|$)/g,
-            '(html comment removed: $1)'
-        );
+        text = text.replace(/<!--([\s\S]+?)(-->|$)/g, '(html comment removed: $1)');
 
         let renderer = remarkableToSpec;
         if (this.props.breaks === true) {
@@ -101,8 +96,7 @@ class MarkdownViewer extends Component {
         }
 
         // Embed videos, link mentions and hashtags, etc...
-        if (renderedText)
-            renderedText = HtmlReady(renderedText, { hideImages }).html;
+        if (renderedText) renderedText = HtmlReady(renderedText, { hideImages }).html;
 
         // Complete removal of javascript and other dangerous tags..
         // The must remain as close as possible to dangerouslySetInnerHTML
@@ -122,10 +116,7 @@ class MarkdownViewer extends Component {
 
         if (/<\s*script/gi.test(cleanText)) {
             // Not meant to be complete checking, just a secondary trap and red flag (code can change)
-            console.error(
-                'Refusing to render script tag in post text',
-                cleanText
-            );
+            console.error('Refusing to render script tag in post text', cleanText);
             return <div />;
         }
 
@@ -159,12 +150,7 @@ class MarkdownViewer extends Component {
                 }
             }
 
-            sections.push(
-                <div
-                    key={checksum(section)}
-                    dangerouslySetInnerHTML={{ __html: section }}
-                />
-            );
+            sections.push(<div key={checksum(section)} dangerouslySetInnerHTML={{ __html: section }} />);
 
             idx += 1;
         }
@@ -178,24 +164,18 @@ class MarkdownViewer extends Component {
         return (
             <div className={'MarkdownViewer ' + cn}>
                 {sections}
-                {noImageActive &&
-                    allowNoImage && (
-                        <div
-                            key={'hidden-content'}
-                            onClick={this.onAllowNoImage}
-                            className="MarkdownViewer__negative_group"
-                        >
-                            {tt(
-                                'markdownviewer_jsx.images_were_hidden_due_to_low_ratings'
-                            )}
-                            <button
-                                style={{ marginBottom: 0 }}
-                                className="button hollow tiny float-right"
-                            >
-                                {tt('g.show')}
-                            </button>
-                        </div>
-                    )}
+                {noImageActive && allowNoImage && (
+                    <div
+                        key={'hidden-content'}
+                        onClick={this.onAllowNoImage}
+                        className="MarkdownViewer__negative_group"
+                    >
+                        {tt('markdownviewer_jsx.images_were_hidden_due_to_low_ratings')}
+                        <button style={{ marginBottom: 0 }} className="button hollow tiny float-right">
+                            {tt('g.show')}
+                        </button>
+                    </div>
+                )}
             </div>
         );
     }
diff --git a/src/app/components/cards/NotFoundMessage.jsx b/src/app/components/cards/NotFoundMessage.jsx
index 242283bd017686ad3f9bec895fe326295541d81b..0d4c26993d6ad94bcb975b2322dbbd5ced0b4c27 100644
--- a/src/app/components/cards/NotFoundMessage.jsx
+++ b/src/app/components/cards/NotFoundMessage.jsx
@@ -7,14 +7,13 @@ export default class NotFoundMessage extends React.Component {
             <div className="NotFound float-center">
                 <div>
                     <Icon name="hive" size="4x" />
-                    <h4 className="NotFound__header">
-                        Sorry! This page doesn't exist.
-                    </h4>
+                    <h4 className="NotFound__header">Sorry! This page doesn't exist.</h4>
                     <p>
                         Not to worry. You can head back to{' '}
                         <a style={{ fontWeight: 800 }} href="/">
                             our homepage
-                        </a>, or check out some great posts.
+                        </a>
+                        , or check out some great posts.
                     </p>
                     <ul className="NotFound__menu">
                         <li>
diff --git a/src/app/components/cards/NotificationsList.jsx b/src/app/components/cards/NotificationsList.jsx
index 7228dff74d560c0ac2077d3b93aee3f65de653e5..413aaae7d0cfb4d31ff0a7681d06067700cb0e2b 100644
--- a/src/app/components/cards/NotificationsList.jsx
+++ b/src/app/components/cards/NotificationsList.jsx
@@ -13,7 +13,7 @@ import Userpic from 'app/components/elements/Userpic';
 import tt from 'counterpart';
 import classNames from 'classnames';
 
-const notificationsIcon = type => {
+const notificationsIcon = (type) => {
     const types = {
         reply: 'chatbox',
         reply_post: 'chatbox',
@@ -44,14 +44,7 @@ const highlightText = (text, highlight) => {
         <span>
             {' '}
             {parts.map((part, i) => (
-                <span
-                    key={i}
-                    style={
-                        part.toLowerCase() === highlight.toLowerCase()
-                            ? { fontWeight: 'bold' }
-                            : {}
-                    }
-                >
+                <span key={i} style={part.toLowerCase() === highlight.toLowerCase() ? { fontWeight: 'bold' } : {}}>
                     {part}
                 </span>
             ))}{' '}
@@ -115,23 +108,21 @@ class NotificationsList extends React.Component {
         this.applyFilter();
     }
 
-    onClickLoadMore = e => {
+    onClickLoadMore = (e) => {
         e.preventDefault();
         const { username, notifications, getAccountNotifications } = this.props;
         const lastId = notifications.slice(-1)[0].id;
         getAccountNotifications(username, lastId);
     };
 
-    onClickMarkAsRead = e => {
+    onClickMarkAsRead = (e) => {
         e.preventDefault();
         const { username, markAsRead } = this.props;
         markAsRead(username, new Date().toISOString().slice(0, 19));
     };
 
     applyFilter = () => {
-        const notificationElements = document.getElementsByClassName(
-            'notification__item'
-        );
+        const notificationElements = document.getElementsByClassName('notification__item');
 
         let visibleCount = 0;
         for (let ni = 0; ni < notificationElements.length; ni += 1) {
@@ -146,23 +137,13 @@ class NotificationsList extends React.Component {
                 } else {
                     notificationElement.classList.remove('even');
                 }
-            } else if (
-                this.notificationFilterToTypes.hasOwnProperty(
-                    notificationFilter
-                )
-            ) {
-                const notificationTypes = this.notificationFilterToTypes[
-                    notificationFilter
-                ];
+            } else if (this.notificationFilterToTypes.hasOwnProperty(notificationFilter)) {
+                const notificationTypes = this.notificationFilterToTypes[notificationFilter];
                 let matchType = false;
 
                 for (let ti = 0; ti < notificationTypes.length; ti += 1) {
                     const notificationType = notificationTypes[ti];
-                    if (
-                        notificationElement.classList.contains(
-                            `notification__${notificationType}`
-                        )
-                    ) {
+                    if (notificationElement.classList.contains(`notification__${notificationType}`)) {
                         matchType = true;
                     }
                 }
@@ -183,13 +164,11 @@ class NotificationsList extends React.Component {
         }
     };
 
-    onClickFilter = e => {
+    onClickFilter = (e) => {
         e.preventDefault();
         const target = e.target;
 
-        const filterElements = document.getElementsByClassName(
-            'notification__filter'
-        );
+        const filterElements = document.getElementsByClassName('notification__filter');
 
         // reset
         for (let fi = 0; fi < filterElements.length; fi += 1) {
@@ -215,55 +194,35 @@ class NotificationsList extends React.Component {
             lastRead,
         } = this.props;
 
-        const renderItem = item => {
-            const unRead =
-                Date.parse(`${lastRead}Z`) <= Date.parse(`${item.date}Z`);
+        const renderItem = (item) => {
+            const unRead = Date.parse(`${lastRead}Z`) <= Date.parse(`${item.date}Z`);
             const usernamePattern = /\B@[a-z0-9\.-]+/gi;
             const mentions = item.msg.match(usernamePattern);
             const participants = mentions
-                ? mentions.map(m => (
+                ? mentions.map((m) => (
                       <a href={'/' + m}>
                           <Userpic account={m.substring(1)} />
                       </a>
                   ))
                 : null;
             return (
-                <div
-                    key={item.id}
-                    className={`notification__item flex-body notification__${
-                        item.type
-                    }`}
-                >
+                <div key={item.id} className={`notification__item flex-body notification__${item.type}`}>
                     <div className="notification__score">
-                        <div
-                            className="notification__score_bar"
-                            style={{ width: `${item.score}%` }}
-                        />
-                    </div>
-                    <div className="flex-row">
-                        {mentions && participants && participants[0]}
+                        <div className="notification__score_bar" style={{ width: `${item.score}%` }} />
                     </div>
+                    <div className="flex-row">{mentions && participants && participants[0]}</div>
                     <div className="flex-column">
                         <div className="notification__message">
-                            <a href={`/${item.url}`}>
-                                {highlightText(
-                                    item.msg,
-                                    mentions ? mentions[0] : null
-                                )}
-                            </a>
+                            <a href={`/${item.url}`}>{highlightText(item.msg, mentions ? mentions[0] : null)}</a>
                         </div>
                         <div className="flex-row">
-                            <div className="notification__icon">
-                                {notificationsIcon(item.type)}
-                            </div>
+                            <div className="notification__icon">{notificationsIcon(item.type)}</div>
                             <div className="notification__date">
                                 <TimeAgoWrapper date={item.date + 'Z'} />
                             </div>
                         </div>
                     </div>
-                    {unRead && (
-                        <span className="notification__unread">&bull;</span>
-                    )}
+                    {unRead && <span className="notification__unread">&bull;</span>}
                 </div>
             );
         };
@@ -271,22 +230,15 @@ class NotificationsList extends React.Component {
         return (
             <div className="">
                 {isOwnAccount && <ClaimBox accountName={accountName} />}
-                {notifications &&
-                    notifications.length > 0 &&
-                    unreadNotifications !== 0 &&
-                    !notificationActionPending && (
-                        <center>
-                            <br />
-                            <a href="#" onClick={this.onClickMarkAsRead}>
-                                <strong>
-                                    {tt(
-                                        'notificationslist_jsx.mark_all_as_read'
-                                    )}
-                                </strong>
-                            </a>
-                            <br />
-                        </center>
-                    )}
+                {notifications && notifications.length > 0 && unreadNotifications !== 0 && !notificationActionPending && (
+                    <center>
+                        <br />
+                        <a href="#" onClick={this.onClickMarkAsRead}>
+                            <strong>{tt('notificationslist_jsx.mark_all_as_read')}</strong>
+                        </a>
+                        <br />
+                    </center>
+                )}
                 <center>
                     <div className="notification__filter_select">
                         <a
@@ -363,32 +315,21 @@ class NotificationsList extends React.Component {
                     </center>
                 )}
 
-                {notifications &&
-                    notifications.length > 0 && (
-                        <div style={{ lineHeight: '1rem' }}>
-                            {notifications.map(item => renderItem(item))}
-                        </div>
-                    )}
-                {!notifications &&
-                    !notificationActionPending &&
-                    process.env.BROWSER && (
-                        <Callout>
-                            Welcome! You don't have any notifications yet.
-                        </Callout>
-                    )}
-
-                {!notificationActionPending &&
-                    notifications &&
-                    !isLastPage && (
-                        <center>
-                            <br />
-                            <a href="#" onClick={this.onClickLoadMore}>
-                                <strong>
-                                    {tt('notificationslist_jsx.load_more')}
-                                </strong>
-                            </a>
-                        </center>
-                    )}
+                {notifications && notifications.length > 0 && (
+                    <div style={{ lineHeight: '1rem' }}>{notifications.map((item) => renderItem(item))}</div>
+                )}
+                {!notifications && !notificationActionPending && process.env.BROWSER && (
+                    <Callout>Welcome! You don't have any notifications yet.</Callout>
+                )}
+
+                {!notificationActionPending && notifications && !isLastPage && (
+                    <center>
+                        <br />
+                        <a href="#" onClick={this.onClickLoadMore}>
+                            <strong>{tt('notificationslist_jsx.load_more')}</strong>
+                        </a>
+                    </center>
+                )}
             </div>
         );
     }
@@ -397,38 +338,26 @@ class NotificationsList extends React.Component {
 export default connect(
     (state, props) => {
         const accountName = props.username;
-        const isOwnAccount =
-            state.user.getIn(['current', 'username'], '') == accountName;
-        const notifications = state.global
-            .getIn(['notifications', accountName, 'notifications'], List())
-            .toJS();
+        const isOwnAccount = state.user.getIn(['current', 'username'], '') == accountName;
+        const notifications = state.global.getIn(['notifications', accountName, 'notifications'], List()).toJS();
         const unreadNotifications = state.global.getIn(
             ['notifications', accountName, 'unreadNotifications', 'unread'],
             0
         );
-        const lastRead = state.global.getIn(
-            ['notifications', accountName, 'unreadNotifications', 'lastread'],
-            ''
-        );
-        const isNotificationsLastPage = state.global.getIn(
-            ['notifications', accountName, 'isLastPage'],
-            null
-        );
+        const lastRead = state.global.getIn(['notifications', accountName, 'unreadNotifications', 'lastread'], '');
+        const isNotificationsLastPage = state.global.getIn(['notifications', accountName, 'isLastPage'], null);
         return {
             ...props,
             isOwnAccount,
             accountName,
             unreadNotifications,
-            notificationActionPending: state.global.getIn([
-                'notifications',
-                'loading',
-            ]),
+            notificationActionPending: state.global.getIn(['notifications', 'loading']),
             lastRead,
             notifications,
             isLastPage: isNotificationsLastPage,
         };
     },
-    dispatch => ({
+    (dispatch) => ({
         getAccountNotifications: (username, last_id) => {
             const query = {
                 account: username,
@@ -437,9 +366,7 @@ export default connect(
             if (last_id) {
                 query.last_id = last_id;
             }
-            return dispatch(
-                fetchDataSagaActions.getAccountNotifications(query)
-            );
+            return dispatch(fetchDataSagaActions.getAccountNotifications(query));
         },
         markAsRead: (username, timeNow) => {
             const successCallback = (user, time) => {
diff --git a/src/app/components/cards/PostFull.jsx b/src/app/components/cards/PostFull.jsx
index 35644b2ad37784c5ce41e400cf00162ba8ff3a48..196e8895ce992b42e88ef856866efb94412947e5 100644
--- a/src/app/components/cards/PostFull.jsx
+++ b/src/app/components/cards/PostFull.jsx
@@ -34,7 +34,14 @@ function TimeAuthorCategory({ post }) {
     return (
         <span className="PostFull__time_author_category vcard">
             <Icon name="clock" className="space-right" />
-            <TimeAgoWrapper date={post.get('created')} /> {tt('g.in')} <Tag post={post} /> {tt('g.by')}{' '}
+            <TimeAgoWrapper date={post.get('created')} />
+            {' '}
+            {tt('g.in')}
+            {' '}
+            <Tag post={post} />
+            {' '}
+            {tt('g.by')}
+            {' '}
             <Author post={post} showAffiliation />
         </span>
     );
@@ -59,13 +66,22 @@ function TimeAuthorCategoryLarge({ post }) {
             <Userpic account={author} />
             <div className="right-side">
                 <Author post={post} showAffiliation resolveCrossPost />
-                {tt('g.in')} <Tag post={post} />
+                {tt('g.in')}
+                {' '}
+                <Tag post={post} />
                 {' • '}
-                <TimeAgoWrapper date={created} /> <ContentEditedWrapper createDate={created} updateDate={updated} />
-                {authoredBy &&
-                    authoredBy !== author && (
+                <TimeAgoWrapper date={created} />
+                {' '}
+                <ContentEditedWrapper createDate={created} updateDate={updated} />
+                {authoredBy
+                    && authoredBy !== author && (
                         <div className="PostFull__authored_by">
-                            {tt('postfull_jsx.authored_by')} <a href={`/@${authoredBy}`}>@{authoredBy}</a>
+                            {tt('postfull_jsx.authored_by')}
+                            {' '}
+                            <a href={`/@${authoredBy}`}>
+                                @
+                                {authoredBy}
+                            </a>
                         </div>
                     )}
             </div>
@@ -98,17 +114,23 @@ class PostFull extends React.Component {
         this.showExplorePost = this.showExplorePost.bind(this);
 
         this.onShowReply = () => {
-            const { state: { showReply, formId } } = this;
+            const {
+                state: { showReply, formId },
+            } = this;
             this.setState({ showReply: !showReply, showEdit: false });
             saveOnShow(formId, !showReply ? 'reply' : null);
         };
         this.onShowEdit = () => {
-            const { state: { showEdit, formId } } = this;
+            const {
+                state: { showEdit, formId },
+            } = this;
             this.setState({ showEdit: !showEdit, showReply: false });
             saveOnShow(formId, !showEdit ? 'edit' : null);
         };
         this.onDeletePost = () => {
-            const { props: { deletePost, post } } = this;
+            const {
+                props: { deletePost, post },
+            } = this;
             deletePost(post.get('author'), post.get('permlink'));
         };
     }
@@ -151,7 +173,9 @@ class PostFull extends React.Component {
         e.preventDefault();
         const winWidth = 640;
         const winHeight = 320;
+        // eslint-disable-next-line no-restricted-globals
         const winTop = screen.height / 2 - winWidth / 2;
+        // eslint-disable-next-line no-restricted-globals
         const winLeft = screen.width / 2 - winHeight / 2;
         const s = this.share_params;
         const q = 'text=' + encodeURIComponent(s.title) + '&url=' + encodeURIComponent(s.url);
@@ -175,11 +199,12 @@ class PostFull extends React.Component {
         e.preventDefault();
         const winWidth = 720;
         const winHeight = 480;
+        // eslint-disable-next-line no-restricted-globals
         const winTop = screen.height / 2 - winWidth / 2;
+        // eslint-disable-next-line no-restricted-globals
         const winLeft = screen.width / 2 - winHeight / 2;
         const s = this.share_params;
-        const q =
-            'title=' + encodeURIComponent(s.title) + '&url=' + encodeURIComponent(s.url) + '&source=Steemit&mini=true';
+        const q = 'title=' + encodeURIComponent(s.title) + '&url=' + encodeURIComponent(s.url) + '&source=Steemit&mini=true';
         window.open(
             'https://www.linkedin.com/shareArticle?' + q,
             'Share',
@@ -201,8 +226,10 @@ class PostFull extends React.Component {
         this.props.showExplorePost(permlink, title);
     };
 
-    onTogglePin = isPinned => {
-        const { community, username, post, postref } = this.props;
+    onTogglePin = (isPinned) => {
+        const {
+ community, username, post, postref
+} = this.props;
         if (!community || !username) console.error('pin fail', this.props);
 
         const key = ['content', postref, 'stats', 'is_pinned'];
@@ -215,8 +242,12 @@ class PostFull extends React.Component {
 
     render() {
         const {
-            props: { username, post, community, viewer_role },
-            state: { PostFullReplyEditor, PostFullEditEditor, formId, showReply, showEdit },
+            props: {
+ username, post, community, viewer_role
+},
+            state: {
+ PostFullReplyEditor, PostFullEditEditor, formId, showReply, showEdit
+},
             onShowReply,
             onShowEdit,
             onDeletePost,
@@ -245,9 +276,16 @@ class PostFull extends React.Component {
                         <span className="articles__crosspost-icon">
                             <Icon name="cross-post" />
                         </span>
-                        <UserNames names={[author]} /> {tt('postsummary_jsx.crossposted')}{' '}
-                        <Link to={`/${crossPostCategory}/@${crossPostAuthor}/${crossPostPermlink}`}>this post</Link>{' '}
-                        {tt('g.in')} <Link to={`/created/${community}`}>{community_title}</Link>{' '}
+                        <UserNames names={[author]} />
+                        {' '}
+                        {tt('postsummary_jsx.crossposted')}
+                        {' '}
+                        <Link to={`/${crossPostCategory}/@${crossPostAuthor}/${crossPostPermlink}`}>this post</Link>
+                        {' '}
+                        {tt('g.in')}
+                        {' '}
+                        <Link to={`/created/${community}`}>{community_title}</Link>
+                        {' '}
                         <TimeAgoWrapper date={post.get('created')} />
                     </p>
                     <hr />
@@ -368,7 +406,10 @@ class PostFull extends React.Component {
             const prnturl = `/${category}/@${parent_author}/${parent_permlink}`;
             post_header = (
                 <div className="callout">
-                    <div>{tt('postfull_jsx.you_are_viewing_a_single_comments_thread_from')}:</div>
+                    <div>
+                        {tt('postfull_jsx.you_are_viewing_a_single_comments_thread_from')}
+                        :
+                    </div>
                     <h4>{post.get('title')}</h4>
                     <ul>
                         <li>
@@ -396,7 +437,6 @@ class PostFull extends React.Component {
 
         const isPinned = post.getIn(['stats', 'is_pinned'], false);
 
-        const isPreViewCount = Date.parse(post.get('created')) < 1480723200000; // check if post was created before view-count tracking began (2016-12-03)
         let contentBody;
 
         if (bShowLoading) {
@@ -430,15 +470,15 @@ class PostFull extends React.Component {
                         </span>
                     )}
 
-                    {canPromote &&
-                        username && (
-                            <button
-                                className="Promote__button float-right button hollow tiny"
-                                onClick={this.showPromotePost}
-                            >
-                                {tt('g.promote')}
-                            </button>
-                        )}
+                    {canPromote && username && (
+                        <button
+                            type="button"
+                            className="Promote__button float-right button hollow tiny"
+                            onClick={this.showPromotePost}
+                        >
+                            {tt('g.promote')}
+                        </button>
+                    )}
                     {!isReply && <TagList post={post} />}
                     <div className="PostFull__footer row">
                         <div className="columns medium-12 large-9">
@@ -449,15 +489,21 @@ class PostFull extends React.Component {
                             {canReblog && <Reblog author={author} permlink={permlink} />}
                             <span className="PostFull__reply">
                                 {/* all */}
-                                {canReply && <a onClick={onShowReply}>{tt('g.reply')}</a>} {/* mods */}
+                                {canReply && <a role="link" tabIndex={0} onClick={onShowReply}>{tt('g.reply')}</a>}
+                                {' '}
+                                {/* mods */}
                                 {canPin && (
-                                    <a onClick={() => this.onTogglePin(isPinned)}>
+                                    <a role="link" tabIndex={0} onClick={() => this.onTogglePin(isPinned)}>
                                         {isPinned ? tt('g.unpin') : tt('g.pin')}
                                     </a>
-                                )}{' '}
-                                {canMute && <MuteButton post={post} />} {/* owner */}
-                                {canEdit && <a onClick={onShowEdit}>{tt('g.edit')}</a>}{' '}
-                                {canDelete && <a onClick={onDeletePost}>{tt('g.delete')}</a>}
+                                )}
+                                {' '}
+                                {canMute && <MuteButton post={post} />}
+                                {' '}
+                                {/* owner */}
+                                {canEdit && <a role="link" tabIndex={0} onClick={onShowEdit}>{tt('g.edit')}</a>}
+                                {' '}
+                                {canDelete && <a role="link" tabIndex={0} onClick={onDeletePost}>{tt('g.delete')}</a>}
                             </span>
                             <span className="PostFull__responses">
                                 <Link
@@ -472,6 +518,7 @@ class PostFull extends React.Component {
                             </span>
                             <ShareMenu menu={share_menu} />
                             <button
+                                type="button"
                                 className="explore-post"
                                 title={tt('g.share_this_post')}
                                 onClick={this.showExplorePost}
@@ -485,7 +532,8 @@ class PostFull extends React.Component {
                                     className="button"
                                     to={`/${crossPostCategory}/@${crossPostAuthor}/${crossPostPermlink}`}
                                 >
-                                    Browse to the original post by @{crossPostAuthor}
+                                    Browse to the original post by @
+                                    {crossPostAuthor}
                                 </Link>
                             </div>
                         )}
@@ -515,7 +563,7 @@ export default connect(
             viewer_role: state.global.getIn(['community', community, 'context', 'role'], 'guest'),
         };
     },
-    dispatch => ({
+    (dispatch) => ({
         deletePost: (author, permlink) => {
             dispatch(
                 transactionActions.broadcastOperation({
diff --git a/src/app/components/cards/PostSummary.jsx b/src/app/components/cards/PostSummary.jsx
index b81cd9530b90ee3d93fcb4e13835bcf343408239..43203acbb43f5738cee3e67c2e5d8e1f957f8b07 100644
--- a/src/app/components/cards/PostSummary.jsx
+++ b/src/app/components/cards/PostSummary.jsx
@@ -10,11 +10,7 @@ import Icon from 'app/components/elements/Icon';
 import Reblog from 'app/components/elements/Reblog';
 import resolveRoute from 'app/ResolveRoute';
 import Voting from 'app/components/elements/Voting';
-import {
-    getPostSummary,
-    extractBodySummary,
-    extractImageLink,
-} from 'app/utils/ExtractContent';
+import { getPostSummary, extractBodySummary, extractImageLink } from 'app/utils/ExtractContent';
 import VotesAndComments from 'app/components/elements/VotesAndComments';
 import Author from 'app/components/elements/Author';
 import Tag from 'app/components/elements/Tag';
@@ -40,7 +36,6 @@ const vote_weights = post => {
 class PostSummary extends React.Component {
     static propTypes = {
         post: PropTypes.object.isRequired,
-        onClose: PropTypes.func,
         nsfwPref: PropTypes.string,
     };
 
@@ -52,11 +47,11 @@ class PostSummary extends React.Component {
 
     shouldComponentUpdate(props, state) {
         return (
-            props.username !== this.props.username ||
-            props.nsfwPref !== this.props.nsfwPref ||
-            props.blogmode !== this.props.blogmode ||
-            state.revealNsfw !== this.state.revealNsfw ||
-            props.post != this.props.post
+            props.username !== this.props.username
+            || props.nsfwPref !== this.props.nsfwPref
+            || props.blogmode !== this.props.blogmode
+            || state.revealNsfw !== this.state.revealNsfw
+            || props.post != this.props.post
         );
     }
 
@@ -90,7 +85,8 @@ class PostSummary extends React.Component {
                         <span className="articles__resteem-icon">
                             <Icon name="reblog" />
                         </span>
-                        <UserNames names={reblogged_by} />{' '}
+                        <UserNames names={reblogged_by} />
+                        {' '}
                         {tt('postsummary_jsx.reblogged')}
                     </p>
                 </div>
@@ -110,14 +106,15 @@ class PostSummary extends React.Component {
                         <span className="articles__crosspost-icon">
                             <Icon name="cross-post" />
                         </span>
-                        <UserNames names={[crossPostedBy]} />{' '}
-                        {tt('postsummary_jsx.crossposted')}{' '}
-                        <Link
-                            to={`${crossPostCategory}/@${crossPostAuthor}/${
-                                crossPostPermlink
-                            }`}
-                        >
-                            @{crossPostAuthor}/{crossPostPermlink}
+                        <UserNames names={[crossPostedBy]} />
+                        {' '}
+                        {tt('postsummary_jsx.crossposted')}
+                        {' '}
+                        <Link to={`${crossPostCategory}/@${crossPostAuthor}/${crossPostPermlink}`}>
+                            @
+                            {crossPostAuthor}
+                            /
+                            {crossPostPermlink}
                         </Link>
                     </div>
                 </div>
@@ -140,11 +137,7 @@ class PostSummary extends React.Component {
         if (crossPostedBy) {
             summary = extractBodySummary(post.get('cross_post_body'), isReply);
         } else {
-            summary = getPostSummary(
-                post.get('json_metadata'),
-                post.get('body'),
-                isReply
-            );
+            summary = getPostSummary(post.get('json_metadata'), post.get('body'), isReply);
         }
 
         const content_body = (
@@ -162,9 +155,7 @@ class PostSummary extends React.Component {
             </h2>
         );
 
-        const summaryAuthor = crossPostedBy
-            ? post.get('cross_post_author')
-            : post.get('author');
+        const summaryAuthor = crossPostedBy ? post.get('cross_post_author') : post.get('author');
 
         // New Post Summary heading
         const summary_header = (
@@ -172,14 +163,8 @@ class PostSummary extends React.Component {
                 <div className="user">
                     {!isNsfw ? (
                         <div className="user__col user__col--left">
-                            <a
-                                className="user__link"
-                                href={`/@${summaryAuthor}`}
-                            >
-                                <Userpic
-                                    account={summaryAuthor}
-                                    size={SIZE_SMALL}
-                                />
+                            <a className="user__link" href={`/@${summaryAuthor}`}>
+                                <Userpic account={summaryAuthor} size={SIZE_SMALL} />
                             </a>
                         </div>
                     ) : null}
@@ -188,7 +173,7 @@ class PostSummary extends React.Component {
                             <Author
                                 post={post}
                                 follow={false}
-                                hideEditor={true}
+                                hideEditor
                                 resolveCrossPost
                                 showRole={showCommunityLabels}
                             />
@@ -196,37 +181,28 @@ class PostSummary extends React.Component {
 
                         {hideCategory || (
                             <span className="articles__tag-link">
-                                {tt('g.in')}&nbsp;
+                                {tt('g.in')}
+&nbsp;
                                 <Tag post={post} />
                                 &nbsp;•&nbsp;
                             </span>
                         )}
                         <Link className="timestamp__link" to={post_url}>
                             <span className="timestamp__time">
-                                {this.props.order == 'payout' && (
-                                    <span>payout </span>
-                                )}
+                                {this.props.order == 'payout' && <span>payout </span>}
                                 <TimeAgoWrapper
-                                    date={
-                                        this.props.order == 'payout'
-                                            ? post.get('payout_at')
-                                            : post.get('created')
-                                    }
+                                    date={this.props.order == 'payout' ? post.get('payout_at') : post.get('created')}
                                     className="updated"
                                 />
                             </span>
                             {full_power && (
-                                <span
-                                    className="articles__icon-100"
-                                    title={tt('g.powered_up_100')}
-                                >
+                                <span className="articles__icon-100" title={tt('g.powered_up_100')}>
                                     <Icon name="hivepower" />
                                 </span>
                             )}
-                            {showCommunityLabels &&
-                                post.getIn(['stats', 'is_pinned'], false) && (
-                                    <span className="FeaturedTag">Pinned</span>
-                                )}
+                            {showCommunityLabels && post.getIn(['stats', 'is_pinned'], false) && (
+                                <span className="FeaturedTag">Pinned</span>
+                            )}
                         </Link>
                     </div>
                 </div>
@@ -239,12 +215,11 @@ class PostSummary extends React.Component {
                 return cnt > 0 ? '•'.repeat(cnt) : null;
             };
             const { up, dn } = vote_weights(post);
-            dots =
-                up || dn ? (
-                    <span className="vote_weights">
-                        {_dots(up)}
-                        {<span>{_dots(dn)}</span>}
-                    </span>
+            dots = up || dn ? (
+                <span className="vote_weights">
+                    {_dots(up)}
+                    {<span>{_dots(dn)}</span>}
+                </span>
                 ) : null;
         }
 
@@ -252,17 +227,9 @@ class PostSummary extends React.Component {
             <div className="articles__summary-footer">
                 {dots}
                 <Voting post={post} showList={false} />
-                <VotesAndComments
-                    post={post}
-                    commentsLink={post_url + '#comments'}
-                />
+                <VotesAndComments post={post} commentsLink={post_url + '#comments'} />
                 <span className="PostSummary__time_author_category">
-                    {showReblog && (
-                        <Reblog
-                            author={post.get('author')}
-                            permlink={post.get('permlink')}
-                        />
-                    )}
+                    {showReblog && <Reblog author={post.get('author')} permlink={post.get('permlink')} />}
                 </span>
             </div>
         );
@@ -274,28 +241,26 @@ class PostSummary extends React.Component {
             if (nsfwPref === 'hide') {
                 // user wishes to hide these posts entirely
                 return null;
-            } else if (nsfwPref === 'warn' && !revealNsfw) {
+            } if (nsfwPref === 'warn' && !revealNsfw) {
                 // user wishes to be warned, and has not revealed this post
                 return (
-                    <article
-                        className={'PostSummary hentry'}
-                        itemScope
-                        itemType="http://schema.org/blogPost"
-                    >
+                    <article className="PostSummary hentry" itemScope itemType="http://schema.org/blogPost">
                         <div className="PostSummary__nsfw-warning">
                             {summary_header}
-                            <span className="nsfw-flag">nsfw</span>&nbsp;&nbsp;
+                            <span className="nsfw-flag">nsfw</span>
+                            &nbsp;&nbsp;
+                            {/* eslint-disable-next-line jsx-a11y/interactive-supports-focus */}
                             <span role="button" onClick={this.onRevealNsfw}>
                                 <a>{tt('postsummary_jsx.reveal_it')}</a>
-                            </span>{' '}
+                            </span>
+                            {' '}
                             {tt('g.or') + ' '}
                             {username ? (
                                 <span>
-                                    {tt('postsummary_jsx.adjust_your')}{' '}
+                                    {tt('postsummary_jsx.adjust_your')}
+                                    {' '}
                                     <Link to={`/@${username}/settings`}>
-                                        {tt(
-                                            'postsummary_jsx.display_preferences'
-                                        )}
+                                        {tt('postsummary_jsx.display_preferences')}
                                     </Link>
                                     .
                                 </span>
@@ -305,7 +270,8 @@ class PostSummary extends React.Component {
                                         {tt(
                                             'postsummary_jsx.create_an_account'
                                         )}
-                                    </a>{' '}
+                                    </a>
+                                    {' '}
                                     {tt(
                                         'postsummary_jsx.to_save_your_preferences'
                                     )}
@@ -319,16 +285,10 @@ class PostSummary extends React.Component {
             }
         }
 
-        let image_link = extractImageLink(
-            post.get('json_metadata'),
-            post.get('body')
-        );
+        let image_link = extractImageLink(post.get('json_metadata'), post.get('body'));
 
         if (crossPostedBy) {
-            image_link = extractImageLink(
-                post.get('cross_post_json_metadata'),
-                post.get('cross_post_body')
-            );
+            image_link = extractImageLink(post.get('cross_post_json_metadata'), post.get('cross_post_body'));
         }
 
         let listImgMedium;
@@ -346,21 +306,26 @@ class PostSummary extends React.Component {
 
         let thumb = null;
         if (!gray && image_link && !ImageUserBlockList.includes(author)) {
-            thumb = (
-                <span className="articles__feature-img-container">
+            // on mobile, we always use blog layout style -- there's no toggler
+            // on desktop, we offer a choice of either blog or list
+            // if blogmode is false, output an image with a srcset
+            // which has the 256x512 for whatever the large breakpoint is where the list layout is used
+            // and the 640 for lower than that
+            if (this.props.blogmode) {
+                image_link = proxify(image_link, '640x480');
+                thumb = (
+                    <img className="articles__feature-img" src={image_link} alt="featured" />
+                );
+            } else {
+                const listImg = proxify(image_link, '256x512');
+                thumb = (
                     <picture className="articles__feature-img">
-                        <source
-                            srcSet={listImgMedium}
-                            media="(min-width: 1000px)"
-                        />
-                        <source
-                            srcSet={listImgLarge}
-                            media="(max-width: 999px)"
-                        />
-                        <img srcSet={image_link} />
+                        <source srcSet={listImg} media="(min-width: 1000px)" />
+                        <img srcSet={image_link} alt="featured" />
                     </picture>
-                </span>
-            );
+                );
+            }
+            thumb = <span className="articles__feature-img-container">{thumb}</span>;
         }
 
         return (
@@ -370,9 +335,9 @@ class PostSummary extends React.Component {
                 {summary_header}
                 <div
                     className={
-                        'articles__content hentry' +
-                        (thumb ? ' with-image ' : ' ') +
-                        (gray || ignore ? ' downvoted' : '')
+                        'articles__content hentry'
+                        + (thumb ? ' with-image ' : ' ')
+                        + (gray || ignore ? ' downvoted' : '')
                     }
                     itemScope
                     itemType="http://schema.org/blogPost"
@@ -387,11 +352,7 @@ class PostSummary extends React.Component {
                     <div className="articles__content-block articles__content-block--text">
                         {content_title}
                         {content_body}
-                        {this.props.blogmode ? null : (
-                            <div className="articles__footer">
-                                {summary_footer}
-                            </div>
-                        )}
+                        {this.props.blogmode ? null : <div className="articles__footer">{summary_footer}</div>}
                     </div>
                     {this.props.blogmode ? summary_footer : null}
                 </div>
@@ -406,9 +367,7 @@ export default connect((state, props) => {
     return {
         post,
         hideCategory,
-        username:
-            state.user.getIn(['current', 'username']) ||
-            state.offchain.get('account'),
+        username: state.user.getIn(['current', 'username']) || state.offchain.get('account'),
         blogmode: state.app.getIn(['user_preferences', 'blogmode']),
         nsfwPref,
         net_vests,
diff --git a/src/app/components/cards/PostTemplateSelector.jsx b/src/app/components/cards/PostTemplateSelector.jsx
index 3e49cbfdb158e24b3b4d081d414ebd4ba15177c0..9a2cf8d4a9d221b063a762c33ffd7b3b306dd964 100644
--- a/src/app/components/cards/PostTemplateSelector.jsx
+++ b/src/app/components/cards/PostTemplateSelector.jsx
@@ -1,11 +1,12 @@
 import React from 'react';
 import tt from 'counterpart';
+import PropTypes from 'prop-types';
 
 class PostTemplateSelector extends React.Component {
     static propTypes = {
-        username: React.PropTypes.string.isRequired,
-        templates: React.PropTypes.array.isRequired,
-        onChange: React.PropTypes.func.isRequired,
+        username: PropTypes.string.isRequired,
+        templates: PropTypes.array.isRequired,
+        onChange: PropTypes.func.isRequired,
     };
 
     constructor() {
@@ -25,9 +26,7 @@ class PostTemplateSelector extends React.Component {
         const handleTemplateSelection = (event, create = false) => {
             const selectedTemplateName = event.target.value;
             this.setState({ currentTemplateName: selectedTemplateName });
-            onChange(
-                create ? `create_${selectedTemplateName}` : selectedTemplateName
-            );
+            onChange(create ? `create_${selectedTemplateName}` : selectedTemplateName);
         };
 
         return (
@@ -35,42 +34,22 @@ class PostTemplateSelector extends React.Component {
                 <div className="row">
                     <div className="column">
                         <h4>{tt('post_template_selector_jsx.templates')}</h4>
-                        <p>
-                            {tt(
-                                'post_template_selector_jsx.templates_description'
-                            )}
-                        </p>
+                        <p>{tt('post_template_selector_jsx.templates_description')}</p>
                     </div>
                 </div>
                 <div className="row">
                     <div className="small-12 medium-6 large-12 columns">
                         {templates && (
-                            <select
-                                onChange={handleTemplateSelection}
-                                value={currentTemplateName}
-                            >
-                                <option value="">
-                                    {tt(
-                                        'post_template_selector_jsx.choose_template'
-                                    )}
-                                </option>
-                                {templates.map(template => (
-                                    <option
-                                        value={template.name}
-                                        key={template.name}
-                                    >
+                            <select onChange={handleTemplateSelection} value={currentTemplateName}>
+                                <option value="">{tt('post_template_selector_jsx.choose_template')}</option>
+                                {templates.map((template) => (
+                                    <option value={template.name} key={template.name}>
                                         {template.name}
                                     </option>
                                 ))}
                             </select>
                         )}
-                        {!templates && (
-                            <span>
-                                {tt(
-                                    'post_template_selector_jsx.create_template_first'
-                                )}
-                            </span>
-                        )}
+                        {!templates && <span>{tt('post_template_selector_jsx.create_template_first')}</span>}
                     </div>
                 </div>
                 <div className="row">
@@ -79,10 +58,8 @@ class PostTemplateSelector extends React.Component {
                             id="new_template_name"
                             type="text"
                             className="input-group-field bold"
-                            placeholder={tt(
-                                'post_template_selector_jsx.new_template_name'
-                            )}
-                            onChange={event => {
+                            placeholder={tt('post_template_selector_jsx.new_template_name')}
+                            onChange={(event) => {
                                 handleTemplateSelection(event, true);
                             }}
                         />
diff --git a/src/app/components/cards/PostsList.jsx b/src/app/components/cards/PostsList.jsx
index 7ed95c5caca8884a8657389f1ae603cf36c349fb..4ace27a0293dff2802c65daf5d407dff49eb1d4e 100644
--- a/src/app/components/cards/PostsList.jsx
+++ b/src/app/components/cards/PostsList.jsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 import { List } from 'immutable';
@@ -8,7 +8,7 @@ import PostSummary from 'app/components/cards/PostSummary';
 import LoadingIndicator from 'app/components/elements/LoadingIndicator';
 import GptAd from 'app/components/elements/GptAd';
 import VideoAd from 'app/components/elements/VideoAd';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 
 function topPosition(domElt) {
     if (!domElt) {
@@ -17,19 +17,15 @@ function topPosition(domElt) {
     return domElt.offsetTop + topPosition(domElt.offsetParent);
 }
 
-class PostsList extends React.Component {
+class PostsList extends PureComponent {
     static propTypes = {
         posts: PropTypes.object,
-        loading: PropTypes.bool.isRequired,
+        loading: PropTypes.bool,
         category: PropTypes.string,
         loadMore: PropTypes.func,
         nsfwPref: PropTypes.string.isRequired,
     };
 
-    static defaultProps = {
-        loading: false,
-    };
-
     constructor() {
         super();
         this.state = {
@@ -38,7 +34,7 @@ class PostsList extends React.Component {
         };
         this.scrollListener = this.scrollListener.bind(this);
         this.onBackButton = this.onBackButton.bind(this);
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'PostsList');
+        // this.shouldComponentUpdate = shouldComponentUpdate(this, 'PostsList');
     }
 
     componentDidMount() {
@@ -64,8 +60,7 @@ class PostsList extends React.Component {
     scrollListener = debounce(() => {
         const el = window.document.getElementById('posts_list');
         if (!el) return;
-        const scrollTop =
-            window.pageYOffset !== undefined
+        const scrollTop = window.pageYOffset !== undefined
                 ? window.pageYOffset
                 : (document.documentElement || document.body.parentNode || document.body).scrollTop;
         if (topPosition(el) + el.offsetHeight - scrollTop - window.innerHeight < 10) {
@@ -100,11 +95,12 @@ class PostsList extends React.Component {
     }
 
     render() {
-        const { posts, loading, category, order, nsfwPref, hideCategory } = this.props;
+        const {
+            posts, loading, category, order, nsfwPref, hideCategory
+        } = this.props;
         const { thumbSize } = this.state;
 
-        const renderSummary = items =>
-            items.map((post, i) => {
+        const renderSummary = (items) => items.map((post, i) => {
                 const ps = (
                     <PostSummary
                         post={post}
@@ -167,10 +163,10 @@ export default connect(
 
         let { posts } = props;
         if (typeof posts === 'undefined') {
-            const { post_refs, loading } = props;
+            const { post_refs } = props;
             if (post_refs) {
                 posts = [];
-                props.post_refs.forEach(ref => {
+                props.post_refs.forEach((ref) => {
                     const post = state.global.getIn(['content', ref]);
                     if (!post) {
                         // can occur when deleting a post
@@ -195,8 +191,8 @@ export default connect(
             adSlots,
         };
     },
-    dispatch => ({
-        fetchState: pathname => {
+    (dispatch) => ({
+        fetchState: (pathname) => {
             dispatch(fetchDataSagaActions.fetchState({ pathname }));
         },
     })
diff --git a/src/app/components/cards/SubscriptionsList.jsx b/src/app/components/cards/SubscriptionsList.jsx
index ee536205002703683c98d33a3f2f7d7ca2ce5b00..6559a9ff76354e50a3153eee56bedb5819482f1d 100644
--- a/src/app/components/cards/SubscriptionsList.jsx
+++ b/src/app/components/cards/SubscriptionsList.jsx
@@ -38,14 +38,10 @@ class SubscriptionsList extends React.Component {
         const peakdBadges = _.get(badges, 'peakd', []);
         const hasBadges = !_.isEmpty(hivebuzzBadges) || !_.isEmpty(peakdBadges);
         if (hivebuzzBadges) {
-            hivebuzzBadges.forEach(badge => {
+            hivebuzzBadges.forEach((badge) => {
                 const type = badge.get('type');
                 let valid = true;
-                if (
-                    badgesTypes[type] === undefined ||
-                    badgesTypes[type] === null
-                )
-                    valid = false;
+                if (badgesTypes[type] === undefined || badgesTypes[type] === null) valid = false;
                 if (valid) {
                     badgesTypes[type].push(
                         <a
@@ -55,25 +51,17 @@ class SubscriptionsList extends React.Component {
                             target="_blank"
                             rel="noopener noreferrer"
                         >
-                            <img
-                                src={badge.get('url')}
-                                alt={badge.get('title')}
-                                title={badge.get('title')}
-                            />
+                            <img src={badge.get('url')} alt={badge.get('title')} title={badge.get('title')} />
                         </a>
                     );
                 }
             });
         }
         if (peakdBadges) {
-            peakdBadges.forEach(badge => {
+            peakdBadges.forEach((badge) => {
                 const type = badge.get('type');
                 let valid = true;
-                if (
-                    badgesTypes[type] === undefined ||
-                    badgesTypes[type] === null
-                )
-                    valid = false;
+                if (badgesTypes[type] === undefined || badgesTypes[type] === null) valid = false;
                 if (valid) {
                     badgesTypes[type].push(
                         <a
@@ -95,7 +83,7 @@ class SubscriptionsList extends React.Component {
             });
         }
 
-        const renderItem = tuple => {
+        const renderItem = (tuple) => {
             const [hive, name, role, title] = tuple;
             return (
                 <li key={hive}>
@@ -111,21 +99,11 @@ class SubscriptionsList extends React.Component {
                 <div className="article_section">
                     <h4>{tt('g.community_subscriptions')}</h4>
                     <p>{tt('g.community_subscriptions_description')}</p>
-                    {!_.isEmpty(subscriptions) && (
-                        <ul>{subscriptions.map(item => renderItem(item))}</ul>
-                    )}
-                    {_.isEmpty(subscriptions) &&
-                        !loading && (
-                            <Callout>
-                                {tt('g.community_no_subscriptions')}
-                            </Callout>
-                        )}
+                    {!_.isEmpty(subscriptions) && <ul>{subscriptions.map((item) => renderItem(item))}</ul>}
+                    {_.isEmpty(subscriptions) && !loading && <Callout>{tt('g.community_no_subscriptions')}</Callout>}
                     {loading && (
                         <center>
-                            <LoadingIndicator
-                                style={{ marginBottom: '2rem' }}
-                                type="circle"
-                            />
+                            <LoadingIndicator style={{ marginBottom: '2rem' }} type="circle" />
                         </center>
                     )}
                 </div>
@@ -135,19 +113,11 @@ class SubscriptionsList extends React.Component {
                         <div>
                             <p>
                                 {tt('g.badges_and_achievements_description')}{' '}
-                                <a
-                                    href="https://peakd.com/"
-                                    target="_blank"
-                                    rel="noopener noreferrer"
-                                >
+                                <a href="https://peakd.com/" target="_blank" rel="noopener noreferrer">
                                     Peakd
                                 </a>{' '}
                                 &{' '}
-                                <a
-                                    href="https://hivebuzz.me"
-                                    target="_blank"
-                                    rel="noopener noreferrer"
-                                >
+                                <a href="https://hivebuzz.me" target="_blank" rel="noopener noreferrer">
                                     Hivebuzz
                                 </a>
                                 .
@@ -156,55 +126,27 @@ class SubscriptionsList extends React.Component {
                                 <div className="BadgesAchievements_tabs_container">
                                     <Tabs>
                                         <TabList>
-                                            {!_.isEmpty(badgesTypes.badges) && (
-                                                <Tab>Badges</Tab>
-                                            )}
-                                            {!_.isEmpty(
-                                                badgesTypes.activity
-                                            ) && <Tab>Activity</Tab>}
-                                            {!_.isEmpty(badgesTypes.perso) && (
-                                                <Tab>Personal</Tab>
-                                            )}
-                                            {!_.isEmpty(badgesTypes.meetup) && (
-                                                <Tab>Meetups</Tab>
-                                            )}
-                                            {!_.isEmpty(
-                                                badgesTypes.challenge
-                                            ) && <Tab>Challenges</Tab>}
+                                            {!_.isEmpty(badgesTypes.badges) && <Tab>Badges</Tab>}
+                                            {!_.isEmpty(badgesTypes.activity) && <Tab>Activity</Tab>}
+                                            {!_.isEmpty(badgesTypes.perso) && <Tab>Personal</Tab>}
+                                            {!_.isEmpty(badgesTypes.meetup) && <Tab>Meetups</Tab>}
+                                            {!_.isEmpty(badgesTypes.challenge) && <Tab>Challenges</Tab>}
                                         </TabList>
-                                        {!_.isEmpty(badgesTypes.badges) && (
-                                            <TabPanel>
-                                                {badgesTypes.badges}
-                                            </TabPanel>
-                                        )}
+                                        {!_.isEmpty(badgesTypes.badges) && <TabPanel>{badgesTypes.badges}</TabPanel>}
                                         {!_.isEmpty(badgesTypes.activity) && (
-                                            <TabPanel>
-                                                {badgesTypes.activity}
-                                            </TabPanel>
-                                        )}
-                                        {!_.isEmpty(badgesTypes.perso) && (
-                                            <TabPanel>
-                                                {badgesTypes.perso}
-                                            </TabPanel>
-                                        )}
-                                        {!_.isEmpty(badgesTypes.meetup) && (
-                                            <TabPanel>
-                                                {badgesTypes.meetup}
-                                            </TabPanel>
+                                            <TabPanel>{badgesTypes.activity}</TabPanel>
                                         )}
+                                        {!_.isEmpty(badgesTypes.perso) && <TabPanel>{badgesTypes.perso}</TabPanel>}
+                                        {!_.isEmpty(badgesTypes.meetup) && <TabPanel>{badgesTypes.meetup}</TabPanel>}
                                         {!_.isEmpty(badgesTypes.challenge) && (
-                                            <TabPanel>
-                                                {badgesTypes.challenge}
-                                            </TabPanel>
+                                            <TabPanel>{badgesTypes.challenge}</TabPanel>
                                         )}
                                     </Tabs>
                                 </div>
                             </div>
                         </div>
                     )}
-                    {!hasBadges && (
-                        <p>{tt('g.badges_and_achievements_none')}</p>
-                    )}
+                    {!hasBadges && <p>{tt('g.badges_and_achievements_none')}</p>}
                 </div>
             </div>
         );
@@ -226,8 +168,7 @@ export default connect(
     (state, props) => {
         const { username } = props;
         const { user, global } = state;
-        const isOwnAccount =
-            user.getIn(['current', 'username'], '') === username;
+        const isOwnAccount = user.getIn(['current', 'username'], '') === username;
         const loading = global.getIn(['subscriptions', 'loading']);
         const subscriptions = global.getIn(['subscriptions', username]);
         return {
@@ -237,8 +178,8 @@ export default connect(
             loading,
         };
     },
-    dispatch => ({
-        getAccountSubscriptions: username => {
+    (dispatch) => ({
+        getAccountSubscriptions: (username) => {
             return dispatch(fetchDataSagaActions.getSubscriptions(username));
         },
     })
diff --git a/src/app/components/cards/TagInput.jsx b/src/app/components/cards/TagInput.jsx
index b6d5757311e94c151cf60cb394b5703581dfb095..5aa468629ee672ed88583870c5fa9c035b1b6902 100644
--- a/src/app/components/cards/TagInput.jsx
+++ b/src/app/components/cards/TagInput.jsx
@@ -1,33 +1,19 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import { cleanReduxInput } from 'app/utils/ReduxForms';
 import tt from 'counterpart';
-import { List } from 'immutable';
 
 const MAX_TAGS = 8;
 
-class TagInput extends React.Component {
+class TagInput extends PureComponent {
     static propTypes = {
         // HTML props
-        id: PropTypes.string, // DOM id for active component (focusing, etc...)
-        autoComplete: PropTypes.string,
-        placeholder: PropTypes.string,
         onChange: PropTypes.func.isRequired,
-        onBlur: PropTypes.func.isRequired,
         disabled: PropTypes.bool,
-        value: PropTypes.string,
         tabIndex: PropTypes.number,
     };
-    static defaultProps = {
-        autoComplete: 'on',
-        id: 'TagInputId',
-    };
-    constructor() {
-        super();
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'TagInput');
-    }
 
     render() {
         const { tabIndex, disabled, onChange } = this.props;
@@ -36,15 +22,14 @@ class TagInput extends React.Component {
 
         const tags = inputSanitized.value.split(' ');
         const hidden = [];
-        if (tags && tags[0].substring(0, 5) == 'hive-')
-            hidden.push(tags.shift());
+        if (tags && tags[0].substring(0, 5) == 'hive-') hidden.push(tags.shift());
         const value = tags.join(' ');
 
         const input = (
             <input
                 type="text"
                 value={value}
-                onChange={e => {
+                onChange={(e) => {
                     e.preventDefault();
                     // Re-insert any hidden tags first.
                     const updatedEvent = {
@@ -68,12 +53,8 @@ class TagInput extends React.Component {
     }
 }
 export function validateTagInput(value, required = true) {
-    if (!value || value.trim() === '')
-        return required ? tt('g.required') : null;
-    const cats = value
-        .trim()
-        .replace(/#/g, '')
-        .split(/ +/);
+    if (!value || value.trim() === '') return required ? tt('g.required') : null;
+    const cats = value.trim().replace(/#/g, '').split(/ +/);
 
     return (
         // !value || value.trim() === '' ? 'Required' :
@@ -81,33 +62,25 @@ export function validateTagInput(value, required = true) {
             ? tt('category_selector_jsx.use_limited_amount_of_categories', {
                   amount: MAX_TAGS,
               })
-            : cats.find(c => c.length > 24)
-              ? tt('category_selector_jsx.maximum_tag_length_is_24_characters')
-              : cats.find(c => c.split('-').length > 2)
-                ? tt('category_selector_jsx.use_one_dash')
-                : cats.find(c => c.indexOf(',') >= 0)
-                  ? tt('category_selector_jsx.use_spaces_to_separate_tags')
-                  : cats.find(c => /[A-Z]/.test(c))
-                    ? tt('category_selector_jsx.use_only_lowercase_letters')
-                    : cats.find(c => !/^[a-z0-9-#]+$/.test(c))
-                      ? tt('category_selector_jsx.use_only_allowed_characters')
-                      : cats.find(c => !/^[a-z-#]/.test(c))
-                        ? tt('category_selector_jsx.must_start_with_a_letter')
-                        : cats.find(c => !/[a-z0-9]$/.test(c))
-                          ? tt(
-                                'category_selector_jsx.must_end_with_a_letter_or_number'
-                            )
-                          : cats.filter(c => c.substring(0, 5) === 'hive-')
-                                .length > 1
-                            ? tt(
-                                  'category_selector_jsx.must_not_include_hivemind_community_owner',
-                                  {
-                                      hive: cats.filter(
-                                          c => c.substring(0, 5) === 'hive-'
-                                      )[0],
-                                  }
-                              )
-                            : null
+            : cats.find((c) => c.length > 24)
+            ? tt('category_selector_jsx.maximum_tag_length_is_24_characters')
+            : cats.find((c) => c.split('-').length > 2)
+            ? tt('category_selector_jsx.use_one_dash')
+            : cats.find((c) => c.indexOf(',') >= 0)
+            ? tt('category_selector_jsx.use_spaces_to_separate_tags')
+            : cats.find((c) => /[A-Z]/.test(c))
+            ? tt('category_selector_jsx.use_only_lowercase_letters')
+            : cats.find((c) => !/^[a-z0-9-#]+$/.test(c))
+            ? tt('category_selector_jsx.use_only_allowed_characters')
+            : cats.find((c) => !/^[a-z-#]/.test(c))
+            ? tt('category_selector_jsx.must_start_with_a_letter')
+            : cats.find((c) => !/[a-z0-9]$/.test(c))
+            ? tt('category_selector_jsx.must_end_with_a_letter_or_number')
+            : cats.filter((c) => c.substring(0, 5) === 'hive-').length > 1
+            ? tt('category_selector_jsx.must_not_include_hivemind_community_owner', {
+                  hive: cats.filter((c) => c.substring(0, 5) === 'hive-')[0],
+              })
+            : null
     );
 }
 export default connect((state, ownProps) => {
diff --git a/src/app/components/cards/UserProfileHeader.jsx b/src/app/components/cards/UserProfileHeader.jsx
index 9174b98245b1496e8bffc7cd78ea5bcdc867b6b3..b394b00be2d6d127c48a59aa16052d076431ccd9 100644
--- a/src/app/components/cards/UserProfileHeader.jsx
+++ b/src/app/components/cards/UserProfileHeader.jsx
@@ -21,15 +21,12 @@ class UserProfileHeader extends React.Component {
         const { name, location, about, website, cover_image } = profile
             ? profile.getIn(['metadata', 'profile']).toJS()
             : {};
-        const website_label = website
-            ? website.replace(/^https?:\/\/(www\.)?/, '').replace(/\/$/, '')
-            : null;
+        const website_label = website ? website.replace(/^https?:\/\/(www\.)?/, '').replace(/\/$/, '') : null;
 
         let cover_image_style = {};
         if (cover_image) {
             cover_image_style = {
-                backgroundImage:
-                    'url(' + proxifyImageUrl(cover_image, '2048x512') + ')',
+                backgroundImage: 'url(' + proxifyImageUrl(cover_image, '2048x512') + ')',
             };
         }
 
@@ -38,7 +35,7 @@ class UserProfileHeader extends React.Component {
             <DropdownMenu
                 title="Blacklisted on:"
                 className="UserProfile__blacklists"
-                items={_lists.map(list => {
+                items={_lists.map((list) => {
                     return { value: list };
                 })}
                 el="div"
@@ -59,10 +56,7 @@ class UserProfileHeader extends React.Component {
                 <div className="column" style={cover_image_style}>
                     <div style={{ position: 'relative' }}>
                         <div className="UserProfile__buttons hide-for-small-only">
-                            <Follow
-                                follower={current_user}
-                                following={accountname}
-                            />
+                            <Follow follower={current_user} following={accountname} />
                         </div>
                     </div>
                     <h1>
@@ -71,29 +65,20 @@ class UserProfileHeader extends React.Component {
                         </div>
                         {name || accountname}{' '}
                         <Tooltip
-                            t={tt(
-                                'user_profile.this_is_users_reputations_score_it_is_based_on_history_of_votes',
-                                { name: accountname }
-                            )}
+                            t={tt('user_profile.this_is_users_reputations_score_it_is_based_on_history_of_votes', {
+                                name: accountname,
+                            })}
                         >
-                            <span className="UserProfile__rep">
-                                ({Math.floor(profile.get('reputation'))})
-                            </span>
+                            <span className="UserProfile__rep">({Math.floor(profile.get('reputation'))})</span>
                         </Tooltip>
                         <Tooltip
                             t={tt('user_profile.hivebuzz_level_badge', {
                                 name: accountname,
                             })}
                         >
-                            <a
-                                href={`https://hivebuzz.me/@${accountname}`}
-                                target="_blank"
-                                rel="noopener noreferrer"
-                            >
+                            <a href={`https://hivebuzz.me/@${accountname}`} target="_blank" rel="noopener noreferrer">
                                 <img
-                                    src={`https://hivebuzz.me/@${
-                                        accountname
-                                    }/level.png`}
+                                    src={`https://hivebuzz.me/@${accountname}/level.png`}
                                     alt="Hivebuzz level badge"
                                     className="UserProfile__badge_image_hivebuzzlevel"
                                     id="hivebuzz-level-badge"
@@ -103,12 +88,7 @@ class UserProfileHeader extends React.Component {
                         </Tooltip>
                         {blacklists}
                         {AffiliationMap[accountname] ? (
-                            <span className="affiliation">
-                                {tt(
-                                    'g.affiliation_' +
-                                        AffiliationMap[accountname]
-                                )}
-                            </span>
+                            <span className="affiliation">{tt('g.affiliation_' + AffiliationMap[accountname])}</span>
                         ) : null}
                     </h1>
 
@@ -118,10 +98,7 @@ class UserProfileHeader extends React.Component {
                             <span>
                                 <Link to={`/@${accountname}/followers`}>
                                     {tt('user_profile.follower_count', {
-                                        count: profile.getIn(
-                                            ['stats', 'followers'],
-                                            0
-                                        ),
+                                        count: profile.getIn(['stats', 'followers'], 0),
                                     })}
                                 </Link>
                             </span>
@@ -135,58 +112,30 @@ class UserProfileHeader extends React.Component {
                             <span>
                                 <Link to={`/@${accountname}/followed`}>
                                     {tt('user_profile.followed_count', {
-                                        count: profile.getIn(
-                                            ['stats', 'following'],
-                                            0
-                                        ),
+                                        count: profile.getIn(['stats', 'following'], 0),
                                     })}
                                 </Link>
                             </span>
-                            <span>
-                                {numberWithCommas(
-                                    profile.getIn(['stats', 'sp'], 0)
-                                )}{' '}
-                                HP
-                            </span>
+                            <span>{numberWithCommas(profile.getIn(['stats', 'sp'], 0))} HP</span>
                             {profile.getIn(['stats', 'rank'], 0) > 0 && (
-                                <span>
-                                    #{numberWithCommas(
-                                        profile.getIn(['stats', 'rank'])
-                                    )}
-                                </span>
+                                <span>#{numberWithCommas(profile.getIn(['stats', 'rank']))}</span>
                             )}
 
                             <span>
                                 <br />
-                                <Link to={`/@${accountname}/lists/blacklisted`}>
-                                    Blacklisted Users
-                                </Link>
+                                <Link to={`/@${accountname}/lists/blacklisted`}>Blacklisted Users</Link>
                             </span>
 
                             <span>
-                                <Link to={`/@${accountname}/lists/muted`}>
-                                    Muted Users
-                                </Link>
+                                <Link to={`/@${accountname}/lists/muted`}>Muted Users</Link>
                             </span>
 
                             <span>
-                                <Link
-                                    to={`/@${
-                                        accountname
-                                    }/lists/followed_blacklists`}
-                                >
-                                    Followed Blacklists
-                                </Link>
+                                <Link to={`/@${accountname}/lists/followed_blacklists`}>Followed Blacklists</Link>
                             </span>
 
                             <span>
-                                <Link
-                                    to={`/@${
-                                        accountname
-                                    }/lists/followed_muted_lists`}
-                                >
-                                    Followed Muted Lists
-                                </Link>
+                                <Link to={`/@${accountname}/lists/followed_muted_lists`}>Followed Muted Lists</Link>
                             </span>
                         </div>
 
@@ -198,25 +147,15 @@ class UserProfileHeader extends React.Component {
                             )}
                             {website && (
                                 <span>
-                                    <Icon name="link" />{' '}
-                                    <SanitizedLink
-                                        url={website}
-                                        text={website_label}
-                                    />
+                                    <Icon name="link" /> <SanitizedLink url={website} text={website_label} />
                                 </span>
                             )}
-                            <Icon name="calendar" />{' '}
-                            <DateJoinWrapper date={profile.get('created')} />
-                            <Icon name="calendar" /> Active{' '}
-                            <TimeAgoWrapper date={profile.get('active')} />
+                            <Icon name="calendar" /> <DateJoinWrapper date={profile.get('created')} />
+                            <Icon name="calendar" /> Active <TimeAgoWrapper date={profile.get('active')} />
                         </p>
                     </div>
                     <div className="UserProfile__buttons_mobile show-for-small-only">
-                        <Follow
-                            follower={current_user}
-                            following={accountname}
-                            what="blog"
-                        />
+                        <Follow follower={current_user} following={accountname} what="blog" />
                     </div>
                 </div>
             </div>
diff --git a/src/app/components/elements/Announcement.jsx b/src/app/components/elements/Announcement.jsx
index 14674ab2b298f60a0f3a082dc8a0ffc1a00248f6..29d179d703876a43f3f34858928c5847fe85ff24 100644
--- a/src/app/components/elements/Announcement.jsx
+++ b/src/app/components/elements/Announcement.jsx
@@ -5,7 +5,13 @@ export const Announcement = ({ onClose }) => (
     <div className="annoucement-banner">
         <p className="announcement-banner__text">
             Communities are live!{' '}
-            <a className="announcement-banner__link" href="https://steemit.com/steemit/@steemitblog/communities-have-arrived">Read more</a>.
+            <a
+                className="announcement-banner__link"
+                href="https://steemit.com/steemit/@steemitblog/communities-have-arrived"
+            >
+                Read more
+            </a>
+            .
         </p>
         <button className="close-button" type="button" onClick={onClose}>
             &times;
diff --git a/src/app/components/elements/Author/Author.story.jsx b/src/app/components/elements/Author/Author.story.jsx
index 554917e6ade69782df55162913fc05f45ae7d707..b0a7d97bd25704a23fdf05361a01eb6e117554b5 100644
--- a/src/app/components/elements/Author/Author.story.jsx
+++ b/src/app/components/elements/Author/Author.story.jsx
@@ -13,7 +13,7 @@ const store = createStore(rootReducer);
 storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .addDecorator(Center)
-    .addDecorator(getStory => <Provider store={store}>{getStory()}</Provider>)
+    .addDecorator((getStory) => <Provider store={store}>{getStory()}</Provider>)
     .add('Author', () => (
         <IntlProvider locale="en">
             <Author author={'maitland'} />
diff --git a/src/app/components/elements/Author/__snapshots__/spec.js.snap b/src/app/components/elements/Author/__snapshots__/spec.jsx.snap
similarity index 62%
rename from src/app/components/elements/Author/__snapshots__/spec.js.snap
rename to src/app/components/elements/Author/__snapshots__/spec.jsx.snap
index dc588399143be0fe46a8b306066af18eb7422f2e..9a625f0ce3943ca2aec731d47d6270b6669ddab0 100644
--- a/src/app/components/elements/Author/__snapshots__/spec.js.snap
+++ b/src/app/components/elements/Author/__snapshots__/spec.jsx.snap
@@ -19,8 +19,10 @@ ShallowWrapper {
   </Provider>,
   Symbol(enzyme.__renderer__): Object {
     "batchedUpdates": [Function],
+    "checkPropTypes": [Function],
     "getNode": [Function],
     "render": [Function],
+    "simulateError": [Function],
     "simulateEvent": [Function],
     "unmount": [Function],
   },
@@ -45,9 +47,26 @@ ShallowWrapper {
     },
   ],
   Symbol(enzyme.__options__): Object {
-    "adapter": ReactFifteenAdapter {
+    "adapter": ReactSixteenAdapter {
       "options": Object {
-        "supportPrevContextArgumentOfComponentDidUpdate": true,
+        "enableComponentDidUpdateOnSetState": true,
+        "legacyContextMode": "parent",
+        "lifecycles": Object {
+          "componentDidUpdate": Object {
+            "onSetState": true,
+          },
+          "getChildContext": Object {
+            "calledByRenderer": false,
+          },
+          "getDerivedStateFromError": true,
+          "getDerivedStateFromProps": Object {
+            "hasShouldComponentUpdateBug": false,
+          },
+          "getSnapshotBeforeUpdate": true,
+          "setState": Object {
+            "skipsComponentDidUpdateOnNullish": true,
+          },
+        },
       },
     },
   },
diff --git a/src/app/components/elements/Author/index.jsx b/src/app/components/elements/Author/index.jsx
index 3780fd75cd925a63f8eb3b549cd50cecc6d9fb87..357f1db317d2148d929bb9a97080aee8c44e8c31 100644
--- a/src/app/components/elements/Author/index.jsx
+++ b/src/app/components/elements/Author/index.jsx
@@ -5,15 +5,15 @@ import PropTypes from 'prop-types';
 import { Link } from 'react-router';
 import tt from 'counterpart';
 import { List } from 'immutable';
-import ReactDOM, { findDOMNode } from 'react-dom';
+import { findDOMNode } from 'react-dom';
 import Overlay from 'react-overlays/lib/Overlay';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import Icon from 'app/components/elements/Icon';
 import Reputation from 'app/components/elements/Reputation';
 import AffiliationMap from 'app/utils/AffiliationMap';
 import UserTitle from 'app/components/elements/UserTitle';
-import AuthorDropdown from '../AuthorDropdown';
 import Sanitizer from 'app/utils/Sanitizer';
+import AuthorDropdown from '../AuthorDropdown';
 
 const { string, bool, number } = PropTypes;
 
@@ -37,11 +37,9 @@ class Author extends React.Component {
         role: string,
         title: string,
         community: string,
-        crossPostedBy: string,
-        crossPostAuthor: string,
-        resolveCrossPost: bool,
         showRole: bool,
     };
+
     static defaultProps = {
         follow: true,
         mute: true,
@@ -49,9 +47,6 @@ class Author extends React.Component {
         role: '',
         title: '',
         community: '',
-        crossPostedBy: null,
-        crossPostAuthor: null,
-        resolveCrossPost: true,
     };
 
     constructor(...args) {
@@ -65,7 +60,7 @@ class Author extends React.Component {
         if (!this.authorProfileLink) {
             return;
         }
-        const node = ReactDOM.findDOMNode(this.authorProfileLink);
+        const node = findDOMNode(this.authorProfileLink);
         if (node.addEventListener) {
             node.addEventListener('click', this.toggle, false);
         } else {
@@ -77,7 +72,7 @@ class Author extends React.Component {
         if (!this.authorProfileLink) {
             return;
         }
-        const node = ReactDOM.findDOMNode(this.authorProfileLink);
+        const node = findDOMNode(this.authorProfileLink);
         if (node.removeEventListener) {
             node.removeEventListener('click', this.toggle);
         } else {
@@ -85,7 +80,7 @@ class Author extends React.Component {
         }
     }
 
-    toggle = e => {
+    toggle = (e) => {
         if (!(e.metaKey || e.ctrlKey)) {
             e.preventDefault();
             e.stopPropagation();
@@ -104,7 +99,7 @@ class Author extends React.Component {
         });
     };
 
-    shouldComponentUpdate = shouldComponentUpdate(this, 'Author');
+    // shouldComponentUpdate = shouldComponentUpdate(this, 'Author');
 
     render() {
         const {
@@ -124,7 +119,9 @@ class Author extends React.Component {
 
         const warn = blacklists && (
             <span className="account_warn" title={blacklists.join(', ')}>
-                ({blacklists.length})
+                (
+                {blacklists.length}
+                )
             </span>
         );
 
@@ -152,7 +149,8 @@ class Author extends React.Component {
                 <span className="author" itemProp="author" itemScope itemType="http://schema.org/Person">
                     <strong>
                         <Link to={'/@' + author}>{author}</Link>
-                    </strong>{' '}
+                    </strong>
+                    {' '}
                     <Reputation value={authorRep} />
                     {warn}
                     {userTitle}
@@ -165,12 +163,14 @@ class Author extends React.Component {
                 <span itemProp="author" itemScope itemType="http://schema.org/Person">
                     <strong>
                         <Link
-                            ref={link => {
+                            ref={(link) => {
                                 this.authorProfileLink = link;
                             }}
                             to={'/@' + author}
                         >
-                            {author} <Reputation value={authorRep} />
+                            {author}
+                            {' '}
+                            <Reputation value={authorRep} />
                             <Icon name="dropdown-arrow" />
                         </Link>
                     </strong>
@@ -222,8 +222,6 @@ export default connect((state, props) => {
         role: Sanitizer.getTextOnly(post.get('author_role')),
         title: Sanitizer.getTextOnly(post.get('author_title')),
         blacklists: blacklists.length > 0 ? blacklists : null,
-        crossPostedBy: post.get('cross_posted_by'),
-        crossPostAuthor: post.get('cross_post_author'),
         showRole: props.showRole,
     };
 })(Author);
diff --git a/src/app/components/elements/Author/spec.js b/src/app/components/elements/Author/spec.jsx
similarity index 93%
rename from src/app/components/elements/Author/spec.js
rename to src/app/components/elements/Author/spec.jsx
index d1574d23fabee886a2466e1f8def7d15f0fa68b0..23b5c6f9de9d675468930e03a7008aadfa0b2c5d 100644
--- a/src/app/components/elements/Author/spec.js
+++ b/src/app/components/elements/Author/spec.jsx
@@ -1,11 +1,11 @@
 import React from 'react';
 import { Provider } from 'react-redux';
 import { createStore } from 'redux';
-import Author from './index';
 import rootReducer from 'app/redux/RootReducer';
 import { configure, shallow } from 'enzyme';
 
-import Adapter from 'enzyme-adapter-react-15';
+import Adapter from 'enzyme-adapter-react-16';
+import Author from './index';
 
 configure({ adapter: new Adapter() });
 
diff --git a/src/app/components/elements/AuthorDropdown.jsx b/src/app/components/elements/AuthorDropdown.jsx
index d9ee8b3a188d1529e85d9a1a60310409dec681dd..953e46baaeea7579672e14495941450ed8410a4f 100644
--- a/src/app/components/elements/AuthorDropdown.jsx
+++ b/src/app/components/elements/AuthorDropdown.jsx
@@ -24,12 +24,7 @@ class AuthorDropdown extends Component {
 
         if (simple) {
             return (
-                <span
-                    className="author"
-                    itemProp="author"
-                    itemScope
-                    itemType="http://schema.org/Person"
-                >
+                <span className="author" itemProp="author" itemScope itemType="http://schema.org/Person">
                     <Link to={'/@' + author}>
                         <strong>{author}</strong>
                     </Link>{' '}
@@ -38,13 +33,9 @@ class AuthorDropdown extends Component {
             );
         }
 
-        const { name, about } = profile
-            ? profile.getIn(['metadata', 'profile']).toJS()
-            : {};
+        const { name, about } = profile ? profile.getIn(['metadata', 'profile']).toJS() : {};
 
-        const { following, followers, sp, rank } = profile
-            ? profile.getIn(['stats']).toJS()
-            : {};
+        const { following, followers, sp, rank } = profile ? profile.getIn(['stats']).toJS() : {};
 
         const { created, active } = profile ? profile.toJS() : {};
 
@@ -52,9 +43,7 @@ class AuthorDropdown extends Component {
         let unit;
         if (sp > 10000) {
             spv = numberWithCommas((sp / 1000.0).toFixed(0));
-            unit = (
-                <small style={{ fontWeight: 'bold', color: '#444' }}>K</small>
-            );
+            unit = <small style={{ fontWeight: 'bold', color: '#444' }}>K</small>;
         } else {
             spv = numberWithCommas(sp);
         }
@@ -106,27 +95,23 @@ class AuthorDropdown extends Component {
                             </div>
                             <div className="columns small-4">
                                 {spv}
-                                {unit} HP<br />
-                                <small>
-                                    {rank > 0
-                                        ? `#${numberWithCommas(rank)}`
-                                        : ''}
-                                </small>
+                                {unit} HP
+                                <br />
+                                <small>{rank > 0 ? `#${numberWithCommas(rank)}` : ''}</small>
                             </div>
                         </div>
                     )}
                     {<div className="Author__bio">{about}</div>}
                     {profile && (
                         <div style={{ fontSize: '0.8em', textAlign: 'center' }}>
-                            <DateJoinWrapper date={created} /> &bull; last seen{' '}
-                            <TimeAgoWrapper date={active} />
+                            <DateJoinWrapper date={created} /> &bull; last seen <TimeAgoWrapper date={active} />
                         </div>
                     )}
                     {blacklists && (
                         <div>
                             <br />
                             <strong>Blacklists</strong>
-                            {blacklists.map(item => (
+                            {blacklists.map((item) => (
                                 <div key={item}>❗️ {item}</div>
                             ))}
                         </div>
@@ -152,11 +137,9 @@ export default connect(
             profile: state.userProfiles.getIn(['profiles', author]),
         };
     },
-    dispatch => ({
+    (dispatch) => ({
         fetchProfile: (account, observer = null) => {
-            dispatch(
-                UserProfilesSagaActions.fetchProfile({ account, observer })
-            );
+            dispatch(UserProfilesSagaActions.fetchProfile({ account, observer }));
         },
     })
 )(AuthorDropdown);
diff --git a/src/app/components/elements/AutocompleteInput.jsx b/src/app/components/elements/AutocompleteInput.jsx
index 9dbb76d9383c089230336952bc331109ca9264cb..6e697ce507c85d4508e00edc84e22baa507b18dd 100644
--- a/src/app/components/elements/AutocompleteInput.jsx
+++ b/src/app/components/elements/AutocompleteInput.jsx
@@ -62,26 +62,17 @@ class AutocompleteInput extends React.Component {
                         display: 'inline-block',
                     }}
                     items={this.props.values}
-                    getItemValue={item => item.name}
+                    getItemValue={(item) => item.name}
                     shouldItemRender={matchInputToItem}
                     sortItems={sortInput}
                     onChange={(event, value) => this.setState({ value })}
-                    onSelect={value => {
+                    onSelect={(value) => {
                         this.setState({ value });
                         this.props.onSelect(value);
                     }}
-                    renderMenu={children => (
-                        <div className="react-autocomplete-input">
-                            {children}
-                        </div>
-                    )}
+                    renderMenu={(children) => <div className="react-autocomplete-input">{children}</div>}
                     renderItem={(item, isHighlighted) => (
-                        <div
-                            className={`item ${
-                                isHighlighted ? 'item-highlighted' : ''
-                            }`}
-                            key={item.abbr}
-                        >
+                        <div className={`item ${isHighlighted ? 'item-highlighted' : ''}`} key={item.abbr}>
                             {item.name}
                         </div>
                     )}
diff --git a/src/app/components/elements/BiddingAd.jsx b/src/app/components/elements/BiddingAd.jsx
index 59e319c07346940b54727c8667be8d35dc08b324..08581fb7a88f8081377f97be2ee681554ef23951 100644
--- a/src/app/components/elements/BiddingAd.jsx
+++ b/src/app/components/elements/BiddingAd.jsx
@@ -1,4 +1,6 @@
-import React, { Component, PropTypes } from 'react';
+/*global googletag, pbjs*/
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 
 class BiddingAd extends Component {
@@ -6,11 +8,7 @@ class BiddingAd extends Component {
         if (!this.ad.path || !this.enabled) return;
 
         googletag.cmd.push(() => {
-            const slot = googletag.defineSlot(
-                this.ad.path,
-                this.ad.dimensions,
-                this.ad.path
-            );
+            const slot = googletag.defineSlot(this.ad.path, this.ad.dimensions, this.ad.path);
 
             if (slot) {
                 slot.addService(googletag.pubads());
@@ -21,17 +19,13 @@ class BiddingAd extends Component {
                     googletag.display(this.ad.path);
                     this.refreshBid(this.ad.path, slot);
 
-                    googletag
-                        .pubads()
-                        .addEventListener('impressionViewable', e => {
-                            window.dispatchEvent(new Event('gptadshown', e));
-                        });
+                    googletag.pubads().addEventListener('impressionViewable', (e) => {
+                        window.dispatchEvent(new Event('gptadshown', e));
+                    });
 
-                    googletag
-                        .pubads()
-                        .addEventListener('slotRenderEnded', e => {
-                            window.dispatchEvent(new Event('gptadshown', e));
-                        });
+                    googletag.pubads().addEventListener('slotRenderEnded', (e) => {
+                        window.dispatchEvent(new Event('gptadshown', e));
+                    });
                 });
             }
         });
@@ -42,7 +36,7 @@ class BiddingAd extends Component {
             pbjs.requestBids({
                 timeout: 2000,
                 adUnitCodes: [path],
-                bidsBackHandler: function() {
+                bidsBackHandler() {
                     pbjs.setTargetingForGPTAsync([path]);
                     googletag.pubads().refresh([slot]);
                 },
@@ -75,13 +69,7 @@ class BiddingAd extends Component {
     }
 
     render() {
-        return (
-            <div
-                className="bidding-ad gpt-ad"
-                style={{ width: '100%' }}
-                id={this.ad.path}
-            />
-        );
+        return <div className="bidding-ad gpt-ad" style={{ width: '100%' }} id={this.ad.path} />;
     }
 }
 
@@ -96,21 +84,11 @@ BiddingAd.propTypes = {
 
 export default connect(
     (state, props) => {
-        const enabled =
-            !!state.app.getIn(['googleAds', 'gptEnabled']) &&
-            !!process.env.BROWSER &&
-            !!window.googletag;
-        const postCategory = state.global.get('postCategory');
-        const basicSlots = state.app.getIn(['googleAds', `gptBasicSlots`]);
-        const biddingSlots = state.app.getIn(['googleAds', `gptBiddingSlots`]);
-        const categorySlots = state.app.getIn([
-            'googleAds',
-            `gptCategorySlots`,
-        ]);
+        const enabled = !!state.app.getIn(['googleAds', 'gptEnabled']) && !!process.env.BROWSER && !!window.googletag;
 
         const slotName = props.slotName;
-        let type = props.type;
-        let slot = state.app.getIn(['googleAds', `gpt${type}Slots`, slotName]);
+        const type = props.type;
+        const slot = state.app.getIn(['googleAds', `gpt${type}Slots`, slotName]);
 
         return {
             enabled,
@@ -118,5 +96,4 @@ export default connect(
             ...props,
         };
     },
-    dispatch => ({})
 )(BiddingAd);
diff --git a/src/app/components/elements/CheckLoginOwner.jsx b/src/app/components/elements/CheckLoginOwner.jsx
index 743e052239f64efa0d0cfb1f7d30ebdeb27f1a3d..edcb5a47ae118a4e942654b9a1d738b689c76717 100644
--- a/src/app/components/elements/CheckLoginOwner.jsx
+++ b/src/app/components/elements/CheckLoginOwner.jsx
@@ -14,25 +14,16 @@ class CheckLoginOwner extends React.Component {
     }
     componentWillReceiveProps(nextProps) {
         const { login_owner_pubkey } = nextProps;
-        if (
-            login_owner_pubkey &&
-            this.props.login_owner_pubkey !== login_owner_pubkey
-        )
+        if (login_owner_pubkey && this.props.login_owner_pubkey !== login_owner_pubkey)
             this.props.lookupPreviousOwnerAuthority();
 
         const { previous_owner_authority } = nextProps;
-        if (
-            previous_owner_authority &&
-            this.props.previous_owner_authority !== previous_owner_authority
-        ) {
-            const last_valid_time = previous_owner_authority.get(
-                'last_valid_time'
-            );
+        if (previous_owner_authority && this.props.previous_owner_authority !== previous_owner_authority) {
+            const last_valid_time = previous_owner_authority.get('last_valid_time');
             // has this been shown already?
             if (localStorage[this.getKey(nextProps)] !== last_valid_time) {
                 let last_valid_date;
-                if (!/Z$/.test(last_valid_time))
-                    last_valid_date = last_valid_time + 'Z';
+                if (!/Z$/.test(last_valid_time)) last_valid_date = last_valid_time + 'Z';
                 last_valid_date = new Date(last_valid_date);
 
                 this.setState({ last_valid_time, last_valid_date });
@@ -57,7 +48,7 @@ class CheckLoginOwner extends React.Component {
         this.hide();
         browserHistory.push('/recover_account_step_1');
     };
-    onUnderstood = e => {
+    onUnderstood = (e) => {
         const understood = e.target.checked;
         console.log('understood', understood);
         this.setState({ understood });
@@ -76,32 +67,25 @@ class CheckLoginOwner extends React.Component {
                     <CloseButton onClick={this.hide} />
                     <h3>{tt('g.account_updated')}</h3>
                     <p>
-                        <span className="warning uppercase">
-                            {tt('g.warning')}:
-                        </span>
-                        {tt(
-                            'checkloginowner_jsx.your_password_permissions_were_reduced'
-                        )}
+                        <span className="warning uppercase">{tt('g.warning')}:</span>
+                        {tt('checkloginowner_jsx.your_password_permissions_were_reduced')}
                         <TimeAgoWrapper date={last_valid_time} />.{' '}
-                        {tt(
-                            'checkloginowner_jsx.if_you_did_not_make_this_change'
-                        ) + ' '}
-                        <a onClick={this.recover}>
-                            {tt('g.recover_your_account')}
-                        </a>.
+                        {tt('checkloginowner_jsx.if_you_did_not_make_this_change') + ' '}
+                        <a onClick={this.recover}>{tt('g.recover_your_account')}</a>.
                     </p>
                     <p>
-                        {tt('checkloginowner_jsx.ownership_changed_on')}{' '}
-                        <FormattedDate value={last_valid_date} />
+                        {tt('checkloginowner_jsx.ownership_changed_on')} <FormattedDate value={last_valid_date} />
                     </p>
                     <p>
                         {tt('checkloginowner_jsx.deadline_for_recovery_is')}{' '}
                         <b>
                             <TimeAgoWrapper date={deadline} />
-                        </b>.
+                        </b>
+                        .
                     </p>
                     <p>
-                        <input type="checkbox" onChange={this.onUnderstood} />&nbsp;&nbsp;
+                        <input type="checkbox" onChange={this.onUnderstood} />
+                        &nbsp;&nbsp;
                         {tt('checkloginowner_jsx.i_understand_dont_show_again')}
                     </p>
                     <div className="button" onClick={this.hide}>
@@ -118,8 +102,7 @@ export default connect(
     (state, ownProps) => {
         const current = state.user.get('current');
         const login_owner_pubkey = current && current.get('login_owner_pubkey');
-        const previous_owner_authority =
-            current && current.get('previous_owner_authority');
+        const previous_owner_authority = current && current.get('previous_owner_authority');
         return {
             ...ownProps,
             login_owner_pubkey,
@@ -127,7 +110,7 @@ export default connect(
         };
     },
     // mapDispatchToProps
-    dispatch => ({
+    (dispatch) => ({
         lookupPreviousOwnerAuthority: () => {
             dispatch({
                 type: 'user/lookupPreviousOwnerAuthority',
diff --git a/src/app/components/elements/ClaimBox.jsx b/src/app/components/elements/ClaimBox.jsx
index d7814a641144f45cae4d5e94445cda7324a26429..565fac04bdf9bc19568ac7ac4fd82a551f37fa65 100644
--- a/src/app/components/elements/ClaimBox.jsx
+++ b/src/app/components/elements/ClaimBox.jsx
@@ -6,15 +6,11 @@ import * as transactionActions from 'app/redux/TransactionReducer';
 
 const nothingToClaim = 'No rewards pending redemption.';
 
-const getRewardsString = account => {
+const getRewardsString = (account) => {
     const reward_hive =
-        parseFloat(account.get('reward_hive_balance').split(' ')[0]) > 0
-            ? account.get('reward_hive_balance')
-            : null;
+        parseFloat(account.get('reward_hive_balance').split(' ')[0]) > 0 ? account.get('reward_hive_balance') : null;
     const reward_hbd =
-        parseFloat(account.get('reward_hbd_balance').split(' ')[0]) > 0
-            ? account.get('reward_hbd_balance')
-            : null;
+        parseFloat(account.get('reward_hbd_balance').split(' ')[0]) > 0 ? account.get('reward_hbd_balance') : null;
     const reward_hp =
         parseFloat(account.get('reward_vesting_hive').split(' ')[0]) > 0
             ? account.get('reward_vesting_hive').replace('HIVE', 'HP')
@@ -49,17 +45,13 @@ class ClaimBox extends React.Component {
             claimed: false,
             empty: true,
             claimInProgress: false,
-            rewards_str: props.account
-                ? getRewardsString(props.account)
-                : 'Loading...',
+            rewards_str: props.account ? getRewardsString(props.account) : 'Loading...',
         };
     }
 
     componentDidUpdate(prevProps, prevState) {
         if (this.props.account !== prevProps.account) {
-            const rewards_str = this.props.account
-                ? getRewardsString(this.props.account)
-                : 'Loading...';
+            const rewards_str = this.props.account ? getRewardsString(this.props.account) : 'Loading...';
             this.setState({
                 rewards_str,
                 empty: rewards_str == nothingToClaim,
@@ -74,7 +66,7 @@ class ClaimBox extends React.Component {
         });
     };
 
-    handleClaimRewards = account => {
+    handleClaimRewards = (account) => {
         this.setState({
             claimInProgress: true,
         }); // disable the claim button
@@ -101,7 +93,7 @@ class ClaimBox extends React.Component {
                 <button
                     disabled={this.state.claimInProgress}
                     className="button"
-                    onClick={e => {
+                    onClick={(e) => {
                         e.preventDefault();
                         this.handleClaimRewards(account);
                     }}
@@ -117,8 +109,7 @@ const mapStateToProps = (state, ownProps) => {
     const accountName = ownProps.accountName;
     const currentUser = state.user.get('current');
     const account = state.global.getIn(['accounts', accountName]);
-    const isOwnAccount =
-        state.user.getIn(['current', 'username'], '') == accountName;
+    const isOwnAccount = state.user.getIn(['current', 'username'], '') == accountName;
     return {
         account,
         currentUser,
@@ -126,7 +117,7 @@ const mapStateToProps = (state, ownProps) => {
     };
 };
 
-const mapDispatchToProps = dispatch => {
+const mapDispatchToProps = (dispatch) => {
     return {
         claimRewards: (account, successCB) => {
             const username = account.get('name');
diff --git a/src/app/components/elements/CommunityPane.jsx b/src/app/components/elements/CommunityPane.jsx
index 54b60e7f408247cfc27f8c30a6686a0b71292dc8..85aa93a4bc07c0fde62efed694edeca2db8dafd4 100644
--- a/src/app/components/elements/CommunityPane.jsx
+++ b/src/app/components/elements/CommunityPane.jsx
@@ -10,15 +10,14 @@ import Icon from 'app/components/elements/Icon';
 import * as globalActions from 'app/redux/GlobalReducer';
 import { numberWithCommas } from 'app/utils/StateFunctions';
 
-const nl2br = text =>
+const nl2br = (text) =>
     text.split('\n').map((item, key) => (
         <span key={key}>
             {item}
             <br />
         </span>
     ));
-const nl2li = text =>
-    text.split('\n').map((item, key) => <li key={key}>{item}</li>);
+const nl2li = (text) => text.split('\n').map((item, key) => <li key={key}>{item}</li>);
 
 class CommunityPane extends Component {
     static propTypes = {
@@ -28,16 +27,12 @@ class CommunityPane extends Component {
     };
 
     render() {
-        const {
-            community,
-            showRecentSubscribers,
-            showModerationLog,
-        } = this.props;
+        const { community, showRecentSubscribers, showModerationLog } = this.props;
         const handleSubscriberClick = () => {
             showRecentSubscribers(community);
         };
 
-        const handleModerationLogCLick = e => {
+        const handleModerationLogCLick = (e) => {
             e.preventDefault();
             showModerationLog(community);
         };
@@ -51,10 +46,7 @@ class CommunityPane extends Component {
                     return null;
                 }
                 return (
-                    <div
-                        key={`${account}__${role}`}
-                        style={{ fontSize: '80%' }}
-                    >
+                    <div key={`${account}__${role}`} style={{ fontSize: '80%' }}>
                         <Link to={`/${account}`}>{account}</Link>
                         {role && <span className="user_role"> {role} </span>}
                         {title && <span className="affiliation">{title}</span>}
@@ -72,64 +64,43 @@ class CommunityPane extends Component {
                 <div className="c-sidebar__module">
                     {Role.atLeast(viewer_role, 'admin') && (
                         <div style={{ float: 'right', fontSize: '0.8em' }}>
-                            <SettingsEditButton
-                                community={community.get('name')}
-                            >
-                                Edit
-                            </SettingsEditButton>
+                            <SettingsEditButton community={community.get('name')}>Edit</SettingsEditButton>
                         </div>
                     )}
                     <div className="c-sidebar__header">
-                        <h3 className="c-sidebar__h3">
-                            {community.get('title')}
-                        </h3>
-                        {community.get('is_nsfw') && (
-                            <span className="affiliation">nsfw</span>
-                        )}
+                        <h3 className="c-sidebar__h3">{community.get('title')}</h3>
+                        {community.get('is_nsfw') && <span className="affiliation">nsfw</span>}
                     </div>
-                    <div style={{ margin: '-6px 0 12px' }}>
-                        {community.get('about')}
-                    </div>
-                    <div
-                        className="row"
-                        style={{ textAlign: 'center', lineHeight: '1em' }}
-                    >
-                        <div
-                            onClick={handleSubscriberClick}
-                            className="column small-4 pointer"
-                        >
+                    <div style={{ margin: '-6px 0 12px' }}>{community.get('about')}</div>
+                    <div className="row" style={{ textAlign: 'center', lineHeight: '1em' }}>
+                        <div onClick={handleSubscriberClick} className="column small-4 pointer">
                             {numberWithCommas(community.get('subscribers'))}
                             <br />
-                            <small>
-                                {community.get('subscribers') == 1
-                                    ? 'subscriber'
-                                    : 'subscribers'}
-                            </small>
+                            <small>{community.get('subscribers') == 1 ? 'subscriber' : 'subscribers'}</small>
                         </div>
                         <div className="column small-4">
                             {'$'}
                             {numberWithCommas(community.get('sum_pending'))}
                             <br />
                             <small>
-                                pending<br />rewards
+                                pending
+                                <br />
+                                rewards
                             </small>
                         </div>
                         <div className="column small-4">
                             {numberWithCommas(community.get('num_authors'))}
                             <br />
                             <small>
-                                active<br />posters
+                                active
+                                <br />
+                                posters
                             </small>
                         </div>
                     </div>
 
                     <div style={{ margin: '12px 0 0' }}>
-                        {community && (
-                            <SubscribeButton
-                                community={community.get('name')}
-                                display="block"
-                            />
-                        )}
+                        {community && <SubscribeButton community={community.get('name')} display="block" />}
                         {canPost && (
                             <Link
                                 className="button primary"
@@ -144,13 +115,10 @@ class CommunityPane extends Component {
                             </Link>
                         )}
                         {!canPost && (
-                            <div
-                                className="text-center"
-                                style={{ marginBottom: '8px' }}
-                            >
+                            <div className="text-center" style={{ marginBottom: '8px' }}>
                                 <small className="text-muted">
-                                    <Icon name="eye" />&nbsp; Only approved
-                                    members can post
+                                    <Icon name="eye" />
+                                    &nbsp; Only approved members can post
                                 </small>
                             </div>
                         )}
@@ -158,17 +126,13 @@ class CommunityPane extends Component {
                     <div>
                         {Role.atLeast(viewer_role, 'mod') && (
                             <div style={{ float: 'right', fontSize: '0.8em' }}>
-                                <Link to={`/roles/${category}`}>
-                                    Edit Roles
-                                </Link>
+                                <Link to={`/roles/${category}`}>Edit Roles</Link>
                             </div>
                         )}
                         <strong>Leadership</strong>
                         {teamMembers(community.get('team', List()))}
                         <div style={{ float: 'right', fontSize: '0.8em' }}>
-                            <a onClick={handleModerationLogCLick}>
-                                Activity Log
-                            </a>
+                            <a onClick={handleModerationLogCLick}>Activity Log</a>
                         </div>
                     </div>
                 </div>
@@ -206,9 +170,9 @@ export default connect(
         community: ownProps.community,
     }),
     // mapDispatchToProps
-    dispatch => {
+    (dispatch) => {
         return {
-            showRecentSubscribers: community => {
+            showRecentSubscribers: (community) => {
                 dispatch(
                     globalActions.showDialog({
                         name: 'communitySubscribers',
@@ -216,7 +180,7 @@ export default connect(
                     })
                 );
             },
-            showModerationLog: community => {
+            showModerationLog: (community) => {
                 dispatch(
                     globalActions.showDialog({
                         name: 'communityModerationLog',
diff --git a/src/app/components/elements/CommunityPaneMobile.jsx b/src/app/components/elements/CommunityPaneMobile.jsx
index b55cf192335cee6c5d5f266d82fcbff7254f3468..9ec62a6e5993494b1bca76f78420a030700885b1 100644
--- a/src/app/components/elements/CommunityPaneMobile.jsx
+++ b/src/app/components/elements/CommunityPaneMobile.jsx
@@ -16,15 +16,11 @@ class CommunityPaneMobile extends Component {
     };
 
     render() {
-        const {
-            community,
-            showRecentSubscribers,
-            showModerationLog,
-        } = this.props;
+        const { community, showRecentSubscribers, showModerationLog } = this.props;
         const handleSubscriberClick = () => {
             showRecentSubscribers(community);
         };
-        const handleModerationLogCLick = e => {
+        const handleModerationLogCLick = (e) => {
             e.preventDefault();
             showModerationLog(community);
         };
@@ -33,28 +29,18 @@ class CommunityPaneMobile extends Component {
         const canPost = Role.canPost(category, viewer_role);
 
         const settings = Role.atLeast(viewer_role, 'admin') && (
-            <SettingsEditButton community={community.get('name')}>
-                Settings
-            </SettingsEditButton>
+            <SettingsEditButton community={community.get('name')}>Settings</SettingsEditButton>
         );
 
-        const roles = Role.atLeast(viewer_role, 'mod') && (
-            <Link to={`/roles/${category}`}>Roles</Link>
-        );
+        const roles = Role.atLeast(viewer_role, 'mod') && <Link to={`/roles/${category}`}>Roles</Link>;
 
         const subs = community.get('subscribers');
 
         return (
             <div>
                 <div className="c-sidebar__module CommunityPaneMobile">
-                    <div
-                        className="row"
-                        style={{ textAlign: 'center', lineHeight: '1em' }}
-                    >
-                        <div
-                            className="column large-10 medium-8 small-12"
-                            style={{ textAlign: 'left' }}
-                        >
+                    <div className="row" style={{ textAlign: 'center', lineHeight: '1em' }}>
+                        <div className="column large-10 medium-8 small-12" style={{ textAlign: 'left' }}>
                             {roles && (
                                 <div style={{ float: 'right' }}>
                                     Mod{': '}
@@ -67,19 +53,14 @@ class CommunityPaneMobile extends Component {
                                     )}
                                 </div>
                             )}
-                            <h3 className="c-sidebar__h3">
-                                {community.get('title')}
-                            </h3>
+                            <h3 className="c-sidebar__h3">{community.get('title')}</h3>
                             <div
                                 style={{
                                     margin: '-14px 0 8px',
                                     opacity: '0.65',
                                 }}
                             >
-                                <span
-                                    onClick={handleSubscriberClick}
-                                    className="pointer"
-                                >
+                                <span onClick={handleSubscriberClick} className="pointer">
                                     {numberWithCommas(subs)}
                                     {subs == 1 ? ' subscriber' : ' subscribers'}
                                 </span>
@@ -89,22 +70,13 @@ class CommunityPaneMobile extends Component {
                                         fontSize: '0.8em',
                                     }}
                                 >
-                                    <a onClick={handleModerationLogCLick}>
-                                        Activity Log
-                                    </a>
+                                    <a onClick={handleModerationLogCLick}>Activity Log</a>
                                 </div>
                                 &nbsp;&nbsp;&bull;&nbsp;&nbsp;
-                                {numberWithCommas(
-                                    community.get('num_authors')
-                                )}{' '}
-                                active
-                            </div>
-                            {community.get('is_nsfw') && (
-                                <span className="affiliation">nsfw</span>
-                            )}
-                            <div style={{ margin: '0 0 12px' }}>
-                                {community.get('about')}
+                                {numberWithCommas(community.get('num_authors'))} active
                             </div>
+                            {community.get('is_nsfw') && <span className="affiliation">nsfw</span>}
+                            <div style={{ margin: '0 0 12px' }}>{community.get('about')}</div>
                         </div>
 
                         <div className="column large-2 medium-4 small-12">
@@ -114,9 +86,7 @@ class CommunityPaneMobile extends Component {
                                     margin: '0 4px',
                                 }}
                             >
-                                <SubscribeButton
-                                    community={community.get('name')}
-                                />
+                                <SubscribeButton community={community.get('name')} />
                             </span>
                             {canPost && (
                                 <span
@@ -148,9 +118,9 @@ export default connect(
         community: ownProps.community,
     }),
     // mapDispatchToProps
-    dispatch => {
+    (dispatch) => {
         return {
-            showRecentSubscribers: community => {
+            showRecentSubscribers: (community) => {
                 dispatch(
                     globalActions.showDialog({
                         name: 'communitySubscribers',
@@ -158,7 +128,7 @@ export default connect(
                     })
                 );
             },
-            showModerationLog: community => {
+            showModerationLog: (community) => {
                 dispatch(
                     globalActions.showDialog({
                         name: 'communityModerationLog',
diff --git a/src/app/components/elements/ContentEditedWrapper/index.jsx b/src/app/components/elements/ContentEditedWrapper/index.jsx
index bb0f0db4fe0d7a87784c4f88e2ca26526cc4ecaf..c91aeea10092ae2b2e51e97f22f61efb5ee59e3a 100644
--- a/src/app/components/elements/ContentEditedWrapper/index.jsx
+++ b/src/app/components/elements/ContentEditedWrapper/index.jsx
@@ -13,9 +13,7 @@ class ContentEditedWrapper extends React.Component {
             updateDate = updateDate + 'Z'; // Firefox really wants this Z (Zulu)
         }
         const dt = new Date(updateDate);
-        const date_time = `${this.props.intl.formatDate(
-            dt
-        )} ${this.props.intl.formatTime(dt)}`;
+        const date_time = `${this.props.intl.formatDate(dt)} ${this.props.intl.formatTime(dt)}`;
         return (
             <Tooltip t={date_time} className={className}>
                 (edited)
diff --git a/src/app/components/elements/DateJoinWrapper.jsx b/src/app/components/elements/DateJoinWrapper.jsx
index 430633daa5f44e8cf57963fd91f5c2a149f06743..5c72ae106ff8931407b704c3b7fed855f31d7784 100644
--- a/src/app/components/elements/DateJoinWrapper.jsx
+++ b/src/app/components/elements/DateJoinWrapper.jsx
@@ -9,12 +9,7 @@ export default class DateJoinWrapper extends React.Component {
 
         return (
             <span>
-                {tt('g.joined')}{' '}
-                <FormattedDate
-                    value={new Date(date)}
-                    year="numeric"
-                    month="long"
-                />
+                {tt('g.joined')} <FormattedDate value={new Date(date)} year="numeric" month="long" />
             </span>
         );
     }
diff --git a/src/app/components/elements/Dropdown.jsx b/src/app/components/elements/Dropdown.jsx
index b47873ea162037eef4db97f23f102260b4bf6174..a08f72b2a80d263f3949db144a82837002b5651d 100644
--- a/src/app/components/elements/Dropdown.jsx
+++ b/src/app/components/elements/Dropdown.jsx
@@ -1,20 +1,16 @@
 import React from 'react';
-import { browserHistory } from 'react-router';
-import Icon from 'app/components/elements/Icon';
 import { findParent } from 'app/utils/DomUtils';
+import PropTypes from 'prop-types';
 
 export default class Dropdown extends React.Component {
     static propTypes = {
-        children: React.PropTypes.object,
-        className: React.PropTypes.string,
-        title: React.PropTypes.oneOfType([
-            React.PropTypes.string,
-            React.PropTypes.object,
-        ]).isRequired,
-        href: React.PropTypes.string,
-        onHide: React.PropTypes.func,
-        onShow: React.PropTypes.func,
-        show: React.PropTypes.bool,
+        children: PropTypes.object,
+        className: PropTypes.string,
+        title: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,
+        href: PropTypes.string,
+        onHide: PropTypes.func,
+        onShow: PropTypes.func,
+        show: PropTypes.bool,
     };
 
     static defaultProps = {
@@ -42,21 +38,21 @@ export default class Dropdown extends React.Component {
         document.removeEventListener('click', this.hide);
     }
 
-    toggle = e => {
+    toggle = (e) => {
         const { shown } = this.state;
         if (shown) {
             this.hide(e);
         } else this.show(e);
     };
 
-    show = e => {
+    show = (e) => {
         e.preventDefault();
         this.setState({ shown: true });
         this.props.onShow();
         document.addEventListener('click', this.hide);
     };
 
-    hide = e => {
+    hide = (e) => {
         // Do not hide the dropdown if there was a click within it.
         const inside_dropdown = !!findParent(e.target, 'dropdown__content');
         if (inside_dropdown) return;
@@ -67,27 +63,25 @@ export default class Dropdown extends React.Component {
     };
 
     render() {
-        const { children, className, title, href, position } = this.props;
+        const {
+ children, className, title, href, position
+} = this.props;
 
-        let entry = (
+        const entry = (
             <a key="entry" href={href || '#'} onClick={this.toggle}>
                 {title}
             </a>
         );
 
         const content = (
-            <div key="dropdown-content" className={'dropdown__content'}>
+            <div key="dropdown-content" className="dropdown__content">
                 {children}
             </div>
         );
-        const cls =
-            'dropdown' +
-            (this.state.shown ? ' show' : '') +
-            (className ? ` ${className}` : '') +
-            (position ? ` ${position}` : '');
-        return React.createElement('div', { className: cls, key: 'dropdown' }, [
-            entry,
-            content,
-        ]);
+        const cls = 'dropdown'
+            + (this.state.shown ? ' show' : '')
+            + (className ? ` ${className}` : '')
+            + (position ? ` ${position}` : '');
+        return React.createElement('div', { className: cls, key: 'dropdown' }, [entry, content]);
     }
 }
diff --git a/src/app/components/elements/DropdownMenu.jsx b/src/app/components/elements/DropdownMenu.jsx
index 33bfa416a399e1f91a4c1084f74af6945d81a457..a3e308ec7b647dc2b54b9b045775e5414c798e2c 100644
--- a/src/app/components/elements/DropdownMenu.jsx
+++ b/src/app/components/elements/DropdownMenu.jsx
@@ -9,11 +9,7 @@ export default class DropdownMenu extends React.Component {
     static propTypes = {
         items: PropTypes.arrayOf(PropTypes.object).isRequired,
         selected: PropTypes.string,
-        children: PropTypes.oneOfType([
-            PropTypes.object,
-            PropTypes.array,
-            PropTypes.element,
-        ]),
+        children: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.element]),
         className: PropTypes.string,
         title: PropTypes.string,
         href: PropTypes.string,
@@ -32,19 +28,19 @@ export default class DropdownMenu extends React.Component {
         document.removeEventListener('click', this.hide);
     }
 
-    toggle = e => {
+    toggle = (e) => {
         const { shown } = this.state;
         if (shown) this.hide(e);
         else this.show(e);
     };
 
-    show = e => {
+    show = (e) => {
         e.preventDefault();
         this.setState({ shown: true });
         document.addEventListener('click', this.hide);
     };
 
-    hide = e => {
+    hide = (e) => {
         // Do not hide the dropdown if there was a click within it.
         const inside_dropdown = !!findParent(e.target, 'VerticalMenu');
         if (inside_dropdown) return;
@@ -54,11 +50,8 @@ export default class DropdownMenu extends React.Component {
         document.removeEventListener('click', this.hide);
     };
 
-    navigate = e => {
-        const a =
-            e.target.nodeName.toLowerCase() === 'a'
-                ? e.target
-                : e.target.parentNode;
+    navigate = (e) => {
+        const a = e.target.nodeName.toLowerCase() === 'a' ? e.target : e.target.parentNode;
         this.setState({ show: false });
         if (a.host !== window.location.host) return;
         e.preventDefault();
@@ -66,25 +59,13 @@ export default class DropdownMenu extends React.Component {
     };
 
     getSelectedLabel = (items, selected) => {
-        const selectedEntry = items.find(i => i.value === selected);
-        const selectedLabel =
-            selectedEntry && selectedEntry.label
-                ? selectedEntry.label
-                : selected;
+        const selectedEntry = items.find((i) => i.value === selected);
+        const selectedLabel = selectedEntry && selectedEntry.label ? selectedEntry.label : selected;
         return selectedLabel;
     };
 
     render() {
-        const {
-            el,
-            items,
-            selected,
-            children,
-            className,
-            title,
-            href,
-            position,
-        } = this.props;
+        const { el, items, selected, children, className, title, href, position } = this.props;
         const hasDropdown = items.length > 0;
 
         let entry = children || (
@@ -101,14 +82,7 @@ export default class DropdownMenu extends React.Component {
                 </a>
             );
 
-        const menu = (
-            <VerticalMenu
-                key="menu"
-                title={title}
-                items={items}
-                hideValue={selected}
-            />
-        );
+        const menu = <VerticalMenu key="menu" title={title} items={items} hideValue={selected} />;
         const cls =
             'DropdownMenu' +
             (this.state.shown ? ' show' : '') +
diff --git a/src/app/components/elements/DropdownMenu.story.jsx b/src/app/components/elements/DropdownMenu.story.jsx
index 4b78e64fabfe16b5cce9a7f695810b1184be81c0..288762518edcc011d69b54a2fb8efbaede937b59 100644
--- a/src/app/components/elements/DropdownMenu.story.jsx
+++ b/src/app/components/elements/DropdownMenu.story.jsx
@@ -35,11 +35,7 @@ storiesOf('Elements', module)
                 key="_others"
                 items={mockMenu}
                 el={'div'}
-                selected={select(
-                    'Currently Selected',
-                    selectOptions,
-                    'power up'
-                )}
+                selected={select('Currently Selected', selectOptions, 'power up')}
             />
         </div>
     ));
diff --git a/src/app/components/elements/ElasticSearchInput/index.jsx b/src/app/components/elements/ElasticSearchInput/index.jsx
index 4f39a6ee63c5464f2cd78bcfb4525d70f318fce6..7e77612a5e9cc97784b6bd9a2d9686f3927b204c 100644
--- a/src/app/components/elements/ElasticSearchInput/index.jsx
+++ b/src/app/components/elements/ElasticSearchInput/index.jsx
@@ -11,6 +11,7 @@ class ElasticSearchInput extends React.Component {
         initValue: PropTypes.string,
         loading: PropTypes.bool,
     };
+
     static defaultProps = {
         handleSubmit: null,
         expanded: true,
@@ -42,13 +43,13 @@ class ElasticSearchInput extends React.Component {
         }
     }
 
-    onSearchSubmit = event => {
+    onSearchSubmit = (event) => {
         event.preventDefault();
         const { value: searchQuery, sortOrder } = this.state;
         this.doSearch(searchQuery, sortOrder);
     };
 
-    onSortOrderChange = event => {
+    onSortOrderChange = (event) => {
         const sortOrder = event.target.value;
         const { value: searchQuery } = this.state;
         this.setState({ value: searchQuery, sortOrder });
@@ -90,8 +91,8 @@ class ElasticSearchInput extends React.Component {
                     />
                 </form>
 
-                {expanded &&
-                    !loading && (
+                {expanded
+                    && !loading && (
                         <div className="search-sort-order">
                             <div className="search-sort-order--title">{tt('searchinput.sortBy')}</div>
                             <div className="search-sort-order--select">
diff --git a/src/app/components/elements/EmbeddedPlayers/EmbeddedGist.jsx b/src/app/components/elements/EmbeddedPlayers/EmbeddedGist.jsx
index 73bf689e1969b3fe4fbf70ca2fbbed099dd19543..e64a8c043b3af26e56b5c9e4ed95acdc9af3638f 100644
--- a/src/app/components/elements/EmbeddedPlayers/EmbeddedGist.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/EmbeddedGist.jsx
@@ -20,7 +20,7 @@ class EmbeddedGist extends React.Component {
     // The Gist JSON data includes a stylesheet to add to the page
     // to make it look correct. `addStylesheet` ensures we only add
     // the stylesheet one time.
-    addStylesheet = href => {
+    addStylesheet = (href) => {
         if (!this.stylesheetAdded) {
             this.stylesheetAdded = true;
             const link = document.createElement('link');
@@ -38,7 +38,7 @@ class EmbeddedGist extends React.Component {
         // Create a JSONP callback that will set our state
         // with the data that comes back from the Gist site
         const gistCallback = EmbeddedGist.nextGistCallback();
-        window[gistCallback] = function(gistData) {
+        window[gistCallback] = function (gistData) {
             this.setState({
                 loading: false,
                 src: gistData.div,
diff --git a/src/app/components/elements/EmbeddedPlayers/archiveorg.jsx b/src/app/components/elements/EmbeddedPlayers/archiveorg.jsx
index 7742c0a290caf43fb1239e130fde5af508c30661..ca35448380a9a4dd0f7fda718e0625fd79037d02 100644
--- a/src/app/components/elements/EmbeddedPlayers/archiveorg.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/archiveorg.jsx
@@ -100,10 +100,7 @@ export function embedNode(child, links /*images*/) {
         const archiveorg = extractMetadata(data);
         if (!archiveorg) return child;
 
-        child.data = data.replace(
-            archiveorg.url,
-            `~~~ embed:${archiveorg.id} archiveorg ~~~`
-        );
+        child.data = data.replace(archiveorg.url, `~~~ embed:${archiveorg.id} archiveorg ~~~`);
 
         if (links) {
             links.add(archiveorg.canonical);
@@ -130,12 +127,7 @@ export function genIframeMd(idx, id, width, height) {
 
     let sandbox = sandboxConfig.useSandbox;
     if (sandbox) {
-        if (
-            Object.prototype.hasOwnProperty.call(
-                sandboxConfig,
-                'sandboxAttributes'
-            )
-        ) {
+        if (Object.prototype.hasOwnProperty.call(sandboxConfig, 'sandboxAttributes')) {
             sandbox = sandboxConfig.sandboxAttributes.join(' ');
         }
     }
diff --git a/src/app/components/elements/EmbeddedPlayers/bandcamp.jsx b/src/app/components/elements/EmbeddedPlayers/bandcamp.jsx
index 033d995a10cfee91c364bba5823f0243c6c38f10..ddd0eed5720f8870e9f66991e2d6e6b18040d9aa 100644
--- a/src/app/components/elements/EmbeddedPlayers/bandcamp.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/bandcamp.jsx
@@ -101,12 +101,7 @@ export function genIframeMd(idx, id, width, height) {
 
     let sandbox = sandboxConfig.useSandbox;
     if (sandbox) {
-        if (
-            Object.prototype.hasOwnProperty.call(
-                sandboxConfig,
-                'sandboxAttributes'
-            )
-        ) {
+        if (Object.prototype.hasOwnProperty.call(sandboxConfig, 'sandboxAttributes')) {
             sandbox = sandboxConfig.sandboxAttributes.join(' ');
         }
     }
diff --git a/src/app/components/elements/EmbeddedPlayers/dtube.jsx b/src/app/components/elements/EmbeddedPlayers/dtube.jsx
index 26736437b6eaa957248466dbca242466ff557c49..8cb9ba22dc5c41f33b9ec45cc8f4c6d9b64e7aa6 100644
--- a/src/app/components/elements/EmbeddedPlayers/dtube.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/dtube.jsx
@@ -36,12 +36,7 @@ export function genIframeMd(idx, dtubeId, width, height) {
 
     let sandbox = sandboxConfig.useSandbox;
     if (sandbox) {
-        if (
-            Object.prototype.hasOwnProperty.call(
-                sandboxConfig,
-                'sandboxAttributes'
-            )
-        ) {
+        if (Object.prototype.hasOwnProperty.call(sandboxConfig, 'sandboxAttributes')) {
             sandbox = sandboxConfig.sandboxAttributes.join(' ');
         }
     }
diff --git a/src/app/components/elements/EmbeddedPlayers/example-players.md b/src/app/components/elements/EmbeddedPlayers/example-players.md
index e641296b70e7d3a4c39d389197b29e949f71382a..920740ad68cdda19a834fd0bc73cce8de0e46f1e 100644
--- a/src/app/components/elements/EmbeddedPlayers/example-players.md
+++ b/src/app/components/elements/EmbeddedPlayers/example-players.md
@@ -1,13 +1,17 @@
 # Example Media Players 2020-07-23
 
 ## archive.org direct html iframe markup
+
 Video:
+
 <iframe src="https://archive.org/embed/namaz-nasil-kilinir" width="640" height="480" frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe>
 Music:
 <iframe src="https://archive.org/embed/geometry_dash_1.9" width="500" height="140" frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe>
 
 ## bandcamp direct html iframe markup
+
 Small artwork without tracklist
+
 <iframe style="border: 0; width: 100%; height: 120px;" src="https://bandcamp.com/EmbeddedPlayer/album=1820259073/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/artwork=small/transparent=true/" seamless><a href="https://bluetech.bandcamp.com/album/tomorrow">Tomorrow by Steve Roach</a></iframe>
 Small artwork with tracklist
 <iframe style="border: 0; width: 100%; height: 120px;" src="https://bandcamp.com/EmbeddedPlayer/album=1820259073/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=true/artwork=small/transparent=true/" seamless><a href="https://bluetech.bandcamp.com/album/tomorrow">Tomorrow by Steve Roach</a></iframe>
@@ -17,31 +21,41 @@ Large artwork with tracklist
 <iframe style="border: 0; width: 100%; height: 120px;" src="https://bandcamp.com/EmbeddedPlayer/album=1820259073/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=true/artwork=large/transparent=true/" seamless><a href="https://bluetech.bandcamp.com/album/tomorrow">Tomorrow by Steve Roach</a></iframe>
 
 ## dapplr direct html iframe markup
+
 <iframe src="https://cdn.dapplr.in/file/dapplr-videos/cryptoanalysis/yuHDBQG8XY3IBMwD0f4je9b1P7u7PAsT.mp4"></iframe>
 
 ## dapplr iframe embedded from link
+
 Not supported
 
 ## dtube direct html iframe markup
+
 <iframe title="DTube embedded player" src="https://emb.d.tube/#!/cyberspacegod/QmfHTqZWQkJ6uqLsca4wgZffGE3To6YVSzazFD3ReS1NcA"></iframe>
 
 ## dtube iframe embedded from link
+
 https://emb.d.tube/#!/cyberspacegod/QmfHTqZWQkJ6uqLsca4wgZffGE3To6YVSzazFD3ReS1NcA
 
 ## soundcloud direct html iframe markup
+
 <iframe width="100%" height="450" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/257659076&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true"></iframe>
 
 ## soundcloud iframe embedded from link
+
 Not supported
 
 ## mixcloud direct html iframe markup
+
 <iframe width="100%" height="120" src="https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=%2FMagneticMagazine%2Fambient-meditations-vol-21-anane%2F" frameborder="0" ></iframe>
 
 ## mixcloud iframe embedded from link
+
 https://www.mixcloud.com/MagneticMagazine/ambient-meditations-vol-21-anane
 
 ## spotify direct html iframe markup
+
 Playlist
+
 <iframe src="https://open.spotify.com/embed/playlist/37i9dQZF1DWSDCcNkUu5tr" width="300" height="380" frameborder="0" allowtransparency="true" allow="encrypted-media"></iframe>
 Show
 <iframe src="https://open.spotify.com/embed-podcast/show/6C1Q7ITJKvZVosOdC9M1RM" width="100%" height="232" frameborder="0" allowtransparency="true" allow="encrypted-media"></iframe>
@@ -55,6 +69,7 @@ Artist
 <iframe src="https://open.spotify.com/embed/artist/70eAfg5WeShjPxtD9Yi6P9" width="100%" height="380" frameBorder="0" allowtransparency="true" allow="encrypted-media"></iframe>
 
 ## spotify iframe embedded from link
+
 Playlist
 https://open.spotify.com/playlist/1zLvUhumbFIEdfxYQcgUxk?si=0f92104b469e4226
 Show
@@ -68,35 +83,42 @@ https://open.spotify.com/track/6V4oUHrin3AlMarW8MsnIK?si=03e929f5a0ad4893
 Artist
 https://open.spotify.com/artist/70eAfg5WeShjPxtD9Yi6P9?si=VDDO-Ju9TOqTw_pS5piraA
 
-
 ## threespeak direct html iframe markup
+
 <iframe src="https://3speak.tv/embed?v=threespeak/iaarkpvf"></iframe>
 
 ## threespeak iframe embedded from link
+
 https://3speak.tv/watsch?v=threespeak/iaarkpvf
 
 ## truvvl direct html iframe markup
+
 <iframe src="https://embed.truvvl.com/@tvt3st/prague-to-sarajevo-cool-places-in-europe-europe-prague-zagreb-bosnia-20210420t103208397z"></iframe>
 
 ## truvvl iframe embedded from link
+
 Not supported
 
 ## twitch direct html iframe markup
+
 <iframe src="https://player.twitch.tv/?channel=tfue" frameborder="0" allowfullscreen="true" scrolling="no" height="378" width="620"></iframe>
 
 ## twitter
-https://twitter.com/missybahia/status/1281295770298318849
 
+https://twitter.com/missybahia/status/1281295770298318849
 
 ## vimeo direct html iframe markup
+
 <iframe src="https://player.vimeo.com/video/179213493"></iframe>
 
 ## vimeo iframe embedded from link
-https://player.vimeo.com/video/179213493
 
+https://player.vimeo.com/video/179213493
 
 ## youtube direct html iframe markup
+
 <iframe src="https://www.youtube.com/embed/KOnk7Nbqkhs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
 ## youtube iframe embedded from link
+
 https://www.youtube.com/embed/KOnk7Nbqkhs
diff --git a/src/app/components/elements/EmbeddedPlayers/mixcloud.jsx b/src/app/components/elements/EmbeddedPlayers/mixcloud.jsx
index 8175da031078249b9c3794f49bc9e077ff99ba02..8ed2526bc6d69d3cf07301c4ac6cedbc2ab16f23 100644
--- a/src/app/components/elements/EmbeddedPlayers/mixcloud.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/mixcloud.jsx
@@ -40,9 +40,7 @@ export function validateIframeUrl(url) {
         return false;
     }
 
-    return `https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=${
-        match[1]
-    }`;
+    return `https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=${match[1]}`;
 }
 
 //////
@@ -94,10 +92,7 @@ export function embedNode(child, links /*images*/) {
         const mixcloud = extractMetadata(data);
         if (!mixcloud) return child;
 
-        child.data = data.replace(
-            mixcloud.url,
-            `~~~ embed:${mixcloud.id} mixcloud ~~~`
-        );
+        child.data = data.replace(mixcloud.url, `~~~ embed:${mixcloud.id} mixcloud ~~~`);
 
         if (links) links.add(mixcloud.canonical);
         // if(images) images.add(mixcloud.thumbnail) // not available
@@ -118,18 +113,11 @@ export function embedNode(child, links /*images*/) {
 export function genIframeMd(idx, id) {
     const width = '100%';
     const height = 120;
-    const url = `https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=${
-        id
-    }`;
+    const url = `https://www.mixcloud.com/widget/iframe/?hide_cover=1&feed=${id}`;
 
     let sandbox = sandboxConfig.useSandbox;
     if (sandbox) {
-        if (
-            Object.prototype.hasOwnProperty.call(
-                sandboxConfig,
-                'sandboxAttributes'
-            )
-        ) {
+        if (Object.prototype.hasOwnProperty.call(sandboxConfig, 'sandboxAttributes')) {
             sandbox = sandboxConfig.sandboxAttributes.join(' ');
         }
     }
diff --git a/src/app/components/elements/EmbeddedPlayers/reddit.jsx b/src/app/components/elements/EmbeddedPlayers/reddit.jsx
index 87506ae71ee944e72c9ac09646ca6b1e9765ff55..0938011627b2ef84ef6eb7c591bf54798759fc39 100644
--- a/src/app/components/elements/EmbeddedPlayers/reddit.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/reddit.jsx
@@ -132,10 +132,9 @@ function generateRedditCode(metadata) {
             description = url;
         }
 
-        redditCode =
-            `<blockquote class="reddit-card" data-created="${date}">` +
-            `<a href="${url}">${description}</a>` +
-            `from <a href="http://www.reddit.com/r/${group}">r/${group}</a></blockquote>`;
+        redditCode = `<blockquote class="reddit-card" data-created="${date}">`
+            + `<a href="${url}">${description}</a>`
+            + `from <a href="http://www.reddit.com/r/${group}">r/${group}</a></blockquote>`;
     }
 
     return {
diff --git a/src/app/components/elements/EmbeddedPlayers/soundcloud.jsx b/src/app/components/elements/EmbeddedPlayers/soundcloud.jsx
index 8fdfdd1f6bfd91a89d5c872a514444cf7cf6a99c..19a874fcc5425f0e493c7178c8d17bdc6809e279 100644
--- a/src/app/components/elements/EmbeddedPlayers/soundcloud.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/soundcloud.jsx
@@ -30,7 +30,5 @@ export function validateIframeUrl(url) {
         return false;
     }
 
-    return `https://w.soundcloud.com/player/?url=${
-        match[1]
-    }&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=true`;
+    return `https://w.soundcloud.com/player/?url=${match[1]}&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=true`;
 }
diff --git a/src/app/components/elements/EmbeddedPlayers/twitch.jsx b/src/app/components/elements/EmbeddedPlayers/twitch.jsx
index 8b35f94649ebe596178ed027e48390fede0231ba..cc58ae7cc87bbff64cdf73c3f43440a6107a538d 100644
--- a/src/app/components/elements/EmbeddedPlayers/twitch.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/twitch.jsx
@@ -38,9 +38,7 @@ export function validateIframeUrl(url) {
     const match = url.match(regex.sanitize);
 
     if (match) {
-        return `https://player.twitch.tv/?${match[2]}=${
-            match[3]
-        }&parent=${getParentDomain()}`;
+        return `https://player.twitch.tv/?${match[2]}=${match[3]}&parent=${getParentDomain()}`;
     }
 
     return false;
@@ -56,14 +54,10 @@ export function normalizeEmbedUrl(url) {
 
     if (match && match.length >= 3) {
         if (match[1] === undefined) {
-            return `https://player.twitch.tv/?autoplay=false&channel=${
-                match[2]
-            }&parent=${getParentDomain()}`;
+            return `https://player.twitch.tv/?autoplay=false&channel=${match[2]}&parent=${getParentDomain()}`;
         }
 
-        return `https://player.twitch.tv/?autoplay=false&video=${
-            match[1]
-        }&parent=${getParentDomain()}`;
+        return `https://player.twitch.tv/?autoplay=false&video=${match[1]}&parent=${getParentDomain()}`;
     }
 
     return false;
@@ -86,12 +80,8 @@ function extractMetadata(data) {
         url: m[0],
         canonical:
             m[1] === `videos`
-                ? `https://player.twitch.tv/?video=${
-                      m[2]
-                  }&parent=${getParentDomain()}`
-                : `https://player.twitch.tv/?channel=${
-                      m[2]
-                  }&parent=${getParentDomain()}`,
+                ? `https://player.twitch.tv/?video=${m[2]}&parent=${getParentDomain()}`
+                : `https://player.twitch.tv/?channel=${m[2]}&parent=${getParentDomain()}`,
     };
 }
 
@@ -101,10 +91,7 @@ export function embedNode(child, links /*images*/) {
         const twitch = extractMetadata(data);
         if (!twitch) return child;
 
-        child.data = data.replace(
-            twitch.url,
-            `~~~ embed:${twitch.id} twitch ~~~`
-        );
+        child.data = data.replace(twitch.url, `~~~ embed:${twitch.id} twitch ~~~`);
 
         if (links) links.add(twitch.canonical);
     } catch (error) {
@@ -127,12 +114,7 @@ export function genIframeMd(idx, id, width, height) {
 
     let sandbox = sandboxConfig.useSandbox;
     if (sandbox) {
-        if (
-            Object.prototype.hasOwnProperty.call(
-                sandboxConfig,
-                'sandboxAttributes'
-            )
-        ) {
+        if (Object.prototype.hasOwnProperty.call(sandboxConfig, 'sandboxAttributes')) {
             sandbox = sandboxConfig.sandboxAttributes.join(' ');
         }
     }
diff --git a/src/app/components/elements/EmbeddedPlayers/twitter.jsx b/src/app/components/elements/EmbeddedPlayers/twitter.jsx
index 266b4709e76fbbee86796900a7d79d7edcedaaae..a5ba2f33cdbba577bf9412204c2f57865a699899 100644
--- a/src/app/components/elements/EmbeddedPlayers/twitter.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/twitter.jsx
@@ -118,9 +118,7 @@ function generateTwitterCode(metadata) {
     let twitterCode =
         '<blockquote className="twitter-tweet"><p lang="en" dir="ltr"></p>&mdash; <a href=""></a></blockquote>';
     if (metadata) {
-        let [author, date, url, description] = Buffer.from(metadata, 'base64')
-            .toString()
-            .split('|');
+        let [author, date, url, description] = Buffer.from(metadata, 'base64').toString().split('|');
 
         // Sanitizing input
         author = author.replace(/(<([^>]+)>)/gi, '');
@@ -182,14 +180,10 @@ export function embedNode(child) {
         const twitter = extractMetadata(data);
 
         if (twitter) {
-            const metadata = `${twitter.author}|${twitter.date}|${
-                twitter.url
-            }|${twitter.description}`;
+            const metadata = `${twitter.author}|${twitter.date}|${twitter.url}|${twitter.description}`;
             child.data = data.replace(
                 regex.main,
-                `~~~ embed:${twitter.id} twitter metadata:${Buffer.from(
-                    metadata
-                ).toString('base64')} ~~~`
+                `~~~ embed:${twitter.id} twitter metadata:${Buffer.from(metadata).toString('base64')} ~~~`
             );
         }
     } catch (error) {
@@ -211,14 +205,10 @@ export function preprocessHtml(child) {
             // to replace the image/anchor tag created by 3Speak dApp
             const twitter = extractMetadataFromEmbedCode(child);
             if (twitter) {
-                const metadata = `${twitter.author}|${twitter.date}|${
-                    twitter.url
-                }|${twitter.description}`;
+                const metadata = `${twitter.author}|${twitter.date}|${twitter.url}|${twitter.description}`;
                 child = child.replace(
                     regex.htmlReplacement,
-                    `~~~ embed:${twitter.id} twitter metadata:${Buffer.from(
-                        metadata
-                    ).toString('base64')} ~~~`
+                    `~~~ embed:${twitter.id} twitter metadata:${Buffer.from(metadata).toString('base64')} ~~~`
                 );
             }
         }
diff --git a/src/app/components/elements/EmbeddedPlayers/vimeo.jsx b/src/app/components/elements/EmbeddedPlayers/vimeo.jsx
index 03b90ccd9335be809d43f94877bf7cf0f4b4b9fe..1733684f9791c7d9b34c7322a3fd05143cc5c79a 100644
--- a/src/app/components/elements/EmbeddedPlayers/vimeo.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/vimeo.jsx
@@ -86,15 +86,9 @@ export function embedNode(child, links /*images*/) {
 
         const vimeoRegex = new RegExp(`${vimeo.url}(#t=${vimeo.startTime}s?)?`);
         if (vimeo.startTime > 0) {
-            child.data = data.replace(
-                vimeoRegex,
-                `~~~ embed:${vimeo.id} vimeo ${vimeo.startTime} ~~~`
-            );
+            child.data = data.replace(vimeoRegex, `~~~ embed:${vimeo.id} vimeo ${vimeo.startTime} ~~~`);
         } else {
-            child.data = data.replace(
-                vimeoRegex,
-                `~~~ embed:${vimeo.id} vimeo ~~~`
-            );
+            child.data = data.replace(vimeoRegex, `~~~ embed:${vimeo.id} vimeo ~~~`);
         }
 
         if (links) links.add(vimeo.canonical);
@@ -119,12 +113,7 @@ export function genIframeMd(idx, id, width, height, startTime) {
 
     let sandbox = sandboxConfig.useSandbox;
     if (sandbox) {
-        if (
-            Object.prototype.hasOwnProperty.call(
-                sandboxConfig,
-                'sandboxAttributes'
-            )
-        ) {
+        if (Object.prototype.hasOwnProperty.call(sandboxConfig, 'sandboxAttributes')) {
             sandbox = sandboxConfig.sandboxAttributes.join(' ');
         }
     }
diff --git a/src/app/components/elements/EmbeddedPlayers/youtube.jsx b/src/app/components/elements/EmbeddedPlayers/youtube.jsx
index 41726d4b5cf75eb80882c61c6a3b83db6c1b8cb7..4024606be5fa7418c63ce85228f9ca686cfb2200 100644
--- a/src/app/components/elements/EmbeddedPlayers/youtube.jsx
+++ b/src/app/components/elements/EmbeddedPlayers/youtube.jsx
@@ -98,15 +98,9 @@ export function embedNode(child, links, images) {
         if (!yt) return child;
 
         if (yt.startTime) {
-            child.data = child.data.replace(
-                yt.url,
-                `~~~ embed:${yt.id} youtube ${yt.startTime} ~~~`
-            );
+            child.data = child.data.replace(yt.url, `~~~ embed:${yt.id} youtube ${yt.startTime} ~~~`);
         } else {
-            child.data = child.data.replace(
-                yt.url,
-                `~~~ embed:${yt.id} youtube ~~~`
-            );
+            child.data = child.data.replace(yt.url, `~~~ embed:${yt.id} youtube ~~~`);
         }
 
         if (links) links.add(yt.url);
diff --git a/src/app/components/elements/FlagButton.jsx b/src/app/components/elements/FlagButton.jsx
index 5ac81fddea049988331cbace5600750237147ead..ce689f9ae1105af894e1c0d5ad25e429b61b02a6 100644
--- a/src/app/components/elements/FlagButton.jsx
+++ b/src/app/components/elements/FlagButton.jsx
@@ -24,7 +24,7 @@ class FlagButton extends React.Component {
         this.setState({ showDialog: false });
     };
 
-    onSubmit = notes => {
+    onSubmit = (notes) => {
         const { account, community, username, permlink, flagPost } = this.props;
         if (!notes || !community || !username) return false; // Fail Fast
         flagPost(username, community, account, notes, permlink);
@@ -32,13 +32,7 @@ class FlagButton extends React.Component {
 
     render() {
         return (
-            <span
-                className={` flag__button ${
-                    this.props.isComment
-                        ? 'flag__button--comment'
-                        : 'flag__button--post'
-                } `}
-            >
+            <span className={` flag__button ${this.props.isComment ? 'flag__button--comment' : 'flag__button--post'} `}>
                 <a onClick={() => this.showDialog()}>
                     <Icon name="flag1" />
                     <Icon name="flag2" />
@@ -47,7 +41,7 @@ class FlagButton extends React.Component {
                     <Reveal onHide={() => null} show>
                         <CloseButton onClick={() => this.hideDialog()} />
                         <FlagCommunityPost
-                            onSubmit={notes => {
+                            onSubmit={(notes) => {
                                 this.hideDialog();
                                 this.onSubmit(notes);
                             }}
@@ -80,11 +74,7 @@ export default connect(
         const account = post.get('author');
         const permlink = post.get('permlink');
         const community = post.get('category');
-        const flagText = state.global.getIn([
-            'community',
-            community,
-            'flag_text',
-        ]);
+        const flagText = state.global.getIn(['community', community, 'flag_text']);
         return {
             account,
             permlink,
@@ -93,19 +83,11 @@ export default connect(
             flagText,
         };
     },
-    dispatch => ({
+    (dispatch) => ({
         stateSet: (key, value) => {
             dispatch(globalActions.set({ key, value }));
         },
-        flagPost: (
-            username,
-            community,
-            account,
-            notes,
-            permlink,
-            successCallback,
-            errorCallback
-        ) => {
+        flagPost: (username, community, account, notes, permlink, successCallback, errorCallback) => {
             const action = 'flagPost';
             const payload = [
                 action,
diff --git a/src/app/components/elements/Follow/Follow.story.jsx b/src/app/components/elements/Follow/Follow.story.jsx
index 7ebe47c9b3cd174d00e6ce30b8ba65cacff9413b..9524dd8845173e5f198a0924b2b034daa3165877 100644
--- a/src/app/components/elements/Follow/Follow.story.jsx
+++ b/src/app/components/elements/Follow/Follow.story.jsx
@@ -12,7 +12,7 @@ const store = createStore(rootReducer);
 storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .addDecorator(Center)
-    .addDecorator(getStory => <Provider store={store}>{getStory()}</Provider>)
+    .addDecorator((getStory) => <Provider store={store}>{getStory()}</Provider>)
     .add('Follow', () => (
         <Follow
             className="float-right"
diff --git a/src/app/components/elements/Follow/__snapshots__/spec.js.snap b/src/app/components/elements/Follow/__snapshots__/spec.jsx.snap
similarity index 62%
rename from src/app/components/elements/Follow/__snapshots__/spec.js.snap
rename to src/app/components/elements/Follow/__snapshots__/spec.jsx.snap
index 4c100854e5544e927e6e3bc85e11ca16e4951ef5..a3474ce1ec806bde46c611cc88c52c9099e6112c 100644
--- a/src/app/components/elements/Follow/__snapshots__/spec.js.snap
+++ b/src/app/components/elements/Follow/__snapshots__/spec.jsx.snap
@@ -19,8 +19,10 @@ ShallowWrapper {
   </Provider>,
   Symbol(enzyme.__renderer__): Object {
     "batchedUpdates": [Function],
+    "checkPropTypes": [Function],
     "getNode": [Function],
     "render": [Function],
+    "simulateError": [Function],
     "simulateEvent": [Function],
     "unmount": [Function],
   },
@@ -45,9 +47,26 @@ ShallowWrapper {
     },
   ],
   Symbol(enzyme.__options__): Object {
-    "adapter": ReactFifteenAdapter {
+    "adapter": ReactSixteenAdapter {
       "options": Object {
-        "supportPrevContextArgumentOfComponentDidUpdate": true,
+        "enableComponentDidUpdateOnSetState": true,
+        "legacyContextMode": "parent",
+        "lifecycles": Object {
+          "componentDidUpdate": Object {
+            "onSetState": true,
+          },
+          "getChildContext": Object {
+            "calledByRenderer": false,
+          },
+          "getDerivedStateFromError": true,
+          "getDerivedStateFromProps": Object {
+            "hasShouldComponentUpdateBug": false,
+          },
+          "getSnapshotBeforeUpdate": true,
+          "setState": Object {
+            "skipsComponentDidUpdateOnNullish": true,
+          },
+        },
       },
     },
   },
diff --git a/src/app/components/elements/Follow/index.jsx b/src/app/components/elements/Follow/index.jsx
index 51d8c886f99ffa0b0a6e4909d6a5ba49a5beeb36..bad6149499bf7b2115d5b0a82b447c87d8a1d56a 100644
--- a/src/app/components/elements/Follow/index.jsx
+++ b/src/app/components/elements/Follow/index.jsx
@@ -1,8 +1,8 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 import LoadingIndicator from 'app/components/elements/LoadingIndicator';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import * as transactionActions from 'app/redux/TransactionReducer';
 import * as userActions from 'app/redux/UserReducer';
 import { Set, Map } from 'immutable';
@@ -10,7 +10,7 @@ import tt from 'counterpart';
 
 const { string, bool, any } = PropTypes;
 
-export default class Follow extends React.Component {
+export default class Follow extends PureComponent {
     static propTypes = {
         following: string,
         follower: string, // OPTIONAL default to current user
@@ -32,7 +32,7 @@ export default class Follow extends React.Component {
         this.state = {};
         this.initEvents(props);
         this.followLoggedOut = this.followLoggedOut.bind(this);
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'Follow');
+        // this.shouldComponentUpdate = shouldComponentUpdate(this, 'Follow');
     }
 
     componentWillUpdate(nextProps) {
@@ -41,7 +41,7 @@ export default class Follow extends React.Component {
 
     initEvents(props) {
         const { updateFollow, follower, following } = props;
-        const upd = type => {
+        const upd = (type) => {
             if (this.state.busy) return;
             this.setState({ busy: true });
             const done = () => {
@@ -73,12 +73,14 @@ export default class Follow extends React.Component {
 
     render() {
         const { loading } = this.props;
-        if (loading)
-            return (
-                <span>
-                    <LoadingIndicator /> {tt('g.loading')}&hellip;
-                </span>
-            );
+        if (loading) { return (
+            <span>
+                <LoadingIndicator />
+                {' '}
+                {tt('g.loading')}
+                &hellip;
+            </span>
+            ); }
         if (loading !== false) {
             // must know what the user is already following before any update can happen
             return <span />;
@@ -91,22 +93,20 @@ export default class Follow extends React.Component {
             return null;
         }
 
-        if (!follower || !following)
-            return (
-                <span>
-                    <label
-                        className="button slim hollow secondary"
-                        onClick={this.followLoggedOut}
-                    >
-                        {tt('g.follow')}
-                    </label>
-                </span>
-            );
+        if (!follower || !following) { return (
+            <span>
+                <label className="button slim hollow secondary" onClick={this.followLoggedOut}>
+                    {tt('g.follow')}
+                </label>
+            </span>
+            ); }
         // Can't follow or ignore self
         if (follower === following) return <span />;
 
         const { followingWhat } = this.props; // redux
-        const { showFollow, showMute, fat, children } = this.props; // html
+        const {
+ showFollow, showMute, fat, children
+} = this.props; // html
         const { busy } = this.state;
 
         const cnBusy = busy ? 'disabled' : '';
@@ -115,35 +115,35 @@ export default class Follow extends React.Component {
 
         return (
             <span>
-                {showFollow &&
-                    followingWhat !== 'blog' && (
-                        <label className={cnInactive} onClick={this.follow}>
-                            {tt('g.follow')}
-                        </label>
-                    )}
-
-                {showFollow &&
-                    followingWhat === 'blog' && (
-                        <label className={cnInactive} onClick={this.unfollow}>
-                            {tt('g.unfollow')}
-                        </label>
-                    )}
-
-                {showMute &&
-                    followingWhat !== 'ignore' && (
-                        <label className={cnInactive} onClick={this.ignore}>
-                            {tt('g.mute')}
-                        </label>
-                    )}
-
-                {showMute &&
-                    followingWhat === 'ignore' && (
-                        <label className={cnInactive} onClick={this.unignore}>
-                            {tt('g.unmute')}
-                        </label>
-                    )}
-
-                {children && <span>&nbsp;&nbsp;{children}</span>}
+                {showFollow && followingWhat !== 'blog' && (
+                    <label className={cnInactive} onClick={this.follow}>
+                        {tt('g.follow')}
+                    </label>
+                )}
+
+                {showFollow && followingWhat === 'blog' && (
+                    <label className={cnInactive} onClick={this.unfollow}>
+                        {tt('g.unfollow')}
+                    </label>
+                )}
+
+                {showMute && followingWhat !== 'ignore' && (
+                    <label className={cnInactive} onClick={this.ignore}>
+                        {tt('g.mute')}
+                    </label>
+                )}
+
+                {showMute && followingWhat === 'ignore' && (
+                    <label className={cnInactive} onClick={this.unignore}>
+                        {tt('g.unmute')}
+                    </label>
+                )}
+
+                {children && (
+                <span>
+                    {children}
+                </span>
+)}
             </span>
         );
     }
@@ -161,10 +161,7 @@ module.exports = connect(
         }
 
         const { following } = ownProps;
-        const f = state.global.getIn(
-            ['follow', 'getFollowingAsync', follower],
-            emptyMap
-        );
+        const f = state.global.getIn(['follow', 'getFollowingAsync', follower], emptyMap);
 
         // the line below was commented out by val - I think it's broken so sometimes the loading indicator is shown forever
         // const loading = f.get('blog_loading', false) || f.get('ignore_loading', false)
@@ -173,8 +170,8 @@ module.exports = connect(
         const followingWhat = f.get('blog_result', emptySet).contains(following)
             ? 'blog'
             : f.get('ignore_result', emptySet).contains(following)
-              ? 'ignore'
-              : null;
+            ? 'ignore'
+            : null;
 
         return {
             follower,
@@ -183,7 +180,7 @@ module.exports = connect(
             loading,
         };
     },
-    dispatch => ({
+    (dispatch) => ({
         updateFollow: (follower, following, action, done) => {
             const what = action ? [action] : [];
             const json = ['follow', { follower, following, what }];
@@ -201,7 +198,7 @@ module.exports = connect(
                 })
             );
         },
-        showLogin: e => {
+        showLogin: (e) => {
             if (e) e.preventDefault();
             dispatch(userActions.showLogin());
         },
diff --git a/src/app/components/elements/Follow/spec.js b/src/app/components/elements/Follow/spec.jsx
similarity index 86%
rename from src/app/components/elements/Follow/spec.js
rename to src/app/components/elements/Follow/spec.jsx
index 8a337c3549777df4af488f969c97e5af802d31e2..2a7c1cdfbf193d9a0b64d934f5c076fdb5633acf 100644
--- a/src/app/components/elements/Follow/spec.js
+++ b/src/app/components/elements/Follow/spec.jsx
@@ -1,10 +1,10 @@
 import React from 'react';
-import { mount, configure, shallow } from 'enzyme';
+import { configure, shallow } from 'enzyme';
 import { Provider } from 'react-redux';
 import { createStore } from 'redux';
-import Follow from './index';
 import rootReducer from 'app/redux/RootReducer';
-import Adapter from 'enzyme-adapter-react-15';
+import Adapter from 'enzyme-adapter-react-16';
+import Follow from './index';
 
 const store = createStore(rootReducer);
 
diff --git a/src/app/components/elements/FormattedAsset.jsx b/src/app/components/elements/FormattedAsset.jsx
index 4a72bf856b316470922be940fa208fb7d50376dc..9acaf7cd2bbe1f1d6e49fbd788b0c9a47d8c422b 100644
--- a/src/app/components/elements/FormattedAsset.jsx
+++ b/src/app/components/elements/FormattedAsset.jsx
@@ -1,8 +1,5 @@
 import React from 'react';
-import {
-    formatDecimal,
-    parsePayoutAmount,
-} from 'app/utils/ParsersAndFormatters';
+import { formatDecimal, parsePayoutAmount } from 'app/utils/ParsersAndFormatters';
 
 const FormattedAsset = ({ amount, asset, classname }) => {
     if (amount && typeof amount === 'string') {
@@ -19,8 +16,7 @@ const FormattedAsset = ({ amount, asset, classname }) => {
     ) : (
         <span className="FormattedAsset">
             <span className="integer">{amnt[0]}</span>
-            <span className="decimal">{amnt[1]}</span>{' '}
-            <span className="asset">{asset}</span>
+            <span className="decimal">{amnt[1]}</span> <span className="asset">{asset}</span>
         </span>
     );
 };
diff --git a/src/app/components/elements/GptAd.jsx b/src/app/components/elements/GptAd.jsx
index 2c980ce65bf77ec3969db1735710df968bee01b6..341e832582e1b92cdd3e0a66420d87863b998302 100644
--- a/src/app/components/elements/GptAd.jsx
+++ b/src/app/components/elements/GptAd.jsx
@@ -1,10 +1,14 @@
-import React, { Component, PropTypes } from 'react';
+/*global googletag*/
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 
 class GptAd extends Component {
     constructor(props) {
         super(props);
-        const { ad_identifier, enabled, type, tags, bannedTags } = props;
+        const {
+ ad_identifier, enabled, type, tags, bannedTags
+} = props;
 
         this.ad_identifier = '';
         this.type = type;
@@ -31,17 +35,16 @@ class GptAd extends Component {
 
     componentDidMount() {
         if (!this.ad_identifier || !this.enabled) return;
-        const ad_identifier = this.ad_identifier;
         const unique_slot_id = this.unique_slot_id;
 
         window.optimize.queue.push(() => {
             window.optimize.push(unique_slot_id);
 
-            googletag.pubads().addEventListener('impressionViewable', e => {
+            googletag.pubads().addEventListener('impressionViewable', (e) => {
                 window.dispatchEvent(new Event('gptadshown', e));
             });
 
-            googletag.pubads().addEventListener('slotRenderEnded', e => {
+            googletag.pubads().addEventListener('slotRenderEnded', (e) => {
                 window.dispatchEvent(new Event('gptadshown', e));
             });
         });
@@ -52,13 +55,7 @@ class GptAd extends Component {
             return <div id="disabled_ad" style={{ display: 'none' }} />;
         }
 
-        return (
-            <div
-                className="gpt-ad"
-                style={{ width: '100%' }}
-                id={this.unique_slot_id}
-            />
-        );
+        return <div className="gpt-ad" style={{ width: '100%' }} id={this.unique_slot_id} />;
     }
 }
 
@@ -78,16 +75,7 @@ GptAd.defaultProps = {
 
 export default connect(
     (state, props) => {
-        const enabled =
-            !!state.app.getIn(['googleAds', 'gptEnabled']) &&
-            !!process.env.BROWSER;
-        const postCategory = state.global.get('postCategory');
-        const basicSlots = state.app.getIn(['googleAds', `gptBasicSlots`]);
-        const biddingSlots = state.app.getIn(['googleAds', `gptBiddingSlots`]);
-        const categorySlots = state.app.getIn([
-            'googleAds',
-            `gptCategorySlots`,
-        ]);
+        const enabled = !!state.app.getIn(['googleAds', 'gptEnabled']) && !!process.env.BROWSER;
         const bannedTags = state.app.getIn(['googleAds', 'gptBannedTags']);
         const bannedTagsJS = bannedTags ? bannedTags.toJS() : [];
 
@@ -109,5 +97,4 @@ export default connect(
             ...props,
         };
     },
-    dispatch => ({})
 )(GptAd);
diff --git a/src/app/components/elements/HelpContent.jsx b/src/app/components/elements/HelpContent.jsx
index d1c524aba5cb4d8d391f57d2f36e49f9abaa5111..007a3678848a0750741df08add89f55050973373 100644
--- a/src/app/components/elements/HelpContent.jsx
+++ b/src/app/components/elements/HelpContent.jsx
@@ -10,35 +10,26 @@ if (!process.env.BROWSER) {
     const path = require('path');
     const fs = require('fs');
     function getFolderContents(folder, recursive) {
-        return fs.readdirSync(folder).reduce(function(list, file) {
+        return fs.readdirSync(folder).reduce(function (list, file) {
             var name = path.resolve(folder, file);
             var isDir = fs.statSync(name).isDirectory();
-            return list.concat(
-                isDir && recursive ? getFolderContents(name, recursive) : [name]
-            );
+            return list.concat(isDir && recursive ? getFolderContents(name, recursive) : [name]);
         }, []);
     }
     function requireContext(folder, recursive, pattern) {
-        var normalizedFolder = path.resolve(
-            path.dirname(module.filename),
-            folder
-        );
+        var normalizedFolder = path.resolve(path.dirname(module.filename), folder);
         var folderContents = (cache[folder] = cache[folder]
             ? cache[folder]
-            : getFolderContents(normalizedFolder, recursive).filter(function(
-                  item
-              ) {
+            : getFolderContents(normalizedFolder, recursive).filter(function (item) {
                   if (item === module.filename) return false;
                   return pattern.test(item);
               }));
 
-        var keys = function() {
+        var keys = function () {
             return folderContents;
         };
         var returnContext = function returnContext(item) {
-            return (cache[item] = cache[item]
-                ? cache[item]
-                : fs.readFileSync(item, 'utf8'));
+            return (cache[item] = cache[item] ? cache[item] : fs.readFileSync(item, 'utf8'));
         };
         returnContext.keys = keys;
         return returnContext;
@@ -81,12 +72,11 @@ export default class HelpContent extends React.Component {
 
     componentWillMount() {
         const md_file_path_regexp = new RegExp(`\/${this.locale}\/(.+)\.md$`);
-        req
-            .keys()
-            .filter(a => {
+        req.keys()
+            .filter((a) => {
                 return a.indexOf(`/${this.locale}/`) !== -1;
             })
-            .forEach(filename => {
+            .forEach((filename) => {
                 var res = filename.match(md_file_path_regexp);
                 let key = res[1];
                 let help_locale = HelpData[this.locale];
@@ -112,36 +102,23 @@ export default class HelpContent extends React.Component {
         let value = HelpData[this.locale][this.props.path];
         if (!value && this.locale !== 'en') {
             console.warn(
-                `missing path '${this.props.path}' for locale '${
-                    this.locale
-                }' help files, rolling back to 'en'`
+                `missing path '${this.props.path}' for locale '${this.locale}' help files, rolling back to 'en'`
             );
             value = HelpData['en'][this.props.path];
         }
         if (!value) {
-            console.error(
-                `help file not found '${this.props.path}' for locale '${
-                    this.locale
-                }'`
-            );
+            console.error(`help file not found '${this.props.path}' for locale '${this.locale}'`);
             return null;
         }
         if (this.props.section) value = value[this.props.section];
         if (!value) {
-            console.error(
-                `help section not found ${this.props.path}#${
-                    this.props.section
-                }`
-            );
+            console.error(`help section not found ${this.props.path}#${this.props.section}`);
             return null;
         }
         value = this.setVars(value);
-        value = value.replace(
-            /<Icon name="([A-Za-z0-9\_\-]+)" \/>/gi,
-            (match, name) => {
-                return renderToString(<Icon name={name} />);
-            }
-        );
+        value = value.replace(/<Icon name="([A-Za-z0-9\_\-]+)" \/>/gi, (match, name) => {
+            return renderToString(<Icon name={name} />);
+        });
         let title = null;
         if (this.props.title) {
             title = <h1>{this.props.title}</h1>;
@@ -150,12 +127,7 @@ export default class HelpContent extends React.Component {
         return (
             <div>
                 {title}
-                <MarkdownViewer
-                    className="HelpContent"
-                    text={value}
-                    allowDangerousHTML
-                    breaks={false}
-                />
+                <MarkdownViewer className="HelpContent" text={value} allowDangerousHTML breaks={false} />
             </div>
         );
     }
diff --git a/src/app/components/elements/Icon.jsx b/src/app/components/elements/Icon.jsx
index 9813592371669b44f7f2557949297788f2841180..e335152cc9f6bc2a699bb2d3a4a295ff49c69385 100644
--- a/src/app/components/elements/Icon.jsx
+++ b/src/app/components/elements/Icon.jsx
@@ -74,16 +74,7 @@ const rem_sizes = {
 export default class Icon extends React.Component {
     static propTypes = {
         name: PropTypes.string.isRequired,
-        size: PropTypes.oneOf([
-            '0_8x',
-            '1x',
-            '1_5x',
-            '2x',
-            '3x',
-            '4x',
-            '5x',
-            '10x',
-        ]),
+        size: PropTypes.oneOf(['0_8x', '1x', '1_5x', '2x', '3x', '4x', '5x', '10x']),
         inverse: PropTypes.bool,
         className: PropTypes.string,
     };
@@ -108,12 +99,6 @@ export default class Icon extends React.Component {
             classes += ' ' + className;
         }
 
-        return (
-            <span
-                className={classes}
-                style={style}
-                dangerouslySetInnerHTML={{ __html: icons_map[name] }}
-            />
-        );
+        return <span className={classes} style={style} dangerouslySetInnerHTML={{ __html: icons_map[name] }} />;
     }
 }
diff --git a/src/app/components/elements/Icon.story.jsx b/src/app/components/elements/Icon.story.jsx
index 7d6d4ad261cd65ed3ef0947b1d50cc54d5fc1659..68c4a41fbd64d9cd10595e96a32db92f5dc12b0e 100644
--- a/src/app/components/elements/Icon.story.jsx
+++ b/src/app/components/elements/Icon.story.jsx
@@ -19,7 +19,7 @@ storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .add('Icon', () => (
         <Grid>
-            {icons.map(icon => (
+            {icons.map((icon) => (
                 <div key={'icon_' + icon}>
                     <Icon name={icon} size={select('size', options, '2x')} />
                     <p> {icon} </p>
diff --git a/src/app/components/elements/IconButton/index.jsx b/src/app/components/elements/IconButton/index.jsx
index 14f4d27fb29d04d71644c3126cac28ece6a21f3b..1d8ddab5beb82c6a3d40584e4167c0d5d1291876 100644
--- a/src/app/components/elements/IconButton/index.jsx
+++ b/src/app/components/elements/IconButton/index.jsx
@@ -5,27 +5,21 @@ const IconButton = ({ icon, size, fill }) => {
     const icons = {
         pencil: (
             <path
-                className={`icon-button icon-button__pencil icon-button--${
-                    fill
-                }`}
+                className={`icon-button icon-button__pencil icon-button--${fill}`}
                 d="M19.5555556,10.7003165 L21.9259259,13.0706869 L22.6627455,12.3338673 C22.910371,12.0862418 22.910371,11.6847616 22.6627455,11.4371361 L21.1891063,9.96349689 C20.9414809,9.71587141 20.5400006,9.71587141 20.2923752,9.96349689 L19.5555556,10.7003165 Z M18.8571429,11.2929091 L11.015873,19.1341789 L9.77777778,22.8484646 L13.0793651,22.0230678 L21.3333333,13.7690995 L20.5079365,12.9437027 L12.6666667,20.7849726 L11.4285714,21.197671 L11.8412698,19.9595757 L19.6825397,12.1183059 L18.8571429,11.2929091 Z"
                 id="icon-svg"
             />
         ),
         magnifyingGlass: (
             <path
-                className={`icon-button icon-button__magnifyingGlass icon-button--${
-                    fill
-                }`}
+                className={`icon-button icon-button__magnifyingGlass icon-button--${fill}`}
                 d="M14.3681591,18.5706017 L11.3928571,21.6 L14.3681591,18.5706017 C13.273867,17.6916019 12.5714286,16.3293241 12.5714286,14.8 C12.5714286,12.1490332 14.6820862,10 17.2857143,10 C19.8893424,10 22,12.1490332 22,14.8 C22,17.4509668 19.8893424,19.6 17.2857143,19.6 C16.1841009,19.6 15.1707389,19.215281 14.3681591,18.5706017 Z"
                 id="icon-svg"
             />
         ),
         question: (
             <path
-                className={`icon-button icon-button__magnifyingGlass icon-button--${
-                    fill
-                }`}
+                className={`icon-button icon-button__magnifyingGlass icon-button--${fill}`}
                 d="M20.27,14.93c-1.46,1.23-2.67,1.82-2.67,3.93v1.78H14.12a27.22,27.22,0,0,1,.14-3.72c.53-2.47,2.16-3.2,3.48-4.41a2.77,2.77,0,0,0,1.1-2,2.45,2.45,0,0,0-2.73-2.36,2.67,2.67,0,0,0-3,2.81H9.51c0-3.94,3-6,6.74-6s6.24,2.42,6.24,5.51A5.67,5.67,0,0,1,20.27,14.93ZM13.89,27.05V23.11H17.8v3.94Z"
             />
         ),
@@ -50,18 +44,14 @@ const IconButton = ({ icon, size, fill }) => {
 
     return (
         <svg
-            className={`icon-button__svg icon-button__svg--${
-                fill
-            } icon-button__svg--${size}`}
+            className={`icon-button__svg icon-button__svg--${fill} icon-button__svg--${size}`}
             viewBox={viewBox}
             version="1.1"
             xmlns="http://www.w3.org/2000/svg"
         >
             <g>
                 <circle
-                    className={`icon-button icon-button__border icon-button__border--${
-                        fill
-                    }`}
+                    className={`icon-button icon-button__border icon-button__border--${fill}`}
                     cx="16"
                     cy="16"
                     r="15"
diff --git a/src/app/components/elements/Link.js b/src/app/components/elements/Link.js
deleted file mode 100644
index e78505594d09c28e0ba6415a1a5159871b395bed..0000000000000000000000000000000000000000
--- a/src/app/components/elements/Link.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import PropTypes from 'prop-types';
-import React from 'react';
-import links from 'app/utils/Links';
-import { browserHistory } from 'react-router';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
-
-export default class Link extends React.Component {
-    static propTypes = {
-        // HTML properties
-        href: PropTypes.string,
-    };
-    constructor(props) {
-        super();
-        const { href } = props;
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'Link');
-        this.localLink = href && links.local.test(href);
-        this.onLocalClick = e => {
-            e.preventDefault();
-            browserHistory.push(this.props.href);
-        };
-    }
-    render() {
-        const { props: { href, children }, onLocalClick } = this;
-        if (this.localLink) return <a onClick={onLocalClick}>{children}</a>;
-        return (
-            <a target="_blank" rel="noopener noreferrer" href={href}>
-                {children}
-            </a>
-        );
-    }
-}
diff --git a/src/app/components/elements/Link.jsx b/src/app/components/elements/Link.jsx
new file mode 100644
index 0000000000000000000000000000000000000000..df29e5e8eba62f3fe00e48c541d5e58c34f84d5c
--- /dev/null
+++ b/src/app/components/elements/Link.jsx
@@ -0,0 +1,46 @@
+import PropTypes from 'prop-types';
+import React, { PureComponent } from 'react';
+import links from 'app/utils/Links';
+import { browserHistory } from 'react-router';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+
+export default class Link extends PureComponent {
+    static propTypes = {
+        // HTML properties
+        href: PropTypes.string,
+    };
+
+    constructor(props) {
+        super();
+        const { href } = props;
+        // this.shouldComponentUpdate = shouldComponentUpdate(this, 'Link');
+        this.localLink = href && links.local.test(href);
+        this.onLocalClick = (e) => {
+            e.preventDefault();
+            browserHistory.push(href);
+        };
+    }
+
+    render() {
+        const {
+            props: { href, children },
+            onLocalClick,
+        } = this;
+        // eslint-disable-next-line jsx-a11y/click-events-have-key-events
+        if (this.localLink) return <a onClick={onLocalClick} role="link" tabIndex={0}>{children}</a>;
+        return (
+            <a target="_blank" rel="noopener noreferrer" href={href}>
+                {children}
+            </a>
+        );
+    }
+}
+
+Link.propTypes = {
+    // HTML properties
+    href: PropTypes.string,
+};
+
+Link.defaultProps = {
+    href: '',
+};
diff --git a/src/app/components/elements/LoadingIndicator.jsx b/src/app/components/elements/LoadingIndicator.jsx
index d7edfd7925270f0d2753cb37f55602906f6ab445..00793b39c63455abcc53b5cad77522d04b5de658 100644
--- a/src/app/components/elements/LoadingIndicator.jsx
+++ b/src/app/components/elements/LoadingIndicator.jsx
@@ -23,10 +23,7 @@ class LoadingIndicator extends React.Component {
         switch (type) {
             case 'dots':
                 return (
-                    <div
-                        style={style}
-                        className="LoadingIndicator three-bounce"
-                    >
+                    <div style={style} className="LoadingIndicator three-bounce">
                         <div className="bounce1" />
                         <div className="bounce2" />
                         <div className="bounce3" />
@@ -34,33 +31,21 @@ class LoadingIndicator extends React.Component {
                 );
             case 'circle':
                 return (
-                    <div
-                        style={style}
-                        className={
-                            'LoadingIndicator circle' +
-                            (inline ? ' inline' : '')
-                        }
-                    >
+                    <div style={style} className={'LoadingIndicator circle' + (inline ? ' inline' : '')}>
                         <div />
                     </div>
                 );
             //'strong' may be an evolving load indicator.
             case 'circle-strong':
                 return (
-                    <div
-                        style={style}
-                        className={'LoadingIndicator circle circle-strong'}
-                    >
+                    <div style={style} className={'LoadingIndicator circle circle-strong'}>
                         <div />
                     </div>
                 );
             default:
                 return (
                     <div
-                        className={
-                            'LoadingIndicator loading-overlay' +
-                            (this.progress > 0 ? ' with-progress' : '')
-                        }
+                        className={'LoadingIndicator loading-overlay' + (this.progress > 0 ? ' with-progress' : '')}
                         style={style}
                     >
                         <div className="loading-panel">
diff --git a/src/app/components/elements/LoadingIndicator.story.jsx b/src/app/components/elements/LoadingIndicator.story.jsx
index ccd50e4eb2a5d86c91d9b16621609f586e01f505..2b1e47c4fc9ca75e63c8f13d47de773d0b083eb7 100644
--- a/src/app/components/elements/LoadingIndicator.story.jsx
+++ b/src/app/components/elements/LoadingIndicator.story.jsx
@@ -3,6 +3,4 @@ import { storiesOf } from '@storybook/react';
 import LoadingIndicator from './LoadingIndicator';
 import styles from './LoadingIndicator.scss';
 
-storiesOf('Elements', module).add('LoadingIndicator', () => (
-    <LoadingIndicator />
-));
+storiesOf('Elements', module).add('LoadingIndicator', () => <LoadingIndicator />);
diff --git a/src/app/components/elements/Memo/Memo.test.jsx b/src/app/components/elements/Memo/Memo.test.jsx
index 552055035867e0c7163dcb9f1adc66a56a73d438..25c13b008bbf9ef586f98ed57ec285cfae620c3a 100644
--- a/src/app/components/elements/Memo/Memo.test.jsx
+++ b/src/app/components/elements/Memo/Memo.test.jsx
@@ -1,6 +1,6 @@
 import React from 'react';
 import { configure, shallow } from 'enzyme';
-import Adapter from 'enzyme-adapter-react-15';
+import Adapter from 'enzyme-adapter-react-16';
 
 import { Memo } from './index';
 
@@ -13,9 +13,7 @@ describe('Memo', () => {
     });
 
     it('should render a plain ol memo', () => {
-        const wrapper = shallow(
-            <Memo fromNegativeRepUser={false} text={'hi dude'} />
-        );
+        const wrapper = shallow(<Memo fromNegativeRepUser={false} text="hi dude" />);
         expect(wrapper.html()).toEqual('<span class="Memo">hi dude</span>');
     });
 });
diff --git a/src/app/components/elements/Memo/index.jsx b/src/app/components/elements/Memo/index.jsx
index daf1166b7a9922a257477844736cb0379ed52f97..34100338c5912ef848b7c8a7226cb5168ecd9265 100644
--- a/src/app/components/elements/Memo/index.jsx
+++ b/src/app/components/elements/Memo/index.jsx
@@ -1,7 +1,7 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import tt from 'counterpart';
 import classnames from 'classnames';
 import { memo } from '@hiveio/hive-js';
@@ -10,9 +10,10 @@ import { repLog10 } from 'app/utils/ParsersAndFormatters';
 
 const MINIMUM_REPUTATION = 15;
 
-export class Memo extends React.Component {
+export class Memo extends PureComponent {
     static propTypes = {
         text: PropTypes.string,
+        // eslint-disable-next-line react/no-unused-prop-types
         username: PropTypes.string,
         fromAccount: PropTypes.string,
         // redux props
@@ -23,7 +24,7 @@ export class Memo extends React.Component {
 
     constructor() {
         super();
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'Memo');
+        // this.shouldComponentUpdate = shouldComponentUpdate(this, 'Memo');
         this.state = {
             revealMemo: false,
         };
@@ -38,7 +39,7 @@ export class Memo extends React.Component {
         }
     }
 
-    onRevealMemo = e => {
+    onRevealMemo = (e) => {
         e.preventDefault();
         this.setState({ revealMemo: true });
     };
@@ -46,12 +47,8 @@ export class Memo extends React.Component {
     render() {
         const { decodeMemo } = this;
         const {
-            memo_private,
-            text,
-            myAccount,
-            fromAccount,
-            fromNegativeRepUser,
-        } = this.props;
+ memo_private, text, myAccount, fromAccount, fromNegativeRepUser
+} = this.props;
         const isEncoded = /^#/.test(text);
 
         const isFromBadActor = BadActorList.indexOf(fromAccount) > -1;
@@ -70,9 +67,7 @@ export class Memo extends React.Component {
         if (!isEncoded) {
             renderText = text;
         } else if (memo_private) {
-            renderText = myAccount
-                ? decodeMemo(memo_private, text)
-                : tt('g.login_to_see_memo');
+            renderText = myAccount ? decodeMemo(memo_private, text) : tt('g.login_to_see_memo');
         }
 
         return <span className={classes}>{renderText}</span>;
@@ -81,15 +76,10 @@ export class Memo extends React.Component {
 
 export default connect((state, ownProps) => {
     const currentUser = state.user.get('current');
-    const myAccount =
-        currentUser && ownProps.username === currentUser.get('username');
-    const memo_private =
-        myAccount && currentUser
-            ? currentUser.getIn(['private_keys', 'memo_private'])
-            : null;
-    const fromNegativeRepUser =
-        repLog10(
-            state.global.getIn(['accounts', ownProps.fromAccount, 'reputation'])
-        ) < MINIMUM_REPUTATION;
-    return { ...ownProps, memo_private, myAccount, fromNegativeRepUser };
+    const myAccount = currentUser && ownProps.username === currentUser.get('username');
+    const memo_private = myAccount && currentUser ? currentUser.getIn(['private_keys', 'memo_private']) : null;
+    const fromNegativeRepUser = repLog10(state.global.getIn(['accounts', ownProps.fromAccount, 'reputation'])) < MINIMUM_REPUTATION;
+    return {
+ ...ownProps, memo_private, myAccount, fromNegativeRepUser
+};
 })(Memo);
diff --git a/src/app/components/elements/MuteButton.jsx b/src/app/components/elements/MuteButton.jsx
index dc3debc3f15fb069bc251bc9e57b8d48636d20cc..72f7c31a298a48205b7e31b966a099c1ef07476d 100644
--- a/src/app/components/elements/MuteButton.jsx
+++ b/src/app/components/elements/MuteButton.jsx
@@ -31,29 +31,20 @@ class MuteButton extends React.Component {
         const key = ['content', postref, 'stats', 'gray'];
         this.props.stateSet(key, !isMuted);
 
-        this.props.toggleMutedPost(
-            username,
-            !isMuted,
-            community,
-            account,
-            notes,
-            permlink
-        );
+        this.props.toggleMutedPost(username, !isMuted, community, account, notes, permlink);
     };
 
     render() {
         const { isMuted } = this.props;
         return (
             <span>
-                <a onClick={() => this.showDialog()}>
-                    {isMuted ? 'Unmute' : 'Mute'}
-                </a>
+                <a onClick={() => this.showDialog()}>{isMuted ? 'Unmute' : 'Mute'}</a>
                 {this.state.showDialog && (
                     <Reveal onHide={() => null} show>
                         <CloseButton onClick={() => this.hideDialog()} />
                         <MutePost
                             isMuted={isMuted}
-                            onSubmit={notes => {
+                            onSubmit={(notes) => {
                                 this.hideDialog();
                                 this.onSubmit(isMuted, notes);
                             }}
@@ -87,20 +78,11 @@ export default connect(
             username: state.user.getIn(['current', 'username']),
         };
     },
-    dispatch => ({
+    (dispatch) => ({
         stateSet: (key, value) => {
             dispatch(globalActions.set({ key, value }));
         },
-        toggleMutedPost: (
-            username,
-            mutePost,
-            community,
-            account,
-            notes,
-            permlink,
-            successCallback,
-            errorCallback
-        ) => {
+        toggleMutedPost: (username, mutePost, community, account, notes, permlink, successCallback, errorCallback) => {
             const action = mutePost ? 'mutePost' : 'unmutePost';
             const payload = [
                 action,
diff --git a/src/app/components/elements/MuteList.jsx b/src/app/components/elements/MuteList.jsx
index 2ce906cc76b9253d0a61493e8269305209d75f72..9ec4a9c049237885c84d0e27d70d97d5c8f51973 100644
--- a/src/app/components/elements/MuteList.jsx
+++ b/src/app/components/elements/MuteList.jsx
@@ -28,7 +28,7 @@ class MuteList extends React.Component {
         const { busy } = this.state;
         const { unmute } = this;
 
-        const items = users.map(user => (
+        const items = users.map((user) => (
             <li key={user}>
                 <Link to={'/@' + user}>
                     <strong>@{user}</strong>
@@ -37,7 +37,7 @@ class MuteList extends React.Component {
                 {busy == user ? (
                     <span>saving....</span>
                 ) : (
-                    <a href="#" onClick={e => unmute(e, user)}>
+                    <a href="#" onClick={(e) => unmute(e, user)}>
                         [unmute]
                     </a>
                 )}
@@ -50,7 +50,7 @@ class MuteList extends React.Component {
 
 module.exports = connect(
     (state, props) => ({}),
-    dispatch => ({
+    (dispatch) => ({
         updateFollow: (follower, following, type, done) => {
             const what = type ? [type] : [];
             const json = ['follow', { follower, following, what }];
diff --git a/src/app/components/elements/NativeSelect/NativeSelect.story.jsx b/src/app/components/elements/NativeSelect/NativeSelect.story.jsx
index 61f5072b204999f7629f87920999bf0a6d25ff80..989d058c7386be2605ba18bfd7d8c0591b6a0106 100644
--- a/src/app/components/elements/NativeSelect/NativeSelect.story.jsx
+++ b/src/app/components/elements/NativeSelect/NativeSelect.story.jsx
@@ -3,7 +3,7 @@ import { storiesOf } from '@storybook/react';
 import NativeSelect from './index';
 import { Center } from 'decorators';
 
-const opts = topic => [
+const opts = (topic) => [
     {
         value: 'trending',
         label: 'TRENDY',
@@ -31,7 +31,7 @@ storiesOf('Elements', module)
     .add('NativeSelect', () => (
         <NativeSelect
             className={'Rat'}
-            onChange={e => {
+            onChange={(e) => {
                 console.log('arg:', e.value);
             }}
             options={opts('cool')}
diff --git a/src/app/components/elements/NativeSelect/index.jsx b/src/app/components/elements/NativeSelect/index.jsx
index 548bc0d64d570a57616b9e8be44792bb34437e50..850c351bdd585366f76e6807ad328e14b967a607 100644
--- a/src/app/components/elements/NativeSelect/index.jsx
+++ b/src/app/components/elements/NativeSelect/index.jsx
@@ -2,7 +2,7 @@ import React from 'react';
 import PropTypes from 'prop-types';
 
 const NativeSelect = ({ options, className, currentlySelected, onChange }) => {
-    const handleChange = event => {
+    const handleChange = (event) => {
         onChange(event.target);
     };
 
@@ -19,11 +19,7 @@ const NativeSelect = ({ options, className, currentlySelected, onChange }) => {
     });
 
     return (
-        <select
-            onChange={handleChange}
-            className={`nativeSelect ${className}`}
-            value={currentlySelected}
-        >
+        <select onChange={handleChange} className={`nativeSelect ${className}`} value={currentlySelected}>
             {opts}
         </select>
     );
diff --git a/src/app/components/elements/Notices.jsx b/src/app/components/elements/Notices.jsx
index a1a09b94afeaec27b234257fce44743b4b7b0043..85bc31e6059de4a3b94fdd7b9d2fbe2ccf14e47a 100644
--- a/src/app/components/elements/Notices.jsx
+++ b/src/app/components/elements/Notices.jsx
@@ -10,9 +10,7 @@ const Notice = ({ notice }) => {
     }
 
     const url = `/${notice.category}/@${notice.author}/${notice.permlink}`;
-    const tag = notice.tag ? (
-        <p className="Notices__featured">{notice.tag}</p>
-    ) : null;
+    const tag = notice.tag ? <p className="Notices__featured">{notice.tag}</p> : null;
     const title = url ? (
         <Link className="Notices__title-link" to={url}>
             {notice.title}
@@ -20,9 +18,7 @@ const Notice = ({ notice }) => {
     ) : (
         notice.title
     );
-    const by = notice.author ? (
-        <span className="Notices__by"> {tt('g.by')}&nbsp;</span>
-    ) : null;
+    const by = notice.author ? <span className="Notices__by"> {tt('g.by')}&nbsp;</span> : null;
     const author = notice.author ? (
         <Link className="Notices__author-link" to={'/@' + notice.author}>
             {notice.author}
@@ -69,9 +65,6 @@ const SteemitNotices = ({ notices }) => {
     );
 };
 
-module.exports = connect(state => ({
-    notices: state.offchain
-        .get('special_posts')
-        .get('notices')
-        .toJS(),
+module.exports = connect((state) => ({
+    notices: state.offchain.get('special_posts').get('notices').toJS(),
 }))(SteemitNotices);
diff --git a/src/app/components/elements/PdfDownload.jsx b/src/app/components/elements/PdfDownload.jsx
index e89020e53db9651357e9c61312d287f88bbad2b3..54ed1e249226de270f33d393f9e1ae862ef2a17b 100644
--- a/src/app/components/elements/PdfDownload.jsx
+++ b/src/app/components/elements/PdfDownload.jsx
@@ -50,7 +50,7 @@ export default class PdfDownload extends Component {
         await new Promise((res, rej) => {
             const s = document.createElement('script');
             s.type = 'text/javascript';
-            s.src = 'https://staticfiles.steemit.com/jspdf.min.js';
+            s.src = 'https://hive.blog/static/jspdf.min.js';
             document.body.appendChild(s);
             s.addEventListener('load', res);
         });
@@ -58,7 +58,7 @@ export default class PdfDownload extends Component {
         await new Promise((res, rej) => {
             const s = document.createElement('script');
             s.type = 'text/javascript';
-            s.src = 'https://staticfiles.steemit.com/Roboto-Regular-normal.js';
+            s.src = 'https://hive.blog/static/Roboto-Regular-normal.js';
             document.body.appendChild(s);
             s.addEventListener('load', res);
         });
@@ -66,7 +66,7 @@ export default class PdfDownload extends Component {
         await new Promise((res, rej) => {
             const s = document.createElement('script');
             s.type = 'text/javascript';
-            s.src = 'https://staticfiles.steemit.com/Roboto-Bold-normal.js';
+            s.src = 'https://hive.blog/static/Roboto-Bold-normal.js';
             document.body.appendChild(s);
             s.addEventListener('load', res);
         });
@@ -74,8 +74,7 @@ export default class PdfDownload extends Component {
         await new Promise((res, rej) => {
             const s = document.createElement('script');
             s.type = 'text/javascript';
-            s.src =
-                'https://staticfiles.steemit.com/RobotoMono-Regular-normal.js';
+            s.src = 'https://hive.blog/static/RobotoMono-Regular-normal.js';
             document.body.appendChild(s);
             s.addEventListener('load', res);
         });
@@ -85,15 +84,11 @@ export default class PdfDownload extends Component {
     render() {
         return (
             <div className="pdf-download">
-                <img
-                    src="/images/pdf-logo.svg"
-                    style={{ display: 'none' }}
-                    className="pdf-logo"
-                />
+                <img src="/images/pdf-logo.svg" style={{ display: 'none' }} className="pdf-logo" />
                 {this.state.loaded && (
                     <button
                         style={{ display: 'block' }}
-                        onClick={e => {
+                        onClick={(e) => {
                             this.downloadPdf();
                             e.preventDefault();
                         }}
@@ -105,11 +100,7 @@ export default class PdfDownload extends Component {
         );
     }
 
-    renderText(
-        ctx,
-        text,
-        { scale, x, y, lineHeight, maxWidth, color, fontSize, font }
-    ) {
+    renderText(ctx, text, { scale, x, y, lineHeight, maxWidth, color, fontSize, font }) {
         var textLines = ctx
             .setFont(font)
             .setFontSize(fontSize * scale)
@@ -154,7 +145,7 @@ export default class PdfDownload extends Component {
             maxLineWidth = widthInches - margin * 2.0,
             fontSize = 24,
             scale = 72, //ptsPerInch
-            oneLineHeight = fontSize * lineHeight / scale,
+            oneLineHeight = (fontSize * lineHeight) / scale,
             qrSize = 1.1;
 
         const ctx = new jsPDF({
@@ -175,15 +166,7 @@ export default class PdfDownload extends Component {
             color: '#1f0fd1',
         });
 
-        this.drawImageFromCanvas(
-            ctx,
-            '.pdf-logo',
-            widthInches - margin - 1.9,
-            0.36,
-            0.98 * 1.8,
-            0.3 * 1.8,
-            '#1F0FD1'
-        );
+        this.drawImageFromCanvas(ctx, '.pdf-logo', widthInches - margin - 1.9, 0.36, 0.98 * 1.8, 0.3 * 1.8, '#1F0FD1');
 
         offset += 0.265;
         offset += this.renderText(ctx, `Hive keys for @${this.props.name}`, {
@@ -218,9 +201,7 @@ export default class PdfDownload extends Component {
         offset += 0.15;
         offset += this.renderText(
             ctx,
-            'Generated at ' +
-                new Date().toISOString().replace(/\.\d{3}/, '') +
-                ' by hive.blog',
+            'Generated at ' + new Date().toISOString().replace(/\.\d{3}/, '') + ' by hive.blog',
             {
                 scale,
                 x: margin,
@@ -304,10 +285,7 @@ export default class PdfDownload extends Component {
         offset += 0.15;
         this.drawQr(
             ctx,
-            'hive://import/wif/' +
-                keys.postingPrivate +
-                '/account/' +
-                this.props.name,
+            'hive://import/wif/' + keys.postingPrivate + '/account/' + this.props.name,
             margin,
             offset,
             qrSize,
@@ -365,10 +343,7 @@ export default class PdfDownload extends Component {
         offset += 0.15;
         this.drawQr(
             ctx,
-            'hive://import/wif/' +
-                keys.memoPrivate +
-                '/account/' +
-                this.props.name,
+            'hive://import/wif/' + keys.memoPrivate + '/account/' + this.props.name,
             margin,
             offset,
             qrSize,
@@ -388,20 +363,16 @@ export default class PdfDownload extends Component {
             font: 'Roboto-Bold',
         });
 
-        offset += this.renderText(
-            ctx,
-            'Used to decrypt private transfer memos.',
-            {
-                scale,
-                x: margin + qrSize + 0.1,
-                y: offset,
-                lineHeight: lineHeight,
-                maxWidth: maxLineWidth - (qrSize + 0.1),
-                color: 'black',
-                fontSize: 0.14,
-                font: 'Roboto-Regular',
-            }
-        );
+        offset += this.renderText(ctx, 'Used to decrypt private transfer memos.', {
+            scale,
+            x: margin + qrSize + 0.1,
+            y: offset,
+            lineHeight: lineHeight,
+            maxWidth: maxLineWidth - (qrSize + 0.1),
+            color: 'black',
+            fontSize: 0.14,
+            font: 'Roboto-Regular',
+        });
 
         offset += 0.075;
         offset += this.renderText(ctx, keys.memoPrivate, {
@@ -429,10 +400,7 @@ export default class PdfDownload extends Component {
         offset += 0.15;
         this.drawQr(
             ctx,
-            'hive://import/wif/' +
-                keys.activePrivate +
-                '/account/' +
-                this.props.name,
+            'hive://import/wif/' + keys.activePrivate + '/account/' + this.props.name,
             margin,
             offset,
             qrSize,
@@ -492,10 +460,7 @@ export default class PdfDownload extends Component {
         offset += 0.15;
         this.drawQr(
             ctx,
-            'hive://import/wif/' +
-                keys.ownerPrivate +
-                '/account/' +
-                this.props.name,
+            'hive://import/wif/' + keys.ownerPrivate + '/account/' + this.props.name,
             margin,
             offset,
             qrSize,
@@ -569,8 +534,7 @@ export default class PdfDownload extends Component {
 
         offset += this.renderText(
             ctx,
-            'The seed password used to generate this document. ' +
-                'Do not share this key.',
+            'The seed password used to generate this document. ' + 'Do not share this key.',
             {
                 scale,
                 x: margin,
diff --git a/src/app/components/elements/PostCategoryBanner.jsx b/src/app/components/elements/PostCategoryBanner.jsx
index f584625eb86793431feed7247f2d8caad8cd2646..cefba23af7213ea6febba3cc8b79cd683763c8c2 100644
--- a/src/app/components/elements/PostCategoryBanner.jsx
+++ b/src/app/components/elements/PostCategoryBanner.jsx
@@ -24,7 +24,7 @@ class PostCategoryBanner extends React.Component {
     render() {
         const { subscriptions, onChange } = this.props;
         const { postDestination } = this.state;
-        const onCommunitySelected = e => {
+        const onCommunitySelected = (e) => {
             const destination = e.target.value;
             this.setState({ postDestination: destination });
             onChange(destination);
@@ -34,7 +34,8 @@ class PostCategoryBanner extends React.Component {
             <div className="PostCategoryBanner">
                 <div className="postTo">
                     <small>
-                        Posting to:{' '}
+                        Posting to:
+                        {' '}
                         <select
                             className="PostCategoryBanner--community-selector"
                             value={postDestination || ''}
@@ -42,8 +43,8 @@ class PostCategoryBanner extends React.Component {
                         >
                             <option value="blog">My blog</option>
                             <optgroup label="Subscribed Community">
-                                {subscriptions &&
-                                    subscriptions.map(entry => {
+                                {subscriptions
+                                    && subscriptions.map((entry) => {
                                         const [hive, name] = entry;
                                         return (
                                             <option value={hive} key={hive}>
@@ -83,8 +84,8 @@ export default connect(
             subscriptions: subscriptions ? subscriptions.toJS() : [],
         };
     },
-    dispatch => ({
-        getAccountSubscriptions: username => {
+    (dispatch) => ({
+        getAccountSubscriptions: (username) => {
             return dispatch(fetchDataSagaActions.getSubscriptions(username));
         },
     })
diff --git a/src/app/components/elements/QrReader.jsx b/src/app/components/elements/QrReader.jsx
index 3a874d2dc6b6bcd1d257d5974811669eaa448307..7a19d11afa5b5147ca897c780ffe553db5de138e 100644
--- a/src/app/components/elements/QrReader.jsx
+++ b/src/app/components/elements/QrReader.jsx
@@ -8,11 +8,11 @@ export default class Qr extends React.Component {
     };
     constructor(props) {
         super();
-        this.handleError = error => {
+        this.handleError = (error) => {
             console.error(error);
         };
         const { onClose, handleScan } = props;
-        this.handleScan = data => {
+        this.handleScan = (data) => {
             handleScan(data);
             if (onClose) onClose();
         };
diff --git a/src/app/components/elements/Reblog.jsx b/src/app/components/elements/Reblog.jsx
index 9e18c0ac7e8875adf89f718765953c8328be5ebc..7ff43ac4575dcfcee2125ef0e312c15814a302e0 100644
--- a/src/app/components/elements/Reblog.jsx
+++ b/src/app/components/elements/Reblog.jsx
@@ -1,24 +1,25 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 // import LoadingIndicator from 'app/components/elements/LoadingIndicator';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import * as transactionActions from 'app/redux/TransactionReducer';
 import Icon from 'app/components/elements/Icon';
 import tt from 'counterpart';
 
 const { string, func } = PropTypes;
 
-export default class Reblog extends React.Component {
+export default class Reblog extends PureComponent {
     static propTypes = {
         account: string,
         author: string,
         permlink: string,
         reblog: func,
     };
+
     constructor(props) {
         super(props);
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'Reblog');
+        // this.shouldComponentUpdate = shouldComponentUpdate(this, 'Reblog');
         this.state = { active: false, loading: false };
     }
 
@@ -35,11 +36,13 @@ export default class Reblog extends React.Component {
         }
     }
 
-    reblog = e => {
+    reblog = (e) => {
         e.preventDefault();
         if (this.state.active) return;
         this.setState({ loading: true });
-        const { reblog, account, author, permlink } = this.props;
+        const {
+ reblog, account, author, permlink
+} = this.props;
         reblog(
             account,
             author,
@@ -62,7 +65,7 @@ export default class Reblog extends React.Component {
     setReblogged(account) {
         const { author, permlink } = this.props;
         clearRebloggedCache();
-        let posts = getRebloggedList(account);
+        const posts = getRebloggedList(account);
         posts.push(author + '/' + permlink);
         if (posts.length > 200) posts.shift(1);
 
@@ -75,14 +78,8 @@ export default class Reblog extends React.Component {
         const { author, permlink } = this.props;
 
         return (
-            <span
-                className={'Reblog__button Reblog__button-' + state + loading}
-            >
-                <a
-                    href="#"
-                    onClick={this.reblog}
-                    title={`${tt('g.reblog')} @${author}/${permlink}`}
-                >
+            <span className={'Reblog__button Reblog__button-' + state + loading}>
+                <a href="#" onClick={this.reblog} title={`${tt('g.reblog')} @${author}/${permlink}`}>
                     <Icon name="reblog" />
                 </a>
             </span>
@@ -91,19 +88,16 @@ export default class Reblog extends React.Component {
 }
 module.exports = connect(
     (state, ownProps) => {
-        const account =
-            state.user.getIn(['current', 'username']) ||
-            state.offchain.get('account');
+        const account = state.user.getIn(['current', 'username']) || state.offchain.get('account');
         return { ...ownProps, account };
     },
-    dispatch => ({
+    (dispatch) => ({
         reblog: (account, author, permlink, successCallback, errorCallback) => {
             const json = ['reblog', { account, author, permlink }];
             dispatch(
                 transactionActions.broadcastOperation({
                     type: 'custom_json',
-                    confirm:
-                        'This post will be added to your blog and shared with your followers.',
+                    confirm: 'This post will be added to your blog and shared with your followers.',
                     operation: {
                         id: 'follow',
                         required_posting_auths: [account],
diff --git a/src/app/components/elements/Reblog.story.jsx b/src/app/components/elements/Reblog.story.jsx
index ce94af7aeb2a6804c9e51ba3fa80646eaef22933..c256e71720de6e29678c07f0f819aec177c3b835 100644
--- a/src/app/components/elements/Reblog.story.jsx
+++ b/src/app/components/elements/Reblog.story.jsx
@@ -12,11 +12,5 @@ const store = createStore(rootReducer);
 storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .addDecorator(Center)
-    .addDecorator(getStory => <Provider store={store}>{getStory()}</Provider>)
-    .add('Reblog', () => (
-        <Reblog
-            permlink={'foo/bar'}
-            author={'maitland'}
-            reblog={() => alert('STEEM WAZ HERE')}
-        />
-    ));
+    .addDecorator((getStory) => <Provider store={store}>{getStory()}</Provider>)
+    .add('Reblog', () => <Reblog permlink={'foo/bar'} author={'maitland'} reblog={() => alert('STEEM WAZ HERE')} />);
diff --git a/src/app/components/elements/ReplyEditor.jsx b/src/app/components/elements/ReplyEditor.jsx
index db0f32d4096445ace5d122ade4a0b56fb5f66aab..5206895182520d0c8a4b016d8545e0df85c3eea4 100644
--- a/src/app/components/elements/ReplyEditor.jsx
+++ b/src/app/components/elements/ReplyEditor.jsx
@@ -1,50 +1,39 @@
+/*global $STM_Config*/
 import React from 'react';
 import PropTypes from 'prop-types';
 import reactForm from 'app/utils/ReactForm';
-import { Map } from 'immutable';
 import _ from 'lodash';
-import classNames from 'classnames';
 import { connect } from 'react-redux';
 import classnames from 'classnames';
 import * as transactionActions from 'app/redux/TransactionReducer';
 import * as userActions from 'app/redux/UserReducer';
 import MarkdownViewer from 'app/components/cards/MarkdownViewer';
-import TagInput from 'app/components/cards/TagInput';
-import { validateTagInput } from 'app/components/cards/TagInput';
-import SlateEditor, { serializeHtml, deserializeHtml, getDemoState } from 'app/components/elements/SlateEditor';
+import TagInput, { validateTagInput } from 'app/components/cards/TagInput';
 import { extractRtags } from 'app/utils/ExtractContent';
 import LoadingIndicator from 'app/components/elements/LoadingIndicator';
 import PostCategoryBanner from 'app/components/elements/PostCategoryBanner';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import Tooltip from 'app/components/elements/Tooltip';
 import sanitizeConfig, { allowedTags } from 'app/utils/SanitizeConfig';
 import sanitize from 'sanitize-html';
 import HtmlReady from 'shared/HtmlReady';
-import * as globalActions from 'app/redux/GlobalReducer';
-import { fromJS, Set, OrderedSet } from 'immutable';
+import { fromJS, Map, OrderedSet } from 'immutable';
 import Remarkable from 'remarkable';
 import Dropzone from 'react-dropzone';
 import tt from 'counterpart';
 import { loadUserTemplates, saveUserTemplates } from 'app/utils/UserTemplates';
 import BadActorList from 'app/utils/BadActorList';
+import VisualEditor from './VisualEditor';
 
 const remarkable = new Remarkable({ html: true, linkify: false, breaks: true });
 
 const RTE_DEFAULT = false;
 const MAX_TAGS = 8;
 const MAX_FILE_TO_UPLOAD = 10;
-let imagesToUpload = [];
+const imagesToUpload = [];
 
 function allTags(userInput, originalCategory, hashtags) {
     // take space-delimited user input
-    let tags = OrderedSet(
-        userInput
-            ? userInput
-                  .trim()
-                  .replace(/#/g, '')
-                  .split(/ +/)
-            : []
-    );
+    let tags = OrderedSet(userInput ? userInput.trim().replace(/#/g, '').split(/ +/) : []);
 
     // remove original cat, if present
     if (originalCategory && /^[-a-z\d]+$/.test(originalCategory)) tags = tags.delete(originalCategory);
@@ -80,6 +69,7 @@ class ReplyEditor extends React.Component {
         payoutType: PropTypes.string,
         postTemplateName: PropTypes.string,
         maxAcceptedPayout: PropTypes.number,
+        isStory: PropTypes.bool,
     };
 
     static defaultProps = {
@@ -119,7 +109,9 @@ class ReplyEditor extends React.Component {
             let draft = localStorage.getItem('replyEditorData-' + formId);
             if (draft) {
                 draft = JSON.parse(draft);
-                const { tags, title, summary, altAuthor } = this.state;
+                const {
+                    tags, title, summary, altAuthor,
+                } = this.state;
 
                 if (tags) {
                     this.checkTagsCommunity(draft.tags);
@@ -157,33 +149,33 @@ class ReplyEditor extends React.Component {
         }
 
         // Verify and Set defaultBeneficiaries if enabled
-        let qualifiedBeneficiaries = [];
+        const qualifiedBeneficiaries = [];
 
         if (
-            this.props.defaultBeneficiaries &&
-            this.props.defaultBeneficiaries.toArray().length > 0 &&
-            this.props.referralSystem != 'disabled'
+            this.props.defaultBeneficiaries
+            && this.props.defaultBeneficiaries.toArray().length > 0
+            && this.props.referralSystem != 'disabled'
         ) {
-            this.props.defaultBeneficiaries.toArray().forEach(element => {
+            this.props.defaultBeneficiaries.toArray().forEach((element) => {
                 const label = element.get('label');
                 const name = element.get('name');
                 const weight = parseInt(element.get('weight'));
 
                 if (label && name && weight) {
                     if (
-                        (label === 'referrer' &&
-                            weight <= $STM_Config.referral.max_fee_referrer &&
-                            !BadActorList.includes(name)) ||
-                        (label === 'creator' &&
-                            weight <= $STM_Config.referral.max_fee_creator &&
-                            !BadActorList.includes(name)) ||
-                        (label === 'provider' &&
-                            weight <= $STM_Config.referral.max_fee_provider &&
-                            !BadActorList.includes(name))
+                        (label === 'referrer'
+                            && weight <= $STM_Config.referral.max_fee_referrer
+                            && !BadActorList.includes(name))
+                        || (label === 'creator'
+                            && weight <= $STM_Config.referral.max_fee_creator
+                            && !BadActorList.includes(name))
+                        || (label === 'provider'
+                            && weight <= $STM_Config.referral.max_fee_provider
+                            && !BadActorList.includes(name))
                     ) {
-                        if (qualifiedBeneficiaries.find(beneficiary => beneficiary.username === name)) {
+                        if (qualifiedBeneficiaries.find((beneficiary) => beneficiary.username === name)) {
                             qualifiedBeneficiaries.find(
-                                beneficiary => beneficiary.username === name
+                                (beneficiary) => beneficiary.username === name
                             ).percent += parseInt((weight / 100).toFixed(0));
                         } else {
                             qualifiedBeneficiaries.push({
@@ -209,7 +201,7 @@ class ReplyEditor extends React.Component {
         }, 300);
     }
 
-    shouldComponentUpdate = shouldComponentUpdate(this, 'ReplyEditor');
+    // shouldComponentUpdate = shouldComponentUpdate(this, 'ReplyEditor');
 
     componentWillUpdate(nextProps, nextState) {
         if (process.env.BROWSER) {
@@ -223,7 +215,9 @@ class ReplyEditor extends React.Component {
 
                 if (nextProps.postTemplateName.indexOf('create_') === 0) {
                     const { username } = tp;
-                    const { body, title, summary, altAuthor, tags } = ns;
+                    const {
+                        body, title, summary, altAuthor, tags
+                    } = ns;
                     const { payoutType, beneficiaries } = np;
                     const userTemplates = loadUserTemplates(username);
                     const newTemplateName = nextProps.postTemplateName.replace('create_', '');
@@ -276,18 +270,22 @@ class ReplyEditor extends React.Component {
 
             // Save current draft to localStorage
             if (
-                ts.body.value !== ns.body.value ||
-                (ns.tags && ts.tags.value !== ns.tags.value) ||
-                (ns.title && ts.title.value !== ns.title.value) ||
-                (ns.summary && ts.summary.value !== ns.summary.value) ||
-                (ns.altAuthor && ts.altAuthor.value !== ns.altAuthor.value) ||
-                np.payoutType !== tp.payoutType ||
-                np.beneficiaries !== tp.beneficiaries ||
-                np.maxAcceptedPayout !== tp.maxAcceptedPayout
+                ts.body.value !== ns.body.value
+                || (ns.tags && ts.tags.value !== ns.tags.value)
+                || (ns.title && ts.title.value !== ns.title.value)
+                || (ns.summary && ts.summary.value !== ns.summary.value)
+                || (ns.altAuthor && ts.altAuthor.value !== ns.altAuthor.value)
+                || np.payoutType !== tp.payoutType
+                || np.beneficiaries !== tp.beneficiaries
+                || np.maxAcceptedPayout !== tp.maxAcceptedPayout
             ) {
                 // also prevents saving after parent deletes this information
-                const { formId, payoutType, beneficiaries, maxAcceptedPayout } = np;
-                const { tags, title, summary, altAuthor, body } = ns;
+                const {
+                    formId, payoutType, beneficiaries, maxAcceptedPayout
+                } = np;
+                const {
+                    tags, title, summary, altAuthor, body
+                } = ns;
                 const data = {
                     formId,
                     title: title ? title.value : undefined,
@@ -325,7 +323,7 @@ class ReplyEditor extends React.Component {
         this.setState({ community });
     }
 
-    onPostDestinationChange = category => {
+    onPostDestinationChange = (category) => {
         const { tags } = this.state;
         const currentTags = tags.value.split(' ');
 
@@ -349,9 +347,9 @@ class ReplyEditor extends React.Component {
             instance: this,
             name: 'replyForm',
             initialValues: props.initialValues,
-            validation: values => {
-                const markdownRegex = /(?:\*[\w\s]*\*|\#[\w\s]*\#|_[\w\s]*_|~[\w\s]*~|\]\s*\(|\]\s*\[)/;
-                const htmlTagRegex = /<\/?[\w\s="/.':;#-\/\?]+>/gi;
+            validation: (values) => {
+                const markdownRegex = /(?:\*[\w\s]*\*|#[\w\s]*#|_[\w\s]*_|~[\w\s]*~|]\s*\(|]\s*\[)/;
+                const htmlTagRegex = /<\/?[\w\s="/.':;#-/?]+>/gi;
                 const altAuthorAllowedCharactersRegex = /^[\w.\d-]+$/;
                 let bodyValidation = null;
 
@@ -364,8 +362,8 @@ class ReplyEditor extends React.Component {
 
                 return {
                     title:
-                        isStory &&
-                        (!values.title || values.title.trim() === ''
+                        isStory
+                        && (!values.title || values.title.trim() === ''
                             ? tt('g.required')
                             : values.title.length > 255
                               ? tt('reply_editor.shorten_title')
@@ -375,15 +373,15 @@ class ReplyEditor extends React.Component {
                     tags: isStory && validateTagInput(values.tags, !isEdit),
                     body: bodyValidation,
                     summary:
-                        isStory &&
-                        (values.summary.length > 140
+                        isStory
+                        && (values.summary.length > 140
                             ? tt('reply_editor.shorten_summary')
                             : markdownRegex.test(values.summary)
                               ? tt('reply_editor.markdown_not_supported')
                               : htmlTagRegex.test(values.summary) ? tt('reply_editor.html_not_supported') : null),
                     altAuthor:
-                        isStory &&
-                        (values.altAuthor.length > 50
+                        isStory
+                        && (values.altAuthor.length > 50
                             ? tt('reply_editor.shorten_alt_author')
                             : values.altAuthor && !altAuthorAllowedCharactersRegex.test(values.altAuthor)
                               ? tt('reply_editor.invalid_username')
@@ -393,10 +391,11 @@ class ReplyEditor extends React.Component {
         });
     }
 
-    onCancel = e => {
+    onCancel = (e) => {
         if (e) e.preventDefault();
         const { formId, onCancel, defaultPayoutType } = this.props;
         const { replyForm, body } = this.state;
+        // eslint-disable-next-line no-restricted-globals
         if (!body.value || confirm(tt('reply_editor.are_you_sure_you_want_to_clear_this_form'))) {
             replyForm.resetForm();
             if (this.refs.rte) this.refs.rte.setState({ state: stateFromHtml() });
@@ -409,14 +408,12 @@ class ReplyEditor extends React.Component {
     };
 
     // As rte_editor is updated, keep the (invisible) 'body' field in sync.
-    onChange = rte_value => {
-        this.refs.rte.setState({ state: rte_value });
-        const html = stateToHtml(rte_value);
+    onChange = (rte_value) => {
         const { body } = this.state;
-        if (body.value !== html) body.props.onChange(html);
+        body.props.onChange(rte_value);
     };
 
-    toggleRte = e => {
+    toggleRte = (e) => {
         e.preventDefault();
         const state = { rte: !this.state.rte };
         if (state.rte) {
@@ -426,16 +423,18 @@ class ReplyEditor extends React.Component {
         this.setState(state);
         localStorage.setItem('replyEditorData-rte', !this.state.rte);
     };
+
     showDraftSaved() {
         const { draft } = this.refs;
         if (draft) {
             draft.className = 'ReplyEditor__draft';
+            // eslint-disable-next-line no-void
             void draft.offsetWidth; // reset animation
             draft.className = 'ReplyEditor__draft ReplyEditor__draft-saved';
         }
     }
 
-    showAdvancedSettings = e => {
+    showAdvancedSettings = (e) => {
         e.preventDefault();
 
         this.props.setPayoutType(this.props.formId, this.props.payoutType);
@@ -449,7 +448,7 @@ class ReplyEditor extends React.Component {
         this.props.showAdvancedSettings(this.props.formId);
     };
 
-    displayErrorMessage = message => {
+    displayErrorMessage = (message) => {
         this.setState({
             progress: { error: message },
         });
@@ -491,7 +490,7 @@ class ReplyEditor extends React.Component {
         this.dropzone.open();
     };
 
-    onPasteCapture = e => {
+    onPasteCapture = (e) => {
         try {
             if (e.clipboardData) {
                 // @TODO: currently it seems to capture only one file, try to find a fix for multiple files
@@ -534,29 +533,29 @@ class ReplyEditor extends React.Component {
             const imageToUpload = imagesToUpload[ii];
 
             if (imageToUpload.temporaryTag === '') {
-                imagesUploadCount++;
+                imagesUploadCount += 1;
                 imageToUpload.temporaryTag = `![Uploading image #${imagesUploadCount}...]()`;
                 placeholder += `\n${imageToUpload.temporaryTag}\n`;
             }
         }
 
-        this.setState({ imagesUploadCount: imagesUploadCount });
+        this.setState({ imagesUploadCount });
 
         // Insert the temporary tag where the cursor currently is
         body.props.onChange(
-            body.value.substring(0, selectionStart) +
-                placeholder +
-                body.value.substring(selectionStart, body.value.length)
+            body.value.substring(0, selectionStart)
+                + placeholder
+                + body.value.substring(selectionStart, body.value.length)
         );
     };
 
-    upload = image => {
+    upload = (image) => {
         const { uploadImage } = this.props;
         this.setState({
             progress: { message: tt('reply_editor.uploading') },
         });
 
-        uploadImage(image.file, progress => {
+        uploadImage(image.file, (progress) => {
             const { body } = this.state;
 
             if (progress.url) {
@@ -568,8 +567,7 @@ class ReplyEditor extends React.Component {
                 body.props.onChange(body.value.replace(image.temporaryTag, imageMd));
 
                 this.uploadNextImage();
-            } else {
-                if (progress.hasOwnProperty('error')) {
+            } else if (Object.prototype.hasOwnProperty.call(progress, 'error')) {
                     this.displayErrorMessage(progress.error);
                     const imageMd = `![${image.file.name}](UPLOAD FAILED)`;
 
@@ -578,7 +576,6 @@ class ReplyEditor extends React.Component {
                 } else {
                     this.setState({ progress });
                 }
-            }
         });
     };
 
@@ -588,7 +585,9 @@ class ReplyEditor extends React.Component {
             body: this.props.body,
         };
         const { onCancel } = this;
-        const { title, tags, summary, altAuthor, body, community, enableSideBySide } = this.state;
+        const {
+            title, tags, summary, altAuthor, body, community, enableSideBySide
+        } = this.state;
         const {
             reply,
             username,
@@ -606,7 +605,9 @@ class ReplyEditor extends React.Component {
             beneficiaries,
             maxAcceptedPayout,
         } = this.props;
-        const { submitting, valid, handleSubmit, resetForm } = this.state.replyForm;
+        const {
+            submitting, valid, handleSubmit, resetForm
+        } = this.state.replyForm;
         const { postError, rte } = this.state;
         const { progress, noClipboardData } = this.state;
         const disabled = submitting || !valid;
@@ -625,7 +626,7 @@ class ReplyEditor extends React.Component {
             rtags = extractRtags(body.value);
         }
 
-        const errorCallback = estr => {
+        const errorCallback = (estr) => {
             this.setState({ postError: estr, loading: false });
         };
         const isEdit = type === 'edit';
@@ -706,7 +707,7 @@ class ReplyEditor extends React.Component {
             });
         };
 
-        const onSelectCoverImage = event => {
+        const onSelectCoverImage = (event) => {
             const { target } = event;
 
             const postImages = document.getElementsByClassName('ReplyEditor__options__image_selector__image_container');
@@ -743,8 +744,7 @@ class ReplyEditor extends React.Component {
                             'side-by-side': enableSideBySide,
                         })}
                         onSubmit={handleSubmit(({ data }) => {
-                            const startLoadingIndicator = () =>
-                                this.setState({
+                            const startLoadingIndicator = () => this.setState({
                                     loading: true,
                                     postError: undefined,
                                 });
@@ -762,8 +762,8 @@ class ReplyEditor extends React.Component {
                     >
                         <div className={vframe_section_shrink_class}>
                             <a href="#" onClick={toggleSideBySide}>
-                                {(enableSideBySide && tt('reply_editor.disable_sidebyside')) ||
-                                    tt('reply_editor.enable_sidebyside')}
+                                {(enableSideBySide && tt('reply_editor.disable_sidebyside'))
+                                    || tt('reply_editor.enable_sidebyside')}
                             </a>
                         </div>
                         <div className={vframe_section_shrink_class}>
@@ -784,17 +784,16 @@ class ReplyEditor extends React.Component {
                                     <div className="float-left primary" style={{ margin: '0.8rem 0 0 0' }}>
                                         {rte && (
                                             <a href="#" onClick={this.toggleRte}>
-                                                {body.value
-                                                    ? `👁️ ${tt('reply_editor.view_html_source')}`
-                                                    : `🗒️ ${tt('reply_editor.enable_markdown_editor')}`}
+                                                🗒️
+                                                {' '}
+                                                {tt('reply_editor.enable_markdown_editor')}
+                                            </a>
+                                        )}
+                                        {!rte && (
+                                            <a href="#" onClick={this.toggleRte}>
+                                                {`📰 ${tt('reply_editor.editor')}`}
                                             </a>
                                         )}
-                                        {!rte &&
-                                            (isHtml || !body.value) && (
-                                                <a href="#" onClick={this.toggleRte}>
-                                                    {`📰 ${tt('reply_editor.editor')}`}
-                                                </a>
-                                            )}
                                     </div>
                                 </span>
                             )}
@@ -802,17 +801,12 @@ class ReplyEditor extends React.Component {
 
                         <div
                             className={
-                                'ReplyEditor__body ' +
-                                (rte ? `rte ${vframe_section_class}` : vframe_section_shrink_class)
+                                'ReplyEditor__body Markdown '
+                                + (rte ? `rte ${vframe_section_class}` : vframe_section_shrink_class)
                             }
                         >
                             {process.env.BROWSER && rte ? (
-                                <SlateEditor
-                                    ref="rte"
-                                    placeholder={isStory ? 'Write your story...' : 'Reply'}
-                                    initialState={this.state.rte_value}
-                                    onChange={this.onChange}
-                                />
+                                <VisualEditor onChange={this.onChange} value={body.value} />
                             ) : (
                                 <span>
                                     <Dropzone
@@ -821,7 +815,7 @@ class ReplyEditor extends React.Component {
                                         disableClick
                                         multiple
                                         accept="image/*"
-                                        ref={node => {
+                                        ref={(node) => {
                                             this.dropzone = node;
                                         }}
                                     >
@@ -837,22 +831,26 @@ class ReplyEditor extends React.Component {
                                             tabIndex={0}
                                         />
                                     </Dropzone>
-                                    <p className="drag-and-drop">
-                                        {tt('reply_editor.insert_images_by_dragging_dropping')}
-                                        {noClipboardData ? '' : tt('reply_editor.pasting_from_the_clipboard')}
-                                        {tt('reply_editor.or_by')}{' '}
-                                        <a onClick={this.onOpenClick}>{tt('reply_editor.selecting_them')}</a>
-                                        .
-                                    </p>
                                     {progress.message && <div className="info">{progress.message}</div>}
                                     {progress.error && (
                                         <div className="error">
-                                            {tt('reply_editor.image_upload')} : {progress.error}
+                                            {tt('reply_editor.image_upload')}
+                                            {' '}
+                                            :
+                                            {progress.error}
                                         </div>
                                     )}
                                 </span>
                             )}
                         </div>
+                        <p className="drag-and-drop">
+                            {tt('reply_editor.insert_images_by_dragging_dropping')}
+                            {noClipboardData ? '' : tt('reply_editor.pasting_from_the_clipboard')}
+                            {tt('reply_editor.or_by')}
+                            {' '}
+                            <a role="link" tabIndex={0} onClick={this.onOpenClick}>{tt('reply_editor.selecting_them')}</a>
+                            .
+                        </p>
                         <div className={vframe_section_shrink_class}>
                             <div className="error">
                                 {body.touched && body.error && body.error !== 'Required' && body.error}
@@ -888,7 +886,12 @@ class ReplyEditor extends React.Component {
                                         isEdit={isEdit}
                                         tabIndex={0}
                                     />
-                                    {(tags.touched || tags.value) && <div className="error">{tags.error} </div>}
+                                    {(tags.touched || tags.value) && (
+                                    <div className="error">
+                                        {tags.error}
+                                        {' '}
+                                    </div>
+)}
                                 </span>
                             )}
                         </div>
@@ -921,11 +924,12 @@ class ReplyEditor extends React.Component {
                                             :
                                         </h5>
                                         <div className="ReplyEditor__options__image_selector">
-                                            {Array.from(rtags.images).map(image => {
+                                            {Array.from(rtags.images).map((image) => {
                                                 return (
+                                                    // eslint-disable-next-line jsx-a11y/no-static-element-interactions
                                                     <div
                                                         key={image}
-                                                        className={classNames(
+                                                        className={classnames(
                                                             'ReplyEditor__options__image_selector__image_container',
                                                             {
                                                                 selected: image === selectedCoverImage,
@@ -944,29 +948,34 @@ class ReplyEditor extends React.Component {
                             </div>
                         )}
                         <div className={vframe_section_shrink_class} style={{ marginTop: '0.5rem' }}>
-                            {isStory &&
-                                !isEdit && (
+                            {isStory
+                                && !isEdit && (
                                     <div className="ReplyEditor__options">
-                                        <h5>{tt('reply_editor.post_options')}:</h5>
+                                        <h5>
+                                            {tt('reply_editor.post_options')}
+                                            :
+                                        </h5>
                                         <div>
-                                            {this.props.maxAcceptedPayout !== null &&
-                                                this.props.maxAcceptedPayout !== 0 && (
+                                            {this.props.maxAcceptedPayout !== null
+                                                && this.props.maxAcceptedPayout !== 0 && (
                                                     <div>
                                                         {tt('post_advanced_settings_jsx.max_accepted_payout')}
                                                         {': '}
-                                                        {this.props.maxAcceptedPayout} HBD
+                                                        {this.props.maxAcceptedPayout}
+                                                        {' '}
+                                                        HBD
                                                     </div>
                                                 )}
                                             <div>
-                                                {tt('g.rewards')}
+                                                {tt('post_advanced_settings_jsx.payout_option_header')}
                                                 {': '}
                                                 {this.props.payoutType === '0%' && tt('reply_editor.decline_payout')}
                                                 {this.props.payoutType === '50%' && tt('reply_editor.default_50_50')}
                                                 {this.props.payoutType === '100%' && tt('reply_editor.power_up_100')}
                                             </div>
                                             <div>
-                                                {beneficiaries &&
-                                                    beneficiaries.length > 0 && (
+                                                {beneficiaries
+                                                    && beneficiaries.length > 0 && (
                                                         <span>
                                                             {tt('g.beneficiaries')}
                                                             {': '}
@@ -978,12 +987,13 @@ class ReplyEditor extends React.Component {
                                             </div>
                                             <a href="#" onClick={this.showAdvancedSettings}>
                                                 {tt('reply_editor.advanced_settings')}
-                                            </a>{' '}
+                                            </a>
+                                            {' '}
                                             <br />
                                             &nbsp;
                                         </div>
                                     </div>
-                                )}
+                            )}
                         </div>
 
                         <div className={vframe_section_shrink_class}>
@@ -993,9 +1003,9 @@ class ReplyEditor extends React.Component {
                         <div
                             className={classnames(vframe_section_shrink_class, 'ReplyEditor--submit-buttons-container')}
                         >
-                            {isStory &&
-                                !isEdit &&
-                                username && (
+                            {isStory
+                                && !isEdit
+                                && username && (
                                     <PostCategoryBanner
                                         category={community}
                                         username={username}
@@ -1013,9 +1023,10 @@ class ReplyEditor extends React.Component {
                                     <LoadingIndicator type="circle" />
                                 </span>
                             )}
-                            &nbsp;{' '}
-                            {!loading &&
-                                this.props.onCancel && (
+                            &nbsp;
+                            {' '}
+                            {!loading
+                                && this.props.onCancel && (
                                     <button
                                         type="button"
                                         className="secondary hollow button no-border"
@@ -1025,9 +1036,10 @@ class ReplyEditor extends React.Component {
                                         {tt('g.cancel')}
                                     </button>
                                 )}
-                            {!loading &&
-                                !this.props.onCancel && (
+                            {!loading
+                                && !this.props.onCancel && (
                                     <button
+                                        type="button"
                                         className="button hollow no-border"
                                         tabIndex={0}
                                         disabled={submitting}
@@ -1036,9 +1048,9 @@ class ReplyEditor extends React.Component {
                                         {tt('g.clear')}
                                     </button>
                                 )}
-                            {!isStory &&
-                                !isEdit &&
-                                this.props.payoutType != '50%' && (
+                            {!isStory
+                                && !isEdit
+                                && this.props.payoutType != '50%' && (
                                     <div className="ReplyEditor__options float-right text-right">
                                         {tt('g.rewards')}
                                         {': '}
@@ -1074,9 +1086,8 @@ class ReplyEditor extends React.Component {
                             </div>
                         )}
                     </div>
-                    {!loading &&
-                        !rte &&
-                        body.value && (
+                    {!loading
+                        && body.value && (
                             <div
                                 className={classnames({
                                     Preview: true,
@@ -1095,27 +1106,17 @@ class ReplyEditor extends React.Component {
 
 let saveEditorTimeout;
 
-// removes <html></html> wrapper if exists
-function stripHtmlWrapper(text) {
-    const m = text.match(/<html>\n*([\S\s]+?)?\n*<\/html>/m);
-    return m && m.length === 2 ? m[1] : text;
-}
 // See also MarkdownViewer render
-const isHtmlTest = text => /^<html>/.test(text);
-
-function stateToHtml(state) {
-    let html = serializeHtml(state);
-    if (html === '<p></p>') html = '';
-    if (html === '<p><br></p>') html = '';
-    if (html == '') return '';
-    return `<html>
-                                }\n${html}\n</html>`;
-}
+const isHtmlTest = (text) => /^<html>/.test(text);
 
-function stateFromHtml(html = null) {
+function stateFromHtml() {
+    return null;
+/*
     if (html) html = stripHtmlWrapper(html);
     if (html && html.trim() == '') html = null;
     return html ? deserializeHtml(html) : getDemoState();
+
+ */
 }
 
 //var htmlclean = require('htmlclean');
@@ -1130,15 +1131,16 @@ function stateFromMarkdown(markdown) {
     return stateFromHtml(html);
 }
 
-export default formId =>
-    connect(
+export default (formId) => connect(
         // mapStateToProps
         (state, ownProps) => {
             const username = state.user.getIn(['current', 'username']);
             const referralSystem = state.app.getIn(['user_preferences', 'referralSystem']);
             const defaultBeneficiaries = state.user.getIn(['current', 'defaultBeneficiaries']);
             const fields = ['body'];
-            const { author, permlink, type, parent_author } = ownProps;
+            const {
+                author, permlink, type, parent_author
+            } = ownProps;
             const isEdit = type === 'edit';
             const isStory = /submit_story/.test(type) || (isEdit && !parent_author);
             if (isStory) fields.push('title');
@@ -1146,11 +1148,15 @@ export default formId =>
             if (isStory) fields.push('summary');
             if (isStory) fields.push('altAuthor');
 
-            let { category, title, body, summary, altAuthor } = ownProps;
-            if (/submit_/.test(type)) title = body = '';
+            const { summary, altAuthor } = ownProps;
+            let { category, title, body } = ownProps;
+            if (/submit_/.test(type)) {
+                title = '';
+                body = '';
+            }
             // type: PropTypes.oneOf(['submit_story', 'submit_comment', 'edit'])
 
-            const query = state.routing.locationBeforeTransitions.query;
+            const {query} = state.routing.locationBeforeTransitions;
             if (query && query.category) {
                 category = query.category;
             }
@@ -1222,40 +1228,38 @@ export default formId =>
                 beneficiaries,
                 postTemplateName,
                 maxAcceptedPayout,
-                initialValues: { title, summary, altAuthor, body, tags },
+                initialValues: {
+                    title, summary, altAuthor, body, tags
+                },
                 formId,
             };
         },
 
         // mapDispatchToProps
-        dispatch => ({
+        (dispatch) => ({
             uploadImage: (file, progress) => dispatch(userActions.uploadImage({ file, progress })),
-            showAdvancedSettings: formId => dispatch(userActions.showPostAdvancedSettings({ formId })),
-            setPayoutType: (formId, payoutType) =>
-                dispatch(
+            showAdvancedSettings: (_formId) => dispatch(userActions.showPostAdvancedSettings({ _formId })),
+            setPayoutType: (_formId, payoutType) => dispatch(
                     userActions.set({
-                        key: ['current', 'post', formId, 'payoutType'],
+                        key: ['current', 'post', _formId, 'payoutType'],
                         value: payoutType,
                     })
                 ),
-            setMaxAcceptedPayout: (formId, maxAcceptedPayout) =>
-                dispatch(
+            setMaxAcceptedPayout: (_formId, maxAcceptedPayout) => dispatch(
                     userActions.set({
-                        key: ['current', 'post', formId, 'maxAcceptedPayout'],
+                        key: ['current', 'post', _formId, 'maxAcceptedPayout'],
                         value: maxAcceptedPayout,
                     })
                 ),
-            setBeneficiaries: (formId, beneficiaries) =>
-                dispatch(
+            setBeneficiaries: (_formId, beneficiaries) => dispatch(
                     userActions.set({
-                        key: ['current', 'post', formId, 'beneficiaries'],
+                        key: ['current', 'post', _formId, 'beneficiaries'],
                         value: fromJS(beneficiaries),
                     })
                 ),
-            setPostTemplateName: (formId, postTemplateName) =>
-                dispatch(
+            setPostTemplateName: (_formId, postTemplateName) => dispatch(
                     userActions.set({
-                        key: ['current', 'post', formId, 'postTemplateName'],
+                        key: ['current', 'post', _formId, 'postTemplateName'],
                         value: postTemplateName,
                     })
                 ),
@@ -1296,32 +1300,27 @@ export default formId =>
                           author: username,
                           // permlink,  assigned in TransactionSaga
                       }
-                    : // edit existing
-                      isEdit ? { author, permlink, parent_author, parent_permlink } : null;
+                    : isEdit ? { // edit existing
+                        author, permlink, parent_author, parent_permlink
+                    } : null;
 
                 if (!linkProps) throw new Error('Unknown type: ' + type);
 
-                // If this is an HTML post, it MUST begin and end with the tag
-                if (isHtml && !body.match(/^<html>[\s\S]*<\/html>$/)) {
-                    errorCallback('HTML posts must begin with <html> and end with </html>');
-                    return;
-                }
-
                 let rtags;
                 {
                     const html = isHtml ? body : remarkable.render(body);
                     rtags = HtmlReady(html, { mutate: false });
                 }
 
-                allowedTags.forEach(tag => {
+                allowedTags.forEach((tag) => {
                     rtags.htmltags.delete(tag);
                 });
                 if (isHtml) rtags.htmltags.delete('html'); // html tag allowed only in HTML mode
                 if (rtags.htmltags.size) {
                     errorCallback(
-                        'Please remove the following HTML elements from your post: ' +
-                            Array(...rtags.htmltags)
-                                .map(tag => `<${tag}>`)
+                        'Please remove the following HTML elements from your post: '
+                            + Array(...rtags.htmltags)
+                                .map((tag) => `<${tag}>`)
                                 .join(', ')
                     );
                     return;
@@ -1426,7 +1425,7 @@ export default formId =>
                                         .sort(
                                             (a, b) => (a.username < b.username ? -1 : a.username > b.username ? 1 : 0)
                                         )
-                                        .map(elt => ({
+                                        .map((elt) => ({
                                             account: elt.username,
                                             weight: parseInt(elt.percent) * 100,
                                         })),
diff --git a/src/app/components/elements/Reveal.jsx b/src/app/components/elements/Reveal.jsx
index 5a57e603e6a930df9f21f57634e5866b546f642d..f268dd45490236f15d352842ee0e9ff920265bd6 100644
--- a/src/app/components/elements/Reveal.jsx
+++ b/src/app/components/elements/Reveal.jsx
@@ -25,12 +25,7 @@ const Reveal = ({ children, onHide, show }) => {
             backdropStyle={{ display: 'block' }}
             style={modalStyle}
         >
-            <div
-                className={'reveal fade in'}
-                role={'document'}
-                tabIndex={'-1'}
-                style={{ display: 'block' }}
-            >
+            <div className={'reveal fade in'} role={'document'} tabIndex={'-1'} style={{ display: 'block' }}>
                 {children}
             </div>
         </Modal>
diff --git a/src/app/components/elements/SanitizedLink/index.jsx b/src/app/components/elements/SanitizedLink/index.jsx
index deb31c463e60143f0927260523093c647f4a69da..dde955025004a6b4741eeedcc5f728fa4ea17ccf 100644
--- a/src/app/components/elements/SanitizedLink/index.jsx
+++ b/src/app/components/elements/SanitizedLink/index.jsx
@@ -1,11 +1,11 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import tt from 'counterpart';
 import classnames from 'classnames';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import { looksPhishy } from 'app/utils/Phishing';
 
-export default class SanitizedLink extends React.Component {
+export default class SanitizedLink extends PureComponent {
     static propTypes = {
         url: PropTypes.string,
         text: PropTypes.string,
@@ -13,16 +13,16 @@ export default class SanitizedLink extends React.Component {
 
     constructor() {
         super();
-        this.shouldComponentUpdate = shouldComponentUpdate(
-            this,
-            'SanitizedLink'
-        );
+        // this.shouldComponentUpdate = shouldComponentUpdate(
+        //     this,
+        //     'SanitizedLink'
+        // );
         this.state = {
             revealPhishyLink: false,
         };
     }
 
-    onRevealPhishyLink = e => {
+    onRevealPhishyLink = (e) => {
         e.preventDefault();
         this.setState({ revealPhishyLink: true });
     };
@@ -39,12 +39,7 @@ export default class SanitizedLink extends React.Component {
 
         if (!isPhishy) {
             return (
-                <a
-                    className={classes}
-                    href={url}
-                    target="_blank"
-                    rel="noopener noreferrer"
-                >
+                <a className={classes} href={url} target="_blank" rel="noopener noreferrer">
                     {text}
                 </a>
             );
@@ -52,10 +47,7 @@ export default class SanitizedLink extends React.Component {
 
         if (this.state.revealPhishyLink) {
             return (
-                <span
-                    className={classes}
-                    title={tt('sanitizedlink_jsx.phishylink_caution')}
-                >
+                <span className={classes} title={tt('sanitizedlink_jsx.phishylink_caution')}>
                     {text}
                 </span>
             );
@@ -63,14 +55,9 @@ export default class SanitizedLink extends React.Component {
 
         return (
             <span className={classes}>
-                <span className="phishylink-caution">
-                    {tt('sanitizedlink_jsx.phishylink_caution')}
-                </span>
-                <span
-                    className="phishylink-reveal-link"
-                    role="button"
-                    onClick={this.onRevealPhishyLink}
-                >
+                <span className="phishylink-caution">{tt('sanitizedlink_jsx.phishylink_caution')}</span>
+                {/* eslint-disable-next-line jsx-a11y/interactive-supports-focus */}
+                <span className="phishylink-reveal-link" role="button" onClick={this.onRevealPhishyLink}>
                     {tt('sanitizedlink_jsx.phishylink_reveal')}
                 </span>
             </span>
diff --git a/src/app/components/elements/SearchInput/index.jsx b/src/app/components/elements/SearchInput/index.jsx
index bc7797806641e19c08994f3516f7a7cbcc628643..28d6d72f7baf849af9ad5274831d13fe6a696903 100644
--- a/src/app/components/elements/SearchInput/index.jsx
+++ b/src/app/components/elements/SearchInput/index.jsx
@@ -5,11 +5,7 @@ import tt from 'counterpart';
 const SearchInput = ({ type }) => {
     return (
         <span>
-            <form
-                className={'search-input'}
-                action="/static/search.html"
-                method="GET"
-            >
+            <form className={'search-input'} action="/static/search.html" method="GET">
                 <svg
                     className="search-input__icon"
                     width="42"
@@ -26,12 +22,7 @@ const SearchInput = ({ type }) => {
                         />
                     </g>
                 </svg>
-                <input
-                    name="q"
-                    className="search-input__inner"
-                    type="search"
-                    placeholder={tt('g.search')}
-                />
+                <input name="q" className="search-input__inner" type="search" placeholder={tt('g.search')} />
                 <button
                     className="input-group-button"
                     href="/static/search.html"
diff --git a/src/app/components/elements/SettingsEditButton.jsx b/src/app/components/elements/SettingsEditButton.jsx
index e007b7258dfcf226d5827fee77517d772a43b044..2c6adc9bf39ed78737c2179fe6ba6279b313a5ff 100644
--- a/src/app/components/elements/SettingsEditButton.jsx
+++ b/src/app/components/elements/SettingsEditButton.jsx
@@ -19,12 +19,12 @@ class SettingsEditButton extends React.Component {
         };
     }
 
-    onToggleDialog = e => {
+    onToggleDialog = (e) => {
         if (e) e.preventDefault();
         this.setState({ showDialog: !this.state.showDialog });
     };
 
-    onSave = newSettings => {
+    onSave = (newSettings) => {
         const community = this.props.community.get('name');
         this.setState({ loading: true });
         this.props.saveSettings(
@@ -62,7 +62,7 @@ class SettingsEditButton extends React.Component {
                         <CloseButton onClick={() => this.onToggleDialog()} />
                         <CommunitySettings
                             {...settings}
-                            onSubmit={newSettings => {
+                            onSubmit={(newSettings) => {
                                 this.onToggleDialog();
                                 this.onSave(newSettings);
                             }}
@@ -86,10 +86,7 @@ SettingsEditButton.defaultProps = {
 
 export default connect(
     (state, ownProps) => {
-        const community = state.global.getIn(
-            ['community', ownProps.community],
-            {}
-        );
+        const community = state.global.getIn(['community', ownProps.community], {});
         const settings = {
             title: community.get('title'),
             about: community.get('about'),
@@ -106,14 +103,8 @@ export default connect(
             settings,
         };
     },
-    dispatch => ({
-        saveSettings: (
-            account,
-            community,
-            settings,
-            successCallback,
-            errorCallback
-        ) => {
+    (dispatch) => ({
+        saveSettings: (account, community, settings, successCallback, errorCallback) => {
             const action = 'updateProps';
 
             const payload = [
@@ -137,7 +128,7 @@ export default connect(
                 })
             );
         },
-        pushState: state => {
+        pushState: (state) => {
             dispatch(globalActions.receiveState(state));
         },
     })
diff --git a/src/app/components/elements/ShareMenu.jsx b/src/app/components/elements/ShareMenu.jsx
index ab6f99e0e5a958c7310f85487605d4f481d11218..dd56763b6e0da6edf2079af75e76edc3b519a509 100644
--- a/src/app/components/elements/ShareMenu.jsx
+++ b/src/app/components/elements/ShareMenu.jsx
@@ -13,7 +13,7 @@ export default class ShareMenu extends React.Component {
         return (
             <span className="shareMenu">
                 <ul>
-                    {menu.map(i => (
+                    {menu.map((i) => (
                         <li key={i.title}>
                             <Link to="#" onClick={i.onClick} title={i.title}>
                                 <Icon name={i.icon} />
diff --git a/src/app/components/elements/SidebarLinks.jsx b/src/app/components/elements/SidebarLinks.jsx
index b95418a6aa0a1fef983e67e36614789dd2b55a93..610d6d2875b7e3c50db5cf1ce608cd4beec6cf17 100644
--- a/src/app/components/elements/SidebarLinks.jsx
+++ b/src/app/components/elements/SidebarLinks.jsx
@@ -30,18 +30,13 @@ const SidebarLinks = ({ username, topics }) => (
                 */}
                 {topics && (
                     <li className="c-sidebar__list-item">
-                        <div style={{ color: '#aaa', paddingTop: '0em' }}>
-                            Trending Communities
-                        </div>
+                        <div style={{ color: '#aaa', paddingTop: '0em' }}>Trending Communities</div>
                     </li>
                 )}
                 {topics &&
-                    topics.toJS().map(item => (
+                    topics.toJS().map((item) => (
                         <li key={item[0]} className="c-sidebar__list-item">
-                            <Link
-                                className="c-sidebar__link"
-                                to={`/trending/${item[0]}`}
-                            >
+                            <Link className="c-sidebar__link" to={`/trending/${item[0]}`}>
                                 {item[1]}
                             </Link>
                         </li>
diff --git a/src/app/components/elements/SidebarNewUsers.jsx b/src/app/components/elements/SidebarNewUsers.jsx
index 33cd30f29ba456801f9981a2ed066281d05a0d87..0c5a3d9d3db433291cb4bf5342f469a3a5b91b9d 100644
--- a/src/app/components/elements/SidebarNewUsers.jsx
+++ b/src/app/components/elements/SidebarNewUsers.jsx
@@ -14,7 +14,8 @@ const SidebarNewUsers = ({ walletUrl }) => {
             return (
                 <li key={ix} className={'c-sidebar__item'}>
                     <a href={i.link} target="_blank" rel="noopener noreferrer">
-                        {i.label}&nbsp;<Icon name="extlink" />
+                        {i.label}&nbsp;
+                        <Icon name="extlink" />
                     </a>
                 </li>
             );
diff --git a/src/app/components/elements/SlateEditor.jsx b/src/app/components/elements/SlateEditor.jsx
index 0102f533648131b3627a33ab2b98f4db26fba448..45b534e0552201c44a30d3a158d22bca63048fcb 100644
--- a/src/app/components/elements/SlateEditor.jsx
+++ b/src/app/components/elements/SlateEditor.jsx
@@ -7,19 +7,15 @@ import ReactDOMServer from 'react-dom/server';
 
 import { getCollapsedClientRect } from 'app/utils/SlateEditor/Helpers';
 import demoState from 'app/utils/SlateEditor/DemoState';
-import {
-    HtmlRules,
-    schema,
-    getMarkdownType,
-} from 'app/utils/SlateEditor/Schema';
+import { HtmlRules, schema, getMarkdownType } from 'app/utils/SlateEditor/Schema';
 
 const serializer = new Html({ rules: HtmlRules });
-export const serializeHtml = state =>
+export const serializeHtml = (state) =>
     serializer
         .serialize(state, { render: false })
-        .map(el => ReactDOMServer.renderToStaticMarkup(el))
+        .map((el) => ReactDOMServer.renderToStaticMarkup(el))
         .join('\n');
-export const deserializeHtml = html => serializer.deserialize(html);
+export const deserializeHtml = (html) => serializer.deserialize(html);
 export const getDemoState = () => Raw.deserialize(demoState, { terse: true });
 
 const DEFAULT_NODE = 'paragraph';
@@ -80,43 +76,41 @@ export default class SlateEditor extends React.Component {
         this.updateSidebar();
     };
 
-    onChange = state => {
+    onChange = (state) => {
         //this.setState({ state })
         this.props.onChange(state);
     };
 
     // When the portal opens, cache the menu element.
-    onMenuOpen = portal => {
+    onMenuOpen = (portal) => {
         this.setState({ menu: portal.firstChild });
     };
 
     // When the portal opens, cache the menu element.
-    onSidebarOpen = portal => {
+    onSidebarOpen = (portal) => {
         this.setState({ sidebar: portal.firstChild });
     };
 
     // Check if the current selection has a mark with `type` in it.
-    hasMark = type => {
+    hasMark = (type) => {
         const { state } = this.state;
         if (!state.isExpanded) return;
-        return state.marks.some(mark => mark.type == type);
+        return state.marks.some((mark) => mark.type == type);
     };
 
     // Check if the current selection has a block with `type` in it.
-    hasBlock = type => {
+    hasBlock = (type) => {
         const { state } = this.state;
         const { document } = state;
         return state.blocks.some(
-            node =>
-                node.type == type ||
-                !!document.getClosest(node.key, parent => parent.type == type)
+            (node) => node.type == type || !!document.getClosest(node.key, (parent) => parent.type == type)
         );
     };
 
     // Check if the current selection has an inline of `type`.
-    hasInline = type => {
+    hasInline = (type) => {
         const { state } = this.state;
-        return state.inlines.some(inline => inline.type == type);
+        return state.inlines.some((inline) => inline.type == type);
     };
 
     // When a mark button is clicked, toggle the current mark.
@@ -124,10 +118,7 @@ export default class SlateEditor extends React.Component {
         e.preventDefault();
         let { state } = this.state;
 
-        state = state
-            .transform()
-            .toggleMark(type)
-            .apply();
+        state = state.transform().toggleMark(type).apply();
 
         this.setState({ state });
     };
@@ -155,25 +146,15 @@ export default class SlateEditor extends React.Component {
         } else {
             // Handle the extra wrapping required for list buttons.
             const isList = this.hasBlock('list-item');
-            const isType = state.blocks.some(block => {
-                return !!document.getClosest(
-                    block,
-                    parent => parent.type == type
-                );
+            const isType = state.blocks.some((block) => {
+                return !!document.getClosest(block, (parent) => parent.type == type);
             });
 
             if (isList && isType) {
-                transform = transform
-                    .setBlock(DEFAULT_NODE)
-                    .unwrapBlock('bulleted-list')
-                    .unwrapBlock('numbered-list');
+                transform = transform.setBlock(DEFAULT_NODE).unwrapBlock('bulleted-list').unwrapBlock('numbered-list');
             } else if (isList) {
                 transform = transform
-                    .unwrapBlock(
-                        type == 'bulleted-list'
-                            ? 'numbered-list'
-                            : 'bulleted-list'
-                    )
+                    .unwrapBlock(type == 'bulleted-list' ? 'numbered-list' : 'bulleted-list')
                     .wrapBlock(type);
             } else {
                 transform = transform.setBlock('list-item').wrapBlock(type);
@@ -184,21 +165,15 @@ export default class SlateEditor extends React.Component {
         this.setState({ state });
     };
 
-    onClickLink = e => {
+    onClickLink = (e) => {
         e.preventDefault();
         let { state } = this.state;
         const hasLinks = this.hasInline('link');
 
         if (hasLinks) {
-            state = state
-                .transform()
-                .unwrapInline('link')
-                .apply();
+            state = state.transform().unwrapInline('link').apply();
         } else if (state.isExpanded) {
-            const href = window.prompt(
-                'Enter the URL of the link:',
-                'http://steemit.com'
-            );
+            const href = window.prompt('Enter the URL of the link:', 'http://steemit.com');
             if (href) {
                 state = state
                     .transform()
@@ -235,9 +210,7 @@ export default class SlateEditor extends React.Component {
             case 'backspace':
                 return this.onBackspace(e, state);
             case 'enter':
-                return data.isShift
-                    ? this.onShiftEnter(e, state)
-                    : this.onEnter(e, state);
+                return data.isShift ? this.onShiftEnter(e, state) : this.onEnter(e, state);
         }
     };
 
@@ -259,10 +232,7 @@ export default class SlateEditor extends React.Component {
 
         if (!mark) return;
 
-        state = state
-            .transform()
-            .toggleMark(mark)
-            .apply();
+        state = state.transform().toggleMark(mark).apply();
 
         e.preventDefault();
         return state;
@@ -282,15 +252,10 @@ export default class SlateEditor extends React.Component {
 
         let transform = state.transform().setBlock(type);
 
-        if (type == 'list-item' && chars != '1.')
-            transform = transform.wrapBlock('bulleted-list');
-        if (type == 'list-item' && chars == '1.')
-            transform = transform.wrapBlock('numbered-list');
+        if (type == 'list-item' && chars != '1.') transform = transform.wrapBlock('bulleted-list');
+        if (type == 'list-item' && chars == '1.') transform = transform.wrapBlock('numbered-list');
 
-        state = transform
-            .extendToStartOf(startBlock)
-            .delete()
-            .apply();
+        state = transform.extendToStartOf(startBlock).delete().apply();
 
         return state;
     };
@@ -307,9 +272,7 @@ export default class SlateEditor extends React.Component {
         let transform = state.transform().setBlock('paragraph');
 
         if (startBlock.type == 'list-item')
-            transform = transform
-                .unwrapBlock('bulleted-list')
-                .unwrapBlock('numbered-list');
+            transform = transform.unwrapBlock('bulleted-list').unwrapBlock('numbered-list');
 
         state = transform.apply();
         return state;
@@ -320,11 +283,7 @@ export default class SlateEditor extends React.Component {
         const { startBlock, startOffset, endOffset } = state;
 
         // Allow soft returns for certain block types
-        if (
-            startBlock.type == 'paragraph' ||
-            startBlock.type == 'code-block' ||
-            startBlock.type == 'block-quote'
-        ) {
+        if (startBlock.type == 'paragraph' || startBlock.type == 'code-block' || startBlock.type == 'block-quote') {
             let transform = state.transform();
             if (state.isExpanded) transform = transform.delete();
             transform = transform.insertText('\n');
@@ -337,8 +296,7 @@ export default class SlateEditor extends React.Component {
         const { startBlock, startOffset, endOffset } = state;
 
         // On return, if at the end of a node type that should not be extended, create a new paragraph below it.
-        if (startOffset == 0 && startBlock.length == 0)
-            return this.onBackspace(e, state); //empty block
+        if (startOffset == 0 && startBlock.length == 0) return this.onBackspace(e, state); //empty block
         if (endOffset != startBlock.length) return; //not at end of block
 
         if (
@@ -352,11 +310,7 @@ export default class SlateEditor extends React.Component {
             return;
 
         e.preventDefault();
-        return state
-            .transform()
-            .splitBlock()
-            .setBlock('paragraph')
-            .apply();
+        return state.transform().splitBlock().setBlock('paragraph').apply();
     };
 
     onPaste = (e, data, state) => {
@@ -364,10 +318,7 @@ export default class SlateEditor extends React.Component {
         if (data.type != 'html') return;
         const { document } = serializer.deserialize(data.html);
 
-        return state
-            .transform()
-            .insertFragment(document)
-            .apply();
+        return state.transform().insertFragment(document).apply();
     };
 
     renderSidebar = () => {
@@ -396,7 +347,7 @@ export default class SlateEditor extends React.Component {
         );
     };
 
-    onClickInsertImage = e => {
+    onClickInsertImage = (e) => {
         e.preventDefault();
         let { state } = this.state;
 
@@ -440,16 +391,12 @@ export default class SlateEditor extends React.Component {
         this.setState({ state });
     };
 
-    renderAddBlockButton = props => {
+    renderAddBlockButton = (props) => {
         const { type, label, handler } = props;
-        const onMouseDown = e => handler(e);
+        const onMouseDown = (e) => handler(e);
 
         return (
-            <span
-                key={type}
-                className="SlateEditor__sidebar-button"
-                onMouseDown={onMouseDown}
-            >
+            <span key={type} className="SlateEditor__sidebar-button" onMouseDown={onMouseDown}>
                 {label}
             </span>
         );
@@ -490,17 +437,15 @@ export default class SlateEditor extends React.Component {
         );
     };
 
-    renderMarkButton = props => {
+    renderMarkButton = (props) => {
         const { type, label } = props;
         const isActive = this.hasMark(type);
-        const onMouseDown = e => this.onClickMark(e, type);
+        const onMouseDown = (e) => this.onClickMark(e, type);
 
         return (
             <span
                 key={type}
-                className={
-                    'SlateEditor__menu-button SlateEditor__menu-button-' + type
-                }
+                className={'SlateEditor__menu-button SlateEditor__menu-button-' + type}
                 onMouseDown={onMouseDown}
                 data-active={isActive}
             >
@@ -509,17 +454,15 @@ export default class SlateEditor extends React.Component {
         );
     };
 
-    renderBlockButton = props => {
+    renderBlockButton = (props) => {
         const { type, label } = props;
         const isActive = this.hasBlock(type);
-        const onMouseDown = e => this.onClickBlock(e, type);
+        const onMouseDown = (e) => this.onClickBlock(e, type);
 
         return (
             <span
                 key={type}
-                className={
-                    'SlateEditor__menu-button SlateEditor__menu-button-' + type
-                }
+                className={'SlateEditor__menu-button SlateEditor__menu-button-' + type}
                 onMouseDown={onMouseDown}
                 data-active={isActive}
             >
@@ -528,17 +471,15 @@ export default class SlateEditor extends React.Component {
         );
     };
 
-    renderInlineButton = props => {
+    renderInlineButton = (props) => {
         const { type, label } = props;
         const isActive = this.hasInline(type);
-        const onMouseDown = e => this.onClickLink(e, type);
+        const onMouseDown = (e) => this.onClickLink(e, type);
 
         return (
             <span
                 key={type}
-                className={
-                    'SlateEditor__menu-button SlateEditor__menu-button-' + type
-                }
+                className={'SlateEditor__menu-button SlateEditor__menu-button-' + type}
                 onMouseDown={onMouseDown}
                 data-active={isActive}
             >
@@ -576,9 +517,7 @@ export default class SlateEditor extends React.Component {
         }
 
         sidebar.style.top = `${rect.top + window.scrollY}px`;
-        sidebar.style.left = `${rect.left +
-            window.scrollX -
-            sidebar.offsetWidth}px`;
+        sidebar.style.left = `${rect.left + window.scrollX - sidebar.offsetWidth}px`;
     };
 
     // move menu to center above current selection
@@ -593,10 +532,7 @@ export default class SlateEditor extends React.Component {
 
         const rect = position();
         menu.style.top = `${rect.top + window.scrollY - menu.offsetHeight}px`;
-        menu.style.left = `${rect.left +
-            window.scrollX -
-            menu.offsetWidth / 2 +
-            rect.width / 2}px`;
+        menu.style.left = `${rect.left + window.scrollX - menu.offsetWidth / 2 + rect.width / 2}px`;
     };
 
     render = () => {
diff --git a/src/app/components/elements/SortOrder/SortOrder.story.jsx b/src/app/components/elements/SortOrder/SortOrder.story.jsx
index a5c3bbc2a2777c4cee085acf78438576fb25a43c..dfd5db9e2ba4e4d41fc9dc164755d3add8d7d69f 100644
--- a/src/app/components/elements/SortOrder/SortOrder.story.jsx
+++ b/src/app/components/elements/SortOrder/SortOrder.story.jsx
@@ -8,9 +8,5 @@ storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .addDecorator(Center)
     .add('SortOrder', () => (
-        <SortOrder
-            sortOrder={'promoted'}
-            topic={'life'}
-            horizontal={boolean('dropdown mode?', false)}
-        />
+        <SortOrder sortOrder={'promoted'} topic={'life'} horizontal={boolean('dropdown mode?', false)} />
     ));
diff --git a/src/app/components/elements/SortOrder/index.jsx b/src/app/components/elements/SortOrder/index.jsx
index 8a6f455e3b0dfdf6ab471ebc50fe6bfc6434b60b..fd312eba40b4641ae8d9443f45f29f98572715f7 100644
--- a/src/app/components/elements/SortOrder/index.jsx
+++ b/src/app/components/elements/SortOrder/index.jsx
@@ -62,13 +62,12 @@ const SortOrder = ({ topic, sortOrder, horizontal, pathname }) => {
 
     // vertical dropdown
     if (!horizontal) {
-        const url = (sort, tag = null) =>
-            tag ? `/${sort}/${tag}` : `/${sort}`;
+        const url = (sort, tag = null) => (tag ? `/${sort}/${tag}` : `/${sort}`);
         return (
             <NativeSelect
                 currentlySelected={url(sort, tag)}
                 options={sorts(tag, false)}
-                onChange={el => browserHistory.replace(el.value)}
+                onChange={(el) => browserHistory.replace(el.value)}
             />
         );
     }
@@ -76,7 +75,7 @@ const SortOrder = ({ topic, sortOrder, horizontal, pathname }) => {
     // site header
     return (
         <ul className="nav__block-list">
-            {sorts('', true).map(i => {
+            {sorts('', true).map((i) => {
                 const active = i.value === `/${sort}`;
                 const cls = active ? 'nav__block-list-item--active' : '';
                 return (
diff --git a/src/app/components/elements/SteemLogo/index.jsx b/src/app/components/elements/SteemLogo/index.jsx
index a217febdd01913368ad9b26593e45caaf7f16b4a..89be3587161bfdf8dac5ead5b5df5ff9d36d43b7 100644
--- a/src/app/components/elements/SteemLogo/index.jsx
+++ b/src/app/components/elements/SteemLogo/index.jsx
@@ -2,9 +2,7 @@ import React from 'react';
 import PropTypes from 'prop-types';
 
 const SteemLogo = ({ nightmodeEnabled }) => {
-    const logo = nightmodeEnabled
-        ? '/images/hive-blog-logo-nightmode.svg'
-        : '/images/hive-blog-logo.svg';
+    const logo = nightmodeEnabled ? '/images/hive-blog-logo-nightmode.svg' : '/images/hive-blog-logo.svg';
 
     return (
         <span className="logo">
diff --git a/src/app/components/elements/SteemMarket.jsx b/src/app/components/elements/SteemMarket.jsx
index fabf491cec0f433394b95067b4651df6218cd126..125e9693edbf4c766d7e3aa36f418cd3f83f6930 100644
--- a/src/app/components/elements/SteemMarket.jsx
+++ b/src/app/components/elements/SteemMarket.jsx
@@ -1,3 +1,4 @@
+// eslint-disable-next-line max-classes-per-file
 import React, { Component } from 'react';
 import ReactDOM from 'react-dom';
 import { connect } from 'react-redux';
@@ -11,45 +12,44 @@ class Coin extends Component {
     }
 
     componentDidMount() {
+        // eslint-disable-next-line react/no-find-dom-node,react/no-string-refs
         const node = ReactDOM.findDOMNode(this.refs.coin);
-        node.querySelectorAll('circle').forEach(circle => {
+        node.querySelectorAll('circle').forEach((circle) => {
             circle.setAttribute('r', '8');
             circle.style.fillOpacity = 0;
             circle.style.cursor = 'pointer';
             circle.addEventListener('mouseover', this.onPointMouseMove);
         });
-        node.querySelectorAll('polyline').forEach(circle => {
+        node.querySelectorAll('polyline').forEach((circle) => {
             circle.style.pointerEvents = 'none';
         });
         node.addEventListener('mouseout', this.onPointMouseOut);
     }
 
     componentWillUnmount() {
+        // eslint-disable-next-line react/no-find-dom-node,react/no-string-refs
         const node = ReactDOM.findDOMNode(this.refs.coin);
-        node.querySelectorAll('circle').forEach(circle => {
+        node.querySelectorAll('circle').forEach((circle) => {
             circle.removeEventListener('mouseover', this.onPointMouseMove);
         });
         node.removeEventListener('mouseout', this.onPointMouseOut);
     }
 
     render() {
-        const color = this.props.color;
-        const coin = this.props.coin;
-        const name = coin.get('name');
+        const { color, coin } = this.props;
         const symbol = coin.get('symbol');
         const timepoints = coin.get('timepoints');
         const priceUsd = timepoints.last().get('price_usd');
-        const pricesUsd = timepoints
-            .map(point => parseFloat(point.get('price_usd')))
-            .toJS();
+        const pricesUsd = timepoints.map((point) => parseFloat(point.get('price_usd'))).toJS();
         return (
+            // eslint-disable-next-line react/no-string-refs
             <div ref="coin" className="coin">
                 <div className="chart">
                     <Sparklines data={pricesUsd}>
                         <SparklinesLine
                             color={color}
                             style={{ strokeWidth: 3.0 }}
-                            onMouseMove={e => {
+                            onMouseMove={(e) => {
                                 console.log(e);
                             }}
                         />
@@ -57,22 +57,23 @@ class Coin extends Component {
                     <div className="caption" />
                 </div>
                 <div className="coin-label">
-                    <span className="symbol">{symbol}</span>{' '}
-                    <span className="price">
-                        {parseFloat(priceUsd).toFixed(2)}
-                    </span>
+                    <span className="symbol">{symbol}</span>
+                    {' '}
+                    <span className="price">{parseFloat(priceUsd).toFixed(2)}</span>
                 </div>
             </div>
         );
     }
 
     onPointMouseMove(e) {
+        // eslint-disable-next-line react/no-find-dom-node,react/no-string-refs
         const node = ReactDOM.findDOMNode(this.refs.coin);
         const caption = node.querySelector('.caption');
         const circle = e.currentTarget;
         const circles = node.querySelectorAll('circle');
         const index = Array.prototype.indexOf.call(circles, circle);
-        const points = this.props.coin.get('timepoints');
+        const { coin } = this.props;
+        const points = coin.get('timepoints');
         const point = points.get(index);
         const priceUsd = parseFloat(point.get('price_usd')).toFixed(2);
         const timepoint = point.get('timepoint');
@@ -80,7 +81,8 @@ class Coin extends Component {
         caption.innerText = `$${priceUsd} ${time}`;
     }
 
-    onPointMouseOut(e) {
+    onPointMouseOut() {
+        // eslint-disable-next-line react/no-find-dom-node,react/no-string-refs
         const node = ReactDOM.findDOMNode(this.refs.coin);
         const caption = node.querySelector('.caption');
         caption.innerText = '';
@@ -89,7 +91,7 @@ class Coin extends Component {
 
 class SteemMarket extends Component {
     render() {
-        const steemMarketData = this.props.steemMarketData;
+        const { steemMarketData } = this.props;
         if (steemMarketData.isEmpty()) {
             return null;
         }
@@ -106,12 +108,8 @@ class SteemMarket extends Component {
                     <div className="steem-market">
                         <Coin coin={steem} color="#09d6a8" />
                         <Coin coin={sbd} color="#09d6a8" />
-                        {topCoins.map(coin => (
-                            <Coin
-                                key={coin.get('name')}
-                                coin={coin}
-                                color="#788187"
-                            />
+                        {topCoins.map((coin) => (
+                            <Coin key={coin.get('name')} coin={coin} color="#788187" />
                         ))}
                     </div>
                 </div>
@@ -130,5 +128,5 @@ export default connect(
         };
     },
     // mapDispatchToProps
-    dispatch => ({})
+    () => ({})
 )(SteemMarket);
diff --git a/src/app/components/elements/SubscribeButton.jsx b/src/app/components/elements/SubscribeButton.jsx
index ee6e0a7d42b4683763bb5d98c80205cd028d78c5..687fcdda41078464807d875e61d7b5034fbb4bf3 100644
--- a/src/app/components/elements/SubscribeButton.jsx
+++ b/src/app/components/elements/SubscribeButton.jsx
@@ -12,7 +12,7 @@ class SubscribeButton extends React.Component {
         this.state = { loading: false };
     }
 
-    onClick = e => {
+    onClick = (e) => {
         e.preventDefault();
         const { subscribed, username } = this.props;
         const community = this.props.community.get('name');
@@ -49,9 +49,7 @@ class SubscribeButton extends React.Component {
                     display: this.props.display || 'inline-block',
                 }}
             >
-                <span>
-                    {loading ? loader : subscribed ? 'Joined' : 'Subscribe'}
-                </span>
+                <span>{loading ? loader : subscribed ? 'Joined' : 'Subscribe'}</span>
             </a>
         );
     }
@@ -68,27 +66,15 @@ export default connect(
         return {
             ...ownProps,
             username: state.user.getIn(['current', 'username']),
-            subscribed: state.global.getIn(
-                ['community', ownProps.community, 'context', 'subscribed'],
-                false
-            ),
-            community: state.global.getIn(
-                ['community', ownProps.community],
-                {}
-            ),
+            subscribed: state.global.getIn(['community', ownProps.community, 'context', 'subscribed'], false),
+            community: state.global.getIn(['community', ownProps.community], {}),
         };
     },
-    dispatch => ({
+    (dispatch) => ({
         stateSet: (key, value) => {
             dispatch(globalActions.set({ key, value }));
         },
-        toggleSubscribe: (
-            subscribeToCommunity,
-            community,
-            account,
-            successCallback,
-            errorCallback
-        ) => {
+        toggleSubscribe: (subscribeToCommunity, community, account, successCallback, errorCallback) => {
             let action = 'unsubscribe';
             if (subscribeToCommunity) action = 'subscribe';
             const payload = [
diff --git a/src/app/components/elements/SvgImage.jsx b/src/app/components/elements/SvgImage.jsx
index 9ea98e831fc1e3ca19782da2aefc6bf4a9ec2a59..a468a5f0bb617a16b53f4f8b6f72529f29ac57a5 100644
--- a/src/app/components/elements/SvgImage.jsx
+++ b/src/app/components/elements/SvgImage.jsx
@@ -15,15 +15,7 @@ export default class SvgImage extends React.Component {
             height: this.props.height,
         };
         const image = require(`assets/images/${this.props.name}.svg`);
-        const cn =
-            'SvgImage' +
-            (this.props.className ? ' ' + this.props.className : '');
-        return (
-            <span
-                className={cn}
-                style={style}
-                dangerouslySetInnerHTML={{ __html: image }}
-            />
-        );
+        const cn = 'SvgImage' + (this.props.className ? ' ' + this.props.className : '');
+        return <span className={cn} style={style} dangerouslySetInnerHTML={{ __html: image }} />;
     }
 }
diff --git a/src/app/components/elements/SvgImage.story.jsx b/src/app/components/elements/SvgImage.story.jsx
index a9b5ede88ae9163c60c836e3bce9f01063e94477..68da9918d53182a8b9d589cecf7a02c62280456a 100644
--- a/src/app/components/elements/SvgImage.story.jsx
+++ b/src/app/components/elements/SvgImage.story.jsx
@@ -17,7 +17,7 @@ storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .add('SvgImage', () => (
         <Grid>
-            {svgs.map(svg => (
+            {svgs.map((svg) => (
                 <div key={svg}>
                     <SvgImage
                         name={svg}
diff --git a/src/app/components/elements/TagList.jsx b/src/app/components/elements/TagList.jsx
index d77bbf26a64c57949f50ad80097cb9fd4c66fa11..3e092e977170a5fd8535ea417b5721c3563cdec3 100644
--- a/src/app/components/elements/TagList.jsx
+++ b/src/app/components/elements/TagList.jsx
@@ -8,15 +8,13 @@ class TagList extends Component {
         const { post } = this.props;
         const category = post.get('category');
 
-        const link = tag => {
+        const link = (tag) => {
             if (tag == category) return null;
             return <Link to={`/trending/${tag}`} key={tag}>{` #${tag} `}</Link>;
         };
 
         return (
-            <div className="TagList__horizontal">
-                {normalizeTags(post.get('json_metadata'), category).map(link)}
-            </div>
+            <div className="TagList__horizontal">{normalizeTags(post.get('json_metadata'), category).map(link)}</div>
         );
     }
 }
diff --git a/src/app/components/elements/TimeAgoWrapper/index.jsx b/src/app/components/elements/TimeAgoWrapper/index.jsx
index 73760493b1857e14e2bf46ff73c41602e5ad620d..92b78fefc35a09f2f89d6c71c44ccf3a6c913297 100644
--- a/src/app/components/elements/TimeAgoWrapper/index.jsx
+++ b/src/app/components/elements/TimeAgoWrapper/index.jsx
@@ -11,9 +11,7 @@ class TimeAgoWrapper extends React.Component {
             date = date + 'Z'; // Firefox really wants this Z (Zulu)
         }
         const dt = new Date(date);
-        const date_time = `${this.props.intl.formatDate(
-            dt
-        )} ${this.props.intl.formatTime(dt)}`;
+        const date_time = `${this.props.intl.formatDate(dt)} ${this.props.intl.formatTime(dt)}`;
         return (
             <Tooltip t={date_time} className={className}>
                 <FormattedRelative {...this.props} value={date} />
diff --git a/src/app/components/elements/UserList.jsx b/src/app/components/elements/UserList.jsx
index 2bfb03482dea0433e9ba9f1e22eb416eb6cf674b..5871fc1dadcf322bd3830ffa18753af17f11d568 100644
--- a/src/app/components/elements/UserList.jsx
+++ b/src/app/components/elements/UserList.jsx
@@ -22,7 +22,9 @@ class UserList extends React.Component {
     };
 
     render() {
-        const { state: { historyIndex } } = this;
+        const {
+            state: { historyIndex },
+        } = this;
         const users = this.props.users;
         const title = this.props.title;
 
@@ -40,9 +42,7 @@ class UserList extends React.Component {
         }
 
         let idx = 0;
-        let user_list = users.map(user => (
-            <UserListRow user={user} key={idx++} />
-        ));
+        let user_list = users.map((user) => <UserListRow user={user} key={idx++} />);
         user_list = user_list.toArray();
 
         let currentIndex = -1;
@@ -50,10 +50,7 @@ class UserList extends React.Component {
         const limitedIndex = Math.min(historyIndex, usersLength - PER_PAGE);
         user_list = user_list.reverse().filter(() => {
             currentIndex++;
-            return (
-                currentIndex >= limitedIndex &&
-                currentIndex < limitedIndex + PER_PAGE
-            );
+            return currentIndex >= limitedIndex && currentIndex < limitedIndex + PER_PAGE;
         });
 
         const navButtons = (
@@ -61,36 +58,23 @@ class UserList extends React.Component {
                 <ul className="pager">
                     <li>
                         <div
-                            className={
-                                'button tiny hollow float-left ' +
-                                (historyIndex === 0 ? ' disabled' : '')
-                            }
+                            className={'button tiny hollow float-left ' + (historyIndex === 0 ? ' disabled' : '')}
                             onClick={this._setHistoryPagePrevious}
                             aria-label={tt('g.previous')}
                         >
-                            <span aria-hidden="true">
-                                &larr; {tt('g.previous')}
-                            </span>
+                            <span aria-hidden="true">&larr; {tt('g.previous')}</span>
                         </div>
                     </li>
                     <li>
                         <div
                             className={
                                 'button tiny hollow float-right ' +
-                                (historyIndex >= usersLength - PER_PAGE
-                                    ? ' disabled'
-                                    : '')
-                            }
-                            onClick={
-                                historyIndex >= usersLength - PER_PAGE
-                                    ? null
-                                    : this._setHistoryPageNext
+                                (historyIndex >= usersLength - PER_PAGE ? ' disabled' : '')
                             }
+                            onClick={historyIndex >= usersLength - PER_PAGE ? null : this._setHistoryPageNext}
                             aria-label={tt('g.next')}
                         >
-                            <span aria-hidden="true">
-                                {tt('g.next')} &rarr;
-                            </span>
+                            <span aria-hidden="true">{tt('g.next')} &rarr;</span>
                         </div>
                     </li>
                 </ul>
diff --git a/src/app/components/elements/UserList.story.jsx b/src/app/components/elements/UserList.story.jsx
index 4b2144b6babd9ff0dc697dfd1fa873b1dc47352c..ccaa18d93ce382b744ae6e1d63a5a351ac3bc648 100644
--- a/src/app/components/elements/UserList.story.jsx
+++ b/src/app/components/elements/UserList.story.jsx
@@ -20,10 +20,8 @@ const options = {
 storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .addDecorator(Center)
-    .addDecorator(getStory => <Provider store={store}>{getStory()}</Provider>)
+    .addDecorator((getStory) => <Provider store={store}>{getStory()}</Provider>)
     .add('UserList', () => {
-        let mockUsers = List(
-            Array(number('number of users', 10, options)).fill('test')
-        );
+        let mockUsers = List(Array(number('number of users', 10, options)).fill('test'));
         return <UserList users={mockUsers} title="User List" />;
     });
diff --git a/src/app/components/elements/UserNames.jsx b/src/app/components/elements/UserNames.jsx
index 136972ed99d7e3819a80e393e59434fab49b7d74..f47af128a8f06c3f3a95320df1099a9e2d1f33fb 100644
--- a/src/app/components/elements/UserNames.jsx
+++ b/src/app/components/elements/UserNames.jsx
@@ -57,7 +57,7 @@ class UserNames extends Component {
                     <DropdownMenu
                         key="_others"
                         selected={and_names.length + ' others'}
-                        items={and_names.map(name => {
+                        items={and_names.map((name) => {
                             return { value: name, link: '/@' + name };
                         })}
                         el="div"
diff --git a/src/app/components/elements/UserTitle.jsx b/src/app/components/elements/UserTitle.jsx
index fe9128dd87b3763f3dc503468601841425d17146..86b2f0711cd6b796178a5d9599ab5759b12439ca 100644
--- a/src/app/components/elements/UserTitle.jsx
+++ b/src/app/components/elements/UserTitle.jsx
@@ -25,7 +25,7 @@ class UserTitle extends React.Component {
         this.setState({ showDialog: !this.state.showDialog });
     };
 
-    onSave = newTitle => {
+    onSave = (newTitle) => {
         const community = this.props.community.get('name');
         //-- Simulate a "receiveState" action to feed new title into post state
         let newstate = { content: {}, simulation: true };
@@ -33,12 +33,7 @@ class UserTitle extends React.Component {
         newstate['content'][content_key] = { author_title: newTitle };
         this.props.pushState(newstate);
 
-        this.props.saveTitle(
-            this.props.username,
-            this.props.author,
-            community,
-            newTitle
-        );
+        this.props.saveTitle(this.props.username, this.props.author, community, newTitle);
         this.props.onEditSubmit();
         this.setState({
             newTitle: newTitle,
@@ -67,14 +62,12 @@ class UserTitle extends React.Component {
                     </a>
                     {showDialog && (
                         <Reveal onHide={() => null} show>
-                            <CloseButton
-                                onClick={() => this.onToggleDialog()}
-                            />
+                            <CloseButton onClick={() => this.onToggleDialog()} />
                             <UserTitleEditor
                                 title={title}
                                 username={author}
                                 community={community.get('title')}
-                                onSubmit={newTitle => {
+                                onSubmit={(newTitle) => {
                                     this.onToggleDialog();
                                     this.onSave(newTitle);
                                 }}
@@ -115,10 +108,7 @@ UserTitle.defaultProps = {
 
 export default connect(
     (state, ownProps) => {
-        const community = state.global.getIn(
-            ['community', ownProps.community],
-            Map()
-        );
+        const community = state.global.getIn(['community', ownProps.community], Map());
         const viewer_role = community.getIn(['context', 'role'], 'guest');
         const { author, permlink, title } = ownProps;
         return {
@@ -130,18 +120,11 @@ export default connect(
             viewer_role,
         };
     },
-    dispatch => ({
-        pushState: state => {
+    (dispatch) => ({
+        pushState: (state) => {
             return dispatch(globalActions.receiveState(state));
         },
-        saveTitle: (
-            username,
-            account,
-            community,
-            title,
-            successCallback,
-            errorCallback
-        ) => {
+        saveTitle: (username, account, community, title, successCallback, errorCallback) => {
             const action = 'setUserTitle';
 
             const payload = [
diff --git a/src/app/components/elements/Userpic.jsx b/src/app/components/elements/Userpic.jsx
index c46cad5629bd256745fc3111083ff97160a84f98..292234447ec1108a7c7e9dfacbdbf004c1d6a19a 100644
--- a/src/app/components/elements/Userpic.jsx
+++ b/src/app/components/elements/Userpic.jsx
@@ -29,10 +29,7 @@ export default connect((state, ownProps) => {
 
     let hide = false;
     if (hideIfDefault) {
-        const url = state.userProfiles.getIn(
-            ['profiles', account, 'metadata', 'profile', 'profile_image'],
-            null
-        );
+        const url = state.userProfiles.getIn(['profiles', account, 'metadata', 'profile', 'profile_image'], null);
         hide = !url || !/^(https?:)\/\//.test(url);
     }
 
diff --git a/src/app/components/elements/Userpic.story.jsx b/src/app/components/elements/Userpic.story.jsx
index 6969caaa720538ca96ec6b369dcdeef26e807aa8..29e8ef587994a29d90b5fdc591849843b4967457 100644
--- a/src/app/components/elements/Userpic.story.jsx
+++ b/src/app/components/elements/Userpic.story.jsx
@@ -4,8 +4,8 @@ import { withKnobs } from '@storybook/addon-knobs';
 import rootReducer from 'app/redux/RootReducer';
 import { Provider } from 'react-redux';
 import { createStore } from 'redux';
-import Userpic from './Userpic';
 import { Center } from 'decorators';
+import Userpic from './Userpic';
 
 const store = createStore(rootReducer);
 global.$STM_Config = { img_proxy_prefix: 'https://images.hive.blog/' };
@@ -14,4 +14,4 @@ storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .addDecorator(Center)
     .addDecorator((getStory) => <Provider store={store}>{getStory()}</Provider>)
-    .add('Userpic', () => <Userpic account={'maitland'} />);
+    .add('Userpic', () => <Userpic account="maitland" />);
diff --git a/src/app/components/elements/VerticalMenu.jsx b/src/app/components/elements/VerticalMenu.jsx
index f75a148fce4a5d3a015425fcf425597d4eea32ee..970cd8d9e7885195ce18957b8c64656f617b9488 100644
--- a/src/app/components/elements/VerticalMenu.jsx
+++ b/src/app/components/elements/VerticalMenu.jsx
@@ -10,7 +10,7 @@ export default class VerticalMenu extends React.Component {
         hideValue: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
     };
 
-    closeMenu = e => {
+    closeMenu = (e) => {
         // If this was not a left click, or if CTRL or CMD were held, do not close the menu.
         if (e.button !== 0 || e.ctrlKey || e.metaKey) return;
 
@@ -29,11 +29,7 @@ export default class VerticalMenu extends React.Component {
                         <li key={idx} onClick={this.closeMenu}>
                             {i.link ? (
                                 i.link.match(/^http(s?)/) ? (
-                                    <a
-                                        href={i.link}
-                                        target="_blank"
-                                        rel="noopener noreferrer"
-                                    >
+                                    <a href={i.link} target="_blank" rel="noopener noreferrer">
                                         {i.icon && <Icon name={i.icon} />}
                                         {i.label ? i.label : i.value}
                                     </a>
diff --git a/src/app/components/elements/VideoAd.jsx b/src/app/components/elements/VideoAd.jsx
index 67f4d499612518cc3ec6cfe2c776a0ab52e1215b..2d751118fa1ed24fb9b978348ae5df74e707a750 100644
--- a/src/app/components/elements/VideoAd.jsx
+++ b/src/app/components/elements/VideoAd.jsx
@@ -1,5 +1,6 @@
-import React, { Component, PropTypes } from 'react';
+import React, { Component } from 'react';
 import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
 
 class VideoAd extends Component {
     constructor(props) {
@@ -15,11 +16,6 @@ class VideoAd extends Component {
         }
     }
 
-    componentDidMount() {
-        if (!this.ad_identifier || !this.enabled) return;
-        const ad_identifier = this.ad_identifier;
-    }
-
     render() {
         if (!this.ad_identifier || !this.enabled) {
             return <div id="disabled_video_ad" style={{ display: 'none' }} />;
@@ -38,9 +34,7 @@ VideoAd.defaultProps = {};
 
 export default connect(
     (state, props) => {
-        const enabled =
-            !!state.app.getIn(['googleAds', 'videoAdsEnabled']) &&
-            !!process.env.BROWSER;
+        const enabled = !!state.app.getIn(['googleAds', 'videoAdsEnabled']) && !!process.env.BROWSER;
 
         return {
             enabled,
@@ -48,5 +42,4 @@ export default connect(
             ...props,
         };
     },
-    dispatch => ({})
 )(VideoAd);
diff --git a/src/app/components/elements/VisualEditor.jsx b/src/app/components/elements/VisualEditor.jsx
new file mode 100644
index 0000000000000000000000000000000000000000..0cb42902edb8105281095a4f17c27c0630728a6c
--- /dev/null
+++ b/src/app/components/elements/VisualEditor.jsx
@@ -0,0 +1,48 @@
+import React, { Component } from 'react';
+
+import PropTypes from 'prop-types';
+
+let RichTextEditor;
+if (process.env.BROWSER) {
+    // eslint-disable-next-line global-require
+    RichTextEditor = require('react-rte').default;
+}
+
+class VisualEditor extends Component {
+    static propTypes = {
+        onChange: PropTypes.func,
+    };
+
+    constructor(props) {
+        super(props);
+
+        const state = {};
+
+        if (RichTextEditor) {
+            if (props.value) {
+                state.value = RichTextEditor.createValueFromString(props.value, 'markdown');
+            } else {
+                state.value = RichTextEditor.createEmptyValue();
+            }
+        }
+
+        this.state = state;
+    }
+
+    onChange = (value) => {
+        this.setState({ value });
+        if (this.props.onChange) {
+            this.props.onChange(value.toString('markdown'));
+        }
+    };
+
+    render() {
+        return (
+            <div className="visual-editor">
+                {RichTextEditor && <RichTextEditor value={this.state.value} onChange={this.onChange} />}
+            </div>
+        );
+    }
+}
+
+export default VisualEditor;
diff --git a/src/app/components/elements/VisualEditor.scss b/src/app/components/elements/VisualEditor.scss
new file mode 100644
index 0000000000000000000000000000000000000000..27600ad5b74828eb1c714ae3e999460a2a7f8bee
--- /dev/null
+++ b/src/app/components/elements/VisualEditor.scss
@@ -0,0 +1,10 @@
+.visual-editor {
+  button {
+    margin-right: 0 !important;
+  }
+  .DraftEditor-editorContainer {
+    > div {
+      min-height: 200px;
+    }
+  }
+}
diff --git a/src/app/components/elements/VotesAndComments.jsx b/src/app/components/elements/VotesAndComments.jsx
index 531a1bfd04b23cdc42d5b90972acadc60bc23179..276c725e79a8da035c084e409b1086d385f6d16e 100644
--- a/src/app/components/elements/VotesAndComments.jsx
+++ b/src/app/components/elements/VotesAndComments.jsx
@@ -1,15 +1,13 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { Link } from 'react-router';
 import { connect } from 'react-redux';
 import Icon from 'app/components/elements/Icon';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import tt from 'counterpart';
 
-class VotesAndComments extends React.Component {
+class VotesAndComments extends PureComponent {
     static propTypes = {
-        // HTML properties
-        post: PropTypes.object.isRequired,
         commentsLink: PropTypes.string.isRequired,
 
         // Redux connect properties
@@ -17,24 +15,10 @@ class VotesAndComments extends React.Component {
         totalVotes: PropTypes.number,
     };
 
-    constructor(props) {
-        super(props);
-        this.shouldComponentUpdate = shouldComponentUpdate(
-            this,
-            'VotesAndComments'
-        );
-    }
-
     render() {
         const { comments, commentsLink, totalVotes } = this.props;
-        let comments_tooltip = tt(
-            'votesandcomments_jsx.no_responses_yet_click_to_respond'
-        );
-        if (comments > 0)
-            comments_tooltip = tt(
-                'votesandcomments_jsx.response_count_tooltip',
-                { count: comments }
-            );
+        let comments_tooltip = tt('votesandcomments_jsx.no_responses_yet_click_to_respond');
+        if (comments > 0) comments_tooltip = tt('votesandcomments_jsx.response_count_tooltip', { count: comments });
 
         return (
             <span className="VotesAndComments">
@@ -44,20 +28,15 @@ class VotesAndComments extends React.Component {
                         count: totalVotes,
                     })}
                 >
-                    <Icon size="1x" name="chevron-up-circle" />&nbsp;{
-                        totalVotes
-                    }
+                    <Icon size="1x" name="chevron-up-circle" />
+                    &nbsp;
+                    {totalVotes}
                 </span>
-                <span
-                    className={
-                        'VotesAndComments__comments' +
-                        (comments === 0 ? ' no-comments' : '')
-                    }
-                >
+                <span className={'VotesAndComments__comments' + (comments === 0 ? ' no-comments' : '')}>
                     <Link to={commentsLink} title={comments_tooltip}>
-                        <Icon name={comments > 1 ? 'chatboxes' : 'chatbox'} />&nbsp;{
-                            comments
-                        }
+                        <Icon name={comments > 1 ? 'chatboxes' : 'chatbox'} />
+                        &nbsp;
+                        {comments}
                     </Link>
                 </span>
             </span>
diff --git a/src/app/components/elements/Voting.jsx b/src/app/components/elements/Voting.jsx
index 09979cc81c74a01a5fa75710ff7245a03980107a..a65c74ef589cba713b8c59dad3affdf906211388 100644
--- a/src/app/components/elements/Voting.jsx
+++ b/src/app/components/elements/Voting.jsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 import Slider from 'react-rangeslider';
@@ -9,7 +9,7 @@ import Icon from 'app/components/elements/Icon';
 import { DEBT_TOKEN_SHORT, LIQUID_TOKEN_UPPERCASE, INVEST_TOKEN_SHORT } from 'app/client_config';
 import FormattedAsset from 'app/components/elements/FormattedAsset';
 import { pricePerHive } from 'app/utils/StateFunctions';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import { formatDecimal, parsePayoutAmount } from 'app/utils/ParsersAndFormatters';
 import DropdownMenu from 'app/components/elements/DropdownMenu';
 import TimeAgoWrapper from 'app/components/elements/TimeAgoWrapper';
@@ -46,7 +46,7 @@ function abs(value) {
     return Math.abs(parseInt(value));
 }
 
-class Voting extends React.Component {
+class Voting extends PureComponent {
     static propTypes = {
         // HTML properties
         showList: PropTypes.bool,
@@ -79,19 +79,21 @@ class Voting extends React.Component {
             },
         };
 
-        this.voteUp = e => {
+        this.voteUp = (e) => {
             e && e.preventDefault();
             this.voteUpOrDown(true);
         };
-        this.voteDown = e => {
+        this.voteDown = (e) => {
             e && e.preventDefault();
             this.voteUpOrDown(false);
         };
-        this.voteUpOrDown = up => {
+        this.voteUpOrDown = (up) => {
             if (this.props.voting) return;
             this.setState({ votingUp: up, votingDown: !up });
             if (this.state.showWeight) this.setState({ showWeight: false });
-            const { myVote, author, permlink, username, is_comment } = this.props;
+            const {
+                myVote, author, permlink, username,
+            } = this.props;
 
             let weight;
             if (myVote > 0 || myVote < 0) {
@@ -117,7 +119,7 @@ class Voting extends React.Component {
             });
         };
 
-        this.handleWeightChange = up => weight => {
+        this.handleWeightChange = (up) => (weight) => {
             let w;
             if (up) {
                 w = {
@@ -133,7 +135,7 @@ class Voting extends React.Component {
             this.setState({ sliderWeight: w });
         };
 
-        this.storeSliderWeight = up => () => {
+        this.storeSliderWeight = (up) => () => {
             const { username, is_comment } = this.props;
             const weight = up ? this.state.sliderWeight.up : this.state.sliderWeight.down;
             localStorage.setItem(
@@ -145,10 +147,10 @@ class Voting extends React.Component {
             const { username, enable_slider, is_comment } = this.props;
             if (enable_slider) {
                 const sliderWeightUp = Number(
-                    localStorage.getItem('voteWeight' + '-' + username + (is_comment ? '-comment' : ''))
+                    localStorage.getItem('voteWeight-' + username + (is_comment ? '-comment' : ''))
                 );
                 const sliderWeightDown = Number(
-                    localStorage.getItem('voteWeight' + 'Down' + '-' + username + (is_comment ? '-comment' : ''))
+                    localStorage.getItem('voteWeightDown-' + username + (is_comment ? '-comment' : ''))
                 );
                 this.setState({
                     sliderWeight: {
@@ -159,23 +161,24 @@ class Voting extends React.Component {
             }
         };
 
-        this.toggleWeightUp = e => {
+        this.toggleWeightUp = (e) => {
             e.preventDefault();
             this.toggleWeightUpOrDown(true);
         };
 
-        this.toggleWeightDown = e => {
+        this.toggleWeightDown = (e) => {
             e && e.preventDefault();
             this.toggleWeightUpOrDown(false);
         };
 
-        this.toggleWeightUpOrDown = up => {
+        this.toggleWeightUpOrDown = (up) => {
             this.setState({
+                // eslint-disable-next-line react/no-access-state-in-setstate
                 showWeight: !this.state.showWeight,
                 showWeightDir: up ? 'up' : 'down',
             });
         };
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'Voting');
+        // this.shouldComponentUpdate = shouldComponentUpdate(this, 'Voting');
     }
 
     render() {
@@ -185,11 +188,9 @@ class Voting extends React.Component {
             showList,
             voting,
             enable_slider,
-            is_comment,
             post,
             price_per_hive,
             hbd_print_rate,
-            username,
         } = this.props;
 
         // `lite` Voting component: e.g. search results
@@ -203,17 +204,22 @@ class Voting extends React.Component {
             );
         }
 
-        const { votingUp, votingDown, showWeight, showWeightDir } = this.state;
+        const {
+ votingUp, votingDown, showWeight, showWeightDir
+} = this.state;
 
         const votingUpActive = voting && votingUp;
         const votingDownActive = voting && votingDown;
 
-        const slider = up => {
+        const slider = (up) => {
             const b = up ? this.state.sliderWeight.up : this.state.sliderWeight.down;
             const s = up ? '' : '-';
             return (
                 <span>
-                    <div className="weight-display">{s + b / 100}%</div>
+                    <div className="weight-display">
+                        {s + b / 100}
+                        %
+                    </div>
                     <Slider
                         min={100}
                         max={MAX_WEIGHT}
@@ -230,10 +236,9 @@ class Voting extends React.Component {
         let downVote;
         if (true) {
             const down = <Icon name={votingDownActive ? 'empty' : 'chevron-down-circle'} className="flag" />;
-            const classDown =
-                'Voting__button Voting__button-down' +
-                (myVote < 0 ? ' Voting__button--downvoted' : '') +
-                (votingDownActive ? ' votingDown' : '');
+            const classDown = 'Voting__button Voting__button-down'
+                + (myVote < 0 ? ' Voting__button--downvoted' : '')
+                + (votingDownActive ? ' votingDown' : '');
             // myVote === current vote
 
             let dropdown = (
@@ -265,16 +270,16 @@ class Voting extends React.Component {
                             this.toggleWeightDown();
                         }}
                         title={down}
-                        position={'right'}
+                        position="right"
                     >
                         <div className="Voting__adjust_weight_down">
-                            {(myVote == null || myVote === 0) &&
-                                enable_slider && <div className="weight-container">{slider(false)}</div>}
+                            {(myVote == null || myVote === 0)
+                                && enable_slider && <div className="weight-container">{slider(false)}</div>}
                             <CloseButton onClick={() => this.setState({ showWeight: false })} />
                             <div className="clear Voting__about-flag">
                                 {ABOUT_FLAG}
                                 <br />
-                                <span href="#" onClick={this.voteDown} className="button outline" title="Downvote">
+                                <span role="button" tabIndex={0} href="#" onClick={this.voteDown} className="button outline" title="Downvote">
                                     Submit
                                 </span>
                             </div>
@@ -310,10 +315,9 @@ class Voting extends React.Component {
         const shown_payout = payout_limit_hit && max_payout > 0 ? max_payout : total_payout;
 
         const up = <Icon name={votingUpActive ? 'empty' : 'chevron-up-circle'} className="upvote" />;
-        const classUp =
-            'Voting__button Voting__button-up' +
-            (myVote > 0 ? ' Voting__button--upvoted' : '') +
-            (votingUpActive ? ' votingUp' : '');
+        const classUp = 'Voting__button Voting__button-up'
+            + (myVote > 0 ? ' Voting__button--upvoted' : '')
+            + (votingUpActive ? ' votingUp' : '');
 
         const payoutItems = [];
 
@@ -329,17 +333,17 @@ class Voting extends React.Component {
             if (max_payout > 0) {
                 payoutItems.push({
                     value:
-                        tt('voting_jsx.breakdown') +
-                        ': ' +
-                        (fmt(pending_hbd, DEBT_TOKEN_SHORT) + ', ') +
-                        (hbd_print_rate != HBD_PRINT_RATE_MAX ? fmt(pending_hive, LIQUID_TOKEN_UPPERCASE) + ', ' : '') +
-                        fmt(pending_hp, INVEST_TOKEN_SHORT),
+                        tt('voting_jsx.breakdown')
+                        + ': '
+                        + (fmt(pending_hbd, DEBT_TOKEN_SHORT) + ', ')
+                        + (hbd_print_rate != HBD_PRINT_RATE_MAX ? fmt(pending_hive, LIQUID_TOKEN_UPPERCASE) + ', ' : '')
+                        + fmt(pending_hp, INVEST_TOKEN_SHORT),
                 });
             }
 
             const beneficiaries = post.get('beneficiaries');
             if (beneficiaries) {
-                beneficiaries.forEach(function(key) {
+                beneficiaries.forEach((key) => {
                     payoutItems.push({
                         value: key.get('account') + ': ' + (fmt(parseFloat(key.get('weight')) / 100) + '%'),
                         link: '/@' + key.get('account'),
@@ -349,7 +353,9 @@ class Voting extends React.Component {
 
             const payoutDate = (
                 <span>
-                    {tt('voting_jsx.payout')} <TimeAgoWrapper date={payout_at} />
+                    {tt('voting_jsx.payout')}
+                    {' '}
+                    <TimeAgoWrapper date={payout_at} />
                 </span>
             );
             payoutItems.push({ value: payoutDate });
@@ -415,22 +421,31 @@ class Voting extends React.Component {
 
         let voters_list = null;
         if (showList && total_votes > 0 && active_votes) {
-            let voters = [];
+            const voters = [];
 
             // add top votes
             const avotes = active_votes.toJS();
             const maxlen = Math.min(avotes.length, MAX_VOTES_DISPLAY);
             avotes.sort((a, b) => (abs(a.rshares) > abs(b.rshares) ? -1 : 1));
+            // eslint-disable-next-line no-plusplus
             for (let v = 0; v < maxlen; ++v) {
                 const { rshares, voter } = avotes[v];
-                if (rshares === 0) continue;
-                const rshares_percent = rshares * 100 / net_rshares;
-                const vote_value = shown_payout * rshares_percent / 100;
-                const sign = rshares < 0 ? '-' : '';
-                voters.push({
-                    value: `${voter}: ${sign}$${Math.abs(vote_value).toFixed(2)}`,
-                    link: '/@' + voter,
-                });
+                if (rshares !== 0) {
+                    const rshares_percent = (rshares * 100) / net_rshares;
+                    const vote_value = (shown_payout * rshares_percent) / 100;
+                    const sign = rshares < 0 ? '-' : '';
+                    let vote_value_string = '';
+                    if (shown_payout > 0) {
+                        vote_value_string = `: ${sign}$${Math.abs(vote_value).toFixed(2)}`;
+                    } else if (sign === '-') {
+                        vote_value_string = ` [${sign}]`;
+                    }
+
+                    voters.push({
+                        value: `${voter}${vote_value_string}`,
+                        link: '/@' + voter,
+                    });
+                }
             }
 
             // add overflow, if any
@@ -489,7 +504,7 @@ class Voting extends React.Component {
                     <div className="Voting__adjust_weight">
                         {votingUpActive ? (
                             <a href="#" onClick={() => null} className="confirm_weight" title={tt('g.upvote')}>
-                                <Icon size="2x" name={'empty'} />
+                                <Icon size="2x" name="empty" />
                             </a>
                         ) : (
                             <a href="#" onClick={this.voteUp} className="confirm_weight" title={tt('g.upvote')}>
@@ -533,7 +548,7 @@ export default connect(
 
         const author = post.get('author');
         const permlink = post.get('permlink');
-        let votes_key = ['content', author + '/' + permlink, 'active_votes'];
+        const votes_key = ['content', author + '/' + permlink, 'active_votes'];
         const active_votes = state.global.getIn(votes_key, List());
         const is_comment = post.get('depth') == 0;
 
@@ -548,10 +563,10 @@ export default connect(
 
         let myVote = ownProps.myVote || null; // ownProps: test only
         if (username && active_votes) {
-            const vote = active_votes.find(el => el.get('voter') === username);
+            const vote = active_votes.find((el) => el.get('voter') === username);
             if (vote) {
-                let has_rshares = vote.get('rshares') !== undefined;
-                let has_percent = vote.get('percent') !== undefined;
+                const has_rshares = vote.get('rshares') !== undefined;
+                const has_percent = vote.get('percent') !== undefined;
                 if (has_rshares && !has_percent) {
                     myVote = parseInt(vote.get('rshares'), 10);
                 } else if (!has_rshares && has_percent) {
@@ -580,25 +595,24 @@ export default connect(
     },
 
     // mapDispatchToProps
-    dispatch => ({
-        vote: (weight, { author, permlink, username, myVote, isFlag, rshares }) => {
+    (dispatch) => ({
+        vote: (weight, {
+ author, permlink, username, myVote, isFlag, rshares
+}) => {
             const confirm = () => {
                 // new vote
                 if (myVote == null) return null;
 
                 // changing a vote
-                if (weight === 0)
-                    return isFlag
+                if (weight === 0) { return isFlag
                         ? tt('voting_jsx.removing_your_vote')
-                        : tt('voting_jsx.removing_your_vote_will_reset_curation_rewards_for_this_post');
-                if (weight > 0)
-                    return isFlag
+                        : tt('voting_jsx.removing_your_vote_will_reset_curation_rewards_for_this_post'); }
+                if (weight > 0) { return isFlag
                         ? tt('voting_jsx.changing_to_an_upvote')
-                        : tt('voting_jsx.changing_to_an_upvote_will_reset_curation_rewards_for_this_post');
-                if (weight < 0)
-                    return isFlag
+                        : tt('voting_jsx.changing_to_an_upvote_will_reset_curation_rewards_for_this_post'); }
+                if (weight < 0) { return isFlag
                         ? tt('voting_jsx.changing_to_a_downvote')
-                        : tt('voting_jsx.changing_to_a_downvote_will_reset_curation_rewards_for_this_post');
+                        : tt('voting_jsx.changing_to_a_downvote_will_reset_curation_rewards_for_this_post'); }
                 return null;
             };
             dispatch(
@@ -615,7 +629,7 @@ export default connect(
                         },
                     },
                     confirm,
-                    errorCallback: errorKey => {
+                    errorCallback: (errorKey) => {
                         console.log('Transaction Error:' + errorKey);
                     },
                 })
diff --git a/src/app/components/elements/Voting.story.jsx b/src/app/components/elements/Voting.story.jsx
index bdab92c1c71bd330e44efe8a481de6aaf1e04b2c..0f154e378f7313c1393043cb296639f4983e7151 100644
--- a/src/app/components/elements/Voting.story.jsx
+++ b/src/app/components/elements/Voting.story.jsx
@@ -13,13 +13,13 @@ const store = createStore(rootReducer);
 storiesOf('Elements', module)
     .addDecorator(withKnobs)
     .addDecorator(Center)
-    .addDecorator(getStory => <Provider store={store}>{getStory()}</Provider>)
+    .addDecorator((getStory) => <Provider store={store}>{getStory()}</Provider>)
     .add('Voting', () => (
         <IntlProvider locale="en">
             <Voting
                 post={'cool Post'}
                 post_obj={{
-                    get: arg => {
+                    get: (arg) => {
                         switch (arg) {
                             case 'is_paidout':
                                 return true;
diff --git a/src/app/components/elements/Voting.test.jsx b/src/app/components/elements/Voting.test.jsx
index bb1ab1c0c6402c2f61793c3d9f53bab0fa91f3e7..deef4bfd7eb7747273d682d70e70ebc2b772c4ef 100644
--- a/src/app/components/elements/Voting.test.jsx
+++ b/src/app/components/elements/Voting.test.jsx
@@ -2,16 +2,15 @@ import React from 'react';
 import { IntlProvider } from 'react-intl';
 import { Provider } from 'react-redux';
 import { createStore } from 'redux';
-import { configure, mount, shallow } from 'enzyme';
-import Adapter from 'enzyme-adapter-react-15';
+import { configure, shallow } from 'enzyme';
+import Adapter from 'enzyme-adapter-react-16';
 import { fromJS, Map } from 'immutable';
 import renderer from 'react-test-renderer';
 import rootReducer from 'app/redux/RootReducer';
-import Voting from './Voting';
 import configureMockStore from 'redux-mock-store';
+import Voting from './Voting';
 
 global.window = {};
-import localStorage from 'mock-local-storage';
 window.localStorage = global.localStorage;
 
 configure({ adapter: new Adapter() });
@@ -62,10 +61,10 @@ describe('Voting', () => {
             routing: {},
             app: {},
         });
-        let wrapped = shallow(
+        const wrapped = shallow(
             <Voting
-                flag={true}
-                vote={(w, p) => {}}
+                flag
+                vote={() => {}}
                 post={voteTestObj}
                 price_per_hive={1}
                 hbd_print_rate={10000}
@@ -88,11 +87,11 @@ describe('Voting', () => {
             routing: {},
             app: {},
         });
-        let wrapped = shallow(
+        const wrapped = shallow(
             <Voting
-                flag={true}
+                flag
                 myVote={-666}
-                vote={(w, p) => {}}
+                vote={() => {}}
                 post={voteTestObj}
                 price_per_hive={1}
                 hbd_print_rate={10000}
@@ -100,13 +99,9 @@ describe('Voting', () => {
             />
         ).dive();
         wrapped.find('#revoke_downvote_button').simulate('click');
-        expect(mockStore.getActions()[0].type).toEqual(
-            'transaction/BROADCAST_OPERATION'
-        );
+        expect(mockStore.getActions()[0].type).toEqual('transaction/BROADCAST_OPERATION');
         expect(mockStore.getActions()[0].payload.operation.weight).toEqual(0);
-        expect(mockStore.getActions()[0].payload.operation.voter).toEqual(
-            'Janice'
-        );
+        expect(mockStore.getActions()[0].payload.operation.voter).toEqual('Janice');
     });
 
     it('should render upvote and should not render flag if user is logged in and flag prop is false.', () => {
@@ -119,10 +114,10 @@ describe('Voting', () => {
             routing: {},
             app: {},
         });
-        let wrapped = shallow(
+        const wrapped = shallow(
             <Voting
                 flag={false}
-                vote={(w, p) => {}}
+                vote={() => {}}
                 post={voteTestObj}
                 price_per_hive={1}
                 hbd_print_rate={10000}
@@ -143,10 +138,10 @@ describe('Voting', () => {
             routing: {},
             app: {},
         });
-        let wrapped = shallow(
+        const wrapped = shallow(
             <Voting
                 flag={false}
-                vote={(w, p) => {}}
+                vote={() => {}}
                 post={voteTestObj}
                 price_per_hive={1}
                 hbd_print_rate={10000}
@@ -154,15 +149,9 @@ describe('Voting', () => {
             />
         ).dive();
         wrapped.find('#upvote_button').simulate('click');
-        expect(mockStore.getActions()[0].type).toEqual(
-            'transaction/BROADCAST_OPERATION'
-        );
-        expect(mockStore.getActions()[0].payload.operation.weight).toEqual(
-            10000
-        );
-        expect(mockStore.getActions()[0].payload.operation.voter).toEqual(
-            'Janice'
-        );
+        expect(mockStore.getActions()[0].type).toEqual('transaction/BROADCAST_OPERATION');
+        expect(mockStore.getActions()[0].payload.operation.weight).toEqual(10000);
+        expect(mockStore.getActions()[0].payload.operation.voter).toEqual('Janice');
     });
 
     it('should show all HP if percent_hbd is 0', () => {
@@ -179,18 +168,11 @@ describe('Voting', () => {
         const component = renderer.create(
             <Provider store={store}>
                 <IntlProvider locale="en">
-                    <Voting
-                        vote={(w, p) => {}}
-                        post={post_obj}
-                        price_per_hive={1}
-                        hbd_print_rate={10000}
-                    />
+                    <Voting vote={() => {}} post={post_obj} price_per_hive={1} hbd_print_rate={10000} />
                 </IntlProvider>
             </Provider>
         );
-        expect(JSON.stringify(component.toJSON())).toContain(
-            '0.00 HBD, 10.00 HP'
-        );
+        expect(JSON.stringify(component.toJSON())).toContain('0.00 HBD, 10.00 HP');
     });
 
     it('should omit liquid hive if print rate is 10000', () => {
@@ -207,18 +189,11 @@ describe('Voting', () => {
         const component = renderer.create(
             <Provider store={store}>
                 <IntlProvider locale="en">
-                    <Voting
-                        vote={(w, p) => {}}
-                        post={post_obj}
-                        price_per_hive={1}
-                        hbd_print_rate={10000}
-                    />
+                    <Voting vote={() => {}} post={post_obj} price_per_hive={1} hbd_print_rate={10000} />
                 </IntlProvider>
             </Provider>
         );
-        expect(JSON.stringify(component.toJSON())).toContain(
-            '5.00 HBD, 5.00 HP'
-        );
+        expect(JSON.stringify(component.toJSON())).toContain('5.00 HBD, 5.00 HP');
     });
 
     it('should show liquid hive if print rate is < 10000', () => {
@@ -235,17 +210,10 @@ describe('Voting', () => {
         const component = renderer.create(
             <Provider store={store}>
                 <IntlProvider locale="en">
-                    <Voting
-                        vote={(w, p) => {}}
-                        post={post_obj}
-                        price_per_hive={1}
-                        hbd_print_rate={5000}
-                    />
+                    <Voting vote={() => {}} post={post_obj} price_per_hive={1} hbd_print_rate={5000} />
                 </IntlProvider>
             </Provider>
         );
-        expect(JSON.stringify(component.toJSON())).toContain(
-            '2.50 HBD, 2.50 HIVE, 5.00 HP'
-        );
+        expect(JSON.stringify(component.toJSON())).toContain('2.50 HBD, 2.50 HIVE, 5.00 HP');
     });
 });
diff --git a/src/app/components/elements/WelcomePanel.jsx b/src/app/components/elements/WelcomePanel.jsx
index 2ed812e5c2d791963039ee93d519f5d643b86c89..1dd11489cbe742354fcc45e2a33ea3722a17b1f3 100644
--- a/src/app/components/elements/WelcomePanel.jsx
+++ b/src/app/components/elements/WelcomePanel.jsx
@@ -35,22 +35,16 @@ export default class WelcomePanel extends React.Component {
                                 {/*tt('navigation.intro_tagline')*/}
                             </h2>
                             <h4 className="fade-in--3">
-                                {
-                                    'A social network owned and operated by its users, '
-                                }
+                                {'A social network owned and operated by its users, '}
                                 {'powered by '}
-                                <a href="https://steem.io">Steem</a>.
-                                {/*tt('navigation.intro_paragraph')*/}
+                                <a href="https://steem.io">Steem</a>.{/*tt('navigation.intro_paragraph')*/}
                             </h4>
                             <div>
                                 {signup} {learn}
                             </div>
                         </div>
                         <div className="text-center welcomeImage medium-4 large-3 show-for-medium">
-                            <img
-                                className="heroImage"
-                                src={require('app/assets/images/welcome-hero.png')}
-                            />
+                            <img className="heroImage" src={require('app/assets/images/welcome-hero.png')} />
                         </div>
                     </div>
                 </div>
diff --git a/src/app/components/elements/YoutubePreview.jsx b/src/app/components/elements/YoutubePreview.jsx
index da510177f29edafd967548387a218d2c9d6638bf..c506fac5896bdab44976acbe22254f3780384b89 100644
--- a/src/app/components/elements/YoutubePreview.jsx
+++ b/src/app/components/elements/YoutubePreview.jsx
@@ -1,7 +1,7 @@
 /* eslint react/prop-types: 0 */
 import React from 'react';
 import PropTypes from 'prop-types';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 
 const { string, number } = PropTypes;
 
@@ -27,22 +27,23 @@ export default class YoutubePreview extends React.Component {
         this.state = {};
     }
 
-    shouldComponentUpdate = shouldComponentUpdate(this, 'YoutubePreview');
+    // shouldComponentUpdate = shouldComponentUpdate(this, 'YoutubePreview');
 
     onPlay = () => {
         this.setState({ play: true });
     };
 
     render() {
-        const { youTubeId, width, height, startTime, dataParams } = this.props;
+        const {
+ youTubeId, width, height, startTime, dataParams
+} = this.props;
         const { play } = this.state;
 
         if (!play) {
             // mqdefault.jpg (medium quality version, 320px × 180px)
             // hqdefault.jpg (high quality version, 480px × 360px
             // sddefault.jpg (standard definition version, 640px × 480px)
-            const thumbnail =
-                width <= 320
+            const thumbnail = width <= 320
                     ? 'mqdefault.jpg'
                     : width <= 480
                     ? 'hqdefault.jpg'
diff --git a/src/app/components/modules/ArticleLayoutSelector.jsx b/src/app/components/modules/ArticleLayoutSelector.jsx
index dcd1f202ea2fdb6a3364a56947fa05734a82dc5a..a280d2c77fe90bc99fb1350ed227c3045aa9528f 100644
--- a/src/app/components/modules/ArticleLayoutSelector.jsx
+++ b/src/app/components/modules/ArticleLayoutSelector.jsx
@@ -8,10 +8,7 @@ class ArticleLayoutSelector extends React.Component {
     render() {
         return (
             <div className="articles__layout-selector">
-                <svg
-                    className="articles__icon--layout"
-                    onClick={this.props.toggleBlogmode}
-                >
+                <svg className="articles__icon--layout" onClick={this.props.toggleBlogmode}>
                     <g
                         id="svg-icon-symbol-layout"
                         viewBox="0 0 24 24"
@@ -55,10 +52,10 @@ class ArticleLayoutSelector extends React.Component {
 }
 
 export default connect(
-    state => ({
+    (state) => ({
         blogmode: state.app.getIn(['user_preferences', 'blogmode']),
     }),
-    dispatch => ({
+    (dispatch) => ({
         toggleBlogmode: () => {
             dispatch(appActions.toggleBlogmode());
         },
diff --git a/src/app/components/modules/CommunitySettings.jsx b/src/app/components/modules/CommunitySettings.jsx
index ebe6724a81b3ed3aa62e4534a0bd61cdf2ff4050..ba66008b71cd161b3efab4531a2bd511c6486108 100644
--- a/src/app/components/modules/CommunitySettings.jsx
+++ b/src/app/components/modules/CommunitySettings.jsx
@@ -34,7 +34,7 @@ class CommunitySettings extends Component {
         };
     }
 
-    onInput = event => {
+    onInput = (event) => {
         const el = event.target;
         const field = el.name;
         const value = el.hasOwnProperty('checked') ? el.checked : el.value;
@@ -43,37 +43,26 @@ class CommunitySettings extends Component {
         if (field == 'title') {
             let formError = null;
             const rx = new RegExp('^[' + Unicode.L + ']');
-            if (value && !rx.test(value))
-                formError = 'Must start with a letter.';
+            if (value && !rx.test(value)) formError = 'Must start with a letter.';
             this.setState({ formError });
         }
     };
 
-    onSubmit = e => {
+    onSubmit = (e) => {
         e.preventDefault();
         // Trim leading and trailing whitespace before submission.
         const payload = {};
-        Object.keys(this.state).forEach(k => {
+        Object.keys(this.state).forEach((k) => {
             if (k == 'formError') return;
-            if (typeof this.state[k] === 'string')
-                payload[k] = this.state[k].trim();
+            if (typeof this.state[k] === 'string') payload[k] = this.state[k].trim();
             else payload[k] = this.state[k];
         });
         this.props.onSubmit(payload);
     };
 
     render() {
-        const {
-            title,
-            about,
-            is_nsfw,
-            lang,
-            description,
-            flag_text,
-            formError,
-        } = this.state;
-        const currentLanguage = languageOptions.filter(l => l.abbr === lang)[0]
-            .name;
+        const { title, about, is_nsfw, lang, description, flag_text, formError } = this.state;
+        const currentLanguage = languageOptions.filter((l) => l.abbr === lang)[0].name;
         return (
             <span>
                 <div>
@@ -91,7 +80,7 @@ class CommunitySettings extends Component {
                             minLength={3}
                             name="title"
                             value={title}
-                            onChange={e => this.onInput(e)}
+                            onChange={(e) => this.onInput(e)}
                             required
                         />
                     </label>
@@ -103,53 +92,48 @@ class CommunitySettings extends Component {
                             maxLength={120}
                             name="about"
                             value={about}
-                            onChange={e => this.onInput(e)}
+                            onChange={(e) => this.onInput(e)}
                         />
                     </label>
                     <AutocompleteInput
                         label={'Language'}
                         values={languageOptions}
                         initialValue={currentLanguage}
-                        onSelect={v => {
-                            const selectedLanguage = languageOptions.filter(
-                                l => l.name === v
-                            )[0];
+                        onSelect={(v) => {
+                            const selectedLanguage = languageOptions.filter((l) => l.name === v)[0];
                             this.setState({
                                 lang: selectedLanguage.abbr,
                             });
                         }}
                     />
                     <label style={{ margin: '1em 0 1rem' }}>
-                        Description<br />
+                        Description
+                        <br />
                         <textarea
                             style={{ whiteSpace: 'normal' }}
                             type="text"
                             maxLength={1000}
                             rows="10"
-                            onChange={e => this.onInput(e)}
+                            onChange={(e) => this.onInput(e)}
                             name="description"
                             value={description}
                         />
                     </label>
                     <label style={{ margin: '0 0 0.5rem' }}>
-                        Rules (one per line)<br />
+                        Rules (one per line)
+                        <br />
                         <textarea
                             style={{ whiteSpace: 'normal' }}
                             type="text"
                             maxLength={1000}
                             rows="7"
-                            onChange={e => this.onInput(e)}
+                            onChange={(e) => this.onInput(e)}
                             name="flag_text"
                             value={flag_text}
                         />
                     </label>
                     <label>
-                        <input
-                            type="checkbox"
-                            name="is_nsfw"
-                            checked={is_nsfw}
-                            onChange={e => this.onInput(e)}
-                        />{' '}
+                        <input type="checkbox" name="is_nsfw" checked={is_nsfw} onChange={(e) => this.onInput(e)} />{' '}
                         NSFW
                     </label>
                     <div className="text-right">
diff --git a/src/app/components/modules/CommunitySubscriberList.jsx b/src/app/components/modules/CommunitySubscriberList.jsx
index 2a34d8bd787ce74a289a951366b14065642eb3f7..15ede235d757b0078876b35f85771b8119faa286 100644
--- a/src/app/components/modules/CommunitySubscriberList.jsx
+++ b/src/app/components/modules/CommunitySubscriberList.jsx
@@ -31,14 +31,7 @@ class CommunitySubscriberList extends React.Component {
     }
 
     render() {
-        const {
-            loading,
-            subscribers,
-            community,
-            viewerRole,
-            username,
-            fetchSubscribers,
-        } = this.props;
+        const { loading, subscribers, community, viewerRole, username, fetchSubscribers } = this.props;
         const isMod = Role.atLeast(viewerRole, 'mod');
         const subs = subscribers.map((s, idx) => (
             <div key={idx}>
@@ -82,24 +75,17 @@ const ConnectedCommunitySubscriberList = connect(
         const communityMember = state.global
             .getIn(['community', ownProps.community.name, 'team'], List([]))
             .toJS()
-            .filter(member => member[0] === username);
+            .filter((member) => member[0] === username);
         if (username && communityMember.length > 0) {
             viewerRole = communityMember[0][1];
         }
         if (
             state.community.getIn([ownProps.community.name]) &&
             state.community.getIn([ownProps.community.name, 'subscribers']) &&
-            state.community.getIn([ownProps.community.name, 'subscribers'])
-                .length > 0
+            state.community.getIn([ownProps.community.name, 'subscribers']).length > 0
         ) {
-            subscribers = state.community.getIn([
-                ownProps.community.name,
-                'subscribers',
-            ]);
-            loading = state.community.getIn([
-                ownProps.community.name,
-                'listSubscribersPending',
-            ]);
+            subscribers = state.community.getIn([ownProps.community.name, 'subscribers']);
+            loading = state.community.getIn([ownProps.community.name, 'listSubscribersPending']);
         }
 
         return {
@@ -110,12 +96,9 @@ const ConnectedCommunitySubscriberList = connect(
         };
     },
     // mapDispatchToProps
-    dispatch => {
+    (dispatch) => {
         return {
-            fetchSubscribers: communityName =>
-                dispatch(
-                    communityActions.getCommunitySubscribers(communityName)
-                ),
+            fetchSubscribers: (communityName) => dispatch(communityActions.getCommunitySubscribers(communityName)),
         };
     }
 )(CommunitySubscriberList);
diff --git a/src/app/components/modules/ConfirmTransactionForm.jsx b/src/app/components/modules/ConfirmTransactionForm.jsx
index e7a23aa9cd3b42aa82997cb200ccc9aa81d3d528..9c63dd1f8d2d99feda203cc66bf02ef5fb24b5e7 100644
--- a/src/app/components/modules/ConfirmTransactionForm.jsx
+++ b/src/app/components/modules/ConfirmTransactionForm.jsx
@@ -27,7 +27,7 @@ class ConfirmTransactionForm extends Component {
     componentWillUnmount() {
         document.body.removeEventListener('click', this.closeOnOutsideClick);
     }
-    closeOnOutsideClick = e => {
+    closeOnOutsideClick = (e) => {
         const inside_dialog = findParent(e.target, 'ConfirmTransactionForm');
         if (!inside_dialog) this.onCancel();
     };
@@ -40,18 +40,13 @@ class ConfirmTransactionForm extends Component {
         const { okClick, confirmBroadcastOperation } = this.props;
         okClick(confirmBroadcastOperation);
     };
-    onCheckbox = e => {
+    onCheckbox = (e) => {
         const checkboxChecked = e.target.checked;
         this.setState({ checkboxChecked });
     };
     render() {
         const { onCancel, okClick, onCheckbox } = this;
-        const {
-            confirm,
-            confirmBroadcastOperation,
-            warning,
-            checkbox,
-        } = this.props;
+        const { confirm, confirmBroadcastOperation, warning, checkbox } = this.props;
         const { checkboxChecked } = this.state;
         const conf = typeof confirm === 'function' ? confirm() : confirm;
         return (
@@ -60,70 +55,46 @@ class ConfirmTransactionForm extends Component {
                 <hr />
                 <div>{conf}</div>
                 {warning ? (
-                    <div
-                        style={{ paddingTop: 10, fontWeight: 'bold' }}
-                        className="error"
-                    >
+                    <div style={{ paddingTop: 10, fontWeight: 'bold' }} className="error">
                         {warning}
                     </div>
                 ) : null}
                 {checkbox ? (
                     <div>
                         <label htmlFor="checkbox">
-                            <input
-                                id="checkbox"
-                                type="checkbox"
-                                checked={checkboxChecked}
-                                onChange={this.onCheckbox}
-                            />
+                            <input id="checkbox" type="checkbox" checked={checkboxChecked} onChange={this.onCheckbox} />
                             {checkbox}
                         </label>
                     </div>
                 ) : null}
                 <br />
-                <button
-                    className="button"
-                    onClick={okClick}
-                    disabled={!(checkbox === undefined || checkboxChecked)}
-                >
+                <button className="button" onClick={okClick} disabled={!(checkbox === undefined || checkboxChecked)}>
                     {tt('g.ok')}
                 </button>
-                <button
-                    type="button hollow"
-                    className="button hollow"
-                    onClick={onCancel}
-                >
+                <button type="button hollow" className="button hollow" onClick={onCancel}>
                     {tt('g.cancel')}
                 </button>
             </div>
         );
     }
 }
-const typeName = confirmBroadcastOperation => {
-    const title = confirmBroadcastOperation.getIn([
-        'operation',
-        '__config',
-        'title',
-    ]);
+const typeName = (confirmBroadcastOperation) => {
+    const title = confirmBroadcastOperation.getIn(['operation', '__config', 'title']);
     if (title) return title;
     const type = confirmBroadcastOperation.get('type');
     return tt('confirmtransactionform_jsx.confirm', {
         transactionType: type
             .split('_')
-            .map(n => n.charAt(0).toUpperCase() + n.substring(1))
+            .map((n) => n.charAt(0).toUpperCase() + n.substring(1))
             .join(' '), // @todo we should translate each potential transaction type!
     });
 };
 
 export default connect(
     // mapStateToProps
-    state => {
-        const confirmBroadcastOperation = state.transaction.get(
-            'confirmBroadcastOperation'
-        );
-        const confirmErrorCallback = state.transaction.get(
-            'confirmErrorCallback'
-        );
+    (state) => {
+        const confirmBroadcastOperation = state.transaction.get('confirmBroadcastOperation');
+        const confirmErrorCallback = state.transaction.get('confirmErrorCallback');
         const confirm = state.transaction.get('confirm');
         const warning = state.transaction.get('warning');
         const checkbox = state.transaction.get('checkbox');
@@ -136,8 +107,8 @@ export default connect(
         };
     },
     // mapDispatchToProps
-    dispatch => ({
-        okClick: confirmBroadcastOperation => {
+    (dispatch) => ({
+        okClick: (confirmBroadcastOperation) => {
             dispatch(transactionActions.hideConfirm());
             dispatch(
                 transactionActions.broadcastOperation({
diff --git a/src/app/components/modules/ConnectedSidePanel/index.jsx b/src/app/components/modules/ConnectedSidePanel/index.jsx
index 6e74bf36d98116b5738cd6aa9ec4e925f9a4f669..2bd106b95589c59370b09b166499236cc19b7ce5 100644
--- a/src/app/components/modules/ConnectedSidePanel/index.jsx
+++ b/src/app/components/modules/ConnectedSidePanel/index.jsx
@@ -11,12 +11,10 @@ const mapStateToProps = (state, ownProps) => {
     };
 };
 
-const mapDispatchToProps = dispatch => ({
+const mapDispatchToProps = (dispatch) => ({
     hideSidePanel: () => dispatch(userActions.hideSidePanel()),
 });
 
-const ConnectedSideBar = connect(mapStateToProps, mapDispatchToProps)(
-    SidePanel
-);
+const ConnectedSideBar = connect(mapStateToProps, mapDispatchToProps)(SidePanel);
 
 export default ConnectedSideBar;
diff --git a/src/app/components/modules/Dialogs.jsx b/src/app/components/modules/Dialogs.jsx
index 652714714386a5e5cd71f3051db615a917db35f6..f7631e008fdfb0679bd00f5539256b341652fa1e 100644
--- a/src/app/components/modules/Dialogs.jsx
+++ b/src/app/components/modules/Dialogs.jsx
@@ -1,11 +1,11 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 import CloseButton from 'app/components/elements/CloseButton';
 import Reveal from 'app/components/elements/Reveal';
 import { Map, List } from 'immutable';
 import * as globalActions from 'app/redux/GlobalReducer';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import QrReader from 'app/components/elements/QrReader';
 import CheckLoginOwner from 'app/components/elements/CheckLoginOwner';
 import PromotePost from 'app/components/modules/PromotePost';
@@ -13,85 +13,63 @@ import ExplorePost from 'app/components/modules/ExplorePost';
 import CommunitySubscriberList from './CommunitySubscriberList';
 import NotificationsList from '../cards/NotificationsList';
 
-class Dialogs extends React.Component {
+class Dialogs extends PureComponent {
     static propTypes = {
         active_dialogs: PropTypes.object,
         hide: PropTypes.func.isRequired,
     };
+
     constructor() {
         super();
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'Dialogs');
-        this.hide = name => {
+        // this.shouldComponentUpdate = shouldComponentUpdate(this, 'Dialogs');
+        this.hide = (name) => {
             this.props.hide(name);
         };
     }
+
     componentWillReceiveProps(nextProps) {
         const { active_dialogs, hide } = nextProps;
         active_dialogs.forEach((v, k) => {
             if (!this['hide_' + k]) this['hide_' + k] = () => hide(k);
         });
     }
+
     render() {
         const { active_dialogs } = this.props;
-        let idx = 0;
         const dialogs = active_dialogs.reduce((r, v, k) => {
-            const cmp =
-                k === 'qr_reader' ? (
-                    <span key={`dialog-${k}`}>
-                        <Reveal
-                            onHide={this['hide_' + k]}
-                            show
-                            revealStyle={{ width: '355px' }}
-                        >
-                            <CloseButton onClick={this['hide_' + k]} />
-                            <QrReader
-                                onClose={this['hide_' + k]}
-                                {...v.get('params').toJS()}
-                            />
-                        </Reveal>
-                    </span>
+            const cmp = k === 'qr_reader' ? (
+                <span key={`dialog-${k}`}>
+                    <Reveal onHide={this['hide_' + k]} show revealStyle={{ width: '355px' }}>
+                        <CloseButton onClick={this['hide_' + k]} />
+                        <QrReader onClose={this['hide_' + k]} {...v.get('params').toJS()} />
+                    </Reveal>
+                </span>
                 ) : k === 'promotePost' ? (
                     <span key={`dialog-${k}`}>
                         <Reveal onHide={this['hide_' + k]} show>
                             <CloseButton onClick={this['hide_' + k]} />
-                            <PromotePost
-                                onClose={this['hide_' + k]}
-                                {...v.get('params').toJS()}
-                            />
+                            <PromotePost onClose={this['hide_' + k]} {...v.get('params').toJS()} />
                         </Reveal>
                     </span>
                 ) : k === 'explorePost' ? (
                     <span key={`dialog-${k}`}>
                         <Reveal onHide={this['hide_' + k]} show>
                             <CloseButton onClick={this['hide_' + k]} />
-                            <ExplorePost
-                                onClick={this['hide_' + k]}
-                                {...v.get('params').toJS()}
-                            />
+                            <ExplorePost onClick={this['hide_' + k]} {...v.get('params').toJS()} />
                         </Reveal>
                     </span>
                 ) : k === 'communitySubscribers' ? (
                     <span key={`dialog-${k}`}>
                         <Reveal onHide={this['hide_' + k]} show>
                             <CloseButton onClick={this['hide_' + k]} />
-                            <CommunitySubscriberList
-                                onClick={this['hide_' + k]}
-                                {...v.get('params').toJS()}
-                            />
+                            <CommunitySubscriberList onClick={this['hide_' + k]} {...v.get('params').toJS()} />
                         </Reveal>
                     </span>
                 ) : k === 'communityModerationLog' ? (
                     <span key={`dialog-${k}`}>
                         <Reveal onHide={this['hide_' + k]} show>
                             <CloseButton onClick={this['hide_' + k]} />
-                            <NotificationsList
-                                username={v.getIn([
-                                    'params',
-                                    'community',
-                                    'name',
-                                ])}
-                                isLastPage={false}
-                            />
+                            <NotificationsList username={v.getIn(['params', 'community', 'name'])} isLastPage={false} />
                         </Reveal>
                     </span>
                 ) : null;
@@ -109,13 +87,13 @@ class Dialogs extends React.Component {
 const emptyMap = Map();
 
 export default connect(
-    state => {
+    (state) => {
         return {
             active_dialogs: state.global.get('active_dialogs') || emptyMap,
         };
     },
-    dispatch => ({
-        hide: name => {
+    (dispatch) => ({
+        hide: (name) => {
             dispatch(globalActions.hideDialog({ name }));
         },
     })
diff --git a/src/app/components/modules/ExplorePost.jsx b/src/app/components/modules/ExplorePost.jsx
index 3c1c14876cb36dc14f757ae5fc61d96033539f94..65571d37bcfcd19a302eee99d7ded2604f9e2045 100644
--- a/src/app/components/modules/ExplorePost.jsx
+++ b/src/app/components/modules/ExplorePost.jsx
@@ -63,14 +63,8 @@ class ExplorePost extends Component {
         const ecency = 'https://ecency.com' + link;
         const hiveblog = 'https://hive.blog' + link;
         const hiveblogMd = '[' + title + '](https://hive.blog' + link + ')';
-        let text =
-            this.state.copied == true
-                ? tt('explorepost_jsx.copied')
-                : tt('explorepost_jsx.copy');
-        let textMD =
-            this.state.copiedMD == true
-                ? tt('explorepost_jsx.copied')
-                : tt('explorepost_jsx.copy');
+        let text = this.state.copied == true ? tt('explorepost_jsx.copied') : tt('explorepost_jsx.copy');
+        let textMD = this.state.copiedMD == true ? tt('explorepost_jsx.copied') : tt('explorepost_jsx.copy');
         return (
             <span className="ExplorePost">
                 <h4>{tt('g.share_this_post')}</h4>
@@ -81,7 +75,7 @@ class ExplorePost extends Component {
                         className="input-group-field share-box"
                         type="text"
                         value={hiveblog}
-                        onChange={e => e.preventDefault()}
+                        onChange={(e) => e.preventDefault()}
                     />
                     <CopyToClipboard
                         text={hiveblog}
@@ -97,7 +91,7 @@ class ExplorePost extends Component {
                         className="input-group-field share-box"
                         type="text"
                         value={hiveblogMd}
-                        onChange={e => e.preventDefault()}
+                        onChange={(e) => e.preventDefault()}
                     />
                     <CopyToClipboard
                         text={hiveblogMd}
@@ -110,42 +104,22 @@ class ExplorePost extends Component {
                 <h5>{tt('explorepost_jsx.alternative_sources')}</h5>
                 <ul>
                     <li>
-                        <a
-                            href={hiveblocks}
-                            onClick={this.Hiveblocks}
-                            target="_blank"
-                            rel="noopener noreferrer"
-                        >
+                        <a href={hiveblocks} onClick={this.Hiveblocks} target="_blank" rel="noopener noreferrer">
                             hiveblocks.com <Icon name="extlink" />
                         </a>
                     </li>
                     <li>
-                        <a
-                            href={hivedb}
-                            onClick={this.Hivedb}
-                            target="_blank"
-                            rel="noopener noreferrer"
-                        >
+                        <a href={hivedb} onClick={this.Hivedb} target="_blank" rel="noopener noreferrer">
                             hive-db.com <Icon name="extlink" />
                         </a>
                     </li>
                     <li>
-                        <a
-                            href={peakd}
-                            onClick={this.Peakd}
-                            target="_blank"
-                            rel="noopener noreferrer"
-                        >
+                        <a href={peakd} onClick={this.Peakd} target="_blank" rel="noopener noreferrer">
                             peakd.com <Icon name="extlink" />
                         </a>
                     </li>
                     <li>
-                        <a
-                            href={ecency}
-                            onClick={this.Ecency}
-                            target="_blank"
-                            rel="noopener noreferrer"
-                        >
+                        <a href={ecency} onClick={this.Ecency} target="_blank" rel="noopener noreferrer">
                             ecency.com <Icon name="extlink" />
                         </a>
                     </li>
diff --git a/src/app/components/modules/FlagCommunityPost.jsx b/src/app/components/modules/FlagCommunityPost.jsx
index a15643ec48947654caac5093e89e149ffa352e82..6b5824c81ceb68fc8ee76cb5abbc7090a6b9db18 100644
--- a/src/app/components/modules/FlagCommunityPost.jsx
+++ b/src/app/components/modules/FlagCommunityPost.jsx
@@ -3,8 +3,7 @@ import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 
 import tt from 'counterpart';
-const nl2li = text =>
-    text.split('\n').map((item, key) => <li key={key}>{item}</li>);
+const nl2li = (text) => text.split('\n').map((item, key) => <li key={key}>{item}</li>);
 
 class FlagCommunityPost extends Component {
     constructor(props) {
@@ -18,7 +17,7 @@ class FlagCommunityPost extends Component {
         }
     };
 
-    onInput = e => {
+    onInput = (e) => {
         this.setState({ notes: `${e.target.value || ''}`.trim() });
     };
 
@@ -42,13 +41,12 @@ class FlagCommunityPost extends Component {
                             type: isComment ? 'comment' : 'post',
                         })}
                     </p>
-                    {flagText &&
-                        flagText.length > 0 && (
-                            <span>
-                                <strong>Community Rules</strong>
-                                <ol>{nl2li(flagText)}</ol>
-                            </span>
-                        )}
+                    {flagText && flagText.length > 0 && (
+                        <span>
+                            <strong>Community Rules</strong>
+                            <ol>{nl2li(flagText)}</ol>
+                        </span>
+                    )}
                 </div>
                 <hr />
                 <div className="input-group">
@@ -57,7 +55,7 @@ class FlagCommunityPost extends Component {
                         className="input-group-field"
                         type="text"
                         maxLength={120}
-                        onKeyUp={e => {
+                        onKeyUp={(e) => {
                             if (e.key === 'Enter') {
                                 this.onSubmit();
                             }
diff --git a/src/app/components/modules/Header/Header.test.js b/src/app/components/modules/Header/Header.test.jsx
similarity index 62%
rename from src/app/components/modules/Header/Header.test.js
rename to src/app/components/modules/Header/Header.test.jsx
index 93bb3d51b4ac0aca9e52da3683d30f0059eab693..722f85ce5276b9b06bc76b600d1e67c3eb31d1ac 100644
--- a/src/app/components/modules/Header/Header.test.js
+++ b/src/app/components/modules/Header/Header.test.jsx
@@ -1,7 +1,8 @@
-/*global describe, it, before, beforeEach, after, afterEach */
+// eslint-disable-next-line no-unused-vars
+/* global describe, it, before, beforeEach, after, afterEach */
 import React from 'react';
 import { configure, shallow } from 'enzyme';
-import Adapter from 'enzyme-adapter-react-15';
+import Adapter from 'enzyme-adapter-react-16';
 
 import { _Header_ } from './index';
 
@@ -14,7 +15,8 @@ beforeEach(() => {
 describe('Header', () => {
     it('contains class .header', () => {
         global.$STM_Config = { read_only_mode: false };
-        const header = shallow(<_Header_ pathname={'whatever'} />);
+        // eslint-disable-next-line react/jsx-pascal-case
+        const header = shallow(<_Header_ pathname="whatever" />);
         console.log(header.closest('header.header'));
         expect(header.closest('header.header').length).toBe(1);
     });
diff --git a/src/app/components/modules/Header/index.jsx b/src/app/components/modules/Header/index.jsx
index e1b15521a7de69cad31e2cf83b1e814c4c4a9c7c..cd7dbeed82084d02525862fc10af7b3685a01b8e 100644
--- a/src/app/components/modules/Header/index.jsx
+++ b/src/app/components/modules/Header/index.jsx
@@ -1,6 +1,7 @@
+/*global $STM_Config*/
 import React from 'react';
 import PropTypes from 'prop-types';
-import { Link } from 'react-router';
+import { Link, browserHistory } from 'react-router';
 import { connect } from 'react-redux';
 import { parseJsonTags } from 'app/utils/StateFunctions';
 import Headroom from 'react-headroom';
@@ -26,9 +27,8 @@ class Header extends React.Component {
     static propTypes = {
         current_account_name: PropTypes.string,
         display_name: PropTypes.string,
-        category: PropTypes.string,
-        order: PropTypes.string,
         pathname: PropTypes.string,
+        // eslint-disable-next-line react/no-unused-prop-types
         getUnreadAccountNotifications: PropTypes.func,
         startNotificationsPolling: PropTypes.func,
         loggedIn: PropTypes.bool,
@@ -39,6 +39,7 @@ class Header extends React.Component {
         super(props);
 
         this.state = {
+            // eslint-disable-next-line react/no-unused-state
             gptAdRendered: false,
             showAd: false,
             showAnnouncement: this.props.showAnnouncement,
@@ -46,23 +47,14 @@ class Header extends React.Component {
     }
 
     componentWillMount() {
-        const {
-            loggedIn,
-            current_account_name,
-            startNotificationsPolling,
-        } = this.props;
+        const { loggedIn, current_account_name, startNotificationsPolling } = this.props;
         if (loggedIn) {
             startNotificationsPolling(current_account_name);
         }
     }
 
     componentDidMount() {
-        if (
-            !this.props.gptEnabled ||
-            !process.env.BROWSER ||
-            !window.googletag ||
-            !window.googletag.pubads
-        ) {
+        if (!this.props.gptEnabled || !process.env.BROWSER || !window.googletag || !window.googletag.pubads) {
             return null;
         }
 
@@ -70,12 +62,7 @@ class Header extends React.Component {
     }
 
     componentWillUnmount() {
-        if (
-            !this.props.gptEnabled ||
-            !process.env.BROWSER ||
-            !window.googletag ||
-            !window.googletag.pubads
-        ) {
+        if (!this.props.gptEnabled || !process.env.BROWSER || !window.googletag || !window.googletag.pubads) {
             return null;
         }
     }
@@ -86,16 +73,12 @@ class Header extends React.Component {
     componentWillReceiveProps(nextProps) {
         if (nextProps.pathname !== this.props.pathname) {
             const route = resolveRoute(nextProps.pathname);
-            if (
-                route &&
-                route.page === 'PostsIndex' &&
-                route.params &&
-                route.params.length > 0
-            ) {
-                const sort_order =
-                    route.params[0] !== 'home' ? route.params[0] : null;
-                if (sort_order)
-                    window.last_sort_order = this.last_sort_order = sort_order;
+            if (route && route.page === 'PostsIndex' && route.params && route.params.length > 0) {
+                const sort_order = route.params[0] !== 'home' ? route.params[0] : null;
+                if (sort_order) {
+                    window.last_sort_order = sort_order;
+                    this.last_sort_order = sort_order;
+                }
             }
         }
     }
@@ -135,7 +118,7 @@ class Header extends React.Component {
             notificationActionPending,
         } = this.props;
 
-        let { showAd, showAnnouncement } = this.state;
+        const { showAnnouncement } = this.state;
 
         /*Set the document.title on each header render.*/
         const route = resolveRoute(pathname);
@@ -143,7 +126,6 @@ class Header extends React.Component {
         let page_title = route.page;
         let sort_order = '';
         let topic = '';
-        let page_name = null;
         if (route.page === 'PostsIndex') {
             sort_order = route.params[0];
             if (sort_order === 'home') {
@@ -159,10 +141,7 @@ class Header extends React.Component {
                 if (prefix == 'muted') prefix = 'Muted';
                 page_title = prefix;
                 if (topic !== '') {
-                    let name = this.props.community.getIn(
-                        [topic, 'title'],
-                        '#' + topic
-                    );
+                    let name = this.props.community.getIn([topic, 'title'], '#' + topic);
                     if (name == '#my') name = 'My Communities';
                     page_title = `${name} / ${page_title}`;
                 } else {
@@ -188,9 +167,7 @@ class Header extends React.Component {
             page_title = 'Community Roles';
         } else if (route.page === 'UserProfile') {
             const user_name = route.params[0].slice(1);
-            const user_title = display_name
-                ? `${display_name} (@${user_name})`
-                : user_name;
+            const user_title = display_name ? `${display_name} (@${user_name})` : user_name;
             page_title = user_title;
             if (route.params[1] === 'followers') {
                 page_title = tt('header_jsx.people_following', {
@@ -219,22 +196,18 @@ class Header extends React.Component {
             }
         } else if (route.page === 'ListManagement') {
             page_title = 'Manage Lists';
-        } else {
-            page_name = ''; //page_title = route.page.replace( /([a-z])([A-Z])/g, '$1 $2' ).toLowerCase();
         }
 
         // Format first letter of all titles and lowercase user name
         if (route.page !== 'UserProfile') {
-            page_title =
-                page_title.charAt(0).toUpperCase() + page_title.slice(1);
+            page_title = page_title.charAt(0).toUpperCase() + page_title.slice(1);
         }
 
         if (
-            process.env.BROWSER &&
-            route.page !== 'Post' &&
-            route.page !== 'PostNoCategory'
-        )
-            document.title = page_title + ' — ' + APP_NAME;
+            process.env.BROWSER
+            && route.page !== 'Post'
+            && route.page !== 'PostNoCategory'
+        ) document.title = page_title + ' — ' + APP_NAME;
 
         //const _feed = current_account_name && `/@${current_account_name}/feed`;
         //const logo_link = _feed && pathname != _feed ? _feed : '/';
@@ -247,10 +220,7 @@ class Header extends React.Component {
             } else {
                 e.preventDefault();
             }
-            const a =
-                e.target.nodeName.toLowerCase() === 'a'
-                    ? e.target
-                    : e.target.parentNode;
+            const a = e.target.nodeName.toLowerCase() === 'a' ? e.target : e.target.parentNode;
             browserHistory.push(a.pathname + a.search + a.hash);
         };
 
@@ -268,11 +238,7 @@ class Header extends React.Component {
         const comments_link = `/@${username}/comments`;
         const notifs_link = `/@${username}/notifications`;
         const wallet_link = `${walletUrl}/@${username}`;
-        const notif_label =
-            tt('g.notifications') +
-            (unreadNotificationCount > 0
-                ? ` (${unreadNotificationCount})`
-                : '');
+        const notif_label = tt('g.notifications') + (unreadNotificationCount > 0 ? ` (${unreadNotificationCount})` : '');
 
         const user_menu = [
             { link: account_link, icon: 'profile', value: tt('g.profile') },
@@ -294,7 +260,7 @@ class Header extends React.Component {
                 value: tt('g.logout'),
             },
         ];
-        showAd = false; // TODO: fix header ad overlap bug
+        const showAd = false; // TODO: fix header ad overlap bug
         const headerMutated = (mutation, discconnectObserver) => {
             if (mutation.target.id.indexOf('google_ads_iframe_') !== -1) {
                 this.gptAdRendered();
@@ -322,51 +288,33 @@ class Header extends React.Component {
                         </div>*/}
                         {/* If announcement is shown, ad will not render unless it's in a parent div! */}
                         <div style={showAd ? {} : { display: 'none' }}>
-                            <GptAd
-                                tags={gptTags}
-                                type="Freestar"
-                                id="bsa-zone_1566493796250-1_123456"
-                            />
+                            <GptAd tags={gptTags} type="Freestar" id="bsa-zone_1566493796250-1_123456" />
                         </div>
 
                         <nav className="row Header__nav">
                             <div className="small-6 medium-4 large-3 columns Header__logotype">
                                 <Link to={logo_link}>
-                                    <SteemLogo
-                                        nightmodeEnabled={nightmodeEnabled}
-                                    />
+                                    <SteemLogo nightmodeEnabled={nightmodeEnabled} />
                                 </Link>
                             </div>
 
                             <div className="large-5 columns show-for-large large-centered Header__sort">
                                 <ul className="nav__block-list">
-                                    <li className={`nav__block-list-item`}>
-                                        <Link to={'/'}>Posts</Link>
+                                    <li className="nav__block-list-item">
+                                        <Link to="/">Posts</Link>
                                     </li>
-                                    <li className={`nav__block-list-item`}>
-                                        <Link
-                                            to={`${walletUrl}/proposals`}
-                                            target="_blank"
-                                            rel="noopener noreferrer"
-                                        >
+                                    <li className="nav__block-list-item">
+                                        <Link to={`${walletUrl}/proposals`} target="_blank" rel="noopener noreferrer">
                                             Proposals
                                         </Link>
                                     </li>
-                                    <li className={`nav__block-list-item`}>
-                                        <Link
-                                            to={`${walletUrl}/~witnesses`}
-                                            target="_blank"
-                                            rel="noopener noreferrer"
-                                        >
+                                    <li className="nav__block-list-item">
+                                        <Link to={`${walletUrl}/~witnesses`} target="_blank" rel="noopener noreferrer">
                                             Witnesses
                                         </Link>
                                     </li>
-                                    <li className={`nav__block-list-item`}>
-                                        <Link
-                                            to="https://hive.io/eco/"
-                                            target="_blank"
-                                            rel="noopener noreferrer"
-                                        >
+                                    <li className="nav__block-list-item">
+                                        <Link to="https://hive.io/eco/" target="_blank" rel="noopener noreferrer">
                                             Our dApps
                                         </Link>
                                     </li>
@@ -377,17 +325,10 @@ class Header extends React.Component {
                                 {/*NOT LOGGED IN SIGN IN AND SIGN UP LINKS*/}
                                 {!loggedIn && (
                                     <span className="Header__user-signup show-for-medium">
-                                        <a
-                                            className="Header__login-link"
-                                            href="/login.html"
-                                            onClick={showLogin}
-                                        >
+                                        <a className="Header__login-link" href="/login.html" onClick={showLogin}>
                                             {tt('g.login')}
                                         </a>
-                                        <a
-                                            className="Header__signup-link"
-                                            href={SIGNUP_URL}
-                                        >
+                                        <a className="Header__signup-link" href={SIGNUP_URL}>
                                             {tt('g.sign_up')}
                                         </a>
                                     </span>
@@ -408,36 +349,24 @@ class Header extends React.Component {
                                 {/*USER AVATAR */}
                                 {loggedIn && (
                                     <DropdownMenu
-                                        className={'Header__usermenu'}
+                                        className="Header__usermenu"
                                         items={user_menu}
                                         title={username}
                                         el="span"
                                         position="left"
                                     >
-                                        <li className={'Header__userpic '}>
+                                        <li className="Header__userpic ">
                                             <Userpic account={username} />
                                         </li>
-                                        {!notificationActionPending &&
-                                            unreadNotificationCount > 0 && (
-                                                <div
-                                                    className={
-                                                        'Header__notification'
-                                                    }
-                                                >
-                                                    <span>
-                                                        {
-                                                            unreadNotificationCount
-                                                        }
-                                                    </span>
-                                                </div>
-                                            )}
+                                        {!notificationActionPending && unreadNotificationCount > 0 && (
+                                            <div className="Header__notification">
+                                                <span>{unreadNotificationCount}</span>
+                                            </div>
+                                        )}
                                     </DropdownMenu>
                                 )}
-                                {/*HAMBURGER*/}
-                                <span
-                                    onClick={showSidePanel}
-                                    className="toggle-menu Header__hamburger"
-                                >
+                                {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
+                                <span onClick={showSidePanel} className="toggle-menu Header__hamburger">
                                     <span className="hamburger" />
                                 </span>
                             </div>
@@ -466,34 +395,19 @@ const mapStateToProps = (state, ownProps) => {
     const route = resolveRoute(ownProps.pathname);
     if (route.page === 'UserProfile') {
         display_name = state.userProfiles.getIn(
-            [
-                'profiles',
-                route.params[0].slice(1),
-                'metadata',
-                'profile',
-                'name',
-            ],
+            ['profiles', route.params[0].slice(1), 'metadata', 'profile', 'name'],
             null
         );
     }
 
     const username = state.user.getIn(['current', 'username']);
     const loggedIn = !!username;
-    const current_account_name = username
-        ? username
-        : state.offchain.get('account');
+    const current_account_name = username ? username : state.offchain.get('account');
 
     const gptEnabled = state.app.getIn(['googleAds', 'gptEnabled']);
     const content = state.global.get('content'); // TODO: needed for SSR?
     let unreadNotificationCount = 0;
-    if (
-        loggedIn &&
-        state.global.getIn([
-            'notifications',
-            current_account_name,
-            'unreadNotifications',
-        ])
-    ) {
+    if (loggedIn && state.global.getIn(['notifications', current_account_name, 'unreadNotifications'])) {
         unreadNotificationCount = state.global.getIn([
             'notifications',
             current_account_name,
@@ -514,10 +428,7 @@ const mapStateToProps = (state, ownProps) => {
         gptEnabled,
         content,
         unreadNotificationCount,
-        notificationActionPending: state.global.getIn([
-            'notifications',
-            'loading',
-        ]),
+        notificationActionPending: state.global.getIn(['notifications', 'loading']),
         ...ownProps,
     };
 };
@@ -545,9 +456,7 @@ const mapDispatchToProps = (dispatch) => ({
         const query = {
             account: username,
         };
-        return dispatch(
-            fetchDataSagaActions.getUnreadAccountNotifications(query)
-        );
+        return dispatch(fetchDataSagaActions.getUnreadAccountNotifications(query));
     },
     hideAnnouncement: () => dispatch(userActions.hideAnnouncement()),
     startNotificationsPolling: (username) => {
diff --git a/src/app/components/modules/LoginForm.jsx b/src/app/components/modules/LoginForm.jsx
index 7e756aa9f02e2b4cb4196fd8ec5441850414ba15..d0d951db1c988c3f7cdd8da98ab164d5b2109962 100644
--- a/src/app/components/modules/LoginForm.jsx
+++ b/src/app/components/modules/LoginForm.jsx
@@ -1,14 +1,14 @@
+/*global $STM_Config*/
 /* eslint react/prop-types: 0 */
 import React, { Component } from 'react';
 import PropTypes from 'prop-types';
-import { Map } from 'immutable';
 import * as transactionActions from 'app/redux/TransactionReducer';
 import * as globalActions from 'app/redux/GlobalReducer';
 import * as userActions from 'app/redux/UserReducer';
 import { validate_account_name } from 'app/utils/ChainValidation';
 import { hasCompatibleKeychain } from 'app/utils/HiveKeychain';
 import runTests from 'app/utils/BrowserTests';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import reactForm from 'app/utils/ReactForm';
 import { serverApiRecordEvent } from 'app/utils/ServerApiClient';
 import tt from 'counterpart';
@@ -19,11 +19,14 @@ import PdfDownload from 'app/components/elements/PdfDownload';
 import { hiveSignerClient } from 'app/utils/HiveSigner';
 import { getQueryStringParams } from 'app/utils/Links';
 
+import { connect } from 'react-redux';
+
 class LoginForm extends Component {
     static propTypes = {
         // Steemit.
         loginError: PropTypes.string,
         onCancel: PropTypes.func,
+        afterLoginRedirectToWelcome: PropTypes.bool,
     };
 
     static defaultProps = {
@@ -37,30 +40,25 @@ class LoginForm extends Component {
         const isHiveSigner = false;
         this.SignUp = this.SignUp.bind(this);
         if (cryptoTestResult !== undefined) {
-            console.error(
-                'CreateAccount - cryptoTestResult: ',
-                cryptoTestResult
-            );
+            console.error('CreateAccount - cryptoTestResult: ', cryptoTestResult);
             cryptographyFailure = true;
         }
         this.state = { cryptographyFailure, isHiveSigner };
-        this.usernameOnChange = e => {
+        this.usernameOnChange = (e) => {
             const value = e.target.value.toLowerCase();
             this.state.username.props.onChange(value);
         };
-        this.onCancel = e => {
+        this.onCancel = (e) => {
             if (e.preventDefault) e.preventDefault();
             const { onCancel, loginBroadcastOperation } = this.props;
-            const errorCallback =
-                loginBroadcastOperation &&
-                loginBroadcastOperation.get('errorCallback');
+            const errorCallback = loginBroadcastOperation && loginBroadcastOperation.get('errorCallback');
             if (errorCallback) errorCallback('Canceled');
             if (onCancel) onCancel();
         };
         this.qrReader = () => {
             const { qrReader } = props;
             const { password } = this.state;
-            qrReader(data => {
+            qrReader((data) => {
                 password.props.onChange(data);
             });
         };
@@ -72,43 +70,35 @@ class LoginForm extends Component {
     }
 
     componentDidMount() {
-        if (this.refs.username && !this.refs.username.value)
-            this.refs.username.focus();
-        if (this.refs.username && this.refs.username.value)
-            this.refs.pw.focus();
+        // eslint-disable-next-line react/no-string-refs
+        if (this.refs.username && !this.refs.username.value) this.refs.username.focus();
+        // eslint-disable-next-line react/no-string-refs
+        if (this.refs.username && this.refs.username.value) this.refs.pw.focus();
     }
 
-    shouldComponentUpdate = shouldComponentUpdate(this, 'LoginForm');
+    // shouldComponentUpdate = shouldComponentUpdate(this, 'LoginForm');
 
     initForm(props) {
         reactForm({
             name: 'login',
             instance: this,
-            fields: [
-                'username',
-                'password',
-                'saveLogin:checked',
-                'useKeychain:checked',
-            ],
+            fields: ['username', 'password', 'saveLogin:checked', 'useKeychain:checked'],
             initialValues: props.initialValues,
-            validation: values => ({
-                username: !values.username
-                    ? tt('g.required')
-                    : validate_account_name(values.username.split('/')[0]),
+            validation: (values) => ({
+                username: !values.username ? tt('g.required') : validate_account_name(values.username.split('/')[0]),
                 password: values.useKeychain
                     ? null
                     : !values.password
-                      ? tt('g.required')
-                      : PublicKey.fromString(values.password)
-                        ? tt('loginform_jsx.you_need_a_private_password_or_key')
-                        : null,
+                    ? tt('g.required')
+                    : PublicKey.fromString(values.password)
+                    ? tt('loginform_jsx.you_need_a_private_password_or_key')
+                    : null,
             }),
         });
     }
 
     SignUp() {
-        const onType = document.getElementsByClassName('OpAction')[0]
-            .textContent;
+        const onType = document.getElementsByClassName('OpAction')[0].textContent;
         serverApiRecordEvent('FreeMoneySignUp', onType);
         window.location.href = SIGNUP_URL;
     }
@@ -144,7 +134,9 @@ class LoginForm extends Component {
                 isHiveSigner: true,
             });
             const params = getQueryStringParams(window.location.search);
-            const { username, access_token, expires_in, state } = params;
+            const {
+                username, access_token, expires_in, state
+            } = params;
             const {
                 saveLogin,
                 afterLoginRedirectToWelcome,
@@ -170,7 +162,10 @@ class LoginForm extends Component {
             return (
                 <div className="row">
                     <div className="column">
-                        <p>{'loading'}...</p>
+                        <p>
+                            loading
+                            ...
+                        </p>
                     </div>
                 </div>
             );
@@ -180,23 +175,18 @@ class LoginForm extends Component {
                 <div className="row">
                     <div className="column">
                         <div className="callout alert">
-                            <h4>
-                                {tt('loginform_jsx.cryptography_test_failed')}
-                            </h4>
+                            <h4>{tt('loginform_jsx.cryptography_test_failed')}</h4>
                             <p>{tt('loginform_jsx.unable_to_log_you_in')}</p>
                             <p>
-                                {tt('loginform_jsx.the_latest_versions_of')}{' '}
-                                <a href="https://www.google.com/chrome/">
-                                    Chrome
-                                </a>{' '}
-                                {tt('g.and')}{' '}
-                                <a href="https://www.mozilla.org/en-US/firefox/new/">
-                                    Firefox
-                                </a>{' '}
-                                {tt(
-                                    'loginform_jsx.are_well_tested_and_known_to_work_with',
-                                    { APP_URL }
-                                )}
+                                {tt('loginform_jsx.the_latest_versions_of')}
+                                {' '}
+                                <a href="https://www.google.com/chrome/">Chrome</a>
+                                {' '}
+                                {tt('g.and')}
+                                {' '}
+                                <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a>
+                                {' '}
+                                {tt('loginform_jsx.are_well_tested_and_known_to_work_with', { APP_URL })}
                             </p>
                         </div>
                     </div>
@@ -209,9 +199,7 @@ class LoginForm extends Component {
                 <div className="row">
                     <div className="column">
                         <div className="callout alert">
-                            <p>
-                                {tt('loginform_jsx.due_to_server_maintenance')}
-                            </p>
+                            <p>{tt('loginform_jsx.due_to_server_maintenance')}</p>
                         </div>
                     </div>
                 </div>
@@ -228,22 +216,18 @@ class LoginForm extends Component {
             afterLoginRedirectToWelcome,
             msg,
         } = this.props;
-        const { username, password, useKeychain, saveLogin } = this.state;
+        const {
+ username, password, useKeychain, saveLogin
+} = this.state;
         const { valid, handleSubmit } = this.state.login;
-        const submitting =
-            this.state.login.submitting || this.state.isHiveSigner;
+        const submitting = this.state.login.submitting || this.state.isHiveSigner;
         const { usernameOnChange, onCancel /*qrReader*/ } = this;
         const disabled = submitting || !valid;
-        const opType = loginBroadcastOperation
-            ? loginBroadcastOperation.get('type')
-            : null;
+        const opType = loginBroadcastOperation ? loginBroadcastOperation.get('type') : null;
         let postType = '';
         if (opType === 'vote') {
             postType = tt('loginform_jsx.login_to_vote');
-        } else if (
-            opType === 'custom_json' &&
-            loginBroadcastOperation.getIn(['operation', 'id']) === 'follow'
-        ) {
+        } else if (opType === 'custom_json' && loginBroadcastOperation.getIn(['operation', 'id']) === 'follow') {
             postType = 'Login to Follow Users';
         } else if (loginBroadcastOperation) {
             // check for post or comment in operation
@@ -257,41 +241,30 @@ class LoginForm extends Component {
             : tt('loginform_jsx.active_or_owner');
         const submitLabel = showLoginWarning
             ? tt('loginform_jsx.continue_anyway')
-            : loginBroadcastOperation ? tt('g.sign_in') : tt('g.login');
-        let error =
-            password.touched && password.error
-                ? password.error
-                : this.props.loginError;
+            : loginBroadcastOperation
+            ? tt('g.sign_in')
+            : tt('g.login');
+        let error = password.touched && password.error ? password.error : this.props.loginError;
         if (error === 'owner_login_blocked') {
             error = (
                 <span>
-                    {tt(
-                        'loginform_jsx.this_password_is_bound_to_your_account_owner_key'
-                    )}{' '}
+                    {tt('loginform_jsx.this_password_is_bound_to_your_account_owner_key')}
+                    {' '}
                     {tt('loginform_jsx.however_you_can_use_it_to')}
-                    {tt('loginform_jsx.update_your_password')}{' '}
+                    {tt('loginform_jsx.update_your_password')}
+                    {' '}
                     {tt('loginform_jsx.to_obtain_a_more_secure_set_of_keys')}
                 </span>
             );
         } else if (error === 'active_login_blocked') {
-            error = (
-                <span>
-                    {tt(
-                        'loginform_jsx.this_password_is_bound_to_your_account_active_key'
-                    )}
-                </span>
-            );
+            error = <span>{tt('loginform_jsx.this_password_is_bound_to_your_account_active_key')}</span>;
         }
         let message = null;
         if (msg) {
             if (msg === 'accountcreated') {
                 message = (
                     <div className="callout primary">
-                        <p>
-                            {tt(
-                                'loginform_jsx.you_account_has_been_successfully_created'
-                            )}
-                        </p>
+                        <p>{tt('loginform_jsx.you_account_has_been_successfully_created')}</p>
                     </div>
                 );
             } else if (msg === 'passwordupdated') {
@@ -306,9 +279,7 @@ class LoginForm extends Component {
                 );
             }
         }
-        const password_info =
-            !useKeychain.value &&
-            checkPasswordChecksum(password.value) === false
+        const password_info = !useKeychain.value && checkPasswordChecksum(password.value) === false
                 ? tt('loginform_jsx.password_info')
                 : null;
         const titleText = (
@@ -318,23 +289,20 @@ class LoginForm extends Component {
             </h3>
         );
 
+/*
         const signupLink = (
             <div className="sign-up">
                 <hr />
                 <p>
-                    {tt('loginform_jsx.join_our')}{' '}
-                    <em>{tt('loginform_jsx.amazing_community')}</em>
+                    {tt('loginform_jsx.join_our')} <em>{tt('loginform_jsx.amazing_community')}</em>
                     {tt('loginform_jsx.to_comment_and_reward_others')}
                 </p>
-                <button
-                    type="button"
-                    className="button hollow"
-                    onClick={this.SignUp}
-                >
+                <button type="button" className="button hollow" onClick={this.SignUp}>
                     {tt('loginform_jsx.sign_up_get_hive')}
                 </button>
             </div>
         );
+ */
 
         const form = (
             <form
@@ -366,12 +334,20 @@ class LoginForm extends Component {
                     />
                 </div>
                 {username.touched && username.blur && username.error ? (
-                    <div className="error">{username.error}&nbsp;</div>
+                    <div className="error">
+                        {username.error}
+                        &nbsp;
+                    </div>
                 ) : null}
 
                 {useKeychain.value ? (
                     <div>
-                        {error && <div className="error">{error}&nbsp;</div>}
+                        {error && (
+                            <div className="error">
+                                {error}
+                                &nbsp;
+                            </div>
+                        )}
                     </div>
                 ) : (
                     <div>
@@ -384,31 +360,30 @@ class LoginForm extends Component {
                             autoComplete="on"
                             disabled={submitting}
                         />
-                        {error && <div className="error">{error}&nbsp;</div>}
-                        {error &&
-                            password_info && (
-                                <div className="warning">
-                                    {password_info}&nbsp;
-                                </div>
-                            )}
+                        {error && (
+                            <div className="error">
+                                {error}
+                                &nbsp;
+                            </div>
+                        )}
+                        {error && password_info && (
+                            <div className="warning">
+                                {password_info}
+                                &nbsp;
+                            </div>
+                        )}
                     </div>
                 )}
                 {loginBroadcastOperation && (
                     <div>
                         <div className="info">
-                            {tt(
-                                'loginform_jsx.this_operation_requires_your_key_or_master_password',
-                                { authType }
-                            )}
+                            {tt('loginform_jsx.this_operation_requires_your_key_or_master_password', { authType })}
                         </div>
                     </div>
                 )}
                 {hasCompatibleKeychain() && (
                     <div>
-                        <label
-                            className="LoginForm__save-login"
-                            htmlFor="useKeychain"
-                        >
+                        <label className="LoginForm__save-login" htmlFor="useKeychain">
                             <input
                                 id="useKeychain"
                                 type="checkbox"
@@ -416,15 +391,14 @@ class LoginForm extends Component {
                                 {...useKeychain.props}
                                 onChange={this.useKeychainToggle}
                                 disabled={submitting}
-                            />&nbsp;{tt('loginform_jsx.use_keychain')}
+                            />
+                            &nbsp;
+                            {tt('loginform_jsx.use_keychain')}
                         </label>
                     </div>
                 )}
                 <div>
-                    <label
-                        className="LoginForm__save-login"
-                        htmlFor="saveLogin"
-                    >
+                    <label className="LoginForm__save-login" htmlFor="saveLogin">
                         <input
                             id="saveLogin"
                             type="checkbox"
@@ -432,23 +406,21 @@ class LoginForm extends Component {
                             {...saveLogin.props}
                             onChange={this.saveLoginToggle}
                             disabled={submitting}
-                        />&nbsp;{tt('loginform_jsx.keep_me_logged_in')}
+                        />
+                        &nbsp;
+                        {tt('loginform_jsx.keep_me_logged_in')}
                     </label>
                 </div>
                 <div className="login-modal-buttons">
                     <br />
-                    <button
-                        type="submit"
-                        disabled={submitting || disabled}
-                        className="button"
-                    >
+                    <button type="submit" disabled={submitting || disabled} className="button">
                         {submitLabel}
                     </button>
                     {this.props.onCancel && (
                         <button
-                            type="button float-right"
+                            type="button"
                             disabled={submitting}
-                            className="button hollow"
+                            className="button hollow float-right"
                             onClick={onCancel}
                         >
                             {tt('g.cancel')}
@@ -459,9 +431,7 @@ class LoginForm extends Component {
             </form>
         );
 
-        const loginWarningTitleText = (
-            <h3>{tt('loginform_jsx.login_warning_title')}</h3>
-        );
+        const loginWarningTitleText = <h3>{tt('loginform_jsx.login_warning_title')}</h3>;
 
         const loginWarningForm = (
             <form
@@ -471,7 +441,7 @@ class LoginForm extends Component {
                         username: username.value,
                         password: password.value,
                         saveLogin: saveLogin.value,
-                        loginBroadcastOperation: loginBroadcastOperation,
+                        loginBroadcastOperation,
                     };
                     reallySubmit(data, afterLoginRedirectToWelcome);
                 })}
@@ -486,11 +456,7 @@ class LoginForm extends Component {
                         heightInches={11.0}
                         label="Download a PDF with keys and instructions"
                     />
-                    <a
-                        href={`${walletUrl}/@${username.value}/permissions`}
-                        target="_blank"
-                        rel="noopener noreferrer"
-                    >
+                    <a href={`${walletUrl}/@${username.value}/permissions`} target="_blank" rel="noopener noreferrer">
                         {tt('loginform_jsx.login_warning_link_text')}
                     </a>
                 </div>
@@ -500,7 +466,7 @@ class LoginForm extends Component {
                         type="submit"
                         disabled={submitting}
                         className="button"
-                        onClick={e => {
+                        onClick={(e) => {
                             e.preventDefault();
                             console.log('Login\thideWarning');
                             hideWarning();
@@ -515,13 +481,8 @@ class LoginForm extends Component {
         const moreLoginMethods = (
             <div className="row buttons">
                 <div className="column">
-                    <a
-                        id="btn-hivesigner"
-                        className="button"
-                        onClick={this.onClickHiveSignerBtn}
-                        disabled={submitting}
-                    >
-                        <img src="/images/hivesigner.svg" />
+                    <a role="link" id="btn-hivesigner" className="button" onClick={this.onClickHiveSignerBtn} disabled={submitting}>
+                        <img src="/images/hivesigner.svg" alt="Hive Signer" />
                     </a>
                 </div>
             </div>
@@ -555,9 +516,8 @@ if (process.env.BROWSER) {
 
 function urlAccountName() {
     let suggestedAccountName = '';
-    const account_match = window.location.hash.match(/account\=([\w\d\-\.]+)/);
-    if (account_match && account_match.length > 1)
-        suggestedAccountName = account_match[1];
+    const account_match = window.location.hash.match(/account=([\w\d\-.]+)/);
+    if (account_match && account_match.length > 1) suggestedAccountName = account_match[1];
     return suggestedAccountName;
 }
 
@@ -574,33 +534,25 @@ function checkPasswordChecksum(password) {
 
     return PrivateKey.isWif(wif);
 }
-
-import { connect } from 'react-redux';
 export default connect(
     // mapStateToProps
-    state => {
+    (state) => {
         const walletUrl = state.app.get('walletUrl');
         const showLoginWarning = state.user.get('show_login_warning');
         const loginError = state.user.get('login_error');
         const currentUser = state.user.get('current');
-        const loginBroadcastOperation = state.user.get(
-            'loginBroadcastOperation'
-        );
+        const loginBroadcastOperation = state.user.get('loginBroadcastOperation');
         const initialValues = {
             useKeychain: !!hasCompatibleKeychain(),
             saveLogin: saveLoginDefault,
         };
 
         // The username input has a value prop, so it should not use initialValues
-        const initialUsername =
-            currentUser && currentUser.has('username')
-                ? currentUser.get('username')
-                : urlAccountName();
+        const initialUsername = currentUser && currentUser.has('username') ? currentUser.get('username') : urlAccountName();
         const loginDefault = state.user.get('loginDefault');
         if (loginDefault) {
             const { username, authType } = loginDefault.toJS();
-            if (username && authType)
-                initialValues.username = username + '/' + authType;
+            if (username && authType) initialValues.username = username + '/' + authType;
         } else if (initialUsername) {
             initialValues.username = initialUsername;
         }
@@ -609,7 +561,7 @@ export default connect(
             initialValues.username = offchainUser.get('account');
         }
         let msg = '';
-        const msg_match = window.location.hash.match(/msg\=([\w]+)/);
+        const msg_match = window.location.hash.match(/msg=([\w]+)/);
         if (msg_match && msg_match.length > 1) msg = msg_match[1];
         hasError = !!loginError;
         return {
@@ -625,21 +577,13 @@ export default connect(
     },
 
     // mapDispatchToProps
-    dispatch => ({
-        dispatchSubmit: (
-            data,
-            useKeychain,
-            loginBroadcastOperation,
-            afterLoginRedirectToWelcome
-        ) => {
+    (dispatch) => ({
+        dispatchSubmit: (data, useKeychain, loginBroadcastOperation, afterLoginRedirectToWelcome) => {
             const { password, saveLogin } = data;
             const username = data.username.trim().toLowerCase();
             if (loginBroadcastOperation) {
                 const {
-                    type,
-                    operation,
-                    successCallback,
-                    errorCallback,
+                    type, operation, successCallback, errorCallback
                 } = loginBroadcastOperation.toJS();
                 dispatch(
                     transactionActions.broadcastOperation({
@@ -691,9 +635,7 @@ export default connect(
             },
             afterLoginRedirectToWelcome
         ) => {
-            const { type } = loginBroadcastOperation
-                ? loginBroadcastOperation.toJS()
-                : {};
+            const { type } = loginBroadcastOperation ? loginBroadcastOperation.toJS() : {};
 
             serverApiRecordEvent('SignIn', type);
 
@@ -716,7 +658,7 @@ export default connect(
         clearError: () => {
             if (hasError) dispatch(userActions.loginError({ error: null }));
         },
-        qrReader: dataCallback => {
+        qrReader: (dataCallback) => {
             dispatch(
                 globalActions.showDialog({
                     name: 'qr_reader',
diff --git a/src/app/components/modules/Modals.jsx b/src/app/components/modules/Modals.jsx
index b9b49ef4f08036c44aba64f2a03312380300b417..31dfa793ad576dc980e506aff1e6036281daf2d1 100644
--- a/src/app/components/modules/Modals.jsx
+++ b/src/app/components/modules/Modals.jsx
@@ -1,43 +1,40 @@
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 import CloseButton from 'app/components/elements/CloseButton';
 import Reveal from 'app/components/elements/Reveal';
 import { NotificationStack } from 'react-notification';
-import { OrderedSet } from 'immutable';
 import tt from 'counterpart';
 import * as userActions from 'app/redux/UserReducer';
 import * as appActions from 'app/redux/AppReducer';
 import * as transactionActions from 'app/redux/TransactionReducer';
 import LoginForm from 'app/components/modules/LoginForm';
 import ConfirmTransactionForm from 'app/components/modules/ConfirmTransactionForm';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import TermsAgree from 'app/components/modules/TermsAgree';
 import PostAdvancedSettings from 'app/components/modules/PostAdvancedSettings';
 
-class Modals extends React.Component {
+class Modals extends PureComponent {
     static defaultProps = {
         username: '',
         notifications: undefined,
         removeNotification: () => {},
         show_terms_modal: false,
-        show_promote_post_modal: false,
         show_bandwidth_error_modal: false,
         show_confirm_modal: false,
         show_login_modal: false,
         show_post_advanced_settings_modal: '',
         loginBroadcastOperation: undefined,
     };
+
     static propTypes = {
         show_login_modal: PropTypes.bool,
         show_confirm_modal: PropTypes.bool,
         show_bandwidth_error_modal: PropTypes.bool,
-        show_promote_post_modal: PropTypes.bool,
         show_post_advanced_settings_modal: PropTypes.string,
         hideLogin: PropTypes.func.isRequired,
         username: PropTypes.string,
         hideConfirm: PropTypes.func.isRequired,
-        hidePromotePost: PropTypes.func.isRequired,
         hideBandwidthError: PropTypes.func.isRequired,
         hidePostAdvancedSettings: PropTypes.func.isRequired,
         notifications: PropTypes.object,
@@ -51,11 +48,6 @@ class Modals extends React.Component {
         }),
     };
 
-    constructor() {
-        super();
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'Modals');
-    }
-
     render() {
         const {
             show_login_modal,
@@ -67,28 +59,23 @@ class Modals extends React.Component {
             show_terms_modal,
             notifications,
             removeNotification,
-            hidePromotePost,
-            show_promote_post_modal,
             hideBandwidthError,
             hidePostAdvancedSettings,
             username,
-            loginBroadcastOperation,
         } = this.props;
 
         const notifications_array = notifications
-            ? notifications.toArray().map(n => {
+            ? notifications.toArray().map((n) => {
                   n.onClick = () => removeNotification(n.key);
                   return n;
               })
             : [];
 
-        const buySteemPower = e => {
+        const buySteemPower = (e) => {
             if (e && e.preventDefault) e.preventDefault();
             const new_window = window.open();
             new_window.opener = null;
-            new_window.location =
-                'https://blocktrades.us/?input_coin_type=eth&output_coin_type=steem_power&receive_address=' +
-                username;
+            new_window.location = 'https://blocktrades.us/?input_coin_type=eth&output_coin_type=steem_power&receive_address=' + username;
         };
         return (
             <div>
@@ -114,10 +101,7 @@ class Modals extends React.Component {
                     </Reveal>
                 )}
                 {show_bandwidth_error_modal && (
-                    <Reveal
-                        onHide={hideBandwidthError}
-                        show={show_bandwidth_error_modal}
-                    >
+                    <Reveal onHide={hideBandwidthError} show={show_bandwidth_error_modal}>
                         <div>
                             <CloseButton onClick={hideBandwidthError} />
                             <h4>{tt('modals_jsx.your_transaction_failed')}</h4>
@@ -125,41 +109,27 @@ class Modals extends React.Component {
                             <h5>{tt('modals_jsx.out_of_bandwidth_title')}</h5>
                             <p>{tt('modals_jsx.out_of_bandwidth_reason')}</p>
                             <p>{tt('modals_jsx.out_of_bandwidth_reason_2')}</p>
-                            <p>
-                                {tt('modals_jsx.out_of_bandwidth_option_title')}
-                            </p>
+                            <p>{tt('modals_jsx.out_of_bandwidth_option_title')}</p>
                             <ol>
-                                <li>
-                                    {tt('modals_jsx.out_of_bandwidth_option_1')}
-                                </li>
-                                <li>
-                                    {tt('modals_jsx.out_of_bandwidth_option_2')}
-                                </li>
-                                <li>
-                                    {tt('modals_jsx.out_of_bandwidth_option_3')}
-                                </li>
+                                <li>{tt('modals_jsx.out_of_bandwidth_option_1')}</li>
+                                <li>{tt('modals_jsx.out_of_bandwidth_option_2')}</li>
+                                <li>{tt('modals_jsx.out_of_bandwidth_option_3')}</li>
                             </ol>
-                            <button className="button" onClick={buySteemPower}>
+                            <button type="button" className="button" onClick={buySteemPower}>
                                 {tt('g.buy_hive_power')}
                             </button>
                         </div>
                     </Reveal>
                 )}
                 {show_post_advanced_settings_modal && (
-                    <Reveal
-                        onHide={hidePostAdvancedSettings}
-                        show={show_post_advanced_settings_modal ? true : false}
-                    >
+                    <Reveal onHide={hidePostAdvancedSettings} show={show_post_advanced_settings_modal ? true : false}>
                         <CloseButton onClick={hidePostAdvancedSettings} />
-                        <PostAdvancedSettings
-                            formId={show_post_advanced_settings_modal}
-                        />
+                        <PostAdvancedSettings formId={show_post_advanced_settings_modal} />
                     </Reveal>
                 )}
                 <NotificationStack
-                    style={false}
                     notifications={notifications_array}
-                    onDismiss={n => removeNotification(n.key)}
+                    onDismiss={(n) => removeNotification(n.key)}
                 />
             </div>
         );
@@ -167,19 +137,13 @@ class Modals extends React.Component {
 }
 
 export default connect(
-    state => {
+    (state) => {
         const rcErr = state.transaction.getIn(['errors', 'bandwidthError']);
         // get the onErrorCB and call it on cancel
         const show_login_modal = state.user.get('show_login_modal');
         let loginBroadcastOperation = {};
-        if (
-            show_login_modal &&
-            state.user &&
-            state.user.getIn(['loginBroadcastOperation'])
-        ) {
-            loginBroadcastOperation = state.user
-                .getIn(['loginBroadcastOperation'])
-                .toJS();
+        if (show_login_modal && state.user && state.user.getIn(['loginBroadcastOperation'])) {
+            loginBroadcastOperation = state.user.getIn(['loginBroadcastOperation']).toJS();
         }
         return {
             username: state.user.getIn(['current', 'username']),
@@ -188,43 +152,36 @@ export default connect(
             show_promote_post_modal: state.user.get('show_promote_post_modal'),
             notifications: state.app.get('notifications'),
             show_terms_modal:
-                state.user.get('show_terms_modal') &&
-                state.routing.locationBeforeTransitions.pathname !==
-                    '/tos.html' &&
-                state.routing.locationBeforeTransitions.pathname !==
-                    '/privacy.html',
+                state.user.get('show_terms_modal')
+                && state.routing.locationBeforeTransitions.pathname !== '/tos.html'
+                && state.routing.locationBeforeTransitions.pathname !== '/privacy.html',
             show_bandwidth_error_modal: rcErr,
-            show_post_advanced_settings_modal: state.user.get(
-                'show_post_advanced_settings_modal'
-            ),
+            show_post_advanced_settings_modal: state.user.get('show_post_advanced_settings_modal'),
             loginBroadcastOperation,
         };
     },
-    dispatch => ({
-        hideLogin: e => {
+    (dispatch) => ({
+        hideLogin: (e) => {
             if (e) e.preventDefault();
             dispatch(userActions.hideLogin());
         },
-        hideConfirm: e => {
+        hideConfirm: (e) => {
             if (e) e.preventDefault();
             dispatch(transactionActions.hideConfirm());
         },
-        hidePromotePost: e => {
+        hidePromotePost: (e) => {
             if (e) e.preventDefault();
             dispatch(userActions.hidePromotePost());
         },
-        hideBandwidthError: e => {
+        hideBandwidthError: (e) => {
             if (e) e.preventDefault();
-            dispatch(
-                transactionActions.dismissError({ key: 'bandwidthError' })
-            );
+            dispatch(transactionActions.dismissError({ key: 'bandwidthError' }));
         },
-        hidePostAdvancedSettings: e => {
+        hidePostAdvancedSettings: (e) => {
             if (e) e.preventDefault();
             dispatch(userActions.hidePostAdvancedSettings());
         },
         // example: addNotification: ({key, message}) => dispatch({type: 'ADD_NOTIFICATION', payload: {key, message}}),
-        removeNotification: key =>
-            dispatch(appActions.removeNotification({ key })),
+        removeNotification: (key) => dispatch(appActions.removeNotification({ key })),
     })
 )(Modals);
diff --git a/src/app/components/modules/MutePost.jsx b/src/app/components/modules/MutePost.jsx
index 64a6d17755ccf069727bb8750750d007572c62cb..a34d5ab2718825f567a57a5503b334ce9983df6b 100644
--- a/src/app/components/modules/MutePost.jsx
+++ b/src/app/components/modules/MutePost.jsx
@@ -16,7 +16,7 @@ class MutePost extends Component {
         }
     };
 
-    onInput = e => {
+    onInput = (e) => {
         this.setState({ notes: `${e.target.value || ''}`.trim() });
     };
 
@@ -32,8 +32,7 @@ class MutePost extends Component {
             <span>
                 {isMuted ? (
                     <div>
-                        <h4>{tt('g.unmute_this_post')}</h4>{' '}
-                        <p> {tt('g.unmute_this_post_description')}</p>
+                        <h4>{tt('g.unmute_this_post')}</h4> <p> {tt('g.unmute_this_post_description')}</p>
                     </div>
                 ) : (
                     <div>
@@ -48,7 +47,7 @@ class MutePost extends Component {
                         className="input-group-field"
                         type="text"
                         maxLength={120}
-                        onKeyUp={e => {
+                        onKeyUp={(e) => {
                             if (e.key === 'Enter') {
                                 this.onSubmit();
                             }
diff --git a/src/app/components/modules/PostAdvancedSettings.jsx b/src/app/components/modules/PostAdvancedSettings.jsx
index 6e213fa22606135a9acc9b264bab8f28f4c9c135..ef500f0f1ae42fc916c9721ba023ffc1fa538465 100644
--- a/src/app/components/modules/PostAdvancedSettings.jsx
+++ b/src/app/components/modules/PostAdvancedSettings.jsx
@@ -3,6 +3,7 @@ import { connect } from 'react-redux';
 import reactForm from 'app/utils/ReactForm';
 import { SUBMIT_FORM_ID } from 'shared/constants';
 import tt from 'counterpart';
+import PropTypes from 'prop-types';
 import { fromJS } from 'immutable';
 import BeneficiarySelector, { validateBeneficiaries } from 'app/components/cards/BeneficiarySelector';
 import PostTemplateSelector from 'app/components/cards/PostTemplateSelector';
@@ -12,7 +13,7 @@ import * as userActions from 'app/redux/UserReducer';
 
 class PostAdvancedSettings extends Component {
     static propTypes = {
-        formId: React.PropTypes.string.isRequired,
+        formId: PropTypes.string.isRequired,
     };
 
     constructor(props) {
@@ -33,7 +34,7 @@ class PostAdvancedSettings extends Component {
             instance: this,
             name: 'advancedSettings',
             initialValues: props.initialValues,
-            validation: values => {
+            validation: (values) => {
                 return {
                     beneficiaries: validateBeneficiaries(props.username, values.beneficiaries, false),
                 };
@@ -41,11 +42,11 @@ class PostAdvancedSettings extends Component {
         });
     }
 
-    handlePayoutChange = event => {
+    handlePayoutChange = (event) => {
         this.setState({ payoutType: event.target.value });
     };
 
-    handleTemplateSelected = postTemplateName => {
+    handleTemplateSelected = (postTemplateName) => {
         const { username } = this.props;
         const userTemplates = loadUserTemplates(username);
         this.setState({ postTemplateName });
@@ -59,11 +60,11 @@ class PostAdvancedSettings extends Component {
                 };
 
                 if (template.name === postTemplateName) {
-                    if (template.hasOwnProperty('payoutType')) {
+                    if (Object.prototype.hasOwnProperty.call(template, 'payoutType')) {
                         this.setState({ payoutType: template.payoutType });
                     }
 
-                    if (template.hasOwnProperty('beneficiaries')) {
+                    if (Object.prototype.hasOwnProperty.call(template, 'beneficiaries')) {
                         newBeneficiaries.props.value = template.beneficiaries;
                         this.setState({ beneficiaries: newBeneficiaries });
                     }
@@ -81,6 +82,7 @@ class PostAdvancedSettings extends Component {
         const { username } = this.props;
         const userTemplates = loadUserTemplates(username);
         let ui = userTemplates.length;
+        // eslint-disable-next-line no-plusplus
         while (ui--) {
             if (userTemplates[ui].name === postTemplateName) {
                 userTemplates.splice(ui, 1);
@@ -91,7 +93,7 @@ class PostAdvancedSettings extends Component {
         this.setState({ postTemplateName: null });
     };
 
-    handleMaxAcceptedPayoutSelect = event => {
+    handleMaxAcceptedPayoutSelect = (event) => {
         const { payoutType, maxAcceptedPayout } = this.state;
         const { defaultPayoutType } = this.props;
         const maxAcceptedPayoutType = event.target.value;
@@ -113,7 +115,7 @@ class PostAdvancedSettings extends Component {
         }
     };
 
-    handleMaxAcceptedPayoutCustom = event => {
+    handleMaxAcceptedPayoutCustom = (event) => {
         const customValue = parseInt(event.target.value);
 
         if (customValue) {
@@ -123,7 +125,7 @@ class PostAdvancedSettings extends Component {
         }
     };
 
-    validateMaxAcceptedPayoutCustom = event => {
+    validateMaxAcceptedPayoutCustom = (event) => {
         const customValue = parseInt(event.target.value);
         if (!customValue || customValue < 1) {
             this.setState({ maxAcceptedPayout: 100 });
@@ -131,18 +133,21 @@ class PostAdvancedSettings extends Component {
     };
 
     render() {
-        const { formId, username, defaultPayoutType, initialPayoutType, initialMaxAcceptedPayout } = this.props;
-        const { beneficiaries, payoutType, postTemplateName, maxAcceptedPayout, maxAcceptedPayoutType } = this.state;
+        const {
+ formId, username, defaultPayoutType, initialPayoutType, initialMaxAcceptedPayout
+} = this.props;
+        const {
+ beneficiaries, payoutType, postTemplateName, maxAcceptedPayout, maxAcceptedPayoutType
+} = this.state;
         const loadingTemplate = postTemplateName && postTemplateName.indexOf('create_') === -1;
         const { submitting, valid, handleSubmit } = this.state.advancedSettings;
         const userTemplates = loadUserTemplates(username);
-        const disabled =
-            submitting ||
-            !(
-                valid ||
-                payoutType !== initialPayoutType ||
-                postTemplateName !== null ||
-                maxAcceptedPayout !== initialMaxAcceptedPayout
+        const disabled = submitting
+            || !(
+                valid
+                || payoutType !== initialPayoutType
+                || postTemplateName !== null
+                || maxAcceptedPayout !== initialMaxAcceptedPayout
             );
         let defaultMaxAcceptedPayoutType;
 
@@ -220,12 +225,14 @@ class PostAdvancedSettings extends Component {
                 <br />
                 <div className="row">
                     <div className="column">
-                        {tt('post_advanced_settings_jsx.current_default')}:{' '}
+                        {tt('post_advanced_settings_jsx.current_default')}
+                        :
+                        {' '}
                         {defaultPayoutType === '0%'
                             ? tt('reply_editor.decline_payout')
                             : defaultPayoutType === '50%'
-                              ? tt('reply_editor.default_50_50')
-                              : tt('reply_editor.power_up_100')}
+                            ? tt('reply_editor.default_50_50')
+                            : tt('reply_editor.power_up_100')}
                     </div>
                 </div>
                 <div className="row">
@@ -239,33 +246,35 @@ class PostAdvancedSettings extends Component {
                 <div className="row">
                     <h4 className="column">{tt('beneficiary_selector_jsx.header')}</h4>
                 </div>
-                <BeneficiarySelector {...beneficiaries.props} tabIndex={1} />
+                <BeneficiarySelector {...beneficiaries.props} tabIndex={0} />
                 <PostTemplateSelector
                     username={username}
                     onChange={this.handleTemplateSelected}
                     templates={userTemplates}
                 />
                 <div className="error">
-                    {(beneficiaries.touched || beneficiaries.value) && beneficiaries.error}&nbsp;
+                    {(beneficiaries.touched || beneficiaries.value) && beneficiaries.error}
+&nbsp;
                 </div>
                 <div className="row">
                     <div className="column">
                         <span>
-                            <button type="submit" className="button" disabled={disabled} tabIndex={2}>
+                            <button type="submit" className="button" disabled={disabled} tabIndex={0}>
                                 {loadingTemplate && tt('post_advanced_settings_jsx.load_template')}
                                 {!loadingTemplate && tt('g.save')}
                             </button>
                             {loadingTemplate && (
                                 <button
+                                    type="button"
                                     className="button"
-                                    tabIndex={2}
-                                    onClick={event => {
+                                    tabIndex={0}
+                                    onClick={(event) => {
                                         this.handleDeleteTemplate(event, postTemplateName);
                                     }}
                                 >
-                                    {postTemplateName &&
-                                        postTemplateName.indexOf('create_') === -1 &&
-                                        tt('post_advanced_settings_jsx.delete_template')}
+                                    {postTemplateName
+                                        && postTemplateName.indexOf('create_') === -1
+                                        && tt('post_advanced_settings_jsx.delete_template')}
                                 </button>
                             )}
                         </span>
@@ -288,7 +297,7 @@ class PostAdvancedSettings extends Component {
 export default connect(
     // mapStateToProps
     (state, ownProps) => {
-        const formId = ownProps.formId;
+        const {formId} = ownProps;
         const username = state.user.getIn(['current', 'username']);
         const isStory = formId === SUBMIT_FORM_ID;
         const defaultPayoutType = state.app.getIn(
@@ -311,24 +320,21 @@ export default connect(
     },
 
     // mapDispatchToProps
-    dispatch => ({
+    (dispatch) => ({
         hideAdvancedSettings: () => dispatch(userActions.hidePostAdvancedSettings()),
-        setPayoutType: (formId, payoutType) =>
-            dispatch(
+        setPayoutType: (formId, payoutType) => dispatch(
                 userActions.set({
                     key: ['current', 'post', formId, 'payoutType'],
                     value: payoutType,
                 })
             ),
-        setBeneficiaries: (formId, beneficiaries) =>
-            dispatch(
+        setBeneficiaries: (formId, beneficiaries) => dispatch(
                 userActions.set({
                     key: ['current', 'post', formId, 'beneficiaries'],
                     value: fromJS(beneficiaries),
                 })
             ),
-        setPostTemplateName: (formId, postTemplateName, create = false) =>
-            dispatch(
+        setPostTemplateName: (formId, postTemplateName, create = false) => dispatch(
                 userActions.set({
                     key: ['current', 'post', formId, 'postTemplateName'],
                     value: create ? `create_${postTemplateName}` : postTemplateName,
diff --git a/src/app/components/modules/PromotePost.jsx b/src/app/components/modules/PromotePost.jsx
index 0e76679ad3eb2e53be50ff1889b0740c10cda72e..2ec3747129054ef3aa507d5f9c8d3ed646a14a68 100644
--- a/src/app/components/modules/PromotePost.jsx
+++ b/src/app/components/modules/PromotePost.jsx
@@ -5,12 +5,7 @@ import ReactDOM from 'react-dom';
 import * as transactionActions from 'app/redux/TransactionReducer';
 import * as globalActions from 'app/redux/GlobalReducer';
 import LoadingIndicator from 'app/components/elements/LoadingIndicator';
-import {
-    DEBT_TOKEN,
-    DEBT_TOKEN_SHORT,
-    CURRENCY_SIGN,
-    DEBT_TICKER,
-} from 'app/client_config';
+import { DEBT_TOKEN, DEBT_TOKEN_SHORT, CURRENCY_SIGN, DEBT_TICKER } from 'app/client_config';
 import tt from 'counterpart';
 
 class PromotePost extends Component {
@@ -83,17 +78,9 @@ class PromotePost extends Component {
         return (
             <div className="PromotePost row">
                 <div className="column small-12">
-                    <form
-                        onSubmit={this.onSubmit}
-                        onChange={() => this.setState({ trxError: '' })}
-                    >
+                    <form onSubmit={this.onSubmit} onChange={() => this.setState({ trxError: '' })}>
                         <h4>{tt('promote_post_jsx.promote_post')}</h4>
-                        <p>
-                            {tt(
-                                'promote_post_jsx.spend_your_DEBT_TOKEN_to_advertise_this_post',
-                                { DEBT_TOKEN }
-                            )}.
-                        </p>
+                        <p>{tt('promote_post_jsx.spend_your_DEBT_TOKEN_to_advertise_this_post', { DEBT_TOKEN })}.</p>
                         <hr />
                         <div className="row">
                             <div className="column small-7 medium-5 large-4">
@@ -110,9 +97,7 @@ class PromotePost extends Component {
                                         onChange={this.amountChange}
                                     />
                                     <span className="input-group-label">
-                                        {DEBT_TOKEN_SHORT + ' '} ({
-                                            CURRENCY_SIGN
-                                        })
+                                        {DEBT_TOKEN_SHORT + ' '} ({CURRENCY_SIGN})
                                     </span>
                                     <div className="error">{amountError}</div>
                                 </div>
@@ -120,9 +105,7 @@ class PromotePost extends Component {
                         </div>
                         <div>
                             {tt('g.balance', {
-                                balanceValue: `${balance} ${
-                                    DEBT_TOKEN_SHORT
-                                } (${CURRENCY_SIGN})`,
+                                balanceValue: `${balance} ${DEBT_TOKEN_SHORT} (${CURRENCY_SIGN})`,
                             })}
                         </div>
                         <br />
@@ -134,14 +117,8 @@ class PromotePost extends Component {
                         )}
                         {!loading && (
                             <span>
-                                {trxError && (
-                                    <div className="error">{trxError}</div>
-                                )}
-                                <button
-                                    type="submit"
-                                    className="button"
-                                    disabled={submitDisabled}
-                                >
+                                {trxError && <div className="error">{trxError}</div>}
+                                <button type="submit" className="button" disabled={submitDisabled}>
                                     {tt('g.promote')}
                                 </button>
                             </span>
@@ -159,24 +136,13 @@ class PromotePost extends Component {
 export default connect(
     (state, ownProps) => {
         const currentUser = state.user.getIn(['current']);
-        const currentAccount = state.global.getIn([
-            'accounts',
-            currentUser.get('username'),
-        ]);
+        const currentAccount = state.global.getIn(['accounts', currentUser.get('username')]);
         return { ...ownProps, currentAccount, currentUser };
     },
 
     // mapDispatchToProps
-    dispatch => ({
-        dispatchSubmit: ({
-            amount,
-            asset,
-            author,
-            permlink,
-            currentUser,
-            onClose,
-            errorCallback,
-        }) => {
+    (dispatch) => ({
+        dispatchSubmit: ({ amount, asset, author, permlink, currentUser, onClose, errorCallback }) => {
             const username = currentUser.get('username');
             alert('Promoted posts are currently disabled');
             //window.location.replace($STM_config.wallet_url + `/transfer?to=null&memo=@${author}/${permlink}&amount=`+parseFloat(amount, 10).toFixed(3) + ' ' + asset)
@@ -187,10 +153,7 @@ export default connect(
                 amount: parseFloat(amount, 10).toFixed(3) + ' ' + asset,
                 memo: `@${author}/${permlink}`,
                 __config: {
-                    successMessage:
-                        tt(
-                            'promote_post_jsx.you_successfully_promoted_this_post'
-                        ) + '.',
+                    successMessage: tt('promote_post_jsx.you_successfully_promoted_this_post') + '.',
                 },
             };
         },
diff --git a/src/app/components/modules/Settings.jsx b/src/app/components/modules/Settings.jsx
index 057cee85d42a76474396b418be0083f7bf1be4bd..687bed7f5eecdd2ae03cad6b0b1fa29b621041c1 100644
--- a/src/app/components/modules/Settings.jsx
+++ b/src/app/components/modules/Settings.jsx
@@ -19,15 +19,14 @@ const KNOWN_API_NODES = ['api.hive.blog', 'rpc.ausbit.dev', 'anyx.io', 'api.ha.d
 class Settings extends React.Component {
     constructor(props) {
         super(props);
-        let cookies = new Cookies();
+        const cookies = new Cookies();
         this.state = {
             errorMessage: '',
             successMessage: '',
             progress: {},
             expand_advanced: false,
-            cookies: cookies,
+            cookies,
             endpoint_error_message: '',
-            original_api_endpoints: '', //safety precaution for the moment
         };
         this.initForm(props);
         this.onNsfwPrefChange = this.onNsfwPrefChange.bind(this);
@@ -52,17 +51,17 @@ class Settings extends React.Component {
         //Create the cookies if they don't already exist
         let endpoints = [];
         if (!this.state.cookies.get('user_preferred_api_endpoint')) {
-            let default_endpoint = 'https://api.hive.blog';
+            const default_endpoint = 'https://api.hive.blog';
             this.state.cookies.set('user_preferred_api_endpoint', default_endpoint, { path: '/', maxAge: 1000000000 });
         }
 
         if (!this.state.cookies.get('user_api_endpoints')) {
             endpoints = api.config.get('alternative_api_endpoints');
-            for (var node of KNOWN_API_NODES) endpoints.push('https://' + node);
+            for (const node of KNOWN_API_NODES) endpoints.push('https://' + node);
             this.state.cookies.set('user_api_endpoints', endpoints, { path: '/', maxAge: 1000000000 });
         } else endpoints = this.state.cookies.get('user_api_endpoints');
 
-        let preferred = this.getPreferredApiEndpoint();
+        const preferred = this.getPreferredApiEndpoint();
         api.api.setOptions({ url: preferred });
         this.synchronizeLists();
     }
@@ -85,7 +84,7 @@ class Settings extends React.Component {
                 'muted_list_description',
             ],
             initialValues: props.profile,
-            validation: values => {
+            validation: (values) => {
                 return {
                     profile_image:
                         values.profile_image && !/^https?:\/\//.test(values.profile_image)
@@ -129,7 +128,7 @@ class Settings extends React.Component {
                 };
             },
         });
-        this.handleSubmitForm = this.state.accountSettings.handleSubmit(args => this.handleSubmit(args));
+        this.handleSubmitForm = this.state.accountSettings.handleSubmit((args) => this.handleSubmit(args));
     }
 
     onDrop = (acceptedFiles, rejectedFiles) => {
@@ -146,19 +145,19 @@ class Settings extends React.Component {
         this.upload(file, file.name);
     };
 
-    onOpenClick = imageName => {
+    onOpenClick = (imageName) => {
         this.setState({
             imageInProgress: imageName,
         });
         this.dropzone.open();
     };
 
-    upload = (file, name = '') => {
+    upload = (file = '') => {
         const { uploadImage } = this.props;
         this.setState({
             progress: { message: tt('settings_jsx.uploading_image') + '...' },
         });
-        uploadImage(file, progress => {
+        uploadImage(file, (progress) => {
             if (progress.url) {
                 this.setState({ progress: {} });
                 const { url } = progress;
@@ -231,7 +230,7 @@ class Settings extends React.Component {
             account: account.get('name'),
             json_metadata: '',
             posting_json_metadata: JSON.stringify(metaData),
-            errorCallback: e => {
+            errorCallback: (e) => {
                 if (e === 'Canceled') {
                     this.setState({
                         loading: false,
@@ -241,7 +240,6 @@ class Settings extends React.Component {
                     console.log('updateAccount ERROR', e);
                     this.setState({
                         loading: false,
-                        changed: false,
                         errorMessage: tt('g.server_returned_error'),
                     });
                 }
@@ -249,7 +247,6 @@ class Settings extends React.Component {
             successCallback: () => {
                 this.setState({
                     loading: false,
-                    changed: false,
                     errorMessage: '',
                     successMessage: tt('settings_jsx.saved'),
                 });
@@ -267,27 +264,27 @@ class Settings extends React.Component {
         });
     }
 
-    handleDefaultBlogPayoutChange = event => {
+    handleDefaultBlogPayoutChange = (event) => {
         this.props.setUserPreferences({
             ...this.props.user_preferences,
             defaultBlogPayout: event.target.value,
         });
     };
 
-    handleDefaultCommentPayoutChange = event => {
+    handleDefaultCommentPayoutChange = (event) => {
         this.props.setUserPreferences({
             ...this.props.user_preferences,
             defaultCommentPayout: event.target.value,
         });
     };
 
-    handleLanguageChange = event => {
+    handleLanguageChange = (event) => {
         const locale = event.target.value;
         const userPreferences = { ...this.props.user_preferences, locale };
         this.props.setUserPreferences(userPreferences);
     };
 
-    handleReferralSystemChange = event => {
+    handleReferralSystemChange = (event) => {
         this.props.setUserPreferences({
             ...this.props.user_preferences,
             referralSystem: event.target.value,
@@ -296,8 +293,7 @@ class Settings extends React.Component {
 
     getPreferredApiEndpoint = () => {
         let preferred_api_endpoint = 'https://api.hive.blog';
-        if (this.state.cookies.get('user_preferred_api_endpoint'))
-            preferred_api_endpoint = this.state.cookies.get('user_preferred_api_endpoint');
+        if (this.state.cookies.get('user_preferred_api_endpoint')) preferred_api_endpoint = this.state.cookies.get('user_preferred_api_endpoint');
         return preferred_api_endpoint;
     };
 
@@ -307,36 +303,36 @@ class Settings extends React.Component {
             maxAge: 1000000000,
         });
         this.state.cookies.set('user_api_endpoints', [], { path: '/', maxAge: 1000000000 });
-        let preferred_api_endpoint = 'https://api.hive.blog';
-        let alternative_api_endpoints = api.config.get('alternative_api_endpoints');
+        const preferred_api_endpoint = 'https://api.hive.blog';
+        const alternative_api_endpoints = api.config.get('alternative_api_endpoints');
         alternative_api_endpoints.length = 0;
-        for (var node of KNOWN_API_NODES) alternative_api_endpoints.push('https://' + node);
+        for (const node of KNOWN_API_NODES) alternative_api_endpoints.push('https://' + node);
         api.api.setOptions({ url: preferred_api_endpoint });
 
-        let cookies = this.state.cookies;
+        const { cookies } = this.state;
         cookies.set('user_preferred_api_endpoint', preferred_api_endpoint, { path: '/', maxAge: 1000000000 });
         cookies.set('user_api_endpoints', alternative_api_endpoints, { path: '/', maxAge: 1000000000 });
-        this.setState({ cookies: cookies, endpoint_error_message: '' });
+        this.setState({ cookies, endpoint_error_message: '' });
     };
 
     synchronizeLists = () => {
-        let preferred = this.getPreferredApiEndpoint();
-        let alternative_api_endpoints = api.config.get('alternative_api_endpoints');
-        let user_endpoints = this.state.cookies.get('user_api_endpoints');
+        const preferred = this.getPreferredApiEndpoint();
+        const alternative_api_endpoints = api.config.get('alternative_api_endpoints');
+        const user_endpoints = this.state.cookies.get('user_api_endpoints');
         api.api.setOptions({ url: preferred });
         alternative_api_endpoints.length = 0;
-        for (var user_endpoint of user_endpoints) alternative_api_endpoints.push(user_endpoint);
+        for (const user_endpoint of user_endpoints) alternative_api_endpoints.push(user_endpoint);
     };
 
-    setPreferredApiEndpoint = event => {
-        let cookies = this.state.cookies;
+    setPreferredApiEndpoint = (event) => {
+        const { cookies } = this.state;
         cookies.set('user_preferred_api_endpoint', event.target.value, { path: '/', maxAge: 1000000000 });
-        this.setState({ cookies: cookies, endpoint_error_message: '' }); //doing it this way to force a re-render, otherwise the option doesn't look updated even though it is
+        this.setState({ cookies, endpoint_error_message: '' }); //doing it this way to force a re-render, otherwise the option doesn't look updated even though it is
         api.api.setOptions({ url: event.target.value });
     };
 
     generateAPIEndpointOptions = () => {
-        let user_endpoints = this.state.cookies.get('user_api_endpoints');
+        const user_endpoints = this.state.cookies.get('user_api_endpoints');
 
         if (user_endpoints === null || user_endpoints === undefined) return;
 
@@ -344,7 +340,7 @@ class Settings extends React.Component {
         const entries = [];
         for (let ei = 0; ei < user_endpoints.length; ei += 1) {
             const endpoint = user_endpoints[ei];
-            let entry = (
+            const entry = (
                 <tr key={endpoint + 'key'}>
                     <td>{endpoint}</td>
                     <td>
@@ -352,12 +348,13 @@ class Settings extends React.Component {
                             type="radio"
                             value={endpoint}
                             checked={endpoint === preferred_api_endpoint}
-                            onChange={e => this.setPreferredApiEndpoint(e)}
+                            onChange={(e) => this.setPreferredApiEndpoint(e)}
                         />
                     </td>
                     <td style={{ fontSize: '20px' }}>
                         <button
-                            onClick={e => {
+                            type="button"
+                            onClick={() => {
                                 this.removeAPIEndpoint(endpoint);
                             }}
                         >
@@ -371,13 +368,14 @@ class Settings extends React.Component {
         return entries;
     };
 
-    toggleShowAdvancedSettings = event => {
+    toggleShowAdvancedSettings = () => {
+        // eslint-disable-next-line react/no-access-state-in-setstate
         this.setState({ expand_advanced: !this.state.expand_advanced });
     };
 
-    addAPIEndpoint = value => {
+    addAPIEndpoint = (value) => {
         this.setState({ endpoint_error_message: '' });
-        let validated = /^https?:\/\//.test(value);
+        const validated = /^https?:\/\//.test(value);
         if (!validated) {
             this.setState({
                 endpoint_error_message: tt('settings_jsx.error_bad_url'),
@@ -385,8 +383,8 @@ class Settings extends React.Component {
             return;
         }
 
-        let cookies = this.state.cookies;
-        let endpoints = cookies.get('user_api_endpoints');
+        const { cookies } = this.state;
+        const endpoints = cookies.get('user_api_endpoints');
         if (endpoints === null || endpoints === undefined) {
             this.setState({
                 endpoint_error_message: tt('settings_jsx.error_bad_cookie'),
@@ -394,7 +392,7 @@ class Settings extends React.Component {
             return;
         }
 
-        for (var endpoint of endpoints) {
+        for (const endpoint of endpoints) {
             if (endpoint === value) {
                 this.setState({
                     endpoint_error_message: tt('settings_jsx.error_already_exists'),
@@ -405,16 +403,16 @@ class Settings extends React.Component {
 
         endpoints.push(value);
         cookies.set('user_api_endpoints', endpoints, { path: '/', maxAge: 1000000000 });
-        this.setState({ cookies: cookies }, () => {
+        this.setState({ cookies }, () => {
             this.synchronizeLists();
         });
     };
 
-    removeAPIEndpoint = value => {
+    removeAPIEndpoint = (value) => {
         this.setState({ endpoint_error_message: '' });
         //don't remove the active endpoint
         //don't remove it if it is the only endpoint in the list
-        let active_endpoint = this.getPreferredApiEndpoint();
+        const active_endpoint = this.getPreferredApiEndpoint();
         if (value === active_endpoint) {
             this.setState({
                 endpoint_error_message: tt('settings_jsx.error_cant_remove_active'),
@@ -422,8 +420,8 @@ class Settings extends React.Component {
             return;
         }
 
-        let cookies = this.state.cookies;
-        let endpoints = cookies.get('user_api_endpoints');
+        const { cookies } = this.state;
+        const endpoints = cookies.get('user_api_endpoints');
         if (endpoints === null || endpoints === undefined) {
             this.setState({
                 endpoint_error_message: tt('settings_jsx.error_bad_cookie'),
@@ -438,22 +436,24 @@ class Settings extends React.Component {
             return;
         }
 
-        let new_endpoints = [];
-        for (var endpoint of endpoints) {
+        const new_endpoints = [];
+        for (const endpoint of endpoints) {
             if (endpoint !== value) {
                 new_endpoints.push(endpoint);
             }
         }
 
         cookies.set('user_api_endpoints', new_endpoints, { path: '/', maxAge: 1000000000 });
-        this.setState({ cookies: cookies }, () => {
+        this.setState({ cookies }, () => {
             this.synchronizeLists();
         });
     };
 
     render() {
         const { state, props } = this;
-        const { walletUrl, ignores, accountname, isOwnAccount, user_preferences, follow, metaData } = this.props;
+        const {
+            ignores, accountname, isOwnAccount, user_preferences,
+        } = this.props;
 
         const { submitting, valid, touched } = this.state.accountSettings;
         const disabled = !props.isOwnAccount || state.loading || submitting || !valid || !touched;
@@ -478,160 +478,162 @@ class Settings extends React.Component {
         return (
             <div className="Settings">
                 <div className="row">
-                    {isLoggedIn() &&
-                        isOwnAccount && (
-                            <form onSubmit={this.handleSubmitForm} className="large-12 columns">
-                                <h4>{tt('settings_jsx.public_profile_settings')}</h4>
-                                {progress.message && <div className="info">{progress.message}</div>}
-                                {progress.error && (
+                    {isLoggedIn()
+                    && isOwnAccount && (
+                        <form onSubmit={this.handleSubmitForm} className="large-12 columns">
+                            <h4>{tt('settings_jsx.public_profile_settings')}</h4>
+                            {progress.message && <div className="info">{progress.message}</div>}
+                            {progress.error && (
+                                <div className="error">
+                                    {tt('reply_editor.image_upload')}
+                                    {': '}
+                                    {progress.error}
+                                </div>
+                            )}
+                            <div className="form__fields row">
+                                <div className="form__field column small-12 medium-6 large-4">
+                                    <label>
+                                        {tt('settings_jsx.profile_image_url')}
+                                        <Dropzone
+                                            onDrop={this.onDrop}
+                                            className="none"
+                                            disableClick
+                                            multiple={false}
+                                            accept="image/*"
+                                            ref={(node) => {
+                                                this.dropzone = node;
+                                            }}
+                                        >
+                                            <input type="url" {...profile_image.props} autoComplete="off" />
+                                        </Dropzone>
+                                        <a role="link" tabIndex={0} onClick={() => this.onOpenClick('profile_image')}>
+                                            {tt('settings_jsx.upload_image')}
+                                        </a>
+                                    </label>
                                     <div className="error">
-                                        {tt('reply_editor.image_upload')}
-                                        {': '}
-                                        {progress.error}
-                                    </div>
-                                )}
-                                <div className="form__fields row">
-                                    <div className="form__field column small-12 medium-6 large-4">
-                                        <label>
-                                            {tt('settings_jsx.profile_image_url')}
-                                            <Dropzone
-                                                onDrop={this.onDrop}
-                                                className={'none'}
-                                                disableClick
-                                                multiple={false}
-                                                accept="image/*"
-                                                ref={node => {
-                                                    this.dropzone = node;
-                                                }}
-                                            >
-                                                <input type="url" {...profile_image.props} autoComplete="off" />
-                                            </Dropzone>
-                                            <a onClick={() => this.onOpenClick('profile_image')}>
-                                                {tt('settings_jsx.upload_image')}
-                                            </a>
-                                        </label>
-                                        <div className="error">
-                                            {profile_image.blur && profile_image.touched && profile_image.error}
-                                        </div>
-                                    </div>
-                                    <div className="form__field column small-12 medium-6 large-4">
-                                        <label>
-                                            {tt('settings_jsx.cover_image_url')}{' '}
-                                            <small>(Optimal: 2048 x 512 pixels)</small>
-                                            <input type="url" {...cover_image.props} autoComplete="off" />
-                                            <a onClick={() => this.onOpenClick('cover_image')}>
-                                                {tt('settings_jsx.upload_image')}
-                                            </a>
-                                        </label>
-                                        <div className="error">
-                                            {cover_image.blur && cover_image.touched && cover_image.error}
-                                        </div>
-                                    </div>
-                                    <div className="form__field column small-12 medium-6 large-4">
-                                        <label>
-                                            {tt('settings_jsx.profile_name')}
-                                            <input type="text" {...name.props} maxLength="20" autoComplete="off" />
-                                        </label>
-                                        <div className="error">{name.touched && name.error}</div>
+                                        {profile_image.blur && profile_image.touched && profile_image.error}
                                     </div>
-                                    <div className="form__field column small-12 medium-6 large-4">
-                                        <label>
-                                            {tt('settings_jsx.profile_about')}
-                                            <input type="text" {...about.props} maxLength="160" autoComplete="off" />
-                                        </label>
-                                        <div className="error">{about.touched && about.error}</div>
-                                    </div>
-                                    <div className="form__field column small-12 medium-6 large-4">
-                                        <label>
-                                            {tt('settings_jsx.profile_location')}
-                                            <input type="text" {...location.props} maxLength="30" autoComplete="off" />
-                                        </label>
-                                        <div className="error">{location.touched && location.error}</div>
-                                    </div>
-                                    <div className="form__field column small-12 medium-6 large-4">
-                                        <label>
-                                            {tt('settings_jsx.profile_website')}
-                                            <input type="url" {...website.props} maxLength="100" autoComplete="off" />
-                                        </label>
-                                        <div className="error">{website.blur && website.touched && website.error}</div>
+                                </div>
+                                <div className="form__field column small-12 medium-6 large-4">
+                                    <label>
+                                        {tt('settings_jsx.cover_image_url')}
+                                        {' '}
+                                        <small>(Optimal: 2048 x 512 pixels)</small>
+                                        <input type="url" {...cover_image.props} autoComplete="off" />
+                                        <a role="link" tabIndex={0} onClick={() => this.onOpenClick('cover_image')}>
+                                            {tt('settings_jsx.upload_image')}
+                                        </a>
+                                    </label>
+                                    <div className="error">
+                                        {cover_image.blur && cover_image.touched && cover_image.error}
                                     </div>
+                                </div>
+                                <div className="form__field column small-12 medium-6 large-4">
+                                    <label>
+                                        {tt('settings_jsx.profile_name')}
+                                        <input type="text" {...name.props} maxLength="20" autoComplete="off" />
+                                    </label>
+                                    <div className="error">{name.touched && name.error}</div>
+                                </div>
+                                <div className="form__field column small-12 medium-6 large-4">
+                                    <label>
+                                        {tt('settings_jsx.profile_about')}
+                                        <input type="text" {...about.props} maxLength="160" autoComplete="off" />
+                                    </label>
+                                    <div className="error">{about.touched && about.error}</div>
+                                </div>
+                                <div className="form__field column small-12 medium-6 large-4">
+                                    <label>
+                                        {tt('settings_jsx.profile_location')}
+                                        <input type="text" {...location.props} maxLength="30" autoComplete="off" />
+                                    </label>
+                                    <div className="error">{location.touched && location.error}</div>
+                                </div>
+                                <div className="form__field column small-12 medium-6 large-4">
+                                    <label>
+                                        {tt('settings_jsx.profile_website')}
+                                        <input type="url" {...website.props} maxLength="100" autoComplete="off" />
+                                    </label>
+                                    <div className="error">{website.blur && website.touched && website.error}</div>
+                                </div>
+                                <div className="form__field column small-12 medium-6 large-4">
+                                    <label>
+                                        Blacklist Description
+                                        <input
+                                            type="text"
+                                            maxLength="256"
+                                            autoComplete="off"
+                                            {...blacklist_description.props}
+                                        />
+                                    </label>
+                                    <div className="error">{website.blur && website.touched && website.error}</div>
+                                </div>
+                                <div className="form__field column small-12 medium-6 large-4">
+                                    <label>
+                                        Mute List Description
+                                        <input
+                                            type="text"
+                                            maxLength="256"
+                                            autoComplete="off"
+                                            {...muted_list_description.props}
+                                        />
+                                    </label>
+                                    <div className="error">{website.blur && website.touched && website.error}</div>
+                                </div>
+                                {account_is_witness.value && (
                                     <div className="form__field column small-12 medium-6 large-4">
                                         <label>
-                                            Blacklist Description
+                                            {tt('settings_jsx.profile_witness_description')}
                                             <input
                                                 type="text"
-                                                maxLength="256"
+                                                {...witness_description.props}
+                                                maxLength="160"
                                                 autoComplete="off"
-                                                {...blacklist_description.props}
                                             />
                                         </label>
-                                        <div className="error">{website.blur && website.touched && website.error}</div>
+                                        <div className="error">
+                                            {witness_description.touched && witness_description.error}
+                                        </div>
                                     </div>
+                                )}
+                                {account_is_witness.value && (
                                     <div className="form__field column small-12 medium-6 large-4">
                                         <label>
-                                            Mute List Description
+                                            {tt('settings_jsx.profile_witness_owner')}
                                             <input
                                                 type="text"
-                                                maxLength="256"
+                                                {...witness_owner.props}
+                                                maxLength="30"
                                                 autoComplete="off"
-                                                {...muted_list_description.props}
                                             />
                                         </label>
-                                        <div className="error">{website.blur && website.touched && website.error}</div>
+                                        <div className="error">{witness_owner.touched && witness_owner.error}</div>
                                     </div>
-                                    {account_is_witness.value && (
-                                        <div className="form__field column small-12 medium-6 large-4">
-                                            <label>
-                                                {tt('settings_jsx.profile_witness_description')}
-                                                <input
-                                                    type="text"
-                                                    {...witness_description.props}
-                                                    maxLength="160"
-                                                    autoComplete="off"
-                                                />
-                                            </label>
-                                            <div className="error">
-                                                {witness_description.touched && witness_description.error}
-                                            </div>
-                                        </div>
-                                    )}
-                                    {account_is_witness.value && (
-                                        <div className="form__field column small-12 medium-6 large-4">
-                                            <label>
-                                                {tt('settings_jsx.profile_witness_owner')}
-                                                <input
-                                                    type="text"
-                                                    {...witness_owner.props}
-                                                    maxLength="30"
-                                                    autoComplete="off"
-                                                />
-                                            </label>
-                                            <div className="error">{witness_owner.touched && witness_owner.error}</div>
-                                        </div>
-                                    )}
-                                </div>
-                                {state.loading && (
-                                    <span>
-                                        <br />
-                                        <LoadingIndicator type="circle" />
-                                        <br />
-                                    </span>
                                 )}
-                                {!state.loading && (
-                                    <input
-                                        type="submit"
-                                        className="button slim"
-                                        value={tt('settings_jsx.update')}
-                                        disabled={disabled}
-                                    />
-                                )}{' '}
-                                {state.errorMessage ? (
-                                    <small className="error">{state.errorMessage}</small>
-                                ) : state.successMessage ? (
-                                    <small className="success uppercase">{state.successMessage}</small>
-                                ) : null}
-                            </form>
-                        )}
+                            </div>
+                            {state.loading && (
+                                <span>
+                                    <br />
+                                    <LoadingIndicator type="circle" />
+                                    <br />
+                                </span>
+                            )}
+                            {!state.loading && (
+                                <input
+                                    type="submit"
+                                    className="button slim"
+                                    value={tt('settings_jsx.update')}
+                                    disabled={disabled}
+                                />
+                            )}
+                            {' '}
+                            {state.errorMessage ? (
+                                <small className="error">{state.errorMessage}</small>
+                            ) : state.successMessage ? (
+                                <small className="success uppercase">{state.successMessage}</small>
+                            ) : null}
+                        </form>
+                    )}
                 </div>
 
                 {isOwnAccount && (
@@ -719,8 +721,11 @@ class Settings extends React.Component {
                 <br />
                 <div className="row">
                     <div className="large-12 columns">
+                        {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}
                         <h4 onClick={this.toggleShowAdvancedSettings}>
-                            {tt('settings_jsx.advanced') + ' '} {this.state.expand_advanced ? '\u25BC' : '\u25B2'}
+                            {tt('settings_jsx.advanced') + ' '}
+                            {' '}
+                            {this.state.expand_advanced ? '\u25BC' : '\u25B2'}
                         </h4>
                         {this.state.expand_advanced && (
                             <div>
@@ -750,7 +755,7 @@ class Settings extends React.Component {
                                     <tbody>
                                         <tr>
                                             <td style={{ width: '40%' }}>
-                                                <input type="text" ref={el => (this.new_endpoint = el)} />
+                                                <input type="text" ref={(el) => (this.new_endpoint = el)} />
                                             </td>
                                             <td
                                                 style={{
@@ -758,7 +763,7 @@ class Settings extends React.Component {
                                                     fontSize: '30px',
                                                 }}
                                             >
-                                                <button onClick={e => this.addAPIEndpoint(this.new_endpoint.value)}>
+                                                <button type="button" onClick={() => this.addAPIEndpoint(this.new_endpoint.value)}>
                                                     {'\u2713'}
                                                 </button>
                                             </td>
@@ -768,6 +773,7 @@ class Settings extends React.Component {
                                         </tr>
                                     </tbody>
                                 </table>
+                                {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
                                 <span className="button" onClick={this.resetEndpointOptions}>
                                     {tt('settings_jsx.reset_endpoints')}
                                 </span>
@@ -775,16 +781,15 @@ class Settings extends React.Component {
                         )}
                     </div>
                 </div>
-                {ignores &&
-                    ignores.size > 0 && (
-                        <div className="row">
-                            <div className="small-12 medium-6 large-4 large-6 columns">
-                                <br />
-                                <h4>Muted Users</h4>
-                                <MuteList account={accountname} users={ignores} />
-                            </div>
+                {ignores && ignores.size > 0 && (
+                    <div className="row">
+                        <div className="small-12 medium-6 large-4 large-6 columns">
+                            <br />
+                            <h4>Muted Users</h4>
+                            <MuteList account={accountname} users={ignores} />
                         </div>
-                    )}
+                    </div>
+                )}
             </div>
         );
     }
@@ -813,11 +818,8 @@ export default connect(
         const { accountname } = ownProps.routeParams;
 
         const isOwnAccount = state.user.getIn(['current', 'username'], '') == accountname;
-        const ignores =
-            isOwnAccount && state.global.getIn(['follow', 'getFollowingAsync', accountname, 'ignore_result']);
+        const ignores = isOwnAccount && state.global.getIn(['follow', 'getFollowingAsync', accountname, 'ignore_result']);
         const account = state.global.getIn(['accounts', accountname]);
-        const current_user = state.user.get('current');
-        const username = current_user ? current_user.get('username') : '';
 
         const metaData = read_profile_v2(account);
         const profile = metaData && metaData.profile ? metaData.profile : {};
@@ -837,8 +839,8 @@ export default connect(
         };
     },
     // mapDispatchToProps
-    dispatch => ({
-        changeLanguage: language => {
+    (dispatch) => ({
+        changeLanguage: (language) => {
             dispatch(userActions.changeLanguage(language));
         },
         uploadImage: (file, progress) => dispatch(userActions.uploadImage({ file, progress })),
@@ -851,7 +853,7 @@ export default connect(
             };
             dispatch(transactionActions.broadcastOperation(options));
         },
-        setUserPreferences: payload => {
+        setUserPreferences: (payload) => {
             dispatch(appActions.setUserPreferences(payload));
         },
     })
diff --git a/src/app/components/modules/SidePanel/index.jsx b/src/app/components/modules/SidePanel/index.jsx
index 668dbda347d95a0c6e91c9569e8bd388b05fa4c9..071be31e105e0b39d44de6b3f1ae4f56fb3acdc7 100644
--- a/src/app/components/modules/SidePanel/index.jsx
+++ b/src/app/components/modules/SidePanel/index.jsx
@@ -8,22 +8,17 @@ import Icon from 'app/components/elements/Icon';
 import { Link } from 'react-router';
 
 const SidePanel = ({
-    alignment,
-    visible,
-    hideSidePanel,
-    username,
-    walletUrl,
-    toggleNightmode,
+ alignment, visible, hideSidePanel, username, walletUrl, toggleNightmode
 }) => {
     if (process.env.BROWSER) {
-        visible && document.addEventListener('click', hideSidePanel);
-        !visible && document.removeEventListener('click', hideSidePanel);
+        if (visible) {
+            document.addEventListener('click', hideSidePanel);
+        } else {
+            document.removeEventListener('click', hideSidePanel);
+        }
     }
 
-    const loggedIn =
-        username === undefined
-            ? 'show-for-small-only'
-            : 'SidePanel__hide-signup';
+    const loggedIn = username === undefined ? 'show-for-small-only' : 'SidePanel__hide-signup';
 
     const makeLink = (i, ix, arr) => {
         // A link is internal if it begins with a slash
@@ -33,7 +28,8 @@ const SidePanel = ({
             return (
                 <li key={ix} className={cn}>
                     <a href={i.link} target="_blank" rel="noopener noreferrer">
-                        {i.label}&nbsp;
+                        {i.label}
+                        &nbsp;
                         <Icon name="extlink" />
                     </a>
                 </li>
@@ -42,7 +38,7 @@ const SidePanel = ({
         if (i.onClick) {
             return (
                 <li key={ix} className={cn}>
-                    <a onClick={i.onClick}>{i.label}</a>
+                    <a role="link" tabIndex={0} onClick={i.onClick}>{i.label}</a>
                 </li>
             );
         }
@@ -154,24 +150,12 @@ const SidePanel = ({
         <div className="SidePanel">
             <div className={(visible ? 'visible ' : '') + alignment}>
                 <CloseButton onClick={hideSidePanel} />
-                <ul className={`vertical menu ${loggedIn}`}>
-                    {sidePanelLinks.extras.map(makeLink)}
-                </ul>
-                <ul className="vertical menu">
-                    {sidePanelLinks.internal.map(makeLink)}
-                </ul>
-                <ul className="vertical menu">
-                    {sidePanelLinks.wallet.map(makeLink)}
-                </ul>
-                <ul className="vertical menu">
-                    {sidePanelLinks.external.map(makeLink)}
-                </ul>
-                <ul className="vertical menu">
-                    {sidePanelLinks.organizational.map(makeLink)}
-                </ul>
-                <ul className="vertical menu">
-                    {sidePanelLinks.legal.map(makeLink)}
-                </ul>
+                <ul className={`vertical menu ${loggedIn}`}>{sidePanelLinks.extras.map(makeLink)}</ul>
+                <ul className="vertical menu">{sidePanelLinks.internal.map(makeLink)}</ul>
+                <ul className="vertical menu">{sidePanelLinks.wallet.map(makeLink)}</ul>
+                <ul className="vertical menu">{sidePanelLinks.external.map(makeLink)}</ul>
+                <ul className="vertical menu">{sidePanelLinks.organizational.map(makeLink)}</ul>
+                <ul className="vertical menu">{sidePanelLinks.legal.map(makeLink)}</ul>
             </div>
         </div>
     );
diff --git a/src/app/components/modules/TermsAgree.jsx b/src/app/components/modules/TermsAgree.jsx
index e4a311d4b6f4f9092de0291506167a77ab2da61d..0f73f0d4b7ff1deaba54973bd8a62c683b777a5c 100644
--- a/src/app/components/modules/TermsAgree.jsx
+++ b/src/app/components/modules/TermsAgree.jsx
@@ -21,8 +21,7 @@ class TermsAgree extends Component {
 
     handleInputChange(event) {
         const target = event.target;
-        const value =
-            target.type === 'checkbox' ? target.checked : target.value;
+        const value = target.type === 'checkbox' ? target.checked : target.value;
         const name = target.name;
 
         this.setState({
@@ -57,11 +56,7 @@ class TermsAgree extends Component {
                             onChange={this.handleInputChange}
                         />
                         {tt('termsagree_jsx.i_agree_to_hives')}{' '}
-                        <a
-                            target="_blank"
-                            rel="noopener noreferrer"
-                            href="/tos.html"
-                        >
+                        <a target="_blank" rel="noopener noreferrer" href="/tos.html">
                             {tt('termsagree_jsx.terms_of_service')}
                         </a>
                     </label>
@@ -75,11 +70,7 @@ class TermsAgree extends Component {
                             onChange={this.handleInputChange}
                         />
                         {tt('termsagree_jsx.i_agree_to_hives')}{' '}
-                        <a
-                            target="_blank"
-                            rel="noopener noreferrer"
-                            href="/privacy.html"
-                        >
+                        <a target="_blank" rel="noopener noreferrer" href="/privacy.html">
                             {tt('termsagree_jsx.privacy_policy')}
                         </a>
                     </label>
@@ -89,9 +80,7 @@ class TermsAgree extends Component {
                         type="submit"
                         className="button"
                         onClick={this.termsAgree}
-                        disabled={
-                            !this.state.tosChecked || !this.state.privacyChecked
-                        }
+                        disabled={!this.state.tosChecked || !this.state.privacyChecked}
                     >
                         {tt('termsagree_jsx.continue')}
                     </button>
@@ -102,11 +91,11 @@ class TermsAgree extends Component {
 }
 
 export default connect(
-    state => ({
+    (state) => ({
         username: state.user.getIn(['current', 'username']),
     }),
-    dispatch => ({
-        acceptTerms: e => {
+    (dispatch) => ({
+        acceptTerms: (e) => {
             if (e) e.preventDefault();
             dispatch(userActions.acceptTerms());
         },
diff --git a/src/app/components/modules/UserRole.jsx b/src/app/components/modules/UserRole.jsx
index fe2e87bb85e4125b81215a735b6f2a3ff32c84f1..0b18efcbb37873e39518d80f7b3ef32833731f49 100644
--- a/src/app/components/modules/UserRole.jsx
+++ b/src/app/components/modules/UserRole.jsx
@@ -12,14 +12,14 @@ class UserRole extends Component {
         };
     }
 
-    onInput = event => {
+    onInput = (event) => {
         event && event.preventDefault();
         this.setState({
             newUsername: event.target.value,
         });
     };
 
-    onSelect = event => {
+    onSelect = (event) => {
         event && event.preventDefault();
         this.setState({
             newRole: event.target.value,
@@ -40,10 +40,7 @@ class UserRole extends Component {
                 });
                 return;
             }
-            this.props.onSubmit(
-                this.state.newUsername.trim(),
-                this.state.newRole.trim()
-            );
+            this.props.onSubmit(this.state.newUsername.trim(), this.state.newRole.trim());
         } else {
             if (this.props.role === this.state.newRole) {
                 this.setState({
@@ -57,17 +54,9 @@ class UserRole extends Component {
 
     render() {
         const { newRole, message, newUsername } = this.state;
-        const {
-            username,
-            community,
-            role,
-            availableRoles,
-            addUser,
-        } = this.props;
+        const { username, community, role, availableRoles, addUser } = this.props;
 
-        const roleSelector = availableRoles.map(role => (
-            <option value={role}>{role}</option>
-        ));
+        const roleSelector = availableRoles.map((role) => <option value={role}>{role}</option>);
         const editUserModalHeader = (
             <div>
                 <h4>{tt('g.community_user_role_edit_header')}</h4>
@@ -102,7 +91,7 @@ class UserRole extends Component {
                         maxLength={32}
                         name="username"
                         value={addUser ? newUsername : username}
-                        onChange={e => this.onInput(e)}
+                        onChange={(e) => this.onInput(e)}
                         disabled={!addUser}
                     />
                 </div>
@@ -113,11 +102,7 @@ class UserRole extends Component {
                     </select>
                 </div>
                 <div className="text-right">
-                    <button
-                        className="button"
-                        type="submit"
-                        onClick={() => this.onSubmit()}
-                    >
+                    <button className="button" type="submit" onClick={() => this.onSubmit()}>
                         Save
                     </button>
                 </div>
@@ -125,15 +110,16 @@ class UserRole extends Component {
                 <div>
                     <h5>Role Permissions</h5>
                     <p>
-                        <strong>Owner</strong> - assign admins<br />
-                        <strong>Admin</strong> - edit settings, assign mods<br
-                        />
-                        <strong>Moderator</strong> - mute, pin, set user titles<br
-                        />
-                        <strong>Member</strong> - listed on leadership team<br
-                        />
-                        <strong>Guest</strong> - default; can post and comment<br
-                        />
+                        <strong>Owner</strong> - assign admins
+                        <br />
+                        <strong>Admin</strong> - edit settings, assign mods
+                        <br />
+                        <strong>Moderator</strong> - mute, pin, set user titles
+                        <br />
+                        <strong>Member</strong> - listed on leadership team
+                        <br />
+                        <strong>Guest</strong> - default; can post and comment
+                        <br />
                         <strong>Muted</strong> - new posts automatically muted
                     </p>
                 </div>
diff --git a/src/app/components/modules/UserTitleEditor.jsx b/src/app/components/modules/UserTitleEditor.jsx
index 9585ea76dac23f24af9bbe25f1416b205d017192..27241339e97ee0d52606093f628b747b137df23a 100644
--- a/src/app/components/modules/UserTitleEditor.jsx
+++ b/src/app/components/modules/UserTitleEditor.jsx
@@ -12,11 +12,10 @@ class UserTitleEditor extends Component {
         };
     }
 
-    onInput = event => {
+    onInput = (event) => {
         const newState = {};
         let newValue = event.target.value || '';
-        if (event.target.hasOwnProperty('checked'))
-            newValue = event.target.checked;
+        if (event.target.hasOwnProperty('checked')) newValue = event.target.checked;
         newState[event.target.name] = newValue;
         this.setState(newState);
     };
@@ -49,16 +48,12 @@ class UserTitleEditor extends Component {
                         maxLength={32}
                         name="title"
                         value={title}
-                        onChange={e => this.onInput(e)}
+                        onChange={(e) => this.onInput(e)}
                     />
                 </div>
 
                 <div className="text-right">
-                    <button
-                        className="button"
-                        type="submit"
-                        onClick={() => this.onSubmit()}
-                    >
+                    <button className="button" type="submit" onClick={() => this.onSubmit()}>
                         Save
                     </button>
                 </div>
diff --git a/src/app/components/pages/About.jsx b/src/app/components/pages/About.jsx
index 0e1b9d1f5082764bc539078eb16649121483aaa3..453a0336573a9206024ccce3d8e8bd4fcaacd7e8 100644
--- a/src/app/components/pages/About.jsx
+++ b/src/app/components/pages/About.jsx
@@ -1,6 +1,4 @@
 import React from 'react';
-import { APP_NAME, APP_URL } from 'app/client_config';
-import tt from 'counterpart';
 
 class About extends React.Component {
     render() {
@@ -8,19 +6,16 @@ class About extends React.Component {
             <div className="About">
                 <section className="AboutMission">
                     <div className="AboutMission__heading-container">
-                        <h1 className="AboutMission__heading">
-                            Steemit, Inc. Mission, Vision and Values
-                        </h1>
+                        <h1 className="AboutMission__heading">Steemit, Inc. Mission, Vision and Values</h1>
                     </div>
                     <div className="AboutMission__section">
                         <div className="AboutMission__text-container">
                             <div className="AboutMission__square" />
                             <h2 className="AboutMission__heading">Mission</h2>
                             <p className="AboutMission__text">
-                                Make great communities{' '}
-                                <span className="line-break">
-                                    with financial inclusion.
-                                </span>
+                                Make great communities
+                                {' '}
+                                <span className="line-break">with financial inclusion.</span>
                             </p>
 
                             <div className="AboutMission__square AboutMission__square--2" />
@@ -39,30 +34,20 @@ class About extends React.Component {
                             </p>
                         </div>
                         <div className="AboutMission__image-container">
-                            <img
-                                className="AboutMission__img"
-                                src="/images/about/mission.jpg"
-                                alt
-                            />
+                            <img className="AboutMission__img" src="/images/about/mission.jpg" alt="About mission" />
                         </div>
                     </div>
                     <div className="AboutMission__section">
                         <div className="AboutMission__text-container">
                             <div className="AboutMission__square" />
                             <h2 className="AboutMission__heading">Values</h2>
-                            <h3 className="AboutMission__subheading">
-                                Cryptocurrency adoption
-                            </h3>
+                            <h3 className="AboutMission__subheading">Cryptocurrency adoption</h3>
                             <p className="AboutMission__text">
-                                Cryptocurrency adoption means advancing tools
-                                that contribute to the consumers’ ability to be
-                                aware of, use, hold and appreciate
-                                cryptocurrency for its benefits, such as
+                                Cryptocurrency adoption means advancing tools that contribute to the consumers’ ability
+                                to be aware of, use, hold and appreciate cryptocurrency for its benefits, such as
                                 sovereign value store and peer-to-peer payments.
                             </p>
-                            <h3 className="AboutMission__subheading">
-                                Sustainability
-                            </h3>
+                            <h3 className="AboutMission__subheading">Sustainability</h3>
                             <p className="AboutMission__text">
                                 Sustainability means building real business from
                                 hive.blog by way of advertisements and
@@ -84,12 +69,9 @@ class About extends React.Component {
                             </p>
                             <h3 className="AboutMission__subheading">Health</h3>
                             <p className="AboutMission__text">
-                                Health means aligning our organization leaders,
-                                including employees and contractors, to
-                                contribute in ways that advance our
-                                organization, which means taking care of their
-                                well being in return for their commitment to our
-                                mission, vision and values.
+                                Health means aligning our organization leaders, including employees and contractors, to
+                                contribute in ways that advance our organization, which means taking care of their well
+                                being in return for their commitment to our mission, vision and values.
                             </p>
                             <h3 className="AboutMission__subheading">Safety</h3>
                             <p className="AboutMission__text">
@@ -102,9 +84,7 @@ class About extends React.Component {
                                 than move fast while introducing breaking
                                 changes.
                             </p>
-                            <h3 className="AboutMission__subheading">
-                                Security
-                            </h3>
+                            <h3 className="AboutMission__subheading">Security</h3>
                             <p className="AboutMission__text">
                                 Security means providing tools to our users of
                                 hive.blog that mitigate risk when it comes to
@@ -129,19 +109,13 @@ class About extends React.Component {
                             </p>
                         </div>
                         <div className="AboutMission__image-container">
-                            <img
-                                className="AboutMission__img"
-                                src="/images/about/coin.jpg"
-                                alt
-                            />
+                            <img className="AboutMission__img" src="/images/about/coin.jpg" alt="About mission" />
                         </div>
                     </div>
                     <div className="AboutMission__section AboutMission__section--vision">
                         <div className="AboutMission__text-container">
                             <div className="AboutMission__square" />
-                            <h2 className="AboutMission__heading">
-                                Priorities
-                            </h2>
+                            <h2 className="AboutMission__heading">Priorities</h2>
                             <p className="AboutMission__text">
                                 We strive to make hive.blog great for
                                 communities and financial inclusion. This
@@ -149,76 +123,53 @@ class About extends React.Component {
                             </p>
                             <ul className="AboutMission__list">
                                 <li className="AboutMission__list-item">
-                                    Lower operating costs for sustainability and
-                                    decentralization
+                                    Lower operating costs for sustainability and decentralization
                                 </li>
+                                <li className="AboutMission__list-item">Increasing advertisements revenue</li>
                                 <li className="AboutMission__list-item">
-                                    Increasing advertisements revenue
-                                </li>
-                                <li className="AboutMission__list-item">
-                                    Bite-size, visible changes, which includes
-                                    increasing homepage functionality, such as
-                                    the following:
+                                    Bite-size, visible changes, which includes increasing homepage functionality, such
+                                    as the following:
                                 </li>
                                 <ul className="AboutMission__list">
-                                    <li className="AboutMission__list-item">
-                                        Updates Log
-                                    </li>
+                                    <li className="AboutMission__list-item">Updates Log</li>
                                     <ul className="AboutMission__list">
                                         <li className="AboutMission__list-item">
-                                            Publish our development-recaps and
-                                            updates-focused content via Update
-                                            Log
+                                            Publish our development-recaps and updates-focused content via Update Log
                                         </li>
                                         <ul className="AboutMission__list">
                                             <li className="AboutMission__list-item">
-                                                Communication of Steem
-                                                developments
+                                                Communication of Steem developments
                                             </li>
                                             <li className="AboutMission__list-item">
                                                 Communication of hive.blog
                                                 developments
                                             </li>
                                             <li className="AboutMission__list-item">
-                                                Communication of Steemit, Inc.
-                                                developments
+                                                Communication of Steemit, Inc. developments
                                             </li>
                                             <li className="AboutMission__list-item">
-                                                Communication of Steem Dapps /
-                                                Ecosystem developments
+                                                Communication of Steem Dapps / Ecosystem developments
                                             </li>
                                         </ul>
                                         <li className="AboutMission__list-item">
-                                            Notify media outlets of additions to
-                                            the Updates Log
+                                            Notify media outlets of additions to the Updates Log
                                         </li>
                                     </ul>
                                 </ul>
-                                <li className="AboutMission__list-item">
-                                    Implementing Communities functionality
-                                </li>
+                                <li className="AboutMission__list-item">Implementing Communities functionality</li>
                             </ul>
-                            <p>
-                                What do our Mission, Vision and Values mean for
-                                our Steem development?
-                            </p>
+                            <p>What do our Mission, Vision and Values mean for our Steem development?</p>
                             <ul className="AboutMission__list">
                                 <li className="AboutMission__list-item">
-                                    We strive to make Steem great for online
-                                    communities and financial inclusion. This
+                                    We strive to make Steem great for online communities and financial inclusion. This
                                     includes focusing on the following items:
                                 </li>
                                 <ul className="AboutMission__list">
-                                    <li className="AboutMission__list-item">
-                                        Lowering costs for decentralization
-                                    </li>
+                                    <li className="AboutMission__list-item">Lowering costs for decentralization</li>
                                     <ul className="AboutMission__list">
+                                        <li className="AboutMission__list-item">Such as with RocksDB enhancements</li>
                                         <li className="AboutMission__list-item">
-                                            Such as with RocksDB enhancements
-                                        </li>
-                                        <li className="AboutMission__list-item">
-                                            Lower costs of running full
-                                            (economic) nodes
+                                            Lower costs of running full (economic) nodes
                                         </li>
                                         <li className="AboutMission__list-item">
                                             Lower costs of running hive.blog by
@@ -227,55 +178,35 @@ class About extends React.Component {
                                         </li>
                                     </ul>
                                     <li className="AboutMission__list-item">
-                                        Propose hardforking upgrades for
-                                        increasing beneficial functionality
+                                        Propose hardforking upgrades for increasing beneficial functionality
                                     </li>
                                     <ul className="AboutMission__list">
-                                        <li className="AboutMission__list-item">
-                                            Tokens (SMTs)
-                                        </li>
-                                        <li className="AboutMission__list-item">
-                                            Tokens with vote-able emissions
-                                        </li>
-                                        <li className="AboutMission__list-item">
-                                            Additional token functions
-                                        </li>
+                                        <li className="AboutMission__list-item">Tokens (SMTs)</li>
+                                        <li className="AboutMission__list-item">Tokens with vote-able emissions</li>
+                                        <li className="AboutMission__list-item">Additional token functions</li>
                                     </ul>
-                                    <li className="AboutMission__list-item">
-                                        Providing support
-                                    </li>
+                                    <li className="AboutMission__list-item">Providing support</li>
                                     <ul className="AboutMission__list">
-                                        <li className="AboutMission__list-item">
-                                            Exchange support
-                                        </li>
+                                        <li className="AboutMission__list-item">Exchange support</li>
                                     </ul>
                                 </ul>
                             </ul>
                             <p>
-                                This is our principled focus for achieving
-                                success. Anything we haven’t included in here,
-                                and there are plenty, because opportunities are
-                                so bountiful in this space, is not a focus for
-                                us. We encourage you to contribute and seek
-                                opportunities by picking up anything we aren’t
-                                covering, particularly if it contributes to
-                                STEEM and cryptocurrency adoption.
+                                This is our principled focus for achieving success. Anything we haven’t included in
+                                here, and there are plenty, because opportunities are so bountiful in this space, is not
+                                a focus for us. We encourage you to contribute and seek opportunities by picking up
+                                anything we aren’t covering, particularly if it contributes to STEEM and cryptocurrency
+                                adoption.
                             </p>
                         </div>
                         <div className="AboutMission__image-container">
-                            <img
-                                className="AboutMission__img"
-                                src="/images/about/priorities.jpg"
-                                alt
-                            />
+                            <img className="AboutMission__img" src="/images/about/priorities.jpg" alt="About mission" />
                         </div>
                     </div>
                     <div className="AboutMission__section">
                         <div className="AboutMission__text-container">
                             <div className="AboutMission__square" />
-                            <h2 className="AboutMission__heading">
-                                Disclaimer
-                            </h2>
+                            <h2 className="AboutMission__heading">Disclaimer</h2>
                             <p className="AboutMission__text">
                                 Steemit Inc. (The “Company”), is a private
                                 company that helps develop the open-source
@@ -293,11 +224,7 @@ class About extends React.Component {
                             </p>
                         </div>
                         <div className="AboutMission__image-container">
-                            <img
-                                className="AboutMission__img"
-                                src="/images/about/talk.jpg"
-                                alt
-                            />
+                            <img className="AboutMission__img" src="/images/about/talk.jpg" alt="About mission" />
                         </div>
                     </div>
                 </section>
diff --git a/src/app/components/pages/Benchmark.jsx b/src/app/components/pages/Benchmark.jsx
index 2123aedb33c25444e08a71d438a318d2fd5a25c7..6336d515a339a2858853bc8e546db803b1fd21c3 100644
--- a/src/app/components/pages/Benchmark.jsx
+++ b/src/app/components/pages/Benchmark.jsx
@@ -14,7 +14,7 @@ class Benchmark extends React.Component {
     render() {
         return (
             <Grid>
-                {icons.map(icon => (
+                {icons.map((icon) => (
                     <div key={'icon_' + icon}>
                         <Icon name={icon} size={'2x'} />
                         <p> {icon} </p>
diff --git a/src/app/components/pages/CommunitiesIndex.jsx b/src/app/components/pages/CommunitiesIndex.jsx
index bd9b52eaec39477ac23924d154a79acfee591c8c..f72f587448e09340f4a71cd2693061d8888c5c28 100644
--- a/src/app/components/pages/CommunitiesIndex.jsx
+++ b/src/app/components/pages/CommunitiesIndex.jsx
@@ -21,12 +21,16 @@ export default class CommunitiesIndex extends React.Component {
     }
 
     componentWillMount = () => {
-        const { performSearch, username, searchQuery, searchOrder } = this.props;
+        const {
+ performSearch, username, searchQuery, searchOrder
+} = this.props;
         performSearch(username, searchQuery, searchOrder);
     };
 
-    componentDidUpdate = prevProps => {
-        const { performSearch, username, searchQuery, searchOrder } = this.props;
+    componentDidUpdate = (prevProps) => {
+        const {
+ performSearch, username, searchQuery, searchOrder
+} = this.props;
 
         if (prevProps.username !== username) {
             performSearch(username, searchQuery, searchOrder);
@@ -34,10 +38,11 @@ export default class CommunitiesIndex extends React.Component {
     };
 
     render() {
-        const { communities, communities_idx, username, walletUrl, performSearch } = this.props;
-        const ordered =
-            communities_idx !== null
-                ? communities_idx.map(name => {
+        const {
+ communities, communities_idx, username, walletUrl, performSearch
+} = this.props;
+        const ordered = communities_idx !== null
+                ? communities_idx.map((name) => {
                       return communities.get(name);
                   })
                 : [];
@@ -57,13 +62,13 @@ export default class CommunitiesIndex extends React.Component {
             },
         ];
 
-        const role = comm => {
+        const role = (comm) => {
             return (
                 comm.context && comm.context.role !== 'guest' && <span className="user_role">{comm.context.role}</span>
             );
         };
 
-        const communityAdmins = admins => {
+        const communityAdmins = (admins) => {
             if (!admins || admins.length === 0) return null;
 
             return (
@@ -74,7 +79,7 @@ export default class CommunitiesIndex extends React.Component {
             );
         };
 
-        const row = comm => {
+        const row = (comm) => {
             const admins = communityAdmins(comm.admins);
             return (
                 <tr key={comm.name}>
@@ -87,7 +92,15 @@ export default class CommunitiesIndex extends React.Component {
                         {comm.about}
                         <small>
                             {comm.subscribers}
-                            subscribers &bull; {comm.num_authors} posters &bull; {comm.num_pending} posts
+                            subscribers &bull;
+                            {' '}
+                            {comm.num_authors}
+                            {' '}
+                            posters &bull;
+                            {' '}
+                            {comm.num_pending}
+                            {' '}
+                            posts
                             {admins}
                         </small>
                     </th>
@@ -117,7 +130,7 @@ export default class CommunitiesIndex extends React.Component {
                         <div className="small-8 medium-7 large-8 column">
                             <ElasticSearchInput
                                 expanded
-                                handleSubmit={q => {
+                                handleSubmit={(q) => {
                                     this.setState({
                                         searchQuery: q,
                                     });
@@ -130,7 +143,7 @@ export default class CommunitiesIndex extends React.Component {
                             <NativeSelect
                                 options={sortOptions}
                                 currentlySelected={searchOrder}
-                                onChange={opt => {
+                                onChange={(opt) => {
                                     this.setState({
                                         searchOrder: opt.value,
                                     });
@@ -144,7 +157,7 @@ export default class CommunitiesIndex extends React.Component {
                         <div>
                             <table>
                                 <tbody>
-                                    {ordered.map(comm => {
+                                    {ordered.map((comm) => {
                                         return row(comm.toJS());
                                     })}
                                 </tbody>
@@ -166,7 +179,7 @@ export default class CommunitiesIndex extends React.Component {
 module.exports = {
     path: 'communities(/:username)',
     component: connect(
-        state => {
+        (state) => {
             // Get current sort and query from the url.
             return {
                 walletUrl: state.app.get('walletUrl'),
@@ -175,7 +188,7 @@ module.exports = {
                 communities_idx: state.global.get('community_idx', List()),
             };
         },
-        dispatch => {
+        (dispatch) => {
             return {
                 performSearch: (observer, query, sort = 'rank') => {
                     console.log('search', query);
diff --git a/src/app/components/pages/CommunityRoles.jsx b/src/app/components/pages/CommunityRoles.jsx
index 5c34b53b89020b9205b39a3479f0df89ec79156b..9b88abed7299294d1a77c43877d75d5d9db63b92 100644
--- a/src/app/components/pages/CommunityRoles.jsx
+++ b/src/app/components/pages/CommunityRoles.jsx
@@ -25,9 +25,7 @@ class CommunityRoles extends React.Component {
         this.onSubmit = this.onSubmit.bind(this);
         this.onEditUserRoleSelect = this.onEditUserRoleSelect.bind(this);
         this.toggleUpdateRoleModal = this.toggleUpdateRoleModal.bind(this);
-        this.toggleAddUserToCommunityModal = this.toggleAddUserToCommunityModal.bind(
-            this
-        );
+        this.toggleAddUserToCommunityModal = this.toggleAddUserToCommunityModal.bind(this);
     }
 
     componentDidMount() {
@@ -72,13 +70,7 @@ class CommunityRoles extends React.Component {
     }
 
     render() {
-        const {
-            community,
-            loading,
-            updating,
-            roles,
-            communityMetadata,
-        } = this.props;
+        const { community, loading, updating, roles, communityMetadata } = this.props;
 
         const canEdit = {
             owner: ['admin', 'mod', 'member', 'guest', 'muted'],
@@ -90,11 +82,7 @@ class CommunityRoles extends React.Component {
 
         let availableRoles = [];
 
-        if (
-            communityMetadata &&
-            communityMetadata.context &&
-            Object.keys(communityMetadata.context).length > 0
-        ) {
+        if (communityMetadata && communityMetadata.context && Object.keys(communityMetadata.context).length > 0) {
             availableRoles = canEdit[communityMetadata.context.role];
         }
 
@@ -107,7 +95,7 @@ class CommunityRoles extends React.Component {
                     <a
                         className="community-user--role"
                         aria-labelledby="Community User Role"
-                        onClick={e => {
+                        onClick={(e) => {
                             e.preventDefault();
                             this.onEditUserRoleSelect(name, tuple[1], title);
                             this.toggleUpdateRoleModal(true);
@@ -143,15 +131,13 @@ class CommunityRoles extends React.Component {
 
         const editUserModal = (
             <Reveal onHide={() => null} show>
-                <CloseButton
-                    onClick={() => this.toggleUpdateRoleModal(false)}
-                />
+                <CloseButton onClick={() => this.toggleUpdateRoleModal(false)} />
                 <UserRole
                     title={this.state.title}
                     username={this.state.account}
                     community={this.props.community}
                     role={this.state.role}
-                    onSubmit={newRole => {
+                    onSubmit={(newRole) => {
                         const params = {
                             community: this.props.community,
                             account: this.state.account,
@@ -168,9 +154,7 @@ class CommunityRoles extends React.Component {
 
         const addUserModal = (
             <Reveal onHide={() => null} show>
-                <CloseButton
-                    onClick={() => this.toggleAddUserToCommunityModal(false)}
-                />
+                <CloseButton onClick={() => this.toggleAddUserToCommunityModal(false)} />
                 <UserRole
                     title={this.state.title}
                     username={this.state.account}
@@ -204,9 +188,7 @@ class CommunityRoles extends React.Component {
             body = (
                 <div>
                     <h1 className="articles__h1">
-                        <Link to={`/trending/${community}`}>
-                            {commName || community}
-                        </Link>
+                        <Link to={`/trending/${community}`}>{commName || community}</Link>
                     </h1>
                     <br />
                     <div className="c-sidebar__module">
@@ -231,16 +213,10 @@ class CommunityRoles extends React.Component {
         }
 
         return (
-            <PostsIndexLayout
-                category={community}
-                enableAds={false}
-                blogmode={false}
-            >
+            <PostsIndexLayout category={community} enableAds={false} blogmode={false}>
                 <div className="CommunityRoles">
                     <div className="row">
-                        <div className="column large-9 medium-12 small-12">
-                            {body}
-                        </div>
+                        <div className="column large-9 medium-12 small-12">{body}</div>
                     </div>
                 </div>
             </PostsIndexLayout>
@@ -265,11 +241,11 @@ const CommunityRolesWrapped = connect(
         };
     },
 
-    dispatch => ({
-        getCommunityRoles: community => {
+    (dispatch) => ({
+        getCommunityRoles: (community) => {
             dispatch(communityActions.getCommunityRoles(community));
         },
-        updateUser: params => {
+        updateUser: (params) => {
             dispatch(communityActions.updateUserRole(params));
         },
     })
diff --git a/src/app/components/pages/Index.jsx b/src/app/components/pages/Index.jsx
index 9acd2d1daaf5071c37022d8d5904b8b2d5c0924e..87055ee783ef04ac40d05917d8b32d7d0ac26618 100644
--- a/src/app/components/pages/Index.jsx
+++ b/src/app/components/pages/Index.jsx
@@ -12,7 +12,8 @@ export default class Index extends React.Component {
                 <h1 className="center text-center">
                     {translateHtml(
                         'APP_NAME_is_a_social_media_platform_where_everyone_gets_paid_for_creating_and_curating_content'
-                    )}.
+                    )}
+                    .
                 </h1>
                 <br />
                 <br />
diff --git a/src/app/components/pages/ListManagement.jsx b/src/app/components/pages/ListManagement.jsx
index 4b538a9dfe2adef2a7b620c6772fa777e7a9e1b0..362c82f00d4e7c7135a0058936b31b6a92dc0359 100644
--- a/src/app/components/pages/ListManagement.jsx
+++ b/src/app/components/pages/ListManagement.jsx
@@ -12,14 +12,22 @@ import tt from 'counterpart';
 import { callBridge } from 'app/utils/steemApi';
 import 'app/components/cards/Comment';
 
-class ListManagement extends React.Component {
-    static propTypes = {
-        username: PropTypes.string,
-        accountname: PropTypes.string,
-        list_type: PropTypes.string,
-        profile: PropTypes.object,
-    };
+const propTypes = {
+    username: PropTypes.string,
+    accountname: PropTypes.string,
+    list_type: PropTypes.string,
+    // eslint-disable-next-line react/forbid-prop-types
+    profile: PropTypes.object,
+};
 
+const defaultProps = {
+    username: '',
+    accountname: '',
+    list_type: '',
+    profile: {},
+};
+
+class ListManagement extends React.Component {
     constructor(props) {
         super(props);
         this.state = {
@@ -56,7 +64,9 @@ class ListManagement extends React.Component {
     }
 
     componentWillMount() {
-        const { profile, accountname, fetchProfile, username, list_type } = this.props;
+        const {
+            profile, accountname, fetchProfile, username,
+        } = this.props;
         if (!profile) fetchProfile(accountname, username);
     }
 
@@ -66,11 +76,12 @@ class ListManagement extends React.Component {
 
     componentDidUpdate(prevProps) {
         if (prevProps.accountname !== this.props.accountname || prevProps.username !== this.props.username) {
-            if (!this.props.profile) fetchProfile(this.props.accountname, this.props.username);
+            if (!this.props.profile) this.props.fetchProfile(this.props.accountname, this.props.username);
         }
 
         if (prevProps.list_type !== this.props.list_type) {
             this.get_accounts_from_api();
+            // eslint-disable-next-line react/no-did-update-set-state
             this.setState({ account_filter: '', start_index: 0 });
             this.searchbox.value = '';
         }
@@ -80,14 +91,14 @@ class ListManagement extends React.Component {
         const { username } = this.props;
         callBridge('does_user_follow_any_lists', { observer: username })
             .then(
-                async result => {
+                async (result) => {
                     this.setState({ first_time_user: !result });
                 },
-                async error => {
+                async (error) => {
                     console.log('bridge_api.does_user_follow_any_lists returned an error: ', error.toString());
                 }
             )
-            .catch(error => {
+            .catch((error) => {
                 console.log('bridge_api.does_user_follow_any_lists returned an error: ', error.toString());
             });
     }
@@ -118,7 +129,7 @@ class ListManagement extends React.Component {
             follow_type: sort_type,
         })
             .then(
-                async result => {
+                async (result) => {
                     if (this.state.updates_are_pending && result.length != this.state.all_listed_accounts.length) {
                         //updates came through, so set pending to false
                         this.setState({
@@ -129,22 +140,22 @@ class ListManagement extends React.Component {
                     }
                     this.setState({ all_listed_accounts: result });
                 },
-                async error => {
+                async (error) => {
                     console.log('callBridge returned an error: ', error);
-                    this.setState({ error: error.toString() });
+                    this.setState({ error_message: error.toString() });
                 }
             )
-            .catch(error => {
+            .catch((error) => {
                 console.log('callBridge returned an error: ', error);
-                this.setState({ error: error.toString() });
+                this.setState({ error_message: error.toString() });
             });
     }
 
     get_filtered_accounts() {
-        let matches = [];
-        let loaded_accounts = this.state.all_listed_accounts;
+        const matches = [];
+        const loaded_accounts = this.state.all_listed_accounts;
         if (!loaded_accounts || loaded_accounts.length == 0) return [];
-        for (var account of loaded_accounts) {
+        for (const account of loaded_accounts) {
             if (account.name.includes(this.state.account_filter)) matches.push(account);
         }
         return matches;
@@ -157,9 +168,9 @@ class ListManagement extends React.Component {
 
         if (!accounts || accounts.length == 0) return [];
 
-        let result = [];
-        let end_index = Math.min(accounts.length, this.state.start_index + this.state.entries_per_page);
-        for (var i = this.state.start_index; i < end_index; i++) {
+        const result = [];
+        const end_index = Math.min(accounts.length, this.state.start_index + this.state.entries_per_page);
+        for (let i = this.state.start_index; i < end_index; i+=1) {
             if (accounts[i] !== null && accounts[i].name && accounts[i].name !== 'null') result.push(accounts[i]);
         }
 
@@ -175,8 +186,10 @@ class ListManagement extends React.Component {
             count = this.get_filtered_accounts().length;
         }
 
-        for (var account of this.state.all_listed_accounts) {
+        // eslint-disable-next-line no-restricted-syntax
+        for (const account of this.state.all_listed_accounts) {
             if (account && account.name === 'null') {
+                // eslint-disable-next-line no-plusplus
                 count--;
                 break;
             }
@@ -186,7 +199,7 @@ class ListManagement extends React.Component {
     }
 
     handle_page_select(direction) {
-        let new_index = this.state.start_index;
+        let new_index;
         switch (direction) {
             case 'next':
                 new_index = this.state.start_index + this.state.entries_per_page;
@@ -198,8 +211,7 @@ class ListManagement extends React.Component {
                 new_index = 0;
                 break;
             case 'last':
-                new_index =
-                    (Math.ceil(this.get_list_length() / this.state.entries_per_page) - 1) * this.state.entries_per_page;
+                new_index = (Math.ceil(this.get_list_length() / this.state.entries_per_page) - 1) * this.state.entries_per_page;
                 break;
             default:
                 new_index = 0;
@@ -207,62 +219,62 @@ class ListManagement extends React.Component {
         }
 
         if (new_index > this.get_list_length()) return;
-        else if (new_index < 0) new_index = 0;
+        if (new_index < 0) new_index = 0;
 
         this.setState({ start_index: new_index });
     }
 
-    validate_accounts_to_add = debounce(text => {
+    validate_accounts_to_add = debounce((text) => {
         if (text === '') {
             this.setState({ unmatched_accounts: [], validated_accounts: [] });
         }
         text = text.replace(/\s+/g, '');
         this.setState({ unmatched_accounts: [] });
-        let accounts = [];
-        let validated_accounts = [];
-        let all_users = text.split(',');
+        const accounts = [];
+        const validated_accounts = [];
+        const all_users = text.split(',');
         if (this.state.error_message !== '') this.setState({ error_message: '' });
-        if (all_users.length > 100)
-            this.setState({
+        if (all_users.length > 100) { this.setState({
                 warning_message:
                     'You are adding a large number of accounts. Numerous brodcast operations will be required.',
-            });
+            }); }
         else this.setState({ warning_message: '' });
 
-        let names_only = this.state.all_listed_accounts.map(item => {
+        const names_only = this.state.all_listed_accounts.map((item) => {
             return item.name;
         });
 
-        for (var user of all_users) {
+        for (const user of all_users) {
             if (user !== '') accounts.push(user);
         }
 
         hive_api.api.getAccounts(accounts, (error, result) => {
-            let bad_accounts = [];
-            let result_string = JSON.stringify(result);
-            for (var check_user of all_users) {
-                if (check_user === '') continue;
-                if (names_only.includes(check_user)) {
-                    bad_accounts.push(check_user);
-                    continue;
-                }
-                if (!result_string.includes(check_user)) bad_accounts.push(check_user);
-                else validated_accounts.push(check_user);
-
-                if (error) {
-                    console.log('hiveio/hive-js returned an error when fetching accounts: ', error);
+            const bad_accounts = [];
+            const result_string = JSON.stringify(result);
+            for (const check_user of all_users) {
+                if (check_user !== '') {
+                    if (!names_only.includes(check_user)) {
+                        if (!result_string.includes(check_user)) bad_accounts.push(check_user);
+                        else validated_accounts.push(check_user);
+
+                        if (error) {
+                            console.log('hiveio/hive-js returned an error when fetching accounts: ', error);
+                        }
+                    } else {
+                        bad_accounts.push(check_user);
+                    }
                 }
             }
 
             this.setState({
-                validated_accounts: validated_accounts,
+                validated_accounts,
                 unmatched_accounts: bad_accounts,
             });
         });
     }, 300);
 
     toggle_help() {
-        let expand_welcome_panel = this.state.expand_welcome_panel;
+        const {expand_welcome_panel} = this.state;
         this.setState({ expand_welcome_panel: !expand_welcome_panel });
     }
 
@@ -295,14 +307,13 @@ class ListManagement extends React.Component {
                 return;
         }
 
-        let follower = this.props.username;
-        let following = this.state.validated_accounts;
+        const follower = this.props.username;
+        const following = this.state.validated_accounts;
 
-        let followings = [];
+        const followings = [];
         if (following.length > 100) {
-            let i = 0;
             while (following.length > 0) {
-                let new_following = following.splice(0, 100);
+                const new_following = following.splice(0, 100);
                 followings.push(new_following);
             }
         } else {
@@ -310,7 +321,7 @@ class ListManagement extends React.Component {
         }
 
         this.setState({ is_busy: true });
-        for (var following_list of followings) {
+        for (const following_list of followings) {
             this.props.updateList(follower, following_list, what, () => {});
         }
         this.setState({
@@ -323,9 +334,9 @@ class ListManagement extends React.Component {
     }
 
     generate_table_rows() {
-        let show_button = this.props.username === this.props.accountname ? 'inline' : 'none';
-        let listed_accounts = this.get_accounts_to_display();
-        let items = [];
+        const show_button = this.props.username === this.props.accountname ? 'inline' : 'none';
+        const listed_accounts = this.get_accounts_to_display();
+        const items = [];
         let button_text = '';
         let include_blacklist_description = false;
         let include_mute_list_description = false;
@@ -351,8 +362,8 @@ class ListManagement extends React.Component {
         if (this.state.is_busy) button_text = tt('list_management_jsx.button_busy');
 
         if (listed_accounts.length == 0) {
-            let item = (
-                <tr key={'empty_tr'}>
+            const item = (
+                <tr key="empty_tr">
                     <td colSpan="2" style={{ width: '75%' }}>
                         <center>
                             <b>
@@ -368,8 +379,8 @@ class ListManagement extends React.Component {
             return items;
         }
 
-        for (var account of listed_accounts) {
-            let item = (
+        for (const account of listed_accounts) {
+            const item = (
                 <tr key={account.name + 'tr'}>
                     <td style={{ width: '75%', whiteSpace: 'nowrap' }}>
                         <Link to={'/@' + account.name}>
@@ -377,19 +388,21 @@ class ListManagement extends React.Component {
                         </Link>
                         {include_blacklist_description && (
                             <div style={{ display: 'inline' }}>
-                                &nbsp;&nbsp;{account.blacklist_description == null ? '' : account.blacklist_description}
+                                &nbsp;&nbsp;
+                                {account.blacklist_description == null ? '' : account.blacklist_description}
                             </div>
                         )}
                         {include_mute_list_description && (
                             <div style={{ display: 'inline' }}>
-                                &nbsp;&nbsp;{account.muted_list_description == null
-                                    ? ''
-                                    : account.muted_list_description}
+                                &nbsp;&nbsp;
+                                {account.mute_list_description == null ? '' : account.mute_list_description}
                             </div>
                         )}
                     </td>
                     <td>
                         <span
+                            role="button"
+                            tabIndex={0}
                             style={{
                                 display: show_button,
                                 whiteSpace: 'nowrap',
@@ -436,8 +449,8 @@ class ListManagement extends React.Component {
                 return;
         }
 
-        let follower = this.props.username;
-        let following = 'all'; //there is an 'all' account, but it appears unused so i'm stealing their identity for this
+        const follower = this.props.username;
+        const following = 'all'; //there is an 'all' account, but it appears unused so i'm stealing their identity for this
         this.setState({ is_busy: true });
         if (what !== '') {
             this.props.updateList(follower, following, what, () => {
@@ -451,13 +464,13 @@ class ListManagement extends React.Component {
     }
 
     follow_hive_blog_lists() {
-        let follower = this.props.username;
-        let following = ['hive.blog', 'plentyofphish'];
-        let what = 'follow_muted';
+        const follower = this.props.username;
+        const following = ['hive.blog', 'plentyofphish'];
+        const what = 'follow_muted';
         this.props.updateList(follower, following, what, () => {
             setTimeout(() => {
-                let what = 'follow_blacklist';
-                this.props.updateList(follower, following, what, () => {});
+                const _what = 'follow_blacklist';
+                this.props.updateList(follower, following, _what, () => {});
                 this.setState({ is_busy: false, updates_are_pending: false });
                 this.get_accounts_from_api();
             }, 1000);
@@ -487,8 +500,8 @@ class ListManagement extends React.Component {
                 return;
         }
 
-        let follower = this.props.username;
-        let following = account;
+        const follower = this.props.username;
+        const following = account;
         this.setState({ is_busy: true });
         this.props.updateList(follower, following, what, () => {
             this.setState({ is_busy: false, updates_are_pending: true });
@@ -497,12 +510,11 @@ class ListManagement extends React.Component {
     }
 
     render() {
-        if (!this.props.profile)
-            return (
-                <center>
-                    <LoadingIndicator type="circle" />
-                </center>
-            );
+        if (!this.props.profile) { return (
+            <center>
+                <LoadingIndicator type="circle" />
+            </center>
+            ); }
 
         let blacklist_description = this.props.profile
             .get('metadata')
@@ -515,17 +527,19 @@ class ListManagement extends React.Component {
             .get('muted_list_description');
         if (!mute_list_description) mute_list_description = "User hasn't added a description to their mute list yet";
 
-        let list_rows = this.generate_table_rows();
-        let list_length = this.get_list_length();
+        const list_rows = this.generate_table_rows();
+        const list_length = this.get_list_length();
 
-        let viewing_own_page = this.props.username === this.props.accountname;
+        const viewing_own_page = this.props.username === this.props.accountname;
 
         let header_text = '',
+            // eslint-disable-next-line no-unused-vars
             add_to_text = '',
             button_text = '',
+            // eslint-disable-next-line no-unused-vars
             description_text = '',
             reset_button_text = '';
-        let reset_all_button_text = tt('list_management_jsx.reset_all_lists');
+        const reset_all_button_text = tt('list_management_jsx.reset_all_lists');
         switch (this.props.list_type) {
             case 'blacklisted':
                 header_text = tt('list_management_jsx.blacklisted_header') + this.props.accountname;
@@ -553,12 +567,16 @@ class ListManagement extends React.Component {
                 button_text = tt('list_management_jsx.button_follow_muted_lists');
                 reset_button_text = tt('list_management_jsx.reset_followed_muted_list');
                 break;
+
+            default:
+                // Nothing
+                break;
         }
 
         if (this.state.is_busy) button_text = tt('list_management_jsx.button_busy');
 
-        let current_page_number = Math.floor(this.state.start_index / this.state.entries_per_page) + 1;
-        let total_pages = Math.max(Math.ceil(list_length / this.state.entries_per_page), 1);
+        const current_page_number = Math.floor(this.state.start_index / this.state.entries_per_page) + 1;
+        const total_pages = Math.max(Math.ceil(list_length / this.state.entries_per_page), 1);
 
         return (
             <div>
@@ -572,10 +590,11 @@ class ListManagement extends React.Component {
                 <p />
 
                 <center>
-                    <span onClick={this.toggle_help}>
+                    <span role="button" tabIndex={0} onClick={this.toggle_help}>
                         {' '}
                         <h5>
-                            <u>{tt('list_management_jsx.what_is_this')}</u>{' '}
+                            <u>{tt('list_management_jsx.what_is_this')}</u>
+                            {' '}
                             {!this.state.first_time_user && !this.state.expand_welcome_panel}
                         </h5>
                     </span>
@@ -591,10 +610,9 @@ class ListManagement extends React.Component {
                                     <tr>
                                         <td>
                                             <center>
-                                                {this.state.first_time_user &&
-                                                    viewing_own_page && (
-                                                        <h5>{tt('list_management_jsx.welcome_header')}</h5>
-                                                    )}
+                                                {this.state.first_time_user && viewing_own_page && (
+                                                    <h5>{tt('list_management_jsx.welcome_header')}</h5>
+                                                )}
                                             </center>
                                         </td>
                                     </tr>
@@ -602,11 +620,16 @@ class ListManagement extends React.Component {
                                     <tr>
                                         <td>
                                             <center>
-                                                {tt('list_management_jsx.info1')} {tt('list_management_jsx.info2')}{' '}
+                                                {tt('list_management_jsx.info1')}
+                                                {' '}
+                                                {tt('list_management_jsx.info2')}
+                                                {' '}
                                                 <Link to={'/@' + this.props.username + '/settings'}>
                                                     {tt('list_management_jsx.info3')}
                                                 </Link>
-                                                {tt('list_management_jsx.info4')} {tt('list_management_jsx.info5')}
+                                                {tt('list_management_jsx.info4')}
+                                                {' '}
+                                                {tt('list_management_jsx.info5')}
                                                 <p />
                                                 {tt('list_management_jsx.info6')}
                                             </center>
@@ -614,13 +637,17 @@ class ListManagement extends React.Component {
                                     </tr>
                                 </tbody>
                             </table>
-                            {viewing_own_page &&
-                                this.state.first_time_user && (
+                            {viewing_own_page
+                                && this.state.first_time_user && (
                                     <div>
-                                        {tt('list_management_jsx.info7')} <br />
+                                        {tt('list_management_jsx.info7')}
+                                        {' '}
+                                        <br />
                                         <span
+                                            role="button"
+                                            tabIndex={0}
                                             className="button slim hollow secondary"
-                                            onClick={e => {
+                                            onClick={() => {
                                                 this.dismiss_intro();
                                             }}
                                         >
@@ -640,7 +667,8 @@ class ListManagement extends React.Component {
                         </h5>
                         {(this.props.list_type === 'blacklisted' || this.props.list_type === 'muted') && (
                             <h6>
-                                {tt('list_management_jsx.list_description_placement')}{' '}
+                                {tt('list_management_jsx.list_description_placement')}
+                                {' '}
                                 {this.props.list_type === 'blacklisted' ? blacklist_description : mute_list_description}
                             </h6>
                         )}
@@ -655,9 +683,11 @@ class ListManagement extends React.Component {
 
                         {list_length > this.state.entries_per_page && (
                             <span
+                                role="button"
+                                tabIndex={0}
                                 className="button slim hollow secondary"
                                 value="first"
-                                onClick={e => {
+                                onClick={() => {
                                     this.handle_page_select('first');
                                 }}
                             >
@@ -666,9 +696,11 @@ class ListManagement extends React.Component {
                         )}
                         {list_length > this.state.entries_per_page && (
                             <span
+                                role="button"
+                                tabIndex={0}
                                 className="button slim hollow secondary"
                                 value="prev"
-                                onClick={e => {
+                                onClick={() => {
                                     this.handle_page_select('previous');
                                 }}
                             >
@@ -677,9 +709,11 @@ class ListManagement extends React.Component {
                         )}
                         {list_length > this.state.entries_per_page && (
                             <span
+                                role="button"
+                                tabIndex={0}
                                 className="button slim hollow secondary"
                                 value="next"
-                                onClick={e => {
+                                onClick={() => {
                                     this.handle_page_select('next');
                                 }}
                             >
@@ -688,9 +722,11 @@ class ListManagement extends React.Component {
                         )}
                         {list_length > this.state.entries_per_page && (
                             <span
+                                role="button"
+                                tabIndex={0}
                                 className="button slim hollow secondary"
                                 value="last"
-                                onClick={e => {
+                                onClick={() => {
                                     this.handle_page_select('last');
                                 }}
                             >
@@ -739,8 +775,8 @@ class ListManagement extends React.Component {
                                                             }}
                                                             type="text"
                                                             name="multiadd"
-                                                            ref={el => (this.multiadd = el)}
-                                                            onChange={e => {
+                                                            ref={(el) => (this.multiadd = el)}
+                                                            onChange={(e) => {
                                                                 this.validate_accounts_to_add(e.target.value);
                                                             }}
                                                         />
@@ -758,6 +794,8 @@ class ListManagement extends React.Component {
                                                     <center>
                                                         {this.state.validated_accounts.length > 0 && (
                                                             <span
+                                                                role="button"
+                                                                tabIndex={0}
                                                                 className="button slim hollow secondary"
                                                                 onClick={this.broadcastFollowOperation}
                                                             >
@@ -773,7 +811,8 @@ class ListManagement extends React.Component {
                                     {this.state.unmatched_accounts.length > 0 && (
                                         <div style={{ color: 'red' }}>
                                             <b>
-                                                {tt('list_management_jsx.unknown_accounts')}{' '}
+                                                {tt('list_management_jsx.unknown_accounts')}
+                                                {' '}
                                                 {this.state.unmatched_accounts.join(', ')}
                                             </b>
                                         </div>
@@ -793,7 +832,7 @@ class ListManagement extends React.Component {
                                         <center>
                                             <input
                                                 type="text"
-                                                ref={el => (this.searchbox = el)}
+                                                ref={(el) => (this.searchbox = el)}
                                                 style={{ width: '350px' }}
                                                 onChange={this.handle_filter_change}
                                             />
@@ -807,7 +846,7 @@ class ListManagement extends React.Component {
                         <h5>
                             <b>{tt('list_management_jsx.reset_header')}</b>
                         </h5>
-                        <span className="button slim hollow secondary" onClick={this.handle_reset_list.bind(this)}>
+                        <span role="button" tabIndex={0} className="button slim hollow secondary" onClick={this.handle_reset_list.bind(this)}>
                             {this.state.is_busy ? tt('list_management_jsx.button_busy') : reset_button_text}
                         </span>
                         <span
@@ -840,12 +879,15 @@ class ListManagement extends React.Component {
     }
 }
 
+ListManagement.propTypes = propTypes;
+ListManagement.defaultProps = defaultProps;
+
 module.exports = {
     path: '@:accountname/lists/:list_type',
     component: connect(
         (state, ownProps) => {
             const username = state.user.getIn(['current', 'username']);
-            const list_type = ownProps.routeParams.list_type;
+            const {list_type} = ownProps.routeParams;
             const accountname = ownProps.routeParams.accountname.toLowerCase();
             const profile = state.userProfiles.getIn(['profiles', accountname]);
             return {
@@ -855,7 +897,7 @@ module.exports = {
                 profile,
             };
         },
-        dispatch => ({
+        (dispatch) => ({
             fetchProfile: (account, observer) => dispatch(UserProfilesSagaActions.fetchProfile({ account, observer })),
             updateList: (follower, following, type, callback) => {
                 const what = type ? [type] : [];
diff --git a/src/app/components/pages/Post.jsx b/src/app/components/pages/Post.jsx
index 08522c2c6cf02bc3cf2ffc0747954b16ca764154..425afaad77ab083a9e7cebb8ada7114d5d635588 100644
--- a/src/app/components/pages/Post.jsx
+++ b/src/app/components/pages/Post.jsx
@@ -3,11 +3,10 @@ import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 import tt from 'counterpart';
 import { SIGNUP_URL } from 'shared/constants';
-import Comment from 'app/components/cards/Comment';
 import PostFull from 'app/components/cards/PostFull';
 import NotFoundMessage from 'app/components/cards/NotFoundMessage';
 import { parseJsonTags } from 'app/utils/StateFunctions';
-import { sortComments } from 'app/components/cards/Comment';
+import Comment, { sortComments } from 'app/components/cards/Comment';
 import DropdownMenu from 'app/components/elements/DropdownMenu';
 import { serverApiRecordEvent } from 'app/utils/ServerApiClient';
 import GptAd from 'app/components/elements/GptAd';
@@ -28,6 +27,7 @@ class Post extends React.Component {
         sortOrder: PropTypes.string,
         loading: PropTypes.bool,
     };
+
     constructor() {
         super();
         this.state = {
@@ -39,8 +39,9 @@ class Post extends React.Component {
         };
     }
 
-    toggleNegativeReplies = e => {
+    toggleNegativeReplies = (e) => {
         this.setState({
+            // eslint-disable-next-line react/no-access-state-in-setstate
             showNegativeComments: !this.state.showNegativeComments,
         });
         e.preventDefault();
@@ -56,7 +57,9 @@ class Post extends React.Component {
 
     render() {
         const { showSignUp } = this;
-        const { content, sortOrder, post, dis, loading } = this.props;
+        const {
+            content, sortOrder, post, dis, loading,
+        } = this.props;
         const { showNegativeComments, commentHidden, showAnyway } = this.state;
 
         if (!content || !dis) {
@@ -66,7 +69,9 @@ class Post extends React.Component {
                         <LoadingIndicator type="circle" />
                     </center>
                 );
-            } else if (isEmptyPost(dis)) {
+            }
+
+            if (isEmptyPost(dis)) {
                 return <NotFoundMessage />;
             }
         }
@@ -83,9 +88,13 @@ class Post extends React.Component {
                     <div className="row">
                         <div className="column">
                             <div className="PostFull">
+                                {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}
                                 <p onClick={this.showAnywayClick}>
-                                    {tt('promote_post_jsx.this_post_was_hidden_due_to_low_ratings')}.{' '}
+                                    {tt('promote_post_jsx.this_post_was_hidden_due_to_low_ratings')}
+                                    .
+                                    {' '}
                                     <button
+                                        type="button"
                                         style={{ marginBottom: 0 }}
                                         className="button hollow tiny float-right"
                                         onClick={this.showAnywayClick}
@@ -112,8 +121,8 @@ class Post extends React.Component {
             replies = replies.slice(0, commentLimit);
         }
         let commentCount = 0;
-        const positiveComments = replies.map(reply => {
-            commentCount++;
+        const positiveComments = replies.map((reply) => {
+            commentCount += 1;
             const showAd = commentCount % 5 === 0 && commentCount !== replies.length && commentCount !== commentLimit;
 
             return (
@@ -140,8 +149,10 @@ class Post extends React.Component {
                 <p>
                     {showNegativeComments
                         ? tt('post_jsx.now_showing_comments_with_low_ratings')
-                        : tt('post_jsx.comments_were_hidden_due_to_low_ratings')}.{' '}
-                    <button className="button hollow tiny float-right" onClick={e => this.toggleNegativeReplies(e)}>
+                        : tt('post_jsx.comments_were_hidden_due_to_low_ratings')}
+                    .
+                    {' '}
+                    <button type="button" className="button hollow tiny float-right" onClick={(e) => this.toggleNegativeReplies(e)}>
                         {showNegativeComments ? tt('g.hide') : tt('g.show')}
                     </button>
                 </p>
@@ -157,6 +168,7 @@ class Post extends React.Component {
         const sort_menu = [];
         let sort_label;
         const selflink = `/${dis.get('category')}/@${post}`;
+        // eslint-disable-next-line no-plusplus
         for (let o = 0; o < sort_orders.length; ++o) {
             if (sort_orders[o] == sortOrder) sort_label = sort_labels[o];
             sort_menu.push({
@@ -166,29 +178,30 @@ class Post extends React.Component {
             });
         }
 
+        const enableSignup = false;
         return (
             <div className="Post">
                 <div className="row">
                     <div className="column">{postBody}</div>
                 </div>
-                {false &&
-                    !isLoggedIn() && (
-                        <div className="row">
-                            <div className="column">
-                                <div className="Post__promo">
-                                    {tt(
-                                        'g.next_7_strings_single_block.authors_get_paid_when_people_like_you_upvote_their_post'
-                                    )}.
-                                    <br />
-                                    {tt('g.next_7_strings_single_block.if_you_enjoyed_what_you_read_earn_amount')}
-                                    <br />
-                                    <button type="button" className="button e-btn" onClick={showSignUp}>
-                                        {tt('loginform_jsx.sign_up_get_hive')}
-                                    </button>
-                                </div>
+                {enableSignup && !isLoggedIn() && (
+                    <div className="row">
+                        <div className="column">
+                            <div className="Post__promo">
+                                {tt(
+                                    'g.next_7_strings_single_block.authors_get_paid_when_people_like_you_upvote_their_post'
+                                )}
+                                .
+                                <br />
+                                {tt('g.next_7_strings_single_block.if_you_enjoyed_what_you_read_earn_amount')}
+                                <br />
+                                <button type="button" className="button e-btn" onClick={showSignUp}>
+                                    {tt('loginform_jsx.sign_up_get_hive')}
+                                </button>
                             </div>
                         </div>
-                    )}
+                    </div>
+                )}
                 {this.props.gptEnabled && commentCount >= 5 ? (
                     <div className="Post_footer__ad">
                         <GptAd tags={gptTags} type="Freestar" id="bsa-zone_1566494147292-7_123456" />
@@ -199,7 +212,8 @@ class Post extends React.Component {
                         <div className="Post_comments__content">
                             {positiveComments.length ? (
                                 <div className="Post__comments_sort_order float-right">
-                                    {tt('post_jsx.sort_order')}: &nbsp;
+                                    {tt('post_jsx.sort_order')}
+                                    : &nbsp;
                                     <DropdownMenu items={sort_menu} el="li" selected={sort_label} position="left" />
                                 </div>
                             ) : null}
diff --git a/src/app/components/pages/PostPageNoCategory.jsx b/src/app/components/pages/PostPageNoCategory.jsx
index 8c6c4e31d6c61d2895799269587126a3f83389a6..7cdd1bd99a4b103cc8657c7c60c442094abaf7d9 100644
--- a/src/app/components/pages/PostPageNoCategory.jsx
+++ b/src/app/components/pages/PostPageNoCategory.jsx
@@ -53,10 +53,7 @@ const StoreWrapped = connect(
         let category = state.global.getIn(['content', postref, 'category']);
         if (typeof category === 'undefined') {
             if (state.global.hasIn(['headers', postref])) {
-                category = state.global.getIn(
-                    ['headers', postref, 'category'],
-                    null
-                );
+                category = state.global.getIn(['headers', postref, 'category'], null);
             }
         }
 
@@ -67,9 +64,8 @@ const StoreWrapped = connect(
             loading: typeof category === 'undefined',
         };
     },
-    dispatch => ({
-        getPostHeader: payload =>
-            dispatch(fetchDataSagaActions.getPostHeader(payload)),
+    (dispatch) => ({
+        getPostHeader: (payload) => dispatch(fetchDataSagaActions.getPostHeader(payload)),
     })
 )(PostWrapper);
 
diff --git a/src/app/components/pages/PostsIndex.jsx b/src/app/components/pages/PostsIndex.jsx
index 80e1bd24d9c9e952eab2e4b080b2a7bf3642c771..4eb32b6e24f85094412dd3eb64227ba6c859de86 100644
--- a/src/app/components/pages/PostsIndex.jsx
+++ b/src/app/components/pages/PostsIndex.jsx
@@ -1,25 +1,26 @@
 /* eslint react/prop-types: 0 */
-import React from 'react';
+import React, { PureComponent } from 'react';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 import { Link } from 'react-router';
 import tt from 'counterpart';
 import { List } from 'immutable';
 import { actions as fetchDataSagaActions } from 'app/redux/FetchDataSaga';
-import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
+// import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
 import PostsList from 'app/components/cards/PostsList';
 import { isFetchingOrRecentlyUpdated } from 'app/utils/StateFunctions';
 import Callout from 'app/components/elements/Callout';
 import { GptUtils } from 'app/utils/GptUtils';
-import Topics from './Topics';
 import SortOrder from 'app/components/elements/SortOrder';
 import { ifHive } from 'app/utils/Community';
 import PostsIndexLayout from 'app/components/pages/PostsIndexLayout';
+import Topics from './Topics';
 
 // posts_index.empty_feed_1 [-5]
 const noFriendsText = (
     <div>
-        You haven't followed anyone yet!<br />
+        You haven&apos;t followed anyone yet!
+        <br />
         <br />
         <span style={{ fontSize: '1.1rem' }}>
             <Link to="/">Explore Trending</Link>
@@ -32,7 +33,8 @@ const noFriendsText = (
 
 const noCommunitiesText = (
     <div>
-        You haven't joined any active communities yet!<br />
+        You haven&apos;t joined any active communities yet!
+        <br />
         <br />
         <span style={{ fontSize: '1.1rem' }}>
             <Link to="/communities">Explore Communities</Link>
@@ -43,10 +45,11 @@ const noCommunitiesText = (
     </div>
 );
 
-class PostsIndex extends React.Component {
+class PostsIndex extends PureComponent {
     static propTypes = {
         posts: PropTypes.object,
         status: PropTypes.object,
+        // eslint-disable-next-line react/no-unused-prop-types
         routeParams: PropTypes.object,
         requestData: PropTypes.func,
         loading: PropTypes.bool,
@@ -59,7 +62,7 @@ class PostsIndex extends React.Component {
         super();
         this.state = {};
         this.loadMore = this.loadMore.bind(this);
-        this.shouldComponentUpdate = shouldComponentUpdate(this, 'PostsIndex');
+        // this.shouldComponentUpdate = shouldComponentUpdate(this, 'PostsIndex');
     }
 
     componentWillMount() {
@@ -68,11 +71,7 @@ class PostsIndex extends React.Component {
     }
 
     componentDidUpdate(prevProps) {
-        if (
-            window.innerHeight &&
-            window.innerHeight > 3000 &&
-            prevProps.posts !== this.props.posts
-        ) {
+        if (window.innerHeight && window.innerHeight > 3000 && prevProps.posts !== this.props.posts) {
             this.refs.list.fetchIfNeeded();
         }
     }
@@ -81,11 +80,14 @@ class PostsIndex extends React.Component {
         const last_post = this.props.posts ? this.props.posts.last() : null;
         if (!last_post) return;
         if (last_post == this.props.pending) return; // if last post is 'pending', its an invalid start token
-        const { username, status, order, category } = this.props;
+        const {
+            username, status, order, category,
+        } = this.props;
 
         if (isFetchingOrRecentlyUpdated(status, order, category)) return;
 
         const [author, permlink] = last_post.split('/');
+
         this.props.requestData({
             author,
             permlink,
@@ -108,9 +110,7 @@ class PostsIndex extends React.Component {
             username,
         } = this.props;
 
-        const status = this.props.status
-            ? this.props.status.getIn([category || '', order])
-            : null;
+        const status = this.props.status ? this.props.status.getIn([category || '', order]) : null;
         let fetching = (status && status.fetching) || this.props.loading;
 
         let emptyText = '';
@@ -125,12 +125,11 @@ class PostsIndex extends React.Component {
         } else if (posts.size === 0) {
             const cat = community
                 ? 'community' //community.get('title')
-                : category ? ' #' + category : '';
+                : category
+                ? ' #' + category
+                : '';
 
-            if (order == 'payout')
-                emptyText = `No pending ${
-                    cat
-                } posts found. This view only shows posts within 12 - 36 hours of payout.`;
+            if (order == 'payout') emptyText = `No pending ${cat} posts found. This view only shows posts within 12 - 36 hours of payout.`;
             else if (order == 'created') emptyText = `No posts in ${cat} yet!`;
             else emptyText = `No ${order} ${cat} posts found.`;
         } else {
@@ -140,14 +139,12 @@ class PostsIndex extends React.Component {
         // page title
         let page_title = tt('g.all_tags');
         if (order === 'feed') {
-            if (account_name === this.props.username)
-                page_title = 'My friends' || tt('posts_index.my_feed');
-            else
-                //page_title = tt('posts_index.accountnames_feed', {
-                //    account_name,
-                //});
-                //page_title = '@' + account_name + "'s friends"
-                page_title = 'My friends';
+            if (account_name === this.props.username) page_title = 'My friends' || tt('posts_index.my_feed');
+            //page_title = tt('posts_index.accountnames_feed', {
+            //    account_name,
+            //});
+            //page_title = '@' + account_name + "'s friends"
+            else page_title = 'My friends';
         } else if (category === 'my') {
             page_title = 'My communities';
         } else if (community) {
@@ -179,16 +176,10 @@ class PostsIndex extends React.Component {
         }
 
         return (
-            <PostsIndexLayout
-                category={category}
-                enableAds={enableAds}
-                blogmode={this.props.blogmode}
-            >
+            <PostsIndexLayout category={category} enableAds={enableAds} blogmode={this.props.blogmode}>
                 <div className="articles__header row">
                     <div className="small-8 medium-7 large-8 column">
-                        <h1 className="articles__h1 show-for-mq-large articles__h1--no-wrap">
-                            {page_title}
-                        </h1>
+                        <h1 className="articles__h1 show-for-mq-large articles__h1--no-wrap">{page_title}</h1>
                         <div className="show-for-mq-large">
                             {community && (
                                 <div
@@ -200,19 +191,16 @@ class PostsIndex extends React.Component {
                                     Community
                                 </div>
                             )}
-                            {!community &&
-                                category &&
-                                order !== 'feed' &&
-                                category !== 'my' && (
-                                    <div
-                                        style={{
-                                            fontSize: '80%',
-                                            color: 'gray',
-                                        }}
-                                    >
-                                        Unmoderated tag
-                                    </div>
-                                )}
+                            {!community && category && order !== 'feed' && category !== 'my' && (
+                                <div
+                                    style={{
+                                        fontSize: '80%',
+                                        color: 'gray',
+                                    }}
+                                >
+                                    Unmoderated tag
+                                </div>
+                            )}
                         </div>
                         <span className="hide-for-mq-large articles__header-select">
                             <Topics
@@ -224,16 +212,11 @@ class PostsIndex extends React.Component {
                             />
                         </span>
                     </div>
-                    {order != 'feed' &&
-                        !(category === 'my' && !posts.size) && (
-                            <div className="small-4 medium-5 large-4 column articles__header-select">
-                                <SortOrder
-                                    sortOrder={order}
-                                    topic={category}
-                                    horizontal={false}
-                                />
-                            </div>
-                        )}
+                    {order != 'feed' && !(category === 'my' && !posts.size) && (
+                        <div className="small-4 medium-5 large-4 column articles__header-select">
+                            <SortOrder sortOrder={order} topic={category} horizontal={false} />
+                        </div>
+                    )}
                     {/*
                     medium-4 large-3
                     <div className="medium-1 show-for-mq-medium column">
@@ -254,26 +237,14 @@ module.exports = {
             // route can be e.g. trending/food (order/category);
             //   or, @username/feed (category/order). Branch on presence of `@`.
             const route = ownProps.routeParams;
-            const account_name =
-                route.order && route.order[0] == '@'
-                    ? route.order.slice(1).toLowerCase()
-                    : null;
-            const category = account_name
-                ? route.order
-                : route.category ? route.category.toLowerCase() : null;
-            const order = account_name
-                ? route.category
-                : route.order || 'trending';
+            const account_name = route.order && route.order[0] == '@' ? route.order.slice(1).toLowerCase() : null;
+            const category = account_name ? route.order : route.category ? route.category.toLowerCase() : null;
+            const order = account_name ? route.category : route.order || 'trending';
 
             const hive = ifHive(category);
             const community = state.global.getIn(['community', hive], null);
 
-            const enableAds =
-                ownProps.gptEnabled &&
-                !GptUtils.HasBannedTags(
-                    [category],
-                    state.app.getIn(['googleAds', 'gptBannedTags'])
-                );
+            const enableAds = ownProps.gptEnabled && !GptUtils.HasBannedTags([category], state.app.getIn(['googleAds', 'gptBannedTags']));
 
             const key = ['discussion_idx', category || '', order];
             let posts = state.global.getIn(key, List());
@@ -285,9 +256,7 @@ module.exports = {
             if (pending && !posts.includes(pending)) {
                 posts = posts.unshift(pending);
             }
-            const username =
-                state.user.getIn(['current', 'username']) ||
-                state.offchain.get('account');
+            const username = state.user.getIn(['current', 'username']) || state.offchain.get('account');
 
             return {
                 subscriptions: state.global.getIn(['subscriptions', username]),
@@ -306,11 +275,9 @@ module.exports = {
                 enableAds,
             };
         },
-        dispatch => ({
-            getSubscriptions: account =>
-                dispatch(fetchDataSagaActions.getSubscriptions(account)),
-            requestData: args =>
-                dispatch(fetchDataSagaActions.requestData(args)),
+        (dispatch) => ({
+            getSubscriptions: (account) => dispatch(fetchDataSagaActions.getSubscriptions(account)),
+            requestData: (args) => dispatch(fetchDataSagaActions.requestData(args)),
         })
     )(PostsIndex),
 };
diff --git a/src/app/components/pages/PostsIndexLayout.jsx b/src/app/components/pages/PostsIndexLayout.jsx
index 3f92683a5a8b18081b0a08828061d3ac5a560e13..a03a12aa015be6523503bd23e95c8d4190c30494 100644
--- a/src/app/components/pages/PostsIndexLayout.jsx
+++ b/src/app/components/pages/PostsIndexLayout.jsx
@@ -27,91 +27,45 @@ class PostsIndexLayout extends React.Component {
 
     componentDidUpdate(prevProps) {
         const { subscriptions, getSubscriptions, username } = this.props;
-        if (!subscriptions && username && username != prevProps.username)
-            getSubscriptions(username);
+        if (!subscriptions && username && username != prevProps.username) getSubscriptions(username);
     }
 
     render() {
-        const {
-            topics,
-            subscriptions,
-            enableAds,
-            community,
-            username,
-            blogmode,
-            isBrowser,
-            children,
-        } = this.props;
+        const { topics, subscriptions, enableAds, community, username, blogmode, isBrowser, children } = this.props;
 
         return (
-            <div
-                className={
-                    'PostsIndex row ' +
-                    (blogmode ? 'layout-block' : 'layout-list')
-                }
-            >
+            <div className={'PostsIndex row ' + (blogmode ? 'layout-block' : 'layout-list')}>
                 <article className="articles">
                     {community && (
                         <span className="hide-for-mq-large articles__header-select">
-                            <CommunityPaneMobile
-                                community={community}
-                                username={username}
-                            />
+                            <CommunityPaneMobile community={community} username={username} />
                         </span>
                     )}
                     {children}
                 </article>
 
                 <aside className="c-sidebar c-sidebar--right">
-                    {community && (
-                        <CommunityPane
-                            community={community}
-                            username={username}
-                        />
-                    )}
-                    {isBrowser &&
-                        !community &&
-                        !username && <SidebarNewUsers />}
-                    {isBrowser &&
-                        !community &&
-                        username && (
-                            <SidebarLinks username={username} topics={topics} />
-                        )}
+                    {community && <CommunityPane community={community} username={username} />}
+                    {isBrowser && !community && !username && <SidebarNewUsers />}
+                    {isBrowser && !community && username && <SidebarLinks username={username} topics={topics} />}
                     {false && !community && <Notices />}
                     {!community && <SteemMarket />}
                     {enableAds && (
                         <div className="sidebar-ad">
-                            <GptAd
-                                type="Freestar"
-                                id="bsa-zone_1566495004689-0_123456"
-                            />
+                            <GptAd type="Freestar" id="bsa-zone_1566495004689-0_123456" />
                         </div>
                     )}
                 </aside>
 
                 <aside className="c-sidebar c-sidebar--left">
-                    <Topics
-                        compact={false}
-                        username={username}
-                        subscriptions={subscriptions}
-                        topics={topics}
-                    />
+                    <Topics compact={false} username={username} subscriptions={subscriptions} topics={topics} />
                     {enableAds && (
                         <div>
                             <div className="sidebar-ad">
-                                <GptAd
-                                    type="Freestar"
-                                    slotName="bsa-zone_1566494461953-7_123456"
-                                />
+                                <GptAd type="Freestar" slotName="bsa-zone_1566494461953-7_123456" />
                             </div>
-                            <div
-                                className="sidebar-ad"
-                                style={{ marginTop: 20 }}
-                            >
-                                <GptAd
-                                    type="Freestar"
-                                    slotName="bsa-zone_1566494856923-9_123456"
-                                />
+                            <div className="sidebar-ad" style={{ marginTop: 20 }}>
+                                <GptAd type="Freestar" slotName="bsa-zone_1566494856923-9_123456" />
                             </div>
                         </div>
                     )}
@@ -123,24 +77,18 @@ class PostsIndexLayout extends React.Component {
 
 export default connect(
     (state, props) => {
-        const username =
-            state.user.getIn(['current', 'username']) ||
-            state.offchain.get('account');
+        const username = state.user.getIn(['current', 'username']) || state.offchain.get('account');
         return {
             blogmode: props.blogmode,
             enableAds: props.enableAds,
             community: state.global.getIn(['community', props.category], null),
-            subscriptions: state.global.getIn(
-                ['subscriptions', username],
-                null
-            ),
+            subscriptions: state.global.getIn(['subscriptions', username], null),
             topics: state.global.getIn(['topics'], List()),
             isBrowser: process.env.BROWSER,
             username,
         };
     },
-    dispatch => ({
-        getSubscriptions: account =>
-            dispatch(fetchDataSagaActions.getSubscriptions(account)),
+    (dispatch) => ({
+        getSubscriptions: (account) => dispatch(fetchDataSagaActions.getSubscriptions(account)),
     })
 )(PostsIndexLayout);
diff --git a/src/app/components/pages/Privacy.jsx b/src/app/components/pages/Privacy.jsx
index 6f1ecea6189b3177916adec21c207c3df91784cf..e0d4ab68998678d398d32fac0704d887545e4b0b 100644
--- a/src/app/components/pages/Privacy.jsx
+++ b/src/app/components/pages/Privacy.jsx
@@ -12,30 +12,26 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span>
-                            This Privacy Policy describes how this site 
-                            collects, uses and discloses information, and what 
-                            choices you have with respect to the information. 
+                            This Privacy Policy describes how this site collects, uses and discloses information, and
+                            what choices you have with respect to the information.
                         </span>
-                        
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Updates in this version of the Privacy Policy
-                            reflect changes in data protection law.
+                            Updates in this version of the Privacy Policy reflect changes in data protection law.
                         </span>
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            When we refer to this site’s operator, we mean the entity that acts as the controller of your information.
+                            When we refer to this site’s operator, we mean the entity that acts as the controller of
+                            your information.
                         </span>
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            By using the Services, you accept the terms of this
-                            Policy and our Terms of Service, and consent to our
-                            initial collection, use, disclosure, and retention
-                            of your information as described in this Policy and
-                            Terms of Service.
+                            By using the Services, you accept the terms of this Policy and our Terms of Service, and
+                            consent to our initial collection, use, disclosure, and retention of your information as
+                            described in this Policy and Terms of Service.
                         </span>
                     </p>
                     <p className="c0">
@@ -43,11 +39,9 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Please note that this Policy does not apply to
-                            information collected through third-party websites
-                            or services that you may access through the Services
-                            or that you submit to us through email, text message
-                            or other electronic message or offline.
+                            Please note that this Policy does not apply to information collected through third-party
+                            websites or services that you may access through the Services or that you submit to us
+                            through email, text message or other electronic message or offline.
                         </span>
                     </p>
                     <p className="c0">
@@ -55,10 +49,8 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            If you are visiting this site from the European
-                            Union (EU), see our Notice to EU Data Subjects below
-                            for our legal bases for processing and transfer of
-                            your data.
+                            If you are visiting this site from the European Union (EU), see our Notice to EU Data
+                            Subjects below for our legal bases for processing and transfer of your data.
                         </span>
                     </p>
                     <p className="c0">
@@ -69,18 +61,13 @@ class Privacy extends React.Component {
                         <span className="c1" />
                     </p>
                     <p className="c2">
-                        <span className="c1">
-                            We get information about you in a range of ways.
-                        </span>
+                        <span className="c1">We get information about you in a range of ways.</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
                     </p>
                     <p className="c2">
-                        <span className="c1">
-                            Information You Give Us. Information we collect from
-                            you includes:
-                        </span>
+                        <span className="c1">Information You Give Us. Information we collect from you includes:</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
@@ -98,24 +85,18 @@ class Privacy extends React.Component {
                         <span className="c1" />
                     </p>
                     <p className="c2">
-                        <span>
-                            Contact information, such as your email address and
-                            telephone number;
-                        </span>
+                        <span>Contact information, such as your email address and telephone number;</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Information Automatically Collected. We may
-                            automatically record certain information about how
-                            you use our Site (we refer to this information as
-                            &ldquo;Log Data&ldquo;). Log Data may include
-                            information such as a user&rsquo;s Internet Protocol
-                            (IP) address, device and browser type, and operating
-                            system. We use this information to administer and
-                            provide access to the Services
+                            Information Automatically Collected. We may automatically record certain information about
+                            how you use our Site (we refer to this information as &ldquo;Log Data&ldquo;). Log Data may
+                            include information such as a user&rsquo;s Internet Protocol (IP) address, device and
+                            browser type, and operating system. We use this information to administer and provide access
+                            to the Services
                         </span>
                     </p>
                     <p className="c0">
@@ -123,10 +104,9 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Information we will never collect. We will never ask
-                            you to share your private keys or wallet seed. Never
-                            trust anyone or any site that asks you to enter your
-                            private keys or wallet seed.
+                            Information we will never collect. We will never ask you to share your private keys or
+                            wallet seed. Never trust anyone or any site that asks you to enter your private keys or
+                            wallet seed.
                         </span>
                     </p>
                     <p className="c0">
@@ -141,8 +121,7 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            To provide our service we will use your personal
-                            information in the following ways:
+                            To provide our service we will use your personal information in the following ways:
                         </span>
                     </p>
                     <p className="c0">
@@ -150,26 +129,20 @@ class Privacy extends React.Component {
                     </p>
                     <ul className="c16 lst-kix_umcklwsd66fi-0 start">
                         <li className="c2 c9">
-                            <span className="c1">
-                                To enable you to access and use the Services
-                            </span>
+                            <span className="c1">To enable you to access and use the Services</span>
                         </li>
                         <li className="c2 c9">
                             <span className="c1">To comply with law</span>
                         </li>
                         <li className="c2 c9">
                             <span className="c1">
-                                We use your personal information as we believe
-                                necessary or appropriate to comply with
-                                applicable laws, lawful requests and legal
-                                process, such as to respond to subpoenas or
+                                We use your personal information as we believe necessary or appropriate to comply with
+                                applicable laws, lawful requests and legal process, such as to respond to subpoenas or
                                 requests from government authorities. &nbsp;
                             </span>
                         </li>
                         <li className="c2 c9">
-                            <span className="c1">
-                                For compliance, fraud prevention, and safety
-                            </span>
+                            <span className="c1">For compliance, fraud prevention, and safety</span>
                         </li>
                         <li className="c2 c9">
                             <span className="c1">Communications</span>
@@ -180,20 +153,16 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We may use your personal information to protect,
-                            investigate, and deter against fraudulent,
+                            We may use your personal information to protect, investigate, and deter against fraudulent,
                             unauthorized, or illegal activity.
                         </span>
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We may use your personal information to contact you
-                            with newsletters, marketing or promotional materials
-                            and other information that may be of interest to
-                            you. You may opt out of receiving any, or all, of
-                            these communications from us by following the
-                            unsubscribe or instructions provided in any email
-                            send.
+                            We may use your personal information to contact you with newsletters, marketing or
+                            promotional materials and other information that may be of interest to you. You may opt out
+                            of receiving any, or all, of these communications from us by following the unsubscribe or
+                            instructions provided in any email send.
                         </span>
                     </p>
                     <p className="c0">
@@ -205,11 +174,9 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We do not share or sell the personal information
-                            that you provide us with other organizations without
-                            your express consent, except as described in this
-                            Privacy Policy. We disclose personal information to
-                            third parties under the following circumstances:
+                            We do not share or sell the personal information that you provide us with other
+                            organizations without your express consent, except as described in this Privacy Policy. We
+                            disclose personal information to third parties under the following circumstances:
                         </span>
                     </p>
                     <p className="c0">
@@ -217,10 +184,8 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Affiliates. We may disclose your personal
-                            information to our subsidiaries and corporate
-                            affiliates for purposes consistent with this Privacy
-                            Policy.
+                            Affiliates. We may disclose your personal information to our subsidiaries and corporate
+                            affiliates for purposes consistent with this Privacy Policy.
                         </span>
                     </p>
                     <p className="c0">
@@ -228,12 +193,10 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Business Transfers. We may share personal
-                            information when we do a business deal, or negotiate
-                            a business deal, involving the sale or transfer of
-                            all or a part of our business or assets. These deals
-                            can include any merger, financing, acquisition, or
-                            bankruptcy transaction or proceeding.
+                            Business Transfers. We may share personal information when we do a business deal, or
+                            negotiate a business deal, involving the sale or transfer of all or a part of our business
+                            or assets. These deals can include any merger, financing, acquisition, or bankruptcy
+                            transaction or proceeding.
                         </span>
                     </p>
                     <p className="c0">
@@ -241,26 +204,22 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Compliance with Laws and Law Enforcement; Protection
-                            and Safety. We may share personal information for
-                            legal, protection, and safety purposes.
+                            Compliance with Laws and Law Enforcement; Protection and Safety. We may share personal
+                            information for legal, protection, and safety purposes.
                         </span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
                     </p>
                     <p className="c2">
-                        <span className="c1">
-                            We may share information to comply with laws.
-                        </span>
+                        <span className="c1">We may share information to comply with laws.</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We may share information to respond to lawful
-                            requests and legal processes.
+                            We may share information to respond to lawful requests and legal processes.
                         </span>
                     </p>
                     <p className="c0">
@@ -268,22 +227,18 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Professional Advisors and Service Providers. We may
-                            share information with those who need it to do work
-                            for us. These recipients may include third party
-                            companies and individuals to administer and provide
-                            the Service on our behalf (such as customer support,
-                            hosting, email delivery and database management
-                            services), as well as lawyers, bankers, auditors,
-                            and insurers.
+                            Professional Advisors and Service Providers. We may share information with those who need it
+                            to do work for us. These recipients may include third party companies and individuals to
+                            administer and provide the Service on our behalf (such as customer support, hosting, email
+                            delivery and database management services), as well as lawyers, bankers, auditors, and
+                            insurers.
                         </span>
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Other. You may permit us to share your personal
-                            information with other companies or entities of your
-                            choosing. Those uses will be subject to the privacy
-                            policies of the recipient entity or entities.
+                            Other. You may permit us to share your personal information with other companies or entities
+                            of your choosing. Those uses will be subject to the privacy policies of the recipient entity
+                            or entities.
                         </span>
                     </p>
                     <p className="c0">
@@ -291,8 +246,7 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We may also share aggregated and/or anonymized data
-                            with others for their own uses.
+                            We may also share aggregated and/or anonymized data with others for their own uses.
                         </span>
                     </p>
                     <p className="c0">
@@ -304,14 +258,11 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            The Company has offices outside of the EU and has
-                            affiliates and service providers in the United
-                            States and in other countries. Your personal
-                            information may be transferred to or from the United
-                            States or other locations outside of your state,
-                            province, country or other governmental jurisdiction
-                            where privacy laws may not be as protective as those
-                            in your jurisdiction.
+                            The Company has offices outside of the EU and has affiliates and service providers in the
+                            United States and in other countries. Your personal information may be transferred to or
+                            from the United States or other locations outside of your state, province, country or other
+                            governmental jurisdiction where privacy laws may not be as protective as those in your
+                            jurisdiction.
                         </span>
                     </p>
                     <p className="c0">
@@ -319,10 +270,8 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            EU users should read the important information
-                            provided &nbsp;below about transfer of personal
-                            information outside of the European Economic Area
-                            (EEA).
+                            EU users should read the important information provided &nbsp;below about transfer of
+                            personal information outside of the European Economic Area (EEA).
                         </span>
                     </p>
                     <p className="c0">
@@ -334,23 +283,15 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We retain information we collect as long as it is
-                            necessary and relevant to fulfill the purposes
-                            outlined in this privacy policy. In addition, we
-                            retain personal information to comply with
-                            applicable law where required, prevent fraud,
-                            resolve disputes, troubleshoot problems, assist with
-                            any investigation, enforce our Terms of Service, and
-                            other actions permitted by law. To determine the
-                            appropriate retention period for personal
-                            information, we consider the amount, nature, and
-                            sensitivity of the personal information, the
-                            potential risk of harm from unauthorized use or
-                            disclosure of your personal information, the
-                            purposes for which we process your personal
-                            information and whether we can achieve those
-                            purposes through other means, and the applicable
-                            legal requirements.
+                            We retain information we collect as long as it is necessary and relevant to fulfill the
+                            purposes outlined in this privacy policy. In addition, we retain personal information to
+                            comply with applicable law where required, prevent fraud, resolve disputes, troubleshoot
+                            problems, assist with any investigation, enforce our Terms of Service, and other actions
+                            permitted by law. To determine the appropriate retention period for personal information, we
+                            consider the amount, nature, and sensitivity of the personal information, the potential risk
+                            of harm from unauthorized use or disclosure of your personal information, the purposes for
+                            which we process your personal information and whether we can achieve those purposes through
+                            other means, and the applicable legal requirements.
                         </span>
                     </p>
                     <p className="c0">
@@ -358,10 +299,9 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            In some circumstances we may anonymize your personal
-                            information (so that it can no longer be associated
-                            with you) in which case we may use this information
-                            indefinitely without further notice to you. &nbsp;{' '}
+                            In some circumstances we may anonymize your personal information (so that it can no longer
+                            be associated with you) in which case we may use this information indefinitely without
+                            further notice to you. &nbsp;{' '}
                         </span>
                     </p>
                     <p className="c0">
@@ -369,18 +309,13 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We employ industry standard security measures
-                            designed to protect the security of all information
-                            submitted through the Services. However, the
-                            security of information transmitted through the
-                            internet can never be guaranteed. We are not
-                            responsible for any interception or interruption of
-                            any communications through the internet or for
-                            changes to or losses of data. Users of the Services
-                            are responsible for maintaining the security of any
-                            password, user ID or other form of authentication
-                            involved in obtaining access to password protected
-                            or secure areas of any of our digital services.
+                            We employ industry standard security measures designed to protect the security of all
+                            information submitted through the Services. However, the security of information transmitted
+                            through the internet can never be guaranteed. We are not responsible for any interception or
+                            interruption of any communications through the internet or for changes to or losses of data.
+                            Users of the Services are responsible for maintaining the security of any password, user ID
+                            or other form of authentication involved in obtaining access to password protected or secure
+                            areas of any of our digital services.
                         </span>
                     </p>
                     <p className="c0">
@@ -394,19 +329,15 @@ class Privacy extends React.Component {
                         <span className="c1" />
                     </p>
                     <p className="c2">
-                        <span className="c1">
-                            Accessing, Updating, Correcting, and Deleting your
-                            Information
-                        </span>
+                        <span className="c1">Accessing, Updating, Correcting, and Deleting your Information</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
                     </p>
                     <p className="c2">
                         <span>
-                            You may access information that you have voluntarily
-                            provided through your account on the Services, and
-                            review, correct, or delete it.
+                            You may access information that you have voluntarily provided through your account on the
+                            Services, and review, correct, or delete it.
                         </span>
                         <span className="c1">.</span>
                     </p>
@@ -416,8 +347,7 @@ class Privacy extends React.Component {
                     <h3 className="c8 c20">CONTACT INFORMATION.</h3>
                     <p className="c2">
                         <span className="c1">
-                            &nbsp;We welcome your comments or questions about
-                            this Policy, and you may contact us at:
+                            &nbsp;We welcome your comments or questions about this Policy, and you may contact us at:
                             privacy@hive.io.
                         </span>
                     </p>
@@ -427,11 +357,9 @@ class Privacy extends React.Component {
                     <h3 className="c8 c20">CHANGES TO THIS PRIVACY POLICY.</h3>
                     <p className="c2">
                         <span className="c1">
-                            &nbsp;We may change this privacy policy at any time.
-                            We encourage you to periodically review this page
-                            for the latest information on our privacy practices.
-                            If we make any changes, we will change the Last
-                            Updated date above.
+                            &nbsp;We may change this privacy policy at any time. We encourage you to periodically review
+                            this page for the latest information on our privacy practices. If we make any changes, we
+                            will change the Last Updated date above.
                         </span>
                     </p>
                     <p className="c0">
@@ -439,14 +367,11 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Any modifications to this Privacy Policy will be
-                            effective upon our posting of the new terms and/or
-                            upon implementation of the changes to the Site (or
-                            as otherwise indicated at the time of posting). In
-                            all cases, your continued use of the the Site or
-                            Services after the posting of any modified Privacy
-                            Policy indicates your acceptance of the terms of the
-                            modified Privacy Policy.
+                            Any modifications to this Privacy Policy will be effective upon our posting of the new terms
+                            and/or upon implementation of the changes to the Site (or as otherwise indicated at the time
+                            of posting). In all cases, your continued use of the the Site or Services after the posting
+                            of any modified Privacy Policy indicates your acceptance of the terms of the modified
+                            Privacy Policy.
                         </span>
                     </p>
                     <p className="c0">
@@ -458,19 +383,14 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            If you are under the age of majority in your
-                            jurisdiction of residence, you may use the Services
-                            only with the consent of or under the supervision of
-                            your parent or legal guardian. Consistent with the
-                            requirements of the Children&#39;s Online Privacy
-                            Protection Act (COPPA), if we learn that we have
-                            received any information directly from a child under
-                            age 13 without first receiving his or her
-                            parent&#39;s verified consent, we will use that
-                            information only to respond directly to that child
-                            (or his or her parent or legal guardian) to inform
-                            the child that he or she cannot use the Site and
-                            subsequently we will delete that information.
+                            If you are under the age of majority in your jurisdiction of residence, you may use the
+                            Services only with the consent of or under the supervision of your parent or legal guardian.
+                            Consistent with the requirements of the Children&#39;s Online Privacy Protection Act
+                            (COPPA), if we learn that we have received any information directly from a child under age
+                            13 without first receiving his or her parent&#39;s verified consent, we will use that
+                            information only to respond directly to that child (or his or her parent or legal guardian)
+                            to inform the child that he or she cannot use the Site and subsequently we will delete that
+                            information.
                         </span>
                     </p>
                     <p className="c0">
@@ -482,14 +402,11 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Under California Civil Code Section 1789.3,
-                            California users are entitled to the following
-                            consumer rights notice: California residents may
-                            reach the Complaint Assistance Unit of the Division
-                            of Consumer Services of the California Department of
-                            Consumer Affairs by mail at 1625 North Market Blvd.,
-                            Sacramento, CA 95834, or by telephone at (916)
-                            445-1254 or (800) 952-5210.
+                            Under California Civil Code Section 1789.3, California users are entitled to the following
+                            consumer rights notice: California residents may reach the Complaint Assistance Unit of the
+                            Division of Consumer Services of the California Department of Consumer Affairs by mail at
+                            1625 North Market Blvd., Sacramento, CA 95834, or by telephone at (916) 445-1254 or (800)
+                            952-5210.
                         </span>
                     </p>
                     <p className="c0">
@@ -510,11 +427,9 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            With respect to EU data subjects, &ldquo;personal
-                            information,&rdquo; as used in this Privacy Policy,
-                            is equivalent to &ldquo;personal data&rdquo; as
-                            defined in the European Union General Data
-                            Protection Regulation (GDPR).
+                            With respect to EU data subjects, &ldquo;personal information,&rdquo; as used in this
+                            Privacy Policy, is equivalent to &ldquo;personal data&rdquo; as defined in the European
+                            Union General Data Protection Regulation (GDPR).
                         </span>
                     </p>
                     <p className="c0">
@@ -531,13 +446,10 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We only use your personal information as permitted
-                            by law. We are required to inform you of the legal
-                            bases of our processing of your personal
-                            information, which are described in the table below.
-                            If you have questions about the legal bases under
-                            which we process your personal information, contact
-                            us at legal@hive.io.
+                            We only use your personal information as permitted by law. We are required to inform you of
+                            the legal bases of our processing of your personal information, which are described in the
+                            table below. If you have questions about the legal bases under which we process your
+                            personal information, contact us at legal@hive.io.
                         </span>
                     </p>
                     <p className="c0">
@@ -554,9 +466,7 @@ class Privacy extends React.Component {
                             <span className="c1">Legal Basis</span>
                         </li>
                         <li className="c2 c9">
-                            <span className="c1">
-                                For compliance, fraud prevention, and safety
-                            </span>
+                            <span className="c1">For compliance, fraud prevention, and safety</span>
                         </li>
                         <li className="c2 c9">
                             <span className="c1">To provide our service</span>
@@ -570,15 +480,11 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            These processing activities constitute our
-                            legitimate interests. We make sure we consider and
-                            balance any potential impacts on you (both positive
-                            and negative) and your rights before we process your
-                            personal information for our legitimate interests.
-                            We do not use your personal information for
-                            activities where our interests are overridden by any
-                            adverse impact on you (unless we have your consent
-                            or are otherwise required or permitted to by law).
+                            These processing activities constitute our legitimate interests. We make sure we consider
+                            and balance any potential impacts on you (both positive and negative) and your rights before
+                            we process your personal information for our legitimate interests. We do not use your
+                            personal information for activities where our interests are overridden by any adverse impact
+                            on you (unless we have your consent or are otherwise required or permitted to by law).
                         </span>
                     </p>
                     <p className="c0">
@@ -592,10 +498,9 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Where our use of your personal information is based
-                            upon your consent, you have the right to withdraw it
-                            anytime in the manner indicated in the Service or by
-                            contacting us at privacy@hive.io
+                            Where our use of your personal information is based upon your consent, you have the right to
+                            withdraw it anytime in the manner indicated in the Service or by contacting us at
+                            privacy@hive.io
                         </span>
                     </p>
                     <p className="c0">
@@ -609,16 +514,12 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We may use your personal information for reasons not
-                            described in this Privacy Policy, where we are
-                            permitted by law to do so and where the reason is
-                            compatible with the purpose for which we collected
-                            it. If we need to use your personal information for
-                            an unrelated purpose, we will notify you and explain
-                            the applicable legal basis for that use. If we have
-                            relied upon your consent for a particular use of
-                            your personal information, we will seek your consent
-                            for any unrelated purpose.
+                            We may use your personal information for reasons not described in this Privacy Policy, where
+                            we are permitted by law to do so and where the reason is compatible with the purpose for
+                            which we collected it. If we need to use your personal information for an unrelated purpose,
+                            we will notify you and explain the applicable legal basis for that use. If we have relied
+                            upon your consent for a particular use of your personal information, we will seek your
+                            consent for any unrelated purpose.
                         </span>
                     </p>
                     <p className="c0">
@@ -632,10 +533,8 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Under the GDPR, you have certain rights regarding
-                            your personal information. You may ask us to take
-                            the following actions in relation to your personal
-                            information that we hold:
+                            Under the GDPR, you have certain rights regarding your personal information. You may ask us
+                            to take the following actions in relation to your personal information that we hold:
                         </span>
                     </p>
                     <p className="c0">
@@ -644,10 +543,8 @@ class Privacy extends React.Component {
                     <p className="c2">
                         <span className="c8">Opt-out</span>
                         <span className="c1">
-                            . Stop sending you direct marketing communications
-                            which you have previously consented to receive. We
-                            may continue to send you Service-related and other
-                            non-marketing communications.
+                            . Stop sending you direct marketing communications which you have previously consented to
+                            receive. We may continue to send you Service-related and other non-marketing communications.
                         </span>
                     </p>
                     <p className="c0">
@@ -656,9 +553,8 @@ class Privacy extends React.Component {
                     <p className="c2">
                         <span className="c8">Access</span>
                         <span className="c1">
-                            . Provide you with information about our processing
-                            of your personal information and give you access to
-                            your personal information.
+                            . Provide you with information about our processing of your personal information and give
+                            you access to your personal information.
                         </span>
                     </p>
                     <p className="c0">
@@ -666,19 +562,14 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c8">Correct</span>
-                        <span className="c1">
-                            . Update or correct inaccuracies in your personal
-                            information.
-                        </span>
+                        <span className="c1">. Update or correct inaccuracies in your personal information.</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
                     </p>
                     <p className="c2">
                         <span className="c8">Delete</span>
-                        <span className="c1">
-                            . Delete your personal information.
-                        </span>
+                        <span className="c1">. Delete your personal information.</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
@@ -686,8 +577,8 @@ class Privacy extends React.Component {
                     <p className="c2">
                         <span className="c8">Transfer</span>
                         <span className="c1">
-                            . Transfer a machine-readable copy of your personal
-                            information to you or a third party of your choice.
+                            . Transfer a machine-readable copy of your personal information to you or a third party of
+                            your choice.
                         </span>
                     </p>
                     <p className="c0">
@@ -695,10 +586,7 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c8">Restrict</span>
-                        <span className="c1">
-                            . Restrict the processing of your personal
-                            information.
-                        </span>
+                        <span className="c1">. Restrict the processing of your personal information.</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
@@ -706,9 +594,8 @@ class Privacy extends React.Component {
                     <p className="c2">
                         <span className="c8">Object</span>
                         <span className="c1">
-                            . Object to our reliance on our legitimate interests
-                            as the basis of our processing of your personal
-                            information that impacts your rights.
+                            . Object to our reliance on our legitimate interests as the basis of our processing of your
+                            personal information that impacts your rights.
                         </span>
                     </p>
                     <p className="c0">
@@ -716,18 +603,13 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span>
-                            You can submit these requests by email to 
-                            privacy@hive.io. We may request specific
-                            information from you to help us confirm your
-                            identity and process your request. Applicable law
-                            may require or permit us to decline your request. If
-                            we decline your request, we will tell you why,
-                            subject to legal restrictions. If you would like to
-                            submit a complaint about our use of your personal
-                            information or response to your requests regarding
-                            your personal information, you may contact us at
-                            privacy@hive.io or submit a complaint to the
-                            data protection regulator in your jurisdiction.
+                            You can submit these requests by email to privacy@hive.io. We may request specific
+                            information from you to help us confirm your identity and process your request. Applicable
+                            law may require or permit us to decline your request. If we decline your request, we will
+                            tell you why, subject to legal restrictions. If you would like to submit a complaint about
+                            our use of your personal information or response to your requests regarding your personal
+                            information, you may contact us at privacy@hive.io or submit a complaint to the data
+                            protection regulator in your jurisdiction.
                         </span>
                         <span className="c1">.</span>
                     </p>
@@ -742,14 +624,11 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Please be aware that your personal data will be
-                            transferred to, processed, and stored in the United
-                            States. Data protection laws in the U.S. may be
-                            different from those in your country of residence.
-                            You consent to the transfer of your information,
-                            including personal information, to the U.S. as set
-                            forth in this Privacy Policy by visiting our site or
-                            using our service.
+                            Please be aware that your personal data will be transferred to, processed, and stored in the
+                            United States. Data protection laws in the U.S. may be different from those in your country
+                            of residence. You consent to the transfer of your information, including personal
+                            information, to the U.S. as set forth in this Privacy Policy by visiting our site or using
+                            our service.
                         </span>
                     </p>
                     <p className="c0">
@@ -757,13 +636,10 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Whenever we transfer your personal information out
-                            of the EEA to the U.S. or countries not deemed by
-                            the European Commission to provide an adequate level
-                            of personal information protection, the transfer
-                            will be based on a data transfer mechanism
-                            recognized by the European Commission as providing
-                            adequate protection for personal information.
+                            Whenever we transfer your personal information out of the EEA to the U.S. or countries not
+                            deemed by the European Commission to provide an adequate level of personal information
+                            protection, the transfer will be based on a data transfer mechanism recognized by the
+                            European Commission as providing adequate protection for personal information.
                         </span>
                     </p>
                     <p className="c0">
@@ -771,9 +647,8 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Please contact us if you want further information on
-                            the specific mechanism used by us when transferring
-                            your personal information out of the EEA.
+                            Please contact us if you want further information on the specific mechanism used by us when
+                            transferring your personal information out of the EEA.
                         </span>
                     </p>
                     <p className="c0">
@@ -786,9 +661,7 @@ class Privacy extends React.Component {
                         <span className="c1" />
                     </p>
                     <p className="c2">
-                        <span className="c1">
-                            We generally use Cookies for the following purposes:
-                        </span>
+                        <span className="c1">We generally use Cookies for the following purposes:</span>
                     </p>
                     <p className="c0">
                         <span className="c1" />
@@ -796,26 +669,22 @@ class Privacy extends React.Component {
                     <ul className="c16 lst-kix_a4jg53v083t7-0 start">
                         <li className="c2 c9">
                             <span className="c1">
-                                To allow registered users to stay logged in to
-                                the site after they close their browser window;
+                                To allow registered users to stay logged in to the site after they close their browser
+                                window;
                             </span>
                         </li>
                         <li className="c2 c9">
-                            <span className="c1">
-                                To store users&#39; preferences for site
-                                functionality; and
-                            </span>
+                            <span className="c1">To store users&#39; preferences for site functionality; and</span>
                         </li>
                         <li className="c2 c9">
                             <span className="c1">
-                                To track site usage so we can improve our site
-                                &amp; better understand how people are using it
+                                To track site usage so we can improve our site &amp; better understand how people are
+                                using it
                             </span>
                         </li>
                         <li className="c2 c9">
                             <span className="c1">
-                                To better understand the interests of our
-                                customers and our website visitors.
+                                To better understand the interests of our customers and our website visitors.
                             </span>
                         </li>
                     </ul>
@@ -824,17 +693,12 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            Some Cookies are necessary for certain uses of the
-                            Site, and without such Cookies, we would not be able
-                            to provide many services that you need to properly
-                            use the Site. These Cookies, for example, allow us
-                            to operate our Site so you may access it as you have
-                            requested and let us recognize that you have created
-                            an account and have logged into that account to
-                            access Site content. They also include Cookies that
-                            enable us to remember your previous actions within
-                            the same browsing session and secure our Sites.
-                            &nbsp;
+                            Some Cookies are necessary for certain uses of the Site, and without such Cookies, we would
+                            not be able to provide many services that you need to properly use the Site. These Cookies,
+                            for example, allow us to operate our Site so you may access it as you have requested and let
+                            us recognize that you have created an account and have logged into that account to access
+                            Site content. They also include Cookies that enable us to remember your previous actions
+                            within the same browsing session and secure our Sites. &nbsp;
                         </span>
                     </p>
                     <p className="c1">
@@ -842,24 +706,16 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We also use functional Cookies and Cookies from
-                            third parties for analysis and marketing purposes.
-                            &nbsp;Functional Cookies enable certain parts of the
-                            site to work properly and your user preferences to
-                            remain known. &nbsp;Analysis Cookies, among other
-                            things, collect information on how visitors use our
-                            Site, the content and products that users view most
-                            frequently, and the effectiveness of our third party
-                            advertising. Advertising Cookies assist in
-                            delivering ads to relevant audiences and having our
-                            ads appear at the top of search results. Cookies are
-                            either &ldquo;session&rdquo; Cookies which are
-                            deleted when you end your browser session, or
-                            &ldquo;persistent,&rdquo; which remain until their
-                            deletion by you (discussed below) or the party who
-                            served the cookie. &nbsp;Full details on all of the
-                            Cookies used on the Site are available at our Cookie
-                            Disclosure table below.
+                            We also use functional Cookies and Cookies from third parties for analysis and marketing
+                            purposes. &nbsp;Functional Cookies enable certain parts of the site to work properly and
+                            your user preferences to remain known. &nbsp;Analysis Cookies, among other things, collect
+                            information on how visitors use our Site, the content and products that users view most
+                            frequently, and the effectiveness of our third party advertising. Advertising Cookies assist
+                            in delivering ads to relevant audiences and having our ads appear at the top of search
+                            results. Cookies are either &ldquo;session&rdquo; Cookies which are deleted when you end
+                            your browser session, or &ldquo;persistent,&rdquo; which remain until their deletion by you
+                            (discussed below) or the party who served the cookie. &nbsp;Full details on all of the
+                            Cookies used on the Site are available at our Cookie Disclosure table below.
                         </span>
                     </p>
                     <p className="c0">
@@ -870,9 +726,8 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span>
-                            You can generally activate or later deactivate the
-                            use of cookies through a functionality built into
-                            your web browser. To learn more about how to control
+                            You can generally activate or later deactivate the use of cookies through a functionality
+                            built into your web browser. To learn more about how to control
                         </span>
                         <span>&nbsp;cookie settings through your browser:</span>
                     </p>
@@ -890,9 +745,8 @@ class Privacy extends React.Component {
                             </a>
                         </span>
                         <span className="c1">
-                            &nbsp;to learn more about the &ldquo;Private
-                            Browsing&rdquo; setting and managing cookie settings
-                            in Firefox;
+                            &nbsp;to learn more about the &ldquo;Private Browsing&rdquo; setting and managing cookie
+                            settings in Firefox;
                         </span>
                     </p>
                     <p className="c0">
@@ -909,8 +763,7 @@ class Privacy extends React.Component {
                             </a>
                         </span>
                         <span className="c1">
-                            &nbsp;to learn more about &ldquo;Incognito&rdquo;
-                            and managing cookie settings in Chrome;
+                            &nbsp;to learn more about &ldquo;Incognito&rdquo; and managing cookie settings in Chrome;
                         </span>
                     </p>
                     <p className="c0">
@@ -927,9 +780,8 @@ class Privacy extends React.Component {
                             </a>
                         </span>
                         <span className="c1">
-                            &nbsp;to learn more about &ldquo;InPrivate&rdquo;
-                            and managing cookie settings in Internet Explorer;
-                            or
+                            &nbsp;to learn more about &ldquo;InPrivate&rdquo; and managing cookie settings in Internet
+                            Explorer; or
                         </span>
                     </p>
                     <p className="c0">
@@ -946,8 +798,7 @@ class Privacy extends React.Component {
                             </a>
                         </span>
                         <span className="c1">
-                            &nbsp;to learn more about &ldquo;Private
-                            Browsing&rdquo; and managing cookie settings in
+                            &nbsp;to learn more about &ldquo;Private Browsing&rdquo; and managing cookie settings in
                             Safari.
                         </span>
                     </p>
@@ -956,13 +807,10 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            If you want to learn more about cookies, or how to
-                            control, disable or delete them, please visit
-                            http://www.aboutcookies.org for detailed guidance.
-                            In addition, certain third party advertising
-                            networks, including Google, permit users to opt out
-                            of or customize preferences associated with your
-                            internet browsing.
+                            If you want to learn more about cookies, or how to control, disable or delete them, please
+                            visit http://www.aboutcookies.org for detailed guidance. In addition, certain third party
+                            advertising networks, including Google, permit users to opt out of or customize preferences
+                            associated with your internet browsing.
                         </span>
                     </p>
                     <p className="c0">
@@ -970,19 +818,14 @@ class Privacy extends React.Component {
                     </p>
                     <p className="c2">
                         <span className="c1">
-                            We may link the information collected by Cookies
-                            with other information we collect from you pursuant
-                            to this Privacy Policy and use the combined
-                            information as set forth herein. &nbsp;Similarly,
-                            the third parties who serve cookies on our Site may
-                            link your name or email address to other information
-                            they collect, which may include past purchases made
-                            offline or online, or your online usage information.
-                            If you are located in the European Economic Area,
-                            you have certain rights that are described above
-                            under the header &ldquo;Notice to EU Data
-                            Subjects&rdquo;, including the right to inspect and
-                            correct or delete the data that we have about you.
+                            We may link the information collected by Cookies with other information we collect from you
+                            pursuant to this Privacy Policy and use the combined information as set forth herein.
+                            &nbsp;Similarly, the third parties who serve cookies on our Site may link your name or email
+                            address to other information they collect, which may include past purchases made offline or
+                            online, or your online usage information. If you are located in the European Economic Area,
+                            you have certain rights that are described above under the header &ldquo;Notice to EU Data
+                            Subjects&rdquo;, including the right to inspect and correct or delete the data that we have
+                            about you.
                         </span>
                     </p>
                 </div>
diff --git a/src/app/components/pages/Rewards.jsx b/src/app/components/pages/Rewards.jsx
index 201f582ae58ddc7480c2db774841feea9b182b85..166c0131f6e9972cdfca5175c156876f20fc2fea 100644
--- a/src/app/components/pages/Rewards.jsx
+++ b/src/app/components/pages/Rewards.jsx
@@ -25,16 +25,16 @@ function normalizeRewards(rewards) {
 }
 
 function generateTreemap(items, total, xscale) {
-    let data = items.map(item => {
+    let data = items.map((item) => {
         return { item, value: item.payout };
     });
     data.sort((a, b) => a.value > b.value);
 
     const container = { x0: 0, y0: 0, x1: 100 * xscale, y1: 100 };
 
-    return squarify(data, container).map(box => {
+    return squarify(data, container).map((box) => {
         const { x0, y0, x1, y1, item } = box;
-        const pct = (100 * item.payout / total).toFixed(2);
+        const pct = ((100 * item.payout) / total).toFixed(2);
         return {
             ...item,
             pct,
@@ -122,13 +122,12 @@ class Rewards extends Component {
         const xscale = 0.5 * (width / height); // 2:1 bias
         const boxes = generateTreemap(items, total, xscale);
 
-        const shown = (100 * (total - remainder) / total).toFixed(2);
+        const shown = ((100 * (total - remainder)) / total).toFixed(2);
         return (
             <div id="reward_wrap">
                 <div className="head">
-                    Showing top {items.length} payout buckets, representing{' '}
-                    <strong>{shown}%</strong> of all pending payouts. This
-                    report does not account for burned rewards.
+                    Showing top {items.length} payout buckets, representing <strong>{shown}%</strong> of all pending
+                    payouts. This report does not account for burned rewards.
                 </div>
                 <div id="reward_chart" style={{ height: height + 'px' }}>
                     {boxes.map(this.renderBox)}
@@ -138,17 +137,7 @@ class Rewards extends Component {
     }
 
     renderBox(item) {
-        const {
-            payout,
-            posts,
-            title,
-            url,
-            authors,
-            is_blog,
-            shape,
-            pct,
-            rank,
-        } = item;
+        const { payout, posts, title, url, authors, is_blog, shape, pct, rank } = item;
         const summary = '$' + Math.round(payout) + ' in ' + posts + ' posts';
         const link = (
             <Link to={url} className="box-inner">
@@ -173,7 +162,7 @@ class Rewards extends Component {
             </Link>
         );
 
-        const bg = row => {
+        const bg = (row) => {
             const { posts, payout, is_blog } = row;
             const per_post = posts ? payout / posts : null;
             const alpha = per_post ? Math.min(per_post / 15 + 0.1, 1) : 0.5;
@@ -206,9 +195,8 @@ module.exports = {
             };
         },
         // mapDispatchToProps
-        dispatch => ({
-            fetchRewardsData: payload =>
-                dispatch(fetchDataSagaActions.getRewardsData()),
+        (dispatch) => ({
+            fetchRewardsData: (payload) => dispatch(fetchDataSagaActions.getRewardsData()),
         })
     )(Rewards),
 };
diff --git a/src/app/components/pages/SearchIndex.jsx b/src/app/components/pages/SearchIndex.jsx
index b56984a202644aced90d50edc45408269ae0baa8..467e8a5ba1fd9b442641d6e8c7007cae57af1aec 100644
--- a/src/app/components/pages/SearchIndex.jsx
+++ b/src/app/components/pages/SearchIndex.jsx
@@ -67,10 +67,13 @@ class SearchIndex extends React.Component {
     }
 
     render() {
-        const { result, loading, params, performSearch, error } = this.props;
+        const {
+ result, loading, params, performSearch, error
+} = this.props;
         const errorMessage = _.get(error, 'message', undefined);
 
         const searchResults = (
+            // eslint-disable-next-line react/no-string-refs
             <PostsList ref="list" posts={fromJS(result)} loading={loading} loadMore={this.fetchMoreResults} />
         );
 
@@ -95,8 +98,8 @@ class SearchIndex extends React.Component {
                     ) : (
                         searchResults
                     )}
-                    {!loading &&
-                        errorMessage && (
+                    {!loading
+                        && errorMessage && (
                             <Callout title="There was an error" type="alert">
                                 {errorMessage}
                             </Callout>
@@ -121,8 +124,8 @@ module.exports = {
                 params,
             };
         },
-        dispatch => ({
-            performSearch: args => dispatch(search(args)),
+        (dispatch) => ({
+            performSearch: (args) => dispatch(search(args)),
         })
     )(SearchIndex),
 };
diff --git a/src/app/components/pages/SubmitPost.jsx b/src/app/components/pages/SubmitPost.jsx
index 5db08547910dec3a7e9c09cda26cf0b589e16053..44f5c570832957534aad67b609a99378a97a34ad 100644
--- a/src/app/components/pages/SubmitPost.jsx
+++ b/src/app/components/pages/SubmitPost.jsx
@@ -21,7 +21,7 @@ function _redirect_url(operations) {
 class SubmitPost extends React.Component {
     constructor() {
         super();
-        this.success = operations => {
+        this.success = (operations) => {
             localStorage.removeItem('replyEditorData-' + formId);
             browserHistory.push(_redirect_url(operations));
         };
@@ -31,12 +31,7 @@ class SubmitPost extends React.Component {
             return <Callout>Log in to make a post.</Callout>;
         }
 
-        return (
-            <SubmitReplyEditor
-                type="submit_story"
-                successCallback={this.success}
-            />
-        );
+        return <SubmitReplyEditor type="submit_story" successCallback={this.success} />;
     }
 }
 
diff --git a/src/app/components/pages/Support.jsx b/src/app/components/pages/Support.jsx
index 23c1a26a2336d950d65936c1b17a5e15886a2bf8..aaa625367cb969b0d52bc394f22b096da4f99adc 100644
--- a/src/app/components/pages/Support.jsx
+++ b/src/app/components/pages/Support.jsx
@@ -9,10 +9,8 @@ class Support extends React.Component {
                 <div>
                     <h2>{tt('g.APP_NAME_support', { APP_NAME })}</h2>
                     <p>
-                        {tt('g.please_email_questions_to')}{' '}
-                        <a href="mailto:contact@steemit.com">
-                            contact@steemit.com
-                        </a>.
+                        {tt('g.please_email_questions_to')} <a href="mailto:contact@steemit.com">contact@steemit.com</a>
+                        .
                     </p>
                 </div>
             </div>
diff --git a/src/app/components/pages/TagsIndex.jsx b/src/app/components/pages/TagsIndex.jsx
index f6371aad2dfdae11ac988feac61d46e606210a1d..a36a5cca8fb0f00223bdfcbfb9eb94264feb4223 100644
--- a/src/app/components/pages/TagsIndex.jsx
+++ b/src/app/components/pages/TagsIndex.jsx
@@ -36,16 +36,25 @@ export default class TagsIndex extends React.Component {
     };
 
     compareTags = (a, b, type) => {
+        let response;
         switch (type) {
             case 'name':
-                return a.get('name').localeCompare(b.get('name'));
+                response = a.get('name').localeCompare(b.get('name'));
+                break;
             case 'posts':
-                return parseInt(a.get('top_posts')) <= parseInt(b.get('top_posts')) ? 1 : -1;
+                response = parseInt(a.get('top_posts')) <= parseInt(b.get('top_posts')) ? 1 : -1;
+                break;
             case 'comments':
-                return parseInt(a.get('comments')) <= parseInt(b.get('comments')) ? 1 : -1;
+                response = parseInt(a.get('comments')) <= parseInt(b.get('comments')) ? 1 : -1;
+                break;
             case 'payouts':
-                return parseInt(a.get('total_payouts')) <= parseInt(b.get('total_payouts')) ? 1 : -1;
+                response = parseInt(a.get('total_payouts')) <= parseInt(b.get('total_payouts')) ? 1 : -1;
+                break;
+            default:
+                // Nothing
         }
+
+        return response;
     };
 
     render() {
@@ -58,12 +67,12 @@ export default class TagsIndex extends React.Component {
         const rows = tags
             .filter(
                 // there is a blank tag present, as well as some starting with #. filter them out.
-                tag => /^[a-z]/.test(tag.get('name'))
+                (tag) => /^[a-z]/.test(tag.get('name'))
             )
             .sort((a, b) => {
                 return this.compareTags(a, b, order);
             })
-            .map(tag => {
+            .map((tag) => {
                 const name = tag.get('name');
                 const link = `/trending/${name}`;
                 return (
@@ -86,13 +95,13 @@ export default class TagsIndex extends React.Component {
             ['posts', tt('g.posts')],
             ['comments', tt('g.comments')],
             ['payouts', tt('g.payouts')],
-        ].map(col => {
+        ].map((col) => {
             return (
                 <th key={col[0]}>
                     {order === col[0] ? (
                         <strong>{col[1]}</strong>
                     ) : (
-                        <Link to="#" onClick={e => this.onChangeSort(e, col[0])}>
+                        <Link to="#" onClick={(e) => this.onChangeSort(e, col[0])}>
                             {col[1]}
                         </Link>
                     )}
diff --git a/src/app/components/pages/Topics.jsx b/src/app/components/pages/Topics.jsx
index cd24836db809b8f3b60479ecf489827342687e92..2d0d5051010deeb974d62a923db87d23fc172a34 100644
--- a/src/app/components/pages/Topics.jsx
+++ b/src/app/components/pages/Topics.jsx
@@ -19,14 +19,7 @@ class Topics extends Component {
     };
 
     render() {
-        const {
-            current,
-            compact,
-            username,
-            topics,
-            subscriptions,
-            communities,
-        } = this.props;
+        const { current, compact, username, topics, subscriptions, communities } = this.props;
 
         if (compact) {
             const opt = (tag, label = null) => {
@@ -35,8 +28,7 @@ class Topics extends Component {
                         value: `/@${username}/feed`,
                         label: 'My friends' || `tt('g.my_feed')`,
                     };
-                if (tag === 'my')
-                    return { value: `/trending/my`, label: 'My communities' };
+                if (tag === 'my') return { value: `/trending/my`, label: 'My communities' };
                 if (tag == 'explore')
                     return {
                         value: `/communities`,
@@ -58,9 +50,7 @@ class Topics extends Component {
                 options.push(opt('@' + username));
                 // Add 'My Communities' Link
                 options.push(opt('my'));
-                const subscriptionOptions = subscriptions
-                    .toJS()
-                    .map(cat => opt(cat[0], cat[1]));
+                const subscriptionOptions = subscriptions.toJS().map((cat) => opt(cat[0], cat[1]));
                 options.push({
                     value: 'Subscriptions',
                     label: 'Community Subscriptions',
@@ -69,9 +59,7 @@ class Topics extends Component {
                 options.push(...subscriptionOptions);
             }
             if (topics) {
-                const topicsOptions = topics
-                    .toJS()
-                    .map(cat => opt(cat[0], cat[1]));
+                const topicsOptions = topics.toJS().map((cat) => opt(cat[0], cat[1]));
                 options.push({
                     value: 'Topics',
                     label: 'Trending Communities',
@@ -82,17 +70,15 @@ class Topics extends Component {
 
             options.push(opt('explore'));
             const currOpt = opt(current);
-            if (!options.find(opt => opt.value == currOpt.value)) {
-                options.push(
-                    opt(current, communities.getIn([current, 'title']))
-                );
+            if (!options.find((opt) => opt.value == currOpt.value)) {
+                options.push(opt(current, communities.getIn([current, 'title'])));
             }
 
             return (
                 <NativeSelect
                     options={options}
                     currentlySelected={currOpt.value}
-                    onChange={opt => {
+                    onChange={(opt) => {
                         browserHistory.push(opt.value);
                     }}
                 />
@@ -101,56 +87,27 @@ class Topics extends Component {
 
         const link = (url, label, className = 'c-sidebar__header') => (
             <div className={className}>
-                <Link
-                    to={url}
-                    className="c-sidebar__link"
-                    activeClassName="active"
-                >
+                <Link to={url} className="c-sidebar__link" activeClassName="active">
                     {label}
                 </Link>
             </div>
         );
 
         const moreLabel = <span>{tt('g.show_more_topics')}&hellip;</span>;
-        const title =
-            subscriptions && username
-                ? 'My subscriptions'
-                : 'Trending Communities';
-        const commsHead = (
-            <div style={{ color: '#aaa', paddingTop: '0em' }}>{title}</div>
-        );
+        const title = subscriptions && username ? 'My subscriptions' : 'Trending Communities';
+        const commsHead = <div style={{ color: '#aaa', paddingTop: '0em' }}>{title}</div>;
         const list = (
             <ul className="c-sidebar__list">
                 <li>{link('/', tt('g.all_tags'))}</li>
-                {username && (
-                    <li>{link(`/@${username}/feed`, 'My friends')}</li>
-                )}
+                {username && <li>{link(`/@${username}/feed`, 'My friends')}</li>}
                 {username && <li>{link(`/trending/my`, 'My communities')}</li>}
                 {(subscriptions || topics).size > 0 && <li>{commsHead}</li>}
                 {username &&
                     subscriptions &&
-                    subscriptions
-                        .toJS()
-                        .map(cat => (
-                            <li key={cat[0]}>
-                                {link(`/trending/${cat[0]}`, cat[1], '')}
-                            </li>
-                        ))}
+                    subscriptions.toJS().map((cat) => <li key={cat[0]}>{link(`/trending/${cat[0]}`, cat[1], '')}</li>)}
                 {(!username || !subscriptions) &&
-                    topics
-                        .toJS()
-                        .map(cat => (
-                            <li key={cat[0]}>
-                                {link(`/trending/${cat[0]}`, cat[1], '')}
-                            </li>
-                        ))}
-                <li>
-                    {link(
-                        `/communities`,
-                        moreLabel,
-                        'c-sidebar__link--emphasis'
-                    )}
-                </li>
+                    topics.toJS().map((cat) => <li key={cat[0]}>{link(`/trending/${cat[0]}`, cat[1], '')}</li>)}
+                <li>{link(`/communities`, moreLabel, 'c-sidebar__link--emphasis')}</li>
             </ul>
         );
 
diff --git a/src/app/components/pages/UserProfile.jsx b/src/app/components/pages/UserProfile.jsx
index fa8799c9d0f3a06169f06985d4eddaec9c9f5ffa..6fb103c4c6eeaf47646c4de63d449f46e3c3e347 100644
--- a/src/app/components/pages/UserProfile.jsx
+++ b/src/app/components/pages/UserProfile.jsx
@@ -26,9 +26,7 @@ const emptyPostsText = (section, account, isMyAccount) => {
     } else if (section == 'comments') {
         return tt('user_profile.user_hasnt_made_any_posts_yet', { name });
     } else if (section == 'replies') {
-        return (
-            tt('user_profile.user_hasnt_had_any_replies_yet', { name }) + '.'
-        );
+        return tt('user_profile.user_hasnt_had_any_replies_yet', { name }) + '.';
     } else if (section == 'payout') {
         return 'No pending payouts.';
     } else if (section == 'blog' && !isMyAccount) {
@@ -43,9 +41,7 @@ const emptyPostsText = (section, account, isMyAccount) => {
                     <strong>Explore Communities</strong>
                 </Link>
                 <br />
-                <Link to="/submit.html">
-                    {tt('user_profile.create_a_post')}
-                </Link>
+                <Link to="/submit.html">{tt('user_profile.create_a_post')}</Link>
                 <br />
                 <Link to="/trending">Trending Articles</Link>
                 <br />
@@ -105,10 +101,7 @@ export default class UserProfile extends React.Component {
             fetchPeakdBadges,
             username,
         } = this.props;
-        if (
-            prevProps.accountname != accountname ||
-            prevProps.username != username
-        ) {
+        if (prevProps.accountname != accountname || prevProps.username != username) {
             if (!profile) fetchProfile(accountname, username);
             if (!hivebuzzBadges) fetchHivebuzzBadges(accountname);
             if (!peakdBadges) fetchPeakdBadges(accountname);
@@ -173,12 +166,7 @@ export default class UserProfile extends React.Component {
         const _state = status ? status.getIn([category, order]) : null;
         const fetching = (_state && _state.fetching) || this.props.loading;
 
-        if (
-            !profile &&
-            (fetching ||
-                (this.props.section === 'notifications' &&
-                    !this.props.notifications))
-        ) {
+        if (!profile && (fetching || (this.props.section === 'notifications' && !this.props.notifications))) {
             return (
                 <center>
                     <LoadingIndicator type="circle" />
@@ -207,10 +195,7 @@ export default class UserProfile extends React.Component {
         } else if (section === 'notifications') {
             // notifications
             tab_content = (
-                <NotificationsList
-                    username={accountname}
-                    notifications={notifications && notifications.toJS()}
-                />
+                <NotificationsList username={accountname} notifications={notifications && notifications.toJS()} />
             );
         } else if (section === 'communities') {
             tab_content = (
@@ -239,24 +224,13 @@ export default class UserProfile extends React.Component {
             tab_content = <Callout>{emptyText}</Callout>;
         } else {
             // post lists -- loaded
-            tab_content = (
-                <PostsList
-                    post_refs={posts}
-                    loading={fetching}
-                    loadMore={this.loadMore}
-                />
-            );
+            tab_content = <PostsList post_refs={posts} loading={fetching} loadMore={this.loadMore} />;
         }
 
-        const _url = tab => `/@${accountname}${tab == 'blog' ? '' : '/' + tab}`;
+        const _url = (tab) => `/@${accountname}${tab == 'blog' ? '' : '/' + tab}`;
 
         const _tablink2 = (tab, label) => {
-            const item =
-                tab == section ? (
-                    <strong>{label}</strong>
-                ) : (
-                    <Link to={_url(tab)}>{label}</Link>
-                );
+            const item = tab == section ? <strong>{label}</strong> : <Link to={_url(tab)}>{label}</Link>;
             return <div key={tab}>{item}</div>;
         };
 
@@ -290,9 +264,7 @@ export default class UserProfile extends React.Component {
                         <li>{_tablink('posts', tt('g.posts'))}</li>
                         <li>{_tablink('replies', tt('g.replies'))}</li>
                         <li>{_tablink('communities', tt('g.social'))}</li>
-                        <li>
-                            {_tablink('notifications', tt('g.notifications'))}
-                        </li>
+                        <li>{_tablink('notifications', tt('g.notifications'))}</li>
                         {/*
                         <li>{_tablink('comments', tt('g.comments'))}</li>
                         <li>{_tablink('payout', tt('voting_jsx.payout'))}</li>
@@ -302,17 +274,11 @@ export default class UserProfile extends React.Component {
                 <div className="columns shrink">
                     <ul className="menu" style={{ flexWrap: 'wrap' }}>
                         <li>
-                            <a
-                                href={walletUrl}
-                                target="_blank"
-                                rel="noopener noreferrer"
-                            >
+                            <a href={walletUrl} target="_blank" rel="noopener noreferrer">
                                 Wallet
                             </a>
                         </li>
-                        {isMyAccount && (
-                            <li>{_tablink('settings', tt('g.settings'))}</li>
-                        )}
+                        {isMyAccount && <li>{_tablink('settings', tt('g.settings'))}</li>}
                     </ul>
                 </div>
             </div>
@@ -320,22 +286,10 @@ export default class UserProfile extends React.Component {
 
         return (
             <div className="UserProfile">
-                <UserProfileHeader
-                    current_user={username}
-                    accountname={accountname}
-                    profile={profile}
-                />
-                <div className="UserProfile__top-nav row expanded">
-                    {top_menu}
-                </div>
+                <UserProfileHeader current_user={username} accountname={accountname} profile={profile} />
+                <div className="UserProfile__top-nav row expanded">{top_menu}</div>
                 <div className="row">
-                    <div
-                        className={classnames(
-                            'UserProfile__tab_content',
-                            'column',
-                            'layout-list'
-                        )}
-                    >
+                    <div className={classnames('UserProfile__tab_content', 'column', 'layout-list')}>
                         <article className="articles">
                             {tab_header}
                             {tab_content}
@@ -357,84 +311,46 @@ module.exports = {
 
             let { section } = ownProps.routeParams;
             if (!section) section = 'blog';
-            const order = [
-                'blog',
-                'posts',
-                'comments',
-                'replies',
-                'payout',
-            ].includes(section)
-                ? section
-                : null;
+            const order = ['blog', 'posts', 'comments', 'replies', 'payout'].includes(section) ? section : null;
 
             const profile = state.userProfiles.getIn(['profiles', accountname]);
 
             return {
-                posts: state.global.getIn([
-                    'discussion_idx',
-                    '@' + accountname,
-                    order,
-                ]),
+                posts: state.global.getIn(['discussion_idx', '@' + accountname, order]),
                 username,
                 loading: state.app.get('loading'),
                 status: state.global.get('status'),
                 accountname,
-                followers: state.global.getIn([
-                    'follow',
-                    'getFollowersAsync',
-                    accountname,
-                    'blog_result',
-                ]),
-                following: state.global.getIn([
-                    'follow',
-                    'getFollowingAsync',
-                    accountname,
-                    'blog_result',
-                ]),
-                notifications: state.global.getIn(
-                    ['notifications', accountname, 'notifications'],
-                    null
-                ),
+                followers: state.global.getIn(['follow', 'getFollowersAsync', accountname, 'blog_result']),
+                following: state.global.getIn(['follow', 'getFollowingAsync', accountname, 'blog_result']),
+                notifications: state.global.getIn(['notifications', accountname, 'notifications'], null),
                 blogmode: state.app.getIn(['user_preferences', 'blogmode']),
                 profile: state.userProfiles.getIn(['profiles', accountname]),
-                hivebuzzBadges: state.userProfiles.getIn([
-                    'hivebuzzBadges',
-                    accountname,
-                ]),
-                peakdBadges: state.userProfiles.getIn([
-                    'peakdBadges',
-                    accountname,
-                ]),
+                hivebuzzBadges: state.userProfiles.getIn(['hivebuzzBadges', accountname]),
+                peakdBadges: state.userProfiles.getIn(['peakdBadges', accountname]),
                 walletUrl: walletUrl + '/@' + accountname + '/transfers',
                 section,
                 order,
                 category: '@' + accountname,
-                subscriptions: state.global.getIn([
-                    'subscriptions',
-                    accountname,
-                ])
+                subscriptions: state.global.getIn(['subscriptions', accountname])
                     ? state.global.getIn(['subscriptions', accountname]).toJS()
                     : [],
             };
         },
-        dispatch => ({
+        (dispatch) => ({
             login: () => {
                 dispatch(userActions.showLogin());
             },
-            requestData: args => {
+            requestData: (args) => {
                 dispatch(fetchDataSagaActions.requestData(args));
             },
             fetchProfile: (account, observer) => {
-                dispatch(
-                    UserProfilesSagaActions.fetchProfile({ account, observer })
-                );
+                dispatch(UserProfilesSagaActions.fetchProfile({ account, observer }));
             },
-            fetchHivebuzzBadges: account => {
-                dispatch(
-                    UserProfilesSagaActions.fetchHivebuzzBadges({ account })
-                );
+            fetchHivebuzzBadges: (account) => {
+                dispatch(UserProfilesSagaActions.fetchHivebuzzBadges({ account }));
             },
-            fetchPeakdBadges: account => {
+            fetchPeakdBadges: (account) => {
                 dispatch(UserProfilesSagaActions.fetchPeakdBadges({ account }));
             },
         })
diff --git a/src/app/components/utils/ReactMutationObserver.jsx b/src/app/components/utils/ReactMutationObserver.jsx
index d625b723c6bd2c21604645a6a9ca2aec9c693756..774b0f02650fe1b9a6e0ff028f1611e49bff5509 100644
--- a/src/app/components/utils/ReactMutationObserver.jsx
+++ b/src/app/components/utils/ReactMutationObserver.jsx
@@ -53,33 +53,21 @@ class ReactMutationObserver extends React.Component {
         }
 
         if (typeof MutationObserver !== 'undefined') {
-            this.observer = new MutationObserver(mutations => {
-                mutations.forEach(function(mutation) {
-                    if (
-                        mutation.type === 'childList' &&
-                        typeof me.onChildListChanged === 'function'
-                    ) {
+            this.observer = new MutationObserver((mutations) => {
+                mutations.forEach(function (mutation) {
+                    if (mutation.type === 'childList' && typeof me.onChildListChanged === 'function') {
                         me.onChildListChanged(mutation, me.disconnect);
                     }
 
-                    if (
-                        mutation.type === 'attributes' &&
-                        typeof me.onAttributesChanged === 'function'
-                    ) {
+                    if (mutation.type === 'attributes' && typeof me.onAttributesChanged === 'function') {
                         me.onAttributesChanged(mutation, me.disconnect);
                     }
 
-                    if (
-                        mutation.type === 'subtree' &&
-                        typeof me.onSubtreeChanged === 'function'
-                    ) {
+                    if (mutation.type === 'subtree' && typeof me.onSubtreeChanged === 'function') {
                         me.onSubtreeChanged(mutation, me.disconnect);
                     }
 
-                    if (
-                        mutation.type === 'characterData' &&
-                        typeof me.onCharacterDataChanged === 'function'
-                    ) {
+                    if (mutation.type === 'characterData' && typeof me.onCharacterDataChanged === 'function') {
                         me.onCharacterDataChanged(mutation, me.disconnect);
                     }
                 });
@@ -94,10 +82,7 @@ class ReactMutationObserver extends React.Component {
     }
 
     initObserver(componentElement) {
-        if (
-            typeof MutationObserver !== 'undefined' &&
-            componentElement !== null
-        ) {
+        if (typeof MutationObserver !== 'undefined' && componentElement !== null) {
             this.observer.observe(componentElement, this.observerConfig);
         }
     }
diff --git a/src/app/locales/counterpart/es.js b/src/app/locales/counterpart/es.js
index f5640c7d291d67a21ecefd36eea609af9378d7ec..531b92843b2ad40caf8417d8f887b135e448dfd8 100644
--- a/src/app/locales/counterpart/es.js
+++ b/src/app/locales/counterpart/es.js
@@ -1,7 +1,6 @@
+/*eslint global-require: "warn"*/
 // The translations in this file are added by default.
 
-'use strict';
-
 module.exports = {
     counterpart: {
         names: require('date-names/en'),
diff --git a/src/app/locales/counterpart/fr.js b/src/app/locales/counterpart/fr.js
index f5640c7d291d67a21ecefd36eea609af9378d7ec..531b92843b2ad40caf8417d8f887b135e448dfd8 100644
--- a/src/app/locales/counterpart/fr.js
+++ b/src/app/locales/counterpart/fr.js
@@ -1,7 +1,6 @@
+/*eslint global-require: "warn"*/
 // The translations in this file are added by default.
 
-'use strict';
-
 module.exports = {
     counterpart: {
         names: require('date-names/en'),
diff --git a/src/app/locales/counterpart/it.js b/src/app/locales/counterpart/it.js
index 0c5799a5bd9035789ea1976a4ad13333d18432a5..27dd58b458e572699b16590b407b77af7fb836dd 100644
--- a/src/app/locales/counterpart/it.js
+++ b/src/app/locales/counterpart/it.js
@@ -1,7 +1,6 @@
+/*eslint global-require: "warn"*/
 // The translations in this file are added by default.
 
-'use strict';
-
 module.exports = {
     counterpart: {
         names: require('date-names/en'),
diff --git a/src/app/locales/counterpart/ja.js b/src/app/locales/counterpart/ja.js
index 0c5799a5bd9035789ea1976a4ad13333d18432a5..27dd58b458e572699b16590b407b77af7fb836dd 100644
--- a/src/app/locales/counterpart/ja.js
+++ b/src/app/locales/counterpart/ja.js
@@ -1,7 +1,6 @@
+/*eslint global-require: "warn"*/
 // The translations in this file are added by default.
 
-'use strict';
-
 module.exports = {
     counterpart: {
         names: require('date-names/en'),
diff --git a/src/app/locales/counterpart/ko.js b/src/app/locales/counterpart/ko.js
index f5640c7d291d67a21ecefd36eea609af9378d7ec..531b92843b2ad40caf8417d8f887b135e448dfd8 100644
--- a/src/app/locales/counterpart/ko.js
+++ b/src/app/locales/counterpart/ko.js
@@ -1,7 +1,6 @@
+/*eslint global-require: "warn"*/
 // The translations in this file are added by default.
 
-'use strict';
-
 module.exports = {
     counterpart: {
         names: require('date-names/en'),
diff --git a/src/app/locales/counterpart/pl.js b/src/app/locales/counterpart/pl.js
index f5640c7d291d67a21ecefd36eea609af9378d7ec..531b92843b2ad40caf8417d8f887b135e448dfd8 100644
--- a/src/app/locales/counterpart/pl.js
+++ b/src/app/locales/counterpart/pl.js
@@ -1,7 +1,6 @@
+/*eslint global-require: "warn"*/
 // The translations in this file are added by default.
 
-'use strict';
-
 module.exports = {
     counterpart: {
         names: require('date-names/en'),
diff --git a/src/app/locales/counterpart/zh.js b/src/app/locales/counterpart/zh.js
index f5640c7d291d67a21ecefd36eea609af9378d7ec..531b92843b2ad40caf8417d8f887b135e448dfd8 100644
--- a/src/app/locales/counterpart/zh.js
+++ b/src/app/locales/counterpart/zh.js
@@ -1,7 +1,6 @@
+/*eslint global-require: "warn"*/
 // The translations in this file are added by default.
 
-'use strict';
-
 module.exports = {
     counterpart: {
         names: require('date-names/en'),
diff --git a/src/app/locales/en.json b/src/app/locales/en.json
index 84a6609879a46645c75116c1ea3baf5610f7f045..0ff13e97ab29ba5db44a443e64f691cb41aeb5c5 100644
--- a/src/app/locales/en.json
+++ b/src/app/locales/en.json
@@ -54,8 +54,7 @@
         "feed": "Feed",
         "flag": "Flag",
         "flag_this_post": "Flag this %(type)s",
-        "flag_this_post_description":
-            "Please provide a note regarding your decision to flag this %(type)s, it will be reviewed by community moderators.",
+        "flag_this_post_description": "Please provide a note regarding your decision to flag this %(type)s, it will be reviewed by community moderators.",
         "follow": "Follow",
         "for": " for ",
         "from": " from ",
@@ -191,8 +190,7 @@
         "enter_account_show_password": "Enter a valid account name to show the password",
         "click_to_generate_password": "Click to generate password",
         "re_enter_generate_password": "Re-enter Generated Password",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "I understand that %(APP_NAME)s cannot recover lost passwords",
+        "understand_that_APP_NAME_cannot_recover_password": "I understand that %(APP_NAME)s cannot recover lost passwords",
         "i_saved_password": "I have securely saved my generated password",
         "update_password": "Update Password",
         "confirm_password": "Confirm Password",
@@ -206,12 +204,9 @@
         "account_name_should_start_with_a_letter": "Account name should start with a letter.",
         "account_name_should_be_shorter": "Account name should be shorter.",
         "account_name_should_be_longer": "Account name should be longer.",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "Account name should have only letters, digits, periods or dashes.",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "Cannot increase reward of post within the last minute before payout",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "Only one Hive account allowed per IP address every 10 minutes",
+        "account_name_should_have_only_letters_digits_or_dashes": "Account name should have only letters, digits, periods or dashes.",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "Cannot increase reward of post within the last minute before payout",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "Only one Hive account allowed per IP address every 10 minutes",
         "reblog_this_post": "Reblog This Post",
         "reblog": "Reblog",
         "write_your_story": "Write your story...",
@@ -221,22 +216,18 @@
         "show_private_key": "Show private key",
         "login_to_show": "Login to show",
         "not_valid_email": "Not valid email",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "Thank you for being an early visitor to %(APP_NAME)s. We will get back to you at the earliest possible opportunity.",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "Thank you for being an early visitor to %(APP_NAME)s. We will get back to you at the earliest possible opportunity.",
         "author_rewards": "Author rewards",
         "curation_rewards": "Curation rewards",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
         "register_with_facebook": "Register with Facebook",
         "or_click_the_button_below_to_register_with_facebook": "Or click the button below to register with Facebook",
         "server_returned_error": "server returned error",
         "APP_NAME_support": "%(APP_NAME)s Support",
         "please_email_questions_to": "Please email your questions to",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "Authors get paid when people like you upvote their post",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "If you enjoyed what you read here, create your account today and start earning FREE HIVE!",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "Authors get paid when people like you upvote their post",
+            "if_you_enjoyed_what_you_read_earn_amount": "If you enjoyed what you read here, create your account today and start earning FREE HIVE!",
             "free_hive": "FREE HIVE!",
             "sign_up_earn_hive": "Sign up now to earn "
         },
@@ -245,8 +236,7 @@
             "show_less": "Show fewer",
             "value_posts": "low value posts"
         },
-        "read_only_mode":
-            "Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.",
+        "read_only_mode": "Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.",
         "tags_and_topics": "Tags",
         "show_more_topics": "Explore communities",
         "basic": "Basic",
@@ -262,10 +252,8 @@
             "other": "%(count)s Responses"
         },
         "post_key_warning": {
-            "confirm":
-                "You are about to publish a HIVE private key or master password. You will probably lose control of the associated account and all its funds.",
-            "warning":
-                "Legitimate users, including employees of Hive, will never ask you for a private key or master password.",
+            "confirm": "You are about to publish a HIVE private key or master password. You will probably lose control of the associated account and all its funds.",
+            "warning": "Legitimate users, including employees of Hive, will never ask you for a private key or master password.",
             "checkbox": "I understand"
         }
     },
@@ -296,8 +284,7 @@
         "smt_whitepaper": "SMT Whitepaper",
         "whitepaper": "Hive Whitepaper",
         "intro_tagline": "Your voice is worth something",
-        "intro_paragraph":
-            "Get paid for good content. Post and upvote articles on Hive to get your share of the daily rewards pool.",
+        "intro_paragraph": "Get paid for good content. Post and upvote articles on Hive to get your share of the daily rewards pool.",
         "jobs": "Jobs at Hive",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
@@ -312,12 +299,11 @@
         "shorten_title": "Shorten title",
         "exceeds_maximum_length": "Exceeds maximum length (%(maxKb)sKB)",
         "including_the_category": " (including the category '%(rootCategory)s')",
-        "use_limited_amount_of_tags":
-            "You have %(tagsLength)s tags total%(includingCategory)s. Please use only 5 in your post and category line.",
+        "use_limited_amount_of_tags": "You have %(tagsLength)s tags total%(includingCategory)s. Please use only 5 in your post and category line.",
         "are_you_sure_you_want_to_clear_this_form": "Are you sure you want to exit the comment editor?",
         "uploading": "Uploading...",
         "draft_saved": "Draft saved.",
-        "editor": "Enable WYSIWYG Editor",
+        "editor": "Enable Visual Editor",
         "enable_markdown_editor": "Enable Markdown Editor",
         "view_html_source": "View HTML source",
         "insert_images_by_dragging_dropping": "Insert images by dragging & dropping, ",
@@ -375,8 +361,7 @@
         "use_only_allowed_characters": "Use only lowercase letters, digits and one dash",
         "must_start_with_a_letter": "Must start with a letter",
         "must_end_with_a_letter_or_number": "Must end with a letter or number",
-        "must_not_include_hivemind_community_owner":
-            "Post already has %(hive)s tag by default, please do not include another 'hive-' tag."
+        "must_not_include_hivemind_community_owner": "Post already has %(hive)s tag by default, please do not include another 'hive-' tag."
     },
     "post_advanced_settings_jsx": {
         "payout_option_header": "Author rewards",
@@ -397,23 +382,20 @@
         "share_on_reddit": "Share on Reddit",
         "share_on_linkedin": "Share on Linkedin",
         "recent_password": "Recent Password",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "In 3.5 days, convert %(amount)s %(DEBT_TOKEN)s into %(LIQUID_TOKEN)s",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "In 3.5 days, convert %(amount)s %(DEBT_TOKEN)s into %(LIQUID_TOKEN)s",
         "view_the_full_context": "View the full context",
         "view_the_direct_parent": "View the direct parent",
         "you_are_viewing_a_single_comments_thread_from": "You are viewing a single comment's thread from",
         "authored_by": "Authored by"
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "From time to time, a Hivian's owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on %(APP_URL)s if the account owner had previously listed '%(APP_NAME)s' as their account trustee and complied with %(APP_NAME)s's Terms of Service."
+        "recover_account_intro": "From time to time, a Hivian's owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on %(APP_URL)s if the account owner had previously listed '%(APP_NAME)s' as their account trustee and complied with %(APP_NAME)s's Terms of Service."
     },
     "user_profile": {
         "unknown_account": "Unknown Account",
         "user_hasnt_made_any_posts_yet": "Looks like %(name)s hasn't made any posts yet!",
         "user_hasnt_started_bloggin_yet": "Looks like %(name)s hasn't started blogging yet!",
-        "user_hasnt_followed_anything_yet":
-            "Looks like %(name)s might not be following anyone yet! If %(name)s recently added new users to follow, their personalized feed will populate once new content is available.",
+        "user_hasnt_followed_anything_yet": "Looks like %(name)s might not be following anyone yet! If %(name)s recently added new users to follow, their personalized feed will populate once new content is available.",
         "user_hasnt_had_any_replies_yet": "%(name)s hasn't had any replies yet",
         "user_hasnt_had_any_notifications_yet": "%(name)s hasn't had any notifications yet",
         "looks_like_you_havent_posted_anything_yet": "Looks like you haven't posted anything yet.",
@@ -422,8 +404,7 @@
         "read_the_quick_start_guide": "Read The Quick Start Guide",
         "browse_the_faq": "Browse The FAQ",
         "followers": "Followers",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "This is %(name)s's reputation score.\n\nThe reputation score is based on the history of votes received by the account, and is used to hide low quality content.",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "This is %(name)s's reputation score.\n\nThe reputation score is based on the history of votes received by the account, and is used to hide low quality content.",
         "follower_count": {
             "zero": "No followers",
             "one": "1 follower",
@@ -455,8 +436,7 @@
         }
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "Flagging a post can remove rewards and make this material less visible. Some common reasons to flag",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "Flagging a post can remove rewards and make this material less visible. Some common reasons to flag",
         "disagreement_on_rewards": "Disagreement on rewards",
         "fraud_or_plagiarism": "Fraud or Plagiarism",
         "hate_speech_or_internet_trolling": "Hate Speech or Internet Trolling",
@@ -469,14 +449,11 @@
         "past_payouts_author": " - Author $%(value)s",
         "past_payouts_curators": " - Curators $%(value)s",
         "removing_your_vote": "Removing your vote",
-        "removing_your_vote_will_reset_curation_rewards_for_this_post":
-            "Removing your vote will reset your curation rewards for this post",
+        "removing_your_vote_will_reset_curation_rewards_for_this_post": "Removing your vote will reset your curation rewards for this post",
         "changing_to_an_upvote": "Changing to an Up-Vote",
-        "changing_to_an_upvote_will_reset_curation_rewards_for_this_post":
-            "Changing to an Up-Vote will reset your curation rewards for this post",
+        "changing_to_an_upvote_will_reset_curation_rewards_for_this_post": "Changing to an Up-Vote will reset your curation rewards for this post",
         "changing_to_a_downvote": "Changing to a Down-Vote",
-        "changing_to_a_downvote_will_reset_curation_rewards_for_this_post":
-            "Changing to a Down-Vote will reset your curation rewards for this post",
+        "changing_to_a_downvote_will_reset_curation_rewards_for_this_post": "Changing to a Down-Vote will reset your curation rewards for this post",
         "confirm_flag": "Confirm Flag",
         "and_more": "and %(count)s more",
         "votes_plural": {
@@ -505,56 +482,41 @@
         "private": "Private",
         "public_something_key": "Public %(key)s Key",
         "private_something_key": "Private %(key)s Key",
-        "posting_key_is_required_it_should_be_different":
-            "The posting key is used for posting and voting. It should be different from the active and owner keys.",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "The active key is used to make transfers and place orders in the internal market.",
-        "the_owner_key_is_required_to_change_other_keys":
-            "The owner key is the master key for the account and is required to change the other keys.",
-        "the_private_key_or_password_should_be_kept_offline":
-            "The private key or password for the owner key should be kept offline as much as possible.",
+        "posting_key_is_required_it_should_be_different": "The posting key is used for posting and voting. It should be different from the active and owner keys.",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "The active key is used to make transfers and place orders in the internal market.",
+        "the_owner_key_is_required_to_change_other_keys": "The owner key is the master key for the account and is required to change the other keys.",
+        "the_private_key_or_password_should_be_kept_offline": "The private key or password for the owner key should be kept offline as much as possible.",
         "the_memo_key_is_used_to_create_and_read_memos": "The memo key is used to create and read memos."
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)s cannot recover passwords. Keep this page in a secure location, such as a fireproof safe or safety deposit box.",
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)s cannot recover passwords. Keep this page in a secure location, such as a fireproof safe or safety deposit box.",
         "APP_NAME_password_backup": "%(APP_NAME)s Password Backup",
         "APP_NAME_password_backup_required": "%(APP_NAME)s Password Backup (required)",
         "after_printing_write_down_your_user_name": "After printing, write down your user name"
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "Your existing %(DEBT_TOKEN)s are liquid and transferable. Instead you may wish to trade %(DEBT_TOKEN)s directly in this site under %(link)s or transfer to an external market.",
-        "this_is_a_price_feed_conversion":
-            "This is a price feed conversion. The 3.5 day delay is necessary to prevent abuse from gaming the price feed average.",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "Your existing %(DEBT_TOKEN)s are liquid and transferable. Instead you may wish to trade %(DEBT_TOKEN)s directly in this site under %(link)s or transfer to an external market.",
+        "this_is_a_price_feed_conversion": "This is a price feed conversion. The 3.5 day delay is necessary to prevent abuse from gaming the price feed average.",
         "convert_to_LIQUID_TOKEN": "Convert to %(LIQUID_TOKEN)s",
-        "DEBT_TOKEN_will_be_unavailable":
-            "This action will take place 3.5 days from now and can not be canceled. These %(DEBT_TOKEN)s will immediately become unavailable."
+        "DEBT_TOKEN_will_be_unavailable": "This action will take place 3.5 days from now and can not be canceled. These %(DEBT_TOKEN)s will immediately become unavailable."
     },
     "tips_js": {
-        "liquid_token":
-            "Tradeable tokens that may be transferred anywhere at anytime.<br/>%(LIQUID_TOKEN)s can be converted to %(VESTING_TOKEN)s in a process called powering up.",
-        "influence_token":
-            "Influence tokens which give you more control over post payouts and allow you to earn on curation rewards.",
+        "liquid_token": "Tradeable tokens that may be transferred anywhere at anytime.<br/>%(LIQUID_TOKEN)s can be converted to %(VESTING_TOKEN)s in a process called powering up.",
+        "influence_token": "Influence tokens which give you more control over post payouts and allow you to earn on curation rewards.",
         "estimated_value": "The estimated value is based on an average value of %(LIQUID_TOKEN)s in US dollars.",
-        "non_transferable":
-            "%(VESTING_TOKEN)s is non-transferable and requires 3 months (13 payments) to convert back to %(LIQUID_TOKEN)s.",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "Converted %(VESTING_TOKEN)s can be sent to yourself or someone else but can not transfer again without converting back to %(LIQUID_TOKEN)s.",
-        "part_of_your_hive_power_is_currently_delegated":
-            "Part of %(user_name)s's HIVE POWER is currently delegated. Delegation is donated for influence or to help new users perform actions on Hive. Your delegation amount can fluctuate."
+        "non_transferable": "%(VESTING_TOKEN)s is non-transferable and requires 3 months (13 payments) to convert back to %(LIQUID_TOKEN)s.",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "Converted %(VESTING_TOKEN)s can be sent to yourself or someone else but can not transfer again without converting back to %(LIQUID_TOKEN)s.",
+        "part_of_your_hive_power_is_currently_delegated": "Part of %(user_name)s's HIVE POWER is currently delegated. Delegation is donated for influence or to help new users perform actions on Hive. Your delegation amount can fluctuate."
     },
     "promote_post_jsx": {
         "promote_post": "Promote Post",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "Spend your %(DEBT_TOKEN)s's to advertise this post in the promoted content section",
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "Spend your %(DEBT_TOKEN)s's to advertise this post in the promoted content section",
         "you_successfully_promoted_this_post": "You successfully promoted this post",
         "this_post_was_hidden_due_to_low_ratings": "This post was hidden due to low ratings"
     },
     "about_jsx": {
         "about_app": "About %(APP_NAME)s",
-        "about_app_details":
-            "%(APP_NAME)s is a social media platform where everyone gets paid for creating and curating content. It leverages a robust digital points system, called Hive, that supports real value for digital rewards through market price discovery and liquidity.",
+        "about_app_details": "%(APP_NAME)s is a social media platform where everyone gets paid for creating and curating content. It leverages a robust digital points system, called Hive, that supports real value for digital rewards through market price discovery and liquidity.",
         "learn_more_at_app_url": "Learn more at %(APP_URL)s",
         "resources": "Resources"
     },
@@ -574,8 +536,7 @@
     },
     "posts_index": {
         "empty_feed_1": "Looks like you haven't followed anything yet",
-        "empty_feed_2":
-            "If you recently added new users to follow, your personalized feed will populate once new content is available",
+        "empty_feed_2": "If you recently added new users to follow, your personalized feed will populate once new content is available",
         "empty_feed_3": "Explore Trending Articles",
         "empty_feed_4": "Read The Quick Start Guide",
         "empty_feed_5": "Browse The FAQ",
@@ -607,31 +568,25 @@
         "unable_to_log_you_in": "We will be unable to log you in with this browser.",
         "the_latest_versions_of": "The latest versions of ",
         "are_well_tested_and_known_to_work_with": "are well tested and known to work with %(APP_URL)s.",
-        "due_to_server_maintenance":
-            "Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.",
+        "due_to_server_maintenance": "Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.",
         "login_to_vote": "Login to Vote",
         "login_to_post": "Login to Post",
         "login_to_comment": "Login to Comment",
         "posting": "Posting",
         "active_or_owner": "Active or Owner",
-        "this_password_is_bound_to_your_account_owner_key":
-            "This password is bound to your account's owner key and can not be used to login to this site.",
+        "this_password_is_bound_to_your_account_owner_key": "This password is bound to your account's owner key and can not be used to login to this site.",
         "however_you_can_use_it_to": "However, you can use it to ",
         "update_your_password": "update your password",
         "to_obtain_a_more_secure_set_of_keys": "to obtain a more secure set of keys.",
-        "this_password_is_bound_to_your_account_active_key":
-            "This password is bound to your account's active key and can not be used to login to this page.",
-        "you_may_use_this_active_key_on_other_more":
-            "You may use this active key on other more secure pages like the Wallet or Market pages.",
+        "this_password_is_bound_to_your_account_active_key": "This password is bound to your account's active key and can not be used to login to this page.",
+        "you_may_use_this_active_key_on_other_more": "You may use this active key on other more secure pages like the Wallet or Market pages.",
         "you_account_has_been_successfully_created": "You account has been successfully created!",
         "you_account_has_been_successfully_recovered": "You account has been successfully recovered!",
         "password_update_succes": "The password for %(accountName)s was successfully updated",
-        "password_info":
-            "This password or private key was entered incorrectly.  There is probably a handwriting or data-entry error.  Hint: A password or private key generated by Hive will never contain 0 (zero), O (capital o), I (capital i) and l (lower case L) characters.",
+        "password_info": "This password or private key was entered incorrectly.  There is probably a handwriting or data-entry error.  Hint: A password or private key generated by Hive will never contain 0 (zero), O (capital o), I (capital i) and l (lower case L) characters.",
         "enter_your_username": "Enter your username",
         "password_or_wif": "Password or WIF",
-        "this_operation_requires_your_key_or_master_password":
-            "This operation requires your %(authType)s key or Master password.",
+        "this_operation_requires_your_key_or_master_password": "This operation requires your %(authType)s key or Master password.",
         "keep_me_logged_in": "Keep me logged in",
         "amazing_community": "amazing community",
         "to_comment_and_reward_others": " to comment and reward others.",
@@ -640,8 +595,7 @@
         "sign_up_get_hive": "Sign up. Get HIVE!",
         "returning_users": "Returning Users: ",
         "login_warning_title": "Logging in with non-posting key",
-        "login_warning_body":
-            "You are attempting to use a key with more permissions than required for everyday hive.blog use. Since keys and passwords are more likely to get compromised the more they are used, it is strongly recommended to only use your Posting Key to log in.",
+        "login_warning_body": "You are attempting to use a key with more permissions than required for everyday hive.blog use. Since keys and passwords are more likely to get compromised the more they are used, it is strongly recommended to only use your Posting Key to log in.",
         "continue_anyway": "Continue Anyway",
         "login_warning_link_text": "Open my Hive Wallet to access and view my posting key",
         "join_our": "Join our",
@@ -654,12 +608,9 @@
         "account_name_should_be_longer": "Account name should be longer.",
         "account_name_should_be_shorter": "Account name should be shorter.",
         "each_account_segment_should_start_with_a_letter": "Each account segment should start with a letter.",
-        "each_account_segment_should_have_only_letters_digits_or_dashes":
-            "Each account segment should have only letters, digits, or dashes.",
-        "each_account_segment_should_have_only_one_dash_in_a_row":
-            "Each account segment should have only one dash in a row.",
-        "each_account_segment_should_end_with_a_letter_or_digit":
-            "Each account segment should end with a letter or digit.",
+        "each_account_segment_should_have_only_letters_digits_or_dashes": "Each account segment should have only letters, digits, or dashes.",
+        "each_account_segment_should_have_only_one_dash_in_a_row": "Each account segment should have only one dash in a row.",
+        "each_account_segment_should_end_with_a_letter_or_digit": "Each account segment should end with a letter or digit.",
         "each_account_segment_should_be_longer": "Each account segment should be longer.",
         "verified_exchange_no_memo": "You must include a memo for your exchange transfer.",
         "badactor": "Use caution sending to this account. Please double check your spelling for possible phishing.",
@@ -711,8 +662,7 @@
         "error_bad_url": "This appears to be a bad URL, please check it and try again",
         "error_bad_cookie": "Unable to get endpoints from cookie",
         "error_already_exists": "This endpoint is already in the list",
-        "error_cant_remove_active":
-            "You can't remove the current preferred endpoint. Please select a new preferred endpoint first",
+        "error_cant_remove_active": "You can't remove the current preferred endpoint. Please select a new preferred endpoint first",
         "error_cant_remove_all": "You must have at least one endpoint in the list"
     },
     "transfer_jsx": {
@@ -726,17 +676,13 @@
         "convert_to_VESTING_TOKEN": "Convert to %(VESTING_TOKEN)s",
         "balance_subject_to_3_day_withdraw_waiting_period": "Balances subject to 3 day withdraw waiting period.",
         "move_funds_to_another_account": "Move funds to another Hive account.",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "Protect funds by requiring a 3 day withdraw waiting period.",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "Withdraw funds after the required 3 day waiting period.",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "Protect funds by requiring a 3 day withdraw waiting period.",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "Withdraw funds after the required 3 day waiting period.",
         "from": "From",
         "to": "To",
         "asset_currently_collecting": "%(asset)s currently collecting %(interest)s%% APR.",
-        "beware_of_spam_and_phishing_links":
-            "Beware of spam and phishing links in transfer memos. Do not open links from users you do not trust. Do not provide your private keys to any third party websites.",
-        "transactions_make_take_a_few_minutes":
-            "Transactions will not show until they are confirmed on the blockchain, which may take a few minutes.",
+        "beware_of_spam_and_phishing_links": "Beware of spam and phishing links in transfer memos. Do not open links from users you do not trust. Do not provide your private keys to any third party websites.",
+        "transactions_make_take_a_few_minutes": "Transactions will not show until they are confirmed on the blockchain, which may take a few minutes.",
         "autocomplete_previous_transfers": "previous transfers",
         "autocomplete_user_following": "following",
         "confirm_transfer": "Transfer %(amount)s from %(from)s to %(to)s?"
@@ -752,8 +698,7 @@
         "convert_to_LIQUID_TOKEN": "Convert to %(LIQUID_TOKEN)s",
         "withdraw_LIQUID_TOKEN": "Withdraw %(LIQUID_TOKEN)s",
         "withdraw_DEBT_TOKENS": "Withdraw %(DEBT_TOKENS)s",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "Tokens worth about $1.00 of %(LIQUID_TICKER)s, currently collecting %(hbdInterest)s%% APR.",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "Tokens worth about $1.00 of %(LIQUID_TICKER)s, currently collecting %(hbdInterest)s%% APR.",
         "tradeable_tokens_transferred": "Tradeable tokens that may be transferred anywhere at anytime.",
         "savings": "SAVINGS",
         "estimated_account_value": "Estimated Account Value",
@@ -773,8 +718,7 @@
     "termsagree_jsx": {
         "please_review": "Please review our terms to continue",
         "hi_user": "Hi %(username)s,",
-        "blurb":
-            "Our Terms of Service set the rules and guidelines that you must accept and follow in order to use Hive and our Privacy Policy explains the type of information we collect and what we do with it. Don't worry, we don't sell your data to anyone. We do use it to meet legal requirements and to learn how to make Hive better.",
+        "blurb": "Our Terms of Service set the rules and guidelines that you must accept and follow in order to use Hive and our Privacy Policy explains the type of information we collect and what we do with it. Don't worry, we don't sell your data to anyone. We do use it to meet legal requirements and to learn how to make Hive better.",
         "i_agree_to_hives": "I agree to Hive's",
         "terms_of_service": "Terms of Service",
         "privacy_policy": "Privacy Policy",
@@ -787,10 +731,8 @@
     "modals_jsx": {
         "your_transaction_failed": "Your transaction failed to process",
         "out_of_bandwidth_title": "Why? You've run out of Resource Credits",
-        "out_of_bandwidth_reason":
-            "Actions such as posting and voting use computing resources, placing a real cost on the community members who run the Hive blockchain for everyone.",
-        "out_of_bandwidth_reason_2":
-            "To keep things free, Hive intelligently allocates Resource Credits to each user based on their Hive Power holdings, which can be used to submit a limited number of feeless transactions. When a user runs low on Resource Credits, they will either need to wait for them to recharge, or purchase additional Hive Power. This system prioritizes actions by good community members while limiting spam.",
+        "out_of_bandwidth_reason": "Actions such as posting and voting use computing resources, placing a real cost on the community members who run the Hive blockchain for everyone.",
+        "out_of_bandwidth_reason_2": "To keep things free, Hive intelligently allocates Resource Credits to each user based on their Hive Power holdings, which can be used to submit a limited number of feeless transactions. When a user runs low on Resource Credits, they will either need to wait for them to recharge, or purchase additional Hive Power. This system prioritizes actions by good community members while limiting spam.",
         "out_of_bandwidth_option_title": "To keep interacting on Hive:",
         "out_of_bandwidth_option_1": "Buy and hold more Hive Power",
         "out_of_bandwidth_option_2": "Wait until your Resource Credits recharge",
@@ -829,16 +771,13 @@
         "button_mute": "Mute Users",
         "button_follow_blacklists": "Follow Blacklists",
         "button_follow_muted_lists": "Follow Muted Lists",
-        "unknown_accounts":
-            "These accounts cannot be added because they can't be validated or are already on the list: ",
+        "unknown_accounts": "These accounts cannot be added because they can't be validated or are already on the list: ",
         "page_count": "Viewing Page %(current)s of %(total)s",
         "search_for_user": "Search List For Account:",
         "add_users_to_list": "Add Account(s) To List",
         "multi_add_notes": "(single account or comma separated list)",
-        "updates_are_pending":
-            "Your list will reflect the updates shortly. You do not have to remain on this page for them to take effect.",
-        "list_description_field":
-            "Enter a description for your list (how you choose people, if they can contact you for removal, etc)",
+        "updates_are_pending": "Your list will reflect the updates shortly. You do not have to remain on this page for them to take effect.",
+        "list_description_field": "Enter a description for your list (how you choose people, if they can contact you for removal, etc)",
         "save_description": "Save Description",
         "reset_blacklist": "Reset Blacklist",
         "reset_muted_list": "Reset Muted List",
@@ -848,23 +787,18 @@
         "reset_header": "Reset Options",
         "empty_list": "There are no users on this list yet",
         "welcome_header": "It looks like you might be new here!",
-        "welcome_body":
-            "This is the new decentralized list feature. You can create your own black list and mute list and give them a description",
+        "welcome_body": "This is the new decentralized list feature. You can create your own black list and mute list and give them a description",
         "list_description_placement": "List Description:",
         "no_results_found": "No search results found",
         "acknowledge": "Acknowledge",
         "what_is_this": "What Is This?",
-        "info1":
-            "This is the new decentralized list system. From here you can manage your own mute list or blacklist, as well as subscribe to the mute lists and blacklists of other users. ",
+        "info1": "This is the new decentralized list system. From here you can manage your own mute list or blacklist, as well as subscribe to the mute lists and blacklists of other users. ",
         "info2": "There are some new fields on the ",
         "info3": "Settings ",
-        "info4":
-            "page where you can set a description of how you choose who you've added to your lists and if there are any actions that account can take to get removed from them. ",
-        "info5":
-            "You can see the descriptions of the lists of other accounts by browsing directly to their personal blacklist or mute list page. These links can be found on their profile page below the follower information. ",
+        "info4": "page where you can set a description of how you choose who you've added to your lists and if there are any actions that account can take to get removed from them. ",
+        "info5": "You can see the descriptions of the lists of other accounts by browsing directly to their personal blacklist or mute list page. These links can be found on their profile page below the follower information. ",
         "info6": "To get started, we recommend that you follow the blacklists/mute lists of these accounts: hive.blog",
-        "info7":
-            "Click the button below to dismiss this dialog. This will automatically subscribe you to the mute list and blacklist of the hive.blog account.",
+        "info7": "Click the button below to dismiss this dialog. This will automatically subscribe you to the mute list and blacklist of the hive.blog account.",
         "first": "First",
         "previous": "Previous",
         "next": "Next",
diff --git a/src/app/locales/es.json b/src/app/locales/es.json
index f9bb88bb6e049d72bd0da4e071f37b6a3fdd435c..1c2e94bce4fb0c78ecd82e8acedb41a1995a41ff 100644
--- a/src/app/locales/es.json
+++ b/src/app/locales/es.json
@@ -55,8 +55,7 @@
         "password": "Contraseña",
         "payouts": "Pagos",
         "permissions": "Permisos",
-        "phishy_message":
-            "Enlace expuesto a texto sin formato; cuidado con un posible intento de phishing",
+        "phishy_message": "Enlace expuesto a texto sin formato; cuidado con un posible intento de phishing",
         "post": "Publicación",
         "post_as": "Publicar como",
         "posts": "Publicaciones",
@@ -126,88 +125,63 @@
         "account_name": "Nombre de cuenta",
         "recover_your_account": "recuperar tu cuenta",
         "reset_usernames_password": "Restablecer la contraseña de %(username)s",
-        "this_will_update_usernames_authtype_key":
-            "Esto actualizará la clave %(authType)s de %(username)s",
+        "this_will_update_usernames_authtype_key": "Esto actualizará la clave %(authType)s de %(username)s",
         "passwords_do_not_match": "Las contraseñas no coinciden",
-        "you_need_private_password_or_key_not_a_public_key":
-            "Necesitas una contraseña o clave privada (no una clave pública)",
+        "you_need_private_password_or_key_not_a_public_key": "Necesitas una contraseña o clave privada (no una clave pública)",
         "the_rules_of_APP_NAME": {
-            "one":
-                "La primera regla de %(APP_NAME)ses: No pierdas tu contraseña.",
-            "second":
-                "La segunda regla de %(APP_NAME)s es: No pierdas tu contraseña.",
-            "third":
-                "La tercera regla de  %(APP_NAME)s es: No podemos recuperar tu contraseña.",
-            "fourth":
-                "La cuarta regla: Si puedes recordar tu contraseña, esta no es segura.",
-            "fifth":
-                "La quinta regla: Usa sólo contraseñas creadas aleatoriamente.",
+            "one": "La primera regla de %(APP_NAME)ses: No pierdas tu contraseña.",
+            "second": "La segunda regla de %(APP_NAME)s es: No pierdas tu contraseña.",
+            "third": "La tercera regla de  %(APP_NAME)s es: No podemos recuperar tu contraseña.",
+            "fourth": "La cuarta regla: Si puedes recordar tu contraseña, esta no es segura.",
+            "fifth": "La quinta regla: Usa sólo contraseñas creadas aleatoriamente.",
             "sixth": "La sexta regla: No le digas a nadie tu contraseña.",
-            "seventh":
-                "La séptima regla: Haz siempre una copia de seguridad de tu contraseña."
+            "seventh": "La séptima regla: Haz siempre una copia de seguridad de tu contraseña."
         },
         "recover_password": "Recuperar Cuenta",
         "current_password": "Contraseña Actual",
         "generated_password": "Contraseña Generada",
-        "backup_password_by_storing_it":
-            "Haz una copia de seguridad guardándolo en tu monedero de contraseñas o en un archivo de texto",
-        "enter_account_show_password":
-            "Introduce un nombre de cuenta correcto para mostrar la contraseña",
+        "backup_password_by_storing_it": "Haz una copia de seguridad guardándolo en tu monedero de contraseñas o en un archivo de texto",
+        "enter_account_show_password": "Introduce un nombre de cuenta correcto para mostrar la contraseña",
         "click_to_generate_password": "Confirmar Contraseña",
         "re_enter_generate_password": "Reintroduce la contraseña generada",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "Entiendo que (nombre APP) no puede recuperar contraseñas perdidas",
+        "understand_that_APP_NAME_cannot_recover_password": "Entiendo que (nombre APP) no puede recuperar contraseñas perdidas",
         "i_saved_password": "He guardado con seguridad mi contraseña generada",
         "update_password": "Actualizar Contraseña",
         "confirm_password": "Confirmar Contraseña",
         "account_updated": "Cuenta Actualizada",
-        "password_must_be_characters_or_more":
-            "La contraseña tiene que tener %(amount)s caracteres o más",
-        "need_password_or_key":
-            "Necesitas una contraseña o clave privada (no una clave pública)",
+        "password_must_be_characters_or_more": "La contraseña tiene que tener %(amount)s caracteres o más",
+        "need_password_or_key": "Necesitas una contraseña o clave privada (no una clave pública)",
         "login_to_see_memo": "accede para ver el memo",
         "new_password": "Nueva Contraseña",
         "incorrect_password": "Contraseña Incorrecta",
         "username_does_not_exist": "El nombre de usuario no existe",
-        "account_name_should_start_with_a_letter":
-            "El nombre de usuario debería empezar con una letra.",
-        "account_name_should_be_shorter":
-            "El nombre de usuario debería ser más corto.",
-        "account_name_should_be_longer":
-            "El nombre de usuario debería ser más largo.",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "El nombre de usuario debería tener sólo letras, dígitos o guiones.",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "No se puede aumentar la recompensa de la publicación dentro del último minuto antes del pago.",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "Sólo una cuenta Hive permitida por dirección IP cada 10 minutos",
+        "account_name_should_start_with_a_letter": "El nombre de usuario debería empezar con una letra.",
+        "account_name_should_be_shorter": "El nombre de usuario debería ser más corto.",
+        "account_name_should_be_longer": "El nombre de usuario debería ser más largo.",
+        "account_name_should_have_only_letters_digits_or_dashes": "El nombre de usuario debería tener sólo letras, dígitos o guiones.",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "No se puede aumentar la recompensa de la publicación dentro del último minuto antes del pago.",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "Sólo una cuenta Hive permitida por dirección IP cada 10 minutos",
         "reblog_this_post": "Reblogea esta Publicación",
         "reblog": "Reblogear",
         "write_your_story": "Escribe tu historia",
-        "remember_voting_and_posting_key":
-            "Recuerda la clave de voto y de publicación",
+        "remember_voting_and_posting_key": "Recuerda la clave de voto y de publicación",
         "auto_login_question_mark": "¿Acceso automático?",
         "hide_private_key": "Ocultar clave privada",
         "show_private_key": "Mostrar clave privada",
         "login_to_show": "Acceder para mostrar",
         "not_valid_email": "Correo electrónico no válido",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "Gracias por ser uno de los primeros en entrar en %(APP_NAME)s. Nos pondremos en contacto tan pronto como sea posible",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "Gracias por ser uno de los primeros en entrar en %(APP_NAME)s. Nos pondremos en contacto tan pronto como sea posible",
         "author_rewards": "Recompensas de autor",
         "curation_rewards": "Recompensas de curación",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "Lo sentimos pero tu cuenta de Reddit no tiene suficiente Karma para un registro gratis. Por favor, añade tu email para entrar en la lista de espera",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "Lo sentimos pero tu cuenta de Reddit no tiene suficiente Karma para un registro gratis. Por favor, añade tu email para entrar en la lista de espera",
         "register_with_facebook": "Regístrate con Facebook",
-        "or_click_the_button_below_to_register_with_facebook":
-            "O haz click en el botón de abajo para registrarte con Facebook",
+        "or_click_the_button_below_to_register_with_facebook": "O haz click en el botón de abajo para registrarte con Facebook",
         "server_returned_error": "el servidor devolvió el error",
         "APP_NAME_support": "%(APP_NAME)s Soporte",
         "please_email_questions_to": "Por favor, envía un mail con tus dudas a",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "Autores cobran cuando gente como tú vota por sus posts",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "Si te ha gustado lo que has leído aquí, crea tu cuenta hoy mismo y empieza a ganar HIVE!",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "Autores cobran cuando gente como tú vota por sus posts",
+            "if_you_enjoyed_what_you_read_earn_amount": "Si te ha gustado lo que has leído aquí, crea tu cuenta hoy mismo y empieza a ganar HIVE!",
             "free_hive": "¡HIVE GRATIS!",
             "sign_up_earn_hive": "Regístrate ahora para ganar"
         },
@@ -216,8 +190,7 @@
             "show_less": "Mostrar menos",
             "value_posts": "Posts de bajo valor"
         },
-        "read_only_mode":
-            "Debido a tareas de mantenimiento de los servidores, solo el modo lectura está disponible. Perdonen las molestias",
+        "read_only_mode": "Debido a tareas de mantenimiento de los servidores, solo el modo lectura está disponible. Perdonen las molestias",
         "tags_and_topics": "Etiquetas y Temas",
         "show_more_topics": "Mostrar más temas",
         "basic": "Básico",
@@ -233,10 +206,8 @@
             "other": "%(count)s Respuestas"
         },
         "post_key_warning": {
-            "confirm":
-                "Está a punto de publicar una clave privada HIVE o una contraseña maestra. Probablemente perderá el control de la cuenta asociada y todos sus fondos.",
-            "warning":
-                "Los usuarios legítimos, incluidos los empleados de Hive, nunca le pedirán una clave privada o contraseña maestra.",
+            "confirm": "Está a punto de publicar una clave privada HIVE o una contraseña maestra. Probablemente perderá el control de la cuenta asociada y todos sus fondos.",
+            "warning": "Los usuarios legítimos, incluidos los empleados de Hive, nunca le pedirán una clave privada o contraseña maestra.",
             "checkbox": "Entiendo"
         }
     },
@@ -265,8 +236,7 @@
         "smt_whitepaper": "Libro blanco de SMT",
         "whitepaper": "Libro blanco de Hive",
         "intro_tagline": "El dinero habla.",
-        "intro_paragraph":
-            "Tu voz tiene valor. Únete a la comunidad que te paga por publicar y votar contenido de alta calidad",
+        "intro_paragraph": "Tu voz tiene valor. Únete a la comunidad que te paga por publicar y votar contenido de alta calidad",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
         "what_is_hive": "What is Hive?"
@@ -279,23 +249,19 @@
         "shorten_title": "Abreviar el título",
         "exceeds_maximum_length": "Excede la capacidad máxima (%(maxKb)sKB)",
         "including_the_category": "(incluyendo categoría '%(rootCategory)s')",
-        "use_limited_amount_of_tags":
-            "Tienes %(tagsLength)s tags totales %(includingCategory)s. Por favor usa solo 5 tags en tu post y en la línea de categorías",
-        "are_you_sure_you_want_to_clear_this_form":
-            "¿Estás seguro de que quieres limpiar este formulario?",
+        "use_limited_amount_of_tags": "Tienes %(tagsLength)s tags totales %(includingCategory)s. Por favor usa solo 5 tags en tu post y en la línea de categorías",
+        "are_you_sure_you_want_to_clear_this_form": "¿Estás seguro de que quieres limpiar este formulario?",
         "uploading": "Subiendo",
         "draft_saved": "Borrador guardado.",
         "editor": "Editor",
-        "insert_images_by_dragging_dropping":
-            "Inserta imágenes arrastrando y soltando,",
+        "insert_images_by_dragging_dropping": "Inserta imágenes arrastrando y soltando,",
         "pasting_from_the_clipboard": "pegando desde el portapapeles,",
         "selecting_them": "Seleccionándolos",
         "image_upload": "Subir imagen",
         "power_up_100": "Power Up 100%%",
         "default_50_50": "50 1%% / 50 1%%",
         "decline_payout": "Rechazar Pago",
-        "check_this_to_auto_upvote_your_post":
-            "Seleciona para autovotarte el post",
+        "check_this_to_auto_upvote_your_post": "Seleciona para autovotarte el post",
         "markdown_styling_guide": "Guía para el Markdown",
         "or_by": "o por",
         "title": "Título",
@@ -310,66 +276,48 @@
         "exceeds_max_beneficiaries": "Can have at most 8 beneficiaries",
         "beneficiary_cannot_be_self": "Cannot specify self as beneficiary",
         "beneficiary_cannot_be_duplicate": "Beneficiary cannot be duplicate",
-        "beneficiary_percent_invalid":
-            "Beneficiary percentage must be from 1-100",
-        "beneficiary_percent_total_invalid":
-            "Beneficiary total percentage must be less than 100"
+        "beneficiary_percent_invalid": "Beneficiary percentage must be from 1-100",
+        "beneficiary_percent_total_invalid": "Beneficiary total percentage must be less than 100"
     },
     "category_selector_jsx": {
-        "tag_your_story":
-            "Etiqueta (hasta 5 etiquetas), la primera etiqueta es tu principal categoría.",
+        "tag_your_story": "Etiqueta (hasta 5 etiquetas), la primera etiqueta es tu principal categoría.",
         "select_a_tag": "Selecciona una etiqueta",
-        "maximum_tag_length_is_24_characters":
-            "La longitud máxima de la etiqueta es de 24 caracteres",
-        "use_limited_amount_of_categories":
-            "Por favor usa sólo %(amount)s categorías",
+        "maximum_tag_length_is_24_characters": "La longitud máxima de la etiqueta es de 24 caracteres",
+        "use_limited_amount_of_categories": "Por favor usa sólo %(amount)s categorías",
         "use_only_lowercase_letters": "Usa sólo letras minúsculas",
         "use_one_dash": "Usa sólo un guión",
-        "use_spaces_to_separate_tags":
-            "Usa espacios para separar las etiquetas",
-        "use_only_allowed_characters":
-            "Usa sólo letras minúsculas, dígitos y un guión",
+        "use_spaces_to_separate_tags": "Usa espacios para separar las etiquetas",
+        "use_only_allowed_characters": "Usa sólo letras minúsculas, dígitos y un guión",
         "must_start_with_a_letter": "Debe empezar con una letra",
-        "must_end_with_a_letter_or_number":
-            "Debe terminar con una letra o número"
+        "must_end_with_a_letter_or_number": "Debe terminar con una letra o número"
     },
     "postfull_jsx": {
-        "this_post_is_not_available_due_to_a_copyright_claim":
-            "Este post no está disponible por reclamación de derechos de autor.",
+        "this_post_is_not_available_due_to_a_copyright_claim": "Este post no está disponible por reclamación de derechos de autor.",
         "share_on_facebook": "Compartir en Facebook",
         "share_on_twitter": "Compartir en Twitter",
         "share_on_linkedin": "Compartir en Linkedin",
         "recent_password": "Contraseña reciente",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "En 3.5 días, convertir 1 %(amount)s 2 %(DEBT_TOKEN)s a 3 %(LIQUID_TOKEN)s",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "En 3.5 días, convertir 1 %(amount)s 2 %(DEBT_TOKEN)s a 3 %(LIQUID_TOKEN)s",
         "view_the_full_context": "Ver todo el contexto",
         "view_the_direct_parent": "Ver el comentario relacionado",
-        "you_are_viewing_a_single_comments_thread_from":
-            "Estás viendo  los comentarios relacionados de"
+        "you_are_viewing_a_single_comments_thread_from": "Estás viendo  los comentarios relacionados de"
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "Puede ocurrir que la owner key de algún usuario se vea comprometida. La funcionalidad de recuperación de contraseñas robadas le da al propietario de la cuenta 30 días para recuperar su cuenta desde el mismo momento que el delincuente ha cambiado la owner key. Esta funcionalidad sólo puede ser usada en %(APP_URL)s si el propietario de la cuenta ha incluído %(APP_NAME)s como su cuenta de confianza y además a comulgado con las condiciones y términos de servicio de %(APP_NAME)s"
+        "recover_account_intro": "Puede ocurrir que la owner key de algún usuario se vea comprometida. La funcionalidad de recuperación de contraseñas robadas le da al propietario de la cuenta 30 días para recuperar su cuenta desde el mismo momento que el delincuente ha cambiado la owner key. Esta funcionalidad sólo puede ser usada en %(APP_URL)s si el propietario de la cuenta ha incluído %(APP_NAME)s como su cuenta de confianza y además a comulgado con las condiciones y términos de servicio de %(APP_NAME)s"
     },
     "user_profile": {
         "unknown_account": "Cuenta desconocida",
-        "user_hasnt_made_any_posts_yet":
-            "Parece que %(name)s aún no ha comenzado a postear",
-        "user_hasnt_started_bloggin_yet":
-            "Parece que %(name)s aún no ha comenzado su blog",
-        "user_hasnt_followed_anything_yet":
-            "Parece que %(name)s aún no está siguiendo a nadie. Si %(name)s acaba de añadir nuevas cuentas para seguir, el feed personalizado aparecerá cuando el nuevo contenido esté disponible.",
-        "user_hasnt_had_any_replies_yet":
-            "%(name)s todavía no ha tenido ninguna respuesta",
-        "looks_like_you_havent_posted_anything_yet":
-            "Looks like you haven't posted anything yet.",
+        "user_hasnt_made_any_posts_yet": "Parece que %(name)s aún no ha comenzado a postear",
+        "user_hasnt_started_bloggin_yet": "Parece que %(name)s aún no ha comenzado su blog",
+        "user_hasnt_followed_anything_yet": "Parece que %(name)s aún no está siguiendo a nadie. Si %(name)s acaba de añadir nuevas cuentas para seguir, el feed personalizado aparecerá cuando el nuevo contenido esté disponible.",
+        "user_hasnt_had_any_replies_yet": "%(name)s todavía no ha tenido ninguna respuesta",
+        "looks_like_you_havent_posted_anything_yet": "Looks like you haven't posted anything yet.",
         "create_a_post": "Create a Post",
         "explore_trending_articles": "Explore Trending Articles",
         "read_the_quick_start_guide": "Read The Quick Start Guide",
         "browse_the_faq": "Browse The FAQ",
         "followers": "Seguidores",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "Esto es la reputación de %(name)s's. La reputación está basada en la historia de votos recibidos por la cuenta y se usa para esconder contenido de baja calidad.",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "Esto es la reputación de %(name)s's. La reputación está basada en la historia de votos recibidos por la cuenta y se usa para esconder contenido de baja calidad.",
         "follower_count": {
             "zero": "Sin seguidores",
             "one": "1 seguidor",
@@ -389,21 +337,16 @@
         "show_all": "Show All"
     },
     "post_jsx": {
-        "now_showing_comments_with_low_ratings":
-            "Mostrando ahora comentarios con bajas calificaciones",
+        "now_showing_comments_with_low_ratings": "Mostrando ahora comentarios con bajas calificaciones",
         "sort_order": "Clase de órden",
-        "comments_were_hidden_due_to_low_ratings":
-            "Los comentarios fueron ocultados debido a las bajas calificaciones"
+        "comments_were_hidden_due_to_low_ratings": "Los comentarios fueron ocultados debido a las bajas calificaciones"
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "Flagear un posts puede hacer desaparecer las recompensas y hacer el contenido menos visible. Usar el sentido común para flagear",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "Flagear un posts puede hacer desaparecer las recompensas y hacer el contenido menos visible. Usar el sentido común para flagear",
         "disagreement_on_rewards": "Desacuerdo en las recompensas",
         "fraud_or_plagiarism": "Fraude o Plagio",
-        "hate_speech_or_internet_trolling":
-            "Discurso de odio o trolear en internat",
-        "intentional_miss_categorized_content_or_spam":
-            "Uso erróneo de los tags o Spam",
+        "hate_speech_or_internet_trolling": "Discurso de odio o trolear en internat",
+        "intentional_miss_categorized_content_or_spam": "Uso erróneo de los tags o Spam",
         "pending_payout": "Pago pendiente $ %(value)s",
         "payout_declined": "Pago rehusado",
         "max_accepted_payout": "Máximo pago aceptado $ %(value)s",
@@ -411,8 +354,7 @@
         "past_payouts": "Pagos pasados $ %(value)s",
         "past_payouts_author": "Autor $ %(value)s",
         "past_payouts_curators": "Curador $ %(value)s",
-        "we_will_reset_curation_rewards_for_this_post":
-            "Reseteará tus recompensas de curación para este post",
+        "we_will_reset_curation_rewards_for_this_post": "Reseteará tus recompensas de curación para este post",
         "removing_your_vote": "Quitando tu voto",
         "changing_to_an_upvote": "Cambiando a Up-vote",
         "changing_to_a_downvote": "Cambiando a Down-Vote",
@@ -424,8 +366,7 @@
         }
     },
     "votesandcomments_jsx": {
-        "no_responses_yet_click_to_respond":
-            "Todavía sin respuestas. Pincha para responder.",
+        "no_responses_yet_click_to_respond": "Todavía sin respuestas. Pincha para responder.",
         "response_count_tooltip": {
             "zero": "sin respuestas. Pincha para responder.",
             "one": "1 respuesta. Pincha para responder.",
@@ -442,69 +383,46 @@
         "private": "Privado",
         "public_something_key": "Contraseña %(key)s pública",
         "private_something_key": "Contraseña %(key)s privada",
-        "posting_key_is_required_it_should_be_different":
-            "La contraseña de posteado se usa para postear y para votar. Debería ser diferente a la contraseña activa y a la contraseña de propietario.",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "La contraseña activa se usa para hacer transferencias y poner órdenes de compra o venta en el mercado interno.",
-        "the_owner_key_is_required_to_change_other_keys":
-            "La contraseña propia es la contraseña maestra para la cuenta y se requiere para cambiar el resto de las contraseñas.",
-        "the_private_key_or_password_should_be_kept_offline":
-            "La contraseña privada para la cuenta propia debería estar fuera del acceso a internet. Se recomienda imprimirla y guardarla en lugar seguro.",
-        "the_memo_key_is_used_to_create_and_read_memos":
-            "La contraseña memo se usa para crear y leer memos."
+        "posting_key_is_required_it_should_be_different": "La contraseña de posteado se usa para postear y para votar. Debería ser diferente a la contraseña activa y a la contraseña de propietario.",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "La contraseña activa se usa para hacer transferencias y poner órdenes de compra o venta en el mercado interno.",
+        "the_owner_key_is_required_to_change_other_keys": "La contraseña propia es la contraseña maestra para la cuenta y se requiere para cambiar el resto de las contraseñas.",
+        "the_private_key_or_password_should_be_kept_offline": "La contraseña privada para la cuenta propia debería estar fuera del acceso a internet. Se recomienda imprimirla y guardarla en lugar seguro.",
+        "the_memo_key_is_used_to_create_and_read_memos": "La contraseña memo se usa para crear y leer memos."
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)s no puede recuperar contraseñas. Guarda está página en lugar seguro, como en una caja fuerte o una caja de depósito",
-        "APP_NAME_password_backup":
-            "%(APP_NAME)s Contraseña de apoyo o seguridad",
-        "APP_NAME_password_backup_required":
-            "%(APP_NAME)s Contraseña de apoyo o seguridad (requerida)",
-        "after_printing_write_down_your_user_name":
-            "Después de imprimir, escribe tu nombre de usuario"
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)s no puede recuperar contraseñas. Guarda está página en lugar seguro, como en una caja fuerte o una caja de depósito",
+        "APP_NAME_password_backup": "%(APP_NAME)s Contraseña de apoyo o seguridad",
+        "APP_NAME_password_backup_required": "%(APP_NAME)s Contraseña de apoyo o seguridad (requerida)",
+        "after_printing_write_down_your_user_name": "Después de imprimir, escribe tu nombre de usuario"
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "La cantidad de %(DEBT_TOKEN)s son líquidos y transferibles. Si lo deseas también puedes comprar o vender %(DEBT_TOKEN)s directamente en esta página en el %(link)s o transferir a un mercado externo",
-        "this_is_a_price_feed_conversion":
-            "Esto es la conversión de precio. Los 3.5 días de retraso son necesarios para prevenir el abuso con las medias del precio",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "La cantidad de %(DEBT_TOKEN)s son líquidos y transferibles. Si lo deseas también puedes comprar o vender %(DEBT_TOKEN)s directamente en esta página en el %(link)s o transferir a un mercado externo",
+        "this_is_a_price_feed_conversion": "Esto es la conversión de precio. Los 3.5 días de retraso son necesarios para prevenir el abuso con las medias del precio",
         "convert_to_LIQUID_TOKEN": "Convertir a %(LIQUID_TOKEN)s",
-        "DEBT_TOKEN_will_be_unavailable":
-            "Esta acción tardará 3.5 días en procesarse y no puede ser cancelada. Estos %(DEBT_TOKEN)s dejarán inmediatamente de estar disponibles"
+        "DEBT_TOKEN_will_be_unavailable": "Esta acción tardará 3.5 días en procesarse y no puede ser cancelada. Estos %(DEBT_TOKEN)s dejarán inmediatamente de estar disponibles"
     },
     "tips_js": {
-        "liquid_token":
-            "Tokens canjeables pueden ser transferidos a cualquier sitio en cualquier momento.1%(LIQUID_TOKEN)s y pueden ser convertidos a %(VESTING_TOKEN)s en un proceso llamado power up.",
-        "influence_token":
-            "Tokens con influencia te dan más control sobre los pagos de los posts y te permiten ganar recompensas de curación",
-        "estimated_value":
-            "El valor estimado está basado en el valor medio de 1%(LIQUID_TOKEN)s en US dollars.",
-        "non_transferable":
-            "%(VESTING_TOKEN)s es intransferible y requiere 3 meses (13 pagos) para convertir de vuelta a %(LIQUID_TOKEN)s.",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "Los %(VESTING_TOKEN)s convertidos pueden ser enviados a ti mismo o a otras personas pero no pueden ser transferidos de nuevo sin convertirlos de vuelta a %(LIQUID_TOKEN)s.",
-        "part_of_your_hive_power_is_currently_delegated":
-            "Part of %(user_name)s's HIVE POWER is currently delegated. Delegation is donated for influence or to help new users perform actions on Hive. Your delegation amount can fluctuate."
+        "liquid_token": "Tokens canjeables pueden ser transferidos a cualquier sitio en cualquier momento.1%(LIQUID_TOKEN)s y pueden ser convertidos a %(VESTING_TOKEN)s en un proceso llamado power up.",
+        "influence_token": "Tokens con influencia te dan más control sobre los pagos de los posts y te permiten ganar recompensas de curación",
+        "estimated_value": "El valor estimado está basado en el valor medio de 1%(LIQUID_TOKEN)s en US dollars.",
+        "non_transferable": "%(VESTING_TOKEN)s es intransferible y requiere 3 meses (13 pagos) para convertir de vuelta a %(LIQUID_TOKEN)s.",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "Los %(VESTING_TOKEN)s convertidos pueden ser enviados a ti mismo o a otras personas pero no pueden ser transferidos de nuevo sin convertirlos de vuelta a %(LIQUID_TOKEN)s.",
+        "part_of_your_hive_power_is_currently_delegated": "Part of %(user_name)s's HIVE POWER is currently delegated. Delegation is donated for influence or to help new users perform actions on Hive. Your delegation amount can fluctuate."
     },
     "promote_post_jsx": {
         "promote_post": "Promociona el Post",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "Gasta tu %(DEBT_TOKEN)s para promocionar tu contenido en la sección de promoción",
-        "you_successfully_promoted_this_post":
-            "Has promocionado satisfactoriamente este post",
-        "this_post_was_hidden_due_to_low_ratings":
-            "El post ha sido ocultado por bajas calificaciones"
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "Gasta tu %(DEBT_TOKEN)s para promocionar tu contenido en la sección de promoción",
+        "you_successfully_promoted_this_post": "Has promocionado satisfactoriamente este post",
+        "this_post_was_hidden_due_to_low_ratings": "El post ha sido ocultado por bajas calificaciones"
     },
     "about_jsx": {
         "about_app": "Sobre %(APP_NAME)s",
-        "about_app_details":
-            "%(APP_NAME)s es una plataforma social online donde todo el mundo genera ingresos creando y votando contenido. Usa un sistema muy sólido de puntos digitales llamado Hive que soporta valor real gracias al precio de mercado y gracias a su liquidez.",
+        "about_app_details": "%(APP_NAME)s es una plataforma social online donde todo el mundo genera ingresos creando y votando contenido. Usa un sistema muy sólido de puntos digitales llamado Hive que soporta valor real gracias al precio de mercado y gracias a su liquidez.",
         "learn_more_at_app_url": "Aprende más en %(APP_URL)s",
         "resources": "Recursos"
     },
     "markdownviewer_jsx": {
-        "images_were_hidden_due_to_low_ratings":
-            "Las imágenes fueron ocultadas por bajas calificaciones."
+        "images_were_hidden_due_to_low_ratings": "Las imágenes fueron ocultadas por bajas calificaciones."
     },
     "postsummary_jsx": {
         "reblogged": "reblogeado",
@@ -517,8 +435,7 @@
     },
     "posts_index": {
         "empty_feed_1": "Parece que no has seguido nada todavía",
-        "empty_feed_2":
-            "Si recientemente has añadido a gente para seguir, tu feed personalizado aparecerá una vez que el contenido esté disponible",
+        "empty_feed_2": "Si recientemente has añadido a gente para seguir, tu feed personalizado aparecerá una vez que el contenido esté disponible",
         "empty_feed_3": "Explorar artículos en tendencia",
         "empty_feed_4": "leer la guía básica para comenzar",
         "empty_feed_5": "Explorar la FAQ"
@@ -542,42 +459,30 @@
         "comments_by": "Comentarios de"
     },
     "loginform_jsx": {
-        "you_need_a_private_password_or_key":
-            "Necesitas la contraseña privada (no la contraseña pública)",
+        "you_need_a_private_password_or_key": "Necesitas la contraseña privada (no la contraseña pública)",
         "cryptography_test_failed": "El test cryptográfico no tuvo éxito",
         "unable_to_log_you_in": "No puedes acceder con este navegador",
         "the_latest_versions_of": "Las últimas versiones de",
-        "are_well_tested_and_known_to_work_with":
-            "han sido testeados con éxito y están preparados para trabajar con %(APP_URL)s.",
-        "due_to_server_maintenance":
-            "Debido a tareas de mantenimiento sólo estamos disponibles en modo lectura. Pedimos disculpas por los inconvenientes",
+        "are_well_tested_and_known_to_work_with": "han sido testeados con éxito y están preparados para trabajar con %(APP_URL)s.",
+        "due_to_server_maintenance": "Debido a tareas de mantenimiento sólo estamos disponibles en modo lectura. Pedimos disculpas por los inconvenientes",
         "login_to_vote": "Acceso para Votar",
         "login_to_post": "Acceso para postear",
         "login_to_comment": "Acceso para comentar",
         "posting": "Postear",
         "active_or_owner": "Activa o propietaria",
-        "this_password_is_bound_to_your_account_owner_key":
-            "Esta contraseña está ligada a tu contraseña owner o propia y no puede ser usada para acceder a esta página.",
+        "this_password_is_bound_to_your_account_owner_key": "Esta contraseña está ligada a tu contraseña owner o propia y no puede ser usada para acceder a esta página.",
         "however_you_can_use_it_to": "Sin embargo, puedes usarla para",
         "update_your_password": "cambiar tu contraseña",
-        "to_obtain_a_more_secure_set_of_keys":
-            "obtener un grupo más seguro de contraseñas.",
-        "this_password_is_bound_to_your_account_active_key":
-            "Esta contraseña está ligada tu contraseña activa y no puede ser usada para acceder a esta página.",
-        "you_may_use_this_active_key_on_other_more":
-            "Puede usar la contraseña activa en otras páginas más seguras como el Monedero.",
-        "you_account_has_been_successfully_created":
-            "Tu cuenta se ha creado con éxito!",
-        "you_account_has_been_successfully_recovered":
-            "Tu cuenta ha sido recuperada con éxito!",
-        "password_update_succes":
-            "La contraseña %(accountName)s ha sido cambiada correctamente",
-        "password_info":
-            "La contraseña o la contraseña privada fue introducida incorrectamente. Probablemente. Ayuda: Las contraseñas generadas por Hive nunca contendrán 0 (cero), O (o mayúscula), I (i mayúscula), l (L minúscula).",
+        "to_obtain_a_more_secure_set_of_keys": "obtener un grupo más seguro de contraseñas.",
+        "this_password_is_bound_to_your_account_active_key": "Esta contraseña está ligada tu contraseña activa y no puede ser usada para acceder a esta página.",
+        "you_may_use_this_active_key_on_other_more": "Puede usar la contraseña activa en otras páginas más seguras como el Monedero.",
+        "you_account_has_been_successfully_created": "Tu cuenta se ha creado con éxito!",
+        "you_account_has_been_successfully_recovered": "Tu cuenta ha sido recuperada con éxito!",
+        "password_update_succes": "La contraseña %(accountName)s ha sido cambiada correctamente",
+        "password_info": "La contraseña o la contraseña privada fue introducida incorrectamente. Probablemente. Ayuda: Las contraseñas generadas por Hive nunca contendrán 0 (cero), O (o mayúscula), I (i mayúscula), l (L minúscula).",
         "enter_your_username": "Introduce tu nombre de usuario",
         "password_or_wif": "Contraseña o WIF",
-        "this_operation_requires_your_key_or_master_password":
-            "Esta operación requiere %(authType)s contraseña o la contraseña maestra",
+        "this_operation_requires_your_key_or_master_password": "Esta operación requiere %(authType)s contraseña o la contraseña maestra",
         "keep_me_logged_in": "Manténme logeado",
         "amazing_community": "comunidad increíble",
         "to_comment_and_reward_others": "para comentar y recompensar a otros",
@@ -597,12 +502,10 @@
         "be_shorter": "ser más corto.",
         "each_account_segment_should": "Cada segmento de la cuenta debería",
         "start_with_a_letter": "comenzar con una letra.",
-        "have_only_letters_digits_or_dashes":
-            "tener sólo letras, dígitos o guiones.",
+        "have_only_letters_digits_or_dashes": "tener sólo letras, dígitos o guiones.",
         "have_only_one_dash_in_a_row": "tener sólo un guión consecutivo.",
         "end_with_a_letter_or_digit": "terminar con una legra o dígito.",
-        "verified_exchange_no_memo":
-            "Tienes que incluir un memo para la transferencia al exchange"
+        "verified_exchange_no_memo": "Tienes que incluir un memo para la transferencia al exchange"
     },
     "settings_jsx": {
         "invalid_url": "URL inválida",
@@ -632,14 +535,11 @@
         "remove": "Eliminar",
         "add_api_endpoint": "Agregar punto final de API",
         "reset_endpoints": "Restablecer puntos finales",
-        "error_bad_url":
-            "Esto parece ser una URL incorrecta, verifíquelo e intente nuevamente",
+        "error_bad_url": "Esto parece ser una URL incorrecta, verifíquelo e intente nuevamente",
         "error_bad_cookie": "No se pueden obtener puntos finales de la cookie",
         "error_already_exists": "Este punto final ya está en la lista",
-        "error_cant_remove_active":
-            "No puede eliminar el punto final preferido actual. Seleccione primero un nuevo punto final preferido",
-        "error_cant_remove_all":
-            "Debe tener al menos un punto final en la lista"
+        "error_cant_remove_active": "No puede eliminar el punto final preferido actual. Seleccione primero un nuevo punto final preferido",
+        "error_cant_remove_all": "Debe tener al menos un punto final en la lista"
     },
     "transfer_jsx": {
         "amount_is_in_form": "La cantidad está en el formato 99999.999",
@@ -650,19 +550,14 @@
         "this_memo_is_private": "Esta memo es privada",
         "this_memo_is_public": "Esta memo es pública",
         "convert_to_VESTING_TOKEN": "Convertir a %(VESTING_TOKEN)s",
-        "balance_subject_to_3_day_withdraw_waiting_period":
-            "El saldo está sujeto a 3 días de espera para la retirada",
+        "balance_subject_to_3_day_withdraw_waiting_period": "El saldo está sujeto a 3 días de espera para la retirada",
         "move_funds_to_another_account": "Mover fondos a otra hivescuenta.",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "Protege los fondos al pedir la retirada con un periodo de 3 días de espera",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "Retirada de fondos después del periodo de 3 días de espera",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "Protege los fondos al pedir la retirada con un periodo de 3 días de espera",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "Retirada de fondos después del periodo de 3 días de espera",
         "from": "De",
         "to": "Para",
-        "asset_currently_collecting":
-            "%(asset)s recolectando actualmente %(interest)s%% APR.",
-        "beware_of_spam_and_phishing_links":
-            "Tenga cuidado con los enlaces de spam y phishing en los memos de transferencia. No abra enlaces de usuarios en los que no confíe. No proporcione sus claves privadas a sitios web de terceros."
+        "asset_currently_collecting": "%(asset)s recolectando actualmente %(interest)s%% APR.",
+        "beware_of_spam_and_phishing_links": "Tenga cuidado con los enlaces de spam y phishing en los memos de transferencia. No abra enlaces de usuarios en los que no confíe. No proporcione sus claves privadas a sitios web de terceros."
     },
     "userwallet_jsx": {
         "conversion_complete_tip": "Se completará el",
@@ -674,21 +569,17 @@
         "convert_to_LIQUID_TOKEN": "Convertir a %(LIQUID_TOKEN)s",
         "withdraw_LIQUID_TOKEN": "Retirar %(LIQUID_TOKEN)s",
         "withdraw_DEBT_TOKENS": "Retirar %(DEBT_TOKENS)s",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "Los tokens valen alrededor de $1.00 de %(LIQUID_TICKER)s, ahora mismo recolectando %(hbdInterest)s%% APR.",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "Los tokens valen alrededor de $1.00 de %(LIQUID_TICKER)s, ahora mismo recolectando %(hbdInterest)s%% APR.",
         "savings": "AHORROS",
         "estimated_account_value": "Valor de cuenta aproximado",
-        "next_power_down_is_scheduled_to_happen":
-            "El siguiente power down ocurrirá en ",
-        "transfers_are_temporary_disabled":
-            "Las transferencias están temporalmente inhabilitadas.",
+        "next_power_down_is_scheduled_to_happen": "El siguiente power down ocurrirá en ",
+        "transfers_are_temporary_disabled": "Las transferencias están temporalmente inhabilitadas.",
         "history": "HISTORIA",
         "redeem_rewards": "Liquidar recompensas (Transferir al saldo)",
         "buy_hive_or_hive_power": "Compra HIVE o HIVE POWER."
     },
     "checkloginowner_jsx": {
-        "your_password_permissions_were_reduced":
-            "Sus permisos de identificacion han sido limitados.",
+        "your_password_permissions_were_reduced": "Sus permisos de identificacion han sido limitados.",
         "if_you_did_not_make_this_change": "Si no ha hecho el cambio por favor",
         "ownership_changed_on": "Pertenencia cambio el",
         "deadline_for_recovery_is": "La fecha límite para la recuperación es",
diff --git a/src/app/locales/fr.json b/src/app/locales/fr.json
index ad58822cb622f99cea26431ed949323eb8a64d5a..7631ac453d71581635672d6cb44e83173a1980ac 100644
--- a/src/app/locales/fr.json
+++ b/src/app/locales/fr.json
@@ -61,8 +61,7 @@
         "password": "Mot de passe",
         "payouts": "Gains",
         "permissions": "Permissions",
-        "phishy_message":
-            "Link expanded to plain text; beware of a potential phishing attempt",
+        "phishy_message": "Link expanded to plain text; beware of a potential phishing attempt",
         "post": "Poster",
         "post_as": "Poster en tant que",
         "posts": "Articles",
@@ -131,92 +130,64 @@
         "do_you_need_to": "Avez-vous besoin de",
         "account_name": "Nom du compte",
         "recover_your_account": "Récupérer son compte",
-        "reset_usernames_password":
-            "Réinitialiser le mot de passe de %(username)s",
-        "this_will_update_usernames_authtype_key":
-            "Ceci mettra a jour la clé %(authType)s de %(username)s",
+        "reset_usernames_password": "Réinitialiser le mot de passe de %(username)s",
+        "this_will_update_usernames_authtype_key": "Ceci mettra a jour la clé %(authType)s de %(username)s",
         "passwords_do_not_match": "Mots de passe différents",
-        "you_need_private_password_or_key_not_a_public_key":
-            "La clé ou le mot de passe privé (et non public) est nécessaire ",
+        "you_need_private_password_or_key_not_a_public_key": "La clé ou le mot de passe privé (et non public) est nécessaire ",
         "the_rules_of_APP_NAME": {
-            "one":
-                "La première règle de %(APP_NAME)s est de ne pas perdre son mot de passe.",
-            "second":
-                "La deuxième règle de %(APP_NAME)s est de ne pas perdre son mot de passe.",
-            "third":
-                "La troisième règle de %(APP_NAME)s est que nous ne pouvons réinitialiser votre mot de passe.",
-            "fourth":
-                "La quatrième règle est que si vous pouvez vous rappeler de votre mot de passe, il n'est pas assez sécuritaire.",
-            "fifth":
-                "La cinquième règle demande d'utiliser uniquement des mots de passe générés aléatoirement.",
-            "sixth":
-                "La sixième règle est de ne donner à personne son mot de passe.",
-            "seventh":
-                "La septième règle est de faire une sauvegarde de son mot de passe."
+            "one": "La première règle de %(APP_NAME)s est de ne pas perdre son mot de passe.",
+            "second": "La deuxième règle de %(APP_NAME)s est de ne pas perdre son mot de passe.",
+            "third": "La troisième règle de %(APP_NAME)s est que nous ne pouvons réinitialiser votre mot de passe.",
+            "fourth": "La quatrième règle est que si vous pouvez vous rappeler de votre mot de passe, il n'est pas assez sécuritaire.",
+            "fifth": "La cinquième règle demande d'utiliser uniquement des mots de passe générés aléatoirement.",
+            "sixth": "La sixième règle est de ne donner à personne son mot de passe.",
+            "seventh": "La septième règle est de faire une sauvegarde de son mot de passe."
         },
         "recover_password": "Récupérer un compte",
         "current_password": "Mot de passe actuel",
         "generated_password": "Mot de passe généré",
-        "backup_password_by_storing_it":
-            "A sauvegarder en le copiant dans un fichier texte ou via un logiciel de gestion de mot de passe",
-        "enter_account_show_password":
-            "Entrer un identifiant valide pour afficher le mot de passe",
-        "click_to_generate_password":
-            "Cliquer ici pour générer un mot de passe",
+        "backup_password_by_storing_it": "A sauvegarder en le copiant dans un fichier texte ou via un logiciel de gestion de mot de passe",
+        "enter_account_show_password": "Entrer un identifiant valide pour afficher le mot de passe",
+        "click_to_generate_password": "Cliquer ici pour générer un mot de passe",
         "re_enter_generate_password": "Recopier le mot de passe généré",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "Je comprends que %(APP_NAME)s ne peut récupérer les mots de passe perdus",
-        "i_saved_password":
-            "J'ai sauvegardé mon mot de passe de façon sécuritaire",
+        "understand_that_APP_NAME_cannot_recover_password": "Je comprends que %(APP_NAME)s ne peut récupérer les mots de passe perdus",
+        "i_saved_password": "J'ai sauvegardé mon mot de passe de façon sécuritaire",
         "update_password": "Mettre à jour le mot de passe",
         "confirm_password": "Confirmer le mot de passe",
         "account_updated": "Compte mis à jour",
-        "password_must_be_characters_or_more":
-            "Le mot de passe doit comporter au moins %(amount)s caractères supplémentaires",
-        "need_password_or_key":
-            "Il vous faut une clé ou un mot de passe privé (et non public)",
+        "password_must_be_characters_or_more": "Le mot de passe doit comporter au moins %(amount)s caractères supplémentaires",
+        "need_password_or_key": "Il vous faut une clé ou un mot de passe privé (et non public)",
         "login_to_see_memo": "S'identifier pour voir le mémo",
         "new_password": "Nouveau mot de passe",
         "incorrect_password": "Mot de passe incorrect",
         "username_does_not_exist": "Cet identifiant n'existe pas",
-        "account_name_should_start_with_a_letter":
-            "L'identifiant doit commencer par une lettre.",
+        "account_name_should_start_with_a_letter": "L'identifiant doit commencer par une lettre.",
         "account_name_should_be_shorter": "L'identifiant doit être plus court.",
         "account_name_should_be_longer": "L'identifiant doit être plus long.",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "L'identifiant ne peut comporter que des lettres, des chiffres, des points ou des traits d'union.",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "Les gains d'un article ne peuvent être accrus durant la dernière minute avant rétribution.",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "Un seul compte Hive est permis par adresse IP toutes les 10 minutes",
+        "account_name_should_have_only_letters_digits_or_dashes": "L'identifiant ne peut comporter que des lettres, des chiffres, des points ou des traits d'union.",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "Les gains d'un article ne peuvent être accrus durant la dernière minute avant rétribution.",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "Un seul compte Hive est permis par adresse IP toutes les 10 minutes",
         "reblog_this_post": "Rebloger cet article",
         "reblog": "Reblog",
         "write_your_story": "Ecris ton histoire",
-        "remember_voting_and_posting_key":
-            "Se souvenir de la clé de publication et de vote",
+        "remember_voting_and_posting_key": "Se souvenir de la clé de publication et de vote",
         "auto_login_question_mark": "Identification automatique",
         "hide_private_key": "Masquer la clé privée",
         "show_private_key": "Révéler la clé privée",
         "login_to_show": "S'identifier pour révéler",
         "not_valid_email": "Adresse email invalide",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "Merci pour être l'un des premiers visiteurs de %(APP_NAME)s. Nous reviendrons vers vous aussi tôt que possible.",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "Merci pour être l'un des premiers visiteurs de %(APP_NAME)s. Nous reviendrons vers vous aussi tôt que possible.",
         "author_rewards": "Gains éditoriaux",
         "curation_rewards": "Gains de curation",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "Désolé, votre compte Reddit ne possède pas de Karma Reddit suffisant pour vous qualifier pour une inscription gratuite. Veuillez s'il-vous-plaît indiquer votre adresse email pour être placé(e) sur liste d'attente.",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "Désolé, votre compte Reddit ne possède pas de Karma Reddit suffisant pour vous qualifier pour une inscription gratuite. Veuillez s'il-vous-plaît indiquer votre adresse email pour être placé(e) sur liste d'attente.",
         "register_with_facebook": "S'enregistrer par Facebook",
-        "or_click_the_button_below_to_register_with_facebook":
-            "Ou cliquer sur le bouton ci-dessous pour vous enregistrer par Facebook",
+        "or_click_the_button_below_to_register_with_facebook": "Ou cliquer sur le bouton ci-dessous pour vous enregistrer par Facebook",
         "server_returned_error": "le serveur a renvoyé une erreur",
         "APP_NAME_support": "Support pour %(APP_NAME)s",
-        "please_email_questions_to":
-            "Veuillez s'il-vous-plaît envoyer vos questions par email à",
+        "please_email_questions_to": "Veuillez s'il-vous-plaît envoyer vos questions par email à",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "Les auteurs sont payés lorsque des personnes comme vous votent pour leur contenu",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "Si vous avez apprécié ce que vous avez lu ici, créez votre compte dès à présent et commencer par gagner immédiatement du HIVE",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "Les auteurs sont payés lorsque des personnes comme vous votent pour leur contenu",
+            "if_you_enjoyed_what_you_read_earn_amount": "Si vous avez apprécié ce que vous avez lu ici, créez votre compte dès à présent et commencer par gagner immédiatement du HIVE",
             "free_hive": "HIVE GRATUIT!",
             "sign_up_earn_hive": "S'enregistrer pour gagner"
         },
@@ -225,8 +196,7 @@
             "show_less": "Révéler moins",
             "value_posts": "Articles de faible valeur"
         },
-        "read_only_mode":
-            "En raison d'une maintenance des serveurs, le site est en mode lecture seule. Nous sommes désolés pour le désagrément. ",
+        "read_only_mode": "En raison d'une maintenance des serveurs, le site est en mode lecture seule. Nous sommes désolés pour le désagrément. ",
         "tags_and_topics": "Mots clés et sujets",
         "show_more_topics": "Révéler plus de sujets",
         "basic": "Basique",
@@ -242,10 +212,8 @@
             "other": "%(count)s réponses"
         },
         "post_key_warning": {
-            "confirm":
-                "You are about to publish a HIVE private key or master password. You will probably lose control of the associated account and all its funds.",
-            "warning":
-                "Legitimate users, including employees of Hive, will never ask you for a private key or master password.",
+            "confirm": "You are about to publish a HIVE private key or master password. You will probably lose control of the associated account and all its funds.",
+            "warning": "Legitimate users, including employees of Hive, will never ask you for a private key or master password.",
             "checkbox": "I understand"
         }
     },
@@ -274,8 +242,7 @@
         "bluepaper": "Hive Bluepaper",
         "smt_whitepaper": "Livre blanc sur le SMT",
         "intro_tagline": "Présentations sur la monnaie",
-        "intro_paragraph":
-            "Votre voix vaut quelque chose. Rejoignez la communauté qui vous rémunère pour vos articles et participez à la curation du contenu de qualité.",
+        "intro_paragraph": "Votre voix vaut quelque chose. Rejoignez la communauté qui vous rémunère pour vos articles et participez à la curation du contenu de qualité.",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
         "what_is_hive": "What is Hive?",
@@ -287,26 +254,21 @@
     },
     "reply_editor": {
         "shorten_title": "Raccourcir le titre",
-        "exceeds_maximum_length":
-            "Dépassement de la taille maximale ( %(maxKb)s KB)",
+        "exceeds_maximum_length": "Dépassement de la taille maximale ( %(maxKb)s KB)",
         "including_the_category": "(incluant la catégorie '%(rootCategory)s')",
-        "use_limited_amount_of_tags":
-            "Vous avez un total de %(tagsLength)s mots clés %(includingCategory)s. Veuillez en utiliser seulement 5, autant pour l'article que pour le champ dédié aux mots clés.",
-        "are_you_sure_you_want_to_clear_this_form":
-            "Etes-vous sûr de vouloir effacer ce formulaire ?",
+        "use_limited_amount_of_tags": "Vous avez un total de %(tagsLength)s mots clés %(includingCategory)s. Veuillez en utiliser seulement 5, autant pour l'article que pour le champ dédié aux mots clés.",
+        "are_you_sure_you_want_to_clear_this_form": "Etes-vous sûr de vouloir effacer ce formulaire ?",
         "uploading": "Téléchargement en cours",
         "draft_saved": "Brouillon sauvegardé",
         "editor": "Editeur",
-        "insert_images_by_dragging_dropping":
-            "Insertion d'images par 'drag and drop'",
+        "insert_images_by_dragging_dropping": "Insertion d'images par 'drag and drop'",
         "pasting_from_the_clipboard": "copie depuis le presse-papier,",
         "selecting_them": "les sélectionnant",
         "image_upload": "Téléchargement d'image",
         "power_up_100": "Conversion en influence à 100%%",
         "default_50_50": "50 %%/ 50%%",
         "decline_payout": "Refuser les gains",
-        "check_this_to_auto_upvote_your_post":
-            "Cocher cette case pour auto-voter pour votre article",
+        "check_this_to_auto_upvote_your_post": "Cocher cette case pour auto-voter pour votre article",
         "markdown_styling_guide": "Guide stylistique pour le format Markdown",
         "or_by": "ou par",
         "title": "Titre",
@@ -321,79 +283,58 @@
         "exceeds_max_beneficiaries": "Can have at most 8 beneficiaries",
         "beneficiary_cannot_be_self": "Cannot specify self as beneficiary",
         "beneficiary_cannot_be_duplicate": "Beneficiary cannot be duplicate",
-        "beneficiary_percent_invalid":
-            "Beneficiary percentage must be from 1-100",
-        "beneficiary_percent_total_invalid":
-            "Beneficiary total percentage must be less than 100"
+        "beneficiary_percent_invalid": "Beneficiary percentage must be from 1-100",
+        "beneficiary_percent_total_invalid": "Beneficiary total percentage must be less than 100"
     },
     "category_selector_jsx": {
-        "tag_your_story":
-            "Mots clés (jusqu'à 5 mots clés), le premier d'entre eux étant votre catégorie principale.",
+        "tag_your_story": "Mots clés (jusqu'à 5 mots clés), le premier d'entre eux étant votre catégorie principale.",
         "select_a_tag": "Sélectionner un mot clé",
-        "maximum_tag_length_is_24_characters":
-            "La longueur d'un mot clé est d'au maximum 24 caractères",
-        "use_limited_amount_of_categories":
-            "Veuillez s'il-vous-plaît n'utiliser que %(amount)s catégories",
-        "use_only_lowercase_letters":
-            "Veuillez n'utiliser que des lettres minuscules",
+        "maximum_tag_length_is_24_characters": "La longueur d'un mot clé est d'au maximum 24 caractères",
+        "use_limited_amount_of_categories": "Veuillez s'il-vous-plaît n'utiliser que %(amount)s catégories",
+        "use_only_lowercase_letters": "Veuillez n'utiliser que des lettres minuscules",
         "use_one_dash": "Veuillez n'utiliser qu'un seul trait d'union",
-        "use_spaces_to_separate_tags":
-            "Veuillez utiliser des espaces pour séparer les mots clés",
-        "use_only_allowed_characters":
-            "Veuillez n'utilisez que des lettres minuscules, des chiffres et au plus un trait d'union",
+        "use_spaces_to_separate_tags": "Veuillez utiliser des espaces pour séparer les mots clés",
+        "use_only_allowed_characters": "Veuillez n'utilisez que des lettres minuscules, des chiffres et au plus un trait d'union",
         "must_start_with_a_letter": "Le premier caractère doit être une lettre",
-        "must_end_with_a_letter_or_number":
-            "Le dernier caractère doit être une lettre ou un chiffre"
+        "must_end_with_a_letter_or_number": "Le dernier caractère doit être une lettre ou un chiffre"
     },
     "post_advanced_settings_jsx": {
         "payout_option_header": "Gains éditoriaux",
-        "payout_option_description":
-            "Quel type de jeton voulez-vous comme récompense pour cet article?",
+        "payout_option_description": "Quel type de jeton voulez-vous comme récompense pour cet article?",
         "current_default": "Défaut",
         "update_default_in_settings": "Mettre à jour",
         "max_accepted_payout": "Gains maximum acceptés",
-        "max_accepted_payout_description":
-            "Valeur max (en SBD) de gains que ce post pourra recevoir.",
+        "max_accepted_payout_description": "Valeur max (en SBD) de gains que ce post pourra recevoir.",
         "unlimited": "Sans limite",
         "custom_value": "Valeur specifiée"
     },
     "postfull_jsx": {
-        "this_post_is_not_available_due_to_a_copyright_claim":
-            "Cet article n'est pas disponible en raison d'une requête de droits d'auteur.",
+        "this_post_is_not_available_due_to_a_copyright_claim": "Cet article n'est pas disponible en raison d'une requête de droits d'auteur.",
         "share_on_facebook": "Partager sur Facebook",
         "share_on_twitter": "Partager sur Twitter",
         "share_on_linkedin": "Partager sur Linkedin",
         "recent_password": "Mot de passe antérieur",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "Dans 3.5 jours, conversion de %(amount)s %(DEBT_TOKEN)s en %(LIQUID_TOKEN)s",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "Dans 3.5 jours, conversion de %(amount)s %(DEBT_TOKEN)s en %(LIQUID_TOKEN)s",
         "view_the_full_context": "Voir le contexte complet",
         "view_the_direct_parent": "Voir le message précédent",
-        "you_are_viewing_a_single_comments_thread_from":
-            "Vous visualisez un commentaire unique de l'article"
+        "you_are_viewing_a_single_comments_thread_from": "Vous visualisez un commentaire unique de l'article"
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "Il est possible que la clé propriétaire d'un Hiveien soit compromise. Le processus de récupération de comptes dérobés est autorisé pour l'utilisateur de droit pendant 30 jours à partir du moment où le voleur a modifié la clé propriétaire. La récupération de comptes dérobés ne peut être utilisée sur %(APP_URL)s que si le propriétaire du compte a ajouté '%(APP_NAME)s'comme mandataire de confiance et accepté les conditions d'utilisation de %(APP_NAME)s."
+        "recover_account_intro": "Il est possible que la clé propriétaire d'un Hiveien soit compromise. Le processus de récupération de comptes dérobés est autorisé pour l'utilisateur de droit pendant 30 jours à partir du moment où le voleur a modifié la clé propriétaire. La récupération de comptes dérobés ne peut être utilisée sur %(APP_URL)s que si le propriétaire du compte a ajouté '%(APP_NAME)s'comme mandataire de confiance et accepté les conditions d'utilisation de %(APP_NAME)s."
     },
     "user_profile": {
         "unknown_account": "Compte inconnu",
-        "user_hasnt_made_any_posts_yet":
-            "Il semblerait que %(name)s n'ait pas encore publié d'article.",
-        "user_hasnt_started_bloggin_yet":
-            "Il semblerait que %(name)s n'ait pas encore commencer à blogger.",
-        "user_hasnt_followed_anything_yet":
-            "Il semblerait que %(name)s ne soit fan de personne. Dans le cas où %(name)s s'abonnerait au fil d'autres utilisateurs, son flux sera automatiquement rempli avec du nouveau contenu.",
-        "user_hasnt_had_any_replies_yet":
-            "%(name)s n'a pas encore reçu de réponse",
-        "looks_like_you_havent_posted_anything_yet":
-            "Looks like you haven't posted anything yet.",
+        "user_hasnt_made_any_posts_yet": "Il semblerait que %(name)s n'ait pas encore publié d'article.",
+        "user_hasnt_started_bloggin_yet": "Il semblerait que %(name)s n'ait pas encore commencer à blogger.",
+        "user_hasnt_followed_anything_yet": "Il semblerait que %(name)s ne soit fan de personne. Dans le cas où %(name)s s'abonnerait au fil d'autres utilisateurs, son flux sera automatiquement rempli avec du nouveau contenu.",
+        "user_hasnt_had_any_replies_yet": "%(name)s n'a pas encore reçu de réponse",
+        "looks_like_you_havent_posted_anything_yet": "Looks like you haven't posted anything yet.",
         "create_a_post": "Create a Post",
         "explore_trending_articles": "Explore Trending Articles",
         "read_the_quick_start_guide": "Read The Quick Start Guide",
         "browse_the_faq": "Browse The FAQ",
         "followers": "Followers",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "Ceci est le score de réputation de %(name)s. \n\nLe score de réputation est basé sur l'historique des votes reçus par l'utilisateur, et est utilisé pour masquer le contenu de basse qualité.",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "Ceci est le score de réputation de %(name)s. \n\nLe score de réputation est basé sur l'historique des votes reçus par l'utilisateur, et est utilisé pour masquer le contenu de basse qualité.",
         "follower_count": {
             "zero": "Pas de fans",
             "one": "1 fan",
@@ -413,20 +354,16 @@
         "show_all": "Show All"
     },
     "post_jsx": {
-        "now_showing_comments_with_low_ratings":
-            "Affichant à présent les commentaires de faible évaluation",
+        "now_showing_comments_with_low_ratings": "Affichant à présent les commentaires de faible évaluation",
         "sort_order": "Classer les ordres",
-        "comments_were_hidden_due_to_low_ratings":
-            "Certains commentaires sont masqués en raison de leur faible évaluation"
+        "comments_were_hidden_due_to_low_ratings": "Certains commentaires sont masqués en raison de leur faible évaluation"
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "Signaler un article peut diminuer ses gains potentiels et rendre son contenu moins visible. Quelques raisons usuelles pour signaler un article :",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "Signaler un article peut diminuer ses gains potentiels et rendre son contenu moins visible. Quelques raisons usuelles pour signaler un article :",
         "disagreement_on_rewards": "Désaccord sur les gains",
         "fraud_or_plagiarism": "Fraude ou plagiarisme",
         "hate_speech_or_internet_trolling": "Discours haineux ou troll",
-        "intentional_miss_categorized_content_or_spam":
-            "Contenu catégorisé incorrectement de façon intentionnelle ou spam",
+        "intentional_miss_categorized_content_or_spam": "Contenu catégorisé incorrectement de façon intentionnelle ou spam",
         "pending_payout": "%(value)s$ de gains en suspens",
         "payout_declined": "Gains refusés",
         "max_accepted_payout": "%(value)s$ de gains maximum acceptés",
@@ -434,8 +371,7 @@
         "past_payouts": "Gains antérieurs: %(value)s$",
         "past_payouts_author": "- Auteur: %(value)s$",
         "past_payouts_curators": "Curateurs: %(value)s$",
-        "we_will_reset_curation_rewards_for_this_post":
-            "cela annulera vos potentiels gains de curation pour cet article",
+        "we_will_reset_curation_rewards_for_this_post": "cela annulera vos potentiels gains de curation pour cet article",
         "removing_your_vote": "Enlever votre vote",
         "changing_to_an_upvote": "Modifier pour un vote positif",
         "changing_to_a_downvote": "Modifier pour un vote négatif",
@@ -447,8 +383,7 @@
         }
     },
     "votesandcomments_jsx": {
-        "no_responses_yet_click_to_respond":
-            "Pas encore de réponse. Cliquez ici pour répondre.",
+        "no_responses_yet_click_to_respond": "Pas encore de réponse. Cliquez ici pour répondre.",
         "response_count_tooltip": {
             "zero": "Pas de réponse. Cliquez ici pour répondre.",
             "one": "1 réponse. Cliquez ici pour répondre.",
@@ -465,69 +400,46 @@
         "private": "Privé",
         "public_something_key": "Clé publique  %(key)s",
         "private_something_key": "Clé privée %(key)s",
-        "posting_key_is_required_it_should_be_different":
-            "Le clé de publication est utilisée pour publier et voter. Elle devrait être différente des clés active et propriétaire.",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "La clé active est utilisée pour effectuer des transferts et des placer des ordres sur le marché interne.",
-        "the_owner_key_is_required_to_change_other_keys":
-            "La clé propriétaire est la clé principale du compte et est requise pour changer les autres clés.",
-        "the_private_key_or_password_should_be_kept_offline":
-            "La clé privée, ou le mot de passe pour la clé propriétaire, devrait être gardée hors ligne autant que possible.",
-        "the_memo_key_is_used_to_create_and_read_memos":
-            "La clé pour les notes est utilisée pour créer et lire des notes."
+        "posting_key_is_required_it_should_be_different": "Le clé de publication est utilisée pour publier et voter. Elle devrait être différente des clés active et propriétaire.",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "La clé active est utilisée pour effectuer des transferts et des placer des ordres sur le marché interne.",
+        "the_owner_key_is_required_to_change_other_keys": "La clé propriétaire est la clé principale du compte et est requise pour changer les autres clés.",
+        "the_private_key_or_password_should_be_kept_offline": "La clé privée, ou le mot de passe pour la clé propriétaire, devrait être gardée hors ligne autant que possible.",
+        "the_memo_key_is_used_to_create_and_read_memos": "La clé pour les notes est utilisée pour créer et lire des notes."
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)s ne peut pas récupérer de mots de passe. Veuille garder une trace de cette page en lieu sûr, comme un coffre fort ininflammable et sécuritaire.",
-        "APP_NAME_password_backup":
-            "Sauvegarde de mot de passe pour  %(APP_NAME)s",
-        "APP_NAME_password_backup_required":
-            "Sauvegarde de mot de passe pour %(APP_NAME)s (requis)",
-        "after_printing_write_down_your_user_name":
-            "Après impression, veuillez indiquer votre identifiant"
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)s ne peut pas récupérer de mots de passe. Veuille garder une trace de cette page en lieu sûr, comme un coffre fort ininflammable et sécuritaire.",
+        "APP_NAME_password_backup": "Sauvegarde de mot de passe pour  %(APP_NAME)s",
+        "APP_NAME_password_backup_required": "Sauvegarde de mot de passe pour %(APP_NAME)s (requis)",
+        "after_printing_write_down_your_user_name": "Après impression, veuillez indiquer votre identifiant"
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "Vos %(DEBT_TOKEN)s existants sont en liquide et donc transférable. Vous pouvez par exemple ėchanger %(DEBT_TOKEN)s directement sur ce site via le lien %(link)s, ou les transférer vers un marché externe.",
-        "this_is_a_price_feed_conversion":
-            "Il s'agit d'une conversion au taux du marché. Le délais de 3.5 jours est nécessaire afin d'éviter les abus de ceux qui tenterait de parier sur les modifications à court terme du taux du marché moyen.",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "Vos %(DEBT_TOKEN)s existants sont en liquide et donc transférable. Vous pouvez par exemple ėchanger %(DEBT_TOKEN)s directement sur ce site via le lien %(link)s, ou les transférer vers un marché externe.",
+        "this_is_a_price_feed_conversion": "Il s'agit d'une conversion au taux du marché. Le délais de 3.5 jours est nécessaire afin d'éviter les abus de ceux qui tenterait de parier sur les modifications à court terme du taux du marché moyen.",
         "convert_to_LIQUID_TOKEN": "Convertir en %(LIQUID_TOKEN)s",
-        "DEBT_TOKEN_will_be_unavailable":
-            "Cette action aura lieu dans 3.5 jours et ne peut être annulée. Ces %(DEBT_TOKEN)s deviendront immédiatement non disponibles."
+        "DEBT_TOKEN_will_be_unavailable": "Cette action aura lieu dans 3.5 jours et ne peut être annulée. Ces %(DEBT_TOKEN)s deviendront immédiatement non disponibles."
     },
     "tips_js": {
-        "liquid_token":
-            "Des jetons négociables peuvent être transférés n'importe où à tout moment. <br/> %(LIQUID_TOKEN)s peuvent être convertis en %(VESTING_TOKEN)s lors d'un processus appelé conversion en influence, ou power up.",
-        "influence_token":
-            "Jetons d'influence qui vous donnent plus de contrôle sur les gains potentiels des articles et vous permettent d'augmenter vos gains de curation",
-        "estimated_value":
-            "La valeur estimée est basée sur la valeur moyenne de %(LIQUID_TOKEN)s en dollars américains.",
-        "non_transferable":
-            "%(VESTING_TOKEN)s est non transférable et demande 3 mois (13 paiements) pour être convertis en %(LIQUID_TOKEN)s. ",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "Les %(VESTING_TOKEN)s convertis peuvent être envoyés soit à vous, soit à quelqu'un d'autre, mais ne peuvent pas être transférés à nouveau sans être convertis en %(LIQUID_TOKEN)s.",
-        "part_of_your_hive_power_is_currently_delegated":
-            "Une partie de votre influence, ou HIVE POWER, est actuellement déléguée. La délégation est un don pour augmenter l'influence ou pour encourager les nouveaux utilisateurs à effectuer des actions sur Hive. Le montant délégué peut varier."
+        "liquid_token": "Des jetons négociables peuvent être transférés n'importe où à tout moment. <br/> %(LIQUID_TOKEN)s peuvent être convertis en %(VESTING_TOKEN)s lors d'un processus appelé conversion en influence, ou power up.",
+        "influence_token": "Jetons d'influence qui vous donnent plus de contrôle sur les gains potentiels des articles et vous permettent d'augmenter vos gains de curation",
+        "estimated_value": "La valeur estimée est basée sur la valeur moyenne de %(LIQUID_TOKEN)s en dollars américains.",
+        "non_transferable": "%(VESTING_TOKEN)s est non transférable et demande 3 mois (13 paiements) pour être convertis en %(LIQUID_TOKEN)s. ",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "Les %(VESTING_TOKEN)s convertis peuvent être envoyés soit à vous, soit à quelqu'un d'autre, mais ne peuvent pas être transférés à nouveau sans être convertis en %(LIQUID_TOKEN)s.",
+        "part_of_your_hive_power_is_currently_delegated": "Une partie de votre influence, ou HIVE POWER, est actuellement déléguée. La délégation est un don pour augmenter l'influence ou pour encourager les nouveaux utilisateurs à effectuer des actions sur Hive. Le montant délégué peut varier."
     },
     "promote_post_jsx": {
         "promote_post": "Promouvoir un article",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "Dépenser vos %(DEBT_TOKEN)s pour afficher cet article dans la section contenant les articles promus. ",
-        "you_successfully_promoted_this_post":
-            "Vous avez promotionné cet article avec succès",
-        "this_post_was_hidden_due_to_low_ratings":
-            "Cet article est masqué en raison d'une faible évaluation."
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "Dépenser vos %(DEBT_TOKEN)s pour afficher cet article dans la section contenant les articles promus. ",
+        "you_successfully_promoted_this_post": "Vous avez promotionné cet article avec succès",
+        "this_post_was_hidden_due_to_low_ratings": "Cet article est masqué en raison d'une faible évaluation."
     },
     "about_jsx": {
         "about_app": "A propos de %(APP_NAME)s",
-        "about_app_details":
-            "%(APP_NAME)s est une plateforme de réseau social où les utilisateurs sont payés pour créer et effecter la curation du contenu. Elle influence un système de points digitaux, appelé Hive, qui ont une valeur réelle en fonction des prix du marché et des liquidités disponibles.",
+        "about_app_details": "%(APP_NAME)s est une plateforme de réseau social où les utilisateurs sont payés pour créer et effecter la curation du contenu. Elle influence un système de points digitaux, appelé Hive, qui ont une valeur réelle en fonction des prix du marché et des liquidités disponibles.",
         "learn_more_at_app_url": "Plus d'informations à %(APP_URL)s",
         "resources": "Ressources"
     },
     "markdownviewer_jsx": {
-        "images_were_hidden_due_to_low_ratings":
-            "Les images sont masqués en raison d'une faible évaluation."
+        "images_were_hidden_due_to_low_ratings": "Les images sont masqués en raison d'une faible évaluation."
     },
     "postsummary_jsx": {
         "reblogged": "reblogé",
@@ -539,10 +451,8 @@
         "to_save_your_preferences": "Pour enregistrer vos préférences"
     },
     "posts_index": {
-        "empty_feed_1":
-            "Il semblerait que vous ne vous êtes abonné(e) à aucun fil pour le moment",
-        "empty_feed_2":
-            "Si vous vous êtes récemment abonné(e) au fil de nouveaux utilisateurs, votre flux personnel sera automatiquement rempli lorsque du nouveau contenu apparaîtra",
+        "empty_feed_1": "Il semblerait que vous ne vous êtes abonné(e) à aucun fil pour le moment",
+        "empty_feed_2": "Si vous vous êtes récemment abonné(e) au fil de nouveaux utilisateurs, votre flux personnel sera automatiquement rempli lorsque du nouveau contenu apparaîtra",
         "empty_feed_3": "Explorer les articles en vogue",
         "empty_feed_4": "Lire le guide de prise en main rapide",
         "empty_feed_5": "Parcourir la FAQ",
@@ -567,47 +477,33 @@
         "comments_by": "Commentaires de"
     },
     "loginform_jsx": {
-        "you_need_a_private_password_or_key":
-            "Il vous faut un mot de passe ou une clé privé (pas une clé publique)",
+        "you_need_a_private_password_or_key": "Il vous faut un mot de passe ou une clé privé (pas une clé publique)",
         "cryptography_test_failed": "Le test de cryptographie a échoué",
-        "unable_to_log_you_in":
-            "Nous sommes incapables de vous identifier avec ce navigateur.",
+        "unable_to_log_you_in": "Nous sommes incapables de vous identifier avec ce navigateur.",
         "the_latest_versions_of": "Les dernières versions de",
-        "are_well_tested_and_known_to_work_with":
-            "sont bien testées et connues pour fonctionner avec %(APP_URL)s.",
-        "due_to_server_maintenance":
-            "En raison de la maintenance des serveurs, nous opérons en mode 'lecture seule'. Nous nous excusons des désagréments. ",
+        "are_well_tested_and_known_to_work_with": "sont bien testées et connues pour fonctionner avec %(APP_URL)s.",
+        "due_to_server_maintenance": "En raison de la maintenance des serveurs, nous opérons en mode 'lecture seule'. Nous nous excusons des désagréments. ",
         "login_to_vote": "S'identifier pour voter",
         "login_to_post": "S'identifier pour publier",
         "login_to_comment": "S'identifier pour commenter",
         "posting": "de publication",
         "active_or_owner": "Active ou propriétaire",
-        "this_password_is_bound_to_your_account_owner_key":
-            "Ce mot de passe est lié à votre clé propriétaire et ne peut pas être utilisé pour vous identifier sur ce site.",
+        "this_password_is_bound_to_your_account_owner_key": "Ce mot de passe est lié à votre clé propriétaire et ne peut pas être utilisé pour vous identifier sur ce site.",
         "however_you_can_use_it_to": "Cependant, vous pouvez l'utiliser pour ",
         "update_your_password": "Mettre à jour votre mot de passe",
-        "to_obtain_a_more_secure_set_of_keys":
-            "Pour obtenir un jeu de clés plus sûr.",
-        "this_password_is_bound_to_your_account_active_key":
-            "Ce mot de passe est lié à la clé active de votre compte et ne peut pas être utilisé pour vous connecter à cette page.",
-        "you_may_use_this_active_key_on_other_more":
-            "Vous pouvez utiliser cette clé active sur d'autres pages plus sécurisées comme les pages 'Portefeuille' ou 'Marché'.",
-        "you_account_has_been_successfully_created":
-            "Votre compte a été créé avec succès!",
-        "you_account_has_been_successfully_recovered":
-            "Votre compte a été récupéré avec succès!",
-        "password_update_succes":
-            "Le mot de passe pour%(accountName)sa été mis à jour avec succès.",
-        "password_info":
-            "Ce mot de passe ou clé privée est incorrect. Il y a probablement une erreur d'écriture ou d'entrée des données. Indication : un mot de passe ou une clé privée générée par Hive ne contiendra jamais aucun 0 (zéro), O (o majuscule), I (i majuscule) ou l (l minuscule).",
+        "to_obtain_a_more_secure_set_of_keys": "Pour obtenir un jeu de clés plus sûr.",
+        "this_password_is_bound_to_your_account_active_key": "Ce mot de passe est lié à la clé active de votre compte et ne peut pas être utilisé pour vous connecter à cette page.",
+        "you_may_use_this_active_key_on_other_more": "Vous pouvez utiliser cette clé active sur d'autres pages plus sécurisées comme les pages 'Portefeuille' ou 'Marché'.",
+        "you_account_has_been_successfully_created": "Votre compte a été créé avec succès!",
+        "you_account_has_been_successfully_recovered": "Votre compte a été récupéré avec succès!",
+        "password_update_succes": "Le mot de passe pour%(accountName)sa été mis à jour avec succès.",
+        "password_info": "Ce mot de passe ou clé privée est incorrect. Il y a probablement une erreur d'écriture ou d'entrée des données. Indication : un mot de passe ou une clé privée générée par Hive ne contiendra jamais aucun 0 (zéro), O (o majuscule), I (i majuscule) ou l (l minuscule).",
         "enter_your_username": "Entrez votre nom d'utilisateur",
         "password_or_wif": "Mot de passe ou WIF",
-        "this_operation_requires_your_key_or_master_password":
-            "Cette opération nécessite votre clé %(authType)s ou votre mot de passe principal.",
+        "this_operation_requires_your_key_or_master_password": "Cette opération nécessite votre clé %(authType)s ou votre mot de passe principal.",
         "keep_me_logged_in": "Gardez-moi connecté",
         "amazing_community": "communauté extraordinaire",
-        "to_comment_and_reward_others":
-            " pour commenter et récompenser les autres.",
+        "to_comment_and_reward_others": " pour commenter et récompenser les autres.",
         "sign_up_get_hive": "Sign up. Get HIVE",
         "signup_button": "Sign up now to earn ",
         "signup_button_emphasis": "FREE HIVE!",
@@ -624,12 +520,10 @@
         "be_shorter": "être plus court.",
         "each_account_segment_should": "Chaque segment de compte devrait",
         "start_with_a_letter": "commencer par une lettre.",
-        "have_only_letters_digits_or_dashes":
-            "ne comporter que des lettres, des chiffres ou des traits d'union.",
+        "have_only_letters_digits_or_dashes": "ne comporter que des lettres, des chiffres ou des traits d'union.",
         "have_only_one_dash_in_a_row": "n'avoir qu'un seul trait d'union.",
         "end_with_a_letter_or_digit": "terminer par une lettre ou un chiffre.",
-        "verified_exchange_no_memo":
-            "Vous devez inclure un mémo pour votre transfert vers un marché d'échanges."
+        "verified_exchange_no_memo": "Vous devez inclure un mémo pour votre transfert vers un marché d'échanges."
     },
     "settings_jsx": {
         "invalid_url": "L'URL est invalide",
@@ -640,8 +534,7 @@
         "website_url_is_too_long": "L'URL du site web est trop longue",
         "public_profile_settings": "Paramètres du profil public",
         "preferences": "Paramètres de l'affichage des messages privés",
-        "not_safe_for_work_nsfw_content":
-            "Peu approprié pour le travail (NSFW)",
+        "not_safe_for_work_nsfw_content": "Peu approprié pour le travail (NSFW)",
         "always_hide": "Toujours masquer",
         "always_warn": "Toujours avertir",
         "always_show": "Toujours montrer",
@@ -660,41 +553,29 @@
         "remove": "Retirer",
         "add_api_endpoint": "Ajouter un point de terminaison d'API",
         "reset_endpoints": "Réinitialiser les points de terminaison",
-        "error_bad_url":
-            "Cela semble être une mauvaise URL, veuillez la vérifier et réessayer",
-        "error_bad_cookie":
-            "Impossible d'obtenir les points de terminaison à partir du cookie",
-        "error_already_exists":
-            "Ce point de terminaison est déjà dans la liste",
-        "error_cant_remove_active":
-            "Vous ne pouvez pas supprimer le point de terminaison préféré actuel. Veuillez d'abord sélectionner un nouveau point de terminaison préféré",
-        "error_cant_remove_all":
-            "Vous devez avoir au moins un point de terminaison dans la liste"
+        "error_bad_url": "Cela semble être une mauvaise URL, veuillez la vérifier et réessayer",
+        "error_bad_cookie": "Impossible d'obtenir les points de terminaison à partir du cookie",
+        "error_already_exists": "Ce point de terminaison est déjà dans la liste",
+        "error_cant_remove_active": "Vous ne pouvez pas supprimer le point de terminaison préféré actuel. Veuillez d'abord sélectionner un nouveau point de terminaison préféré",
+        "error_cant_remove_all": "Vous devez avoir au moins un point de terminaison dans la liste"
     },
     "transfer_jsx": {
         "amount_is_in_form": "Montant dans le format 99999.999",
         "insufficient_funds": "Fonds insuffisants",
-        "use_only_3_digits_of_precison":
-            "Utiliser au maximum 3 décimales pour la précision",
+        "use_only_3_digits_of_precison": "Utiliser au maximum 3 décimales pour la précision",
         "send_to_account": "Envoyer au compte",
         "asset": "Actif",
         "this_memo_is_private": "Ce mémo est privé",
         "this_memo_is_public": "Ce mémo est public",
         "convert_to_VESTING_TOKEN": "Convertir en %(VESTING_TOKEN)s",
-        "balance_subject_to_3_day_withdraw_waiting_period":
-            "Le solde dépend de la période de 3 jours d'attente requise pour les retraits",
-        "move_funds_to_another_account":
-            "Transférer des fonds vers un autre compte Hive ",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "Protéger les fonds en imposant une période de latence de 3 jours pour les retraits.",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "Retirer les fonds après la période de 3 jours de latence requise",
+        "balance_subject_to_3_day_withdraw_waiting_period": "Le solde dépend de la période de 3 jours d'attente requise pour les retraits",
+        "move_funds_to_another_account": "Transférer des fonds vers un autre compte Hive ",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "Protéger les fonds en imposant une période de latence de 3 jours pour les retraits.",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "Retirer les fonds après la période de 3 jours de latence requise",
         "from": "De",
         "to": "A",
-        "asset_currently_collecting":
-            "%(asset)s collectant actuellement %(interest)s %% d'APR.",
-        "beware_of_spam_and_phishing_links":
-            "Beware of spam and phishing links in transfer memos. Do not open links from users you do not trust. Do not provide your private keys to any third party websites."
+        "asset_currently_collecting": "%(asset)s collectant actuellement %(interest)s %% d'APR.",
+        "beware_of_spam_and_phishing_links": "Beware of spam and phishing links in transfer memos. Do not open links from users you do not trust. Do not provide your private keys to any third party websites."
     },
     "userwallet_jsx": {
         "conversion_complete_tip": "S'achèvera le",
@@ -706,26 +587,20 @@
         "convert_to_LIQUID_TOKEN": "Convertir en %(LIQUID_TOKEN)s",
         "withdraw_LIQUID_TOKEN": "Retirer %(LIQUID_TOKEN)s",
         "withdraw_DEBT_TOKENS": "Retirer %(DEBT_TOKENS)s",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "Des jetons d'environ 1.00$ de %(LIQUID_TICKER)s, actuellement donnant lieu à %(hbdInterest)s %% d'APR.",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "Des jetons d'environ 1.00$ de %(LIQUID_TICKER)s, actuellement donnant lieu à %(hbdInterest)s %% d'APR.",
         "savings": "EPARGNE",
         "estimated_account_value": "Valeur estimée du compte",
-        "next_power_down_is_scheduled_to_happen":
-            "Le prochain retrait d'influence, ou power down, est prévu dans ",
-        "transfers_are_temporary_disabled":
-            "Les transferts sont temporairement désactivés.",
+        "next_power_down_is_scheduled_to_happen": "Le prochain retrait d'influence, ou power down, est prévu dans ",
+        "transfers_are_temporary_disabled": "Les transferts sont temporairement désactivés.",
         "history": "HISTORIQUE",
         "redeem_rewards": "Réclamer les gains (transférer vers le solde)",
         "buy_hive_or_hive_power": "Acheter du HIVE ou du HIVE POWER"
     },
     "checkloginowner_jsx": {
-        "your_password_permissions_were_reduced":
-            "Les permissions de votre mot de passe ont été réduites",
-        "if_you_did_not_make_this_change":
-            "Si vous n'avez pas fait ce changement, veuillez s'il-vous-plaît",
+        "your_password_permissions_were_reduced": "Les permissions de votre mot de passe ont été réduites",
+        "if_you_did_not_make_this_change": "Si vous n'avez pas fait ce changement, veuillez s'il-vous-plaît",
         "ownership_changed_on": "Changement de propriétaire à compter du ",
         "deadline_for_recovery_is": "La date limite de récupération est",
-        "i_understand_dont_show_again":
-            "J'ai compris, ne me le montrez plus jamais"
+        "i_understand_dont_show_again": "J'ai compris, ne me le montrez plus jamais"
     }
 }
diff --git a/src/app/locales/it.json b/src/app/locales/it.json
index bdb64df9427df29ee6d85a0deb321ffece71ed61..dcf314b949742672178f5cb8c526da7cb89423c6 100644
--- a/src/app/locales/it.json
+++ b/src/app/locales/it.json
@@ -55,8 +55,7 @@
         "password": "Password",
         "payouts": "Pagamenti",
         "permissions": "Permessi",
-        "phishy_message":
-            "Link expanded to plain text; beware of a potential phishing attempt",
+        "phishy_message": "Link expanded to plain text; beware of a potential phishing attempt",
         "post": "Post",
         "post_as": "Pubblica come",
         "posts": "Posts",
@@ -126,89 +125,63 @@
         "account_name": "Nome Account",
         "recover_your_account": "recupera il tuo account",
         "reset_usernames_password": "Resetta la password di %(username)s",
-        "this_will_update_usernames_authtype_key":
-            "Questo aggiornerà la  %(authType)s key di %(username)s ",
+        "this_will_update_usernames_authtype_key": "Questo aggiornerà la  %(authType)s key di %(username)s ",
         "passwords_do_not_match": "Le password non corrispondono",
-        "you_need_private_password_or_key_not_a_public_key":
-            "Hai bisogno di una password privata o di una chiave (non di una chiave pubblica)",
+        "you_need_private_password_or_key_not_a_public_key": "Hai bisogno di una password privata o di una chiave (non di una chiave pubblica)",
         "the_rules_of_APP_NAME": {
-            "one":
-                "La prima regola di %(APP_NAME)sè: Non perdere la tua password.",
-            "second":
-                "La seconda regola di %(APP_NAME)s è: Non perdere la tua password.",
-            "third":
-                "La terza regola di %(APP_NAME)s è: Non possiamo recuperare la tua password.",
-            "fourth":
-                "La quarta regola è: Se puoi ricordare la password, non è sicura.",
-            "fifth":
-                "La quinta regola è: Usa solo password generate in modo casuale.",
+            "one": "La prima regola di %(APP_NAME)sè: Non perdere la tua password.",
+            "second": "La seconda regola di %(APP_NAME)s è: Non perdere la tua password.",
+            "third": "La terza regola di %(APP_NAME)s è: Non possiamo recuperare la tua password.",
+            "fourth": "La quarta regola è: Se puoi ricordare la password, non è sicura.",
+            "fifth": "La quinta regola è: Usa solo password generate in modo casuale.",
             "sixth": "La sesta regola è: Non dire a nessuno la tua password.",
             "seventh": "La settima regola è: Salva sempre la tua password."
         },
         "recover_password": "Recupera Account",
         "current_password": "Password attuale",
         "generated_password": "Password generata",
-        "backup_password_by_storing_it":
-            "Effettua il backup copiando la password in un file di testo o in un gestore di password. ",
-        "enter_account_show_password":
-            "Inserisci un nome account valido per visualizzare la password",
+        "backup_password_by_storing_it": "Effettua il backup copiando la password in un file di testo o in un gestore di password. ",
+        "enter_account_show_password": "Inserisci un nome account valido per visualizzare la password",
         "click_to_generate_password": "Clicca per generare una password",
         "re_enter_generate_password": "Inserisci di nuovo la Password Generata",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "Ho capito che %(APP_NAME)s non può recuperare le password perse",
-        "i_saved_password":
-            "Ho salvato in modo sicuro la mia password generata automaticamente",
+        "understand_that_APP_NAME_cannot_recover_password": "Ho capito che %(APP_NAME)s non può recuperare le password perse",
+        "i_saved_password": "Ho salvato in modo sicuro la mia password generata automaticamente",
         "update_password": "Aggiorna la password",
         "confirm_password": "Conferma la password",
         "account_updated": "Account aggiornato",
-        "password_must_be_characters_or_more":
-            "La password deve essere lunga %(amount)s caratteri o più",
-        "need_password_or_key":
-            "Hai bisogno di una password o di una chiave privata  (non una chiave pubblica)",
+        "password_must_be_characters_or_more": "La password deve essere lunga %(amount)s caratteri o più",
+        "need_password_or_key": "Hai bisogno di una password o di una chiave privata  (non una chiave pubblica)",
         "login_to_see_memo": "Esegui il login per visualizzare la memo",
         "new_password": "Nuova password",
         "incorrect_password": "Password errata",
         "username_does_not_exist": "Il nome utente non esiste",
-        "account_name_should_start_with_a_letter":
-            "Il nome dell'account deve iniziare con una lettera.",
-        "account_name_should_be_shorter":
-            "Il nome dell'account deve essere più corto.",
-        "account_name_should_be_longer":
-            "Il nome dell'account deve essere più lungo.",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "Il nome account deve essere composto solo da lettere, cifre, punti o trattini.",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "Non è possibile aumentare le ricompense del post durante l'ultimo minuto prima del pagamento",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "è possibile utilizzare un solo Hive account per indirizzo IP ogni 10 minuti",
+        "account_name_should_start_with_a_letter": "Il nome dell'account deve iniziare con una lettera.",
+        "account_name_should_be_shorter": "Il nome dell'account deve essere più corto.",
+        "account_name_should_be_longer": "Il nome dell'account deve essere più lungo.",
+        "account_name_should_have_only_letters_digits_or_dashes": "Il nome account deve essere composto solo da lettere, cifre, punti o trattini.",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "Non è possibile aumentare le ricompense del post durante l'ultimo minuto prima del pagamento",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "è possibile utilizzare un solo Hive account per indirizzo IP ogni 10 minuti",
         "reblog_this_post": "Fai il reblog di questo post",
         "reblog": "Reblog",
         "write_your_story": "Scrivi la tua storia",
-        "remember_voting_and_posting_key":
-            "Ricorda la chiave di voto e di pubblicazione",
+        "remember_voting_and_posting_key": "Ricorda la chiave di voto e di pubblicazione",
         "auto_login_question_mark": "Accesso automatico?",
         "hide_private_key": "Nascondi la chiave privata",
         "show_private_key": "Mostra la chiave privata",
         "login_to_show": "Esegui il login per mostrare",
         "not_valid_email": "Email non valida",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "Ti ringraziamo per essere uno dei primi visitatori di %(APP_NAME)s. Sarai ricontattato il prima possibile. ",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "Ti ringraziamo per essere uno dei primi visitatori di %(APP_NAME)s. Sarai ricontattato il prima possibile. ",
         "author_rewards": "Ricompense da autore",
         "curation_rewards": "Ricompense da curatore",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "Purtroppo il tuo account Reddit non possiede abbastanza Reddit Karma per essere usato per la registrazione gratuita. Aggiungi per favore la tua email per ottenere un posto in lista d'attesa.",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "Purtroppo il tuo account Reddit non possiede abbastanza Reddit Karma per essere usato per la registrazione gratuita. Aggiungi per favore la tua email per ottenere un posto in lista d'attesa.",
         "register_with_facebook": "Registrati con Facebook",
-        "or_click_the_button_below_to_register_with_facebook":
-            "O premi il pulsante sottostante per registrarti con Facebook",
+        "or_click_the_button_below_to_register_with_facebook": "O premi il pulsante sottostante per registrarti con Facebook",
         "server_returned_error": "Errore del server",
         "APP_NAME_support": "Supporto %(APP_NAME)s",
-        "please_email_questions_to":
-            "Per piacere invia le tue domande tramite email a",
+        "please_email_questions_to": "Per piacere invia le tue domande tramite email a",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "Gli autori ricevono un compenso quando gli utenti come te votano il loro post. ",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "Se ti piace quello che hai letto, crea il tuo account oggi e inizia ricevendo HIVE GRATIS!",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "Gli autori ricevono un compenso quando gli utenti come te votano il loro post. ",
+            "if_you_enjoyed_what_you_read_earn_amount": "Se ti piace quello che hai letto, crea il tuo account oggi e inizia ricevendo HIVE GRATIS!",
             "free_hive": "HIVE GRATIS!",
             "sign_up_earn_hive": "Registrati adesso per guadagnare"
         },
@@ -217,8 +190,7 @@
             "show_less": "Mostra di meno",
             "value_posts": "post di basso valore"
         },
-        "read_only_mode":
-            "Server in manutenzione, modalità sola lettura attiva. Ci scusiamo per l'inconveniente.",
+        "read_only_mode": "Server in manutenzione, modalità sola lettura attiva. Ci scusiamo per l'inconveniente.",
         "tags_and_topics": "Tag e argomenti",
         "show_more_topics": "Vedi più argomenti",
         "basic": "Base",
@@ -234,10 +206,8 @@
             "other": "%(count)s Risposte"
         },
         "post_key_warning": {
-            "confirm":
-                "You are about to publish a HIVE private key or master password. You will probably lose control of the associated account and all its funds.",
-            "warning":
-                "Legitimate users, including employees of Hive, will never ask you for a private key or master password.",
+            "confirm": "You are about to publish a HIVE private key or master password. You will probably lose control of the associated account and all its funds.",
+            "warning": "Legitimate users, including employees of Hive, will never ask you for a private key or master password.",
             "checkbox": "I understand"
         }
     },
@@ -266,8 +236,7 @@
         "smt_whitepaper": "SMT Whitepaper",
         "whitepaper": "Hive Whitepaper",
         "intro_tagline": "Il denaro parla",
-        "intro_paragraph":
-            "La tua voce vale qualcosa. Entra nella community che ti paga per pubblicare e curare contenuti di alta qualità.",
+        "intro_paragraph": "La tua voce vale qualcosa. Entra nella community che ti paga per pubblicare e curare contenuti di alta qualità.",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
         "what_is_hive": "What is Hive?"
@@ -280,23 +249,19 @@
         "shorten_title": "Titolo breve",
         "exceeds_maximum_length": "Supera la grandezza massima (%(maxKb)sKB)",
         "including_the_category": " (inclusa la categoria '%(rootCategory)s')",
-        "use_limited_amount_of_tags":
-            "Hai %(tagsLength)s tag in totale %(includingCategory)s. Usane solo 5 nel tuo post e nella linea delle categorie.",
-        "are_you_sure_you_want_to_clear_this_form":
-            "Sicuro di voler cancellare questo form?",
+        "use_limited_amount_of_tags": "Hai %(tagsLength)s tag in totale %(includingCategory)s. Usane solo 5 nel tuo post e nella linea delle categorie.",
+        "are_you_sure_you_want_to_clear_this_form": "Sicuro di voler cancellare questo form?",
         "uploading": "Caricamento",
         "draft_saved": "Bozza salvata",
         "editor": "Editor",
-        "insert_images_by_dragging_dropping":
-            "Per inserire le immagini, trascinale qui",
+        "insert_images_by_dragging_dropping": "Per inserire le immagini, trascinale qui",
         "pasting_from_the_clipboard": "incollando dagli appunti,",
         "selecting_them": "selezionandole. ",
         "image_upload": "Carica immagine",
         "power_up_100": "Power Up 100%%",
         "default_50_50": "50%% / 50%%",
         "decline_payout": "Rinuncia al pagamento",
-        "check_this_to_auto_upvote_your_post":
-            "Clicca qui per effettuare l'upvote automatico del tuo post",
+        "check_this_to_auto_upvote_your_post": "Clicca qui per effettuare l'upvote automatico del tuo post",
         "markdown_styling_guide": "Guida di stile Markdown",
         "or_by": "o da",
         "title": "Titolo",
@@ -311,71 +276,54 @@
         "exceeds_max_beneficiaries": "Can have at most 8 beneficiaries",
         "beneficiary_cannot_be_self": "Cannot specify self as beneficiary",
         "beneficiary_cannot_be_duplicate": "Beneficiary cannot be duplicate",
-        "beneficiary_percent_invalid":
-            "Beneficiary percentage must be from 1-100",
-        "beneficiary_percent_total_invalid":
-            "Beneficiary total percentage must be less than 100"
+        "beneficiary_percent_invalid": "Beneficiary percentage must be from 1-100",
+        "beneficiary_percent_total_invalid": "Beneficiary total percentage must be less than 100"
     },
     "category_selector_jsx": {
-        "tag_your_story":
-            "Tag (massimo 5). Il primo tag è la categoria principale. ",
+        "tag_your_story": "Tag (massimo 5). Il primo tag è la categoria principale. ",
         "select_a_tag": "Seleziona un tag",
-        "maximum_tag_length_is_24_characters":
-            "La lunghezza massima di un tag è 24 caratteri",
-        "use_limited_amount_of_categories":
-            "Utilizzare solo %(amount)s categorie",
+        "maximum_tag_length_is_24_characters": "La lunghezza massima di un tag è 24 caratteri",
+        "use_limited_amount_of_categories": "Utilizzare solo %(amount)s categorie",
         "use_only_lowercase_letters": "Usa solo caratteri minuscoli",
         "use_one_dash": "Usa solo un trattino",
         "use_spaces_to_separate_tags": "Usa gli spazi per separare i tag",
-        "use_only_allowed_characters":
-            "Usa solo lettere minuscole, cifre e un trattino",
+        "use_only_allowed_characters": "Usa solo lettere minuscole, cifre e un trattino",
         "must_start_with_a_letter": "Deve iniziare con una lettera",
-        "must_end_with_a_letter_or_number":
-            "Deve terminare con una lettera o un numero"
+        "must_end_with_a_letter_or_number": "Deve terminare con una lettera o un numero"
     },
     "post_advanced_settings_jsx": {
         "payout_option_header": "Author rewards",
-        "payout_option_description":
-            "What type of tokens do you want as rewards from this post?",
+        "payout_option_description": "What type of tokens do you want as rewards from this post?",
         "current_default": "Default",
         "update_default_in_settings": "Update"
     },
     "postfull_jsx": {
-        "this_post_is_not_available_due_to_a_copyright_claim":
-            "Questo post non è disponibile per violazione del copyright.",
+        "this_post_is_not_available_due_to_a_copyright_claim": "Questo post non è disponibile per violazione del copyright.",
         "share_on_facebook": "Condividi su Facebook",
         "share_on_twitter": "Condividi su Twitter",
         "share_on_linkedin": "Condividi su Linkedin",
         "recent_password": "Password recente",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "In 3,5 giorni, converti %(amount)s%(DEBT_TOKEN)s in %(LIQUID_TOKEN)s",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "In 3,5 giorni, converti %(amount)s%(DEBT_TOKEN)s in %(LIQUID_TOKEN)s",
         "view_the_full_context": "Vedi il contesto completo",
         "view_the_direct_parent": "Visualizza il collegamento diretto",
-        "you_are_viewing_a_single_comments_thread_from":
-            "Stai visualizzando il commento singolo di un thread di "
+        "you_are_viewing_a_single_comments_thread_from": "Stai visualizzando il commento singolo di un thread di "
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "Può succedere che ogni tanto la chiave personale di un membro di Hive possa essere compromessa. La funzione \"Recupera account rubato\" dà 30 giorni al legittimo proprietario dell'account per recuperarlo dal momento in cui il ladro cambia la chiave personale. \"Recupera account rubato\" può essere usato solo su %(APP_URL)s se il proprietario dell'account ha precedentemente inserito %(APP_NAME)s come account fidato e accettato i Termini di Servizio di %(APP_NAME)s."
+        "recover_account_intro": "Può succedere che ogni tanto la chiave personale di un membro di Hive possa essere compromessa. La funzione \"Recupera account rubato\" dà 30 giorni al legittimo proprietario dell'account per recuperarlo dal momento in cui il ladro cambia la chiave personale. \"Recupera account rubato\" può essere usato solo su %(APP_URL)s se il proprietario dell'account ha precedentemente inserito %(APP_NAME)s come account fidato e accettato i Termini di Servizio di %(APP_NAME)s."
     },
     "user_profile": {
         "unknown_account": "Account sconosciuto",
-        "user_hasnt_made_any_posts_yet":
-            "Sembra che %(name)snon abbia ancora pubblicato nessun post! ",
-        "user_hasnt_started_bloggin_yet":
-            "Sembra che %(name)s non abbia ancora iniziato a scrivere!",
-        "user_hasnt_followed_anything_yet":
-            "Sembra che %(name)snon stia seguendo ancora nessuno! Se %(name)sha aggiunto di recente nuovi utenti da seguire, il feed personalizzato si riempirà di contenuti non appena ce ne saranno di nuovi. ",
+        "user_hasnt_made_any_posts_yet": "Sembra che %(name)snon abbia ancora pubblicato nessun post! ",
+        "user_hasnt_started_bloggin_yet": "Sembra che %(name)s non abbia ancora iniziato a scrivere!",
+        "user_hasnt_followed_anything_yet": "Sembra che %(name)snon stia seguendo ancora nessuno! Se %(name)sha aggiunto di recente nuovi utenti da seguire, il feed personalizzato si riempirà di contenuti non appena ce ne saranno di nuovi. ",
         "user_hasnt_had_any_replies_yet": "%(name)s hasn't had any replies yet",
-        "looks_like_you_havent_posted_anything_yet":
-            "Looks like you haven't posted anything yet.",
+        "looks_like_you_havent_posted_anything_yet": "Looks like you haven't posted anything yet.",
         "create_a_post": "Create a Post",
         "explore_trending_articles": "Explore Trending Articles",
         "read_the_quick_start_guide": "Read The Quick Start Guide",
         "browse_the_faq": "Browse The FAQ",
         "followers": "Followers",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "Questo è il livello di reputazione di %(name)s. \n\nIl livello di reputazione si basa sulla storia dei voti ricevuti dall'account e viene utilizzato per nascondere contenuti di scarsa qualità. ",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "Questo è il livello di reputazione di %(name)s. \n\nIl livello di reputazione si basa sulla storia dei voti ricevuti dall'account e viene utilizzato per nascondere contenuti di scarsa qualità. ",
         "follower_count": {
             "zero": "Nessun follower",
             "one": "1 follower",
@@ -395,30 +343,24 @@
         "show_all": "Show All"
     },
     "post_jsx": {
-        "now_showing_comments_with_low_ratings":
-            "Commenti con voti bassi rivelati",
+        "now_showing_comments_with_low_ratings": "Commenti con voti bassi rivelati",
         "sort_order": "Ordinamento",
-        "comments_were_hidden_due_to_low_ratings":
-            "Commenti nascosti a causa del basso rating"
+        "comments_were_hidden_due_to_low_ratings": "Commenti nascosti a causa del basso rating"
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "Flaggare un post può rimuovere le ricompense e rendere questo materiale meno visibile. Alcune ragioni comuni per effettuare un flag sono",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "Flaggare un post può rimuovere le ricompense e rendere questo materiale meno visibile. Alcune ragioni comuni per effettuare un flag sono",
         "disagreement_on_rewards": "Disaccordo sulle ricompense",
         "fraud_or_plagiarism": "Frode o Plagio",
         "hate_speech_or_internet_trolling": "Incitamento all'odio o Trolling",
-        "intentional_miss_categorized_content_or_spam":
-            "Contenuto volutamente categorizzato impropriamente o spam",
+        "intentional_miss_categorized_content_or_spam": "Contenuto volutamente categorizzato impropriamente o spam",
         "pending_payout": "Pagamento in attesa $%(value)s",
         "payout_declined": "Pagamento Rifiutato",
-        "max_accepted_payout":
-            "Il pagamento massimo accettato è di %(value)s $",
+        "max_accepted_payout": "Il pagamento massimo accettato è di %(value)s $",
         "promotion_cost": "Costo della Promozione $%(value)s",
         "past_payouts": "Pagamenti precedenti di %(value)s $",
         "past_payouts_author": "- Autore %(value)s $",
         "past_payouts_curators": "- Curatori %(value)s $",
-        "we_will_reset_curation_rewards_for_this_post":
-            "sarà effettuato il reset delle ricompense del curatore in questo post. ",
+        "we_will_reset_curation_rewards_for_this_post": "sarà effettuato il reset delle ricompense del curatore in questo post. ",
         "removing_your_vote": "Rimuovi il tuo voto",
         "changing_to_an_upvote": "Cambia in un upvote",
         "changing_to_a_downvote": "Cambia in un downvote",
@@ -430,8 +372,7 @@
         }
     },
     "votesandcomments_jsx": {
-        "no_responses_yet_click_to_respond":
-            "Non c'è ancora nessuna risposta. Clicca per rispondere.",
+        "no_responses_yet_click_to_respond": "Non c'è ancora nessuna risposta. Clicca per rispondere.",
         "response_count_tooltip": {
             "zero": "Nessun commento. Clicca per commentare.",
             "one": "1 commento. Clicca per commentare.",
@@ -448,68 +389,46 @@
         "private": "Privato",
         "public_something_key": "%(key)sChiave Pubblica",
         "private_something_key": "%(key)sChiave Privata",
-        "posting_key_is_required_it_should_be_different":
-            "La chiave di pubblicazione si usa per pubblicare e votare. Dovrebbe essere diversa dalla chiave attiva e dalla chiave proprietaria. ",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "La chiave attiva si usa per effettuare trasferimenti e per piazzare ordini nel market interno. ",
-        "the_owner_key_is_required_to_change_other_keys":
-            "La chiave proprietaria è la chiave principale dell'account e serve a cambiare le altre chiavi. ",
-        "the_private_key_or_password_should_be_kept_offline":
-            "Raccomandiamo di conservare offline la chiave privata e la password della chiave proprietaria. ",
-        "the_memo_key_is_used_to_create_and_read_memos":
-            "La chiave memo si usa per creare e leggere i memo. "
+        "posting_key_is_required_it_should_be_different": "La chiave di pubblicazione si usa per pubblicare e votare. Dovrebbe essere diversa dalla chiave attiva e dalla chiave proprietaria. ",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "La chiave attiva si usa per effettuare trasferimenti e per piazzare ordini nel market interno. ",
+        "the_owner_key_is_required_to_change_other_keys": "La chiave proprietaria è la chiave principale dell'account e serve a cambiare le altre chiavi. ",
+        "the_private_key_or_password_should_be_kept_offline": "Raccomandiamo di conservare offline la chiave privata e la password della chiave proprietaria. ",
+        "the_memo_key_is_used_to_create_and_read_memos": "La chiave memo si usa per creare e leggere i memo. "
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)snon può recuperare la password. Conserva questa pagina in un luogo sicuro, come ad esempio una cassaforte o una cassetta di sicurezza. ",
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)snon può recuperare la password. Conserva questa pagina in un luogo sicuro, come ad esempio una cassaforte o una cassetta di sicurezza. ",
         "APP_NAME_password_backup": "Password Backup di %(APP_NAME)s",
-        "APP_NAME_password_backup_required":
-            "Password Backup di %(APP_NAME)s (richiesto)",
-        "after_printing_write_down_your_user_name":
-            "Dopo la stampa, scrivi il tuo nome utente. "
+        "APP_NAME_password_backup_required": "Password Backup di %(APP_NAME)s (richiesto)",
+        "after_printing_write_down_your_user_name": "Dopo la stampa, scrivi il tuo nome utente. "
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "I tuoi %(DEBT_TOKEN)s sono liquidi e trasferibili. Invece se desiderassi scambiare %(DEBT_TOKEN)s direttamente in questo sito su %(link)s o trasferirli su un mercato esterno.",
-        "this_is_a_price_feed_conversion":
-            "Questa è una conversione di prezzo. L'attesa di 3,5 giorni è necessaria per evitare di abusare della media dei prezzi.",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "I tuoi %(DEBT_TOKEN)s sono liquidi e trasferibili. Invece se desiderassi scambiare %(DEBT_TOKEN)s direttamente in questo sito su %(link)s o trasferirli su un mercato esterno.",
+        "this_is_a_price_feed_conversion": "Questa è una conversione di prezzo. L'attesa di 3,5 giorni è necessaria per evitare di abusare della media dei prezzi.",
         "convert_to_LIQUID_TOKEN": "Converti in %(LIQUID_TOKEN)s",
-        "DEBT_TOKEN_will_be_unavailable":
-            "Questa azione avverrà tra 3,5 giorni da adesso e non può essere cancellata. Questi%(DEBT_TOKEN)s diverranno subito indisponibili"
+        "DEBT_TOKEN_will_be_unavailable": "Questa azione avverrà tra 3,5 giorni da adesso e non può essere cancellata. Questi%(DEBT_TOKEN)s diverranno subito indisponibili"
     },
     "tips_js": {
-        "liquid_token":
-            "Token scambiabili che possono essere trasferiti ovunque in qualsiasi momento. <br/>%(LIQUID_TOKEN)s possono essere convertiti in %(VESTING_TOKEN)s con un processo chiamato powering up.",
-        "influence_token":
-            "Token che ti danno più controllo sui pagamenti dei post e ti consentono di guadagnare sulle ricompense da curatore.",
-        "estimated_value":
-            "Il valore stimato si basa sul valore medio di %(LIQUID_TOKEN)s in dollari US. ",
-        "non_transferable":
-            "%(VESTING_TOKEN)s non è trasferibile e richiede 3 mesi, (13 pagamenti) per riconvertirli in  %(LIQUID_TOKEN)s.",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "I %(VESTING_TOKEN)s convertiti possono essere spediti a te stesso o a qualcun altro ma non possono non ritrasferirli senza essere convertirli di nuovo in %(LIQUID_TOKEN)s.",
-        "part_of_your_hive_power_is_currently_delegated":
-            "Parte del tuo HIVE POWER ti è attualmente delegato. La delegazione è donata per l'influenza o per aiutare i nuovi utenti ad eseguire le azioni su Hive. Il quantitativo delegato può fluttuare."
+        "liquid_token": "Token scambiabili che possono essere trasferiti ovunque in qualsiasi momento. <br/>%(LIQUID_TOKEN)s possono essere convertiti in %(VESTING_TOKEN)s con un processo chiamato powering up.",
+        "influence_token": "Token che ti danno più controllo sui pagamenti dei post e ti consentono di guadagnare sulle ricompense da curatore.",
+        "estimated_value": "Il valore stimato si basa sul valore medio di %(LIQUID_TOKEN)s in dollari US. ",
+        "non_transferable": "%(VESTING_TOKEN)s non è trasferibile e richiede 3 mesi, (13 pagamenti) per riconvertirli in  %(LIQUID_TOKEN)s.",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "I %(VESTING_TOKEN)s convertiti possono essere spediti a te stesso o a qualcun altro ma non possono non ritrasferirli senza essere convertirli di nuovo in %(LIQUID_TOKEN)s.",
+        "part_of_your_hive_power_is_currently_delegated": "Parte del tuo HIVE POWER ti è attualmente delegato. La delegazione è donata per l'influenza o per aiutare i nuovi utenti ad eseguire le azioni su Hive. Il quantitativo delegato può fluttuare."
     },
     "promote_post_jsx": {
         "promote_post": "Promuovi post",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "Spendi %(DEBT_TOKEN)s per pubblicizzare questo post nella sezione dei contenuti promossi.",
-        "you_successfully_promoted_this_post":
-            "Hai promosso questo post con successo",
-        "this_post_was_hidden_due_to_low_ratings":
-            "Questo post è stato nascosto a causa della bassa reputazione"
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "Spendi %(DEBT_TOKEN)s per pubblicizzare questo post nella sezione dei contenuti promossi.",
+        "you_successfully_promoted_this_post": "Hai promosso questo post con successo",
+        "this_post_was_hidden_due_to_low_ratings": "Questo post è stato nascosto a causa della bassa reputazione"
     },
     "about_jsx": {
         "about_app": "About %(APP_NAME)s",
-        "about_app_details":
-            "%(APP_NAME)s è una piattaforma di social media dove tutti vengono ricompensati per la creazione e la cura di contenuti. Utilizza un complesso sistema a punti digitali, chiamato Hive che possiede un valore effettivo per le ricompense digitali attraverso la scoperta dei prezzi di mercato e la liquidità. ",
+        "about_app_details": "%(APP_NAME)s è una piattaforma di social media dove tutti vengono ricompensati per la creazione e la cura di contenuti. Utilizza un complesso sistema a punti digitali, chiamato Hive che possiede un valore effettivo per le ricompense digitali attraverso la scoperta dei prezzi di mercato e la liquidità. ",
         "learn_more_at_app_url": "Scopri di più  %(APP_URL)s",
         "resources": "Risorse"
     },
     "markdownviewer_jsx": {
-        "images_were_hidden_due_to_low_ratings":
-            "Le immagini sono state nascoste a causa della bassa reputazione."
+        "images_were_hidden_due_to_low_ratings": "Le immagini sono state nascoste a causa della bassa reputazione."
     },
     "postsummary_jsx": {
         "reblogged": "condiviso",
@@ -522,8 +441,7 @@
     },
     "posts_index": {
         "empty_feed_1": "Sembra che tu non stia ancora seguendo nessuno. ",
-        "empty_feed_2":
-            "Se hai da poco aggiunto nuovi utenti da seguire, quando ci saranno nuovi contenuti disponibili li vedrai nel tuo feed personalizzato.",
+        "empty_feed_2": "Se hai da poco aggiunto nuovi utenti da seguire, quando ci saranno nuovi contenuti disponibili li vedrai nel tuo feed personalizzato.",
         "empty_feed_3": "Esplora gli Articoli in Trending",
         "empty_feed_4": "Leggi la Guida di Avvio Rapido",
         "empty_feed_5": "Leggi le FAQ"
@@ -547,43 +465,30 @@
         "comments_by": "Commenti di"
     },
     "loginform_jsx": {
-        "you_need_a_private_password_or_key":
-            "Hai bisogno di una password privata o di una chiave (non di una chiave pubblica)",
+        "you_need_a_private_password_or_key": "Hai bisogno di una password privata o di una chiave (non di una chiave pubblica)",
         "cryptography_test_failed": "Test di crittofrafia fallito",
-        "unable_to_log_you_in":
-            "Non è possibile effettuare il log in con questo browser.",
+        "unable_to_log_you_in": "Non è possibile effettuare il log in con questo browser.",
         "the_latest_versions_of": "Le ultime versioni di ",
-        "are_well_tested_and_known_to_work_with":
-            "sono testate e conosciute per funzionare con  %(APP_URL)s.",
-        "due_to_server_maintenance":
-            "A causa della manutenzione del server siamo in modalità sola lettura. Ci dispiace per l'inconveniente.",
+        "are_well_tested_and_known_to_work_with": "sono testate e conosciute per funzionare con  %(APP_URL)s.",
+        "due_to_server_maintenance": "A causa della manutenzione del server siamo in modalità sola lettura. Ci dispiace per l'inconveniente.",
         "login_to_vote": "Effettua il login per votare ",
         "login_to_post": "Effettua il login per postare",
         "login_to_comment": "Effettua il login per commentare",
         "posting": "Post",
         "active_or_owner": "Attivo o proprietario",
-        "this_password_is_bound_to_your_account_owner_key":
-            "Questa password è collegata alla chiave proprietaria del tuo account e non può essere usata per effettuare il login su questo sito. ",
+        "this_password_is_bound_to_your_account_owner_key": "Questa password è collegata alla chiave proprietaria del tuo account e non può essere usata per effettuare il login su questo sito. ",
         "however_you_can_use_it_to": "Nonostante questo, puoi usarla per",
         "update_your_password": "aggiornare la tua password",
-        "to_obtain_a_more_secure_set_of_keys":
-            "per ottenere un set di chiavi più sicuro. ",
-        "this_password_is_bound_to_your_account_active_key":
-            "Questa password è collegata alla chiave attiva del tuo account e non può essere usata per effettuare il login su questa pagina. ",
-        "you_may_use_this_active_key_on_other_more":
-            "Puoi usare la chiave attiva su altre pagine di sicurezza come le pagine Wallet o Market. ",
-        "you_account_has_been_successfully_created":
-            "Il tuo account è stato creato con successo! ",
-        "you_account_has_been_successfully_recovered":
-            "Il tuo account è stato ripristinato con successo!",
-        "password_update_succes":
-            "La password dell'account %(accountName)s è stata aggiornata con successo",
-        "password_info":
-            "La password o la chiave privata è stata inserita erroneamente. C'è probabilmente un errore di battitura o un inserimento di dati errato. Suggerimento: Una password o una chiave privata generata da Hive non conterrà mai i caratteri 0 (zero), O (o maiuscola), I (i maiuscola) e l (l minuscola).",
+        "to_obtain_a_more_secure_set_of_keys": "per ottenere un set di chiavi più sicuro. ",
+        "this_password_is_bound_to_your_account_active_key": "Questa password è collegata alla chiave attiva del tuo account e non può essere usata per effettuare il login su questa pagina. ",
+        "you_may_use_this_active_key_on_other_more": "Puoi usare la chiave attiva su altre pagine di sicurezza come le pagine Wallet o Market. ",
+        "you_account_has_been_successfully_created": "Il tuo account è stato creato con successo! ",
+        "you_account_has_been_successfully_recovered": "Il tuo account è stato ripristinato con successo!",
+        "password_update_succes": "La password dell'account %(accountName)s è stata aggiornata con successo",
+        "password_info": "La password o la chiave privata è stata inserita erroneamente. C'è probabilmente un errore di battitura o un inserimento di dati errato. Suggerimento: Una password o una chiave privata generata da Hive non conterrà mai i caratteri 0 (zero), O (o maiuscola), I (i maiuscola) e l (l minuscola).",
         "enter_your_username": "Inserisci il tuo username",
         "password_or_wif": "Password o WIF",
-        "this_operation_requires_your_key_or_master_password":
-            "Per eseguire l'operazione è necessaria la propria chiave %(authType)so Master password. ",
+        "this_operation_requires_your_key_or_master_password": "Per eseguire l'operazione è necessaria la propria chiave %(authType)so Master password. ",
         "keep_me_logged_in": "Voglio restare connesso",
         "amazing_community": "una comunità incredibile",
         "to_comment_and_reward_others": "per commentare e premiare gli altri. ",
@@ -603,12 +508,10 @@
         "be_shorter": "essere più corto.",
         "each_account_segment_should": "Ogni segmento dell'account dovrebbe",
         "start_with_a_letter": "iniziare con una lettera.",
-        "have_only_letters_digits_or_dashes":
-            "avere solo lettere, cifre o trattini.",
+        "have_only_letters_digits_or_dashes": "avere solo lettere, cifre o trattini.",
         "have_only_one_dash_in_a_row": "avere solo un trattino per riga. ",
         "end_with_a_letter_or_digit": "terminare con una lettera o una cifra.",
-        "verified_exchange_no_memo":
-            "Devi includere una memo per il trasferimento."
+        "verified_exchange_no_memo": "Devi includere una memo per il trasferimento."
     },
     "settings_jsx": {
         "invalid_url": "URL invalido",
@@ -619,8 +522,7 @@
         "website_url_is_too_long": "L'url del sito è troppo lunga ",
         "public_profile_settings": "Impostazioni profilo pubblico",
         "preferences": "Impostazioni di Visualizzazione del Post Privato",
-        "not_safe_for_work_nsfw_content":
-            "Contenuto inappropriato da visualizzare da un luogo di lavoro (NSFW)",
+        "not_safe_for_work_nsfw_content": "Contenuto inappropriato da visualizzare da un luogo di lavoro (NSFW)",
         "always_hide": "Nascondi sempre",
         "always_warn": "Avverti sempre",
         "always_show": "Mostra sempre",
@@ -639,14 +541,11 @@
         "remove": "Rimuovere",
         "add_api_endpoint": "Aggiungi endpoint API",
         "reset_endpoints": "Reimposta endpoint",
-        "error_bad_url":
-            "Questo sembra essere un URL non valido, controlla e riprova",
+        "error_bad_url": "Questo sembra essere un URL non valido, controlla e riprova",
         "error_bad_cookie": "Impossibile ottenere endpoint dai cookie",
         "error_already_exists": "Questo endpoint è già nell'elenco",
-        "error_cant_remove_active":
-            "Non è possibile rimuovere l'endpoint preferito corrente. Selezionare prima un nuovo endpoint preferito",
-        "error_cant_remove_all":
-            "È necessario disporre di almeno un endpoint nell'elenco"
+        "error_cant_remove_active": "Non è possibile rimuovere l'endpoint preferito corrente. Selezionare prima un nuovo endpoint preferito",
+        "error_cant_remove_all": "È necessario disporre di almeno un endpoint nell'elenco"
     },
     "transfer_jsx": {
         "amount_is_in_form": "La quantita deve essere della forma 99999.999",
@@ -657,20 +556,14 @@
         "this_memo_is_private": "Questo memo è privato",
         "this_memo_is_public": "Questo memo è pubblico",
         "convert_to_VESTING_TOKEN": "Converti in %(VESTING_TOKEN)s",
-        "balance_subject_to_3_day_withdraw_waiting_period":
-            "Saldo soggetto a 3 giorni di attesa per il prelievo.",
-        "move_funds_to_another_account":
-            "Sposta i fondi verso un altro account Hive",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "Proteggi i fondi richiedendo un periodo di attesa di 3 giorni.",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "Preleva fondi dopo il periodo di attesa necessario di 3 giorni.",
+        "balance_subject_to_3_day_withdraw_waiting_period": "Saldo soggetto a 3 giorni di attesa per il prelievo.",
+        "move_funds_to_another_account": "Sposta i fondi verso un altro account Hive",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "Proteggi i fondi richiedendo un periodo di attesa di 3 giorni.",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "Preleva fondi dopo il periodo di attesa necessario di 3 giorni.",
         "from": "Da",
         "to": "A",
-        "asset_currently_collecting":
-            "%(asset)s attualmente percepiscono %(interest)s%% ISC.",
-        "beware_of_spam_and_phishing_links":
-            "Beware of spam and phishing links in transfer memos. Do not open links from users you do not trust. Do not provide your private keys to any third party websites."
+        "asset_currently_collecting": "%(asset)s attualmente percepiscono %(interest)s%% ISC.",
+        "beware_of_spam_and_phishing_links": "Beware of spam and phishing links in transfer memos. Do not open links from users you do not trust. Do not provide your private keys to any third party websites."
     },
     "userwallet_jsx": {
         "conversion_complete_tip": "Si completerà su",
@@ -682,23 +575,18 @@
         "convert_to_LIQUID_TOKEN": "Converti in %(LIQUID_TOKEN)s",
         "withdraw_LIQUID_TOKEN": "Preleva %(LIQUID_TOKEN)s",
         "withdraw_DEBT_TOKENS": "Preleva %(DEBT_TOKENS)s",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "I token valgono circa $1.00 di %(LIQUID_TICKER)s, attualmente percepiscono %(hbdInterest)s%% ISC.",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "I token valgono circa $1.00 di %(LIQUID_TICKER)s, attualmente percepiscono %(hbdInterest)s%% ISC.",
         "savings": "RISPARMI",
         "estimated_account_value": "Valore stimato dell'account",
-        "next_power_down_is_scheduled_to_happen":
-            "Il prossimo power downo è programmato per avvenire",
-        "transfers_are_temporary_disabled":
-            "I trasferimenti sono temporaneamente disabilitati.",
+        "next_power_down_is_scheduled_to_happen": "Il prossimo power downo è programmato per avvenire",
+        "transfers_are_temporary_disabled": "I trasferimenti sono temporaneamente disabilitati.",
         "history": "CRONOLOGIA",
         "redeem_rewards": "Riscuoti le ricompense (Trasferisci sul conto)",
         "buy_hive_or_hive_power": "Compra HIVE o HIVE POWER"
     },
     "checkloginowner_jsx": {
-        "your_password_permissions_were_reduced":
-            "I tuoi permessi delle password sono stati ridotti",
-        "if_you_did_not_make_this_change":
-            "Se non hai fatto questo cambio per favore",
+        "your_password_permissions_were_reduced": "I tuoi permessi delle password sono stati ridotti",
+        "if_you_did_not_make_this_change": "Se non hai fatto questo cambio per favore",
         "ownership_changed_on": "Proprietà Cambiata Su",
         "deadline_for_recovery_is": "Il termine per il ripristino è",
         "i_understand_dont_show_again": "Ho capito, non mostrare nuovamente"
diff --git a/src/app/locales/ja.json b/src/app/locales/ja.json
index 063835aefaf67f95926b2a731e300118455c569e..e7d759893d01f6e335b90100a0cac1f7237b36cc 100644
--- a/src/app/locales/ja.json
+++ b/src/app/locales/ja.json
@@ -55,8 +55,7 @@
         "password": "パスワード",
         "payouts": "支払額",
         "permissions": "アクセス権",
-        "phishy_message":
-            "リンクをプレーンテキストに拡張しました。潜在的なフィッシングに注意してください。",
+        "phishy_message": "リンクをプレーンテキストに拡張しました。潜在的なフィッシングに注意してください。",
         "post": "投稿",
         "post_as": "投稿します:",
         "posts": "投稿数",
@@ -128,59 +127,42 @@
         "account_name": "アカウント名",
         "recover_your_account": "アカウントの回復",
         "reset_usernames_password": "%(username)sのパスワードをリセットします",
-        "this_will_update_usernames_authtype_key":
-            "%(username)sの%(authType)sキーが更新されます",
+        "this_will_update_usernames_authtype_key": "%(username)sの%(authType)sキーが更新されます",
         "passwords_do_not_match": "パスワードが一致しません",
-        "you_need_private_password_or_key_not_a_public_key":
-            "秘密パスワードまたはキーが必要です(公開キーではありません)",
+        "you_need_private_password_or_key_not_a_public_key": "秘密パスワードまたはキーが必要です(公開キーではありません)",
         "the_rules_of_APP_NAME": {
             "one": "%(APP_NAME)sの第1のルールは:パスワードをなくさないこと。",
-            "second":
-                "%(APP_NAME)sの第2のルールは:パスワードをなくさないでください。",
-            "third":
-                "%(APP_NAME)sの第3のルールは:紛失したパスワードを回復することはできません。",
-            "fourth":
-                "第4のルールは:覚えられるパスワードは安全ではありません。",
-            "fifth":
-                "第5のルールは:ランダムに生成したパスワードのみを使用してください。",
+            "second": "%(APP_NAME)sの第2のルールは:パスワードをなくさないでください。",
+            "third": "%(APP_NAME)sの第3のルールは:紛失したパスワードを回復することはできません。",
+            "fourth": "第4のルールは:覚えられるパスワードは安全ではありません。",
+            "fifth": "第5のルールは:ランダムに生成したパスワードのみを使用してください。",
             "sixth": "第6のルールは:誰にもパスワードを教えないでください。",
-            "seventh":
-                "第7のルールは:いつもパスワードをバックアップしてください。"
+            "seventh": "第7のルールは:いつもパスワードをバックアップしてください。"
         },
         "recover_password": "アカウント回復",
         "current_password": "現在のパスワード",
         "generated_password": "生成したパスワード",
-        "backup_password_by_storing_it":
-            "パスワード管理ツールまたはテキストファイルにパスワードをバックアップすることを強く推奨します",
-        "enter_account_show_password":
-            "有効なアカウント名を入力してパスワードを表示します",
+        "backup_password_by_storing_it": "パスワード管理ツールまたはテキストファイルにパスワードをバックアップすることを強く推奨します",
+        "enter_account_show_password": "有効なアカウント名を入力してパスワードを表示します",
         "click_to_generate_password": "クリックしてパスワードを生成",
         "re_enter_generate_password": "生成したパスワードを再入力してください",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "私は%(APP_NAME)sが紛失したパスワードを回復できないことを理解しました",
-        "i_saved_password":
-            "私は生成したパスワードを安全なところに保存しました",
+        "understand_that_APP_NAME_cannot_recover_password": "私は%(APP_NAME)sが紛失したパスワードを回復できないことを理解しました",
+        "i_saved_password": "私は生成したパスワードを安全なところに保存しました",
         "update_password": "パスワードを更新",
         "confirm_password": "パスワードを確認してください",
         "account_updated": "アカウントが更新されました",
-        "password_must_be_characters_or_more":
-            "パスワードは%(amount)s文字以上でなければなりません",
-        "need_password_or_key":
-            "秘密パスワードまたはキーが必要です(公開キーではありません)",
+        "password_must_be_characters_or_more": "パスワードは%(amount)s文字以上でなければなりません",
+        "need_password_or_key": "秘密パスワードまたはキーが必要です(公開キーではありません)",
         "login_to_see_memo": "メモを見るにはメモキーでログインしてください",
         "new_password": "新しいパスワード",
         "incorrect_password": "不正なパスワード",
         "username_does_not_exist": "存在しないユーザー名です",
-        "account_name_should_start_with_a_letter":
-            "アカウント名はアルファベットで始まる必要があります。",
+        "account_name_should_start_with_a_letter": "アカウント名はアルファベットで始まる必要があります。",
         "account_name_should_be_shorter": "アカウント名が長すぎます。",
         "account_name_should_be_longer": "アカウント名が短すぎます。",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "アカウント名には英数字またはダッシュが使用できます。",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "支払いの直前に投稿の報酬を増やすことはできません",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "10分毎に各IPアドレスにつき1つのHiveアカウントのみ許可されています",
+        "account_name_should_have_only_letters_digits_or_dashes": "アカウント名には英数字またはダッシュが使用できます。",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "支払いの直前に投稿の報酬を増やすことはできません",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "10分毎に各IPアドレスにつき1つのHiveアカウントのみ許可されています",
         "reblog_this_post": "この投稿をReblogする",
         "reblog": "Reblog",
         "write_your_story": "投稿内容を書いてください",
@@ -190,23 +172,18 @@
         "show_private_key": "秘密キーを表示する",
         "login_to_show": "ログインして表示",
         "not_valid_email": "無効なメールアドレス",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "%(APP_NAME)sに来ていただきありがとうございます。できるだけ早くご連絡いたします。",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "%(APP_NAME)sに来ていただきありがとうございます。できるだけ早くご連絡いたします。",
         "author_rewards": "投稿者報酬",
         "curation_rewards": "キュレーション報酬",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "申し訳ありません。あなたのRedditアカウントはRedditカルマが足りないため無料のサインアップができません。待機リストに載るにはメールアドレスを使用してください。",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "申し訳ありません。あなたのRedditアカウントはRedditカルマが足りないため無料のサインアップができません。待機リストに載るにはメールアドレスを使用してください。",
         "register_with_facebook": "Facebookで登録する。",
-        "or_click_the_button_below_to_register_with_facebook":
-            "Facebookで登録するには下のボタンをクリックしてください。",
+        "or_click_the_button_below_to_register_with_facebook": "Facebookで登録するには下のボタンをクリックしてください。",
         "server_returned_error": "サーバーでエラーが発生しました",
         "APP_NAME_support": "%(APP_NAME)sサポート",
         "please_email_questions_to": "質問をメールしてください:",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "投稿者は読者から投稿をupvoteされることで報酬を得ます。",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "読んで楽しんだら、次はアカウントを作成してHIVEを手に入れましょう!",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "投稿者は読者から投稿をupvoteされることで報酬を得ます。",
+            "if_you_enjoyed_what_you_read_earn_amount": "読んで楽しんだら、次はアカウントを作成してHIVEを手に入れましょう!",
             "free_hive": "HIVEを手に入れよう!",
             "sign_up_earn_hive": "サインアップして "
         },
@@ -215,8 +192,7 @@
             "show_less": "評価の低い投稿の表示を減らす",
             "value_posts": ""
         },
-        "read_only_mode":
-            "サーバーメンテナンスのため読み取り専用モードで実行しています。ご迷惑をおかけして申し訳ありません。",
+        "read_only_mode": "サーバーメンテナンスのため読み取り専用モードで実行しています。ご迷惑をおかけして申し訳ありません。",
         "tags_and_topics": "ã‚¿ã‚°",
         "show_more_topics": "すべてのタグを見る",
         "basic": "基本設定",
@@ -232,10 +208,8 @@
             "other": "%(count)s件の返信"
         },
         "post_key_warning": {
-            "confirm":
-                "HIVEの秘密キーまたはマスターパスワードを公開しようとしています。関連するアカウントの管理権とすべての資金を失う恐れがあります。",
-            "warning":
-                "Hiveの従業員を含む正当なユーザーは秘密キーまたはマスターパスワードを要求することはありません。",
+            "confirm": "HIVEの秘密キーまたはマスターパスワードを公開しようとしています。関連するアカウントの管理権とすべての資金を失う恐れがあります。",
+            "warning": "Hiveの従業員を含む正当なユーザーは秘密キーまたはマスターパスワードを要求することはありません。",
             "checkbox": "理解しました。"
         }
     },
@@ -263,8 +237,7 @@
         "bluepaper": "Hiveブルーペーパー",
         "whitepaper": "Hiveホワイトペーパー",
         "intro_tagline": "金がものを言う",
-        "intro_paragraph":
-            "あなたの声には価値があります。あなたのハイクオリティな投稿やキュレーションに報酬を出すコミュニティに参加しましょう。",
+        "intro_paragraph": "あなたの声には価値があります。あなたのハイクオリティな投稿やキュレーションに報酬を出すコミュニティに参加しましょう。",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
         "what_is_hive": "What is Hive?",
@@ -278,29 +251,24 @@
         "shorten_title": "タイトルが長すぎます",
         "exceeds_maximum_length": "最大長を超えています (%(maxKb)sKB)",
         "including_the_category": "(カテゴリ'%(rootCategory)s'を含む)",
-        "use_limited_amount_of_tags":
-            "合計で%(tagsLength)s個のタグがあります%(includingCategory)s。投稿とカテゴリの行には5つ以内にしてください。",
-        "are_you_sure_you_want_to_clear_this_form":
-            "フォームの内容を消去してもよろしいですか?",
+        "use_limited_amount_of_tags": "合計で%(tagsLength)s個のタグがあります%(includingCategory)s。投稿とカテゴリの行には5つ以内にしてください。",
+        "are_you_sure_you_want_to_clear_this_form": "フォームの内容を消去してもよろしいですか?",
         "uploading": "アップロード中",
         "draft_saved": "下書きを保存しました。",
         "editor": "エディタ",
-        "insert_images_by_dragging_dropping":
-            "画像を挿入するにはドラッグ&ドロップするか、",
+        "insert_images_by_dragging_dropping": "画像を挿入するにはドラッグ&ドロップするか、",
         "pasting_from_the_clipboard": "クリップボードから貼り付けるか、",
         "selecting_them": "選択してください。",
         "image_upload": "画像アップロード",
         "power_up_100": "パワーアップ 100%%",
         "default_50_50": "50%% / 50%%",
         "decline_payout": "報酬を辞退",
-        "check_this_to_auto_upvote_your_post":
-            "チェックすると投稿を自動でupvoteします。",
+        "check_this_to_auto_upvote_your_post": "チェックすると投稿を自動でupvoteします。",
         "markdown_styling_guide": "マークダウン書式ガイド",
         "or_by": "または",
         "title": "タイトル",
         "update_post": "投稿を更新",
-        "markdown_not_supported":
-            "ここではマークダウンはサポートされていません",
+        "markdown_not_supported": "ここではマークダウンはサポートされていません",
         "advanced_settings": "Advanced settings",
         "beneficiaries_set": "%(count)s set"
     },
@@ -310,71 +278,54 @@
         "exceeds_max_beneficiaries": "Can have at most 8 beneficiaries",
         "beneficiary_cannot_be_self": "Cannot specify self as beneficiary",
         "beneficiary_cannot_be_duplicate": "Beneficiary cannot be duplicate",
-        "beneficiary_percent_invalid":
-            "Beneficiary percentage must be from 1-100",
-        "beneficiary_percent_total_invalid":
-            "Beneficiary total percentage must be less than 100"
+        "beneficiary_percent_invalid": "Beneficiary percentage must be from 1-100",
+        "beneficiary_percent_total_invalid": "Beneficiary total percentage must be less than 100"
     },
     "category_selector_jsx": {
-        "tag_your_story":
-            "タグ(最大5つ)。1つ目のタグはメインカテゴリです。日本語の投稿には japanese を含めてください。",
+        "tag_your_story": "タグ(最大5つ)。1つ目のタグはメインカテゴリです。日本語の投稿には japanese を含めてください。",
         "select_a_tag": "タグを選択してください",
         "maximum_tag_length_is_24_characters": "タグの最大長は24文字です。",
-        "use_limited_amount_of_categories":
-            "タグは%(amount)s個以下にしてください。",
+        "use_limited_amount_of_categories": "タグは%(amount)s個以下にしてください。",
         "use_only_lowercase_letters": "小文字のみ使用してください。",
         "use_one_dash": "ダッシュは1つまで使用可能です。",
-        "use_spaces_to_separate_tags":
-            "タグを区切るのにはスペースを使用してください。",
-        "use_only_allowed_characters":
-            "英小文字、数字、ダッシュのみ使用可能です。",
+        "use_spaces_to_separate_tags": "タグを区切るのにはスペースを使用してください。",
+        "use_only_allowed_characters": "英小文字、数字、ダッシュのみ使用可能です。",
         "must_start_with_a_letter": "文字で始める必要があります。",
-        "must_end_with_a_letter_or_number":
-            "文字または数字で終わる必要があります。"
+        "must_end_with_a_letter_or_number": "文字または数字で終わる必要があります。"
     },
     "post_advanced_settings_jsx": {
         "payout_option_header": "Author rewards",
-        "payout_option_description":
-            "What type of tokens do you want as rewards from this post?",
+        "payout_option_description": "What type of tokens do you want as rewards from this post?",
         "current_default": "Default",
         "update_default_in_settings": "Update"
     },
     "postfull_jsx": {
-        "this_post_is_not_available_due_to_a_copyright_claim":
-            "この投稿は著作権上の問題により表示されません。",
+        "this_post_is_not_available_due_to_a_copyright_claim": "この投稿は著作権上の問題により表示されません。",
         "share_on_facebook": "Facebookでシェア",
         "share_on_twitter": "Twitterでシェア",
         "share_on_linkedin": "Linkedinでシェア",
         "recent_password": "直近のパスワード",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "3.5日で、%(amount)s %(DEBT_TOKEN)sを%(LIQUID_TOKEN)sに変換します。",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "3.5日で、%(amount)s %(DEBT_TOKEN)sを%(LIQUID_TOKEN)sに変換します。",
         "view_the_full_context": "スレッドをすべて表示する",
         "view_the_direct_parent": "親コメントを表示する",
-        "you_are_viewing_a_single_comments_thread_from":
-            "次のスレッドのコメントの1つを表示しています "
+        "you_are_viewing_a_single_comments_thread_from": "次のスレッドのコメントの1つを表示しています "
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "時折、Hiveianのオーナーキーが盗まれることがあります。盗難アカウントの回復は、盗んだ者がオーナーキーを変更してから30日以内に、アカウントの正しい所有者にアカウントを取り戻します。盗難アカウントの回復は、アカウントの所有者が'%(APP_NAME)s'をアカウント受託者とし、%(APP_NAME)sの利用規約に準拠している場合にのみ%(APP_URL)sで行うことができます。"
+        "recover_account_intro": "時折、Hiveianのオーナーキーが盗まれることがあります。盗難アカウントの回復は、盗んだ者がオーナーキーを変更してから30日以内に、アカウントの正しい所有者にアカウントを取り戻します。盗難アカウントの回復は、アカウントの所有者が'%(APP_NAME)s'をアカウント受託者とし、%(APP_NAME)sの利用規約に準拠している場合にのみ%(APP_URL)sで行うことができます。"
     },
     "user_profile": {
         "unknown_account": "不明なアカウント",
-        "user_hasnt_made_any_posts_yet":
-            "%(name)sはまだ1つも投稿していないようです!",
-        "user_hasnt_started_bloggin_yet":
-            "%(name)sはまだブログを開始していないようです!",
-        "user_hasnt_followed_anything_yet":
-            "%(name)sはまだ誰もフォローしていません!%(name)sが最近新しいユーザーをフォローした場合、新しいコンテンツが有効になると個々のフィードに追加されます。",
+        "user_hasnt_made_any_posts_yet": "%(name)sはまだ1つも投稿していないようです!",
+        "user_hasnt_started_bloggin_yet": "%(name)sはまだブログを開始していないようです!",
+        "user_hasnt_followed_anything_yet": "%(name)sはまだ誰もフォローしていません!%(name)sが最近新しいユーザーをフォローした場合、新しいコンテンツが有効になると個々のフィードに追加されます。",
         "user_hasnt_had_any_replies_yet": "%(name)sへの返信はまだありません。",
-        "looks_like_you_havent_posted_anything_yet":
-            "あなたはまだ1つも投稿していないようです!",
+        "looks_like_you_havent_posted_anything_yet": "あなたはまだ1つも投稿していないようです!",
         "create_a_post": "投稿を作成する",
         "explore_trending_articles": "トレンド記事を検索する",
         "read_the_quick_start_guide": "クイックスタートガイドを読む",
         "browse_the_faq": "FAQを参照する",
         "followers": "フォロワー",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "これは%(name)sの評価スコアです。\n\n評価スコアはアカウントが貰ったvoteの履歴に基いており、低品質のコンテンツを非表示にするのに使われます。",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "これは%(name)sの評価スコアです。\n\n評価スコアはアカウントが貰ったvoteの履歴に基いており、低品質のコンテンツを非表示にするのに使われます。",
         "follower_count": {
             "zero": "フォロワーがいません",
             "one": "1人のフォロワー",
@@ -394,20 +345,16 @@
         "show_all": "Show All"
     },
     "post_jsx": {
-        "now_showing_comments_with_low_ratings":
-            "評価の低いコメントを表示しています。",
+        "now_showing_comments_with_low_ratings": "評価の低いコメントを表示しています。",
         "sort_order": "並べ替え",
-        "comments_were_hidden_due_to_low_ratings":
-            "コメントは評価が低いため表示されません。"
+        "comments_were_hidden_due_to_low_ratings": "コメントは評価が低いため表示されません。"
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "フラグはこの投稿の報酬を減らし、見えにくくします。フラグを立てる一般的な理由は",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "フラグはこの投稿の報酬を減らし、見えにくくします。フラグを立てる一般的な理由は",
         "disagreement_on_rewards": "報酬に同意できない場合",
         "fraud_or_plagiarism": "詐欺または剽窃",
         "hate_speech_or_internet_trolling": "ヘイトスピーチまたは荒らし",
-        "intentional_miss_categorized_content_or_spam":
-            "意図的なカテゴリ間違いまたはスパム",
+        "intentional_miss_categorized_content_or_spam": "意図的なカテゴリ間違いまたはスパム",
         "pending_payout": "保留支払額 $%(value)s",
         "payout_declined": "報酬を辞退",
         "max_accepted_payout": "最大支払額 $%(value)s",
@@ -415,8 +362,7 @@
         "past_payouts": "支払い済み $%(value)s",
         "past_payouts_author": " - 投稿者 $%(value)s",
         "past_payouts_curators": " - キュレーター $%(value)s",
-        "we_will_reset_curation_rewards_for_this_post":
-            "ことにより、この投稿へのキュレーション報酬はリセットされます",
+        "we_will_reset_curation_rewards_for_this_post": "ことにより、この投稿へのキュレーション報酬はリセットされます",
         "removing_your_vote": "投票を削除する",
         "changing_to_an_upvote": "Upvoteに変更する",
         "changing_to_a_downvote": "Downvoteに変更する",
@@ -428,8 +374,7 @@
         }
     },
     "votesandcomments_jsx": {
-        "no_responses_yet_click_to_respond":
-            "まだ返信がありません。返信するにはクリックしてください。",
+        "no_responses_yet_click_to_respond": "まだ返信がありません。返信するにはクリックしてください。",
         "response_count_tooltip": {
             "zero": "返信がありません。返信するにはクリックしてください。",
             "one": "返信は1件です。返信するにはクリックしてください。 ",
@@ -446,68 +391,46 @@
         "private": "秘密",
         "public_something_key": "公開%(key)sキー",
         "private_something_key": "秘密%(key)sキー",
-        "posting_key_is_required_it_should_be_different":
-            "投稿キーは投稿と投票に使用されます。アクティブキーやオーナーキーとは異なる必要があります。",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "アクティブキーは送金や内部取引所への発注に使用します。",
-        "the_owner_key_is_required_to_change_other_keys":
-            "オーナーキーはアカウントのマスターキーであり、他のキーを変更する時に必要です。",
-        "the_private_key_or_password_should_be_kept_offline":
-            "オーナーキーの秘密キーやパスワードは可能な限りオフラインに保管してください。",
-        "the_memo_key_is_used_to_create_and_read_memos":
-            "メモキーはメモの暗号化や復号化に使用します。"
+        "posting_key_is_required_it_should_be_different": "投稿キーは投稿と投票に使用されます。アクティブキーやオーナーキーとは異なる必要があります。",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "アクティブキーは送金や内部取引所への発注に使用します。",
+        "the_owner_key_is_required_to_change_other_keys": "オーナーキーはアカウントのマスターキーであり、他のキーを変更する時に必要です。",
+        "the_private_key_or_password_should_be_kept_offline": "オーナーキーの秘密キーやパスワードは可能な限りオフラインに保管してください。",
+        "the_memo_key_is_used_to_create_and_read_memos": "メモキーはメモの暗号化や復号化に使用します。"
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)sはパスワードを回復できません。このページを耐火金庫や貸金庫のような安全な場所に保管してください。",
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)sはパスワードを回復できません。このページを耐火金庫や貸金庫のような安全な場所に保管してください。",
         "APP_NAME_password_backup": "%(APP_NAME)sパスワードのバックアップ",
-        "APP_NAME_password_backup_required":
-            "%(APP_NAME)sパスワードのバックアップ (必須)",
-        "after_printing_write_down_your_user_name":
-            "印刷後、ユーザー名を書き留めてください。"
+        "APP_NAME_password_backup_required": "%(APP_NAME)sパスワードのバックアップ (必須)",
+        "after_printing_write_down_your_user_name": "印刷後、ユーザー名を書き留めてください。"
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "あなたが持つ%(DEBT_TOKEN)sは流動的であり移動可能です。代わりに、%(DEBT_TOKEN)sを%(link)sから行けるサイトで直接取引したり、または外部の取引所に送ることができます。",
-        "this_is_a_price_feed_conversion":
-            "これは価格フィードによる変換です。3.5日の遅延は価格フィードの平均値を用いたマネーゲームによる悪用を防止するために必要です。",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "あなたが持つ%(DEBT_TOKEN)sは流動的であり移動可能です。代わりに、%(DEBT_TOKEN)sを%(link)sから行けるサイトで直接取引したり、または外部の取引所に送ることができます。",
+        "this_is_a_price_feed_conversion": "これは価格フィードによる変換です。3.5日の遅延は価格フィードの平均値を用いたマネーゲームによる悪用を防止するために必要です。",
         "convert_to_LIQUID_TOKEN": "%(LIQUID_TOKEN)sへの変換",
-        "DEBT_TOKEN_will_be_unavailable":
-            "この操作は3.5日かかり、キャンセルすることができません。%(DEBT_TOKEN)sはすぐに使用不能になります。"
+        "DEBT_TOKEN_will_be_unavailable": "この操作は3.5日かかり、キャンセルすることができません。%(DEBT_TOKEN)sはすぐに使用不能になります。"
     },
     "tips_js": {
-        "liquid_token":
-            "いつでもどこへでも送ることができる取引可能なトークンです。<br/>%(LIQUID_TOKEN)sはパワーアップによって%(VESTING_TOKEN)sに変換できます。",
-        "influence_token":
-            "投稿への支払額の制御権を持ち、キュレーション報酬を得ることが可能になる、プラットフォームにおける影響力を持つトークンです。",
-        "estimated_value":
-            "推定値は%(LIQUID_TOKEN)sの平均値に基いてUSドルで表されます。",
-        "non_transferable":
-            "%(VESTING_TOKEN)sは移転不可能であり、再び%(LIQUID_TOKEN)sに変換するには、3ヶ月(13週間)かかります。",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "変換した%(VESTING_TOKEN)sは、自分自身や他の人に送ることが可能ですが、もう一度送るには%(LIQUID_TOKEN)sに変換する必要があります。",
-        "part_of_your_hive_power_is_currently_delegated":
-            "現在のHIVE POWERの一部は委託されたものです。委託は影響力の寄付や、新規ユーザーがHiveでアクションを起こしやすくするために行われます。委託された額は変動する可能性があります。"
+        "liquid_token": "いつでもどこへでも送ることができる取引可能なトークンです。<br/>%(LIQUID_TOKEN)sはパワーアップによって%(VESTING_TOKEN)sに変換できます。",
+        "influence_token": "投稿への支払額の制御権を持ち、キュレーション報酬を得ることが可能になる、プラットフォームにおける影響力を持つトークンです。",
+        "estimated_value": "推定値は%(LIQUID_TOKEN)sの平均値に基いてUSドルで表されます。",
+        "non_transferable": "%(VESTING_TOKEN)sは移転不可能であり、再び%(LIQUID_TOKEN)sに変換するには、3ヶ月(13週間)かかります。",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "変換した%(VESTING_TOKEN)sは、自分自身や他の人に送ることが可能ですが、もう一度送るには%(LIQUID_TOKEN)sに変換する必要があります。",
+        "part_of_your_hive_power_is_currently_delegated": "現在のHIVE POWERの一部は委託されたものです。委託は影響力の寄付や、新規ユーザーがHiveでアクションを起こしやすくするために行われます。委託された額は変動する可能性があります。"
     },
     "promote_post_jsx": {
         "promote_post": "投稿をプロモートする",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "%(DEBT_TOKEN)sを支払ってプロモートコンテンツセクションでこの投稿を宣伝します。",
-        "you_successfully_promoted_this_post":
-            "この投稿のプロモートに成功しました。",
-        "this_post_was_hidden_due_to_low_ratings":
-            "この投稿は評価が低いため非表示になってしまいました。"
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "%(DEBT_TOKEN)sを支払ってプロモートコンテンツセクションでこの投稿を宣伝します。",
+        "you_successfully_promoted_this_post": "この投稿のプロモートに成功しました。",
+        "this_post_was_hidden_due_to_low_ratings": "この投稿は評価が低いため非表示になってしまいました。"
     },
     "about_jsx": {
         "about_app": "%(APP_NAME)sについて",
-        "about_app_details":
-            "%(APP_NAME)sは誰もがコンテンツ作成やキュレーションで報酬を得られるソーシャルメディアプラットフォームです。これにはHiveという堅牢なデジタルポイントシステムを活用しています。それは市場の価格発見と流動性によってデジタル報酬で実価値を与えます。",
+        "about_app_details": "%(APP_NAME)sは誰もがコンテンツ作成やキュレーションで報酬を得られるソーシャルメディアプラットフォームです。これにはHiveという堅牢なデジタルポイントシステムを活用しています。それは市場の価格発見と流動性によってデジタル報酬で実価値を与えます。",
         "learn_more_at_app_url": "詳細は%(APP_URL)sを参照してください。",
         "resources": "リソース"
     },
     "markdownviewer_jsx": {
-        "images_were_hidden_due_to_low_ratings":
-            "評価が低いため画像は非表示になりました。"
+        "images_were_hidden_due_to_low_ratings": "評価が低いため画像は非表示になりました。"
     },
     "postsummary_jsx": {
         "reblogged": "Reblogしました",
@@ -522,8 +445,7 @@
     },
     "posts_index": {
         "empty_feed_1": "あなたはまだ誰もフォローしていないようです。",
-        "empty_feed_2":
-            "最近新しいユーザーをフォローした場合、新しいコンテンツが有効になると個々のフィードに追加されます。",
+        "empty_feed_2": "最近新しいユーザーをフォローした場合、新しいコンテンツが有効になると個々のフィードに追加されます。",
         "empty_feed_3": "トレンド記事を検索する",
         "empty_feed_4": "クイックスタートガイドを読む",
         "empty_feed_5": "FAQを参照する"
@@ -547,46 +469,33 @@
         "comments_by": "のコメント"
     },
     "loginform_jsx": {
-        "you_need_a_private_password_or_key":
-            "秘密パスワードまたはキーが必要です(公開キーではありません)",
+        "you_need_a_private_password_or_key": "秘密パスワードまたはキーが必要です(公開キーではありません)",
         "cryptography_test_failed": "暗号化テストに失敗しました",
         "unable_to_log_you_in": "このブラウザではログインできません。",
         "the_latest_versions_of": "最新バージョン: ",
-        "are_well_tested_and_known_to_work_with":
-            "はテスト済みであり、%(APP_URL)sでの動作を確認済みです。",
-        "due_to_server_maintenance":
-            "サーバーメンテナンスのため、読み取り専用モードで実行しています。ご迷惑をおかけして申し訳ありません。",
+        "are_well_tested_and_known_to_work_with": "はテスト済みであり、%(APP_URL)sでの動作を確認済みです。",
+        "due_to_server_maintenance": "サーバーメンテナンスのため、読み取り専用モードで実行しています。ご迷惑をおかけして申し訳ありません。",
         "login_to_vote": "ログインして投票します",
         "login_to_post": "ログインして投稿します",
         "login_to_comment": "ログインしてコメントします",
         "posting": "投稿",
         "active_or_owner": "アクティブまたはオーナー",
-        "this_password_is_bound_to_your_account_owner_key":
-            "このパスワードはアカウントのオーナーキーに紐付けられており、このサイトのログインには使用できません。",
+        "this_password_is_bound_to_your_account_owner_key": "このパスワードはアカウントのオーナーキーに紐付けられており、このサイトのログインには使用できません。",
         "however_you_can_use_it_to": "ですが、",
         "update_your_password": "パスワードを更新して",
-        "to_obtain_a_more_secure_set_of_keys":
-            "より安全なキーを入手することに使用できます。",
-        "this_password_is_bound_to_your_account_active_key":
-            "このパスワードはアカウントのアクティブキーに紐付けられており、このサイトのログインには使用できません。",
-        "you_may_use_this_active_key_on_other_more":
-            "アクティブキーはウォレットや取引所などのより安全性を重視する場所で使用できます。",
-        "you_account_has_been_successfully_created":
-            "あなたのアカウントは作成済みです!",
-        "you_account_has_been_successfully_recovered":
-            "あなたのアカウントは正常に回復されました!",
-        "password_update_succes":
-            "%(accountName)sのパスワードは正常に更新されました。",
-        "password_info":
-            "入力したパスワードまたは秘密キーが間違っています。手入力したか、またはデータエラーがある可能性があります。ヒント:Hiveで生成したパスワードまたは秘密キーは0 (ゼロ)、O (大文字のo)、I (大文字のi)、l (小文字のL)を含みません。",
+        "to_obtain_a_more_secure_set_of_keys": "より安全なキーを入手することに使用できます。",
+        "this_password_is_bound_to_your_account_active_key": "このパスワードはアカウントのアクティブキーに紐付けられており、このサイトのログインには使用できません。",
+        "you_may_use_this_active_key_on_other_more": "アクティブキーはウォレットや取引所などのより安全性を重視する場所で使用できます。",
+        "you_account_has_been_successfully_created": "あなたのアカウントは作成済みです!",
+        "you_account_has_been_successfully_recovered": "あなたのアカウントは正常に回復されました!",
+        "password_update_succes": "%(accountName)sのパスワードは正常に更新されました。",
+        "password_info": "入力したパスワードまたは秘密キーが間違っています。手入力したか、またはデータエラーがある可能性があります。ヒント:Hiveで生成したパスワードまたは秘密キーは0 (ゼロ)、O (大文字のo)、I (大文字のi)、l (小文字のL)を含みません。",
         "enter_your_username": "ユーザー名を入力してください",
         "password_or_wif": "パスワードまたはWIF",
-        "this_operation_requires_your_key_or_master_password":
-            "この操作には%(authType)sキーまたはマスターパスワードが必要です。",
+        "this_operation_requires_your_key_or_master_password": "この操作には%(authType)sキーまたはマスターパスワードが必要です。",
         "keep_me_logged_in": "ログイン状態を維持する",
         "amazing_community": "素晴らしいコミュニティ",
-        "to_comment_and_reward_others":
-            "に参加して、他の人にコメントして報酬を与えましょう。",
+        "to_comment_and_reward_others": "に参加して、他の人にコメントして報酬を与えましょう。",
         "signup_button": "サインアップして",
         "signup_button_emphasis": "HIVEを手に入れよう!",
         "sign_up_get_hive": "登録してHIVEを手に入れよう!",
@@ -603,8 +512,7 @@
         "be_shorter": "が長すぎます。",
         "each_account_segment_should": "区切られたアカウント名の各部分",
         "start_with_a_letter": "は文字で始まる必要があります。",
-        "have_only_letters_digits_or_dashes":
-            "には英数字またはダッシュのみが使用できます。",
+        "have_only_letters_digits_or_dashes": "には英数字またはダッシュのみが使用できます。",
         "have_only_one_dash_in_a_row": "にはダッシュを1つだけ使用可能です。",
         "end_with_a_letter_or_digit": "は英数字で終わります。",
         "verified_exchange_no_memo": "取引所へ送信するときはメモが必要です。"
@@ -637,14 +545,11 @@
         "remove": "削除する",
         "add_api_endpoint": "APIエンドポイントを追加",
         "reset_endpoints": "エンドポイントをリセット",
-        "error_bad_url":
-            "これは不正なURLのようです。確認して、もう一度お試しください",
+        "error_bad_url": "これは不正なURLのようです。確認して、もう一度お試しください",
         "error_bad_cookie": "Cookieからエンドポイントを取得できません",
         "error_already_exists": "このエンドポイントはすでにリストにあります",
-        "error_cant_remove_active":
-            "現在の優先エンドポイントを削除することはできません。 最初に新しい優先エンドポイントを選択してください",
-        "error_cant_remove_all":
-            "リストに少なくとも1つのエンドポイントが必要です"
+        "error_cant_remove_active": "現在の優先エンドポイントを削除することはできません。 最初に新しい優先エンドポイントを選択してください",
+        "error_cant_remove_all": "リストに少なくとも1つのエンドポイントが必要です"
     },
     "transfer_jsx": {
         "amount_is_in_form": "金額は99999.999の形式です",
@@ -655,19 +560,14 @@
         "this_memo_is_private": "このメモは非公開です",
         "this_memo_is_public": "このメモは公開されます",
         "convert_to_VESTING_TOKEN": "%(VESTING_TOKEN)sに変換",
-        "balance_subject_to_3_day_withdraw_waiting_period":
-            "引き出しに3日間の待ち時間が必要となる貯蓄口座です。",
+        "balance_subject_to_3_day_withdraw_waiting_period": "引き出しに3日間の待ち時間が必要となる貯蓄口座です。",
         "move_funds_to_another_account": "資金を他のHiveアカウントに送ります。",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "3日間の引き出し待ち時間で資金を守ります。",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "3日間の待ち時間の後に資金を引き出します。",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "3日間の引き出し待ち時間で資金を守ります。",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "3日間の待ち時間の後に資金を引き出します。",
         "from": "送信者",
         "to": "受信者",
-        "asset_currently_collecting":
-            "%(asset)sの現在の利子は年間%(interest)s%%です。",
-        "beware_of_spam_and_phishing_links":
-            "送金メモのスパムやフィッシングに注意してください。信用していないユーザーからのリンクを開かないでください。第三者のウェブサイトに秘密キーを提供しないでください。"
+        "asset_currently_collecting": "%(asset)sの現在の利子は年間%(interest)s%%です。",
+        "beware_of_spam_and_phishing_links": "送金メモのスパムやフィッシングに注意してください。信用していないユーザーからのリンクを開かないでください。第三者のウェブサイトに秘密キーを提供しないでください。"
     },
     "userwallet_jsx": {
         "conversion_complete_tip": "変換完了予定",
@@ -679,23 +579,18 @@
         "convert_to_LIQUID_TOKEN": "%(LIQUID_TOKEN)sに変換",
         "withdraw_LIQUID_TOKEN": "%(LIQUID_TOKEN)sを引き出す",
         "withdraw_DEBT_TOKENS": "%(DEBT_TOKENS)sを引き出す",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "約$1.00の%(LIQUID_TICKER)sと同じ価値のトークンです。現在、利子が年間%(hbdInterest)s%%つきます。",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "約$1.00の%(LIQUID_TICKER)sと同じ価値のトークンです。現在、利子が年間%(hbdInterest)s%%つきます。",
         "savings": "貯蓄口座",
         "estimated_account_value": "推定アカウント価格",
-        "next_power_down_is_scheduled_to_happen":
-            "次回のパワーダウン発生予定:",
-        "transfers_are_temporary_disabled":
-            "送金は一時的に無効になっています。",
+        "next_power_down_is_scheduled_to_happen": "次回のパワーダウン発生予定:",
+        "transfers_are_temporary_disabled": "送金は一時的に無効になっています。",
         "history": "履歴",
         "redeem_rewards": "報酬の請求 (残高に送る)",
         "buy_hive_or_hive_power": "HIVEやHIVE POWERを購入する"
     },
     "checkloginowner_jsx": {
-        "your_password_permissions_were_reduced":
-            "あなたのパスワード権限が減少しました。",
-        "if_you_did_not_make_this_change":
-            "あなたがこの変更をしていない場合は、",
+        "your_password_permissions_were_reduced": "あなたのパスワード権限が減少しました。",
+        "if_you_did_not_make_this_change": "あなたがこの変更をしていない場合は、",
         "ownership_changed_on": "所有権変更:",
         "deadline_for_recovery_is": "アカウント回復の期限は",
         "i_understand_dont_show_again": "理解しました。再表示は不要です。"
diff --git a/src/app/locales/ko.json b/src/app/locales/ko.json
index db2341d5344ac8de3c56d6940bcddb1307ff339d..2c38994723b105995ed53a9490f48fbb90b971dd 100644
--- a/src/app/locales/ko.json
+++ b/src/app/locales/ko.json
@@ -58,8 +58,7 @@
         "password": "비밀번호",
         "payouts": "글보상",
         "permissions": "권한",
-        "phishy_message":
-            "Link expanded to plain text; beware of a potential phishing attempt",
+        "phishy_message": "Link expanded to plain text; beware of a potential phishing attempt",
         "post": "글쓰기",
         "post_as": "Post as",
         "posts": "Posts",
@@ -131,18 +130,14 @@
         "account_name": "계정 이름",
         "recover_your_account": "recover your account",
         "reset_usernames_password": "Reset %(username)s's Password",
-        "this_will_update_usernames_authtype_key":
-            "This will update %(username)s %(authType)s key",
+        "this_will_update_usernames_authtype_key": "This will update %(username)s %(authType)s key",
         "passwords_do_not_match": "Passwords do not match",
-        "you_need_private_password_or_key_not_a_public_key":
-            "You need a private password or key (not a public key)",
+        "you_need_private_password_or_key_not_a_public_key": "You need a private password or key (not a public key)",
         "the_rules_of_APP_NAME": {
             "one": "%(APP_NAME)s 첫번째 규칙: 비밀번호를 잃어버리지 마세요.",
             "second": "%(APP_NAME)s 두번째 규칙: 비밀번호를 잃어버리지 마세요.",
-            "third":
-                "%(APP_NAME)s 세번째 규칙: 잃어버린 비밀번호는 복구 해드릴 방법이 없습니다.",
-            "fourth":
-                "네번째 규칙: 기억할수 있는 비밀번호는 안전하지 않은 비밀번호 입니다.",
+            "third": "%(APP_NAME)s 세번째 규칙: 잃어버린 비밀번호는 복구 해드릴 방법이 없습니다.",
+            "fourth": "네번째 규칙: 기억할수 있는 비밀번호는 안전하지 않은 비밀번호 입니다.",
             "fifth": "다섯번째 규칙: 무작위로 생성된 비밀번호만 사용하세요.",
             "sixth": "여섯번째 규칙: 비밀번호는 혼자만 간직하세요.",
             "seventh": "일곱번째 규칙: 비밀번호를 반드시 백업해 두세요."
@@ -150,36 +145,27 @@
         "recover_password": "계정 복구",
         "current_password": "현재 비밀번호",
         "generated_password": "생성된 비밀번호",
-        "backup_password_by_storing_it":
-            "패스워드는 반드시 관리 프로그램이나 메모장 등을 이용해서 보관하세요.",
-        "enter_account_show_password":
-            "Enter a valid account name to show the password",
+        "backup_password_by_storing_it": "패스워드는 반드시 관리 프로그램이나 메모장 등을 이용해서 보관하세요.",
+        "enter_account_show_password": "Enter a valid account name to show the password",
         "click_to_generate_password": "새 비밀번호를 만드시려면 클릭하세요",
         "re_enter_generate_password": "위에 생성된 비밀번호를 다시 입력하세요",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "비밀번호를 잃어버리면 %(APP_NAME)s이 복구해줄 수 없음을 숙지하였습니다.",
+        "understand_that_APP_NAME_cannot_recover_password": "비밀번호를 잃어버리면 %(APP_NAME)s이 복구해줄 수 없음을 숙지하였습니다.",
         "i_saved_password": "안전한 곳에 비밀번호를 백업 해 두었습니다.",
         "update_password": "새 비밀번호 적용",
         "confirm_password": "비밀번호 확인",
         "account_updated": "변경 사항이 적용 되었습니다.",
-        "password_must_be_characters_or_more":
-            "패스워드는 %(amount)s 글자 이상 이어야 합니다.",
-        "need_password_or_key":
-            "개인 암호 또는 키 (공개 키 아님)가 필요합니다.",
+        "password_must_be_characters_or_more": "패스워드는 %(amount)s 글자 이상 이어야 합니다.",
+        "need_password_or_key": "개인 암호 또는 키 (공개 키 아님)가 필요합니다.",
         "login_to_see_memo": "login to see memo",
         "new_password": "새 비밀번호",
         "incorrect_password": "잘못된 비밀번호",
         "username_does_not_exist": "존재하지 않는 사용자 계정",
-        "account_name_should_start_with_a_letter":
-            "계정명은 반드시 알파벳으로 시작해야 합니다.",
+        "account_name_should_start_with_a_letter": "계정명은 반드시 알파벳으로 시작해야 합니다.",
         "account_name_should_be_shorter": "계정명이 너무 깁니다.",
         "account_name_should_be_longer": "계정명이 너무 짧습니다.",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "계정명에는 알파벳과 숫자, 마침표, 대쉬만 사용 가능합니다.",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "Payout 전 마지막 순간에 게시물에 대한 보상을 늘릴 수 없습니다.",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "매 10 분마다 IP 주소 당 단 하나의 Hive 계정만 허용됩니다.",
+        "account_name_should_have_only_letters_digits_or_dashes": "계정명에는 알파벳과 숫자, 마침표, 대쉬만 사용 가능합니다.",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "Payout 전 마지막 순간에 게시물에 대한 보상을 늘릴 수 없습니다.",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "매 10 분마다 IP 주소 당 단 하나의 Hive 계정만 허용됩니다.",
         "reblog_this_post": "Reblog This Post",
         "reblog": "리스팀",
         "write_your_story": "내용을 입력하세요",
@@ -189,23 +175,18 @@
         "show_private_key": "개인 키 보이기",
         "login_to_show": "로그인 해 확인하기",
         "not_valid_email": "유효하지 않은 이메일",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "Thank you for being an early visitor to %(APP_NAME)s. We will get back to you at the earliest possible opportunity.",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "Thank you for being an early visitor to %(APP_NAME)s. We will get back to you at the earliest possible opportunity.",
         "author_rewards": "저자 보상",
         "curation_rewards": "큐레이션 보상",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
         "register_with_facebook": "Register with Facebook",
-        "or_click_the_button_below_to_register_with_facebook":
-            "Or click the button below to register with Facebook",
+        "or_click_the_button_below_to_register_with_facebook": "Or click the button below to register with Facebook",
         "server_returned_error": "서버 오류",
         "APP_NAME_support": "%(APP_NAME)s Support",
         "please_email_questions_to": "Please email your questions to",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "보팅을 통해 작가들에게 금전적인 지원을 하실 수 있습니다.",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "즐겁게 읽으셨다면 여러분도 지금 바로 가입하셔서 가상화폐 HIVE 을 보상으로 받으세요!",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "보팅을 통해 작가들에게 금전적인 지원을 하실 수 있습니다.",
+            "if_you_enjoyed_what_you_read_earn_amount": "즐겁게 읽으셨다면 여러분도 지금 바로 가입하셔서 가상화폐 HIVE 을 보상으로 받으세요!",
             "free_hive": "FREE HIVE!",
             "sign_up_earn_hive": "Sign up now to earn "
         },
@@ -214,8 +195,7 @@
             "show_less": "Show fewer",
             "value_posts": "low value posts"
         },
-        "read_only_mode":
-            "서버 점검으로 인한 읽기 전용 모드입니다. 불편함을 드려 죄송합니다.",
+        "read_only_mode": "서버 점검으로 인한 읽기 전용 모드입니다. 불편함을 드려 죄송합니다.",
         "tags_and_topics": "태그",
         "show_more_topics": "모든 태그 보기",
         "basic": "Basic",
@@ -231,10 +211,8 @@
             "other": "%(count)s개의 댓글"
         },
         "post_key_warning": {
-            "confirm":
-                "HIVE 개인 키 또는 마스터 비밀번호를 게시하려고 합니다. 관련된 계정과 모든 자산에 대한 제어권을 상실하게 될 것입니다.",
-            "warning":
-                "Hive의 직원을 포함한 합법적 인 사용자는 어떠한 경우에도 개인 키 또는 마스터 비밀번호를 요구하지 않습니다.",
+            "confirm": "HIVE 개인 키 또는 마스터 비밀번호를 게시하려고 합니다. 관련된 계정과 모든 자산에 대한 제어권을 상실하게 될 것입니다.",
+            "warning": "Hive의 직원을 포함한 합법적 인 사용자는 어떠한 경우에도 개인 키 또는 마스터 비밀번호를 요구하지 않습니다.",
             "checkbox": "네 이해합니다."
         }
     },
@@ -263,8 +241,7 @@
         "smt_whitepaper": "SMT 화이트페이퍼",
         "whitepaper": "스팀 화이트페이퍼",
         "intro_tagline": "생각의 가치",
-        "intro_paragraph":
-            "당신의 생각과 글은 소중합니다. 스팀잇은 고급 컨텐츠 생산자들과 큐레이터들에게 투명한 금전적 보상을 지원합니다. 지금 참여하세요.",
+        "intro_paragraph": "당신의 생각과 글은 소중합니다. 스팀잇은 고급 컨텐츠 생산자들과 큐레이터들에게 투명한 금전적 보상을 지원합니다. 지금 참여하세요.",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
         "what_is_hive": "What is Hive?"
@@ -277,15 +254,12 @@
         "shorten_title": "짧은 제목",
         "exceeds_maximum_length": "최대 용량 초과 (%(maxKb)sKB)",
         "including_the_category": " ('%(rootCategory)s' 포함)",
-        "use_limited_amount_of_tags":
-            "You have %(tagsLength)s tags total%(includingCategory)s. Please use only 5 in your post and category line.",
-        "are_you_sure_you_want_to_clear_this_form":
-            "Are you sure you want to exit the comment editor?",
+        "use_limited_amount_of_tags": "You have %(tagsLength)s tags total%(includingCategory)s. Please use only 5 in your post and category line.",
+        "are_you_sure_you_want_to_clear_this_form": "Are you sure you want to exit the comment editor?",
         "uploading": "Uploading",
         "draft_saved": "임시 저장.",
         "editor": "에디터",
-        "insert_images_by_dragging_dropping":
-            "이미지를 추가하시려면 마우스로 끌어다가 놓으시거나, ",
+        "insert_images_by_dragging_dropping": "이미지를 추가하시려면 마우스로 끌어다가 놓으시거나, ",
         "pasting_from_the_clipboard": "클립보드에서 붙여넣기 하시거나, ",
         "selecting_them": "직접 업로드 하세요",
         "image_upload": "사진 업로드",
@@ -307,71 +281,54 @@
         "exceeds_max_beneficiaries": "Can have at most 8 beneficiaries",
         "beneficiary_cannot_be_self": "Cannot specify self as beneficiary",
         "beneficiary_cannot_be_duplicate": "Beneficiary cannot be duplicate",
-        "beneficiary_percent_invalid":
-            "Beneficiary percentage must be from 1-100",
-        "beneficiary_percent_total_invalid":
-            "Beneficiary total percentage must be less than 100"
+        "beneficiary_percent_invalid": "Beneficiary percentage must be from 1-100",
+        "beneficiary_percent_total_invalid": "Beneficiary total percentage must be less than 100"
     },
     "category_selector_jsx": {
-        "tag_your_story":
-            "태그는 최대 5개까지 입력 할 수 있습니다. 메인이 될 태그는 가장 먼저 입력하세요.",
+        "tag_your_story": "태그는 최대 5개까지 입력 할 수 있습니다. 메인이 될 태그는 가장 먼저 입력하세요.",
         "select_a_tag": "태그를 선택하세요.",
         "maximum_tag_length_is_24_characters": "태그는 24 글자까지 가능합니다.",
-        "use_limited_amount_of_categories":
-            "태그는 최대 %(amount)s 개 까지 입력 가능합니다.",
+        "use_limited_amount_of_categories": "태그는 최대 %(amount)s 개 까지 입력 가능합니다.",
         "use_only_lowercase_letters": "소문자만 사용해 주세요.",
         "use_one_dash": "대쉬는 한개만 사용 가능합니다.",
-        "use_spaces_to_separate_tags":
-            "태그와 태그 사이는 공백으로 구분 하세요.",
-        "use_only_allowed_characters":
-            "소문자, 숫자 그리고 대쉬만 사용 가능합니다.",
+        "use_spaces_to_separate_tags": "태그와 태그 사이는 공백으로 구분 하세요.",
+        "use_only_allowed_characters": "소문자, 숫자 그리고 대쉬만 사용 가능합니다.",
         "must_start_with_a_letter": "태그는 반드시 문자로 시작해야 합니다.",
-        "must_end_with_a_letter_or_number":
-            "태그는 반드시 문자나 숫자로 끝나야 합니다."
+        "must_end_with_a_letter_or_number": "태그는 반드시 문자나 숫자로 끝나야 합니다."
     },
     "post_advanced_settings_jsx": {
         "payout_option_header": "Author rewards",
-        "payout_option_description":
-            "What type of tokens do you want as rewards from this post?",
+        "payout_option_description": "What type of tokens do you want as rewards from this post?",
         "current_default": "Default",
         "update_default_in_settings": "Update"
     },
     "postfull_jsx": {
-        "this_post_is_not_available_due_to_a_copyright_claim":
-            "This post is not available due to a copyright claim.",
+        "this_post_is_not_available_due_to_a_copyright_claim": "This post is not available due to a copyright claim.",
         "share_on_facebook": "Facebook에 공유",
         "share_on_twitter": "Twitter에 공유",
         "share_on_linkedin": "Linkedin에 공유",
         "recent_password": "최근 비밀번호",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "In 3.5 days, convert %(amount)s %(DEBT_TOKEN)s into %(LIQUID_TOKEN)s",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "In 3.5 days, convert %(amount)s %(DEBT_TOKEN)s into %(LIQUID_TOKEN)s",
         "view_the_full_context": "전체 글 보기",
         "view_the_direct_parent": "상위 댓글 보기",
-        "you_are_viewing_a_single_comments_thread_from":
-            "You are viewing a single comment's thread from"
+        "you_are_viewing_a_single_comments_thread_from": "You are viewing a single comment's thread from"
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "From time to time, a Hiveian's owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on %(APP_URL)s if the account owner had previously listed '%(APP_NAME)s' as their account trustee and complied with %(APP_NAME)s's Terms of Service."
+        "recover_account_intro": "From time to time, a Hiveian's owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on %(APP_URL)s if the account owner had previously listed '%(APP_NAME)s' as their account trustee and complied with %(APP_NAME)s's Terms of Service."
     },
     "user_profile": {
         "unknown_account": "Unknown Account",
-        "user_hasnt_made_any_posts_yet":
-            "%(name)s님은 아직 남긴 글이 없습니다.",
-        "user_hasnt_started_bloggin_yet":
-            "%(name)s님은 아직 블로깅을 시작하지 않았습니다.",
-        "user_hasnt_followed_anything_yet":
-            "Looks like %(name)s might not be following anyone yet! If %(name)s recently added new users to follow, their personalized feed will populate once new content is available.",
+        "user_hasnt_made_any_posts_yet": "%(name)s님은 아직 남긴 글이 없습니다.",
+        "user_hasnt_started_bloggin_yet": "%(name)s님은 아직 블로깅을 시작하지 않았습니다.",
+        "user_hasnt_followed_anything_yet": "Looks like %(name)s might not be following anyone yet! If %(name)s recently added new users to follow, their personalized feed will populate once new content is available.",
         "user_hasnt_had_any_replies_yet": "%(name)s hasn't had any replies yet",
-        "looks_like_you_havent_posted_anything_yet":
-            "아직 포스팅을 하지 않았습니다.",
+        "looks_like_you_havent_posted_anything_yet": "아직 포스팅을 하지 않았습니다.",
         "create_a_post": "글쓰기",
         "explore_trending_articles": "대세글 읽어보기",
         "read_the_quick_start_guide": "빠른 시작 가이드",
         "browse_the_faq": "자주 찾는 질문",
         "followers": "팔로워",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "이것은 %(name)s님의 평판 점수입니다.\n\n평판 점수는 %(name)s님이 받은 보팅 기록에 기반합니다. 이 평판 점수는 질이 나쁜 콘텐츠를 가려내기 위해 사용됩니다.",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "이것은 %(name)s님의 평판 점수입니다.\n\n평판 점수는 %(name)s님이 받은 보팅 기록에 기반합니다. 이 평판 점수는 질이 나쁜 콘텐츠를 가려내기 위해 사용됩니다.",
         "follower_count": {
             "zero": "팔로워 없음",
             "one": "한명의 팔로워",
@@ -391,21 +348,16 @@
         "show_all": "Show All"
     },
     "post_jsx": {
-        "now_showing_comments_with_low_ratings":
-            "Now showing comments with low ratings",
+        "now_showing_comments_with_low_ratings": "Now showing comments with low ratings",
         "sort_order": "정렬 순서",
-        "comments_were_hidden_due_to_low_ratings":
-            "Comments were hidden due to low ratings"
+        "comments_were_hidden_due_to_low_ratings": "Comments were hidden due to low ratings"
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "다운 보팅을 하시면 보상액을 없애고, 해당 게시물을 눈에 덜 띄게 만들 수 있습니다. 다운 보팅 사유는 다음과 같습니다.",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "다운 보팅을 하시면 보상액을 없애고, 해당 게시물을 눈에 덜 띄게 만들 수 있습니다. 다운 보팅 사유는 다음과 같습니다.",
         "disagreement_on_rewards": "동의할 수 없을 정도로 지나치게 많은 보상액",
         "fraud_or_plagiarism": "사기 혹은 표절",
-        "hate_speech_or_internet_trolling":
-            "증오 및 혐오 발언, 악플과 비난 게시물",
-        "intentional_miss_categorized_content_or_spam":
-            "의도적인 태그 오용 혹은 스팸",
+        "hate_speech_or_internet_trolling": "증오 및 혐오 발언, 악플과 비난 게시물",
+        "intentional_miss_categorized_content_or_spam": "의도적인 태그 오용 혹은 스팸",
         "pending_payout": "예상 보상금액: $%(value)s",
         "payout_declined": "보상을 사양함",
         "max_accepted_payout": "최대 허용 보상액 $%(value)s",
@@ -413,8 +365,7 @@
         "past_payouts": "지급된 보상 $%(value)s",
         "past_payouts_author": " - 저자 $%(value)s",
         "past_payouts_curators": " - 큐레이터 $%(value)s",
-        "we_will_reset_curation_rewards_for_this_post":
-            "will reset your curation rewards for this post",
+        "we_will_reset_curation_rewards_for_this_post": "will reset your curation rewards for this post",
         "removing_your_vote": "보팅 취소",
         "changing_to_an_upvote": "Changing to an Up-Vote",
         "changing_to_a_downvote": "Changing to a Down-Vote",
@@ -426,13 +377,11 @@
         }
     },
     "votesandcomments_jsx": {
-        "no_responses_yet_click_to_respond":
-            "댓글이 없습니다. 댓글을 작성하시려면 클릭하세요.",
+        "no_responses_yet_click_to_respond": "댓글이 없습니다. 댓글을 작성하시려면 클릭하세요.",
         "response_count_tooltip": {
             "zero": "댓글이 없습니다. 댓글을 작성하시려면 클릭하세요.",
             "one": "한개의 댓글이 있습니다. 댓글을 작성하시려면 클릭하세요.",
-            "other":
-                "%(count)s개의 댓글이 있습니다. 댓글을 작성하시려면 클릭하세요."
+            "other": "%(count)s개의 댓글이 있습니다. 댓글을 작성하시려면 클릭하세요."
         },
         "vote_count": {
             "zero": "추천 없음",
@@ -445,67 +394,46 @@
         "private": "개인",
         "public_something_key": "공개 %(key)s 키",
         "private_something_key": "개인 %(key)s 키",
-        "posting_key_is_required_it_should_be_different":
-            "포스팅 키는 새 글을 작성하거나 다른 회원의 글에 보팅할 때 필요합니다. 액티브 키나 오너 키와는 달라야 합니다.",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "액티브 키는 스팀 달러나 스팀을 다른 이에게 전송하거나 내부 마켓에서 거래를 할 때 필요합니다.",
-        "the_owner_key_is_required_to_change_other_keys":
-            "오너 키는 계정의 마스터 키입니다. 다른 모든 키들을 바꿀 때 필요합니다.",
-        "the_private_key_or_password_should_be_kept_offline":
-            "개인 키와 오너 키의 비밀번호는 가능한 많이 오프라인에 저장해두세요.",
-        "the_memo_key_is_used_to_create_and_read_memos":
-            "메모 키는 사적인 메모를 작성하거나 읽을 때 필요합니다."
+        "posting_key_is_required_it_should_be_different": "포스팅 키는 새 글을 작성하거나 다른 회원의 글에 보팅할 때 필요합니다. 액티브 키나 오너 키와는 달라야 합니다.",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "액티브 키는 스팀 달러나 스팀을 다른 이에게 전송하거나 내부 마켓에서 거래를 할 때 필요합니다.",
+        "the_owner_key_is_required_to_change_other_keys": "오너 키는 계정의 마스터 키입니다. 다른 모든 키들을 바꿀 때 필요합니다.",
+        "the_private_key_or_password_should_be_kept_offline": "개인 키와 오너 키의 비밀번호는 가능한 많이 오프라인에 저장해두세요.",
+        "the_memo_key_is_used_to_create_and_read_memos": "메모 키는 사적인 메모를 작성하거나 읽을 때 필요합니다."
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)s cannot recover passwords. Keep this page in a secure location, such as a fireproof safe or safety deposit box.",
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)s cannot recover passwords. Keep this page in a secure location, such as a fireproof safe or safety deposit box.",
         "APP_NAME_password_backup": "%(APP_NAME)s Password Backup",
-        "APP_NAME_password_backup_required":
-            "%(APP_NAME)s Password Backup (required)",
-        "after_printing_write_down_your_user_name":
-            "After printing, write down your user name"
+        "APP_NAME_password_backup_required": "%(APP_NAME)s Password Backup (required)",
+        "after_printing_write_down_your_user_name": "After printing, write down your user name"
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "Your existing %(DEBT_TOKEN)s are liquid and transferable. Instead you may wish to trade %(DEBT_TOKEN)s directly in this site under %(link)s or transfer to an external market.",
-        "this_is_a_price_feed_conversion":
-            "This is a price feed conversion. The 3.5 day delay is necessary to prevent abuse from gaming the price feed average",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "Your existing %(DEBT_TOKEN)s are liquid and transferable. Instead you may wish to trade %(DEBT_TOKEN)s directly in this site under %(link)s or transfer to an external market.",
+        "this_is_a_price_feed_conversion": "This is a price feed conversion. The 3.5 day delay is necessary to prevent abuse from gaming the price feed average",
         "convert_to_LIQUID_TOKEN": "%(LIQUID_TOKEN)s 으로 전환",
-        "DEBT_TOKEN_will_be_unavailable":
-            "This action will take place 3.5 days from now and can not be canceled. These %(DEBT_TOKEN)s will immediately become unavailable"
+        "DEBT_TOKEN_will_be_unavailable": "This action will take place 3.5 days from now and can not be canceled. These %(DEBT_TOKEN)s will immediately become unavailable"
     },
     "tips_js": {
-        "liquid_token":
-            "교환과 송금이 가능한 토큰입니다.<br/> 파워업을 통해 %(LIQUID_TOKEN)s을 %(VESTING_TOKEN)s으로 전환 하실 수 있습니다.",
-        "influence_token":
-            "스팀잇에서의 영향력을 나타냅니다. 스팀 파워가 높을수록 보팅 금액이 더 높아지고, 큐레이션 보상도 더 많이 받을 수 있습니다.",
-        "estimated_value":
-            "%(LIQUID_TOKEN)s의 평균 가격을 US달러로 환산한 기준입니다.",
-        "non_transferable":
-            "%(VESTING_TOKEN)s는 전송이 불가능하며, 다시 %(LIQUID_TOKEN)s으로 전환하기 위해서는 3달이 소요됩니다. (13회로 나누어 전환 됩니다)",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "Converted %(VESTING_TOKEN)s can be sent to yourself or someone else but can not transfer again without converting back to %(LIQUID_TOKEN)s.",
-        "part_of_your_hive_power_is_currently_delegated":
-            "%(user_name)s 님은 HIVE POWER 를 임대 받고 있습니다. 임대 받는 양은 가입 시기에 따라 가변적입니다."
+        "liquid_token": "교환과 송금이 가능한 토큰입니다.<br/> 파워업을 통해 %(LIQUID_TOKEN)s을 %(VESTING_TOKEN)s으로 전환 하실 수 있습니다.",
+        "influence_token": "스팀잇에서의 영향력을 나타냅니다. 스팀 파워가 높을수록 보팅 금액이 더 높아지고, 큐레이션 보상도 더 많이 받을 수 있습니다.",
+        "estimated_value": "%(LIQUID_TOKEN)s의 평균 가격을 US달러로 환산한 기준입니다.",
+        "non_transferable": "%(VESTING_TOKEN)s는 전송이 불가능하며, 다시 %(LIQUID_TOKEN)s으로 전환하기 위해서는 3달이 소요됩니다. (13회로 나누어 전환 됩니다)",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "Converted %(VESTING_TOKEN)s can be sent to yourself or someone else but can not transfer again without converting back to %(LIQUID_TOKEN)s.",
+        "part_of_your_hive_power_is_currently_delegated": "%(user_name)s 님은 HIVE POWER 를 임대 받고 있습니다. 임대 받는 양은 가입 시기에 따라 가변적입니다."
     },
     "promote_post_jsx": {
         "promote_post": "Promote Post",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "%(DEBT_TOKEN)s를 지불하시면 '홍보글' 코너에 게시물이 올라갑니다.",
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "%(DEBT_TOKEN)s를 지불하시면 '홍보글' 코너에 게시물이 올라갑니다.",
         "you_successfully_promoted_this_post": "홍보 하였습니다.",
-        "this_post_was_hidden_due_to_low_ratings":
-            "다운보팅에 의해 블라인드 처리 되었습니다."
+        "this_post_was_hidden_due_to_low_ratings": "다운보팅에 의해 블라인드 처리 되었습니다."
     },
     "about_jsx": {
         "about_app": "About %(APP_NAME)s",
-        "about_app_details":
-            "%(APP_NAME)s is a social media platform where everyone gets paid for creating and curating content. It leverages a robust digital points system, called Hive, that supports real value for digital rewards through market price discovery and liquidity.",
+        "about_app_details": "%(APP_NAME)s is a social media platform where everyone gets paid for creating and curating content. It leverages a robust digital points system, called Hive, that supports real value for digital rewards through market price discovery and liquidity.",
         "learn_more_at_app_url": "Learn more at %(APP_URL)s",
         "resources": "Resources"
     },
     "markdownviewer_jsx": {
-        "images_were_hidden_due_to_low_ratings":
-            "Images were hidden due to low ratings."
+        "images_were_hidden_due_to_low_ratings": "Images were hidden due to low ratings."
     },
     "postsummary_jsx": {
         "reblogged": "리스팀",
@@ -518,8 +446,7 @@
     },
     "posts_index": {
         "empty_feed_1": "Looks like you haven't followed anything yet",
-        "empty_feed_2":
-            "If you recently added new users to follow, your personalized feed will populate once new content is available",
+        "empty_feed_2": "If you recently added new users to follow, your personalized feed will populate once new content is available",
         "empty_feed_3": "Explore Trending Articles",
         "empty_feed_4": "Read The Quick Start Guide",
         "empty_feed_5": "Browse The FAQ"
@@ -543,43 +470,30 @@
         "comments_by": "Comments by"
     },
     "loginform_jsx": {
-        "you_need_a_private_password_or_key":
-            "You need a private password or key (not a public key)",
+        "you_need_a_private_password_or_key": "You need a private password or key (not a public key)",
         "cryptography_test_failed": "Cryptography test failed",
-        "unable_to_log_you_in":
-            "We will be unable to log you in with this browser.",
+        "unable_to_log_you_in": "We will be unable to log you in with this browser.",
         "the_latest_versions_of": "The latest versions of ",
-        "are_well_tested_and_known_to_work_with":
-            "are well tested and known to work with %(APP_URL)s.",
-        "due_to_server_maintenance":
-            "Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.",
+        "are_well_tested_and_known_to_work_with": "are well tested and known to work with %(APP_URL)s.",
+        "due_to_server_maintenance": "Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.",
         "login_to_vote": "Login to Vote",
         "login_to_post": "Login to Post",
         "login_to_comment": "Login to Comment",
         "posting": "Posting",
         "active_or_owner": "Active or Owner",
-        "this_password_is_bound_to_your_account_owner_key":
-            "This password is bound to your account's owner key and can not be used to login to this site.",
+        "this_password_is_bound_to_your_account_owner_key": "This password is bound to your account's owner key and can not be used to login to this site.",
         "however_you_can_use_it_to": "However, you can use it to ",
         "update_your_password": "update your password",
-        "to_obtain_a_more_secure_set_of_keys":
-            "to obtain a more secure set of keys.",
-        "this_password_is_bound_to_your_account_active_key":
-            "This password is bound to your account's active key and can not be used to login to this page.",
-        "you_may_use_this_active_key_on_other_more":
-            "You may use this active key on other more secure pages like the Wallet or Market pages.",
-        "you_account_has_been_successfully_created":
-            "You account has been successfully created!",
-        "you_account_has_been_successfully_recovered":
-            "You account has been successfully recovered!",
-        "password_update_succes":
-            "The password for %(accountName)s was successfully updated",
-        "password_info":
-            "암호 또는 개인키가 잘못 입력되었습니다. 타자입력의 실수 또는 데이터 입력의 오류일 수 있습니다. 힌트: Hive 에서 생성된 암호 또는 개인키에는 0(숫자 0), O(영문자O), I(대문자I), l(소문자 L)을 절대로 포함하지 않습니다.",
+        "to_obtain_a_more_secure_set_of_keys": "to obtain a more secure set of keys.",
+        "this_password_is_bound_to_your_account_active_key": "This password is bound to your account's active key and can not be used to login to this page.",
+        "you_may_use_this_active_key_on_other_more": "You may use this active key on other more secure pages like the Wallet or Market pages.",
+        "you_account_has_been_successfully_created": "You account has been successfully created!",
+        "you_account_has_been_successfully_recovered": "You account has been successfully recovered!",
+        "password_update_succes": "The password for %(accountName)s was successfully updated",
+        "password_info": "암호 또는 개인키가 잘못 입력되었습니다. 타자입력의 실수 또는 데이터 입력의 오류일 수 있습니다. 힌트: Hive 에서 생성된 암호 또는 개인키에는 0(숫자 0), O(영문자O), I(대문자I), l(소문자 L)을 절대로 포함하지 않습니다.",
         "enter_your_username": "Enter your username",
         "password_or_wif": "Password or WIF",
-        "this_operation_requires_your_key_or_master_password":
-            "이 작업은 %(authType)s 키 또는 마스터 비밀번호가 필요합니다.",
+        "this_operation_requires_your_key_or_master_password": "이 작업은 %(authType)s 키 또는 마스터 비밀번호가 필요합니다.",
         "keep_me_logged_in": "로그인 유지",
         "amazing_community": "amazing community",
         "to_comment_and_reward_others": " to comment and reward others.",
@@ -599,12 +513,10 @@
         "be_shorter": "be shorter.",
         "each_account_segment_should": "Each account segment should ",
         "start_with_a_letter": "start with a letter.",
-        "have_only_letters_digits_or_dashes":
-            "have only letters, digits, or dashes.",
+        "have_only_letters_digits_or_dashes": "have only letters, digits, or dashes.",
         "have_only_one_dash_in_a_row": "have only one dash in a row.",
         "end_with_a_letter_or_digit": "end with a letter or digit.",
-        "verified_exchange_no_memo":
-            "You must include a memo for your exchange transfer."
+        "verified_exchange_no_memo": "You must include a memo for your exchange transfer."
     },
     "settings_jsx": {
         "invalid_url": "잘못된 URL 입니다",
@@ -634,14 +546,11 @@
         "remove": "없애다",
         "add_api_endpoint": "API 엔드 포인트 추가",
         "reset_endpoints": "엔드 포인트 재설정",
-        "error_bad_url":
-            "잘못된 URL 인 것 같습니다. 확인 후 다시 시도하십시오.",
+        "error_bad_url": "잘못된 URL 인 것 같습니다. 확인 후 다시 시도하십시오.",
         "error_bad_cookie": "쿠키에서 엔드 포인트를 가져올 수 없습니다",
         "error_already_exists": "이 엔드 포인트는 이미 목록에 있습니다",
-        "error_cant_remove_active":
-            "현재 기본 엔드 포인트를 제거 할 수 없습니다. 우선 새로운 선호 엔드 포인트를 선택하십시오",
-        "error_cant_remove_all":
-            "목록에 하나 이상의 엔드 포인트가 있어야합니다."
+        "error_cant_remove_active": "현재 기본 엔드 포인트를 제거 할 수 없습니다. 우선 새로운 선호 엔드 포인트를 선택하십시오",
+        "error_cant_remove_all": "목록에 하나 이상의 엔드 포인트가 있어야합니다."
     },
     "transfer_jsx": {
         "amount_is_in_form": "Amount is in the form 99999.999",
@@ -652,19 +561,14 @@
         "this_memo_is_private": "공개되지 않는 메모입니다.",
         "this_memo_is_public": "모두에게 공개되는 메모입니다.",
         "convert_to_VESTING_TOKEN": "Convert to %(VESTING_TOKEN)s",
-        "balance_subject_to_3_day_withdraw_waiting_period":
-            "3일간의 예치기간이 지나야 출금하실 수 있으며, ",
+        "balance_subject_to_3_day_withdraw_waiting_period": "3일간의 예치기간이 지나야 출금하실 수 있으며, ",
         "move_funds_to_another_account": "다른 Hive 계좌로 송금",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "금고 보관 시 출금에 3일의 예치기간이 소요됩니다.",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "출금 시 3일의 예치기간이 소요됩니다.",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "금고 보관 시 출금에 3일의 예치기간이 소요됩니다.",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "출금 시 3일의 예치기간이 소요됩니다.",
         "from": "From",
         "to": "To",
-        "asset_currently_collecting":
-            "%(asset)s의 연이율은 현재 %(interest)s%% 입니다.",
-        "beware_of_spam_and_phishing_links":
-            "메모에는 스팸과 피싱 링크가 포함 될 수 있으니 주의하십시오. 신뢰할 수없는 사용자의 링크를 열지 마십시오. 또한 다른 어떤 웹 사이트에도 개인키를 공개하지 마십시오."
+        "asset_currently_collecting": "%(asset)s의 연이율은 현재 %(interest)s%% 입니다.",
+        "beware_of_spam_and_phishing_links": "메모에는 스팸과 피싱 링크가 포함 될 수 있으니 주의하십시오. 신뢰할 수없는 사용자의 링크를 열지 마십시오. 또한 다른 어떤 웹 사이트에도 개인키를 공개하지 마십시오."
     },
     "userwallet_jsx": {
         "conversion_complete_tip": "Will complete on",
@@ -676,22 +580,18 @@
         "convert_to_LIQUID_TOKEN": "%(LIQUID_TOKEN)s 으로 전환",
         "withdraw_LIQUID_TOKEN": "%(LIQUID_TOKEN)s 출금",
         "withdraw_DEBT_TOKENS": "%(DEBT_TOKENS)s 출금",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "%(LIQUID_TICKER)s의 1달러 가치가 있는 토큰입니다. 현재 연이율은 %(hbdInterest)s%% 입니다.",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "%(LIQUID_TICKER)s의 1달러 가치가 있는 토큰입니다. 현재 연이율은 %(hbdInterest)s%% 입니다.",
         "savings": "예금",
         "estimated_account_value": "추정 자산가치",
         "next_power_down_is_scheduled_to_happen": "다음 파워다운 예정:",
-        "transfers_are_temporary_disabled":
-            "현재 일시적인 이유로 송금이 불가능합니다.",
+        "transfers_are_temporary_disabled": "현재 일시적인 이유로 송금이 불가능합니다.",
         "history": "거래 내역",
         "redeem_rewards": "내 지갑으로 입금하기",
         "buy_hive_or_hive_power": "HIVE, HIVE POWER 구입"
     },
     "checkloginowner_jsx": {
-        "your_password_permissions_were_reduced":
-            "Your password permissions were reduced",
-        "if_you_did_not_make_this_change":
-            "If you did not make this change please",
+        "your_password_permissions_were_reduced": "Your password permissions were reduced",
+        "if_you_did_not_make_this_change": "If you did not make this change please",
         "ownership_changed_on": "Ownership Changed On ",
         "deadline_for_recovery_is": "Deadline for recovery is",
         "i_understand_dont_show_again": "이 메시지를 다시 보지 않기"
diff --git a/src/app/locales/pl.json b/src/app/locales/pl.json
index b065941833f7af006f1af81a8a927782ce718bda..19bdd6f68ac8b53c62cf7519a1718c05e429db3b 100644
--- a/src/app/locales/pl.json
+++ b/src/app/locales/pl.json
@@ -28,15 +28,12 @@
         "community_settings_header": "Ustawienia Społeczności",
         "community_settings_description": "What does your community stand for?",
         "community_list_header": "Społeczności",
-        "community_user_role_add_description":
-            "Ustaw rolę użytkownika w tej społeczności.",
-        "community_user_role_edit_description":
-            "Zmiana roli użytkownika @%(username)s",
+        "community_user_role_add_description": "Ustaw rolę użytkownika w tej społeczności.",
+        "community_user_role_edit_description": "Zmiana roli użytkownika @%(username)s",
         "community_user_role_add_header": "Dodaj rolę użytkownika",
         "community_user_role_edit_header": "Zmień rolę użytkownika",
         "community_user_title_edit_header": "Zmień tytuł użytkownika",
-        "community_user_title_edit_description":
-            "Ustaw tytuł dla @%(username)s",
+        "community_user_title_edit_description": "Ustaw tytuł dla @%(username)s",
         "comments": "Komentarze",
         "confirm": "Potwierdź",
         "convert": "Konwersja",
@@ -50,8 +47,7 @@
         "feed": "Strumień",
         "flag": "Flaga",
         "flag_this_post": "Oflaguj %(type)s",
-        "flag_this_post_description":
-            "Please provide a note regarding your decision to flag this %(type)s, it will be reviewed by community moderators.",
+        "flag_this_post_description": "Please provide a note regarding your decision to flag this %(type)s, it will be reviewed by community moderators.",
         "follow": "Obserwuj",
         "for": "za",
         "from": "od",
@@ -85,8 +81,7 @@
         "password": "Hasło",
         "payouts": "Wynagrodzenia",
         "permissions": "Uprawnienia",
-        "phishy_message":
-            "Link rozszerzony na zwykły tekst; uważaj na potencjalną próbę phishingu",
+        "phishy_message": "Link rozszerzony na zwykły tekst; uważaj na potencjalną próbę phishingu",
         "pin": "Przypnij",
         "post": "Napisz",
         "post_as": "Napisz jako %(username)s",
@@ -115,8 +110,7 @@
         },
         "reputation": "Reputacja",
         "reveal_comment": "Odsłoń komentarz",
-        "will_be_hidden_due_to_low_rating":
-            "Zostanie ukryty ze względu na niską ocenę wiarygodności",
+        "will_be_hidden_due_to_low_rating": "Zostanie ukryty ze względu na niską ocenę wiarygodności",
         "request": "prośba",
         "required": "Wymagany",
         "rewards": "Nagrody",
@@ -127,11 +121,9 @@
         "settings": "Ustawienia",
         "share_this_post": "Udostępnij ten post",
         "mute_this_post": "Wycisz post/komentarz",
-        "mute_this_post_description":
-            "Proszę podać notatkę dotyczącą decyzji o wyciszeniu tej treści.",
+        "mute_this_post_description": "Proszę podać notatkę dotyczącą decyzji o wyciszeniu tej treści.",
         "unmute_this_post": "Wyłącz wyciszenie tego postu/komentarza",
-        "unmute_this_post_description":
-            "Proszę podać notatkę dotyczącą decyzji o wyłączeniu wyciszenia tej treści.",
+        "unmute_this_post_description": "Proszę podać notatkę dotyczącą decyzji o wyłączeniu wyciszenia tej treści.",
         "show": "Pokaż",
         "sign_in": "Zaloguj siÄ™",
         "sign_up": "Zapisz siÄ™",
@@ -172,86 +164,63 @@
         "account_name": "Nazwa konta",
         "recover_your_account": "odzyskaj swoje konto",
         "reset_usernames_password": "Zresetuj hasło dla %(username)s",
-        "this_will_update_usernames_authtype_key":
-            "To dokona aktualizacji klucza %(authType)sdla %(username)s",
+        "this_will_update_usernames_authtype_key": "To dokona aktualizacji klucza %(authType)sdla %(username)s",
         "passwords_do_not_match": "Hasła się różnią",
-        "you_need_private_password_or_key_not_a_public_key":
-            "Potrzebujesz hasła głównego lub klucza prywatnego (nie klucza publicznego)",
+        "you_need_private_password_or_key_not_a_public_key": "Potrzebujesz hasła głównego lub klucza prywatnego (nie klucza publicznego)",
         "the_rules_of_APP_NAME": {
-            "one":
-                "Pierwsza zasada %(APP_NAME)s brzmi: Nie zgub swojego hasła.",
-            "second":
-                "Druga zasada %(APP_NAME)s brzmi: Nie zgub swojego hasła.",
-            "third":
-                "Trzecia zasada %(APP_NAME)s brzmi: Nie mamy możliwości odzyskania Twojego hasła.",
-            "fourth":
-                "Czwarta zasada: Jeśli potrafisz zapamiętać hasło to nie jest ono bezpieczne.",
-            "fifth":
-                "Piąta zasada: Używaj wyłącznie losowo generowanych haseł.",
+            "one": "Pierwsza zasada %(APP_NAME)s brzmi: Nie zgub swojego hasła.",
+            "second": "Druga zasada %(APP_NAME)s brzmi: Nie zgub swojego hasła.",
+            "third": "Trzecia zasada %(APP_NAME)s brzmi: Nie mamy możliwości odzyskania Twojego hasła.",
+            "fourth": "Czwarta zasada: Jeśli potrafisz zapamiętać hasło to nie jest ono bezpieczne.",
+            "fifth": "Piąta zasada: Używaj wyłącznie losowo generowanych haseł.",
             "sixth": "Szósta zasada: Nie ujawniaj nikomu swojego hasła.",
-            "seventh":
-                "Siódma zasada: Zawsze miej kopię zapasową swojego hasła."
+            "seventh": "Siódma zasada: Zawsze miej kopię zapasową swojego hasła."
         },
         "recover_password": "Odzyskaj konto",
         "current_password": "Obecne hasło",
         "generated_password": "Wygenerowane hasło",
-        "backup_password_by_storing_it":
-            "Zachowaj je zapisując w menadżerze haseł lub w pliku tekstowym",
-        "enter_account_show_password":
-            "Wpisz prawidłową nazwę konta by pokazać hasło",
+        "backup_password_by_storing_it": "Zachowaj je zapisując w menadżerze haseł lub w pliku tekstowym",
+        "enter_account_show_password": "Wpisz prawidłową nazwę konta by pokazać hasło",
         "click_to_generate_password": "Kliknij by wygenerować hasło",
         "re_enter_generate_password": "Podaj ponownie wygenerowane hasło",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "Rozumiem, że %(APP_NAME)s nie ma możliwości odzyskania utraconych haseł",
+        "understand_that_APP_NAME_cannot_recover_password": "Rozumiem, że %(APP_NAME)s nie ma możliwości odzyskania utraconych haseł",
         "i_saved_password": "Zachowałem bezpiecznie moje wygenerowane hasło",
         "update_password": "Zaktualizuj hasło",
         "confirm_password": "Potwierdź hasło",
         "account_updated": "Konto zaktualizowane",
-        "password_must_be_characters_or_more":
-            "Hasło musi posiadać %(amount)s lub więcej znaków",
-        "need_password_or_key":
-            "Potrzebujesz hasła głównego lub klucza prywatnego (nie klucza publicznego)",
+        "password_must_be_characters_or_more": "Hasło musi posiadać %(amount)s lub więcej znaków",
+        "need_password_or_key": "Potrzebujesz hasła głównego lub klucza prywatnego (nie klucza publicznego)",
         "login_to_see_memo": "zaloguj by zobaczyć memo",
         "new_password": "Nowe hasło",
         "incorrect_password": "Nieprawidłowe hasło",
         "username_does_not_exist": "Nazwa użytkownika nie istnieje",
-        "account_name_should_start_with_a_letter":
-            "Nazwa konta powinna zaczynać się od litery",
+        "account_name_should_start_with_a_letter": "Nazwa konta powinna zaczynać się od litery",
         "account_name_should_be_shorter": "Nazwa konta powinna być krótsza",
         "account_name_should_be_longer": "Nazwa konta powinna być dłuższa",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "Nazwa konta powinna zawierać wyłącznie litery, cyfry, kropki lub myślniki",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "Nie można zwiększyć nagrody za post w ostatnich chwilach przed wypłatą",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "Dozwolone jest tylko jedno konto Hive dla danego adresu IP w ciÄ…gu 10 minut",
+        "account_name_should_have_only_letters_digits_or_dashes": "Nazwa konta powinna zawierać wyłącznie litery, cyfry, kropki lub myślniki",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "Nie można zwiększyć nagrody za post w ostatnich chwilach przed wypłatą",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "Dozwolone jest tylko jedno konto Hive dla danego adresu IP w ciÄ…gu 10 minut",
         "reblog_this_post": "Rebloguj ten post",
         "reblog": "Reblog",
         "write_your_story": "Napisz swojÄ… historiÄ™",
-        "remember_voting_and_posting_key":
-            "Zapamiętaj klucze do głosowania i tworzenia wpisów",
+        "remember_voting_and_posting_key": "Zapamiętaj klucze do głosowania i tworzenia wpisów",
         "auto_login_question_mark": "Automatyczne logowanie?",
         "hide_private_key": "Ukryj klucz prywatny",
         "show_private_key": "Pokaż klucz prywatny",
         "login_to_show": "Zaloguj się by wyświetlić",
         "not_valid_email": "Niepoprawny adres email",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "Dziękujemy za to, że jesteś jednym z pierwszych odwiedzających%(APP_NAME)s. Skontaktujemy się z tobą przy najbliższej okazji.",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "Dziękujemy za to, że jesteś jednym z pierwszych odwiedzających%(APP_NAME)s. Skontaktujemy się z tobą przy najbliższej okazji.",
         "author_rewards": "Wynagrodzenia autorskie",
         "curation_rewards": "Wynagrodzenia kuratorskie",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "Twoje konto nie ma wystarczającej liczby punktów Reddit Karma, by zakwalifikować się na natychmiastową rejestrację. Podaj swój adres email by umieścić go na liście oczekujących ",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "Twoje konto nie ma wystarczającej liczby punktów Reddit Karma, by zakwalifikować się na natychmiastową rejestrację. Podaj swój adres email by umieścić go na liście oczekujących ",
         "register_with_facebook": "Zarejestruj się z użyciem Facebooka",
-        "or_click_the_button_below_to_register_with_facebook":
-            "Lub kliknij przycisk poniżej by zarejestrować się z użyciem Facebooka",
+        "or_click_the_button_below_to_register_with_facebook": "Lub kliknij przycisk poniżej by zarejestrować się z użyciem Facebooka",
         "server_returned_error": "serwer zwrócił błąd",
         "APP_NAME_support": "Wsparcie %(APP_NAME)s",
         "please_email_questions_to": "Proszę wysłać swoje zapytanie na maila",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "Autorzy otrzymują wypłatę gdy ludzie tacy jak Ty głosują na ich wpisy",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "Jeśli podobało Ci się to o czym tu czytałeś, jeszcze dziś załóż tu konto i zacznij zarabiać DARMOWE TOKENY HIVE!",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "Autorzy otrzymują wypłatę gdy ludzie tacy jak Ty głosują na ich wpisy",
+            "if_you_enjoyed_what_you_read_earn_amount": "Jeśli podobało Ci się to o czym tu czytałeś, jeszcze dziś załóż tu konto i zacznij zarabiać DARMOWE TOKENY HIVE!",
             "free_hive": "DARMOWE TOKENY HIVE",
             "sign_up_earn_hive": "Zarejestruj się by zarabiać"
         },
@@ -260,8 +229,7 @@
             "show_less": "Pokaż mniej",
             "value_posts": "posty niskiej jakości"
         },
-        "read_only_mode":
-            "Z powodu prac na serwerze działamy w trybie tylko do odczytu.\nPrzepraszamy za niedogodności.",
+        "read_only_mode": "Z powodu prac na serwerze działamy w trybie tylko do odczytu.\nPrzepraszamy za niedogodności.",
         "tags_and_topics": "Kategorie",
         "show_more_topics": "Pokaż więcej społeczności",
         "basic": "Podstawowy",
@@ -277,10 +245,8 @@
             "other": "%(count)s odpowiedzi"
         },
         "post_key_warning": {
-            "confirm":
-                "Zamierzasz opublikować klucz prywatny lub hasło główne do swojego konta HIVE. Prawdopodobnie stracisz kontrolę nad powiązanym kontem i wszystkimi jego środkami.",
-            "warning":
-                "Uczciwi użytkownicy, w tym pracownicy Hive, nigdy nie poproszą Cię o klucz prywatny lub hasło główne.",
+            "confirm": "Zamierzasz opublikować klucz prywatny lub hasło główne do swojego konta HIVE. Prawdopodobnie stracisz kontrolę nad powiązanym kontem i wszystkimi jego środkami.",
+            "warning": "Uczciwi użytkownicy, w tym pracownicy Hive, nigdy nie poproszą Cię o klucz prywatny lub hasło główne.",
             "checkbox": "Zrozumiałem"
         }
     },
@@ -311,8 +277,7 @@
         "smt_whitepaper": "SMT Whitepaper",
         "whitepaper": "Hive Whitepaper",
         "intro_tagline": "Pieniądze mają głos.",
-        "intro_paragraph":
-            "Twój głos ma wartość. Dołącz do społeczności, która płaci za publikowanie i głosowanie na wysokiej jakości treści.",
+        "intro_paragraph": "Twój głos ma wartość. Dołącz do społeczności, która płaci za publikowanie i głosowanie na wysokiej jakości treści.",
         "jobs": "Praca w Hive",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
@@ -327,25 +292,21 @@
         "shorten_title": "Tytuł skrócony",
         "exceeds_maximum_length": "Przekracza maksymalną długość (%(maxKb)sKB)",
         "including_the_category": "(wliczajÄ…c kategoriÄ™ '%(rootCategory)s')",
-        "use_limited_amount_of_tags":
-            "Masz %(tagsLength)s tagów total%(includingCategory)s. Ogranicz liczbę tagów do 5 w swoim poście.",
-        "are_you_sure_you_want_to_clear_this_form":
-            "Czy jesteś pewien, że chcesz wyczyścić ten formularz?",
+        "use_limited_amount_of_tags": "Masz %(tagsLength)s tagów total%(includingCategory)s. Ogranicz liczbę tagów do 5 w swoim poście.",
+        "are_you_sure_you_want_to_clear_this_form": "Czy jesteś pewien, że chcesz wyczyścić ten formularz?",
         "uploading": "Wysyłanie",
         "draft_saved": "Szkic zapisany.",
         "editor": "WÅ‚Ä…cz edytor WYSIWYG",
         "enable_markdown_editor": "WÅ‚Ä…cz edytor Markdown",
         "view_html_source": "Zobacz kod HTML",
-        "insert_images_by_dragging_dropping":
-            "Wstaw obrazki przez przeciągnij i upuść.",
+        "insert_images_by_dragging_dropping": "Wstaw obrazki przez przeciągnij i upuść.",
         "pasting_from_the_clipboard": "wklejanie ze schowka,",
         "selecting_them": "wybranie ich",
         "image_upload": "Wgraj obrazek",
         "power_up_100": "Zwiększ moc 100%%",
         "default_50_50": "50%% / 50%%",
         "decline_payout": "Odmowa wypłaty",
-        "check_this_to_auto_upvote_your_post":
-            "Zaznacz by automatycznie zagłosować na swój wpis",
+        "check_this_to_auto_upvote_your_post": "Zaznacz by automatycznie zagłosować na swój wpis",
         "markdown_styling_guide": "Przewodnik formatowania z użyciem Markdown",
         "or_by": "lub przez",
         "title": "Tytuł",
@@ -359,81 +320,59 @@
         "header": "Kto powinien otrzymać nagrodę?",
         "add": "Dodaj konto",
         "exceeds_max_beneficiaries": "Możesz dodać maksymalnie 8 beneficjentów",
-        "beneficiary_cannot_be_self":
-            "Nie możesz dodać siebie jako beneficjenta",
-        "beneficiary_cannot_be_duplicate":
-            "Beneficjenci nie mogą się powtarzać",
-        "beneficiary_percent_invalid":
-            "Procent dla beneficjenta musi wynosić od 1 do 100",
-        "beneficiary_percent_total_invalid":
-            "Procent dla beneficjenta musi być mniejszy niż 100"
+        "beneficiary_cannot_be_self": "Nie możesz dodać siebie jako beneficjenta",
+        "beneficiary_cannot_be_duplicate": "Beneficjenci nie mogą się powtarzać",
+        "beneficiary_percent_invalid": "Procent dla beneficjenta musi wynosić od 1 do 100",
+        "beneficiary_percent_total_invalid": "Procent dla beneficjenta musi być mniejszy niż 100"
     },
     "category_selector_jsx": {
-        "tag_your_story":
-            "Kategorie (do 5 kategorii), pierwsza kategoria określa główną.",
+        "tag_your_story": "Kategorie (do 5 kategorii), pierwsza kategoria określa główną.",
         "select_a_tag": "Wybierz kategoriÄ™",
-        "maximum_tag_length_is_24_characters":
-            "Maksymalna długość nazwy kategorii to 24 znaki",
-        "use_limited_amount_of_categories":
-            "Użyj proszę co najwyżej %(amount)s kategorii",
+        "maximum_tag_length_is_24_characters": "Maksymalna długość nazwy kategorii to 24 znaki",
+        "use_limited_amount_of_categories": "Użyj proszę co najwyżej %(amount)s kategorii",
         "use_only_lowercase_letters": "Użyj wyłącznie małych liter",
         "use_one_dash": "Użyj tylko jednego myślnika",
-        "use_spaces_to_separate_tags":
-            "Użyj spacji do oddzielenia nazw kategorii",
-        "use_only_allowed_characters":
-            "Możesz użyć wyłącznie małych liter, cyfr i jednego znaku myślnika",
+        "use_spaces_to_separate_tags": "Użyj spacji do oddzielenia nazw kategorii",
+        "use_only_allowed_characters": "Możesz użyć wyłącznie małych liter, cyfr i jednego znaku myślnika",
         "must_start_with_a_letter": "Musi zaczynać się od litery",
         "must_end_with_a_letter_or_number": "Musi kończyć się literą lub cyfrą",
-        "must_not_include_hivemind_community_owner":
-            "Tag %(hive)s został dodany do wpisu automatycznie, proszę nie dodawaj go ponownie."
+        "must_not_include_hivemind_community_owner": "Tag %(hive)s został dodany do wpisu automatycznie, proszę nie dodawaj go ponownie."
     },
     "post_advanced_settings_jsx": {
         "payout_option_header": "Wynagrodzenie autora",
-        "payout_option_description":
-            "Jaki rodzaj tokenów chciałbyś otrzymać za ten wpis?",
+        "payout_option_description": "Jaki rodzaj tokenów chciałbyś otrzymać za ten wpis?",
         "current_default": "Domyślnie",
         "update_default_in_settings": "Zaktualizuj"
     },
     "postfull_jsx": {
-        "this_post_is_not_available_due_to_a_copyright_claim":
-            "Ten wpis jest niedostępny z powodu roszczeń do praw autorskich.",
+        "this_post_is_not_available_due_to_a_copyright_claim": "Ten wpis jest niedostępny z powodu roszczeń do praw autorskich.",
         "share_on_facebook": "Podziel siÄ™ na Facebooku",
         "share_on_twitter": "Podziel siÄ™ na Twitterze",
         "share_on_reddit": "Podziel siÄ™ na Reddit",
         "share_on_linkedin": "Podziel siÄ™ na Linkedin",
         "recent_password": "Ostatnie hasło",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "W ciÄ…gu 3,5 dni, konwertuj %(amount)s %(DEBT_TOKEN)s w %(LIQUID_TOKEN)s",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "W ciÄ…gu 3,5 dni, konwertuj %(amount)s %(DEBT_TOKEN)s w %(LIQUID_TOKEN)s",
         "view_the_full_context": "Zobacz pełen kontekst.",
         "view_the_direct_parent": "Zobacz wpis nadrzędny",
-        "you_are_viewing_a_single_comments_thread_from":
-            "PrzeglÄ…dasz wÄ…tek pojedynczego komentarza"
+        "you_are_viewing_a_single_comments_thread_from": "PrzeglÄ…dasz wÄ…tek pojedynczego komentarza"
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "Od czasu do czasu, klucz właściciela może zostać zagrożony. Odzyskiwanie konta pozwala prawowitemu właścicielowi na odzyskanie konta w ciągu 30 dni, liczone od momentu zmiany klucza właściciela przez złodzieja. Odzyskiwanie konta można zrobić na %(APP_URL)s o ile właściciel konta uprzednio wyszczególnił '%(APP_NAME)s'  jako powiernika konta i spełnił warunki użytkowania %(APP_NAME)s's."
+        "recover_account_intro": "Od czasu do czasu, klucz właściciela może zostać zagrożony. Odzyskiwanie konta pozwala prawowitemu właścicielowi na odzyskanie konta w ciągu 30 dni, liczone od momentu zmiany klucza właściciela przez złodzieja. Odzyskiwanie konta można zrobić na %(APP_URL)s o ile właściciel konta uprzednio wyszczególnił '%(APP_NAME)s'  jako powiernika konta i spełnił warunki użytkowania %(APP_NAME)s's."
     },
     "user_profile": {
         "unknown_account": "Konto nieznane",
-        "user_hasnt_made_any_posts_yet":
-            "Wygląda na to, że %(name)s nie opublikował jeszcze żadnych wpisów!",
-        "user_hasnt_started_bloggin_yet":
-            "Wygląda na to, że %(name)s nie zaczął jeszcze blogowania!",
-        "user_hasnt_followed_anything_yet":
-            "Wygląda na to, że użytkownik %(name)s jeszcze nikogo nie obserwuje. Jeśli %(name)s zaczął(ęła) obserwować nowych użytkowników jego(jej) osobisty strumień zacznie się zapełniać, gdy powstaną nowe treści.  ",
-        "user_hasnt_had_any_replies_yet":
-            "%(name)s nie ma jeszcze żadnych odpowiedzi",
-        "user_hasnt_had_any_notifications_yet":
-            "%(name)s nie ma jeszcze żadnych powiadomień",
-        "looks_like_you_havent_posted_anything_yet":
-            "Wygląda na to, że jeszcze nic nie opublikowałeś.",
+        "user_hasnt_made_any_posts_yet": "Wygląda na to, że %(name)s nie opublikował jeszcze żadnych wpisów!",
+        "user_hasnt_started_bloggin_yet": "Wygląda na to, że %(name)s nie zaczął jeszcze blogowania!",
+        "user_hasnt_followed_anything_yet": "Wygląda na to, że użytkownik %(name)s jeszcze nikogo nie obserwuje. Jeśli %(name)s zaczął(ęła) obserwować nowych użytkowników jego(jej) osobisty strumień zacznie się zapełniać, gdy powstaną nowe treści.  ",
+        "user_hasnt_had_any_replies_yet": "%(name)s nie ma jeszcze żadnych odpowiedzi",
+        "user_hasnt_had_any_notifications_yet": "%(name)s nie ma jeszcze żadnych powiadomień",
+        "looks_like_you_havent_posted_anything_yet": "Wygląda na to, że jeszcze nic nie opublikowałeś.",
         "create_a_post": "Stwórz wpis",
         "explore_trending_articles": "PrzeglÄ…daj gorÄ…ce wpisy",
         "read_the_quick_start_guide": "Przeczytaj skróconą instrukcję obsługi",
         "browse_the_faq": "PrzeglÄ…daj FAQ",
         "followers": "ObserwujÄ…cy",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "To są punkty reputacji użytkownika %(name)s.\n\nSystem punktów reputacji bazuje na historii otrzymanych przez użytkownika głosów i jest używany do ukrywania wpisów o niskiej jakości.",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "To są punkty reputacji użytkownika %(name)s.\n\nSystem punktów reputacji bazuje na historii otrzymanych przez użytkownika głosów i jest używany do ukrywania wpisów o niskiej jakości.",
         "follower_count": {
             "zero": "Brak obserwujÄ…cych",
             "one": "1 obserwujÄ…cy",
@@ -453,11 +392,9 @@
         "show_all": "Pokaż wszystko"
     },
     "post_jsx": {
-        "now_showing_comments_with_low_ratings":
-            "Od teraz komentarze o niskich ocenach będą wyświetlane",
+        "now_showing_comments_with_low_ratings": "Od teraz komentarze o niskich ocenach będą wyświetlane",
         "sort_order": "Kolejność sortowania",
-        "comments_were_hidden_due_to_low_ratings":
-            "Komentarze zostały ukryte z powodu otrzymania niskich ocen",
+        "comments_were_hidden_due_to_low_ratings": "Komentarze zostały ukryte z powodu otrzymania niskich ocen",
         "comment_sort_order": {
             "trending": "Popularność",
             "votes": "Liczba głosów",
@@ -466,44 +403,36 @@
         }
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "Nadanie flagi może obniżać wynagrodzenia i spowodować mniejszą widoczność tej treści. Niektóre z powodów do oznaczania wpisów flagami",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "Nadanie flagi może obniżać wynagrodzenia i spowodować mniejszą widoczność tej treści. Niektóre z powodów do oznaczania wpisów flagami",
         "disagreement_on_rewards": "Niezgoda co do wysokości wynagrodzenia",
         "fraud_or_plagiarism": "Oszustwo lub plagiat",
         "hate_speech_or_internet_trolling": "Mowa nienawiści lub trolowanie",
-        "intentional_miss_categorized_content_or_spam":
-            "Świadome złe przydzielenie kategorii do treści lub spam",
+        "intentional_miss_categorized_content_or_spam": "Świadome złe przydzielenie kategorii do treści lub spam",
         "pending_payout": "Wypłata $%(value)s nastąpi",
         "payout_declined": "Odmowa przyjęcia wypłaty",
-        "max_accepted_payout":
-            "Maksymalna akceptowana wysokość wypłaty $%(value)s",
+        "max_accepted_payout": "Maksymalna akceptowana wysokość wypłaty $%(value)s",
         "promotion_cost": "Koszty promocji $%(value)s",
         "past_payouts": "Wcześniejsze wypłaty $%(value)s",
         "past_payouts_author": "- Autor $%(value)s",
         "past_payouts_curators": "- Kuratorzy $%(value)s",
         "removing_your_vote": "Wycofanie twojego głosu",
-        "removing_your_vote_will_reset_curation_rewards_for_this_post":
-            "Usunięcie głosu wyzeruje nagrodę kuratorska dla tego wpisu",
+        "removing_your_vote_will_reset_curation_rewards_for_this_post": "Usunięcie głosu wyzeruje nagrodę kuratorska dla tego wpisu",
         "changing_to_an_upvote": "Zmień na głos za",
-        "changing_to_an_upvote_will_reset_curation_rewards_for_this_post":
-            "Zmiana głosu na za wyzeruje nagrodę kuratorska dla tego wpisu",
+        "changing_to_an_upvote_will_reset_curation_rewards_for_this_post": "Zmiana głosu na za wyzeruje nagrodę kuratorska dla tego wpisu",
         "changing_to_a_downvote": "Zmień na głos przeciw",
-        "changing_to_a_downvote_will_reset_curation_rewards_for_this_post":
-            "Zmiana głosu na przeciwny wyzeruje nagrodę kuratorska dla tego wpisu",
+        "changing_to_a_downvote_will_reset_curation_rewards_for_this_post": "Zmiana głosu na przeciwny wyzeruje nagrodę kuratorska dla tego wpisu",
         "confirm_flag": "Potwierdź oznaczenie flagą",
         "and_more": "i %(count)s więcej",
         "votes_plural": {
             "one": "%(count)s głos",
             "other": "%(count)s głosów"
         },
-        "must_reached_minimum_payout":
-            "(wynagrodzenie musi osiągnąć $0.02 do wypłaty)",
+        "must_reached_minimum_payout": "(wynagrodzenie musi osiągnąć $0.02 do wypłaty)",
         "payout": "Wypłata",
         "breakdown": "Podział"
     },
     "votesandcomments_jsx": {
-        "no_responses_yet_click_to_respond":
-            "Brak odpowiedzi. Kliknij by odpowiedzieć.",
+        "no_responses_yet_click_to_respond": "Brak odpowiedzi. Kliknij by odpowiedzieć.",
         "response_count_tooltip": {
             "zero": "brak odpowiedzi. Kliknij by odpowiedzieć.",
             "one": "1 odpowiedź. Kliknij by odpowiedzieć.",
@@ -520,68 +449,46 @@
         "private": "Prywatny",
         "public_something_key": "Klucz publiczny %(key)s",
         "private_something_key": "Klucz prywatny %(key)s",
-        "posting_key_is_required_it_should_be_different":
-            "Klucz do publikowania jest używany do publikowania treści, komentarzy i głosowania. Powinien różnić się od klucza aktywności i klucza właściciela.",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "Klucz aktywności używany jest do przesyłania tokenów i składania ofert na wewnętrznym rynku wymiany walut.",
-        "the_owner_key_is_required_to_change_other_keys":
-            "Klucz właściciela jest kluczem głównym do twojego konta i jest wymagany do zmiany pozostałych kluczy.",
-        "the_private_key_or_password_should_be_kept_offline":
-            "Klucz prywatny właściciela lub hasło właściciela powinny być bezpiecznie przechowywane offline.",
-        "the_memo_key_is_used_to_create_and_read_memos":
-            "Klucz memo jest używany do tworzenia i czytania memo"
+        "posting_key_is_required_it_should_be_different": "Klucz do publikowania jest używany do publikowania treści, komentarzy i głosowania. Powinien różnić się od klucza aktywności i klucza właściciela.",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "Klucz aktywności używany jest do przesyłania tokenów i składania ofert na wewnętrznym rynku wymiany walut.",
+        "the_owner_key_is_required_to_change_other_keys": "Klucz właściciela jest kluczem głównym do twojego konta i jest wymagany do zmiany pozostałych kluczy.",
+        "the_private_key_or_password_should_be_kept_offline": "Klucz prywatny właściciela lub hasło właściciela powinny być bezpiecznie przechowywane offline.",
+        "the_memo_key_is_used_to_create_and_read_memos": "Klucz memo jest używany do tworzenia i czytania memo"
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)s nie jest w stanie odzyskiwać haseł. Trzymaj tę kartkę w bezpiecznym miejscu, takim jak ognioodporny sejf lub skrytka bankowa.",
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)s nie jest w stanie odzyskiwać haseł. Trzymaj tę kartkę w bezpiecznym miejscu, takim jak ognioodporny sejf lub skrytka bankowa.",
         "APP_NAME_password_backup": "%(APP_NAME)s Kopia zapasowa hasła",
-        "APP_NAME_password_backup_required":
-            "%(APP_NAME)s Kopia zapasowa hasła (wymagane)",
-        "after_printing_write_down_your_user_name":
-            "Po wydrukowaniu, zapisz swoją nazwę użytkownika"
+        "APP_NAME_password_backup_required": "%(APP_NAME)s Kopia zapasowa hasła (wymagane)",
+        "after_printing_write_down_your_user_name": "Po wydrukowaniu, zapisz swoją nazwę użytkownika"
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "Twoje %(DEBT_TOKEN)s są płynne i mogą być przetransferowane. Możesz to zrobić pod tym linkiem %(link)s lub przetransferować na zewnętrzną giełdę.",
-        "this_is_a_price_feed_conversion":
-            "Przeliczenie po kursie rynkowym. Okres 3,5 dnia jest niezbędny, aby zapobiec nadużyciom związanym z krótkoterminowymi zmianami średniej ceny rynkowej",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "Twoje %(DEBT_TOKEN)s są płynne i mogą być przetransferowane. Możesz to zrobić pod tym linkiem %(link)s lub przetransferować na zewnętrzną giełdę.",
+        "this_is_a_price_feed_conversion": "Przeliczenie po kursie rynkowym. Okres 3,5 dnia jest niezbędny, aby zapobiec nadużyciom związanym z krótkoterminowymi zmianami średniej ceny rynkowej",
         "convert_to_LIQUID_TOKEN": "Przekonwertuj tokeny na %(LIQUID_TOKEN)s",
-        "DEBT_TOKEN_will_be_unavailable":
-            "Ta akcja zajmie 3,5 dnia od teraz i nie może być anulowana. Te tokeny %(DEBT_TOKEN)s natychmiast staną się niedostępne."
+        "DEBT_TOKEN_will_be_unavailable": "Ta akcja zajmie 3,5 dnia od teraz i nie może być anulowana. Te tokeny %(DEBT_TOKEN)s natychmiast staną się niedostępne."
     },
     "tips_js": {
-        "liquid_token":
-            "Zbywalne tokeny które mogą być przesłane gdziekolwiek w dowolnym momencie.<br/> %(LIQUID_TOKEN)s mogą zostać również przekonwertowane na %(VESTING_TOKEN)s w procesie nazywanym zwiększenie mocy.",
-        "influence_token":
-            "Tokeny wpływu, które zwiększają Twój wpływ na podział wypłat za publikowanie treści, oraz pozwalają Ci zarabiać na głosowaniu na treści.",
-        "estimated_value":
-            "Szacowana wartość bazuje na średniej cenie tokenu %(LIQUID_TOKEN)s w dolarach amerykańskich.",
-        "non_transferable":
-            "Jednostki %(VESTING_TOKEN)s są niezbywalne i wymagają 3 miesięcy (w 13 ratach) do konwersji z powrotem na tokeny %(LIQUID_TOKEN)s.",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "Przekonwertowane jednostki %(VESTING_TOKEN)s możesz wysłać sobie lub komuś innemu ale nie możesz ich wysłać ponownie bez konwersji z powrotem do tokenów %(LIQUID_TOKEN)s.",
-        "part_of_your_hive_power_is_currently_delegated":
-            "Część z Twoich jednostek wpływu HIVE POWER jest Ci oddelegowana. Delegowane jednostek to czasowe użyczenie dla zwiększenia wpływu lub by pomóc nowym użytkownikom platformy w korzystaniu ze Hive. Kwota oddelegowanych jednostek może się zmieniać w czasie."
+        "liquid_token": "Zbywalne tokeny które mogą być przesłane gdziekolwiek w dowolnym momencie.<br/> %(LIQUID_TOKEN)s mogą zostać również przekonwertowane na %(VESTING_TOKEN)s w procesie nazywanym zwiększenie mocy.",
+        "influence_token": "Tokeny wpływu, które zwiększają Twój wpływ na podział wypłat za publikowanie treści, oraz pozwalają Ci zarabiać na głosowaniu na treści.",
+        "estimated_value": "Szacowana wartość bazuje na średniej cenie tokenu %(LIQUID_TOKEN)s w dolarach amerykańskich.",
+        "non_transferable": "Jednostki %(VESTING_TOKEN)s są niezbywalne i wymagają 3 miesięcy (w 13 ratach) do konwersji z powrotem na tokeny %(LIQUID_TOKEN)s.",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "Przekonwertowane jednostki %(VESTING_TOKEN)s możesz wysłać sobie lub komuś innemu ale nie możesz ich wysłać ponownie bez konwersji z powrotem do tokenów %(LIQUID_TOKEN)s.",
+        "part_of_your_hive_power_is_currently_delegated": "Część z Twoich jednostek wpływu HIVE POWER jest Ci oddelegowana. Delegowane jednostek to czasowe użyczenie dla zwiększenia wpływu lub by pomóc nowym użytkownikom platformy w korzystaniu ze Hive. Kwota oddelegowanych jednostek może się zmieniać w czasie."
     },
     "promote_post_jsx": {
         "promote_post": "Promuj wpis",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "Wydaj swoje tokeny %(DEBT_TOKEN)s by zareklamować ten wpis w sekcji treści promowanych",
-        "you_successfully_promoted_this_post":
-            "Promowanie tego wpisu zakończyło się sukcesem",
-        "this_post_was_hidden_due_to_low_ratings":
-            "Ten wpis został ukryty z powodu niskich ocen"
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "Wydaj swoje tokeny %(DEBT_TOKEN)s by zareklamować ten wpis w sekcji treści promowanych",
+        "you_successfully_promoted_this_post": "Promowanie tego wpisu zakończyło się sukcesem",
+        "this_post_was_hidden_due_to_low_ratings": "Ten wpis został ukryty z powodu niskich ocen"
     },
     "about_jsx": {
         "about_app": "O %(APP_NAME)s",
-        "about_app_details":
-            "%(APP_NAME)s jest platformą mediów społecznościowych gdzie wszyscy są opłacani za tworzenie i głosowanie na treści. Bazuje na solidnym systemie cyfrowych tokenów o nazwie Hive, który reprezentuje realną wartość żetonów cyfrowych, opierając się na płynności i wolnorynkowej wycenie.",
+        "about_app_details": "%(APP_NAME)s jest platformą mediów społecznościowych gdzie wszyscy są opłacani za tworzenie i głosowanie na treści. Bazuje na solidnym systemie cyfrowych tokenów o nazwie Hive, który reprezentuje realną wartość żetonów cyfrowych, opierając się na płynności i wolnorynkowej wycenie.",
         "learn_more_at_app_url": "Dowiedz się więcej %(APP_URL)s",
         "resources": "Zasoby"
     },
     "markdownviewer_jsx": {
-        "images_were_hidden_due_to_low_ratings":
-            "Obrazki zostały ukryte z powodu niskich ocen."
+        "images_were_hidden_due_to_low_ratings": "Obrazki zostały ukryte z powodu niskich ocen."
     },
     "postsummary_jsx": {
         "reblogged": "reblogowany",
@@ -594,8 +501,7 @@
     },
     "posts_index": {
         "empty_feed_1": "Wygląda na to, że jeszcze nikogo nie obserwujesz",
-        "empty_feed_2":
-            "Jeżeli dopiero zacząłeś kogoś obserwować, twój strumień zaktualizuje się, gdy pojawią się nowe treści",
+        "empty_feed_2": "Jeżeli dopiero zacząłeś kogoś obserwować, twój strumień zaktualizuje się, gdy pojawią się nowe treści",
         "empty_feed_3": "PrzeglÄ…daj aktywne posty",
         "empty_feed_4": "Przeczytaj Quick Start Guide",
         "empty_feed_5": "PrzeglÄ…daj FAQ",
@@ -622,43 +528,30 @@
         "comments_by": "Komentarze dodane przez %(username)s"
     },
     "loginform_jsx": {
-        "you_need_a_private_password_or_key":
-            "Potrzebujesz prywatnego hasła lub klucza (nie klucz publiczny)",
+        "you_need_a_private_password_or_key": "Potrzebujesz prywatnego hasła lub klucza (nie klucz publiczny)",
         "cryptography_test_failed": "Test kryptograficzny nieudany",
-        "unable_to_log_you_in":
-            "Nie będziemy mogli zalogować cię w tej przeglądarce.",
+        "unable_to_log_you_in": "Nie będziemy mogli zalogować cię w tej przeglądarce.",
         "the_latest_versions_of": "Ostatnie wersje",
-        "are_well_tested_and_known_to_work_with":
-            "zostały przetestowane i współpracują z %(APP_URL)s.",
-        "due_to_server_maintenance":
-            "Z powodu prac na serwerach, aktualnie można tylko przeglądać treści. Przepraszamy za niedogodności.",
+        "are_well_tested_and_known_to_work_with": "zostały przetestowane i współpracują z %(APP_URL)s.",
+        "due_to_server_maintenance": "Z powodu prac na serwerach, aktualnie można tylko przeglądać treści. Przepraszamy za niedogodności.",
         "login_to_vote": "Zaloguj się, aby zagłosować",
         "login_to_post": "Zaloguj się, aby napisać",
         "login_to_comment": "Zaloguj się, aby skomentować",
         "posting": "Publikacja",
         "active_or_owner": "Aktywny lub właściciela",
-        "this_password_is_bound_to_your_account_owner_key":
-            "To hasło jest przypisane do klucza właściciela, i nie może być użyte do logowania na tej stronie.",
+        "this_password_is_bound_to_your_account_owner_key": "To hasło jest przypisane do klucza właściciela, i nie może być użyte do logowania na tej stronie.",
         "however_you_can_use_it_to": "Jednakże, możesz użyć go do ",
         "update_your_password": "aktualizacji swojego hasła",
-        "to_obtain_a_more_secure_set_of_keys":
-            "otrzymania bardziej bezpiecznego zestawu kluczy.",
-        "this_password_is_bound_to_your_account_active_key":
-            "To hasło jest przypisane do klucza aktywnego, i nie może być użyte do logowania na tej stronie.",
-        "you_may_use_this_active_key_on_other_more":
-            "Możesz używać klucza aktywnego na stronach takich jak Portfel czy Giełda.",
-        "you_account_has_been_successfully_created":
-            "Twoje konto zostało utworzone!",
-        "you_account_has_been_successfully_recovered":
-            "Twoje konto zostało odzyskane!",
-        "password_update_succes":
-            "Hasło %(accountName)s zostało zaktualizowane",
-        "password_info":
-            "To hasło lub klucz prywatny zostało wprowadzone błędnie. Sprawdź poprawność zapisu. Wskazówka: Hasło lub klucz prywatny wygenerowany przez Hive, nigdy nie będzie zawierał znaków: 0 (zero), O (duża litera o), I (duża litera i) i l (mała litera L).",
+        "to_obtain_a_more_secure_set_of_keys": "otrzymania bardziej bezpiecznego zestawu kluczy.",
+        "this_password_is_bound_to_your_account_active_key": "To hasło jest przypisane do klucza aktywnego, i nie może być użyte do logowania na tej stronie.",
+        "you_may_use_this_active_key_on_other_more": "Możesz używać klucza aktywnego na stronach takich jak Portfel czy Giełda.",
+        "you_account_has_been_successfully_created": "Twoje konto zostało utworzone!",
+        "you_account_has_been_successfully_recovered": "Twoje konto zostało odzyskane!",
+        "password_update_succes": "Hasło %(accountName)s zostało zaktualizowane",
+        "password_info": "To hasło lub klucz prywatny zostało wprowadzone błędnie. Sprawdź poprawność zapisu. Wskazówka: Hasło lub klucz prywatny wygenerowany przez Hive, nigdy nie będzie zawierał znaków: 0 (zero), O (duża litera o), I (duża litera i) i l (mała litera L).",
         "enter_your_username": "Podaj nazwę użytkownika",
         "password_or_wif": "Hasło lub WIF",
-        "this_operation_requires_your_key_or_master_password":
-            "Ta operacja wymaga twojego klucza %(authType)s klub hasła głównego.",
+        "this_operation_requires_your_key_or_master_password": "Ta operacja wymaga twojego klucza %(authType)s klub hasła głównego.",
         "keep_me_logged_in": "Nie wylogowuj mnie",
         "amazing_community": "niesamowitej społeczności",
         "to_comment_and_reward_others": " aby komentować i nagradzać innych.",
@@ -666,38 +559,27 @@
         "signup_button_emphasis": "FREE HIVE!",
         "sign_up_get_hive": "Sign up. Get HIVE!",
         "returning_users": "PowracajÄ…cy: ",
-        "login_warning_title":
-            "Logowanie za pomocą klucza innego niż do publikowania",
-        "login_warning_body":
-            "Próbujesz użyć klucza z większą ilością uprawnień niż wymagane do codziennego korzystania z hive.blog. Ponieważ klucze i hasła są tym bardziej narażone na niebezpieczeństwo, im częściej są używane, zdecydowanie zaleca się używanie tylko swojego klucza do publikowania, aby się zalogować.",
+        "login_warning_title": "Logowanie za pomocą klucza innego niż do publikowania",
+        "login_warning_body": "Próbujesz użyć klucza z większą ilością uprawnień niż wymagane do codziennego korzystania z hive.blog. Ponieważ klucze i hasła są tym bardziej narażone na niebezpieczeństwo, im częściej są używane, zdecydowanie zaleca się używanie tylko swojego klucza do publikowania, aby się zalogować.",
         "continue_anyway": "Kontynuuj mimo to",
-        "login_warning_link_text":
-            "Otwórz mój Portfel Hive, żeby uzyskać dostęp i zobaczyć klucz do publikowania",
+        "login_warning_link_text": "Otwórz mój Portfel Hive, żeby uzyskać dostęp i zobaczyć klucz do publikowania",
         "join_our": "Dołącz do",
         "sign_transfer": "Podpisz, aby dokończyć przelew",
         "use_keychain": "Użyj rozszerzenia Hive Keychain",
         "more_login_methods": "więcej metod logowania"
     },
     "chainvalidation_js": {
-        "account_name_should_not_be_empty":
-            "Nazwa konta nie powinna być pusta.",
+        "account_name_should_not_be_empty": "Nazwa konta nie powinna być pusta.",
         "account_name_should_be_longer": "Nazwa konta powinna być dłuższa.",
         "account_name_should_be_shorter": "Nazwa konta powinna być krótsza.",
-        "each_account_segment_should_start_with_a_letter":
-            "Każdy segment nazwy konta powinien zaczynać się od litery.",
-        "each_account_segment_should_have_only_letters_digits_or_dashes":
-            "Każdy segment nazwy konta powinien mieć tylko litery, cyfry lub kreski.",
-        "each_account_segment_should_have_only_one_dash_in_a_row":
-            "Każdy segment nazwy konta powinien mieć tylko jedną kreskę po sobie.",
-        "each_account_segment_should_end_with_a_letter_or_digit":
-            "Każdy segment nazwy konta powinien być zakończony literą lub cyfrą.",
-        "each_account_segment_should_be_longer":
-            "Każdy segment nazwy konta powinien być dłuższy.",
+        "each_account_segment_should_start_with_a_letter": "Każdy segment nazwy konta powinien zaczynać się od litery.",
+        "each_account_segment_should_have_only_letters_digits_or_dashes": "Każdy segment nazwy konta powinien mieć tylko litery, cyfry lub kreski.",
+        "each_account_segment_should_have_only_one_dash_in_a_row": "Każdy segment nazwy konta powinien mieć tylko jedną kreskę po sobie.",
+        "each_account_segment_should_end_with_a_letter_or_digit": "Każdy segment nazwy konta powinien być zakończony literą lub cyfrą.",
+        "each_account_segment_should_be_longer": "Każdy segment nazwy konta powinien być dłuższy.",
         "verified_exchange_no_memo": "Musisz dołączyć notatkę do przelewu.",
-        "badactor":
-            "Należy zachować ostrożność przy przesyłaniu tokenów na to konto. Proszę dwukrotnie sprawdzić pisownię pod kątem ewentualnego phishingu.",
-        "memo_has_privatekey":
-            "Proszę nie podawać tego, co wydaje się być kluczem prywatnym lub hasłem.",
+        "badactor": "Należy zachować ostrożność przy przesyłaniu tokenów na to konto. Proszę dwukrotnie sprawdzić pisownię pod kątem ewentualnego phishingu.",
+        "memo_has_privatekey": "Proszę nie podawać tego, co wydaje się być kluczem prywatnym lub hasłem.",
         "memo_is_privatekey": "Nie używaj kluczy prywatnych w memo",
         "memo_is_password": "Nie używaj haseł w memo"
     },
@@ -738,22 +620,15 @@
         "this_memo_is_private": "To memo jest prywatne",
         "this_memo_is_public": "To memo jest publiczne",
         "convert_to_VESTING_TOKEN": "Zamień na %(VESTING_TOKEN)s",
-        "balance_subject_to_3_day_withdraw_waiting_period":
-            "Saldo zależy od 3-dniowego okresu karencji wymaganego do wycofania środków,",
-        "move_funds_to_another_account":
-            "PrzenieÅ› fundusze na inne konto Hive.",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "Chroni fundusze poprzez 3-dniowy okres karencji.",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "Wypłata funduszy po 3-dniowym okresie karencji.",
+        "balance_subject_to_3_day_withdraw_waiting_period": "Saldo zależy od 3-dniowego okresu karencji wymaganego do wycofania środków,",
+        "move_funds_to_another_account": "PrzenieÅ› fundusze na inne konto Hive.",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "Chroni fundusze poprzez 3-dniowy okres karencji.",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "Wypłata funduszy po 3-dniowym okresie karencji.",
         "from": "Od",
         "to": "Do",
-        "asset_currently_collecting":
-            "%(asset)s aktualnie zbierajÄ…cy %(interest)s%% APR.",
-        "beware_of_spam_and_phishing_links":
-            "Uważaj na spam i linki phishingowe w notatkach przelewowych. Nie otwieraj linków od użytkowników, którym nie ufasz. Nie udostępniaj swoich prywatnych kluczy na stronach internetowych osób trzecich.",
-        "transactions_make_take_a_few_minutes":
-            "Transakcje nie pojawią się, dopóki nie zostaną potwierdzone przez blockchain, co może potrwać kilka minut.",
+        "asset_currently_collecting": "%(asset)s aktualnie zbierajÄ…cy %(interest)s%% APR.",
+        "beware_of_spam_and_phishing_links": "Uważaj na spam i linki phishingowe w notatkach przelewowych. Nie otwieraj linków od użytkowników, którym nie ufasz. Nie udostępniaj swoich prywatnych kluczy na stronach internetowych osób trzecich.",
+        "transactions_make_take_a_few_minutes": "Transakcje nie pojawią się, dopóki nie zostaną potwierdzone przez blockchain, co może potrwać kilka minut.",
         "autocomplete_previous_transfers": "poprzednie transfery",
         "autocomplete_user_following": "obserwowani",
         "confirm_transfer": "Przesłać %(amount)s z %(from)s do %(to)s?"
@@ -769,24 +644,19 @@
         "convert_to_LIQUID_TOKEN": "Zamień na %(LIQUID_TOKEN)s",
         "withdraw_LIQUID_TOKEN": "Wypłać %(LIQUID_TOKEN)s",
         "withdraw_DEBT_TOKENS": "Wypłać %(DEBT_TOKENS)s",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "Tokeny warte około $1.00 z %(LIQUID_TICKER)s, aktualnie zbierają %(hbdInterest)s%% APR.",
-        "tradeable_tokens_transferred":
-            "Zbywalne tokeny, które mogą być wysłane komukolwiek, kiedykolwiek",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "Tokeny warte około $1.00 z %(LIQUID_TICKER)s, aktualnie zbierają %(hbdInterest)s%% APR.",
+        "tradeable_tokens_transferred": "Zbywalne tokeny, które mogą być wysłane komukolwiek, kiedykolwiek",
         "savings": "OSZCZĘDNOŚCI",
         "estimated_account_value": "Szacowana wartość konta",
-        "next_power_down_is_scheduled_to_happen":
-            "Nastąpi następne zaplanowane zmniejszenie mocy",
+        "next_power_down_is_scheduled_to_happen": "Nastąpi następne zaplanowane zmniejszenie mocy",
         "transfers_are_temporary_disabled": "Transfery tymczasowo wyłączone.",
         "history": "HISTORIA",
         "redeem_rewards": "Odbierz nagrody (transfer do salda)",
         "buy_hive_or_hive_power": "Kup HIVE lub HIVE POWER"
     },
     "checkloginowner_jsx": {
-        "your_password_permissions_were_reduced":
-            "Twoje uprawnienia zostały zmniejszone",
-        "if_you_did_not_make_this_change":
-            "Jeżeli to nie ty wykonałeś tę zmianę",
+        "your_password_permissions_were_reduced": "Twoje uprawnienia zostały zmniejszone",
+        "if_you_did_not_make_this_change": "Jeżeli to nie ty wykonałeś tę zmianę",
         "ownership_changed_on": "Nastąpiła zmiana właściciela",
         "deadline_for_recovery_is": "Ostateczny czas na odzyskanie",
         "i_understand_dont_show_again": "Rozumiem, nie pokazuj mi tego ponownie"
@@ -794,8 +664,7 @@
     "termsagree_jsx": {
         "please_review": "Proszę przejrzeć nasze warunki, aby kontynuować",
         "hi_user": "Cześć %(username)s,",
-        "blurb":
-            "Nasze Warunki korzystania z usługi określają zasady i wytyczne, które użytkownik musi zaakceptować i przestrzegać, aby korzystać z Hive, a nasza Polityka prywatności wyjaśnia, jakie informacje zbieramy i co z nimi robimy. Nie martw się, nie sprzedajemy nikomu Twoich danych. Używamy ich, aby spełnić wymogi prawne i dowiedzieć się, jak ulepszyć Hive.",
+        "blurb": "Nasze Warunki korzystania z usługi określają zasady i wytyczne, które użytkownik musi zaakceptować i przestrzegać, aby korzystać z Hive, a nasza Polityka prywatności wyjaśnia, jakie informacje zbieramy i co z nimi robimy. Nie martw się, nie sprzedajemy nikomu Twoich danych. Używamy ich, aby spełnić wymogi prawne i dowiedzieć się, jak ulepszyć Hive.",
         "i_agree_to_hives": "Zgadzam siÄ™ na",
         "terms_of_service": "Warunki Korzystania z Usług",
         "privacy_policy": "Polityka Prywatności",
@@ -808,14 +677,11 @@
     "modals_jsx": {
         "your_transaction_failed": "Your transaction failed to process",
         "out_of_bandwidth_title": "Why? You've run out of Resource Credits",
-        "out_of_bandwidth_reason":
-            "Actions such as posting and voting use computing resources, placing a real cost on the community members who run the Hive blockchain for everyone.",
-        "out_of_bandwidth_reason_2":
-            "To keep things free, Hive intelligently allocates Resource Credits to each user based on their Hive Power holdings, which can be used to submit a limited number of feeless transactions. When a user runs low on Resource Credits, they will either need to wait for them to recharge, or purchase additional Hive Power. This system prioritizes actions by good community members while limiting spam.",
+        "out_of_bandwidth_reason": "Actions such as posting and voting use computing resources, placing a real cost on the community members who run the Hive blockchain for everyone.",
+        "out_of_bandwidth_reason_2": "To keep things free, Hive intelligently allocates Resource Credits to each user based on their Hive Power holdings, which can be used to submit a limited number of feeless transactions. When a user runs low on Resource Credits, they will either need to wait for them to recharge, or purchase additional Hive Power. This system prioritizes actions by good community members while limiting spam.",
         "out_of_bandwidth_option_title": "To keep interacting on Hive:",
         "out_of_bandwidth_option_1": "Buy and hold more Hive Power",
-        "out_of_bandwidth_option_2":
-            "Wait until your Resource Credits recharge",
+        "out_of_bandwidth_option_2": "Wait until your Resource Credits recharge",
         "out_of_bandwidth_option_3": "Wait until the network usage decreases"
     },
     "sanitizedlink_jsx": {
diff --git a/src/app/locales/ru.json b/src/app/locales/ru.json
index 9d1df1b24abef1c0ac321b8c8506a01157d5a84d..bd5887d5913437e59102dab460ed70233d014dd4 100644
--- a/src/app/locales/ru.json
+++ b/src/app/locales/ru.json
@@ -55,8 +55,7 @@
         "password": "Пароль",
         "payouts": "Выплаты",
         "permissions": "Разрешения",
-        "phishy_message":
-            "Link expanded to plain text; beware of a potential phishing attempt",
+        "phishy_message": "Link expanded to plain text; beware of a potential phishing attempt",
         "post": "Пост",
         "post_as": "Запостить как",
         "posts": "Посты",
@@ -128,56 +127,42 @@
         "account_name": "Имя аккаунта",
         "recover_your_account": "восстановить ваш аккаунт",
         "reset_usernames_password": "Сбросить пароль пользователя %(username)s",
-        "this_will_update_usernames_authtype_key":
-            "Это обновит %(username)s %(authType)s ключ",
+        "this_will_update_usernames_authtype_key": "Это обновит %(username)s %(authType)s ключ",
         "passwords_do_not_match": "Пароли не совпадают",
-        "you_need_private_password_or_key_not_a_public_key":
-            "Вам нужен приватный пароль или ключ (не публичный ключ)",
+        "you_need_private_password_or_key_not_a_public_key": "Вам нужен приватный пароль или ключ (не публичный ключ)",
         "the_rules_of_APP_NAME": {
             "one": "Первое правило сети %(APP_NAME)s: не теряйте свой пароль.",
             "second": "Второе правило %(APP_NAME)s: Не теряйте свой пароль.",
-            "third":
-                "Третье правило %(APP_NAME)s: мы не можем восстановить ваш пароль.",
-            "fourth":
-                "Четвертое правило: если вы можете запомнить свой пароль, значит он не безопасен.",
-            "fifth":
-                "Пятое правило: используйте только сгенерированные случайным образом пароли.",
+            "third": "Третье правило %(APP_NAME)s: мы не можем восстановить ваш пароль.",
+            "fourth": "Четвертое правило: если вы можете запомнить свой пароль, значит он не безопасен.",
+            "fifth": "Пятое правило: используйте только сгенерированные случайным образом пароли.",
             "sixth": "Шестое правило: Никому не говорите свой пароль.",
             "seventh": "Седьмое правило: Всегда надежно храните свой пароль."
         },
         "recover_password": "Восстановить аккаунт",
         "current_password": "Текущий пароль",
         "generated_password": "Сгенерированный пароль",
-        "backup_password_by_storing_it":
-            "Сделайте резервную копию в менеджере паролей или текстовом файле",
-        "enter_account_show_password":
-            "Введите действительное имя аккаунта, чтобы показать пароль",
+        "backup_password_by_storing_it": "Сделайте резервную копию в менеджере паролей или текстовом файле",
+        "enter_account_show_password": "Введите действительное имя аккаунта, чтобы показать пароль",
         "click_to_generate_password": "Нажмите, чтобы сгененировать пароль",
         "re_enter_generate_password": "Повторно введите пароль",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "Я понимаю, что %(APP_NAME)s не может восстановить потерянные пароли",
+        "understand_that_APP_NAME_cannot_recover_password": "Я понимаю, что %(APP_NAME)s не может восстановить потерянные пароли",
         "i_saved_password": "Я надежно сохранил сгенерированный пароль",
         "update_password": "Обновить пароль",
         "confirm_password": "Подтвердить пароль",
         "account_updated": "Аккаунт обновлен",
-        "password_must_be_characters_or_more":
-            "Пароль должен содержать %(amount)s символ(а) или больше",
-        "need_password_or_key":
-            "Вам нужен приватный пароль или ключ (не публичный ключ)",
+        "password_must_be_characters_or_more": "Пароль должен содержать %(amount)s символ(а) или больше",
+        "need_password_or_key": "Вам нужен приватный пароль или ключ (не публичный ключ)",
         "login_to_see_memo": "войти чтобы увидеть примечание",
         "new_password": "Новый пароль",
         "incorrect_password": "Неправильный пароль",
         "username_does_not_exist": "Имя пользователя не найдено",
-        "account_name_should_start_with_a_letter":
-            "Имя аккаунта должно начинаться с буквы.",
+        "account_name_should_start_with_a_letter": "Имя аккаунта должно начинаться с буквы.",
         "account_name_should_be_shorter": "Имя аккаунта должно быть короче.",
         "account_name_should_be_longer": "Имя аккаунта должно быть длиннее.",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "Имя аккаунта должно должно состоять только из букв, цифр или дефисов.",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "Не удается увеличить вознаграждение за пост в последнюю минуту перед выплатой",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "Только один Hive аккаунт разрешен с одного IP адреса каждые десять минут",
+        "account_name_should_have_only_letters_digits_or_dashes": "Имя аккаунта должно должно состоять только из букв, цифр или дефисов.",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "Не удается увеличить вознаграждение за пост в последнюю минуту перед выплатой",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "Только один Hive аккаунт разрешен с одного IP адреса каждые десять минут",
         "reblog_this_post": "Поделиться этим постом",
         "reblog": "Поделиться",
         "write_your_story": "Написать свою историю",
@@ -187,24 +172,18 @@
         "show_private_key": "Показать приватный ключ",
         "login_to_show": "Войти, чтобы показать",
         "not_valid_email": "Не действительный адрес",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "Благодарим вас за то что являетесь ранним посетителем %(APP_NAME)s. Мы свяжемся с Вами при первой же возможности.",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "Благодарим вас за то что являетесь ранним посетителем %(APP_NAME)s. Мы свяжемся с Вами при первой же возможности.",
         "author_rewards": "Авторские вознаграждения",
         "curation_rewards": "Кураторские вознаграждения",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "Извините, у вашего Reddit аккаунта недостаточно Reddit кармы чтобы иметь возможность бесплатной регистрации. Пожалуйста, добавьте вашу электронную почту чтобы записаться в лист ожидания",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "Извините, у вашего Reddit аккаунта недостаточно Reddit кармы чтобы иметь возможность бесплатной регистрации. Пожалуйста, добавьте вашу электронную почту чтобы записаться в лист ожидания",
         "register_with_facebook": "Регистрация с Facebook",
-        "or_click_the_button_below_to_register_with_facebook":
-            "Или нажмите на кнопку ниже, чтобы зарегистрироваться в Facebook",
+        "or_click_the_button_below_to_register_with_facebook": "Или нажмите на кнопку ниже, чтобы зарегистрироваться в Facebook",
         "server_returned_error": "ошибка сервера",
         "APP_NAME_support": "%(APP_NAME)s поддержка",
-        "please_email_questions_to":
-            "Пожалуйста, шлите ваши вопросы на электронную почту",
+        "please_email_questions_to": "Пожалуйста, шлите ваши вопросы на электронную почту",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "Авторы получают вознаграждение, когда пользователи голосуют за их посты",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "Если Вам понравилось то, что Вы здесь прочитали, создайте свой аккаунт сегодня и начните зарабатывать БЕСПЛАТНЫЕ HIVE-ы!",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "Авторы получают вознаграждение, когда пользователи голосуют за их посты",
+            "if_you_enjoyed_what_you_read_earn_amount": "Если Вам понравилось то, что Вы здесь прочитали, создайте свой аккаунт сегодня и начните зарабатывать БЕСПЛАТНЫЕ HIVE-ы!",
             "free_hive": "БЕСПЛАТНЫЕ HIVE!",
             "sign_up_earn_hive": "Зарегистрируйтесь сейчас, чтобы заработать "
         },
@@ -213,8 +192,7 @@
             "show_less": "Показать меньше",
             "value_posts": "меньше сообщений низкой стоимости"
         },
-        "read_only_mode":
-            "По техническим причинам вебсайт доступен только для чтения, приносим свои извинения.",
+        "read_only_mode": "По техническим причинам вебсайт доступен только для чтения, приносим свои извинения.",
         "tags_and_topics": "Теги и темы",
         "show_more_topics": "Показать больше тем",
         "basic": "Базовый",
@@ -234,10 +212,8 @@
             "other": "%(count)s ответов"
         },
         "post_key_warning": {
-            "confirm":
-                "Вы собираетесь опубликовать ваш приватный ключ или мастер-пароль, это может привести к потере вашего акканта и всех средств на нем.",
-            "warning":
-                "Если кто-то попросил вас опубликовать или показать ваш приватный ключ, это возможно злоумышленник, который пытается украсть ваши токены.",
+            "confirm": "Вы собираетесь опубликовать ваш приватный ключ или мастер-пароль, это может привести к потере вашего акканта и всех средств на нем.",
+            "warning": "Если кто-то попросил вас опубликовать или показать ваш приватный ключ, это возможно злоумышленник, который пытается украсть ваши токены.",
             "checkbox": "Я понял"
         }
     },
@@ -266,8 +242,7 @@
         "smt_whitepaper": "Белая книга SMT",
         "whitepaper": "Белая книга Hive",
         "intro_tagline": "Здесь говорят деньги.",
-        "intro_paragraph":
-            "Ваше мнение имеет цену. Присоединяйтесь к сообществу, которое платит за контент и за работу по отбору самого лучшего контента.",
+        "intro_paragraph": "Ваше мнение имеет цену. Присоединяйтесь к сообществу, которое платит за контент и за работу по отбору самого лучшего контента.",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
         "what_is_hive": "What is Hive?",
@@ -281,23 +256,19 @@
         "shorten_title": "Сократите заголовок",
         "exceeds_maximum_length": "Превышает максимальную длину (%(maxKb)sKB)",
         "including_the_category": "(включая категорию «%(rootCategory)s»)",
-        "use_limited_amount_of_tags":
-            "У вас %(tagsLength)s тегов, включая %(includingCategory)s. Пожалуйста, используйте не более 5 в посте и категории.",
-        "are_you_sure_you_want_to_clear_this_form":
-            "Вы уверены, что вы хотите очистить эту форму?",
+        "use_limited_amount_of_tags": "У вас %(tagsLength)s тегов, включая %(includingCategory)s. Пожалуйста, используйте не более 5 в посте и категории.",
+        "are_you_sure_you_want_to_clear_this_form": "Вы уверены, что вы хотите очистить эту форму?",
         "uploading": "Загрузка",
         "draft_saved": "Черновик сохранен.",
         "editor": "Редактор",
-        "insert_images_by_dragging_dropping":
-            "Вставьте изображения, перетащив их, ",
+        "insert_images_by_dragging_dropping": "Вставьте изображения, перетащив их, ",
         "pasting_from_the_clipboard": "или вставив из буфера обмена, ",
         "selecting_them": "выбрав их",
         "image_upload": "Загрузка изображения",
         "power_up_100": "Сила Голоса 100%%",
         "default_50_50": "50%% / 50%%",
         "decline_payout": "Отказаться от выплаты",
-        "check_this_to_auto_upvote_your_post":
-            "Отметьте, чтобы проголосовать за свой пост",
+        "check_this_to_auto_upvote_your_post": "Отметьте, чтобы проголосовать за свой пост",
         "markdown_styling_guide": "Руководство стилизации в Markdown",
         "or_by": "или",
         "title": "Заголовок",
@@ -312,74 +283,54 @@
         "exceeds_max_beneficiaries": "Can have at most 8 beneficiaries",
         "beneficiary_cannot_be_self": "Cannot specify self as beneficiary",
         "beneficiary_cannot_be_duplicate": "Beneficiary cannot be duplicate",
-        "beneficiary_percent_invalid":
-            "Beneficiary percentage must be from 1-100",
-        "beneficiary_percent_total_invalid":
-            "Beneficiary total percentage must be less than 100"
+        "beneficiary_percent_invalid": "Beneficiary percentage must be from 1-100",
+        "beneficiary_percent_total_invalid": "Beneficiary total percentage must be less than 100"
     },
     "category_selector_jsx": {
-        "tag_your_story":
-            "Добавь теги (до 5 штук), первый тег станет основной категорией.",
+        "tag_your_story": "Добавь теги (до 5 штук), первый тег станет основной категорией.",
         "select_a_tag": "Выбрать тег",
-        "maximum_tag_length_is_24_characters":
-            "Максимальная длина категории 24 знака",
-        "use_limited_amount_of_categories":
-            "Пожалуйста, используйте только %(amount)s категории",
-        "use_only_lowercase_letters":
-            "Используйте только символы нижнего регистра",
+        "maximum_tag_length_is_24_characters": "Максимальная длина категории 24 знака",
+        "use_limited_amount_of_categories": "Пожалуйста, используйте только %(amount)s категории",
+        "use_only_lowercase_letters": "Используйте только символы нижнего регистра",
         "use_one_dash": "Используйте только одно тире",
-        "use_spaces_to_separate_tags":
-            "Используйте пробел чтобы разделить теги",
-        "use_only_allowed_characters":
-            "Используйте только строчные буквы, цифры и одно тире",
+        "use_spaces_to_separate_tags": "Используйте пробел чтобы разделить теги",
+        "use_only_allowed_characters": "Используйте только строчные буквы, цифры и одно тире",
         "must_start_with_a_letter": "Должно начинаться с буквы",
-        "must_end_with_a_letter_or_number":
-            "Должно заканчиваться с буквы или номера"
+        "must_end_with_a_letter_or_number": "Должно заканчиваться с буквы или номера"
     },
     "post_advanced_settings_jsx": {
         "payout_option_header": "Author rewards",
-        "payout_option_description":
-            "What type of tokens do you want as rewards from this post?",
+        "payout_option_description": "What type of tokens do you want as rewards from this post?",
         "current_default": "Default",
         "update_default_in_settings": "Update"
     },
     "postfull_jsx": {
-        "this_post_is_not_available_due_to_a_copyright_claim":
-            "Этот пост недоступен из-за жалобы о нарушении авторских прав.",
+        "this_post_is_not_available_due_to_a_copyright_claim": "Этот пост недоступен из-за жалобы о нарушении авторских прав.",
         "share_on_facebook": "Поделитесь в Facebook",
         "share_on_twitter": "Поделиться в Twitter",
         "share_on_linkedin": "Поделиться в Linkedin",
         "recent_password": "Недавний пароль",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "В 3,5 дня перевести %(amount)s %(DEBT_TOKEN)s в %(LIQUID_TOKEN)s",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "В 3,5 дня перевести %(amount)s %(DEBT_TOKEN)s в %(LIQUID_TOKEN)s",
         "view_the_full_context": "Показать полный контекст",
         "view_the_direct_parent": "Просмотр прямого родителя",
-        "you_are_viewing_a_single_comments_thread_from":
-            "Вы читаете одну нить комментариев от"
+        "you_are_viewing_a_single_comments_thread_from": "Вы читаете одну нить комментариев от"
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "Иногда бывает что ключ владельца может быть скомпрометирован. Восстановление украденного аккаунта дает законному владельцу 30 дней чтобы вернуть аккаунт с момента изменения владельческого ключа мошенником. Восстановление украденного аккаунта в %(APP_URL)s возможно только если владелец аккаунта ранее указал %(APP_NAME)s's в качестве доверенного лица и согласился с Условиями Использования сайта %(APP_NAME)s's."
+        "recover_account_intro": "Иногда бывает что ключ владельца может быть скомпрометирован. Восстановление украденного аккаунта дает законному владельцу 30 дней чтобы вернуть аккаунт с момента изменения владельческого ключа мошенником. Восстановление украденного аккаунта в %(APP_URL)s возможно только если владелец аккаунта ранее указал %(APP_NAME)s's в качестве доверенного лица и согласился с Условиями Использования сайта %(APP_NAME)s's."
     },
     "user_profile": {
         "unknown_account": "Неизвестный аккаунт",
-        "user_hasnt_made_any_posts_yet":
-            "Похоже, что %(name)s еще не написал постов!",
-        "user_hasnt_started_bloggin_yet":
-            "Похоже. что %(name)s еще не завёл блог!",
-        "user_hasnt_followed_anything_yet":
-            "Похоже, что %(name)s еще ни на кого не подписан! Если, %(name)s недавно подписался на новых пользователей, их персонализированный канал будет заполняться сразу после появления нового контента.",
+        "user_hasnt_made_any_posts_yet": "Похоже, что %(name)s еще не написал постов!",
+        "user_hasnt_started_bloggin_yet": "Похоже. что %(name)s еще не завёл блог!",
+        "user_hasnt_followed_anything_yet": "Похоже, что %(name)s еще ни на кого не подписан! Если, %(name)s недавно подписался на новых пользователей, их персонализированный канал будет заполняться сразу после появления нового контента.",
         "user_hasnt_had_any_replies_yet": "%(name)s еще не получил ответов",
-        "looks_like_you_havent_posted_anything_yet":
-            "Похоже, ты еще ничего не опубликовал.",
+        "looks_like_you_havent_posted_anything_yet": "Похоже, ты еще ничего не опубликовал.",
         "create_a_post": "Создать сообщение",
-        "explore_trending_articles":
-            "Посмотреть статьи, набирающие популярность",
+        "explore_trending_articles": "Посмотреть статьи, набирающие популярность",
         "read_the_quick_start_guide": "Прочтите краткое руководство",
         "browse_the_faq": "Просмотреть ЧаВО",
         "followers": "Подписчики",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "Это репутация %(name)s.\n\nРепутация рассчитывается на основе истории полученных голосов и используется для сокрытия низкокачественного контента.",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "Это репутация %(name)s.\n\nРепутация рассчитывается на основе истории полученных голосов и используется для сокрытия низкокачественного контента.",
         "follower_count": {
             "zero": "Нет подписчиков",
             "one": "1 подписчик",
@@ -405,31 +356,24 @@
         "show_all": "Show All"
     },
     "post_jsx": {
-        "now_showing_comments_with_low_ratings":
-            "Отображаем комментарии с низким рейтингом",
+        "now_showing_comments_with_low_ratings": "Отображаем комментарии с низким рейтингом",
         "sort_order": "Порядок сортировки",
-        "comments_were_hidden_due_to_low_ratings":
-            "Комментарии были скрыты из-за низкого рейтинга"
+        "comments_were_hidden_due_to_low_ratings": "Комментарии были скрыты из-за низкого рейтинга"
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "Голосование против уменьшает вознаграждение и снижает позицию в рейтинге.",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "Голосование против уменьшает вознаграждение и снижает позицию в рейтинге.",
         "disagreement_on_rewards": "Несогласие с вознаграждением",
         "fraud_or_plagiarism": "Мошенничество или плагиат",
-        "hate_speech_or_internet_trolling":
-            "Разжигание ненависти или Интернет троллинг",
-        "intentional_miss_categorized_content_or_spam":
-            "Преднамеренная неправильная категоризация контента или спам",
+        "hate_speech_or_internet_trolling": "Разжигание ненависти или Интернет троллинг",
+        "intentional_miss_categorized_content_or_spam": "Преднамеренная неправильная категоризация контента или спам",
         "pending_payout": "Ожидаемая выплата $%(value)s",
         "payout_declined": "Автор отказался от вознаграждения",
-        "max_accepted_payout":
-            "Максимально допустимое вознаграждение: $%(value)s",
+        "max_accepted_payout": "Максимально допустимое вознаграждение: $%(value)s",
         "promotion_cost": "Цена продвижения: $%(value)s",
         "past_payouts": "Предыдущие выплаты $%(value)s",
         "past_payouts_author": " - Авторские $%(value)s",
         "past_payouts_curators": " - Кураторские $%(value)s",
-        "we_will_reset_curation_rewards_for_this_post":
-            "это сбросит выплаты за курирование",
+        "we_will_reset_curation_rewards_for_this_post": "это сбросит выплаты за курирование",
         "removing_your_vote": "Удаление голоса",
         "changing_to_an_upvote": "Изменить на голосование 'за'",
         "changing_to_a_downvote": "Изменить на голосование 'против'",
@@ -443,8 +387,7 @@
         }
     },
     "votesandcomments_jsx": {
-        "no_responses_yet_click_to_respond":
-            "Ответов пока нет. Нажмите чтобы ответить.",
+        "no_responses_yet_click_to_respond": "Ответов пока нет. Нажмите чтобы ответить.",
         "response_count_tooltip": {
             "zero": "ответов пока нет. Нажмите чтобы ответить.",
             "one": "1 ответ. Нажмите чтобы ответить.",
@@ -465,68 +408,46 @@
         "private": "Приватное",
         "public_something_key": "Публичный %(key)s ключ",
         "private_something_key": "Приватный %(key)s ключ",
-        "posting_key_is_required_it_should_be_different":
-            "Постинг ключ используется для постинга и голосования. Он должен отличаться от активного ключа и ключа владельца.",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "Активный ключ используется для переводов и размещения заказов на внутреннем рынке.",
-        "the_owner_key_is_required_to_change_other_keys":
-            "Ключ владельца это главный ключ ко всему аккаунта, он необходим для изменения других ключей.",
-        "the_private_key_or_password_should_be_kept_offline":
-            "Приватный ключ или пароль должен храниться в оффлайне так часто насколько возможно.",
-        "the_memo_key_is_used_to_create_and_read_memos":
-            "Ключ примечаний используется для создания и чтения примечаний."
+        "posting_key_is_required_it_should_be_different": "Постинг ключ используется для постинга и голосования. Он должен отличаться от активного ключа и ключа владельца.",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "Активный ключ используется для переводов и размещения заказов на внутреннем рынке.",
+        "the_owner_key_is_required_to_change_other_keys": "Ключ владельца это главный ключ ко всему аккаунта, он необходим для изменения других ключей.",
+        "the_private_key_or_password_should_be_kept_offline": "Приватный ключ или пароль должен храниться в оффлайне так часто насколько возможно.",
+        "the_memo_key_is_used_to_create_and_read_memos": "Ключ примечаний используется для создания и чтения примечаний."
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)s не может восстановить пароли. Сохраните эту страницу в безопасном месте, например, в огнестойком сейфе или в депозитарной ячейке.",
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)s не может восстановить пароли. Сохраните эту страницу в безопасном месте, например, в огнестойком сейфе или в депозитарной ячейке.",
         "APP_NAME_password_backup": "%(APP_NAME)s резервное копирование пароля",
-        "APP_NAME_password_backup_required":
-            "%(APP_NAME)s резервное копирование пароля (обязательно!)",
-        "after_printing_write_down_your_user_name":
-            "После печати запишите ваше имя пользователя"
+        "APP_NAME_password_backup_required": "%(APP_NAME)s резервное копирование пароля (обязательно!)",
+        "after_printing_write_down_your_user_name": "После печати запишите ваше имя пользователя"
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "Ваши %(DEBT_TOKEN)s токены ликвидны. Вы можете конвертировать %(DEBT_TOKEN)s на этом сайте (%(link)s) или вывести на биржу/обменник.",
-        "this_is_a_price_feed_conversion":
-            "Конвертация на сайте выполняется три с половиной дня - это требуется, чтобы исключить манипуляции с ценами.",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "Ваши %(DEBT_TOKEN)s токены ликвидны. Вы можете конвертировать %(DEBT_TOKEN)s на этом сайте (%(link)s) или вывести на биржу/обменник.",
+        "this_is_a_price_feed_conversion": "Конвертация на сайте выполняется три с половиной дня - это требуется, чтобы исключить манипуляции с ценами.",
         "convert_to_LIQUID_TOKEN": "Ковертировать в %(LIQUID_TOKEN)s",
-        "DEBT_TOKEN_will_be_unavailable":
-            "Эта операция будет проходить 3-5 дней от настоящего момента и ее нельзя отменить. Эти %(DEBT_TOKEN)s мгновенно станут недоступны"
+        "DEBT_TOKEN_will_be_unavailable": "Эта операция будет проходить 3-5 дней от настоящего момента и ее нельзя отменить. Эти %(DEBT_TOKEN)s мгновенно станут недоступны"
     },
     "tips_js": {
-        "liquid_token":
-            "Ликвидные цифровые токены, которые могут переданы куда угодно в любой момент.<br/>%(LIQUID_TOKEN)s может быть конвертирован в %(VESTING_TOKEN)s, этот процесс называется \"увеличение Силы Голоса\".",
-        "influence_token":
-            "Токены дают вам возможность влиять на вознаграждения за контент, а также возможность зарабатывать на курации контента.",
-        "estimated_value":
-            "Сметная стоимость основана на среднем значении %(LIQUID_TOKEN)s в долларах США.",
-        "non_transferable":
-            "%(VESTING_TOKEN)s - не ликвидные токены, требуется три месяца (13 еженедальных выплат) чтобы сконвертировать их в ликвидные токены %(LIQUID_TOKEN)s.",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "Конвертированные %(VESTING_TOKEN)s токены могут быть отправлены себе или кому-либо еще, но не могут быть переданы вновь без конвертации в %(LIQUID_TOKEN)s.",
-        "part_of_your_hive_power_is_currently_delegated":
-            "Часть HIVE POWER вам делегирована, это увеличивает ваше влияние на платформе. Количество делегированных токенов со временем может изменяться."
+        "liquid_token": "Ликвидные цифровые токены, которые могут переданы куда угодно в любой момент.<br/>%(LIQUID_TOKEN)s может быть конвертирован в %(VESTING_TOKEN)s, этот процесс называется \"увеличение Силы Голоса\".",
+        "influence_token": "Токены дают вам возможность влиять на вознаграждения за контент, а также возможность зарабатывать на курации контента.",
+        "estimated_value": "Сметная стоимость основана на среднем значении %(LIQUID_TOKEN)s в долларах США.",
+        "non_transferable": "%(VESTING_TOKEN)s - не ликвидные токены, требуется три месяца (13 еженедальных выплат) чтобы сконвертировать их в ликвидные токены %(LIQUID_TOKEN)s.",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "Конвертированные %(VESTING_TOKEN)s токены могут быть отправлены себе или кому-либо еще, но не могут быть переданы вновь без конвертации в %(LIQUID_TOKEN)s.",
+        "part_of_your_hive_power_is_currently_delegated": "Часть HIVE POWER вам делегирована, это увеличивает ваше влияние на платформе. Количество делегированных токенов со временем может изменяться."
     },
     "promote_post_jsx": {
         "promote_post": "Продвинуть пост",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "Используйте ваши %(DEBT_TOKEN)s чтобы прорекламировать этот пост в секции продвигаемого контента",
-        "you_successfully_promoted_this_post":
-            "Операция продвижения успешно завершена",
-        "this_post_was_hidden_due_to_low_ratings":
-            "Этот пост был скрыт из-за низкого рейтинга"
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "Используйте ваши %(DEBT_TOKEN)s чтобы прорекламировать этот пост в секции продвигаемого контента",
+        "you_successfully_promoted_this_post": "Операция продвижения успешно завершена",
+        "this_post_was_hidden_due_to_low_ratings": "Этот пост был скрыт из-за низкого рейтинга"
     },
     "about_jsx": {
         "about_app": "О %(APP_NAME)s",
-        "about_app_details":
-            "%(APP_NAME)s - это социальная медиа платформа в которой каждый зарабатывает за создание и курирование контента. Он использует надежную систему цифровых очков под названием Голос, который поддерживает реальную ценность для цифровых наград через выявление рыночной цены и ликвидности.",
+        "about_app_details": "%(APP_NAME)s - это социальная медиа платформа в которой каждый зарабатывает за создание и курирование контента. Он использует надежную систему цифровых очков под названием Голос, который поддерживает реальную ценность для цифровых наград через выявление рыночной цены и ликвидности.",
         "learn_more_at_app_url": "Узнать больше в %(APP_URL)s",
         "resources": "Ресурсы"
     },
     "markdownviewer_jsx": {
-        "images_were_hidden_due_to_low_ratings":
-            "Изображения были скрыты из-за низкого рейтинга."
+        "images_were_hidden_due_to_low_ratings": "Изображения были скрыты из-за низкого рейтинга."
     },
     "postsummary_jsx": {
         "reblogged": "Поделиться",
@@ -539,8 +460,7 @@
     },
     "posts_index": {
         "empty_feed_1": "Похоже, что Вы еще ни на кого не подписаны",
-        "empty_feed_2":
-            "Если Вы недавно подписались на новых пользователей, Ваша персональная лента будет заполняться, когда будет доступен новый контент",
+        "empty_feed_2": "Если Вы недавно подписались на новых пользователей, Ваша персональная лента будет заполняться, когда будет доступен новый контент",
         "empty_feed_3": "Посмотреть статьи, набирающие популярность",
         "empty_feed_4": "Прочтите краткое руководство",
         "empty_feed_5": "Просмотреть ЧаВО"
@@ -564,48 +484,33 @@
         "comments_by": "Комментарии"
     },
     "loginform_jsx": {
-        "you_need_a_private_password_or_key":
-            "Вам нужен приватный пароль или ключ (не публичный ключ)",
+        "you_need_a_private_password_or_key": "Вам нужен приватный пароль или ключ (не публичный ключ)",
         "cryptography_test_failed": "Криптографический тест не пройден",
-        "unable_to_log_you_in":
-            "У нас не получится залогинить вас в этом браузере.",
+        "unable_to_log_you_in": "У нас не получится залогинить вас в этом браузере.",
         "the_latest_versions_of": "Последние версии ",
-        "are_well_tested_and_known_to_work_with":
-            "хорошо протестированы и работают с %(APP_URL)s.",
-        "due_to_server_maintenance":
-            "Из-за технического обслуживания сервера мы работаем в режиме чтения. Извините за неудобства.",
+        "are_well_tested_and_known_to_work_with": "хорошо протестированы и работают с %(APP_URL)s.",
+        "due_to_server_maintenance": "Из-за технического обслуживания сервера мы работаем в режиме чтения. Извините за неудобства.",
         "login_to_vote": "Войти, чтобы проголосовать",
         "login_to_post": "Войти, чтобы написать пост",
         "login_to_comment": "Войти, чтобы оставить комментарий",
         "posting": "Постинг",
         "active_or_owner": "Активный или Владельца",
-        "this_password_is_bound_to_your_account_owner_key":
-            "Этот пароль привязан к главному ключу аккаунта и не может быть использован для входа на этот сайт.",
-        "however_you_can_use_it_to":
-            "Тем не менее его можно использовать чтобы ",
+        "this_password_is_bound_to_your_account_owner_key": "Этот пароль привязан к главному ключу аккаунта и не может быть использован для входа на этот сайт.",
+        "however_you_can_use_it_to": "Тем не менее его можно использовать чтобы ",
         "update_your_password": "обновить Ваш пароль",
-        "to_obtain_a_more_secure_set_of_keys":
-            "для получения более безопасного набора ключей.",
-        "this_password_is_bound_to_your_account_active_key":
-            "Этот пароль привязан к главному ключу аккаунта и не может быть использован для входа на этот сайт.",
-        "you_may_use_this_active_key_on_other_more":
-            "Вы можете использовать этот активный ключ на других более безопасных страниц, таких как страницы: Кошелек или Биржа.",
-        "you_account_has_been_successfully_created":
-            "Ваш аккаунт был успешно создан!",
-        "you_account_has_been_successfully_recovered":
-            "Ваш аккаунт был успешно восстановлен!",
-        "password_update_succes":
-            "Пароль для %(accountName)s был успешно обновлен",
-        "password_info":
-            "Этот пароль или закрытый ключ был введен неправильно. Вероятно, есть ошибка почерка или ввода данных. Подсказка: пароль или закрытый ключ, сгенерированный Hive, никогда не будет содержать символы 0 (ноль), O (прописная o), I (прописная i) и l (нижний регистр L).",
+        "to_obtain_a_more_secure_set_of_keys": "для получения более безопасного набора ключей.",
+        "this_password_is_bound_to_your_account_active_key": "Этот пароль привязан к главному ключу аккаунта и не может быть использован для входа на этот сайт.",
+        "you_may_use_this_active_key_on_other_more": "Вы можете использовать этот активный ключ на других более безопасных страниц, таких как страницы: Кошелек или Биржа.",
+        "you_account_has_been_successfully_created": "Ваш аккаунт был успешно создан!",
+        "you_account_has_been_successfully_recovered": "Ваш аккаунт был успешно восстановлен!",
+        "password_update_succes": "Пароль для %(accountName)s был успешно обновлен",
+        "password_info": "Этот пароль или закрытый ключ был введен неправильно. Вероятно, есть ошибка почерка или ввода данных. Подсказка: пароль или закрытый ключ, сгенерированный Hive, никогда не будет содержать символы 0 (ноль), O (прописная o), I (прописная i) и l (нижний регистр L).",
         "enter_your_username": "Введи свое имя пользователя",
         "password_or_wif": "Пароль или WIF",
-        "this_operation_requires_your_key_or_master_password":
-            "Для осуществления данной операции нужен ваш %(authType)s ключ или Основной пароль.",
+        "this_operation_requires_your_key_or_master_password": "Для осуществления данной операции нужен ваш %(authType)s ключ или Основной пароль.",
         "keep_me_logged_in": "Оставить меня залогиненным",
         "amazing_community": "удивительное сообщество",
-        "to_comment_and_reward_others":
-            " комментировать и вознаграждать других.",
+        "to_comment_and_reward_others": " комментировать и вознаграждать других.",
         "sign_up_get_hive": "Sign up. Get HIVE",
         "signup_button": "Зарегистрируйтесь",
         "signup_button_emphasis": " сейчас!",
@@ -622,12 +527,10 @@
         "be_shorter": "короче.",
         "each_account_segment_should": "Имя аккаунта должно начинаться с ",
         "start_with_a_letter": "должно начинаться с буквы.",
-        "have_only_letters_digits_or_dashes":
-            "должно должно состоять только из букв, цифр или дефисов.",
+        "have_only_letters_digits_or_dashes": "должно должно состоять только из букв, цифр или дефисов.",
         "have_only_one_dash_in_a_row": "иметь только одно тире в строке.",
         "end_with_a_letter_or_digit": "заканчиваться буквой или цифрой.",
-        "verified_exchange_no_memo":
-            "Для перевода на биржу Вы должны указать примечание."
+        "verified_exchange_no_memo": "Для перевода на биржу Вы должны указать примечание."
     },
     "settings_jsx": {
         "invalid_url": "Недопустимый URL-адрес",
@@ -638,8 +541,7 @@
         "website_url_is_too_long": "URL-адрес веб-сайта слишком длинный",
         "public_profile_settings": "Настройки Публичного Профиля",
         "preferences": "Настройки отображения приватных постов",
-        "not_safe_for_work_nsfw_content":
-            "Небезопасный для работы (NSFW) контент",
+        "not_safe_for_work_nsfw_content": "Небезопасный для работы (NSFW) контент",
         "always_hide": "Всегда скрывать",
         "always_warn": "Всегда предупреждать",
         "always_show": "Отображать всегда",
@@ -651,8 +553,7 @@
         "profile_about": "О себе",
         "profile_location": "Местоположение",
         "profile_website": "Веб-сайт",
-        "choose_preferred_api_endpoint":
-            "Выберите свой предпочтительный узел API"
+        "choose_preferred_api_endpoint": "Выберите свой предпочтительный узел API"
     },
     "transfer_jsx": {
         "amount_is_in_form": "Сумма должна быть в формате 99999.999",
@@ -663,20 +564,14 @@
         "this_memo_is_private": "Это примечание является приватным",
         "this_memo_is_public": "Это примечание является публичным",
         "convert_to_VESTING_TOKEN": "Перевести в %(VESTING_TOKEN)s",
-        "balance_subject_to_3_day_withdraw_waiting_period":
-            "Вывод баланса из сейфа на обычный счет, занимает 3 дня,",
-        "move_funds_to_another_account":
-            "Отправить средства на другой Hive аккаунт.",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "Защитите средства от вывода 3-х дневным периодом ожидания.",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "Снять средства после необходимого 3 дневного периода ожидания.",
+        "balance_subject_to_3_day_withdraw_waiting_period": "Вывод баланса из сейфа на обычный счет, занимает 3 дня,",
+        "move_funds_to_another_account": "Отправить средства на другой Hive аккаунт.",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "Защитите средства от вывода 3-х дневным периодом ожидания.",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "Снять средства после необходимого 3 дневного периода ожидания.",
         "from": "От",
         "to": "Кому",
-        "asset_currently_collecting":
-            "начисляемые годовые на %(asset)s: %(interest)s%%.",
-        "beware_of_spam_and_phishing_links":
-            "Остерегайтесь спама и фишинговых ссылок в передачах. Не открывайте ссылки от пользователей, которым вы не доверяете. Не предоставляйте свои личные ключи третьим сторонам."
+        "asset_currently_collecting": "начисляемые годовые на %(asset)s: %(interest)s%%.",
+        "beware_of_spam_and_phishing_links": "Остерегайтесь спама и фишинговых ссылок в передачах. Не открывайте ссылки от пользователей, которым вы не доверяете. Не предоставляйте свои личные ключи третьим сторонам."
     },
     "userwallet_jsx": {
         "conversion_complete_tip": "Завершается",
@@ -688,22 +583,18 @@
         "convert_to_LIQUID_TOKEN": "Перевести в %(LIQUID_TOKEN)s",
         "withdraw_LIQUID_TOKEN": "Снять %(LIQUID_TOKEN)s",
         "withdraw_DEBT_TOKENS": "Снять %(DEBT_TOKENS)s",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "Стоимость токенов $1.00 в %(LIQUID_TICKER)s, начисляемые годовые %(hbdInterest)s%%.",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "Стоимость токенов $1.00 в %(LIQUID_TICKER)s, начисляемые годовые %(hbdInterest)s%%.",
         "savings": "Сберегательный счет",
         "estimated_account_value": "Приблизительная стоимость аккаунта",
-        "next_power_down_is_scheduled_to_happen":
-            "Следующее понижение силы голоса будет",
+        "next_power_down_is_scheduled_to_happen": "Следующее понижение силы голоса будет",
         "transfers_are_temporary_disabled": "Переводы временно преостановлены.",
         "history": "ИСТОРИЯ",
         "redeem_rewards": "Получить вознаграждение",
         "buy_hive_or_hive_power": "Купить HIVE или HIVE POWER"
     },
     "checkloginowner_jsx": {
-        "your_password_permissions_were_reduced":
-            "Your password permissions were reduced",
-        "if_you_did_not_make_this_change":
-            "If you did not make this change please",
+        "your_password_permissions_were_reduced": "Your password permissions were reduced",
+        "if_you_did_not_make_this_change": "If you did not make this change please",
         "ownership_changed_on": "Владелец аккаунта или пароль были изменены ",
         "deadline_for_recovery_is": "Вы можете восстановить доступ до ",
         "i_understand_dont_show_again": "Понятно, больше не показывать"
diff --git a/src/app/locales/zh.json b/src/app/locales/zh.json
index 8d3fcc3026d8808787539294ab3193419fa4afb7..c75238738baf7981d7111824b49955037b3181f0 100644
--- a/src/app/locales/zh.json
+++ b/src/app/locales/zh.json
@@ -127,11 +127,9 @@
         "account_name": "用户名",
         "recover_your_account": "恢复你的账号",
         "reset_usernames_password": "重置%(username)s的密码",
-        "this_will_update_usernames_authtype_key":
-            "确定更改%(username)s%(authType)s的密钥",
+        "this_will_update_usernames_authtype_key": "确定更改%(username)s%(authType)s的密钥",
         "passwords_do_not_match": "密码不匹配",
-        "you_need_private_password_or_key_not_a_public_key":
-            "你需要一个私钥或密码(不能用公钥)",
+        "you_need_private_password_or_key_not_a_public_key": "你需要一个私钥或密码(不能用公钥)",
         "the_rules_of_APP_NAME": {
             "one": "%(APP_NAME)s的第一条规则是: 不要丢失你的密码。",
             "second": "%(APP_NAME)s的第二条规则是: 不要丢失你的密码。",
@@ -148,8 +146,7 @@
         "enter_account_show_password": "输入一个有效的帐户名称以显示密码",
         "click_to_generate_password": "点击生成密码",
         "re_enter_generate_password": "重新输入生成的密码",
-        "understand_that_APP_NAME_cannot_recover_password":
-            "我知道%(APP_NAME)s无法恢复丢失的密码",
+        "understand_that_APP_NAME_cannot_recover_password": "我知道%(APP_NAME)s无法恢复丢失的密码",
         "i_saved_password": "我安全地保存了我生成的密码",
         "update_password": "修改密码",
         "confirm_password": "确认密码",
@@ -163,12 +160,9 @@
         "account_name_should_start_with_a_letter": "帐户名称应该以字母开头",
         "account_name_should_be_shorter": "账户名应该更短",
         "account_name_should_be_longer": "账户名应该更长",
-        "account_name_should_have_only_letters_digits_or_dashes":
-            "帐户名称应该只有字母、数字或破折号",
-        "cannot_increase_reward_of_post_within_the_last_minute_before_payout":
-            "在收到奖励前的最后一分钟内不能增加奖励",
-        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes":
-            "每10分钟一个IP地址只允许一个Hive账号",
+        "account_name_should_have_only_letters_digits_or_dashes": "帐户名称应该只有字母、数字或破折号",
+        "cannot_increase_reward_of_post_within_the_last_minute_before_payout": "在收到奖励前的最后一分钟内不能增加奖励",
+        "only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes": "每10分钟一个IP地址只允许一个Hive账号",
         "reblog_this_post": "转发这这篇文章",
         "reblog": "转发",
         "write_your_story": "写下你的故事",
@@ -178,23 +172,18 @@
         "show_private_key": "显示私钥",
         "login_to_show": "登录显示",
         "not_valid_email": "不是有效的电子邮件",
-        "thank_you_for_being_an_early_visitor_to_APP_NAME":
-            "感谢你成为%(APP_NAME)早期访问者。我们将尽快回复你。",
+        "thank_you_for_being_an_early_visitor_to_APP_NAME": "感谢你成为%(APP_NAME)早期访问者。我们将尽快回复你。",
         "author_rewards": "作者奖励",
         "curation_rewards": "审查奖励",
-        "sorry_your_reddit_account_doesnt_have_enough_karma":
-            "不好意思,你的Reddit级别不够高,我们不能为你免费注册账号。请在等候名单上加上你的电子邮件地址",
+        "sorry_your_reddit_account_doesnt_have_enough_karma": "不好意思,你的Reddit级别不够高,我们不能为你免费注册账号。请在等候名单上加上你的电子邮件地址",
         "register_with_facebook": "用Facebook注册",
-        "or_click_the_button_below_to_register_with_facebook":
-            "或者点击下面的按钮,用Facebook注册",
+        "or_click_the_button_below_to_register_with_facebook": "或者点击下面的按钮,用Facebook注册",
         "server_returned_error": "服务器返回错误",
         "APP_NAME_support": "%(APP_NAME)s的支持",
         "please_email_questions_to": "请把你的问题发邮件给",
         "next_7_strings_single_block": {
-            "authors_get_paid_when_people_like_you_upvote_their_post":
-                "当你和其他人给帖子点赞时,作者会得到报酬",
-            "if_you_enjoyed_what_you_read_earn_amount":
-                "如果你喜欢阅读这里的内容,请立即创建你的帐户,并开始免费赚取HIVE!",
+            "authors_get_paid_when_people_like_you_upvote_their_post": "当你和其他人给帖子点赞时,作者会得到报酬",
+            "if_you_enjoyed_what_you_read_earn_amount": "如果你喜欢阅读这里的内容,请立即创建你的帐户,并开始免费赚取HIVE!",
             "free_hive": "免费的Hive代币!",
             "sign_up_earn_hive": "现在注册来赚取"
         },
@@ -203,8 +192,7 @@
             "show_less": "显示更少",
             "value_posts": "低价值的帖子"
         },
-        "read_only_mode":
-            "由于服务器维护,我们只在只读模式下运行。很抱歉给您带来不便。",
+        "read_only_mode": "由于服务器维护,我们只在只读模式下运行。很抱歉给您带来不便。",
         "tags_and_topics": "标签和主题",
         "show_more_topics": "显示更多的主题",
         "basic": "基本",
@@ -243,8 +231,7 @@
         "api_docs": "Hive API文档",
         "whitepaper": "Hive白皮书",
         "intro_tagline": "妙笔生金",
-        "intro_paragraph":
-            "你的思想是有有价值的。赶快加入发表文章获得赏金的社区。",
+        "intro_paragraph": "你的思想是有有价值的。赶快加入发表文章获得赏金的社区。",
         "hive_proposals": "Hive Proposals",
         "blockexplorer": "Blockexplorer",
         "what_is_hive": "What is Hive?"
@@ -257,8 +244,7 @@
         "shorten_title": "缩短标题",
         "exceeds_maximum_length": "超过最大长度(%(maxKb)sKB)",
         "including_the_category": "(包括类别'%(rootCategory)s ')",
-        "use_limited_amount_of_tags":
-            "你总共可以标记%(tagsLength)s个标签%(includingCategory)s。请在你的文章分类栏中最多使用5个标签。",
+        "use_limited_amount_of_tags": "你总共可以标记%(tagsLength)s个标签%(includingCategory)s。请在你的文章分类栏中最多使用5个标签。",
         "are_you_sure_you_want_to_clear_this_form": "你确定要清除这个表格吗?",
         "uploading": "上传",
         "draft_saved": "草稿已保存。",
@@ -285,10 +271,8 @@
         "exceeds_max_beneficiaries": "Can have at most 8 beneficiaries",
         "beneficiary_cannot_be_self": "Cannot specify self as beneficiary",
         "beneficiary_cannot_be_duplicate": "Beneficiary cannot be duplicate",
-        "beneficiary_percent_invalid":
-            "Beneficiary percentage must be from 1-100",
-        "beneficiary_percent_total_invalid":
-            "Beneficiary total percentage must be less than 100"
+        "beneficiary_percent_invalid": "Beneficiary percentage must be from 1-100",
+        "beneficiary_percent_total_invalid": "Beneficiary total percentage must be less than 100"
     },
     "category_selector_jsx": {
         "tag_your_story": "标签(最多5个标签),第一个标签是您文章的主要类别。",
@@ -304,39 +288,32 @@
     },
     "post_advanced_settings_jsx": {
         "payout_option_header": "Author rewards",
-        "payout_option_description":
-            "What type of tokens do you want as rewards from this post?",
+        "payout_option_description": "What type of tokens do you want as rewards from this post?",
         "current_default": "Default",
         "update_default_in_settings": "Update"
     },
     "postfull_jsx": {
-        "this_post_is_not_available_due_to_a_copyright_claim":
-            "由于版权限制,暂不能显示这篇文章。",
+        "this_post_is_not_available_due_to_a_copyright_claim": "由于版权限制,暂不能显示这篇文章。",
         "share_on_facebook": "分享到脸书",
         "share_on_twitter": "分享到推特",
         "share_on_linkedin": "分享到Linkedin",
         "recent_password": "最近的密码",
-        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN":
-            "在3.5天内,将%(amount)s%(DEBT_TOKEN)s兑换为%(LIQUID_TOKEN)s",
+        "in_week_convert_DEBT_TOKEN_to_LIQUID_TOKEN": "在3.5天内,将%(amount)s%(DEBT_TOKEN)s兑换为%(LIQUID_TOKEN)s",
         "view_the_full_context": "查看全文",
         "view_the_direct_parent": "查看上一级",
-        "you_are_viewing_a_single_comments_thread_from":
-            "你正在查看单个评论的主题"
+        "you_are_viewing_a_single_comments_thread_from": "你正在查看单个评论的主题"
     },
     "recoveraccountstep1_jsx": {
-        "recover_account_intro":
-            "有时候,Hive 的拥有者钥匙可能会被盗用。被盗帐户恢复给予合法的帐户所有者30天,从小偷更改其所有者密钥的时候恢复其帐户。盗用帐户恢复只能在%(APP_URL)s上使用,如果帐户所有者已经明确列出 %(APP_NAME)s作为其帐户受信任者,并遵守了 %(APP_NAME)s 的服务条款。"
+        "recover_account_intro": "有时候,Hive 的拥有者钥匙可能会被盗用。被盗帐户恢复给予合法的帐户所有者30天,从小偷更改其所有者密钥的时候恢复其帐户。盗用帐户恢复只能在%(APP_URL)s上使用,如果帐户所有者已经明确列出 %(APP_NAME)s作为其帐户受信任者,并遵守了 %(APP_NAME)s 的服务条款。"
     },
     "user_profile": {
         "unknown_account": "未知的账户",
         "user_hasnt_made_any_posts_yet": "看起来%(name)s还没有发过任何帖子!",
         "user_hasnt_started_bloggin_yet": "看起来%(name)s还没有开始写博客!",
-        "user_hasnt_followed_anything_yet":
-            "看起来%(name)s还没有关注任何人!如果%(name)s最近添加关注了新的用户,他们的个性化主页上将会有显示。",
+        "user_hasnt_followed_anything_yet": "看起来%(name)s还没有关注任何人!如果%(name)s最近添加关注了新的用户,他们的个性化主页上将会有显示。",
         "user_hasnt_had_any_replies_yet": "%(name)s目前还没有回复",
         "followers": "关注者",
-        "this_is_users_reputations_score_it_is_based_on_history_of_votes":
-            "这是%(name)s的声誉分数。声誉分数取决于账户收到的历史投票记录, 用于隐藏低质量的内容。",
+        "this_is_users_reputations_score_it_is_based_on_history_of_votes": "这是%(name)s的声誉分数。声誉分数取决于账户收到的历史投票记录, 用于隐藏低质量的内容。",
         "follower_count": {
             "zero": "没有关注者",
             "one": "1个关注者",
@@ -361,13 +338,11 @@
         "comments_were_hidden_due_to_low_ratings": "评论由于评级不足而被隐藏"
     },
     "voting_jsx": {
-        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following":
-            "举报帖子可撤销奖励且使其不可见。常见举报原因",
+        "flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following": "举报帖子可撤销奖励且使其不可见。常见举报原因",
         "disagreement_on_rewards": "奖励不一致",
         "fraud_or_plagiarism": "欺诈或剽窃",
         "hate_speech_or_internet_trolling": "仇恨言论或互联网钓鱼",
-        "intentional_miss_categorized_content_or_spam":
-            "故意错误分类或垃圾信息",
+        "intentional_miss_categorized_content_or_spam": "故意错误分类或垃圾信息",
         "pending_payout": "待获得赏金$%(value)s",
         "payout_declined": "拒绝赏金",
         "max_accepted_payout": "赏金上限$%(value)s",
@@ -375,8 +350,7 @@
         "past_payouts": "累计赏金$%(value)s",
         "past_payouts_author": "- 作者收入 $%(value)s",
         "past_payouts_curators": " - 审查收入 $%(value)s",
-        "we_will_reset_curation_rewards_for_this_post":
-            "将重置你对这篇帖子的审查奖励",
+        "we_will_reset_curation_rewards_for_this_post": "将重置你对这篇帖子的审查奖励",
         "removing_your_vote": "取消你的投票",
         "changing_to_an_upvote": "改为投票",
         "changing_to_a_downvote": "改为差评",
@@ -405,57 +379,41 @@
         "private": "私有的",
         "public_something_key": "公开的%(key)s密钥",
         "private_something_key": "私有的%(key)s密钥",
-        "posting_key_is_required_it_should_be_different":
-            "Posting Key用于发帖和投票。它应与Active Key和Owner Key区分使用。",
-        "the_active_key_is_used_to_make_transfers_and_place_orders":
-            "Active Key用于转帐和在内部市场下单。",
-        "the_owner_key_is_required_to_change_other_keys":
-            "Owner Key是帐户的主密钥,用于更改其它密钥。",
-        "the_private_key_or_password_should_be_kept_offline":
-            "Owner Key的私钥或密码应尽可能保持离线。",
-        "the_memo_key_is_used_to_create_and_read_memos":
-            "Memo Key用于创建和读取备注。"
+        "posting_key_is_required_it_should_be_different": "Posting Key用于发帖和投票。它应与Active Key和Owner Key区分使用。",
+        "the_active_key_is_used_to_make_transfers_and_place_orders": "Active Key用于转帐和在内部市场下单。",
+        "the_owner_key_is_required_to_change_other_keys": "Owner Key是帐户的主密钥,用于更改其它密钥。",
+        "the_private_key_or_password_should_be_kept_offline": "Owner Key的私钥或密码应尽可能保持离线。",
+        "the_memo_key_is_used_to_create_and_read_memos": "Memo Key用于创建和读取备注。"
     },
     "suggestpassword_jsx": {
-        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location":
-            "%(APP_NAME)s无法恢复密码。请将此页面保存到安全的位置如防火保险箱。",
+        "APP_NAME_cannot_recover_passwords_keep_this_page_in_a_secure_location": "%(APP_NAME)s无法恢复密码。请将此页面保存到安全的位置如防火保险箱。",
         "APP_NAME_password_backup": "%(APP_NAME)s密码备份",
         "APP_NAME_password_backup_required": "%(APP_NAME)s密码备份(必填)",
         "after_printing_write_down_your_user_name": "打印后,请写下你的用户名"
     },
     "converttohive_jsx": {
-        "your_existing_DEBT_TOKEN_are_liquid_and_transferable":
-            "你现有的%(DEBT_TOKEN)s是可流动和可转让的。你可以希望直接在本网站%(link)s交易%(DEBT_TOKEN)s或转移到外部市场。",
-        "this_is_a_price_feed_conversion":
-            "这通过系统喂价来进行转换。为了防止恶意欺骗系统喂价,你的转换需要等待3.5天",
+        "your_existing_DEBT_TOKEN_are_liquid_and_transferable": "你现有的%(DEBT_TOKEN)s是可流动和可转让的。你可以希望直接在本网站%(link)s交易%(DEBT_TOKEN)s或转移到外部市场。",
+        "this_is_a_price_feed_conversion": "这通过系统喂价来进行转换。为了防止恶意欺骗系统喂价,你的转换需要等待3.5天",
         "convert_to_LIQUID_TOKEN": "转换为%(LIQUID_TOKEN)s",
-        "DEBT_TOKEN_will_be_unavailable":
-            "此操作将在3.5天内完成且不能取消。这些%(DEBT_TOKEN)s将立即变得不可用"
+        "DEBT_TOKEN_will_be_unavailable": "此操作将在3.5天内完成且不能取消。这些%(DEBT_TOKEN)s将立即变得不可用"
     },
     "tips_js": {
-        "liquid_token":
-            "可交易代币可以在任何时候发送到任何地方。%(LIQUID_TOKEN)s可以在一个被称为Power Up的过程中被转换成%(VESTING_TOKEN)s。",
-        "influence_token":
-            "代币的影响力可以使你对文章的赏金有更大的控制权,并可以获得审查奖励。",
+        "liquid_token": "可交易代币可以在任何时候发送到任何地方。%(LIQUID_TOKEN)s可以在一个被称为Power Up的过程中被转换成%(VESTING_TOKEN)s。",
+        "influence_token": "代币的影响力可以使你对文章的赏金有更大的控制权,并可以获得审查奖励。",
         "estimated_value": "基于美元计算,%(LIQUID_TOKEN)s的估值。",
-        "non_transferable":
-            "%(VESTING_TOKEN)s是不可转让的,需要3个月(13笔付款)才可换回%(LIQUID_TOKEN)s",
-        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again":
-            "%(VESTING_TOKEN)s可以转给你自己或其他人,但是只有转回%(LIQUID_TOKEN)s后,才可以进行下一次转账。",
-        "part_of_your_hive_power_is_currently_delegated":
-            "有一部分HIVE POWER是代理给你使用的。代理的HIVE POWER是为了帮助新用户在Hive上进行操作。你被代理的数量可能会有波动。"
+        "non_transferable": "%(VESTING_TOKEN)s是不可转让的,需要3个月(13笔付款)才可换回%(LIQUID_TOKEN)s",
+        "converted_VESTING_TOKEN_can_be_sent_to_yourself_but_can_not_transfer_again": "%(VESTING_TOKEN)s可以转给你自己或其他人,但是只有转回%(LIQUID_TOKEN)s后,才可以进行下一次转账。",
+        "part_of_your_hive_power_is_currently_delegated": "有一部分HIVE POWER是代理给你使用的。代理的HIVE POWER是为了帮助新用户在Hive上进行操作。你被代理的数量可能会有波动。"
     },
     "promote_post_jsx": {
         "promote_post": "推广帖子",
-        "spend_your_DEBT_TOKEN_to_advertise_this_post":
-            "花费%(DEBT_TOKEN)s在推广模块宣传这篇帖子",
+        "spend_your_DEBT_TOKEN_to_advertise_this_post": "花费%(DEBT_TOKEN)s在推广模块宣传这篇帖子",
         "you_successfully_promoted_this_post": "你成功的推广了这个帖子",
         "this_post_was_hidden_due_to_low_ratings": "此贴由于评级不足而被隐藏"
     },
     "about_jsx": {
         "about_app": "关于%(APP_NAME)s",
-        "about_app_details":
-            "%(APP_NAME)s是一个社交媒体平台,通过写文章和审查文章内容,每个人都可以得到赏金。它有一个强大的数字积分系统,称为Hive,其通过市场价格发现机制和流动性,来支撑数字奖励的真实价值。",
+        "about_app_details": "%(APP_NAME)s是一个社交媒体平台,通过写文章和审查文章内容,每个人都可以得到赏金。它有一个强大的数字积分系统,称为Hive,其通过市场价格发现机制和流动性,来支撑数字奖励的真实价值。",
         "learn_more_at_app_url": "了解更多%(APP_URL)s",
         "resources": "资源"
     },
@@ -475,8 +433,7 @@
     },
     "posts_index": {
         "empty_feed_1": "看起来你还没有关注任何人",
-        "empty_feed_2":
-            "如果你最近关注了新的用户,更新内容将会显示在你的个性化主页",
+        "empty_feed_2": "如果你最近关注了新的用户,更新内容将会显示在你的个性化主页",
         "empty_feed_3": "浏览流行文章",
         "empty_feed_4": "阅读快速入门指南",
         "empty_feed_5": "浏览常见问题解答"
@@ -500,38 +457,30 @@
         "comments_by": "评论"
     },
     "loginform_jsx": {
-        "you_need_a_private_password_or_key":
-            "你需要一个私人密码或密钥(非公钥)",
+        "you_need_a_private_password_or_key": "你需要一个私人密码或密钥(非公钥)",
         "cryptography_test_failed": "加密测试失败",
         "unable_to_log_you_in": "我们不允许使用当前浏览器登录。",
         "the_latest_versions_of": "最新版本的",
-        "are_well_tested_and_known_to_work_with":
-            "是经过良好测试,并可以正常使用%(APP_URL)s的。",
-        "due_to_server_maintenance":
-            "由于服务器维护,我们只在只读模式下运行。很抱歉给您带来不便。",
+        "are_well_tested_and_known_to_work_with": "是经过良好测试,并可以正常使用%(APP_URL)s的。",
+        "due_to_server_maintenance": "由于服务器维护,我们只在只读模式下运行。很抱歉给您带来不便。",
         "login_to_vote": "登录后投票",
         "login_to_post": "登录后发帖",
         "login_to_comment": "登录后评论",
         "posting": "发帖",
         "active_or_owner": "Active 或 Owner",
-        "this_password_is_bound_to_your_account_owner_key":
-            "此密码已绑定到您的帐户的Owner Key,不能用于登录到此站点。",
+        "this_password_is_bound_to_your_account_owner_key": "此密码已绑定到您的帐户的Owner Key,不能用于登录到此站点。",
         "however_you_can_use_it_to": "但是,您可以使用它来",
         "update_your_password": "修改密码",
         "to_obtain_a_more_secure_set_of_keys": "获取一组更安全的密钥。",
-        "this_password_is_bound_to_your_account_active_key":
-            "此密码已绑定到你的帐户的Active Key,不能用于登录到此页面。",
-        "you_may_use_this_active_key_on_other_more":
-            "你可以在其他更安全的页面上使用这个Active Key,比如钱包或市场页面。",
+        "this_password_is_bound_to_your_account_active_key": "此密码已绑定到你的帐户的Active Key,不能用于登录到此页面。",
+        "you_may_use_this_active_key_on_other_more": "你可以在其他更安全的页面上使用这个Active Key,比如钱包或市场页面。",
         "you_account_has_been_successfully_created": "您的帐号已经成功创建!",
         "you_account_has_been_successfully_recovered": "您的帐号已经成功恢复!",
         "password_update_succes": "%(accountName)s的密码成功修改",
-        "password_info":
-            "密码或私钥输入不正确。有可能是输入错误。提示:Hive创建的密码或私钥中永远不包含 0(零), O(大写O), I(大写i)和l (小写L)。",
+        "password_info": "密码或私钥输入不正确。有可能是输入错误。提示:Hive创建的密码或私钥中永远不包含 0(零), O(大写O), I(大写i)和l (小写L)。",
         "enter_your_username": "输入您的用户名",
         "password_or_wif": "密码或WIF",
-        "this_operation_requires_your_key_or_master_password":
-            "此操作需要您的%(authType)s密钥或主密码。",
+        "this_operation_requires_your_key_or_master_password": "此操作需要您的%(authType)s密钥或主密码。",
         "keep_me_logged_in": "保持登录状态",
         "amazing_community": "神奇的社区",
         "to_comment_and_reward_others": "评论和奖励他人。",
@@ -587,13 +536,10 @@
         "this_memo_is_private": "这个备注是私有的",
         "this_memo_is_public": "这个备注是公开的",
         "convert_to_VESTING_TOKEN": "转换成%(VESTING_TOKEN)s",
-        "balance_subject_to_3_day_withdraw_waiting_period":
-            "余额取决于3天的提款等待期,",
+        "balance_subject_to_3_day_withdraw_waiting_period": "余额取决于3天的提款等待期,",
         "move_funds_to_another_account": "将资金转移给另一个Hive的用户。",
-        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period":
-            "通过设置3天的提款等待期来保护资金。",
-        "withdraw_funds_after_the_required_3_day_waiting_period":
-            "需要在3天的等待期后提取资金。",
+        "protect_funds_by_requiring_a_3_day_withdraw_waiting_period": "通过设置3天的提款等待期来保护资金。",
+        "withdraw_funds_after_the_required_3_day_waiting_period": "需要在3天的等待期后提取资金。",
         "from": "从",
         "to": "到",
         "asset_currently_collecting": "%(asset)s目前获得%(interest)s%%利息"
@@ -608,12 +554,10 @@
         "convert_to_LIQUID_TOKEN": "转换为%(LIQUID_TOKEN)s",
         "withdraw_LIQUID_TOKEN": "取出%(LIQUID_TOKEN)s",
         "withdraw_DEBT_TOKENS": "取出%(DEBT_TOKENS)s",
-        "tokens_worth_about_1_of_LIQUID_TICKER":
-            "价值约为1.00美金的%(LIQUID_TICKER)s,目前正在获得%(hbdInterest)s%%的利息。",
+        "tokens_worth_about_1_of_LIQUID_TICKER": "价值约为1.00美金的%(LIQUID_TICKER)s,目前正在获得%(hbdInterest)s%%的利息。",
         "savings": "储蓄",
         "estimated_account_value": "账户估值",
-        "next_power_down_is_scheduled_to_happen":
-            "下一次的Power Down计划发生在",
+        "next_power_down_is_scheduled_to_happen": "下一次的Power Down计划发生在",
         "transfers_are_temporary_disabled": "转移功能暂时被禁用。",
         "history": "历史",
         "redeem_rewards": "赎回奖励(转移至余额)",
diff --git a/src/app/redux/AppReducer.js b/src/app/redux/AppReducer.js
index 2296c9c32c74ab7e103e4ade5c5781f6876c872a..5b521eaf8ce2e44fa0f41102d02fd55869f92ca9 100644
--- a/src/app/redux/AppReducer.js
+++ b/src/app/redux/AppReducer.js
@@ -29,6 +29,8 @@ export const defaultState = Map({
 });
 
 export default function reducer(state = defaultState, action = {}) {
+    let newFlags;
+
     switch (action.type) {
         case '@@router/LOCATION_CHANGE':
             return state.set('location', { pathname: action.payload.pathname });
@@ -52,28 +54,20 @@ export default function reducer(state = defaultState, action = {}) {
                 dismissAfter: 10000,
                 ...action.payload,
             };
-            return state.update('notifications', s => {
+            return state.update('notifications', (s) => {
                 return s ? s.set(n.key, n) : OrderedMap({ [n.key]: n });
             });
         }
         case REMOVE_NOTIFICATION:
-            return state.update('notifications', s =>
-                s.delete(action.payload.key)
-            );
+            return state.update('notifications', (s) => s.delete(action.payload.key));
         case SET_USER_PREFERENCES:
             return state.set('user_preferences', Map(action.payload));
         case TOGGLE_NIGHTMODE:
-            return state.setIn(
-                ['user_preferences', 'nightmode'],
-                !state.getIn(['user_preferences', 'nightmode'])
-            );
+            return state.setIn(['user_preferences', 'nightmode'], !state.getIn(['user_preferences', 'nightmode']));
         case TOGGLE_BLOGMODE:
-            return state.setIn(
-                ['user_preferences', 'blogmode'],
-                !state.getIn(['user_preferences', 'blogmode'])
-            );
+            return state.setIn(['user_preferences', 'blogmode'], !state.getIn(['user_preferences', 'blogmode']));
         case RECEIVE_FEATURE_FLAGS:
-            const newFlags = state.get('featureFlags')
+            newFlags = state.get('featureFlags')
                 ? state.get('featureFlags').merge(action.flags)
                 : Map(action.flags);
             return state.set('featureFlags', newFlags);
@@ -82,7 +76,7 @@ export default function reducer(state = defaultState, action = {}) {
     }
 }
 
-export const steemApiError = error => ({
+export const steemApiError = (error) => ({
     type: STEEM_API_ERROR,
     error,
 });
@@ -95,17 +89,17 @@ export const fetchDataEnd = () => ({
     type: FETCH_DATA_END,
 });
 
-export const addNotification = payload => ({
+export const addNotification = (payload) => ({
     type: ADD_NOTIFICATION,
     payload,
 });
 
-export const removeNotification = payload => ({
+export const removeNotification = (payload) => ({
     type: REMOVE_NOTIFICATION,
     payload,
 });
 
-export const setUserPreferences = payload => ({
+export const setUserPreferences = (payload) => ({
     type: SET_USER_PREFERENCES,
     payload,
 });
@@ -118,12 +112,11 @@ export const toggleBlogmode = () => ({
     type: TOGGLE_BLOGMODE,
 });
 
-export const receiveFeatureFlags = flags => ({
+export const receiveFeatureFlags = (flags) => ({
     type: RECEIVE_FEATURE_FLAGS,
     flags,
 });
 
 export const selectors = {
-    getFeatureFlag: (state, flagName) =>
-        state.getIn(['featureFlags', flagName], false),
+    getFeatureFlag: (state, flagName) => state.getIn(['featureFlags', flagName], false),
 };
diff --git a/src/app/redux/AppReducer.test.js b/src/app/redux/AppReducer.test.js
index 458f6d9cb6340aac88558ec2267327a363d69a2a..acc73f515e5c0c5e962a8ff190ef39270692bbea 100644
--- a/src/app/redux/AppReducer.test.js
+++ b/src/app/redux/AppReducer.test.js
@@ -1,4 +1,4 @@
-import { Map, OrderedMap, getIn } from 'immutable';
+import { Map, OrderedMap } from 'immutable';
 
 import reducer, {
     defaultState,
@@ -20,8 +20,6 @@ const mockPayloads = {
     },
     removeNotification: {
         pathname: 'testPath',
-    },
-    removeNotification: {
         key: 'testKey',
     },
     setUserPreferences: {
@@ -39,7 +37,7 @@ const mockActions = {
     },
 };
 
-const key = mockPayloads.addNotification.key;
+const { key } = mockPayloads.addNotification;
 const mockNotification = OrderedMap({
     [key]: {
         action: 'missing translation: en.g.dismiss',
@@ -55,11 +53,9 @@ describe('App reducer', () => {
     });
     it('should return correct state for a LOCATION_CHANGE action', () => {
         const initial = reducer();
-        const actual = reducer(initial, mockActions['LOCATION_CHANGE']);
+        const actual = reducer(initial, mockActions.LOCATION_CHANGE);
         const out = actual.get('location');
-        expect(out.pathname).toEqual(
-            mockActions['LOCATION_CHANGE'].payload.pathname
-        );
+        expect(out.pathname).toEqual(mockActions.LOCATION_CHANGE.payload.pathname);
     });
     it('should return correct state for a STEEM_API_ERROR action', () => {
         const initial = reducer();
@@ -80,48 +76,36 @@ describe('App reducer', () => {
     });
     it('should return correct state for a ADD_NOTIFICATION action', () => {
         const initial = reducer();
-        const actual = reducer(
-            initial,
-            addNotification(mockPayloads.addNotification)
-        );
+        const actual = reducer(initial, addNotification(mockPayloads.addNotification));
         const out = actual.getIn(['notifications', key]);
         expect(out).toEqual(mockNotification.get(key));
     });
     it('should return correct state for a REMOVE_NOTIFICATION action', () => {
         const initial = reducer();
-        const initialWithNotification = initial.set(
-            'notifications',
-            mockNotification
-        );
-        const actual = reducer(
-            initialWithNotification,
-            removeNotification(mockPayloads.removeNotification)
-        );
+        const initialWithNotification = initial.set('notifications', mockNotification);
+        const actual = reducer(initialWithNotification, removeNotification(mockPayloads.removeNotification));
         const out = actual.get('notifications');
         const expected = OrderedMap();
         expect(out).toEqual(expected);
     });
     it('should return correct state for a SET_USER_PREFERENCES action', () => {
         const initial = reducer();
-        let actual = reducer(
-            initial,
-            setUserPreferences(mockPayloads.setUserPreferences)
-        );
-        let out = actual.get('user_preferences');
-        let expected = Map({ cat: 'mymy', dog: 'polly' });
+        const actual = reducer(initial, setUserPreferences(mockPayloads.setUserPreferences));
+        const out = actual.get('user_preferences');
+        const expected = Map({ cat: 'mymy', dog: 'polly' });
         expect(out).toEqual(expected);
     });
     it('should return correct state for a TOGGLE_NIGHTMODE action', () => {
         const initial = reducer();
         const before = initial.getIn(['user_preferences', 'nightmode']);
-        let actual = reducer(initial, toggleNightmode());
+        const actual = reducer(initial, toggleNightmode());
         const after = actual.getIn(['user_preferences', 'nightmode']);
         expect(after).toEqual(!before);
     });
     it('should return correct state for a TOGGLE_BLOGMODE action', () => {
         const initial = reducer();
         const before = initial.getIn(['user_preferences', 'blogmode']);
-        let actual = reducer(initial, toggleBlogmode());
+        const actual = reducer(initial, toggleBlogmode());
         const after = actual.getIn(['user_preferences', 'blogmode']);
         expect(after).toEqual(!before);
     });
@@ -144,12 +128,8 @@ describe('App reducer', () => {
         );
 
         // Assert
-        expect(selectors.getFeatureFlag(withMoreFlags, 'swimming')).toEqual(
-            false
-        );
+        expect(selectors.getFeatureFlag(withMoreFlags, 'swimming')).toEqual(false);
         expect(selectors.getFeatureFlag(withMoreFlags, 'flying')).toEqual(true);
-        expect(selectors.getFeatureFlag(withMoreFlags, 'dancing')).toEqual(
-            false
-        );
+        expect(selectors.getFeatureFlag(withMoreFlags, 'dancing')).toEqual(false);
     });
 });
diff --git a/src/app/redux/AuthSaga.js b/src/app/redux/AuthSaga.js
index f3b761f5871855a33a1e8fba7be860313751037c..0ffc1b7afc6f9afae0cb426c015d187fcd68e0e7 100644
--- a/src/app/redux/AuthSaga.js
+++ b/src/app/redux/AuthSaga.js
@@ -1,5 +1,9 @@
-import { call, put, select, takeEvery } from 'redux-saga/effects';
-import { Set, Map, fromJS, List } from 'immutable';
+import {
+ call, put, select, takeEvery
+} from 'redux-saga/effects';
+import {
+ Set, Map, fromJS, List
+} from 'immutable';
 import { api } from '@hiveio/hive-js';
 import { PrivateKey } from '@hiveio/hive-js/lib/auth/ecc';
 
@@ -8,28 +12,22 @@ import * as userActions from 'app/redux/UserReducer';
 
 // operations that require only posting authority
 export const postingOps = Set(
-    `vote, comment, delete_comment, custom_json, claim_reward_balance, account_update2`
-        .trim()
-        .split(/,\s*/)
+    `vote, comment, delete_comment, custom_json, claim_reward_balance, account_update2`.trim().split(/,\s*/)
 );
 
-export const authWatches = [
-    takeEvery('user/ACCOUNT_AUTH_LOOKUP', accountAuthLookup),
-];
+export const authWatches = [takeEvery('user/ACCOUNT_AUTH_LOOKUP', accountAuthLookup)];
 
-export function* accountAuthLookup({
-    payload: { account, private_keys, login_owner_pubkey },
-}) {
+export function* accountAuthLookup({ payload: { account, private_keys, login_owner_pubkey } }) {
     account = fromJS(account);
     private_keys = fromJS(private_keys);
     // console.log('accountAuthLookup', account.name)
-    const stateUser = yield select(state => state.user);
+    const stateUser = yield select((state) => state.user);
     let keys;
     if (private_keys) keys = private_keys;
     else keys = stateUser.getIn(['current', 'private_keys']);
 
     if (!keys || !keys.has('posting_private')) return;
-    const toPub = k => (k ? k.toPublicKey().toString() : '-');
+    const toPub = (k) => (k ? k.toPublicKey().toString() : '-');
     const posting = keys.get('posting_private');
     const active = keys.get('active_private');
     const owner = keys.get('active_private');
@@ -77,31 +75,41 @@ function* authorityLookup({ pubkeys, authority, authType }) {
     return yield call(authStr, { pubkeys, authority, authType });
 }
 
-function* authStr({ pubkeys, authority, authType, recurse = 1 }) {
-    const t = yield call(threshold, { pubkeys, authority, authType, recurse });
+function* authStr({
+ pubkeys, authority, authType, recurse = 1
+}) {
+    const t = yield call(threshold, {
+        pubkeys,
+        authority,
+        authType,
+        recurse,
+    });
     const r = authority.get('weight_threshold');
     return t >= r ? 'full' : t > 0 ? 'partial' : 'none';
 }
 
-export function* threshold({ pubkeys, authority, authType, recurse = 1 }) {
+export function* threshold({
+ pubkeys, authority, authType, recurse = 1
+}) {
     if (!pubkeys.size) return 0;
     let t = pubkeyThreshold({ pubkeys, authority });
     const account_auths = authority.get('account_auths');
-    const aaNames = account_auths.map(v => v.get(0), List());
+    const aaNames = account_auths.map((v) => v.get(0), List());
     if (aaNames.size) {
         const aaAccounts = yield api.getAccountsAsync(aaNames);
-        const aaThreshes = account_auths.map(v => v.get(1), List());
-        for (let i = 0; i < aaAccounts.size; i++) {
+        const aaThreshes = account_auths.map((v) => v.get(1), List());
+        for (let i = 0; i < aaAccounts.size; i += 1) {
             const aaAccount = aaAccounts.get(i);
             t += pubkeyThreshold({
                 authority: aaAccount.get(authType),
                 pubkeys,
             });
             if (recurse <= 2) {
+                recurse += 1;
                 const auth = yield call(authStr, {
                     authority: aaAccount,
                     pubkeys,
-                    recurse: ++recurse,
+                    recurse,
                 });
                 if (auth === 'full') {
                     const aaThresh = aaThreshes.get(i);
@@ -116,7 +124,7 @@ export function* threshold({ pubkeys, authority, authType, recurse = 1 }) {
 function pubkeyThreshold({ pubkeys, authority }) {
     let available = 0;
     const key_auths = authority.get('key_auths');
-    key_auths.forEach(k => {
+    key_auths.forEach((k) => {
         if (pubkeys.has(k.get(0))) {
             available += k.get(1);
         }
@@ -130,7 +138,7 @@ export function* findSigningKey({ opType, username, password }) {
     else authTypes = 'active, owner';
     authTypes = authTypes.split(', ');
 
-    const currentUser = yield select(state => state.user.get('current'));
+    const currentUser = yield select((state) => state.user.get('current'));
     const currentUsername = currentUser && currentUser.get('username');
 
     username = username || currentUsername;
@@ -138,29 +146,25 @@ export function* findSigningKey({ opType, username, password }) {
 
     if (username.indexOf('/') > -1) {
         // "alice/active" will login only with Alices active key
-        username = username.split('/')[0];
+        const [splitUsername] = username.split('/')[0];
+        username = splitUsername;
     }
 
-    const private_keys =
-        currentUsername === username ? currentUser.get('private_keys') : Map();
+    const private_keys = currentUsername === username ? currentUser.get('private_keys') : Map();
 
     const account = yield call(getAccount, username);
     if (!account) throw new Error('Account not found');
 
+    // eslint-disable-next-line no-restricted-syntax
     for (const authType of authTypes) {
         let private_key;
         if (password) {
             try {
                 private_key = PrivateKey.fromWif(password);
             } catch (e) {
-                private_key = PrivateKey.fromSeed(
-                    username + authType + password
-                );
+                private_key = PrivateKey.fromSeed(username + authType + password);
             }
-        } else {
-            if (private_keys)
-                private_key = private_keys.get(authType + '_private');
-        }
+        } else if (private_keys) private_key = private_keys.get(authType + '_private');
         if (private_key) {
             const pubkey = private_key.toPublicKey().toString();
             const pubkeys = Set([pubkey]);
diff --git a/src/app/redux/CommunityReducer.js b/src/app/redux/CommunityReducer.js
index 3640c63db62739628175971c73ca6cc0fc5dbe95..c989481e1f4ed28110dba99a0ba81bf27a446877 100644
--- a/src/app/redux/CommunityReducer.js
+++ b/src/app/redux/CommunityReducer.js
@@ -6,11 +6,9 @@ const SET_COMMUNITY_ROLES = 'community/SET_COMMUNITY_ROLES';
 const GET_COMMUNITY_ROLES_ERROR = 'community/GET_COMMUNITY_ROLES_ERROR';
 
 const GET_COMMUNITY_SUBSCRIBERS = 'community/GET_COMMUNITY_SUBSCRIBERS';
-const GET_COMMUNITY_SUBSCRIBERS_PENDING =
-    'community/GET_COMMUNITY_SUBSCRIBERS_PENDING';
+const GET_COMMUNITY_SUBSCRIBERS_PENDING = 'community/GET_COMMUNITY_SUBSCRIBERS_PENDING';
 const SET_COMMUNITY_SUBSCRIBERS = 'community/SET_COMMUNITY_SUBSCRIBERS';
-const GET_COMMUNITY_SUBSCRIBERS_ERROR =
-    'community/GET_COMMUNITY_SUBSCRIBERS_ERROR';
+const GET_COMMUNITY_SUBSCRIBERS_ERROR = 'community/GET_COMMUNITY_SUBSCRIBERS_ERROR';
 
 const UPDATE_USER_ROLE = 'community/UPDATE_USER_ROLE';
 const SET_USER_ROLE_PENDING = 'community/SET_USER_ROLE_PENDING';
@@ -19,7 +17,7 @@ const APPLY_USER_ROLE = 'community/APPLY_USER_ROLE';
 const defaultCommunityState = Map();
 
 export default function reducer(state = defaultCommunityState, action) {
-    const payload = action.payload;
+    const { payload } = action;
     switch (action.type) {
         // Has Saga watcher.
         case GET_COMMUNITY_SUBSCRIBERS: {
@@ -63,23 +61,16 @@ export default function reducer(state = defaultCommunityState, action) {
 
         case APPLY_USER_ROLE: {
             const { community } = payload;
-            const index = state
-                .getIn([community, 'roles'])
-                .findIndex(r => r.get(0) === payload.account);
+            const index = state.getIn([community, 'roles']).findIndex((r) => r.get(0) === payload.account);
 
             if (index === -1) {
-                return state.updateIn([community, 'roles'], List(), list => {
-                    return list.withMutations(items => {
+                return state.updateIn([community, 'roles'], List(), (list) => {
+                    return list.withMutations((items) => {
                         items.push(List([payload.account, payload.role]));
                     });
                 });
-            } else {
-                return state.updateIn([community, 'roles'], List(), items =>
-                    items.update(index, item =>
-                        item.set(0, payload.account).set(1, payload.role)
-                    )
-                );
             }
+            return state.updateIn([community, 'roles'], List(), (items) => items.update(index, (item) => item.set(0, payload.account).set(1, payload.role)));
         }
 
         default:
@@ -90,7 +81,7 @@ export default function reducer(state = defaultCommunityState, action) {
 /**
     @arg {community: string} payload action payload.
 */
-export const getCommunityRoles = payload => ({
+export const getCommunityRoles = (payload) => ({
     type: GET_COMMUNITY_ROLES,
     payload,
 });
@@ -98,17 +89,17 @@ export const getCommunityRoles = payload => ({
 /**
     @arg boolean payload action payload.
 */
-export const getCommunityRolesPending = payload => ({
+export const getCommunityRolesPending = (payload) => ({
     type: GET_COMMUNITY_ROLES_PENDING,
     payload,
 });
 
-export const getCommunityRolesError = payload => ({
+export const getCommunityRolesError = (payload) => ({
     type: GET_COMMUNITY_ROLES_ERROR,
     payload,
 });
 
-export const setCommunityRoles = payload => ({
+export const setCommunityRoles = (payload) => ({
     type: SET_COMMUNITY_ROLES,
     payload,
 });
@@ -116,7 +107,7 @@ export const setCommunityRoles = payload => ({
 /**
     @arg {community: string} payload action payload.
 */
-export const getCommunitySubscribers = payload => ({
+export const getCommunitySubscribers = (payload) => ({
     type: GET_COMMUNITY_SUBSCRIBERS,
     payload,
 });
@@ -124,7 +115,7 @@ export const getCommunitySubscribers = payload => ({
 /**
     @arg boolean payload action payload.
 */
-export const getCommunitySubscribersPending = payload => ({
+export const getCommunitySubscribersPending = (payload) => ({
     type: GET_COMMUNITY_SUBSCRIBERS_PENDING,
     payload,
 });
@@ -132,25 +123,25 @@ export const getCommunitySubscribersPending = payload => ({
 /**
     @arg error payload action payload.
 */
-export const getCommunitySubscribersError = payload => ({
+export const getCommunitySubscribersError = (payload) => ({
     type: GET_COMMUNITY_SUBSCRIBERS_ERROR,
     payload,
 });
 
-export const setCommunitySubscribers = payload => ({
+export const setCommunitySubscribers = (payload) => ({
     type: SET_COMMUNITY_SUBSCRIBERS,
     payload,
 });
 
-export const updateUserRole = payload => ({
+export const updateUserRole = (payload) => ({
     type: UPDATE_USER_ROLE,
     payload,
 });
-export const setUserRolePending = payload => ({
+export const setUserRolePending = (payload) => ({
     type: SET_USER_ROLE_PENDING,
     payload,
 });
-export const applyUserRole = payload => ({
+export const applyUserRole = (payload) => ({
     type: APPLY_USER_ROLE,
     payload,
 });
diff --git a/src/app/redux/CommunitySaga.js b/src/app/redux/CommunitySaga.js
index 34737651841576048d695f08ad289afa088158d5..b5e6e36c30aa88021c6b84c6326aab16f9d8396d 100644
--- a/src/app/redux/CommunitySaga.js
+++ b/src/app/redux/CommunitySaga.js
@@ -1,4 +1,6 @@
-import { call, put, takeEvery, select } from 'redux-saga/effects';
+import {
+ call, put, takeEvery, select
+} from 'redux-saga/effects';
 import * as reducer from 'app/redux/CommunityReducer';
 import { getCommunity } from 'app/redux/FetchDataSaga';
 import { callBridge } from 'app/utils/steemApi';
@@ -27,9 +29,7 @@ export function* getCommunityRoles(action) {
 
 export function* getCommunitySubscribers(action) {
     const community = action.payload;
-    yield put(
-        reducer.getCommunitySubscribersPending({ community, pending: true })
-    );
+    yield put(reducer.getCommunitySubscribersPending({ community, pending: true }));
     try {
         const subscribers = yield call(callBridge, 'list_subscribers', {
             community,
@@ -39,18 +39,14 @@ export function* getCommunitySubscribers(action) {
     } catch (error) {
         yield put(reducer.getCommunitySubscribersError({ community, error }));
     }
-    yield put(
-        reducer.getCommunitySubscribersPending({ community, pending: false })
-    );
+    yield put(reducer.getCommunitySubscribersPending({ community, pending: false }));
 }
 
 export function* updateUserRole(action) {
     const { community } = action.payload;
     yield put(reducer.setUserRolePending({ community, pending: true }));
     try {
-        const username = yield select(state =>
-            state.user.getIn(['current', 'username'])
-        );
+        const username = yield select((state) => state.user.getIn(['current', 'username']));
 
         yield put(
             transactionActions.broadcastOperation({
diff --git a/src/app/redux/CommunitySearchReducer.js b/src/app/redux/CommunitySearchReducer.js
index a1091881de8f2db8595bf97d0509165ab92584a2..7575174f92cb0979c8440a59b6c7d0df94508175 100644
--- a/src/app/redux/CommunitySearchReducer.js
+++ b/src/app/redux/CommunitySearchReducer.js
@@ -1,4 +1,4 @@
-import { Map, List, fromJS } from 'immutable';
+import { Map, List } from 'immutable';
 
 const COMMUNITY_SEARCH_DISPATCH = 'communitySearch/COMMUNITY_SEARCH_DISPATCH';
 const COMMUNITY_SEARCH_PENDING = 'communitySearch/COMMUNITY_SEARCH_PENDING';
@@ -12,7 +12,7 @@ const defaultCommunitySearchState = Map({
 });
 
 export default function reducer(state = defaultCommunitySearchState, action) {
-    const payload = action.payload;
+    const { payload } = action;
 
     switch (action.type) {
         // Has a saga watcher.
@@ -36,20 +36,20 @@ export default function reducer(state = defaultCommunitySearchState, action) {
     }
 }
 
-export const communitySearch = payload => ({
+export const communitySearch = (payload) => ({
     type: COMMUNITY_SEARCH_DISPATCH,
     payload,
 });
-export const communitySearchPending = payload => ({
+export const communitySearchPending = (payload) => ({
     type: COMMUNITY_SEARCH_PENDING,
     payload,
 });
-export const communitySearchError = payload => ({
+export const communitySearchError = (payload) => ({
     type: COMMUNITY_SEARCH_PENDING,
     payload,
 });
 
-export const communitySearchResult = payload => ({
+export const communitySearchResult = (payload) => ({
     type: COMMUNITY_SEARCH_RESULT,
     payload,
 });
diff --git a/src/app/redux/CommunitySearchSaga.js b/src/app/redux/CommunitySearchSaga.js
index 2703d2d3ad353bf5e9dea11fb715366821eea471..4160e4f815139291c36f41778421f85b1532d46d 100644
--- a/src/app/redux/CommunitySearchSaga.js
+++ b/src/app/redux/CommunitySearchSaga.js
@@ -1,11 +1,9 @@
-import { put, takeEvery, call } from 'redux-saga/effects';
+import { put, takeEvery } from 'redux-saga/effects';
 import * as reducer from 'app/redux/CommunitySearchReducer';
 
-export const searchWatches = [
-    takeEvery('communitySearch/COMMUNITY_SEARCH_DISPATCH', communitySearchSaga),
-];
+export const searchWatches = [takeEvery('communitySearch/COMMUNITY_SEARCH_DISPATCH', communitySearchSaga)];
 
-export function* communitySearchSaga(action) {
+export function* communitySearchSaga() {
     // const { q, s, scroll_id } = action.payload;
     yield put(reducer.communitySearchPending({ pending: true }));
     try {
diff --git a/src/app/redux/FetchDataSaga.js b/src/app/redux/FetchDataSaga.js
index 39a1c805bae74ab5d0e3ebfcbeeb3e0fa6201d25..f92bc7dfb1804c8fcbf485d48f04171f7c9b5e75 100644
--- a/src/app/redux/FetchDataSaga.js
+++ b/src/app/redux/FetchDataSaga.js
@@ -1,13 +1,13 @@
-import { call, put, select, fork, takeLatest, takeEvery } from 'redux-saga/effects';
-import { api } from '@hiveio/hive-js';
+import {
+ call, put, select, fork, takeLatest, takeEvery
+} from 'redux-saga/effects';
 import { loadFollows } from 'app/redux/FollowSaga';
+import { getStateAsync, callBridge } from 'app/utils/steemApi';
+import { fetchCrossPosts, augmentContentWithCrossPost } from 'app/utils/CrossPosts';
 import * as globalActions from './GlobalReducer';
 import * as appActions from './AppReducer';
 import * as transactionActions from './TransactionReducer';
 import constants from './constants';
-import { fromJS, Map, Set } from 'immutable';
-import { getStateAsync, callBridge } from 'app/utils/steemApi';
-import { fetchCrossPosts, augmentContentWithCrossPost } from 'app/utils/CrossPosts';
 
 const REQUEST_DATA = 'fetchDataSaga/REQUEST_DATA';
 const FETCH_STATE = 'fetchDataSaga/FETCH_STATE';
@@ -45,7 +45,7 @@ export function* getPostHeader(action) {
 let is_initial_state = true;
 export function* fetchState(location_change_action) {
     const { pathname } = location_change_action.payload;
-    const m = pathname.match(/^\/@([a-z0-9\.-]+)(\/notifications)?/);
+    const m = pathname.match(/^\/@([a-z0-9.-]+)(\/notifications)?/);
     if (m && m.length >= 2) {
         const username = m[1];
         yield fork(loadFollows, 'getFollowersAsync', username, 'blog');
@@ -54,7 +54,7 @@ export function* fetchState(location_change_action) {
 
     // `ignore_fetch` case should only trigger on initial page load. No need to call
     // fetchState immediately after loading fresh state from the server. Details: #593
-    const server_location = yield select(state => state.offchain.get('server_location'));
+    const server_location = yield select((state) => state.offchain.get('server_location'));
     const ignore_fetch = pathname === server_location && is_initial_state;
 
     if (ignore_fetch) {
@@ -70,7 +70,7 @@ export function* fetchState(location_change_action) {
     try {
         let username = null;
         if (process.env.BROWSER) {
-            [username] = yield select(state => [state.user.getIn(['current', 'username'])]);
+            [username] = yield select((state) => [state.user.getIn(['current', 'username'])]);
         }
         const state = yield call(getStateAsync, url, username, false);
         yield put(globalActions.receiveState(state));
@@ -88,16 +88,16 @@ function* syncSpecialPosts() {
     if (!process.env.BROWSER) return null;
 
     // Get special posts from the store.
-    const specialPosts = yield select(state => state.offchain.get('special_posts'));
+    const specialPosts = yield select((state) => state.offchain.get('special_posts'));
 
     // Mark seen featured posts.
-    const seenFeaturedPosts = specialPosts.get('featured_posts').map(post => {
+    const seenFeaturedPosts = specialPosts.get('featured_posts').map((post) => {
         const id = `${post.get('author')}/${post.get('permlink')}`;
         return post.set('seen', localStorage.getItem(`featured-post-seen:${id}`) === 'true');
     });
 
     // Mark seen promoted posts.
-    const seenPromotedPosts = specialPosts.get('promoted_posts').map(post => {
+    const seenPromotedPosts = specialPosts.get('promoted_posts').map((post) => {
         const id = `${post.get('author')}/${post.get('permlink')}`;
         return post.set('seen', localStorage.getItem(`promoted-post-seen:${id}`) === 'true');
     });
@@ -111,29 +111,18 @@ function* syncSpecialPosts() {
     );
 
     // Mark all featured posts as seen.
-    specialPosts.get('featured_posts').forEach(post => {
+    specialPosts.get('featured_posts').forEach((post) => {
         const id = `${post.get('author')}/${post.get('permlink')}`;
         localStorage.setItem(`featured-post-seen:${id}`, 'true');
     });
 
     // Mark all promoted posts as seen.
-    specialPosts.get('promoted_posts').forEach(post => {
+    specialPosts.get('promoted_posts').forEach((post) => {
         const id = `${post.get('author')}/${post.get('permlink')}`;
         localStorage.setItem(`promoted-post-seen:${id}`, 'true');
     });
 }
 
-/**
- * Request account data for a set of usernames.
- *
- * @todo batch the put()s
- *
- * @param {Iterable} usernames
- */
-function* getAccounts(usernames) {
-    const accounts = yield call([api, api.getAccountsAsync], usernames);
-    yield put(globalActions.receiveAccounts({ accounts }));
-}
 
 /**
  * Request all communities
@@ -161,7 +150,7 @@ export function* listCommunities(action) {
 export function* getCommunity(action) {
     if (!action.payload) throw 'no community specified';
 
-    const currentUser = yield select(state => state.user.get('current'));
+    const currentUser = yield select((state) => state.user.get('current'));
     const currentUsername = currentUser && currentUser.get('username');
 
     // TODO: If no current user is logged in, skip the observer param.
@@ -171,12 +160,13 @@ export function* getCommunity(action) {
     });
 
     // TODO: Handle error state
-    if (community.name)
+    if (community.name) {
         yield put(
             globalActions.receiveCommunity({
                 [community.name]: { ...community },
             })
         );
+    }
 }
 
 /**
@@ -219,7 +209,6 @@ export function* getAccountNotifications(action) {
             console.error('~~ Saga getAccountNotifications error ~~>', notifications.error);
             yield put(appActions.steemApiError(notifications.error.message));
         } else {
-            const limit = action.payload.limit ? action.payload.limit : 100;
             const isLastPage = notifications.length < action.payload.limit;
             yield put(
                 globalActions.receiveNotifications({
@@ -294,7 +283,9 @@ export function* markNotificationsAsReadSaga(action) {
 
 export function* fetchData(action) {
     // TODO: postFilter unused
-    const { order, author, permlink, postFilter, observer } = action.payload;
+    const {
+        order, author, permlink, postFilter, observer
+    } = action.payload;
     let { category } = action.payload;
     if (!category) category = '';
 
@@ -311,7 +302,6 @@ export function* fetchData(action) {
             observer,
         };
     } else {
-        console.log('fetch saga ranked posts');
         call_name = 'get_ranked_posts';
         args = {
             sort: order,
@@ -359,7 +349,7 @@ export function* fetchData(action) {
                 data = posts;
             }
 
-            batch++;
+            batch += 1;
             fetchLimitReached = batch >= constants.MAX_BATCHES;
 
             if (data.length > 0) {
@@ -370,7 +360,11 @@ export function* fetchData(action) {
 
             // Still return all data but only count ones matching the filter.
             // Rely on UI to actually hide the posts.
-            fetched += postFilter ? data.filter(postFilter).length : data.length;
+            if (postFilter && data) {
+                fetched += data.filter(postFilter).length;
+            } else {
+                fetched += data.length;
+            }
 
             fetchDone = endOfData || fetchLimitReached || fetched >= constants.FETCH_DATA_BATCH_SIZE;
 
@@ -397,7 +391,11 @@ export function* fetchData(action) {
     @arg {string} url
     @arg {object} body (for JSON.stringify)
 */
-function* fetchJson({ payload: { id, url, body, successCallback, skipLoading = false } }) {
+function* fetchJson({
+ payload: {
+ id, url, body, successCallback, skipLoading = false
+}
+}) {
     try {
         const payload = {
             method: body ? 'POST' : 'GET',
@@ -416,7 +414,7 @@ function* fetchJson({ payload: { id, url, body, successCallback, skipLoading = f
         yield put(globalActions.fetchJsonResult({ id, error }));
     }
 }
-export function* getRewardsDataSaga(action) {
+export function* getRewardsDataSaga() {
     yield put(appActions.fetchDataBegin());
     try {
         const rewards = yield call(callBridge, 'get_payout_stats', {});
@@ -435,54 +433,54 @@ export function* getRewardsDataSaga(action) {
 
 // Action creators
 export const actions = {
-    listCommunities: payload => ({
+    listCommunities: (payload) => ({
         type: LIST_COMMUNITIES,
         payload,
     }),
 
-    getCommunity: payload => {
+    getCommunity: (payload) => {
         return {
             type: GET_COMMUNITY,
             payload,
         };
     },
 
-    getSubscriptions: payload => ({
+    getSubscriptions: (payload) => ({
         type: GET_SUBSCRIPTIONS,
         payload,
     }),
 
-    getAccountNotifications: payload => ({
+    getAccountNotifications: (payload) => ({
         type: GET_ACCOUNT_NOTIFICATIONS,
         payload,
     }),
 
-    getUnreadAccountNotifications: payload => ({
+    getUnreadAccountNotifications: (payload) => ({
         type: GET_UNREAD_ACCOUNT_NOTIFICATIONS,
         payload,
     }),
 
-    markNotificationsAsRead: payload => ({
+    markNotificationsAsRead: (payload) => ({
         type: MARK_NOTIFICATIONS_AS_READ,
         payload,
     }),
 
-    requestData: payload => ({
+    requestData: (payload) => ({
         type: REQUEST_DATA,
         payload,
     }),
 
-    getPostHeader: payload => ({
+    getPostHeader: (payload) => ({
         type: GET_POST_HEADER,
         payload,
     }),
 
-    fetchState: payload => ({
+    fetchState: (payload) => ({
         type: FETCH_STATE,
         payload,
     }),
 
-    getRewardsData: payload => ({
+    getRewardsData: (payload) => ({
         type: GET_REWARDS_DATA,
         payload,
     }),
diff --git a/src/app/redux/FetchDataSaga.test.js b/src/app/redux/FetchDataSaga.test.js
index 088e48c34fa53ef5f61d3ba5267b4ab6cb8cc968..e0573a3af04a6c484a6725aa87addda41244959c 100644
--- a/src/app/redux/FetchDataSaga.test.js
+++ b/src/app/redux/FetchDataSaga.test.js
@@ -1,23 +1,22 @@
 import { call, put } from 'redux-saga/effects';
-import { api } from '@hiveio/hive-js';
 import { callBridge } from 'app/utils/steemApi';
+import { fetchCrossPosts } from 'app/utils/CrossPosts';
 import * as appActions from './AppReducer';
 import * as globalActions from './GlobalReducer';
 import constants from './constants';
 
 import { fetchData } from './FetchDataSaga';
-import { fetchCrossPosts } from 'app/utils/CrossPosts';
 
 describe('FetchDataSaga', () => {
     describe('should fetch multiple and filter', () => {
-        let payload = {
+        const payload = {
             order: 'blog',
             category: '@bob',
             author: 'alice',
             permlink: 'hair',
-            postFilter: value => value.author === 'bob',
+            postFilter: (value) => value.author === 'bob',
         };
-        let action = {
+        const action = {
             category: '',
             payload,
         };
@@ -79,10 +78,7 @@ describe('FetchDataSaga', () => {
             expect(actual).toEqual(
                 put(
                     globalActions.receiveData({
-                        data: [
-                            { author: 'alice' },
-                            { author: 'bob', permlink: 'post1' },
-                        ],
+                        data: [{ author: 'alice' }, { author: 'bob', permlink: 'post1' }],
                         order: 'blog',
                         category: '@bob',
                         author: 'alice',
@@ -142,14 +138,14 @@ describe('FetchDataSaga', () => {
         });
     });
     describe('should not fetch more batches than max batch size', () => {
-        let payload = {
+        const payload = {
             order: 'blog',
             author: 'alice',
             permlink: 'hair',
             category: '@bob',
-            postFilter: value => value.author === 'bob',
+            postFilter: (value) => value.author === 'bob',
         };
-        let action = {
+        const action = {
             category: '',
             payload,
         };
diff --git a/src/app/redux/FollowSaga.js b/src/app/redux/FollowSaga.js
index 8aac7f0bd1b88342da462d67796c346db4f9bc48..507b6243788f5c94d44c3ef029affaa5736eba5b 100644
--- a/src/app/redux/FollowSaga.js
+++ b/src/app/redux/FollowSaga.js
@@ -1,4 +1,7 @@
-import { fromJS, Map, Set, OrderedSet } from 'immutable';
+/*eslint no-shadow: "warn"*/
+import {
+ fromJS, Map, OrderedSet
+} from 'immutable';
 import { call, put, select } from 'redux-saga/effects';
 import { api } from '@hiveio/hive-js';
 
@@ -9,19 +12,14 @@ import * as globalActions from 'app/redux/GlobalReducer';
 */
 
 // Test limit with 2 (not 1, infinate looping)
+// eslint-disable-next-line import/prefer-default-export
 export function* loadFollows(method, account, type, force = false) {
-    if (
-        yield select(state =>
-            state.global.getIn(['follow', method, account, type + '_loading'])
-        )
-    ) {
+    if (yield select((state) => state.global.getIn(['follow', method, account, type + '_loading']))) {
         return; //already loading
     }
 
     if (!force) {
-        const hasResult = yield select(state =>
-            state.global.hasIn(['follow', method, account, type + '_result'])
-        );
+        const hasResult = yield select((state) => state.global.hasIn(['follow', method, account, type + '_result']));
         if (hasResult) {
             return; //already loaded
         }
@@ -31,7 +29,7 @@ export function* loadFollows(method, account, type, force = false) {
         globalActions.update({
             key: ['follow', method, account],
             notSet: Map(),
-            updater: m => m.set(type + '_loading', true),
+            updater: (m) => m.set(type + '_loading', true),
         })
     );
 
@@ -48,22 +46,18 @@ function* loadFollowsLoop(method, account, type, start = '', limit = 1000) {
         globalActions.update({
             key: ['follow_inprogress', method, account],
             notSet: Map(),
-            updater: m => {
+            updater: (m) => {
                 m = m.asMutable();
-                res.forEach(value => {
+                res.forEach((value) => {
                     cnt += 1;
 
                     const whatList = value.get('what');
-                    const accountNameKey =
-                        method === 'getFollowingAsync'
-                            ? 'following'
-                            : 'follower';
-                    const accountName = (lastAccountName = value.get(
-                        accountNameKey
-                    ));
-                    whatList.forEach(what => {
+                    const accountNameKey = method === 'getFollowingAsync' ? 'following' : 'follower';
+                    // eslint-disable-next-line no-multi-assign
+                    const accountName = (lastAccountName = value.get(accountNameKey));
+                    whatList.forEach((what) => {
                         //currently this is always true: what === type
-                        m.update(what, OrderedSet(), s => s.add(accountName));
+                        m.update(what, OrderedSet(), (s) => s.add(accountName));
                     });
                 });
                 return m.asImmutable();
@@ -80,22 +74,17 @@ function* loadFollowsLoop(method, account, type, start = '', limit = 1000) {
         yield put(
             globalActions.update({
                 key: [],
-                updater: m => {
+                updater: (m) => {
                     m = m.asMutable();
 
-                    const result = m.getIn(
-                        ['follow_inprogress', method, account, type],
-                        OrderedSet()
-                    );
+                    const result = m.getIn(['follow_inprogress', method, account, type], OrderedSet());
                     m.deleteIn(['follow_inprogress', method, account, type]);
-                    m.updateIn(['follow', method, account], Map(), mm =>
-                        mm.merge({
+                    m.updateIn(['follow', method, account], Map(), (mm) => mm.merge({
                             // Count may be set separately without loading the full xxx_result set
                             [type + '_count']: result.size,
                             [type + '_result']: result.reverse(),
                             [type + '_loading']: false,
-                        })
-                    );
+                        }));
                     return m.asImmutable();
                 },
             })
diff --git a/src/app/redux/GlobalReducer.js b/src/app/redux/GlobalReducer.js
index dfea627bdd6f7a0cb1273a0808a9d2e6a8fb08e8..ed3fe9c442fe909799a646f15f37b24041398a8a 100644
--- a/src/app/redux/GlobalReducer.js
+++ b/src/app/redux/GlobalReducer.js
@@ -1,4 +1,6 @@
-import { Map, List, fromJS, Iterable } from 'immutable';
+import {
+ Map, List, fromJS, Iterable
+} from 'immutable';
 import Sanitizer from 'app/utils/Sanitizer';
 
 export const defaultState = Map({
@@ -46,8 +48,7 @@ const postKey = (author, permlink) => {
  * @param {Object} account
  */
 
-const transformAccount = account =>
-    fromJS(account, (key, value) => {
+const transformAccount = (account) => fromJS(account, (key, value) => {
         if (key === 'witness_votes') return value.toSet();
         const isIndexed = Iterable.isIndexed(value);
         return isIndexed ? value.toList() : value.toOrderedMap();
@@ -62,23 +63,23 @@ const transformAccount = account =>
  */
 
 const mergeAccounts = (state, account) => {
-    return state.updateIn(['accounts', account.get('name')], Map(), a => a.mergeDeep(account));
+    return state.updateIn(['accounts', account.get('name')], Map(), (a) => a.mergeDeep(account));
 };
 
 export default function reducer(state = defaultState, action = {}) {
-    const payload = action.payload;
+    const { payload } = action;
 
     switch (action.type) {
         case SET_COLLAPSED: {
-            return state.withMutations(map => {
-                map.updateIn(['content', payload.post], value => value.merge(Map({ collapsed: payload.collapsed })));
+            return state.withMutations((map) => {
+                map.updateIn(['content', payload.post], (value) => value.merge(Map({ collapsed: payload.collapsed })));
             });
         }
 
         case LAZY_UPDATE:
             // update edited post/comment in state
-            let key = payload.author + '/' + payload.permlink;
-            let update = {
+            const key = payload.author + '/' + payload.permlink;
+            const update = {
                 body: payload.body,
                 title: payload.title,
                 category: payload.category,
@@ -89,10 +90,10 @@ export default function reducer(state = defaultState, action = {}) {
                     flag_weight: 0,
                 },
             };
-            return state.updateIn(['content', key], Map(), c => c.mergeDeep(update));
+            return state.updateIn(['content', key], Map(), (c) => c.mergeDeep(update));
 
         case RECEIVE_STATE: {
-            if (payload.hasOwnProperty('community')) {
+            if (Object.prototype.hasOwnProperty.call(payload, 'community')) {
                 const communities = Object.keys(payload.community);
                 for (let ci = 0; ci < communities.length; ci += 1) {
                     const community = payload.community[communities[ci]];
@@ -113,13 +114,9 @@ export default function reducer(state = defaultState, action = {}) {
 
         case RECEIVE_NOTIFICATIONS: {
             console.log('Receive notifications', payload);
-            return state.updateIn(['notifications', payload.name], Map(), n =>
-                n.withMutations(nmut =>
-                    nmut
-                        .update('notifications', List(), a => a.concat(fromJS(payload.notifications)))
-                        .set('isLastPage', payload.isLastPage)
-                )
-            );
+            return state.updateIn(['notifications', payload.name], Map(), (n) => n.withMutations((nmut) => nmut
+                        .update('notifications', List(), (a) => a.concat(fromJS(payload.notifications)))
+                        .set('isLastPage', payload.isLastPage)));
         }
 
         case RECEIVE_UNREAD_NOTIFICATIONS: {
@@ -146,7 +143,7 @@ export default function reducer(state = defaultState, action = {}) {
         }
 
         case RECEIVE_POST_HEADER: {
-            return state.update('headers', Map(), a => a.mergeDeep(fromJS(payload)));
+            return state.update('headers', Map(), (a) => a.mergeDeep(fromJS(payload)));
         }
 
         case RECEIVE_COMMUNITIES: {
@@ -154,11 +151,8 @@ export default function reducer(state = defaultState, action = {}) {
             let idx = null;
 
             if (payload !== null) {
-                map = Map(payload.map(c => [c.name, fromJS(c)]));
-                idx = List(payload.map(c => c.name));
-                if (map.length <= 0) {
-                    debugger;
-                }
+                map = Map(payload.map((c) => [c.name, fromJS(c)]));
+                idx = List(payload.map((c) => c.name));
             }
 
             return state.setIn(['community'], map).setIn(['community_idx'], idx);
@@ -166,7 +160,7 @@ export default function reducer(state = defaultState, action = {}) {
 
         case RECEIVE_COMMUNITY: {
             console.log('DEBUG: community payload', payload);
-            return state.update('community', Map(), a => a.mergeDeep(payload));
+            return state.update('community', Map(), (a) => a.mergeDeep(payload));
         }
 
         case LOADING_SUBSCRIPTIONS: {
@@ -185,46 +179,47 @@ export default function reducer(state = defaultState, action = {}) {
             return payload.featuredPosts.concat(payload.promotedPosts).reduce((acc, specialPost) => {
                 const author = specialPost.get('author');
                 const permlink = specialPost.get('permlink');
-                return acc.updateIn(['content', `${author}/${permlink}`], Map(), p => p.mergeDeep(specialPost));
+                return acc.updateIn(['content', `${author}/${permlink}`], Map(), (p) => p.mergeDeep(specialPost));
             }, state);
         }
 
         case RECEIVE_CONTENT: {
             const content = fromJS(payload.content);
-            const key = content.get('author') + '/' + content.get('permlink');
+            const _key = content.get('author') + '/' + content.get('permlink');
             console.log('received content...', payload.content);
 
             // merge content object into map
-            let new_state = state.updateIn(['content', key], Map(), c => c.mergeDeep(content));
+            let new_state = state.updateIn(['content', _key], Map(), (c) => c.mergeDeep(content));
 
             // merge vote info taking pending votes into account
-            let votes_key = ['content', key, 'active_votes'];
-            let old_votes = state.getIn(votes_key, List());
-            let new_votes = content.get('active_votes');
-            const { merge } = require('immutable');
-            let merged_votes = new_votes.merge(new_votes, old_votes);
+            const votes_key = ['content', _key, 'active_votes'];
+            const old_votes = state.getIn(votes_key, List());
+            const new_votes = content.get('active_votes');
+            const merged_votes = new_votes.merge(new_votes, old_votes);
             new_state = new_state.setIn(votes_key, merged_votes);
 
             // set creation-pending key (optimistic UI update)
             if (content.get('depth') == 0) {
                 const category = content.get('category');
                 const dkey = ['discussion_idx', category, '_created'];
-                new_state = new_state.setIn(dkey, key);
+                new_state = new_state.setIn(dkey, _key);
             }
 
             return new_state;
         }
 
         case LINK_REPLY: {
-            const { author, permlink, parent_author = '', parent_permlink = '' } = payload;
+            const {
+ author, permlink, parent_author = '', parent_permlink = ''
+} = payload;
             const parent_key = postKey(parent_author, parent_permlink);
             if (!parent_key) return state;
-            const key = author + '/' + permlink;
+            const _key = author + '/' + permlink;
             // Add key if not exist
             let updatedState = state.updateIn(
                 ['content', parent_key, 'replies'],
                 List(),
-                l => (l.findIndex(i => i === key) === -1 ? l.push(key) : l)
+                (l) => (l.findIndex((i) => i === _key) === -1 ? l.push(_key) : l)
             );
             const children = updatedState.getIn(['content', parent_key, 'replies'], List()).size;
             updatedState = updatedState.updateIn(['content', parent_key, 'children'], 0, () => children);
@@ -233,29 +228,29 @@ export default function reducer(state = defaultState, action = {}) {
 
         case DELETE_CONTENT: {
             const { author, permlink } = payload;
-            const key = author + '/' + permlink;
-            const content = state.getIn(['content', key]);
+            const _key = author + '/' + permlink;
+            const content = state.getIn(['content', _key]);
             const parent_key = postKey(content.get('parent_author'), content.get('parent_permlink'));
-            let updatedState = state.deleteIn(['content', key]);
+            let updatedState = state.deleteIn(['content', _key]);
             if (parent_key) {
-                updatedState = updatedState.updateIn(['content', parent_key, 'replies'], List(), r =>
-                    r.filter(i => i !== key)
-                );
+                updatedState = updatedState.updateIn(['content', parent_key, 'replies'], List(), (r) => r.filter((i) => i !== _key));
             }
             return updatedState;
         }
 
         case VOTED: {
-            const { voter, author, permlink, weight } = payload;
+            const {
+ voter, author, permlink, weight
+} = payload;
             const vote = Map({ voter, percent: weight });
-            const key = ['content', author + '/' + permlink, 'active_votes'];
-            let votes = state.getIn(key, List());
+            const _key = ['content', author + '/' + permlink, 'active_votes'];
+            let votes = state.getIn(_key, List());
 
-            const idx = votes.findIndex(v => v.get('voter') === voter);
+            const idx = votes.findIndex((v) => v.get('voter') === voter);
             votes = idx === -1 ? votes.push(vote) : votes.set(idx, vote);
 
             // TODO: new state never returned -- masked by RECEIVE_CONTENT
-            state = state.setIn(key, votes);
+            state = state.setIn(_key, votes);
             return state;
         }
 
@@ -268,26 +263,28 @@ export default function reducer(state = defaultState, action = {}) {
         }
 
         case RECEIVE_DATA: {
-            const { data, order, category, fetching, endOfData } = payload;
+            const {
+ data, order, category, fetching, endOfData
+} = payload;
             let new_state;
 
             // append content keys to `discussion_idx` list
-            const key = ['discussion_idx', category || '', order];
-            new_state = state.updateIn(key, List(), list => {
-                return list.withMutations(posts => {
-                    data.forEach(value => {
-                        const key = `${value.author}/${value.permlink}`;
-                        if (!posts.includes(key)) posts.push(key);
+            const _key = ['discussion_idx', category || '', order];
+            new_state = state.updateIn(_key, List(), (list) => {
+                return list.withMutations((posts) => {
+                    data.forEach((value) => {
+                        const __key = `${value.author}/${value.permlink}`;
+                        if (!posts.includes(_key)) posts.push(__key);
                     });
                 });
             });
 
             // append content to `content` map
-            new_state = new_state.updateIn(['content'], content => {
-                return content.withMutations(map => {
-                    data.forEach(value => {
-                        const key = `${value.author}/${value.permlink}`;
-                        map.set(key, fromJS(value));
+            new_state = new_state.updateIn(['content'], (content) => {
+                return content.withMutations((map) => {
+                    data.forEach((value) => {
+                        const __key = `${value.author}/${value.permlink}`;
+                        map.set(__key, fromJS(value));
                     });
                 });
             });
@@ -303,19 +300,19 @@ export default function reducer(state = defaultState, action = {}) {
         }
 
         case SET: {
-            const { key, value } = payload;
-            const key_array = Array.isArray(key) ? key : [key];
+            const { key: _key, value } = payload;
+            const key_array = Array.isArray(_key) ? _key : [_key];
             return state.setIn(key_array, fromJS(value));
         }
 
         case REMOVE: {
-            const key = Array.isArray(payload.key) ? payload.key : [payload.key];
-            return state.removeIn(key);
+            const _key = Array.isArray(payload.key) ? payload.key : [payload.key];
+            return state.removeIn(_key);
         }
 
         case UPDATE: {
-            const { key, notSet = Map(), updater } = payload;
-            return state.updateIn(key, notSet, updater);
+            const { key: _key, notSet = Map(), updater } = payload;
+            return state.updateIn(_key, notSet, updater);
         }
 
         case FETCH_JSON: {
@@ -329,11 +326,11 @@ export default function reducer(state = defaultState, action = {}) {
 
         case SHOW_DIALOG: {
             const { name, params = {} } = payload;
-            return state.update('active_dialogs', Map(), d => d.set(name, fromJS({ params })));
+            return state.update('active_dialogs', Map(), (d) => d.set(name, fromJS({ params })));
         }
 
         case HIDE_DIALOG: {
-            return state.update('active_dialogs', d => d.delete(payload.name));
+            return state.update('active_dialogs', (d) => d.delete(payload.name));
         }
 
         default:
@@ -343,142 +340,142 @@ export default function reducer(state = defaultState, action = {}) {
 
 // Action creators
 
-export const setCollapsed = payload => ({
+export const setCollapsed = (payload) => ({
     type: SET_COLLAPSED,
     payload,
 });
 
-export const receiveState = payload => ({
+export const receiveState = (payload) => ({
     type: RECEIVE_STATE,
     payload,
 });
 
-export const receiveNotifications = payload => ({
+export const receiveNotifications = (payload) => ({
     type: RECEIVE_NOTIFICATIONS,
     payload,
 });
 
-export const receiveUnreadNotifications = payload => ({
+export const receiveUnreadNotifications = (payload) => ({
     type: RECEIVE_UNREAD_NOTIFICATIONS,
     payload,
 });
 
-export const notificationsLoading = payload => ({
+export const notificationsLoading = (payload) => ({
     type: NOTIFICATIONS_LOADING,
     payload,
 });
 
-export const receiveRewards = payload => ({
+export const receiveRewards = (payload) => ({
     type: RECEIVE_REWARDS,
     payload,
 });
 
-export const receiveAccount = payload => ({
+export const receiveAccount = (payload) => ({
     type: RECEIVE_ACCOUNT,
     payload,
 });
 
-export const receiveAccounts = payload => ({
+export const receiveAccounts = (payload) => ({
     type: RECEIVE_ACCOUNTS,
     payload,
 });
 
-export const receivePostHeader = payload => ({
+export const receivePostHeader = (payload) => ({
     type: RECEIVE_POST_HEADER,
     payload,
 });
 
-export const receiveCommunities = payload => ({
+export const receiveCommunities = (payload) => ({
     type: RECEIVE_COMMUNITIES,
     payload,
 });
 
-export const receiveCommunity = payload => ({
+export const receiveCommunity = (payload) => ({
     type: RECEIVE_COMMUNITY,
     payload,
 });
 
-export const receiveSubscriptions = payload => ({
+export const receiveSubscriptions = (payload) => ({
     type: RECEIVE_SUBSCRIPTIONS,
     payload,
 });
-export const loadingSubscriptions = payload => ({
+export const loadingSubscriptions = (payload) => ({
     type: LOADING_SUBSCRIPTIONS,
     payload,
 });
 
-export const syncSpecialPosts = payload => ({
+export const syncSpecialPosts = (payload) => ({
     type: SYNC_SPECIAL_POSTS,
     payload,
 });
 
-export const receiveContent = payload => ({
+export const receiveContent = (payload) => ({
     type: RECEIVE_CONTENT,
     payload,
 });
 
-export const linkReply = payload => ({
+export const linkReply = (payload) => ({
     type: LINK_REPLY,
     payload,
 });
 
-export const deleteContent = payload => ({
+export const deleteContent = (payload) => ({
     type: DELETE_CONTENT,
     payload,
 });
 
-export const voted = payload => ({
+export const voted = (payload) => ({
     type: VOTED,
     payload,
 });
 
-export const fetchingData = payload => ({
+export const fetchingData = (payload) => ({
     type: FETCHING_DATA,
     payload,
 });
 
-export const receiveData = payload => ({
+export const receiveData = (payload) => ({
     type: RECEIVE_DATA,
     payload,
 });
 
 // TODO: Find a better name for this
-export const set = payload => ({
+export const set = (payload) => ({
     type: SET,
     payload,
 });
 
-export const remove = payload => ({
+export const remove = (payload) => ({
     type: REMOVE,
     payload,
 });
 
-export const update = payload => ({
+export const update = (payload) => ({
     type: UPDATE,
     payload,
 });
 
-export const fetchJson = payload => ({
+export const fetchJson = (payload) => ({
     type: FETCH_JSON,
     payload,
 });
 
-export const fetchJsonResult = payload => ({
+export const fetchJsonResult = (payload) => ({
     type: FETCH_JSON_RESULT,
     payload,
 });
 
-export const showDialog = payload => ({
+export const showDialog = (payload) => ({
     type: SHOW_DIALOG,
     payload,
 });
 
-export const hideDialog = payload => ({
+export const hideDialog = (payload) => ({
     type: HIDE_DIALOG,
     payload,
 });
 
-export const lazyUpdate = payload => ({
+export const lazyUpdate = (payload) => ({
     type: LAZY_UPDATE,
     payload,
 });
diff --git a/src/app/redux/GlobalReducer.test.js b/src/app/redux/GlobalReducer.test.js
index 880e0aa7c68aa86dc7e462fde34baa572ebb4a36..8bd18dc3f3daefc6f0be2f6f888fefd4598470fd 100644
--- a/src/app/redux/GlobalReducer.test.js
+++ b/src/app/redux/GlobalReducer.test.js
@@ -1,4 +1,6 @@
-import { Map, OrderedMap, getIn, List, fromJS, Set, merge } from 'immutable';
+import {
+ Map, OrderedMap, List, fromJS,
+} from 'immutable';
 import * as globalActions from './GlobalReducer';
 import reducer, { defaultState } from './GlobalReducer';
 
@@ -22,9 +24,7 @@ describe('Global reducer', () => {
         // Act
         const actual = reducer(initial, globalActions.setCollapsed(payload));
         // Assert
-        expect(actual.getIn(['content', payload.post, 'collapsed'])).toEqual(
-            payload.collapsed
-        );
+        expect(actual.getIn(['content', payload.post, 'collapsed'])).toEqual(payload.collapsed);
     });
     it('should return correct state for a RECEIVE_STATE action', () => {
         // Arrange
@@ -48,28 +48,14 @@ describe('Global reducer', () => {
             },
         };
         const initial = reducer();
-        const expected = Map({
-            status: {},
-            accounts: Map({
-                foo: Map({
-                    name: 'foo',
-                    be_List: List(['alice', 'bob', 'claire']),
-                    be_orderedMap: OrderedMap({ foo: 'barman' }),
-                }),
-            }),
-        });
         // Act
         const actual = reducer(initial, globalActions.receiveAccount(payload));
         // Assert
-        expect(
-            actual.getIn(['accounts', payload.account.name, 'name'])
-        ).toEqual(payload.account.name);
-        expect(
-            actual.getIn(['accounts', payload.account.name, 'beList'])
-        ).toEqual(List(payload.account.beList));
-        expect(
-            actual.getIn(['accounts', payload.account.name, 'beOrderedMap'])
-        ).toEqual(OrderedMap(payload.account.beOrderedMap));
+        expect(actual.getIn(['accounts', payload.account.name, 'name'])).toEqual(payload.account.name);
+        expect(actual.getIn(['accounts', payload.account.name, 'beList'])).toEqual(List(payload.account.beList));
+        expect(actual.getIn(['accounts', payload.account.name, 'beOrderedMap'])).toEqual(
+            OrderedMap(payload.account.beOrderedMap)
+        );
     });
 
     it('should return correct state for a RECEIVE_ACCOUNTS action', () => {
@@ -142,25 +128,16 @@ describe('Global reducer', () => {
         };
         const { author, permlink, active_votes } = payload.content;
         // Act
-        const actual = reducer(
-            reducer(),
-            globalActions.receiveContent(payload)
-        );
+        const actual = reducer(reducer(), globalActions.receiveContent(payload));
         // Assert
-        expect(
-            actual.getIn(['content', `${author}/${permlink}`, 'author'])
-        ).toEqual(payload.content.author);
-        expect(
-            actual.getIn(['content', `${author}/${permlink}`, 'permlink'])
-        ).toEqual(payload.content.permlink);
-        expect(
-            actual.getIn(['content', `${author}/${permlink}`, 'active_votes'])
-        ).toEqual(fromJS(active_votes));
+        expect(actual.getIn(['content', `${author}/${permlink}`, 'author'])).toEqual(payload.content.author);
+        expect(actual.getIn(['content', `${author}/${permlink}`, 'permlink'])).toEqual(payload.content.permlink);
+        expect(actual.getIn(['content', `${author}/${permlink}`, 'active_votes'])).toEqual(fromJS(active_votes));
     });
 
     it('should return correct state for a LINK_REPLY action', () => {
         // Arrange
-        let payload = {
+        const payload = {
             author: 'critic',
             permlink: 'critical-comment',
             parent_author: 'Yerofeyev',
@@ -189,11 +166,11 @@ describe('Global reducer', () => {
     });
     it('should return correct state for a DELETE_CONTENT action', () => {
         // Arrange
-        let payload = {
+        const payload = {
             author: 'sebald',
             permlink: 'rings-of-saturn',
         };
-        let initial = reducer();
+        const initial = reducer();
         // Act
         // add content
         const initWithContent = initial.setIn(
@@ -208,10 +185,7 @@ describe('Global reducer', () => {
         );
         let expected = Map({});
         // Act
-        let actual = reducer(
-            initWithContent,
-            globalActions.deleteContent(payload)
-        );
+        let actual = reducer(initWithContent, globalActions.deleteContent(payload));
         // Assert
         expect(actual.get('content')).toEqual(expected);
         // Arrange
@@ -239,14 +213,9 @@ describe('Global reducer', () => {
             replies: ['dorothy-hughes/in-a-lonely-place', 'artichoke/hearts'],
         });
         // Act
-        actual = reducer(
-            initWithParentKeyContent,
-            globalActions.deleteContent(payload)
-        );
+        actual = reducer(initWithParentKeyContent, globalActions.deleteContent(payload));
         // Assert
-        expect(actual.getIn(['content', 'alice/bob', 'replies'])).toHaveLength(
-            2
-        );
+        expect(actual.getIn(['content', 'alice/bob', 'replies'])).toHaveLength(2);
         expect(actual.getIn(['content', 'alice/bob', 'replies'])).toEqual([
             'dorothy-hughes/in-a-lonely-place',
             'artichoke/hearts',
@@ -267,14 +236,9 @@ describe('Global reducer', () => {
             })
         );
         // Act
-        const actual = reducer(
-            initWithCategory,
-            globalActions.fetchingData(payload)
-        );
+        const actual = reducer(initWithCategory, globalActions.fetchingData(payload));
         // Assert
-        expect(
-            actual.getIn(['status', payload.category, payload.order])
-        ).toEqual({ fetching: true });
+        expect(actual.getIn(['status', payload.category, payload.order])).toEqual({ fetching: true });
     });
     it('should return correct state for a RECEIVE_DATA action', () => {
         //Arrange
@@ -286,7 +250,7 @@ describe('Global reducer', () => {
                 two: { percent: 70 },
             },
         };
-        let payload = {
+        const payload = {
             data: [postData],
             order: 'blog',
             category: '@smudge',
@@ -301,14 +265,10 @@ describe('Global reducer', () => {
             }),
             discussion_idx: Map({
                 [payload.category]: Map({
-                    UnusualOrder: List([
-                        { data: { author: 'ship', permlink: 'bridge' } },
-                    ]),
+                    UnusualOrder: List([{ data: { author: 'ship', permlink: 'bridge' } }]),
                 }),
                 [payload.accountname]: Map({
-                    [payload.order]: List([
-                        { data: { author: 'farm', permlink: 'barn' } },
-                    ]),
+                    [payload.order]: List([{ data: { author: 'farm', permlink: 'barn' } }]),
                 }),
                 '': Map({
                     FebrileFriday: List([]),
@@ -317,64 +277,40 @@ describe('Global reducer', () => {
         });
 
         //Act
-        const actual1 = reducer(
-            initWithData,
-            globalActions.receiveData(payload)
-        );
+        const actual1 = reducer(initWithData, globalActions.receiveData(payload));
 
         const postKey = `${postData.author}/${postData.permlink}`;
 
         //Assert
-        expect(actual1.getIn(['content', postKey, 'author'])).toEqual(
-            postData.author
-        );
-        expect(actual1.getIn(['content', postKey, 'permlink'])).toEqual(
-            postData.permlink
-        );
-        expect(actual1.getIn(['content', postKey, 'active_votes'])).toEqual(
-            fromJS(postData.active_votes)
-        );
+        expect(actual1.getIn(['content', postKey, 'author'])).toEqual(postData.author);
+        expect(actual1.getIn(['content', postKey, 'permlink'])).toEqual(postData.permlink);
+        expect(actual1.getIn(['content', postKey, 'active_votes'])).toEqual(fromJS(postData.active_votes));
 
         // Push new key to posts list, If order meets the condition.
-        expect(
-            actual1.getIn(['discussion_idx', payload.category, payload.order])
-        ).toEqual(List(['smudge/klop']));
+        expect(actual1.getIn(['discussion_idx', payload.category, payload.order])).toEqual(List(['smudge/klop']));
 
         // Arrange
         payload.order = 'UnusualOrder';
         //Act.
         // Push new key to discussion_idx list, If order does not meet the condition.
-        const actual2 = reducer(
-            initWithData,
-            globalActions.receiveData(payload)
-        );
+        const actual2 = reducer(initWithData, globalActions.receiveData(payload));
 
         // Assert
-        expect(
-            actual2.getIn(['discussion_idx', payload.category, payload.order])
-        ).toEqual(
-            List([
-                { data: { author: 'ship', permlink: 'bridge' } },
-                'smudge/klop',
-            ])
+        expect(actual2.getIn(['discussion_idx', payload.category, payload.order])).toEqual(
+            List([{ data: { author: 'ship', permlink: 'bridge' } }, 'smudge/klop'])
         );
         // Arrange
         // handle falsey payload category by setting empty string at keypath location typically occupied by category.
         payload.order = 'FebrileFriday';
         payload.category = '';
         // Act
-        const actual3 = reducer(
-            initWithData,
-            globalActions.receiveData(payload)
-        );
+        const actual3 = reducer(initWithData, globalActions.receiveData(payload));
         // Assert.
-        expect(actual3.getIn(['discussion_idx', '', payload.order])).toEqual(
-            List(['smudge/klop'])
-        );
+        expect(actual3.getIn(['discussion_idx', '', payload.order])).toEqual(List(['smudge/klop']));
     });
     it('should handle fetch status for a RECEIVE_DATA action', () => {
         //Arrange
-        let payload = {
+        const payload = {
             data: [],
             order: 'by_blog',
             category: 'blog',
@@ -394,9 +330,7 @@ describe('Global reducer', () => {
             }),
             discussion_idx: Map({
                 [payload.category]: Map({
-                    UnusualOrder: List([
-                        { data: { author: 'ship', permlink: 'bridge' } },
-                    ]),
+                    UnusualOrder: List([{ data: { author: 'ship', permlink: 'bridge' } }]),
                 }),
                 '': Map({
                     FebrileFriday: List([]),
@@ -405,68 +339,36 @@ describe('Global reducer', () => {
         });
 
         //Act
-        const actual1 = reducer(
-            initWithData,
-            globalActions.receiveData(payload)
-        );
+        const actual1 = reducer(initWithData, globalActions.receiveData(payload));
 
         //Assert
-        expect(
-            actual1.getIn(['status', payload.category, payload.order]).fetching
-        ).toBeFalsy();
-        expect(
-            actual1.getIn(['status', payload.category, payload.order])
-                .last_fetch
-        ).toBeFalsy();
+        expect(actual1.getIn(['status', payload.category, payload.order]).fetching).toBeFalsy();
+        expect(actual1.getIn(['status', payload.category, payload.order]).last_fetch).toBeFalsy();
 
         // Arrange
         payload.fetching = true;
         //Act.
-        const actual2 = reducer(
-            initWithData,
-            globalActions.receiveData(payload)
-        );
+        const actual2 = reducer(initWithData, globalActions.receiveData(payload));
 
         // Assert
-        expect(
-            actual2.getIn(['status', payload.category, payload.order]).fetching
-        ).toBeTruthy();
-        expect(
-            actual2.getIn(['status', payload.category, payload.order])
-                .last_fetch
-        ).toBeFalsy();
+        expect(actual2.getIn(['status', payload.category, payload.order]).fetching).toBeTruthy();
+        expect(actual2.getIn(['status', payload.category, payload.order]).last_fetch).toBeFalsy();
 
         // Arrange
         payload.endOfData = true;
         // Act
-        const actual3 = reducer(
-            initWithData,
-            globalActions.receiveData(payload)
-        );
+        const actual3 = reducer(initWithData, globalActions.receiveData(payload));
         // Assert.
-        expect(
-            actual3.getIn(['status', payload.category, payload.order]).fetching
-        ).toBeTruthy();
-        expect(
-            actual3.getIn(['status', payload.category, payload.order])
-                .last_fetch
-        ).toBeTruthy();
+        expect(actual3.getIn(['status', payload.category, payload.order]).fetching).toBeTruthy();
+        expect(actual3.getIn(['status', payload.category, payload.order]).last_fetch).toBeTruthy();
 
         // Arrange
         payload.fetching = false;
         // Act
-        const actual4 = reducer(
-            initWithData,
-            globalActions.receiveData(payload)
-        );
+        const actual4 = reducer(initWithData, globalActions.receiveData(payload));
         // Assert.
-        expect(
-            actual4.getIn(['status', payload.category, payload.order]).fetching
-        ).toBeFalsy();
-        expect(
-            actual4.getIn(['status', payload.category, payload.order])
-                .last_fetch
-        ).toBeTruthy();
+        expect(actual4.getIn(['status', payload.category, payload.order]).fetching).toBeFalsy();
+        expect(actual4.getIn(['status', payload.category, payload.order]).last_fetch).toBeTruthy();
     });
 
     it('should return correct state for a SET action', () => {
@@ -544,10 +446,7 @@ describe('Global reducer', () => {
             name: 'Iris',
             params: { cheap: 'seats' },
         };
-        const initial = reducer().set(
-            'active_dialogs',
-            Map({ chimney: 'smoke' })
-        );
+        const initial = reducer().set('active_dialogs', Map({ chimney: 'smoke' }));
         const actual = reducer(initial, globalActions.showDialog(payload));
         expect(actual.get('active_dialogs')).toEqual(
             Map({
@@ -559,10 +458,7 @@ describe('Global reducer', () => {
 
     it('should return correct state for a HIDE_DIALOG action', () => {
         const payload = { name: 'dolphin' };
-        const initial = reducer().set(
-            'active_dialogs',
-            Map({ [payload.name]: 'flipper' })
-        );
+        const initial = reducer().set('active_dialogs', Map({ [payload.name]: 'flipper' }));
         const actual = reducer(initial, globalActions.hideDialog(payload));
         expect(actual.get('active_dialogs')).toEqual(Map({}));
     });
diff --git a/src/app/redux/OffchainReducer.js b/src/app/redux/OffchainReducer.js
index 3a0188a88f7e6cf57982dcc164b9081125313336..0f60d97e6daf6994c50bc71ea05a212b59658ae9 100644
--- a/src/app/redux/OffchainReducer.js
+++ b/src/app/redux/OffchainReducer.js
@@ -1,5 +1,4 @@
 import Immutable from 'immutable';
-import { PropTypes } from 'react';
 
 const defaultState = Immutable.fromJS({ user: {} });
 
diff --git a/src/app/redux/PollingSaga.js b/src/app/redux/PollingSaga.js
index 25914d3882be13cb79387e4d5b2d0c4b94ffde47..aed609d75131e480c2a51e0069d33cc50e32ced2 100644
--- a/src/app/redux/PollingSaga.js
+++ b/src/app/redux/PollingSaga.js
@@ -1,4 +1,6 @@
-import { put, call, take, race } from 'redux-saga/effects';
+import {
+ put, call, take, race
+} from 'redux-saga/effects';
 import { delay } from 'redux-saga';
 
 const START_POLLING = 'START_POLLING';
@@ -24,14 +26,14 @@ export function* watchPollingTasks() {
     }
 }
 
-export const startPolling = payload => {
+export const startPolling = (payload) => {
     return {
         type: START_POLLING,
         payload,
     };
 };
 
-export const stopPolling = payload => {
+export const stopPolling = (payload) => {
     return {
         type: STOP_POLLING,
         payload,
diff --git a/src/app/redux/RootReducer.js b/src/app/redux/RootReducer.js
index 86f865dc2e4c8ba6fa733922dc436067ff2e93ca..3eeb369ba2bf60d81caaac8bc1e880e2de333380 100644
--- a/src/app/redux/RootReducer.js
+++ b/src/app/redux/RootReducer.js
@@ -1,7 +1,7 @@
 import { Map, fromJS } from 'immutable';
 import { routerReducer } from 'react-router-redux';
 import { combineReducers } from 'redux';
-import { reducer as formReducer } from 'redux-form'; // @deprecated, instead use: app/utils/ReactForm.js
+// import { reducer as formReducer } from 'redux-form'; // @deprecated, instead use: app/utils/ReactForm.js
 import appReducer from './AppReducer';
 import globalReducer from './GlobalReducer';
 import userReducer from './UserReducer';
@@ -41,7 +41,7 @@ export default combineReducers({
     discussion: initReducer((state = {}) => state),
     routing: initReducer(routerReducer),
     app: initReducer(appReducer),
-    form: formReducer,
+    // form: formReducer,
     userProfiles: initReducer(userProfilesReducer),
     search: initReducer(searchReducer),
 });
diff --git a/src/app/redux/SagaShared.js b/src/app/redux/SagaShared.js
index 0998463103fd3b53b8cc8299640b5edc14e05f69..27c1927fac76d464664cf9ae04b638b936b3116c 100644
--- a/src/app/redux/SagaShared.js
+++ b/src/app/redux/SagaShared.js
@@ -1,15 +1,15 @@
 import { fromJS } from 'immutable';
-import { call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';
-import tt from 'counterpart';
+import {
+ call, put, select, takeEvery, takeLatest
+} from 'redux-saga/effects';
 import { api } from '@hiveio/hive-js';
+import { setUserPreferences } from 'app/utils/ServerApiClient';
+import { callBridge } from 'app/utils/steemApi';
 import * as globalActions from './GlobalReducer';
 import * as appActions from './AppReducer';
 import * as transactionActions from './TransactionReducer';
-import { setUserPreferences } from 'app/utils/ServerApiClient';
-import { callBridge } from 'app/utils/steemApi';
 
-const wait = ms =>
-    new Promise(resolve => {
+const wait = (ms) => new Promise((resolve) => {
         setTimeout(() => resolve(), ms);
     });
 
@@ -22,10 +22,10 @@ export const sharedWatches = [
 ];
 
 export function* getAccount(username, force = false) {
-    let account = yield select(state => state.global.get('accounts').get(username));
+    let account = yield select((state) => state.global.get('accounts').get(username));
 
     // hive never serves `owner` prop (among others)
-    let isLite = !!account && !account.get('owner');
+    const isLite = !!account && !account.get('owner');
 
     if (!account || force || isLite) {
         console.log('getAccount: loading', username, 'force?', force, 'lite?', isLite);
@@ -46,7 +46,8 @@ export function* getAccount(username, force = false) {
 }
 
 function* showTransactionErrorNotification() {
-    const errors = yield select(state => state.transaction.get('errors'));
+    const errors = yield select((state) => state.transaction.get('errors'));
+    // eslint-disable-next-line no-restricted-syntax
     for (const [key, message] of errors) {
         // Do not display a notification for the bandwidthError key.
         if (key !== 'bandwidthError') {
@@ -56,31 +57,29 @@ function* showTransactionErrorNotification() {
     }
 }
 
-export function* getContent({ author, permlink, resolve, reject }) {
+export function* getContent({
+ author, permlink, resolve, reject
+}) {
     let content;
     while (!content) {
         console.log('getContent', author, permlink);
         content = yield call([api, api.getContentAsync], author, permlink);
         try {
-            var converted = JSON.parse(content);
+            const converted = JSON.parse(content);
             if (converted.result && converted.result.length === 0) {
                 content = null;
             }
-        } catch (exception) {}
+        } catch (exception) {
+            console.log('SagaShared::getContent()', exception.message);
+        }
 
-        if (content !== null && content['author'] == '') {
+        if (content !== null && content.author == '') {
             // retry if content not found. #1870
             content = null;
             yield call(wait, 3000);
         }
     }
 
-    function dbg(content) {
-        const cop = Object.assign({}, content);
-        delete cop['active_votes'];
-        return JSON.stringify(cop);
-    }
-
     //console.log('raw content> ', dbg(content));
     content = yield call(callBridge, 'normalize_post', { post: content });
     //console.log('normalized> ', dbg(content));
@@ -103,6 +102,6 @@ function* saveUserPreferences({ payload }) {
         yield setUserPreferences(payload);
     }
 
-    const prefs = yield select(state => state.app.get('user_preferences'));
+    const prefs = yield select((state) => state.app.get('user_preferences'));
     yield setUserPreferences(prefs.toJS());
 }
diff --git a/src/app/redux/SearchReducer.js b/src/app/redux/SearchReducer.js
index a72c749e1d4f203b24041f44f4fd0f1aa2959313..396b9475c7d33f4aa84855afd1a98b84ccd6070a 100644
--- a/src/app/redux/SearchReducer.js
+++ b/src/app/redux/SearchReducer.js
@@ -37,11 +37,11 @@ export default function reducer(state = defaultSearchState, action) {
 
             const posts = List(
                 results
-                    .filter(post => {
+                    .filter((post) => {
                         // Don't include comments in search results
                         return post.depth === 0;
                     })
-                    .map(post => {
+                    .map((post) => {
                         post.created = post.created_at;
                         post.author_rep = parseFloat(post.author_rep);
                         post.author_reputation = post.author_rep;
@@ -66,20 +66,20 @@ export default function reducer(state = defaultSearchState, action) {
     }
 }
 
-export const search = payload => ({
+export const search = (payload) => ({
     type: SEARCH_DISPATCH,
     payload,
 });
-export const searchPending = payload => ({
+export const searchPending = (payload) => ({
     type: SEARCH_PENDING,
     payload,
 });
-export const searchError = payload => ({
+export const searchError = (payload) => ({
     type: SEARCH_ERROR,
     payload,
 });
 
-export const searchResult = payload => ({
+export const searchResult = (payload) => ({
     type: SEARCH_RESULT,
     payload,
 });
diff --git a/src/app/redux/TransactionReducer.js b/src/app/redux/TransactionReducer.js
index e496f0bbb99ba73a17cbe4331a66a43e892ccb19..4bf067b82973da48c23186b3df28c3f6c6a393a5 100644
--- a/src/app/redux/TransactionReducer.js
+++ b/src/app/redux/TransactionReducer.js
@@ -24,13 +24,13 @@ function last_part(value, sep) {
 }
 
 export default function reducer(state = defaultState, action) {
-    const payload = action.payload;
+    const { payload } = action;
 
     switch (action.type) {
         case CONFIRM_OPERATION: {
             const operation = fromJS(payload.operation);
-            const confirm = payload.confirm;
-            const warning = payload.warning;
+            const { confirm } = payload;
+            const { warning } = payload;
             return state.merge({
                 show_confirm_modal: true,
                 confirmBroadcastOperation: operation,
@@ -52,20 +52,17 @@ export default function reducer(state = defaultState, action) {
             return state;
 
         case ERROR: {
-            const { operations, error, errorCallback } = payload;
+            const { error, errorCallback } = payload;
 
             let msg;
-            let key = error.toString().replace(/rethrow$/, '');
+            const key = error.toString().replace(/rethrow$/, '');
 
             if (/You may only post once every/.test(key)) {
                 // Assert Exception:( now - auth.last_root_post ) > STEEM_MIN_ROOT_COMMENT_INTERVAL: You may only post once every 5 minutes.
                 msg = 'You may only post once every five minutes.';
-            } else if (
-                /Your current vote on this comment is identical/.test(key)
-            ) {
+            } else if (/Your current vote on this comment is identical/.test(key)) {
                 // Assert Exception:itr->vote_percent != o.weight: Your current vote on this comment is identical to this vote.
-                msg =
-                    'Your current vote on this comment is identical to this vote.';
+                msg = 'Your current vote on this comment is identical to this vote.';
             } else if (/Please wait to transact, or power up STEEM/.test(key)) {
                 // plugin exception:Account: test-safari has 1154101776 RC, needs 1274161808 RC. Please wait to transact, or power up STEEM.rethrow
                 try {
@@ -74,14 +71,8 @@ export default function reducer(state = defaultState, action) {
                     const fudge = 1.1;
                     const has_vests = parseInt(m[0][1], 10) / 1e6;
                     const needs_vests = parseInt(m[1][1], 10) / 1e6;
-                    const sp = (
-                        (needs_vests - has_vests) *
-                        spv *
-                        fudge
-                    ).toFixed(3);
-                    msg = `Bandwidth error: insufficient Resource Credits. Please wait to transact, or power up ${
-                        sp
-                    } STEEM.`;
+                    const sp = ((needs_vests - has_vests) * spv * fudge).toFixed(3);
+                    msg = `Bandwidth error: insufficient Resource Credits. Please wait to transact, or power up ${sp} STEEM.`;
                 } catch (e) {
                     console.error('bandwidth parse error', key);
                     msg = 'Bandwidth error: ' + last_part(key, ':');
@@ -107,7 +98,7 @@ export default function reducer(state = defaultState, action) {
             }
 
             // SagaShared / showTransactionErrorNotification
-            state = state.update('errors', errors => {
+            state = state.update('errors', (errors) => {
                 return errors ? errors.set(key, msg) : Map({ [key]: msg });
             });
 
@@ -115,8 +106,7 @@ export default function reducer(state = defaultState, action) {
                 state = state.setIn(['errors', 'bandwidthError'], true); //show_bandwidth_error_modal
             }
 
-            if (!errorCallback)
-                throw new Error(`PANIC: no error callback for '${key}'`);
+            if (!errorCallback) throw new Error(`PANIC: no error callback for '${key}'`);
             errorCallback(msg);
 
             return state;
@@ -129,15 +119,10 @@ export default function reducer(state = defaultState, action) {
             return state.setIn(['errors', payload.key], false);
 
         case SET:
-            return state.setIn(
-                Array.isArray(payload.key) ? payload.key : [payload.key],
-                fromJS(payload.value)
-            );
+            return state.setIn(Array.isArray(payload.key) ? payload.key : [payload.key], fromJS(payload.value));
 
         case REMOVE:
-            return state.removeIn(
-                Array.isArray(payload.key) ? payload.key : [payload.key]
-            );
+            return state.removeIn(Array.isArray(payload.key) ? payload.key : [payload.key]);
 
         default:
             return state;
@@ -145,42 +130,42 @@ export default function reducer(state = defaultState, action) {
 }
 
 // Action creators
-export const confirmOperation = payload => ({
+export const confirmOperation = (payload) => ({
     type: CONFIRM_OPERATION,
     payload,
 });
 
-export const hideConfirm = payload => ({
+export const hideConfirm = (payload) => ({
     type: HIDE_CONFIRM,
     payload,
 });
 
-export const broadcastOperation = payload => ({
+export const broadcastOperation = (payload) => ({
     type: BROADCAST_OPERATION,
     payload,
 });
 
-export const error = payload => ({
+export const error = (payload) => ({
     type: ERROR,
     payload,
 });
 
-export const deleteError = payload => ({
+export const deleteError = (payload) => ({
     type: DELETE_ERROR,
     payload,
 });
 
-export const dismissError = payload => ({
+export const dismissError = (payload) => ({
     type: DISMISS_ERROR,
     payload,
 });
 
-export const set = payload => ({
+export const set = (payload) => ({
     type: SET,
     payload,
 });
 
-export const remove = payload => ({
+export const remove = (payload) => ({
     type: REMOVE,
     payload,
 });
diff --git a/src/app/redux/TransactionSaga.js b/src/app/redux/TransactionSaga.js
index c725ba2bdb76ff222369bf35731c1e8f7c376170..2b203026cc5bc936861d2c0e7b3941504e199abb 100644
--- a/src/app/redux/TransactionSaga.js
+++ b/src/app/redux/TransactionSaga.js
@@ -1,13 +1,17 @@
-import { call, put, select, all, takeEvery } from 'redux-saga/effects';
-import { fromJS, Set, Map } from 'immutable';
+/*eslint no-shadow: "warn", no-underscore-dangle: "warn" */
+/* global $STM_Config */
+import {
+ call, put, select, takeEvery
+} from 'redux-saga/effects';
+import { Set, Map } from 'immutable';
 import tt from 'counterpart';
 import getSlug from 'speakingurl';
 import base58 from 'bs58';
 import secureRandom from 'secure-random';
-import { PrivateKey, PublicKey } from '@hiveio/hive-js/lib/auth/ecc';
-import { api, broadcast, auth, memo } from '@hiveio/hive-js';
+import { PrivateKey } from '@hiveio/hive-js/lib/auth/ecc';
+import { broadcast } from '@hiveio/hive-js';
 
-import { getAccount, getContent } from 'app/redux/SagaShared';
+import { getContent } from 'app/redux/SagaShared';
 import { postingOps, findSigningKey } from 'app/redux/AuthSaga';
 import * as appActions from 'app/redux/AppReducer';
 import * as globalActions from 'app/redux/GlobalReducer';
@@ -17,15 +21,11 @@ import { DEBT_TICKER } from 'app/client_config';
 import { serverApiRecordEvent } from 'app/utils/ServerApiClient';
 import { isLoggedInWithKeychain } from 'app/utils/HiveKeychain';
 import { callBridge } from 'app/utils/steemApi';
-import {
-    isLoggedInWithHiveSigner,
-    hiveSignerClient,
-    sendOperationsWithHiveSigner,
-} from 'app/utils/HiveSigner';
+import { isLoggedInWithHiveSigner, hiveSignerClient } from 'app/utils/HiveSigner';
+
+import diff_match_patch from 'diff-match-patch';
 
-export const transactionWatches = [
-    takeEvery(transactionActions.BROADCAST_OPERATION, broadcastOperation),
-];
+export const transactionWatches = [takeEvery(transactionActions.BROADCAST_OPERATION, broadcastOperation)];
 
 const hook = {
     preBroadcast_comment,
@@ -38,9 +38,6 @@ const hook = {
     accepted_vote,
 };
 
-const toStringUtf8 = o =>
-    o ? (Buffer.isBuffer(o) ? o.toString('utf-8') : o.toString()) : o;
-
 function* preBroadcast_vote({ operation, username }) {
     if (!operation.voter) operation.voter = username;
     const { author, permlink } = operation;
@@ -135,33 +132,30 @@ export function* broadcastOperation({
                     password,
                 });
                 if (signingKey) payload.keys.push(signingKey);
-                else {
-                    if (!password) {
-                        yield put(
-                            userActions.showLogin({
-                                operation: {
-                                    type,
-                                    operation,
-                                    username,
-                                    successCallback,
-                                    errorCallback,
-                                    saveLogin: true,
-                                },
-                            })
-                        );
-                        return;
-                    }
+                else if (!password) {
+                    yield put(
+                        userActions.showLogin({
+                            operation: {
+                                type,
+                                operation,
+                                username,
+                                successCallback,
+                                errorCallback,
+                                saveLogin: true,
+                            },
+                        })
+                    );
+                    return;
                 }
             }
         }
         // if the customJsonPayload has a 'required_posting_auths' key, that has value undefined, and the user is logged in. Update it.
-        const updatedOps = payload.operations.map((op, idx, src) => {
+        const updatedOps = payload.operations.map((op) => {
             if (op[0] === 'custom_json') {
                 if (
-                    op[1].required_posting_auths &&
-                    op[1].required_posting_auths.filter(u => u === undefined)
-                        .length > 0 &&
-                    username
+                    op[1].required_posting_auths
+                    && op[1].required_posting_auths.filter((u) => u === undefined).length > 0
+                    && username
                 ) {
                     op[1].required_posting_auths = [username];
                 }
@@ -173,14 +167,10 @@ export function* broadcastOperation({
 
         yield call(broadcastPayload, { payload });
         let eventType = type
-            .replace(/^([a-z])/, g => g.toUpperCase())
-            .replace(/_([a-z])/g, g => g[1].toUpperCase());
-        if (eventType === 'Comment' && !operation.parent_author)
-            eventType = 'Post';
-        const page =
-            eventType === 'Vote'
-                ? `@${operation.author}/${operation.permlink}`
-                : '';
+            .replace(/^([a-z])/, (g) => g.toUpperCase())
+            .replace(/_([a-z])/g, (g) => g[1].toUpperCase());
+        if (eventType === 'Comment' && !operation.parent_author) eventType = 'Post';
+        const page = eventType === 'Vote' ? `@${operation.author}/${operation.permlink}` : '';
         serverApiRecordEvent(eventType, page);
     } catch (error) {
         console.error('TransactionSage', error);
@@ -190,15 +180,17 @@ export function* broadcastOperation({
 
 function hasPrivateKeys(payload) {
     const blob = JSON.stringify(payload.operations);
-    let m,
-        re = /P?(5[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{50})/g;
+    let m;
+    const re = /P?(5[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{50})/g;
     while (true) {
         m = re.exec(blob);
         if (m) {
             try {
                 PrivateKey.fromWif(m[1]); // performs the base58check
                 return true;
-            } catch (e) {}
+            } catch (e) {
+                // Nothing
+            }
         } else {
             break;
         }
@@ -207,18 +199,19 @@ function hasPrivateKeys(payload) {
 }
 
 function* broadcastPayload({
-    payload: { operations, keys, username, successCallback, errorCallback },
+ payload: {
+ operations, keys, username, successCallback, errorCallback
+}
 }) {
     let needsActiveAuth = false;
 
     console.log('broadcastPayload', operations, username);
 
     if ($STM_Config.read_only_mode) return;
+    // eslint-disable-next-line no-restricted-syntax
     for (const [type] of operations) {
         // see also transaction/ERROR
-        yield put(
-            transactionActions.remove({ key: ['TransactionError', type] })
-        );
+        yield put(transactionActions.remove({ key: ['TransactionError', type] }));
         if (!postingOps.has(type)) {
             needsActiveAuth = true;
         }
@@ -226,13 +219,17 @@ function* broadcastPayload({
 
     {
         const newOps = [];
+        // eslint-disable-next-line no-restricted-syntax
         for (const [type, operation] of operations) {
             if (hook['preBroadcast_' + type]) {
                 const op = yield call(hook['preBroadcast_' + type], {
                     operation,
                     username,
                 });
-                if (Array.isArray(op)) for (const o of op) newOps.push(o);
+                if (Array.isArray(op)) {
+                    // eslint-disable-next-line no-restricted-syntax
+                    for (const o of op) newOps.push(o);
+                }
                 else newOps.push([type, op]);
             } else {
                 newOps.push([type, operation]);
@@ -243,6 +240,7 @@ function* broadcastPayload({
 
     // status: broadcasting
     const broadcastedEvent = () => {
+        // eslint-disable-next-line no-restricted-syntax
         for (const [type, operation] of operations) {
             if (hook['broadcasted_' + type]) {
                 try {
@@ -255,7 +253,7 @@ function* broadcastPayload({
     };
 
     // get username
-    const currentUser = yield select(state => state.user.get('current'));
+    const currentUser = yield select((state) => state.user.get('current'));
     const currentUsername = currentUser && currentUser.get('username');
     username = username || currentUsername;
 
@@ -263,89 +261,64 @@ function* broadcastPayload({
         yield new Promise((resolve, reject) => {
             // Bump transaction (for live UI testing).. Put 0 in now (no effect),
             // to enable browser's autocomplete and help prevent typos.
-            const env = process.env;
-            const bump = env.BROWSER
-                ? parseInt(localStorage.getItem('bump') || 0)
-                : 0;
-            if (env.BROWSER && bump === 1) {
+            const bump = process.env.BROWSER ? parseInt(localStorage.getItem('bump') || 0) : 0;
+            if (process.env.BROWSER && bump === 1) {
                 // for testing
-                console.log(
-                    'TransactionSaga bump(no broadcast) and reject',
-                    JSON.stringify(operations, null, 2)
-                );
+                console.log('TransactionSaga bump(no broadcast) and reject', JSON.stringify(operations, null, 2));
                 setTimeout(() => {
                     reject(new Error('Testing, fake error'));
                 }, 2000);
-            } else if (env.BROWSER && bump === 2) {
+            } else if (process.env.BROWSER && bump === 2) {
                 // also for testing
-                console.log(
-                    'TransactionSaga bump(no broadcast) and resolve',
-                    JSON.stringify(operations, null, 2)
-                );
+                console.log('TransactionSaga bump(no broadcast) and resolve', JSON.stringify(operations, null, 2));
                 setTimeout(() => {
                     resolve();
                     broadcastedEvent();
                 }, 2000);
-            } else {
-                if (isLoggedInWithKeychain()) {
-                    const authType = needsActiveAuth ? 'active' : 'posting';
-                    window.hive_keychain.requestBroadcast(
-                        username,
-                        operations,
-                        authType,
-                        response => {
-                            if (!response.success) {
-                                reject(response.message);
-                            } else {
-                                broadcastedEvent();
-                                resolve();
-                            }
-                        }
-                    );
-                } else if (isLoggedInWithHiveSigner()) {
-                    if (!needsActiveAuth) {
-                        hiveSignerClient.broadcast(
-                            operations,
-                            (err, result) => {
-                                if (err) {
-                                    reject(err.error_description);
-                                } else {
-                                    broadcastedEvent();
-                                    resolve();
-                                }
-                            }
-                        );
+            } else if (isLoggedInWithKeychain()) {
+                const authType = needsActiveAuth ? 'active' : 'posting';
+                window.hive_keychain.requestBroadcast(username, operations, authType, (response) => {
+                    if (!response.success) {
+                        reject(response.message);
                     } else {
-                        sendOperationsWithHiveSigners(
-                            operations,
-                            {},
-                            (err, result) => {
-                                if (err) {
-                                    reject(err.error_description);
-                                } else {
-                                    broadcastedEvent();
-                                    resolve();
-                                }
-                            }
-                        );
+                        broadcastedEvent();
+                        resolve();
                     }
+                });
+            } else if (isLoggedInWithHiveSigner()) {
+                if (!needsActiveAuth) {
+                    hiveSignerClient.broadcast(operations, (err) => {
+                        if (err) {
+                            reject(err.error_description);
+                        } else {
+                            broadcastedEvent();
+                            resolve();
+                        }
+                    });
                 } else {
-                    broadcast.send(
-                        { extensions: [], operations },
-                        keys,
-                        err => {
-                            if (err) {
-                                reject(err);
-                            } else {
-                                broadcastedEvent();
-                                resolve();
-                            }
+                    // eslint-disable-next-line no-undef
+                    sendOperationsWithHiveSigners(operations, {}, (err) => {
+                        if (err) {
+                            reject(err.error_description);
+                        } else {
+                            broadcastedEvent();
+                            resolve();
                         }
-                    );
+                    });
                 }
+            } else {
+                broadcast.send({ extensions: [], operations }, keys, (err) => {
+                    if (err) {
+                        reject(err);
+                    } else {
+                        broadcastedEvent();
+                        resolve();
+                    }
+                });
             }
         });
         // status: accepted
+        // eslint-disable-next-line no-restricted-syntax
         for (const [type, operation] of operations) {
             if (hook['accepted_' + type]) {
                 try {
@@ -365,18 +338,16 @@ function* broadcastPayload({
                 );
             }
         }
-        if (successCallback)
-            try {
+        if (successCallback) { try {
                 successCallback(operations);
             } catch (error) {
                 console.error('defaultErrorCallback', error);
-            }
+            } }
     } catch (error) {
         console.error('TransactionSaga\tbroadcastPayload', error);
         // status: error
-        yield put(
-            transactionActions.error({ operations, error, errorCallback })
-        );
+        yield put(transactionActions.error({ operations, error, errorCallback }));
+        // eslint-disable-next-line no-restricted-syntax
         for (const [type, operation] of operations) {
             if (hook['error_' + type]) {
                 try {
@@ -392,10 +363,7 @@ function* broadcastPayload({
 function* accepted_comment({ operation }) {
     const { author, permlink } = operation;
     //yield call(getContent, { author, permlink });
-    if (
-        operation.__config.originalBody !== null &&
-        operation.__config.originalBody !== undefined
-    ) {
+    if (operation.__config.originalBody !== null && operation.__config.originalBody !== undefined) {
         yield call(lazyUpdate, operation);
     } else {
         yield call(wait, 9000);
@@ -406,14 +374,14 @@ function* accepted_comment({ operation }) {
 
 function updateFollowState(action, following, state) {
     if (action == null) {
-        state = state.update('blog_result', Set(), r => r.delete(following));
-        state = state.update('ignore_result', Set(), r => r.delete(following));
+        state = state.update('blog_result', Set(), (r) => r.delete(following));
+        state = state.update('ignore_result', Set(), (r) => r.delete(following));
     } else if (action === 'blog') {
-        state = state.update('blog_result', Set(), r => r.add(following));
-        state = state.update('ignore_result', Set(), r => r.delete(following));
+        state = state.update('blog_result', Set(), (r) => r.add(following));
+        state = state.update('ignore_result', Set(), (r) => r.delete(following));
     } else if (action === 'ignore') {
-        state = state.update('ignore_result', Set(), r => r.add(following));
-        state = state.update('blog_result', Set(), r => r.delete(following));
+        state = state.update('ignore_result', Set(), (r) => r.add(following));
+        state = state.update('blog_result', Set(), (r) => r.delete(following));
     }
     state = state.set('blog_count', state.get('blog_result', Set()).size);
     state = state.set('ignore_count', state.get('ignore_result', Set()).size);
@@ -426,20 +394,21 @@ function* accepted_custom_json({ operation }) {
         console.log(operation);
         try {
             if (json[0] === 'follow') {
-                const { follower, following, what: [action] } = json[1];
+                const {
+                    follower,
+                    following,
+                    what: [action],
+                } = json[1];
                 yield put(
                     globalActions.update({
                         key: ['follow', 'getFollowingAsync', follower],
                         notSet: Map(),
-                        updater: m => updateFollowState(action, following, m),
+                        updater: (m) => updateFollowState(action, following, m),
                     })
                 );
             }
         } catch (e) {
-            console.error(
-                'TransactionSaga unrecognized follow custom_json format',
-                operation.json
-            );
+            console.error('TransactionSaga unrecognized follow custom_json format', operation.json);
         }
     }
     return operation;
@@ -449,19 +418,12 @@ function* accepted_delete_comment({ operation }) {
     yield put(globalActions.deleteContent(operation));
 }
 
-const wait = ms =>
-    new Promise(resolve => {
+const wait = (ms) => new Promise((resolve) => {
         setTimeout(() => resolve(), ms);
     });
 
 function* accepted_vote({ operation: { author, permlink, weight } }) {
-    console.log(
-        'Vote accepted, weight',
-        weight,
-        'on',
-        author + '/' + permlink,
-        'weight'
-    );
+    console.log('Vote accepted, weight', weight, 'on', author + '/' + permlink, 'weight');
     // update again with new $$ amount from the steemd node
     yield put(
         globalActions.remove({
@@ -474,12 +436,12 @@ function* accepted_vote({ operation: { author, permlink, weight } }) {
 
 export function* preBroadcast_comment({ operation, username }) {
     if (!operation.author) operation.author = username;
-    let permlink = operation.permlink;
-    const { author, __config: { originalBody, comment_options } } = operation;
+    let { permlink } = operation;
     const {
-        parent_author = '',
-        parent_permlink = operation.category,
+        author,
+        __config: { originalBody, comment_options },
     } = operation;
+    const { parent_author = '', parent_permlink = operation.category } = operation;
     const { title } = operation;
     let { body } = operation;
 
@@ -487,6 +449,7 @@ export function* preBroadcast_comment({ operation, username }) {
 
     let body2;
     if (originalBody) {
+        // eslint-disable-next-line no-unused-vars
         const patch = createPatch(originalBody, body);
         // Putting body into buffer will expand Unicode characters into their true length
         //if (patch && patch.length < new Buffer(body, 'utf-8').length)
@@ -495,8 +458,7 @@ export function* preBroadcast_comment({ operation, username }) {
     if (!body2) body2 = body;
     if (!permlink) permlink = yield createPermlink(title, author);
 
-    if (typeof operation.json_metadata !== 'string')
-        throw 'json not serialized';
+    if (typeof operation.json_metadata !== 'string') throw 'json not serialized';
     const op = {
         ...operation,
         permlink: permlink.toLowerCase(),
@@ -525,9 +487,7 @@ export function* preBroadcast_comment({ operation, username }) {
                 percent_hbd,
                 allow_votes,
                 allow_curation_rewards,
-                extensions: comment_options.extensions
-                    ? comment_options.extensions
-                    : [],
+                extensions: comment_options.extensions ? comment_options.extensions : [],
             },
         ]);
     }
@@ -551,9 +511,7 @@ export function* createPermlink(title, author) {
             permlink: s,
         });
         if (head && !!head.category) {
-            const noise = base58
-                .encode(secureRandom.randomBuffer(4))
-                .toLowerCase();
+            const noise = base58.encode(secureRandom.randomBuffer(4)).toLowerCase();
             permlink = noise + '-' + s;
         } else {
             permlink = s;
@@ -569,8 +527,6 @@ export function* createPermlink(title, author) {
 
     return permlink;
 }
-
-import diff_match_patch from 'diff-match-patch';
 const dmp = new diff_match_patch();
 
 export function createPatch(text1, text2) {
diff --git a/src/app/redux/TransactionSaga.test.js b/src/app/redux/TransactionSaga.test.js
index d47f8076fa9c4b1544ba1296421bcc61259233ac..f0c78cd599386090655261d85c3f0078c3769cf2 100644
--- a/src/app/redux/TransactionSaga.test.js
+++ b/src/app/redux/TransactionSaga.test.js
@@ -1,21 +1,17 @@
+// eslint-disable-next-line no-unused-vars
 /* global describe, it, before, beforeEach, after, afterEach */
 
-import { call, select, all, takeEvery } from 'redux-saga/effects';
-import steem, { api, broadcast } from '@hiveio/hive-js';
+import { call, takeEvery } from 'redux-saga/effects';
 import { callBridge } from 'app/utils/steemApi';
-import { cloneableGenerator } from 'redux-saga/utils';
 import * as transactionActions from 'app/redux/TransactionReducer';
+import { configure } from 'enzyme';
+import Adapter from 'enzyme-adapter-react-16';
 import {
-    preBroadcast_comment,
     createPermlink,
     createPatch,
     transactionWatches,
     broadcastOperation,
 } from './TransactionSaga';
-import { DEBT_TICKER } from 'app/client_config';
-
-import { configure, shallow } from 'enzyme';
-import Adapter from 'enzyme-adapter-react-15';
 
 configure({ adapter: new Adapter() });
 
@@ -39,18 +35,11 @@ const operation = {
     memo: '#testing',
 };
 
-const username = 'Beatrice';
-
 describe('TransactionSaga', () => {
     describe('watch user actions and trigger appropriate saga', () => {
         const gen = transactionWatches;
         it('should call the broadcastOperation saga with every transactionActions.BROADCAST_OPERATION action', () => {
-            expect(gen).toEqual([
-                takeEvery(
-                    transactionActions.BROADCAST_OPERATION,
-                    broadcastOperation
-                ),
-            ]);
+            expect(gen).toEqual([takeEvery(transactionActions.BROADCAST_OPERATION, broadcastOperation)]);
         });
     });
 
@@ -60,12 +49,9 @@ describe('TransactionSaga', () => {
             expect(actual).toEqual(undefined);
         });
         it('should return the patch that reconciles two different strings', () => {
-            const testString =
-                'there is something interesting going on here that I do not fully understand it is seemingly complex but it is actually quite simple';
+            const testString = 'there is something interesting going on here that I do not fully understand it is seemingly complex but it is actually quite simple';
             const actual = createPatch(testString, testString + 'ILU');
-            expect(actual).toEqual(
-                '@@ -120,12 +120,15 @@\n quite simple\n+ILU\n'
-            );
+            expect(actual).toEqual('@@ -120,12 +120,15 @@\n quite simple\n+ILU\n');
         });
     });
 
diff --git a/src/app/redux/UserProfilesReducer.js b/src/app/redux/UserProfilesReducer.js
index 2eceb5d7b2b59813431f4b016dfb8426e133bc90..6ae274ede3a6d4852b92923b9148c3d0f41bdd41 100644
--- a/src/app/redux/UserProfilesReducer.js
+++ b/src/app/redux/UserProfilesReducer.js
@@ -20,20 +20,14 @@ export default function reducer(state = defaultState, action) {
     switch (action.type) {
         case ADD_USER_PROFILE: {
             if (payload) {
-                return state.setIn(
-                    ['profiles', payload.username],
-                    fromJS(payload.account)
-                );
+                return state.setIn(['profiles', payload.username], fromJS(payload.account));
             }
             return state;
         }
 
         case ADD_LISTED_ACCOUNTS: {
             if (payload) {
-                return state.setIn(
-                    ['listedAccounts', payload.username],
-                    fromJS(payload.listed_accounts)
-                );
+                return state.setIn(['listedAccounts', payload.username], fromJS(payload.listed_accounts));
             }
             return state;
         }
@@ -44,10 +38,10 @@ export default function reducer(state = defaultState, action) {
                     ['hivebuzzBadges', payload.username],
                     fromJS(
                         payload.badges
-                            .filter(o => {
+                            .filter((o) => {
                                 return o.state === 'on';
                             })
-                            .map(o => {
+                            .map((o) => {
                                 return {
                                     id: o.id,
                                     type: o.type,
@@ -67,15 +61,13 @@ export default function reducer(state = defaultState, action) {
                 return state.setIn(
                     ['peakdBadges', payload.username],
                     fromJS(
-                        payload.badges.map(o => {
+                        payload.badges.map((o) => {
                             return {
                                 id: `${o.account}-${o.name}`,
                                 type: 'badges',
                                 name: o.name,
                                 title: o.title,
-                                url: `https://images.hive.blog/u/${
-                                    o.name
-                                }/avatar/small`,
+                                url: `https://images.hive.blog/u/${o.name}/avatar/small`,
                             };
                         })
                     )
@@ -99,27 +91,27 @@ export default function reducer(state = defaultState, action) {
 }
 
 // Action creators
-export const addProfile = payload => ({
+export const addProfile = (payload) => ({
     type: ADD_USER_PROFILE,
     payload,
 });
 
-export const addHivebuzzBadges = payload => ({
+export const addHivebuzzBadges = (payload) => ({
     type: ADD_HIVEBUZZ_BADGES,
     payload,
 });
 
-export const addPeakdBadges = payload => ({
+export const addPeakdBadges = (payload) => ({
     type: ADD_PEAKD_BADGES,
     payload,
 });
 
-export const setError = payload => ({
+export const setError = (payload) => ({
     type: SET_ERROR,
     payload,
 });
 
-export const addList = payload => ({
+export const addList = (payload) => ({
     type: ADD_LISTED_ACCOUNTS,
     payload,
 });
diff --git a/src/app/redux/UserProfilesSaga.js b/src/app/redux/UserProfilesSaga.js
index a175fa868db93bfb22f30e60f67a796dc25cc6b3..adfaffdbd0fe877b20a88d0790da6400af8bd555 100644
--- a/src/app/redux/UserProfilesSaga.js
+++ b/src/app/redux/UserProfilesSaga.js
@@ -88,19 +88,19 @@ export function* fetchUserPeakdBadges(action) {
 
 // Action creators
 export const actions = {
-    fetchProfile: payload => ({
+    fetchProfile: (payload) => ({
         type: FETCH_PROFILE,
         payload,
     }),
-    fetchLists: payload => ({
+    fetchLists: (payload) => ({
         type: FETCH_LISTS,
         payload,
     }),
-    fetchHivebuzzBadges: payload => ({
+    fetchHivebuzzBadges: (payload) => ({
         type: FETCH_HIVEBUZZ_BADGES,
         payload,
     }),
-    fetchPeakdBadges: payload => ({
+    fetchPeakdBadges: (payload) => ({
         type: FETCH_PEAKD_BADGES,
         payload,
     }),
diff --git a/src/app/redux/UserReducer.js b/src/app/redux/UserReducer.js
index 21b69a30b98ab635e394228ce2fb66fcbc408fbe..25ba0be03dc6a3d039c6af007a6a59f9c03eaef8 100644
--- a/src/app/redux/UserReducer.js
+++ b/src/app/redux/UserReducer.js
@@ -1,4 +1,4 @@
-import { Map, fromJS } from 'immutable';
+import { fromJS } from 'immutable';
 import { DEFAULT_LANGUAGE } from 'app/client_config';
 
 // Action constants
@@ -20,8 +20,6 @@ export const SET_USER = 'user/SET_USER';
 const CLOSE_LOGIN = 'user/CLOSE_LOGIN';
 export const LOGIN_ERROR = 'user/LOGIN_ERROR';
 export const LOGOUT = 'user/LOGOUT';
-const SHOW_SIGN_UP = 'user/SHOW_SIGN_UP';
-const HIDE_SIGN_UP = 'user/HIDE_SIGN_UP';
 const KEYS_ERROR = 'user/KEYS_ERROR';
 const ACCOUNT_AUTH_LOOKUP = 'user/ACCOUNT_AUTH_LOOKUP';
 const SET_AUTHORITY = 'user/SET_AUTHORITY';
@@ -50,7 +48,8 @@ const defaultState = fromJS({
 });
 
 export default function reducer(state = defaultState, action) {
-    const payload = action.payload;
+    const { payload } = action;
+    let show_login_modal;
 
     switch (action.type) {
         case SHOW_LOGIN: {
@@ -109,17 +108,13 @@ export default function reducer(state = defaultState, action) {
         case REMOVE_HIGH_SECURITY_KEYS: {
             if (!state.hasIn(['current', 'private_keys'])) return state;
             let empty = false;
-            state = state.updateIn(
-                ['current', 'private_keys'],
-                private_keys => {
-                    if (!private_keys) return null;
-                    if (private_keys.has('active_private'))
-                        console.log('removeHighSecurityKeys');
-                    private_keys = private_keys.delete('active_private');
-                    empty = private_keys.size === 0;
-                    return private_keys;
-                }
-            );
+            state = state.updateIn(['current', 'private_keys'], (private_keys) => {
+                if (!private_keys) return null;
+                if (private_keys.has('active_private')) console.log('removeHighSecurityKeys');
+                private_keys = private_keys.delete('active_private');
+                empty = private_keys.size === 0;
+                return private_keys;
+            });
             if (empty) {
                 // LOGOUT
                 return defaultState.merge({ logged_out: true });
@@ -146,14 +141,14 @@ export default function reducer(state = defaultState, action) {
             return state; // saga
 
         case SET_USER:
-            let show_login_modal = false;
+            show_login_modal = false;
             if (payload.show_login_modal != undefined) {
                 show_login_modal = payload.show_login_modal;
-                delete payload['show_login_modal'];
+                delete payload.show_login_modal;
             }
             return state.mergeDeep({
                 current: payload,
-                show_login_modal: show_login_modal,
+                show_login_modal,
                 show_login_warning: false,
                 loginBroadcastOperation: undefined,
                 loginDefault: undefined,
@@ -188,8 +183,7 @@ export default function reducer(state = defaultState, action) {
             // AuthSaga
             const { accountName, auth, pub_keys_used } = payload;
             state = state.setIn(['authority', accountName], fromJS(auth));
-            if (pub_keys_used)
-                state = state.set('pub_keys_used', pub_keys_used);
+            if (pub_keys_used) state = state.set('pub_keys_used', pub_keys_used);
             return state;
         }
 
@@ -197,10 +191,7 @@ export default function reducer(state = defaultState, action) {
             return state.set('hide_connection_error_modal', true);
 
         case SET:
-            return state.setIn(
-                Array.isArray(payload.key) ? payload.key : [payload.key],
-                fromJS(payload.value)
-            );
+            return state.setIn(Array.isArray(payload.key) ? payload.key : [payload.key], fromJS(payload.value));
 
         case SHOW_SIDE_PANEL:
             return state.set('show_side_panel', true);
@@ -209,22 +200,17 @@ export default function reducer(state = defaultState, action) {
             return state.set('show_side_panel', false);
 
         case SHOW_POST_ADVANCED_SETTINGS:
-            return state.set(
-                'show_post_advanced_settings_modal',
-                payload.formId
-            );
+            return state.set('show_post_advanced_settings_modal', payload._formId);
 
         case HIDE_POST_ADVANCED_SETTINGS:
             return state.set('show_post_advanced_settings_modal', '');
 
         case SHOW_ANNOUNCEMENT:
-            typeof sessionStorage !== 'undefined' &&
-                sessionStorage.setItem('hideAnnouncement', 'false');
+            typeof sessionStorage !== 'undefined' && sessionStorage.setItem('hideAnnouncement', 'false');
             return state.set('showAnnouncement', true);
 
         case HIDE_ANNOUNCEMENT:
-            typeof sessionStorage !== 'undefined' &&
-                sessionStorage.setItem('hideAnnouncement', 'true');
+            typeof sessionStorage !== 'undefined' && sessionStorage.setItem('hideAnnouncement', 'true');
             return state.set('showAnnouncement', false);
 
         default:
@@ -233,119 +219,119 @@ export default function reducer(state = defaultState, action) {
 }
 
 // Action creators
-export const showLogin = payload => ({
+export const showLogin = (payload) => ({
     type: SHOW_LOGIN,
     payload,
 });
 
-export const showLoginWarning = payload => ({
+export const showLoginWarning = (payload) => ({
     type: SHOW_LOGIN_WARNING,
     payload,
 });
 
-export const hideLogin = payload => ({
+export const hideLogin = (payload) => ({
     type: HIDE_LOGIN,
     payload,
 });
 
-export const hideLoginWarning = payload => ({
+export const hideLoginWarning = (payload) => ({
     type: HIDE_LOGIN_WARNING,
     payload,
 });
 
-export const showTerms = payload => ({
+export const showTerms = (payload) => ({
     type: SHOW_TERMS,
     payload,
 });
 
 export const acceptTerms = () => ({ type: ACCEPT_TERMS });
 
-export const saveLoginConfirm = payload => ({
+export const saveLoginConfirm = (payload) => ({
     type: SAVE_LOGIN_CONFIRM,
     payload,
 });
 
-export const saveLogin = payload => ({
+export const saveLogin = (payload) => ({
     type: SAVE_LOGIN,
     payload,
 });
 
-export const removeHighSecurityKeys = payload => ({
+export const removeHighSecurityKeys = (payload) => ({
     type: REMOVE_HIGH_SECURITY_KEYS,
     payload,
 });
 
-export const changeLanguage = payload => ({
+export const changeLanguage = (payload) => ({
     type: CHANGE_LANGUAGE,
     payload,
 });
 
-export const showPromotePost = payload => ({
+export const showPromotePost = (payload) => ({
     type: SHOW_PROMOTE_POST,
     payload,
 });
 
-export const hidePromotePost = payload => ({
+export const hidePromotePost = (payload) => ({
     type: HIDE_PROMOTE_POST,
     payload,
 });
 
-export const checkKeyType = payload => ({
+export const checkKeyType = (payload) => ({
     type: CHECK_KEY_TYPE,
     payload,
 });
 
-export const usernamePasswordLogin = payload => ({
+export const usernamePasswordLogin = (payload) => ({
     type: USERNAME_PASSWORD_LOGIN,
     payload,
 });
 
-export const setUser = payload => ({
+export const setUser = (payload) => ({
     type: SET_USER,
     payload,
 });
 
-export const closeLogin = payload => ({
+export const closeLogin = (payload) => ({
     type: CLOSE_LOGIN,
     payload,
 });
 
-export const loginError = payload => ({
+export const loginError = (payload) => ({
     type: LOGIN_ERROR,
     payload,
 });
 
-export const logout = payload => ({
+export const logout = (payload) => ({
     type: LOGOUT,
     payload,
 });
 
-export const keysError = payload => ({
+export const keysError = (payload) => ({
     type: KEYS_ERROR,
     payload,
 });
 
-export const accountAuthLookup = payload => ({
+export const accountAuthLookup = (payload) => ({
     type: ACCOUNT_AUTH_LOOKUP,
     payload,
 });
 
-export const setAuthority = payload => ({
+export const setAuthority = (payload) => ({
     type: SET_AUTHORITY,
     payload,
 });
 
-export const hideConnectionErrorModal = payload => ({
+export const hideConnectionErrorModal = (payload) => ({
     type: HIDE_CONNECTION_ERROR_MODAL,
     payload,
 });
 
-export const set = payload => ({
+export const set = (payload) => ({
     type: SET,
     payload,
 });
 
-export const uploadImage = payload => ({
+export const uploadImage = (payload) => ({
     type: UPLOAD_IMAGE,
     payload,
 });
@@ -360,7 +346,7 @@ export const hideSidePanel = () => {
     };
 };
 
-export const showPostAdvancedSettings = payload => ({
+export const showPostAdvancedSettings = (payload) => ({
     type: SHOW_POST_ADVANCED_SETTINGS,
     payload,
 });
diff --git a/src/app/redux/UserSaga.js b/src/app/redux/UserSaga.js
index b5c9d3eafa9de6d3ba87df1fd03dbd87e843f589..3f3642d106365fae05cec52fe93ec01cea7ec02c 100644
--- a/src/app/redux/UserSaga.js
+++ b/src/app/redux/UserSaga.js
@@ -1,16 +1,15 @@
-import { fromJS, Set, List } from 'immutable';
-import { call, put, select, fork, take, takeLatest } from 'redux-saga/effects';
+/*global $STM_Config*/
+import { fromJS, Set } from 'immutable';
+import {
+ call, put, select, fork, take, takeLatest
+} from 'redux-saga/effects';
 import { api, auth } from '@hiveio/hive-js';
 import { PrivateKey, Signature, hash } from '@hiveio/hive-js/lib/auth/ecc';
 
 import { accountAuthLookup } from 'app/redux/AuthSaga';
 import { getAccount } from 'app/redux/SagaShared';
 import * as userActions from 'app/redux/UserReducer';
-import { receiveFeatureFlags } from 'app/redux/AppReducer';
-import {
-    hasCompatibleKeychain,
-    isLoggedInWithKeychain,
-} from 'app/utils/HiveKeychain';
+import { isLoggedInWithKeychain } from 'app/utils/HiveKeychain';
 import { packLoginData, extractLoginData } from 'app/utils/UserUtil';
 import { browserHistory } from 'react-router';
 import {
@@ -23,20 +22,14 @@ import {
 import { loadFollows } from 'app/redux/FollowSaga';
 import { translate } from 'app/Translator';
 import DMCAUserList from 'app/utils/DMCAUserList';
-import {
-    setHiveSignerAccessToken,
-    isLoggedInWithHiveSigner,
-    hiveSignerClient,
-} from 'app/utils/HiveSigner';
+import { setHiveSignerAccessToken, isLoggedInWithHiveSigner, hiveSignerClient } from 'app/utils/HiveSigner';
 
+// eslint-disable-next-line import/prefer-default-export
 export const userWatches = [
-    takeLatest(
-        'user/lookupPreviousOwnerAuthority',
-        lookupPreviousOwnerAuthority
-    ),
+    takeLatest('user/lookupPreviousOwnerAuthority', lookupPreviousOwnerAuthority),
     takeLatest(userActions.CHECK_KEY_TYPE, checkKeyType),
     // takeLeading https://redux-saga.js.org/docs/api/#notes-5
-    fork(function*() {
+    fork(function* () {
         while (true) {
             const action = yield take(userActions.USERNAME_PASSWORD_LOGIN);
             yield call(usernamePasswordLogin, action);
@@ -46,7 +39,7 @@ export const userWatches = [
     takeLatest(userActions.LOGOUT, logout),
     takeLatest(userActions.LOGIN_ERROR, loginError),
     takeLatest(userActions.UPLOAD_IMAGE, uploadImage),
-    takeLatest(userActions.ACCEPT_TERMS, function*() {
+    takeLatest(userActions.ACCEPT_TERMS, function* () {
         try {
             yield call(acceptTos);
         } catch (e) {
@@ -55,8 +48,6 @@ export const userWatches = [
     }),
 ];
 
-const strCmp = (a, b) => (a > b ? 1 : a < b ? -1 : 0);
-
 function effectiveVests(account) {
     const vests = parseFloat(account.get('vesting_shares'));
     const delegated = parseFloat(account.get('delegated_vesting_shares'));
@@ -111,9 +102,8 @@ function* usernamePasswordLogin(action) {
     // or if the user's browser does not support session storage,
     // show the announcement.
     if (
-        typeof sessionStorage === 'undefined' ||
-        (typeof sessionStorage !== 'undefined' &&
-            sessionStorage.getItem('hideAnnouncement') !== 'true')
+        typeof sessionStorage === 'undefined'
+        || (typeof sessionStorage !== 'undefined' && sessionStorage.getItem('hideAnnouncement') !== 'true')
     ) {
         // Uncomment to re-enable announcment
         // TODO: use config to enable/disable
@@ -123,7 +113,7 @@ function* usernamePasswordLogin(action) {
     // Sets 'loading' while the login is taking place. The key generation can
     // take a while on slow computers.
     yield call(usernamePasswordLogin2, action.payload);
-    const current = yield select(state => state.user.get('current'));
+    const current = yield select((state) => state.user.get('current'));
     const username = current ? current.get('username') : null;
     if (username) {
         yield fork(loadFollows, 'getFollowingAsync', username, 'blog');
@@ -131,10 +121,7 @@ function* usernamePasswordLogin(action) {
     }
 }
 
-const clean = value =>
-    value == null || value === '' || /null|undefined/.test(value)
-        ? undefined
-        : value;
+const clean = (value) => (value == null || value === '' || /null|undefined/.test(value) ? undefined : value);
 
 function* usernamePasswordLogin2({
     username,
@@ -148,26 +135,14 @@ function* usernamePasswordLogin2({
     operationType /*high security*/,
     afterLoginRedirectToWelcome,
 }) {
-    const user = yield select(state => state.user);
+    const user = yield select((state) => state.user);
     const loginType = user.get('login_type');
     const justLoggedIn = loginType === 'basic';
-    console.log(
-        'Login type:',
-        loginType,
-        'Just logged in?',
-        justLoggedIn,
-        'username:',
-        username
-    );
+    console.log('Login type:', loginType, 'Just logged in?', justLoggedIn, 'username:', username);
 
     // login, using saved password
     let feedURL = false;
-    let autopost,
-        memoWif,
-        login_owner_pubkey,
-        login_wif_owner_pubkey,
-        login_with_keychain,
-        login_with_hivesigner;
+    let autopost, memoWif, login_owner_pubkey, login_wif_owner_pubkey, login_with_keychain, login_with_hivesigner;
     if (!username && !password) {
         const data = localStorage.getItem('autopost2');
         if (data) {
@@ -189,20 +164,9 @@ function* usernamePasswordLogin2({
         }
     }
     // no saved password
-    if (
-        !username ||
-        !(
-            password ||
-            useKeychain ||
-            login_with_keychain ||
-            useHiveSigner ||
-            login_with_hivesigner
-        )
-    ) {
+    if (!username || !(password || useKeychain || login_with_keychain || useHiveSigner || login_with_hivesigner)) {
         console.log('No saved password');
-        const offchain_account = yield select(state =>
-            state.offchain.get('account')
-        );
+        const offchain_account = yield select((state) => state.offchain.get('account'));
         if (offchain_account) serverApiLogout();
         return;
     }
@@ -213,9 +177,8 @@ function* usernamePasswordLogin2({
         [username, userProvidedRole] = username.split('/');
     }
 
-    const pathname = yield select(state => state.global.get('pathname'));
-    const isRole = (role, fn) =>
-        !userProvidedRole || role === userProvidedRole ? fn() : undefined;
+    yield select((state) => state.global.get('pathname'));
+    const isRole = (role, fn) => (!userProvidedRole || role === userProvidedRole ? fn() : undefined);
 
     const account = yield call(getAccount, username);
     if (!account) {
@@ -226,9 +189,7 @@ function* usernamePasswordLogin2({
     //dmca user block
     if (username && DMCAUserList.includes(username)) {
         console.log('DMCA list');
-        yield put(
-            userActions.loginError({ error: translate('terms_violation') })
-        );
+        yield put(userActions.loginError({ error: translate('terms_violation') }));
         return;
     }
     //check for defaultBeneficiaries
@@ -294,26 +255,16 @@ function* usernamePasswordLogin2({
             });
         } catch (e) {
             // Password (non wif)
-            login_owner_pubkey = PrivateKey.fromSeed(
-                username + 'owner' + password
-            )
+            login_owner_pubkey = PrivateKey.fromSeed(username + 'owner' + password)
                 .toPublicKey()
                 .toString();
             private_keys = fromJS({
-                posting_private: isRole('posting', () =>
-                    PrivateKey.fromSeed(username + 'posting' + password)
-                ),
-                active_private: isRole('active', () =>
-                    PrivateKey.fromSeed(username + 'active' + password)
-                ),
+                posting_private: isRole('posting', () => PrivateKey.fromSeed(username + 'posting' + password)),
+                active_private: isRole('active', () => PrivateKey.fromSeed(username + 'active' + password)),
                 memo_private: PrivateKey.fromSeed(username + 'memo' + password),
             });
         }
-        if (memoWif)
-            private_keys = private_keys.set(
-                'memo_private',
-                PrivateKey.fromWif(memoWif)
-            );
+        if (memoWif) private_keys = private_keys.set('memo_private', PrivateKey.fromWif(memoWif));
 
         yield call(accountAuthLookup, {
             payload: {
@@ -322,16 +273,12 @@ function* usernamePasswordLogin2({
                 login_owner_pubkey,
             },
         });
-        let authority = yield select(state =>
-            state.user.getIn(['authority', username])
-        );
+        let authority = yield select((state) => state.user.getIn(['authority', username]));
 
         const hasActiveAuth = authority.get('active') === 'full';
         if (hasActiveAuth) {
             console.log('Rejecting due to detected active auth');
-            yield put(
-                userActions.loginError({ error: 'active_login_blocked' })
-            );
+            yield put(userActions.loginError({ error: 'active_login_blocked' }));
             return;
         }
 
@@ -345,74 +292,67 @@ function* usernamePasswordLogin2({
         const accountName = account.get('name');
         authority = authority.set('active', 'none');
         yield put(userActions.setAuthority({ accountName, auth: authority }));
-        const fullAuths = authority.reduce(
-            (r, auth, type) => (auth === 'full' ? r.add(type) : r),
-            Set()
-        );
+        const fullAuths = authority.reduce((r, _auth, type) => (_auth === 'full' ? r.add(type) : r), Set());
         if (!fullAuths.size) {
             console.log('No full auths');
             yield put(userActions.hideLoginWarning());
             localStorage.removeItem('autopost2');
             const owner_pub_key = account.getIn(['owner', 'key_auths', 0, 0]);
-            if (
-                login_owner_pubkey === owner_pub_key ||
-                login_wif_owner_pubkey === owner_pub_key
-            ) {
-                yield put(
-                    userActions.loginError({ error: 'owner_login_blocked' })
-                );
-                return;
-            } else if (hasActiveAuth) {
-                yield put(
-                    userActions.loginError({ error: 'active_login_blocked' })
-                );
+
+            if (login_owner_pubkey === owner_pub_key || login_wif_owner_pubkey === owner_pub_key) {
+                yield put(userActions.loginError({ error: 'owner_login_blocked' }));
                 return;
-            } else {
-                const generated_type =
-                    password[0] === 'P' && password.length > 40;
-                serverApiRecordEvent(
-                    'login_attempt',
-                    JSON.stringify({
-                        name: username,
-                        login_owner_pubkey,
-                        owner_pub_key,
-                        generated_type,
-                    })
-                );
-                yield put(
-                    userActions.loginError({ error: 'Incorrect Password' })
-                );
+            }
+
+            if (hasActiveAuth) {
+                yield put(userActions.loginError({ error: 'active_login_blocked' }));
                 return;
             }
+
+            const generated_type = password[0] === 'P' && password.length > 40;
+            serverApiRecordEvent(
+                'login_attempt',
+                JSON.stringify({
+                    name: username,
+                    login_owner_pubkey,
+                    owner_pub_key,
+                    generated_type,
+                })
+            );
+            yield put(userActions.loginError({ error: 'Incorrect Password' }));
+            return;
+
+            /* old unreachable code...
+            const generated_type = password[0] === 'P' && password.length > 40;
+            serverApiRecordEvent(
+                'login_attempt',
+                JSON.stringify({
+                    name: username,
+                    login_owner_pubkey,
+                    owner_pub_key,
+                    generated_type,
+                })
+            );
+            yield put(userActions.loginError({ error: 'Incorrect Password' }));
+            return;
+             */
         }
-        if (authority.get('posting') !== 'full')
-            private_keys = private_keys.remove('posting_private');
-        if (authority.get('active') !== 'full')
-            private_keys = private_keys.remove('active_private');
+        if (authority.get('posting') !== 'full') private_keys = private_keys.remove('posting_private');
+        if (authority.get('active') !== 'full') private_keys = private_keys.remove('active_private');
 
         const owner_pubkey = account.getIn(['owner', 'key_auths', 0, 0]);
         const active_pubkey = account.getIn(['active', 'key_auths', 0, 0]);
         const posting_pubkey = account.getIn(['posting', 'key_auths', 0, 0]);
 
         const memo_pubkey = private_keys.has('memo_private')
-            ? private_keys
-                  .get('memo_private')
-                  .toPublicKey()
-                  .toString()
+            ? private_keys.get('memo_private').toPublicKey().toString()
             : null;
 
-        if (
-            account.get('memo_key') !== memo_pubkey ||
-            memo_pubkey === owner_pubkey ||
-            memo_pubkey === active_pubkey
-        )
+        if (account.get('memo_key') !== memo_pubkey || memo_pubkey === owner_pubkey || memo_pubkey === active_pubkey)
             // provided password did not yield memo key, or matched active/owner
-            private_keys = private_keys.remove('memo_private');
+            { private_keys = private_keys.remove('memo_private'); }
 
-        if (
-            posting_pubkey === owner_pubkey ||
-            posting_pubkey === active_pubkey
-        ) {
+        if (posting_pubkey === owner_pubkey || posting_pubkey === active_pubkey) {
             yield put(
                 userActions.loginError({
                     error:
@@ -448,9 +388,9 @@ function* usernamePasswordLogin2({
 
     try {
         // const challengeString = yield serverApiLoginChallenge()
-        const offchainData = yield select(state => state.offchain);
-        let serverAccount = offchainData.get('account');
-        let challengeString = offchainData.get('login_challenge');
+        const offchainData = yield select((state) => state.offchain);
+        const serverAccount = offchainData.get('account');
+        const challengeString = offchainData.get('login_challenge');
         if (!serverAccount && challengeString) {
             console.log('No server account, but challenge string');
             const signatures = {};
@@ -459,22 +399,15 @@ function* usernamePasswordLogin2({
             const bufSha = hash.sha256(buf);
 
             if (useKeychain) {
-                const response = yield new Promise(resolve => {
-                    window.hive_keychain.requestSignBuffer(
-                        username,
-                        buf,
-                        'Posting',
-                        response => {
-                            resolve(response);
-                        }
-                    );
+                const response = yield new Promise((resolve) => {
+                    window.hive_keychain.requestSignBuffer(username, buf, 'Posting', (res) => {
+                        resolve(res);
+                    });
                 });
                 if (response.success) {
-                    signatures['posting'] = response.result;
+                    signatures.posting = response.result;
                 } else {
-                    yield put(
-                        userActions.loginError({ error: response.message })
-                    );
+                    yield put(userActions.loginError({ error: response.message }));
                     return;
                 }
                 feedURL = '/@' + username + '/feed';
@@ -490,11 +423,7 @@ function* usernamePasswordLogin2({
                     // redirect url
                     feedURL = '/@' + username + '/feed';
                     // set access setHiveSignerAccessToken
-                    setHiveSignerAccessToken(
-                        username,
-                        access_token,
-                        expires_in
-                    );
+                    setHiveSignerAccessToken(username, access_token, expires_in);
                     // set user data
                     yield put(
                         userActions.setUser({
@@ -520,7 +449,7 @@ function* usernamePasswordLogin2({
 
             console.log('Logging in as', username);
             const response = yield serverApiLogin(username, signatures);
-            const body = yield response.json();
+            yield response.json();
         }
     } catch (error) {
         // Does not need to be fatal
@@ -533,9 +462,7 @@ function* usernamePasswordLogin2({
         yield fork(
             getFeatureFlags,
             username,
-            useKeychain || useHiveSigner
-                ? null
-                : private_keys.get('posting_private').toString()
+            useKeychain || useHiveSigner ? null : private_keys.get('posting_private').toString()
         );
     }
     // TOS acceptance
@@ -567,9 +494,11 @@ function* promptTosAcceptance(username) {
     }
 }
 
-function* getFeatureFlags(username, posting_private) {
+// eslint-disable-next-line require-yield
+function* getFeatureFlags(/*username, posting_private*/) {
     // not yet in use
-    return;
+    return null;
+/*
     try {
         let flags;
         if (!posting_private && hasCompatibleKeychain()) {
@@ -579,7 +508,7 @@ function* getFeatureFlags(username, posting_private) {
                     'conveyor.get_feature_flags',
                     { account: username },
                     'posting',
-                    response => {
+                    (response) => {
                         if (!response.success) {
                             reject(response.message);
                         } else {
@@ -601,6 +530,7 @@ function* getFeatureFlags(username, posting_private) {
     } catch (error) {
         // Do nothing; feature flags are not ready yet. Or posting_private is not available.
     }
+ */
 }
 
 function* saveLogin_localStorage() {
@@ -617,7 +547,7 @@ function* saveLogin_localStorage() {
         login_with_hivesigner,
         access_token,
         expires_in,
-    ] = yield select(state => [
+    ] = yield select((state) => [
         state.user.getIn(['current', 'username']),
         state.user.getIn(['current', 'private_keys']),
         state.user.getIn(['current', 'login_owner_pubkey']),
@@ -636,24 +566,18 @@ function* saveLogin_localStorage() {
         console.error('No posting key to save?');
         return;
     }
-    const account = yield select(state =>
-        state.global.getIn(['accounts', username])
-    );
+    const account = yield select((state) => state.global.getIn(['accounts', username]));
     if (!account) {
         console.error('Missing global.accounts[' + username + ']');
         return;
     }
-    const postingPubkey = posting_private
-        ? posting_private.toPublicKey().toString()
-        : 'none';
+    const postingPubkey = posting_private ? posting_private.toPublicKey().toString() : 'none';
     try {
-        account.getIn(['active', 'key_auths']).forEach(auth => {
-            if (auth.get(0) === postingPubkey)
-                throw 'Login will not be saved, posting key is the same as active key';
+        account.getIn(['active', 'key_auths']).forEach((_auth) => {
+            if (_auth.get(0) === postingPubkey) throw 'Login will not be saved, posting key is the same as active key';
         });
-        account.getIn(['owner', 'key_auths']).forEach(auth => {
-            if (auth.get(0) === postingPubkey)
-                throw 'Login will not be saved, posting key is the same as owner key';
+        account.getIn(['owner', 'key_auths']).forEach((_auth) => {
+            if (_auth.get(0) === postingPubkey) throw 'Login will not be saved, posting key is the same as owner key';
         });
     } catch (e) {
         console.error('login_auth_err', e);
@@ -662,9 +586,7 @@ function* saveLogin_localStorage() {
 
     const memoKey = private_keys ? private_keys.get('memo_private') : null;
     const memoWif = memoKey && memoKey.toWif();
-    const postingPrivateWif = posting_private
-        ? posting_private.toWif()
-        : 'none';
+    const postingPrivateWif = posting_private ? posting_private.toWif() : 'none';
     const data = packLoginData(
         username,
         postingPrivateWif,
@@ -682,6 +604,7 @@ function* saveLogin_localStorage() {
 function* logout(action) {
     const payload = (action || {}).payload || {};
     const logoutType = payload.type || 'default';
+    // eslint-disable-next-line prefer-rest-params
     console.log('Logging out', arguments, 'logout type', logoutType);
 
     // Just in case it is still showing
@@ -694,7 +617,9 @@ function* logout(action) {
     yield serverApiLogout();
 }
 
+// eslint-disable-next-line require-yield
 function* loginError({
+    // eslint-disable-next-line no-empty-pattern
     payload: {
         /*error*/
     },
@@ -707,24 +632,21 @@ function* loginError({
     find the next owner key history record after the change and store it under
     user.previous_owner_authority.
 */
+// eslint-disable-next-line no-empty-pattern
 function* lookupPreviousOwnerAuthority({ payload: {} }) {
-    const current = yield select(state => state.user.getIn(['current']));
+    const current = yield select((state) => state.user.getIn(['current']));
     if (!current) return;
 
     const login_owner_pubkey = current.get('login_owner_pubkey');
     if (!login_owner_pubkey) return;
 
     const username = current.get('username');
-    const key_auths = yield select(state =>
-        state.global.getIn(['accounts', username, 'owner', 'key_auths'])
-    );
-    if (key_auths && key_auths.find(key => key.get(0) === login_owner_pubkey)) {
+    const key_auths = yield select((state) => state.global.getIn(['accounts', username, 'owner', 'key_auths']));
+    if (key_auths && key_auths.find((key) => key.get(0) === login_owner_pubkey)) {
         return;
     }
     // Owner history since this index was installed July 14
-    let owner_history = fromJS(
-        yield call([api, api.getOwnerHistoryAsync], username)
-    );
+    let owner_history = fromJS(yield call([api, api.getOwnerHistoryAsync], username));
     if (owner_history.count() === 0) return;
     owner_history = owner_history.sort((b, a) => {
         // Sort decending
@@ -732,16 +654,13 @@ function* lookupPreviousOwnerAuthority({ payload: {} }) {
         const bb = b.get('last_valid_time');
         return aa < bb ? -1 : aa > bb ? 1 : 0;
     });
-    const previous_owner_authority = owner_history.find(o => {
+    const previous_owner_authority = owner_history.find((o) => {
+        // eslint-disable-next-line no-shadow
         const auth = o.get('previous_owner_authority');
         const weight_threshold = auth.get('weight_threshold');
         const key3 = auth
             .get('key_auths')
-            .find(
-                key2 =>
-                    key2.get(0) === login_owner_pubkey &&
-                    key2.get(1) >= weight_threshold
-            );
+            .find((key2) => key2.get(0) === login_owner_pubkey && key2.get(1) >= weight_threshold);
         return key3 ? auth : null;
     });
     if (!previous_owner_authority) {
@@ -752,14 +671,17 @@ function* lookupPreviousOwnerAuthority({ payload: {} }) {
 }
 
 function* uploadImage({
-    payload: { file, dataUrl, filename = 'image.txt', progress },
+    payload: {
+       file, dataUrl, filename = 'image.txt', progress
+    }
 }) {
+    // eslint-disable-next-line no-underscore-dangle
     const _progress = progress;
-    progress = msg => {
+    progress = (msg) => {
         _progress(msg);
     };
 
-    const stateUser = yield select(state => state.user);
+    const stateUser = yield select((state) => state.user);
     const username = stateUser.getIn(['current', 'username']);
     const keychainLogin = isLoggedInWithKeychain();
     const hiveSignerLogin = isLoggedInWithHiveSigner();
@@ -782,9 +704,9 @@ function* uploadImage({
     if (file) {
         // drag and drop
         const reader = new FileReader();
-        data = yield new Promise(resolve => {
+        data = yield new Promise((resolve) => {
             reader.addEventListener('load', () => {
-                const result = new Buffer(reader.result, 'binary');
+                const result = Buffer.from(reader.result, 'binary');
                 resolve(result);
             });
             reader.readAsBinaryString(file);
@@ -793,11 +715,11 @@ function* uploadImage({
         // recover from preview
         const commaIdx = dataUrl.indexOf(',');
         dataBs64 = dataUrl.substring(commaIdx + 1);
-        data = new Buffer(dataBs64, 'base64');
+        data = Buffer.from(dataBs64, 'base64');
     }
 
     // The challenge needs to be prefixed with a constant (both on the server and checked on the client) to make sure the server can't easily make the client sign a transaction doing something else.
-    const prefix = new Buffer('ImageSigningChallenge');
+    const prefix = Buffer.from('ImageSigningChallenge');
     const buf = Buffer.concat([prefix, data]);
     const bufSha = hash.sha256(buf);
 
@@ -815,20 +737,13 @@ function* uploadImage({
     let postUrl;
     if (hiveSignerLogin) {
         // verify user with access_token for HiveSigner login
-        postUrl = `${$STM_Config.upload_image}/hs/${
-            hiveSignerClient.accessToken
-        }`;
+        postUrl = `${$STM_Config.upload_image}/hs/${hiveSignerClient.accessToken}`;
     } else {
         if (keychainLogin) {
-            const response = yield new Promise(resolve => {
-                window.hive_keychain.requestSignBuffer(
-                    username,
-                    JSON.stringify(buf),
-                    'Posting',
-                    response => {
-                        resolve(response);
-                    }
-                );
+            const response = yield new Promise((resolve) => {
+                window.hive_keychain.requestSignBuffer(username, JSON.stringify(buf), 'Posting', (res) => {
+                    resolve(res);
+                });
             });
             if (response.success) {
                 sig = response.result;
@@ -844,7 +759,7 @@ function* uploadImage({
 
     const xhr = new XMLHttpRequest();
     xhr.open('POST', postUrl);
-    xhr.onload = function() {
+    xhr.onload = function () {
         console.log(xhr.status, xhr.responseText);
         if (xhr.status === 200) {
             try {
@@ -861,21 +776,19 @@ function* uploadImage({
             } catch (e) {
                 console.error('upload_error2', 'not json', e, xhr.responseText);
                 progress({ error: 'Error: response not JSON' });
-                return;
             }
         } else {
             console.error('upload_error3', xhr.status, xhr.statusText);
             progress({ error: `Error: ${xhr.status}: ${xhr.statusText}` });
-            return;
         }
     };
-    xhr.onerror = function(error) {
+    xhr.onerror = function (error) {
         console.error('xhr', filename, error);
         progress({ error: 'Unable to contact the server.' });
     };
-    xhr.upload.onprogress = function(event) {
+    xhr.upload.onprogress = function (event) {
         if (event.lengthComputable) {
-            const percent = Math.round(event.loaded / event.total * 100);
+            const percent = Math.round((event.loaded / event.total) * 100);
             progress({ message: `Uploading ${percent}%` });
         }
     };
diff --git a/src/app/redux/stateCleaner.js b/src/app/redux/stateCleaner.js
index 7df4231770b160c6a56e94b8a5d855cb5c547cc6..c6f9c9788f63bd4062f8f791a93252a5a9b60f98 100644
--- a/src/app/redux/stateCleaner.js
+++ b/src/app/redux/stateCleaner.js
@@ -2,12 +2,12 @@ import GDPRUserList from '../utils/GDPRUserList';
 
 const accountsToRemove = GDPRUserList;
 
-const gdprFilterAccounts = stateAccounts => {
+const gdprFilterAccounts = (stateAccounts) => {
     if (stateAccounts === undefined) {
         return [];
     }
     return Object.keys(stateAccounts)
-        .filter(name => !accountsToRemove.includes(name))
+        .filter((name) => !accountsToRemove.includes(name))
         .reduce(
             (acc, cur) => ({
                 ...acc,
@@ -17,16 +17,14 @@ const gdprFilterAccounts = stateAccounts => {
         );
 };
 
-const gdprFilterContent = stateContent => {
+const gdprFilterContent = (stateContent) => {
     if (stateContent === undefined) {
         return [];
     }
-    const contentToRemove = Object.keys(stateContent).filter(key =>
-        accountsToRemove.includes(stateContent[key].author)
-    );
+    const contentToRemove = Object.keys(stateContent).filter((key) => accountsToRemove.includes(stateContent[key].author));
 
     const contentToKeep = Object.keys(stateContent).filter(
-        key => !accountsToRemove.includes(stateContent[key].author)
+        (key) => !accountsToRemove.includes(stateContent[key].author)
     );
 
     // First, remove content authored by GDPR users.
@@ -44,9 +42,7 @@ const gdprFilterContent = stateContent => {
             ...acc,
             [cur]: {
                 ...removedByAuthor[cur],
-                replies: removedByAuthor[cur].replies.filter(
-                    url => !contentToRemove.includes(url)
-                ),
+                replies: removedByAuthor[cur].replies.filter((url) => !contentToRemove.includes(url)),
             },
         }),
         {}
diff --git a/src/app/redux/tests/global.test.js b/src/app/redux/tests/global.test.js
index b1631faaea9cfe62ef83b9d1b4f8cacc27d427b2..6578161b365345c9e00c2e9cacb514c191dcdc5c 100644
--- a/src/app/redux/tests/global.test.js
+++ b/src/app/redux/tests/global.test.js
@@ -1,3 +1,5 @@
+/*eslint global-require: "warn"*/
+// eslint-disable-next-line no-unused-vars
 /*global describe, it, before, beforeEach, after, afterEach */
 import Immutable from 'immutable';
 import reducer, * as globalActions from '../GlobalReducer';
diff --git a/src/app/utils/AppPropTypes.js b/src/app/utils/AppPropTypes.js
index 62f083fb99e2ef11a4e2e498613a1a58a74c70a2..5c191fa56a5b0f53faba75e391c4826da603c265 100644
--- a/src/app/utils/AppPropTypes.js
+++ b/src/app/utils/AppPropTypes.js
@@ -1,8 +1,5 @@
 import PropTypes from 'prop-types';
 
-const Children = PropTypes.oneOfType([
-    PropTypes.arrayOf(PropTypes.node),
-    PropTypes.node,
-]);
+const Children = PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]);
 
 export default { Children };
diff --git a/src/app/utils/BrowserTests.js b/src/app/utils/BrowserTests.js
index 58d080d1e206906fff5281d877950b81193b1023..07c73994ab57ab444984a44d9f9713d1d7179d15 100644
--- a/src/app/utils/BrowserTests.js
+++ b/src/app/utils/BrowserTests.js
@@ -5,6 +5,7 @@ import { config } from '@hiveio/hive-js';
 
 export const browserTests = {};
 
+// eslint-disable-next-line consistent-return
 export default function runTests() {
     let rpt = '';
     let pass = true;
@@ -23,9 +24,7 @@ export default function runTests() {
 
     let private_key, public_key;
     const wif = '5JdeC9P7Pbd1uGdFVEsJ41EkEnADbbHGq6p1BwFxm6txNBsQnsw';
-    const pubkey =
-        config.get('address_prefix') +
-        '8m5UgaFAAYQRuaNejYdS8FVLVp9Ss3K1qAVk5de6F8s3HnVbvA';
+    const pubkey = config.get('address_prefix') + '8m5UgaFAAYQRuaNejYdS8FVLVp9Ss3K1qAVk5de6F8s3HnVbvA';
 
     it('create private key', () => {
         private_key = PrivateKey.fromSeed('1');
diff --git a/src/app/utils/CanonicalLinker.js b/src/app/utils/CanonicalLinker.js
index 2ba9f195e3c88722f0e15251e6410a16d181bae0..986d61ae90d5e36e6a9b10185c2af2a987fc6d7a 100644
--- a/src/app/utils/CanonicalLinker.js
+++ b/src/app/utils/CanonicalLinker.js
@@ -1,19 +1,13 @@
 import Apps from '@hiveio/hivescript/apps.json';
 
 function read_md_app(metadata) {
-    return metadata &&
-        metadata.app &&
-        typeof metadata.app === 'string' &&
-        metadata.app.split('/').length === 2
+    return metadata && metadata.app && typeof metadata.app === 'string' && metadata.app.split('/').length === 2
         ? metadata.app.split('/')[0]
         : null;
 }
 
 function read_md_canonical(metadata) {
-    const url =
-        metadata.canonical_url && typeof metadata.canonical_url === 'string'
-            ? metadata.canonical_url
-            : null;
+    const url = metadata.canonical_url && typeof metadata.canonical_url === 'string' ? metadata.canonical_url : null;
 
     const saneUrl = new RegExp(/^https?:\/\//);
     return saneUrl.test(url) ? url : null;
@@ -41,11 +35,12 @@ function allowed_app(app) {
         'ecency',
         'steempeak',
         'travelfeed',
-        'leofinance'
+        'leofinance',
     ];
     return whitelist.includes(app);
 }
 
+// eslint-disable-next-line import/prefer-default-export
 export function makeCanonicalLink(post, metadata) {
     let scheme;
 
@@ -60,6 +55,6 @@ export function makeCanonicalLink(post, metadata) {
         }
     }
 
-    if (!scheme) scheme = Apps['hiveblog'].url_scheme;
+    if (!scheme) scheme = Apps.hiveblog.url_scheme;
     return build_scheme(scheme, post);
 }
diff --git a/src/app/utils/CanonicalLinker.test.js b/src/app/utils/CanonicalLinker.test.js
index 7119dfb8bf0cbfb6b0fdfc475c97842364b77138..a2e54335ad08f5625fda06ab57659c625113a41e 100644
--- a/src/app/utils/CanonicalLinker.test.js
+++ b/src/app/utils/CanonicalLinker.test.js
@@ -13,11 +13,7 @@ describe('makeCanonicalLink', () => {
             { ...post_data, json_metadata: {} },
             'https://hive.blog/testing/@test/test-post',
         ],
-        [
-            'handles posts without app',
-            { ...post_data, json_metadata: {} },
-            'https://hive.blog/testing/@test/test-post',
-        ],
+        ['handles posts without app', { ...post_data, json_metadata: {} }, 'https://hive.blog/testing/@test/test-post'],
         [
             'handles empty strings as app',
             { ...post_data, json_metadata: { app: '' } },
@@ -54,7 +50,7 @@ describe('makeCanonicalLink', () => {
             'https://hive.blog/testing/@test/test-post',
         ],
     ];
-    test_cases.forEach(v => {
+    test_cases.forEach((v) => {
         it(v[0], () => {
             expect(makeCanonicalLink(v[1], v[1].json_metadata)).toBe(v[2]);
         });
diff --git a/src/app/utils/ChainValidation.js b/src/app/utils/ChainValidation.js
index 3ae399a278eec08d31f8da4e49088a4475e1b836..bb71b6f89274ee7d52b4a700606e4a43b92f2f3e 100644
--- a/src/app/utils/ChainValidation.js
+++ b/src/app/utils/ChainValidation.js
@@ -1,13 +1,14 @@
 import tt from 'counterpart';
 import BadActorList from 'app/utils/BadActorList';
 
+// eslint-disable-next-line import/prefer-default-export
 export function validate_account_name(value) {
-    let i, label, len, length, ref;
+    let i, label, len;
 
     if (!value) {
         return tt('chainvalidation_js.account_name_should_not_be_empty');
     }
-    length = value.length;
+    const { length } = value;
     if (length < 3) {
         return tt('chainvalidation_js.account_name_should_be_longer');
     }
@@ -17,33 +18,23 @@ export function validate_account_name(value) {
     if (BadActorList.includes(value)) {
         return tt('chainvalidation_js.badactor');
     }
-    ref = value.split('.');
-    for (i = 0, len = ref.length; i < len; i++) {
+    const ref = value.split('.');
+    for (i = 0, len = ref.length; i < len; i += 1) {
         label = ref[i];
         if (!/^[a-z]/.test(label)) {
-            return tt(
-                'chainvalidation_js.each_account_segment_should_start_with_a_letter'
-            );
+            return tt('chainvalidation_js.each_account_segment_should_start_with_a_letter');
         }
         if (!/^[a-z0-9-]*$/.test(label)) {
-            return tt(
-                'chainvalidation_js.each_account_segment_should_have_only_letters_digits_or_dashes'
-            );
+            return tt('chainvalidation_js.each_account_segment_should_have_only_letters_digits_or_dashes');
         }
         if (/--/.test(label)) {
-            return tt(
-                'chainvalidation_js.each_account_segment_should_have_only_one_dash_in_a_row'
-            );
+            return tt('chainvalidation_js.each_account_segment_should_have_only_one_dash_in_a_row');
         }
         if (!/[a-z0-9]$/.test(label)) {
-            return tt(
-                'chainvalidation_js.each_account_segment_should_end_with_a_letter_or_digit'
-            );
+            return tt('chainvalidation_js.each_account_segment_should_end_with_a_letter_or_digit');
         }
         if (!(label.length >= 3)) {
-            return tt(
-                'chainvalidation_js.each_account_segment_should_be_longer'
-            );
+            return tt('chainvalidation_js.each_account_segment_should_be_longer');
         }
     }
     return null;
diff --git a/src/app/utils/Community.js b/src/app/utils/Community.js
index 5a67c9efd9af642086ed4914329becbecf9b0940..40e1722420670a6282a440dbee3791a7197a349e 100644
--- a/src/app/utils/Community.js
+++ b/src/app/utils/Community.js
@@ -1,7 +1,7 @@
 export class Role {
     static LEVELS = ['muted', 'guest', 'member', 'mod', 'admin', 'owner'];
 
-    static level = role => {
+    static level = (role) => {
         if (!role) throw 'empty role provided';
         const level = Role.LEVELS.indexOf(role);
         if (level == -1) throw 'invalid role: ' + role;
@@ -26,7 +26,7 @@ export class Role {
         return Role.atLeast(role, minRole);
     };
 
-    static parseType = name => {
+    static parseType = (name) => {
         return parseInt(name[5]);
     };
 }
diff --git a/src/app/utils/ConsoleExports.js b/src/app/utils/ConsoleExports.js
index 5969cea459390ec2ef6cbcad05c87fa878be8028..97b3237d2f2d4898bb1276c64d4ff236b28dd9dc 100644
--- a/src/app/utils/ConsoleExports.js
+++ b/src/app/utils/ConsoleExports.js
@@ -1,8 +1,6 @@
+/*eslint global-require: "warn"*/
 import {
-    PrivateKey,
-    PublicKey,
-    Aes,
-    key_utils,
+ PrivateKey, PublicKey, Aes, key_utils
 } from '@hiveio/hive-js/lib/auth/ecc';
 
 // import secureRandom from 'secure-random'
@@ -17,21 +15,21 @@ module.exports = {
 
     // Run once to start, then again to stop and print a report
     // https://facebook.github.io/react/docs/perf.html
-    perf: () => {
-        const Perf = require('react-addons-perf');
-        if (perfStarted) {
-            Perf.stop();
-            const lm = Perf.getLastMeasurements();
-            Perf.printInclusive(lm);
-            Perf.printExclusive(lm);
-            Perf.printWasted(lm);
-            perfStarted = false;
-        } else {
-            Perf.start();
-            perfStarted = true;
-        }
-        return Perf;
-    },
+    // perf: () => {
+    //     const Perf = require('react-addons-perf');
+    //     if (perfStarted) {
+    //         Perf.stop();
+    //         const lm = Perf.getLastMeasurements();
+    //         Perf.printInclusive(lm);
+    //         Perf.printExclusive(lm);
+    //         Perf.printWasted(lm);
+    //         perfStarted = false;
+    //     } else {
+    //         Perf.start();
+    //         perfStarted = true;
+    //     }
+    //     return Perf;
+    // },
 
     resolve: (object, atty = '_') => {
         if (!object.then) {
@@ -40,12 +38,12 @@ module.exports = {
         }
         return new Promise((resolve, reject) => {
             object
-                .then(result => {
+                .then((result) => {
                     console.log(result);
                     resolve(result);
                     window[atty] = result;
                 })
-                .catch(error => {
+                .catch((error) => {
                     console.error('resolve_err', error);
                     reject(error);
                     window[atty] = error;
@@ -53,11 +51,13 @@ module.exports = {
         });
     },
 
-    init: context => {
+    init: (context) => {
         if (!context) return;
+        // eslint-disable-next-line no-restricted-syntax
         for (const obj in module.exports) {
-            if (obj === 'init') continue;
-            context[obj] = module.exports[obj];
+            if (obj !== 'init') {
+                context[obj] = module.exports[obj];
+            }
         }
     },
 
@@ -72,4 +72,5 @@ module.exports = {
     // },
 };
 
-let perfStarted = false;
+// eslint-disable-next-line no-unused-vars
+const perfStarted = false;
diff --git a/src/app/utils/ContentPreview.js b/src/app/utils/ContentPreview.js
index 6ccbec67396d9b082cf2985e0ca9d94f2919c279..fb17e42508af80395fe4b623f84efe0e10898dff 100644
--- a/src/app/utils/ContentPreview.js
+++ b/src/app/utils/ContentPreview.js
@@ -3,11 +3,11 @@ export default function contentPreview(content, length) {
     const max_words = length / 7;
     let words = 0;
     let res = '';
-    for (let i = 0; i < txt.length; i++) {
+    for (let i = 0; i < txt.length; i += 1) {
         const ch = txt.charAt(i);
         if (ch === '.') break;
         if (ch === ' ' || ch === '\n') {
-            words++;
+            words += 1;
             if (words > max_words) break;
             if (i > length) break;
         }
diff --git a/src/app/utils/CrossPosts.js b/src/app/utils/CrossPosts.js
index e7148adff7a2dd9e19be6d5d0e2ea381c258241a..7463bd9fb38ba3f7db05a9a6fa371fd13b299f85 100644
--- a/src/app/utils/CrossPosts.js
+++ b/src/app/utils/CrossPosts.js
@@ -11,23 +11,24 @@ export async function fetchCrossPosts(posts, observer) {
     if (Array.isArray(posts)) {
         for (let idx = 0; idx < posts.length; idx += 1) {
             const post = posts[idx];
-            if (!post || !post.body) continue;
-            const crossPostMatches = crossPostRegex.exec(post.body);
+            if (post && post.body) {
+                const crossPostMatches = crossPostRegex.exec(post.body);
 
-            if (crossPostMatches) {
-                const [, crossPostAuthor, crossPostPermlink] = crossPostMatches;
-                const crossPostParams = {
-                    author: crossPostAuthor,
-                    permlink: crossPostPermlink,
-                    observer,
-                };
-                crossPostPromises.push(callBridge('get_post', crossPostParams));
-                post.cross_post_key = `${crossPostAuthor}/${crossPostPermlink}`;
-            }
+                if (crossPostMatches) {
+                    const [, crossPostAuthor, crossPostPermlink] = crossPostMatches;
+                    const crossPostParams = {
+                        author: crossPostAuthor,
+                        permlink: crossPostPermlink,
+                        observer,
+                    };
+                    crossPostPromises.push(callBridge('get_post', crossPostParams));
+                    post.cross_post_key = `${crossPostAuthor}/${crossPostPermlink}`;
+                }
 
-            const key = post.author + '/' + post.permlink;
-            content[key] = post;
-            keys.push(key);
+                const key = post.author + '/' + post.permlink;
+                content[key] = post;
+                keys.push(key);
+            }
         }
     }
 
diff --git a/src/app/utils/DMCAList.js b/src/app/utils/DMCAList.js
index 92d398d1601ab2c3b78e80066e5f927e4353a203..86d0ce950e17df6916aff77a8017b07ee4932f33 100644
--- a/src/app/utils/DMCAList.js
+++ b/src/app/utils/DMCAList.js
@@ -348,6 +348,7 @@ export default `
 /foto/@tonyj28/cae-preso-en-ee-uu-hermano-de-viviana-gibelli-por-lavado-de-dinero
 /coins/@manojsharma/cashman-casino-free-coins-get-100-bonus-coins-android-ios-2018
 /financials/@sfrj/vertical-common-size-analysis-of-financial-statements
+/technology/@samuel2009/dial-coinbase-customer-service-1
 `
     .trim()
     .split('\n');
diff --git a/src/app/utils/DomUtils.js b/src/app/utils/DomUtils.js
index d61cb26231040113e74b91593a12269c887931de..40d004cf143a207a219103222768c032360652cf 100644
--- a/src/app/utils/DomUtils.js
+++ b/src/app/utils/DomUtils.js
@@ -1,10 +1,5 @@
 export function findParent(el, class_name) {
-    if (
-        el.className &&
-        el.className.indexOf &&
-        el.className.indexOf(class_name) !== -1
-    )
-        return el;
+    if (el.className && el.className.indexOf && el.className.indexOf(class_name) !== -1) return el;
     if (el.parentNode) return findParent(el.parentNode, class_name);
     return null;
 }
@@ -21,12 +16,11 @@ export function getViewportDimensions(w) {
     if (w.innerWidth != null) return { w: w.innerWidth, h: w.innerHeight };
 
     // For IE (or any browser) in Standards mode
-    var d = w.document;
-    if (document.compatMode == 'CSS1Compat')
-        return {
+    const d = w.document;
+    if (document.compatMode == 'CSS1Compat') { return {
             w: d.documentElement.clientWidth,
             h: d.documentElement.clientHeight,
-        };
+        }; }
 
     // For browsers in Quirks mode
     return { w: d.body.clientWidth, h: d.body.clientHeight };
diff --git a/src/app/utils/ExtractContent.js b/src/app/utils/ExtractContent.js
index c31203b0eea385da03f91863ee9077702f6ad094..476146474cb8c4f5bb16e35d2c3b28cd8b082867 100644
--- a/src/app/utils/ExtractContent.js
+++ b/src/app/utils/ExtractContent.js
@@ -7,7 +7,7 @@ import _ from 'lodash';
 
 const remarkable = new Remarkable({ html: true, linkify: false });
 
-const getValidImage = array => {
+const getValidImage = (array) => {
     return array && Array.isArray(array) && array.length >= 1 && typeof array[0] === 'string' ? array[0] : null;
 };
 
@@ -37,7 +37,9 @@ export function extractImageLink(json_metadata, body = null) {
 
     try {
         image_link = jsonImage ? getValidImage(Array.from(jsonImage)) : null;
-    } catch (error) {}
+    } catch (error) {
+        // Nothing
+    }
 
     // If nothing found in json metadata, parse body and check images/links
     if (!image_link) {
@@ -72,6 +74,7 @@ export function extractBodySummary(body, stripQuotes = false) {
     desc = desc.replace(/https?:\/\/[^\s]+/g, '');
 
     // Grab only the first line (not working as expected. does rendering/sanitizing strip newlines?)
+    // eslint-disable-next-line prefer-destructuring
     desc = desc.trim().split('\n')[0];
 
     if (desc.length > 200) {
@@ -81,7 +84,7 @@ export function extractBodySummary(body, stripQuotes = false) {
         desc = desc
             .substring(0, 180)
             .trim()
-            .replace(/[,!\?]?\s+[^\s]+$/, '…');
+            .replace(/[,!?]?\s+[^\s]+$/, '…');
     }
 
     return desc;
diff --git a/src/app/utils/ExtractMeta.js b/src/app/utils/ExtractMeta.js
index 6ebb52404f51a0404469562db3746ab7d17905ec..4a5f6d296aa9147dbbd015e2c58f953387a51813 100644
--- a/src/app/utils/ExtractMeta.js
+++ b/src/app/utils/ExtractMeta.js
@@ -1,15 +1,11 @@
-import {
-    getPostSummary,
-    extractBodySummary,
-    extractImageLink,
-} from 'app/utils/ExtractContent';
+/* global $STM_Config */
+import { getPostSummary, extractImageLink } from 'app/utils/ExtractContent';
 import { makeCanonicalLink } from 'app/utils/CanonicalLinker.js';
 import { proxifyImageUrl } from 'app/utils/ProxifyUrl';
 
 const proxify = (url, size) => proxifyImageUrl(url, size).replace(/ /g, '%20');
 
-const site_desc =
-    'Communities without borders. A social network owned and operated by its users, powered by Hive.';
+const site_desc = 'Communities without borders. A social network owned and operated by its users, powered by Hive.';
 
 function addSiteMeta(metas) {
     metas.push({ title: 'Hive' });
@@ -35,12 +31,13 @@ function addSiteMeta(metas) {
 
 function addPostMeta(metas, content, profile) {
     const { profile_image } = profile;
-    const { category, created, body, json_metadata } = content;
+    const {
+ category, created, body, json_metadata
+} = content;
     const isReply = content.depth > 0;
 
     const title = content.title + ' — Hive';
-    const desc =
-        getPostSummary(json_metadata, body, isReply) + ' by ' + content.author;
+    const desc = getPostSummary(json_metadata, body, isReply) + ' by ' + content.author;
     const image_link = extractImageLink(json_metadata, body);
 
     const canonicalUrl = makeCanonicalLink(content, json_metadata);
@@ -58,9 +55,7 @@ function addPostMeta(metas, content, profile) {
     metas.push({ name: 'og:url', content: localUrl });
     metas.push({
         name: 'og:image',
-        content:
-            proxify(image, '1200x630') ||
-            'https://hive.blog/images/hive-blog-share.png',
+        content: proxify(image, '1200x630') || 'https://hive.blog/images/hive-blog-share.png',
     });
     metas.push({ name: 'og:description', content: desc });
     metas.push({ name: 'og:site_name', content: 'Hive' });
@@ -81,9 +76,7 @@ function addPostMeta(metas, content, profile) {
     metas.push({ name: 'twitter:description', content: desc });
     metas.push({
         name: 'twitter:image',
-        content:
-            proxify(image, '1200x630') ||
-            'https://hive.blog/images/hive-blog-twshare.png',
+        content: proxify(image, '1200x630') || 'https://hive.blog/images/hive-blog-twshare.png',
     });
 }
 
@@ -92,14 +85,11 @@ function addAccountMeta(metas, accountname, profile) {
 
     name = name || accountname;
     about = about || 'Hive: Communities Without Borders.';
-    profile_image =
-        profile_image || 'https://hive.blog/images/hive-blog-twshare.png';
+    profile_image = profile_image || 'https://hive.blog/images/hive-blog-twshare.png';
 
     // Set profile tags
     const title = `@${accountname}`;
-    const desc = `The latest posts from ${name}. Follow me at @${
-        accountname
-    }. ${about}`;
+    const desc = `The latest posts from ${name}. Follow me at @${accountname}. ${about}`;
 
     // Standard meta
     metas.push({ name: 'description', content: desc });
@@ -114,7 +104,7 @@ function addAccountMeta(metas, accountname, profile) {
 
 function readProfile(chain_data, account) {
     if (!chain_data.profiles[account]) return {};
-    return chain_data.profiles[account]['metadata']['profile'];
+    return chain_data.profiles[account].metadata.profile;
 }
 
 export default function extractMeta(chain_data, rp) {
diff --git a/src/app/utils/FormatCoins.js b/src/app/utils/FormatCoins.js
index d8545865bc89dedb6a43fb9f705dd6c4d3e18a06..875076ec4ef6ff044cdd8376b7b0cf24ea832510 100644
--- a/src/app/utils/FormatCoins.js
+++ b/src/app/utils/FormatCoins.js
@@ -1,8 +1,6 @@
 import {
-    APP_NAME,
     LIQUID_TOKEN,
     LIQUID_TOKEN_UPPERCASE,
-    DEBT_TOKEN,
     DEBT_TOKEN_SHORT,
     CURRENCY_SIGN,
     VESTING_TOKEN,
@@ -11,6 +9,7 @@ import {
 // TODO add comments and explanations
 // TODO change name to formatCoinTypes?
 // TODO make use of DEBT_TICKER etc defined in config/clietn_config
+// eslint-disable-next-line import/prefer-default-export
 export function formatCoins(string) {
     // return null or undefined if string is not provided
     if (!string) return string;
diff --git a/src/app/utils/FormatDecimal.test.js b/src/app/utils/FormatDecimal.test.js
index 0d8a10e5cf491e751bb6226a8b3da5da3a30a6ec..d3124cbb9c5270afa526ca47abed836a9ba849ca 100644
--- a/src/app/utils/FormatDecimal.test.js
+++ b/src/app/utils/FormatDecimal.test.js
@@ -14,7 +14,7 @@ describe('formatDecimal', () => {
             [5.0, '5.00'],
             [5, '5.00'],
         ];
-        test_cases.forEach(v => {
+        test_cases.forEach((v) => {
             expect(formatDecimal(v[0]).join('')).toBe(v[1]);
         });
     });
diff --git a/src/app/utils/FrontendLogger.js b/src/app/utils/FrontendLogger.js
index d1cb163249a394a5828bf45d63e6f68c236d183c..de395fd663183546ad39eaa50aac9cb4589291d0 100644
--- a/src/app/utils/FrontendLogger.js
+++ b/src/app/utils/FrontendLogger.js
@@ -11,11 +11,7 @@ import { serverApiRecordEvent } from 'app/utils/ServerApiClient';
  */
 export default function frontendLogger(event) {
     if (window.$STM_csrf) {
-        const report = formatEventReport(
-            event,
-            window.location.href,
-            process.env.VERSION
-        );
+        const report = formatEventReport(event, window.location.href, process.env.VERSION);
         serverApiRecordEvent('client_error', report);
     }
 }
@@ -30,10 +26,7 @@ export default function frontendLogger(event) {
  * @return {object}
  */
 export function formatEventReport(event, href, version) {
-    const trace =
-        typeof event.error === 'object' &&
-        event.error !== null &&
-        typeof event.error.stack === 'string'
+    const trace = typeof event.error === 'object' && event.error !== null && typeof event.error.stack === 'string'
             ? event.error.stack
             : false;
     return {
diff --git a/src/app/utils/FrontendLogger.test.js b/src/app/utils/FrontendLogger.test.js
index 8b62ffa0b56b7f29dae8e987a35da01a2fb3dad6..2d15bb1ef14d26118e2aa6538d424d3280825915 100644
--- a/src/app/utils/FrontendLogger.test.js
+++ b/src/app/utils/FrontendLogger.test.js
@@ -9,11 +9,7 @@ describe('formatEventReport', () => {
             message: 'i am a message',
         };
 
-        const logged = formatEventReport(
-            modernErrorEvent,
-            'location',
-            'version'
-        );
+        const logged = formatEventReport(modernErrorEvent, 'location', 'version');
 
         expect(logged.trace).toEqual('i am a stacktrace');
         expect(logged.message).toEqual('i am a message');
diff --git a/src/app/utils/GptUtils.js b/src/app/utils/GptUtils.js
index 7cef4fabffe613b8e755816c7f89f1547087ce98..359c53353a0f556de509ea53284dc698041c45e1 100644
--- a/src/app/utils/GptUtils.js
+++ b/src/app/utils/GptUtils.js
@@ -30,6 +30,7 @@ class GptUtils {
      * @returns {boolean}
      */
     static HasBannedTags(tags = [], bannedTags) {
+        // eslint-disable-next-line no-restricted-syntax
         for (const tag of tags) {
             if (bannedTags.indexOf(tag) != -1) {
                 return true;
@@ -39,4 +40,5 @@ class GptUtils {
     }
 }
 
+// eslint-disable-next-line import/prefer-default-export
 export { GptUtils };
diff --git a/src/app/utils/HiveKeychain.js b/src/app/utils/HiveKeychain.js
index cff0bb81c6726c1cb2085fa260ffe6b8df0e2315..678fb503f59d0776c8c98fe53545a4da0bbc7a25 100644
--- a/src/app/utils/HiveKeychain.js
+++ b/src/app/utils/HiveKeychain.js
@@ -6,10 +6,10 @@ import { isLoggedIn, extractLoginData } from 'app/utils/UserUtil';
  */
 export function hasCompatibleKeychain() {
     return (
-        window.hive_keychain &&
-        window.hive_keychain.requestSignBuffer &&
-        window.hive_keychain.requestBroadcast &&
-        window.hive_keychain.requestSignedCall
+        window.hive_keychain
+        && window.hive_keychain.requestSignBuffer
+        && window.hive_keychain.requestBroadcast
+        && window.hive_keychain.requestSignedCall
     );
 }
 
@@ -26,12 +26,6 @@ export function isLoggedInWithKeychain() {
         return false;
     }
     const data = localStorage.getItem('autopost2');
-    const [
-        username,
-        password,
-        memoWif,
-        login_owner_pubkey,
-        login_with_keychain,
-    ] = extractLoginData(data);
+    const [, , , , login_with_keychain] = extractLoginData(data);
     return !!login_with_keychain;
 }
diff --git a/src/app/utils/HiveSigner.js b/src/app/utils/HiveSigner.js
index a7b1f45431f046616d838ca33d6ba05c242e5978..6ace83c22e316112a43d649dbcaf4fa286f1db5a 100644
--- a/src/app/utils/HiveSigner.js
+++ b/src/app/utils/HiveSigner.js
@@ -5,9 +5,7 @@ import { encodeOps } from 'hive-uri';
 
 const isBrowser = () => typeof window !== 'undefined' && window;
 
-const HOST_URL = isBrowser()
-    ? window.location.protocol + '//' + window.location.host
-    : APP_URL;
+const HOST_URL = isBrowser() ? window.location.protocol + '//' + window.location.host : APP_URL;
 
 const HIVE_SIGNER_URL = 'https://hivesigner.com';
 
@@ -26,22 +24,11 @@ export function isLoggedInWithHiveSigner() {
         return false;
     }
     const data = localStorage.getItem('autopost2');
-    const [
-        username,
-        password,
-        memoWif,
-        login_owner_pubkey,
-        login_with_keychain,
-        login_with_hive_signer,
-    ] = extractLoginData(data);
+    const [, , , , , login_with_hive_signer] = extractLoginData(data);
     return !!login_with_hive_signer;
 }
 
-export const setHiveSignerAccessToken = (
-    username,
-    access_token,
-    expires_in
-) => {
+export const setHiveSignerAccessToken = (username, access_token) => {
     // set access token for Hive Signer
     console.log(`HiveSigner: set access token for @${username}`);
     hiveSignerClient.setAccessToken(access_token);
diff --git a/src/app/utils/Html.js b/src/app/utils/Html.js
index 4ecc1fd92cbb64c3015648a5594151152b795f47..4e71943ee68bc8023bf0b4b4d34d4c62e8c8f4fa 100644
--- a/src/app/utils/Html.js
+++ b/src/app/utils/Html.js
@@ -1,5 +1,5 @@
-export const htmlDecode = txt =>
-    txt.replace(/&[a-z]+;/g, ch => {
+// eslint-disable-next-line import/prefer-default-export
+export const htmlDecode = (txt) => txt.replace(/&[a-z]+;/g, (ch) => {
         const char = htmlCharMap[ch.substring(1, ch.length - 1)];
         return char ? char : ch;
     });
diff --git a/src/app/utils/JsPlugins.js b/src/app/utils/JsPlugins.js
index b5d95e7c15998092ec7222fe30df4606eb20d525..c38234287a46c05d6c90833dd8b3de195b0bacde 100644
--- a/src/app/utils/JsPlugins.js
+++ b/src/app/utils/JsPlugins.js
@@ -1,12 +1,12 @@
+/* eslint-disable */
 // 3rd party plugins
 
 export default function init(config) {
     if (config.google_analytics_id) {
-        (function(i, s, o, g, r, a, m) {
-            i['GoogleAnalyticsObject'] = r;
-            (i[r] =
-                i[r] ||
-                function() {
+        (function (i, s, o, g, r, a, m) {
+            i.GoogleAnalyticsObject = r;
+            (i[r] = i[r]
+                || function () {
                     (i[r].q = i[r].q || []).push(arguments);
                 }),
                 (i[r].l = 1 * new Date());
@@ -14,13 +14,7 @@ export default function init(config) {
             a.async = 1;
             a.src = g;
             m.parentNode.insertBefore(a, m);
-        })(
-            window,
-            document,
-            'script',
-            'https://www.google-analytics.com/analytics.js',
-            'ga'
-        );
+        }(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'));
         ga('create', {
             trackingId: config.google_analytics_id,
             cookieDomain: 'auto',
diff --git a/src/app/utils/Links.js b/src/app/utils/Links.js
index b6982c96b3908d07d6b82062aeea161acb6edf00..fd415a083e26dd0e0d1b1438c2c656a96f59cd6f 100644
--- a/src/app/utils/Links.js
+++ b/src/app/utils/Links.js
@@ -2,31 +2,22 @@ import { PARAM_VIEW_MODE, VIEW_MODE_WHISTLE } from '../../shared/constants';
 
 const urlChar = '[^\\s"<>\\]\\[\\(\\)]';
 const urlCharEnd = urlChar.replace(/\]$/, ".,']"); // insert bad chars to end on
-const imagePath =
-    '(?:(?:\\.(?:tiff?|jpe?g|gif|png|svg|ico)|ipfs/[a-z\\d]{40,}))';
+const imagePath = '(?:(?:\\.(?:tiff?|jpe?g|gif|png|svg|ico)|ipfs/[a-z\\d]{40,}))';
 const domainPath = '(?:[-a-zA-Z0-9\\._]*[-a-zA-Z0-9])';
 const urlChars = '(?:' + urlChar + '*' + urlCharEnd + ')?';
 
 const urlSet = ({ domain = domainPath, path } = {}) => {
     // urlChars is everything but html or markdown stop chars
-    return `https?:\/\/${domain}(?::\\d{2,5})?(?:[/\\?#]${urlChars}${
-        path ? path : ''
-    })${path ? '' : '?'}`;
+    return `https?://${domain}(?::\\d{2,5})?(?:[/\\?#]${urlChars}${path ? path : ''})${path ? '' : '?'}`;
 };
 
 /**
     Unless your using a 'g' (glob) flag you can store and re-use your regular expression.  Use the cache below.  If your using a glob (for example: replace all), the regex object becomes stateful and continues where it left off when called with the same string so naturally the regexp object can't be cached for long.
 */
 export const any = (flags = 'i') => new RegExp(urlSet(), flags);
-export const local = (flags = 'i') =>
-    new RegExp(urlSet({ domain: '(?:localhost|(?:.*\\.)?hive.blog)' }), flags);
-export const remote = (flags = 'i') =>
-    new RegExp(
-        urlSet({ domain: `(?!localhost|(?:.*\\.)?hive.blog)${domainPath}` }),
-        flags
-    );
-export const image = (flags = 'i') =>
-    new RegExp(urlSet({ path: imagePath }), flags);
+export const local = (flags = 'i') => new RegExp(urlSet({ domain: '(?:localhost|(?:.*\\.)?hive.blog)' }), flags);
+export const remote = (flags = 'i') => new RegExp(urlSet({ domain: `(?!localhost|(?:.*\\.)?hive.blog)${domainPath}` }), flags);
+export const image = (flags = 'i') => new RegExp(urlSet({ path: imagePath }), flags);
 export const imageFile = (flags = 'i') => new RegExp(imagePath, flags);
 // export const nonImage = (flags = 'i') => new RegExp(urlSet({path: '!' + imageFile}), flags)
 // export const markDownImageRegExp = (flags = 'i') => new RegExp('\!\[[\w\s]*\]\(([^\)]+)\)', flags);
@@ -49,7 +40,7 @@ export default {
  * @returns {*}
  */
 export const addToParams = (outputParams, inputParams, key, allowedValues) => {
-    const respParams = Object.assign({}, outputParams);
+    const respParams = { ...outputParams };
     if (inputParams[key] && allowedValues.indexOf(inputParams[key]) > -1) {
         respParams[key] = inputParams[key];
     }
@@ -67,11 +58,7 @@ export const makeParams = (params, prefix) => {
         });
     }
     if (paramsList.length > 0) {
-        return (
-            (prefix !== false
-                ? typeof prefix === 'string' ? prefix : '?'
-                : '') + paramsList.join('&')
-        );
+        return (prefix !== false ? (typeof prefix === 'string' ? prefix : '?') : '') + paramsList.join('&');
     }
     return '';
 };
@@ -81,12 +68,9 @@ export const makeParams = (params, prefix) => {
  * @param {string} search - window.location.search formatted string (may omit '?')
  * @returns {string}
  */
-export const determineViewMode = search => {
-    const searchList =
-        search.indexOf('?') === 0
-            ? search.substr(1).split('&')
-            : search.split('&');
-    for (let i = 0; i < searchList.length; i++) {
+export const determineViewMode = (search) => {
+    const searchList = search.indexOf('?') === 0 ? search.substr(1).split('&') : search.split('&');
+    for (let i = 0; i < searchList.length; i += 1) {
         if (searchList[i].indexOf(PARAM_VIEW_MODE) === 0) {
             if (searchList[i] == PARAM_VIEW_MODE + '=' + VIEW_MODE_WHISTLE) {
                 //we only want to support known view modes.
@@ -103,17 +87,13 @@ export const determineViewMode = search => {
  * @param query
  * @returns {*}
  */
-export const getQueryStringParams = query => {
+export const getQueryStringParams = (query) => {
     return query
-        ? (/^[?#]/.test(query) ? query.slice(1) : query)
-              .split('&')
-              .reduce((params, param) => {
-                  let [key, value] = param.split('=');
-                  params[key] = value
-                      ? decodeURIComponent(value.replace(/\+/g, ' '))
-                      : '';
-                  return params;
-              }, {})
+        ? (/^[?#]/.test(query) ? query.slice(1) : query).split('&').reduce((params, param) => {
+              const [key, value] = param.split('=');
+              params[key] = value ? decodeURIComponent(value.replace(/\+/g, ' ')) : '';
+              return params;
+          }, {})
         : {};
 };
 
diff --git a/src/app/utils/Links.test.js b/src/app/utils/Links.test.js
index 35dedb1d5094253804a090a50b3efc38a2050aaf..e54a4c31ea8b9fad9999ca0da9c0db1e630fc993 100644
--- a/src/app/utils/Links.test.js
+++ b/src/app/utils/Links.test.js
@@ -140,14 +140,14 @@ describe('determineViewMode', () => {
 describe('Performance', () => {
     const largeData = secureRandom.randomBuffer(1024 * 10).toString('hex');
     it('any, ' + largeData.length + ' bytes x 10,000', () => {
-        for (let i = 0; i < 10000; i++) {
+        for (let i = 0; i < 10000; i += 1) {
             const match = (largeData + 'https://example.com').match(linksRe.any());
             assert(match, 'no match');
             assert(match[0] === 'https://example.com', 'no match');
         }
     });
     it('image (large), ' + largeData.length + ' bytes x 10,000', () => {
-        for (let i = 0; i < 10000; i++) {
+        for (let i = 0; i < 10000; i += 1) {
             matchNot(
                 linksRe.image(),
                 'https://lh3.googleusercontent.com/OehcduRZPcVIX_2tlOKgYHADtBvorTfL4JtjfGAPWZyiiI9p_g2ZKEUKfuv3By-aiVfirXaYvEsViJEbxts6IeVYqidnpgkkkXAe0Q79_ARXX6CU5hBK2sZaHKa20U3jBzYbMxT-OVNX8-JYf-GYa2geUQa6pVpUDY35iaiiNBObF-TMIUOqm0P61gCdukTFwLgld2BBlxoVNNt_w6VglYHJP0W4izVNkEu7ugrU-qf2Iw9hb22SGIFNpbzL_ldomDMthIuYfKSYGsqe2ClvNKRz-_vVCQr7ggRXra16uQOdUUv5IVnkK67p9yR8ioajJ4tiGdzazYVow46pbeZ76i9_NoEYnOEX2_a7niofnC5BgAjoQEeoes1cMWVM7V8ZSexBA-cxmi0EVLds4RBkInvaUZjVL7h3oJ5I19GugPTzlyVyYtkf1ej6LNttkagqHgMck87UQGvCbwDX9ECTngffwQPYZlZKnthW0DlkFGgHN8T9uqEpl-3ki50gTa6gC0Q16mEeDRKZe7_g5Sw52OjMsfWxmBBWWMSHzlQKKAIKMKKaD6Td0O_zpiXXp7Fyl7z_iESvCpOAUAIKnyJyF_Y0UYktEmw=w2066-h1377-no'
@@ -155,14 +155,14 @@ describe('Performance', () => {
         }
     });
     it('image, ' + largeData.length + ' bytes x 10,000', () => {
-        for (let i = 0; i < 10000; i++) {
+        for (let i = 0; i < 10000; i += 1) {
             const match = (largeData + 'https://example.com/img.jpeg').match(linksRe.image());
             assert(match, 'no match');
             assert(match[0] === 'https://example.com/img.jpeg', 'no match');
         }
     });
     it('remote, ' + largeData.length + ' bytes x 10,000', () => {
-        for (let i = 0; i < 10000; i++) {
+        for (let i = 0; i < 10000; i += 1) {
             const match = (largeData + 'https://example.com').match(linksRe.remote());
             assert(match, 'no match');
             assert(match[0] === 'https://example.com', 'no match');
@@ -239,13 +239,13 @@ describe('Performance', () => {
         );
         match(
             redditRegex.htmlReplacement,
-            '<blockquote class="reddit-card" data-card-created="1614855336"><a href="https://www.reddit.com/r/CryptoCurrency/comments/lxcmup/to_all_the_small_hodlers_keeping_your_coins_at_an/">To all the small hodlers, keeping your coins at an exchange might be the best thing for you</a> from <a href="http://www.reddit.com/r/CryptoCurrency">r/CryptoCurrency</a></blockquote>\n' +
-                '<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>'
+            '<blockquote class="reddit-card" data-card-created="1614855336"><a href="https://www.reddit.com/r/CryptoCurrency/comments/lxcmup/to_all_the_small_hodlers_keeping_your_coins_at_an/">To all the small hodlers, keeping your coins at an exchange might be the best thing for you</a> from <a href="http://www.reddit.com/r/CryptoCurrency">r/CryptoCurrency</a></blockquote>\n'
+                + '<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>'
         );
         match(
             redditRegex.htmlReplacement,
-            '<blockquote class="reddit-card" data-card-created="1614855336"><a href="https://www.reddit.com/r/CryptoCurrency/comments/lxcmup/to_all_the_small_hodlers_keeping_your_coins_at_an/">To all the small hodlers, keeping your coins at an exchange might be the best thing for you</a> from <a href="http://www.reddit.com/r/CryptoCurrency">r/CryptoCurrency</a></blockquote>\n' +
-                '<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>'
+            '<blockquote class="reddit-card" data-card-created="1614855336"><a href="https://www.reddit.com/r/CryptoCurrency/comments/lxcmup/to_all_the_small_hodlers_keeping_your_coins_at_an/">To all the small hodlers, keeping your coins at an exchange might be the best thing for you</a> from <a href="http://www.reddit.com/r/CryptoCurrency">r/CryptoCurrency</a></blockquote>\n'
+                + '<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>'
         );
     });
     it('spotify', () => {
@@ -310,7 +310,7 @@ const match = (...args) => compare(true, ...args);
 const matchNot = (...args) => compare(false, ...args);
 const compare = (matching, re, input, output = input, pos = 0) => {
     if (Array.isArray(input)) {
-        for (let i = 0; i < input.length; i++) compare(matching, re, input[i], output[i]);
+        for (let i = 0; i < input.length; i += 1) compare(matching, re, input[i], output[i]);
         return;
     }
     // console.log('compare, input', input)
diff --git a/src/app/utils/ParsersAndFormatters.js b/src/app/utils/ParsersAndFormatters.js
index 5150e7dbfa7a5c99ffcb1af7818b380753354341..6c2438fb9b9ecd1c3bb11d9042f5ae155fea463e 100644
--- a/src/app/utils/ParsersAndFormatters.js
+++ b/src/app/utils/ParsersAndFormatters.js
@@ -7,7 +7,8 @@ function fractional_part_len(value) {
 
 // FIXME this should be unit tested.. here is one bug: 501,695,.505
 export function formatDecimal(value, decPlaces = 2, truncate0s = true) {
-    let decSeparator, fl, i, j, sign, thouSeparator, abs_value;
+    let fl, j;
+    // eslint-disable-next-line no-void,no-restricted-globals
     if (value === null || value === void 0 || isNaN(value)) {
         return ['N', 'a', 'N'];
     }
@@ -16,23 +17,21 @@ export function formatDecimal(value, decPlaces = 2, truncate0s = true) {
         if (fl < 2) fl = 2;
         if (fl < decPlaces) decPlaces = fl;
     }
-    decSeparator = '.';
-    thouSeparator = ',';
-    sign = value < 0 ? '-' : '';
-    abs_value = Math.abs(value);
-    i = parseInt(abs_value.toFixed(decPlaces), 10) + '';
+    const decSeparator = '.';
+    const thouSeparator = ',';
+    const sign = value < 0 ? '-' : '';
+    const abs_value = Math.abs(value);
+    const i = parseInt(abs_value.toFixed(decPlaces), 10) + '';
     j = i.length;
     j = i.length > 3 ? j % 3 : 0;
     const decPart = decPlaces
-        ? decSeparator +
-          Math.abs(abs_value - i)
+        ? decSeparator
+          + Math.abs(abs_value - i)
               .toFixed(decPlaces)
               .slice(2)
         : '';
     return [
-        sign +
-            (j ? i.substr(0, j) + thouSeparator : '') +
-            i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thouSeparator),
+        sign + (j ? i.substr(0, j) + thouSeparator : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thouSeparator),
         decPart,
     ];
 }
@@ -53,15 +52,17 @@ function log10(str) {
     return n + (log - parseInt(log));
 }
 
-export const repLog10 = rep2 => {
+export const repLog10 = (rep2) => {
     if (rep2 == null) return rep2;
     let rep = String(rep2);
     const neg = rep.charAt(0) === '-';
     rep = neg ? rep.substring(1) : rep;
 
     let out = log10(rep);
+    // eslint-disable-next-line no-restricted-globals
     if (isNaN(out)) out = 0;
     out = Math.max(out - 9, 0); // @ -9, $0.50 earned is approx magnitude 1
+    // eslint-disable-next-line operator-assignment
     out = (neg ? -1 : 1) * out;
     out = out * 9 + 25; // 9 points per magnitude. center at 25
     // base-line 0 to darken and < 0 to auto hide (grep rephide)
@@ -72,12 +73,10 @@ export const repLog10 = rep2 => {
 export function countDecimals(amount) {
     if (amount == null) return amount;
     amount = String(amount)
-        .match(/[\d\.]+/g)
+        .match(/[\d.]+/g)
         .join(''); // just dots and digits
     const parts = amount.split('.');
-    return parts.length > 2
-        ? undefined
-        : parts.length === 1 ? 0 : parts[1].length;
+    return parts.length > 2 ? undefined : parts.length === 1 ? 0 : parts[1].length;
 }
 
 // this function searches for right translation of provided error (usually from back-end)
@@ -97,17 +96,11 @@ export function translateError(string) {
         case 'Account name should start with a letter.':
             return tt('g.account_name_should_start_with_a_letter');
         case 'Account name should have only letters, digits, periods or dashes.':
-            return tt(
-                'g.account_name_should_have_only_letters_digits_or_dashes'
-            );
+            return tt('g.account_name_should_have_only_letters_digits_or_dashes');
         case 'Only one Steem account allowed per IP address every 10 minutes':
-            return tt(
-                'g.only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes'
-            );
+            return tt('g.only_one_APP_NAME_account_allowed_per_ip_address_every_10_minutes');
         case 'Cannot increase reward of post within the last minute before payout':
-            return tt(
-                'g.cannot_increase_reward_of_post_within_the_last_minute_before_payout'
-            );
+            return tt('g.cannot_increase_reward_of_post_within_the_last_minute_before_payout');
         default:
             return string;
     }
diff --git a/src/app/utils/Phishing.js b/src/app/utils/Phishing.js
index ef635c8be6e3fd808c61119985ac3400e32fdc98..873e263995495b18360a657ee41fad5f93237704 100644
--- a/src/app/utils/Phishing.js
+++ b/src/app/utils/Phishing.js
@@ -90,10 +90,11 @@ const domains = [
  * @param {string} questionableUrl
  * @returns {boolean}
  */
-export const looksPhishy = questionableUrl => {
-    for (let domain of domains) {
-        if (questionableUrl.toLocaleLowerCase().indexOf(domain) > -1)
-            return true;
+// eslint-disable-next-line import/prefer-default-export
+export const looksPhishy = (questionableUrl) => {
+    // eslint-disable-next-line no-restricted-syntax
+    for (const domain of domains) {
+        if (questionableUrl.toLocaleLowerCase().indexOf(domain) > -1) return true;
     }
 
     return false;
diff --git a/src/app/utils/ProxifyUrl.js b/src/app/utils/ProxifyUrl.js
index 21945abf96a2cbca14599f73652b27b6d1bab6a4..5cd24e49cf8531e9e8ff3c46a988d407fc2fc554 100644
--- a/src/app/utils/ProxifyUrl.js
+++ b/src/app/utils/ProxifyUrl.js
@@ -43,9 +43,7 @@ export const proxifyImageUrl = (url, dimensions = false) => {
     if (dimensions && $STM_Config && $STM_Config.img_proxy_prefix) {
         let dims = dimensions + '/';
         if (typeof dimensions !== 'string') {
-            dims = proxyList
-                ? proxyList.shift().match(/([0-9]+x[0-9]+)\//g)[0]
-                : NATURAL_SIZE;
+            dims = proxyList ? proxyList.shift().match(/([0-9]+x[0-9]+)\//g)[0] : NATURAL_SIZE;
         }
 
         // NOTE: This forces the dimensions to be `CAPPED_SIZE` to save on
@@ -54,10 +52,7 @@ export const proxifyImageUrl = (url, dimensions = false) => {
             dims = CAPPED_SIZE;
         }
 
-        if (
-            (NATURAL_SIZE !== dims && CAPPED_SIZE !== dims) ||
-            !rProxyDomain.test(respUrl)
-        ) {
+        if ((NATURAL_SIZE !== dims && CAPPED_SIZE !== dims) || !rProxyDomain.test(respUrl)) {
             return $STM_Config.img_proxy_prefix + dims + respUrl;
         }
     }
diff --git a/src/app/utils/ProxifyUrl.test.js b/src/app/utils/ProxifyUrl.test.js
index 48921e55732df81d391375dcdcf6c2c4715c4367..81cd6d83e61e8cec53abc0af210bdc576345f720 100644
--- a/src/app/utils/ProxifyUrl.test.js
+++ b/src/app/utils/ProxifyUrl.test.js
@@ -1,3 +1,4 @@
+// eslint-disable-next-line no-unused-vars
 /*global describe, global, before:false, it*/
 import assert from 'assert';
 import { proxifyImageUrl } from './ProxifyUrl';
diff --git a/src/app/utils/ReactForm.js b/src/app/utils/ReactForm.js
index 4964b0d8c66a1275b228abc67d11118627deda14..be456acc0c33b85f788df29f21f1b34488f3a49e 100644
--- a/src/app/utils/ReactForm.js
+++ b/src/app/utils/ReactForm.js
@@ -1,3 +1,4 @@
+/*eslint no-multi-assign: "warn"*/
 /**
     @arg {string} name - form state will appear in this.state[name]
     @arg {object} instance - `this` for the component
@@ -6,18 +7,11 @@
     @arg {function} validation - values => ({ username: ! values.username ? 'Required' : null, ... })
 */
 export default function reactForm({
-    name,
-    instance,
-    fields,
-    initialValues,
-    validation = () => {},
+ name, instance, fields, initialValues, validation = () => {}
 }) {
-    if (typeof instance !== 'object')
-        throw new TypeError('instance is a required object');
-    if (!Array.isArray(fields))
-        throw new TypeError('fields is a required array');
-    if (typeof initialValues !== 'object')
-        throw new TypeError('initialValues is a required object');
+    if (typeof instance !== 'object') throw new TypeError('instance is a required object');
+    if (!Array.isArray(fields)) throw new TypeError('fields is a required array');
+    if (typeof initialValues !== 'object') throw new TypeError('initialValues is a required object');
 
     // Give API users access to this.props, this.state, this.etc..
     validation = validation.bind(instance);
@@ -25,7 +19,7 @@ export default function reactForm({
     const formState = (instance.state = instance.state || {});
     formState[name] = {
         // validate: () => setFormState(instance, fields, validation),
-        handleSubmit: submitCallback => event => {
+        handleSubmit: (submitCallback) => (event) => {
             event.preventDefault();
             const { valid } = setFormState(name, instance, fields, validation);
             if (!valid) return;
@@ -42,17 +36,18 @@ export default function reactForm({
 
             instance.setState({ [name]: fs }, () => {
                 // TODO, support promise ret
-                const ret =
-                    submitCallback({ data, event, updateInitialValues }) || {};
+                const ret = submitCallback({ data, event, updateInitialValues }) || {};
                 // Look for field level errors
+                // eslint-disable-next-line no-restricted-syntax
                 for (const fieldName of Object.keys(ret)) {
                     const error = ret[fieldName];
-                    if (!error) continue;
-                    const value = instance.state[fieldName] || {};
-                    value.error = error;
-                    value.touched = true;
-                    if (error) formValid = false;
-                    instance.setState({ [fieldName]: value });
+                    if (error) {
+                        const value = instance.state[fieldName] || {};
+                        value.error = error;
+                        value.touched = true;
+                        if (error) formValid = false;
+                        instance.setState({ [fieldName]: value });
+                    }
                 }
                 fs.submitting = false;
                 fs.valid = formValid;
@@ -60,6 +55,7 @@ export default function reactForm({
             });
         },
         resetForm: () => {
+            // eslint-disable-next-line no-restricted-syntax
             for (const field of fields) {
                 const fieldName = n(field);
                 const f = instance.state[fieldName];
@@ -68,6 +64,7 @@ export default function reactForm({
             }
         },
         clearForm: () => {
+            // eslint-disable-next-line no-restricted-syntax
             for (const field of fields) {
                 const fieldName = n(field);
                 const f = instance.state[fieldName];
@@ -76,10 +73,10 @@ export default function reactForm({
         },
     };
 
+    // eslint-disable-next-line no-restricted-syntax
     for (const field of fields) {
         const fieldName = n(field);
         const fieldType = t(field);
-
         const fs = (formState[fieldName] = {
             value: null,
             error: null,
@@ -103,7 +100,7 @@ export default function reactForm({
             }
         }
 
-        fs.props.onChange = e => {
+        fs.props.onChange = (e) => {
             const value = e && e.target ? e.target.value : e; // API may pass value directly
             const v = { ...(instance.state[fieldName] || {}) };
             const initialValue = initialValues[fieldName];
@@ -138,6 +135,7 @@ function setFormState(name, instance, fields, validation) {
     let formValid = true;
     let formTouched = false;
     const v = validation(getData(fields, instance.state));
+    // eslint-disable-next-line no-restricted-syntax
     for (const field of fields) {
         const fieldName = n(field);
         const validate = v[fieldName];
@@ -157,6 +155,7 @@ function setFormState(name, instance, fields, validation) {
 
 function setInitialValuesFromForm(name, instance, fields, initialValues) {
     const data = getData(fields, instance.state);
+    // eslint-disable-next-line no-restricted-syntax
     for (const field of fields) {
         const fieldName = n(field);
         initialValues[fieldName] = data[fieldName];
@@ -165,6 +164,7 @@ function setInitialValuesFromForm(name, instance, fields, initialValues) {
 
 function getData(fields, state) {
     const data = {};
+    // eslint-disable-next-line no-restricted-syntax
     for (const field of fields) {
         const fieldName = n(field);
         data[fieldName] = state[fieldName].value;
@@ -194,9 +194,6 @@ function n(field) {
     return name;
 }
 
-const hasValue = v =>
-    v == null
-        ? false
-        : (typeof v === 'string' ? v.trim() : v) === '' ? false : true;
-const toString = v => (hasValue(v) ? v : '');
-const toBoolean = v => (hasValue(v) ? JSON.parse(v) : '');
+const hasValue = (v) => (v == null ? false : (typeof v === 'string' ? v.trim() : v) === '' ? false : true);
+const toString = (v) => (hasValue(v) ? v : '');
+const toBoolean = (v) => (hasValue(v) ? JSON.parse(v) : '');
diff --git a/src/app/utils/ReduxForms.js b/src/app/utils/ReduxForms.js
index 54a788e9e92004b1efd0e65609cb07ab560fec46..2af4828db98971f3767bb23c62cdacef7b72929a 100644
--- a/src/app/utils/ReduxForms.js
+++ b/src/app/utils/ReduxForms.js
@@ -1,15 +1,9 @@
-export const cleanReduxInput = i => {
+// eslint-disable-next-line import/prefer-default-export
+export const cleanReduxInput = (i) => {
     // Remove all props that don't belong.  Triggers React warnings.
     const {
-        name,
-        placeholder,
-        label,
-        value,
-        checked,
-        onChange,
-        onBlur,
-        onFocus,
-    } = i;
+ name, placeholder, label, value, checked, onChange, onBlur, onFocus
+} = i;
     const ret = {
         name,
         placeholder,
diff --git a/src/app/utils/RegisterServiceWorker.js b/src/app/utils/RegisterServiceWorker.js
index f5b407222a325b153e884f1983f81280c39d4d43..2af294715a418e82a54812bbd944ddf74ec1bbd9 100644
--- a/src/app/utils/RegisterServiceWorker.js
+++ b/src/app/utils/RegisterServiceWorker.js
@@ -2,15 +2,12 @@ export default function registerServiceWorker() {
     if (!navigator.serviceWorker) return Promise.resolve(false);
     return navigator.serviceWorker
         .register('/service-worker.js', { scope: '/' })
-        .then(function(registration) {
-            navigator.serviceWorker.ready.catch(e =>
-                console.error('-- registerServiceWorker error -->', e)
-            );
-            return navigator.serviceWorker.ready.then(function(
-                serviceWorkerRegistration
-            ) {
-                let subscription = serviceWorkerRegistration.pushManager.getSubscription();
-                return subscription.then(function(subscription) {
+        .then(() => {
+            navigator.serviceWorker.ready.catch((e) => console.error('-- registerServiceWorker error -->', e));
+            return navigator.serviceWorker.ready.then((serviceWorkerRegistration) => {
+                const subscription = serviceWorkerRegistration.pushManager.getSubscription();
+                // eslint-disable-next-line no-shadow
+                return subscription.then((subscription) => {
                     if (subscription) {
                         return subscription;
                     }
@@ -20,23 +17,12 @@ export default function registerServiceWorker() {
                 });
             });
         })
-        .then(function(subscription) {
-            const rawKey = subscription.getKey
-                ? subscription.getKey('p256dh')
-                : '';
-            const key = rawKey
-                ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawKey)))
-                : '';
-            const rawAuthSecret = subscription.getKey
-                ? subscription.getKey('auth')
-                : '';
+        .then((subscription) => {
+            const rawKey = subscription.getKey ? subscription.getKey('p256dh') : '';
+            const key = rawKey ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawKey))) : '';
+            const rawAuthSecret = subscription.getKey ? subscription.getKey('auth') : '';
             const authSecret = rawAuthSecret
-                ? btoa(
-                      String.fromCharCode.apply(
-                          null,
-                          new Uint8Array(rawAuthSecret)
-                      )
-                  )
+                ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawAuthSecret)))
                 : '';
             return {
                 endpoint: subscription.endpoint,
diff --git a/src/app/utils/RemarkableStripper.js b/src/app/utils/RemarkableStripper.js
index 9bbb8bfb833c6b26bdd0b4363dacbc11c29200ea..ab7e34982164a68c75721c1cdc0f902d2b9e4147 100644
--- a/src/app/utils/RemarkableStripper.js
+++ b/src/app/utils/RemarkableStripper.js
@@ -4,15 +4,15 @@ const remarkable = new Remarkable();
 export default remarkable;
 
 /** Removes all markdown leaving just plain text */
-const remarkableStripper = md => {
+const remarkableStripper = (md) => {
     md.renderer.render = (tokens, options, env) => {
         let str = '';
-        for (let i = 0; i < tokens.length; i++) {
+        for (let i = 0; i < tokens.length; i += 1) {
             if (tokens[i].type === 'inline') {
                 str += md.renderer.render(tokens[i].children, options, env);
             } else {
                 // console.log('content', tokens[i])
-                const content = tokens[i].content;
+                const { content } = tokens[i];
                 str += (content || '') + ' ';
             }
         }
diff --git a/src/app/utils/SanitizeConfig.js b/src/app/utils/SanitizeConfig.js
index 8605ab533f8f8068e2c3898f380f64ce950c3319..73d4e448ac5a653dc9a4517c743291405e27a13a 100644
--- a/src/app/utils/SanitizeConfig.js
+++ b/src/app/utils/SanitizeConfig.js
@@ -1,4 +1,5 @@
-import { isDefaultImageSize, defaultSrcSet, defaultWidth } from 'app/utils/ProxifyUrl';
+/* global $STM_Config */
+import { isDefaultImageSize, defaultSrcSet } from 'app/utils/ProxifyUrl';
 import { getPhishingWarningMessage, getExternalLinkWarningMessage } from 'shared/HtmlReady'; // the only allowable title attributes for div and a tags
 
 import { validateIframeUrl as validateEmbbeddedPlayerIframeUrl } from 'app/components/elements/EmbeddedPlayers';
@@ -14,7 +15,9 @@ export const allowedTags = `
     .split(/,\s*/);
 
 // Medium insert plugin uses: div, figure, figcaption, iframe
-export default ({ large = true, highQualityPost = true, noImage = false, sanitizeErrors = [] }) => ({
+export default ({
+ large = true, highQualityPost = true, noImage = false, sanitizeErrors = []
+}) => ({
     allowedTags,
     // figure, figcaption,
 
@@ -92,7 +95,8 @@ export default ({ large = true, highQualityPost = true, noImage = false, sanitiz
         img: (tagName, attribs) => {
             if (noImage) return { tagName: 'div', text: noImageText };
             //See https://github.com/punkave/sanitize-html/issues/117
-            let { src, alt } = attribs;
+            let { src } = attribs;
+            const { alt } = attribs;
             if (!/^(https?:)?\/\//i.test(src)) {
                 console.log('Blocked, image tag src does not appear to be a url', tagName, attribs);
                 sanitizeErrors.push('An image in this post did not save properly.');
@@ -101,10 +105,10 @@ export default ({ large = true, highQualityPost = true, noImage = false, sanitiz
 
             // replace http:// with // to force https when needed
             src = src.replace(/^http:\/\//i, '//');
-            let atts = { src };
+            const atts = { src };
             if (alt && alt !== '') atts.alt = alt;
             if (isDefaultImageSize(src)) {
-                atts['srcset'] = defaultSrcSet(src);
+                atts.srcset = defaultSrcSet(src);
             }
             return { tagName, attribs: atts };
         },
@@ -120,7 +124,7 @@ export default ({ large = true, highQualityPost = true, noImage = false, sanitiz
                 'videoWrapper',
                 'phishy',
             ];
-            const validClass = classWhitelist.find(e => attribs.class == e);
+            const validClass = classWhitelist.find((e) => attribs.class == e);
             if (validClass) attys.class = validClass;
             if (validClass === 'phishy' && attribs.title === getPhishingWarningMessage()) attys.title = attribs.title;
             return {
@@ -158,7 +162,7 @@ export default ({ large = true, highQualityPost = true, noImage = false, sanitiz
             href = href.trim();
             const attys = { href };
             // If it's not a (relative or absolute) hive URL...
-            if (!href.match(`^(\/(?!\/)|https:\/\/${$STM_Config.site_domain})`)) {
+            if (!href.match(`^(/(?!/)|https://${$STM_Config.site_domain})`)) {
                 // attys.target = '_blank' // pending iframe impl https://mathiasbynens.github.io/rel-noopener/
                 attys.rel = highQualityPost ? 'noopener' : 'nofollow noopener';
                 attys.title = getExternalLinkWarningMessage();
diff --git a/src/app/utils/Sanitizer.js b/src/app/utils/Sanitizer.js
index 585860ae260e7bef45af15784b07055c71f8ecac..ade851ff5b75535c5fd15b94752e31946ec4056d 100644
--- a/src/app/utils/Sanitizer.js
+++ b/src/app/utils/Sanitizer.js
@@ -1,7 +1,7 @@
 import StripTags from 'striptags';
 import RemoveMd from 'remove-markdown';
 
-const getTextOnly = text => {
+const getTextOnly = (text) => {
     let sanitizedText = StripTags(text);
     sanitizedText = RemoveMd(sanitizedText);
     sanitizedText = sanitizedText.replace(/[^a-zA-Z0-9-_. \n]/g, '');
diff --git a/src/app/utils/ServerApiClient.js b/src/app/utils/ServerApiClient.js
index 1d8876efa70c8a6062d6e9d1977d8242e95e4a34..1378b7d15c9d491cfeef64ee4357855df7e5228b 100644
--- a/src/app/utils/ServerApiClient.js
+++ b/src/app/utils/ServerApiClient.js
@@ -1,4 +1,4 @@
-import { api } from '@hiveio/hive-js';
+/* global $STM_csrf */
 
 const request_base = {
     method: 'post',
@@ -12,17 +12,15 @@ const request_base = {
 
 export function serverApiLogin(account, signatures) {
     if (!process.env.BROWSER || window.$STM_ServerBusy) return;
-    const request = Object.assign({}, request_base, {
-        body: JSON.stringify({ account, signatures, csrf: $STM_csrf }),
-    });
+    const request = { ...request_base, body: JSON.stringify({ account, signatures, csrf: $STM_csrf }) };
+    // eslint-disable-next-line consistent-return
     return fetch('/api/v1/login_account', request);
 }
 
 export function serverApiLogout() {
     if (!process.env.BROWSER || window.$STM_ServerBusy) return;
-    const request = Object.assign({}, request_base, {
-        body: JSON.stringify({ csrf: $STM_csrf }),
-    });
+    const request = { ...request_base, body: JSON.stringify({ csrf: $STM_csrf }) };
+    // eslint-disable-next-line consistent-return
     return fetch('/api/v1/logout_account', request);
 }
 
@@ -31,30 +29,22 @@ export function serverApiRecordEvent(type, val, rate_limit_ms = 5000) {
     if (!process.env.BROWSER || window.$STM_ServerBusy) return;
     if (last_call && new Date() - last_call < rate_limit_ms) return;
     last_call = new Date();
+/*
     const value = val && val.stack ? `${val.toString()} | ${val.stack}` : val;
-    return;
-    api.call(
-        'overseer.collect',
-        { collection: 'event', metadata: { type, value } },
-        error => {
-            if (error) console.warn('overseer error', error, error.data);
-        }
-    );
+    api.call('overseer.collect', { collection: 'event', metadata: { type, value } }, (error) => {
+        if (error) console.warn('overseer error', error, error.data);
+    });
+ */
 }
 
 export function saveCords(x, y) {
-    const request = Object.assign({}, request_base, {
-        body: JSON.stringify({ csrf: $STM_csrf, x: x, y: y }),
-    });
+    const request = { ...request_base, body: JSON.stringify({ csrf: $STM_csrf, x, y }) };
     fetch('/api/v1/save_cords', request);
 }
 
 export function setUserPreferences(payload) {
-    if (!process.env.BROWSER || window.$STM_ServerBusy)
-        return Promise.resolve();
-    const request = Object.assign({}, request_base, {
-        body: JSON.stringify({ csrf: window.$STM_csrf, payload }),
-    });
+    if (!process.env.BROWSER || window.$STM_ServerBusy) return Promise.resolve();
+    const request = { ...request_base, body: JSON.stringify({ csrf: window.$STM_csrf, payload }) };
     return fetch('/api/v1/setUserPreferences', request);
 }
 
@@ -63,16 +53,12 @@ export function isTosAccepted() {
         // TODO: remove this. endpoint in dev currently down.
         return true;
     }
-    const request = Object.assign({}, request_base, {
-        body: JSON.stringify({ csrf: window.$STM_csrf }),
-    });
-    return fetch('/api/v1/isTosAccepted', request).then(res => res.json());
+    const request = { ...request_base, body: JSON.stringify({ csrf: window.$STM_csrf }) };
+    return fetch('/api/v1/isTosAccepted', request).then((res) => res.json());
 }
 
 export function acceptTos() {
-    const request = Object.assign({}, request_base, {
-        body: JSON.stringify({ csrf: window.$STM_csrf }),
-    });
+    const request = { ...request_base, body: JSON.stringify({ csrf: window.$STM_csrf }) };
     return fetch('/api/v1/acceptTos', request);
 }
 export function conductSearch(req) {
@@ -80,8 +66,6 @@ export function conductSearch(req) {
         ...req.body,
         csrf: window.$STM_csrf,
     };
-    const request = Object.assign({}, request_base, {
-        body: JSON.stringify(bodyWithCSRF),
-    });
+    const request = { ...request_base, body: JSON.stringify(bodyWithCSRF) };
     return fetch('/api/v1/search', request);
 }
diff --git a/src/app/utils/SlateEditor/Iframe.jsx b/src/app/utils/SlateEditor/Iframe.jsx
index 147f01c688ce5239222b8cdcc71cad8e718e279d..2684b6b167a380629d8dfdf8a39f2a7e031e461a 100644
--- a/src/app/utils/SlateEditor/Iframe.jsx
+++ b/src/app/utils/SlateEditor/Iframe.jsx
@@ -2,7 +2,7 @@ import React from 'react';
 import { normalizeEmbedUrl as normalizeEmbbeddedPlayerEmbedUrl } from 'app/components/elements/EmbeddedPlayers';
 
 export default class Iframe extends React.Component {
-    normalizeEmbedUrl = url => {
+    normalizeEmbedUrl = (url) => {
         const validEmbedUrl = normalizeEmbbeddedPlayerEmbedUrl(url);
         if (validEmbedUrl !== false) {
             return validEmbedUrl;
@@ -12,22 +12,18 @@ export default class Iframe extends React.Component {
         return null;
     };
 
-    onChange = e => {
+    onChange = (e) => {
         const { node, editor } = this.props;
         const value = e.target.value;
 
         const src = this.normalizeEmbedUrl(value) || value;
 
-        const next = editor
-            .getState()
-            .transform()
-            .setNodeByKey(node.key, { data: { src } })
-            .apply();
+        const next = editor.getState().transform().setNodeByKey(node.key, { data: { src } }).apply();
 
         editor.onChange(next);
     };
 
-    onClick = e => {
+    onClick = (e) => {
         // stop propagation so that the void node itself isn't focused, since that would unfocus the input.
         e.stopPropagation();
     };
@@ -50,9 +46,7 @@ export default class Iframe extends React.Component {
             <div {...attributes} className={className}>
                 <div className="videoWrapper">
                     {this.renderFrame()}
-                    <div style={lockStyle}>
-                        {isFocused && <span>{this.renderInput()}</span>}
-                    </div>
+                    <div style={lockStyle}>{isFocused && <span>{this.renderInput()}</span>}</div>
                 </div>
             </div>
         );
diff --git a/src/app/utils/SlateEditor/Image.js b/src/app/utils/SlateEditor/Image.js
index df535244fe9ca2c9207a6399ad4b82674425d627..6fe2532189ad6456e44be7a5a2e1f5bc966ace9f 100644
--- a/src/app/utils/SlateEditor/Image.js
+++ b/src/app/utils/SlateEditor/Image.js
@@ -3,7 +3,7 @@ import { connect } from 'react-redux';
 
 export default connect(
     (state, ownProps) => ownProps,
-    dispatch => ({
+    (dispatch) => ({
         uploadImage: (file, dataUrl, filename, progress) => {
             dispatch({
                 type: 'user/UPLOAD_IMAGE',
@@ -65,7 +65,7 @@ export default connect(
             if (!file && !dataUrl) return;
             this.setState({ progress: {}, uploading: true }, () => {
                 const { uploadImage } = this.props;
-                uploadImage(file, dataUrl, filename, progress => {
+                uploadImage(file, dataUrl, filename, (progress) => {
                     this.setState({ progress, uploading: false });
                     if (progress.url) {
                         this.setImageSrc(progress.url, filename);
@@ -80,31 +80,17 @@ export default connect(
             const isFocused = state.selection.hasEdgeIn(node);
             const className = isFocused ? 'active' : null;
 
-            const prefix = $STM_Config.img_proxy_prefix
-                ? $STM_Config.img_proxy_prefix + '0x0/'
-                : '';
+            const prefix = $STM_Config.img_proxy_prefix ? $STM_Config.img_proxy_prefix + '0x0/' : '';
 
             const alt = node.data.get('alt');
             const src = node.data.get('src');
 
-            console.log(
-                '** rendering image... src:',
-                src ? src.substring(0, 30) + '...' : '(null)',
-                state
-            );
+            console.log('** rendering image... src:', src ? src.substring(0, 30) + '...' : '(null)', state);
 
-            if (!src)
-                return <small className="info">Loading Image&hellip;</small>;
+            if (!src) return <small className="info">Loading Image&hellip;</small>;
 
             if (/^https?:\/\//.test(src))
-                return (
-                    <img
-                        {...attributes}
-                        src={prefix + src}
-                        alt={alt}
-                        className={className}
-                    />
-                );
+                return <img {...attributes} src={prefix + src} alt={alt} className={className} />;
 
             const img = <img src={src} alt={alt} className={className} />;
 
@@ -124,9 +110,7 @@ export default connect(
                     {img}
                     <div className="error">
                         <small>
-                            Image was not Saved (<a onClick={this.load}>
-                                retry
-                            </a>)
+                            Image was not Saved (<a onClick={this.load}>retry</a>)
                             <br />
                             {error}
                         </small>
diff --git a/src/app/utils/SlateEditor/Schema.js b/src/app/utils/SlateEditor/Schema.js
index c513527eacc55bad90a5569900463ac1f5e1a232..3325e37d3eaf956dd4ec575e0b27fd1abd5a8d0f 100644
--- a/src/app/utils/SlateEditor/Schema.js
+++ b/src/app/utils/SlateEditor/Schema.js
@@ -41,47 +41,23 @@ export const schema = {
     // sidebarTypes: [],
 
     nodes: {
-        paragraph: ({ children, attributes }) => (
-            <p {...attributes}>{children}</p>
-        ),
+        paragraph: ({ children, attributes }) => <p {...attributes}>{children}</p>,
         'code-block': ({ children, attributes }) => (
             <pre {...attributes}>
                 <code>{children}</code>
             </pre>
         ),
-        'block-quote': ({ children, attributes }) => (
-            <blockquote {...attributes}>{children}</blockquote>
-        ),
-        'bulleted-list': ({ children, attributes }) => (
-            <ul {...attributes}>{children}</ul>
-        ),
-        'numbered-list': ({ children, attributes }) => (
-            <ol {...attributes}>{children}</ol>
-        ),
-        'heading-one': ({ children, attributes }) => (
-            <h1 {...attributes}>{children}</h1>
-        ),
-        'heading-two': ({ children, attributes }) => (
-            <h2 {...attributes}>{children}</h2>
-        ),
-        'heading-three': ({ children, attributes }) => (
-            <h3 {...attributes}>{children}</h3>
-        ),
-        'heading-four': ({ children, attributes }) => (
-            <h4 {...attributes}>{children}</h4>
-        ),
-        'list-item': ({ children, attributes }) => (
-            <li {...attributes}>{children}</li>
-        ),
-        table: ({ children, attributes }) => (
-            <table {...attributes}>{children}</table>
-        ),
-        thead: ({ children, attributes }) => (
-            <thead {...attributes}>{children}</thead>
-        ),
-        tbody: ({ children, attributes }) => (
-            <tbody {...attributes}>{children}</tbody>
-        ),
+        'block-quote': ({ children, attributes }) => <blockquote {...attributes}>{children}</blockquote>,
+        'bulleted-list': ({ children, attributes }) => <ul {...attributes}>{children}</ul>,
+        'numbered-list': ({ children, attributes }) => <ol {...attributes}>{children}</ol>,
+        'heading-one': ({ children, attributes }) => <h1 {...attributes}>{children}</h1>,
+        'heading-two': ({ children, attributes }) => <h2 {...attributes}>{children}</h2>,
+        'heading-three': ({ children, attributes }) => <h3 {...attributes}>{children}</h3>,
+        'heading-four': ({ children, attributes }) => <h4 {...attributes}>{children}</h4>,
+        'list-item': ({ children, attributes }) => <li {...attributes}>{children}</li>,
+        table: ({ children, attributes }) => <table {...attributes}>{children}</table>,
+        thead: ({ children, attributes }) => <thead {...attributes}>{children}</thead>,
+        tbody: ({ children, attributes }) => <tbody {...attributes}>{children}</tbody>,
         tr: ({ children, attributes }) => <tr {...attributes}>{children}</tr>,
         td: ({ children, attributes }) => <td {...attributes}>{children}</td>,
         th: ({ children, attributes }) => <th {...attributes}>{children}</th>,
@@ -93,13 +69,13 @@ export const schema = {
     },
 
     marks: {
-        bold: props => <strong>{props.children}</strong>,
-        code: props => <code>{props.children}</code>,
-        italic: props => <em>{props.children}</em>,
-        underline: props => <u>{props.children}</u>,
-        strike: props => <del>{props.children}</del>,
-        sub: props => <sub>{props.children}</sub>,
-        sup: props => <sup>{props.children}</sup>,
+        bold: (props) => <strong>{props.children}</strong>,
+        code: (props) => <code>{props.children}</code>,
+        italic: (props) => <em>{props.children}</em>,
+        underline: (props) => <u>{props.children}</u>,
+        strike: (props) => <del>{props.children}</del>,
+        sub: (props) => <sub>{props.children}</sub>,
+        sup: (props) => <sup>{props.children}</sup>,
     },
 };
 
@@ -141,14 +117,7 @@ const MARK_TAGS = {
     sub: 'sub',
 };
 
-const validAligns = [
-    'pull-right',
-    'pull-left',
-    'text-justify',
-    'text-rtl',
-    'text-center',
-    'text-right',
-];
+const validAligns = ['pull-right', 'pull-left', 'text-justify', 'text-rtl', 'text-center', 'text-right'];
 
 /**
  * Rules for converting from and to HTML. The first rules are highest priority,
@@ -199,14 +168,13 @@ export const HtmlRules = [
 
             // Special case for <pre>: ignore its inner <code> element.
             const code = el.tagName == 'pre' ? el.children[0] : null;
-            let children =
-                code && code.tagName == 'code' ? code.children : el.children;
+            let children = code && code.tagName == 'code' ? code.children : el.children;
 
             // due to disabled/broken whitespace normalization in cheerio/htmlparser2, perform basic cleaning...
             //   i.e. removal of text nodes where they are invalid -- otherwise they may convert to <br />s in bad places
             const noTextChildren = 'ol,ul,table,thead,tbody,tr'.split(',');
             if (noTextChildren.includes(el.tagName)) {
-                children = children.filter(el => el.type !== 'text');
+                children = children.filter((el) => el.type !== 'text');
             }
 
             // If this block-level node contains *any* <center> tags, strip them out and wrap-align node
@@ -384,11 +352,7 @@ export const HtmlRules = [
             if (object.kind == 'inline' && object.type == 'image') {
                 const src = object.data.get('src');
                 const alt = object.data.get('alt');
-                if (!src)
-                    console.log(
-                        '** ERR: serializing image with no src...',
-                        JSON.stringify(object)
-                    );
+                if (!src) console.log('** ERR: serializing image with no src...', JSON.stringify(object));
                 return <img src={src} alt={alt} />;
             }
         },
@@ -397,26 +361,16 @@ export const HtmlRules = [
     // debug uncaught nodes/elements
     {
         deserialize: (el, next) => {
-            if (el.type !== 'text')
-                console.log(
-                    '** no deserializer for: ',
-                    $.html(el).replace(/\n/g, '\\n')
-                );
+            if (el.type !== 'text') console.log('** no deserializer for: ', $.html(el).replace(/\n/g, '\\n'));
         },
         serialize: (object, children) => {
             if (object.kind != 'string')
-                console.log(
-                    '** no serializer for:',
-                    object.type,
-                    object.kind,
-                    'data:',
-                    JSON.stringify(object)
-                );
+                console.log('** no serializer for:', object.type, object.kind, 'data:', JSON.stringify(object));
         },
     },
 ];
 
-export const getMarkdownType = chars => {
+export const getMarkdownType = (chars) => {
     switch (chars) {
         case '1.':
         case '*':
diff --git a/src/app/utils/StateFunctions.js b/src/app/utils/StateFunctions.js
index 852f32b9d5c8fa4eac2648750b44a4d8ae64e95c..1157fa8f1f4adfd76b140c5b5de8e166011bf1f3 100644
--- a/src/app/utils/StateFunctions.js
+++ b/src/app/utils/StateFunctions.js
@@ -1,19 +1,14 @@
 import constants from 'app/redux/constants';
 import { formatter } from '@hiveio/hive-js';
 
-export const numberWithCommas = x =>
-    String(x).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
+export const numberWithCommas = (x) => String(x).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
 
 export function isFetchingOrRecentlyUpdated(global_status, order, category) {
-    const status = global_status
-        ? global_status.getIn([category || '', order])
-        : null;
+    const status = global_status ? global_status.getIn([category || '', order]) : null;
     if (!status) return false;
     if (status.fetching) return true;
     if (status.last_fetch) {
-        const res =
-            new Date() - status.last_fetch <
-            constants.FETCH_DATA_EXPIRE_SEC * 1000;
+        const res = new Date() - status.last_fetch < constants.FETCH_DATA_EXPIRE_SEC * 1000;
         return res;
     }
     return false;
@@ -48,12 +43,12 @@ export function parseJsonTags(post) {
 }
 
 export function hasNsfwTag(content) {
-    return parseJsonTags(content).filter(t => t.match(/^nsfw$/i)).length > 0;
+    return parseJsonTags(content).filter((t) => t.match(/^nsfw$/i)).length > 0;
 }
 
 export function filterTags(tags) {
     return tags
-        .filter(tag => typeof tag === 'string')
+        .filter((tag) => typeof tag === 'string')
         .filter((value, index, self) => value && self.indexOf(value) === index);
 }
 
@@ -67,10 +62,10 @@ export function pricePerHive(state) {
 
 export function settlePromises(arr) {
     return Promise.all(
-        arr.map(promise => {
+        arr.map((promise) => {
             return promise.then(
-                value => ({ state: 'resolved', value }),
-                value => ({ state: 'rejected', value })
+                (value) => ({ state: 'resolved', value }),
+                (value) => ({ state: 'rejected', value })
             );
         })
     );
diff --git a/src/app/utils/Unicode.js b/src/app/utils/Unicode.js
index f5aa7a60efa9e2acc1feec40d7e865ed4a47e4ba..eaf80f1c224e596bcc8e274c7b50ad89ef058c17 100644
--- a/src/app/utils/Unicode.js
+++ b/src/app/utils/Unicode.js
@@ -113,8 +113,7 @@ const Unicode = {
         '\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ee\u037a\u0559\u0640\u06e5\u06e6\u07f4\u07f5\u07fa\u0e46\u0ec6\u10fc\u17d7\u1843\u1d2c-\u1d61\u1d78\u1d9b-\u1dbf\u2090-\u2094\u2d6f\u3005\u3031-\u3035\u303b\u309d\u309e\u30fc-\u30fe\ua015\ua717-\ua71a\uff70\uff9e\uff9f',
     Lo:
         '\u01bb\u01c0-\u01c3\u0294\u05d0-\u05ea\u05f0-\u05f2\u0621-\u063a\u0641-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u076d\u0780-\u07a5\u07b1\u07ca-\u07ea\u0904-\u0939\u093d\u0950\u0958-\u0961\u097b-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60\u0d61\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e45\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0edc\u0edd\u0f00\u0f40-\u0f47\u0f49-\u0f6a\u0f88-\u0f8b\u1000-\u1021\u1023-\u1027\u1029\u102a\u1050-\u1055\u10d0-\u10fa\u1100-\u1159\u115f-\u11a2\u11a8-\u11f9\u1200-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u1676\u1681-\u169a\u16a0-\u16ea\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17dc\u1820-\u1842\u1844-\u1877\u1880-\u18a8\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19a9\u19c1-\u19c7\u1a00-\u1a16\u1b05-\u1b33\u1b45-\u1b4b\u2135-\u2138\u2d30-\u2d65\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3006\u303c\u3041-\u3096\u309f\u30a1-\u30fa\u30ff\u3105-\u312c\u3131-\u318e\u31a0-\u31b7\u31f0-\u31ff\u3400\u4db5\u4e00\u9fbb\ua000-\ua014\ua016-\ua48c\ua800\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\uac00\ud7a3\uf900-\ufa2d\ufa30-\ufa6a\ufa70-\ufad9\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff66-\uff6f\uff71-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc',
-    Lt:
-        '\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc',
+    Lt: '\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc',
     Lu:
         '\u0041-\u005a\u00c0-\u00d6\u00d8-\u00de\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u0179\u017b\u017d\u0181\u0182\u0184\u0186\u0187\u0189-\u018b\u018e-\u0191\u0193\u0194\u0196-\u0198\u019c\u019d\u019f\u01a0\u01a2\u01a4\u01a6\u01a7\u01a9\u01ac\u01ae\u01af\u01b1-\u01b3\u01b5\u01b7\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a\u023b\u023d\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0386\u0388-\u038a\u038c\u038e\u038f\u0391-\u03a1\u03a3-\u03ab\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0531-\u0556\u10a0-\u10c5\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c75\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\uff21-\uff3a',
     Mc:
@@ -128,8 +127,7 @@ const Unicode = {
     No:
         '\u00b2\u00b3\u00b9\u00bc-\u00be\u09f4-\u09f9\u0bf0-\u0bf2\u0f2a-\u0f33\u1369-\u137c\u17f0-\u17f9\u2070\u2074-\u2079\u2080-\u2089\u2153-\u215f\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3192-\u3195\u3220-\u3229\u3251-\u325f\u3280-\u3289\u32b1-\u32bf',
     Pc: '\u005f\u203f\u2040\u2054\ufe33\ufe34\ufe4d-\ufe4f\uff3f',
-    Pd:
-        '\u002d\u058a\u1806\u2010-\u2015\u2e17\u301c\u3030\u30a0\ufe31\ufe32\ufe58\ufe63\uff0d',
+    Pd: '\u002d\u058a\u1806\u2010-\u2015\u2e17\u301c\u3030\u30a0\ufe31\ufe32\ufe58\ufe63\uff0d',
     Pe:
         '\u0029\u005d\u007d\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e\u301f\ufd3f\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63',
     Pf: '\u00bb\u2019\u201d\u203a\u2e03\u2e05\u2e0a\u2e0d\u2e1d',
@@ -155,14 +153,13 @@ const Unicode = {
 Unicode.C = Unicode.Cc + Unicode.Cf + Unicode.Cs + Unicode.Co;
 //+ Unicode.Cn ; //This is not defined.
 
-Unicode.L =
-    Unicode.Lu +
-    Unicode.Ll +
-    Unicode.Lt +
-    Unicode.Lm +
-    Unicode.Mn + //Added 2014-05-29 due to some letters in names not being recognized.
+Unicode.L = Unicode.Lu
+    + Unicode.Ll
+    + Unicode.Lt
+    + Unicode.Lm
+    + Unicode.Mn //Added 2014-05-29 due to some letters in names not being recognized.
     //This is where accent marks are individually combined instead of using an explicit character.
-    Unicode.Lo;
+    + Unicode.Lo;
 
 Unicode.LC = Unicode.Lu + Unicode.Ll + Unicode.Lt;
 
@@ -170,14 +167,7 @@ Unicode.M = Unicode.Mn + Unicode.Mc + Unicode.Me;
 
 Unicode.N = Unicode.Nd + Unicode.Nl + Unicode.No;
 
-Unicode.P =
-    Unicode.Pc +
-    Unicode.Pd +
-    Unicode.Ps +
-    Unicode.Pe +
-    Unicode.Pi +
-    Unicode.Pf +
-    Unicode.Po;
+Unicode.P = Unicode.Pc + Unicode.Pd + Unicode.Ps + Unicode.Pe + Unicode.Pi + Unicode.Pf + Unicode.Po;
 
 Unicode.S = Unicode.Sm + Unicode.Sc + Unicode.Sk + Unicode.So;
 
@@ -187,18 +177,8 @@ Unicode.Z = Unicode.Zs + Unicode.Zl + Unicode.Zp;
 Unicode.w = '_' + Unicode.L + Unicode.N;
 
 //A Unicode based word boundry built with non-capturing parentheses
-Unicode.b =
-    '(?:[' +
-    Unicode.w +
-    '](?:[^' +
-    Unicode.w +
-    ']|$)' +
-    '|(?:^|[^' +
-    Unicode.w +
-    '])[' +
-    Unicode.w +
-    ']' +
-    ')';
+// eslint-disable-next-line no-useless-concat
+Unicode.b = '(?:[' + Unicode.w + '](?:[^' + Unicode.w + ']|$)' + '|(?:^|[^' + Unicode.w + '])[' + Unicode.w + ']' + ')';
 
 //A Unicode based word boundry build with non-capturing parentheses
 Unicode.bOut = '(?=[^' + Unicode.w + ']|$)';
@@ -213,18 +193,8 @@ Unicode.bIn = '(?:^|[^' + Unicode.w + '])';
 Unicode.bInCapture = '(?:^|([^' + Unicode.w + ']))';
 
 //A Unicode based non-word boundry build with non-capturing parentheses
-Unicode.B =
-    '(?:[' +
-    Unicode.w +
-    '][' +
-    Unicode.w +
-    ']' +
-    '|[^' +
-    Unicode.w +
-    '][^' +
-    Unicode.w +
-    ']' +
-    ')';
+// eslint-disable-next-line no-useless-concat
+Unicode.B = '(?:[' + Unicode.w + '][' + Unicode.w + ']' + '|[^' + Unicode.w + '][^' + Unicode.w + ']' + ')';
 
 Unicode.d = Unicode.N;
 Unicode.uppercaseRegex = new RegExp('[' + Unicode.Lu + ']', '');
@@ -232,9 +202,6 @@ Unicode.lowercaseRegex = new RegExp('[' + Unicode.Ll + ']', '');
 Unicode.titlecaseRegex = new RegExp('[' + Unicode.Lt + ']', '');
 Unicode.wordCharRegex = new RegExp('[' + Unicode.w + ']', '');
 Unicode.nonWordCharRegex = new RegExp('[^' + Unicode.w + ']', '');
-Unicode.letterAndSpaceRegEx = new RegExp(
-    '[^' + Unicode.L + Unicode.Zs + ']',
-    ''
-);
+Unicode.letterAndSpaceRegEx = new RegExp('[^' + Unicode.L + Unicode.Zs + ']', '');
 
 module.exports = Unicode;
diff --git a/src/app/utils/UserTemplates.js b/src/app/utils/UserTemplates.js
index 99e99218f3bb37559f88208dc05c0edbec737a63..8d292c1ede9e83183f791e0d643db137684db844 100644
--- a/src/app/utils/UserTemplates.js
+++ b/src/app/utils/UserTemplates.js
@@ -1,4 +1,4 @@
-export const loadUserTemplates = username => {
+export const loadUserTemplates = (username) => {
     const lsEntryName = `hivePostTemplates-${username}`;
     let userTemplates = window.localStorage.getItem(lsEntryName);
     if (userTemplates) {
diff --git a/src/app/utils/UserUtil.js b/src/app/utils/UserUtil.js
index 21aa1e8a3105c7771eee99e807e273c5891f1a00..a40d575e6cfbd213cff894af2c6948d70573cc1d 100644
--- a/src/app/utils/UserUtil.js
+++ b/src/app/utils/UserUtil.js
@@ -2,8 +2,7 @@
  *
  * @returns {boolean}
  */
-export const isLoggedIn = () =>
-    typeof localStorage !== 'undefined' && !!localStorage.getItem('autopost2');
+export const isLoggedIn = () => typeof localStorage !== 'undefined' && !!localStorage.getItem('autopost2');
 
 /**
  *
@@ -18,11 +17,10 @@ export const packLoginData = (
     login_with_hive_signer,
     access_token,
     expires_in
-) =>
-    new Buffer(
-        `${username}\t${password}\t${memoWif || ''}\t${login_owner_pubkey ||
-            ''}\t${login_with_keychain || ''}\t${login_with_hive_signer ||
-            ''}\t${access_token || ''}\t${expires_in || ''}`
+) => Buffer.from(
+        `${username}\t${password}\t${memoWif || ''}\t${login_owner_pubkey || ''}\t${login_with_keychain || ''}\t${
+            login_with_hive_signer || ''
+        }\t${access_token || ''}\t${expires_in || ''}`
     ).toString('hex');
 
 /**
@@ -30,8 +28,7 @@ export const packLoginData = (
  * @returns {array} [username, password, memoWif, login_owner_pubkey, login_with_keychain,
  * login_with_hive_signer]
  */
-export const extractLoginData = data =>
-    new Buffer(data, 'hex').toString().split('\t');
+export const extractLoginData = (data) => Buffer.from(data, 'hex').toString().split('\t');
 
 export default {
     isLoggedIn,
diff --git a/src/app/utils/hivebuzzApi.js b/src/app/utils/hivebuzzApi.js
index 41e6ecf5e28beaca28ee41c6bba6efeb72bd6d92..a45237599c7dc1711dce2c44e94100a143b37a44 100644
--- a/src/app/utils/hivebuzzApi.js
+++ b/src/app/utils/hivebuzzApi.js
@@ -1,4 +1,4 @@
-const getBadges = async payload => {
+const getBadges = async (payload) => {
     return new Promise((resolve, reject) => {
         const xhr = new XMLHttpRequest();
         xhr.open('GET', `https://hivebuzz.me/api/badges/${payload.account}`);
@@ -8,11 +8,7 @@ const getBadges = async payload => {
                     const res = JSON.parse(xhr.responseText);
                     const { error } = res;
                     if (error) {
-                        console.error(
-                            'Hivebuzz badges',
-                            error,
-                            xhr.responseText
-                        );
+                        console.error('Hivebuzz badges', error, xhr.responseText);
                         reject(error);
                     }
 
@@ -26,7 +22,7 @@ const getBadges = async payload => {
                 reject(xhr.status);
             }
         };
-        xhr.onerror = function(error) {
+        xhr.onerror = function (error) {
             console.error('Hivebuzz badges', error);
             reject(error);
         };
diff --git a/src/app/utils/peakdApi.js b/src/app/utils/peakdApi.js
index 0cd40dd18c78a373900c1906a4249212111ebb01..f38d6a2a28f405e7930e5811205495fca1b1d29b 100644
--- a/src/app/utils/peakdApi.js
+++ b/src/app/utils/peakdApi.js
@@ -1,11 +1,8 @@
-const getBadges = async payload => {
+const getBadges = async (payload) => {
     return new Promise((resolve, reject) => {
         const xhr = new XMLHttpRequest();
         // Little hack until Peakd opens up by adding CORS headers
-        xhr.open(
-            'GET',
-            `https://peakd.com/api/public/badge/${payload.account}`
-        );
+        xhr.open('GET', `https://peakd.com/api/public/badge/${payload.account}`);
         xhr.onload = () => {
             if (xhr.status === 200) {
                 try {
@@ -26,7 +23,7 @@ const getBadges = async payload => {
                 reject(xhr.status);
             }
         };
-        xhr.onerror = function(error) {
+        xhr.onerror = function (error) {
             console.error('Peakd badges', error);
             reject(error);
         };
diff --git a/src/app/utils/shouldComponentUpdate.js b/src/app/utils/shouldComponentUpdate.js
index 0d701cbdbe21c099326849811467c9645d1334b6..0fa97609fab6590d8633b851aa039c52b4901367 100644
--- a/src/app/utils/shouldComponentUpdate.js
+++ b/src/app/utils/shouldComponentUpdate.js
@@ -1,15 +1,15 @@
-import PureRenderMixin from 'react-addons-pure-render-mixin';
+import React from 'react';
 import { Iterable } from 'immutable';
 
 /**
     Wrapper for PureRenderMixin.
     This allows debugging that will show which properties changed.
 */
-export default function(instance, name) {
-    const mixin = PureRenderMixin.shouldComponentUpdate.bind(instance);
+export default function (instance, name) {
+    const mixin = React.PureComponent.shouldComponentUpdate.bind(instance);
     if (
-        process.env.BROWSER &&
-        window.steemDebug_shouldComponentUpdate === undefined
+        process.env.BROWSER
+        && window.steemDebug_shouldComponentUpdate === undefined
     ) {
         window.steemDebug_shouldComponentUpdate = false; // console command line completion
     }
@@ -17,11 +17,7 @@ export default function(instance, name) {
         const upd = mixin(nextProps, nextState);
         // Usage: steemDebug_shouldComponentUpdate = true
         // Or: steemDebug_shouldComponentUpdate = /Comment/
-        if (
-            upd &&
-            process.env.BROWSER &&
-            window.steemDebug_shouldComponentUpdate
-        ) {
+        if (upd && process.env.BROWSER && window.steemDebug_shouldComponentUpdate) {
             const filter = window.steemDebug_shouldComponentUpdate;
             if (filter.test) {
                 if (!filter.test(name)) return upd;
@@ -37,7 +33,7 @@ export function compare(name, a, b) {
     const aKeys = new Set(a && Object.keys(a));
     const bKeys = new Set(b && Object.keys(b));
     const ab = new Set([...aKeys, ...aKeys]);
-    ab.forEach(key => {
+    ab.forEach((key) => {
         const hasA = aKeys.has(key);
         const hasB = bKeys.has(key);
         if (!hasA && !hasB) return;
@@ -54,4 +50,4 @@ export function compare(name, a, b) {
     });
 }
 
-const toJS = o => (Iterable.isIterable(o) ? o.toJS() : o);
+const toJS = (o) => (Iterable.isIterable(o) ? o.toJS() : o);
diff --git a/src/app/utils/steemApi.js b/src/app/utils/steemApi.js
index 4ba69e7438c295bafa5cbc4d6c6b5f0c8cf3b8cd..91e915467ca040aba45639ff42ccc151354a1490 100644
--- a/src/app/utils/steemApi.js
+++ b/src/app/utils/steemApi.js
@@ -1,3 +1,5 @@
+/*eslint prefer-destructuring: "warn"*/
+/* global $STM_Config */
 import { api } from '@hiveio/hive-js';
 import Big from 'big.js';
 import { ifHive } from 'app/utils/Community';
@@ -8,10 +10,10 @@ export async function callBridge(method, params) {
     // [JES] Hivemind throws an exception if you call for my/[trending/payouts/new/etc] with a null observer
     // so just delete the 'my' tag if there is no observer specified
     if (
-        method === 'get_ranked_posts' &&
-        params &&
-        (params.observer === null || params.observer === undefined) &&
-        params.tag === 'my'
+        method === 'get_ranked_posts'
+        && params
+        && (params.observer === null || params.observer === undefined)
+        && params.tag === 'my'
     ) {
         delete params.tag;
         delete params.observer;
@@ -20,20 +22,19 @@ export async function callBridge(method, params) {
     if (method === 'normalize_post' && params && params.observer !== undefined) delete params.observer;
 
     if (
-        method !== 'account_notifications' &&
-        method !== 'unread_notifications' &&
-        method !== 'list_all_subscriptions' &&
-        method !== 'get_post_header' &&
-        method !== 'list_subscribers' &&
-        method !== 'normalize_post' &&
-        (params.observer === null || params.observer === undefined)
-    )
-        params.observer = $STM_Config.default_observer;
+        method !== 'account_notifications'
+        && method !== 'unread_notifications'
+        && method !== 'list_all_subscriptions'
+        && method !== 'get_post_header'
+        && method !== 'list_subscribers'
+        && method !== 'normalize_post'
+        && (params.observer === null || params.observer === undefined)
+    ) params.observer = $STM_Config.default_observer;
 
     console.log('call bridge', method, params && JSON.stringify(params).substring(0, 200));
 
-    return new Promise(function(resolve, reject) {
-        api.call('bridge.' + method, params, function(err, data) {
+    return new Promise(((resolve, reject) => {
+        api.call('bridge.' + method, params, (err, data) => {
             if (err) {
                 // [JES] This is also due to a change in hivemind that we've requested a change for.
                 // The condenser uses this call to make sure the permlink it generates is unique by asking
@@ -50,14 +51,16 @@ export async function callBridge(method, params) {
                 reject(err);
             } else resolve(data);
         });
-    });
+    }));
 }
 
 export function getHivePowerForUser(account) {
+    // eslint-disable-next-line no-async-promise-executor
     return new Promise(async (resolve, reject) => {
         try {
             const fullAccounts = await api.callAsync('database_api.find_accounts', { accounts: [account] });
 
+            // eslint-disable-next-line consistent-return
             api.getDynamicGlobalProperties((error, result) => {
                 if (error) return reject(error);
 
@@ -66,7 +69,7 @@ export function getHivePowerForUser(account) {
                     const totalHive = total_vesting_fund_hive.split(' ')[0];
                     const totalVests = total_vesting_shares.split(' ')[0];
 
-                    const post_voting_power = fullAccounts['accounts'][0]['post_voting_power'];
+                    const { post_voting_power } = fullAccounts.accounts[0];
                     /**
                      * old implementation instead of getting hive/vests dynamically
                      * This magic number is coming from
@@ -78,6 +81,7 @@ export function getHivePowerForUser(account) {
 
                     const hive_power = new Big(post_voting_power.amount)
                         .times(new Big(hiveDividedByVests))
+                        // eslint-disable-next-line no-restricted-properties
                         .times(1 / Math.pow(10, post_voting_power.precision))
                         .toFixed(0);
                     resolve(hive_power);
@@ -92,13 +96,14 @@ export function getHivePowerForUser(account) {
 }
 
 export async function getStateAsync(url, observer, ssr = false) {
-    console.log('getStateAsync');
     if (observer === undefined) observer = null;
 
-    const { page, tag, sort, key } = parsePath(url);
+    const {
+        page, tag, sort, key
+    } = parsePath(url);
 
     console.log('GSA', url, observer, ssr);
-    let state = {
+    const state = {
         accounts: {},
         community: {},
         content: {},
@@ -109,11 +114,11 @@ export async function getStateAsync(url, observer, ssr = false) {
     // load `content` and `discussion_idx`
     if (page == 'posts' || page == 'account') {
         const posts = await loadPosts(sort, tag, observer);
-        state['content'] = posts['content'];
-        state['discussion_idx'] = posts['discussion_idx'];
+        state.content = posts.content;
+        state.discussion_idx = posts.discussion_idx;
     } else if (page == 'thread') {
         const posts = await loadThread(key[0], key[1], observer);
-        state['content'] = posts['content'];
+        state.content = posts.content;
     } else {
         // no-op
     }
@@ -121,11 +126,13 @@ export async function getStateAsync(url, observer, ssr = false) {
     // append `community` key
     if (tag && ifHive(tag)) {
         try {
-            state['community'][tag] = await callBridge('get_community', {
+            state.community[tag] = await callBridge('get_community', {
                 name: tag,
-                observer: observer,
+                observer,
             });
-        } catch (e) {}
+        } catch (e) {
+            // Nothing
+        }
     }
 
     // for SSR, load profile on any profile page or discussion thread author
@@ -134,9 +141,9 @@ export async function getStateAsync(url, observer, ssr = false) {
         // TODO: move to global reducer?
         const profile = await callBridge('get_profile', { account });
 
-        if (profile && profile['name']) {
+        if (profile && profile.name) {
             const hive_power = await getHivePowerForUser(account);
-            state['profiles'][account] = {
+            state.profiles[account] = {
                 ...profile,
                 stats: {
                     ...profile.stats,
@@ -148,7 +155,7 @@ export async function getStateAsync(url, observer, ssr = false) {
 
     if (ssr) {
         // append `topics` key
-        state['topics'] = await callBridge('get_trending_topics', {
+        state.topics = await callBridge('get_trending_topics', {
             limit: 12,
         });
     }
@@ -213,16 +220,16 @@ async function loadPosts(sort, tag, observer) {
 
 function parsePath(url) {
     // strip off query string
-    url = url.split('?')[0];
+    let [baseUrl] = url.split('?');
 
     // strip off leading and trailing slashes
-    if (url.length > 0 && url[0] == '/') url = url.substring(1, url.length);
-    if (url.length > 0 && url[url.length - 1] == '/') url = url.substring(0, url.length - 1);
+    if (baseUrl.length > 0 && baseUrl[0] == '/') baseUrl = baseUrl.substring(1, baseUrl.length);
+    if (baseUrl.length > 0 && baseUrl[baseUrl.length - 1] == '/') url = baseUrl.substring(0, baseUrl.length - 1);
 
     // blank URL defaults to `trending`
-    if (url === '') url = 'trending';
+    if (baseUrl === '') baseUrl = 'trending';
 
-    const part = url.split('/');
+    const part = baseUrl.split('/');
     const parts = part.length;
     const sorts = ['trending', 'promoted', 'hot', 'created', 'payout', 'payout_comments', 'muted'];
     const acct_tabs = ['blog', 'feed', 'posts', 'comments', 'replies', 'payout'];
@@ -260,5 +267,10 @@ function parsePath(url) {
         // no-op URL
     }
 
-    return { page, tag, sort, key };
+    return {
+        page,
+        tag,
+        sort,
+        key,
+    };
 }
diff --git a/src/server/api/general.js b/src/server/api/general.js
index f07a2ec6e7d034b2f7f5d4ee617f5bf05aaa4dc1..901344c5f51a4226e3f84dbc3d5df3a38a36d2c1 100644
--- a/src/server/api/general.js
+++ b/src/server/api/general.js
@@ -1,4 +1,4 @@
-/*global $STM_Config */
+/*eslint no-underscore-dangle: "warn"*/
 import koa_router from 'koa-router';
 import koa_body from 'koa-body';
 import config from 'config';
@@ -11,13 +11,11 @@ import fetch from 'node-fetch';
 
 const ACCEPTED_TOS_TAG = 'accepted_tos_20180614';
 
-const mixpanel = config.get('mixpanel')
-    ? Mixpanel.init(config.get('mixpanel'))
-    : null;
+const mixpanel = config.get('mixpanel') ? Mixpanel.init(config.get('mixpanel')) : null;
 
-const _stringval = v => (typeof v === 'string' ? v : JSON.stringify(v));
+const _stringval = (v) => (typeof v === 'string' ? v : JSON.stringify(v));
 
-const _parse = params => {
+const _parse = (params) => {
     if (typeof params === 'string') {
         try {
             return JSON.parse(params);
@@ -31,7 +29,7 @@ const _parse = params => {
 };
 
 function logRequest(path, ctx, extra) {
-    let d = { ip: getRemoteIp(ctx.req) };
+    const d = { ip: getRemoteIp(ctx.req) };
     if (ctx.session) {
         if (ctx.session.user) {
             d.user = ctx.session.user;
@@ -44,13 +42,13 @@ function logRequest(path, ctx, extra) {
         }
     }
     if (extra) {
-        Object.keys(extra).forEach(k => {
+        Object.keys(extra).forEach((k) => {
             const nk = d[k] ? '_' + k : k;
             d[nk] = extra[k];
         });
     }
     const info = Object.keys(d)
-        .map(k => `${k}=${_stringval(d[k])}`)
+        .map((k) => `${k}=${_stringval(d[k])}`)
         .join(' ');
     console.log(`-- /${path} --> ${info}`);
 }
@@ -60,7 +58,7 @@ export default function useGeneralApi(app) {
     app.use(router.routes());
     const koaBody = koa_body();
 
-    router.post('/login_account', koaBody, function*() {
+    router.post('/login_account', koaBody, function* () {
         // if (rateLimitReq(this, this.req)) return;
         const params = this.request.body;
         const { csrf, account, signatures } = _parse(params);
@@ -70,48 +68,24 @@ export default function useGeneralApi(app) {
         try {
             if (signatures) {
                 if (!this.session.login_challenge) {
-                    console.error(
-                        '/login_account missing this.session.login_challenge'
-                    );
+                    console.error('/login_account missing this.session.login_challenge');
                 } else {
-                    const [chainAccount] = yield api.getAccountsAsync([
-                        account,
-                    ]);
+                    const [chainAccount] = yield api.getAccountsAsync([account]);
                     if (!chainAccount) {
-                        console.error(
-                            '/login_account missing blockchain account',
-                            account
-                        );
+                        console.error('/login_account missing blockchain account', account);
                     } else {
                         const auth = { posting: false };
-                        const bufSha = hash.sha256(
-                            JSON.stringify(
-                                { token: this.session.login_challenge },
-                                null,
-                                0
-                            )
-                        );
-                        const verify = (
-                            type,
-                            sigHex,
-                            pubkey,
-                            weight,
-                            weight_threshold
-                        ) => {
+                        const bufSha = hash.sha256(JSON.stringify({ token: this.session.login_challenge }, null, 0));
+                        const verify = (type, sigHex, pubkey, weight, weight_threshold) => {
                             if (!sigHex) return;
                             if (weight !== 1 || weight_threshold !== 1) {
                                 console.error(
-                                    `/login_account login_challenge unsupported ${
-                                        type
-                                    } auth configuration: ${account}`
+                                    `/login_account login_challenge unsupported ${type} auth configuration: ${account}`
                                 );
                             } else {
                                 const sig = parseSig(sigHex);
                                 const public_key = PublicKey.fromString(pubkey);
-                                const verified = sig.verifyHash(
-                                    bufSha,
-                                    public_key
-                                );
+                                const verified = sig.verifyHash(bufSha, public_key);
                                 if (!verified) {
                                     console.error(
                                         '/login_account verification failed',
@@ -129,13 +103,7 @@ export default function useGeneralApi(app) {
                                 weight_threshold,
                             },
                         } = chainAccount;
-                        verify(
-                            'posting',
-                            signatures.posting,
-                            posting_pubkey,
-                            weight,
-                            weight_threshold
-                        );
+                        verify('posting', signatures.posting, posting_pubkey, weight, weight_threshold);
                         if (auth.posting) this.session.a = account;
                     }
                 }
@@ -153,11 +121,7 @@ export default function useGeneralApi(app) {
                 mixpanel.people.increment(this.session.uid, 'Logins', 1);
             }
         } catch (error) {
-            console.error(
-                'Error in /login_account api call',
-                this.session.uid,
-                error.message
-            );
+            console.error('Error in /login_account api call', this.session.uid, error.message);
             this.body = JSON.stringify({
                 error: error.message,
             });
@@ -165,7 +129,8 @@ export default function useGeneralApi(app) {
         }
     });
 
-    router.post('/logout_account', koaBody, function*() {
+    // eslint-disable-next-line require-yield
+    router.post('/logout_account', koaBody, function* () {
         // if (rateLimitReq(this, this.req)) return; - logout maybe immediately followed with login_attempt event
         const params = this.request.body;
         const { csrf } = _parse(params);
@@ -175,17 +140,13 @@ export default function useGeneralApi(app) {
             this.session.a = null;
             this.body = JSON.stringify({ status: 'ok' });
         } catch (error) {
-            console.error(
-                'Error in /logout_account api call',
-                this.session.uid,
-                error
-            );
+            console.error('Error in /logout_account api call', this.session.uid, error);
             this.body = JSON.stringify({ error: error.message });
             this.status = 500;
         }
     });
 
-    router.post('/csp_violation', function*() {
+    router.post('/csp_violation', function* () {
         if (rateLimitReq(this, this.req)) return;
         let params;
         try {
@@ -195,36 +156,20 @@ export default function useGeneralApi(app) {
         }
         if (params && params['csp-report']) {
             const csp_report = params['csp-report'];
-            const value = `${csp_report['document-uri']} : ${
-                csp_report['blocked-uri']
-            }`;
-            console.log(
-                '-- /csp_violation -->',
-                value,
-                '--',
-                this.req.headers['user-agent']
-            );
+            const value = `${csp_report['document-uri']} : ${csp_report['blocked-uri']}`;
+            console.log('-- /csp_violation -->', value, '--', this.req.headers['user-agent']);
         } else {
-            console.log(
-                '-- /csp_violation [no csp-report] -->',
-                params,
-                '--',
-                this.req.headers['user-agent']
-            );
+            console.log('-- /csp_violation [no csp-report] -->', params, '--', this.req.headers['user-agent']);
         }
         this.body = '';
     });
 
-    router.post('/setUserPreferences', koaBody, function*() {
+    // eslint-disable-next-line require-yield
+    router.post('/setUserPreferences', koaBody, function* () {
         const params = this.request.body;
         const { csrf, payload } = _parse(params);
         if (!checkCSRF(this, csrf)) return;
-        console.log(
-            '-- /setUserPreferences -->',
-            this.session.user,
-            this.session.uid,
-            payload
-        );
+        console.log('-- /setUserPreferences -->', this.session.user, this.session.uid, payload);
         if (!this.session.a) {
             this.body = 'missing logged in account';
             this.status = 500;
@@ -236,17 +181,13 @@ export default function useGeneralApi(app) {
             this.session.user_prefs = json;
             this.body = JSON.stringify({ status: 'ok' });
         } catch (error) {
-            console.error(
-                'Error in /setUserPreferences api call',
-                this.session.uid,
-                error
-            );
+            console.error('Error in /setUserPreferences api call', this.session.uid, error);
             this.body = JSON.stringify({ error: error.message });
             this.status = 500;
         }
     });
 
-    router.post('/isTosAccepted', koaBody, function*() {
+    router.post('/isTosAccepted', koaBody, function* () {
         const params = this.request.body;
         const { csrf } = _parse(params);
         if (!checkCSRF(this, csrf)) return;
@@ -270,17 +211,13 @@ export default function useGeneralApi(app) {
 
             this.body = JSON.stringify(res.includes(ACCEPTED_TOS_TAG));
         } catch (error) {
-            console.error(
-                'Error in /isTosAccepted api call',
-                this.session.a,
-                error
-            );
+            console.error('Error in /isTosAccepted api call', this.session.a, error);
             this.body = JSON.stringify({ error: error.message });
             this.status = 500;
         }
     });
 
-    router.post('/acceptTos', koaBody, function*() {
+    router.post('/acceptTos', koaBody, function* () {
         const params = this.request.body;
         const { csrf } = _parse(params);
         if (!checkCSRF(this, csrf)) return;
@@ -302,16 +239,12 @@ export default function useGeneralApi(app) {
             );
             this.body = JSON.stringify({ status: 'ok' });
         } catch (error) {
-            console.error(
-                'Error in /acceptTos api call',
-                this.session.uid,
-                error
-            );
+            console.error('Error in /acceptTos api call', this.session.uid, error);
             this.body = JSON.stringify({ error: error.message });
             this.status = 500;
         }
     });
-    router.post('/search', koaBody, function*() {
+    router.post('/search', koaBody, function* () {
         const params = this.request.body;
         const passThrough = {
             method: this.request.method,
@@ -323,14 +256,10 @@ export default function useGeneralApi(app) {
             // NOTE: agentOptions purely for testing, localhost vs SSL.
             //agentOptions: { checkServerIdentity: () => {} },
         };
-        const { csrf } =
-            typeof params === 'string' ? JSON.parse(params) : params;
+        const { csrf } = typeof params === 'string' ? JSON.parse(params) : params;
         if (!checkCSRF(this, csrf)) return;
         try {
-            const searchResult = yield fetch(
-                'https://api.hivesearcher.com/search',
-                passThrough
-            );
+            const searchResult = yield fetch('https://api.hivesearcher.com/search', passThrough);
             const resultJson = yield searchResult.json();
             this.body = JSON.stringify(resultJson);
             this.status = 200;
@@ -342,7 +271,7 @@ export default function useGeneralApi(app) {
     });
 }
 
-const parseSig = hexSig => {
+const parseSig = (hexSig) => {
     try {
         return Signature.fromHex(hexSig);
     } catch (e) {
diff --git a/src/server/app_render.jsx b/src/server/app_render.jsx
index 7c04c134d2c94c7061fe417d0f042dfbff2517d1..39f39f6461ec128cdd91bebb07c24ea6181665ec 100644
--- a/src/server/app_render.jsx
+++ b/src/server/app_render.jsx
@@ -11,8 +11,7 @@ import { getSupportedLocales } from './utils/misc';
 
 const path = require('path');
 const ROOT = path.join(__dirname, '../..');
-const DB_RECONNECT_TIMEOUT =
-    process.env.NODE_ENV === 'development' ? 1000 * 60 * 60 : 1000 * 60 * 10;
+const DB_RECONNECT_TIMEOUT = process.env.NODE_ENV === 'development' ? 1000 * 60 * 60 : 1000 * 60 * 10;
 
 const supportedLocales = getSupportedLocales();
 
@@ -26,18 +25,14 @@ async function appRender(ctx, locales = false, resolvedAssets = false) {
             try {
                 userPreferences = JSON.parse(ctx.session.user_prefs);
             } catch (err) {
-                console.error(
-                    'cannot parse user preferences:',
-                    ctx.session.uid,
-                    err
-                );
+                console.error('cannot parse user preferences:', ctx.session.uid, err);
             }
         }
         if (!userPreferences.locale) {
             let locale = ctx.getLocaleFromHeader();
             if (locale) locale = locale.substring(0, 2);
             const supportedLocales = locales ? locales : getSupportedLocales();
-            const localeIsSupported = supportedLocales.find(l => l === locale);
+            const localeIsSupported = supportedLocales.find((l) => l === locale);
             if (!localeIsSupported) locale = 'en';
             userPreferences.locale = locale;
         }
@@ -82,13 +77,7 @@ async function appRender(ctx, locales = false, resolvedAssets = false) {
             },
         };
 
-        const {
-            body,
-            title,
-            statusCode,
-            meta,
-            redirectUrl,
-        } = await serverRender(
+        const { body, title, statusCode, meta, redirectUrl } = await serverRender(
             ctx.request.url,
             initial_state,
             ErrorPage,
@@ -129,8 +118,7 @@ async function appRender(ctx, locales = false, resolvedAssets = false) {
             cookieConsentApiKey: cookieConsent.api_key,
         };
         ctx.status = statusCode;
-        ctx.body =
-            '<!DOCTYPE html>' + renderToString(<ServerHTML {...props} />);
+        ctx.body = '<!DOCTYPE html>' + renderToString(<ServerHTML {...props} />);
     } catch (err) {
         // Render 500 error page from server
         console.error('AppRender error', err, redirect);
diff --git a/src/server/hardwarestats.js b/src/server/hardwarestats.js
index 2e45ba1674c5c06019bbee7a360faeb5ec175602..3f65a5aa7f3d9f3d52cf7fbf330f2838485de6cf 100644
--- a/src/server/hardwarestats.js
+++ b/src/server/hardwarestats.js
@@ -4,7 +4,7 @@ import diskStat from 'disk-stat';
 
 module.exports = hardwareStats;
 
-let stats = {};
+const stats = {};
 
 function handleError(err) {
     // perpetually throws the same error down the chain for promises
@@ -12,14 +12,15 @@ function handleError(err) {
 }
 
 function startPromise() {
-    return new Promise(function(resolve, reject) {
+    return new Promise((resolve) => {
         resolve();
     });
 }
 
 function getCpuUsage() {
-    return new Promise(function(resolve, reject) {
-        cpuStat.usagePercent(function(err, percent, seconds) {
+    return new Promise((resolve) => {
+        // eslint-disable-next-line consistent-return
+        cpuStat.usagePercent((err, percent) => {
             if (err) return err;
             stats.cpuPercent = percent;
             resolve();
@@ -28,14 +29,14 @@ function getCpuUsage() {
 }
 
 function getMemoryUsage() {
-    return new Promise(function(resolve, reject) {
+    return new Promise((resolve) => {
         stats.memoryStatsInGiB = memStat.allStats('GiB');
         resolve();
     });
 }
 
 function getDiskUsage() {
-    return new Promise(function(resolve, reject) {
+    return new Promise((resolve) => {
         stats.diskStats = diskStat.raw();
         resolve();
     });
@@ -46,10 +47,10 @@ function hardwareStats() {
         .then(getCpuUsage, handleError)
         .then(getMemoryUsage, handleError)
         .then(getDiskUsage, handleError)
-        .then(function() {
+        .then(() => {
             console.log(JSON.stringify(stats));
         }, handleError)
-        .then(null, function(err) {
+        .then(null, (err) => {
             console.log('error getting hardware stats: ' + err);
         });
 }
diff --git a/src/server/index.js b/src/server/index.js
index 40da400d9f1f806c38bec2fa92d3921021524f18..b2c4ee34e824734b87e2a50c6379094a9d0b47fd 100644
--- a/src/server/index.js
+++ b/src/server/index.js
@@ -3,6 +3,7 @@ import config from 'config';
 import * as steem from '@hiveio/hive-js';
 
 const path = require('path');
+
 const ROOT = path.join(__dirname, '../..');
 
 // Tell `require` calls to look into `/app` also
@@ -11,14 +12,13 @@ const ROOT = path.join(__dirname, '../..');
 // use Object.assign to bypass transform-inline-environment-variables-babel-plugin (process.env.NODE_PATH= will not work)
 Object.assign(process.env, { NODE_PATH: path.resolve(__dirname, '..') });
 
+// eslint-disable-next-line no-underscore-dangle
 require('module').Module._initPaths();
 
 // Load Intl polyfill
 // require('utils/intl-polyfill')(require('./config/init').locales);
 
-const alternativeApiEndpoints = config
-    .get('alternative_api_endpoints')
-    .split(' ');
+const alternativeApiEndpoints = config.get('alternative_api_endpoints').split(' ');
 
 global.$STM_Config = {
     fb_app: config.get('facebook_app_id'),
@@ -43,9 +43,7 @@ global.$STM_Config = {
 const WebpackIsomorphicTools = require('webpack-isomorphic-tools');
 const WebpackIsomorphicToolsConfig = require('../../webpack/webpack-isotools-config');
 
-global.webpackIsomorphicTools = new WebpackIsomorphicTools(
-    WebpackIsomorphicToolsConfig
-);
+global.webpackIsomorphicTools = new WebpackIsomorphicTools(WebpackIsomorphicToolsConfig);
 
 global.webpackIsomorphicTools.server(ROOT, () => {
     steem.api.setOptions({
@@ -64,11 +62,11 @@ global.webpackIsomorphicTools.server(ROOT, () => {
     });
     steem.config.set('address_prefix', config.get('address_prefix'));
     steem.config.set('rebranded_api', true);
-    steem.broadcast.updateOperations();
 
     // const CliWalletClient = require('shared/api_client/CliWalletClient').default;
     // if (process.env.NODE_ENV === 'production') connect_promises.push(CliWalletClient.instance().connect_promise());
     try {
+        // eslint-disable-next-line global-require
         require('./server');
     } catch (error) {
         console.error(error);
diff --git a/src/server/json/post_json.jsx b/src/server/json/post_json.jsx
index 7a6865b99e0f63c565fafb2faedd4d9aae470747..c3c3a28633aab175ce848d339586a1e85648b0a5 100644
--- a/src/server/json/post_json.jsx
+++ b/src/server/json/post_json.jsx
@@ -8,7 +8,7 @@ export default function usePostJson(app) {
     const router = koa_router();
     app.use(router.routes());
 
-    router.get(routeRegex.PostJson, function*() {
+    router.get(routeRegex.PostJson, function* () {
         // validate and build post details in JSON
         const author = this.url.match(/(\@[\w\d\.-]+)/)[0].replace('@', '');
         const permalink = this.url.match(/(\@[\w\d\.-]+)\/?([\w\d-]+)/)[2];
diff --git a/src/server/json/user_json.jsx b/src/server/json/user_json.jsx
index 8e0154f9d2de028471aa0be10081eec3a00b77ae..f1c2c99fd17763baa57e9a972779d8149e2afbcb 100644
--- a/src/server/json/user_json.jsx
+++ b/src/server/json/user_json.jsx
@@ -8,11 +8,9 @@ export default function useUserJson(app) {
     const router = koa_router();
     app.use(router.routes());
 
-    router.get(routeRegex.UserJson, function*() {
+    router.get(routeRegex.UserJson, function* () {
         // validate and build user details in JSON
-        const user_name = this.url
-            .match(routeRegex.UserJson)[1]
-            .replace('@', '');
+        const user_name = this.url.match(routeRegex.UserJson)[1].replace('@', '');
         let user = '';
         let status = '';
 
diff --git a/src/server/prod_logger.js b/src/server/prod_logger.js
index d6a1327c4c2baf24494bec73311c64c27071111f..c9eabc530f8a30e94102446152463364c8a16665 100644
--- a/src/server/prod_logger.js
+++ b/src/server/prod_logger.js
@@ -1,52 +1,43 @@
-var humanize = require('humanize-number');
-var bytes = require('bytes');
+const humanize = require('humanize-number');
+const bytes = require('bytes');
 
 module.exports = prod_logger;
 
 function prod_logger() {
     return function* logger(next) {
         // request
-        var start = new Date();
-        var asset =
-            this.originalUrl.indexOf('/assets/') === 0 ||
-            this.originalUrl.indexOf('/images/') === 0 ||
-            this.originalUrl.indexOf('/favicon.ico') === 0;
-        if (!asset)
-            console.log(
-                '  <-- ' +
-                    this.method +
-                    ' ' +
-                    this.originalUrl +
-                    ' ' +
-                    (this.session.uid || '')
-            );
+        const start = new Date();
+        const asset = this.originalUrl.indexOf('/assets/') === 0
+            || this.originalUrl.indexOf('/images/') === 0
+            || this.originalUrl.indexOf('/favicon.ico') === 0;
+        if (!asset) console.log('  <-- ' + this.method + ' ' + this.originalUrl + ' ' + (this.session.uid || ''));
         try {
             yield next;
         } catch (err) {
             log(this, start, null, err, false);
             throw err;
         }
-        var length = this.response.length;
+        const { length } = this.response;
         log(this, start, length, null, asset);
     };
 }
 
 function log(ctx, start, len, err, asset) {
-    var status = err ? err.status || 500 : ctx.status || 404;
+    const status = err ? err.status || 500 : ctx.status || 404;
 
-    var length;
+    let length;
+    // eslint-disable-next-line no-bitwise
     if (~[204, 205, 304].indexOf(status)) {
         length = '';
-    } else if (null == len) {
+    } else if (len == null) {
         length = '-';
     } else {
         length = bytes(len);
     }
 
-    var upstream = err ? 'xxx' : '-->';
+    const upstream = err ? 'xxx' : '-->';
 
-    if (!asset || err || ctx.status > 400)
-        console.log(
+    if (!asset || err || ctx.status > 400) { console.log(
             '  ' + upstream + ' %s %s %s %s %s %s',
             ctx.method,
             ctx.originalUrl,
@@ -54,11 +45,11 @@ function log(ctx, start, len, err, asset) {
             time(start),
             length,
             ctx.session.uid || ''
-        );
+        ); }
 }
 
 function time(start) {
-    var delta = new Date() - start;
+    let delta = new Date() - start;
     delta = delta < 10000 ? delta + 'ms' : Math.round(delta / 1000) + 's';
     return humanize(delta);
 }
diff --git a/src/server/redirects.js b/src/server/redirects.js
index f7f791748ade2e90d82174f1e60ea8ab16ef8d4e..620ec968e431d4312e51b4fb666707343e469947 100644
--- a/src/server/redirects.js
+++ b/src/server/redirects.js
@@ -14,8 +14,9 @@ export default function useRedirects(app) {
 
     app.use(router.routes());
 
-    redirects.forEach(redirectConfig => {
-        router.get(redirectConfig[0], function*() {
+    redirects.forEach((redirectConfig) => {
+        // eslint-disable-next-line require-yield
+        router.get(redirectConfig[0], function* () {
             const dest = Object.keys(this.params).reduce((value, key) => {
                 return value.replace('$' + key, this.params[key]);
             }, redirectConfig[1]);
diff --git a/src/server/requesttimings.js b/src/server/requesttimings.js
index db91cd1e3cb0aab04599b02140c13ea65782d3a7..b1d4112f2df14f36f90e88cd53e5e3c44947c414 100644
--- a/src/server/requesttimings.js
+++ b/src/server/requesttimings.js
@@ -1,7 +1,7 @@
 import RequestTimer from './utils/RequestTimer';
 
 function requestTime(statsLoggerClient) {
-    return function*(next) {
+    return function* (next) {
         this.state.requestTimer = new RequestTimer(
             statsLoggerClient,
             'request',
diff --git a/src/server/server-error.jsx b/src/server/server-error.jsx
index 2bdbfc6a2b9c43a7009c4f3483debf7e334776e8..e0b097747e94b41ec1405efd386708b659ee9800 100644
--- a/src/server/server-error.jsx
+++ b/src/server/server-error.jsx
@@ -3,10 +3,7 @@ import React, { Component } from 'react';
 class ServerError extends Component {
     render() {
         return (
-            <div
-                className="float-center"
-                style={{ width: '640px', textAlign: 'center' }}
-            >
+            <div className="float-center" style={{ width: '640px', textAlign: 'center' }}>
                 <img width="640px" height="480px" src="/images/500.jpg" />
                 <div
                     style={{
diff --git a/src/server/server-html.jsx b/src/server/server-html.jsx
index a152b636645ea7fd066e6e2524f503a032fe556d..ab6f8c9b89832324d324b8037afa013c9cdde175 100644
--- a/src/server/server-html.jsx
+++ b/src/server/server-html.jsx
@@ -1,17 +1,11 @@
-import * as config from 'config';
 import React from 'react';
 
 export default function ServerHTML({
     body,
     assets,
-    locale,
     title,
     meta,
-    shouldSeeAds,
-    adClient,
     gptEnabled,
-    gptBannedTags,
-    gptBidding,
     shouldSeeCookieConsent,
     cookieConsentApiKey,
 }) {
@@ -21,16 +15,15 @@ export default function ServerHTML({
             <head>
                 <meta charSet="utf-8" />
                 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-                {meta &&
-                    meta.map(m => {
+                {meta
+                    && meta.map((m) => {
                         if (m.title) {
                             page_title = m.title;
                             return null;
                         }
                         if (m.canonical) return <link key="canonical" rel="canonical" href={m.canonical} />;
                         if (m.name && m.content) return <meta key={m.name} name={m.name} content={m.content} />;
-                        if (m.property && m.content)
-                            return <meta key={m.property} property={m.property} content={m.content} />;
+                        if (m.property && m.content) return <meta key={m.property} property={m.property} content={m.content} />;
                         return null;
                     })}
                 <link rel="manifest" href="/static/manifest.json" />
@@ -105,7 +98,9 @@ export default function ServerHTML({
                     rel="stylesheet"
                     type="text/css"
                 />
-                {assets.style.map((href, idx) => <link href={href} key={idx} rel="stylesheet" type="text/css" />)}
+                {assets.style.map((href) => (
+                    <link href={href} key={href} rel="stylesheet" type="text/css" />
+                ))}
                 {gptEnabled ? (
                     <script
                         dangerouslySetInnerHTML={{
@@ -161,7 +156,9 @@ export default function ServerHTML({
             </head>
             <body>
                 {<div id="content" dangerouslySetInnerHTML={{ __html: body }} />}
-                {assets.script.map((href, idx) => <script key={idx} src={href} />)}
+                {assets.script.map((href) => (
+                    <script key={href} src={href} />
+                ))}
                 {/* gptEnabled ? (
                     <script
                         dangerouslySetInnerHTML={{
diff --git a/src/server/server.js b/src/server/server.js
index b361ca102dd7ba72698883fc831d8564354da716..627998cd81999c91ad07a244a2f88181ad3f8614 100644
--- a/src/server/server.js
+++ b/src/server/server.js
@@ -1,21 +1,13 @@
+/*eslint global-require: "warn"*/
 import path from 'path';
 import Koa from 'koa';
 import mount from 'koa-mount';
 import helmet from 'koa-helmet';
 import koa_logger from 'koa-logger';
-import requestTime from './requesttimings';
-import StatsLoggerClient from './utils/StatsLoggerClient';
-import { SteemMarket } from './utils/SteemMarket';
-import hardwareStats from './hardwarestats';
 import cluster from 'cluster';
 import os from 'os';
-import prod_logger from './prod_logger';
 import favicon from 'koa-favicon';
 import staticCache from 'koa-static-cache';
-import useRedirects from './redirects';
-import useGeneralApi from './api/general';
-import useUserJson from './json/user_json';
-import usePostJson from './json/post_json';
 import isBot from 'koa-isbot';
 import session from '@steem/crypto-session';
 import csrf from 'koa-csrf';
@@ -25,9 +17,19 @@ import { routeRegex } from 'app/ResolveRoute';
 import secureRandom from 'secure-random';
 import userIllegalContent from 'app/utils/userIllegalContent';
 import koaLocale from 'koa-locale';
+import fs from 'fs';
+// eslint-disable-next-line import/named
 import { getSupportedLocales } from './utils/misc';
 import { specialPosts } from './utils/SpecialPosts';
-import fs from 'fs';
+import usePostJson from './json/post_json';
+import useUserJson from './json/user_json';
+import useGeneralApi from './api/general';
+import useRedirects from './redirects';
+import prod_logger from './prod_logger';
+import hardwareStats from './hardwarestats';
+import { SteemMarket } from './utils/SteemMarket';
+import StatsLoggerClient from './utils/StatsLoggerClient';
+import requestTime from './requesttimings';
 
 if (cluster.isMaster) console.log('application server starting, please wait.');
 
@@ -52,7 +54,8 @@ app.use(mount('/images', staticCache(path.join(__dirname, '../app/assets/images'
 app.use(mount('/javascripts', staticCache(path.join(__dirname, '../app/assets/javascripts'), cacheOpts)));
 
 app.use(
-    mount('/ads.txt', function*() {
+    // eslint-disable-next-line require-yield
+    mount('/ads.txt', function* () {
         this.type = 'text/plain';
         this.body = adstxt;
     })
@@ -65,7 +68,7 @@ if (env === 'development') {
     console.log('proxying to webpack dev server at ' + proxyhost);
     const proxy = require('koa-proxy')({
         host: proxyhost,
-        map: filePath => 'assets/' + filePath,
+        map: (filePath) => 'assets/' + filePath,
     });
     app.use(mount('/assets', proxy));
 } else {
@@ -76,6 +79,7 @@ let resolvedAssets = false;
 let supportedLocales = false;
 
 if (process.env.NODE_ENV === 'production') {
+    // eslint-disable-next-line import/no-dynamic-require
     resolvedAssets = require(path.join(__dirname, '../..', '/tmp/webpack-stats-prod.json'));
     supportedLocales = getSupportedLocales();
 }
@@ -111,13 +115,13 @@ function convertEntriesToArrays(obj) {
 
 // Fetch cached currency data for homepage
 const steemMarket = new SteemMarket();
-app.use(function*(next) {
+app.use(function* (next) {
     this.steemMarketData = yield steemMarket.get();
     yield next;
 });
 
 // some redirects and health status
-app.use(function*(next) {
+app.use(function* (next) {
     if (this.method === 'GET' && this.url === '/.well-known/healthcheck.json') {
         this.status = 200;
         this.body = {
@@ -138,10 +142,10 @@ app.use(function*(next) {
 
     // normalize user name url from cased params
     if (
-        this.method === 'GET' &&
-        (routeRegex.UserProfile.test(this.url) ||
-            routeRegex.PostNoCategory.test(this.url) ||
-            routeRegex.Post.test(this.url))
+        this.method === 'GET'
+        && (routeRegex.UserProfile.test(this.url)
+            || routeRegex.PostNoCategory.test(this.url)
+            || routeRegex.Post.test(this.url))
     ) {
         const p = this.originalUrl.toLowerCase();
         let userCheck = '';
@@ -180,7 +184,7 @@ app.use(function*(next) {
     if (this.url.indexOf('?') !== -1) {
         const paramsToProcess = ['ch', 'cn', 'r'];
 
-        paramsToProcess.forEach(paramToProcess => {
+        paramsToProcess.forEach((paramToProcess) => {
             if (urlParams.has(paramToProcess)) {
                 const paramValue = urlParams.get(paramToProcess);
                 if (paramValue) {
@@ -226,7 +230,8 @@ if (env === 'production') {
 app.use(mount('/static', staticCache(path.join(__dirname, '../app/assets/static'), cacheOpts)));
 
 app.use(
-    mount('/robots.txt', function*() {
+    // eslint-disable-next-line require-yield
+    mount('/robots.txt', function* () {
         this.set('Cache-Control', 'public, max-age=86400000');
         this.type = 'text/plain';
         this.body = 'User-agent: *\nAllow: /';
@@ -235,8 +240,9 @@ app.use(
 
 // set user's uid - used to identify users in logs and some other places
 // FIXME SECURITY PRIVACY cycle this uid after a period of time
-app.use(function*(next) {
-    const last_visit = this.session.last_visit;
+app.use(function* (next) {
+    const { last_visit } = this.session;
+    // eslint-disable-next-line no-bitwise
     this.session.last_visit = (new Date().getTime() / 1000) | 0;
     const from_link = this.request.headers.referer;
     if (!this.session.uid) {
@@ -266,6 +272,7 @@ if (env === 'production') {
         reportOnly: config.get('helmet.reportOnly'),
         setAllHeaders: config.get('helmet.setAllHeaders'),
     };
+    // eslint-disable-next-line prefer-destructuring
     helmetConfig.directives.reportUri = helmetConfig.directives.reportUri[0];
     if (helmetConfig.directives.reportUri === '-') {
         delete helmetConfig.directives.reportUri;
@@ -281,14 +288,14 @@ if (env !== 'test') {
     // so `src/server/app_render.jsx` can `await` on it.
     app.specialPostsPromise = specialPosts();
     // refresh special posts every five minutes
-    setInterval(function() {
-        return new Promise(function(resolve, reject) {
+    setInterval(() => {
+        return new Promise((resolve) => {
             app.specialPostsPromise = specialPosts();
             resolve();
         });
     }, 300000);
 
-    app.use(function*() {
+    app.use(function* () {
         yield appRender(this, supportedLocales, resolvedAssets);
         const bot = this.state.isBot;
         if (bot) {
@@ -296,17 +303,17 @@ if (env !== 'test') {
         }
     });
 
-    const argv = minimist(process.argv.slice(2));
+    minimist(process.argv.slice(2));
 
     const port = process.env.PORT ? parseInt(process.env.PORT) : 8080;
 
     if (env === 'production' && process.env.DISABLE_CLUSTERING !== 'true') {
         if (cluster.isMaster) {
-            for (var i = 0; i < numProcesses; i++) {
+            for (let i = 0; i < numProcesses; i += 1) {
                 cluster.fork();
             }
             // if a worker dies replace it so application keeps running
-            cluster.on('exit', function(worker) {
+            cluster.on('exit', (worker) => {
                 console.log('error: worker %d died, starting a new one', worker.id);
                 cluster.fork();
             });
diff --git a/src/server/utils/RequestTimer.js b/src/server/utils/RequestTimer.js
index e319c7869e46aa9d7a9c5693333a6d9362db55e3..d9b76f86db8061f7571af0bd2f2dc8b7b0843b5e 100644
--- a/src/server/utils/RequestTimer.js
+++ b/src/server/utils/RequestTimer.js
@@ -1,17 +1,11 @@
 import assert from 'assert';
 import StatsLoggerClient from './StatsLoggerClient';
 
-/**
- * @param {array} hrtime process.hrtime() tuple
- * @returns {number} nanoseconds
- */
-const hrtimeToNanoseconds = hrtime => +hrtime[0] * 1e9 + +hrtime[1];
-
 /**
  * @param {array} hrtime process.hrtime() tuple
  * @returns {number} milliseconds
  */
-const hrtimeToMilliseconds = hrtime => +hrtime[0] * 1000 + +hrtime[1] / 1000000;
+const hrtimeToMilliseconds = (hrtime) => +hrtime[0] * 1000 + +hrtime[1] / 1000000;
 
 /**
  * Logs total request time starting at instantiation and ending when finish() is called.
@@ -27,10 +21,7 @@ export default class RequestTimer {
      * @param {string} tags not yet supported by statsd / StatsLoggerClient
      */
     constructor(statsLoggerClient, prefix, tags) {
-        assert(
-            statsLoggerClient instanceof StatsLoggerClient,
-            'provide an instance of StatsLoggerClient'
-        );
+        assert(statsLoggerClient instanceof StatsLoggerClient, 'provide an instance of StatsLoggerClient');
 
         this.start = process.hrtime();
         this.timers = [];
@@ -54,10 +45,7 @@ export default class RequestTimer {
      * @param {string} name
      */
     startTimer(name) {
-        assert(
-            typeof name === 'string',
-            'a name for the timer must be provided'
-        );
+        assert(typeof name === 'string', 'a name for the timer must be provided');
 
         this.inProgressTimers[name] = process.hrtime();
     }
@@ -68,23 +56,14 @@ export default class RequestTimer {
      * @param {*} name
      */
     stopTimer(name) {
-        assert(
-            typeof this.inProgressTimers[name] !== 'undefined',
-            'provide an existing timer name'
-        );
+        assert(typeof this.inProgressTimers[name] !== 'undefined', 'provide an existing timer name');
 
-        this.logSegment(
-            name,
-            hrtimeToMilliseconds(process.hrtime(this.inProgressTimers[name]))
-        );
+        this.logSegment(name, hrtimeToMilliseconds(process.hrtime(this.inProgressTimers[name])));
         delete this.inProgressTimers[name];
     }
 
     finish() {
-        this.logSegment(
-            'total_ms',
-            hrtimeToMilliseconds(process.hrtime(this.start))
-        );
+        this.logSegment('total_ms', hrtimeToMilliseconds(process.hrtime(this.start)));
         this.statsLoggerClient.logTimers(this.timers, this.requestTags);
     }
 }
diff --git a/src/server/utils/SpecialPosts.js b/src/server/utils/SpecialPosts.js
index 0caf48eacf084756486c81e33010187bcc00b426..8cece1a54be330db26636dea60aa48140d831ea8 100644
--- a/src/server/utils/SpecialPosts.js
+++ b/src/server/utils/SpecialPosts.js
@@ -8,7 +8,7 @@ import { callBridge } from 'app/utils/steemApi';
  * @returns {promise} resolves to object of {featured_posts:[], promoted_posts:[], notices:[]}
  */
 function loadSpecialPosts() {
-    return new Promise((resolve, reject) => {
+    return new Promise((resolve) => {
         const emptySpecialPosts = {
             featured_posts: [],
             promoted_posts: [],
@@ -20,9 +20,9 @@ function loadSpecialPosts() {
             return;
         }
 
-        const request = https.get(config.special_posts_url, resp => {
+        const request = https.get(config.special_posts_url, (resp) => {
             let data = '';
-            resp.on('data', chunk => {
+            resp.on('data', (chunk) => {
                 data += chunk;
             });
             resp.on('end', () => {
@@ -35,7 +35,7 @@ function loadSpecialPosts() {
             });
         });
 
-        request.on('error', e => {
+        request.on('error', (e) => {
             console.error('Could not load special posts', e);
             resolve(emptySpecialPosts);
         });
@@ -44,7 +44,8 @@ function loadSpecialPosts() {
 
 async function getPost(url) {
     const [author, permlink] = url.split('@')[1].split('/');
-    return await callBridge('get_post', { author, permlink });
+    const res = await callBridge('get_post', { author, permlink });
+    return res;
 }
 
 /**
@@ -52,44 +53,47 @@ async function getPost(url) {
  *
  * @returns {object} object of {featured_posts:[], promoted_posts:[], notices:[]}
  */
+// eslint-disable-next-line import/prefer-default-export
 export async function specialPosts() {
     console.info('Loading special posts');
 
     const postData = await loadSpecialPosts();
     //console.info('Loaded special posts', postData);
-    let loadedPostData = {
+    const loadedPostData = {
         featured_posts: [],
         promoted_posts: [],
         notices: [],
     };
 
+    // eslint-disable-next-line no-restricted-syntax
     for (const url of postData.featured_posts) {
-        let post = await getPost(url);
+        // eslint-disable-next-line no-await-in-loop
+        const post = await getPost(url);
         post.special = true;
         loadedPostData.featured_posts.push(post);
     }
 
+    // eslint-disable-next-line no-restricted-syntax
     for (const url of postData.promoted_posts) {
-        let post = await getPost(url);
+        // eslint-disable-next-line no-await-in-loop
+        const post = await getPost(url);
         post.special = true;
         loadedPostData.promoted_posts.push(post);
     }
 
+    // eslint-disable-next-line no-restricted-syntax
     for (const notice of postData.notices) {
         if (notice.permalink) {
-            let post = await getPost(notice.permalink);
-            loadedPostData.notices.push(Object.assign({}, notice, post));
+            // eslint-disable-next-line no-await-in-loop
+            const post = await getPost(notice.permalink);
+            loadedPostData.notices.push({ ...notice, ...post });
         } else {
             loadedPostData.notices.push(notice);
         }
     }
 
     console.info(
-        `Loaded special posts: featured: ${
-            loadedPostData.featured_posts.length
-        }, promoted: ${loadedPostData.promoted_posts.length}, notices: ${
-            loadedPostData.notices.length
-        }`
+        `Loaded special posts: featured: ${loadedPostData.featured_posts.length}, promoted: ${loadedPostData.promoted_posts.length}, notices: ${loadedPostData.notices.length}`
     );
 
     return loadedPostData;
diff --git a/src/server/utils/StatsLoggerClient.js b/src/server/utils/StatsLoggerClient.js
index 3c5438c07841829d693e102ce3065bc4b7413eb2..153253aaccf731ace05a9b2d2cbadf5bd7427cd5 100644
--- a/src/server/utils/StatsLoggerClient.js
+++ b/src/server/utils/StatsLoggerClient.js
@@ -12,12 +12,11 @@ export default class StatsLoggerClient {
                 prefix: 'condenser',
             });
         } else {
-            console.log(
-                'StatsLoggerClient: no server available, logging to console.'
-            );
+            console.log('StatsLoggerClient: no server available, logging to console.');
             // Implement debug loggers here, as any new calls are added in methods below.
             this.SDC = {
                 timing() {
+                    // eslint-disable-next-line prefer-rest-params
                     console.log('StatsLoggerClient call: ', arguments);
                 },
             };
@@ -29,8 +28,8 @@ export default class StatsLoggerClient {
      * log them all to statsd.
      */
     logTimers(tuples) {
-        const timestamp = +new Date();
-        tuples.map(tuple => {
+        // eslint-disable-next-line array-callback-return
+        tuples.map((tuple) => {
             this.SDC.timing(tuple[0], tuple[1]);
         });
     }
diff --git a/src/server/utils/SteemMarket.js b/src/server/utils/SteemMarket.js
index b5aee74f0f67b24d1a9dbf5141cb3ee4b339ea61..4eb02594746b212b6858b70ca3c6911c3245df3f 100644
--- a/src/server/utils/SteemMarket.js
+++ b/src/server/utils/SteemMarket.js
@@ -2,13 +2,14 @@ import * as config from 'config';
 import axios from 'axios';
 import NodeCache from 'node-cache';
 
+// eslint-disable-next-line import/prefer-default-export
 export function SteemMarket() {
-    const ttl = config.steem_market_cache.ttl;
+    const { ttl } = config.steem_market_cache;
     const cache = new NodeCache({
         stdTTL: ttl,
     });
-    const key = config.steem_market_cache.key;
-    cache.on('expired', (k, v) => {
+    const { key } = config.steem_market_cache;
+    cache.on('expired', (k) => {
         console.log('Cache key expired', k);
         if (key === k) {
             this.refresh();
@@ -19,19 +20,19 @@ export function SteemMarket() {
     this.storeEmpty().then(() => this.refresh());
 }
 
-SteemMarket.prototype.storeEmpty = function() {
-    const key = config.steem_market_cache.key;
-    return new Promise((res, rej) => {
-        this.cache.set(key, {}, (err, success) => {
+SteemMarket.prototype.storeEmpty = function () {
+    const { key } = config.steem_market_cache;
+    return new Promise((res) => {
+        this.cache.set(key, {}, () => {
             console.info('Storing empty Steem Market data...');
             res();
         });
     });
 };
 
-SteemMarket.prototype.get = async function() {
-    return new Promise((res, rej) => {
-        const key = config.steem_market_cache.key;
+SteemMarket.prototype.get = async function () {
+    return new Promise((res) => {
+        const { key } = config.steem_market_cache;
         this.cache.get(key, (err, value) => {
             if (err) {
                 console.error('Could not retrieve Steem Market data');
@@ -43,35 +44,37 @@ SteemMarket.prototype.get = async function() {
     });
 };
 
-SteemMarket.prototype.refresh = async function() {
+SteemMarket.prototype.refresh = async function () {
     console.info('Refreshing Steem Market data...');
 
     const url = config.steem_market_endpoint;
     const token = config.steem_market_token;
-    const key = config.steem_market_cache.key;
+    const { key } = config.steem_market_cache;
     if (!url) {
         console.info('No Steem Market endpoint provided...');
         return this.storeEmpty();
     }
 
+    // eslint-disable-next-line no-return-await
     return await axios({
-        url: url,
+        url,
         method: 'GET',
         headers: {
             Authorization: `Token ${token}`,
         },
     })
-        .then(response => {
+        .then((response) => {
             console.info('Received Steem Market data from endpoint...');
-            this.cache.set(key, response.data, (err, success) => {
+            this.cache.set(key, response.data, (err) => {
                 if (err) {
-                    rej(err);
+                    // rej(err);
+                    console.error(err);
                     return;
                 }
                 console.info('Steem Market data refreshed...');
             });
         })
-        .catch(err => {
+        .catch((err) => {
             console.error('Could not fetch Steem Market data', err);
             return this.storeEmpty();
         });
diff --git a/src/server/utils/misc.js b/src/server/utils/misc.js
index 6bcf860f13cc104ccac69ab2890a3bad87818a32..620486985000ee11a13ee46f56fdad64a2a6e42d 100644
--- a/src/server/utils/misc.js
+++ b/src/server/utils/misc.js
@@ -2,21 +2,18 @@ import path from 'path';
 import fs from 'fs';
 
 function getRemoteIp(req) {
-    const remote_address =
-        req.headers['x-forwarded-for'] || req.connection.remoteAddress;
-    const ip_match = remote_address
-        ? remote_address.match(/(\d+\.\d+\.\d+\.\d+)/)
-        : null;
+    const remote_address = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
+    const ip_match = remote_address ? remote_address.match(/(\d+\.\d+\.\d+\.\d+)/) : null;
     return ip_match ? ip_match[1] : remote_address;
 }
 
-var ip_last_hit = new Map();
+const ip_last_hit = new Map();
 function rateLimitReq(ctx, req) {
     const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
     const now = Date.now();
 
     // purge hits older than minutes_max
-    ip_last_hit.forEach((v, k) => {
+    ip_last_hit.forEach((v) => {
         const seconds = (now - v) / 1000;
         if (seconds > 1) {
             ip_last_hit.delete(ip);
@@ -45,12 +42,7 @@ function checkCSRF(ctx, csrf) {
     } catch (e) {
         ctx.status = 403;
         ctx.body = 'invalid csrf token';
-        console.log(
-            '-- invalid csrf token -->',
-            ctx.request.method,
-            ctx.request.url,
-            ctx.session.uid
-        );
+        console.log('-- invalid csrf token -->', ctx.request.method, ctx.request.url, ctx.session.uid);
         return false;
     }
     return true;
@@ -58,9 +50,8 @@ function checkCSRF(ctx, csrf) {
 
 function getSupportedLocales() {
     const locales = [];
-    const files = fs.readdirSync(
-        path.join(__dirname, '../../..', 'src/app/locales')
-    );
+    const files = fs.readdirSync(path.join(__dirname, '../../..', 'src/app/locales'));
+    // eslint-disable-next-line no-restricted-syntax
     for (const filename of files) {
         const match_res = filename.match(/(\w+)\.json?$/);
         if (match_res) locales.push(match_res[1]);
diff --git a/src/shared/HtmlReady.js b/src/shared/HtmlReady.js
index 3b6008ef64b264bfc1f3fcd340ac8785bb38b03e..af2f13eba118d43a0a807798c343cf44f9b4cc23 100644
--- a/src/shared/HtmlReady.js
+++ b/src/shared/HtmlReady.js
@@ -1,3 +1,4 @@
+/* global $STM_Config */
 import xmldom from 'xmldom';
 import tt from 'counterpart';
 import linksRe, { any as linksAny } from 'app/utils/Links';
@@ -80,7 +81,7 @@ const XMLSerializer = new xmldom.XMLSerializer();
     If hideImages and mutate is set to true all images will be replaced
     by <pre> elements containing just the image url.
 */
-export default function(html, { mutate = true, hideImages = false } = {}) {
+export default function (html, { mutate = true, hideImages = false } = {}) {
     const state = { mutate };
     state.hashtags = new Set();
     state.usertags = new Set();
@@ -92,6 +93,7 @@ export default function(html, { mutate = true, hideImages = false } = {}) {
         traverse(doc, state);
         if (mutate) {
             if (hideImages) {
+                // eslint-disable-next-line no-restricted-syntax
                 for (const image of Array.from(doc.getElementsByTagName('img'))) {
                     const pre = doc.createElement('pre');
                     pre.setAttribute('class', 'image-url-only');
@@ -102,7 +104,6 @@ export default function(html, { mutate = true, hideImages = false } = {}) {
                 proxifyImages(doc);
             }
         }
-        // console.log('state', state)
         if (!mutate) return state;
         return {
             html: doc ? XMLSerializer.serializeToString(doc) : '',
@@ -117,7 +118,7 @@ export default function(html, { mutate = true, hideImages = false } = {}) {
 
 function traverse(node, state, depth = 0) {
     if (!node || !node.childNodes) return;
-    Array.from(node.childNodes).forEach(child => {
+    Array.from(node.childNodes).forEach((child) => {
         // console.log(depth, 'child.tag,data', child.tagName, child.data)
         const tag = child.tagName ? child.tagName.toLowerCase() : null;
         if (tag) state.htmltags.add(tag);
@@ -143,10 +144,10 @@ function link(state, child) {
 
             // Unlink potential phishing attempts
             if (
-                (url.indexOf('#') !== 0 && // Allow in-page links
-                    child.textContent.match(/(www\.)?hive\.blog/i) &&
-                    !url.match(/https?:\/\/(.*@)?(www\.)?hive\.blog/i)) ||
-                Phishing.looksPhishy(url)
+                (url.indexOf('#') !== 0 // Allow in-page links
+                    && child.textContent.match(/(www\.)?hive\.blog/i)
+                    && !url.match(/https?:\/\/(.*@)?(www\.)?hive\.blog/i))
+                || Phishing.looksPhishy(url)
             ) {
                 const phishyDiv = child.ownerDocument.createElement('div');
                 phishyDiv.textContent = `${child.textContent} / ${url}`;
@@ -204,7 +205,7 @@ function img(state, child) {
 function proxifyImages(doc) {
     if (!doc) return;
 
-    Array.from(doc.getElementsByTagName('img')).forEach(node => {
+    Array.from(doc.getElementsByTagName('img')).forEach((node) => {
         const url = node.getAttribute('src');
 
         if (!linksRe.local.test(url)) {
@@ -230,6 +231,7 @@ function linkifyNode(child, state) {
         if (mutate && content !== data) {
             const newChild = DOMParser.parseFromString(`<span>${content}</span>`);
             child.parentNode.replaceChild(newChild, child);
+            // eslint-disable-next-line consistent-return
             return newChild;
         }
     } catch (error) {
@@ -239,7 +241,7 @@ function linkifyNode(child, state) {
 
 function linkify(content, mutate, hashtags, usertags, images, links) {
     // hashtag
-    content = content.replace(/(^|\s)(#[-a-z\d]+)/gi, tag => {
+    content = content.replace(/(^|\s)(#[-a-z\d]+)/gi, (tag) => {
         if (/#[\d]+$/.test(tag)) return tag; // Don't allow numbers to be tags
         const space = /^\s/.test(tag) ? tag[0] : '';
         const tag2 = tag.trim().substring(1);
@@ -252,7 +254,7 @@ function linkify(content, mutate, hashtags, usertags, images, links) {
     // usertag (mention)
     // Cribbed from https://github.com/twitter/twitter-text/blob/v1.14.7/js/twitter-text.js#L90
     content = content.replace(
-        /(^|[^a-zA-Z0-9_!#$%&*@ï¼ \/=]|(^|[^a-zA-Z0-9_+~.-\/#=]))[@ï¼ ]([a-z][-\.a-z\d]+[a-z\d])/gi,
+        /(^|[^a-zA-Z0-9_!#$%&*@ï¼ /=]|(^|[^a-zA-Z0-9_+~.-/#=]))[@ï¼ ]([a-z][-.a-z\d]+[a-z\d])/gi,
         (match, preceeding1, preceeding2, user) => {
             const userLower = user.toLowerCase();
             const valid = validate_account_name(userLower) == null;
@@ -267,7 +269,7 @@ function linkify(content, mutate, hashtags, usertags, images, links) {
         }
     );
 
-    content = content.replace(linksAny('gi'), ln => {
+    content = content.replace(linksAny('gi'), (ln) => {
         if (linksRe.image.test(ln)) {
             if (images) images.add(ln);
             return `<img src="${ipfsPrefix(ln)}" />`;
diff --git a/src/shared/HtmlReady.test.js b/src/shared/HtmlReady.test.js
index bbb4315b343128eb6e4a05f048cc9dcab01fdacd..cacc5e5848bf81dc141bf4f2842b7926f6616aee 100644
--- a/src/shared/HtmlReady.test.js
+++ b/src/shared/HtmlReady.test.js
@@ -1,3 +1,4 @@
+// eslint-disable-next-line no-unused-vars
 /* global describe, it, before, beforeEach, after, afterEach */
 import HtmlReady from './HtmlReady';
 
@@ -6,26 +7,25 @@ beforeEach(() => {
 });
 
 describe('htmlready', () => {
-    it('should return an empty string if input cannot be parsed', () => {
+    // plain text no longer trigger an error from the xmldom parser
+    // @TODO find another test scenario if needed
+    it.skip('should return an empty string if input cannot be parsed', () => {
         const teststring = 'teststring lol'; // this string causes the xmldom parser to fail & error out
         expect(HtmlReady(teststring).html).toEqual('');
     });
 
     it('should allow links where the text portion and href contains hive.blog', () => {
-        const dirty =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog/signup</a></xml>';
+        const dirty = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog/signup</a></xml>';
         const res = HtmlReady(dirty).html;
         expect(res).toEqual(dirty);
     });
 
     it('should allow in-page links ', () => {
-        const dirty =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="#some-link" xmlns="http://www.w3.org/1999/xhtml">a link location</a></xml>';
+        const dirty = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="#some-link" xmlns="http://www.w3.org/1999/xhtml">a link location</a></xml>';
         const res = HtmlReady(dirty).html;
         expect(res).toEqual(dirty);
 
-        const externalDomainDirty =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://anotherwebsite.com/apples#some-link" xmlns="http://www.w3.org/1999/xhtml">Another website\'s apple section</a></xml>';
+        const externalDomainDirty = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://anotherwebsite.com/apples#some-link" xmlns="http://www.w3.org/1999/xhtml">Another website\'s apple section</a></xml>';
         const externalDomainResult = HtmlReady(externalDomainDirty).html;
         expect(externalDomainResult).toEqual(externalDomainDirty);
     });
@@ -33,107 +33,82 @@ describe('htmlready', () => {
     it('should not allow links where the text portion contains hive.blog but the link does not', () => {
         // There isn't an easy way to mock counterpart, even with proxyquire, so we just test for the missing translation message -- ugly but ok
 
-        const dirty =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com/signup" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog/signup</a></xml>';
-        const cleansed =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog/signup / https://hiveblog.com/signup</div></xml>';
+        const dirty = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com/signup" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog/signup</a></xml>';
+        const cleansed = '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog/signup / https://hiveblog.com/signup</div></xml>';
         const res = HtmlReady(dirty).html;
         expect(res).toEqual(cleansed);
 
-        const cased =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com/signup" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog/signup</a></xml>';
-        const cleansedcased =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog/signup / https://hiveblog.com/signup</div></xml>';
+        const cased = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com/signup" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog/signup</a></xml>';
+        const cleansedcased = '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog/signup / https://hiveblog.com/signup</div></xml>';
         const rescased = HtmlReady(cased).html;
         expect(rescased).toEqual(cleansedcased);
 
-        const withuser =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com/signup" xmlns="http://www.w3.org/1999/xhtml">https://official@hive.blog/signup</a></xml>';
-        const cleansedwithuser =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://official@hive.blog/signup / https://hiveblog.com/signup</div></xml>';
+        const withuser = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com/signup" xmlns="http://www.w3.org/1999/xhtml">https://official@hive.blog/signup</a></xml>';
+        const cleansedwithuser = '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://official@hive.blog/signup / https://hiveblog.com/signup</div></xml>';
         const reswithuser = HtmlReady(withuser).html;
         expect(reswithuser).toEqual(cleansedwithuser);
 
-        const noendingslash =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog</a></xml>';
-        const cleansednoendingslash =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog / https://hiveblog.com</div></xml>';
+        const noendingslash = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog</a></xml>';
+        const cleansednoendingslash = '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog / https://hiveblog.com</div></xml>';
         const resnoendingslash = HtmlReady(noendingslash).html;
         expect(resnoendingslash).toEqual(cleansednoendingslash);
 
         //make sure extra-domain in-page links are also caught by our phishy link scan.
-        const domainInpage =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com#really-evil-inpage-component" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog</a></xml>';
-        const cleanDomainInpage =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog / https://hiveblog.com#really-evil-inpage-component</div></xml>';
+        const domainInpage = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com#really-evil-inpage-component" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog</a></xml>';
+        const cleanDomainInpage = '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog / https://hiveblog.com#really-evil-inpage-component</div></xml>';
         const resDomainInpage = HtmlReady(domainInpage).html;
         expect(resDomainInpage).toEqual(cleanDomainInpage);
 
         // anchor links including hive.blog should be allowed
-        const inpage =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="#https://hiveblog.com/unlikelyinpagelink" xmlns="http://www.w3.org/1999/xhtml">Go down lower for https://hive.blog info!</a></xml>';
-        const cleanInpage =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="#https://hiveblog.com/unlikelyinpagelink" xmlns="http://www.w3.org/1999/xhtml">Go down lower for https://hive.blog info!</a></xml>';
+        const inpage = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="#https://hiveblog.com/unlikelyinpagelink" xmlns="http://www.w3.org/1999/xhtml">Go down lower for https://hive.blog info!</a></xml>';
+        const cleanInpage = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="#https://hiveblog.com/unlikelyinpagelink" xmlns="http://www.w3.org/1999/xhtml">Go down lower for https://hive.blog info!</a></xml>';
         const resinpage = HtmlReady(inpage).html;
         expect(resinpage).toEqual(cleanInpage);
 
-        const noprotocol =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com/" xmlns="http://www.w3.org/1999/xhtml">for a good time, visit hive.blog today</a></xml>';
-        const cleansednoprotocol =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">for a good time, visit hive.blog today / https://hiveblog.com/</div></xml>';
+        const noprotocol = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hiveblog.com/" xmlns="http://www.w3.org/1999/xhtml">for a good time, visit hive.blog today</a></xml>';
+        const cleansednoprotocol = '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">for a good time, visit hive.blog today / https://hiveblog.com/</div></xml>';
         const resnoprotocol = HtmlReady(noprotocol).html;
         expect(resnoprotocol).toEqual(cleansednoprotocol);
     });
 
     it('should allow more than one link per post', () => {
-        const somanylinks =
-            '<xml xmlns="http://www.w3.org/1999/xhtml">https://foo.com and https://blah.com</xml>';
-        const htmlified =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><span><a href="https://foo.com">https://foo.com</a> and <a href="https://blah.com">https://blah.com</a></span></xml>';
+        const somanylinks = '<xml xmlns="http://www.w3.org/1999/xhtml">https://foo.com and https://blah.com</xml>';
+        const htmlified = '<xml xmlns="http://www.w3.org/1999/xhtml"><span><a href="https://foo.com">https://foo.com</a> and <a href="https://blah.com">https://blah.com</a></span></xml>';
         const res = HtmlReady(somanylinks).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should link usernames', () => {
-        const textwithmentions =
-            '<xml xmlns="http://www.w3.org/1999/xhtml">@username (@a1b2, whatever</xml>';
-        const htmlified =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><span><a href="/@username">@username</a> (<a href="/@a1b2">@a1b2</a>, whatever</span></xml>';
+        const textwithmentions = '<xml xmlns="http://www.w3.org/1999/xhtml">@username (@a1b2, whatever</xml>';
+        const htmlified = '<xml xmlns="http://www.w3.org/1999/xhtml"><span><a href="/@username">@username</a> (<a href="/@a1b2">@a1b2</a>, whatever</span></xml>';
         const res = HtmlReady(textwithmentions).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should detect only valid mentions', () => {
-        const textwithmentions =
-            '@abc @xx (@aaa1) @_x @eee, @fff! https://x.com/@zzz/test';
+        const textwithmentions = '@abc @xx (@aaa1) @_x @eee, @fff! https://x.com/@zzz/test';
         const res = HtmlReady(textwithmentions, { mutate: false });
         const usertags = Array.from(res.usertags).join(',');
         expect(usertags).toEqual('abc,aaa1,eee,fff');
     });
 
     it('should not link usernames at the front of linked text', () => {
-        const nameinsidelinkfirst =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup">@hihi</a></xml>';
-        const htmlified =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup">@hihi</a></xml>';
+        const nameinsidelinkfirst = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup">@hihi</a></xml>';
+        const htmlified = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup">@hihi</a></xml>';
         const res = HtmlReady(nameinsidelinkfirst).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should not link usernames in the middle of linked text', () => {
-        const nameinsidelinkmiddle =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup">hi @hihi</a></xml>';
-        const htmlified =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup">hi @hihi</a></xml>';
+        const nameinsidelinkmiddle = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup">hi @hihi</a></xml>';
+        const htmlified = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://hive.blog/signup">hi @hihi</a></xml>';
         const res = HtmlReady(nameinsidelinkmiddle).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should make relative links absolute with https by default', () => {
-        const noRelativeHttpHttpsOrHive =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="land.com"> zippy </a> </xml>';
-        const cleansedRelativeHttpHttpsOrHive =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://land.com"> zippy </a> </xml>';
+        const noRelativeHttpHttpsOrHive = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="land.com"> zippy </a> </xml>';
+        const cleansedRelativeHttpHttpsOrHive = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://land.com"> zippy </a> </xml>';
         const resNoRelativeHttpHttpsOrHive = HtmlReady(
             noRelativeHttpHttpsOrHive
         ).html;
@@ -143,10 +118,8 @@ describe('htmlready', () => {
     });
 
     it('should allow the hive uri scheme for vessel links', () => {
-        const noRelativeHttpHttpsOrHive =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="hive://veins.com"> arteries </a> </xml>';
-        const cleansedRelativeHttpHttpsOrHive =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="hive://veins.com"> arteries </a> </xml>';
+        const noRelativeHttpHttpsOrHive = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="hive://veins.com"> arteries </a> </xml>';
+        const cleansedRelativeHttpHttpsOrHive = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="hive://veins.com"> arteries </a> </xml>';
         const resNoRelativeHttpHttpsOrHive = HtmlReady(
             noRelativeHttpHttpsOrHive
         ).html;
@@ -156,26 +129,17 @@ describe('htmlready', () => {
     });
 
     it('should not mistake usernames in valid comment urls as mentions', () => {
-        const url =
-            'https://hive.blog/spam/@test-safari/34gfex-december-spam#@test-safari/re-test-safari-34gfex-december-spam-20180110t234627522z';
+        const url = 'https://hive.blog/spam/@test-safari/34gfex-december-spam#@test-safari/re-test-safari-34gfex-december-spam-20180110t234627522z';
         const prefix = '<xml xmlns="http://www.w3.org/1999/xhtml">';
         const suffix = '</xml>';
         const input = prefix + url + suffix;
-        const expected =
-            prefix +
-            '<span><a href="' +
-            url +
-            '">' +
-            url +
-            '</a></span>' +
-            suffix;
+        const expected = prefix + '<span><a href="' + url + '">' + url + '</a></span>' + suffix;
         const result = HtmlReady(input).html;
         expect(result).toEqual(expected);
     });
 
     it('should not modify text when mention contains invalid username', () => {
-        const body =
-            'valid mention match but invalid username..@usernamewaytoolong';
+        const body = 'valid mention match but invalid username..@usernamewaytoolong';
         const prefix = '<xml xmlns="http://www.w3.org/1999/xhtml">';
         const suffix = '</xml>';
         const input = prefix + body + suffix;
@@ -184,90 +148,71 @@ describe('htmlready', () => {
     });
 
     it('should detect urls that are phishy', () => {
-        const dirty =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://steewit.com/signup" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog/signup</a></xml>';
-        const cleansed =
-            '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog/signup / https://steewit.com/signup</div></xml>';
+        const dirty = '<xml xmlns="http://www.w3.org/1999/xhtml"><a href="https://steewit.com/signup" xmlns="http://www.w3.org/1999/xhtml">https://hive.blog/signup</a></xml>';
+        const cleansed = '<xml xmlns="http://www.w3.org/1999/xhtml"><div title="missing translation: en.g.phishy_message" class="phishy">https://hive.blog/signup / https://steewit.com/signup</div></xml>';
         const res = HtmlReady(dirty).html;
         expect(res).toEqual(cleansed);
     });
 
     it('should not omit text on same line as youtube link', () => {
-        const testString =
-            '<html><p>before text https://www.youtube.com/watch?v=NrS9vvNgx7I after text</p></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><p>before text ~~~ embed:NrS9vvNgx7I youtube ~~~ after text</p></html>';
+        const testString = '<html><p>before text https://www.youtube.com/watch?v=NrS9vvNgx7I after text</p></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><p>before text ~~~ embed:NrS9vvNgx7I youtube ~~~ after text</p></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should not omit text on same line as vimeo link', () => {
-        const testString =
-            '<html><p>before text https://vimeo.com/193628816/ after text</p></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><p>before text ~~~ embed:193628816 vimeo ~~~ after text</p></html>';
+        const testString = '<html><p>before text https://vimeo.com/193628816/ after text</p></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><p>before text ~~~ embed:193628816 vimeo ~~~ after text</p></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should handle short youtu.be link start time', () => {
-        const testString =
-            '<html><p>https://youtu.be/ToQfmnj7FR8?t=4572s</p></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:ToQfmnj7FR8 youtube 4572 ~~~</p></html>';
+        const testString = '<html><p>https://youtu.be/ToQfmnj7FR8?t=4572s</p></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:ToQfmnj7FR8 youtube 4572 ~~~</p></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should handle youtube link start time', () => {
-        const testString =
-            '<html><p>https://youtube.com/watch?v=ToQfmnj7FR8&t=4572</p></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:ToQfmnj7FR8 youtube 4572 ~~~</p></html>';
+        const testString = '<html><p>https://youtube.com/watch?v=ToQfmnj7FR8&t=4572</p></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:ToQfmnj7FR8 youtube 4572 ~~~</p></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should handle vimeo link', () => {
         const testString = '<html><p>https://vimeo.com/193628816/</p></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:193628816 vimeo ~~~</p></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:193628816 vimeo ~~~</p></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should handle vimeo link start time', () => {
-        const testString =
-            '<html><p>https://vimeo.com/193628816/#t=4572s</p></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:193628816 vimeo 4572 ~~~</p></html>';
+        const testString = '<html><p>https://vimeo.com/193628816/#t=4572s</p></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:193628816 vimeo 4572 ~~~</p></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should handle twitch link', () => {
-        const testString =
-            '<html><p>https://www.twitch.tv/videos/1234567890</p></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:?video=1234567890 twitch ~~~</p></html>';
+        const testString = '<html><p>https://www.twitch.tv/videos/1234567890</p></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><p>~~~ embed:?video=1234567890 twitch ~~~</p></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should not omit text on same line as dtube link', () => {
-        const testString =
-            '<html><p>before text https://d.tube/#!/v/tibfox/mvh7g26e after text</p></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><p>before text ~~~ embed:tibfox/mvh7g26e dtube ~~~ after text</p></html>';
+        const testString = '<html><p>before text https://d.tube/#!/v/tibfox/mvh7g26e after text</p></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><p>before text ~~~ embed:tibfox/mvh7g26e dtube ~~~ after text</p></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
 
     it('should handle dtube embed', () => {
-        const testString =
-            '<html><iframe width="560" height="315" src="https://emb.d.tube/#!/dbroze/8lsh5nf7" frameborder="0" allowfullscreen></iframe></html>';
-        const htmlified =
-            '<html xmlns="http://www.w3.org/1999/xhtml"><div class="videoWrapper"><iframe width="560" height="315" src="https://emb.d.tube/#!/dbroze/8lsh5nf7" frameborder="0" allowfullscreen="allowfullscreen" xmlns="http://www.w3.org/1999/xhtml"></iframe></div></html>';
+        const testString = '<html><iframe width="560" height="315" src="https://emb.d.tube/#!/dbroze/8lsh5nf7" frameborder="0" allowfullscreen></iframe></html>';
+        const htmlified = '<html xmlns="http://www.w3.org/1999/xhtml"><div class="videoWrapper"><iframe width="560" height="315" src="https://emb.d.tube/#!/dbroze/8lsh5nf7" frameborder="0" allowfullscreen="allowfullscreen" xmlns="http://www.w3.org/1999/xhtml"></iframe></div></html>';
         const res = HtmlReady(testString).html;
         expect(res).toEqual(htmlified);
     });
diff --git a/src/shared/UniversalRender.jsx b/src/shared/UniversalRender.jsx
index 1664aae4fc16ff734e5d47085f8390ea2de7fd5e..8908f6bb68a02e6b9688c6f395ed4c27f20d7731 100644
--- a/src/shared/UniversalRender.jsx
+++ b/src/shared/UniversalRender.jsx
@@ -5,13 +5,7 @@ import Iso from 'iso';
 import React from 'react';
 import { render } from 'react-dom';
 import { renderToString } from 'react-dom/server';
-import {
-    Router,
-    RouterContext,
-    match,
-    applyRouterMiddleware,
-    browserHistory,
-} from 'react-router';
+import { Router, RouterContext, match, applyRouterMiddleware, browserHistory } from 'react-router';
 import { Provider } from 'react-redux';
 import { api } from '@hiveio/hive-js';
 
@@ -40,7 +34,7 @@ if (process.env.OFFLINE_SSR_TEST) {
     get_content_perf = require(uri + testDataDir + '/get_content');
 }
 
-const calcOffsetRoot = startEl => {
+const calcOffsetRoot = (startEl) => {
     let offset = 0;
     let el = startEl;
     while (el) {
@@ -88,8 +82,7 @@ const SCROLL_DIRECTION_DOWN = 'down';
  * If an element with this id is present, the page does not want us to detect navigation history direction (clicking links/forward button or back button)
  * @type {string}
  */
-const DISABLE_ROUTER_HISTORY_NAV_DIRECTION_EL_ID =
-    'disable_router_nav_history_direction_check';
+const DISABLE_ROUTER_HISTORY_NAV_DIRECTION_EL_ID = 'disable_router_nav_history_direction_check';
 
 let scrollTopTimeout = null;
 
@@ -117,15 +110,13 @@ const scrollTop = (el, topOffset, prevDocumentInfo, triesRemaining) => {
     //NOR has the document changed in a meaningful way since we last looked at it
     if (prevDocumentInfo.direction === SCROLL_DIRECTION_DOWN) {
         doScroll =
-            prevDocumentInfo.scrollTop <=
-                documentInfo.scrollTop + SCROLL_FUDGE_PIXELS &&
+            prevDocumentInfo.scrollTop <= documentInfo.scrollTop + SCROLL_FUDGE_PIXELS &&
             (documentInfo.scrollTop < documentInfo.scrollTarget ||
                 prevDocumentInfo.scrollTarget < documentInfo.scrollTarget ||
                 prevDocumentInfo.scrollHeight < documentInfo.scrollHeight);
     } else if (prevDocumentInfo.direction === SCROLL_DIRECTION_UP) {
         doScroll =
-            prevDocumentInfo.scrollTop >=
-                documentInfo.scrollTop - SCROLL_FUDGE_PIXELS &&
+            prevDocumentInfo.scrollTop >= documentInfo.scrollTop - SCROLL_FUDGE_PIXELS &&
             (documentInfo.scrollTop > documentInfo.scrollTarget ||
                 prevDocumentInfo.scrollTarget > documentInfo.scrollTarget ||
                 prevDocumentInfo.scrollHeight > documentInfo.scrollHeight);
@@ -135,8 +126,7 @@ const scrollTop = (el, topOffset, prevDocumentInfo, triesRemaining) => {
         window.scrollTo(0, documentInfo.scrollTarget);
         if (triesRemaining > 0) {
             scrollTopTimeout = setTimeout(
-                () =>
-                    scrollTop(el, topOffset, documentInfo, triesRemaining - 1),
+                () => scrollTop(el, topOffset, documentInfo, triesRemaining - 1),
                 SCROLL_TOP_DELAY_MS
             );
         }
@@ -181,9 +171,7 @@ class OffsetScrollBehavior extends ScrollBehavior {
                 scrollTarget: calcOffsetRoot(el) + topOffset,
             };
             documentInfo.direction =
-                documentInfo.scrollTop < documentInfo.scrollTarget
-                    ? SCROLL_DIRECTION_DOWN
-                    : SCROLL_DIRECTION_UP;
+                documentInfo.scrollTop < documentInfo.scrollTarget ? SCROLL_DIRECTION_DOWN : SCROLL_DIRECTION_UP;
             scrollTop(el, topOffset, documentInfo, SCROLL_TOP_TRIES); //this function does the actual work of scrolling.
         } else {
             super.scrollToTarget(element, newTarget);
@@ -192,7 +180,7 @@ class OffsetScrollBehavior extends ScrollBehavior {
 }
 //END: SCROLL CODE
 
-const bindMiddleware = middleware => {
+const bindMiddleware = (middleware) => {
     if (process.env.BROWSER && process.env.NODE_ENV === 'development') {
         const { composeWithDevTools } = require('redux-devtools-extension');
         return composeWithDevTools(applyMiddleware(...middleware));
@@ -201,12 +189,10 @@ const bindMiddleware = middleware => {
 };
 
 const runRouter = (location, routes) => {
-    return new Promise(resolve =>
-        match({ routes, location }, (...args) => resolve(args))
-    );
+    return new Promise((resolve) => match({ routes, location }, (...args) => resolve(args)));
 };
 
-const onRouterError = error => {
+const onRouterError = (error) => {
     console.error('onRouterError', error);
 };
 
@@ -220,14 +206,7 @@ const onRouterError = error => {
  * @param {RequestTimer} requestTimer
  * @returns promise
  */
-export async function serverRender(
-    location,
-    initialState,
-    ErrorPage,
-    userPreferences,
-    offchain,
-    requestTimer
-) {
+export async function serverRender(location, initialState, ErrorPage, userPreferences, offchain, requestTimer) {
     let error, redirect, renderProps;
 
     try {
@@ -237,9 +216,7 @@ export async function serverRender(
         return {
             title: 'Routing error - Hive',
             statusCode: 500,
-            body: renderToString(
-                ErrorPage ? <ErrorPage /> : <span>Routing error</span>
-            ),
+            body: renderToString(ErrorPage ? <ErrorPage /> : <span>Routing error</span>),
         };
     }
 
@@ -262,10 +239,7 @@ export async function serverRender(
 
         // If a user profile URL is requested but no profile information is
         // included in the API response, return User Not Found.
-        if (
-            url.match(routeRegex.UserProfile) &&
-            Object.getOwnPropertyNames(onchain.profiles).length === 0
-        ) {
+        if (url.match(routeRegex.UserProfile) && Object.getOwnPropertyNames(onchain.profiles).length === 0) {
             // protect for invalid account
             return {
                 title: 'User Not Found - Hive',
@@ -281,10 +255,7 @@ export async function serverRender(
             }
         }
         // Are we loading an un-category-aliased post?
-        if (
-            !url.match(routeRegex.UserProfile) &&
-            url.match(routeRegex.PostNoCategory)
-        ) {
+        if (!url.match(routeRegex.UserProfile) && url.match(routeRegex.PostNoCategory)) {
             let header;
             if (process.env.OFFLINE_SSR_TEST) {
                 header = get_content_perf;
@@ -308,11 +279,11 @@ export async function serverRender(
 
         // Insert the special posts into the list of posts, so there is no
         // jumping of content.
-        offchain.special_posts.featured_posts.forEach(post => {
+        offchain.special_posts.featured_posts.forEach((post) => {
             onchain.content[`${post.author}/${post.permlink}`] = post;
         });
 
-        offchain.special_posts.promoted_posts.forEach(post => {
+        offchain.special_posts.promoted_posts.forEach((post) => {
             onchain.content[`${post.author}/${post.permlink}`] = post;
         });
 
@@ -388,11 +359,7 @@ export async function serverRender(
  */
 export function clientRender(initialState) {
     const sagaMiddleware = createSagaMiddleware();
-    const store = createStore(
-        rootReducer,
-        initialState,
-        bindMiddleware([sagaMiddleware])
-    );
+    const store = createStore(rootReducer, initialState, bindMiddleware([sagaMiddleware]));
     sagaMiddleware.run(rootSaga);
     const history = syncHistoryWithStore(browserHistory, store);
 
@@ -400,15 +367,13 @@ export function clientRender(initialState) {
      * When to scroll - on hash link navigation determine if the page should scroll to that element (forward nav, or ignore nav direction)
      */
     const scroll = useScroll({
-        createScrollBehavior: config => new OffsetScrollBehavior(config), //information assembler for has scrolling.
+        createScrollBehavior: (config) => new OffsetScrollBehavior(config), //information assembler for has scrolling.
         shouldUpdateScroll: (prevLocation, { location }) => {
             // eslint-disable-line no-shadow
             //if there is a hash, we may want to scroll to it
             if (location.hash) {
                 //if disableNavDirectionCheck exists, we want to always navigate to the hash (the page is telling us that's desired behavior based on the element's existence
-                const disableNavDirectionCheck = document.getElementById(
-                    DISABLE_ROUTER_HISTORY_NAV_DIRECTION_EL_ID
-                );
+                const disableNavDirectionCheck = document.getElementById(DISABLE_ROUTER_HISTORY_NAV_DIRECTION_EL_ID);
                 //we want to navigate to the corresponding id=<hash> element on 'PUSH' navigation (prev null + POP is a new window url nav ~= 'PUSH')
                 if (
                     disableNavDirectionCheck ||
@@ -423,11 +388,7 @@ export function clientRender(initialState) {
     });
 
     if (process.env.NODE_ENV === 'production') {
-        console.log(
-            '%c%s',
-            'color: red; background: yellow; font-size: 24px;',
-            'WARNING!'
-        );
+        console.log('%c%s', 'color: red; background: yellow; font-size: 24px;', 'WARNING!');
         console.log(
             '%c%s',
             'color: black; font-size: 16px;',
diff --git a/src/shared/api_client/ChainConfig.js b/src/shared/api_client/ChainConfig.js
index dbf37997d61cb59ed0c896990be78ea33a2f93f2..d3f3deace6f334026a3a1c9cdbfa42e9a5b6b23f 100644
--- a/src/shared/api_client/ChainConfig.js
+++ b/src/shared/api_client/ChainConfig.js
@@ -3,7 +3,7 @@ import * as steem from '@hiveio/hive-js';
 steem.config.set('address_prefix', 'STM');
 
 let chain_id = '';
-for (let i = 0; i < 32; i++) chain_id += '00';
+for (let i = 0; i < 32; i += 1) chain_id += '00';
 
 module.exports = {
     address_prefix: 'STM',
diff --git a/src/shared/clash/object2json.js b/src/shared/clash/object2json.js
index 9e6ea453a0de556ad8f73e44363886ab7f66b9b1..e09201b192e4a7d0143f1c6d3a4eeddd4813fb0b 100644
--- a/src/shared/clash/object2json.js
+++ b/src/shared/clash/object2json.js
@@ -1,5 +1,5 @@
 const expo = {
-    ifObjectToJSON: item => {
+    ifObjectToJSON: (item) => {
         if (typeof item === 'object') {
             try {
                 return JSON.stringify(item);
@@ -10,7 +10,7 @@ const expo = {
         return item;
     },
 
-    ifStringParseJSON: item => {
+    ifStringParseJSON: (item) => {
         if (typeof item === 'string') {
             try {
                 return JSON.parse(item);
@@ -25,7 +25,7 @@ export { expo as default };
 
 exports.test = {
     run: () => {
-        let ob = { a: 2 },
+        const ob = { a: 2 },
             st = '{"a":2}';
         console.log('test eq1', expo.ifObjectToJSON(ob) == st);
         console.log('test eq2', expo.ifStringParseJSON(st).a == ob.a);
diff --git a/webpack/base.config.js b/webpack/base.config.js
index b0b574ee61e649b9d82de4120ef0658eaa52439b..13366c60c2b00aa1a8a14303f26e0b3c4a751124 100644
--- a/webpack/base.config.js
+++ b/webpack/base.config.js
@@ -1,13 +1,11 @@
 const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
 const path = require('path');
-const webpack = require('webpack');
 const MiniCssExtractPlugin = require('mini-css-extract-plugin');
+const Webpack_isomorphic_tools_plugin = require('webpack-isomorphic-tools/plugin');
 const writeStats = require('./utils/write-stats');
 
-const Webpack_isomorphic_tools_plugin = require('webpack-isomorphic-tools/plugin');
-const webpack_isomorphic_tools_plugin =
-    new Webpack_isomorphic_tools_plugin(require('./webpack-isotools-config'))
-        .development();
+// eslint-disable-next-line global-require
+const webpack_isomorphic_tools_plugin = new Webpack_isomorphic_tools_plugin(require('./webpack-isotools-config')).development();
 
 const devMode = process.env.NODE_ENV !== 'production';
 
@@ -18,7 +16,7 @@ const plugins = [
             statsOptions: { source: false }
         }),
         function () {
-            this.plugin('done', writeStats);
+            this.hooks.done.tap('WriteStats', writeStats);
         },
         webpack_isomorphic_tools_plugin,
     ];
@@ -68,6 +66,7 @@ const scss_loaders = [
 ];
 
 module.exports = {
+    mode: 'development',
     entry: {
         app: ['core-js/stable', './src/app/Main.js'],
         vendor: [
@@ -96,7 +95,8 @@ module.exports = {
     module: {
         rules: [
             {
-                test: /\.(jpe?g|png)/, use: [
+                test: /\.(jpe?g|png)/,
+use: [
                     {
                         loader: 'url-loader',
                         options: {
diff --git a/webpack/dev.config.js b/webpack/dev.config.js
index e86f2421ddc3665f5c675d3df4e7689e8ab542df..f0652853a1cd38280ae0c4db2e103a963459be90 100644
--- a/webpack/dev.config.js
+++ b/webpack/dev.config.js
@@ -32,7 +32,7 @@ module.exports = {
         function () {
             console.log("Please wait for app server startup (~60s)" +
                 " after webpack server startup...");
-            this.plugin('done', startKoa);
+            this.hooks.done.tap('StartKoa', startKoa);
         },
         new LiveReloadPlugin({
             appendScriptTag: true,
diff --git a/yarn.lock b/yarn.lock
index ab78ca6dd08a038016b9de114560c9d1514df23e..0cff9524a789dd2469e9a5dfb788bfa7c8890b65 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -19,6 +19,13 @@
     "@nicolo-ribaudo/chokidar-2" "^2.1.8"
     chokidar "^3.4.0"
 
+"@babel/code-frame@7.10.4", "@babel/code-frame@^7.10.4":
+  version "7.10.4"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
+  integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
+  dependencies:
+    "@babel/highlight" "^7.10.4"
+
 "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
@@ -34,18 +41,45 @@
     esutils "^2.0.2"
     js-tokens "^3.0.0"
 
-"@babel/code-frame@^7.10.4":
-  version "7.10.4"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
-  integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
+"@babel/code-frame@^7.14.5", "@babel/code-frame@^7.5.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
+  integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
   dependencies:
-    "@babel/highlight" "^7.10.4"
+    "@babel/highlight" "^7.14.5"
 
 "@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.5.tgz#f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9"
   integrity sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==
 
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0":
+  version "7.15.0"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176"
+  integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==
+
+"@babel/core@7.12.9":
+  version "7.12.9"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8"
+  integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==
+  dependencies:
+    "@babel/code-frame" "^7.10.4"
+    "@babel/generator" "^7.12.5"
+    "@babel/helper-module-transforms" "^7.12.1"
+    "@babel/helpers" "^7.12.5"
+    "@babel/parser" "^7.12.7"
+    "@babel/template" "^7.12.7"
+    "@babel/traverse" "^7.12.9"
+    "@babel/types" "^7.12.7"
+    convert-source-map "^1.7.0"
+    debug "^4.1.0"
+    gensync "^1.0.0-beta.1"
+    json5 "^2.1.2"
+    lodash "^4.17.19"
+    resolve "^1.3.2"
+    semver "^5.4.1"
+    source-map "^0.5.0"
+
 "@babel/core@^7.0.0":
   version "7.12.3"
   resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8"
@@ -68,6 +102,27 @@
     semver "^5.4.1"
     source-map "^0.5.0"
 
+"@babel/core@^7.12.10", "@babel/core@^7.7.5":
+  version "7.15.5"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9"
+  integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==
+  dependencies:
+    "@babel/code-frame" "^7.14.5"
+    "@babel/generator" "^7.15.4"
+    "@babel/helper-compilation-targets" "^7.15.4"
+    "@babel/helper-module-transforms" "^7.15.4"
+    "@babel/helpers" "^7.15.4"
+    "@babel/parser" "^7.15.5"
+    "@babel/template" "^7.15.4"
+    "@babel/traverse" "^7.15.4"
+    "@babel/types" "^7.15.4"
+    convert-source-map "^1.7.0"
+    debug "^4.1.0"
+    gensync "^1.0.0-beta.2"
+    json5 "^2.1.2"
+    semver "^6.3.0"
+    source-map "^0.5.0"
+
 "@babel/generator@^7.12.1", "@babel/generator@^7.12.5":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de"
@@ -77,6 +132,15 @@
     jsesc "^2.5.1"
     source-map "^0.5.0"
 
+"@babel/generator@^7.12.11", "@babel/generator@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0"
+  integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==
+  dependencies:
+    "@babel/types" "^7.15.4"
+    jsesc "^2.5.1"
+    source-map "^0.5.0"
+
 "@babel/generator@^7.9.5":
   version "7.9.5"
   resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9"
@@ -94,6 +158,13 @@
   dependencies:
     "@babel/types" "^7.10.4"
 
+"@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835"
+  integrity sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4":
   version "7.10.4"
   resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3"
@@ -102,6 +173,14 @@
     "@babel/helper-explode-assignable-expression" "^7.10.4"
     "@babel/types" "^7.10.4"
 
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f"
+  integrity sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==
+  dependencies:
+    "@babel/helper-explode-assignable-expression" "^7.15.4"
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-builder-react-jsx-experimental@^7.12.1":
   version "7.12.4"
   resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz#55fc1ead5242caa0ca2875dcb8eed6d311e50f48"
@@ -129,6 +208,16 @@
     browserslist "^4.14.5"
     semver "^5.5.0"
 
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9"
+  integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==
+  dependencies:
+    "@babel/compat-data" "^7.15.0"
+    "@babel/helper-validator-option" "^7.14.5"
+    browserslist "^4.16.6"
+    semver "^6.3.0"
+
 "@babel/helper-create-class-features-plugin@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e"
@@ -140,6 +229,18 @@
     "@babel/helper-replace-supers" "^7.12.1"
     "@babel/helper-split-export-declaration" "^7.10.4"
 
+"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e"
+  integrity sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.15.4"
+    "@babel/helper-function-name" "^7.15.4"
+    "@babel/helper-member-expression-to-functions" "^7.15.4"
+    "@babel/helper-optimise-call-expression" "^7.15.4"
+    "@babel/helper-replace-supers" "^7.15.4"
+    "@babel/helper-split-export-declaration" "^7.15.4"
+
 "@babel/helper-create-regexp-features-plugin@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz#18b1302d4677f9dc4740fe8c9ed96680e29d37e8"
@@ -149,6 +250,14 @@
     "@babel/helper-regex" "^7.10.4"
     regexpu-core "^4.7.1"
 
+"@babel/helper-create-regexp-features-plugin@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4"
+  integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.14.5"
+    regexpu-core "^4.7.1"
+
 "@babel/helper-define-map@^7.10.4":
   version "7.10.5"
   resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30"
@@ -158,6 +267,34 @@
     "@babel/types" "^7.10.5"
     lodash "^4.17.19"
 
+"@babel/helper-define-polyfill-provider@^0.1.5":
+  version "0.1.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e"
+  integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.13.0"
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/traverse" "^7.13.0"
+    debug "^4.1.1"
+    lodash.debounce "^4.0.8"
+    resolve "^1.14.2"
+    semver "^6.1.2"
+
+"@babel/helper-define-polyfill-provider@^0.2.2":
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6"
+  integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==
+  dependencies:
+    "@babel/helper-compilation-targets" "^7.13.0"
+    "@babel/helper-module-imports" "^7.12.13"
+    "@babel/helper-plugin-utils" "^7.13.0"
+    "@babel/traverse" "^7.13.0"
+    debug "^4.1.1"
+    lodash.debounce "^4.0.8"
+    resolve "^1.14.2"
+    semver "^6.1.2"
+
 "@babel/helper-explode-assignable-expression@^7.10.4":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633"
@@ -165,6 +302,13 @@
   dependencies:
     "@babel/types" "^7.12.1"
 
+"@babel/helper-explode-assignable-expression@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz#f9aec9d219f271eaf92b9f561598ca6b2682600c"
+  integrity sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-function-name@^7.10.4":
   version "7.10.4"
   resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
@@ -174,6 +318,15 @@
     "@babel/template" "^7.10.4"
     "@babel/types" "^7.10.4"
 
+"@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc"
+  integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==
+  dependencies:
+    "@babel/helper-get-function-arity" "^7.15.4"
+    "@babel/template" "^7.15.4"
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-function-name@^7.9.5":
   version "7.9.5"
   resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c"
@@ -190,6 +343,13 @@
   dependencies:
     "@babel/types" "^7.10.4"
 
+"@babel/helper-get-function-arity@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b"
+  integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-get-function-arity@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5"
@@ -204,6 +364,13 @@
   dependencies:
     "@babel/types" "^7.10.4"
 
+"@babel/helper-hoist-variables@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df"
+  integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-member-expression-to-functions@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c"
@@ -211,6 +378,20 @@
   dependencies:
     "@babel/types" "^7.12.1"
 
+"@babel/helper-member-expression-to-functions@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef"
+  integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
+"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f"
+  integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-module-imports@^7.12.1":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
@@ -233,6 +414,20 @@
     "@babel/types" "^7.12.1"
     lodash "^4.17.19"
 
+"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz#962cc629a7f7f9a082dd62d0307fa75fe8788d7c"
+  integrity sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==
+  dependencies:
+    "@babel/helper-module-imports" "^7.15.4"
+    "@babel/helper-replace-supers" "^7.15.4"
+    "@babel/helper-simple-access" "^7.15.4"
+    "@babel/helper-split-export-declaration" "^7.15.4"
+    "@babel/helper-validator-identifier" "^7.14.9"
+    "@babel/template" "^7.15.4"
+    "@babel/traverse" "^7.15.4"
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-optimise-call-expression@^7.10.4":
   version "7.10.4"
   resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673"
@@ -240,11 +435,23 @@
   dependencies:
     "@babel/types" "^7.10.4"
 
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+"@babel/helper-optimise-call-expression@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171"
+  integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
+"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
   version "7.10.4"
   resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
   integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
 
+"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
+  integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
+
 "@babel/helper-regex@^7.10.4":
   version "7.10.5"
   resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0"
@@ -261,6 +468,15 @@
     "@babel/helper-wrap-function" "^7.10.4"
     "@babel/types" "^7.12.1"
 
+"@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz#2637c0731e4c90fbf58ac58b50b2b5a192fc970f"
+  integrity sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.15.4"
+    "@babel/helper-wrap-function" "^7.15.4"
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-replace-supers@^7.12.1":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9"
@@ -271,6 +487,16 @@
     "@babel/traverse" "^7.12.5"
     "@babel/types" "^7.12.5"
 
+"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a"
+  integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==
+  dependencies:
+    "@babel/helper-member-expression-to-functions" "^7.15.4"
+    "@babel/helper-optimise-call-expression" "^7.15.4"
+    "@babel/traverse" "^7.15.4"
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-simple-access@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136"
@@ -278,6 +504,13 @@
   dependencies:
     "@babel/types" "^7.12.1"
 
+"@babel/helper-simple-access@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b"
+  integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
@@ -285,6 +518,13 @@
   dependencies:
     "@babel/types" "^7.12.1"
 
+"@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz#707dbdba1f4ad0fa34f9114fc8197aec7d5da2eb"
+  integrity sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0":
   version "7.11.0"
   resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
@@ -292,6 +532,13 @@
   dependencies:
     "@babel/types" "^7.11.0"
 
+"@babel/helper-split-export-declaration@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257"
+  integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==
+  dependencies:
+    "@babel/types" "^7.15.4"
+
 "@babel/helper-split-export-declaration@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9"
@@ -304,6 +551,11 @@
   resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
   integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
 
+"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9":
+  version "7.14.9"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48"
+  integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
+
 "@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5":
   version "7.9.5"
   resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
@@ -314,6 +566,11 @@
   resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9"
   integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==
 
+"@babel/helper-validator-option@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"
+  integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==
+
 "@babel/helper-wrap-function@^7.10.4":
   version "7.12.3"
   resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9"
@@ -324,6 +581,16 @@
     "@babel/traverse" "^7.10.4"
     "@babel/types" "^7.10.4"
 
+"@babel/helper-wrap-function@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz#6f754b2446cfaf3d612523e6ab8d79c27c3a3de7"
+  integrity sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==
+  dependencies:
+    "@babel/helper-function-name" "^7.15.4"
+    "@babel/template" "^7.15.4"
+    "@babel/traverse" "^7.15.4"
+    "@babel/types" "^7.15.4"
+
 "@babel/helpers@^7.12.1":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e"
@@ -333,6 +600,15 @@
     "@babel/traverse" "^7.12.5"
     "@babel/types" "^7.12.5"
 
+"@babel/helpers@^7.12.5", "@babel/helpers@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43"
+  integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==
+  dependencies:
+    "@babel/template" "^7.15.4"
+    "@babel/traverse" "^7.15.4"
+    "@babel/types" "^7.15.4"
+
 "@babel/highlight@^7.10.4":
   version "7.10.4"
   resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
@@ -342,6 +618,15 @@
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
+"@babel/highlight@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
+  integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.14.5"
+    chalk "^2.0.0"
+    js-tokens "^4.0.0"
+
 "@babel/highlight@^7.8.3":
   version "7.9.0"
   resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
@@ -370,11 +655,25 @@
   resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0"
   integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==
 
+"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5":
+  version "7.15.6"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.6.tgz#043b9aa3c303c0722e5377fef9197f4cf1796549"
+  integrity sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==
+
 "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0":
   version "7.9.4"
   resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8"
   integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==
 
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz#dbdeabb1e80f622d9f0b583efb2999605e0a567e"
+  integrity sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4"
+    "@babel/plugin-proposal-optional-chaining" "^7.14.5"
+
 "@babel/plugin-proposal-async-generator-functions@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e"
@@ -384,6 +683,15 @@
     "@babel/helper-remap-async-to-generator" "^7.12.1"
     "@babel/plugin-syntax-async-generators" "^7.8.0"
 
+"@babel/plugin-proposal-async-generator-functions@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz#f82aabe96c135d2ceaa917feb9f5fca31635277e"
+  integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-remap-async-to-generator" "^7.15.4"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+
 "@babel/plugin-proposal-class-properties@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de"
@@ -392,6 +700,23 @@
     "@babel/helper-create-class-features-plugin" "^7.12.1"
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-proposal-class-properties@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e"
+  integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-proposal-class-static-block@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz#3e7ca6128453c089e8b477a99f970c63fc1cb8d7"
+  integrity sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
 "@babel/plugin-proposal-decorators@^7.0.0":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz#59271439fed4145456c41067450543aee332d15f"
@@ -401,6 +726,15 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-decorators" "^7.12.1"
 
+"@babel/plugin-proposal-decorators@^7.12.12":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.15.4.tgz#fb55442bc83ab4d45dda76b91949706bf22881d2"
+  integrity sha512-WNER+YLs7avvRukEddhu5PSfSaMMimX2xBFgLQS7Bw16yrUxJGWidO9nQp+yLy9MVybg5Ba3BlhAw+BkdhpDmg==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-decorators" "^7.14.5"
+
 "@babel/plugin-proposal-do-expressions@^7.0.0":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-do-expressions/-/plugin-proposal-do-expressions-7.12.1.tgz#8d7f1bc532d8168147555c26e3db922cc0dfd2f8"
@@ -417,6 +751,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-dynamic-import" "^7.8.0"
 
+"@babel/plugin-proposal-dynamic-import@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c"
+  integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
 "@babel/plugin-proposal-export-default-from@^7.0.0":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.12.1.tgz#c6e62d668a8abcfe0d28b82f560395fecb611c5a"
@@ -425,6 +767,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-export-default-from" "^7.12.1"
 
+"@babel/plugin-proposal-export-default-from@^7.12.1":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz#8931a6560632c650f92a8e5948f6e73019d6d321"
+  integrity sha512-T8KZ5abXvKMjF6JcoXjgac3ElmXf0AWzJwi2O/42Jk+HmCky3D9+i1B7NPP1FblyceqTevKeV/9szeikFoaMDg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-export-default-from" "^7.14.5"
+
 "@babel/plugin-proposal-export-namespace-from@^7.0.0", "@babel/plugin-proposal-export-namespace-from@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4"
@@ -433,6 +783,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
 
+"@babel/plugin-proposal-export-namespace-from@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76"
+  integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
 "@babel/plugin-proposal-function-bind@^7.0.0":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.12.1.tgz#8b891b412ffbc8e8ff3fd4df67b8d4bbe5947004"
@@ -458,6 +816,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-json-strings" "^7.8.0"
 
+"@babel/plugin-proposal-json-strings@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb"
+  integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+
 "@babel/plugin-proposal-logical-assignment-operators@^7.0.0", "@babel/plugin-proposal-logical-assignment-operators@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751"
@@ -466,6 +832,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
 
+"@babel/plugin-proposal-logical-assignment-operators@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738"
+  integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
 "@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c"
@@ -474,6 +848,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
 
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6"
+  integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
 "@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.12.1":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz#b1ce757156d40ed79d59d467cb2b154a5c4149ba"
@@ -482,7 +864,15 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-numeric-separator" "^7.10.4"
 
-"@babel/plugin-proposal-object-rest-spread@^7.12.1":
+"@babel/plugin-proposal-numeric-separator@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18"
+  integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-proposal-object-rest-spread@7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069"
   integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==
@@ -491,6 +881,17 @@
     "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
     "@babel/plugin-transform-parameters" "^7.12.1"
 
+"@babel/plugin-proposal-object-rest-spread@^7.15.6":
+  version "7.15.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz#ef68050c8703d07b25af402cb96cf7f34a68ed11"
+  integrity sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==
+  dependencies:
+    "@babel/compat-data" "^7.15.0"
+    "@babel/helper-compilation-targets" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-transform-parameters" "^7.15.4"
+
 "@babel/plugin-proposal-optional-catch-binding@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942"
@@ -499,6 +900,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
 
+"@babel/plugin-proposal-optional-catch-binding@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c"
+  integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
 "@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797"
@@ -508,6 +917,15 @@
     "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
     "@babel/plugin-syntax-optional-chaining" "^7.8.0"
 
+"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603"
+  integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
 "@babel/plugin-proposal-pipeline-operator@^7.0.0":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-pipeline-operator/-/plugin-proposal-pipeline-operator-7.12.1.tgz#4bd377bc7e5be92f22f1c08b3f3963636bd8f4a1"
@@ -524,6 +942,24 @@
     "@babel/helper-create-class-features-plugin" "^7.12.1"
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-proposal-private-methods@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d"
+  integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-proposal-private-property-in-object@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz#55c5e3b4d0261fd44fe637e3f624cfb0f484e3e5"
+  integrity sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.15.4"
+    "@babel/helper-create-class-features-plugin" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
 "@babel/plugin-proposal-throw-expressions@^7.0.0":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.12.1.tgz#5adf4abc7f349a2da532e663b36251f6017c4279"
@@ -540,7 +976,15 @@
     "@babel/helper-create-regexp-features-plugin" "^7.12.1"
     "@babel/helper-plugin-utils" "^7.10.4"
 
-"@babel/plugin-syntax-async-generators@^7.8.0":
+"@babel/plugin-proposal-unicode-property-regex@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8"
+  integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4":
   version "7.8.4"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
   integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
@@ -554,6 +998,20 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-syntax-class-properties@^7.12.13":
+  version "7.12.13"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+  integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+  integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-syntax-decorators@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz#81a8b535b284476c41be6de06853a8802b98c5dd"
@@ -561,6 +1019,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-syntax-decorators@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20"
+  integrity sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-syntax-do-expressions@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-do-expressions/-/plugin-syntax-do-expressions-7.12.1.tgz#6b83dfab79540b66912b559860ce6d4be4f7d960"
@@ -568,7 +1033,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
-"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.0":
+"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
   integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
@@ -582,6 +1047,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-syntax-export-default-from@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.14.5.tgz#cdfa9d43d2b2c89b6f1af3e83518e8c8b9ed0dbc"
+  integrity sha512-snWDxjuaPEobRBnhpqEfZ8RMxDbHt8+87fiEioGuE+Uc0xAKgSD8QiuL3lF93hPVQfZFAcYwrrf+H5qUhike3Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-syntax-export-namespace-from@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
@@ -589,6 +1061,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.3"
 
+"@babel/plugin-syntax-flow@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz#2ff654999497d7d7d142493260005263731da180"
+  integrity sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-syntax-function-bind@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-function-bind/-/plugin-syntax-function-bind-7.12.1.tgz#1e15da3e568c96dabe21579f2d66821db98aafcc"
@@ -610,20 +1089,27 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
-"@babel/plugin-syntax-json-strings@^7.8.0":
+"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
   integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-jsx@^7.12.1":
+"@babel/plugin-syntax-jsx@7.12.1", "@babel/plugin-syntax-jsx@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926"
   integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-syntax-jsx@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201"
+  integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
   version "7.10.4"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
@@ -631,7 +1117,7 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
   integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
@@ -645,21 +1131,21 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
-"@babel/plugin-syntax-object-rest-spread@^7.8.0":
+"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
   integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-optional-catch-binding@^7.8.0":
+"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
   integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
   dependencies:
     "@babel/helper-plugin-utils" "^7.8.0"
 
-"@babel/plugin-syntax-optional-chaining@^7.8.0":
+"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
   version "7.8.3"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
   integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
@@ -673,6 +1159,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+  integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-syntax-throw-expressions@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.12.1.tgz#ff90a57ac599ba685a99274c86604d878c945094"
@@ -687,6 +1180,20 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+  integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716"
+  integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-arrow-functions@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3"
@@ -694,6 +1201,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-arrow-functions@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a"
+  integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-async-to-generator@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1"
@@ -703,6 +1217,15 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/helper-remap-async-to-generator" "^7.12.1"
 
+"@babel/plugin-transform-async-to-generator@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67"
+  integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==
+  dependencies:
+    "@babel/helper-module-imports" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-remap-async-to-generator" "^7.14.5"
+
 "@babel/plugin-transform-block-scoped-functions@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9"
@@ -710,6 +1233,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-block-scoped-functions@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4"
+  integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-block-scoping@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1"
@@ -717,6 +1247,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.15.3":
+  version "7.15.3"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf"
+  integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-classes@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6"
@@ -731,6 +1268,19 @@
     "@babel/helper-split-export-declaration" "^7.10.4"
     globals "^11.1.0"
 
+"@babel/plugin-transform-classes@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz#50aee17aaf7f332ae44e3bce4c2e10534d5d3bf1"
+  integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.15.4"
+    "@babel/helper-function-name" "^7.15.4"
+    "@babel/helper-optimise-call-expression" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-replace-supers" "^7.15.4"
+    "@babel/helper-split-export-declaration" "^7.15.4"
+    globals "^11.1.0"
+
 "@babel/plugin-transform-computed-properties@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852"
@@ -738,6 +1288,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-computed-properties@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f"
+  integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-destructuring@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847"
@@ -745,6 +1302,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-destructuring@^7.14.7":
+  version "7.14.7"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576"
+  integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975"
@@ -753,6 +1317,14 @@
     "@babel/helper-create-regexp-features-plugin" "^7.12.1"
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-dotall-regex@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a"
+  integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-duplicate-keys@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228"
@@ -760,6 +1332,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-duplicate-keys@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954"
+  integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-exponentiation-operator@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0"
@@ -768,6 +1347,22 @@
     "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4"
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-exponentiation-operator@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493"
+  integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==
+  dependencies:
+    "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-flow-strip-types@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz#0dc9c1d11dcdc873417903d6df4bed019ef0f85e"
+  integrity sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-flow" "^7.14.5"
+
 "@babel/plugin-transform-for-of@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa"
@@ -775,6 +1370,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-for-of@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2"
+  integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-function-name@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667"
@@ -783,6 +1385,14 @@
     "@babel/helper-function-name" "^7.10.4"
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-function-name@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2"
+  integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==
+  dependencies:
+    "@babel/helper-function-name" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-literals@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57"
@@ -790,6 +1400,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-literals@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78"
+  integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-member-expression-literals@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad"
@@ -797,6 +1414,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-member-expression-literals@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7"
+  integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-modules-amd@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9"
@@ -806,6 +1430,15 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     babel-plugin-dynamic-import-node "^2.3.3"
 
+"@babel/plugin-transform-modules-amd@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7"
+  integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
 "@babel/plugin-transform-modules-commonjs@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648"
@@ -816,6 +1449,16 @@
     "@babel/helper-simple-access" "^7.12.1"
     babel-plugin-dynamic-import-node "^2.3.3"
 
+"@babel/plugin-transform-modules-commonjs@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1"
+  integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-simple-access" "^7.15.4"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
 "@babel/plugin-transform-modules-systemjs@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086"
@@ -827,6 +1470,17 @@
     "@babel/helper-validator-identifier" "^7.10.4"
     babel-plugin-dynamic-import-node "^2.3.3"
 
+"@babel/plugin-transform-modules-systemjs@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz#b42890c7349a78c827719f1d2d0cd38c7d268132"
+  integrity sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==
+  dependencies:
+    "@babel/helper-hoist-variables" "^7.15.4"
+    "@babel/helper-module-transforms" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-validator-identifier" "^7.14.9"
+    babel-plugin-dynamic-import-node "^2.3.3"
+
 "@babel/plugin-transform-modules-umd@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902"
@@ -835,6 +1489,14 @@
     "@babel/helper-module-transforms" "^7.12.1"
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-modules-umd@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0"
+  integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==
+  dependencies:
+    "@babel/helper-module-transforms" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-named-capturing-groups-regex@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753"
@@ -842,6 +1504,13 @@
   dependencies:
     "@babel/helper-create-regexp-features-plugin" "^7.12.1"
 
+"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9":
+  version "7.14.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2"
+  integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.14.5"
+
 "@babel/plugin-transform-new-target@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0"
@@ -849,6 +1518,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-new-target@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8"
+  integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-object-super@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e"
@@ -857,6 +1533,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/helper-replace-supers" "^7.12.1"
 
+"@babel/plugin-transform-object-super@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45"
+  integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-replace-supers" "^7.14.5"
+
 "@babel/plugin-transform-parameters@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d"
@@ -864,6 +1548,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-parameters@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz#5f2285cc3160bf48c8502432716b48504d29ed62"
+  integrity sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-property-literals@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd"
@@ -871,6 +1562,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-property-literals@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34"
+  integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-react-display-name@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d"
@@ -878,6 +1576,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-react-display-name@^7.14.5":
+  version "7.15.1"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz#6aaac6099f1fcf6589d35ae6be1b6e10c8c602b9"
+  integrity sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-react-jsx-development@^7.12.5":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.5.tgz#677de5b96da310430d6cfb7fee16a1603afa3d56"
@@ -887,6 +1592,13 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/plugin-syntax-jsx" "^7.12.1"
 
+"@babel/plugin-transform-react-jsx-development@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af"
+  integrity sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ==
+  dependencies:
+    "@babel/plugin-transform-react-jsx" "^7.14.5"
+
 "@babel/plugin-transform-react-jsx-self@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz#ef43cbca2a14f1bd17807dbe4376ff89d714cf28"
@@ -901,6 +1613,17 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.14.5":
+  version "7.14.9"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c"
+  integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.14.5"
+    "@babel/helper-module-imports" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-jsx" "^7.14.5"
+    "@babel/types" "^7.14.9"
+
 "@babel/plugin-transform-react-jsx@^7.12.5":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.5.tgz#39ede0e30159770561b6963be143e40af3bde00c"
@@ -919,6 +1642,14 @@
     "@babel/helper-annotate-as-pure" "^7.10.4"
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-react-pure-annotations@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc"
+  integrity sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-regenerator@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753"
@@ -926,6 +1657,13 @@
   dependencies:
     regenerator-transform "^0.14.2"
 
+"@babel/plugin-transform-regenerator@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f"
+  integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==
+  dependencies:
+    regenerator-transform "^0.14.2"
+
 "@babel/plugin-transform-reserved-words@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8"
@@ -933,6 +1671,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-reserved-words@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304"
+  integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-runtime@^7.0.0":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5"
@@ -950,6 +1695,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-shorthand-properties@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58"
+  integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-spread@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e"
@@ -958,6 +1710,14 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
 
+"@babel/plugin-transform-spread@^7.14.6":
+  version "7.14.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144"
+  integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
+
 "@babel/plugin-transform-sticky-regex@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz#5c24cf50de396d30e99afc8d1c700e8bce0f5caf"
@@ -966,6 +1726,13 @@
     "@babel/helper-plugin-utils" "^7.10.4"
     "@babel/helper-regex" "^7.10.4"
 
+"@babel/plugin-transform-sticky-regex@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9"
+  integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-template-literals@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843"
@@ -973,6 +1740,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-template-literals@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93"
+  integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-typeof-symbol@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz#9ca6be343d42512fbc2e68236a82ae64bc7af78a"
@@ -980,6 +1754,22 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-typeof-symbol@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4"
+  integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-typescript@^7.15.0":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz#db7a062dcf8be5fc096bc0eeb40a13fbfa1fa251"
+  integrity sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==
+  dependencies:
+    "@babel/helper-create-class-features-plugin" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/plugin-syntax-typescript" "^7.14.5"
+
 "@babel/plugin-transform-unicode-escapes@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709"
@@ -987,6 +1777,13 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-unicode-escapes@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b"
+  integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/plugin-transform-unicode-regex@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb"
@@ -995,6 +1792,14 @@
     "@babel/helper-create-regexp-features-plugin" "^7.12.1"
     "@babel/helper-plugin-utils" "^7.10.4"
 
+"@babel/plugin-transform-unicode-regex@^7.14.5":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e"
+  integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin" "^7.14.5"
+    "@babel/helper-plugin-utils" "^7.14.5"
+
 "@babel/preset-env@^7.0.0":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2"
@@ -1067,7 +1872,95 @@
     core-js-compat "^3.6.2"
     semver "^5.5.0"
 
-"@babel/preset-modules@^0.1.3":
+"@babel/preset-env@^7.12.11":
+  version "7.15.6"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.6.tgz#0f3898db9d63d320f21b17380d8462779de57659"
+  integrity sha512-L+6jcGn7EWu7zqaO2uoTDjjMBW+88FXzV8KvrBl2z6MtRNxlsmUNRlZPaNNPUTgqhyC5DHNFk/2Jmra+ublZWw==
+  dependencies:
+    "@babel/compat-data" "^7.15.0"
+    "@babel/helper-compilation-targets" "^7.15.4"
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-validator-option" "^7.14.5"
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.15.4"
+    "@babel/plugin-proposal-async-generator-functions" "^7.15.4"
+    "@babel/plugin-proposal-class-properties" "^7.14.5"
+    "@babel/plugin-proposal-class-static-block" "^7.15.4"
+    "@babel/plugin-proposal-dynamic-import" "^7.14.5"
+    "@babel/plugin-proposal-export-namespace-from" "^7.14.5"
+    "@babel/plugin-proposal-json-strings" "^7.14.5"
+    "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"
+    "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
+    "@babel/plugin-proposal-numeric-separator" "^7.14.5"
+    "@babel/plugin-proposal-object-rest-spread" "^7.15.6"
+    "@babel/plugin-proposal-optional-catch-binding" "^7.14.5"
+    "@babel/plugin-proposal-optional-chaining" "^7.14.5"
+    "@babel/plugin-proposal-private-methods" "^7.14.5"
+    "@babel/plugin-proposal-private-property-in-object" "^7.15.4"
+    "@babel/plugin-proposal-unicode-property-regex" "^7.14.5"
+    "@babel/plugin-syntax-async-generators" "^7.8.4"
+    "@babel/plugin-syntax-class-properties" "^7.12.13"
+    "@babel/plugin-syntax-class-static-block" "^7.14.5"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+    "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+    "@babel/plugin-syntax-json-strings" "^7.8.3"
+    "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+    "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+    "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+    "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+    "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+    "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+    "@babel/plugin-syntax-top-level-await" "^7.14.5"
+    "@babel/plugin-transform-arrow-functions" "^7.14.5"
+    "@babel/plugin-transform-async-to-generator" "^7.14.5"
+    "@babel/plugin-transform-block-scoped-functions" "^7.14.5"
+    "@babel/plugin-transform-block-scoping" "^7.15.3"
+    "@babel/plugin-transform-classes" "^7.15.4"
+    "@babel/plugin-transform-computed-properties" "^7.14.5"
+    "@babel/plugin-transform-destructuring" "^7.14.7"
+    "@babel/plugin-transform-dotall-regex" "^7.14.5"
+    "@babel/plugin-transform-duplicate-keys" "^7.14.5"
+    "@babel/plugin-transform-exponentiation-operator" "^7.14.5"
+    "@babel/plugin-transform-for-of" "^7.15.4"
+    "@babel/plugin-transform-function-name" "^7.14.5"
+    "@babel/plugin-transform-literals" "^7.14.5"
+    "@babel/plugin-transform-member-expression-literals" "^7.14.5"
+    "@babel/plugin-transform-modules-amd" "^7.14.5"
+    "@babel/plugin-transform-modules-commonjs" "^7.15.4"
+    "@babel/plugin-transform-modules-systemjs" "^7.15.4"
+    "@babel/plugin-transform-modules-umd" "^7.14.5"
+    "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9"
+    "@babel/plugin-transform-new-target" "^7.14.5"
+    "@babel/plugin-transform-object-super" "^7.14.5"
+    "@babel/plugin-transform-parameters" "^7.15.4"
+    "@babel/plugin-transform-property-literals" "^7.14.5"
+    "@babel/plugin-transform-regenerator" "^7.14.5"
+    "@babel/plugin-transform-reserved-words" "^7.14.5"
+    "@babel/plugin-transform-shorthand-properties" "^7.14.5"
+    "@babel/plugin-transform-spread" "^7.14.6"
+    "@babel/plugin-transform-sticky-regex" "^7.14.5"
+    "@babel/plugin-transform-template-literals" "^7.14.5"
+    "@babel/plugin-transform-typeof-symbol" "^7.14.5"
+    "@babel/plugin-transform-unicode-escapes" "^7.14.5"
+    "@babel/plugin-transform-unicode-regex" "^7.14.5"
+    "@babel/preset-modules" "^0.1.4"
+    "@babel/types" "^7.15.6"
+    babel-plugin-polyfill-corejs2 "^0.2.2"
+    babel-plugin-polyfill-corejs3 "^0.2.2"
+    babel-plugin-polyfill-regenerator "^0.2.2"
+    core-js-compat "^3.16.0"
+    semver "^6.3.0"
+
+"@babel/preset-flow@^7.12.1":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.14.5.tgz#a1810b0780c8b48ab0bece8e7ab8d0d37712751c"
+  integrity sha512-pP5QEb4qRUSVGzzKx9xqRuHUrM/jEzMqdrZpdMA+oUCRgd5zM1qGr5y5+ZgAL/1tVv1H0dyk5t4SKJntqyiVtg==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-validator-option" "^7.14.5"
+    "@babel/plugin-transform-flow-strip-types" "^7.14.5"
+
+"@babel/preset-modules@^0.1.3", "@babel/preset-modules@^0.1.4":
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
   integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
@@ -1091,6 +1984,27 @@
     "@babel/plugin-transform-react-jsx-source" "^7.12.1"
     "@babel/plugin-transform-react-pure-annotations" "^7.12.1"
 
+"@babel/preset-react@^7.12.10":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c"
+  integrity sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-validator-option" "^7.14.5"
+    "@babel/plugin-transform-react-display-name" "^7.14.5"
+    "@babel/plugin-transform-react-jsx" "^7.14.5"
+    "@babel/plugin-transform-react-jsx-development" "^7.14.5"
+    "@babel/plugin-transform-react-pure-annotations" "^7.14.5"
+
+"@babel/preset-typescript@^7.12.7":
+  version "7.15.0"
+  resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.15.0.tgz#e8fca638a1a0f64f14e1119f7fe4500277840945"
+  integrity sha512-lt0Y/8V3y06Wq/8H/u0WakrqciZ7Fz7mwPDHWUJAXlABL5hiUG42BNlRXiELNjeWjO5rWmnNKlx+yzJvxezHow==
+  dependencies:
+    "@babel/helper-plugin-utils" "^7.14.5"
+    "@babel/helper-validator-option" "^7.14.5"
+    "@babel/plugin-transform-typescript" "^7.15.0"
+
 "@babel/register@^7.12.1":
   version "7.12.1"
   resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.12.1.tgz#cdb087bdfc4f7241c03231f22e15d211acf21438"
@@ -1110,6 +2024,13 @@
     core-js-pure "^3.0.0"
     regenerator-runtime "^0.13.4"
 
+"@babel/runtime@^7.10.2", "@babel/runtime@^7.14.0", "@babel/runtime@^7.14.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.7":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
+  integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
 "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
@@ -1140,6 +2061,15 @@
     "@babel/parser" "^7.10.4"
     "@babel/types" "^7.10.4"
 
+"@babel/template@^7.12.7", "@babel/template@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194"
+  integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==
+  dependencies:
+    "@babel/code-frame" "^7.14.5"
+    "@babel/parser" "^7.15.4"
+    "@babel/types" "^7.15.4"
+
 "@babel/template@^7.8.3":
   version "7.8.6"
   resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
@@ -1149,6 +2079,21 @@
     "@babel/parser" "^7.8.6"
     "@babel/types" "^7.8.6"
 
+"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d"
+  integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==
+  dependencies:
+    "@babel/code-frame" "^7.14.5"
+    "@babel/generator" "^7.15.4"
+    "@babel/helper-function-name" "^7.15.4"
+    "@babel/helper-hoist-variables" "^7.15.4"
+    "@babel/helper-split-export-declaration" "^7.15.4"
+    "@babel/parser" "^7.15.4"
+    "@babel/types" "^7.15.4"
+    debug "^4.1.0"
+    globals "^11.1.0"
+
 "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5":
   version "7.12.5"
   resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz#78a0c68c8e8a35e4cacfd31db8bb303d5606f095"
@@ -1188,6 +2133,14 @@
     lodash "^4.17.19"
     to-fast-properties "^2.0.0"
 
+"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.14.9", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.2.0":
+  version "7.15.6"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f"
+  integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.14.9"
+    to-fast-properties "^2.0.0"
+
 "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.5":
   version "7.9.5"
   resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444"
@@ -1197,6 +2150,123 @@
     lodash "^4.17.13"
     to-fast-properties "^2.0.0"
 
+"@bcoe/v8-coverage@^0.2.3":
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+  integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@discoveryjs/json-ext@^0.5.3":
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d"
+  integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==
+
+"@emotion/cache@^10.0.27", "@emotion/cache@^10.0.9":
+  version "10.0.29"
+  resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0"
+  integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==
+  dependencies:
+    "@emotion/sheet" "0.9.4"
+    "@emotion/stylis" "0.8.5"
+    "@emotion/utils" "0.11.3"
+    "@emotion/weak-memoize" "0.2.5"
+
+"@emotion/core@^10.0.9", "@emotion/core@^10.1.1":
+  version "10.1.1"
+  resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.1.1.tgz#c956c1365f2f2481960064bcb8c4732e5fb612c3"
+  integrity sha512-ZMLG6qpXR8x031NXD8HJqugy/AZSkAuMxxqB46pmAR7ze47MhNJ56cdoX243QPZdGctrdfo+s08yZTiwaUcRKA==
+  dependencies:
+    "@babel/runtime" "^7.5.5"
+    "@emotion/cache" "^10.0.27"
+    "@emotion/css" "^10.0.27"
+    "@emotion/serialize" "^0.11.15"
+    "@emotion/sheet" "0.9.4"
+    "@emotion/utils" "0.11.3"
+
+"@emotion/css@^10.0.27", "@emotion/css@^10.0.9":
+  version "10.0.27"
+  resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c"
+  integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==
+  dependencies:
+    "@emotion/serialize" "^0.11.15"
+    "@emotion/utils" "0.11.3"
+    babel-plugin-emotion "^10.0.27"
+
+"@emotion/hash@0.8.0":
+  version "0.8.0"
+  resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
+  integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
+
+"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.6":
+  version "0.8.8"
+  resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a"
+  integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==
+  dependencies:
+    "@emotion/memoize" "0.7.4"
+
+"@emotion/memoize@0.7.4":
+  version "0.7.4"
+  resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
+  integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
+
+"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16":
+  version "0.11.16"
+  resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad"
+  integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==
+  dependencies:
+    "@emotion/hash" "0.8.0"
+    "@emotion/memoize" "0.7.4"
+    "@emotion/unitless" "0.7.5"
+    "@emotion/utils" "0.11.3"
+    csstype "^2.5.7"
+
+"@emotion/sheet@0.9.4":
+  version "0.9.4"
+  resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5"
+  integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==
+
+"@emotion/styled-base@^10.0.27":
+  version "10.0.31"
+  resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.31.tgz#940957ee0aa15c6974adc7d494ff19765a2f742a"
+  integrity sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==
+  dependencies:
+    "@babel/runtime" "^7.5.5"
+    "@emotion/is-prop-valid" "0.8.8"
+    "@emotion/serialize" "^0.11.15"
+    "@emotion/utils" "0.11.3"
+
+"@emotion/styled@^10.0.27":
+  version "10.0.27"
+  resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.0.27.tgz#12cb67e91f7ad7431e1875b1d83a94b814133eaf"
+  integrity sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==
+  dependencies:
+    "@emotion/styled-base" "^10.0.27"
+    babel-plugin-emotion "^10.0.27"
+
+"@emotion/stylis@0.8.5":
+  version "0.8.5"
+  resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
+  integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
+
+"@emotion/unitless@0.7.5":
+  version "0.7.5"
+  resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
+  integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
+
+"@emotion/utils@0.11.3":
+  version "0.11.3"
+  resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924"
+  integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==
+
+"@emotion/weak-memoize@0.2.5":
+  version "0.2.5"
+  resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
+  integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
+
+"@gar/promisify@^1.0.1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
+  integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
+
 "@hiveio/hive-js@^2.0.4":
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/@hiveio/hive-js/-/hive-js-2.0.4.tgz#752fbb5d0ad69f3c65eff35c1dc0e7c1aab0d0cb"
@@ -1227,6 +2297,49 @@
   resolved "https://registry.yarnpkg.com/@hiveio/hivescript/-/hivescript-1.2.0.tgz#fe05d189e5bba89aa191b5320610027115c6eb04"
   integrity sha512-X4YFE+duQlgr9WqaZqsVUCldBZ3RJph89CakQk/kNF6MjsOHG8QUMbFmbL2NB1Y/DzeM5TvnDQybBd2wyGoiWA==
 
+"@istanbuljs/schema@^0.1.2":
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+  integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@mdx-js/mdx@^1.6.22":
+  version "1.6.22"
+  resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba"
+  integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==
+  dependencies:
+    "@babel/core" "7.12.9"
+    "@babel/plugin-syntax-jsx" "7.12.1"
+    "@babel/plugin-syntax-object-rest-spread" "7.8.3"
+    "@mdx-js/util" "1.6.22"
+    babel-plugin-apply-mdx-type-prop "1.6.22"
+    babel-plugin-extract-import-names "1.6.22"
+    camelcase-css "2.0.1"
+    detab "2.0.4"
+    hast-util-raw "6.0.1"
+    lodash.uniq "4.5.0"
+    mdast-util-to-hast "10.0.1"
+    remark-footnotes "2.0.0"
+    remark-mdx "1.6.22"
+    remark-parse "8.0.3"
+    remark-squeeze-paragraphs "4.0.0"
+    style-to-object "0.3.0"
+    unified "9.2.0"
+    unist-builder "2.0.3"
+    unist-util-visit "2.0.3"
+
+"@mdx-js/util@1.6.22":
+  version "1.6.22"
+  resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b"
+  integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==
+
+"@mrmlnc/readdir-enhanced@^2.2.1":
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
+  integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==
+  dependencies:
+    call-me-maybe "^1.0.1"
+    glob-to-regexp "^0.3.0"
+
 "@nicolo-ribaudo/chokidar-2@^2.1.8":
   version "2.1.8"
   resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz#eef8d9b47e8dc589499f14d656e8d2dd978c3d14"
@@ -1234,6 +2347,75 @@
   dependencies:
     chokidar "2.1.8"
 
+"@nodelib/fs.scandir@2.1.5":
+  version "2.1.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+  integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.5"
+    run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.stat@^1.1.2":
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
+  integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
+
+"@nodelib/fs.walk@^1.2.3":
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+  integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.5"
+    fastq "^1.6.0"
+
+"@npmcli/fs@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f"
+  integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==
+  dependencies:
+    "@gar/promisify" "^1.0.1"
+    semver "^7.3.5"
+
+"@npmcli/move-file@^1.0.1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
+  integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
+  dependencies:
+    mkdirp "^1.0.4"
+    rimraf "^3.0.2"
+
+"@pmmmwh/react-refresh-webpack-plugin@^0.4.3":
+  version "0.4.3"
+  resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766"
+  integrity sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ==
+  dependencies:
+    ansi-html "^0.0.7"
+    error-stack-parser "^2.0.6"
+    html-entities "^1.2.1"
+    native-url "^0.2.6"
+    schema-utils "^2.6.5"
+    source-map "^0.7.3"
+
+"@popperjs/core@^2.5.4", "@popperjs/core@^2.6.0":
+  version "2.10.1"
+  resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.10.1.tgz#728ecd95ab207aab8a9a4e421f0422db329232be"
+  integrity sha512-HnUhk1Sy9IuKrxEMdIRCxpIqPw6BFsbYSEUO9p/hNw5sMld/+3OLMWQP80F8/db9qsv3qUjs7ZR5bS/R+iinXw==
+
+"@reach/router@^1.3.4":
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c"
+  integrity sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==
+  dependencies:
+    create-react-context "0.3.0"
+    invariant "^2.2.3"
+    prop-types "^15.6.1"
+    react-lifecycles-compat "^3.0.4"
+
 "@steem/crypto-session@git+https://github.com/steemit/crypto-session.git#83a90b319ce5bc6a70362d52a15a815de7e729bb":
   version "1.0.3"
   resolved "git+https://github.com/steemit/crypto-session.git#83a90b319ce5bc6a70362d52a15a815de7e729bb"
@@ -1252,183 +2434,569 @@
   dependencies:
     "@steemit/libcrypto" "^1.0.1"
 
-"@storybook/addon-actions@^3.2.19":
-  version "3.3.12"
-  resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-3.3.12.tgz#1bd2668918a62f32c0907af14946cdd0c6be66f5"
-  dependencies:
-    deep-equal "^1.0.1"
-    global "^4.3.2"
-    make-error "^1.3.2"
-    prop-types "^15.6.0"
-    react-inspector "^2.2.2"
-    uuid "^3.1.0"
+"@storybook/addon-knobs@^6.3.1":
+  version "6.3.1"
+  resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-6.3.1.tgz#2115c6f0d5759e4fe73d5f25710f4a94ebd6f0db"
+  integrity sha512-2GGGnQSPXXUhHHYv4IW6pkyQlCPYXKYiyGzfhV7Zhs95M2Ban08OA6KLmliMptWCt7U9tqTO8dB5u0C2cWmCTw==
+  dependencies:
+    copy-to-clipboard "^3.3.1"
+    core-js "^3.8.2"
+    escape-html "^1.0.3"
+    fast-deep-equal "^3.1.3"
+    global "^4.4.0"
+    lodash "^4.17.20"
+    prop-types "^15.7.2"
+    qs "^6.10.0"
+    react-colorful "^5.1.2"
+    react-lifecycles-compat "^3.0.4"
+    react-select "^3.2.0"
+
+"@storybook/addons@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.3.8.tgz#c4a839ae9b86fb4a1183466db6eb16201c1a0553"
+  integrity sha512-TzYk1f/wvfoGDkLxXIx85ii5ED7IfGP/6eu00/i2Hyn4uGqdNi/ltSOJxnxa+DZv8KjYQRVAEo/Fbh95IEXI1Q==
+  dependencies:
+    "@storybook/api" "6.3.8"
+    "@storybook/channels" "6.3.8"
+    "@storybook/client-logger" "6.3.8"
+    "@storybook/core-events" "6.3.8"
+    "@storybook/router" "6.3.8"
+    "@storybook/theming" "6.3.8"
+    core-js "^3.8.2"
+    global "^4.4.0"
+    regenerator-runtime "^0.13.7"
+
+"@storybook/api@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.3.8.tgz#251bcf6cc3a4e0b908bea7fb0aa9e48d6c48d720"
+  integrity sha512-8b61KnWhN+sA+Gq+AHH3M4qM0L8pNS9DtdfPi5GUGWzOg6IZ1EgYVsk9afEwkNESxyZ+GM2O6mGu05J0HfyqNg==
+  dependencies:
+    "@reach/router" "^1.3.4"
+    "@storybook/channels" "6.3.8"
+    "@storybook/client-logger" "6.3.8"
+    "@storybook/core-events" "6.3.8"
+    "@storybook/csf" "0.0.1"
+    "@storybook/router" "6.3.8"
+    "@storybook/semver" "^7.3.2"
+    "@storybook/theming" "6.3.8"
+    "@types/reach__router" "^1.3.7"
+    core-js "^3.8.2"
+    fast-deep-equal "^3.1.3"
+    global "^4.4.0"
+    lodash "^4.17.20"
+    memoizerific "^1.11.3"
+    qs "^6.10.0"
+    regenerator-runtime "^0.13.7"
+    store2 "^2.12.0"
+    telejson "^5.3.2"
+    ts-dedent "^2.0.0"
+    util-deprecate "^1.0.2"
 
-"@storybook/addon-knobs@3.2.19":
-  version "3.2.19"
-  resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-3.2.19.tgz#ac9aeb3f7853dfe6bea4ae41e4ccbac22434bda9"
+"@storybook/builder-webpack4@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.3.8.tgz#9ffe866fbd50a94b3cf3ecde1fe4d5f29dd337e8"
+  integrity sha512-Ze/3JRPKwPogKbJJ5Fm4/BJdMbNiqu7DpFQw9s4gBcecBRK0xlfhYaMrPqMS21kEQ2+gr2HPyGRkdoJUAVHXhQ==
   dependencies:
-    "@storybook/addons" "^3.2.19"
-    babel-runtime "^6.26.0"
-    deep-equal "^1.0.1"
-    global "^4.3.2"
-    insert-css "^2.0.0"
-    lodash.debounce "^4.0.8"
-    moment "^2.20.1"
-    prop-types "^15.6.0"
-    react-color "^2.11.4"
-    react-datetime "^2.11.1"
-    react-textarea-autosize "^5.2.1"
+    "@babel/core" "^7.12.10"
+    "@babel/plugin-proposal-class-properties" "^7.12.1"
+    "@babel/plugin-proposal-decorators" "^7.12.12"
+    "@babel/plugin-proposal-export-default-from" "^7.12.1"
+    "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1"
+    "@babel/plugin-proposal-object-rest-spread" "^7.12.1"
+    "@babel/plugin-proposal-optional-chaining" "^7.12.7"
+    "@babel/plugin-proposal-private-methods" "^7.12.1"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+    "@babel/plugin-transform-arrow-functions" "^7.12.1"
+    "@babel/plugin-transform-block-scoping" "^7.12.12"
+    "@babel/plugin-transform-classes" "^7.12.1"
+    "@babel/plugin-transform-destructuring" "^7.12.1"
+    "@babel/plugin-transform-for-of" "^7.12.1"
+    "@babel/plugin-transform-parameters" "^7.12.1"
+    "@babel/plugin-transform-shorthand-properties" "^7.12.1"
+    "@babel/plugin-transform-spread" "^7.12.1"
+    "@babel/plugin-transform-template-literals" "^7.12.1"
+    "@babel/preset-env" "^7.12.11"
+    "@babel/preset-react" "^7.12.10"
+    "@babel/preset-typescript" "^7.12.7"
+    "@storybook/addons" "6.3.8"
+    "@storybook/api" "6.3.8"
+    "@storybook/channel-postmessage" "6.3.8"
+    "@storybook/channels" "6.3.8"
+    "@storybook/client-api" "6.3.8"
+    "@storybook/client-logger" "6.3.8"
+    "@storybook/components" "6.3.8"
+    "@storybook/core-common" "6.3.8"
+    "@storybook/core-events" "6.3.8"
+    "@storybook/node-logger" "6.3.8"
+    "@storybook/router" "6.3.8"
+    "@storybook/semver" "^7.3.2"
+    "@storybook/theming" "6.3.8"
+    "@storybook/ui" "6.3.8"
+    "@types/node" "^14.0.10"
+    "@types/webpack" "^4.41.26"
+    autoprefixer "^9.8.6"
+    babel-loader "^8.2.2"
+    babel-plugin-macros "^2.8.0"
+    babel-plugin-polyfill-corejs3 "^0.1.0"
+    case-sensitive-paths-webpack-plugin "^2.3.0"
+    core-js "^3.8.2"
+    css-loader "^3.6.0"
+    dotenv-webpack "^1.8.0"
+    file-loader "^6.2.0"
+    find-up "^5.0.0"
+    fork-ts-checker-webpack-plugin "^4.1.6"
+    fs-extra "^9.0.1"
+    glob "^7.1.6"
+    glob-promise "^3.4.0"
+    global "^4.4.0"
+    html-webpack-plugin "^4.0.0"
+    pnp-webpack-plugin "1.6.4"
+    postcss "^7.0.36"
+    postcss-flexbugs-fixes "^4.2.1"
+    postcss-loader "^4.2.0"
+    raw-loader "^4.0.2"
+    react-dev-utils "^11.0.3"
+    stable "^0.1.8"
+    style-loader "^1.3.0"
+    terser-webpack-plugin "^4.2.3"
+    ts-dedent "^2.0.0"
+    url-loader "^4.1.1"
+    util-deprecate "^1.0.2"
+    webpack "4"
+    webpack-dev-middleware "^3.7.3"
+    webpack-filter-warnings-plugin "^1.2.1"
+    webpack-hot-middleware "^2.25.0"
+    webpack-virtual-modules "^0.2.2"
+
+"@storybook/channel-postmessage@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.3.8.tgz#43a91760e3464017b8f753b5b383a15a8e56f884"
+  integrity sha512-wI08nip2cQBIs1g+i609dDldQsOuSvnGWecWMiE9FwSvWttAyK61Zdph36UhiNzNjCeNdN5nf5qyVFaxZLGXIA==
+  dependencies:
+    "@storybook/channels" "6.3.8"
+    "@storybook/client-logger" "6.3.8"
+    "@storybook/core-events" "6.3.8"
+    core-js "^3.8.2"
+    global "^4.4.0"
+    qs "^6.10.0"
+    telejson "^5.3.2"
+
+"@storybook/channels@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.3.8.tgz#1ae91e1f3c47b215b39c1c31b2a58b7ffafdff35"
+  integrity sha512-+bjIb5rPTglbhLgGywDoKK25x9ClCMV29fd/fiF86rXQlfxq6J+or6ars6p97gS2/J1wgRbh+Yf3WkLNQx7s6A==
+  dependencies:
+    core-js "^3.8.2"
+    ts-dedent "^2.0.0"
     util-deprecate "^1.0.2"
 
-"@storybook/addon-links@^3.2.19":
-  version "3.3.12"
-  resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-3.3.12.tgz#e1bb6e207506a45bea9e5f64cd78c045327412b7"
-  dependencies:
-    "@storybook/components" "^3.3.12"
-    global "^4.3.2"
-    prop-types "^15.5.10"
+"@storybook/client-api@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.3.8.tgz#60e608a5c2afbe6d63a4a063e616bedde8466584"
+  integrity sha512-71HT0K1lswyMSkRRgB1+TGu7X6kFazmoXT3t5wkU6NWIflEngiiJ3w+PMpOGzd6E3Gp3ZOvfkfrzaby5VlBORw==
+  dependencies:
+    "@storybook/addons" "6.3.8"
+    "@storybook/channel-postmessage" "6.3.8"
+    "@storybook/channels" "6.3.8"
+    "@storybook/client-logger" "6.3.8"
+    "@storybook/core-events" "6.3.8"
+    "@storybook/csf" "0.0.1"
+    "@types/qs" "^6.9.5"
+    "@types/webpack-env" "^1.16.0"
+    core-js "^3.8.2"
+    global "^4.4.0"
+    lodash "^4.17.20"
+    memoizerific "^1.11.3"
+    qs "^6.10.0"
+    regenerator-runtime "^0.13.7"
+    stable "^0.1.8"
+    store2 "^2.12.0"
+    ts-dedent "^2.0.0"
+    util-deprecate "^1.0.2"
+
+"@storybook/client-logger@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.3.8.tgz#042b81c45f73066e4f6c32942c72f4aca0ae6646"
+  integrity sha512-d/65629nvnlDpeubcElTypHuSvOqxNTNKnuN0oKDM8BsE0EO5rhTfzrx2vhiSW8At8MuD1eFC19BWdCZV18Edg==
+  dependencies:
+    core-js "^3.8.2"
+    global "^4.4.0"
+
+"@storybook/components@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.3.8.tgz#cb84b0245d8784d41e7e6be25a0d5774363e5b87"
+  integrity sha512-zIvCk7MAL9z17EI58h7WE/TgFTm0njGwFkQrbXOgGkkKYoFt/yrrs8HqylcqBqfTivJNiXJNnmmx0ooJ83PIwA==
+  dependencies:
+    "@popperjs/core" "^2.6.0"
+    "@storybook/client-logger" "6.3.8"
+    "@storybook/csf" "0.0.1"
+    "@storybook/theming" "6.3.8"
+    "@types/color-convert" "^2.0.0"
+    "@types/overlayscrollbars" "^1.12.0"
+    "@types/react-syntax-highlighter" "11.0.5"
+    color-convert "^2.0.1"
+    core-js "^3.8.2"
+    fast-deep-equal "^3.1.3"
+    global "^4.4.0"
+    lodash "^4.17.20"
+    markdown-to-jsx "^7.1.3"
+    memoizerific "^1.11.3"
+    overlayscrollbars "^1.13.1"
+    polished "^4.0.5"
+    prop-types "^15.7.2"
+    react-colorful "^5.1.2"
+    react-popper-tooltip "^3.1.1"
+    react-syntax-highlighter "^13.5.3"
+    react-textarea-autosize "^8.3.0"
+    regenerator-runtime "^0.13.7"
+    ts-dedent "^2.0.0"
+    util-deprecate "^1.0.2"
 
-"@storybook/addons@^3.2.19":
-  version "3.3.12"
-  resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.3.12.tgz#682927b5ac4baad796922eec505a7e956a3f79d9"
+"@storybook/core-client@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.3.8.tgz#9223b9f22ab86d205dac605bcef15ba0f0068e15"
+  integrity sha512-ZO1XA8ENnZXpDN+sW0ElQ468QhV1tJuoGyXXeiKNnpOuKe/7e10vXH9B0VsBc1VIpC0S17cWuq1/vUkcb9fm5Q==
+  dependencies:
+    "@storybook/addons" "6.3.8"
+    "@storybook/channel-postmessage" "6.3.8"
+    "@storybook/client-api" "6.3.8"
+    "@storybook/client-logger" "6.3.8"
+    "@storybook/core-events" "6.3.8"
+    "@storybook/csf" "0.0.1"
+    "@storybook/ui" "6.3.8"
+    airbnb-js-shims "^2.2.1"
+    ansi-to-html "^0.6.11"
+    core-js "^3.8.2"
+    global "^4.4.0"
+    lodash "^4.17.20"
+    qs "^6.10.0"
+    regenerator-runtime "^0.13.7"
+    ts-dedent "^2.0.0"
+    unfetch "^4.2.0"
+    util-deprecate "^1.0.2"
 
-"@storybook/channel-postmessage@^3.2.19":
-  version "3.3.12"
-  resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-3.3.12.tgz#a4e7ac32ff84d2cc41bf3a5f30608ce5f82bcf82"
+"@storybook/core-common@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.3.8.tgz#a8ef7aba92c987be692d936fe6d5782f801e170f"
+  integrity sha512-a1buOaYAbs7m8LMeraN9syG9Hp6wePabJoFrcQxwf4EQZcgfwTUkyYarfpsYsy9vFdDzvvANrOYp/fq6Bnx6LA==
   dependencies:
-    "@storybook/channels" "^3.3.12"
-    global "^4.3.2"
-    json-stringify-safe "^5.0.1"
-
-"@storybook/channels@^3.3.12":
-  version "3.3.12"
-  resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-3.3.12.tgz#aa4106888971f9e689511093b0e6f2b569973a09"
+    "@babel/core" "^7.12.10"
+    "@babel/plugin-proposal-class-properties" "^7.12.1"
+    "@babel/plugin-proposal-decorators" "^7.12.12"
+    "@babel/plugin-proposal-export-default-from" "^7.12.1"
+    "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1"
+    "@babel/plugin-proposal-object-rest-spread" "^7.12.1"
+    "@babel/plugin-proposal-optional-chaining" "^7.12.7"
+    "@babel/plugin-proposal-private-methods" "^7.12.1"
+    "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+    "@babel/plugin-transform-arrow-functions" "^7.12.1"
+    "@babel/plugin-transform-block-scoping" "^7.12.12"
+    "@babel/plugin-transform-classes" "^7.12.1"
+    "@babel/plugin-transform-destructuring" "^7.12.1"
+    "@babel/plugin-transform-for-of" "^7.12.1"
+    "@babel/plugin-transform-parameters" "^7.12.1"
+    "@babel/plugin-transform-shorthand-properties" "^7.12.1"
+    "@babel/plugin-transform-spread" "^7.12.1"
+    "@babel/preset-env" "^7.12.11"
+    "@babel/preset-react" "^7.12.10"
+    "@babel/preset-typescript" "^7.12.7"
+    "@babel/register" "^7.12.1"
+    "@storybook/node-logger" "6.3.8"
+    "@storybook/semver" "^7.3.2"
+    "@types/glob-base" "^0.3.0"
+    "@types/micromatch" "^4.0.1"
+    "@types/node" "^14.0.10"
+    "@types/pretty-hrtime" "^1.0.0"
+    babel-loader "^8.2.2"
+    babel-plugin-macros "^3.0.1"
+    babel-plugin-polyfill-corejs3 "^0.1.0"
+    chalk "^4.1.0"
+    core-js "^3.8.2"
+    express "^4.17.1"
+    file-system-cache "^1.0.5"
+    find-up "^5.0.0"
+    fork-ts-checker-webpack-plugin "^6.0.4"
+    glob "^7.1.6"
+    glob-base "^0.3.0"
+    interpret "^2.2.0"
+    json5 "^2.1.3"
+    lazy-universal-dotenv "^3.0.1"
+    micromatch "^4.0.2"
+    pkg-dir "^5.0.0"
+    pretty-hrtime "^1.0.3"
+    resolve-from "^5.0.0"
+    ts-dedent "^2.0.0"
+    util-deprecate "^1.0.2"
+    webpack "4"
+
+"@storybook/core-events@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.3.8.tgz#4c9a3deb9334b10116befbf2db5534d1319d2f39"
+  integrity sha512-M3d2iX842YfopqmOHlXzL/Xy4fICzaRnet99GdfOqWjZhC2CVSemVk1b/vgfQv4MFYOQkSLsAjkbDH/kU8n9Aw==
+  dependencies:
+    core-js "^3.8.2"
+
+"@storybook/core-server@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.3.8.tgz#0d141e6f315b735a442aebc0f424f911456c769c"
+  integrity sha512-9J7cabcGe/h6nH4KnRvnYOwY1EFeNtl1qOVgej1nh70aIhKyRVMRc+d2gsOAmzmePtK6pocJUjm1/t876P9Ekg==
+  dependencies:
+    "@discoveryjs/json-ext" "^0.5.3"
+    "@storybook/builder-webpack4" "6.3.8"
+    "@storybook/core-client" "6.3.8"
+    "@storybook/core-common" "6.3.8"
+    "@storybook/csf-tools" "6.3.8"
+    "@storybook/manager-webpack4" "6.3.8"
+    "@storybook/node-logger" "6.3.8"
+    "@storybook/semver" "^7.3.2"
+    "@types/node" "^14.0.10"
+    "@types/node-fetch" "^2.5.7"
+    "@types/pretty-hrtime" "^1.0.0"
+    "@types/webpack" "^4.41.26"
+    better-opn "^2.1.1"
+    boxen "^4.2.0"
+    chalk "^4.1.0"
+    cli-table3 "0.6.0"
+    commander "^6.2.1"
+    compression "^1.7.4"
+    core-js "^3.8.2"
+    cpy "^8.1.1"
+    detect-port "^1.3.0"
+    express "^4.17.1"
+    file-system-cache "^1.0.5"
+    fs-extra "^9.0.1"
+    globby "^11.0.2"
+    ip "^1.1.5"
+    node-fetch "^2.6.1"
+    pretty-hrtime "^1.0.3"
+    prompts "^2.4.0"
+    regenerator-runtime "^0.13.7"
+    serve-favicon "^2.5.0"
+    ts-dedent "^2.0.0"
+    util-deprecate "^1.0.2"
+    webpack "4"
+
+"@storybook/core@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.3.8.tgz#daf11902a0a19cee62b51b5d73669d705468667c"
+  integrity sha512-NTPrqX7goy9DnVEqPFvLccjrQ0eHza64ahP75bXo7H5tyVyEDcaI7ynk1l5zkO4+q6Ze9gkRiWIy7Z324kGAMg==
+  dependencies:
+    "@storybook/core-client" "6.3.8"
+    "@storybook/core-server" "6.3.8"
+
+"@storybook/csf-tools@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.3.8.tgz#bc51d2559d2cf1bf761d38a9a913a523d36a7551"
+  integrity sha512-yY+xN+3TKoUNK0KVAhQNPC3Pf7J0gkmSTOhBwRaPjVKQ3Dy8RE+r/+h9v7rxdmWnl7thdt7tWsjaUdy5DPNLug==
+  dependencies:
+    "@babel/generator" "^7.12.11"
+    "@babel/parser" "^7.12.11"
+    "@babel/plugin-transform-react-jsx" "^7.12.12"
+    "@babel/preset-env" "^7.12.11"
+    "@babel/traverse" "^7.12.11"
+    "@babel/types" "^7.12.11"
+    "@mdx-js/mdx" "^1.6.22"
+    "@storybook/csf" "^0.0.1"
+    core-js "^3.8.2"
+    fs-extra "^9.0.1"
+    js-string-escape "^1.0.1"
+    lodash "^4.17.20"
+    prettier "~2.2.1"
+    regenerator-runtime "^0.13.7"
 
-"@storybook/components@^3.3.12":
-  version "3.3.12"
-  resolved "https://registry.yarnpkg.com/@storybook/components/-/components-3.3.12.tgz#e2571ca7150488f4ac3fa1cd1f70fa91ce38da8b"
+"@storybook/csf@0.0.1", "@storybook/csf@^0.0.1":
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.0.1.tgz#95901507dc02f0bc6f9ac8ee1983e2fc5bb98ce6"
+  integrity sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==
   dependencies:
-    glamor "^2.20.40"
-    glamorous "^4.11.2"
-    prop-types "^15.6.0"
+    lodash "^4.17.15"
 
-"@storybook/mantra-core@^1.7.2":
-  version "1.7.2"
-  resolved "https://registry.yarnpkg.com/@storybook/mantra-core/-/mantra-core-1.7.2.tgz#e10c7faca29769e97131e0e0308ef7cfb655b70c"
+"@storybook/manager-webpack4@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.3.8.tgz#92deb490242567530b1093e9a57371961ea88285"
+  integrity sha512-W4t/NIbkNgxbjW/RsjMV4f3gPwY+Rw69GvoIAVurEEyi6dKJa2tQ1XrGOZMhF3PqWDTybOLTopcp9Ici2MJnMA==
   dependencies:
-    "@storybook/react-komposer" "^2.0.1"
-    "@storybook/react-simple-di" "^1.2.1"
-    babel-runtime "6.x.x"
+    "@babel/core" "^7.12.10"
+    "@babel/plugin-transform-template-literals" "^7.12.1"
+    "@babel/preset-react" "^7.12.10"
+    "@storybook/addons" "6.3.8"
+    "@storybook/core-client" "6.3.8"
+    "@storybook/core-common" "6.3.8"
+    "@storybook/node-logger" "6.3.8"
+    "@storybook/theming" "6.3.8"
+    "@storybook/ui" "6.3.8"
+    "@types/node" "^14.0.10"
+    "@types/webpack" "^4.41.26"
+    babel-loader "^8.2.2"
+    case-sensitive-paths-webpack-plugin "^2.3.0"
+    chalk "^4.1.0"
+    core-js "^3.8.2"
+    css-loader "^3.6.0"
+    dotenv-webpack "^1.8.0"
+    express "^4.17.1"
+    file-loader "^6.2.0"
+    file-system-cache "^1.0.5"
+    find-up "^5.0.0"
+    fs-extra "^9.0.1"
+    html-webpack-plugin "^4.0.0"
+    node-fetch "^2.6.1"
+    pnp-webpack-plugin "1.6.4"
+    read-pkg-up "^7.0.1"
+    regenerator-runtime "^0.13.7"
+    resolve-from "^5.0.0"
+    style-loader "^1.3.0"
+    telejson "^5.3.2"
+    terser-webpack-plugin "^4.2.3"
+    ts-dedent "^2.0.0"
+    url-loader "^4.1.1"
+    util-deprecate "^1.0.2"
+    webpack "4"
+    webpack-dev-middleware "^3.7.3"
+    webpack-virtual-modules "^0.2.2"
 
-"@storybook/react-komposer@^2.0.1", "@storybook/react-komposer@^2.0.3":
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/@storybook/react-komposer/-/react-komposer-2.0.3.tgz#f9e12a9586b2ce95c24c137eabb8b71527ddb369"
+"@storybook/node-logger@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.3.8.tgz#664ffc1ed6f9b8fb446005d4b60fc2fba129fc21"
+  integrity sha512-NDXLcvEepnsVGnnhNgRa1SuedPrHJpbi3rubJENCwAy1fD3oB8HIkSCVHaml/htaQXVp6CGMWy02l5iGCVN4ZA==
   dependencies:
-    "@storybook/react-stubber" "^1.0.0"
-    babel-runtime "^6.11.6"
-    hoist-non-react-statics "^1.2.0"
-    lodash.pick "^4.4.0"
-    shallowequal "^0.2.2"
+    "@types/npmlog" "^4.1.2"
+    chalk "^4.1.0"
+    core-js "^3.8.2"
+    npmlog "^4.1.2"
+    pretty-hrtime "^1.0.3"
 
-"@storybook/react-simple-di@^1.2.1":
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/@storybook/react-simple-di/-/react-simple-di-1.3.0.tgz#13116d89a2f42898716a7f8c4095b47415526371"
+"@storybook/react-docgen-typescript-plugin@1.0.2-canary.253f8c1.0":
+  version "1.0.2-canary.253f8c1.0"
+  resolved "https://registry.yarnpkg.com/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.2-canary.253f8c1.0.tgz#f2da40e6aae4aa586c2fb284a4a1744602c3c7fa"
+  integrity sha512-mmoRG/rNzAiTbh+vGP8d57dfcR2aP+5/Ll03KKFyfy5FqWFm/Gh7u27ikx1I3LmVMI8n6jh5SdWMkMKon7/tDw==
   dependencies:
-    babel-runtime "6.x.x"
-    create-react-class "^15.6.2"
-    hoist-non-react-statics "1.x.x"
-    prop-types "^15.6.0"
+    debug "^4.1.1"
+    endent "^2.0.1"
+    find-cache-dir "^3.3.1"
+    flat-cache "^3.0.4"
+    micromatch "^4.0.2"
+    react-docgen-typescript "^2.0.0"
+    tslib "^2.0.0"
+
+"@storybook/react@^6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.3.8.tgz#1b341fb3dd20f2de4c3b542bcda2623fe0babb2b"
+  integrity sha512-X+xFilz6qHEMj6m7nKqoH2uDAIWSbjASj7kGW6rdVj6WvCpLeEQhM4wdrulRXFsbAetWtl/KZnmtjakgXzYGKg==
+  dependencies:
+    "@babel/preset-flow" "^7.12.1"
+    "@babel/preset-react" "^7.12.10"
+    "@pmmmwh/react-refresh-webpack-plugin" "^0.4.3"
+    "@storybook/addons" "6.3.8"
+    "@storybook/core" "6.3.8"
+    "@storybook/core-common" "6.3.8"
+    "@storybook/node-logger" "6.3.8"
+    "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.253f8c1.0"
+    "@storybook/semver" "^7.3.2"
+    "@types/webpack-env" "^1.16.0"
+    babel-plugin-add-react-displayname "^0.0.5"
+    babel-plugin-named-asset-import "^0.3.1"
+    babel-plugin-react-docgen "^4.2.1"
+    core-js "^3.8.2"
+    global "^4.4.0"
+    lodash "^4.17.20"
+    prop-types "^15.7.2"
+    react-dev-utils "^11.0.3"
+    react-refresh "^0.8.3"
+    read-pkg-up "^7.0.1"
+    regenerator-runtime "^0.13.7"
+    ts-dedent "^2.0.0"
+    webpack "4"
+
+"@storybook/router@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.3.8.tgz#16f6c73a760918adb146e456c5b98614cb747f79"
+  integrity sha512-CafRmHtkwa8CQETum0RaspSExt8mrFsoYZSyrVSWqOyGG048MT3ocCPRsSueor17h+Q5neKamrPVN1jAdSilDg==
+  dependencies:
+    "@reach/router" "^1.3.4"
+    "@storybook/client-logger" "6.3.8"
+    "@types/reach__router" "^1.3.7"
+    core-js "^3.8.2"
+    fast-deep-equal "^3.1.3"
+    global "^4.4.0"
+    lodash "^4.17.20"
+    memoizerific "^1.11.3"
+    qs "^6.10.0"
+    ts-dedent "^2.0.0"
 
-"@storybook/react-stubber@^1.0.0":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@storybook/react-stubber/-/react-stubber-1.0.1.tgz#8c312c2658b9eeafce470e1c39e4193f0b5bf9b1"
-  dependencies:
-    babel-runtime "^6.5.0"
-
-"@storybook/react@3.2.19":
-  version "3.2.19"
-  resolved "https://registry.yarnpkg.com/@storybook/react/-/react-3.2.19.tgz#3a609ccf6b0608cec9c6dfe76494e3721efe2fc3"
-  dependencies:
-    "@storybook/addon-actions" "^3.2.19"
-    "@storybook/addon-links" "^3.2.19"
-    "@storybook/addons" "^3.2.19"
-    "@storybook/channel-postmessage" "^3.2.19"
-    "@storybook/ui" "^3.2.19"
-    airbnb-js-shims "^1.4.0"
-    autoprefixer "^7.2.3"
-    babel-loader "^7.1.2"
-    babel-plugin-react-docgen "^1.8.0"
-    babel-plugin-transform-regenerator "^6.26.0"
-    babel-plugin-transform-runtime "^6.23.0"
-    babel-preset-env "^1.6.1"
-    babel-preset-minify "^0.2.0"
-    babel-preset-react "^6.24.1"
-    babel-preset-react-app "^3.1.0"
-    babel-preset-stage-0 "^6.24.1"
-    babel-runtime "^6.26.0"
-    case-sensitive-paths-webpack-plugin "^2.1.1"
-    chalk "^2.3.0"
-    commander "^2.12.2"
-    common-tags "^1.6.0"
-    configstore "^3.1.1"
-    core-js "^2.5.3"
-    css-loader "^0.28.7"
-    dotenv-webpack "^1.5.4"
-    express "^4.16.2"
-    file-loader "^1.1.6"
-    find-cache-dir "^1.0.0"
-    glamor "^2.20.40"
-    glamorous "^4.11.2"
-    global "^4.3.2"
-    json-loader "^0.5.7"
-    json-stringify-safe "^5.0.1"
-    json5 "^0.5.1"
-    lodash.flattendeep "^4.4.0"
-    postcss-flexbugs-fixes "^3.2.0"
-    postcss-loader "^2.0.9"
-    prop-types "^15.6.0"
-    qs "^6.5.1"
-    redux "^3.7.2"
-    request "^2.83.0"
-    serve-favicon "^2.4.5"
-    shelljs "^0.7.8"
-    style-loader "^0.19.1"
-    url-loader "^0.6.2"
-    util-deprecate "^1.0.2"
-    uuid "^3.1.0"
-    webpack "^3.10.0"
-    webpack-dev-middleware "^1.12.2"
-    webpack-hot-middleware "^2.21.0"
+"@storybook/semver@^7.3.2":
+  version "7.3.2"
+  resolved "https://registry.yarnpkg.com/@storybook/semver/-/semver-7.3.2.tgz#f3b9c44a1c9a0b933c04e66d0048fcf2fa10dac0"
+  integrity sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==
+  dependencies:
+    core-js "^3.6.5"
+    find-up "^4.1.0"
+
+"@storybook/theming@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.3.8.tgz#3af76408aa8a4f13e217cf407e63a03db217eedc"
+  integrity sha512-Np51rvecnuHNevZ7Em0uElT5UkgASP5K2u8NpHcCxP/Hd73wxS/h//6XnjA9Aich7h/JanG71jAC3qqhZabatA==
+  dependencies:
+    "@emotion/core" "^10.1.1"
+    "@emotion/is-prop-valid" "^0.8.6"
+    "@emotion/styled" "^10.0.27"
+    "@storybook/client-logger" "6.3.8"
+    core-js "^3.8.2"
+    deep-object-diff "^1.1.0"
+    emotion-theming "^10.0.27"
+    global "^4.4.0"
+    memoizerific "^1.11.3"
+    polished "^4.0.5"
+    resolve-from "^5.0.0"
+    ts-dedent "^2.0.0"
+
+"@storybook/ui@6.3.8":
+  version "6.3.8"
+  resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.3.8.tgz#9fb71befbe76f06c478925610ce998c23260a3f3"
+  integrity sha512-R7LlDfRvD/IcARtmGtYAM79ks2HL+nitdfdRpoW8fYZiX3ErfSIScWzzoxRPFqedg64vwOvbIEhXp7N9JDwFZA==
+  dependencies:
+    "@emotion/core" "^10.1.1"
+    "@storybook/addons" "6.3.8"
+    "@storybook/api" "6.3.8"
+    "@storybook/channels" "6.3.8"
+    "@storybook/client-logger" "6.3.8"
+    "@storybook/components" "6.3.8"
+    "@storybook/core-events" "6.3.8"
+    "@storybook/router" "6.3.8"
+    "@storybook/semver" "^7.3.2"
+    "@storybook/theming" "6.3.8"
+    "@types/markdown-to-jsx" "^6.11.3"
+    copy-to-clipboard "^3.3.1"
+    core-js "^3.8.2"
+    core-js-pure "^3.8.2"
+    downshift "^6.0.15"
+    emotion-theming "^10.0.27"
+    fuse.js "^3.6.1"
+    global "^4.4.0"
+    lodash "^4.17.20"
+    markdown-to-jsx "^6.11.4"
+    memoizerific "^1.11.3"
+    polished "^4.0.5"
+    qs "^6.10.0"
+    react-draggable "^4.4.3"
+    react-helmet-async "^1.0.7"
+    react-sizeme "^3.0.1"
+    regenerator-runtime "^0.13.7"
+    resolve-from "^5.0.0"
+    store2 "^2.12.0"
+
+"@types/braces@*":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@types/braces/-/braces-3.0.1.tgz#5a284d193cfc61abb2e5a50d36ebbc50d942a32b"
+  integrity sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==
 
-"@storybook/ui@^3.2.19":
-  version "3.3.12"
-  resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-3.3.12.tgz#b0a9cd83423c4d6cded0a0340fc4f48d5bdf3bc0"
+"@types/color-convert@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.0.tgz#8f5ee6b9e863dcbee5703f5a517ffb13d3ea4e22"
+  integrity sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==
   dependencies:
-    "@storybook/components" "^3.3.12"
-    "@storybook/mantra-core" "^1.7.2"
-    "@storybook/react-komposer" "^2.0.3"
-    babel-runtime "^6.26.0"
-    deep-equal "^1.0.1"
-    events "^1.1.1"
-    fuse.js "^3.2.0"
-    global "^4.3.2"
-    json-stringify-safe "^5.0.1"
-    keycode "^2.1.9"
-    lodash.debounce "^4.0.8"
-    lodash.pick "^4.4.0"
-    lodash.sortby "^4.7.0"
-    podda "^1.2.2"
-    prop-types "^15.6.0"
-    qs "^6.5.1"
-    react-fuzzy "^0.5.1"
-    react-icons "^2.2.7"
-    react-inspector "^2.2.2"
-    react-modal "^3.1.10"
-    react-split-pane "^0.1.74"
-    react-treebeard "^2.1.0"
-    redux "^3.7.2"
-
-"@types/color-name@^1.1.1":
+    "@types/color-name" "*"
+
+"@types/color-name@*", "@types/color-name@^1.1.1":
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
   integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
@@ -1438,37 +3006,219 @@
   resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803"
   integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==
 
-"@types/inline-style-prefixer@^3.0.0":
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/@types/inline-style-prefixer/-/inline-style-prefixer-3.0.1.tgz#8541e636b029124b747952e9a28848286d2b5bf6"
+"@types/glob-base@^0.3.0":
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/@types/glob-base/-/glob-base-0.3.0.tgz#a581d688347e10e50dd7c17d6f2880a10354319d"
+  integrity sha1-pYHWiDR+EOUN18F9byiAoQNUMZ0=
+
+"@types/glob@*", "@types/glob@^7.1.1":
+  version "7.1.4"
+  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672"
+  integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==
+  dependencies:
+    "@types/minimatch" "*"
+    "@types/node" "*"
+
+"@types/hast@^2.0.0":
+  version "2.3.4"
+  resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc"
+  integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==
+  dependencies:
+    "@types/unist" "*"
+
+"@types/html-minifier-terser@^5.0.0":
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57"
+  integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==
+
+"@types/is-function@^1.0.0":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/@types/is-function/-/is-function-1.0.1.tgz#2d024eace950c836d9e3335a66b97960ae41d022"
+  integrity sha512-A79HEEiwXTFtfY+Bcbo58M2GRYzCr9itHWzbzHVFNEYCcoU/MMGwYYf721gBrnhpj1s6RGVVha/IgNFnR0Iw/Q==
+
+"@types/istanbul-lib-coverage@^2.0.1":
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
+  integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==
 
 "@types/json-schema@^7.0.3":
   version "7.0.4"
   resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339"
   integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==
 
+"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.8":
+  version "7.0.9"
+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
+  integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
+
 "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
   version "7.0.6"
   resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0"
   integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==
 
+"@types/markdown-to-jsx@^6.11.3":
+  version "6.11.3"
+  resolved "https://registry.yarnpkg.com/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.3.tgz#cdd1619308fecbc8be7e6a26f3751260249b020e"
+  integrity sha512-30nFYpceM/ZEvhGiqWjm5quLUxNeld0HCzJEXMZZDpq53FPkS85mTwkWtCXzCqq8s5JYLgM5W392a02xn8Bdaw==
+  dependencies:
+    "@types/react" "*"
+
+"@types/mdast@^3.0.0":
+  version "3.0.10"
+  resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af"
+  integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==
+  dependencies:
+    "@types/unist" "*"
+
+"@types/micromatch@^4.0.1":
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/@types/micromatch/-/micromatch-4.0.2.tgz#ce29c8b166a73bf980a5727b1e4a4d099965151d"
+  integrity sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA==
+  dependencies:
+    "@types/braces" "*"
+
+"@types/minimatch@*":
+  version "3.0.5"
+  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
+  integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
+
+"@types/node-fetch@^2.5.7":
+  version "2.5.12"
+  resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66"
+  integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==
+  dependencies:
+    "@types/node" "*"
+    form-data "^3.0.0"
+
 "@types/node@*":
   version "9.4.0"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.0.tgz#b85a0bcf1e1cc84eb4901b7e96966aedc6f078d1"
 
+"@types/node@^14.0.10":
+  version "14.17.15"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.15.tgz#d5ebfb62a69074ebb85cbe0529ad917bb8f2bae8"
+  integrity sha512-D1sdW0EcSCmNdLKBGMYb38YsHUS6JcM7yQ6sLQ9KuZ35ck7LYCKE7kYFHOO59ayFOY3zobWVZxf4KXhYHcHYFA==
+
+"@types/normalize-package-data@^2.4.0":
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301"
+  integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==
+
+"@types/npmlog@^4.1.2":
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.3.tgz#9c24b49a97e25cf15a890ff404764080d7942132"
+  integrity sha512-1TcL7YDYCtnHmLhTWbum+IIwLlvpaHoEKS2KNIngEwLzwgDeHaebaEHHbQp8IqzNQ9IYiboLKUjAf7MZqG63+w==
+
 "@types/object-assign@^4.0.30":
   version "4.0.30"
   resolved "https://registry.yarnpkg.com/@types/object-assign/-/object-assign-4.0.30.tgz#8949371d5a99f4381ee0f1df0a9b7a187e07e652"
   integrity sha1-iUk3HVqZ9Dge4PHfCpt6GH4H5lI=
 
+"@types/overlayscrollbars@^1.12.0":
+  version "1.12.1"
+  resolved "https://registry.yarnpkg.com/@types/overlayscrollbars/-/overlayscrollbars-1.12.1.tgz#fb637071b545834fb12aea94ee309a2ff4cdc0a8"
+  integrity sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ==
+
 "@types/parse-json@^4.0.0":
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
   integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
 
-"@types/react@^16.0.18":
-  version "16.0.36"
-  resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.36.tgz#ceb5639013bdb92a94147883052e69bb2c22c69b"
+"@types/parse5@^5.0.0":
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109"
+  integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==
+
+"@types/pretty-hrtime@^1.0.0":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz#72a26101dc567b0d68fd956cf42314556e42d601"
+  integrity sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==
+
+"@types/prop-types@*":
+  version "15.7.4"
+  resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
+  integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
+
+"@types/qs@^6.9.5":
+  version "6.9.7"
+  resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
+  integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
+
+"@types/reach__router@^1.3.7":
+  version "1.3.9"
+  resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.9.tgz#d3aaac0072665c81063cc6c557c18dadd642b226"
+  integrity sha512-N6rqQqTTAV/zKLfK3iq9Ww3wqCEhTZvsilhl0zI09zETdVq1QGmJH6+/xnj8AFUWIrle2Cqo+PGM/Ltr1vBb9w==
+  dependencies:
+    "@types/react" "*"
+
+"@types/react-syntax-highlighter@11.0.5":
+  version "11.0.5"
+  resolved "https://registry.yarnpkg.com/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz#0d546261b4021e1f9d85b50401c0a42acb106087"
+  integrity sha512-VIOi9i2Oj5XsmWWoB72p3KlZoEbdRAcechJa8Ztebw7bDl2YmR+odxIqhtJGp1q2EozHs02US+gzxJ9nuf56qg==
+  dependencies:
+    "@types/react" "*"
+
+"@types/react@*":
+  version "17.0.20"
+  resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.20.tgz#a4284b184d47975c71658cd69e759b6bd37c3b8c"
+  integrity sha512-wWZrPlihslrPpcKyCSlmIlruakxr57/buQN1RjlIeaaTWDLtJkTtRW429MoQJergvVKc4IWBpRhWw7YNh/7GVA==
+  dependencies:
+    "@types/prop-types" "*"
+    "@types/scheduler" "*"
+    csstype "^3.0.2"
+
+"@types/scheduler@*":
+  version "0.16.2"
+  resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
+  integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
+
+"@types/source-list-map@*":
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
+  integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
+
+"@types/tapable@^1", "@types/tapable@^1.0.5":
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310"
+  integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==
+
+"@types/uglify-js@*":
+  version "3.13.1"
+  resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea"
+  integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==
+  dependencies:
+    source-map "^0.6.1"
+
+"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3":
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d"
+  integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==
+
+"@types/webpack-env@^1.16.0":
+  version "1.16.2"
+  resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.2.tgz#8db514b059c1b2ae14ce9d7bb325296de6a9a0fa"
+  integrity sha512-vKx7WNQNZDyJveYcHAm9ZxhqSGLYwoyLhrHjLBOkw3a7cT76sTdjgtwyijhk1MaHyRIuSztcVwrUOO/NEu68Dw==
+
+"@types/webpack-sources@*":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b"
+  integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==
+  dependencies:
+    "@types/node" "*"
+    "@types/source-list-map" "*"
+    source-map "^0.7.3"
+
+"@types/webpack@^4.41.26", "@types/webpack@^4.41.8":
+  version "4.41.31"
+  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.31.tgz#c35f252a3559ddf9c85c0d8b0b42019025e581aa"
+  integrity sha512-/i0J7sepXFIp1ZT7FjUGi1eXMCg8HCCzLJEQkKsOtbJFontsJLolBcDC+3qxn5pPwiCt1G0ZdRmYRzNBtvpuGQ==
+  dependencies:
+    "@types/node" "*"
+    "@types/tapable" "^1"
+    "@types/uglify-js" "*"
+    "@types/webpack-sources" "*"
+    anymatch "^3.0.0"
+    source-map "^0.6.0"
 
 "@typescript-eslint/experimental-utils@^2.5.0":
   version "2.28.0"
@@ -1668,14 +3418,7 @@ abbrev@1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
 
-accepts@^1.2.2, accepts@~1.3.4:
-  version "1.3.4"
-  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f"
-  dependencies:
-    mime-types "~2.1.16"
-    negotiator "0.6.1"
-
-accepts@~1.3.7:
+accepts@^1.2.2, accepts@~1.3.5, accepts@~1.3.7:
   version "1.3.7"
   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
   integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
@@ -1683,12 +3426,6 @@ accepts@~1.3.7:
     mime-types "~2.1.24"
     negotiator "0.6.2"
 
-acorn-dynamic-import@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
-  dependencies:
-    acorn "^4.0.3"
-
 acorn-globals@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf"
@@ -1711,7 +3448,7 @@ acorn-walk@^8.0.0:
   resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.0.tgz#56ae4c0f434a45fff4a125e7ea95fa9c98f67a16"
   integrity sha512-oZRad/3SMOI/pxbbmqyurIx7jHw1wZDcR9G44L8pUVFEomX/0dH89SrM1KaDXuv1NpzAXz6Op/Xu/Qd5XXzdEA==
 
-acorn@^4.0.3, acorn@^4.0.4:
+acorn@^4.0.4:
   version "4.0.13"
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
 
@@ -1734,38 +3471,68 @@ acorn@^8.0.4:
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354"
   integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==
 
-airbnb-js-shims@^1.4.0:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-1.4.1.tgz#cc3e8eb8d35877f9d0fdc6583e26b0ee75b98ad0"
+address@1.1.2, address@^1.0.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
+  integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==
+
+aggregate-error@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+  integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+  dependencies:
+    clean-stack "^2.0.0"
+    indent-string "^4.0.0"
+
+airbnb-js-shims@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz#db481102d682b98ed1daa4c5baa697a05ce5c040"
+  integrity sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==
   dependencies:
     array-includes "^3.0.3"
-    array.prototype.flatmap "^1.2.0"
-    array.prototype.flatten "^1.2.0"
-    es5-shim "^4.5.10"
-    es6-shim "^0.35.3"
+    array.prototype.flat "^1.2.1"
+    array.prototype.flatmap "^1.2.1"
+    es5-shim "^4.5.13"
+    es6-shim "^0.35.5"
     function.prototype.name "^1.1.0"
-    object.entries "^1.0.4"
+    globalthis "^1.0.0"
+    object.entries "^1.1.0"
+    object.fromentries "^2.0.0 || ^1.0.0"
     object.getownpropertydescriptors "^2.0.3"
-    object.values "^1.0.4"
+    object.values "^1.1.0"
+    promise.allsettled "^1.0.0"
     promise.prototype.finally "^3.1.0"
+    string.prototype.matchall "^4.0.0 || ^3.0.1"
     string.prototype.padend "^3.0.0"
     string.prototype.padstart "^3.0.0"
+    symbol.prototype.description "^1.0.0"
+
+airbnb-prop-types@^2.16.0:
+  version "2.16.0"
+  resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2"
+  integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==
+  dependencies:
+    array.prototype.find "^2.1.1"
+    function.prototype.name "^1.1.2"
+    is-regex "^1.1.0"
+    object-is "^1.1.2"
+    object.assign "^4.1.0"
+    object.entries "^1.1.2"
+    prop-types "^15.7.2"
+    prop-types-exact "^1.2.0"
+    react-is "^16.13.1"
 
 ajv-errors@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
   integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
 
-ajv-keywords@^2.0.0, ajv-keywords@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
-
 ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
   version "3.5.2"
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
   integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
 
-ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5:
+ajv@^5.1.0:
   version "5.5.2"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
   dependencies:
@@ -1774,7 +3541,7 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5:
     fast-json-stable-stringify "^2.0.0"
     json-schema-traverse "^0.3.0"
 
-ajv@^6.1.0, ajv@^6.12.4, ajv@^6.12.5:
+ajv@^6.1.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5:
   version "6.12.6"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
   integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -1813,35 +3580,39 @@ align-text@^0.1.1, align-text@^0.1.3:
     longest "^1.0.1"
     repeat-string "^1.5.2"
 
-alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
-
 amdefine@>=0.0.4:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
 
+ansi-align@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
+  integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==
+  dependencies:
+    string-width "^3.0.0"
+
+ansi-colors@^3.0.0:
+  version "3.2.4"
+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
+  integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
+
 ansi-colors@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
   integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
 
-ansi-escapes@^1.0.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
-
 ansi-escapes@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
 
-ansi-escapes@^4.2.1:
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.0:
   version "4.3.1"
   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
   integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
   dependencies:
     type-fest "^0.11.0"
 
-ansi-html@0.0.7:
+ansi-html@0.0.7, ansi-html@^0.0.7:
   version "0.0.7"
   resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
 
@@ -1880,6 +3651,13 @@ ansi-styles@^3.2.1:
   dependencies:
     color-convert "^1.9.0"
 
+ansi-styles@^4.0.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
 ansi-styles@^4.1.0:
   version "4.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
@@ -1888,9 +3666,12 @@ ansi-styles@^4.1.0:
     "@types/color-name" "^1.1.1"
     color-convert "^2.0.1"
 
-any-observable@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242"
+ansi-to-html@^0.6.11:
+  version "0.6.15"
+  resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.15.tgz#ac6ad4798a00f6aa045535d7f6a9cb9294eebea7"
+  integrity sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==
+  dependencies:
+    entities "^2.0.0"
 
 any-promise@^1.0.0, any-promise@^1.1.0:
   version "1.3.0"
@@ -1911,6 +3692,14 @@ anymatch@^2.0.0:
     micromatch "^3.1.4"
     normalize-path "^2.1.1"
 
+anymatch@^3.0.0, anymatch@^3.1.1, anymatch@~3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
 anymatch@~3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
@@ -1919,9 +3708,10 @@ anymatch@~3.1.1:
     normalize-path "^3.0.0"
     picomatch "^2.0.4"
 
-app-root-path@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46"
+app-root-dir@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118"
+  integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=
 
 append-transform@^0.4.0:
   version "0.4.0"
@@ -1940,19 +3730,19 @@ are-we-there-yet@~1.1.2:
     delegates "^1.0.0"
     readable-stream "^2.0.6"
 
+argparse@^1.0.10:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+  dependencies:
+    sprintf-js "~1.0.2"
+
 argparse@^1.0.7:
   version "1.0.9"
   resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
   dependencies:
     sprintf-js "~1.0.2"
 
-argparse@~0.1.15:
-  version "0.1.16"
-  resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c"
-  dependencies:
-    underscore "~1.7.0"
-    underscore.string "~2.4.0"
-
 aria-query@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc"
@@ -1995,10 +3785,6 @@ array-find-index@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
 
-array-find@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8"
-
 array-flatten@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
@@ -2019,6 +3805,23 @@ array-includes@^3.1.1:
     es-abstract "^1.17.0"
     is-string "^1.0.5"
 
+array-union@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+  integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
+  dependencies:
+    array-uniq "^1.0.1"
+
+array-union@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
+array-uniq@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+  integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
+
 array-unique@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
@@ -2028,6 +3831,14 @@ array-unique@^0.3.2:
   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
   integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
 
+array.prototype.find@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c"
+  integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.17.4"
+
 array.prototype.flat@^1.2.1:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b"
@@ -2036,26 +3847,36 @@ array.prototype.flat@^1.2.1:
     define-properties "^1.1.3"
     es-abstract "^1.17.0-next.1"
 
-array.prototype.flatmap@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.0.tgz#279f7ed4eeb1cedfe5515e92e63cfb40ca15b74b"
+array.prototype.flatmap@^1.2.1:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9"
+  integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==
   dependencies:
-    define-properties "^1.1.2"
-    es-abstract "^1.10.0"
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.1"
     function-bind "^1.1.1"
 
-array.prototype.flatten@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/array.prototype.flatten/-/array.prototype.flatten-1.2.0.tgz#e46fb18954f8796381a73755e122570647984be3"
+array.prototype.map@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.3.tgz#1609623618d3d84134a37d4a220030c2bd18420b"
+  integrity sha512-nNcb30v0wfDyIe26Yif3PcV1JXQp4zEeEfupG7L4SRjnD6HLbO5b2a7eVSba53bOx4YCHYMBHt+Fp4vYstneRA==
   dependencies:
-    define-properties "^1.1.2"
-    es-abstract "^1.10.0"
-    function-bind "^1.1.1"
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.1"
+    es-array-method-boxes-properly "^1.0.0"
+    is-string "^1.0.5"
 
 arrify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
 
+arrify@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
+  integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
+
 asap@~2.0.3:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
@@ -2092,17 +3913,21 @@ ast-types-flow@0.0.7, ast-types-flow@^0.0.7:
   resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
   integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
 
-ast-types@0.10.1:
-  version "0.10.1"
-  resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd"
+ast-types@^0.14.2:
+  version "0.14.2"
+  resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd"
+  integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==
+  dependencies:
+    tslib "^2.0.1"
 
 astral-regex@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
 
-async-each@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+astral-regex@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
 
 async-each@^1.0.1:
   version "1.0.3"
@@ -2126,16 +3951,28 @@ async@^1.4.0:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
 
-async@^2.1.2, async@^2.1.4:
+async@^2.1.4:
   version "2.6.0"
   resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
   dependencies:
     lodash "^4.14.0"
 
+async@^2.4.1, async@^2.6.2:
+  version "2.6.3"
+  resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
+  integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
+  dependencies:
+    lodash "^4.17.14"
+
 asynckit@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
 
+at-least-node@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+  integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
 atob@^2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@@ -2145,33 +3982,14 @@ attr-accept@^1.0.3:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-1.1.0.tgz#b5cd35227f163935a8f1de10ed3eba16941f6be6"
 
-autolinker@~0.15.0:
-  version "0.15.3"
-  resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.15.3.tgz#342417d8f2f3461b14cf09088d5edf8791dc9832"
-
-autoprefixer@^6.3.1:
-  version "6.7.7"
-  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014"
+autolinker@~0.28.0:
+  version "0.28.1"
+  resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
+  integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
   dependencies:
-    browserslist "^1.7.6"
-    caniuse-db "^1.0.30000634"
-    normalize-range "^0.1.2"
-    num2fraction "^1.2.2"
-    postcss "^5.2.16"
-    postcss-value-parser "^3.2.3"
+    gulp-header "^1.7.1"
 
-autoprefixer@^7.2.3:
-  version "7.2.5"
-  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.5.tgz#04ccbd0c6a61131b6d13f53d371926092952d192"
-  dependencies:
-    browserslist "^2.11.1"
-    caniuse-lite "^1.0.30000791"
-    normalize-range "^0.1.2"
-    num2fraction "^1.2.2"
-    postcss "^6.0.16"
-    postcss-value-parser "^3.2.3"
-
-autoprefixer@^9.6.1:
+autoprefixer@^9.6.1, autoprefixer@^9.8.6:
   version "9.8.6"
   resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
   integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
@@ -2210,7 +4028,7 @@ axobject-query@^2.0.2:
   resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799"
   integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==
 
-babel-code-frame@^6.11.0, babel-code-frame@^6.26.0:
+babel-code-frame@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
   dependencies:
@@ -2269,768 +4087,193 @@ babel-generator@^6.18.0, babel-generator@^6.26.0:
     detect-indent "^4.0.0"
     jsesc "^1.3.0"
     lodash "^4.17.4"
-    source-map "^0.5.7"
-    trim-right "^1.0.1"
-
-babel-helper-bindify-decorators@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
-  dependencies:
-    babel-helper-explode-assignable-expression "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-helper-builder-react-jsx@^6.24.1:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0"
-  dependencies:
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    esutils "^2.0.2"
-
-babel-helper-call-delegate@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
-  dependencies:
-    babel-helper-hoist-variables "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-define-map@^6.24.1:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
-  dependencies:
-    babel-helper-function-name "^6.24.1"
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    lodash "^4.17.4"
-
-babel-helper-evaluate-path@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.2.0.tgz#0bb2eb01996c0cef53c5e8405e999fe4a0244c08"
-
-babel-helper-explode-assignable-expression@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-explode-class@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb"
-  dependencies:
-    babel-helper-bindify-decorators "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-flip-expressions@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.2.0.tgz#160d2090a3d9f9c64a750905321a0bc218f884ec"
-
-babel-helper-function-name@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
-  dependencies:
-    babel-helper-get-function-arity "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-get-function-arity@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-helper-hoist-variables@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-helper-is-nodes-equiv@^0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684"
-
-babel-helper-is-void-0@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.2.0.tgz#6ed0ada8a9b1c5b6e88af6b47c1b3b5c080860eb"
-
-babel-helper-mark-eval-scopes@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.2.0.tgz#7648aaf2ec92aae9b09a20ad91e8df5e1fcc94b2"
-
-babel-helper-optimise-call-expression@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-helper-regex@^6.24.1:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
-  dependencies:
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    lodash "^4.17.4"
-
-babel-helper-remap-async-to-generator@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
-  dependencies:
-    babel-helper-function-name "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-remove-or-void@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.2.0.tgz#8e46ad5b30560d57d7510b3fd93f332ee7c67386"
-
-babel-helper-replace-supers@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
-  dependencies:
-    babel-helper-optimise-call-expression "^6.24.1"
-    babel-messages "^6.23.0"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-to-multiple-sequence-expressions@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.2.0.tgz#d1a419634c6cb301f27858c659167cfee0a9d318"
-
-babel-helpers@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-jest@^23.4.2, babel-jest@^23.6.0:
-  version "23.6.0"
-  resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1"
-  integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==
-  dependencies:
-    babel-plugin-istanbul "^4.1.6"
-    babel-preset-jest "^23.2.0"
-
-babel-loader@8.1.0:
-  version "8.1.0"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
-  integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==
-  dependencies:
-    find-cache-dir "^2.1.0"
-    loader-utils "^1.4.0"
-    mkdirp "^0.5.3"
-    pify "^4.0.1"
-    schema-utils "^2.6.5"
-
-babel-loader@^7.1.2:
-  version "7.1.2"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126"
-  dependencies:
-    find-cache-dir "^1.0.0"
-    loader-utils "^1.0.2"
-    mkdirp "^0.5.1"
-
-babel-messages@^6.23.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-check-es2015-constants@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-dynamic-import-node@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz#bd1d88ac7aaf98df4917c384373b04d971a2b37a"
-  dependencies:
-    babel-plugin-syntax-dynamic-import "^6.18.0"
-    babel-template "^6.26.0"
-    babel-types "^6.26.0"
-
-babel-plugin-dynamic-import-node@^2.3.3:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
-  integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
-  dependencies:
-    object.assign "^4.1.0"
-
-babel-plugin-istanbul@^4.1.6:
-  version "4.1.6"
-  resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
-  integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==
-  dependencies:
-    babel-plugin-syntax-object-rest-spread "^6.13.0"
-    find-up "^2.1.0"
-    istanbul-lib-instrument "^1.10.1"
-    test-exclude "^4.2.1"
-
-babel-plugin-jest-hoist@^23.2.0:
-  version "23.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167"
-  integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=
-
-babel-plugin-minify-builtins@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.2.0.tgz#317f824b0907210b6348671bb040ca072e2e0c82"
-  dependencies:
-    babel-helper-evaluate-path "^0.2.0"
-
-babel-plugin-minify-constant-folding@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.2.0.tgz#8c70b528b2eb7c13e94d95c8789077d4cdbc3970"
-  dependencies:
-    babel-helper-evaluate-path "^0.2.0"
-
-babel-plugin-minify-dead-code-elimination@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.2.0.tgz#e8025ee10a1e5e4f202633a6928ce892c33747e3"
-  dependencies:
-    babel-helper-evaluate-path "^0.2.0"
-    babel-helper-mark-eval-scopes "^0.2.0"
-    babel-helper-remove-or-void "^0.2.0"
-    lodash.some "^4.6.0"
-
-babel-plugin-minify-flip-comparisons@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.2.0.tgz#0c9c8e93155c8f09dedad8118b634c259f709ef5"
-  dependencies:
-    babel-helper-is-void-0 "^0.2.0"
-
-babel-plugin-minify-guarded-expressions@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.2.0.tgz#8a8c950040fce3e258a12e6eb21eab94ad7235ab"
-  dependencies:
-    babel-helper-flip-expressions "^0.2.0"
-
-babel-plugin-minify-infinity@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.2.0.tgz#30960c615ddbc657c045bb00a1d8eb4af257cf03"
-
-babel-plugin-minify-mangle-names@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.2.0.tgz#719892297ff0106a6ec1a4b0fc062f1f8b6a8529"
-  dependencies:
-    babel-helper-mark-eval-scopes "^0.2.0"
-
-babel-plugin-minify-numeric-literals@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.2.0.tgz#5746e851700167a380c05e93f289a7070459a0d1"
-
-babel-plugin-minify-replace@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.2.0.tgz#3c1f06bc4e6d3e301eacb763edc1be611efc39b0"
-
-babel-plugin-minify-simplify@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.2.0.tgz#21ceec4857100c5476d7cef121f351156e5c9bc0"
-  dependencies:
-    babel-helper-flip-expressions "^0.2.0"
-    babel-helper-is-nodes-equiv "^0.0.1"
-    babel-helper-to-multiple-sequence-expressions "^0.2.0"
-
-babel-plugin-minify-type-constructors@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.2.0.tgz#7f3b6458be0863cfd59e9985bed6d134aa7a2e17"
-  dependencies:
-    babel-helper-is-void-0 "^0.2.0"
-
-babel-plugin-react-docgen@^1.8.0:
-  version "1.8.2"
-  resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-1.8.2.tgz#4615da43588c8cf5bdcae028f217954c70e6770b"
-  dependencies:
-    babel-types "^6.24.1"
-    lodash "^4.17.0"
-    react-docgen "^2.20.0"
-
-babel-plugin-react-intl@2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-2.3.1.tgz#3d43912e824da005e08e8e8239d5ba784374bb00"
-  dependencies:
-    babel-runtime "^6.2.0"
-    intl-messageformat-parser "^1.2.0"
-    mkdirp "^0.5.1"
-
-babel-plugin-syntax-async-functions@^6.8.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
-
-babel-plugin-syntax-async-generators@^6.5.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a"
-
-babel-plugin-syntax-class-constructor-call@^6.18.0:
-  version "6.18.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416"
-
-babel-plugin-syntax-class-properties@^6.8.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
-
-babel-plugin-syntax-decorators@^6.13.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b"
-
-babel-plugin-syntax-do-expressions@^6.8.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d"
-
-babel-plugin-syntax-dynamic-import@6.18.0, babel-plugin-syntax-dynamic-import@^6.18.0:
-  version "6.18.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
-
-babel-plugin-syntax-exponentiation-operator@^6.8.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
-
-babel-plugin-syntax-export-extensions@^6.8.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721"
-
-babel-plugin-syntax-flow@^6.18.0:
-  version "6.18.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
-
-babel-plugin-syntax-function-bind@^6.8.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46"
-
-babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0:
-  version "6.18.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
-
-babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
-
-babel-plugin-syntax-trailing-function-commas@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
-
-babel-plugin-transform-async-generator-functions@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db"
-  dependencies:
-    babel-helper-remap-async-to-generator "^6.24.1"
-    babel-plugin-syntax-async-generators "^6.5.0"
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
-  dependencies:
-    babel-helper-remap-async-to-generator "^6.24.1"
-    babel-plugin-syntax-async-functions "^6.8.0"
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-class-constructor-call@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9"
-  dependencies:
-    babel-plugin-syntax-class-constructor-call "^6.18.0"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-plugin-transform-class-properties@6.24.1, babel-plugin-transform-class-properties@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
-  dependencies:
-    babel-helper-function-name "^6.24.1"
-    babel-plugin-syntax-class-properties "^6.8.0"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-plugin-transform-decorators@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d"
-  dependencies:
-    babel-helper-explode-class "^6.24.1"
-    babel-plugin-syntax-decorators "^6.13.0"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-do-expressions@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb"
-  dependencies:
-    babel-plugin-syntax-do-expressions "^6.8.0"
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-arrow-functions@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-block-scoping@^6.23.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
-  dependencies:
-    babel-runtime "^6.26.0"
-    babel-template "^6.26.0"
-    babel-traverse "^6.26.0"
-    babel-types "^6.26.0"
-    lodash "^4.17.4"
-
-babel-plugin-transform-es2015-classes@^6.23.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
-  dependencies:
-    babel-helper-define-map "^6.24.1"
-    babel-helper-function-name "^6.24.1"
-    babel-helper-optimise-call-expression "^6.24.1"
-    babel-helper-replace-supers "^6.24.1"
-    babel-messages "^6.23.0"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-computed-properties@^6.22.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-destructuring@6.23.0, babel-plugin-transform-es2015-destructuring@^6.23.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-duplicate-keys@^6.22.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-for-of@^6.23.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-function-name@^6.22.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
-  dependencies:
-    babel-helper-function-name "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-literals@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154"
-  dependencies:
-    babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
-  dependencies:
-    babel-plugin-transform-strict-mode "^6.24.1"
-    babel-runtime "^6.26.0"
-    babel-template "^6.26.0"
-    babel-types "^6.26.0"
-
-babel-plugin-transform-es2015-modules-systemjs@^6.23.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
-  dependencies:
-    babel-helper-hoist-variables "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-modules-umd@^6.23.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468"
-  dependencies:
-    babel-plugin-transform-es2015-modules-amd "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-object-super@^6.22.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
-  dependencies:
-    babel-helper-replace-supers "^6.24.1"
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-parameters@^6.23.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
-  dependencies:
-    babel-helper-call-delegate "^6.24.1"
-    babel-helper-get-function-arity "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
+    source-map "^0.5.7"
+    trim-right "^1.0.1"
 
-babel-plugin-transform-es2015-shorthand-properties@^6.22.0:
+babel-helpers@^6.24.1:
   version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
+  resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
   dependencies:
     babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
+    babel-template "^6.24.1"
 
-babel-plugin-transform-es2015-spread@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
+babel-jest@^23.4.2, babel-jest@^23.6.0:
+  version "23.6.0"
+  resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1"
+  integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==
   dependencies:
-    babel-runtime "^6.22.0"
+    babel-plugin-istanbul "^4.1.6"
+    babel-preset-jest "^23.2.0"
 
-babel-plugin-transform-es2015-sticky-regex@^6.22.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
+babel-loader@8.1.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
+  integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==
   dependencies:
-    babel-helper-regex "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
+    find-cache-dir "^2.1.0"
+    loader-utils "^1.4.0"
+    mkdirp "^0.5.3"
+    pify "^4.0.1"
+    schema-utils "^2.6.5"
 
-babel-plugin-transform-es2015-template-literals@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
+babel-loader@^8.2.2:
+  version "8.2.2"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
+  integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
   dependencies:
-    babel-runtime "^6.22.0"
+    find-cache-dir "^3.3.1"
+    loader-utils "^1.4.0"
+    make-dir "^3.1.0"
+    schema-utils "^2.6.5"
 
-babel-plugin-transform-es2015-typeof-symbol@^6.23.0:
+babel-messages@^6.23.0:
   version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
+  resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
   dependencies:
     babel-runtime "^6.22.0"
 
-babel-plugin-transform-es2015-unicode-regex@^6.22.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
-  dependencies:
-    babel-helper-regex "^6.24.1"
-    babel-runtime "^6.22.0"
-    regexpu-core "^2.0.0"
+babel-plugin-add-react-displayname@^0.0.5:
+  version "0.0.5"
+  resolved "https://registry.yarnpkg.com/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5"
+  integrity sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=
 
-babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
+babel-plugin-apply-mdx-type-prop@1.6.22:
+  version "1.6.22"
+  resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b"
+  integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==
   dependencies:
-    babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
-    babel-plugin-syntax-exponentiation-operator "^6.8.0"
-    babel-runtime "^6.22.0"
+    "@babel/helper-plugin-utils" "7.10.4"
+    "@mdx-js/util" "1.6.22"
 
-babel-plugin-transform-export-extensions@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653"
+babel-plugin-dynamic-import-node@^2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+  integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
   dependencies:
-    babel-plugin-syntax-export-extensions "^6.8.0"
-    babel-runtime "^6.22.0"
+    object.assign "^4.1.0"
 
-babel-plugin-transform-flow-strip-types@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
-  dependencies:
-    babel-plugin-syntax-flow "^6.18.0"
-    babel-runtime "^6.22.0"
+babel-plugin-emotion@^10.0.27:
+  version "10.2.2"
+  resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz#a1fe3503cff80abfd0bdda14abd2e8e57a79d17d"
+  integrity sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==
+  dependencies:
+    "@babel/helper-module-imports" "^7.0.0"
+    "@emotion/hash" "0.8.0"
+    "@emotion/memoize" "0.7.4"
+    "@emotion/serialize" "^0.11.16"
+    babel-plugin-macros "^2.0.0"
+    babel-plugin-syntax-jsx "^6.18.0"
+    convert-source-map "^1.5.0"
+    escape-string-regexp "^1.0.5"
+    find-root "^1.1.0"
+    source-map "^0.5.7"
 
-babel-plugin-transform-function-bind@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97"
+babel-plugin-extract-import-names@1.6.22:
+  version "1.6.22"
+  resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc"
+  integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==
   dependencies:
-    babel-plugin-syntax-function-bind "^6.8.0"
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-inline-consecutive-adds@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.2.0.tgz#15dae78921057f4004f8eafd79e15ddc5f12f426"
+    "@babel/helper-plugin-utils" "7.10.4"
 
-babel-plugin-transform-inline-environment-variables@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.2.0.tgz#37dad411a819667fd69c33e72f7a14ea1a50ba98"
-
-babel-plugin-transform-member-expression-literals@^6.8.5:
-  version "6.9.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.0.tgz#ab07ad52a11ff7d2528c71388e8f901a4499c2b2"
-
-babel-plugin-transform-merge-sibling-variables@^6.8.6:
-  version "6.9.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.0.tgz#140017e305f8eb4f60d2f2db61154fbd71a9fcdd"
-
-babel-plugin-transform-minify-booleans@^6.8.3:
-  version "6.9.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.0.tgz#e36ceaa49aadcae70ec98bd9dbccb660719a667a"
-
-babel-plugin-transform-object-rest-spread@6.26.0, babel-plugin-transform-object-rest-spread@^6.22.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
+babel-plugin-istanbul@^4.1.6:
+  version "4.1.6"
+  resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
+  integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==
   dependencies:
-    babel-plugin-syntax-object-rest-spread "^6.8.0"
-    babel-runtime "^6.26.0"
+    babel-plugin-syntax-object-rest-spread "^6.13.0"
+    find-up "^2.1.0"
+    istanbul-lib-instrument "^1.10.1"
+    test-exclude "^4.2.1"
 
-babel-plugin-transform-property-literals@^6.8.5:
-  version "6.9.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.0.tgz#4ddc12ada888927eacab4daff8a535ebc5de5a61"
-  dependencies:
-    esutils "^2.0.2"
+babel-plugin-jest-hoist@^23.2.0:
+  version "23.2.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167"
+  integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=
 
-babel-plugin-transform-react-constant-elements@6.23.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd"
+babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.8.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
+  integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
   dependencies:
-    babel-runtime "^6.22.0"
+    "@babel/runtime" "^7.7.2"
+    cosmiconfig "^6.0.0"
+    resolve "^1.12.0"
 
-babel-plugin-transform-react-display-name@^6.23.0:
-  version "6.25.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1"
+babel-plugin-macros@^3.0.1:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
+  integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==
   dependencies:
-    babel-runtime "^6.22.0"
+    "@babel/runtime" "^7.12.5"
+    cosmiconfig "^7.0.0"
+    resolve "^1.19.0"
 
-babel-plugin-transform-react-jsx-self@6.22.0, babel-plugin-transform-react-jsx-self@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e"
-  dependencies:
-    babel-plugin-syntax-jsx "^6.8.0"
-    babel-runtime "^6.22.0"
+babel-plugin-named-asset-import@^0.3.1:
+  version "0.3.7"
+  resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz#156cd55d3f1228a5765774340937afc8398067dd"
+  integrity sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==
 
-babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6"
+babel-plugin-polyfill-corejs2@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327"
+  integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==
   dependencies:
-    babel-plugin-syntax-jsx "^6.8.0"
-    babel-runtime "^6.22.0"
+    "@babel/compat-data" "^7.13.11"
+    "@babel/helper-define-polyfill-provider" "^0.2.2"
+    semver "^6.1.1"
 
-babel-plugin-transform-react-jsx@6.24.1, babel-plugin-transform-react-jsx@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3"
+babel-plugin-polyfill-corejs3@^0.1.0:
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0"
+  integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==
   dependencies:
-    babel-helper-builder-react-jsx "^6.24.1"
-    babel-plugin-syntax-jsx "^6.8.0"
-    babel-runtime "^6.22.0"
+    "@babel/helper-define-polyfill-provider" "^0.1.5"
+    core-js-compat "^3.8.1"
 
-babel-plugin-transform-regenerator@6.26.0, babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.26.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
+babel-plugin-polyfill-corejs3@^0.2.2:
+  version "0.2.4"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9"
+  integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==
   dependencies:
-    regenerator-transform "^0.10.0"
-
-babel-plugin-transform-regexp-constructors@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.2.0.tgz#6aa5dd0acc515db4be929bbcec4ed4c946c534a3"
-
-babel-plugin-transform-remove-console@^6.8.5:
-  version "6.9.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.0.tgz#a7b671aab050dd30ef7cf2142b61a7d10efb327f"
+    "@babel/helper-define-polyfill-provider" "^0.2.2"
+    core-js-compat "^3.14.0"
 
-babel-plugin-transform-remove-debugger@^6.8.5:
-  version "6.9.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.0.tgz#b465e74b3fbe1970da561fb1331e30aefac3f1fe"
-
-babel-plugin-transform-remove-undefined@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.2.0.tgz#94f052062054c707e8d094acefe79416b63452b1"
+babel-plugin-polyfill-regenerator@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"
+  integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==
   dependencies:
-    babel-helper-evaluate-path "^0.2.0"
+    "@babel/helper-define-polyfill-provider" "^0.2.2"
 
-babel-plugin-transform-runtime@6.23.0, babel-plugin-transform-runtime@^6.23.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee"
+babel-plugin-react-docgen@^4.2.1:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz#7cc8e2f94e8dc057a06e953162f0810e4e72257b"
+  integrity sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ==
   dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-simplify-comparison-operators@^6.8.5:
-  version "6.9.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.0.tgz#586252fea023cb13f2400a09c0ab178dc0844f0a"
+    ast-types "^0.14.2"
+    lodash "^4.17.15"
+    react-docgen "^5.0.0"
 
-babel-plugin-transform-strict-mode@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
+babel-plugin-react-intl@2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-2.3.1.tgz#3d43912e824da005e08e8e8239d5ba784374bb00"
   dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
+    babel-runtime "^6.2.0"
+    intl-messageformat-parser "^1.2.0"
+    mkdirp "^0.5.1"
 
-babel-plugin-transform-undefined-to-void@^6.8.3:
-  version "6.9.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.0.tgz#eb5db0554caffe9ded0206468ec0c6c3b332b9d2"
+babel-plugin-syntax-jsx@^6.18.0:
+  version "6.18.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
+  integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
 
-babel-preset-env@1.6.1, babel-preset-env@^1.6.1:
-  version "1.6.1"
-  resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
-  dependencies:
-    babel-plugin-check-es2015-constants "^6.22.0"
-    babel-plugin-syntax-trailing-function-commas "^6.22.0"
-    babel-plugin-transform-async-to-generator "^6.22.0"
-    babel-plugin-transform-es2015-arrow-functions "^6.22.0"
-    babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
-    babel-plugin-transform-es2015-block-scoping "^6.23.0"
-    babel-plugin-transform-es2015-classes "^6.23.0"
-    babel-plugin-transform-es2015-computed-properties "^6.22.0"
-    babel-plugin-transform-es2015-destructuring "^6.23.0"
-    babel-plugin-transform-es2015-duplicate-keys "^6.22.0"
-    babel-plugin-transform-es2015-for-of "^6.23.0"
-    babel-plugin-transform-es2015-function-name "^6.22.0"
-    babel-plugin-transform-es2015-literals "^6.22.0"
-    babel-plugin-transform-es2015-modules-amd "^6.22.0"
-    babel-plugin-transform-es2015-modules-commonjs "^6.23.0"
-    babel-plugin-transform-es2015-modules-systemjs "^6.23.0"
-    babel-plugin-transform-es2015-modules-umd "^6.23.0"
-    babel-plugin-transform-es2015-object-super "^6.22.0"
-    babel-plugin-transform-es2015-parameters "^6.23.0"
-    babel-plugin-transform-es2015-shorthand-properties "^6.22.0"
-    babel-plugin-transform-es2015-spread "^6.22.0"
-    babel-plugin-transform-es2015-sticky-regex "^6.22.0"
-    babel-plugin-transform-es2015-template-literals "^6.22.0"
-    babel-plugin-transform-es2015-typeof-symbol "^6.23.0"
-    babel-plugin-transform-es2015-unicode-regex "^6.22.0"
-    babel-plugin-transform-exponentiation-operator "^6.22.0"
-    babel-plugin-transform-regenerator "^6.22.0"
-    browserslist "^2.1.2"
-    invariant "^2.2.2"
-    semver "^5.3.0"
+babel-plugin-syntax-object-rest-spread@^6.13.0:
+  version "6.13.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
 
-babel-preset-flow@^6.23.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d"
-  dependencies:
-    babel-plugin-transform-flow-strip-types "^6.22.0"
+babel-plugin-transform-inline-environment-variables@0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-environment-variables/-/babel-plugin-transform-inline-environment-variables-0.2.0.tgz#37dad411a819667fd69c33e72f7a14ea1a50ba98"
 
 babel-preset-jest@^23.2.0:
   version "23.2.0"
@@ -3040,98 +4283,6 @@ babel-preset-jest@^23.2.0:
     babel-plugin-jest-hoist "^23.2.0"
     babel-plugin-syntax-object-rest-spread "^6.13.0"
 
-babel-preset-minify@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.2.0.tgz#006566552d9b83834472273f306c0131062a0acc"
-  dependencies:
-    babel-plugin-minify-builtins "^0.2.0"
-    babel-plugin-minify-constant-folding "^0.2.0"
-    babel-plugin-minify-dead-code-elimination "^0.2.0"
-    babel-plugin-minify-flip-comparisons "^0.2.0"
-    babel-plugin-minify-guarded-expressions "^0.2.0"
-    babel-plugin-minify-infinity "^0.2.0"
-    babel-plugin-minify-mangle-names "^0.2.0"
-    babel-plugin-minify-numeric-literals "^0.2.0"
-    babel-plugin-minify-replace "^0.2.0"
-    babel-plugin-minify-simplify "^0.2.0"
-    babel-plugin-minify-type-constructors "^0.2.0"
-    babel-plugin-transform-inline-consecutive-adds "^0.2.0"
-    babel-plugin-transform-member-expression-literals "^6.8.5"
-    babel-plugin-transform-merge-sibling-variables "^6.8.6"
-    babel-plugin-transform-minify-booleans "^6.8.3"
-    babel-plugin-transform-property-literals "^6.8.5"
-    babel-plugin-transform-regexp-constructors "^0.2.0"
-    babel-plugin-transform-remove-console "^6.8.5"
-    babel-plugin-transform-remove-debugger "^6.8.5"
-    babel-plugin-transform-remove-undefined "^0.2.0"
-    babel-plugin-transform-simplify-comparison-operators "^6.8.5"
-    babel-plugin-transform-undefined-to-void "^6.8.3"
-    lodash.isplainobject "^4.0.6"
-
-babel-preset-react-app@^3.1.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.1.1.tgz#d3f06a79742f0e89d7afcb72e282d9809c850920"
-  dependencies:
-    babel-plugin-dynamic-import-node "1.1.0"
-    babel-plugin-syntax-dynamic-import "6.18.0"
-    babel-plugin-transform-class-properties "6.24.1"
-    babel-plugin-transform-es2015-destructuring "6.23.0"
-    babel-plugin-transform-object-rest-spread "6.26.0"
-    babel-plugin-transform-react-constant-elements "6.23.0"
-    babel-plugin-transform-react-jsx "6.24.1"
-    babel-plugin-transform-react-jsx-self "6.22.0"
-    babel-plugin-transform-react-jsx-source "6.22.0"
-    babel-plugin-transform-regenerator "6.26.0"
-    babel-plugin-transform-runtime "6.23.0"
-    babel-preset-env "1.6.1"
-    babel-preset-react "6.24.1"
-
-babel-preset-react@6.24.1, babel-preset-react@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380"
-  dependencies:
-    babel-plugin-syntax-jsx "^6.3.13"
-    babel-plugin-transform-react-display-name "^6.23.0"
-    babel-plugin-transform-react-jsx "^6.24.1"
-    babel-plugin-transform-react-jsx-self "^6.22.0"
-    babel-plugin-transform-react-jsx-source "^6.22.0"
-    babel-preset-flow "^6.23.0"
-
-babel-preset-stage-0@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a"
-  dependencies:
-    babel-plugin-transform-do-expressions "^6.22.0"
-    babel-plugin-transform-function-bind "^6.22.0"
-    babel-preset-stage-1 "^6.24.1"
-
-babel-preset-stage-1@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0"
-  dependencies:
-    babel-plugin-transform-class-constructor-call "^6.24.1"
-    babel-plugin-transform-export-extensions "^6.22.0"
-    babel-preset-stage-2 "^6.24.1"
-
-babel-preset-stage-2@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1"
-  dependencies:
-    babel-plugin-syntax-dynamic-import "^6.18.0"
-    babel-plugin-transform-class-properties "^6.24.1"
-    babel-plugin-transform-decorators "^6.24.1"
-    babel-preset-stage-3 "^6.24.1"
-
-babel-preset-stage-3@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395"
-  dependencies:
-    babel-plugin-syntax-trailing-function-commas "^6.22.0"
-    babel-plugin-transform-async-generator-functions "^6.24.1"
-    babel-plugin-transform-async-to-generator "^6.24.1"
-    babel-plugin-transform-exponentiation-operator "^6.24.1"
-    babel-plugin-transform-object-rest-spread "^6.22.0"
-
 babel-register@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
@@ -3144,7 +4295,7 @@ babel-register@^6.26.0:
     mkdirp "^0.5.1"
     source-map-support "^0.4.15"
 
-babel-runtime@6.x.x, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.5.0, babel-runtime@^6.6.1, babel-runtime@^6.9.2:
+babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
   dependencies:
@@ -3161,7 +4312,7 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0:
     babylon "^6.18.0"
     lodash "^4.17.4"
 
-babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0:
+babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
   dependencies:
@@ -3175,7 +4326,7 @@ babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-tra
     invariant "^2.2.2"
     lodash "^4.17.4"
 
-babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
+babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
   dependencies:
@@ -3188,13 +4339,10 @@ babylon@^6.18.0:
   version "6.18.0"
   resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
 
-babylon@~5.8.3:
-  version "5.8.38"
-  resolved "https://registry.yarnpkg.com/babylon/-/babylon-5.8.38.tgz#ec9b120b11bf6ccd4173a18bf217e60b79859ffd"
-
-balanced-match@^0.4.2:
-  version "0.4.2"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+bail@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776"
+  integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==
 
 balanced-match@^1.0.0:
   version "1.0.0"
@@ -3227,12 +4375,24 @@ base@^0.11.1:
     mixin-deep "^1.2.0"
     pascalcase "^0.1.1"
 
+batch-processor@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8"
+  integrity sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=
+
 bcrypt-pbkdf@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
   dependencies:
     tweetnacl "^0.14.3"
 
+better-opn@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6"
+  integrity sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==
+  dependencies:
+    open "^7.0.3"
+
 big.js@^3.1.3:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
@@ -3273,15 +4433,15 @@ blocked@1.2.1:
   resolved "https://registry.yarnpkg.com/blocked/-/blocked-1.2.1.tgz#e22efe767863c65ab8197f6252929104e1ec9ce2"
   integrity sha1-4i7+dnhjxlq4GX9iUpKRBOHsnOI=
 
-bluebird@^3.4.6:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
-
-bluebird@^3.5.5:
+bluebird@^3.3.5, bluebird@^3.5.5:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
   integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
 
+bluebird@^3.4.6:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
+
 blueimp-canvas-to-blob@3.5.0:
   version "3.5.0"
   resolved "https://registry.yarnpkg.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.5.0.tgz#5679ac32f6a2835821f0c3ad661719ff85a9236b"
@@ -3310,21 +4470,6 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
   version "4.11.8"
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
 
-body-parser@1.18.2:
-  version "1.18.2"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
-  dependencies:
-    bytes "3.0.0"
-    content-type "~1.0.4"
-    debug "2.6.9"
-    depd "~1.1.1"
-    http-errors "~1.6.2"
-    iconv-lite "0.4.19"
-    on-finished "~2.3.0"
-    qs "6.5.1"
-    raw-body "2.3.2"
-    type-is "~1.6.15"
-
 body-parser@1.19.0:
   version "1.19.0"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
@@ -3351,9 +4496,10 @@ body@^5.1.0:
     raw-body "~1.1.0"
     safe-json-parse "~1.0.1"
 
-boolbase@~1.0.0:
+boolbase@^1.0.0, boolbase@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+  integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
 
 boom@4.x.x:
   version "4.3.1"
@@ -3367,9 +4513,24 @@ boom@5.x.x:
   dependencies:
     hoek "4.x.x"
 
-bowser@^1.0.0, bowser@^1.7.3:
-  version "1.9.2"
-  resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.2.tgz#d66fc868ca5f4ba895bee1363c343fe7b37d3394"
+bowser@2.9.0:
+  version "2.9.0"
+  resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9"
+  integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==
+
+boxen@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
+  integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==
+  dependencies:
+    ansi-align "^3.0.0"
+    camelcase "^5.3.1"
+    chalk "^3.0.0"
+    cli-boxes "^2.2.0"
+    string-width "^4.1.0"
+    term-size "^2.1.0"
+    type-fest "^0.8.1"
+    widest-line "^3.1.0"
 
 brace-expansion@^1.1.7:
   version "1.1.8"
@@ -3402,17 +4563,13 @@ braces@^2.3.1, braces@^2.3.2:
     split-string "^3.0.2"
     to-regex "^3.0.1"
 
-braces@~3.0.2:
+braces@^3.0.1, braces@~3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
   integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
   dependencies:
     fill-range "^7.0.1"
 
-brcast@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/brcast/-/brcast-3.0.1.tgz#6256a8349b20de9eed44257a9b24d71493cd48dd"
-
 brorand@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
@@ -3480,19 +4637,15 @@ browserify-zlib@^0.2.0:
   dependencies:
     pako "~1.0.5"
 
-browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
-  version "1.7.7"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
-  dependencies:
-    caniuse-db "^1.0.30000639"
-    electron-to-chromium "^1.2.7"
-
-browserslist@^2.1.2, browserslist@^2.11.1:
-  version "2.11.3"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2"
+browserslist@4.14.2:
+  version "4.14.2"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce"
+  integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==
   dependencies:
-    caniuse-lite "^1.0.30000792"
-    electron-to-chromium "^1.3.30"
+    caniuse-lite "^1.0.30001125"
+    electron-to-chromium "^1.3.564"
+    escalade "^3.0.2"
+    node-releases "^1.1.61"
 
 browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.14.6:
   version "4.14.6"
@@ -3504,6 +4657,17 @@ browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.14.6:
     escalade "^3.1.1"
     node-releases "^1.1.65"
 
+browserslist@^4.16.6, browserslist@^4.17.0:
+  version "4.17.0"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.0.tgz#1fcd81ec75b41d6d4994fb0831b92ac18c01649c"
+  integrity sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==
+  dependencies:
+    caniuse-lite "^1.0.30001254"
+    colorette "^1.3.0"
+    electron-to-chromium "^1.3.830"
+    escalade "^3.1.1"
+    node-releases "^1.1.75"
+
 bs58@3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/bs58/-/bs58-3.1.0.tgz#d4c26388bf4804cac714141b1945aa47e5eb248e"
@@ -3577,6 +4741,24 @@ bytes@3.1.0:
   resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
   integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
 
+c8@^7.6.0:
+  version "7.9.0"
+  resolved "https://registry.yarnpkg.com/c8/-/c8-7.9.0.tgz#e63b9a22c8b4adbf6a8c8cb6194ee086b3e13c24"
+  integrity sha512-aQ7dC8gASnKdBwHUuYuzsdKCEDrKnWr7ZuZUnf4CNAL81oyKloKrs7H7zYvcrmCtIrMToudBSUhq2q+LLBMvgg==
+  dependencies:
+    "@bcoe/v8-coverage" "^0.2.3"
+    "@istanbuljs/schema" "^0.1.2"
+    find-up "^5.0.0"
+    foreground-child "^2.0.0"
+    istanbul-lib-coverage "^3.0.0"
+    istanbul-lib-report "^3.0.0"
+    istanbul-reports "^3.0.2"
+    rimraf "^3.0.0"
+    test-exclude "^6.0.0"
+    v8-to-istanbul "^8.0.0"
+    yargs "^16.2.0"
+    yargs-parser "^20.2.7"
+
 cacache@^12.0.2:
   version "12.0.4"
   resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
@@ -3598,6 +4780,30 @@ cacache@^12.0.2:
     unique-filename "^1.1.1"
     y18n "^4.0.0"
 
+cacache@^15.0.5:
+  version "15.3.0"
+  resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
+  integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==
+  dependencies:
+    "@npmcli/fs" "^1.0.0"
+    "@npmcli/move-file" "^1.0.1"
+    chownr "^2.0.0"
+    fs-minipass "^2.0.0"
+    glob "^7.1.4"
+    infer-owner "^1.0.4"
+    lru-cache "^6.0.0"
+    minipass "^3.1.1"
+    minipass-collect "^1.0.2"
+    minipass-flush "^1.0.5"
+    minipass-pipeline "^1.2.2"
+    mkdirp "^1.0.3"
+    p-map "^4.0.0"
+    promise-inflight "^1.0.1"
+    rimraf "^3.0.2"
+    ssri "^8.0.1"
+    tar "^6.0.2"
+    unique-filename "^1.1.1"
+
 cache-base@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
@@ -3613,6 +4819,19 @@ cache-base@^1.0.1:
     union-value "^1.0.0"
     unset-value "^1.0.0"
 
+call-bind@^1.0.0, call-bind@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+  dependencies:
+    function-bind "^1.1.1"
+    get-intrinsic "^1.0.2"
+
+call-me-maybe@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
+  integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
+
 callsites@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
@@ -3622,6 +4841,19 @@ callsites@^3.0.0:
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
   integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
 
+camel-case@^4.1.1:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
+  integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
+  dependencies:
+    pascal-case "^3.1.2"
+    tslib "^2.0.3"
+
+camelcase-css@2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+  integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
 camelcase-keys@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
@@ -3645,6 +4877,11 @@ camelcase@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
 
+camelcase@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
 camelcase@^6.2.0:
   version "6.2.0"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
@@ -3653,32 +4890,17 @@ camelcase@^6.2.0:
 camelize@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
+  integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
 
-caniuse-api@^1.5.2:
-  version "1.6.1"
-  resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
-  dependencies:
-    browserslist "^1.3.6"
-    caniuse-db "^1.0.30000529"
-    lodash.memoize "^4.1.2"
-    lodash.uniq "^4.5.0"
-
-caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
-  version "1.0.30000803"
-  resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000803.tgz#3e8d2baf56c2fd5a59c82e227928a0dc2c26702d"
-
-caniuse-lite@^1.0.30000791, caniuse-lite@^1.0.30000792:
-  version "1.0.30001223"
-  resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz"
+caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001154, caniuse-lite@^1.0.30001254:
+  version "1.0.30001257"
+  resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz"
+  integrity sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==
 
-caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001154:
-  version "1.0.30001156"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001156.tgz#75c20937b6012fe2b02ab58b30d475bf0718de97"
-  integrity sha512-z7qztybA2eFZTB6Z3yvaQBIoJpQtsewRD74adw2UbRWwsRq3jIPvgrQGawBMbfafekQaD21FWuXNcywtTDGGCw==
-
-case-sensitive-paths-webpack-plugin@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909"
+case-sensitive-paths-webpack-plugin@^2.3.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
+  integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==
 
 caseless@~0.11.0:
   version "0.11.0"
@@ -3688,6 +4910,11 @@ caseless@~0.12.0:
   version "0.12.0"
   resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
 
+ccount@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043"
+  integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==
+
 center-align@^0.1.1:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
@@ -3695,11 +4922,16 @@ center-align@^0.1.1:
     align-text "^0.1.3"
     lazy-cache "^1.0.3"
 
-chain-function@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc"
+chalk@2.4.2, chalk@^2.4.1, chalk@^2.4.2:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
 
-chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
+chalk@^1.1.1, chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
   dependencies:
@@ -3709,7 +4941,7 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
     strip-ansi "^3.0.0"
     supports-color "^2.0.0"
 
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0:
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
   dependencies:
@@ -3717,15 +4949,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0:
     escape-string-regexp "^1.0.5"
     supports-color "^4.0.0"
 
-chalk@^2.4.2:
-  version "2.4.2"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
-  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
-  dependencies:
-    ansi-styles "^3.2.1"
-    escape-string-regexp "^1.0.5"
-    supports-color "^5.3.0"
-
 chalk@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
@@ -3734,7 +4957,7 @@ chalk@^3.0.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
-chalk@^4.1.0:
+chalk@^4.0.0, chalk@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
   integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
@@ -3742,33 +4965,26 @@ chalk@^4.1.0:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
+character-entities-legacy@^1.0.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1"
+  integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==
+
+character-entities@^1.0.0:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b"
+  integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==
+
+character-reference-invalid@^1.0.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560"
+  integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==
+
 chardet@^0.7.0:
   version "0.7.0"
   resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
   integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
 
-cheerio@^0.22.0:
-  version "0.22.0"
-  resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
-  integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=
-  dependencies:
-    css-select "~1.2.0"
-    dom-serializer "~0.1.0"
-    entities "~1.1.1"
-    htmlparser2 "^3.9.1"
-    lodash.assignin "^4.0.9"
-    lodash.bind "^4.1.4"
-    lodash.defaults "^4.0.1"
-    lodash.filter "^4.4.0"
-    lodash.flatten "^4.2.0"
-    lodash.foreach "^4.3.0"
-    lodash.map "^4.4.0"
-    lodash.merge "^4.4.0"
-    lodash.pick "^4.2.1"
-    lodash.reduce "^4.4.0"
-    lodash.reject "^4.4.0"
-    lodash.some "^4.4.0"
-
 cheerio@^1.0.0-rc.2:
   version "1.0.0-rc.2"
   resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db"
@@ -3814,26 +5030,31 @@ chokidar@2.1.8, chokidar@^2.1.8:
   optionalDependencies:
     fsevents "~2.1.2"
 
-chokidar@^1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
+chokidar@^3.4.2:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
+  integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
   dependencies:
-    anymatch "^1.3.0"
-    async-each "^1.0.0"
-    glob-parent "^2.0.0"
-    inherits "^2.0.1"
-    is-binary-path "^1.0.0"
-    is-glob "^2.0.0"
-    path-is-absolute "^1.0.0"
-    readdirp "^2.0.0"
+    anymatch "~3.1.2"
+    braces "~3.0.2"
+    glob-parent "~5.1.2"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.6.0"
   optionalDependencies:
-    fsevents "^1.0.0"
+    fsevents "~2.3.2"
 
 chownr@^1.1.1:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
   integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
 
+chownr@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+  integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
 chrome-trace-event@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
@@ -3852,11 +5073,10 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
     inherits "^2.0.1"
     safe-buffer "^5.0.1"
 
-clap@^1.0.9:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
-  dependencies:
-    chalk "^1.1.3"
+class-autobind@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/class-autobind/-/class-autobind-0.1.4.tgz#34516c49167cf8d3f639ddc186bcfa2268afff34"
+  integrity sha1-NFFsSRZ8+NP2Od3Bhrz6Imiv/zQ=
 
 class-utils@^0.3.5:
   version "0.3.6"
@@ -3872,11 +5092,22 @@ classnames@2.2.5, classnames@^2.2.3, classnames@^2.2.5:
   version "2.2.5"
   resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
 
-cli-cursor@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+clean-css@^4.2.3:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
+  integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
   dependencies:
-    restore-cursor "^1.0.1"
+    source-map "~0.6.0"
+
+clean-stack@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+  integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+cli-boxes@^2.2.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
+  integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
 
 cli-cursor@^3.1.0:
   version "3.1.0"
@@ -3885,16 +5116,23 @@ cli-cursor@^3.1.0:
   dependencies:
     restore-cursor "^3.1.0"
 
-cli-spinners@^0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c"
+cli-table3@0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee"
+  integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==
+  dependencies:
+    object-assign "^4.1.0"
+    string-width "^4.2.0"
+  optionalDependencies:
+    colors "^1.1.2"
 
-cli-truncate@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+cli-truncate@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
+  integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
   dependencies:
-    slice-ansi "0.0.4"
-    string-width "^1.0.1"
+    slice-ansi "^3.0.0"
+    string-width "^4.2.0"
 
 cli-width@^2.0.0:
   version "2.2.0"
@@ -3924,15 +5162,20 @@ cliui@^4.0.0:
     strip-ansi "^4.0.0"
     wrap-ansi "^2.0.0"
 
+cliui@^7.0.2:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+  dependencies:
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+    wrap-ansi "^7.0.0"
+
 clone@2.x:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
 
-clone@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
-
-clsx@^1.1.0:
+clsx@^1.1.0, clsx@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
   integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==
@@ -3944,9 +5187,20 @@ cluster@0.7.7:
     log ">= 1.2.0"
     mkdirp ">= 0.0.1"
 
-co-body@*, co-body@5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/co-body/-/co-body-5.1.1.tgz#d97781d1e3344ba4a820fd1806bddf8341505236"
+co-body@*:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547"
+  integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==
+  dependencies:
+    inflation "^2.0.0"
+    qs "^6.5.2"
+    raw-body "^2.3.3"
+    type-is "^1.6.16"
+
+co-body@^5.1.1:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124"
+  integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==
   dependencies:
     inflation "^2.0.0"
     qs "^6.4.0"
@@ -3962,17 +5216,17 @@ co-request@^0.2.0:
 co@^4.0.2, co@^4.4.0, co@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-
-coa@~1.0.1:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
-  dependencies:
-    q "^1.1.2"
+  integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
 
 code-point-at@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
 
+collapse-white-space@^1.0.2:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287"
+  integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==
+
 collection-visit@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
@@ -3981,7 +5235,7 @@ collection-visit@^1.0.0:
     map-visit "^1.0.0"
     object-visit "^1.0.0"
 
-color-convert@^1.3.0, color-convert@^1.9.0:
+color-convert@^1.9.0:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
   dependencies:
@@ -3994,7 +5248,7 @@ color-convert@^2.0.1:
   dependencies:
     color-name "~1.1.4"
 
-color-name@^1.0.0, color-name@^1.1.1:
+color-name@^1.1.1:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
 
@@ -4003,38 +5257,21 @@ color-name@~1.1.4:
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
-color-string@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
-  dependencies:
-    color-name "^1.0.0"
-
-color@^0.11.0:
-  version "0.11.4"
-  resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
-  dependencies:
-    clone "^1.0.2"
-    color-convert "^1.3.0"
-    color-string "^0.3.0"
-
 colorette@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
   integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
 
-colormin@^1.0.5:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
-  dependencies:
-    color "^0.11.0"
-    css-color-names "0.0.4"
-    has "^1.0.1"
+colorette@^1.2.2, colorette@^1.3.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
+  integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
 
 colors@0.5.x:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
 
-colors@^1.1.2, colors@~1.1.2:
+colors@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
 
@@ -4044,13 +5281,18 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
   dependencies:
     delayed-stream "~1.0.0"
 
-combined-stream@^1.0.6, combined-stream@~1.0.6:
+combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
   integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
   dependencies:
     delayed-stream "~1.0.0"
 
+comma-separated-tokens@^1.0.0:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea"
+  integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==
+
 command-line-usage@^6.1.0:
   version "6.1.0"
   resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.0.tgz#f28376a3da3361ff3d36cfd31c3c22c9a64c7cb6"
@@ -4061,16 +5303,16 @@ command-line-usage@^6.1.0:
     table-layout "^1.0.0"
     typical "^5.2.0"
 
-commander@^2.11.0, commander@^2.12.2, commander@^2.9.0:
+commander@^2.11.0:
   version "2.14.0"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.0.tgz#7b25325963e6aace20d3a9285b09379b0c2208b5"
 
-commander@^2.20.0:
+commander@^2.19.0, commander@^2.20.0:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-commander@^4.0.1:
+commander@^4.0.1, commander@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
   integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
@@ -4080,11 +5322,10 @@ commander@^6.2.0:
   resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75"
   integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==
 
-common-tags@^1.6.0:
-  version "1.7.2"
-  resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.7.2.tgz#24d9768c63d253a56ecff93845b44b4df1d52771"
-  dependencies:
-    babel-runtime "^6.26.0"
+commander@^6.2.1:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
+  integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
 
 commondir@^1.0.1:
   version "1.0.1"
@@ -4098,16 +5339,42 @@ component-emitter@^1.2.1:
 composition@^2.1.1:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/composition/-/composition-2.3.0.tgz#742805374cab550c520a33662f5a732e0208d6f2"
+  integrity sha1-dCgFN0yrVQxSCjNmL1pzLgII1vI=
   dependencies:
     any-promise "^1.1.0"
     co "^4.0.2"
 
-compressible@2, compressible@~2.0.6:
+compressible@2:
   version "2.0.12"
   resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66"
   dependencies:
     mime-db ">= 1.30.0 < 2"
 
+compressible@~2.0.16, compressible@~2.0.6:
+  version "2.0.18"
+  resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
+  integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
+  dependencies:
+    mime-db ">= 1.43.0 < 2"
+
+compression@^1.7.4:
+  version "1.7.4"
+  resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
+  integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
+  dependencies:
+    accepts "~1.3.5"
+    bytes "3.0.0"
+    compressible "~2.0.16"
+    debug "2.6.9"
+    on-headers "~1.0.2"
+    safe-buffer "5.1.2"
+    vary "~1.1.2"
+
+compute-scroll-into-view@^1.0.17:
+  version "1.0.17"
+  resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab"
+  integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==
+
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -4130,6 +5397,13 @@ concat-stream@^1.5.0:
     readable-stream "^2.2.2"
     typedarray "^0.0.6"
 
+concat-with-sourcemaps@*:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
+  integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
+  dependencies:
+    source-map "^0.6.1"
+
 config@1.26.2:
   version "1.26.2"
   resolved "https://registry.yarnpkg.com/config/-/config-1.26.2.tgz#2466291168d8afae0aae8ab99ea4d4272f520cae"
@@ -4137,17 +5411,6 @@ config@1.26.2:
     json5 "0.4.0"
     os-homedir "1.0.2"
 
-configstore@^3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90"
-  dependencies:
-    dot-prop "^4.1.0"
-    graceful-fs "^4.1.2"
-    make-dir "^1.0.0"
-    unique-string "^1.0.0"
-    write-file-atomic "^2.0.0"
-    xdg-basedir "^3.0.0"
-
 confusing-browser-globals@^1.0.9:
   version "1.0.9"
   resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd"
@@ -4171,20 +5434,17 @@ contains-path@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
 
-content-disposition@0.5.2, content-disposition@~0.5.0:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
-
-content-disposition@0.5.3:
+content-disposition@0.5.3, content-disposition@~0.5.0:
   version "0.5.3"
   resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
   integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
   dependencies:
     safe-buffer "5.1.2"
 
-content-security-policy-builder@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz#8749a1d542fcbe82237281ea9f716ce68b394dd2"
+content-security-policy-builder@2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz#0a2364d769a3d7014eec79ff7699804deb8cfcbb"
+  integrity sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==
 
 content-type-parser@^1.0.1, content-type-parser@^1.0.2:
   version "1.0.2"
@@ -4193,6 +5453,7 @@ content-type-parser@^1.0.1, content-type-parser@^1.0.2:
 content-type@^1.0.0, content-type@~1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
 
 continuable-cache@^0.3.1:
   version "0.3.1"
@@ -4210,14 +5471,17 @@ convert-source-map@^1.4.0, convert-source-map@^1.5.0:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
 
+convert-source-map@^1.6.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+  integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+  dependencies:
+    safe-buffer "~5.1.1"
+
 cookie-signature@1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
 
-cookie@0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
-
 cookie@0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
@@ -4229,11 +5493,12 @@ cookie@^0.4.0:
   integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
 
 cookies@~0.7.0:
-  version "0.7.1"
-  resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.1.tgz#7c8a615f5481c61ab9f16c833731bcb8f663b99b"
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.3.tgz#7912ce21fbf2e8c2da70cf1c3f351aecf59dadfa"
+  integrity sha512-+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A==
   dependencies:
-    depd "~1.1.1"
-    keygrip "~1.0.2"
+    depd "~1.1.2"
+    keygrip "~1.0.3"
 
 copy-concurrently@^1.0.0:
   version "1.0.5"
@@ -4258,6 +5523,21 @@ copy-to-clipboard@^3:
   dependencies:
     toggle-selection "^1.0.3"
 
+copy-to-clipboard@^3.3.1:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae"
+  integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==
+  dependencies:
+    toggle-selection "^1.0.6"
+
+core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.8.1:
+  version "3.17.3"
+  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.17.3.tgz#b39c8e4dec71ecdc735c653ce5233466e561324e"
+  integrity sha512-+in61CKYs4hQERiADCJsdgewpdl/X0GhEX77pjKgbeibXviIt2oxEjTc8O2fqHX8mDdBrDvX8MYD/RYsBv4OiA==
+  dependencies:
+    browserslist "^4.17.0"
+    semver "7.0.0"
+
 core-js-compat@^3.6.2:
   version "3.7.0"
   resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.7.0.tgz#8479c5d3d672d83f1f5ab94cf353e57113e065ed"
@@ -4271,6 +5551,11 @@ core-js-pure@^3.0.0:
   resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
   integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
 
+core-js-pure@^3.8.2:
+  version "3.17.3"
+  resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.17.3.tgz#98ea3587188ab7ef4695db6518eeb71aec42604a"
+  integrity sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==
+
 core-js@^0.8.3:
   version "0.8.4"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-0.8.4.tgz#c22665f1e0d1b9c3c5e1b08dabd1f108695e4fcf"
@@ -4279,39 +5564,40 @@ core-js@^1.0.0:
   version "1.2.7"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
 
-core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.3:
+core-js@^2.4.0, core-js@^2.5.0:
   version "2.5.3"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e"
 
+core-js@^3.0.4, core-js@^3.8.2:
+  version "3.17.3"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.17.3.tgz#8e8bd20e91df9951e903cabe91f9af4a0895bc1e"
+  integrity sha512-lyvajs+wd8N1hXfzob1LdOCCHFU4bGMbqqmLn1Q4QlCpDqWPpGf+p0nj+LNrvDDG33j0hZXw2nsvvVpHysxyNw==
+
 core-js@^3.2.1, core-js@^3.6.5:
   version "3.7.0"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz#b0a761a02488577afbf97179e4681bf49568520f"
   integrity sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==
 
+core-js@^3.6.4:
+  version "3.9.0"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.9.0.tgz#790b1bb11553a2272b36e2625c7179db345492f8"
+  integrity sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==
+
 core-util-is@1.0.2, core-util-is@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
 
-cosmiconfig@^2.1.0, cosmiconfig@^2.1.1:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892"
-  dependencies:
-    is-directory "^0.3.1"
-    js-yaml "^3.4.3"
-    minimist "^1.2.0"
-    object-assign "^4.1.0"
-    os-homedir "^1.0.1"
-    parse-json "^2.2.0"
-    require-from-string "^1.1.0"
-
-cosmiconfig@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-3.1.0.tgz#640a94bf9847f321800403cd273af60665c73397"
+cosmiconfig@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
+  integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
   dependencies:
-    is-directory "^0.3.1"
-    js-yaml "^3.9.0"
-    parse-json "^3.0.0"
-    require-from-string "^2.0.1"
+    "@types/parse-json" "^4.0.0"
+    import-fresh "^3.1.0"
+    parse-json "^5.0.0"
+    path-type "^4.0.0"
+    yaml "^1.7.2"
 
 cosmiconfig@^7.0.0:
   version "7.0.0"
@@ -4334,10 +5620,35 @@ counterpart@0.17.9:
     pluralizers "^0.1.4"
     sprintf-js "^1.0.3"
 
+cp-file@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-7.0.0.tgz#b9454cfd07fe3b974ab9ea0e5f29655791a9b8cd"
+  integrity sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==
+  dependencies:
+    graceful-fs "^4.1.2"
+    make-dir "^3.0.0"
+    nested-error-stacks "^2.0.0"
+    p-event "^4.1.0"
+
 cpu-stat@2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/cpu-stat/-/cpu-stat-2.0.1.tgz#501e8d6dd2d44cef5d842939c38d1822c078fcac"
 
+cpy@^8.1.1:
+  version "8.1.2"
+  resolved "https://registry.yarnpkg.com/cpy/-/cpy-8.1.2.tgz#e339ea54797ad23f8e3919a5cffd37bfc3f25935"
+  integrity sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==
+  dependencies:
+    arrify "^2.0.1"
+    cp-file "^7.0.0"
+    globby "^9.2.0"
+    has-glob "^1.0.0"
+    junk "^3.1.0"
+    nested-error-stacks "^2.1.0"
+    p-all "^2.1.0"
+    p-filter "^2.1.0"
+    p-map "^3.0.0"
+
 create-ecdh@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
@@ -4365,7 +5676,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
     safe-buffer "^5.0.1"
     sha.js "^2.4.8"
 
-create-react-class@^15.5.1, create-react-class@^15.5.2, create-react-class@^15.6.0, create-react-class@^15.6.2:
+create-react-class@^15.5.1, create-react-class@^15.5.2:
   version "15.6.3"
   resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
   dependencies:
@@ -4373,6 +5684,14 @@ create-react-class@^15.5.1, create-react-class@^15.5.2, create-react-class@^15.6
     loose-envify "^1.3.1"
     object-assign "^4.1.1"
 
+create-react-context@0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c"
+  integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==
+  dependencies:
+    gud "^1.0.0"
+    warning "^4.0.3"
+
 cross-env@^5.0.0:
   version "5.1.3"
   resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.3.tgz#f8ae18faac87692b0a8b4d2f7000d4ec3a85dfd7"
@@ -4380,6 +5699,13 @@ cross-env@^5.0.0:
     cross-spawn "^5.1.0"
     is-windows "^1.0.0"
 
+cross-fetch@^3.0.4:
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c"
+  integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==
+  dependencies:
+    node-fetch "2.6.1"
+
 cross-fetch@^3.0.6, cross-fetch@^3.1.4:
   version "3.1.4"
   resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39"
@@ -4387,6 +5713,15 @@ cross-fetch@^3.0.6, cross-fetch@^3.1.4:
   dependencies:
     node-fetch "2.6.1"
 
+cross-spawn@7.0.3, cross-spawn@^7.0.0:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
 cross-spawn@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
@@ -4394,7 +5729,7 @@ cross-spawn@^3.0.0:
     lru-cache "^4.0.1"
     which "^1.2.9"
 
-cross-spawn@^5.0.1, cross-spawn@^5.1.0:
+cross-spawn@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
   dependencies:
@@ -4413,15 +5748,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
     shebang-command "^1.2.0"
     which "^1.2.9"
 
-cross-spawn@^7.0.0:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
-  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
-  dependencies:
-    path-key "^3.1.0"
-    shebang-command "^2.0.0"
-    which "^2.0.1"
-
 cryptiles@3.x.x:
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
@@ -4444,27 +5770,14 @@ crypto-browserify@^3.11.0:
     randombytes "^2.0.0"
     randomfill "^1.0.3"
 
-crypto-random-string@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
-
 csrf@^3.0.0:
-  version "3.0.6"
-  resolved "https://registry.yarnpkg.com/csrf/-/csrf-3.0.6.tgz#b61120ddceeafc91e76ed5313bb5c0b2667b710a"
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/csrf/-/csrf-3.1.0.tgz#ec75e9656d004d674b8ef5ba47b41fbfd6cb9c30"
+  integrity sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==
   dependencies:
     rndm "1.2.0"
-    tsscmp "1.0.5"
-    uid-safe "2.1.4"
-
-css-color-names@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
-
-css-in-js-utils@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.0.tgz#5af1dd70f4b06b331f48d22a3d86e0786c0b9435"
-  dependencies:
-    hyphenate-style-name "^1.0.2"
+    tsscmp "1.0.6"
+    uid-safe "2.1.5"
 
 css-loader@5.0.1:
   version "5.0.1"
@@ -4484,99 +5797,61 @@ css-loader@5.0.1:
     schema-utils "^3.0.0"
     semver "^7.3.2"
 
-css-loader@^0.28.7:
-  version "0.28.7"
-  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b"
+css-loader@^3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645"
+  integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==
   dependencies:
-    babel-code-frame "^6.11.0"
-    css-selector-tokenizer "^0.7.0"
-    cssnano ">=2.6.1 <4"
-    icss-utils "^2.1.0"
-    loader-utils "^1.0.2"
-    lodash.camelcase "^4.3.0"
-    object-assign "^4.0.1"
-    postcss "^5.0.6"
-    postcss-modules-extract-imports "^1.0.0"
-    postcss-modules-local-by-default "^1.0.1"
-    postcss-modules-scope "^1.0.0"
-    postcss-modules-values "^1.1.0"
-    postcss-value-parser "^3.3.0"
-    source-list-map "^2.0.0"
+    camelcase "^5.3.1"
+    cssesc "^3.0.0"
+    icss-utils "^4.1.1"
+    loader-utils "^1.2.3"
+    normalize-path "^3.0.0"
+    postcss "^7.0.32"
+    postcss-modules-extract-imports "^2.0.0"
+    postcss-modules-local-by-default "^3.0.2"
+    postcss-modules-scope "^2.2.0"
+    postcss-modules-values "^3.0.0"
+    postcss-value-parser "^4.1.0"
+    schema-utils "^2.7.0"
+    semver "^6.3.0"
+
+css-select@^4.1.3:
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067"
+  integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==
+  dependencies:
+    boolbase "^1.0.0"
+    css-what "^5.0.0"
+    domhandler "^4.2.0"
+    domutils "^2.6.0"
+    nth-check "^2.0.0"
 
 css-select@~1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
+  integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
   dependencies:
     boolbase "~1.0.0"
     css-what "2.1"
     domutils "1.5.1"
     nth-check "~1.0.1"
 
-css-selector-tokenizer@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86"
-  dependencies:
-    cssesc "^0.1.0"
-    fastparse "^1.1.1"
-    regexpu-core "^1.0.0"
-
 css-what@2.1:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
+  integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
 
-cssesc@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
+css-what@^5.0.0:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad"
+  integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==
 
 cssesc@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
   integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
 
-"cssnano@>=2.6.1 <4":
-  version "3.10.0"
-  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"
-  dependencies:
-    autoprefixer "^6.3.1"
-    decamelize "^1.1.2"
-    defined "^1.0.0"
-    has "^1.0.1"
-    object-assign "^4.0.1"
-    postcss "^5.0.14"
-    postcss-calc "^5.2.0"
-    postcss-colormin "^2.1.8"
-    postcss-convert-values "^2.3.4"
-    postcss-discard-comments "^2.0.4"
-    postcss-discard-duplicates "^2.0.1"
-    postcss-discard-empty "^2.0.1"
-    postcss-discard-overridden "^0.1.1"
-    postcss-discard-unused "^2.2.1"
-    postcss-filter-plugins "^2.0.0"
-    postcss-merge-idents "^2.1.5"
-    postcss-merge-longhand "^2.0.1"
-    postcss-merge-rules "^2.0.3"
-    postcss-minify-font-values "^1.0.2"
-    postcss-minify-gradients "^1.0.1"
-    postcss-minify-params "^1.0.4"
-    postcss-minify-selectors "^2.0.4"
-    postcss-normalize-charset "^1.1.0"
-    postcss-normalize-url "^3.0.7"
-    postcss-ordered-values "^2.1.0"
-    postcss-reduce-idents "^2.2.2"
-    postcss-reduce-initial "^1.0.0"
-    postcss-reduce-transforms "^1.0.3"
-    postcss-svgo "^2.1.1"
-    postcss-unique-selectors "^2.0.2"
-    postcss-value-parser "^3.2.3"
-    postcss-zindex "^2.0.1"
-
-csso@~2.3.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85"
-  dependencies:
-    clap "^1.0.9"
-    source-map "^0.5.3"
-
 cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
   version "0.3.2"
   resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b"
@@ -4587,6 +5862,16 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
   dependencies:
     cssom "0.3.x"
 
+csstype@^2.5.7:
+  version "2.6.18"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.18.tgz#980a8b53085f34af313410af064f2bd241784218"
+  integrity sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==
+
+csstype@^3.0.2:
+  version "3.0.9"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.9.tgz#6410af31b26bd0520933d02cbc64fce9ce3fbf0b"
+  integrity sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==
+
 currently-unhandled@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -4598,12 +5883,6 @@ cyclist@^1.0.1:
   resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
   integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
 
-d@1:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
-  dependencies:
-    es5-ext "^0.10.9"
-
 damerau-levenshtein@^1.0.4:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791"
@@ -4618,20 +5897,17 @@ dashdash@^1.12.0:
 dasherize@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/dasherize/-/dasherize-2.0.0.tgz#6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308"
+  integrity sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=
 
 data-uri-regex@^0.1.2:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/data-uri-regex/-/data-uri-regex-0.1.4.tgz#1e1db6c8397eca8a48ecdb55ad1b927ec0bbac2e"
   integrity sha1-Hh22yDl+yopI7NtVrRuSfsC7rC4=
 
-data-uri-to-blob@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/data-uri-to-blob/-/data-uri-to-blob-0.0.4.tgz#087a7bff42f41a6cc0b2e2fb7312a7c29904fbaa"
-  integrity sha1-CHp7/0L0GmzAsuL7cxKnwpkE+6o=
-
-date-fns@^1.27.2:
-  version "1.29.0"
-  resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
+date-names@^0.1.13:
+  version "0.1.13"
+  resolved "https://registry.yarnpkg.com/date-names/-/date-names-0.1.13.tgz#c4358f6f77c8056e2f5ea68fdbb05f0bf1e53bd0"
+  integrity sha512-IxxoeD9tdx8pXVcmqaRlPvrXIsSrSrIZzfzlOkm9u+hyzKp5Wk/odt9O/gd7Ockzy8n/WHeEpTVJ2bF3mMV4LA==
 
 date-names@^0.1.7:
   version "0.1.11"
@@ -4641,7 +5917,14 @@ date-now@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
 
-debug@*, debug@2.6.9, debug@^2.2.0, debug@^2.3.2, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
+debug@*:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+  dependencies:
+    ms "2.1.2"
+
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   dependencies:
@@ -4654,6 +5937,13 @@ debug@=3.1.0, debug@^3.1.0:
   dependencies:
     ms "2.0.0"
 
+debug@^3.0.0, debug@^3.1.1:
+  version "3.2.7"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+  integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+  dependencies:
+    ms "^2.1.1"
+
 debug@^3.2.6:
   version "3.2.6"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
@@ -4667,6 +5957,13 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
   dependencies:
     ms "^2.1.1"
 
+debug@^4.2.0:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+  dependencies:
+    ms "2.1.2"
+
 decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -4693,6 +5990,16 @@ deep-is@~0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
 
+deep-object-diff@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a"
+  integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==
+
+deepmerge@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+  integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
 default-require-extensions@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
@@ -4735,10 +6042,6 @@ define-property@^2.0.2:
     is-descriptor "^1.0.2"
     isobject "^3.0.1"
 
-defined@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
-
 delayed-stream@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -4747,11 +6050,12 @@ delegates@1.0.0, delegates@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
 
-depd@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
+depd@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+  integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
 
-depd@~1.1.1, depd@~1.1.2:
+depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
 
@@ -4765,6 +6069,14 @@ des.js@^1.0.0:
 destroy@^1.0.3, destroy@~1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+  integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
+
+detab@2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43"
+  integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==
+  dependencies:
+    repeat-string "^1.5.4"
 
 detect-indent@^4.0.0:
   version "4.0.0"
@@ -4784,6 +6096,22 @@ detect-node@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127"
 
+detect-port-alt@1.1.6:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275"
+  integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==
+  dependencies:
+    address "^1.0.1"
+    debug "^2.6.0"
+
+detect-port@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1"
+  integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==
+  dependencies:
+    address "^1.0.1"
+    debug "^2.6.0"
+
 dev-ip@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0"
@@ -4805,6 +6133,20 @@ diffie-hellman@^5.0.0:
     miller-rabin "^4.0.0"
     randombytes "^2.0.0"
 
+dir-glob@^2.2.2:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
+  integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
+  dependencies:
+    path-type "^3.0.0"
+
+dir-glob@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+  integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+  dependencies:
+    path-type "^4.0.0"
+
 direction@^0.1.5:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/direction/-/direction-0.1.5.tgz#ce5d797f97e26f8be7beff53f7dc40e1c1a9ec4c"
@@ -4818,10 +6160,6 @@ disk-stat@1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/disk-stat/-/disk-stat-1.0.4.tgz#42a47930f5d4f2ceea9a261c02126954d117a6c4"
 
-dns-prefetch-control@0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz#60ddb457774e178f1f9415f0cabb0e85b0b300b2"
-
 doctrine@1.5.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
@@ -4829,7 +6167,7 @@ doctrine@1.5.0:
     esutils "^2.0.2"
     isarray "^1.0.0"
 
-doctrine@^2.0.0, doctrine@^2.1.0:
+doctrine@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
   dependencies:
@@ -4842,20 +6180,53 @@ doctrine@^3.0.0:
   dependencies:
     esutils "^2.0.2"
 
-dom-helpers@^3.2.0, dom-helpers@^3.2.1:
+dom-converter@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
+  integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
+  dependencies:
+    utila "~0.4"
+
+dom-helpers@^3.2.1:
   version "3.3.1"
   resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6"
 
+dom-helpers@^5.0.1:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
+  integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
+  dependencies:
+    "@babel/runtime" "^7.8.7"
+    csstype "^3.0.2"
+
 dom-scroll-into-view@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-1.0.1.tgz#32abb92f0d8feca6215162aef43e4b449ab8d99c"
 
-dom-serializer@0, dom-serializer@~0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
+dom-serializer@0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
+  integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
   dependencies:
-    domelementtype "~1.1.1"
-    entities "~1.1.1"
+    domelementtype "^2.0.1"
+    entities "^2.0.0"
+
+dom-serializer@^1.0.1:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
+  integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
+  dependencies:
+    domelementtype "^2.0.1"
+    domhandler "^4.2.0"
+    entities "^2.0.0"
+
+dom-serializer@~0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0"
+  integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==
+  dependencies:
+    domelementtype "^1.3.0"
+    entities "^1.1.1"
 
 dom-walk@^0.1.0:
   version "0.1.1"
@@ -4865,13 +6236,20 @@ domain-browser@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
 
-domelementtype@1, domelementtype@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
+domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
+  integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
 
-domelementtype@~1.1.1:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
+domelementtype@^2.0.1:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
+  integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
+
+domelementtype@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
+  integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
 
 domexception@^1.0.0:
   version "1.0.1"
@@ -4880,44 +6258,147 @@ domexception@^1.0.0:
     webidl-conversions "^4.0.2"
 
 domhandler@^2.3.0:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259"
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
+  integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
   dependencies:
     domelementtype "1"
 
+domhandler@^4.0.0, domhandler@^4.2.0:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f"
+  integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==
+  dependencies:
+    domelementtype "^2.2.0"
+
 domutils@1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+  integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
+  dependencies:
+    dom-serializer "0"
+    domelementtype "1"
+
+domutils@^1.5.1:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+  integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+  dependencies:
+    dom-serializer "0"
+    domelementtype "1"
+
+domutils@^2.5.2, domutils@^2.6.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+  integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
+  dependencies:
+    dom-serializer "^1.0.1"
+    domelementtype "^2.2.0"
+    domhandler "^4.2.0"
+
+dont-sniff-mimetype@1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz#c7d0427f8bcb095762751252af59d148b0a623b2"
+  integrity sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug==
+
+dot-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+  integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+
+dotenv-defaults@^1.0.2:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-1.1.1.tgz#032c024f4b5906d9990eb06d722dc74cc60ec1bd"
+  integrity sha512-6fPRo9o/3MxKvmRZBD3oNFdxODdhJtIy1zcJeUSCs6HCy4tarUpd+G67UTU9tF6OWXeSPqsm4fPAB+2eY9Rt9Q==
+  dependencies:
+    dotenv "^6.2.0"
+
+dotenv-expand@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
+  integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
+
+dotenv-webpack@^1.8.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-1.8.0.tgz#7ca79cef2497dd4079d43e81e0796bc9d0f68a5e"
+  integrity sha512-o8pq6NLBehtrqA8Jv8jFQNtG9nhRtVqmoD4yWbgUyoU3+9WBlPe+c2EAiaJok9RB28QvrWvdWLZGeTT5aATDMg==
+  dependencies:
+    dotenv-defaults "^1.0.2"
+
+dotenv@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064"
+  integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==
+
+dotenv@^8.0.0:
+  version "8.6.0"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b"
+  integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==
+
+downshift@^6.0.15:
+  version "6.1.7"
+  resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.7.tgz#fdb4c4e4f1d11587985cd76e21e8b4b3fa72e44c"
+  integrity sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg==
+  dependencies:
+    "@babel/runtime" "^7.14.8"
+    compute-scroll-into-view "^1.0.17"
+    prop-types "^15.7.2"
+    react-is "^17.0.2"
+    tslib "^2.3.0"
+
+draft-js-export-html@>=0.6.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/draft-js-export-html/-/draft-js-export-html-1.4.1.tgz#7cdad970c6f7f2cdd19ce4c1f5073fdf0f313b4d"
+  integrity sha512-G4VGBSalPowktIE4wp3rFbhjs+Ln9IZ2FhXeHjsZDSw0a2+h+BjKu5Enq+mcsyVb51RW740GBK8Xbf7Iic51tw==
   dependencies:
-    dom-serializer "0"
-    domelementtype "1"
+    draft-js-utils "^1.4.0"
 
-domutils@^1.5.1:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff"
+draft-js-export-markdown@>=0.3.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/draft-js-export-markdown/-/draft-js-export-markdown-1.4.0.tgz#783731a0aaba4a5962d1d6a37293df7926ea6e45"
+  integrity sha512-blfAvlhGhjVlHNaZ5WJKlrXhcftnwwC5VC+Eu3ztOGpGLaOom4hxhBjbKEWjvbQZJ9zL+xo57ukm39prYZMG5Q==
   dependencies:
-    dom-serializer "0"
-    domelementtype "1"
+    draft-js-utils "^1.4.0"
 
-dont-sniff-mimetype@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz#5932890dc9f4e2f19e5eb02a20026e5e5efc8f58"
+draft-js-import-element@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/draft-js-import-element/-/draft-js-import-element-1.4.0.tgz#8760acbfeb60ed824a1c8319ec049f702681df66"
+  integrity sha512-WmYT5PrCm47lGL5FkH6sRO3TTAcn7qNHsD3igiPqLG/RXrqyKrqN4+wBgbcT2lhna/yfWTRtgzAbQsSJoS1Meg==
+  dependencies:
+    draft-js-utils "^1.4.0"
+    synthetic-dom "^1.4.0"
 
-dot-prop@^4.1.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
+draft-js-import-html@>=0.4.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/draft-js-import-html/-/draft-js-import-html-1.4.1.tgz#c222a3a40ab27dee5874fcf78526b64734fe6ea4"
+  integrity sha512-KOZmtgxZriCDgg5Smr3Y09TjubvXe7rHPy/2fuLSsL+aSzwUDwH/aHDA/k47U+WfpmL4qgyg4oZhqx9TYJV0tg==
   dependencies:
-    is-obj "^1.0.0"
+    draft-js-import-element "^1.4.0"
 
-dotenv-webpack@^1.5.4:
-  version "1.5.4"
-  resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-1.5.4.tgz#9c92e46e412a1cfbc60217ed33d69d2bbfddbf9f"
+draft-js-import-markdown@>=0.3.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/draft-js-import-markdown/-/draft-js-import-markdown-1.4.0.tgz#745ab87e8e38436de65be0472c946108dadcc778"
+  integrity sha512-mpKUxzDM+x7W+eCZegCAxl3QJzNGA3Y+DbBMMekzCdPHONLJAZ1QYYjegbXa6+pZGq8FAIhgWaVbfKWMb8M8dQ==
   dependencies:
-    dotenv "^4.0.0"
+    draft-js-import-element "^1.4.0"
+    synthetic-dom "^1.4.0"
 
-dotenv@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d"
+draft-js-utils@>=0.2.0, draft-js-utils@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/draft-js-utils/-/draft-js-utils-1.4.0.tgz#c60af198108f69b0f1df3572555b23836819d1cf"
+  integrity sha512-8s9FFuKC+lOWGwJ0b3om2PF+uXrqQPaEQlPJI7UxdzxTYGMeKouMPA9+YlPn52zcAVElIZtd2tXj6eQmvlKelw==
+
+draft-js@>=0.10.0:
+  version "0.11.7"
+  resolved "https://registry.yarnpkg.com/draft-js/-/draft-js-0.11.7.tgz#be293aaa255c46d8a6647f3860aa4c178484a206"
+  integrity sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==
+  dependencies:
+    fbjs "^2.0.0"
+    immutable "~3.7.4"
+    object-assign "^4.1.1"
 
 duplexer@^0.1.1:
   version "0.1.1"
@@ -4956,18 +6437,22 @@ ejs@^3.1.5:
   dependencies:
     jake "^10.6.1"
 
-electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30:
-  version "1.3.32"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.32.tgz#11d0684c0840e003c4be8928f8ac5f35dbc2b4e6"
+electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.830:
+  version "1.3.838"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.838.tgz#d178b34a268c750c0444ba69e4c94d4c4fb3aa0d"
+  integrity sha512-65O6UJiyohFAdX/nc6KJ0xG/4zOn7XCO03kQNNbCeMRGxlWTLzc6Uyi0tFNQuuGWqySZJi8CD2KXPXySVYmzMA==
 
 electron-to-chromium@^1.3.585:
   version "1.3.591"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.591.tgz#a18892bf1acb93f7b6e4da402705d564bc235017"
   integrity sha512-ol/0WzjL4NS4Kqy9VD6xXQON91xIihDT36sYCew/G/bnd1v0/4D+kahp26JauQhgFUjrdva3kRSo7URcUmQ+qw==
 
-elegant-spinner@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
+element-resize-detector@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.2.3.tgz#5078d9b99398fe4c589f8c8df94ff99e5d413ff3"
+  integrity sha512-+dhNzUgLpq9ol5tyhoG7YLoXL3ssjfFW+0gpszXPwRU6NjGr1fVHMEAF8fVzIiRJq57Nre0RFeIjJwI8Nh2NmQ==
+  dependencies:
+    batch-processor "1.0.0"
 
 elliptic@^6.0.0:
   version "6.4.0"
@@ -5000,9 +6485,19 @@ emojis-list@^3.0.0:
   resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
   integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
 
-encodeurl@~1.0.1, encodeurl@~1.0.2:
+emotion-theming@^10.0.27:
+  version "10.0.27"
+  resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-10.0.27.tgz#1887baaec15199862c89b1b984b79806f2b9ab10"
+  integrity sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==
+  dependencies:
+    "@babel/runtime" "^7.5.5"
+    "@emotion/weak-memoize" "0.2.5"
+    hoist-non-react-statics "^3.3.0"
+
+encodeurl@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
 
 encoding@^0.1.11:
   version "0.1.12"
@@ -5017,19 +6512,19 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
   dependencies:
     once "^1.4.0"
 
-enhanced-resolve@^3.4.0:
-  version "3.4.1"
-  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
+endent@^2.0.1:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/endent/-/endent-2.1.0.tgz#5aaba698fb569e5e18e69e1ff7a28ff35373cd88"
+  integrity sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==
   dependencies:
-    graceful-fs "^4.1.2"
-    memory-fs "^0.4.0"
-    object-assign "^4.0.1"
-    tapable "^0.2.7"
+    dedent "^0.7.0"
+    fast-json-parse "^1.0.3"
+    objectorarray "^1.0.5"
 
-enhanced-resolve@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126"
-  integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==
+enhanced-resolve@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
+  integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
   dependencies:
     graceful-fs "^4.1.2"
     memory-fs "^0.5.0"
@@ -5043,31 +6538,55 @@ enquirer@^2.3.6:
     ansi-colors "^4.1.1"
 
 entities@^1.1.1, entities@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
+  integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
+
+entities@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+  integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
 
 envinfo@^7.7.3:
   version "7.7.3"
   resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc"
   integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==
 
-enzyme-adapter-react-15@1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/enzyme-adapter-react-15/-/enzyme-adapter-react-15-1.0.5.tgz#99f9a03ff2c2303e517342935798a6bdfbb75fac"
+enzyme-adapter-react-16@1.15.6:
+  version "1.15.6"
+  resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz#fd677a658d62661ac5afd7f7f541f141f8085901"
+  integrity sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==
   dependencies:
-    enzyme-adapter-utils "^1.1.0"
-    lodash "^4.17.4"
-    object.assign "^4.0.4"
-    object.values "^1.0.4"
-    prop-types "^15.5.10"
+    enzyme-adapter-utils "^1.14.0"
+    enzyme-shallow-equal "^1.0.4"
+    has "^1.0.3"
+    object.assign "^4.1.2"
+    object.values "^1.1.2"
+    prop-types "^15.7.2"
+    react-is "^16.13.1"
+    react-test-renderer "^16.0.0-0"
+    semver "^5.7.0"
 
-enzyme-adapter-utils@^1.1.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.3.0.tgz#d6c85756826c257a8544d362cc7a67e97ea698c7"
+enzyme-adapter-utils@^1.14.0:
+  version "1.14.0"
+  resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0"
+  integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==
   dependencies:
-    lodash "^4.17.4"
-    object.assign "^4.0.4"
-    prop-types "^15.6.0"
+    airbnb-prop-types "^2.16.0"
+    function.prototype.name "^1.1.3"
+    has "^1.0.3"
+    object.assign "^4.1.2"
+    object.fromentries "^2.0.3"
+    prop-types "^15.7.2"
+    semver "^5.7.1"
+
+enzyme-shallow-equal@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e"
+  integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==
+  dependencies:
+    has "^1.0.3"
+    object-is "^1.1.2"
 
 enzyme@3.3.0:
   version "3.3.0"
@@ -5112,6 +6631,14 @@ error-ex@^1.2.0, error-ex@^1.3.1:
 error-inject@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37"
+  integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc=
+
+error-stack-parser@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8"
+  integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==
+  dependencies:
+    stackframe "^1.1.1"
 
 error@^7.0.0:
   version "7.2.1"
@@ -5120,16 +6647,6 @@ error@^7.0.0:
   dependencies:
     string-template "~0.2.1"
 
-es-abstract@^1.10.0, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0, es-abstract@^1.9.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
-  dependencies:
-    es-to-primitive "^1.1.1"
-    function-bind "^1.1.1"
-    has "^1.0.1"
-    is-callable "^1.1.3"
-    is-regex "^1.0.4"
-
 es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5:
   version "1.17.5"
   resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
@@ -5147,6 +6664,59 @@ es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5:
     string.prototype.trimleft "^2.1.1"
     string.prototype.trimright "^2.1.1"
 
+es-abstract@^1.17.4, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2:
+  version "1.18.6"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.6.tgz#2c44e3ea7a6255039164d26559777a6d978cb456"
+  integrity sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==
+  dependencies:
+    call-bind "^1.0.2"
+    es-to-primitive "^1.2.1"
+    function-bind "^1.1.1"
+    get-intrinsic "^1.1.1"
+    get-symbol-description "^1.0.0"
+    has "^1.0.3"
+    has-symbols "^1.0.2"
+    internal-slot "^1.0.3"
+    is-callable "^1.2.4"
+    is-negative-zero "^2.0.1"
+    is-regex "^1.1.4"
+    is-string "^1.0.7"
+    object-inspect "^1.11.0"
+    object-keys "^1.1.1"
+    object.assign "^4.1.2"
+    string.prototype.trimend "^1.0.4"
+    string.prototype.trimstart "^1.0.4"
+    unbox-primitive "^1.0.1"
+
+es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0, es-abstract@^1.9.0:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
+  dependencies:
+    es-to-primitive "^1.1.1"
+    function-bind "^1.1.1"
+    has "^1.0.1"
+    is-callable "^1.1.3"
+    is-regex "^1.0.4"
+
+es-array-method-boxes-properly@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
+  integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
+
+es-get-iterator@^1.0.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7"
+  integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.1.0"
+    has-symbols "^1.0.1"
+    is-arguments "^1.1.0"
+    is-map "^2.0.2"
+    is-set "^2.0.2"
+    is-string "^1.0.5"
+    isarray "^2.0.5"
+
 es-to-primitive@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
@@ -5164,85 +6734,45 @@ es-to-primitive@^1.2.1:
     is-date-object "^1.0.1"
     is-symbol "^1.0.2"
 
-es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
-  version "0.10.38"
-  resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3"
-  dependencies:
-    es6-iterator "~2.0.3"
-    es6-symbol "~3.1.1"
-
-es5-shim@^4.5.10:
-  version "4.5.10"
-  resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.10.tgz#b7e17ef4df2a145b821f1497b50c25cf94026205"
-
-es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
-  dependencies:
-    d "1"
-    es5-ext "^0.10.35"
-    es6-symbol "^3.1.1"
-
-es6-map@^0.1.3, es6-map@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
-  integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-    es6-iterator "~2.0.1"
-    es6-set "~0.1.5"
-    es6-symbol "~3.1.1"
-    event-emitter "~0.3.5"
+es5-shim@^4.5.13:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.2.tgz#827cdd0c6fb5beb26fd368d65430e8b5eaeba942"
+  integrity sha512-n0XTVMGps+Deyr38jtqKPR5F5hb9owYeRQcKJW39eFvzUk/u/9Ww315werRzbiNMnHCUw/YHDPBphTlEnzdi+A==
 
 es6-promise@^4.0.5:
   version "4.2.6"
   resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f"
   integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==
 
-es6-set@~0.1.5:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-    es6-iterator "~2.0.1"
-    es6-symbol "3.1.1"
-    event-emitter "~0.3.5"
-
-es6-shim@^0.35.3:
-  version "0.35.3"
-  resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz#9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26"
-
-es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-
-es6-weak-map@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
-  dependencies:
-    d "1"
-    es5-ext "^0.10.14"
-    es6-iterator "^2.0.1"
-    es6-symbol "^3.1.1"
+es6-shim@^0.35.5:
+  version "0.35.6"
+  resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.6.tgz#d10578301a83af2de58b9eadb7c2c9945f7388a0"
+  integrity sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==
 
-escalade@^3.1.1:
+escalade@^3.0.2, escalade@^3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
   integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
 
-escape-html@~1.0.1, escape-html@~1.0.3:
+escape-html@^1.0.3, escape-html@~1.0.1, escape-html@~1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
 
 escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
 
+escape-string-regexp@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+  integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+
+escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
 escodegen@^1.6.1, escodegen@^1.9.0:
   version "1.9.0"
   resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852"
@@ -5254,15 +6784,6 @@ escodegen@^1.6.1, escodegen@^1.9.0:
   optionalDependencies:
     source-map "~0.5.6"
 
-escope@^3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
-  dependencies:
-    es6-map "^0.1.3"
-    es6-weak-map "^2.0.1"
-    esrecurse "^4.1.0"
-    estraverse "^4.1.1"
-
 eslint-config-airbnb-base@^14.1.0:
   version "14.1.0"
   resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz#2ba4592dd6843258221d9bff2b6831bd77c874e4"
@@ -5454,15 +6975,11 @@ espree@^6.1.2:
     acorn-jsx "^5.2.0"
     eslint-visitor-keys "^1.1.0"
 
-esprima@^2.6.0:
-  version "2.7.3"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
-
 esprima@^3.1.3:
   version "3.1.3"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
 
-esprima@^4.0.0, esprima@~4.0.0:
+esprima@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
 
@@ -5494,6 +7011,15 @@ estraverse@^5.1.0:
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
   integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
 
+estree-to-babel@^3.1.0:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5"
+  integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==
+  dependencies:
+    "@babel/traverse" "^7.1.6"
+    "@babel/types" "^7.2.0"
+    c8 "^7.6.0"
+
 esutils@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@@ -5501,17 +7027,7 @@ esutils@^2.0.2:
 etag@^1.3.0, etag@~1.8.1:
   version "1.8.1"
   resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
-
-event-emitter@~0.3.5:
-  version "0.3.5"
-  resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-
-events@^1.0.0, events@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
+  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
 
 events@^3.0.0:
   version "3.2.0"
@@ -5537,30 +7053,6 @@ exec-sh@^0.2.0:
   dependencies:
     merge "^1.1.3"
 
-execa@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
-  dependencies:
-    cross-spawn "^5.0.1"
-    get-stream "^3.0.0"
-    is-stream "^1.1.0"
-    npm-run-path "^2.0.0"
-    p-finally "^1.0.0"
-    signal-exit "^3.0.0"
-    strip-eof "^1.0.0"
-
-execa@^0.8.0:
-  version "0.8.0"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
-  dependencies:
-    cross-spawn "^5.0.1"
-    get-stream "^3.0.0"
-    is-stream "^1.1.0"
-    npm-run-path "^2.0.0"
-    p-finally "^1.0.0"
-    signal-exit "^3.0.0"
-    strip-eof "^1.0.0"
-
 execa@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
@@ -5589,14 +7081,6 @@ execa@^4.1.0:
     signal-exit "^3.0.2"
     strip-final-newline "^2.0.0"
 
-exenv@^1.2.0, exenv@^1.2.1:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d"
-
-exit-hook@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
-
 exit@^0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -5626,10 +7110,6 @@ expand-range@^1.8.1:
   dependencies:
     fill-range "^2.1.0"
 
-expect-ct@0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.1.0.tgz#52735678de18530890d8d7b95f0ac63640958094"
-
 expect@^23.6.0:
   version "23.6.0"
   resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98"
@@ -5642,41 +7122,6 @@ expect@^23.6.0:
     jest-message-util "^23.4.0"
     jest-regex-util "^23.3.0"
 
-express@^4.16.2:
-  version "4.16.2"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
-  dependencies:
-    accepts "~1.3.4"
-    array-flatten "1.1.1"
-    body-parser "1.18.2"
-    content-disposition "0.5.2"
-    content-type "~1.0.4"
-    cookie "0.3.1"
-    cookie-signature "1.0.6"
-    debug "2.6.9"
-    depd "~1.1.1"
-    encodeurl "~1.0.1"
-    escape-html "~1.0.3"
-    etag "~1.8.1"
-    finalhandler "1.1.0"
-    fresh "0.5.2"
-    merge-descriptors "1.0.1"
-    methods "~1.1.2"
-    on-finished "~2.3.0"
-    parseurl "~1.3.2"
-    path-to-regexp "0.1.7"
-    proxy-addr "~2.0.2"
-    qs "6.5.1"
-    range-parser "~1.2.0"
-    safe-buffer "5.1.1"
-    send "0.16.1"
-    serve-static "1.13.1"
-    setprototypeof "1.1.0"
-    statuses "~1.3.1"
-    type-is "~1.6.15"
-    utils-merge "1.0.1"
-    vary "~1.1.2"
-
 express@^4.17.1:
   version "4.17.1"
   resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
@@ -5731,6 +7176,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
 extend@1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/extend/-/extend-1.3.0.tgz#d1516fb0ff5624d2ebf9123ea1dac5a1994004f8"
+  integrity sha1-0VFvsP9WJNLr+RI+odrFoZlABPg=
 
 extend@^3.0.0, extend@~3.0.1:
   version "3.0.1"
@@ -5770,6 +7216,16 @@ extglob@^2.0.4:
     snapdragon "^0.8.1"
     to-regex "^3.0.1"
 
+extract-text-webpack-plugin@^v4.0.0-beta.0:
+  version "4.0.0-beta.0"
+  resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz#f7361d7ff430b42961f8d1321ba8c1757b5d4c42"
+  integrity sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==
+  dependencies:
+    async "^2.4.1"
+    loader-utils "^1.1.0"
+    schema-utils "^0.4.5"
+    webpack-sources "^1.1.0"
+
 extsprintf@1.3.0, extsprintf@^1.2.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -5783,6 +7239,39 @@ fast-deep-equal@^3.1.1:
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
   integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
 
+fast-deep-equal@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-glob@^2.2.6:
+  version "2.2.7"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
+  integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==
+  dependencies:
+    "@mrmlnc/readdir-enhanced" "^2.2.1"
+    "@nodelib/fs.stat" "^1.1.2"
+    glob-parent "^3.1.0"
+    is-glob "^4.0.0"
+    merge2 "^1.2.3"
+    micromatch "^3.1.10"
+
+fast-glob@^3.1.1:
+  version "3.2.7"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
+  integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==
+  dependencies:
+    "@nodelib/fs.stat" "^2.0.2"
+    "@nodelib/fs.walk" "^1.2.3"
+    glob-parent "^5.1.2"
+    merge2 "^1.3.0"
+    micromatch "^4.0.4"
+
+fast-json-parse@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/fast-json-parse/-/fast-json-parse-1.0.3.tgz#43e5c61ee4efa9265633046b770fb682a7577c4d"
+  integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==
+
 fast-json-stable-stringify@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
@@ -5792,13 +7281,19 @@ fast-levenshtein@~2.0.4, fast-levenshtein@~2.0.6:
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
   integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
 
-fast-memoize@^2.2.7:
-  version "2.2.8"
-  resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.2.8.tgz#d7f899f31d037b12d9db4281912f9018575720b1"
+fastq@^1.6.0:
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
+  integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
+  dependencies:
+    reusify "^1.0.4"
 
-fastparse@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
+fault@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13"
+  integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==
+  dependencies:
+    format "^0.2.0"
 
 faye-websocket@~0.10.0:
   version "0.10.0"
@@ -5813,7 +7308,12 @@ fb-watchman@^2.0.0:
   dependencies:
     bser "^2.0.0"
 
-fbjs@^0.8.12, fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.9:
+fbjs-css-vars@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8"
+  integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==
+
+fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.9:
   version "0.8.16"
   resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
   dependencies:
@@ -5825,19 +7325,31 @@ fbjs@^0.8.12, fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.9:
     setimmediate "^1.0.5"
     ua-parser-js "^0.7.9"
 
+fbjs@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-2.0.0.tgz#01fb812138d7e31831ed3e374afe27b9169ef442"
+  integrity sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==
+  dependencies:
+    core-js "^3.6.4"
+    cross-fetch "^3.0.4"
+    fbjs-css-vars "^1.0.0"
+    loose-envify "^1.0.0"
+    object-assign "^4.1.0"
+    promise "^7.1.1"
+    setimmediate "^1.0.5"
+    ua-parser-js "^0.7.18"
+
+feature-policy@0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.3.0.tgz#7430e8e54a40da01156ca30aaec1a381ce536069"
+  integrity sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==
+
 figgy-pudding@^3.5.1:
   version "3.5.2"
   resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
   integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
 
-figures@^1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
-  dependencies:
-    escape-string-regexp "^1.0.5"
-    object-assign "^4.1.0"
-
-figures@^3.0.0:
+figures@^3.0.0, figures@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
   integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
@@ -5851,7 +7363,7 @@ file-entry-cache@^5.0.1:
   dependencies:
     flat-cache "^2.0.1"
 
-file-loader@6.2.0:
+file-loader@6.2.0, file-loader@^6.2.0:
   version "6.2.0"
   resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
   integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
@@ -5859,12 +7371,14 @@ file-loader@6.2.0:
     loader-utils "^2.0.0"
     schema-utils "^3.0.0"
 
-file-loader@^1.1.6:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.6.tgz#7b9a8f2c58f00a77fddf49e940f7ac978a3ea0e8"
+file-system-cache@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f"
+  integrity sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=
   dependencies:
-    loader-utils "^1.0.2"
-    schema-utils "^0.3.0"
+    bluebird "^3.3.5"
+    fs-extra "^0.30.0"
+    ramda "^0.21.0"
 
 file-uri-to-path@1.0.0:
   version "1.0.0"
@@ -5889,7 +7403,7 @@ fileset@^2.0.2:
     glob "^7.0.3"
     minimatch "^3.0.3"
 
-filesize@^6.1.0:
+filesize@6.1.0, filesize@^6.1.0:
   version "6.1.0"
   resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00"
   integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==
@@ -5921,18 +7435,6 @@ fill-range@^7.0.1:
   dependencies:
     to-regex-range "^5.0.1"
 
-finalhandler@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
-  dependencies:
-    debug "2.6.9"
-    encodeurl "~1.0.1"
-    escape-html "~1.0.3"
-    on-finished "~2.3.0"
-    parseurl "~1.3.2"
-    statuses "~1.3.1"
-    unpipe "~1.0.0"
-
 finalhandler@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
@@ -5946,14 +7448,6 @@ finalhandler@~1.1.2:
     statuses "~1.5.0"
     unpipe "~1.0.0"
 
-find-cache-dir@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
-  dependencies:
-    commondir "^1.0.1"
-    make-dir "^1.0.0"
-    pkg-dir "^2.0.0"
-
 find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
@@ -5963,9 +7457,27 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
     make-dir "^2.0.0"
     pkg-dir "^3.0.0"
 
-find-parent-dir@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
+find-cache-dir@^3.3.1:
+  version "3.3.2"
+  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
+  integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
+  dependencies:
+    commondir "^1.0.1"
+    make-dir "^3.0.2"
+    pkg-dir "^4.1.0"
+
+find-root@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+  integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
+find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+  dependencies:
+    locate-path "^5.0.0"
+    path-exists "^4.0.0"
 
 find-up@^1.0.0:
   version "1.1.2"
@@ -5987,12 +7499,12 @@ find-up@^3.0.0:
   dependencies:
     locate-path "^3.0.0"
 
-find-up@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
-  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+find-up@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
   dependencies:
-    locate-path "^5.0.0"
+    locate-path "^6.0.0"
     path-exists "^4.0.0"
 
 flat-cache@^2.0.1:
@@ -6004,14 +7516,23 @@ flat-cache@^2.0.1:
     rimraf "2.6.3"
     write "1.0.3"
 
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+  dependencies:
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
+
 flatted@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
   integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
 
-flatten@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
+flatted@^3.1.0:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561"
+  integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
 
 flush-write-stream@^1.0.0:
   version "1.1.1"
@@ -6043,9 +7564,58 @@ foreach@^2.0.5:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
 
-forever-agent@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+foreground-child@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53"
+  integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==
+  dependencies:
+    cross-spawn "^7.0.0"
+    signal-exit "^3.0.2"
+
+forever-agent@~0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+fork-ts-checker-webpack-plugin@4.1.6, fork-ts-checker-webpack-plugin@^4.1.6:
+  version "4.1.6"
+  resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5"
+  integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==
+  dependencies:
+    "@babel/code-frame" "^7.5.5"
+    chalk "^2.4.1"
+    micromatch "^3.1.10"
+    minimatch "^3.0.4"
+    semver "^5.6.0"
+    tapable "^1.0.0"
+    worker-rpc "^0.1.0"
+
+fork-ts-checker-webpack-plugin@^6.0.4:
+  version "6.3.3"
+  resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.3.3.tgz#73a9d8e1dc5821fa19a3daedc8be7568b095c8ab"
+  integrity sha512-S3uMSg8IsIvs0H6VAfojtbf6RcnEXxEpDMT2Q41M2l0m20JO8eA1t4cCJybvrasC8SvvPEtK4B8ztxxfLljhNg==
+  dependencies:
+    "@babel/code-frame" "^7.8.3"
+    "@types/json-schema" "^7.0.5"
+    chalk "^4.1.0"
+    chokidar "^3.4.2"
+    cosmiconfig "^6.0.0"
+    deepmerge "^4.2.2"
+    fs-extra "^9.0.0"
+    glob "^7.1.6"
+    memfs "^3.1.2"
+    minimatch "^3.0.4"
+    schema-utils "2.7.0"
+    semver "^7.3.2"
+    tapable "^1.0.0"
+
+form-data@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
+  integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
 
 form-data@~2.3.1:
   version "2.3.1"
@@ -6064,9 +7634,15 @@ form-data@~2.3.2:
     combined-stream "^1.0.6"
     mime-types "^2.1.12"
 
+format@^0.2.0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
+  integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
+
 formidable@1.0.17:
   version "1.0.17"
   resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.17.tgz#ef5491490f9433b705faa77249c99029ae348559"
+  integrity sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=
 
 forwarded@~0.1.2:
   version "0.1.2"
@@ -6086,13 +7662,10 @@ fragment-cache@^0.2.1:
   dependencies:
     map-cache "^0.2.2"
 
-frameguard@3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/frameguard/-/frameguard-3.0.0.tgz#7bcad469ee7b96e91d12ceb3959c78235a9272e9"
-
 fresh@0.5.2, fresh@^0.5.2:
   version "0.5.2"
   resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
 
 from2@^2.1.0:
   version "2.3.0"
@@ -6112,6 +7685,16 @@ fs-extra@^0.30.0:
     path-is-absolute "^1.0.0"
     rimraf "^2.2.8"
 
+fs-extra@^9.0.0, fs-extra@^9.0.1:
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+  dependencies:
+    at-least-node "^1.0.0"
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^2.0.0"
+
 fs-minipass@^1.2.5:
   version "1.2.7"
   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@@ -6119,6 +7702,18 @@ fs-minipass@^1.2.5:
   dependencies:
     minipass "^2.6.0"
 
+fs-minipass@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+  integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+  dependencies:
+    minipass "^3.0.0"
+
+fs-monkey@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3"
+  integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==
+
 fs-readdir-recursive@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
@@ -6127,6 +7722,7 @@ fs-readdir-recursive@^1.1.0:
 fs-readdir-recursive@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560"
+  integrity sha1-jNF0XItPiinIyuw5JHaSG6GV9WA=
 
 fs-write-stream-atomic@^1.0.8:
   version "1.0.10"
@@ -6142,7 +7738,7 @@ fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
 
-fsevents@^1.0.0, fsevents@^1.1.1:
+fsevents@^1.1.1:
   version "1.2.9"
   resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
   integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
@@ -6163,6 +7759,11 @@ fsevents@~2.1.2:
   resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
   integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
 
+fsevents@~2.3.2:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+  integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
 fstream@^1.0.0, fstream@^1.0.2:
   version "1.0.11"
   resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
@@ -6184,13 +7785,29 @@ function.prototype.name@^1.0.3, function.prototype.name@^1.1.0:
     function-bind "^1.1.1"
     is-callable "^1.1.3"
 
+function.prototype.name@^1.1.2, function.prototype.name@^1.1.3:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.4.tgz#e4ea839b9d3672ae99d0efd9f38d9191c5eaac83"
+  integrity sha512-iqy1pIotY/RmhdFZygSSlW0wko2yxkSCKqsuv4pr8QESohpYyG/Z7B/XXvPRKTJS//960rgguE5mSRUsDdaJrQ==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.2"
+    functions-have-names "^1.2.2"
+
 functional-red-black-tree@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
 
-fuse.js@^3.0.1, fuse.js@^3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.2.0.tgz#f0448e8069855bf2a3e683cdc1d320e7e2a07ef4"
+functions-have-names@^1.2.2:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21"
+  integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==
+
+fuse.js@^3.6.1:
+  version "3.6.1"
+  resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.6.1.tgz#7de85fdd6e1b3377c23ce010892656385fd9b10c"
+  integrity sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==
 
 gauge@~2.7.3:
   version "2.7.4"
@@ -6211,7 +7828,7 @@ gaze@^1.0.0:
   dependencies:
     globule "^1.0.0"
 
-gensync@^1.0.0-beta.1:
+gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2:
   version "1.0.0-beta.2"
   resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
   integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
@@ -6220,23 +7837,34 @@ get-caller-file@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
 
+get-caller-file@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
 get-document@1:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/get-document/-/get-document-1.0.0.tgz#4821bce66f1c24cb0331602be6cb6b12c4f01c4b"
   integrity sha1-SCG85m8cJMsDMWAr5strEsTwHEs=
 
-get-own-enumerable-property-symbols@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b"
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+  integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+  dependencies:
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.1"
+
+get-own-enumerable-property-symbols@^3.0.0:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
+  integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
 
 get-stdin@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
 
-get-stream@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
-
 get-stream@^4.0.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -6251,6 +7879,14 @@ get-stream@^5.0.0:
   dependencies:
     pump "^3.0.0"
 
+get-symbol-description@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
+  integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
+  dependencies:
+    call-bind "^1.0.2"
+    get-intrinsic "^1.1.1"
+
 get-value@^2.0.3, get-value@^2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -6269,35 +7905,14 @@ getpass@^0.1.1:
   dependencies:
     assert-plus "^1.0.0"
 
-git-rev-sync@1.9.1:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/git-rev-sync/-/git-rev-sync-1.9.1.tgz#a0c2e3dd392abcf6b76962e27fc75fb3223449ce"
+git-rev-sync@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/git-rev-sync/-/git-rev-sync-3.0.1.tgz#a393a97f2e4b2a0cc41e512b48065e64f4d8ca3a"
+  integrity sha512-8xZzUwzukIuU3sasgYt3RELc3Ny7o+tbtvitnnU4a4j3djyZNpJ5JmqVX+K7Xv3gE/i7ln3hGdBfZ00T5WWoow==
   dependencies:
     escape-string-regexp "1.0.5"
-    graceful-fs "4.1.11"
-    shelljs "0.7.7"
-
-glamor@^2.20.40:
-  version "2.20.40"
-  resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.40.tgz#f606660357b7cf18dface731ad1a2cfa93817f05"
-  dependencies:
-    fbjs "^0.8.12"
-    inline-style-prefixer "^3.0.6"
-    object-assign "^4.1.1"
-    prop-types "^15.5.10"
-    through "^2.3.8"
-
-glamorous@^4.11.2:
-  version "4.11.4"
-  resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.11.4.tgz#61b333e1ec552abbe48e2fea48fea89fc0026149"
-  dependencies:
-    brcast "^3.0.0"
-    fast-memoize "^2.2.7"
-    html-tag-names "^1.1.1"
-    is-function "^1.0.1"
-    is-plain-object "^2.0.4"
-    react-html-attributes "^1.3.0"
-    svg-tag-names "^1.1.0"
+    graceful-fs "4.1.15"
+    shelljs "0.8.4"
 
 glob-base@^0.3.0:
   version "0.3.0"
@@ -6327,6 +7942,25 @@ glob-parent@^5.0.0, glob-parent@~5.1.0:
   dependencies:
     is-glob "^4.0.1"
 
+glob-parent@^5.1.2, glob-parent@~5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob-promise@^3.4.0:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-3.4.0.tgz#b6b8f084504216f702dc2ce8c9bc9ac8866fdb20"
+  integrity sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==
+  dependencies:
+    "@types/glob" "*"
+
+glob-to-regexp@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
+  integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
+
 glob@^6.0.4:
   version "6.0.4"
   resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
@@ -6360,6 +7994,22 @@ glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
+global-modules@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
+  integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
+  dependencies:
+    global-prefix "^3.0.0"
+
+global-prefix@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
+  integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
+  dependencies:
+    ini "^1.3.5"
+    kind-of "^6.0.2"
+    which "^1.3.1"
+
 global@^4.3.2:
   version "4.3.2"
   resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
@@ -6367,6 +8017,14 @@ global@^4.3.2:
     min-document "^2.19.0"
     process "~0.5.1"
 
+global@^4.4.0:
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
+  integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
+  dependencies:
+    min-document "^2.19.0"
+    process "^0.11.10"
+
 globals@^11.1.0:
   version "11.12.0"
   resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
@@ -6383,6 +8041,51 @@ globals@^9.18.0:
   version "9.18.0"
   resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
 
+globalthis@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b"
+  integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==
+  dependencies:
+    define-properties "^1.1.3"
+
+globby@11.0.1:
+  version "11.0.1"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
+  integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
+  dependencies:
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.1.1"
+    ignore "^5.1.4"
+    merge2 "^1.3.0"
+    slash "^3.0.0"
+
+globby@^11.0.2:
+  version "11.0.4"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"
+  integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==
+  dependencies:
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.1.1"
+    ignore "^5.1.4"
+    merge2 "^1.3.0"
+    slash "^3.0.0"
+
+globby@^9.2.0:
+  version "9.2.0"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"
+  integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==
+  dependencies:
+    "@types/glob" "^7.1.1"
+    array-union "^1.0.2"
+    dir-glob "^2.2.2"
+    fast-glob "^2.2.6"
+    glob "^7.1.3"
+    ignore "^4.0.3"
+    pify "^4.0.1"
+    slash "^2.0.0"
+
 globule@^1.0.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
@@ -6391,7 +8094,12 @@ globule@^1.0.0:
     lodash "~4.17.4"
     minimatch "~3.0.2"
 
-graceful-fs@4.1.11, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
+graceful-fs@4.1.15:
+  version "4.1.15"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
+  integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
   version "4.1.11"
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
 
@@ -6400,11 +8108,30 @@ graceful-fs@^4.1.15:
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
   integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
 
+graceful-fs@^4.2.0:
+  version "4.2.8"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
+  integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
+
 growly@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
 
-gzip-size@^5.1.1:
+gud@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
+  integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
+
+gulp-header@^1.7.1:
+  version "1.8.12"
+  resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
+  integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
+  dependencies:
+    concat-with-sourcemaps "*"
+    lodash.template "^4.4.0"
+    through2 "^2.0.0"
+
+gzip-size@5.1.1, gzip-size@^5.1.1:
   version "5.1.1"
   resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
   integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==
@@ -6447,6 +8174,11 @@ has-ansi@^2.0.0:
   dependencies:
     ansi-regex "^2.0.0"
 
+has-bigints@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
+  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
 has-flag@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
@@ -6465,6 +8197,13 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
+has-glob@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-glob/-/has-glob-1.0.0.tgz#9aaa9eedbffb1ba3990a7b0010fb678ee0081207"
+  integrity sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=
+  dependencies:
+    is-glob "^3.0.0"
+
 has-symbols@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
@@ -6474,6 +8213,18 @@ has-symbols@^1.0.1:
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
   integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
 
+has-symbols@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+  integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
+has-tostringtag@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
+  integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
+  dependencies:
+    has-symbols "^1.0.2"
+
 has-unicode@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
@@ -6542,6 +8293,74 @@ hash.js@^1.0.0, hash.js@^1.0.3:
     inherits "^2.0.3"
     minimalistic-assert "^1.0.0"
 
+hast-to-hyperscript@^9.0.0:
+  version "9.0.1"
+  resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d"
+  integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==
+  dependencies:
+    "@types/unist" "^2.0.3"
+    comma-separated-tokens "^1.0.0"
+    property-information "^5.3.0"
+    space-separated-tokens "^1.0.0"
+    style-to-object "^0.3.0"
+    unist-util-is "^4.0.0"
+    web-namespaces "^1.0.0"
+
+hast-util-from-parse5@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a"
+  integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==
+  dependencies:
+    "@types/parse5" "^5.0.0"
+    hastscript "^6.0.0"
+    property-information "^5.0.0"
+    vfile "^4.0.0"
+    vfile-location "^3.2.0"
+    web-namespaces "^1.0.0"
+
+hast-util-parse-selector@^2.0.0:
+  version "2.2.5"
+  resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a"
+  integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==
+
+hast-util-raw@6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977"
+  integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==
+  dependencies:
+    "@types/hast" "^2.0.0"
+    hast-util-from-parse5 "^6.0.0"
+    hast-util-to-parse5 "^6.0.0"
+    html-void-elements "^1.0.0"
+    parse5 "^6.0.0"
+    unist-util-position "^3.0.0"
+    vfile "^4.0.0"
+    web-namespaces "^1.0.0"
+    xtend "^4.0.0"
+    zwitch "^1.0.0"
+
+hast-util-to-parse5@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479"
+  integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==
+  dependencies:
+    hast-to-hyperscript "^9.0.0"
+    property-information "^5.0.0"
+    web-namespaces "^1.0.0"
+    xtend "^4.0.0"
+    zwitch "^1.0.0"
+
+hastscript@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640"
+  integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==
+  dependencies:
+    "@types/hast" "^2.0.0"
+    comma-separated-tokens "^1.0.0"
+    hast-util-parse-selector "^2.0.0"
+    property-information "^5.0.0"
+    space-separated-tokens "^1.0.0"
+
 hawk@~6.0.2:
   version "6.0.2"
   resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
@@ -6551,36 +8370,52 @@ hawk@~6.0.2:
     hoek "4.x.x"
     sntp "2.x.x"
 
-helmet-csp@2.7.0:
-  version "2.7.0"
-  resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.7.0.tgz#7934094617d1feb7bb2dc43bb7d9e8830f774716"
+he@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+helmet-crossdomain@0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz#5f1fe5a836d0325f1da0a78eaa5fd8429078894e"
+  integrity sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA==
+
+helmet-csp@2.10.0:
+  version "2.10.0"
+  resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.10.0.tgz#685dde1747bc16c5e28ad9d91e229a69f0a85e84"
+  integrity sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w==
   dependencies:
+    bowser "2.9.0"
     camelize "1.0.0"
-    content-security-policy-builder "2.0.0"
+    content-security-policy-builder "2.1.0"
     dasherize "2.0.0"
-    lodash.reduce "4.6.0"
-    platform "1.3.5"
 
 helmet@^3.6.1:
-  version "3.10.0"
-  resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.10.0.tgz#96a2a9fec53c26009d3d6265c6cfdada38ddfa7f"
-  dependencies:
-    dns-prefetch-control "0.1.0"
-    dont-sniff-mimetype "1.0.0"
-    expect-ct "0.1.0"
-    frameguard "3.0.0"
-    helmet-csp "2.7.0"
-    hide-powered-by "1.0.0"
+  version "3.23.3"
+  resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.23.3.tgz#5ba30209c5f73ded4ab65746a3a11bedd4579ab7"
+  integrity sha512-U3MeYdzPJQhtvqAVBPntVgAvNSOJyagwZwyKsFdyRa8TV3pOKVFljalPOCxbw5Wwf2kncGhmP0qHjyazIdNdSA==
+  dependencies:
+    depd "2.0.0"
+    dont-sniff-mimetype "1.1.0"
+    feature-policy "0.3.0"
+    helmet-crossdomain "0.4.0"
+    helmet-csp "2.10.0"
+    hide-powered-by "1.1.0"
     hpkp "2.0.0"
-    hsts "2.1.0"
-    ienoopen "1.0.0"
-    nocache "2.0.0"
-    referrer-policy "1.1.0"
-    x-xss-protection "1.0.0"
+    hsts "2.2.0"
+    nocache "2.1.0"
+    referrer-policy "1.2.0"
+    x-xss-protection "1.3.0"
 
-hide-powered-by@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.0.0.tgz#4a85ad65881f62857fc70af7174a1184dccce32b"
+hide-powered-by@1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.1.0.tgz#be3ea9cab4bdb16f8744be873755ca663383fa7a"
+  integrity sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg==
+
+highlight.js@^10.1.1, highlight.js@~10.7.0:
+  version "10.7.3"
+  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
+  integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
 
 history@^3.0.0:
   version "3.3.0"
@@ -6617,7 +8452,7 @@ hoek@4.x.x:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
 
-hoist-non-react-statics@1.x.x, hoist-non-react-statics@^1.0.5, hoist-non-react-statics@^1.2.0:
+hoist-non-react-statics@^1.0.5, hoist-non-react-statics@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb"
 
@@ -6625,6 +8460,13 @@ hoist-non-react-statics@^2.2.1:
   version "2.3.1"
   resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0"
 
+hoist-non-react-statics@^3.3.0:
+  version "3.3.2"
+  resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+  integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+  dependencies:
+    react-is "^16.7.0"
+
 home-or-tmp@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
@@ -6646,18 +8488,14 @@ hosted-git-info@^2.1.4:
 hpkp@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz#10e142264e76215a5d30c44ec43de64dee6d1672"
+  integrity sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=
 
-hsts@2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/hsts/-/hsts-2.1.0.tgz#cbd6c918a2385fee1dd5680bfb2b3a194c0121cc"
-
-html-comment-regex@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
-
-html-element-attributes@^1.0.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-1.3.0.tgz#f06ebdfce22de979db82020265cac541fb17d4fc"
+hsts@2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/hsts/-/hsts-2.2.0.tgz#09119d42f7a8587035d027dda4522366fe75d964"
+  integrity sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==
+  dependencies:
+    depd "2.0.0"
 
 html-encoding-sniffer@^1.0.1, html-encoding-sniffer@^1.0.2:
   version "1.0.2"
@@ -6669,27 +8507,78 @@ html-entities@^1.2.0:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
 
-html-tag-names@^1.1.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.2.tgz#f65168964c5a9c82675efda882875dcb2a875c22"
+html-entities@^1.2.1:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc"
+  integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==
+
+html-escaper@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+  integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+html-minifier-terser@^5.0.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
+  integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==
+  dependencies:
+    camel-case "^4.1.1"
+    clean-css "^4.2.3"
+    commander "^4.1.1"
+    he "^1.2.0"
+    param-case "^3.0.3"
+    relateurl "^0.2.7"
+    terser "^4.6.3"
+
+html-void-elements@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483"
+  integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==
+
+html-webpack-plugin@^4.0.0:
+  version "4.5.2"
+  resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12"
+  integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==
+  dependencies:
+    "@types/html-minifier-terser" "^5.0.0"
+    "@types/tapable" "^1.0.5"
+    "@types/webpack" "^4.41.8"
+    html-minifier-terser "^5.0.1"
+    loader-utils "^1.2.3"
+    lodash "^4.17.20"
+    pretty-error "^2.1.1"
+    tapable "^1.1.3"
+    util.promisify "1.0.0"
 
-htmlparser2@^3.9.0, htmlparser2@^3.9.1:
-  version "3.9.2"
-  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
+htmlparser2@^3.9.1:
+  version "3.10.1"
+  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
+  integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
   dependencies:
-    domelementtype "^1.3.0"
+    domelementtype "^1.3.1"
     domhandler "^2.3.0"
     domutils "^1.5.1"
     entities "^1.1.1"
     inherits "^2.0.1"
-    readable-stream "^2.0.2"
+    readable-stream "^3.1.1"
+
+htmlparser2@^6.0.0, htmlparser2@^6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
+  integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
+  dependencies:
+    domelementtype "^2.0.1"
+    domhandler "^4.0.0"
+    domutils "^2.5.2"
+    entities "^2.0.0"
 
 http-assert@^1.1.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.3.0.tgz#a31a5cf88c873ecbb5796907d4d6f132e8c01e4a"
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
+  integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==
   dependencies:
     deep-equal "~1.0.1"
-    http-errors "~1.6.1"
+    http-errors "~1.8.0"
 
 http-basic@^2.5.1:
   version "2.5.1"
@@ -6699,15 +8588,6 @@ http-basic@^2.5.1:
     concat-stream "^1.4.6"
     http-response-object "^1.0.0"
 
-http-errors@1.6.2, http-errors@^1.2.8, http-errors@^1.3.1, http-errors@~1.6.1, http-errors@~1.6.2:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
-  dependencies:
-    depd "1.1.1"
-    inherits "2.0.3"
-    setprototypeof "1.0.3"
-    statuses ">= 1.3.1 < 2"
-
 http-errors@1.7.2:
   version "1.7.2"
   resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
@@ -6719,7 +8599,7 @@ http-errors@1.7.2:
     statuses ">= 1.5.0 < 2"
     toidentifier "1.0.0"
 
-http-errors@~1.7.2:
+http-errors@1.7.3, http-errors@~1.7.2:
   version "1.7.3"
   resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
   integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
@@ -6730,6 +8610,17 @@ http-errors@~1.7.2:
     statuses ">= 1.5.0 < 2"
     toidentifier "1.0.0"
 
+http-errors@^1.2.8, http-errors@^1.3.1, http-errors@~1.8.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
+  integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.4"
+    setprototypeof "1.2.0"
+    statuses ">= 1.5.0 < 2"
+    toidentifier "1.0.0"
+
 "http-parser-js@>=0.4.0 <0.4.11":
   version "0.4.10"
   resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
@@ -6768,10 +8659,6 @@ husky@0.14.3:
     normalize-path "^1.0.0"
     strip-indent "^2.0.0"
 
-hyphenate-style-name@^1.0.1, hyphenate-style-name@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b"
-
 iconv-lite@0.4.19, iconv-lite@~0.4.13:
   version "0.4.19"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
@@ -6787,15 +8674,12 @@ iconv-lite@^0.2.11:
   version "0.2.11"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8"
 
-icss-replace-symbols@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
-
-icss-utils@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
+icss-utils@^4.0.0, icss-utils@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
+  integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
   dependencies:
-    postcss "^6.0.1"
+    postcss "^7.0.14"
 
 icss-utils@^5.0.0:
   version "5.0.0"
@@ -6806,10 +8690,6 @@ ieee754@^1.1.4:
   version "1.1.8"
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
 
-ienoopen@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/ienoopen/-/ienoopen-1.0.0.tgz#346a428f474aac8f50cf3784ea2d0f16f62bda6b"
-
 iferr@^0.1.5:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
@@ -6822,11 +8702,16 @@ ignore-walk@^3.0.1:
   dependencies:
     minimatch "^3.0.4"
 
-ignore@^4.0.6:
+ignore@^4.0.3, ignore@^4.0.6:
   version "4.0.6"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
   integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
 
+ignore@^5.1.4:
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
+  integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+
 image-extensions@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/image-extensions/-/image-extensions-1.1.0.tgz#b8e6bf6039df0056e333502a00b6637a3105d894"
@@ -6837,9 +8722,20 @@ image-to-data-uri@^1.0.0:
   resolved "https://registry.yarnpkg.com/image-to-data-uri/-/image-to-data-uri-1.1.0.tgz#23f9d7f17b6562ca6a8145e9779c9a166b829f6e"
   integrity sha1-I/nX8XtlYspqgUXpd5yaFmuCn24=
 
+immer@8.0.1:
+  version "8.0.1"
+  resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656"
+  integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==
+
 immutable@^3.8.1:
   version "3.8.2"
   resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3"
+  integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=
+
+immutable@~3.7.4:
+  version "3.7.6"
+  resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b"
+  integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks=
 
 import-fresh@^3.0.0:
   version "3.2.1"
@@ -6849,6 +8745,14 @@ import-fresh@^3.0.0:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
 
+import-fresh@^3.1.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
 import-fresh@^3.2.1:
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
@@ -6896,9 +8800,10 @@ indent-string@^2.1.0:
   dependencies:
     repeating "^2.0.0"
 
-indent-string@^3.0.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+indent-string@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+  integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
 
 indexes-of@^1.0.1:
   version "1.0.1"
@@ -6908,7 +8813,7 @@ indexof@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
 
-infer-owner@^1.0.3:
+infer-owner@^1.0.3, infer-owner@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
   integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
@@ -6924,7 +8829,7 @@ inflight@^1.0.4:
     once "^1.3.0"
     wrappy "1"
 
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@2.0.3, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
 
@@ -6932,28 +8837,24 @@ inherits@2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
 
-inherits@2.0.4:
+inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@~2.0.3:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
+ini@^1.3.5:
+  version "1.3.8"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
 ini@~1.3.0:
   version "1.3.5"
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
 
-inline-style-prefixer@^2.0.5:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7"
-  dependencies:
-    bowser "^1.0.0"
-    hyphenate-style-name "^1.0.1"
-
-inline-style-prefixer@^3.0.6:
-  version "3.0.8"
-  resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz#8551b8e5b4d573244e66a34b04f7d32076a2b534"
-  dependencies:
-    bowser "^1.7.3"
-    css-in-js-utils "^2.0.0"
+inline-style-parser@0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1"
+  integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==
 
 inquirer@^7.0.0:
   version "7.1.0"
@@ -6974,10 +8875,6 @@ inquirer@^7.0.0:
     strip-ansi "^6.0.0"
     through "^2.3.6"
 
-insert-css@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4"
-
 internal-slot@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3"
@@ -6987,6 +8884,15 @@ internal-slot@^1.0.2:
     has "^1.0.3"
     side-channel "^1.0.2"
 
+internal-slot@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
+  integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
+  dependencies:
+    get-intrinsic "^1.1.0"
+    has "^1.0.3"
+    side-channel "^1.0.4"
+
 interpret@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
@@ -7026,7 +8932,7 @@ invariant@^2.0.0, invariant@^2.1.1, invariant@^2.2.1, invariant@^2.2.2:
   dependencies:
     loose-envify "^1.0.0"
 
-invariant@^2.2.4:
+invariant@^2.2.3, invariant@^2.2.4:
   version "2.2.4"
   resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
   integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -7042,19 +8948,16 @@ invert-kv@^2.0.0:
   resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
   integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
 
-ipaddr.js@1.5.2:
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0"
+ip@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+  integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
 
 ipaddr.js@1.9.1:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
   integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
 
-is-absolute-url@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
-
 is-accessor-descriptor@^0.1.6:
   version "0.1.6"
   resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
@@ -7069,10 +8972,38 @@ is-accessor-descriptor@^1.0.0:
   dependencies:
     kind-of "^6.0.0"
 
+is-alphabetical@1.0.4, is-alphabetical@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d"
+  integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==
+
+is-alphanumerical@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf"
+  integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==
+  dependencies:
+    is-alphabetical "^1.0.0"
+    is-decimal "^1.0.0"
+
+is-arguments@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
+  integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
+  dependencies:
+    call-bind "^1.0.2"
+    has-tostringtag "^1.0.0"
+
 is-arrayish@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
 
+is-bigint@^1.0.1:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
+  integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
+  dependencies:
+    has-bigints "^1.0.1"
+
 is-binary-path@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
@@ -7090,11 +9021,19 @@ is-boolean-object@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93"
 
+is-boolean-object@^1.1.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
+  integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
+  dependencies:
+    call-bind "^1.0.2"
+    has-tostringtag "^1.0.0"
+
 is-buffer@^1.1.5:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
 
-is-buffer@^2.0.2:
+is-buffer@^2.0.0, is-buffer@^2.0.2:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
   integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
@@ -7114,6 +9053,11 @@ is-callable@^1.1.4, is-callable@^1.1.5:
   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
   integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==
 
+is-callable@^1.2.4:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
+  integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
+
 is-ci@^1.0.10:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5"
@@ -7127,6 +9071,13 @@ is-core-module@^2.0.0:
   dependencies:
     has "^1.0.3"
 
+is-core-module@^2.2.0:
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19"
+  integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==
+  dependencies:
+    has "^1.0.3"
+
 is-data-descriptor@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -7152,6 +9103,11 @@ is-date-object@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
 
+is-decimal@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5"
+  integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==
+
 is-descriptor@^0.1.0:
   version "0.1.6"
   resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
@@ -7170,23 +9126,15 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
     is-data-descriptor "^1.0.0"
     kind-of "^6.0.2"
 
-is-directory@^0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
-
-is-dom@^1.0.9:
-  version "1.0.9"
-  resolved "https://registry.yarnpkg.com/is-dom/-/is-dom-1.0.9.tgz#483832d52972073de12b9fe3f60320870da8370d"
+is-docker@^2.0.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+  integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
 
 is-dotfile@^1.0.0:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
 
-is-empty@^1.0.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b"
-  integrity sha1-3pu1snhzigWgsJpX4ftNSjQan2s=
-
 is-equal-shallow@^0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
@@ -7234,9 +9182,10 @@ is-fullwidth-code-point@^3.0.0:
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
   integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
 
-is-function@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
+is-function@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
+  integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
 
 is-generator-fn@^1.0.0:
   version "1.0.0"
@@ -7248,7 +9197,7 @@ is-glob@^2.0.0, is-glob@^2.0.1:
   dependencies:
     is-extglob "^1.0.0"
 
-is-glob@^3.1.0:
+is-glob@^3.0.0, is-glob@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
   integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
@@ -7268,6 +9217,16 @@ is-glob@^4.0.1, is-glob@~4.0.1:
   dependencies:
     is-extglob "^2.1.1"
 
+is-hexadecimal@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
+  integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
+
+is-hotkey@0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.1.4.tgz#c34d2c85d6ec8d09a871dcf71931c8067a824c7d"
+  integrity sha512-Py+aW4r5mBBY18TGzGz286/gKS+fCQ0Hee3qkaiSmEPiD0PqFpe0wuA3l7rTOUKyeXl8Mxf3XzJxIoTlSv+kxA==
+
 is-image@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-image/-/is-image-1.0.1.tgz#6fd51a752a1a111506d060d952118b0b989b426e"
@@ -7275,10 +9234,32 @@ is-image@^1.0.1:
   dependencies:
     image-extensions "^1.0.1"
 
+is-in-browser@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
+  integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=
+
+is-map@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
+  integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
+
+is-negative-zero@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
+  integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
+
 is-number-object@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799"
 
+is-number-object@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0"
+  integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==
+  dependencies:
+    has-tostringtag "^1.0.0"
+
 is-number@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -7296,19 +9277,14 @@ is-number@^7.0.0:
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
   integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
 
-is-obj@^1.0.0, is-obj@^1.0.1:
+is-obj@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
 
-is-observable@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2"
-  dependencies:
-    symbol-observable "^0.2.2"
-
-is-plain-obj@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+is-plain-obj@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
+  integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
 
 is-plain-object@^2.0.3, is-plain-object@^2.0.4:
   version "2.0.4"
@@ -7316,6 +9292,11 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
   dependencies:
     isobject "^3.0.1"
 
+is-plain-object@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
+  integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
+
 is-posix-bracket@^0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
@@ -7341,10 +9322,28 @@ is-regex@^1.0.5:
   dependencies:
     has "^1.0.3"
 
+is-regex@^1.1.0, is-regex@^1.1.2, is-regex@^1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
+  integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
+  dependencies:
+    call-bind "^1.0.2"
+    has-tostringtag "^1.0.0"
+
 is-regexp@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
 
+is-root@2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c"
+  integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==
+
+is-set@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
+  integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
+
 is-stream@^1.0.1, is-stream@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -7363,16 +9362,17 @@ is-string@^1.0.5:
   resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
   integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
 
+is-string@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
+  integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
+  dependencies:
+    has-tostringtag "^1.0.0"
+
 is-subset@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6"
 
-is-svg@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9"
-  dependencies:
-    html-comment-regex "^1.1.0"
-
 is-symbol@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
@@ -7384,6 +9384,13 @@ is-symbol@^1.0.2:
   dependencies:
     has-symbols "^1.0.1"
 
+is-symbol@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+  dependencies:
+    has-symbols "^1.0.2"
+
 is-typedarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@@ -7397,6 +9404,16 @@ is-utf8@^0.2.0:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
 
+is-whitespace-character@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7"
+  integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==
+
+is-window@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-window/-/is-window-1.0.2.tgz#2c896ca53db97de45d3c33133a65d8c9f563480d"
+  integrity sha1-LIlspT25feRdPDMTOmXYyfVjSA0=
+
 is-windows@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
@@ -7406,19 +9423,37 @@ is-windows@^1.0.2:
   resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
   integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
 
+is-word-character@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230"
+  integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==
+
 is-wsl@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
   integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
 
+is-wsl@^2.1.1:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+  integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+  dependencies:
+    is-docker "^2.0.0"
+
 isarray@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+  integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
 
 isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
 
+isarray@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+  integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
 isexe@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -7437,6 +9472,16 @@ isobject@^3.0.0, isobject@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
 
+isobject@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0"
+  integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==
+
+isomorphic-base64@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/isomorphic-base64/-/isomorphic-base64-1.0.2.tgz#f426aae82569ba8a4ec5ca73ad21a44ab1ee7803"
+  integrity sha1-9Caq6CVpuopOxcpzrSGkSrHueAM=
+
 isomorphic-fetch@^2.1.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
@@ -7470,6 +9515,11 @@ istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1:
   resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0"
   integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==
 
+istanbul-lib-coverage@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
+  integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==
+
 istanbul-lib-hook@^1.2.2:
   version "1.2.2"
   resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86"
@@ -7500,6 +9550,15 @@ istanbul-lib-report@^1.1.5:
     path-parse "^1.0.5"
     supports-color "^3.1.2"
 
+istanbul-lib-report@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+  integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
+  dependencies:
+    istanbul-lib-coverage "^3.0.0"
+    make-dir "^3.0.0"
+    supports-color "^7.1.0"
+
 istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6:
   version "1.2.6"
   resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f"
@@ -7518,6 +9577,27 @@ istanbul-reports@^1.5.1:
   dependencies:
     handlebars "^4.0.3"
 
+istanbul-reports@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
+  integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==
+  dependencies:
+    html-escaper "^2.0.0"
+    istanbul-lib-report "^3.0.0"
+
+iterate-iterator@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6"
+  integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==
+
+iterate-value@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57"
+  integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==
+  dependencies:
+    es-get-iterator "^1.0.2"
+    iterate-iterator "^1.0.1"
+
 jake@^10.6.1:
   version "10.8.2"
   resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"
@@ -7639,10 +9719,6 @@ jest-environment-node@^23.4.0:
     jest-mock "^23.2.0"
     jest-util "^23.4.0"
 
-jest-get-type@^21.2.0:
-  version "21.2.0"
-  resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23"
-
 jest-get-type@^22.1.0:
   version "22.1.0"
   resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.1.0.tgz#4e90af298ed6181edc85d2da500dbd2753e0d5a9"
@@ -7814,15 +9890,6 @@ jest-util@^23.4.0:
     slash "^1.0.0"
     source-map "^0.6.0"
 
-jest-validate@^21.1.0:
-  version "21.2.1"
-  resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-21.2.1.tgz#cc0cbca653cd54937ba4f2a111796774530dd3c7"
-  dependencies:
-    chalk "^2.0.1"
-    jest-get-type "^21.2.0"
-    leven "^2.1.0"
-    pretty-format "^21.2.1"
-
 jest-validate@^23.6.0:
   version "23.6.0"
   resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474"
@@ -7849,6 +9916,15 @@ jest-worker@^23.2.0:
   dependencies:
     merge-stream "^1.0.1"
 
+jest-worker@^26.5.0:
+  version "26.6.2"
+  resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+  integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
+  dependencies:
+    "@types/node" "*"
+    merge-stream "^2.0.0"
+    supports-color "^7.0.0"
+
 jest@23:
   version "23.6.0"
   resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d"
@@ -7862,10 +9938,15 @@ jquery@>=2.2.0:
   resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5"
   integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==
 
-js-base64@^2.1.8, js-base64@^2.1.9:
+js-base64@^2.1.8:
   version "2.4.3"
   resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582"
 
+js-string-escape@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef"
+  integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=
+
 js-tokens@^3.0.0, js-tokens@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
@@ -7883,20 +9964,13 @@ js-yaml@^3.13.1:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
-js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0:
+js-yaml@^3.7.0:
   version "3.10.0"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
   dependencies:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
-js-yaml@~3.7.0:
-  version "3.7.0"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
-  dependencies:
-    argparse "^1.0.7"
-    esprima "^2.6.0"
-
 jsbi@^3.1.4:
   version "3.1.4"
   resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.1.4.tgz#9654dd02207a66a4911b4e4bb74265bc2cbc9dd0"
@@ -7974,7 +10048,7 @@ jsesc@~0.5.0:
   version "0.5.0"
   resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
 
-json-loader@0.5.7, json-loader@^0.5.4, json-loader@^0.5.7:
+json-loader@0.5.7:
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
 
@@ -8006,7 +10080,7 @@ json-stable-stringify-without-jsonify@^1.0.1:
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
 
-json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
+json-stringify-safe@~5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
 
@@ -8032,12 +10106,28 @@ json5@^2.1.2:
   dependencies:
     minimist "^1.2.5"
 
+json5@^2.1.3:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+  integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+  dependencies:
+    minimist "^1.2.5"
+
 jsonfile@^2.1.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
   optionalDependencies:
     graceful-fs "^4.1.6"
 
+jsonfile@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+  integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+  dependencies:
+    universalify "^2.0.0"
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
 jsprim@^1.2.2:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@@ -8055,18 +10145,15 @@ jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3:
     array-includes "^3.0.3"
     object.assign "^4.1.0"
 
-keycode@^2.1.2:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04"
-  integrity sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=
-
-keycode@^2.1.9:
-  version "2.1.9"
-  resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.9.tgz#964a23c54e4889405b4861a5c9f0480d45141dfa"
+junk@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1"
+  integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==
 
-keygrip@~1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91"
+keygrip@~1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.3.tgz#399d709f0aed2bab0a059e0cdd3a5023a053e1dc"
+  integrity sha512-/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g==
 
 kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
   version "3.2.2"
@@ -8101,7 +10188,12 @@ kleur@^2.0.1:
   resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300"
   integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==
 
-klona@^2.0.4:
+kleur@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+  integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+klona@^2.0.3, klona@^2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
   integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
@@ -8109,6 +10201,7 @@ klona@^2.0.4:
 koa-body@1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/koa-body/-/koa-body-1.6.0.tgz#2e44d7c9ee1b55e2a995c32145cb874e4dbe29ae"
+  integrity sha1-LkTXye4bVeKplcMhRcuHTk2+Ka4=
   dependencies:
     co-body "*"
     extend "1.3.0"
@@ -8117,10 +10210,12 @@ koa-body@1.6.0:
 koa-compose@^2.2.0, koa-compose@^2.3.0:
   version "2.5.1"
   resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-2.5.1.tgz#726cfb17694de5cb9fbf03c0adf172303f83f156"
+  integrity sha1-cmz7F2lN5cufvwPArfFyMD+D8VY=
 
 koa-compressor@1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/koa-compressor/-/koa-compressor-1.0.3.tgz#d5b69f7e3e583373040b9d670fa0f18848b0609f"
+  integrity sha1-1baffj5YM3MEC51nD6DxiEiwYJ8=
   dependencies:
     bytes "1"
     compressible "2"
@@ -8131,16 +10226,19 @@ koa-compressor@1.0.3:
 koa-conditional-get@1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/koa-conditional-get/-/koa-conditional-get-1.0.4.tgz#96616a3790624ceab31f7d63e0f30464ff46d968"
+  integrity sha512-4Z7oV/t4j7IWO4pZssi43S7qsxkjFQJQDcxGwSTXK9hx3wX/Ur+YO32L4YdeAboCnCoT0Tk3Iy3scEgLsh55Dw==
 
 koa-csrf@2.5.0:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/koa-csrf/-/koa-csrf-2.5.0.tgz#e23de7c8e1d0cfe1ee7310eb2f3f2eca43dacf8e"
+  integrity sha1-4j3nyOHQz+HucxDrLz8uykPaz44=
   dependencies:
     csrf "^3.0.0"
 
 koa-etag@2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/koa-etag/-/koa-etag-2.1.2.tgz#b20e184c5d5504fd797f7eab98a98d1e495b8014"
+  integrity sha512-OMzk5OlvqRlp9id28i6Ru5z+UWy7Tpkqg/zjHk0l+vse2c25z5lqLyzmXaaGYpKCi/5suQTqksf51oMYPPq1CA==
   dependencies:
     etag "^1.3.0"
     mz "^2.1.0"
@@ -8148,32 +10246,38 @@ koa-etag@2.1.2:
 koa-favicon@1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/koa-favicon/-/koa-favicon-1.2.1.tgz#c001a6db6da6d71272b93fb5b924c392194821d0"
+  integrity sha1-wAGm222m1xJyuT+1uSTDkhlIIdA=
   dependencies:
     mz "^2.0.0"
 
 koa-helmet@1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/koa-helmet/-/koa-helmet-1.2.0.tgz#232061dcffa8564381c10ae63af3837864d01e86"
+  integrity sha512-yh0jbNjUybfzau3+mGuu/5I6b4BNYGb/j83PjAIRKJb7gHVl2F0jdB/G0fKLKRxHWN3Oh3LXwb1kd1NHCDIiOw==
   dependencies:
     helmet "^3.6.1"
 
 koa-is-json@1, koa-is-json@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14"
+  integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=
 
 koa-isbot@0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/koa-isbot/-/koa-isbot-0.1.1.tgz#980e2546c697e3b9278c5fd32fe37e1374fe8253"
+  integrity sha1-mA4lRsaX47knjF/TL+N+E3T+glM=
 
 koa-locale@1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/koa-locale/-/koa-locale-1.3.0.tgz#95289ae6fa4098804a1ee8aadd46b0af1c82cbcb"
+  integrity sha1-lSia5vpAmIBKHuiq3UawrxyCy8s=
   dependencies:
     delegates "1.0.0"
 
 koa-logger@1.3.1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/koa-logger/-/koa-logger-1.3.1.tgz#ad3f5f2193b3334328f3eb99a618f4b04bee8bd5"
+  integrity sha1-rT9fIZOzM0Mo8+uZphj0sEvui9U=
   dependencies:
     bytes "1"
     chalk "^1.1.3"
@@ -8183,6 +10287,7 @@ koa-logger@1.3.1:
 koa-mount@1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-1.3.0.tgz#de6ab775ec4b71ba6e67f2925a3d40dd5fab3ed0"
+  integrity sha1-3mq3dexLcbpuZ/KSWj1A3V+rPtA=
   dependencies:
     debug "*"
     koa-compose "^2.2.0"
@@ -8190,6 +10295,7 @@ koa-mount@1.3.0:
 koa-proxy@0.5.0:
   version "0.5.0"
   resolved "https://registry.yarnpkg.com/koa-proxy/-/koa-proxy-0.5.0.tgz#aedf8c3f6c26190298d8c97fd27172909558c340"
+  integrity sha1-rt+MP2wmGQKY2Ml/0nFykJVYw0A=
   dependencies:
     co-request "^0.2.0"
     iconv-lite "^0.2.11"
@@ -8197,6 +10303,7 @@ koa-proxy@0.5.0:
 koa-router@5.4.2:
   version "5.4.2"
   resolved "https://registry.yarnpkg.com/koa-router/-/koa-router-5.4.2.tgz#4dbdba7e715953d5686c03b7c3fdbd214631f870"
+  integrity sha1-Tb26fnFZU9VobAO3w/29IUYx+HA=
   dependencies:
     co "^4.6.0"
     debug "^2.2.0"
@@ -8214,6 +10321,7 @@ koa-session@3:
 koa-static-cache@4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/koa-static-cache/-/koa-static-cache-4.1.1.tgz#2f82885e155fd46591ccb5d22f3f6a0d17d63982"
+  integrity sha1-L4KIXhVf1GWRzLXSLz9qDRfWOYI=
   dependencies:
     compressible "~2.0.6"
     debug "*"
@@ -8224,18 +10332,21 @@ koa-static-cache@4.1.1:
 koa-webpack-dev-middleware@1.4.6:
   version "1.4.6"
   resolved "https://registry.yarnpkg.com/koa-webpack-dev-middleware/-/koa-webpack-dev-middleware-1.4.6.tgz#6ec20d3648c3c80b5edb0b721a6838f66a1fc47a"
+  integrity sha1-bsINNkjDyAte2wtyGmg49mofxHo=
   dependencies:
     webpack-dev-middleware "^1.10.0"
 
 koa-webpack-hot-middleware@1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/koa-webpack-hot-middleware/-/koa-webpack-hot-middleware-1.0.3.tgz#df6aafbf2d77153101e37e6a4ae70235b466f8c0"
+  integrity sha1-32qvvy13FTEB435qSucCNbRm+MA=
   dependencies:
     webpack-hot-middleware "2.x"
 
 koa@1.4.1:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/koa/-/koa-1.4.1.tgz#4f404be9cff3ce3d04bbdc22e5168f116a4b962b"
+  integrity sha512-iBoPZNioNbZ5b+RwMWIjSsBm7OJ2Tn7FKmBVtMbFVNvE6Q/8yHP1KRE9tMDRv+PeI96BPmbOAnUBVtHvqlVLIQ==
   dependencies:
     accepts "^1.2.2"
     co "^4.4.0"
@@ -8265,6 +10376,17 @@ lazy-cache@^1.0.3:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
 
+lazy-universal-dotenv@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz#a6c8938414bca426ab8c9463940da451a911db38"
+  integrity sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==
+  dependencies:
+    "@babel/runtime" "^7.5.0"
+    app-root-dir "^1.0.2"
+    core-js "^3.0.4"
+    dotenv "^8.0.0"
+    dotenv-expand "^5.1.0"
+
 lcid@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
@@ -8321,78 +10443,41 @@ lines-and-columns@^1.1.6:
   resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
   integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
 
-lint-staged@6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-6.0.0.tgz#7ab7d345f2fe302ff196f1de6a005594ace03210"
+lint-staged@10.5.3:
+  version "10.5.3"
+  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.3.tgz#c682838b3eadd4c864d1022da05daa0912fb1da5"
+  integrity sha512-TanwFfuqUBLufxCc3RUtFEkFraSPNR3WzWcGF39R3f2J7S9+iF9W0KTVLfSy09lYGmZS5NDCxjNvhGMSJyFCWg==
   dependencies:
-    app-root-path "^2.0.0"
-    chalk "^2.1.0"
-    commander "^2.11.0"
-    cosmiconfig "^3.1.0"
-    debug "^3.1.0"
+    chalk "^4.1.0"
+    cli-truncate "^2.1.0"
+    commander "^6.2.0"
+    cosmiconfig "^7.0.0"
+    debug "^4.2.0"
     dedent "^0.7.0"
-    execa "^0.8.0"
-    find-parent-dir "^0.3.0"
-    is-glob "^4.0.0"
-    jest-validate "^21.1.0"
-    listr "^0.13.0"
-    lodash "^4.17.4"
-    log-symbols "^2.0.0"
-    minimatch "^3.0.0"
-    npm-which "^3.0.1"
-    p-map "^1.1.1"
-    path-is-inside "^1.0.2"
-    pify "^3.0.0"
-    staged-git-files "0.0.4"
-    stringify-object "^3.2.0"
-
-listr-silent-renderer@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
-
-listr-update-renderer@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7"
-  dependencies:
-    chalk "^1.1.3"
-    cli-truncate "^0.2.1"
-    elegant-spinner "^1.0.1"
-    figures "^1.7.0"
-    indent-string "^3.0.0"
-    log-symbols "^1.0.2"
-    log-update "^1.0.2"
-    strip-ansi "^3.0.1"
-
-listr-verbose-renderer@^0.4.0:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35"
-  dependencies:
-    chalk "^1.1.3"
-    cli-cursor "^1.0.2"
-    date-fns "^1.27.2"
-    figures "^1.7.0"
+    enquirer "^2.3.6"
+    execa "^4.1.0"
+    listr2 "^3.2.2"
+    log-symbols "^4.0.0"
+    micromatch "^4.0.2"
+    normalize-path "^3.0.0"
+    please-upgrade-node "^3.2.0"
+    string-argv "0.3.1"
+    stringify-object "^3.3.0"
 
-listr@^0.13.0:
-  version "0.13.0"
-  resolved "https://registry.yarnpkg.com/listr/-/listr-0.13.0.tgz#20bb0ba30bae660ee84cc0503df4be3d5623887d"
+listr2@^3.2.2:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.3.0.tgz#fab51211e4152d88bab7d91e4f7f896b0d9e5ba1"
+  integrity sha512-G9IFI/m65icgVlifS0wMQnvn35/8VJGzEb3crpE4NnaegQYQOn/wP7yqi9TTJQ/eoxme4UaPbffBK1XqKP/DOg==
   dependencies:
-    chalk "^1.1.3"
-    cli-truncate "^0.2.1"
-    figures "^1.7.0"
-    indent-string "^2.1.0"
-    is-observable "^0.2.0"
-    is-promise "^2.1.0"
-    is-stream "^1.1.0"
-    listr-silent-renderer "^1.1.1"
-    listr-update-renderer "^0.4.0"
-    listr-verbose-renderer "^0.4.0"
-    log-symbols "^1.0.2"
-    log-update "^1.0.2"
-    ora "^0.2.3"
-    p-map "^1.1.1"
-    rxjs "^5.4.2"
-    stream-to-observable "^0.2.0"
-    strip-ansi "^3.0.1"
+    chalk "^4.1.0"
+    cli-truncate "^2.1.0"
+    figures "^3.2.0"
+    indent-string "^4.0.0"
+    log-update "^4.0.0"
+    p-map "^4.0.0"
+    rxjs "^6.6.3"
+    through "^2.3.8"
+    wrap-ansi "^7.0.0"
 
 livereload-js@^2.3.0:
   version "2.4.0"
@@ -8418,15 +10503,20 @@ load-json-file@^2.0.0:
     pify "^2.0.0"
     strip-bom "^3.0.0"
 
-loader-runner@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
-
 loader-runner@^2.4.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
   integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
 
+loader-utils@2.0.0, loader-utils@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
+  integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
+  dependencies:
+    big.js "^5.2.2"
+    emojis-list "^3.0.0"
+    json5 "^2.1.2"
+
 loader-utils@^0.2.11:
   version "0.2.17"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
@@ -8436,7 +10526,7 @@ loader-utils@^0.2.11:
     json5 "^0.5.0"
     object-assign "^4.0.1"
 
-loader-utils@^1.0.2, loader-utils@^1.0.3, loader-utils@^1.1.0:
+loader-utils@^1.0.3:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
   dependencies:
@@ -8444,7 +10534,7 @@ loader-utils@^1.0.2, loader-utils@^1.0.3, loader-utils@^1.1.0:
     emojis-list "^2.0.0"
     json5 "^0.5.0"
 
-loader-utils@^1.2.3, loader-utils@^1.4.0:
+loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
   integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
@@ -8453,15 +10543,6 @@ loader-utils@^1.2.3, loader-utils@^1.4.0:
     emojis-list "^3.0.0"
     json5 "^1.0.1"
 
-loader-utils@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
-  integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
-  dependencies:
-    big.js "^5.2.2"
-    emojis-list "^3.0.0"
-    json5 "^2.1.2"
-
 locate-path@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
@@ -8484,129 +10565,71 @@ locate-path@^5.0.0:
   dependencies:
     p-locate "^4.1.0"
 
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+  dependencies:
+    p-locate "^5.0.0"
+
 lodash-es@^4.2.0, lodash-es@^4.2.1:
   version "4.17.5"
   resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.5.tgz#9fc6e737b1c4d151d8f9cae2247305d552ce748f"
 
-lodash._getnative@^3.0.0:
-  version "3.9.1"
-  resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-
-lodash.assignin@^4.0.9:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2"
-  integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI=
-
-lodash.bind@^4.1.4:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
-  integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=
-
-lodash.camelcase@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+lodash._reinterpolate@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+  integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
 
 lodash.debounce@4.0.8, lodash.debounce@^4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
 
-lodash.defaults@^4.0.1:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
-  integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
-
-lodash.filter@^4.4.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace"
-  integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=
-
-lodash.flatten@^4.2.0:
-  version "4.4.0"
-  resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
-  integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
-
 lodash.flattendeep@^4.4.0:
   version "4.4.0"
   resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
 
-lodash.foreach@^4.3.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
-  integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
-
-lodash.isarguments@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
-
-lodash.isarray@^3.0.0:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-
 lodash.isplainobject@^4.0.6:
   version "4.0.6"
   resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
 
-lodash.keys@^3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
-  dependencies:
-    lodash._getnative "^3.0.0"
-    lodash.isarguments "^3.0.0"
-    lodash.isarray "^3.0.0"
-
-lodash.map@^4.4.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
-  integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=
-
-lodash.memoize@^4.1.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
-
-lodash.merge@^4.4.0:
-  version "4.6.1"
-  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
-  integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==
-
-lodash.pick@^4.2.1, lodash.pick@^4.4.0:
-  version "4.4.0"
-  resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
-  integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
-
-lodash.reduce@4.6.0, lodash.reduce@^4.4.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b"
-
-lodash.reject@^4.4.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415"
-  integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=
-
-lodash.some@^4.4.0, lodash.some@^4.6.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
-  integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=
-
 lodash.sortby@^4.7.0:
   version "4.7.0"
   resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
 
-lodash.uniq@^4.5.0:
+lodash.template@^4.4.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
+  integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
+  dependencies:
+    lodash._reinterpolate "^3.0.0"
+    lodash.templatesettings "^4.0.0"
+
+lodash.templatesettings@^4.0.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
+  integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
+  dependencies:
+    lodash._reinterpolate "^3.0.0"
+
+lodash.uniq@4.5.0:
   version "4.5.0"
   resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+  integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
 
 lodash@4.x:
   version "4.17.11"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
 
-lodash@^3.10.1:
-  version "3.10.1"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-
-lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.0, lodash@~4.17.4:
+lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@~4.17.4:
   version "4.17.10"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
 
+lodash@^4.1.1, lodash@^4.17.21:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
 lodash@^4.16.4, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1:
   version "4.17.5"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
@@ -8621,24 +10644,22 @@ lodash@^4.17.19, lodash@^4.17.20:
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
   integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
 
-log-symbols@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
-  dependencies:
-    chalk "^1.0.0"
-
-log-symbols@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+log-symbols@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
+  integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
   dependencies:
-    chalk "^2.0.1"
+    chalk "^4.0.0"
 
-log-update@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1"
+log-update@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
+  integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
   dependencies:
-    ansi-escapes "^1.0.0"
-    cli-cursor "^1.0.2"
+    ansi-escapes "^4.3.0"
+    cli-cursor "^3.1.0"
+    slice-ansi "^4.0.0"
+    wrap-ansi "^6.2.0"
 
 "log@>= 1.2.0":
   version "1.4.0"
@@ -8672,6 +10693,21 @@ loud-rejection@^1.0.0:
     currently-unhandled "^0.4.1"
     signal-exit "^3.0.0"
 
+lower-case@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+  integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+  dependencies:
+    tslib "^2.0.3"
+
+lowlight@^1.14.0:
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.20.0.tgz#ddb197d33462ad0d93bf19d17b6c301aa3941888"
+  integrity sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==
+  dependencies:
+    fault "^1.0.0"
+    highlight.js "~10.7.0"
+
 lru-cache@^4.0.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
@@ -8686,15 +10722,12 @@ lru-cache@^5.1.1:
   dependencies:
     yallist "^3.0.2"
 
-macaddress@^0.2.8:
-  version "0.2.8"
-  resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
-
-make-dir@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51"
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
   dependencies:
-    pify "^3.0.0"
+    yallist "^4.0.0"
 
 make-dir@^2.0.0, make-dir@^2.1.0:
   version "2.1.0"
@@ -8704,9 +10737,12 @@ make-dir@^2.0.0, make-dir@^2.1.0:
     pify "^4.0.1"
     semver "^5.6.0"
 
-make-error@^1.3.2:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.3.tgz#a97ae14ffd98b05f543e83ddc395e1b2b6e4cc6a"
+make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+  dependencies:
+    semver "^6.0.0"
 
 makeerror@1.0.x:
   version "1.0.11"
@@ -8714,7 +10750,7 @@ makeerror@1.0.x:
   dependencies:
     tmpl "1.0.x"
 
-map-age-cleaner@^0.1.1:
+map-age-cleaner@^0.1.1, map-age-cleaner@^0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
   integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
@@ -8730,6 +10766,11 @@ map-obj@^1.0.0, map-obj@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
 
+map-or-similar@^1.5.0:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08"
+  integrity sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=
+
 map-visit@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
@@ -8737,13 +10778,23 @@ map-visit@^1.0.0:
   dependencies:
     object-visit "^1.0.0"
 
-material-colors@^1.2.1:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.5.tgz#5292593e6754cb1bcc2b98030e4e0d6a3afc9ea1"
+markdown-escapes@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535"
+  integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==
 
-math-expression-evaluator@^1.2.14:
-  version "1.2.17"
-  resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
+markdown-to-jsx@^6.11.4:
+  version "6.11.4"
+  resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz#b4528b1ab668aef7fe61c1535c27e837819392c5"
+  integrity sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw==
+  dependencies:
+    prop-types "^15.6.2"
+    unquote "^1.1.0"
+
+markdown-to-jsx@^7.1.3:
+  version "7.1.3"
+  resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.1.3.tgz#f00bae66c0abe7dd2d274123f84cb6bd2a2c7c6a"
+  integrity sha512-jtQ6VyT7rMT5tPV0g2EJakEnXLiPksnvlYtwQsVVZ611JsWGN8bQ1tVSDX4s6JllfEH6wmsYxNjTUAMrPmNA8w==
 
 md5.js@^1.3.4:
   version "1.3.4"
@@ -8752,6 +10803,39 @@ md5.js@^1.3.4:
     hash-base "^3.0.0"
     inherits "^2.0.1"
 
+mdast-squeeze-paragraphs@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97"
+  integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==
+  dependencies:
+    unist-util-remove "^2.0.0"
+
+mdast-util-definitions@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2"
+  integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==
+  dependencies:
+    unist-util-visit "^2.0.0"
+
+mdast-util-to-hast@10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb"
+  integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==
+  dependencies:
+    "@types/mdast" "^3.0.0"
+    "@types/unist" "^2.0.0"
+    mdast-util-definitions "^4.0.0"
+    mdurl "^1.0.0"
+    unist-builder "^2.0.0"
+    unist-util-generated "^1.0.0"
+    unist-util-position "^3.0.0"
+    unist-util-visit "^2.0.0"
+
+mdurl@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
+  integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
+
 media-typer@0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -8760,12 +10844,6 @@ mem-stat@1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/mem-stat/-/mem-stat-1.0.5.tgz#7d66c297184da38bacbfe4f9cd2e9a7a0e195086"
 
-mem@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
-  dependencies:
-    mimic-fn "^1.0.0"
-
 mem@^4.0.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
@@ -8775,7 +10853,39 @@ mem@^4.0.0:
     mimic-fn "^2.0.0"
     p-is-promise "^2.0.0"
 
-memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1:
+mem@^8.1.1:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122"
+  integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==
+  dependencies:
+    map-age-cleaner "^0.1.3"
+    mimic-fn "^3.1.0"
+
+memfs@^3.1.2, memfs@^3.2.2:
+  version "3.2.4"
+  resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.4.tgz#1108c28d2e9137daf5a5586af856c3e18c1c64b2"
+  integrity sha512-2mDCPhuduRPOxlfgsXF9V+uqC6Jgz8zt/bNe4d4W7d5f6pCzHrWkxLNr17jKGXd4+j2kQNsAG2HARPnt74sqVQ==
+  dependencies:
+    fs-monkey "1.0.3"
+
+memoize-one@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.1.0.tgz#a2387c58c03fff27ca390c31b764a79addf3f906"
+  integrity sha512-2GApq0yI/b22J2j9rhbrAlsHb0Qcz+7yWxeLG8h+95sl1XPUgeLimQSOdur4Vw7cUhrBHwaUZxWFZueojqNRzA==
+
+memoize-one@^5.0.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e"
+  integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==
+
+memoizerific@^1.11.3:
+  version "1.11.3"
+  resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a"
+  integrity sha1-fIekZGREwy11Q4VwkF8tvRsagFo=
+  dependencies:
+    map-or-similar "^1.5.0"
+
+memory-fs@^0.4.1, memory-fs@~0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
   dependencies:
@@ -8820,6 +10930,11 @@ merge-stream@^2.0.0:
   resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
   integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
 
+merge2@^1.2.3, merge2@^1.3.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
 merge@^1.1.3:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
@@ -8827,6 +10942,12 @@ merge@^1.1.3:
 methods@^1.0.1, methods@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+
+microevent.ts@~0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0"
+  integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==
 
 micromatch@^2.1.5, micromatch@^2.3.11:
   version "2.3.11"
@@ -8865,6 +10986,22 @@ micromatch@^3.1.10, micromatch@^3.1.4:
     snapdragon "^0.8.1"
     to-regex "^3.0.2"
 
+micromatch@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
+  integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.0.5"
+
+micromatch@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.2.3"
+
 miller-rabin@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -8872,11 +11009,6 @@ miller-rabin@^4.0.0:
     bn.js "^4.0.0"
     brorand "^1.0.1"
 
-mime-db@1.40.0:
-  version "1.40.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
-  integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
-
 mime-db@1.43.0:
   version "1.43.0"
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
@@ -8887,23 +11019,28 @@ mime-db@1.44.0:
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
   integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
 
+mime-db@1.49.0, "mime-db@>= 1.43.0 < 2":
+  version "1.49.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed"
+  integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==
+
 "mime-db@>= 1.30.0 < 2", mime-db@~1.30.0:
   version "1.30.0"
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
 
-mime-types@^2.0.7, mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.8:
+mime-types@^2.0.7, mime-types@^2.1.30, mime-types@~2.1.8:
+  version "2.1.32"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5"
+  integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==
+  dependencies:
+    mime-db "1.49.0"
+
+mime-types@^2.1.12, mime-types@~2.1.17:
   version "2.1.17"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
   dependencies:
     mime-db "~1.30.0"
 
-mime-types@^2.1.11:
-  version "2.1.24"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
-  integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
-  dependencies:
-    mime-db "1.40.0"
-
 mime-types@^2.1.27, mime-types@~2.1.24:
   version "2.1.27"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
@@ -8918,29 +11055,36 @@ mime-types@~2.1.19:
   dependencies:
     mime-db "1.43.0"
 
-mime@1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
-
-mime@1.6.0, mime@^1.3.4, mime@^1.4.1, mime@^1.5.0:
+mime@1.6.0, mime@^1.5.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
 
-mimic-fn@^1.0.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+mime@^2.4.4:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
+  integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
 
 mimic-fn@^2.0.0, mimic-fn@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
   integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
 
+mimic-fn@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74"
+  integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==
+
 min-document@^2.19.0:
   version "2.19.0"
   resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
   dependencies:
     dom-walk "^0.1.0"
 
+min-indent@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
+  integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
+
 mini-css-extract-plugin@^1.2.1:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.0.tgz#bbcba978b68c39f0a9c75822cfb2874f9cf6b018"
@@ -8958,7 +11102,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
 
-"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
+"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
   dependencies:
@@ -8968,15 +11112,36 @@ minimist@0.0.8, minimist@~0.0.1:
   version "0.0.8"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
 
-minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
+minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
 
-minimist@^1.2.5:
+minimist@^1.2.5, minimist@~1.2.3:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
+minipass-collect@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+  integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass-flush@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+  integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass-pipeline@^1.2.2:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
+  integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
+  dependencies:
+    minipass "^3.0.0"
+
 minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
   version "2.9.0"
   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
@@ -8985,6 +11150,13 @@ minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
     safe-buffer "^5.1.2"
     yallist "^3.0.0"
 
+minipass@^3.0.0, minipass@^3.1.1:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
+  integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==
+  dependencies:
+    yallist "^4.0.0"
+
 minizlib@^1.2.1:
   version "1.3.3"
   resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
@@ -8992,6 +11164,14 @@ minizlib@^1.2.1:
   dependencies:
     minipass "^2.9.0"
 
+minizlib@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
+  integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+  dependencies:
+    minipass "^3.0.0"
+    yallist "^4.0.0"
+
 mississippi@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@@ -9020,20 +11200,20 @@ mixpanel@0.5.0:
   version "0.5.0"
   resolved "https://registry.yarnpkg.com/mixpanel/-/mixpanel-0.5.0.tgz#b40e8a852490a6bc3d21d2f61641d950f8175380"
 
-"mkdirp@>= 0.0.1", "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
+"mkdirp@>= 0.0.1", "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
   dependencies:
     minimist "0.0.8"
 
-mkdirp@^0.5.3:
+mkdirp@^0.5.3, mkdirp@^0.5.5:
   version "0.5.5"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
   dependencies:
     minimist "^1.2.5"
 
-mkdirp@^1.0.4:
+mkdirp@^1.0.3, mkdirp@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
@@ -9045,10 +11225,6 @@ mock-local-storage@1.0.5:
     core-js "^0.8.3"
     global "^4.3.2"
 
-moment@^2.20.1:
-  version "2.20.1"
-  resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd"
-
 move-concurrently@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@@ -9064,11 +11240,17 @@ move-concurrently@^1.0.1:
 ms@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
 
 ms@2.1.1, ms@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
 
+ms@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
 mute-stream@0.0.8:
   version "0.0.8"
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
@@ -9085,6 +11267,7 @@ mz@1:
 mz@^2.0.0, mz@^2.1.0:
   version "2.7.0"
   resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+  integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
   dependencies:
     any-promise "^1.0.0"
     object-assign "^4.0.1"
@@ -9093,6 +11276,7 @@ mz@^2.0.0, mz@^2.1.0:
 mz@~2.4.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/mz/-/mz-2.4.0.tgz#987ba9624d89395388c37cb4741e2caf4dd13b1a"
+  integrity sha1-mHupYk2JOVOIw3y0dB4sr03ROxo=
   dependencies:
     any-promise "^1.0.0"
     object-assign "^4.0.1"
@@ -9108,6 +11292,11 @@ nanoid@^3.1.16:
   resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.16.tgz#b21f0a7d031196faf75314d7c65d36352beeef64"
   integrity sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w==
 
+nanoid@^3.1.23:
+  version "3.1.25"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
+  integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
+
 nanomatch@^1.2.9:
   version "1.2.13"
   resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -9129,6 +11318,13 @@ native-or-bluebird@1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/native-or-bluebird/-/native-or-bluebird-1.2.0.tgz#39c47bfd7825d1fb9ffad32210ae25daadf101c9"
 
+native-url@^0.2.6:
+  version "0.2.6"
+  resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae"
+  integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==
+  dependencies:
+    querystring "^0.2.0"
+
 natural-compare@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -9150,10 +11346,6 @@ needle@^2.2.1:
     iconv-lite "^0.4.4"
     sax "^1.2.4"
 
-negotiator@0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
-
 negotiator@0.6.2:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -9164,14 +11356,28 @@ neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2:
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
 
+nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61"
+  integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==
+
 nice-try@^1.0.4:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
   integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
 
-nocache@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.0.0.tgz#202b48021a0c4cbde2df80de15a17443c8b43980"
+no-case@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+  integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
+  dependencies:
+    lower-case "^2.0.2"
+    tslib "^2.0.3"
+
+nocache@2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f"
+  integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==
 
 node-cache@4.2.0:
   version "4.2.0"
@@ -9207,6 +11413,11 @@ node-fetch@^1.0.1:
     encoding "^0.1.11"
     is-stream "^1.0.1"
 
+node-fetch@^2.6.1:
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.2.tgz#986996818b73785e47b1965cc34eb093a1d464d0"
+  integrity sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==
+
 node-gyp@^3.8.0:
   version "3.8.0"
   resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
@@ -9229,34 +11440,6 @@ node-int64@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
 
-node-libs-browser@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"
-  dependencies:
-    assert "^1.1.1"
-    browserify-zlib "^0.2.0"
-    buffer "^4.3.0"
-    console-browserify "^1.1.0"
-    constants-browserify "^1.0.0"
-    crypto-browserify "^3.11.0"
-    domain-browser "^1.1.1"
-    events "^1.0.0"
-    https-browserify "^1.0.0"
-    os-browserify "^0.3.0"
-    path-browserify "0.0.0"
-    process "^0.11.10"
-    punycode "^1.2.4"
-    querystring-es3 "^0.2.0"
-    readable-stream "^2.3.3"
-    stream-browserify "^2.0.1"
-    stream-http "^2.7.2"
-    string_decoder "^1.0.0"
-    timers-browserify "^2.0.4"
-    tty-browserify "0.0.0"
-    url "^0.11.0"
-    util "^0.10.3"
-    vm-browserify "0.0.4"
-
 node-libs-browser@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
@@ -9318,6 +11501,11 @@ node-pre-gyp@^0.12.0:
     semver "^5.3.0"
     tar "^4"
 
+node-releases@^1.1.61, node-releases@^1.1.75:
+  version "1.1.75"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe"
+  integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==
+
 node-releases@^1.1.65:
   version "1.1.65"
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.65.tgz#52d9579176bd60f23eba05c4438583f341944b81"
@@ -9379,6 +11567,16 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
     semver "2 || 3 || 4 || 5"
     validate-npm-package-license "^3.0.1"
 
+normalize-package-data@^2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+  integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+  dependencies:
+    hosted-git-info "^2.1.4"
+    resolve "^1.10.0"
+    semver "2 || 3 || 4 || 5"
+    validate-npm-package-license "^3.0.1"
+
 normalize-path@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
@@ -9399,15 +11597,6 @@ normalize-range@^0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
 
-normalize-url@^1.4.0:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
-  dependencies:
-    object-assign "^4.0.1"
-    prepend-http "^1.0.0"
-    query-string "^4.1.0"
-    sort-keys "^1.0.0"
-
 npm-bundled@^1.0.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
@@ -9429,12 +11618,6 @@ npm-packlist@^1.1.6:
     npm-bundled "^1.0.1"
     npm-normalize-package-bin "^1.0.1"
 
-npm-path@^2.0.2:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64"
-  dependencies:
-    which "^1.2.10"
-
 npm-run-path@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -9448,15 +11631,7 @@ npm-run-path@^4.0.0:
   dependencies:
     path-key "^3.0.0"
 
-npm-which@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
-  dependencies:
-    commander "^2.9.0"
-    npm-path "^2.0.2"
-    which "^1.2.10"
-
-"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
+"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
   dependencies:
@@ -9465,9 +11640,17 @@ npm-which@^3.0.1:
     gauge "~2.7.3"
     set-blocking "~2.0.0"
 
+nth-check@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125"
+  integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==
+  dependencies:
+    boolbase "^1.0.0"
+
 nth-check@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+  integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
   dependencies:
     boolbase "~1.0.0"
 
@@ -9492,10 +11675,6 @@ oauth-sign@~0.9.0:
   resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
   integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
 
-object-assign@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
-
 object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -9509,6 +11688,11 @@ object-copy@^0.1.0:
     define-property "^0.2.5"
     kind-of "^3.0.3"
 
+object-inspect@^1.11.0, object-inspect@^1.9.0:
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
+  integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
+
 object-inspect@^1.5.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.5.0.tgz#9d876c11e40f485c79215670281b767488f9bfe3"
@@ -9522,6 +11706,14 @@ object-is@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
 
+object-is@^1.1.2:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
+  integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
 object-keys@^1.0.11, object-keys@^1.0.8:
   version "1.0.11"
   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
@@ -9538,7 +11730,7 @@ object-visit@^1.0.0:
   dependencies:
     isobject "^3.0.0"
 
-object.assign@^4.0.4, object.assign@^4.1.0:
+object.assign@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
   dependencies:
@@ -9547,6 +11739,16 @@ object.assign@^4.0.4, object.assign@^4.1.0:
     has-symbols "^1.0.0"
     object-keys "^1.0.11"
 
+object.assign@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+  integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+  dependencies:
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    has-symbols "^1.0.1"
+    object-keys "^1.1.1"
+
 object.entries@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
@@ -9556,6 +11758,15 @@ object.entries@^1.0.4:
     function-bind "^1.1.0"
     has "^1.0.1"
 
+object.entries@^1.1.0, object.entries@^1.1.2:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd"
+  integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.2"
+
 object.entries@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b"
@@ -9566,6 +11777,16 @@ object.entries@^1.1.1:
     function-bind "^1.1.1"
     has "^1.0.3"
 
+"object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.3:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8"
+  integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.2"
+    has "^1.0.3"
+
 object.fromentries@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9"
@@ -9583,6 +11804,15 @@ object.getownpropertydescriptors@^2.0.3:
     define-properties "^1.1.2"
     es-abstract "^1.5.1"
 
+object.getownpropertydescriptors@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7"
+  integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.2"
+
 object.omit@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
@@ -9616,22 +11846,38 @@ object.values@^1.1.0, object.values@^1.1.1:
     function-bind "^1.1.1"
     has "^1.0.3"
 
+object.values@^1.1.2:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30"
+  integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.2"
+
+objectorarray@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.5.tgz#2c05248bbefabd8f43ad13b41085951aac5e68a5"
+  integrity sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==
+
 on-finished@^2.1.0, on-finished@~2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
   dependencies:
     ee-first "1.1.1"
 
+on-headers@~1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
+  integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
+
 once@^1.3.0, once@^1.3.1, once@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
   dependencies:
     wrappy "1"
 
-onetime@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
-
 onetime@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
@@ -9642,6 +11888,15 @@ onetime@^5.1.0:
 only@0.0.2:
   version "0.0.2"
   resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
+  integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
+
+open@^7.0.2, open@^7.0.3:
+  version "7.4.2"
+  resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
+  integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
+  dependencies:
+    is-docker "^2.0.0"
+    is-wsl "^2.1.1"
 
 opencollective-postinstall@^2.0.2:
   version "2.0.2"
@@ -9683,20 +11938,11 @@ optionator@^0.8.3:
     type-check "~0.3.2"
     word-wrap "~1.2.3"
 
-ora@^0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4"
-  dependencies:
-    chalk "^1.1.1"
-    cli-cursor "^1.0.2"
-    cli-spinners "^0.1.2"
-    object-assign "^4.0.1"
-
 os-browserify@^0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
 
-os-homedir@1.0.2, os-homedir@^1.0.0, os-homedir@^1.0.1:
+os-homedir@1.0.2, os-homedir@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
 
@@ -9706,14 +11952,6 @@ os-locale@^1.4.0:
   dependencies:
     lcid "^1.0.0"
 
-os-locale@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
-  dependencies:
-    execa "^0.7.0"
-    lcid "^1.0.0"
-    mem "^1.1.0"
-
 os-locale@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
@@ -9738,11 +11976,37 @@ osenv@0, osenv@^0.1.4:
     os-homedir "^1.0.0"
     os-tmpdir "^1.0.0"
 
+overlayscrollbars@^1.13.1:
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz#0b840a88737f43a946b9d87875a2f9e421d0338a"
+  integrity sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ==
+
+p-all@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/p-all/-/p-all-2.1.0.tgz#91419be56b7dee8fe4c5db875d55e0da084244a0"
+  integrity sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==
+  dependencies:
+    p-map "^2.0.0"
+
 p-defer@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
   integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
 
+p-event@^4.1.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5"
+  integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==
+  dependencies:
+    p-timeout "^3.1.0"
+
+p-filter@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c"
+  integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==
+  dependencies:
+    p-map "^2.0.0"
+
 p-finally@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -9765,6 +12029,13 @@ p-limit@^2.0.0, p-limit@^2.2.0:
   dependencies:
     p-try "^2.0.0"
 
+p-limit@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+  dependencies:
+    yocto-queue "^0.1.0"
+
 p-locate@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
@@ -9785,9 +12056,38 @@ p-locate@^4.1.0:
   dependencies:
     p-limit "^2.2.0"
 
-p-map@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+  dependencies:
+    p-limit "^3.0.2"
+
+p-map@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+  integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+
+p-map@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d"
+  integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==
+  dependencies:
+    aggregate-error "^3.0.0"
+
+p-map@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+  integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+  dependencies:
+    aggregate-error "^3.0.0"
+
+p-timeout@^3.1.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
+  integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==
+  dependencies:
+    p-finally "^1.0.0"
 
 p-try@^1.0.0:
   version "1.0.0"
@@ -9811,6 +12111,14 @@ parallel-transform@^1.1.0:
     inherits "^2.0.3"
     readable-stream "^2.1.5"
 
+param-case@^3.0.3:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
+  integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
+  dependencies:
+    dot-case "^3.0.4"
+    tslib "^2.0.3"
+
 parent-module@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -9828,6 +12136,18 @@ parse-asn1@^5.0.0:
     evp_bytestokey "^1.0.0"
     pbkdf2 "^3.0.3"
 
+parse-entities@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8"
+  integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==
+  dependencies:
+    character-entities "^1.0.0"
+    character-entities-legacy "^1.0.0"
+    character-reference-invalid "^1.0.0"
+    is-alphanumerical "^1.0.0"
+    is-decimal "^1.0.0"
+    is-hexadecimal "^1.0.0"
+
 parse-glob@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
@@ -9843,12 +12163,6 @@ parse-json@^2.2.0:
   dependencies:
     error-ex "^1.2.0"
 
-parse-json@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-3.0.0.tgz#fa6f47b18e23826ead32f263e744d0e1e847fb13"
-  dependencies:
-    error-ex "^1.3.1"
-
 parse-json@^5.0.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646"
@@ -9864,6 +12178,11 @@ parse-passwd@^1.0.0:
   resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
   integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
 
+parse-srcset@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1"
+  integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=
+
 parse5@4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
@@ -9878,15 +12197,28 @@ parse5@^3.0.1:
   dependencies:
     "@types/node" "*"
 
-parseurl@^1.3.0, parseurl@~1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
+parse5@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
+  integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
 
-parseurl@~1.3.3:
+parseurl@^1.3.0, parseurl@~1.3.3:
   version "1.3.3"
   resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
   integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
 
+parseurl@~1.3.2:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
+
+pascal-case@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
+  integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
+  dependencies:
+    no-case "^3.0.4"
+    tslib "^2.0.3"
+
 pascalcase@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
@@ -9896,10 +12228,6 @@ passthrough-counter@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa"
 
-path-browserify@0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
-
 path-browserify@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
@@ -9929,10 +12257,6 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
 
-path-is-inside@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-
 path-key@^2.0.0, path-key@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
@@ -9956,8 +12280,9 @@ path-to-regexp@0.1.7:
   resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
 
 path-to-regexp@^1.1.1:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
+  integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
   dependencies:
     isarray "0.0.1"
 
@@ -9975,6 +12300,13 @@ path-type@^2.0.0:
   dependencies:
     pify "^2.0.0"
 
+path-type@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+  integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
+  dependencies:
+    pify "^3.0.0"
+
 path-type@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
@@ -9994,11 +12326,16 @@ performance-now@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
 
-picomatch@^2.0.4, picomatch@^2.2.1:
+picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1:
   version "2.2.2"
   resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
   integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
 
+picomatch@^2.2.3:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
+  integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
+
 picturefill@3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/picturefill/-/picturefill-3.0.2.tgz#fa3d35fffbef5ab5300fe2ad9dca8f2e36cba27b"
@@ -10046,18 +12383,35 @@ pkg-dir@^3.0.0:
   dependencies:
     find-up "^3.0.0"
 
-pkg-dir@^4.2.0:
+pkg-dir@^4.1.0, pkg-dir@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
   integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
   dependencies:
     find-up "^4.0.0"
 
-platform@1.3.5:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444"
+pkg-dir@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
+  integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
+  dependencies:
+    find-up "^5.0.0"
+
+pkg-up@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"
+  integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==
+  dependencies:
+    find-up "^3.0.0"
+
+please-upgrade-node@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
+  integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
+  dependencies:
+    semver-compare "^1.0.0"
 
-pluralizers@^0.1.4:
+pluralizers@^0.1.4, pluralizers@^0.1.7:
   version "0.1.7"
   resolved "https://registry.yarnpkg.com/pluralizers/-/pluralizers-0.1.7.tgz#8d38dd0a1b660e739b10ab2eab10b684c9d50142"
 
@@ -10065,206 +12419,84 @@ pn@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
 
-podda@^1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/podda/-/podda-1.2.2.tgz#15b0edbd334ade145813343f5ecf9c10a71cf500"
-  dependencies:
-    babel-runtime "^6.11.6"
-    immutable "^3.8.1"
-
-posix-character-classes@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
-  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-
-postcss-calc@^5.2.0:
-  version "5.3.1"
-  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e"
-  dependencies:
-    postcss "^5.0.2"
-    postcss-message-helpers "^2.0.0"
-    reduce-css-calc "^1.2.6"
-
-postcss-colormin@^2.1.8:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b"
-  dependencies:
-    colormin "^1.0.5"
-    postcss "^5.0.13"
-    postcss-value-parser "^3.2.3"
-
-postcss-convert-values@^2.3.4:
-  version "2.6.1"
-  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d"
-  dependencies:
-    postcss "^5.0.11"
-    postcss-value-parser "^3.1.2"
-
-postcss-discard-comments@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d"
+pnp-webpack-plugin@1.6.4:
+  version "1.6.4"
+  resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
+  integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==
   dependencies:
-    postcss "^5.0.14"
+    ts-pnp "^1.1.6"
 
-postcss-discard-duplicates@^2.0.1:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932"
+polished@^4.0.5:
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/polished/-/polished-4.1.3.tgz#7a3abf2972364e7d97770b827eec9a9e64002cfc"
+  integrity sha512-ocPAcVBUOryJEKe0z2KLd1l9EBa1r5mSwlKpExmrLzsnIzJo4axsoU9O2BjOTkDGDT4mZ0WFE5XKTlR3nLnZOA==
   dependencies:
-    postcss "^5.0.4"
+    "@babel/runtime" "^7.14.0"
 
-postcss-discard-empty@^2.0.1:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5"
+portfinder@^1.0.17:
+  version "1.0.28"
+  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
+  integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==
   dependencies:
-    postcss "^5.0.14"
+    async "^2.6.2"
+    debug "^3.1.1"
+    mkdirp "^0.5.5"
 
-postcss-discard-overridden@^0.1.1:
+posix-character-classes@^0.1.0:
   version "0.1.1"
-  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58"
-  dependencies:
-    postcss "^5.0.16"
-
-postcss-discard-unused@^2.2.1:
-  version "2.2.3"
-  resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433"
-  dependencies:
-    postcss "^5.0.14"
-    uniqs "^2.0.0"
-
-postcss-filter-plugins@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c"
-  dependencies:
-    postcss "^5.0.4"
-    uniqid "^4.0.0"
-
-postcss-flexbugs-fixes@^3.2.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.0.tgz#e00849b536063749da50a0d410ba5d9ee65e27b8"
-  dependencies:
-    postcss "^6.0.1"
-
-postcss-load-config@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a"
-  dependencies:
-    cosmiconfig "^2.1.0"
-    object-assign "^4.1.0"
-    postcss-load-options "^1.2.0"
-    postcss-load-plugins "^2.3.0"
-
-postcss-load-options@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c"
-  dependencies:
-    cosmiconfig "^2.1.0"
-    object-assign "^4.1.0"
-
-postcss-load-plugins@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92"
-  dependencies:
-    cosmiconfig "^2.1.1"
-    object-assign "^4.1.0"
-
-postcss-loader@^2.0.9:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.0.tgz#038c2d6d59753fef4667827fd3ae03f5dc5e6a7a"
-  dependencies:
-    loader-utils "^1.1.0"
-    postcss "^6.0.0"
-    postcss-load-config "^1.2.0"
-    schema-utils "^0.4.0"
-
-postcss-loader@^4.0.4:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.0.4.tgz#b2d005b52e008a44991cf8123bee207e635eb53e"
-  integrity sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw==
-  dependencies:
-    cosmiconfig "^7.0.0"
-    klona "^2.0.4"
-    loader-utils "^2.0.0"
-    schema-utils "^3.0.0"
-    semver "^7.3.2"
-
-postcss-merge-idents@^2.1.5:
-  version "2.1.7"
-  resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270"
-  dependencies:
-    has "^1.0.1"
-    postcss "^5.0.10"
-    postcss-value-parser "^3.1.1"
-
-postcss-merge-longhand@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658"
-  dependencies:
-    postcss "^5.0.4"
-
-postcss-merge-rules@^2.0.3:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721"
-  dependencies:
-    browserslist "^1.5.2"
-    caniuse-api "^1.5.2"
-    postcss "^5.0.4"
-    postcss-selector-parser "^2.2.2"
-    vendors "^1.0.0"
-
-postcss-message-helpers@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"
-
-postcss-minify-font-values@^1.0.2:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69"
-  dependencies:
-    object-assign "^4.0.1"
-    postcss "^5.0.4"
-    postcss-value-parser "^3.0.2"
+  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
 
-postcss-minify-gradients@^1.0.1:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1"
+postcss-flexbugs-fixes@^4.2.1:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690"
+  integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==
   dependencies:
-    postcss "^5.0.12"
-    postcss-value-parser "^3.3.0"
+    postcss "^7.0.26"
 
-postcss-minify-params@^1.0.4:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3"
+postcss-loader@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.0.4.tgz#b2d005b52e008a44991cf8123bee207e635eb53e"
+  integrity sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw==
   dependencies:
-    alphanum-sort "^1.0.1"
-    postcss "^5.0.2"
-    postcss-value-parser "^3.0.2"
-    uniqs "^2.0.0"
+    cosmiconfig "^7.0.0"
+    klona "^2.0.4"
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
+    semver "^7.3.2"
 
-postcss-minify-selectors@^2.0.4:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf"
+postcss-loader@^4.2.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc"
+  integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==
   dependencies:
-    alphanum-sort "^1.0.2"
-    has "^1.0.1"
-    postcss "^5.0.14"
-    postcss-selector-parser "^2.0.0"
+    cosmiconfig "^7.0.0"
+    klona "^2.0.4"
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
+    semver "^7.3.4"
 
-postcss-modules-extract-imports@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb"
+postcss-modules-extract-imports@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
+  integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
   dependencies:
-    postcss "^6.0.1"
+    postcss "^7.0.5"
 
 postcss-modules-extract-imports@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
   integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
 
-postcss-modules-local-by-default@^1.0.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
+postcss-modules-local-by-default@^3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0"
+  integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==
   dependencies:
-    css-selector-tokenizer "^0.7.0"
-    postcss "^6.0.1"
+    icss-utils "^4.1.1"
+    postcss "^7.0.32"
+    postcss-selector-parser "^6.0.2"
+    postcss-value-parser "^4.1.0"
 
 postcss-modules-local-by-default@^4.0.0:
   version "4.0.0"
@@ -10275,12 +12507,13 @@ postcss-modules-local-by-default@^4.0.0:
     postcss-selector-parser "^6.0.2"
     postcss-value-parser "^4.1.0"
 
-postcss-modules-scope@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
+postcss-modules-scope@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
+  integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
   dependencies:
-    css-selector-tokenizer "^0.7.0"
-    postcss "^6.0.1"
+    postcss "^7.0.6"
+    postcss-selector-parser "^6.0.0"
 
 postcss-modules-scope@^3.0.0:
   version "3.0.0"
@@ -10289,12 +12522,13 @@ postcss-modules-scope@^3.0.0:
   dependencies:
     postcss-selector-parser "^6.0.4"
 
-postcss-modules-values@^1.1.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
+postcss-modules-values@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
+  integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==
   dependencies:
-    icss-replace-symbols "^1.1.0"
-    postcss "^6.0.1"
+    icss-utils "^4.0.0"
+    postcss "^7.0.6"
 
 postcss-modules-values@^4.0.0:
   version "4.0.0"
@@ -10303,56 +12537,13 @@ postcss-modules-values@^4.0.0:
   dependencies:
     icss-utils "^5.0.0"
 
-postcss-normalize-charset@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1"
-  dependencies:
-    postcss "^5.0.5"
-
-postcss-normalize-url@^3.0.7:
-  version "3.0.8"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222"
-  dependencies:
-    is-absolute-url "^2.0.0"
-    normalize-url "^1.4.0"
-    postcss "^5.0.14"
-    postcss-value-parser "^3.2.3"
-
-postcss-ordered-values@^2.1.0:
-  version "2.2.3"
-  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d"
-  dependencies:
-    postcss "^5.0.4"
-    postcss-value-parser "^3.0.1"
-
-postcss-reduce-idents@^2.2.2:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3"
-  dependencies:
-    postcss "^5.0.4"
-    postcss-value-parser "^3.0.2"
-
-postcss-reduce-initial@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea"
-  dependencies:
-    postcss "^5.0.4"
-
-postcss-reduce-transforms@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1"
-  dependencies:
-    has "^1.0.1"
-    postcss "^5.0.8"
-    postcss-value-parser "^3.0.1"
-
-postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2:
-  version "2.2.3"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
+postcss-selector-parser@^6.0.0:
+  version "6.0.6"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
+  integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
   dependencies:
-    flatten "^1.0.2"
-    indexes-of "^1.0.1"
-    uniq "^1.0.1"
+    cssesc "^3.0.0"
+    util-deprecate "^1.0.2"
 
 postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
   version "6.0.4"
@@ -10364,56 +12555,19 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
     uniq "^1.0.1"
     util-deprecate "^1.0.2"
 
-postcss-svgo@^2.1.1:
-  version "2.1.6"
-  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d"
-  dependencies:
-    is-svg "^2.0.0"
-    postcss "^5.0.14"
-    postcss-value-parser "^3.2.3"
-    svgo "^0.7.0"
-
-postcss-unique-selectors@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d"
-  dependencies:
-    alphanum-sort "^1.0.1"
-    postcss "^5.0.4"
-    uniqs "^2.0.0"
-
-postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"
-
 postcss-value-parser@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
   integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
 
-postcss-zindex@^2.0.1:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22"
-  dependencies:
-    has "^1.0.1"
-    postcss "^5.0.4"
-    uniqs "^2.0.0"
-
-postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16:
-  version "5.2.18"
-  resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
-  dependencies:
-    chalk "^1.1.3"
-    js-base64 "^2.1.9"
-    source-map "^0.5.6"
-    supports-color "^3.2.3"
-
-postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.16:
-  version "6.0.17"
-  resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.17.tgz#e259a051ca513f81e9afd0c21f7f82eda50c65c5"
+postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6:
+  version "7.0.36"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb"
+  integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==
   dependencies:
-    chalk "^2.3.0"
+    chalk "^2.4.2"
     source-map "^0.6.1"
-    supports-color "^5.1.0"
+    supports-color "^6.1.0"
 
 postcss@^7.0.32:
   version "7.0.35"
@@ -10424,6 +12578,15 @@ postcss@^7.0.32:
     source-map "^0.6.1"
     supports-color "^6.1.0"
 
+postcss@^8.0.2:
+  version "8.3.6"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea"
+  integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==
+  dependencies:
+    colorette "^1.2.2"
+    nanoid "^3.1.23"
+    source-map-js "^0.6.2"
+
 postcss@^8.1.4, postcss@^8.1.6:
   version "8.1.6"
   resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.6.tgz#b022ba2cfb8701da234d073ed3128c5a384c35ff"
@@ -10438,24 +12601,22 @@ prelude-ls@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
 
-prepend-http@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
-
 preserve@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
 
-prettier@1.8.2:
-  version "1.8.2"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.8.2.tgz#bff83e7fd573933c607875e5ba3abbdffb96aeb8"
+prettier@2.2.1, prettier@~2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
+  integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
 
-pretty-format@^21.2.1:
-  version "21.2.1"
-  resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36"
+pretty-error@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6"
+  integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==
   dependencies:
-    ansi-regex "^3.0.0"
-    ansi-styles "^3.2.0"
+    lodash "^4.17.20"
+    renderkid "^2.0.4"
 
 pretty-format@^23.6.0:
   version "23.6.0"
@@ -10465,13 +12626,24 @@ pretty-format@^23.6.0:
     ansi-regex "^3.0.0"
     ansi-styles "^3.2.0"
 
-private@^0.1.6, private@^0.1.7, private@~0.1.5:
+pretty-hrtime@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
+  integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
+
+prismjs@^1.21.0, prismjs@~1.24.0:
+  version "1.24.1"
+  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036"
+  integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==
+
+private@^0.1.7:
   version "0.1.8"
   resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
 
 process-nextick-args@~1.0.6:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
+  integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
 
 process-nextick-args@~2.0.0:
   version "2.0.1"
@@ -10495,6 +12667,18 @@ promise-inflight@^1.0.1:
   resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
   integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
 
+promise.allsettled@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.4.tgz#65e71f2a604082ed69c548b68603294090ee6803"
+  integrity sha512-o73CbvQh/OnPFShxHcHxk0baXR2a1m4ozb85ha0H14VEoi/EJJLa9mnPfEWJx9RjA9MLfhdjZ8I6HhWtBa64Ag==
+  dependencies:
+    array.prototype.map "^1.0.3"
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.2"
+    get-intrinsic "^1.0.2"
+    iterate-value "^1.0.2"
+
 promise.prototype.finally@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz#66f161b1643636e50e7cf201dc1b84a857f3864e"
@@ -10509,6 +12693,14 @@ promise@^7.1.1:
   dependencies:
     asap "~2.0.3"
 
+prompts@2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7"
+  integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==
+  dependencies:
+    kleur "^3.0.3"
+    sisteransi "^1.0.5"
+
 prompts@^0.1.9:
   version "0.1.14"
   resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2"
@@ -10517,13 +12709,30 @@ prompts@^0.1.9:
     kleur "^2.0.1"
     sisteransi "^0.1.1"
 
+prompts@^2.4.0:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61"
+  integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==
+  dependencies:
+    kleur "^3.0.3"
+    sisteransi "^1.0.5"
+
+prop-types-exact@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869"
+  integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==
+  dependencies:
+    has "^1.0.3"
+    object.assign "^4.1.0"
+    reflect.ownkeys "^0.2.0"
+
 prop-types-extra@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.0.1.tgz#a57bd4810e82d27a3ff4317ecc1b4ad005f79a82"
   dependencies:
     warning "^3.0.0"
 
-prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0:
+prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0:
   version "15.6.0"
   resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856"
   dependencies:
@@ -10531,7 +12740,7 @@ prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6,
     loose-envify "^1.3.1"
     object-assign "^4.1.1"
 
-prop-types@^15.7.2:
+prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
   version "15.7.2"
   resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
   integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -10540,12 +12749,12 @@ prop-types@^15.7.2:
     object-assign "^4.1.1"
     react-is "^16.8.1"
 
-proxy-addr@~2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec"
+property-information@^5.0.0, property-information@^5.3.0:
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69"
+  integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==
   dependencies:
-    forwarded "~0.1.2"
-    ipaddr.js "1.5.2"
+    xtend "^4.0.0"
 
 proxy-addr@~2.0.5:
   version "2.0.6"
@@ -10620,30 +12829,33 @@ punycode@^2.1.1:
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
-q@^1.1.2:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
-
 qrious@^4.0.2:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/qrious/-/qrious-4.0.2.tgz#09c4d4079d2b961617f62c69cff3b9bb66a39693"
   integrity sha512-xWPJIrK1zu5Ypn898fBp8RHkT/9ibquV2Kv24S/JY9VYEhMBMKur1gHVsOiNUh7PHP9uCgejjpZUHUIXXKoU/g==
 
-qs@6.5.1, qs@^6.1.0, qs@^6.4.0, qs@^6.5.1, qs@~6.5.1:
-  version "6.5.1"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-
 qs@6.7.0:
   version "6.7.0"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
   integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
 
+qs@^6.1.0, qs@^6.4.0, qs@~6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+
+qs@^6.10.0, qs@^6.5.2:
+  version "6.10.1"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a"
+  integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==
+  dependencies:
+    side-channel "^1.0.4"
+
 qs@~6.5.2:
   version "6.5.2"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
   integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
 
-query-string@^4.1.0, query-string@^4.2.2:
+query-string@^4.2.2:
   version "4.3.4"
   resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
   dependencies:
@@ -10658,14 +12870,10 @@ querystring@0.2.0, querystring@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
 
-radium@^0.19.0:
-  version "0.19.6"
-  resolved "https://registry.yarnpkg.com/radium/-/radium-0.19.6.tgz#b86721d08dbd303b061a4ae2ebb06cc6e335ae72"
-  dependencies:
-    array-find "^1.0.0"
-    exenv "^1.2.1"
-    inline-style-prefixer "^2.0.5"
-    prop-types "^15.5.8"
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
 
 raf@^3.3.0:
   version "3.4.1"
@@ -10683,6 +12891,11 @@ railroad-diagrams@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e"
 
+ramda@^0.21.0:
+  version "0.21.0"
+  resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35"
+  integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=
+
 randexp@^0.4.2:
   version "0.4.6"
   resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3"
@@ -10721,24 +12934,15 @@ randomfill@^1.0.3:
     randombytes "^2.0.5"
     safe-buffer "^5.1.0"
 
-range-parser@^1.0.3, range-parser@~1.2.0:
+range-parser@^1.0.3:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
 
-range-parser@~1.2.1:
+range-parser@^1.2.1, range-parser@~1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
   integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
 
-raw-body@2.3.2, raw-body@^2.2.0:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
-  dependencies:
-    bytes "3.0.0"
-    http-errors "1.6.2"
-    iconv-lite "0.4.19"
-    unpipe "1.0.0"
-
 raw-body@2.4.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
@@ -10749,6 +12953,16 @@ raw-body@2.4.0:
     iconv-lite "0.4.24"
     unpipe "1.0.0"
 
+raw-body@^2.2.0, raw-body@^2.3.3:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
+  integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
+  dependencies:
+    bytes "3.1.0"
+    http-errors "1.7.3"
+    iconv-lite "0.4.24"
+    unpipe "1.0.0"
+
 raw-body@~1.1.0:
   version "1.1.7"
   resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425"
@@ -10757,7 +12971,7 @@ raw-body@~1.1.0:
     bytes "1"
     string_decoder "0.10"
 
-raw-loader@4.0.2:
+raw-loader@4.0.2, raw-loader@^4.0.2:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6"
   integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==
@@ -10775,13 +12989,6 @@ rc@^1.2.7:
     minimist "^1.2.0"
     strip-json-comments "~2.0.1"
 
-react-addons-perf@15.4.2:
-  version "15.4.2"
-  resolved "https://registry.yarnpkg.com/react-addons-perf/-/react-addons-perf-15.4.2.tgz#110bdcf5c459c4f77cb85ed634bcd3397536383b"
-  dependencies:
-    fbjs "^0.8.4"
-    object-assign "^4.1.0"
-
 react-addons-pure-render-mixin@15.4.2:
   version "15.4.2"
   resolved "https://registry.yarnpkg.com/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.4.2.tgz#a8433c71c45e2368503721921dc47bdaf1fbabcd"
@@ -10797,15 +13004,10 @@ react-autocomplete@1.8.1:
     dom-scroll-into-view "1.0.1"
     prop-types "^15.5.10"
 
-react-color@^2.11.4:
-  version "2.13.8"
-  resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.13.8.tgz#bcc58f79a722b9bfc37c402e68cd18f26970aee4"
-  dependencies:
-    lodash "^4.0.1"
-    material-colors "^1.2.1"
-    prop-types "^15.5.10"
-    reactcss "^1.2.0"
-    tinycolor2 "^1.4.1"
+react-colorful@^5.1.2:
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.4.0.tgz#e05e602469f9768234f29c1bad9ec1f4e86145a2"
+  integrity sha512-k7QJXuQGWevr/V8hoMJ1wBW9i2CVhBdDXpBf3jy/AAtzVyYtsFqEAT+y+NOGiSG1cmnGTreqm5EFLXlVaKbPLQ==
 
 react-copy-to-clipboard@4.3.1:
   version "4.3.1"
@@ -10815,35 +13017,74 @@ react-copy-to-clipboard@4.3.1:
     create-react-class "^15.5.2"
     prop-types "^15.5.8"
 
-react-datetime@^2.11.1:
-  version "2.12.0"
-  resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.12.0.tgz#9226a11730b7be1273c12f018a4d5613496e831c"
-  dependencies:
-    create-react-class "^15.5.2"
-    object-assign "^3.0.0"
-    prop-types "^15.5.7"
-    react-onclickoutside "^6.5.0"
-
-react-docgen@^2.20.0:
-  version "2.20.0"
-  resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-2.20.0.tgz#41a6da483a34a4aaed041a9909f5e61864d681cb"
-  dependencies:
-    async "^2.1.4"
-    babel-runtime "^6.9.2"
-    babylon "~5.8.3"
-    commander "^2.9.0"
-    doctrine "^2.0.0"
+react-dev-utils@^11.0.3:
+  version "11.0.4"
+  resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a"
+  integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==
+  dependencies:
+    "@babel/code-frame" "7.10.4"
+    address "1.1.2"
+    browserslist "4.14.2"
+    chalk "2.4.2"
+    cross-spawn "7.0.3"
+    detect-port-alt "1.1.6"
+    escape-string-regexp "2.0.0"
+    filesize "6.1.0"
+    find-up "4.1.0"
+    fork-ts-checker-webpack-plugin "4.1.6"
+    global-modules "2.0.0"
+    globby "11.0.1"
+    gzip-size "5.1.1"
+    immer "8.0.1"
+    is-root "2.1.0"
+    loader-utils "2.0.0"
+    open "^7.0.2"
+    pkg-up "3.1.0"
+    prompts "2.4.0"
+    react-error-overlay "^6.0.9"
+    recursive-readdir "2.2.2"
+    shell-quote "1.7.2"
+    strip-ansi "6.0.0"
+    text-table "0.2.0"
+
+react-docgen-typescript@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.1.0.tgz#20db64a7fd62e63a8a9469fb4abd90600878cbb2"
+  integrity sha512-7kpzLsYzVxff//HUVz1sPWLCdoSNvHD3M8b/iQLdF8fgf7zp26eVysRrAUSxiAT4yQv2zl09zHjJEYSYNxQ8Jw==
+
+react-docgen@^5.0.0:
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-5.4.0.tgz#2cd7236720ec2769252ef0421f23250b39a153a1"
+  integrity sha512-JBjVQ9cahmNlfjMGxWUxJg919xBBKAoy3hgDgKERbR+BcF4ANpDuzWAScC7j27hZfd8sJNmMPOLWo9+vB/XJEQ==
+  dependencies:
+    "@babel/core" "^7.7.5"
+    "@babel/generator" "^7.12.11"
+    "@babel/runtime" "^7.7.6"
+    ast-types "^0.14.2"
+    commander "^2.19.0"
+    doctrine "^3.0.0"
+    estree-to-babel "^3.1.0"
+    neo-async "^2.6.1"
     node-dir "^0.1.10"
-    recast "^0.12.6"
+    strip-indent "^3.0.0"
 
-react-dom@15.6.2:
-  version "15.6.2"
-  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730"
+react-dom@16.8:
+  version "16.8.6"
+  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
+  integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==
   dependencies:
-    fbjs "^0.8.9"
     loose-envify "^1.1.0"
-    object-assign "^4.1.0"
-    prop-types "^15.5.10"
+    object-assign "^4.1.1"
+    prop-types "^15.6.2"
+    scheduler "^0.13.6"
+
+react-draggable@^4.4.3:
+  version "4.4.4"
+  resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.4.tgz#5b26d9996be63d32d285a426f41055de87e59b2f"
+  integrity sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA==
+  dependencies:
+    clsx "^1.1.1"
+    prop-types "^15.6.0"
 
 react-dropzone@3.13.4:
   version "3.13.4"
@@ -10852,14 +13093,15 @@ react-dropzone@3.13.4:
     attr-accept "^1.0.3"
     prop-types "^15.5.7"
 
-react-fuzzy@^0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/react-fuzzy/-/react-fuzzy-0.5.1.tgz#295c2a4079ad39402e05605d9d7accd2db8527b6"
-  dependencies:
-    babel-runtime "^6.23.0"
-    classnames "^2.2.5"
-    fuse.js "^3.0.1"
-    prop-types "^15.5.9"
+react-error-overlay@^6.0.9:
+  version "6.0.9"
+  resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a"
+  integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==
+
+react-fast-compare@^3.0.1, react-fast-compare@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb"
+  integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==
 
 react-headroom@2.2.7:
   version "2.2.7"
@@ -10870,28 +13112,30 @@ react-headroom@2.2.7:
     raf "^3.3.0"
     shallowequal "^1.1.0"
 
-react-html-attributes@^1.3.0:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/react-html-attributes/-/react-html-attributes-1.4.1.tgz#97b5ec710da68833598c8be6f89ac436216840a5"
+react-helmet-async@^1.0.7:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.1.2.tgz#653b7e6bbfdd239c5dcd6b8df2811c7a363b8334"
+  integrity sha512-LTTzDDkyIleT/JJ6T/uqx7Y8qi1EuPPSiJawQY/nHHz0h7SPDT6HxP1YDDQx/fzcVxCqpWEEMS3QdrSrNkJYhg==
   dependencies:
-    html-element-attributes "^1.0.0"
-
-react-icon-base@2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/react-icon-base/-/react-icon-base-2.1.0.tgz#a196e33fdf1e7aaa1fda3aefbb68bdad9e82a79d"
+    "@babel/runtime" "^7.12.5"
+    invariant "^2.2.4"
+    prop-types "^15.7.2"
+    react-fast-compare "^3.2.0"
+    shallowequal "^1.1.0"
 
-react-icons@^2.2.7:
-  version "2.2.7"
-  resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-2.2.7.tgz#d7860826b258557510dac10680abea5ca23cf650"
+react-immutable-proptypes@^2.1.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-2.2.0.tgz#cce96d68cc3c18e89617cbf3092d08e35126af4a"
+  integrity sha512-Vf4gBsePlwdGvSZoLSBfd4HAP93HDauMY4fDjXhreg/vg6F3Fj/MXDNyTbltPC/xZKmZc+cjLu3598DdYK6sgQ==
   dependencies:
-    react-icon-base "2.1.0"
+    invariant "^2.2.2"
 
-react-inspector@^2.2.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.2.2.tgz#c04f5248fa92ab6c23e37960e725fb7f48c34d05"
+react-input-autosize@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-3.0.0.tgz#6b5898c790d4478d69420b55441fcc31d5c50a85"
+  integrity sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==
   dependencies:
-    babel-runtime "^6.26.0"
-    is-dom "^1.0.9"
+    prop-types "^15.5.8"
 
 react-intl@2.4.0:
   version "2.4.0"
@@ -10902,36 +13146,43 @@ react-intl@2.4.0:
     intl-relativeformat "^2.0.0"
     invariant "^2.1.1"
 
-react-is@^16.8.1:
+react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
   version "16.13.1"
   resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
   integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
 
+react-is@^17.0.2:
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+  integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+
 react-lazy-cache@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/react-lazy-cache/-/react-lazy-cache-3.0.1.tgz#0dc64d38df1767ef77678c5c94190064cb11b0cd"
   dependencies:
     deep-equal "^1.0.1"
 
-react-modal@^3.1.10:
-  version "3.1.12"
-  resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.1.12.tgz#e80ab4e553ce946a6c96faf85eb31e0f9bd07470"
-  dependencies:
-    exenv "^1.2.0"
-    prop-types "^15.5.10"
-    warning "^3.0.0"
+react-lifecycles-compat@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
+  integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
 
-react-notification@5.0.7:
-  version "5.0.7"
-  resolved "https://registry.yarnpkg.com/react-notification/-/react-notification-5.0.7.tgz#6923b299056b99b0a4cb2afcfe7595542b0bd8d8"
+react-mde@^11.0.6:
+  version "11.0.6"
+  resolved "https://registry.yarnpkg.com/react-mde/-/react-mde-11.0.6.tgz#194c8bb225b244a012bb5477a0ad8f7410a2f926"
+  integrity sha512-yWiPSurQvjLVD070zycQR4x5zW3f/kxPlqOMmZoUtVQvUgcM+kwpDQAba5sqtqtAurgUx0Ae9p9Xzgqwt2+ZBA==
 
-react-onclickoutside@^6.5.0:
-  version "6.7.1"
-  resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz#6a5b5b8b4eae6b776259712c89c8a2b36b17be93"
+react-notification@6.8.5:
+  version "6.8.5"
+  resolved "https://registry.yarnpkg.com/react-notification/-/react-notification-6.8.5.tgz#7ea90a633bb2a280d899e30c93cf372265cce4f0"
+  integrity sha512-3pJPhSsWNYizpyeMeWuC+jVthqE9WKqQ6rHq2naiiP4fLGN4irwL2Xp2Q8Qn7agW/e4BIDxarab6fJOUp1cKUw==
+  dependencies:
+    prop-types "^15.6.2"
 
-react-overlays@0.7.2:
-  version "0.7.2"
-  resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.7.2.tgz#03808f80d99dfadd93d67438c619aa55d07b3f80"
+react-overlays@0.7.3:
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.7.3.tgz#e4caa690ce7cd7d40b2cf9cdc26356cddaf5a0e9"
+  integrity sha512-mIydIqEo9/3uB9h/Pi/KpAwb0ga93LC2ROH/c33uW3heNVTuGG1pjHvINv7m4V+wzCVosTXWg2AtM/Pxw42u+w==
   dependencies:
     classnames "^2.2.5"
     dom-helpers "^3.2.1"
@@ -10939,10 +13190,29 @@ react-overlays@0.7.2:
     prop-types-extra "^1.0.1"
     warning "^3.0.0"
 
-react-portal@3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/react-portal/-/react-portal-3.0.0.tgz#9304fce836e8a3216b22588f8dc91b447728f0ae"
-  integrity sha1-kwT86DbooyFrIliPjckbRHco8K4=
+react-popper-tooltip@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz#329569eb7b287008f04fcbddb6370452ad3f9eac"
+  integrity sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==
+  dependencies:
+    "@babel/runtime" "^7.12.5"
+    "@popperjs/core" "^2.5.4"
+    react-popper "^2.2.4"
+
+react-popper@^2.2.4:
+  version "2.2.5"
+  resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.2.5.tgz#1214ef3cec86330a171671a4fbcbeeb65ee58e96"
+  integrity sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==
+  dependencies:
+    react-fast-compare "^3.0.1"
+    warning "^4.0.2"
+
+react-portal@4.2.1:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/react-portal/-/react-portal-4.2.1.tgz#12c1599238c06fb08a9800f3070bea2a3f78b1a6"
+  integrity sha512-fE9kOBagwmTXZ3YGRYb4gcMy+kSA+yLO0xnPankjRlfBv4uCpFXqKPfkpsGQQR15wkZ9EssnvTOl1yMzbkxhPQ==
+  dependencies:
+    prop-types "^15.5.8"
 
 react-rangeslider@2.2.0:
   version "2.2.0"
@@ -10962,6 +13232,11 @@ react-redux@5.0.6:
     loose-envify "^1.1.0"
     prop-types "^15.5.10"
 
+react-refresh@^0.8.3:
+  version "0.8.3"
+  resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
+  integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
+
 react-router-redux@4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/react-router-redux/-/react-router-redux-4.0.8.tgz#227403596b5151e182377dab835b5d45f0f8054e"
@@ -10986,6 +13261,46 @@ react-router@3.2.0:
     prop-types "^15.5.6"
     warning "^3.0.0"
 
+react-rte@^0.16.3:
+  version "0.16.3"
+  resolved "https://registry.yarnpkg.com/react-rte/-/react-rte-0.16.3.tgz#27a069800a281b57c35b063c0e53eb04657af08f"
+  integrity sha512-IDZtdd+jjtd8zqrlEeO+DdujANdM9cy7o5AAKKzcSoW77r7U5PVicpkuWu5as3rzWRqlfQqPpjXq/PEFTRTmNA==
+  dependencies:
+    babel-runtime "^6.23.0"
+    class-autobind "^0.1.4"
+    classnames "^2.2.5"
+    draft-js ">=0.10.0"
+    draft-js-export-html ">=0.6.0"
+    draft-js-export-markdown ">=0.3.0"
+    draft-js-import-html ">=0.4.0"
+    draft-js-import-markdown ">=0.3.0"
+    draft-js-utils ">=0.2.0"
+    immutable "^3.8.1"
+
+react-select@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.2.0.tgz#de9284700196f5f9b5277c5d850a9ce85f5c72fe"
+  integrity sha512-B/q3TnCZXEKItO0fFN/I0tWOX3WJvi/X2wtdffmwSQVRwg5BpValScTO1vdic9AxlUgmeSzib2hAZAwIUQUZGQ==
+  dependencies:
+    "@babel/runtime" "^7.4.4"
+    "@emotion/cache" "^10.0.9"
+    "@emotion/core" "^10.0.9"
+    "@emotion/css" "^10.0.9"
+    memoize-one "^5.0.0"
+    prop-types "^15.6.0"
+    react-input-autosize "^3.0.0"
+    react-transition-group "^4.3.0"
+
+react-sizeme@^3.0.1:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-3.0.2.tgz#4a2f167905ba8f8b8d932a9e35164e459f9020e4"
+  integrity sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw==
+  dependencies:
+    element-resize-detector "^1.2.2"
+    invariant "^2.2.4"
+    shallowequal "^1.1.0"
+    throttle-debounce "^3.0.1"
+
 react-sparklines@1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/react-sparklines/-/react-sparklines-1.7.0.tgz#9b1d97e8c8610095eeb2ad658d2e1fcf91f91a60"
@@ -10993,21 +13308,16 @@ react-sparklines@1.7.0:
   dependencies:
     prop-types "^15.5.10"
 
-react-split-pane@^0.1.74:
-  version "0.1.76"
-  resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.76.tgz#b2ba11e1055e18b6b0fd56e13e3adb35aec87af6"
-  dependencies:
-    "@types/inline-style-prefixer" "^3.0.0"
-    "@types/react" "^16.0.18"
-    inline-style-prefixer "^3.0.6"
-    prop-types "^15.5.10"
-    react-style-proptype "^3.0.0"
-
-react-style-proptype@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.1.0.tgz#c8912fc13460f5b0c1ec1114c729d535b52b8073"
+react-syntax-highlighter@^13.5.3:
+  version "13.5.3"
+  resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz#9712850f883a3e19eb858cf93fad7bb357eea9c6"
+  integrity sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg==
   dependencies:
-    prop-types "^15.5.4"
+    "@babel/runtime" "^7.3.1"
+    highlight.js "^10.1.1"
+    lowlight "^1.14.0"
+    prismjs "^1.21.0"
+    refractor "^3.1.0"
 
 react-tabs@^3.1.1:
   version "3.1.1"
@@ -11017,55 +13327,54 @@ react-tabs@^3.1.1:
     clsx "^1.1.0"
     prop-types "^15.5.0"
 
-react-test-renderer@15.6.2:
-  version "15.6.2"
-  resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.6.2.tgz#d0333434fc2c438092696ca770da5ed48037efa8"
-  dependencies:
-    fbjs "^0.8.9"
-    object-assign "^4.1.0"
-
-react-textarea-autosize@^5.2.1:
-  version "5.2.1"
-  resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-5.2.1.tgz#2b78f9067180f41b08ac59f78f1581abadd61e54"
-  dependencies:
-    prop-types "^15.6.0"
-
-react-transition-group@^1.1.2:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.1.tgz#e11f72b257f921b213229a774df46612346c7ca6"
+react-test-renderer@16.8:
+  version "16.8.6"
+  resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.8.6.tgz#188d8029b8c39c786f998aa3efd3ffe7642d5ba1"
+  integrity sha512-H2srzU5IWYT6cZXof6AhUcx/wEyJddQ8l7cLM/F7gDXYyPr4oq+vCIxJYXVGhId1J706sqziAjuOEjyNkfgoEw==
   dependencies:
-    chain-function "^1.0.0"
-    dom-helpers "^3.2.0"
-    loose-envify "^1.3.1"
-    prop-types "^15.5.6"
-    warning "^3.0.0"
+    object-assign "^4.1.1"
+    prop-types "^15.6.2"
+    react-is "^16.8.6"
+    scheduler "^0.13.6"
 
-react-treebeard@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/react-treebeard/-/react-treebeard-2.1.0.tgz#fbd5cf51089b6f09a9b18350ab3bddf736e57800"
+react-test-renderer@^16.0.0-0:
+  version "16.14.0"
+  resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae"
+  integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==
   dependencies:
-    babel-runtime "^6.23.0"
-    deep-equal "^1.0.1"
-    prop-types "^15.5.8"
-    radium "^0.19.0"
-    shallowequal "^0.2.2"
-    velocity-react "^1.3.1"
+    object-assign "^4.1.1"
+    prop-types "^15.6.2"
+    react-is "^16.8.6"
+    scheduler "^0.19.1"
+
+react-textarea-autosize@^8.3.0:
+  version "8.3.3"
+  resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz#f70913945369da453fd554c168f6baacd1fa04d8"
+  integrity sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==
+  dependencies:
+    "@babel/runtime" "^7.10.2"
+    use-composed-ref "^1.0.0"
+    use-latest "^1.0.0"
+
+react-transition-group@^4.3.0:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470"
+  integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==
+  dependencies:
+    "@babel/runtime" "^7.5.5"
+    dom-helpers "^5.0.1"
+    loose-envify "^1.4.0"
+    prop-types "^15.6.2"
 
-react@15.6.2:
-  version "15.6.2"
-  resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72"
+react@16.8:
+  version "16.8.6"
+  resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
+  integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==
   dependencies:
-    create-react-class "^15.6.0"
-    fbjs "^0.8.9"
     loose-envify "^1.1.0"
-    object-assign "^4.1.0"
-    prop-types "^15.5.10"
-
-reactcss@^1.2.0:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/reactcss/-/reactcss-1.2.3.tgz#c00013875e557b1cf0dfd9a368a1c3dab3b548dd"
-  dependencies:
-    lodash "^4.0.1"
+    object-assign "^4.1.1"
+    prop-types "^15.6.2"
+    scheduler "^0.13.6"
 
 read-pkg-up@^1.0.1:
   version "1.0.1"
@@ -11081,6 +13390,15 @@ read-pkg-up@^2.0.0:
     find-up "^2.0.0"
     read-pkg "^2.0.0"
 
+read-pkg-up@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+  integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
+  dependencies:
+    find-up "^4.1.0"
+    read-pkg "^5.2.0"
+    type-fest "^0.8.1"
+
 read-pkg@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
@@ -11097,7 +13415,17 @@ read-pkg@^2.0.0:
     normalize-package-data "^2.3.2"
     path-type "^2.0.0"
 
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.1.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+read-pkg@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+  integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+  dependencies:
+    "@types/normalize-package-data" "^2.4.0"
+    normalize-package-data "^2.5.0"
+    parse-json "^5.0.0"
+    type-fest "^0.6.0"
+
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -11110,7 +13438,7 @@ read-pkg@^2.0.0:
     string_decoder "~1.1.1"
     util-deprecate "~1.0.1"
 
-readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3:
+readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.3:
   version "2.3.3"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
   dependencies:
@@ -11122,14 +13450,14 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable
     string_decoder "~1.0.3"
     util-deprecate "~1.0.1"
 
-readdirp@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
+readable-stream@^3.1.1:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
   dependencies:
-    graceful-fs "^4.1.2"
-    minimatch "^3.0.2"
-    readable-stream "^2.0.2"
-    set-immediate-shim "^1.0.1"
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
 
 readdirp@^2.2.1:
   version "2.2.1"
@@ -11147,22 +13475,19 @@ readdirp@~3.5.0:
   dependencies:
     picomatch "^2.2.1"
 
+readdirp@~3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+  integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+  dependencies:
+    picomatch "^2.2.1"
+
 realpath-native@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0"
   dependencies:
     util.promisify "^1.0.0"
 
-recast@^0.12.6:
-  version "0.12.9"
-  resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1"
-  dependencies:
-    ast-types "0.10.1"
-    core-js "^2.4.1"
-    esprima "~4.0.0"
-    private "~0.1.5"
-    source-map "~0.6.1"
-
 rechoir@^0.6.2:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
@@ -11176,6 +13501,13 @@ rechoir@^0.7.0:
   dependencies:
     resolve "^1.9.0"
 
+recursive-readdir@2.2.2:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f"
+  integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==
+  dependencies:
+    minimatch "3.0.4"
+
 redent@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
@@ -11183,25 +13515,11 @@ redent@^1.0.0:
     indent-string "^2.1.0"
     strip-indent "^1.0.1"
 
-reduce-css-calc@^1.2.6:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
-  dependencies:
-    balanced-match "^0.4.2"
-    math-expression-evaluator "^1.2.14"
-    reduce-function-call "^1.0.1"
-
 reduce-flatten@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27"
   integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==
 
-reduce-function-call@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99"
-  dependencies:
-    balanced-match "^0.4.2"
-
 redux-devtools-extension@2.13.5:
   version "2.13.5"
   resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.5.tgz#3ff34f7227acfeef3964194f5f7fc2765e5c5a39"
@@ -11226,7 +13544,7 @@ redux-saga@0.16.0:
   version "0.16.0"
   resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.16.0.tgz#0a231db0a1489301dd980f6f2f88d8ced418f724"
 
-redux@3.7.2, redux@^3.7.2:
+redux@3.7.2:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
   dependencies:
@@ -11235,9 +13553,24 @@ redux@3.7.2, redux@^3.7.2:
     loose-envify "^1.1.0"
     symbol-observable "^1.0.3"
 
-referrer-policy@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.1.0.tgz#35774eb735bf50fb6c078e83334b472350207d79"
+referrer-policy@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.2.0.tgz#b99cfb8b57090dc454895ef897a4cc35ef67a98e"
+  integrity sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA==
+
+reflect.ownkeys@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460"
+  integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=
+
+refractor@^3.1.0:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.4.0.tgz#62bd274b06c942041f390c371b676eb67cb0a678"
+  integrity sha512-dBeD02lC5eytm9Gld2Mx0cMcnR+zhSnsTfPpWqFaMgUMJfC9A6bcN3Br/NaXrnBJcuxnLFR90k1jrkaSyV8umg==
+  dependencies:
+    hastscript "^6.0.0"
+    parse-entities "^2.0.0"
+    prismjs "~1.24.0"
 
 regenerate-unicode-properties@^8.2.0:
   version "8.2.0"
@@ -11246,10 +13579,6 @@ regenerate-unicode-properties@^8.2.0:
   dependencies:
     regenerate "^1.4.0"
 
-regenerate@^1.2.1:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
-
 regenerate@^1.4.0:
   version "1.4.2"
   resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
@@ -11264,13 +13593,10 @@ regenerator-runtime@^0.13.4:
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
   integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
 
-regenerator-transform@^0.10.0:
-  version "0.10.1"
-  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
-  dependencies:
-    babel-runtime "^6.18.0"
-    babel-types "^6.19.0"
-    private "^0.1.6"
+regenerator-runtime@^0.13.7, regenerator-runtime@^0.13.9:
+  version "0.13.9"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
+  integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
 
 regenerator-transform@^0.14.2:
   version "0.14.5"
@@ -11293,10 +13619,6 @@ regex-not@^1.0.0, regex-not@^1.0.2:
     extend-shallow "^3.0.2"
     safe-regex "^1.1.0"
 
-regexp-quote@0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/regexp-quote/-/regexp-quote-0.0.0.tgz#1e0f4650c862dcbfed54fd42b148e9bb1721fcf2"
-
 regexp.prototype.flags@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
@@ -11305,27 +13627,19 @@ regexp.prototype.flags@^1.3.0:
     define-properties "^1.1.3"
     es-abstract "^1.17.0-next.1"
 
+regexp.prototype.flags@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
+  integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
 regexpp@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
   integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
 
-regexpu-core@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
-  dependencies:
-    regenerate "^1.2.1"
-    regjsgen "^0.2.0"
-    regjsparser "^0.1.4"
-
-regexpu-core@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
-  dependencies:
-    regenerate "^1.2.1"
-    regjsgen "^0.2.0"
-    regjsparser "^0.1.4"
-
 regexpu-core@^4.7.1:
   version "4.7.1"
   resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
@@ -11338,21 +13652,11 @@ regexpu-core@^4.7.1:
     unicode-match-property-ecmascript "^1.0.4"
     unicode-match-property-value-ecmascript "^1.2.0"
 
-regjsgen@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
-
 regjsgen@^0.5.1:
   version "0.5.2"
   resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
   integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
 
-regjsparser@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
-  dependencies:
-    jsesc "~0.5.0"
-
 regjsparser@^0.6.4:
   version "0.6.4"
   resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
@@ -11360,12 +13664,66 @@ regjsparser@^0.6.4:
   dependencies:
     jsesc "~0.5.0"
 
-remarkable@1.7.1:
-  version "1.7.1"
-  resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.1.tgz#aaca4972100b66a642a63a1021ca4bac1be3bff6"
+relateurl@^0.2.7:
+  version "0.2.7"
+  resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
+  integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
+
+remark-footnotes@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f"
+  integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==
+
+remark-mdx@1.6.22:
+  version "1.6.22"
+  resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd"
+  integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==
+  dependencies:
+    "@babel/core" "7.12.9"
+    "@babel/helper-plugin-utils" "7.10.4"
+    "@babel/plugin-proposal-object-rest-spread" "7.12.1"
+    "@babel/plugin-syntax-jsx" "7.12.1"
+    "@mdx-js/util" "1.6.22"
+    is-alphabetical "1.0.4"
+    remark-parse "8.0.3"
+    unified "9.2.0"
+
+remark-parse@8.0.3:
+  version "8.0.3"
+  resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1"
+  integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==
+  dependencies:
+    ccount "^1.0.0"
+    collapse-white-space "^1.0.2"
+    is-alphabetical "^1.0.0"
+    is-decimal "^1.0.0"
+    is-whitespace-character "^1.0.0"
+    is-word-character "^1.0.0"
+    markdown-escapes "^1.0.0"
+    parse-entities "^2.0.0"
+    repeat-string "^1.5.4"
+    state-toggle "^1.0.0"
+    trim "0.0.1"
+    trim-trailing-lines "^1.0.0"
+    unherit "^1.0.4"
+    unist-util-remove-position "^2.0.0"
+    vfile-location "^3.0.0"
+    xtend "^4.0.1"
+
+remark-squeeze-paragraphs@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead"
+  integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==
+  dependencies:
+    mdast-squeeze-paragraphs "^4.0.0"
+
+remarkable@~1.7.2:
+  version "1.7.4"
+  resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
+  integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
   dependencies:
-    argparse "~0.1.15"
-    autolinker "~0.15.0"
+    argparse "^1.0.10"
+    autolinker "~0.28.0"
 
 remove-markdown@^0.3.0:
   version "0.3.0"
@@ -11376,11 +13734,22 @@ remove-trailing-separator@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
 
+renderkid@^2.0.4:
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609"
+  integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==
+  dependencies:
+    css-select "^4.1.3"
+    dom-converter "^0.2.0"
+    htmlparser2 "^6.1.0"
+    lodash "^4.17.21"
+    strip-ansi "^3.0.1"
+
 repeat-element@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
 
-repeat-string@^1.5.2, repeat-string@^1.6.1:
+repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1:
   version "1.6.1"
   resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
   integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
@@ -11462,14 +13831,6 @@ require-directory@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
 
-require-from-string@^1.1.0:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418"
-
-require-from-string@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.1.tgz#c545233e9d7da6616e9d59adfb39fc9f588676ff"
-
 require-hacker@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/require-hacker/-/require-hacker-3.0.1.tgz#0879be067fcf067530665bcce4c89ac81a870477"
@@ -11527,6 +13888,14 @@ resolve@^1.1.6:
   dependencies:
     path-parse "^1.0.5"
 
+resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0:
+  version "1.20.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+  integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+  dependencies:
+    is-core-module "^2.2.0"
+    path-parse "^1.0.6"
+
 resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1:
   version "1.16.1"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.1.tgz#49fac5d8bacf1fd53f200fa51247ae736175832c"
@@ -11542,13 +13911,6 @@ resolve@^1.3.2, resolve@^1.8.1, resolve@^1.9.0:
     is-core-module "^2.0.0"
     path-parse "^1.0.6"
 
-restore-cursor@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
-  dependencies:
-    exit-hook "^1.0.0"
-    onetime "^1.0.0"
-
 restore-cursor@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@@ -11565,6 +13927,11 @@ retry@^0.12.0:
   version "0.12.0"
   resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
 
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
 right-align@^0.1.1:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
@@ -11591,6 +13958,13 @@ rimraf@^2.6.3:
   dependencies:
     glob "^7.1.3"
 
+rimraf@^3.0.0, rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
 ripemd160@^2.0.0, ripemd160@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
@@ -11616,6 +13990,13 @@ run-async@^2.4.0:
   dependencies:
     is-promise "^2.1.0"
 
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
+
 run-queue@^1.0.0, run-queue@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
@@ -11623,12 +14004,6 @@ run-queue@^1.0.0, run-queue@^1.0.3:
   dependencies:
     aproba "^1.1.1"
 
-rxjs@^5.4.2:
-  version "5.5.6"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02"
-  dependencies:
-    symbol-observable "1.0.1"
-
 rxjs@^6.5.3:
   version "6.5.5"
   resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
@@ -11636,11 +14011,18 @@ rxjs@^6.5.3:
   dependencies:
     tslib "^1.9.0"
 
-safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+rxjs@^6.6.3:
+  version "6.6.7"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
+  integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
+  dependencies:
+    tslib "^1.9.0"
+
+safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1:
   version "5.1.1"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
 
-safe-buffer@5.1.2:
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@@ -11650,6 +14032,11 @@ safe-buffer@>=5.1.0, safe-buffer@^5.1.2:
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
   integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
 
+safe-buffer@~5.2.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
 safe-json-parse@~1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57"
@@ -11681,13 +14068,18 @@ sane@^2.0.0:
   optionalDependencies:
     fsevents "^1.1.1"
 
-sanitize-html@1.14.1:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.14.1.tgz#730ffa2249bdf18333effe45b286173c9c5ad0b8"
+sanitize-html@~2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.5.0.tgz#142f43524bc6dc8a5e3fb565528aa0d9679c56dd"
+  integrity sha512-smU67ODza8E0rJF7oY37qQqMF5srxwEkqsgV17PFfdYAtIxnicH8LIyDEGINJIso8bPaxRZS7zGhCjg6BeDoqQ==
   dependencies:
-    htmlparser2 "^3.9.0"
-    regexp-quote "0.0.0"
-    xtend "^4.0.0"
+    deepmerge "^4.2.2"
+    escape-string-regexp "^4.0.0"
+    htmlparser2 "^6.0.0"
+    is-plain-object "^5.0.0"
+    klona "^2.0.3"
+    parse-srcset "^1.0.2"
+    postcss "^8.0.2"
 
 sass-graph@^2.2.4:
   version "2.2.4"
@@ -11716,22 +14108,51 @@ sass@^1.29.0:
   dependencies:
     chokidar ">=2.0.0 <4.0.0"
 
-sax@^1.2.1, sax@^1.2.4, sax@~1.2.1:
+sax@^1.2.1, sax@^1.2.4:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
 
-schema-utils@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
+scheduler@^0.13.6:
+  version "0.13.6"
+  resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889"
+  integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==
   dependencies:
-    ajv "^5.0.0"
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
 
-schema-utils@^0.4.0:
-  version "0.4.3"
-  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz#e2a594d3395834d5e15da22b48be13517859458e"
+scheduler@^0.19.1:
+  version "0.19.1"
+  resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
+  integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
+  dependencies:
+    loose-envify "^1.1.0"
+    object-assign "^4.1.1"
+
+schema-utils@2.7.0:
+  version "2.7.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
+  integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
+  dependencies:
+    "@types/json-schema" "^7.0.4"
+    ajv "^6.12.2"
+    ajv-keywords "^3.4.1"
+
+schema-utils@>1.0.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
+  integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
+  dependencies:
+    "@types/json-schema" "^7.0.8"
+    ajv "^6.12.5"
+    ajv-keywords "^3.5.2"
+
+schema-utils@^0.4.5:
+  version "0.4.7"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
+  integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
   dependencies:
-    ajv "^5.0.0"
-    ajv-keywords "^2.1.0"
+    ajv "^6.1.0"
+    ajv-keywords "^3.1.0"
 
 schema-utils@^1.0.0:
   version "1.0.0"
@@ -11742,7 +14163,7 @@ schema-utils@^1.0.0:
     ajv-errors "^1.0.0"
     ajv-keywords "^3.1.0"
 
-schema-utils@^2.6.5:
+schema-utils@^2.6.5, schema-utils@^2.7.0:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
   integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
@@ -11783,11 +14204,21 @@ secure-random@^1.1.2:
   resolved "https://registry.yarnpkg.com/secure-random/-/secure-random-1.1.2.tgz#ed103b460a851632d420d46448b2a900a41e7f7c"
   integrity sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ==
 
+selection-is-backward@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/selection-is-backward/-/selection-is-backward-1.0.0.tgz#97a54633188a511aba6419fc5c1fa91b467e6be1"
+  integrity sha1-l6VGMxiKURq6ZBn8XB+pG0Z+a+E=
+
 selection-position@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/selection-position/-/selection-position-1.0.0.tgz#e43f87151d94957efa170e10e02c901b47f703c7"
   integrity sha1-5D+HFR2UlX76Fw4Q4CyQG0f3A8c=
 
+semver-compare@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
+  integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
+
 "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1:
   version "5.5.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
@@ -11797,12 +14228,12 @@ semver@7.0.0:
   resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
   integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
 
-semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
+semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
   version "5.7.1"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
 
-semver@^6.1.2, semver@^6.3.0:
+semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
   version "6.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -11812,28 +14243,17 @@ semver@^7.3.2:
   resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
   integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
 
+semver@^7.3.4, semver@^7.3.5:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+  dependencies:
+    lru-cache "^6.0.0"
+
 semver@~5.3.0:
   version "5.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
 
-send@0.16.1:
-  version "0.16.1"
-  resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3"
-  dependencies:
-    debug "2.6.9"
-    depd "~1.1.1"
-    destroy "~1.0.4"
-    encodeurl "~1.0.1"
-    escape-html "~1.0.3"
-    etag "~1.8.1"
-    fresh "0.5.2"
-    http-errors "~1.6.2"
-    mime "1.4.1"
-    ms "2.0.0"
-    on-finished "~2.3.0"
-    range-parser "~1.2.0"
-    statuses "~1.3.1"
-
 send@0.17.1:
   version "0.17.1"
   resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
@@ -11860,25 +14280,24 @@ serialize-javascript@^4.0.0:
   dependencies:
     randombytes "^2.1.0"
 
-serve-favicon@^2.4.5:
-  version "2.4.5"
-  resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.4.5.tgz#49d9a46863153a9240691c893d2b0e7d85d6d436"
+serialize-javascript@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
+  integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
+  dependencies:
+    randombytes "^2.1.0"
+
+serve-favicon@^2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0"
+  integrity sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=
   dependencies:
     etag "~1.8.1"
     fresh "0.5.2"
-    ms "2.0.0"
+    ms "2.1.1"
     parseurl "~1.3.2"
     safe-buffer "5.1.1"
 
-serve-static@1.13.1:
-  version "1.13.1"
-  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719"
-  dependencies:
-    encodeurl "~1.0.1"
-    escape-html "~1.0.3"
-    parseurl "~1.3.2"
-    send "0.16.1"
-
 serve-static@1.14.1:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
@@ -11893,10 +14312,6 @@ set-blocking@^2.0.0, set-blocking@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
 
-set-immediate-shim@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
-
 set-value@^2.0.0, set-value@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -11911,19 +14326,16 @@ setimmediate@^1.0.4, setimmediate@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
 
-setprototypeof@1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
-
-setprototypeof@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
-
 setprototypeof@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
   integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
 
+setprototypeof@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+  integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
 sha.js@^2.4.0, sha.js@^2.4.8:
   version "2.4.10"
   resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b"
@@ -11931,12 +14343,6 @@ sha.js@^2.4.0, sha.js@^2.4.8:
     inherits "^2.0.1"
     safe-buffer "^5.0.1"
 
-shallowequal@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e"
-  dependencies:
-    lodash.keys "^3.1.2"
-
 shallowequal@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
@@ -11963,17 +14369,15 @@ shebang-regex@^3.0.0:
   resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
   integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
-shelljs@0.7.7:
-  version "0.7.7"
-  resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
-  dependencies:
-    glob "^7.0.0"
-    interpret "^1.0.0"
-    rechoir "^0.6.2"
+shell-quote@1.7.2:
+  version "1.7.2"
+  resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
+  integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
 
-shelljs@^0.7.8:
-  version "0.7.8"
-  resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
+shelljs@0.8.4:
+  version "0.8.4"
+  resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
+  integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
   dependencies:
     glob "^7.0.0"
     interpret "^1.0.0"
@@ -11991,6 +14395,15 @@ side-channel@^1.0.2:
     es-abstract "^1.17.0-next.1"
     object-inspect "^1.7.0"
 
+side-channel@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+  dependencies:
+    call-bind "^1.0.0"
+    get-intrinsic "^1.0.2"
+    object-inspect "^1.9.0"
+
 signal-exit@^3.0.0, signal-exit@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
@@ -12004,6 +14417,11 @@ sisteransi@^0.1.1:
   resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce"
   integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==
 
+sisteransi@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+  integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
 slash@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -12013,51 +14431,105 @@ slash@^2.0.0:
   resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
   integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
 
-slate-drop-or-paste-images@0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/slate-drop-or-paste-images/-/slate-drop-or-paste-images-0.4.1.tgz#1ef266a3e643db450d14ac2ec6a23431f9a0a897"
-  integrity sha1-HvJmo+ZD20UNFKwuxqI0MfmgqJc=
+slash@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+slate-base64-serializer@^0.2.82:
+  version "0.2.115"
+  resolved "https://registry.yarnpkg.com/slate-base64-serializer/-/slate-base64-serializer-0.2.115.tgz#438e051959bde013b50507f3144257e74039ff7f"
+  integrity sha512-GnLV7bUW/UQ5j7rVIxCU5zdB6NOVsEU6YWsCp68dndIjSGTGLaQv2+WwV3NcnrGGZEYe5qgo33j2QWrPws2C1A==
+  dependencies:
+    isomorphic-base64 "^1.0.2"
+
+slate-dev-environment@^0.2.0, slate-dev-environment@^0.2.2:
+  version "0.2.5"
+  resolved "https://registry.yarnpkg.com/slate-dev-environment/-/slate-dev-environment-0.2.5.tgz#481b6906fde5becc390db7c14edf97a4bb0029f2"
+  integrity sha512-oLD8Fclv/RqrDv6RYfN2CRzNcRXsUB99Qgcw5L/njTjxAdDPguV6edQ3DgUG9Q2pLFLhI15DwsKClzVfFzfwGQ==
+  dependencies:
+    is-in-browser "^1.1.3"
+
+slate-dev-logger@^0.1.0:
+  version "0.1.43"
+  resolved "https://registry.yarnpkg.com/slate-dev-logger/-/slate-dev-logger-0.1.43.tgz#77f6ca7207fcbf453a5516f3aa8b19794d1d26dc"
+  integrity sha512-GkcPMGzmPVm85AL+jaKnzhIA0UH9ktQDEIDM+FuQtz+TAPcpPCQiRAaZ6I2p2uD0Hq9bImhKSCtHIa0qRxiVGw==
+
+slate-drop-or-paste-images@0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/slate-drop-or-paste-images/-/slate-drop-or-paste-images-0.9.1.tgz#bc3b171ff63e85af91972d79f0751616a00e6ad4"
+  integrity sha512-HjfLjFWeemHQwq35HRU2k14cPT2LLqC/JrYATI5BHarLxEhdPE7gMBHjr10iE/3HZjMt+7DlWGu+QIhg96Ba/w==
   dependencies:
-    data-uri-to-blob "0.0.4"
     es6-promise "^4.0.5"
     image-to-data-uri "^1.0.0"
     is-data-uri "^0.1.0"
     is-image "^1.0.1"
     is-url "^1.2.2"
-    mime-types "^2.1.11"
+    slate-dev-logger "^0.1.0"
 
-slate-insert-block-on-enter@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/slate-insert-block-on-enter/-/slate-insert-block-on-enter-0.0.1.tgz#d5f30228aeb29c2158325decdc1920358ab40f9e"
-  integrity sha1-1fMCKK6ynCFYMl3s3BkgNYq0D54=
+slate-hotkeys@^0.2.7:
+  version "0.2.11"
+  resolved "https://registry.yarnpkg.com/slate-hotkeys/-/slate-hotkeys-0.2.11.tgz#a94db117d9a98575671192329b05f23e6f485d6f"
+  integrity sha512-xhq/TlI74dRbO57O4ulGsvCcV4eaQ5nEEz9noZjeNLtNzFRd6lSgExRqAJqKGGIeJw+FnJ3OcqGvdb5CEc9/Ew==
   dependencies:
-    debug "^2.2.0"
+    is-hotkey "0.1.4"
+    slate-dev-environment "^0.2.2"
+
+slate-insert-block-on-enter@0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/slate-insert-block-on-enter/-/slate-insert-block-on-enter-0.4.0.tgz#6facd63d152c0448c8e39afa0bef4bbf8309da61"
+  integrity sha512-1Yw6BiwcHuo74jAOYwxNXDLMtC5OpTB4HbimoMUpuSSRuv3YcJpaFnkwOUXvfuiY/OaPn8ztKNQV9AZknC+5uQ==
+
+slate-plain-serializer@^0.6.21:
+  version "0.6.39"
+  resolved "https://registry.yarnpkg.com/slate-plain-serializer/-/slate-plain-serializer-0.6.39.tgz#5fb8d4dc530a2e7e0689548d48964ce242c4516a"
+  integrity sha512-EGl+Y+9Fw9IULtPg8sttydaeiAoaibJolMXNfqI79+5GWTQwJFIbg24keKvsTw+3f2RieaPu8fcrKyujKtZ7ZQ==
+
+slate-prop-types@^0.5.12:
+  version "0.5.44"
+  resolved "https://registry.yarnpkg.com/slate-prop-types/-/slate-prop-types-0.5.44.tgz#da60b69c3451c3bd6cdd60a45d308eeba7e83c76"
+  integrity sha512-JS0iW7uaciE/W3ADuzeN1HOnSjncQhHPXJ65nZNQzB0DF7mXVmbwQKI6cmCo/xKni7XRJT0JbWSpXFhEdPiBUA==
+
+slate-react@~0.20.1:
+  version "0.20.8"
+  resolved "https://registry.yarnpkg.com/slate-react/-/slate-react-0.20.8.tgz#8e5f4fcf204c9f45e3db5e2e942c20de2c52f9e5"
+  integrity sha512-05PzHrya/LzgGIMiwu+jO+ItyUsEogmkimLIvi5frmmXvUd5CKVgoao6bTLe2Ak+3OeZ20bwScC4CECFunmpIw==
+  dependencies:
+    debug "^3.1.0"
+    get-window "^1.1.1"
+    is-window "^1.0.2"
+    lodash "^4.1.1"
+    memoize-one "^4.0.0"
+    prop-types "^15.5.8"
+    react-immutable-proptypes "^2.1.0"
+    selection-is-backward "^1.0.0"
+    slate-base64-serializer "^0.2.82"
+    slate-dev-environment "^0.2.0"
+    slate-hotkeys "^0.2.7"
+    slate-plain-serializer "^0.6.21"
+    slate-prop-types "^0.5.12"
+    tiny-invariant "^1.0.1"
+    tiny-warning "^0.0.3"
 
 slate-trailing-block@0.2.4:
   version "0.2.4"
   resolved "https://registry.yarnpkg.com/slate-trailing-block/-/slate-trailing-block-0.2.4.tgz#6ce9525fa15f9f098d810d9312a4267799cd0e12"
   integrity sha1-bOlSX6FfnwmNgQ2TEqQmd5nNDhI=
 
-slate@0.16.9:
-  version "0.16.9"
-  resolved "https://registry.yarnpkg.com/slate/-/slate-0.16.9.tgz#93a61d01903f0227c02726a76c793af91b8d4467"
-  integrity sha1-k6YdAZA/AifAJyanbHk6+RuNRGc=
+slate@~0.43:
+  version "0.43.7"
+  resolved "https://registry.yarnpkg.com/slate/-/slate-0.43.7.tgz#8e33860dd0ea698c106fe781b2fb926e56e271df"
+  integrity sha512-CoKgZJ703v8pBm80xRwynW9AJsD2+oINrvXZgjENyG03ywhnackGYbXIuXizCYIXiglKfRQ7RHNuEM897X+v2g==
   dependencies:
-    cheerio "^0.22.0"
-    debug "^2.3.2"
+    debug "^3.1.0"
     direction "^0.1.5"
-    es6-map "^0.1.4"
     esrever "^0.2.0"
-    get-window "^1.1.1"
-    immutable "^3.8.1"
-    is-empty "^1.0.0"
-    keycode "^2.1.2"
+    is-plain-object "^2.0.4"
+    lodash "^4.17.4"
+    tiny-invariant "^1.0.1"
+    tiny-warning "^0.0.3"
     type-of "^2.0.1"
 
-slice-ansi@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
-
 slice-ansi@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
@@ -12067,6 +14539,24 @@ slice-ansi@^2.1.0:
     astral-regex "^1.0.0"
     is-fullwidth-code-point "^2.0.0"
 
+slice-ansi@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
+  integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+  dependencies:
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
+
+slice-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+  dependencies:
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
+
 snapdragon-node@^2.0.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -12103,16 +14593,15 @@ sntp@2.x.x:
   dependencies:
     hoek "4.x.x"
 
-sort-keys@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
-  dependencies:
-    is-plain-obj "^1.0.0"
-
 source-list-map@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
 
+source-map-js@^0.6.2:
+  version "0.6.2"
+  resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e"
+  integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==
+
 source-map-resolve@^0.5.0:
   version "0.5.3"
   resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -12138,6 +14627,14 @@ source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.1
     buffer-from "^1.0.0"
     source-map "^0.6.0"
 
+source-map-support@~0.5.20:
+  version "0.5.20"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
+  integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
+  dependencies:
+    buffer-from "^1.0.0"
+    source-map "^0.6.0"
+
 source-map-url@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
@@ -12153,10 +14650,20 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, sour
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
 
-source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
 
+source-map@^0.7.3, source-map@~0.7.2:
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+space-separated-tokens@^1.0.0:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899"
+  integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==
+
 spdx-correct@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -12216,13 +14723,31 @@ ssri@^6.0.1:
   dependencies:
     figgy-pudding "^3.5.1"
 
+ssri@^8.0.1:
+  version "8.0.1"
+  resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
+  integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
+  dependencies:
+    minipass "^3.1.1"
+
+stable@^0.1.8:
+  version "0.1.8"
+  resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+  integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+
 stack-utils@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620"
 
-staged-git-files@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35"
+stackframe@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303"
+  integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==
+
+state-toggle@^1.0.0:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe"
+  integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==
 
 static-extend@^0.1.1:
   version "0.1.2"
@@ -12236,19 +14761,15 @@ statsd-client@0.4.2:
   version "0.4.2"
   resolved "https://registry.yarnpkg.com/statsd-client/-/statsd-client-0.4.2.tgz#c0dc4d583609f97d638742f3ee412c34e9aea482"
 
-statuses@1, "statuses@>= 1.3.1 < 2", statuses@^1.2.0:
+statuses@1:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
 
-"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+"statuses@>= 1.5.0 < 2", statuses@^1.2.0, statuses@~1.5.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
   integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
 
-statuses@~1.3.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
-
 stdout-stream@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
@@ -12259,6 +14780,11 @@ stealthy-require@^1.1.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
 
+store2@^2.12.0:
+  version "2.12.0"
+  resolved "https://registry.yarnpkg.com/store2/-/store2-2.12.0.tgz#e1f1b7e1a59b6083b2596a8d067f6ee88fd4d3cf"
+  integrity sha512-7t+/wpKLanLzSnQPX8WAcuLCCeuSHoWdQuh9SB3xD0kNOM38DNf+0Oa+wmvxmYueRzkmh6IcdKFtvTa+ecgPDw==
+
 store@1.3.20:
   version "1.3.20"
   resolved "https://registry.yarnpkg.com/store/-/store-1.3.20.tgz#13ea7e3fb2d6c239868265d686b1d84e99c5be3e"
@@ -12300,16 +14826,15 @@ stream-shift@^1.0.0:
   resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
   integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
 
-stream-to-observable@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.2.0.tgz#59d6ea393d87c2c0ddac10aa0d561bc6ba6f0e10"
-  dependencies:
-    any-observable "^0.2.0"
-
 strict-uri-encode@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
 
+string-argv@0.3.1:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
+  integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
+
 string-length@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
@@ -12346,7 +14871,16 @@ string-width@^3.0.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^5.1.0"
 
-string-width@^4.1.0:
+string-width@^4.0.0:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
+  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.0"
+
+string-width@^4.1.0, string-width@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
   integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
@@ -12355,6 +14889,20 @@ string-width@^4.1.0:
     is-fullwidth-code-point "^3.0.0"
     strip-ansi "^6.0.0"
 
+"string.prototype.matchall@^4.0.0 || ^3.0.1":
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da"
+  integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+    es-abstract "^1.18.2"
+    get-intrinsic "^1.1.1"
+    has-symbols "^1.0.2"
+    internal-slot "^1.0.3"
+    regexp.prototype.flags "^1.3.1"
+    side-channel "^1.0.4"
+
 string.prototype.matchall@^4.0.2:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e"
@@ -12391,6 +14939,14 @@ string.prototype.trimend@^1.0.0:
     define-properties "^1.1.3"
     es-abstract "^1.17.5"
 
+string.prototype.trimend@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+  integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
 string.prototype.trimleft@^2.1.1:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc"
@@ -12417,6 +14973,14 @@ string.prototype.trimstart@^1.0.0:
     define-properties "^1.1.3"
     es-abstract "^1.17.5"
 
+string.prototype.trimstart@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+  dependencies:
+    call-bind "^1.0.2"
+    define-properties "^1.1.3"
+
 string_decoder@0.10:
   version "0.10.31"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
@@ -12424,9 +14988,17 @@ string_decoder@0.10:
 string_decoder@^1.0.0, string_decoder@~1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+  integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==
   dependencies:
     safe-buffer "~5.1.0"
 
+string_decoder@^1.1.1:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+  dependencies:
+    safe-buffer "~5.2.0"
+
 string_decoder@~1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
@@ -12434,11 +15006,12 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
-stringify-object@^3.2.0:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd"
+stringify-object@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
+  integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
   dependencies:
-    get-own-enumerable-property-symbols "^2.0.1"
+    get-own-enumerable-property-symbols "^3.0.0"
     is-obj "^1.0.1"
     is-regexp "^1.0.0"
 
@@ -12446,6 +15019,13 @@ stringstream@~0.0.5:
   version "0.0.5"
   resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
 
+strip-ansi@6.0.0, strip-ansi@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+  dependencies:
+    ansi-regex "^5.0.0"
+
 strip-ansi@^3.0.0, strip-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
@@ -12465,13 +15045,6 @@ strip-ansi@^5.1.0, strip-ansi@^5.2.0:
   dependencies:
     ansi-regex "^4.1.0"
 
-strip-ansi@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
-  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
-  dependencies:
-    ansi-regex "^5.0.0"
-
 strip-bom@3.0.0, strip-bom@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -12506,6 +15079,13 @@ strip-indent@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
 
+strip-indent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
+  integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
+  dependencies:
+    min-indent "^1.0.0"
+
 strip-json-comments@^3.0.1:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180"
@@ -12528,35 +15108,37 @@ style-loader@2.0.0:
     loader-utils "^2.0.0"
     schema-utils "^3.0.0"
 
-style-loader@^0.19.1:
-  version "0.19.1"
-  resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.1.tgz#591ffc80bcefe268b77c5d9ebc0505d772619f85"
+style-loader@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e"
+  integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==
+  dependencies:
+    loader-utils "^2.0.0"
+    schema-utils "^2.7.0"
+
+style-to-object@0.3.0, style-to-object@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46"
+  integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==
   dependencies:
-    loader-utils "^1.0.2"
-    schema-utils "^0.3.0"
+    inline-style-parser "0.1.1"
 
 supports-color@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
 
-supports-color@^3.1.2, supports-color@^3.2.3:
+supports-color@^3.1.2:
   version "3.2.3"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
   dependencies:
     has-flag "^1.0.0"
 
-supports-color@^4.0.0, supports-color@^4.2.1:
+supports-color@^4.0.0:
   version "4.5.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
   dependencies:
     has-flag "^2.0.0"
 
-supports-color@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5"
-  dependencies:
-    has-flag "^2.0.0"
-
 supports-color@^5.3.0:
   version "5.5.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -12569,7 +15151,14 @@ supports-color@^6.1.0:
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
   integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
   dependencies:
-    has-flag "^3.0.0"
+    has-flag "^3.0.0"
+
+supports-color@^7.0.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  dependencies:
+    has-flag "^4.0.0"
 
 supports-color@^7.1.0:
   version "7.1.0"
@@ -12586,36 +15175,12 @@ svg-inline-loader@0.8.0:
     object-assign "^4.0.1"
     simple-html-tokenizer "^0.1.1"
 
-svg-tag-names@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/svg-tag-names/-/svg-tag-names-1.1.1.tgz#9641b29ef71025ee094c7043f7cdde7d99fbd50a"
-
 svgo-loader@1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/svgo-loader/-/svgo-loader-1.2.1.tgz#e255cdebf56753ff83bd28d1d7a20762c0df5130"
   dependencies:
     loader-utils "^1.0.3"
 
-svgo@^0.7.0:
-  version "0.7.2"
-  resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
-  dependencies:
-    coa "~1.0.1"
-    colors "~1.1.2"
-    csso "~2.3.1"
-    js-yaml "~3.7.0"
-    mkdirp "~0.5.1"
-    sax "~1.2.1"
-    whet.extend "~0.9.9"
-
-symbol-observable@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
-
-symbol-observable@^0.2.2:
-  version "0.2.4"
-  resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40"
-
 symbol-observable@^1.0.3:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
@@ -12624,6 +15189,16 @@ symbol-tree@^3.2.1, symbol-tree@^3.2.2:
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
 
+symbol.prototype.description@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/symbol.prototype.description/-/symbol.prototype.description-1.0.5.tgz#d30e01263b6020fbbd2d2884a6276ce4d49ab568"
+  integrity sha512-x738iXRYsrAt9WBhRCVG5BtIC3B7CUkFwbHW2zOvGtwM33s7JjrCDyq8V0zgMYVb5ymsL8+qkzzpANH63CPQaQ==
+  dependencies:
+    call-bind "^1.0.2"
+    get-symbol-description "^1.0.0"
+    has-symbols "^1.0.2"
+    object.getownpropertydescriptors "^2.1.2"
+
 sync-request@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/sync-request/-/sync-request-3.0.1.tgz#caa1235aaf889ba501076a1834c436830a82fb73"
@@ -12632,6 +15207,11 @@ sync-request@^3.0.1:
     http-response-object "^1.0.1"
     then-request "^2.0.1"
 
+synthetic-dom@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/synthetic-dom/-/synthetic-dom-1.4.0.tgz#d988d7a4652458e2fc8706a875417af913e4dd34"
+  integrity sha512-mHv51ZsmZ+ShT/4s5kg+MGUIhY7Ltq4v03xpN1c8T1Krb5pScsh/lzEjyhrVD0soVDbThbd2e+4dD9vnDG4rhg==
+
 table-layout@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9"
@@ -12652,10 +15232,6 @@ table@^5.2.3:
     slice-ansi "^2.1.0"
     string-width "^3.0.0"
 
-tapable@^0.2.7:
-  version "0.2.8"
-  resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
-
 tapable@^1.0.0, tapable@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
@@ -12682,6 +15258,37 @@ tar@^4:
     safe-buffer "^5.1.2"
     yallist "^3.0.3"
 
+tar@^6.0.2:
+  version "6.1.11"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
+  integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
+  dependencies:
+    chownr "^2.0.0"
+    fs-minipass "^2.0.0"
+    minipass "^3.0.0"
+    minizlib "^2.1.1"
+    mkdirp "^1.0.3"
+    yallist "^4.0.0"
+
+telejson@^5.3.2:
+  version "5.3.3"
+  resolved "https://registry.yarnpkg.com/telejson/-/telejson-5.3.3.tgz#fa8ca84543e336576d8734123876a9f02bf41d2e"
+  integrity sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA==
+  dependencies:
+    "@types/is-function" "^1.0.0"
+    global "^4.4.0"
+    is-function "^1.0.2"
+    is-regex "^1.1.2"
+    is-symbol "^1.0.3"
+    isobject "^4.0.0"
+    lodash "^4.17.21"
+    memoizerific "^1.11.3"
+
+term-size@^2.1.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
+  integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
+
 terser-webpack-plugin@^1.4.3:
   version "1.4.5"
   resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b"
@@ -12697,7 +15304,22 @@ terser-webpack-plugin@^1.4.3:
     webpack-sources "^1.4.0"
     worker-farm "^1.7.0"
 
-terser@^4.1.2:
+terser-webpack-plugin@^4.2.3:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a"
+  integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==
+  dependencies:
+    cacache "^15.0.5"
+    find-cache-dir "^3.3.1"
+    jest-worker "^26.5.0"
+    p-limit "^3.0.2"
+    schema-utils "^3.0.0"
+    serialize-javascript "^5.0.1"
+    source-map "^0.6.1"
+    terser "^5.3.4"
+    webpack-sources "^1.4.3"
+
+terser@^4.1.2, terser@^4.6.3:
   version "4.8.0"
   resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
   integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
@@ -12706,6 +15328,15 @@ terser@^4.1.2:
     source-map "~0.6.1"
     source-map-support "~0.5.12"
 
+terser@^5.3.4:
+  version "5.8.0"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-5.8.0.tgz#c6d352f91aed85cc6171ccb5e84655b77521d947"
+  integrity sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==
+  dependencies:
+    commander "^2.20.0"
+    source-map "~0.7.2"
+    source-map-support "~0.5.20"
+
 test-exclude@^4.2.1:
   version "4.2.3"
   resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20"
@@ -12717,7 +15348,16 @@ test-exclude@^4.2.1:
     read-pkg-up "^1.0.1"
     require-main-filename "^1.0.1"
 
-text-table@^0.2.0:
+test-exclude@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+  integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+  dependencies:
+    "@istanbuljs/schema" "^0.1.2"
+    glob "^7.1.4"
+    minimatch "^3.0.4"
+
+text-table@0.2.0, text-table@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
   integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
@@ -12749,6 +15389,11 @@ throat@^4.0.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
 
+throttle-debounce@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb"
+  integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==
+
 through2@^2.0.0:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
@@ -12771,6 +15416,11 @@ timers-browserify@^2.0.4:
   dependencies:
     setimmediate "^1.0.4"
 
+tiny-invariant@^1.0.1:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
+  integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==
+
 tiny-lr@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab"
@@ -12783,9 +15433,10 @@ tiny-lr@^1.1.1:
     object-assign "^4.1.0"
     qs "^6.4.0"
 
-tinycolor2@^1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"
+tiny-warning@^0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-0.0.3.tgz#1807eb4c5f81784a6354d58ea1d5024f18c6c81f"
+  integrity sha512-r0SSA5Y5IWERF9Xh++tFPx0jITBgGggOsRLDWWew6YRw/C2dr4uNO1fw1vanrBmHsICmPyMLNBZboTlxUmUuaA==
 
 tmp@^0.0.33:
   version "0.0.33"
@@ -12842,7 +15493,7 @@ to-regex@^3.0.1, to-regex@^3.0.2:
     regex-not "^1.0.2"
     safe-regex "^1.1.0"
 
-toggle-selection@^1.0.3:
+toggle-selection@^1.0.3, toggle-selection@^1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
 
@@ -12883,20 +15534,56 @@ trim-right@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
 
+trim-trailing-lines@^1.0.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0"
+  integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==
+
+trim@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
+  integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0=
+
+trough@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406"
+  integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==
+
 "true-case-path@^1.0.2":
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62"
   dependencies:
     glob "^6.0.4"
 
+ts-dedent@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5"
+  integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==
+
+ts-essentials@^2.0.3:
+  version "2.0.12"
+  resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745"
+  integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==
+
+ts-pnp@^1.1.6:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
+  integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
+
 tslib@^1.8.1, tslib@^1.9.0:
   version "1.11.1"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
   integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
 
-tsscmp@1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97"
+tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.3.0:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
+  integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
+
+tsscmp@1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
+  integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
 
 tsutils@^3.17.1:
   version "3.17.1"
@@ -12930,19 +15617,17 @@ type-fest@^0.11.0:
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
   integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
 
+type-fest@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+  integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
 type-fest@^0.8.1:
   version "0.8.1"
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
   integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
 
-type-is@^1.5.5, type-is@^1.6.14, type-is@~1.6.15:
-  version "1.6.15"
-  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410"
-  dependencies:
-    media-typer "0.3.0"
-    mime-types "~2.1.15"
-
-type-is@~1.6.17, type-is@~1.6.18:
+type-is@^1.5.5, type-is@^1.6.14, type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18:
   version "1.6.18"
   resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
   integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
@@ -12964,11 +15649,16 @@ typical@^5.0.0, typical@^5.2.0:
   resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066"
   integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==
 
+ua-parser-js@^0.7.18:
+  version "0.7.24"
+  resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.24.tgz#8d3ecea46ed4f1f1d63ec25f17d8568105dc027c"
+  integrity sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==
+
 ua-parser-js@^0.7.9:
   version "0.7.17"
   resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
 
-uglify-js@^2.6, uglify-js@^2.7.0, uglify-js@^2.8.29:
+uglify-js@^2.6, uglify-js@^2.7.0:
   version "2.8.29"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
   dependencies:
@@ -12981,17 +15671,10 @@ uglify-to-browserify@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
 
-uglifyjs-webpack-plugin@^0.4.6:
-  version "0.4.6"
-  resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309"
-  dependencies:
-    source-map "^0.5.6"
-    uglify-js "^2.8.29"
-    webpack-sources "^1.0.1"
-
-uid-safe@2.1.4:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.4.tgz#3ad6f38368c6d4c8c75ec17623fb79aa1d071d81"
+uid-safe@2.1.5:
+  version "2.1.5"
+  resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a"
+  integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==
   dependencies:
     random-bytes "~1.0.0"
 
@@ -12999,17 +15682,32 @@ ultron@~1.1.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
 
-underscore.string@~2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
+unbox-primitive@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
+  integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
+  dependencies:
+    function-bind "^1.1.1"
+    has-bigints "^1.0.1"
+    has-symbols "^1.0.2"
+    which-boxed-primitive "^1.0.2"
 
 underscore@~1.4.4:
   version "1.4.4"
   resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
 
-underscore@~1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
+unfetch@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be"
+  integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==
+
+unherit@^1.0.4:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22"
+  integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==
+  dependencies:
+    inherits "^2.0.0"
+    xtend "^4.0.0"
 
 unicode-canonical-property-names-ecmascript@^1.0.4:
   version "1.0.4"
@@ -13034,6 +15732,18 @@ unicode-property-aliases-ecmascript@^1.0.4:
   resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
   integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
 
+unified@9.2.0:
+  version "9.2.0"
+  resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8"
+  integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==
+  dependencies:
+    bail "^1.0.0"
+    extend "^3.0.0"
+    is-buffer "^2.0.0"
+    is-plain-obj "^2.0.0"
+    trough "^1.0.0"
+    vfile "^4.0.0"
+
 union-value@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
@@ -13048,16 +15758,6 @@ uniq@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
 
-uniqid@^4.0.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1"
-  dependencies:
-    macaddress "^0.2.8"
-
-uniqs@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
-
 unique-filename@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
@@ -13072,11 +15772,63 @@ unique-slug@^2.0.0:
   dependencies:
     imurmurhash "^0.1.4"
 
-unique-string@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
+unist-builder@2.0.3, unist-builder@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436"
+  integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==
+
+unist-util-generated@^1.0.0:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b"
+  integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==
+
+unist-util-is@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797"
+  integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==
+
+unist-util-position@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47"
+  integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==
+
+unist-util-remove-position@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc"
+  integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==
+  dependencies:
+    unist-util-visit "^2.0.0"
+
+unist-util-remove@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588"
+  integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==
+  dependencies:
+    unist-util-is "^4.0.0"
+
+unist-util-stringify-position@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da"
+  integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==
+  dependencies:
+    "@types/unist" "^2.0.2"
+
+unist-util-visit-parents@^3.0.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6"
+  integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==
+  dependencies:
+    "@types/unist" "^2.0.0"
+    unist-util-is "^4.0.0"
+
+unist-util-visit@2.0.3, unist-util-visit@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c"
+  integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==
   dependencies:
-    crypto-random-string "^1.0.0"
+    "@types/unist" "^2.0.0"
+    unist-util-is "^4.0.0"
+    unist-util-visit-parents "^3.0.0"
 
 universal-cookie@^4.0.3:
   version "4.0.3"
@@ -13088,10 +15840,20 @@ universal-cookie@^4.0.3:
     cookie "^0.4.0"
     object-assign "^4.1.1"
 
+universalify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
 unpipe@1.0.0, unpipe@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
 
+unquote@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
+  integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
+
 unset-value@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
@@ -13117,7 +15879,7 @@ urix@^0.1.0:
   resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
   integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
 
-url-loader@4.1.1:
+url-loader@4.1.1, url-loader@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2"
   integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==
@@ -13126,14 +15888,6 @@ url-loader@4.1.1:
     mime-types "^2.1.27"
     schema-utils "^3.0.0"
 
-url-loader@^0.6.2:
-  version "0.6.2"
-  resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7"
-  dependencies:
-    loader-utils "^1.0.2"
-    mime "^1.4.1"
-    schema-utils "^0.3.0"
-
 url@^0.11.0:
   version "0.11.0"
   resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
@@ -13141,23 +15895,43 @@ url@^0.11.0:
     punycode "1.3.2"
     querystring "0.2.0"
 
+use-composed-ref@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.1.0.tgz#9220e4e94a97b7b02d7d27eaeab0b37034438bbc"
+  integrity sha512-my1lNHGWsSDAhhVAT4MKs6IjBUtG6ZG11uUqexPH9PptiIZDQOzaF4f5tEbJ2+7qvNbtXNBbU3SfmN+fXlWDhg==
+  dependencies:
+    ts-essentials "^2.0.3"
+
+use-isomorphic-layout-effect@^1.0.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz#7bb6589170cd2987a152042f9084f9effb75c225"
+  integrity sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==
+
+use-latest@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.0.tgz#a44f6572b8288e0972ec411bdd0840ada366f232"
+  integrity sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==
+  dependencies:
+    use-isomorphic-layout-effect "^1.0.0"
+
 use@^3.1.0:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
   integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
 
-util-deprecate@^1.0.2, util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
 
-util.promisify@^1.0.0:
+util.promisify@1.0.0, util.promisify@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
   dependencies:
     define-properties "^1.1.2"
     object.getownpropertydescriptors "^2.0.3"
 
-util@0.10.3, util@^0.10.3:
+util@0.10.3:
   version "0.10.3"
   resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
   dependencies:
@@ -13170,6 +15944,11 @@ util@^0.11.0:
   dependencies:
     inherits "2.0.3"
 
+utila@~0.4:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
+  integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=
+
 utils-merge@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
@@ -13193,6 +15972,15 @@ v8-compile-cache@^2.2.0:
   resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
   integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
 
+v8-to-istanbul@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c"
+  integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==
+  dependencies:
+    "@types/istanbul-lib-coverage" "^2.0.1"
+    convert-source-map "^1.6.0"
+    source-map "^0.7.3"
+
 v8flags@^3.1.1:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656"
@@ -13210,23 +15998,7 @@ validate-npm-package-license@^3.0.1:
 vary@^1.0.0, vary@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
-
-velocity-animate@^1.4.0:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.1.tgz#606837047bab8fbfb59a636d1d82ecc3f7bd71a6"
-
-velocity-react@^1.3.1:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/velocity-react/-/velocity-react-1.3.3.tgz#d6d47276cfc8be2a75623879b20140ac58c1b82b"
-  dependencies:
-    lodash "^3.10.1"
-    prop-types "^15.5.8"
-    react-transition-group "^1.1.2"
-    velocity-animate "^1.4.0"
-
-vendors@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22"
+  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 
 verror@1.10.0:
   version "1.10.0"
@@ -13236,11 +16008,28 @@ verror@1.10.0:
     core-util-is "1.0.2"
     extsprintf "^1.2.0"
 
-vm-browserify@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
+vfile-location@^3.0.0, vfile-location@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c"
+  integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==
+
+vfile-message@^2.0.0:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a"
+  integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==
   dependencies:
-    indexof "0.0.1"
+    "@types/unist" "^2.0.0"
+    unist-util-stringify-position "^2.0.0"
+
+vfile@^4.0.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624"
+  integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==
+  dependencies:
+    "@types/unist" "^2.0.0"
+    is-buffer "^2.0.0"
+    unist-util-stringify-position "^2.0.0"
+    vfile-message "^2.0.0"
 
 vm-browserify@^1.0.1:
   version "1.1.2"
@@ -13266,6 +16055,13 @@ warning@^3.0.0:
   dependencies:
     loose-envify "^1.0.0"
 
+warning@^4.0.2, warning@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
+  integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
+  dependencies:
+    loose-envify "^1.0.0"
+
 watch@~0.18.0:
   version "0.18.0"
   resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
@@ -13280,14 +16076,6 @@ watchpack-chokidar2@^2.0.0:
   dependencies:
     chokidar "^2.1.8"
 
-watchpack@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac"
-  dependencies:
-    async "^2.1.2"
-    chokidar "^1.7.0"
-    graceful-fs "^4.1.2"
-
 watchpack@^1.7.4:
   version "1.7.4"
   resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b"
@@ -13299,6 +16087,11 @@ watchpack@^1.7.4:
     chokidar "^3.4.1"
     watchpack-chokidar2 "^2.0.0"
 
+web-namespaces@^1.0.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec"
+  integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==
+
 webidl-conversions@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -13344,17 +16137,7 @@ webpack-cli@^4.2.0:
     v8-compile-cache "^2.2.0"
     webpack-merge "^4.2.2"
 
-webpack-dev-middleware@1.12.0:
-  version "1.12.0"
-  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709"
-  dependencies:
-    memory-fs "~0.4.1"
-    mime "^1.3.4"
-    path-is-absolute "^1.0.0"
-    range-parser "^1.0.3"
-    time-stamp "^2.0.0"
-
-webpack-dev-middleware@^1.10.0, webpack-dev-middleware@^1.12.2:
+webpack-dev-middleware@^1.10.0:
   version "1.12.2"
   resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e"
   dependencies:
@@ -13364,7 +16147,35 @@ webpack-dev-middleware@^1.10.0, webpack-dev-middleware@^1.12.2:
     range-parser "^1.0.3"
     time-stamp "^2.0.0"
 
-webpack-hot-middleware@2.x, webpack-hot-middleware@^2.21.0:
+webpack-dev-middleware@^3.7.3:
+  version "3.7.3"
+  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5"
+  integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==
+  dependencies:
+    memory-fs "^0.4.1"
+    mime "^2.4.4"
+    mkdirp "^0.5.1"
+    range-parser "^1.2.1"
+    webpack-log "^2.0.0"
+
+webpack-dev-middleware@^4.0.4:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e"
+  integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w==
+  dependencies:
+    colorette "^1.2.2"
+    mem "^8.1.1"
+    memfs "^3.2.2"
+    mime-types "^2.1.30"
+    range-parser "^1.2.1"
+    schema-utils "^3.0.0"
+
+webpack-filter-warnings-plugin@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz#dc61521cf4f9b4a336fbc89108a75ae1da951cdb"
+  integrity sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==
+
+webpack-hot-middleware@2.x:
   version "2.21.0"
   resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.21.0.tgz#7b3c113a7a4b301c91e0749573c7aab28b414b52"
   dependencies:
@@ -13373,9 +16184,20 @@ webpack-hot-middleware@2.x, webpack-hot-middleware@^2.21.0:
     querystring "^0.2.0"
     strip-ansi "^3.0.0"
 
-webpack-isomorphic-tools@3.0.5:
-  version "3.0.5"
-  resolved "https://registry.yarnpkg.com/webpack-isomorphic-tools/-/webpack-isomorphic-tools-3.0.5.tgz#60f04dcaf61cfe54c5b6bc771dde1ea3ed9ff3bc"
+webpack-hot-middleware@^2.25.0:
+  version "2.25.0"
+  resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706"
+  integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==
+  dependencies:
+    ansi-html "0.0.7"
+    html-entities "^1.2.0"
+    querystring "^0.2.0"
+    strip-ansi "^3.0.0"
+
+webpack-isomorphic-tools@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/webpack-isomorphic-tools/-/webpack-isomorphic-tools-4.0.0.tgz#2d751f72464d23729fa7496d9968fb2b501285f6"
+  integrity sha512-W8P+7VS7u+Qnp6F7knyOS0EWJq4dSZxKrnIzNTaNafK7B1syYZcq8gmtRpqM8unaLPAPkwGEph8WNNgN+KBYAQ==
   dependencies:
     babel-runtime "^6.6.1"
     colors "^1.1.2"
@@ -13385,13 +16207,24 @@ webpack-isomorphic-tools@3.0.5:
     sync-request "^3.0.1"
     uglify-js "^2.7.0"
 
-webpack-livereload-plugin@1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/webpack-livereload-plugin/-/webpack-livereload-plugin-1.2.0.tgz#df62996139360c166f52ba86cf9624f174a922e0"
-  integrity sha512-zRMlFe5/NmjL5G47J8GmbEKhd8wZ174c+4vqDHq8VU2T4dWJl/1AmR7zs8nHpgLqhOK0WsRt0hC/2CpvoKAZIw==
+webpack-livereload-plugin@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/webpack-livereload-plugin/-/webpack-livereload-plugin-3.0.2.tgz#b12f4ab56c75f03715eb32883bc2f24621f06da1"
+  integrity sha512-5JeZ2dgsvSNG+clrkD/u2sEiPcNk4qwCVZZmW8KpqKcNlkGv7IJjdVrq13+etAmMZYaCF1EGXdHkVFuLgP4zfw==
   dependencies:
+    anymatch "^3.1.1"
+    portfinder "^1.0.17"
+    schema-utils ">1.0.0"
     tiny-lr "^1.1.1"
 
+webpack-log@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
+  integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
+  dependencies:
+    ansi-colors "^3.0.0"
+    uuid "^3.3.2"
+
 webpack-merge@^4.2.2:
   version "4.2.2"
   resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
@@ -13399,14 +16232,7 @@ webpack-merge@^4.2.2:
   dependencies:
     lodash "^4.17.15"
 
-webpack-sources@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54"
-  dependencies:
-    source-list-map "^2.0.0"
-    source-map "~0.6.1"
-
-webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
+webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
   version "1.4.3"
   resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
   integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
@@ -13414,10 +16240,17 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
     source-list-map "^2.0.0"
     source-map "~0.6.1"
 
-webpack@4.x.x:
-  version "4.44.2"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72"
-  integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==
+webpack-virtual-modules@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299"
+  integrity sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==
+  dependencies:
+    debug "^3.0.0"
+
+webpack@4, webpack@4.x.x:
+  version "4.46.0"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
+  integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
   dependencies:
     "@webassemblyjs/ast" "1.9.0"
     "@webassemblyjs/helper-module-context" "1.9.0"
@@ -13427,7 +16260,7 @@ webpack@4.x.x:
     ajv "^6.10.2"
     ajv-keywords "^3.4.1"
     chrome-trace-event "^1.0.2"
-    enhanced-resolve "^4.3.0"
+    enhanced-resolve "^4.5.0"
     eslint-scope "^4.0.3"
     json-parse-better-errors "^1.0.2"
     loader-runner "^2.4.0"
@@ -13443,33 +16276,6 @@ webpack@4.x.x:
     watchpack "^1.7.4"
     webpack-sources "^1.4.1"
 
-webpack@^3.10.0:
-  version "3.10.0"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725"
-  dependencies:
-    acorn "^5.0.0"
-    acorn-dynamic-import "^2.0.0"
-    ajv "^5.1.5"
-    ajv-keywords "^2.0.0"
-    async "^2.1.2"
-    enhanced-resolve "^3.4.0"
-    escope "^3.6.0"
-    interpret "^1.0.0"
-    json-loader "^0.5.4"
-    json5 "^0.5.1"
-    loader-runner "^2.3.0"
-    loader-utils "^1.1.0"
-    memory-fs "~0.4.1"
-    mkdirp "~0.5.0"
-    node-libs-browser "^2.0.0"
-    source-map "^0.5.3"
-    supports-color "^4.2.1"
-    tapable "^0.2.7"
-    uglifyjs-webpack-plugin "^0.4.6"
-    watchpack "^1.4.0"
-    webpack-sources "^1.0.1"
-    yargs "^8.0.2"
-
 websocket-driver@>=0.5.1:
   version "0.7.3"
   resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
@@ -13518,9 +16324,16 @@ whatwg-url@^6.4.0:
     tr46 "^1.0.0"
     webidl-conversions "^4.0.1"
 
-whet.extend@~0.9.9:
-  version "0.9.9"
-  resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
+which-boxed-primitive@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+  integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+  dependencies:
+    is-bigint "^1.0.1"
+    is-boolean-object "^1.1.0"
+    is-number-object "^1.0.4"
+    is-string "^1.0.5"
+    is-symbol "^1.0.3"
 
 which-module@^1.0.0:
   version "1.0.0"
@@ -13530,12 +16343,19 @@ which-module@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
 
-which@1, which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0:
+which@1, which@^1.2.12, which@^1.2.9, which@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
   dependencies:
     isexe "^2.0.0"
 
+which@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+  dependencies:
+    isexe "^2.0.0"
+
 which@^2.0.1:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
@@ -13549,6 +16369,13 @@ wide-align@^1.1.0:
   dependencies:
     string-width "^1.0.2"
 
+widest-line@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
+  integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==
+  dependencies:
+    string-width "^4.0.0"
+
 window-size@0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
@@ -13581,6 +16408,13 @@ worker-farm@^1.7.0:
   dependencies:
     errno "~0.1.7"
 
+worker-rpc@^0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5"
+  integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==
+  dependencies:
+    microevent.ts "~0.1.1"
+
 wrap-ansi@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
@@ -13588,11 +16422,29 @@ wrap-ansi@^2.0.0:
     string-width "^1.0.1"
     strip-ansi "^3.0.1"
 
+wrap-ansi@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+  integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
 wrappy@1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
 
-write-file-atomic@^2.0.0, write-file-atomic@^2.1.0:
+write-file-atomic@^2.1.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
   dependencies:
@@ -13628,13 +16480,10 @@ ws@^7.3.1:
   resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
   integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==
 
-x-xss-protection@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.0.0.tgz#898afb93869b24661cf9c52f9ee8db8ed0764dd9"
-
-xdg-basedir@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
+x-xss-protection@1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.3.0.tgz#3e3a8dd638da80421b0e9fff11a2dbe168f6d52c"
+  integrity sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==
 
 xml-name-validator@^2.0.1:
   version "2.0.1"
@@ -13644,9 +16493,10 @@ xml-name-validator@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
 
-xmldom@0.1.27:
-  version "0.1.27"
-  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
+xmldom@~0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e"
+  integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==
 
 xregexp@^4.3.0:
   version "4.3.0"
@@ -13659,7 +16509,7 @@ xtend@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
 
-xtend@~4.0.1:
+xtend@^4.0.1, xtend@~4.0.1:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
   integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
@@ -13673,6 +16523,11 @@ y18n@^4.0.0:
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
   integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
 
+y18n@^5.0.5:
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
 yallist@^2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
@@ -13682,23 +16537,32 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
 
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
 yaml@^1.10.0:
   version "1.10.0"
   resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
   integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
 
+yaml@^1.7.2:
+  version "1.10.2"
+  resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+  integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yargs-parser@^20.2.2, yargs-parser@^20.2.7:
+  version "20.2.9"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+  integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
 yargs-parser@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
   dependencies:
     camelcase "^3.0.0"
 
-yargs-parser@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
-  dependencies:
-    camelcase "^4.1.0"
-
 yargs-parser@^9.0.2:
   version "9.0.2"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
@@ -13724,6 +16588,19 @@ yargs@^11.0.0:
     y18n "^3.2.1"
     yargs-parser "^9.0.2"
 
+yargs@^16.2.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+  dependencies:
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.0"
+    y18n "^5.0.5"
+    yargs-parser "^20.2.2"
+
 yargs@^7.0.0:
   version "7.1.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
@@ -13742,24 +16619,6 @@ yargs@^7.0.0:
     y18n "^3.2.1"
     yargs-parser "^5.0.0"
 
-yargs@^8.0.2:
-  version "8.0.2"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
-  dependencies:
-    camelcase "^4.1.0"
-    cliui "^3.2.0"
-    decamelize "^1.1.1"
-    get-caller-file "^1.0.1"
-    os-locale "^2.0.0"
-    read-pkg-up "^2.0.0"
-    require-directory "^2.1.1"
-    require-main-filename "^1.0.1"
-    set-blocking "^2.0.0"
-    string-width "^2.0.0"
-    which-module "^2.0.0"
-    y18n "^3.2.1"
-    yargs-parser "^7.0.0"
-
 yargs@~3.10.0:
   version "3.10.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
@@ -13768,3 +16627,13 @@ yargs@~3.10.0:
     cliui "^2.1.0"
     decamelize "^1.0.0"
     window-size "0.1.0"
+
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+zwitch@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"
+  integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==