From 000b05c2dda4a83366fd10905dd21f17a6b455b3 Mon Sep 17 00:00:00 2001
From: Udo Garmann <udo.garmann@th-deg.de>
Date: Thu, 12 Nov 2020 13:00:23 +0100
Subject: [PATCH] Navigation, Routing and Theming added

---
 angular.json                                  |    9 +-
 mit-ws-20-21.wiki                             |    2 +-
 package-lock.json                             | 1447 +++--------------
 package.json                                  |    4 +-
 src/app/app.component.css                     |    7 +
 src/app/app.component.html                    |  547 +------
 src/app/app.component.ts                      |    2 +-
 src/app/app.module.ts                         |   39 +-
 .../international/international.component.css |    0
 .../international.component.html              |    1 +
 .../international.component.spec.ts           |   25 +
 .../international/international.component.ts  |   15 +
 src/app/login/login.component.css             |    0
 src/app/login/login.component.html            |    1 +
 src/app/login/login.component.spec.ts         |   25 +
 src/app/login/login.component.ts              |   15 +
 src/app/navigation/navigation.component.css   |    0
 src/app/navigation/navigation.component.html  |    1 +
 .../navigation/navigation.component.spec.ts   |   25 +
 src/app/navigation/navigation.component.ts    |   15 +
 src/app/rooms/rooms.component.css             |    0
 src/app/rooms/rooms.component.html            |    1 +
 src/app/rooms/rooms.component.spec.ts         |   25 +
 src/app/rooms/rooms.component.ts              |   15 +
 src/app/start/start.component.css             |    0
 src/app/start/start.component.html            |    1 +
 src/app/start/start.component.spec.ts         |   25 +
 src/app/start/start.component.ts              |   15 +
 src/assets/THD-Logo.png                       |  Bin 0 -> 29026 bytes
 src/custom-theme.scss                         |  120 ++
 src/index.html                                |    6 +-
 src/styles.css                                |   10 +-
 32 files changed, 619 insertions(+), 1779 deletions(-)
 create mode 100644 src/app/international/international.component.css
 create mode 100644 src/app/international/international.component.html
 create mode 100644 src/app/international/international.component.spec.ts
 create mode 100644 src/app/international/international.component.ts
 create mode 100644 src/app/login/login.component.css
 create mode 100644 src/app/login/login.component.html
 create mode 100644 src/app/login/login.component.spec.ts
 create mode 100644 src/app/login/login.component.ts
 create mode 100644 src/app/navigation/navigation.component.css
 create mode 100644 src/app/navigation/navigation.component.html
 create mode 100644 src/app/navigation/navigation.component.spec.ts
 create mode 100644 src/app/navigation/navigation.component.ts
 create mode 100644 src/app/rooms/rooms.component.css
 create mode 100644 src/app/rooms/rooms.component.html
 create mode 100644 src/app/rooms/rooms.component.spec.ts
 create mode 100644 src/app/rooms/rooms.component.ts
 create mode 100644 src/app/start/start.component.css
 create mode 100644 src/app/start/start.component.html
 create mode 100644 src/app/start/start.component.spec.ts
 create mode 100644 src/app/start/start.component.ts
 create mode 100644 src/assets/THD-Logo.png
 create mode 100644 src/custom-theme.scss

diff --git a/angular.json b/angular.json
index d45aeb8..650d5ab 100644
--- a/angular.json
+++ b/angular.json
@@ -24,7 +24,7 @@
               "src/assets"
             ],
             "styles": [
-              "src/styles.css"
+              "src/custom-theme.scss"
             ],
             "scripts": []
           },
@@ -88,7 +88,7 @@
               "src/assets"
             ],
             "styles": [
-              "src/styles.css"
+              "src/custom-theme.scss"
             ],
             "scripts": []
           }
@@ -119,6 +119,7 @@
           }
         }
       }
-    }},
+    }
+  },
   "defaultProject": "mit-ws"
-}
+}
\ No newline at end of file
diff --git a/mit-ws-20-21.wiki b/mit-ws-20-21.wiki
index 415a42c..1add6da 160000
--- a/mit-ws-20-21.wiki
+++ b/mit-ws-20-21.wiki
@@ -1 +1 @@
-Subproject commit 415a42c04471c795c74c2e9793dfca93d2d88017
+Subproject commit 1add6da6c629add4d119475c8c713eaf290008ef
diff --git a/package-lock.json b/package-lock.json
index f1f4e89..01f1f50 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -150,6 +150,23 @@
         "tslib": "^2.0.0"
       }
     },
+    "@angular/cdk": {
+      "version": "10.2.7",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-10.2.7.tgz",
+      "integrity": "sha512-ZQjDfTRTn7JuAKsf3jiIdU2XBaxxGBi/ZWYv5Pb3HCl6B4PISsIE5VWRhkoUogoAB0MiFHpjnWeIqknJEm11YQ==",
+      "requires": {
+        "parse5": "^5.0.0",
+        "tslib": "^2.0.0"
+      },
+      "dependencies": {
+        "parse5": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+          "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+          "optional": true
+        }
+      }
+    },
     "@angular/cli": {
       "version": "10.0.8",
       "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.0.8.tgz",
@@ -415,6 +432,14 @@
         "tslib": "^2.0.0"
       }
     },
+    "@angular/material": {
+      "version": "10.2.7",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-10.2.7.tgz",
+      "integrity": "sha512-uk6JkRrKHaM9VFMzX7pWC83YNLVgXPB3D8U1yjSOafCdWwrRZgUHGr8MPlSILCr3o2nxgg5SsKdWcWwHuXXUZA==",
+      "requires": {
+        "tslib": "^2.0.0"
+      }
+    },
     "@angular/platform-browser": {
       "version": "10.0.14",
       "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.0.14.tgz",
@@ -1602,61 +1627,6 @@
         "semver-intersect": "1.4.0"
       }
     },
-    "@types/babel-types": {
-      "version": "7.0.9",
-      "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.9.tgz",
-      "integrity": "sha512-qZLoYeXSTgQuK1h7QQS16hqLGdmqtRmN8w/rl3Au/l5x/zkHx+a4VHrHyBsi1I1vtK2oBHxSzKIu0R5p6spdOA=="
-    },
-    "@types/babylon": {
-      "version": "6.16.5",
-      "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
-      "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
-      "requires": {
-        "@types/babel-types": "*"
-      }
-    },
-    "@types/bluebird": {
-      "version": "3.5.32",
-      "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.32.tgz",
-      "integrity": "sha512-dIOxFfI0C+jz89g6lQ+TqhGgPQ0MxSnh/E4xuC0blhFtyW269+mPG5QeLgbdwst/LvdP8o1y0o/Gz5EHXLec/g=="
-    },
-    "@types/body-parser": {
-      "version": "1.19.0",
-      "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz",
-      "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
-      "requires": {
-        "@types/connect": "*",
-        "@types/node": "*"
-      }
-    },
-    "@types/connect": {
-      "version": "3.4.33",
-      "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz",
-      "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==",
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@types/express": {
-      "version": "4.0.39",
-      "resolved": "https://registry.npmjs.org/@types/express/-/express-4.0.39.tgz",
-      "integrity": "sha512-dBUam7jEjyuEofigUXCtublUHknRZvcRgITlGsTbFgPvnTwtQUt2NgLakbsf+PsGo/Nupqr3IXCYsOpBpofyrA==",
-      "requires": {
-        "@types/body-parser": "*",
-        "@types/express-serve-static-core": "*",
-        "@types/serve-static": "*"
-      }
-    },
-    "@types/express-serve-static-core": {
-      "version": "4.17.13",
-      "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz",
-      "integrity": "sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==",
-      "requires": {
-        "@types/node": "*",
-        "@types/qs": "*",
-        "@types/range-parser": "*"
-      }
-    },
     "@types/glob": {
       "version": "7.1.3",
       "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
@@ -1688,11 +1658,6 @@
       "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==",
       "dev": true
     },
-    "@types/mime": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz",
-      "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q=="
-    },
     "@types/minimatch": {
       "version": "3.0.3",
       "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
@@ -1702,7 +1667,8 @@
     "@types/node": {
       "version": "12.19.1",
       "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.1.tgz",
-      "integrity": "sha512-/xaVmBBjOGh55WCqumLAHXU9VhjGtmyTGqJzFBXRWZzByOXI5JAJNx9xPVGEsNizrNwcec92fQMj458MWfjN1A=="
+      "integrity": "sha512-/xaVmBBjOGh55WCqumLAHXU9VhjGtmyTGqJzFBXRWZzByOXI5JAJNx9xPVGEsNizrNwcec92fQMj458MWfjN1A==",
+      "dev": true
     },
     "@types/q": {
       "version": "1.5.4",
@@ -1710,31 +1676,12 @@
       "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==",
       "dev": true
     },
-    "@types/qs": {
-      "version": "6.9.5",
-      "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz",
-      "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ=="
-    },
-    "@types/range-parser": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
-      "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
-    },
     "@types/selenium-webdriver": {
       "version": "3.0.17",
       "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz",
       "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==",
       "dev": true
     },
-    "@types/serve-static": {
-      "version": "1.13.6",
-      "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.6.tgz",
-      "integrity": "sha512-nuRJmv7jW7VmCVTn+IgYDkkbbDGyIINOeu/G0d74X3lm6E5KfMeQPJhxIt1ayQeQB3cSxvYs1RA/wipYoFB4EA==",
-      "requires": {
-        "@types/mime": "*",
-        "@types/node": "*"
-      }
-    },
     "@types/source-list-map": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
@@ -1973,6 +1920,7 @@
       "version": "1.3.7",
       "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
       "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+      "dev": true,
       "requires": {
         "mime-types": "~2.1.24",
         "negotiator": "0.6.2"
@@ -1984,21 +1932,6 @@
       "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
       "dev": true
     },
-    "acorn-globals": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
-      "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
-      "requires": {
-        "acorn": "^4.0.4"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "4.0.13",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
-          "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
-        }
-      }
-    },
     "adjust-sourcemap-loader": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz",
@@ -2110,26 +2043,6 @@
       "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
       "dev": true
     },
-    "align-text": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
-      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
-      "requires": {
-        "kind-of": "^3.0.2",
-        "longest": "^1.0.1",
-        "repeat-string": "^1.5.2"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
     "alphanum-sort": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
@@ -2157,14 +2070,6 @@
       "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
       "dev": true
     },
-    "ansi-red": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
-      "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
-      "requires": {
-        "ansi-wrap": "0.1.0"
-      }
-    },
     "ansi-regex": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -2180,11 +2085,6 @@
         "color-convert": "^1.9.0"
       }
     },
-    "ansi-wrap": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
-      "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
-    },
     "anymatch": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
@@ -2217,6 +2117,7 @@
       "version": "1.0.10",
       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "dev": true,
       "requires": {
         "sprintf-js": "~1.0.2"
       }
@@ -2294,7 +2195,8 @@
     "asap": {
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
-      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+      "dev": true
     },
     "asn1": {
       "version": "0.2.4",
@@ -2385,14 +2287,6 @@
       "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
       "dev": true
     },
-    "autolinker": {
-      "version": "0.28.1",
-      "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz",
-      "integrity": "sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=",
-      "requires": {
-        "gulp-header": "^1.7.1"
-      }
-    },
     "autoprefixer": {
       "version": "9.8.0",
       "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.0.tgz",
@@ -2484,50 +2378,6 @@
         "object.assign": "^4.1.0"
       }
     },
-    "babel-runtime": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
-      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
-      "requires": {
-        "core-js": "^2.4.0",
-        "regenerator-runtime": "^0.11.0"
-      },
-      "dependencies": {
-        "core-js": {
-          "version": "2.6.11",
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
-          "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
-        },
-        "regenerator-runtime": {
-          "version": "0.11.1",
-          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
-        }
-      }
-    },
-    "babel-types": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
-      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
-      "requires": {
-        "babel-runtime": "^6.26.0",
-        "esutils": "^2.0.2",
-        "lodash": "^4.17.4",
-        "to-fast-properties": "^1.0.3"
-      },
-      "dependencies": {
-        "to-fast-properties": {
-          "version": "1.0.3",
-          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
-          "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
-        }
-      }
-    },
-    "babylon": {
-      "version": "6.18.0",
-      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
-      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
-    },
     "backo2": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
@@ -2613,14 +2463,6 @@
       "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
       "dev": true
     },
-    "basic-auth": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
-      "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
-      "requires": {
-        "safe-buffer": "5.1.2"
-      }
-    },
     "batch": {
       "version": "0.6.1",
       "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
@@ -2675,12 +2517,8 @@
     "bluebird": {
       "version": "3.7.2",
       "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
-      "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
-    },
-    "blueimp-md5": {
-      "version": "2.18.0",
-      "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.18.0.tgz",
-      "integrity": "sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q=="
+      "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+      "dev": true
     },
     "bn.js": {
       "version": "5.1.3",
@@ -2692,6 +2530,7 @@
       "version": "1.19.0",
       "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
       "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+      "dev": true,
       "requires": {
         "bytes": "3.1.0",
         "content-type": "~1.0.4",
@@ -2708,12 +2547,14 @@
         "bytes": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
-          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+          "dev": true
         },
         "debug": {
           "version": "2.6.9",
           "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
           "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
           "requires": {
             "ms": "2.0.0"
           }
@@ -2722,6 +2563,7 @@
           "version": "0.4.24",
           "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
           "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+          "dev": true,
           "requires": {
             "safer-buffer": ">= 2.1.2 < 3"
           }
@@ -2729,7 +2571,8 @@
         "ms": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
         }
       }
     },
@@ -2913,7 +2756,8 @@
     "buffer-from": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+      "dev": true
     },
     "buffer-indexof": {
       "version": "1.1.1",
@@ -3034,7 +2878,8 @@
     "camelcase": {
       "version": "5.3.1",
       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+      "dev": true
     },
     "caniuse-api": {
       "version": "3.0.0",
@@ -3066,15 +2911,6 @@
       "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
       "dev": true
     },
-    "center-align": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
-      "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
-      "requires": {
-        "align-text": "^0.1.3",
-        "lazy-cache": "^1.0.3"
-      }
-    },
     "chalk": {
       "version": "2.4.2",
       "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -3086,25 +2922,12 @@
         "supports-color": "^5.3.0"
       }
     },
-    "character-parser": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
-      "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
-      "requires": {
-        "is-regex": "^1.0.3"
-      }
-    },
     "chardet": {
       "version": "0.7.0",
       "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
       "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
       "dev": true
     },
-    "charset": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz",
-      "integrity": "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg=="
-    },
     "chokidar": {
       "version": "3.4.3",
       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
@@ -3183,21 +3006,6 @@
         }
       }
     },
-    "clean-css": {
-      "version": "4.2.3",
-      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
-      "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
-      "requires": {
-        "source-map": "~0.6.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-        }
-      }
-    },
     "clean-stack": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
@@ -3335,11 +3143,6 @@
         }
       }
     },
-    "coffee-script": {
-      "version": "1.12.7",
-      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
-      "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="
-    },
     "collection-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
@@ -3403,7 +3206,8 @@
     "commander": {
       "version": "2.20.3",
       "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
-      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+      "dev": true
     },
     "commondir": {
       "version": "1.0.1",
@@ -3489,6 +3293,7 @@
       "version": "1.6.2",
       "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
       "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+      "dev": true,
       "requires": {
         "buffer-from": "^1.0.0",
         "inherits": "^2.0.3",
@@ -3496,21 +3301,6 @@
         "typedarray": "^0.0.6"
       }
     },
-    "concat-with-sourcemaps": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz",
-      "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==",
-      "requires": {
-        "source-map": "^0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-        }
-      }
-    },
     "connect": {
       "version": "3.7.0",
       "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
@@ -3540,11 +3330,6 @@
         }
       }
     },
-    "connect-flash": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz",
-      "integrity": "sha1-2GMPJtlaf4UfmVax6MxnMvO2qjA="
-    },
     "connect-history-api-fallback": {
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
@@ -3557,17 +3342,6 @@
       "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
       "dev": true
     },
-    "constantinople": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
-      "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
-      "requires": {
-        "@types/babel-types": "^7.0.0",
-        "@types/babylon": "^6.16.2",
-        "babel-types": "^6.26.0",
-        "babylon": "^6.18.0"
-      }
-    },
     "constants-browserify": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
@@ -3578,6 +3352,7 @@
       "version": "0.5.3",
       "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
       "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+      "dev": true,
       "requires": {
         "safe-buffer": "5.1.2"
       }
@@ -3585,7 +3360,8 @@
     "content-type": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
-      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+      "dev": true
     },
     "convert-source-map": {
       "version": "1.7.0",
@@ -3599,62 +3375,14 @@
     "cookie": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
-      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
-    },
-    "cookie-parser": {
-      "version": "1.4.5",
-      "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
-      "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
-      "requires": {
-        "cookie": "0.4.0",
-        "cookie-signature": "1.0.6"
-      }
-    },
-    "cookie-session": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-1.4.0.tgz",
-      "integrity": "sha512-0hhwD+BUIwMXQraiZP/J7VP2YFzqo6g4WqZlWHtEHQ22t0MeZZrNBSCxC1zcaLAs8ApT3BzAKizx9gW/AP9vNA==",
-      "requires": {
-        "cookies": "0.8.0",
-        "debug": "2.6.9",
-        "on-headers": "~1.0.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-        }
-      }
+      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+      "dev": true
     },
     "cookie-signature": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
-      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
-    },
-    "cookies": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
-      "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
-      "requires": {
-        "depd": "~2.0.0",
-        "keygrip": "~1.1.0"
-      },
-      "dependencies": {
-        "depd": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
-          "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
-        }
-      }
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+      "dev": true
     },
     "copy-concurrently": {
       "version": "1.0.5",
@@ -3784,16 +3512,8 @@
     "core-util-is": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
-      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
-    },
-    "cors": {
-      "version": "2.8.5",
-      "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
-      "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
-      "requires": {
-        "object-assign": "^4",
-        "vary": "^1"
-      }
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+      "dev": true
     },
     "cosmiconfig": {
       "version": "5.2.1",
@@ -4235,7 +3955,8 @@
     "decamelize": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+      "dev": true
     },
     "decode-uri-component": {
       "version": "0.2.0",
@@ -4405,7 +4126,8 @@
     "depd": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+      "dev": true
     },
     "dependency-graph": {
       "version": "0.7.2",
@@ -4426,7 +4148,8 @@
     "destroy": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
-      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+      "dev": true
     },
     "detect-node": {
       "version": "2.0.4",
@@ -4509,11 +4232,6 @@
         "buffer-indexof": "^1.0.0"
       }
     },
-    "doctypes": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
-      "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
-    },
     "dom-serialize": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
@@ -4597,30 +4315,11 @@
         "safer-buffer": "^2.1.0"
       }
     },
-    "ecstatic": {
-      "version": "4.1.4",
-      "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-4.1.4.tgz",
-      "integrity": "sha512-8E4ZLK4uRuB9pwywGpy/B9vcz4gCp6IY7u4cMbeCINr/fjb1v+0wf0Ae2XlfSnG8xZYnE4uaJBjFkYI0bqcIdw==",
-      "requires": {
-        "charset": "^1.0.1",
-        "he": "^1.1.1",
-        "mime": "^2.4.1",
-        "minimist": "^1.1.0",
-        "on-finished": "^2.3.0",
-        "url-join": "^4.0.0"
-      },
-      "dependencies": {
-        "mime": {
-          "version": "2.4.6",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
-          "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA=="
-        }
-      }
-    },
     "ee-first": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
-      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+      "dev": true
     },
     "electron-to-chromium": {
       "version": "1.3.583",
@@ -4651,11 +4350,6 @@
         }
       }
     },
-    "email-validator": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz",
-      "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ=="
-    },
     "emoji-regex": {
       "version": "7.0.3",
       "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
@@ -4671,7 +4365,8 @@
     "encodeurl": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
-      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+      "dev": true
     },
     "encoding": {
       "version": "0.1.13",
@@ -4943,7 +4638,8 @@
     "escape-html": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
-      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+      "dev": true
     },
     "escape-string-regexp": {
       "version": "1.0.5",
@@ -4964,7 +4660,8 @@
     "esprima": {
       "version": "4.0.1",
       "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
-      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+      "dev": true
     },
     "esrecurse": {
       "version": "4.3.0",
@@ -4992,12 +4689,14 @@
     "esutils": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
-      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+      "dev": true
     },
     "etag": {
       "version": "1.8.1",
       "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
-      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+      "dev": true
     },
     "eventemitter3": {
       "version": "4.0.7",
@@ -5105,6 +4804,7 @@
       "version": "4.17.1",
       "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
       "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+      "dev": true,
       "requires": {
         "accepts": "~1.3.7",
         "array-flatten": "1.1.1",
@@ -5141,12 +4841,14 @@
         "array-flatten": {
           "version": "1.1.1",
           "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
-          "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+          "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+          "dev": true
         },
         "debug": {
           "version": "2.6.9",
           "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
           "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
           "requires": {
             "ms": "2.0.0"
           }
@@ -5154,70 +4856,11 @@
         "ms": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-        }
-      }
-    },
-    "express-flash": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/express-flash/-/express-flash-0.0.2.tgz",
-      "integrity": "sha1-I9GovPP5DXB5KOSJ+Whp7K0KzaI=",
-      "requires": {
-        "connect-flash": "0.1.x"
-      }
-    },
-    "express-session": {
-      "version": "1.17.1",
-      "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.1.tgz",
-      "integrity": "sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==",
-      "requires": {
-        "cookie": "0.4.0",
-        "cookie-signature": "1.0.6",
-        "debug": "2.6.9",
-        "depd": "~2.0.0",
-        "on-headers": "~1.0.2",
-        "parseurl": "~1.3.3",
-        "safe-buffer": "5.2.0",
-        "uid-safe": "~2.1.5"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "depd": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
-          "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-        },
-        "safe-buffer": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
-          "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
         }
       }
     },
-    "express-validator": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-3.2.1.tgz",
-      "integrity": "sha1-RWA+fu5pMYXCGY+969QUkl/9NSQ=",
-      "requires": {
-        "@types/bluebird": "^3.4.0",
-        "@types/express": "~4.0.34",
-        "bluebird": "^3.4.0",
-        "lodash": "^4.16.0",
-        "validator": "~6.2.0"
-      }
-    },
     "ext": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
@@ -5443,6 +5086,7 @@
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
       "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+      "dev": true,
       "requires": {
         "debug": "2.6.9",
         "encodeurl": "~1.0.2",
@@ -5457,6 +5101,7 @@
           "version": "2.6.9",
           "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
           "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
           "requires": {
             "ms": "2.0.0"
           }
@@ -5464,7 +5109,8 @@
         "ms": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
         }
       }
     },
@@ -5573,7 +5219,8 @@
     "for-in": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
-      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+      "dev": true
     },
     "forever-agent": {
       "version": "0.6.1",
@@ -5595,7 +5242,8 @@
     "forwarded": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
-      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+      "dev": true
     },
     "fragment-cache": {
       "version": "0.2.1",
@@ -5609,7 +5257,8 @@
     "fresh": {
       "version": "0.5.2",
       "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
-      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+      "dev": true
     },
     "from2": {
       "version": "2.3.0",
@@ -5669,7 +5318,8 @@
     "function-bind": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+      "dev": true
     },
     "genfun": {
       "version": "5.0.0",
@@ -5686,7 +5336,8 @@
     "get-caller-file": {
       "version": "2.0.5",
       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
-      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+      "dev": true
     },
     "get-stream": {
       "version": "4.1.0",
@@ -5761,182 +5412,6 @@
       "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
       "dev": true
     },
-    "gravatar": {
-      "version": "1.8.1",
-      "resolved": "https://registry.npmjs.org/gravatar/-/gravatar-1.8.1.tgz",
-      "integrity": "sha512-18frnfVp4kRYkM/eQW32Mfwlsh/KMbwd3S6nkescBZHioobflFEFHsvM71qZAkUSLNifyi2uoI+TuGxJAnQIOA==",
-      "requires": {
-        "blueimp-md5": "^2.16.0",
-        "email-validator": "^2.0.4",
-        "querystring": "0.2.0",
-        "yargs": "^15.4.1"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
-          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
-        },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "cliui": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
-          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
-          "requires": {
-            "string-width": "^4.2.0",
-            "strip-ansi": "^6.0.0",
-            "wrap-ansi": "^6.2.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-        },
-        "emoji-regex": {
-          "version": "8.0.0",
-          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-          "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
-        },
-        "find-up": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-          "requires": {
-            "locate-path": "^5.0.0",
-            "path-exists": "^4.0.0"
-          }
-        },
-        "is-fullwidth-code-point": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
-        },
-        "locate-path": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-          "requires": {
-            "p-locate": "^4.1.0"
-          }
-        },
-        "p-locate": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-          "requires": {
-            "p-limit": "^2.2.0"
-          }
-        },
-        "path-exists": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
-        },
-        "string-width": {
-          "version": "4.2.0",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
-          "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
-          "requires": {
-            "emoji-regex": "^8.0.0",
-            "is-fullwidth-code-point": "^3.0.0",
-            "strip-ansi": "^6.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
-          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
-          "requires": {
-            "ansi-regex": "^5.0.0"
-          }
-        },
-        "wrap-ansi": {
-          "version": "6.2.0",
-          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
-          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
-          "requires": {
-            "ansi-styles": "^4.0.0",
-            "string-width": "^4.1.0",
-            "strip-ansi": "^6.0.0"
-          }
-        },
-        "yargs": {
-          "version": "15.4.1",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
-          "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
-          "requires": {
-            "cliui": "^6.0.0",
-            "decamelize": "^1.2.0",
-            "find-up": "^4.1.0",
-            "get-caller-file": "^2.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^2.0.0",
-            "set-blocking": "^2.0.0",
-            "string-width": "^4.2.0",
-            "which-module": "^2.0.0",
-            "y18n": "^4.0.0",
-            "yargs-parser": "^18.1.2"
-          }
-        },
-        "yargs-parser": {
-          "version": "18.1.3",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
-          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    },
-    "gray-matter": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz",
-      "integrity": "sha1-MELZrewqHe1qdwep7SOA+KF6Qw4=",
-      "requires": {
-        "ansi-red": "^0.1.1",
-        "coffee-script": "^1.12.4",
-        "extend-shallow": "^2.0.1",
-        "js-yaml": "^3.8.1",
-        "toml": "^2.3.2"
-      },
-      "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
-      }
-    },
-    "gulp-header": {
-      "version": "1.8.12",
-      "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz",
-      "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==",
-      "requires": {
-        "concat-with-sourcemaps": "*",
-        "lodash.template": "^4.4.0",
-        "through2": "^2.0.0"
-      }
-    },
     "handle-thing": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
@@ -5963,6 +5438,7 @@
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
       "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+      "dev": true,
       "requires": {
         "function-bind": "^1.1.1"
       }
@@ -6008,7 +5484,8 @@
     "has-symbols": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
-      "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
+      "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+      "dev": true
     },
     "has-value": {
       "version": "1.0.0",
@@ -6102,11 +5579,6 @@
         "minimalistic-assert": "^1.0.1"
       }
     },
-    "he": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
-      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
-    },
     "hex-color-regex": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
@@ -6202,6 +5674,7 @@
       "version": "1.7.2",
       "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
       "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+      "dev": true,
       "requires": {
         "depd": "~1.1.2",
         "inherits": "2.0.3",
@@ -6213,7 +5686,8 @@
         "inherits": {
           "version": "2.0.3",
           "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
         }
       }
     },
@@ -6558,7 +6032,8 @@
     "inherits": {
       "version": "2.0.4",
       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
     },
     "ini": {
       "version": "1.3.5",
@@ -6710,7 +6185,8 @@
     "ipaddr.js": {
       "version": "1.9.1",
       "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
-      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+      "dev": true
     },
     "is-absolute-url": {
       "version": "2.1.0",
@@ -6762,7 +6238,8 @@
     "is-buffer": {
       "version": "1.1.6",
       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
-      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+      "dev": true
     },
     "is-callable": {
       "version": "1.2.2",
@@ -6788,6 +6265,7 @@
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz",
       "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==",
+      "dev": true,
       "requires": {
         "has": "^1.0.3"
       }
@@ -6849,26 +6327,11 @@
       "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==",
       "dev": true
     },
-    "is-expression": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
-      "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
-      "requires": {
-        "acorn": "~4.0.2",
-        "object-assign": "^4.0.1"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "4.0.13",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
-          "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
-        }
-      }
-    },
     "is-extendable": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
-      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+      "dev": true
     },
     "is-extglob": {
       "version": "2.1.1",
@@ -6949,19 +6412,16 @@
       "version": "2.0.4",
       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
       "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "dev": true,
       "requires": {
         "isobject": "^3.0.1"
       }
     },
-    "is-promise": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
-      "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
-    },
     "is-regex": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
       "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+      "dev": true,
       "requires": {
         "has-symbols": "^1.0.1"
       }
@@ -7020,7 +6480,8 @@
     "isarray": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+      "dev": true
     },
     "isbinaryfile": {
       "version": "4.0.6",
@@ -7037,7 +6498,8 @@
     "isobject": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+      "dev": true
     },
     "isstream": {
       "version": "0.1.2",
@@ -7227,52 +6689,6 @@
         }
       }
     },
-    "jingo": {
-      "version": "1.9.6",
-      "resolved": "https://registry.npmjs.org/jingo/-/jingo-1.9.6.tgz",
-      "integrity": "sha512-oOEkiMEbfv1LClXk6dnj0hfyCl2csw5YcC/l0Tnd6KvLPdTzDofIrV+nettN/luh4uIIcGebTMESjnk+xJyJ5w==",
-      "requires": {
-        "bluebird": "^3.5.0",
-        "body-parser": "^1.10.0",
-        "commander": "^2.5.1",
-        "cookie-parser": "^1.3.3",
-        "cookie-session": "^1.1.0",
-        "cors": "^2.7.1",
-        "ecstatic": "^4.1.2",
-        "express": "^4.10.6",
-        "express-flash": "0.0.2",
-        "express-session": "^1.9.3",
-        "express-validator": "^3.1.0",
-        "gravatar": "^1.1.0",
-        "js-yaml": "^3.14.0",
-        "lodash": "^4.17.15",
-        "markdown-toc": "^0.11.7",
-        "marked": "^0.3.19",
-        "method-override": "^2.3.0",
-        "morgan": "^1.5.0",
-        "node-syntaxhighlighter": "*",
-        "passport": "^0.2.0",
-        "passport-github": "^0.1.5",
-        "passport-google-oauth": "^0.1.5",
-        "passport-local": "^1.0.0",
-        "pug": "^2.0.0-rc.4",
-        "semver": "^5.3.0",
-        "serve-favicon": "^2.1.7",
-        "transliteration": "^0.2.1"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
-        }
-      }
-    },
-    "js-stringify": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
-      "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds="
-    },
     "js-tokens": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -7283,6 +6699,7 @@
       "version": "3.14.0",
       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
       "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+      "dev": true,
       "requires": {
         "argparse": "^1.0.7",
         "esprima": "^4.0.0"
@@ -7372,15 +6789,6 @@
         "verror": "1.10.0"
       }
     },
-    "jstransformer": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
-      "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
-      "requires": {
-        "is-promise": "^2.0.0",
-        "promise": "^7.0.1"
-      }
-    },
     "jszip": {
       "version": "3.5.0",
       "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz",
@@ -7641,14 +7049,6 @@
         "source-map-support": "^0.5.5"
       }
     },
-    "keygrip": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
-      "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
-      "requires": {
-        "tsscmp": "1.0.6"
-      }
-    },
     "killable": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
@@ -7661,11 +7061,6 @@
       "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
       "dev": true
     },
-    "lazy-cache": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
-      "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
-    },
     "less": {
       "version": "3.12.2",
       "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz",
@@ -7773,12 +7168,8 @@
     "lodash": {
       "version": "4.17.20",
       "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
-      "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
-    },
-    "lodash._reinterpolate": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
-      "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
+      "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+      "dev": true
     },
     "lodash.clonedeep": {
       "version": "4.5.0",
@@ -7798,23 +7189,6 @@
       "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
       "dev": true
     },
-    "lodash.template": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
-      "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
-      "requires": {
-        "lodash._reinterpolate": "^3.0.0",
-        "lodash.templatesettings": "^4.0.0"
-      }
-    },
-    "lodash.templatesettings": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
-      "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
-      "requires": {
-        "lodash._reinterpolate": "^3.0.0"
-      }
-    },
     "lodash.uniq": {
       "version": "4.5.0",
       "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@@ -7849,11 +7223,6 @@
       "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==",
       "dev": true
     },
-    "longest": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
-      "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
-    },
     "loose-envify": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -7996,32 +7365,6 @@
         "object-visit": "^1.0.0"
       }
     },
-    "markdown-link": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz",
-      "integrity": "sha1-MsXGUZmmRXMWMi0eQinRNAfIx88="
-    },
-    "markdown-toc": {
-      "version": "0.11.9",
-      "resolved": "https://registry.npmjs.org/markdown-toc/-/markdown-toc-0.11.9.tgz",
-      "integrity": "sha1-lh80wbLDHSghiO7v1PkHyMB6bUw=",
-      "requires": {
-        "concat-stream": "^1.5.1",
-        "gray-matter": "^2.0.2",
-        "lazy-cache": "^1.0.2",
-        "markdown-link": "^0.1.1",
-        "minimist": "^1.2.0",
-        "mixin-deep": "^1.1.3",
-        "object.pick": "^1.1.1",
-        "remarkable": "^1.6.1",
-        "repeat-string": "^1.5.2"
-      }
-    },
-    "marked": {
-      "version": "0.3.19",
-      "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz",
-      "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg=="
-    },
     "md5.js": {
       "version": "1.3.5",
       "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
@@ -8042,7 +7385,8 @@
     "media-typer": {
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
-      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+      "dev": true
     },
     "memory-fs": {
       "version": "0.5.0",
@@ -8057,7 +7401,8 @@
     "merge-descriptors": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
-      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+      "dev": true
     },
     "merge-source-map": {
       "version": "1.1.0",
@@ -8088,36 +7433,11 @@
       "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
       "dev": true
     },
-    "method-override": {
-      "version": "2.3.10",
-      "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz",
-      "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=",
-      "requires": {
-        "debug": "2.6.9",
-        "methods": "~1.1.2",
-        "parseurl": "~1.3.2",
-        "vary": "~1.1.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-        }
-      }
-    },
     "methods": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
-      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+      "dev": true
     },
     "micromatch": {
       "version": "4.0.2",
@@ -8150,17 +7470,20 @@
     "mime": {
       "version": "1.6.0",
       "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
-      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+      "dev": true
     },
     "mime-db": {
       "version": "1.44.0",
       "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
-      "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
+      "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
+      "dev": true
     },
     "mime-types": {
       "version": "2.1.27",
       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
       "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+      "dev": true,
       "requires": {
         "mime-db": "1.44.0"
       }
@@ -8252,7 +7575,8 @@
     "minimist": {
       "version": "1.2.5",
       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+      "dev": true
     },
     "minipass": {
       "version": "3.1.3",
@@ -8322,6 +7646,7 @@
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
       "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+      "dev": true,
       "requires": {
         "for-in": "^1.0.2",
         "is-extendable": "^1.0.1"
@@ -8331,6 +7656,7 @@
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
           "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
           "requires": {
             "is-plain-object": "^2.0.4"
           }
@@ -8346,38 +7672,6 @@
         "minimist": "^1.2.5"
       }
     },
-    "morgan": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
-      "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
-      "requires": {
-        "basic-auth": "~2.0.1",
-        "debug": "2.6.9",
-        "depd": "~2.0.0",
-        "on-finished": "~2.3.0",
-        "on-headers": "~1.0.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "depd": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
-          "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
-        }
-      }
-    },
     "move-concurrently": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
@@ -8477,7 +7771,8 @@
     "negotiator": {
       "version": "0.6.2",
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
-      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+      "dev": true
     },
     "neo-async": {
       "version": "2.6.2",
@@ -8574,11 +7869,6 @@
       "integrity": "sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg==",
       "dev": true
     },
-    "node-syntaxhighlighter": {
-      "version": "0.8.1",
-      "resolved": "https://registry.npmjs.org/node-syntaxhighlighter/-/node-syntaxhighlighter-0.8.1.tgz",
-      "integrity": "sha1-ezTh+7Ecj8jgpirb4jLepa5Y6Jo="
-    },
     "normalize-package-data": {
       "version": "2.5.0",
       "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@@ -8751,11 +8041,6 @@
       "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
       "dev": true
     },
-    "oauth": {
-      "version": "0.9.15",
-      "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
-      "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE="
-    },
     "oauth-sign": {
       "version": "0.9.0",
       "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
@@ -8765,7 +8050,8 @@
     "object-assign": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+      "dev": true
     },
     "object-component": {
       "version": "0.0.3",
@@ -8888,6 +8174,7 @@
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
       "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "dev": true,
       "requires": {
         "isobject": "^3.0.1"
       }
@@ -8935,6 +8222,7 @@
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
       "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+      "dev": true,
       "requires": {
         "ee-first": "1.1.1"
       }
@@ -8942,7 +8230,8 @@
     "on-headers": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
-      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+      "dev": true
     },
     "once": {
       "version": "1.4.0",
@@ -9118,6 +8407,7 @@
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
       "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "dev": true,
       "requires": {
         "p-try": "^2.0.0"
       }
@@ -9152,7 +8442,8 @@
     "p-try": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+      "dev": true
     },
     "pacote": {
       "version": "9.5.12",
@@ -9392,7 +8683,8 @@
     "parseurl": {
       "version": "1.3.3",
       "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
-      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+      "dev": true
     },
     "pascalcase": {
       "version": "0.1.1",
@@ -9400,67 +8692,6 @@
       "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
       "dev": true
     },
-    "passport": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/passport/-/passport-0.2.2.tgz",
-      "integrity": "sha1-nDjxe+uSnz2Br3uIOOhDDbhwPys=",
-      "requires": {
-        "passport-strategy": "1.x.x",
-        "pause": "0.0.1"
-      }
-    },
-    "passport-github": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/passport-github/-/passport-github-0.1.5.tgz",
-      "integrity": "sha1-JY67da9AzcTjrxG+OhOLdcH4ZcE=",
-      "requires": {
-        "passport-oauth": "0.1.x",
-        "pkginfo": "0.2.x"
-      }
-    },
-    "passport-google-oauth": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/passport-google-oauth/-/passport-google-oauth-0.1.5.tgz",
-      "integrity": "sha1-/WtIz5sgKDchx2NukdCUwWqGcdc=",
-      "requires": {
-        "passport-oauth": "~0.1.4",
-        "pkginfo": "0.2.x"
-      }
-    },
-    "passport-local": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
-      "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=",
-      "requires": {
-        "passport-strategy": "1.x.x"
-      }
-    },
-    "passport-oauth": {
-      "version": "0.1.15",
-      "resolved": "https://registry.npmjs.org/passport-oauth/-/passport-oauth-0.1.15.tgz",
-      "integrity": "sha1-+3Tgr+hGFL+iVsX8cWzFa7/IzsA=",
-      "requires": {
-        "oauth": "0.9.x",
-        "passport": "~0.1.1",
-        "pkginfo": "0.2.x"
-      },
-      "dependencies": {
-        "passport": {
-          "version": "0.1.18",
-          "resolved": "https://registry.npmjs.org/passport/-/passport-0.1.18.tgz",
-          "integrity": "sha1-yCZEedy2QUytu2Z1LRKzfgtlJaE=",
-          "requires": {
-            "pause": "0.0.1",
-            "pkginfo": "0.2.x"
-          }
-        }
-      }
-    },
-    "passport-strategy": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
-      "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
-    },
     "path-browserify": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
@@ -9500,12 +8731,14 @@
     "path-parse": {
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
-      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+      "dev": true
     },
     "path-to-regexp": {
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
-      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+      "dev": true
     },
     "path-type": {
       "version": "4.0.0",
@@ -9513,11 +8746,6 @@
       "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
       "dev": true
     },
-    "pause": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
-      "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
-    },
     "pbkdf2": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
@@ -9573,11 +8801,6 @@
         "find-up": "^3.0.0"
       }
     },
-    "pkginfo": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz",
-      "integrity": "sha1-cjnEKl72wwuPMoQ52bn/cQQkkPg="
-    },
     "pnp-webpack-plugin": {
       "version": "1.6.4",
       "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
@@ -10283,15 +9506,8 @@
     "process-nextick-args": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
-      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
-    },
-    "promise": {
-      "version": "7.3.1",
-      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
-      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
-      "requires": {
-        "asap": "~2.0.3"
-      }
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+      "dev": true
     },
     "promise-inflight": {
       "version": "1.0.1",
@@ -10680,6 +9896,7 @@
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
       "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+      "dev": true,
       "requires": {
         "forwarded": "~0.1.2",
         "ipaddr.js": "1.9.1"
@@ -10719,120 +9936,6 @@
         }
       }
     },
-    "pug": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz",
-      "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==",
-      "requires": {
-        "pug-code-gen": "^2.0.2",
-        "pug-filters": "^3.1.1",
-        "pug-lexer": "^4.1.0",
-        "pug-linker": "^3.0.6",
-        "pug-load": "^2.0.12",
-        "pug-parser": "^5.0.1",
-        "pug-runtime": "^2.0.5",
-        "pug-strip-comments": "^1.0.4"
-      }
-    },
-    "pug-attrs": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz",
-      "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==",
-      "requires": {
-        "constantinople": "^3.0.1",
-        "js-stringify": "^1.0.1",
-        "pug-runtime": "^2.0.5"
-      }
-    },
-    "pug-code-gen": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz",
-      "integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==",
-      "requires": {
-        "constantinople": "^3.1.2",
-        "doctypes": "^1.1.0",
-        "js-stringify": "^1.0.1",
-        "pug-attrs": "^2.0.4",
-        "pug-error": "^1.3.3",
-        "pug-runtime": "^2.0.5",
-        "void-elements": "^2.0.1",
-        "with": "^5.0.0"
-      }
-    },
-    "pug-error": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz",
-      "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ=="
-    },
-    "pug-filters": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz",
-      "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==",
-      "requires": {
-        "clean-css": "^4.1.11",
-        "constantinople": "^3.0.1",
-        "jstransformer": "1.0.0",
-        "pug-error": "^1.3.3",
-        "pug-walk": "^1.1.8",
-        "resolve": "^1.1.6",
-        "uglify-js": "^2.6.1"
-      }
-    },
-    "pug-lexer": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz",
-      "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==",
-      "requires": {
-        "character-parser": "^2.1.1",
-        "is-expression": "^3.0.0",
-        "pug-error": "^1.3.3"
-      }
-    },
-    "pug-linker": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz",
-      "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==",
-      "requires": {
-        "pug-error": "^1.3.3",
-        "pug-walk": "^1.1.8"
-      }
-    },
-    "pug-load": {
-      "version": "2.0.12",
-      "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz",
-      "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==",
-      "requires": {
-        "object-assign": "^4.1.0",
-        "pug-walk": "^1.1.8"
-      }
-    },
-    "pug-parser": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz",
-      "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==",
-      "requires": {
-        "pug-error": "^1.3.3",
-        "token-stream": "0.0.1"
-      }
-    },
-    "pug-runtime": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz",
-      "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw=="
-    },
-    "pug-strip-comments": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz",
-      "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==",
-      "requires": {
-        "pug-error": "^1.3.3"
-      }
-    },
-    "pug-walk": {
-      "version": "1.1.8",
-      "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz",
-      "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA=="
-    },
     "pump": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -10887,7 +9990,8 @@
     "qs": {
       "version": "6.7.0",
       "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
-      "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+      "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+      "dev": true
     },
     "query-string": {
       "version": "4.3.4",
@@ -10902,7 +10006,8 @@
     "querystring": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
-      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+      "dev": true
     },
     "querystring-es3": {
       "version": "0.2.1",
@@ -10916,11 +10021,6 @@
       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
       "dev": true
     },
-    "random-bytes": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
-      "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
-    },
     "randombytes": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -10943,12 +10043,14 @@
     "range-parser": {
       "version": "1.2.1",
       "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
-      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+      "dev": true
     },
     "raw-body": {
       "version": "2.4.0",
       "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
       "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+      "dev": true,
       "requires": {
         "bytes": "3.1.0",
         "http-errors": "1.7.2",
@@ -10959,12 +10061,14 @@
         "bytes": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
-          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+          "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+          "dev": true
         },
         "iconv-lite": {
           "version": "0.4.24",
           "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
           "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+          "dev": true,
           "requires": {
             "safer-buffer": ">= 2.1.2 < 3"
           }
@@ -11025,6 +10129,7 @@
       "version": "2.3.7",
       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
       "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+      "dev": true,
       "requires": {
         "core-util-is": "~1.0.0",
         "inherits": "~2.0.3",
@@ -11176,15 +10281,6 @@
         }
       }
     },
-    "remarkable": {
-      "version": "1.7.4",
-      "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz",
-      "integrity": "sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==",
-      "requires": {
-        "argparse": "^1.0.10",
-        "autolinker": "~0.28.0"
-      }
-    },
     "remove-trailing-separator": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
@@ -11200,7 +10296,8 @@
     "repeat-string": {
       "version": "1.6.1",
       "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
-      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+      "dev": true
     },
     "request": {
       "version": "2.88.2",
@@ -11241,12 +10338,14 @@
     "require-directory": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+      "dev": true
     },
     "require-main-filename": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
-      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+      "dev": true
     },
     "requires-port": {
       "version": "1.0.0",
@@ -11258,6 +10357,7 @@
       "version": "1.18.1",
       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
       "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
+      "dev": true,
       "requires": {
         "is-core-module": "^2.0.0",
         "path-parse": "^1.0.6"
@@ -11426,14 +10526,6 @@
       "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
       "dev": true
     },
-    "right-align": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
-      "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
-      "requires": {
-        "align-text": "^0.1.1"
-      }
-    },
     "rimraf": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -11501,7 +10593,8 @@
     "safe-buffer": {
       "version": "5.1.2",
       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+      "dev": true
     },
     "safe-regex": {
       "version": "1.1.0",
@@ -11515,7 +10608,8 @@
     "safer-buffer": {
       "version": "2.1.2",
       "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "dev": true
     },
     "sass": {
       "version": "1.26.5",
@@ -11698,6 +10792,7 @@
       "version": "0.17.1",
       "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
       "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+      "dev": true,
       "requires": {
         "debug": "2.6.9",
         "depd": "~1.1.2",
@@ -11718,6 +10813,7 @@
           "version": "2.6.9",
           "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
           "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
           "requires": {
             "ms": "2.0.0"
           },
@@ -11725,14 +10821,16 @@
             "ms": {
               "version": "2.0.0",
               "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+              "dev": true
             }
           }
         },
         "ms": {
           "version": "2.1.1",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
         }
       }
     },
@@ -11745,30 +10843,6 @@
         "randombytes": "^2.1.0"
       }
     },
-    "serve-favicon": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz",
-      "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=",
-      "requires": {
-        "etag": "~1.8.1",
-        "fresh": "0.5.2",
-        "ms": "2.1.1",
-        "parseurl": "~1.3.2",
-        "safe-buffer": "5.1.1"
-      },
-      "dependencies": {
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
-        },
-        "safe-buffer": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
-          "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
-        }
-      }
-    },
     "serve-index": {
       "version": "1.9.1",
       "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
@@ -11829,6 +10903,7 @@
       "version": "1.14.1",
       "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
       "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+      "dev": true,
       "requires": {
         "encodeurl": "~1.0.2",
         "escape-html": "~1.0.3",
@@ -11839,7 +10914,8 @@
     "set-blocking": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+      "dev": true
     },
     "set-immediate-shim": {
       "version": "1.0.1",
@@ -11879,7 +10955,8 @@
     "setprototypeof": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
-      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+      "dev": true
     },
     "sha.js": {
       "version": "2.4.11",
@@ -12482,7 +11559,8 @@
     "sprintf-js": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+      "dev": true
     },
     "sshpk": {
       "version": "1.16.1",
@@ -12540,7 +11618,8 @@
     "statuses": {
       "version": "1.5.0",
       "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+      "dev": true
     },
     "stream-browserify": {
       "version": "2.0.2",
@@ -12669,6 +11748,7 @@
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
       "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "dev": true,
       "requires": {
         "safe-buffer": "~5.1.0"
       }
@@ -12921,6 +12001,7 @@
       "version": "2.0.5",
       "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
       "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+      "dev": true,
       "requires": {
         "readable-stream": "~2.3.6",
         "xtend": "~4.0.1"
@@ -13018,17 +12099,8 @@
     "toidentifier": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
-      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
-    },
-    "token-stream": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz",
-      "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo="
-    },
-    "toml": {
-      "version": "2.3.6",
-      "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz",
-      "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ=="
+      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+      "dev": true
     },
     "tough-cookie": {
       "version": "2.5.0",
@@ -13049,11 +12121,6 @@
         "punycode": "^2.1.1"
       }
     },
-    "transliteration": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/transliteration/-/transliteration-0.2.1.tgz",
-      "integrity": "sha1-sbUmc4ByKaErwo2ku0qJ5ysf3r4="
-    },
     "tree-kill": {
       "version": "1.2.2",
       "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
@@ -13119,11 +12186,6 @@
         }
       }
     },
-    "tsscmp": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
-      "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
-    },
     "tsutils": {
       "version": "2.29.0",
       "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
@@ -13178,6 +12240,7 @@
       "version": "1.6.18",
       "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
       "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+      "dev": true,
       "requires": {
         "media-typer": "0.3.0",
         "mime-types": "~2.1.24"
@@ -13186,7 +12249,8 @@
     "typedarray": {
       "version": "0.0.6",
       "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
-      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+      "dev": true
     },
     "typescript": {
       "version": "3.9.7",
@@ -13200,63 +12264,6 @@
       "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==",
       "dev": true
     },
-    "uglify-js": {
-      "version": "2.8.29",
-      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
-      "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
-      "requires": {
-        "source-map": "~0.5.1",
-        "uglify-to-browserify": "~1.0.0",
-        "yargs": "~3.10.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
-          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
-        },
-        "cliui": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
-          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
-          "requires": {
-            "center-align": "^0.1.1",
-            "right-align": "^0.1.1",
-            "wordwrap": "0.0.2"
-          }
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
-        },
-        "yargs": {
-          "version": "3.10.0",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
-          "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
-          "requires": {
-            "camelcase": "^1.0.2",
-            "cliui": "^2.1.0",
-            "decamelize": "^1.0.0",
-            "window-size": "0.1.0"
-          }
-        }
-      }
-    },
-    "uglify-to-browserify": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
-      "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
-      "optional": true
-    },
-    "uid-safe": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
-      "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
-      "requires": {
-        "random-bytes": "~1.0.0"
-      }
-    },
     "unicode-canonical-property-names-ecmascript": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
@@ -13358,7 +12365,8 @@
     "unpipe": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
-      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+      "dev": true
     },
     "unquote": {
       "version": "1.1.1",
@@ -13445,11 +12453,6 @@
         }
       }
     },
-    "url-join": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
-      "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="
-    },
     "url-parse": {
       "version": "1.4.7",
       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
@@ -13486,7 +12489,8 @@
     "util-deprecate": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+      "dev": true
     },
     "util-promisify": {
       "version": "2.1.0",
@@ -13533,7 +12537,8 @@
     "utils-merge": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
-      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+      "dev": true
     },
     "uuid": {
       "version": "3.4.0",
@@ -13560,15 +12565,11 @@
         "builtins": "^1.0.3"
       }
     },
-    "validator": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/validator/-/validator-6.2.1.tgz",
-      "integrity": "sha1-vFdbeNFb6y4zimZbqVMMf0Ce9mc="
-    },
     "vary": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
-      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+      "dev": true
     },
     "vendors": {
       "version": "1.0.4",
@@ -13596,7 +12597,8 @@
     "void-elements": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
-      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
+      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+      "dev": true
     },
     "watchpack": {
       "version": "1.7.4",
@@ -14534,33 +13536,8 @@
     "which-module": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
-    },
-    "window-size": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
-      "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
-    },
-    "with": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
-      "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
-      "requires": {
-        "acorn": "^3.1.0",
-        "acorn-globals": "^3.0.0"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "3.3.0",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
-          "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
-        }
-      }
-    },
-    "wordwrap": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
-      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
+      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+      "dev": true
     },
     "worker-farm": {
       "version": "1.7.0",
@@ -14670,12 +13647,14 @@
     "xtend": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
-      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+      "dev": true
     },
     "y18n": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
-      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+      "dev": true
     },
     "yallist": {
       "version": "4.0.0",
diff --git a/package.json b/package.json
index d64f947..8d14d7d 100644
--- a/package.json
+++ b/package.json
@@ -12,10 +12,12 @@
   "private": true,
   "dependencies": {
     "@angular/animations": "~10.0.5",
+    "@angular/cdk": "^10.2.7",
     "@angular/common": "~10.0.5",
     "@angular/compiler": "~10.0.5",
     "@angular/core": "~10.0.5",
     "@angular/forms": "~10.0.5",
+    "@angular/material": "^10.2.7",
     "@angular/platform-browser": "~10.0.5",
     "@angular/platform-browser-dynamic": "~10.0.5",
     "@angular/router": "~10.0.5",
@@ -43,4 +45,4 @@
     "tslint": "~6.1.0",
     "typescript": "~3.9.5"
   }
-}
\ No newline at end of file
+}
diff --git a/src/app/app.component.css b/src/app/app.component.css
index e69de29..ca41455 100644
--- a/src/app/app.component.css
+++ b/src/app/app.component.css
@@ -0,0 +1,7 @@
+.main {
+    margin: 10px;
+}
+
+.flexSpaceBetween {
+  justify-content: space-around;
+}
\ No newline at end of file
diff --git a/src/app/app.component.html b/src/app/app.component.html
index fdb26fb..e3bc556 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,532 +1,15 @@
-<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
-<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->
-<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->
-<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->
-<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
-<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->
-<!-- * * * * * * * to get started with your project! * * * * * * * * -->
-<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
-
-<style>
-  :host {
-    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-    font-size: 14px;
-    color: #333;
-    box-sizing: border-box;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-  }
-
-  h1,
-  h2,
-  h3,
-  h4,
-  h5,
-  h6 {
-    margin: 8px 0;
-  }
-
-  p {
-    margin: 0;
-  }
-
-  .spacer {
-    flex: 1;
-  }
-
-  .toolbar {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    height: 60px;
-    display: flex;
-    align-items: center;
-    background-color: #1976d2;
-    color: white;
-    font-weight: 600;
-  }
-
-  .toolbar img {
-    margin: 0 16px;
-  }
-
-  .toolbar #twitter-logo {
-    height: 40px;
-    margin: 0 16px;
-  }
-
-  .toolbar #twitter-logo:hover {
-    opacity: 0.8;
-  }
-
-  .content {
-    display: flex;
-    margin: 82px auto 32px;
-    padding: 0 16px;
-    max-width: 960px;
-    flex-direction: column;
-    align-items: center;
-  }
-
-  svg.material-icons {
-    height: 24px;
-    width: auto;
-  }
-
-  svg.material-icons:not(:last-child) {
-    margin-right: 8px;
-  }
-
-  .card svg.material-icons path {
-    fill: #888;
-  }
-
-  .card-container {
-    display: flex;
-    flex-wrap: wrap;
-    justify-content: center;
-    margin-top: 16px;
-  }
-
-  .card {
-    border-radius: 4px;
-    border: 1px solid #eee;
-    background-color: #fafafa;
-    height: 40px;
-    width: 200px;
-    margin: 0 8px 16px;
-    padding: 16px;
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-    align-items: center;
-    transition: all 0.2s ease-in-out;
-    line-height: 24px;
-  }
-
-  .card-container .card:not(:last-child) {
-    margin-right: 0;
-  }
-
-  .card.card-small {
-    height: 16px;
-    width: 168px;
-  }
-
-  .card-container .card:not(.highlight-card) {
-    cursor: pointer;
-  }
-
-  .card-container .card:not(.highlight-card):hover {
-    transform: translateY(-3px);
-    box-shadow: 0 4px 17px rgba(0, 0, 0, 0.35);
-  }
-
-  .card-container .card:not(.highlight-card):hover .material-icons path {
-    fill: rgb(105, 103, 103);
-  }
-
-  .card.highlight-card {
-    background-color: #1976d2;
-    color: white;
-    font-weight: 600;
-    border: none;
-    width: auto;
-    min-width: 30%;
-    position: relative;
-  }
-
-  .card.card.highlight-card span {
-    margin-left: 60px;
-  }
-
-  svg#rocket {
-    width: 80px;
-    position: absolute;
-    left: -10px;
-    top: -24px;
-  }
-
-  svg#rocket-smoke {
-    height: calc(100vh - 95px);
-    position: absolute;
-    top: 10px;
-    right: 180px;
-    z-index: -10;
-  }
-
-  a,
-  a:visited,
-  a:hover {
-    color: #1976d2;
-    text-decoration: none;
-  }
-
-  a:hover {
-    color: #125699;
-  }
-
-  .terminal {
-    position: relative;
-    width: 80%;
-    max-width: 600px;
-    border-radius: 6px;
-    padding-top: 45px;
-    margin-top: 8px;
-    overflow: hidden;
-    background-color: rgb(15, 15, 16);
-  }
-
-  .terminal::before {
-    content: "\2022 \2022 \2022";
-    position: absolute;
-    top: 0;
-    left: 0;
-    height: 4px;
-    background: rgb(58, 58, 58);
-    color: #c2c3c4;
-    width: 100%;
-    font-size: 2rem;
-    line-height: 0;
-    padding: 14px 0;
-    text-indent: 4px;
-  }
-
-  .terminal pre {
-    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;
-    color: white;
-    padding: 0 1rem 1rem;
-    margin: 0;
-  }
-
-  .circle-link {
-    height: 40px;
-    width: 40px;
-    border-radius: 40px;
-    margin: 8px;
-    background-color: white;
-    border: 1px solid #eeeeee;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    cursor: pointer;
-    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
-    transition: 1s ease-out;
-  }
-
-  .circle-link:hover {
-    transform: translateY(-0.25rem);
-    box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);
-  }
-
-  footer {
-    margin-top: 8px;
-    display: flex;
-    align-items: center;
-    line-height: 20px;
-  }
-
-  footer a {
-    display: flex;
-    align-items: center;
-  }
-
-  .github-star-badge {
-    color: #24292e;
-    display: flex;
-    align-items: center;
-    font-size: 12px;
-    padding: 3px 10px;
-    border: 1px solid rgba(27,31,35,.2);
-    border-radius: 3px;
-    background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);
-    margin-left: 4px;
-    font-weight: 600;
-    font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
-  }
-
-  .github-star-badge:hover {
-    background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);
-    border-color: rgba(27,31,35,.35);
-    background-position: -.5em;
-  }
-
-  .github-star-badge .material-icons {
-    height: 16px;
-    width: 16px;
-    margin-right: 4px;
-  }
-
-  svg#clouds {
-    position: fixed;
-    bottom: -160px;
-    left: -230px;
-    z-index: -10;
-    width: 1920px;
-  }
-
-
-  /* Responsive Styles */
-  @media screen and (max-width: 767px) {
-
-    .card-container > *:not(.circle-link) ,
-    .terminal {
-      width: 100%;
-    }
-
-    .card:not(.highlight-card) {
-      height: 16px;
-      margin: 8px 0;
-    }
-
-    .card.highlight-card span {
-      margin-left: 72px;
-    }
-
-    svg#rocket-smoke {
-      right: 120px;
-      transform: rotate(-5deg);
-    }
-  }
-
-  @media screen and (max-width: 575px) {
-    svg#rocket-smoke {
-      display: none;
-      visibility: hidden;
-    }
-  }
-</style>
-
-<!-- Toolbar -->
-<div class="toolbar" role="banner">
-  <img
-    width="40"
-    alt="Angular Logo"
-    src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg=="
-  />
-  <span>Welcome</span>
-    <div class="spacer"></div>
-    <a aria-label="Angular on twitter" target="_blank" rel="noopener" href="https://twitter.com/angular" title="Twitter">
-      <svg id="twitter-logo" height="24" data-name="Logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400">
-        <rect width="400" height="400" fill="none"/>
-        <path d="M153.62,301.59c94.34,0,145.94-78.16,145.94-145.94,0-2.22,0-4.43-.15-6.63A104.36,104.36,0,0,0,325,122.47a102.38,102.38,0,0,1-29.46,8.07,51.47,51.47,0,0,0,22.55-28.37,102.79,102.79,0,0,1-32.57,12.45,51.34,51.34,0,0,0-87.41,46.78A145.62,145.62,0,0,1,92.4,107.81a51.33,51.33,0,0,0,15.88,68.47A50.91,50.91,0,0,1,85,169.86c0,.21,0,.43,0,.65a51.31,51.31,0,0,0,41.15,50.28,51.21,51.21,0,0,1-23.16.88,51.35,51.35,0,0,0,47.92,35.62,102.92,102.92,0,0,1-63.7,22A104.41,104.41,0,0,1,75,278.55a145.21,145.21,0,0,0,78.62,23" fill="#fff"/>
-      </svg>
-    </a>
-</div>
-
-<div class="content" role="main">
-
-  <!-- Highlight Card -->
-  <div class="card highlight-card card-small">
-
-    <svg id="rocket" alt="Rocket Ship" xmlns="http://www.w3.org/2000/svg" width="101.678" height="101.678" viewBox="0 0 101.678 101.678">
-      <g id="Group_83" data-name="Group 83" transform="translate(-141 -696)">
-        <circle id="Ellipse_8" data-name="Ellipse 8" cx="50.839" cy="50.839" r="50.839" transform="translate(141 696)" fill="#dd0031"/>
-        <g id="Group_47" data-name="Group 47" transform="translate(165.185 720.185)">
-          <path id="Path_33" data-name="Path 33" d="M3.4,42.615a3.084,3.084,0,0,0,3.553,3.553,21.419,21.419,0,0,0,12.215-6.107L9.511,30.4A21.419,21.419,0,0,0,3.4,42.615Z" transform="translate(0.371 3.363)" fill="#fff"/>
-          <path id="Path_34" data-name="Path 34" d="M53.3,3.221A3.09,3.09,0,0,0,50.081,0,48.227,48.227,0,0,0,18.322,13.437c-6-1.666-14.991-1.221-18.322,7.218A33.892,33.892,0,0,1,9.439,25.1l-.333.666a3.013,3.013,0,0,0,.555,3.553L23.985,43.641a2.9,2.9,0,0,0,3.553.555l.666-.333A33.892,33.892,0,0,1,32.647,53.3c8.55-3.664,8.884-12.326,7.218-18.322A48.227,48.227,0,0,0,53.3,3.221ZM34.424,9.772a6.439,6.439,0,1,1,9.106,9.106,6.368,6.368,0,0,1-9.106,0A6.467,6.467,0,0,1,34.424,9.772Z" transform="translate(0 0.005)" fill="#fff"/>
-        </g>
-      </g>
-    </svg>
-
-    <span>{{ title }} app is running!</span>
-
-    <svg id="rocket-smoke" alt="Rocket Ship Smoke" xmlns="http://www.w3.org/2000/svg" width="516.119" height="1083.632" viewBox="0 0 516.119 1083.632">
-      <path id="Path_40" data-name="Path 40" d="M644.6,141S143.02,215.537,147.049,870.207s342.774,201.755,342.774,201.755S404.659,847.213,388.815,762.2c-27.116-145.51-11.551-384.124,271.9-609.1C671.15,139.365,644.6,141,644.6,141Z" transform="translate(-147.025 -140.939)" fill="#f5f5f5"/>
-    </svg>
-
-  </div>
-
-  <!-- Resources -->
-  <h2>Resources</h2>
-  <p>Here are some links to help you get started:</p>
-
-  <div class="card-container">
-    <a class="card" target="_blank" rel="noopener" href="https://angular.io/tutorial">
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z"/></svg>
-
-      <span>Learn Angular</span>
-
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>    </a>
-
-    <a class="card" target="_blank" rel="noopener" href="https://angular.io/cli">
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg>
-
-      <span>CLI Documentation</span>
-
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
-    </a>
-
-    <a class="card" target="_blank" rel="noopener" href="https://blog.angular.io/">
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z"/></svg>
-
-      <span>Angular Blog</span>
-
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
-    </a>
-
-  </div>
-
-  <!-- Next Steps -->
-  <h2>Next Steps</h2>
-  <p>What do you want to do next with your app?</p>
-
-  <input type="hidden" #selection>
-
-  <div class="card-container">
-    <div class="card card-small" (click)="selection.value = 'component'" tabindex="0">
-        <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
-
-      <span>New Component</span>
-    </div>
-
-    <div class="card card-small" (click)="selection.value = 'material'" tabindex="0">
-        <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
-
-      <span>Angular Material</span>
-    </div>
-
-    <div class="card card-small" (click)="selection.value = 'pwa'" tabindex="0">
-        <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
-
-      <span>Add PWA Support</span>
-    </div>
-
-    <div class="card card-small" (click)="selection.value = 'dependency'" tabindex="0">
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
-
-      <span>Add Dependency</span>
-    </div>
-
-    <div class="card card-small" (click)="selection.value = 'test'" tabindex="0">
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
-
-      <span>Run and Watch Tests</span>
-    </div>
-
-    <div class="card card-small" (click)="selection.value = 'build'" tabindex="0">
-      <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>
-
-      <span>Build for Production</span>
-    </div>
-  </div>
-
-  <!-- Terminal -->
-  <div class="terminal" [ngSwitch]="selection.value">
-      <pre *ngSwitchDefault>ng generate component xyz</pre>
-      <pre *ngSwitchCase="'material'">ng add @angular/material</pre>
-      <pre *ngSwitchCase="'pwa'">ng add @angular/pwa</pre>
-      <pre *ngSwitchCase="'dependency'">ng add _____</pre>
-      <pre *ngSwitchCase="'test'">ng test</pre>
-      <pre *ngSwitchCase="'build'">ng build --prod</pre>
-  </div>
-
-  <!-- Links -->
-  <div class="card-container">
-    <a class="circle-link" title="Animations" href="https://angular.io/guide/animations" target="_blank" rel="noopener">
-      <svg id="Group_20" data-name="Group 20" xmlns="http://www.w3.org/2000/svg" width="21.813" height="23.453" viewBox="0 0 21.813 23.453">
-        <path id="Path_15" data-name="Path 15" d="M4099.584,972.736h0l-10.882,3.9,1.637,14.4,9.245,5.153,9.245-5.153,1.686-14.4Z" transform="translate(-4088.702 -972.736)" fill="#ffa726"/>
-        <path id="Path_16" data-name="Path 16" d="M4181.516,972.736v23.453l9.245-5.153,1.686-14.4Z" transform="translate(-4170.633 -972.736)" fill="#fb8c00"/>
-        <path id="Path_17" data-name="Path 17" d="M4137.529,1076.127l-7.7-3.723,4.417-2.721,7.753,3.723Z" transform="translate(-4125.003 -1058.315)" fill="#ffe0b2"/>
-        <path id="Path_18" data-name="Path 18" d="M4137.529,1051.705l-7.7-3.723,4.417-2.721,7.753,3.723Z" transform="translate(-4125.003 -1036.757)" fill="#fff3e0"/>
-        <path id="Path_19" data-name="Path 19" d="M4137.529,1027.283l-7.7-3.723,4.417-2.721,7.753,3.723Z" transform="translate(-4125.003 -1015.199)" fill="#fff"/>
-      </svg>
-    </a>
-
-    <a class="circle-link" title="CLI" href="https://cli.angular.io/" target="_blank" rel="noopener">
-      <svg alt="Angular CLI Logo" xmlns="http://www.w3.org/2000/svg" width="21.762" height="23.447" viewBox="0 0 21.762 23.447">
-        <g id="Group_21" data-name="Group 21" transform="translate(0)">
-          <path id="Path_20" data-name="Path 20" d="M2660.313,313.618h0l-10.833,3.9,1.637,14.4,9.2,5.152,9.244-5.152,1.685-14.4Z" transform="translate(-2649.48 -313.618)" fill="#37474f"/>
-          <path id="Path_21" data-name="Path 21" d="M2741.883,313.618v23.447l9.244-5.152,1.685-14.4Z" transform="translate(-2731.05 -313.618)" fill="#263238"/>
-          <path id="Path_22" data-name="Path 22" d="M2692.293,379.169h11.724V368.618h-11.724Zm11.159-.6h-10.608v-9.345h10.621v9.345Z" transform="translate(-2687.274 -362.17)" fill="#fff"/>
-          <path id="Path_23" data-name="Path 23" d="M2709.331,393.688l.4.416,2.265-2.28-2.294-2.294-.4.4,1.893,1.893Z" transform="translate(-2702.289 -380.631)" fill="#fff"/>
-          <rect id="Rectangle_12" data-name="Rectangle 12" width="3.517" height="0.469" transform="translate(9.709 13.744)" fill="#fff"/>
-        </g>
-      </svg>
-    </a>
-
-    <a class="circle-link" title="Augury" href="https://augury.rangle.io/" target="_blank" rel="noopener">
-      <svg alt="Angular Augury Logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="21.81" height="23.447" viewBox="0 0 21.81 23.447">
-        <defs>
-          <clipPath id="clip-path">
-            <rect id="Rectangle_13" data-name="Rectangle 13" width="10.338" height="10.27" fill="none"/>
-          </clipPath>
-        </defs>
-        <g id="Group_25" data-name="Group 25" transform="translate(0)">
-          <path id="Path_24" data-name="Path 24" d="M3780.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z" transform="translate(-3769.274 -311.417)" fill="#4a3493"/>
-          <path id="Path_25" data-name="Path 25" d="M3862.088,311.417v23.447l9.244-5.152,1.685-14.4Z" transform="translate(-3851.207 -311.417)" fill="#311b92"/>
-          <g id="Group_24" data-name="Group 24" transform="translate(6.194 6.73)" opacity="0.5">
-            <g id="Group_23" data-name="Group 23" transform="translate(0 0)">
-              <g id="Group_22" data-name="Group 22" clip-path="url(#clip-path)">
-                <path id="Path_26" data-name="Path 26" d="M3832.4,373.252a5.168,5.168,0,1,1-5.828-4.383,5.216,5.216,0,0,1,2.574.3,3.017,3.017,0,1,0,3.252,4.086Z" transform="translate(-3822.107 -368.821)" fill="#fff"/>
-              </g>
-            </g>
-          </g>
-          <path id="Path_27" data-name="Path 27" d="M3830.582,370.848a5.162,5.162,0,1,1-3.254-4.086,3.017,3.017,0,1,0,3.252,4.086Z" transform="translate(-3814.311 -359.969)" fill="#fff"/>
-        </g>
-      </svg>
-    </a>
-
-    <a class="circle-link" title="Protractor" href="https://www.protractortest.org/" target="_blank" rel="noopener">
-      <svg alt="Angular Protractor Logo" xmlns="http://www.w3.org/2000/svg" width="21.81" height="23.447" viewBox="0 0 21.81 23.447">
-        <g id="Group_26" data-name="Group 26" transform="translate(0)">
-          <path id="Path_28" data-name="Path 28" d="M4620.155,311.417h0l-10.881,3.9,1.637,14.4,9.244,5.152,9.244-5.152,1.685-14.4Z" transform="translate(-4609.274 -311.417)" fill="#e13439"/>
-          <path id="Path_29" data-name="Path 29" d="M4702.088,311.417v23.447l9.244-5.152,1.685-14.4Z" transform="translate(-4691.207 -311.417)" fill="#b52f32"/>
-          <path id="Path_30" data-name="Path 30" d="M4651.044,369.58v-.421h1.483a7.6,7.6,0,0,0-2.106-5.052l-1.123,1.123-.3-.3,1.122-1.121a7.588,7.588,0,0,0-4.946-2.055v1.482h-.421v-1.485a7.589,7.589,0,0,0-5.051,2.058l1.122,1.121-.3.3-1.123-1.123a7.591,7.591,0,0,0-2.106,5.052h1.482v.421h-1.489v1.734h15.241V369.58Zm-10.966-.263a4.835,4.835,0,0,1,9.67,0Z" transform="translate(-4634.008 -355.852)" fill="#fff"/>
-        </g>
-      </svg>
-    </a>
-
-    <a class="circle-link" title="Find a Local Meetup" href="https://www.meetup.com/find/?keywords=angular" target="_blank" rel="noopener">
-      <svg alt="Meetup Logo" xmlns="http://www.w3.org/2000/svg" width="24.607" height="23.447" viewBox="0 0 24.607 23.447">
-        <path id="logo--mSwarm" d="M21.221,14.95A4.393,4.393,0,0,1,17.6,19.281a4.452,4.452,0,0,1-.8.069c-.09,0-.125.035-.154.117a2.939,2.939,0,0,1-2.506,2.091,2.868,2.868,0,0,1-2.248-.624.168.168,0,0,0-.245-.005,3.926,3.926,0,0,1-2.589.741,4.015,4.015,0,0,1-3.7-3.347,2.7,2.7,0,0,1-.043-.38c0-.106-.042-.146-.143-.166a3.524,3.524,0,0,1-1.516-.69A3.623,3.623,0,0,1,2.23,14.557a3.66,3.66,0,0,1,1.077-3.085.138.138,0,0,0,.026-.2,3.348,3.348,0,0,1-.451-1.821,3.46,3.46,0,0,1,2.749-3.28.44.44,0,0,0,.355-.281,5.072,5.072,0,0,1,3.863-3,5.028,5.028,0,0,1,3.555.666.31.31,0,0,0,.271.03A4.5,4.5,0,0,1,18.3,4.7a4.4,4.4,0,0,1,1.334,2.751,3.658,3.658,0,0,1,.022.706.131.131,0,0,0,.1.157,2.432,2.432,0,0,1,1.574,1.645,2.464,2.464,0,0,1-.7,2.616c-.065.064-.051.1-.014.166A4.321,4.321,0,0,1,21.221,14.95ZM13.4,14.607a2.09,2.09,0,0,0,1.409,1.982,4.7,4.7,0,0,0,1.275.221,1.807,1.807,0,0,0,.9-.151.542.542,0,0,0,.321-.545.558.558,0,0,0-.359-.534,1.2,1.2,0,0,0-.254-.078c-.262-.047-.526-.086-.787-.138a.674.674,0,0,1-.617-.75,3.394,3.394,0,0,1,.218-1.109c.217-.658.509-1.286.79-1.918a15.609,15.609,0,0,0,.745-1.86,1.95,1.95,0,0,0,.06-1.073,1.286,1.286,0,0,0-1.051-1.033,1.977,1.977,0,0,0-1.521.2.339.339,0,0,1-.446-.042c-.1-.092-.2-.189-.307-.284a1.214,1.214,0,0,0-1.643-.061,7.563,7.563,0,0,1-.614.512A.588.588,0,0,1,10.883,8c-.215-.115-.437-.215-.659-.316a2.153,2.153,0,0,0-.695-.248A2.091,2.091,0,0,0,7.541,8.562a9.915,9.915,0,0,0-.405.986c-.559,1.545-1.015,3.123-1.487,4.7a1.528,1.528,0,0,0,.634,1.777,1.755,1.755,0,0,0,1.5.211,1.35,1.35,0,0,0,.824-.858c.543-1.281,1.032-2.584,1.55-3.875.142-.355.28-.712.432-1.064a.548.548,0,0,1,.851-.24.622.622,0,0,1,.185.539,2.161,2.161,0,0,1-.181.621c-.337.852-.68,1.7-1.018,2.552a2.564,2.564,0,0,0-.173.528.624.624,0,0,0,.333.71,1.073,1.073,0,0,0,.814.034,1.22,1.22,0,0,0,.657-.655q.758-1.488,1.511-2.978.35-.687.709-1.37a1.073,1.073,0,0,1,.357-.434.43.43,0,0,1,.463-.016.373.373,0,0,1,.153.387.7.7,0,0,1-.057.236c-.065.157-.127.316-.2.469-.42.883-.846,1.763-1.262,2.648A2.463,2.463,0,0,0,13.4,14.607Zm5.888,6.508a1.09,1.09,0,0,0-2.179.006,1.09,1.09,0,0,0,2.179-.006ZM1.028,12.139a1.038,1.038,0,1,0,.01-2.075,1.038,1.038,0,0,0-.01,2.075ZM13.782.528a1.027,1.027,0,1,0-.011,2.055A1.027,1.027,0,0,0,13.782.528ZM22.21,6.95a.882.882,0,0,0-1.763.011A.882.882,0,0,0,22.21,6.95ZM4.153,4.439a.785.785,0,1,0,.787-.78A.766.766,0,0,0,4.153,4.439Zm8.221,18.22a.676.676,0,1,0-.677.666A.671.671,0,0,0,12.374,22.658ZM22.872,12.2a.674.674,0,0,0-.665.665.656.656,0,0,0,.655.643.634.634,0,0,0,.655-.644A.654.654,0,0,0,22.872,12.2ZM7.171-.123A.546.546,0,0,0,6.613.43a.553.553,0,1,0,1.106,0A.539.539,0,0,0,7.171-.123ZM24.119,9.234a.507.507,0,0,0-.493.488.494.494,0,0,0,.494.494.48.48,0,0,0,.487-.483A.491.491,0,0,0,24.119,9.234Zm-19.454,9.7a.5.5,0,0,0-.488-.488.491.491,0,0,0-.487.5.483.483,0,0,0,.491.479A.49.49,0,0,0,4.665,18.936Z" transform="translate(0 0.123)" fill="#f64060"/>
-      </svg>
-    </a>
-
-    <a class="circle-link" title="Join the Conversation on Gitter" href="https://gitter.im/angular/angular" target="_blank" rel="noopener">
-      <svg alt="Gitter Logo" xmlns="http://www.w3.org/2000/svg" width="19.447" height="19.447" viewBox="0 0 19.447 19.447">
-        <g id="Group_40" data-name="Group 40" transform="translate(-1612 -405)">
-          <rect id="Rectangle_19" data-name="Rectangle 19" width="19.447" height="19.447" transform="translate(1612 405)" fill="#e60257"/>
-          <g id="gitter" transform="translate(1617.795 408.636)">
-            <g id="Group_33" data-name="Group 33" transform="translate(0 0)">
-              <rect id="Rectangle_15" data-name="Rectangle 15" width="1.04" height="9.601" transform="translate(2.304 2.324)" fill="#fff"/>
-              <rect id="Rectangle_16" data-name="Rectangle 16" width="1.04" height="9.601" transform="translate(4.607 2.324)" fill="#fff"/>
-              <rect id="Rectangle_17" data-name="Rectangle 17" width="1.04" height="4.648" transform="translate(6.91 2.324)" fill="#fff"/>
-              <rect id="Rectangle_18" data-name="Rectangle 18" width="1.04" height="6.971" transform="translate(0 0)" fill="#fff"/>
-            </g>
-          </g>
-        </g>
-      </svg>
-    </a>
-  </div>
-
-  <!-- Footer -->
-  <footer>
-      Love Angular?&nbsp;
-      <a href="https://github.com/angular/angular" target="_blank" rel="noopener"> Give our repo a star.
-        <div class="github-star-badge">
-            <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>
-          Star
-        </div>
-      </a>
-      <a href="https://github.com/angular/angular" target="_blank" rel="noopener">
-        <svg class="material-icons" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" fill="#1976d2"/><path d="M0 0h24v24H0z" fill="none"/></svg>
-      </a>
-  </footer>
-
-  <svg id="clouds" alt="Gray Clouds Background" xmlns="http://www.w3.org/2000/svg" width="2611.084" height="485.677" viewBox="0 0 2611.084 485.677">
-    <path id="Path_39" data-name="Path 39" d="M2379.709,863.793c10-93-77-171-168-149-52-114-225-105-264,15-75,3-140,59-152,133-30,2.83-66.725,9.829-93.5,26.25-26.771-16.421-63.5-23.42-93.5-26.25-12-74-77-130-152-133-39-120-212-129-264-15-54.084-13.075-106.753,9.173-138.488,48.9-31.734-39.726-84.4-61.974-138.487-48.9-52-114-225-105-264,15a162.027,162.027,0,0,0-103.147,43.044c-30.633-45.365-87.1-72.091-145.206-58.044-52-114-225-105-264,15-75,3-140,59-152,133-53,5-127,23-130,83-2,42,35,72,70,86,49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33,61.112,8.015,113.854-5.72,150.492-29.764a165.62,165.62,0,0,0,110.861-3.236c47,94,178,113,251,33,31.385,4.116,60.563,2.495,86.487-3.311,25.924,5.806,55.1,7.427,86.488,3.311,73,80,204,61,251-33a165.625,165.625,0,0,0,120,0c51,13,108,15,157-5a147.188,147.188,0,0,0,33.5-18.694,147.217,147.217,0,0,0,33.5,18.694c49,20,106,18,157,5a165.625,165.625,0,0,0,120,0c47,94,178,113,251,33C2446.709,1093.793,2554.709,922.793,2379.709,863.793Z" transform="translate(142.69 -634.312)" fill="#eee"/>
-  </svg>
-
-</div>
-
-<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
-<!-- * * * * * * * * * * * The content above * * * * * * * * * * * -->
-<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->
-<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->
-<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
-<!-- * * * * * * * * * * End of Placeholder * * * * * * * * * * * -->
-<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
-
-
+  <mat-toolbar color="primary">
+    <mat-toolbar-row>
+      <span><a href=""><img src="/assets/THD-Logo.png" height="50"></a> THD App</span>
+    </mat-toolbar-row>
+    <mat-toolbar-row class="flexSpaceBetween">
+      <button mat-raised-button routerLink="/navigation">Navigation</button>
+      <button mat-raised-button routerLink="/rooms">Rooms</button>
+      <button mat-raised-button routerLink="/international">International</button>
+      <button mat-raised-button routerLink="/login">Login</button>
+  </mat-toolbar-row>
+  </mat-toolbar>
+
+<div class="main">
+  <router-outlet></router-outlet>
+</div>
\ No newline at end of file
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index f4dad29..f6f3db5 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -6,5 +6,5 @@ import { Component } from '@angular/core';
   styleUrls: ['./app.component.css']
 })
 export class AppComponent {
-  title = 'mit-ws';
+  title = 'mit-ws-20-21';
 }
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index f657163..e882434 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,15 +1,48 @@
 import { BrowserModule } from '@angular/platform-browser';
 import { NgModule } from '@angular/core';
+/**
+ * Project was created without Routing option
+ * so Routing will be setup here (otherwise in app-routing.module.ts)
+ * followed https://angular.io/start/start-routing
+ * used structure from mit-ws-20-21-requests.pdf
+ * so components needed are: Start, Navigation, Room Info, Int. Office, Login
+ * difference to structure image: gave navigation higher prio than room info
+ * 
+*/
 
 import { AppComponent } from './app.component';
+import { RouterModule } from '@angular/router';
+import { StartComponent } from './start/start.component';
+import { NavigationComponent } from './navigation/navigation.component';
+import { RoomsComponent } from './rooms/rooms.component';
+import { InternationalComponent } from './international/international.component';
+import { LoginComponent } from './login/login.component';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+// Material Components
+import { MatButtonModule } from '@angular/material/button';
+import { MatToolbarModule } from '@angular/material/toolbar';
 
 @NgModule({
   declarations: [
-    AppComponent
+    AppComponent,
+    StartComponent,
+    NavigationComponent,
+    RoomsComponent,
+    InternationalComponent,
+    LoginComponent
   ],
   imports: [
-    BrowserModule
-  ],
+    BrowserModule,
+    RouterModule.forRoot([
+      { path: '', component: StartComponent },
+      { path: 'navigation', component: NavigationComponent },
+      { path: 'rooms', component: RoomsComponent },
+      { path: 'international', component: InternationalComponent },
+      { path: 'login', component: LoginComponent }
+    ]),
+    MatButtonModule,
+    MatToolbarModule,
+    BrowserAnimationsModule],
   providers: [],
   bootstrap: [AppComponent]
 })
diff --git a/src/app/international/international.component.css b/src/app/international/international.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/international/international.component.html b/src/app/international/international.component.html
new file mode 100644
index 0000000..6b88794
--- /dev/null
+++ b/src/app/international/international.component.html
@@ -0,0 +1 @@
+<p>international works!</p>
diff --git a/src/app/international/international.component.spec.ts b/src/app/international/international.component.spec.ts
new file mode 100644
index 0000000..5a2a33a
--- /dev/null
+++ b/src/app/international/international.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { InternationalComponent } from './international.component';
+
+describe('InternationalComponent', () => {
+  let component: InternationalComponent;
+  let fixture: ComponentFixture<InternationalComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ InternationalComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(InternationalComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/international/international.component.ts b/src/app/international/international.component.ts
new file mode 100644
index 0000000..04ab61d
--- /dev/null
+++ b/src/app/international/international.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-international',
+  templateUrl: './international.component.html',
+  styleUrls: ['./international.component.css']
+})
+export class InternationalComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit(): void {
+  }
+
+}
diff --git a/src/app/login/login.component.css b/src/app/login/login.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html
new file mode 100644
index 0000000..147cfc4
--- /dev/null
+++ b/src/app/login/login.component.html
@@ -0,0 +1 @@
+<p>login works!</p>
diff --git a/src/app/login/login.component.spec.ts b/src/app/login/login.component.spec.ts
new file mode 100644
index 0000000..d6d85a8
--- /dev/null
+++ b/src/app/login/login.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { LoginComponent } from './login.component';
+
+describe('LoginComponent', () => {
+  let component: LoginComponent;
+  let fixture: ComponentFixture<LoginComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ LoginComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(LoginComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts
new file mode 100644
index 0000000..4f58421
--- /dev/null
+++ b/src/app/login/login.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-login',
+  templateUrl: './login.component.html',
+  styleUrls: ['./login.component.css']
+})
+export class LoginComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit(): void {
+  }
+
+}
diff --git a/src/app/navigation/navigation.component.css b/src/app/navigation/navigation.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/navigation/navigation.component.html b/src/app/navigation/navigation.component.html
new file mode 100644
index 0000000..499146e
--- /dev/null
+++ b/src/app/navigation/navigation.component.html
@@ -0,0 +1 @@
+<p>navigation works!</p>
diff --git a/src/app/navigation/navigation.component.spec.ts b/src/app/navigation/navigation.component.spec.ts
new file mode 100644
index 0000000..3857718
--- /dev/null
+++ b/src/app/navigation/navigation.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { NavigationComponent } from './navigation.component';
+
+describe('NavigationComponent', () => {
+  let component: NavigationComponent;
+  let fixture: ComponentFixture<NavigationComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ NavigationComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(NavigationComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/navigation/navigation.component.ts b/src/app/navigation/navigation.component.ts
new file mode 100644
index 0000000..9c64285
--- /dev/null
+++ b/src/app/navigation/navigation.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-navigation',
+  templateUrl: './navigation.component.html',
+  styleUrls: ['./navigation.component.css']
+})
+export class NavigationComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit(): void {
+  }
+
+}
diff --git a/src/app/rooms/rooms.component.css b/src/app/rooms/rooms.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/rooms/rooms.component.html b/src/app/rooms/rooms.component.html
new file mode 100644
index 0000000..8b3f025
--- /dev/null
+++ b/src/app/rooms/rooms.component.html
@@ -0,0 +1 @@
+<p>rooms works!</p>
diff --git a/src/app/rooms/rooms.component.spec.ts b/src/app/rooms/rooms.component.spec.ts
new file mode 100644
index 0000000..23221e4
--- /dev/null
+++ b/src/app/rooms/rooms.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { RoomsComponent } from './rooms.component';
+
+describe('RoomsComponent', () => {
+  let component: RoomsComponent;
+  let fixture: ComponentFixture<RoomsComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ RoomsComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(RoomsComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/rooms/rooms.component.ts b/src/app/rooms/rooms.component.ts
new file mode 100644
index 0000000..28063cd
--- /dev/null
+++ b/src/app/rooms/rooms.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-rooms',
+  templateUrl: './rooms.component.html',
+  styleUrls: ['./rooms.component.css']
+})
+export class RoomsComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit(): void {
+  }
+
+}
diff --git a/src/app/start/start.component.css b/src/app/start/start.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/start/start.component.html b/src/app/start/start.component.html
new file mode 100644
index 0000000..9f40752
--- /dev/null
+++ b/src/app/start/start.component.html
@@ -0,0 +1 @@
+<p>start works!</p>
diff --git a/src/app/start/start.component.spec.ts b/src/app/start/start.component.spec.ts
new file mode 100644
index 0000000..01270a2
--- /dev/null
+++ b/src/app/start/start.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { StartComponent } from './start.component';
+
+describe('StartComponent', () => {
+  let component: StartComponent;
+  let fixture: ComponentFixture<StartComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ StartComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(StartComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/start/start.component.ts b/src/app/start/start.component.ts
new file mode 100644
index 0000000..428fbe4
--- /dev/null
+++ b/src/app/start/start.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-start',
+  templateUrl: './start.component.html',
+  styleUrls: ['./start.component.css']
+})
+export class StartComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit(): void {
+  }
+
+}
diff --git a/src/assets/THD-Logo.png b/src/assets/THD-Logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..5072e87149ba0c56d35dc9284642020e72b3caae
GIT binary patch
literal 29026
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

literal 0
HcmV?d00001

diff --git a/src/custom-theme.scss b/src/custom-theme.scss
new file mode 100644
index 0000000..0f84e72
--- /dev/null
+++ b/src/custom-theme.scss
@@ -0,0 +1,120 @@
+// Custom Theming for Angular Material
+// For more information: https://material.angular.io/guide/theming
+@import '~@angular/material/theming';
+// Plus imports for other components in your app.
+
+// Include the common styles for Angular Material. We include this here so that you only
+// have to load a single css file for Angular Material in your app.
+// Be sure that you only ever include this mixin once!
+@include mat-core();
+
+
+// Adjust Typography
+@import
+url("https://fonts.googleapis.com/css2?family=Saira+Sans:wght@300;400;500&display=swap");
+@import url("https://fonts.googleapis.com/css?family=Saira");
+
+// Define a custom typography config that overrides the font-family as well as the
+// `headlines` and `body-1` levels.
+$custom-typography: mat-typography-config(
+  $font-family: 'Saira',
+  $headline: mat-typography-level(32px, 48px, 700),
+  $body-1: mat-typography-level(16px, 24px, 500)
+);
+// Override typography CSS classes (e.g., mat-h1, mat-display-1, mat-typography, etc.).
+@include mat-base-typography($custom-typography);
+// Override typography for a specific Angular Material components.
+@include mat-checkbox-typography($custom-typography);
+// Override typography for all Angular Material, including mat-base-typography and all components.
+@include angular-material-typography($custom-typography);
+
+// Define the palettes for your theme using the Material Design palettes available in palette.scss
+// (imported above). For each palette, you can optionally specify a default, lighter, and darker
+// hue. Available color palettes: https://material.io/design/color/
+$thd-palette-primary: (
+    50 : #e4e8ee,
+    100 : #bac6d5,
+    200 : #8da1b9,
+    300 : #5f7b9d,
+    400 : #3c5e88,
+    500 : #1a4273,
+    600 : #173c6b,
+    700 : #133360,
+    800 : #0f2b56,
+    900 : #081d43,
+    A100 : #7aa2ff,
+    A200 : #477fff,
+    A400 : #145cff,
+    A700 : #004cf9,
+    contrast: (
+        50 : #000000,
+        100 : #000000,
+        200 : #000000,
+        300 : #ffffff,
+        400 : #ffffff,
+        500 : #ffffff,
+        600 : #ffffff,
+        700 : #ffffff,
+        800 : #ffffff,
+        900 : #ffffff,
+        A100 : #000000,
+        A200 : #ffffff,
+        A400 : #ffffff,
+        A700 : #ffffff,
+    )
+);
+
+$thd-palette-accent:(
+    50 : #e0f3fc,
+    100 : #b3e2f7,
+    200 : #80cff1,
+    300 : #4dbceb,
+    400 : #26ade7,
+    500 : #009fe3,
+    600 : #0097e0,
+    700 : #008ddc,
+    800 : #0083d8,
+    900 : #0072d0,
+    A100 : #f8fcff,
+    A200 : #c5e2ff,
+    A400 : #92c8ff,
+    A700 : #79bbff,
+
+
+    contrast: (
+        50 : #000000,
+        100 : #000000,
+        200 : #000000,
+        300 : #ffffff,
+        400 : #ffffff,
+        500 : #ffffff,
+        600 : #ffffff,
+        700 : #ffffff,
+        800 : #ffffff,
+        900 : #ffffff,
+        A100 : #000000,
+        A200 : #ffffff,
+        A400 : #ffffff,
+        A700 : #ffffff,
+    ));
+
+$mit-ws-primary: mat-palette($thd-palette-primary);
+$mit-ws-accent: mat-palette($thd-palette-accent, A200, A100, A400);
+
+// The warn palette is optional (defaults to red).
+$mit-ws-warn: mat-palette($mat-red);
+
+// Create the theme object. A theme consists of configurations for individual
+// theming systems such as "color" or "typography".
+$mit-ws-theme: mat-light-theme((
+  color: (
+    primary: $mit-ws-primary,
+    accent: $mit-ws-accent,
+    warn: $mit-ws-warn,
+  )
+));
+
+// Include theme styles for core and each component used in your app.
+// Alternatively, you can import and @include the theme mixins for each component
+// that you are using.
+@include angular-material-theme($mit-ws-theme);
diff --git a/src/index.html b/src/index.html
index c294c23..c6b595a 100644
--- a/src/index.html
+++ b/src/index.html
@@ -2,12 +2,14 @@
 <html lang="en">
 <head>
   <meta charset="utf-8">
-  <title>MitWs</title>
+  <title>THD App</title>
   <base href="/">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link rel="icon" type="image/x-icon" href="favicon.ico">
+  <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap" rel="stylesheet">
+  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
 </head>
-<body>
+<body class="mat-typography">
   <app-root></app-root>
 </body>
 </html>
diff --git a/src/styles.css b/src/styles.css
index 90d4ee0..bd3fa12 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -1 +1,9 @@
-/* You can add global styles to this file, and also import other style files */
+/* You can add global styles to this file, and also import other style files 
+
+html, body { height: 100%; }
+body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; }
+
+.example-spacer {
+  flex: 1 1 auto;
+}
+*/
\ No newline at end of file
-- 
GitLab