diff --git a/.circleci/config.yml b/.circleci/config.yml index e39a8f63..3b7b5d6b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,26 +10,18 @@ jobs: - run: name: Build and check command: | - for site in csirt.divd.nl www.divd.nl; do - ( - echo "*** Building and checking $site ***"; - cd $site; - gem install -N jekyll-secinfo jekyll-last-modified-at - ./update.sh - # Removing some stubs - rm -f _cves/CVE-3000-* - rm -rf _cases/DIVD-3000-0000* - jekyll build 2>&1| tee jekyll-build.log; - ./proof_html.sh - ) - done + echo "*** Building and checking $site ***"; + gem install -N jekyll-secinfo jekyll-last-modified-at + ./update.sh + # Removing some stubs + rm -f _cves/CVE-3000-* + rm -rf _cases/DIVD-3000-0000* + jekyll build 2>&1| tee jekyll-build.log; + ./proof_html.sh - save_cache: key: jekyll-{{ .Environment.CIRCLE_SHA1 }} paths: - - "/root/project/www.divd.nl/_site" - - "/root/project/csirt.divd.nl/_site" - - "/root/project/.htaccess" - + - "/root/project/_site" upload: docker: @@ -51,12 +43,8 @@ jobs: command: | mkdir -p ~/.ssh; echo "upload.bit.nl,213.136.12.217 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIVx+0N0LECcGHPywPCk9uz4/l3kNUVNe5QQRleIkMCTarkYauvRrPNPl49x3LIjF6cZsmQZX7jwgsJqEzfcF98=" > ~/.ssh/known_hosts; - cd /root/project/; - rsync -av .htaccess www-divd@upload.bit.nl:htdocs; - cd /root/project/csirt.divd.nl/_site; + cd /root/project/_site; rsync -av --delete . www-divd@upload.bit.nl:htdocs/csirt-divd-nl; - cd /root/project/www.divd.nl/_site; - rsync -av "--exclude=data/*" --delete . www-divd@upload.bit.nl:htdocs/divd-nl; workflows: version: 2 @@ -69,4 +57,4 @@ workflows: filters: branches: only: - - master \ No newline at end of file + - main \ No newline at end of file diff --git a/.gitignore b/.gitignore index caad00ea..2a6ba38d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,12 +7,9 @@ Gemfile.lock _site/ .env -csirt.divd.nl/_team/ -www.divd.nl/_cases/ -www.divd.nl/_csirt_posts/ -www.divd.nl/_cves/ -www.divd.nl/_data/scanners.yml +_team/ +www.divd.nl/ *.bak *.log -*/_config_livereload.yml +_config_livereload.yml *:Zone.Identifier diff --git a/.htaccess b/.htaccess index 2499bcbb..eaa278a2 100644 --- a/.htaccess +++ b/.htaccess @@ -1,84 +1,7 @@ -RewriteEngine On Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;" -# Redirect http -> https -RewriteCond %{HTTP:X-HTTPS-SESSION} !^yes$ -RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] - -SetEnvIfNoCase X-HTTPS-Session Yes is_ssl=yes -SetEnvIfNoCase X-HTTPS-Session Yes is_https=yes -SetEnvIfNoCase X-HTTPS-Session Yes HTTPS=on - -# recirect divd.nl to www -RewriteCond %{HTTP_HOST} ^divd\.nl [NC] -RewriteRule (.*) https://www.divd.nl/$1 [r=301,L] - -# Serve www from divd-nl -RewriteCond %{HTTP_HOST} ^www\.divd\.nl [NC] -RewriteCond %{REQUEST_URI} !^/divd-nl [NC] -RewriteRule (.*) divd-nl/$1 [L] - -# Redirect when I summon a directory without a trailing slash -RewriteCond %{HTTP_HOST} ^www\.divd\.nl [NC] -RewriteCond %{REQUEST_URI} ^/divd-nl.*[^/]$ [NC] -RewriteCond %{REQUEST_FILENAME} -d [NC] -RewriteRule ^divd-nl/(.*) /$1/ [L,r=301] - -# Serve csirt from csirt-divd-nl -RewriteCond %{HTTP_HOST} ^csirt\.divd\.nl [NC] -RewriteCond %{REQUEST_URI} !^/csirt-divd-nl [NC] -RewriteRule (.*) csirt-divd-nl/$1 [L] - -# Redirect when I summon a directory without a trailing slash -RewriteCond %{HTTP_HOST} ^csirt\.divd\.nl [NC] -RewriteCond %{REQUEST_URI} ^/csirt-divd-nl.*[^/]$ [NC] -RewriteCond %{REQUEST_FILENAME} -d [NC] -RewriteRule ^csirt-divd-nl/(.*) /$1/ [L,r=301] - -# recirect divd.club to www -RewriteCond %{HTTP_HOST} ^divd\.club [NC] -RewriteRule (.*) https://www.divd.club/$1 [r=301,L] - -# Serve divd.club from divd-club -RewriteCond %{HTTP_HOST} ^www\.divd\.club [NC] -RewriteCond %{REQUEST_URI} !^/divd-club [NC] -RewriteRule (.*) divd-club/$1 [L] - -# Redirect when I summon a directory without a trailing slash -RewriteCond %{HTTP_HOST} ^www\.divd\.club [NC] -RewriteCond %{REQUEST_URI} ^/divd-club.*[^/]$ [NC] -RewriteCond %{REQUEST_FILENAME} -d [NC] -RewriteRule ^divd-club/(.*) /$1/ [L,r=301] - -# cyber-wear.nl - -# recirect cyber-wear.nl to www -RewriteCond %{HTTP_HOST} ^cyber-wear\.nl [NC] -RewriteRule (.*) https://www.cyber-wear.nl/$1 [r=301,L] - -# Serve cyber-wear.nl from cyber-wear-nl -RewriteCond %{HTTP_HOST} ^www\.cyber-wear\.nl [NC] -RewriteCond %{REQUEST_URI} !^/cyber-wear-nl [NC] -RewriteRule (.*) cyber-wear-nl/$1 [L] - -# Redirect when I summon a directory without a trailing slash -RewriteCond %{HTTP_HOST} ^www\.cyber-wear\.nl [NC] -RewriteCond %{REQUEST_URI} ^/cyber-wear-nl.*[^/]$ [NC] -RewriteCond %{REQUEST_FILENAME} -d [NC] -RewriteRule ^cyber-wear-nl/(.*) /$1/ [L,r=301] - -# divd.fund - -# recirect divd.fund to www -RewriteCond %{HTTP_HOST} ^divd\.fund [NC] -RewriteRule (.*) https://www.divd.fund/$1 [r=301,L] - -# Serve divd.fund from divd.fund -RewriteCond %{HTTP_HOST} ^www\.divd\.fund [NC] -RewriteCond %{REQUEST_URI} !^/divd.fund [NC] -RewriteRule (.*) divd.fund/$1 [L] - -# Redirect when I summon a directory without a trailing slash -RewriteCond %{HTTP_HOST} ^www\.divd\.fund [NC] -RewriteCond %{REQUEST_URI} ^/divd\.fund.*[^/]$ [NC] -RewriteCond %{REQUEST_FILENAME} -d [NC] -RewriteRule ^divd.fund/(.*) /$1/ [L,r=301] \ No newline at end of file +Header always append X-Frame-Options DENY +Header set X-Content-Type-Options nosniff +Header set X-XSS-Protection "1; mode=block" +Header set Content-Security-Policy "default-src 'none'; font-src 'self'; img-src 'self'; script-src 'self' ; style-src 'self'" +Header always set Referrer-Policy "same-origin" +ErrorDocument 404 /404.html \ No newline at end of file diff --git a/csirt.divd.nl/404.md b/404.md similarity index 100% rename from csirt.divd.nl/404.md rename to 404.md diff --git a/README.md b/README.md index 54aab4d0..d3deed44 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,23 @@ -www.divd.nl and csirt.divd.nl websites -==== -a -This repo holds these websites: -* www.divd.nl -* [csirt.divd.nl](https://csirt.divd.nl) - -Each in their own subdirectory +## Adding new news items +1. Create a new file in the `_posts` folder with filename `---.md` +2. Start the file with the following template configuration: +```markdown +--- +layout: news +title: <-- title-- > +author: <-- your name --> +excerpt: <-- one line summary in Dutch / And English will show on blog page --> +--- +``` + +## Development +The site is easiest deployed locally with [Docker](https://docker.com). + +1. Install Docker +2. Clone this repository +3. Run `./serve` +4. Open your favorite Internet Explorer and go to `http://localhost:4000` + +## Markdown + +See: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet diff --git a/csirt.divd.nl/_cases/DIVD-2020-00001.md b/_cases/DIVD-2020-00001.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00001.md rename to _cases/DIVD-2020-00001.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00002.md b/_cases/DIVD-2020-00002.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00002.md rename to _cases/DIVD-2020-00002.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00003.md b/_cases/DIVD-2020-00003.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00003.md rename to _cases/DIVD-2020-00003.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00004.md b/_cases/DIVD-2020-00004.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00004.md rename to _cases/DIVD-2020-00004.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00005.md b/_cases/DIVD-2020-00005.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00005.md rename to _cases/DIVD-2020-00005.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00006.md b/_cases/DIVD-2020-00006.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00006.md rename to _cases/DIVD-2020-00006.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00007.md b/_cases/DIVD-2020-00007.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00007.md rename to _cases/DIVD-2020-00007.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00008.md b/_cases/DIVD-2020-00008.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00008.md rename to _cases/DIVD-2020-00008.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00009.md b/_cases/DIVD-2020-00009.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00009.md rename to _cases/DIVD-2020-00009.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00010.md b/_cases/DIVD-2020-00010.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00010.md rename to _cases/DIVD-2020-00010.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00011.md b/_cases/DIVD-2020-00011.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00011.md rename to _cases/DIVD-2020-00011.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00012.md b/_cases/DIVD-2020-00012.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00012.md rename to _cases/DIVD-2020-00012.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00013.md b/_cases/DIVD-2020-00013.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00013.md rename to _cases/DIVD-2020-00013.md diff --git a/csirt.divd.nl/_cases/DIVD-2020-00014.md b/_cases/DIVD-2020-00014.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2020-00014.md rename to _cases/DIVD-2020-00014.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00001.md b/_cases/DIVD-2021-00001.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00001.md rename to _cases/DIVD-2021-00001.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00002.md b/_cases/DIVD-2021-00002.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00002.md rename to _cases/DIVD-2021-00002.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00004.md b/_cases/DIVD-2021-00004.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00004.md rename to _cases/DIVD-2021-00004.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00005.md b/_cases/DIVD-2021-00005.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00005.md rename to _cases/DIVD-2021-00005.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00006.md b/_cases/DIVD-2021-00006.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00006.md rename to _cases/DIVD-2021-00006.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00007.md b/_cases/DIVD-2021-00007.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00007.md rename to _cases/DIVD-2021-00007.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00010.md b/_cases/DIVD-2021-00010.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00010.md rename to _cases/DIVD-2021-00010.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00011.md b/_cases/DIVD-2021-00011.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00011.md rename to _cases/DIVD-2021-00011.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00012.md b/_cases/DIVD-2021-00012.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00012.md rename to _cases/DIVD-2021-00012.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00014.md b/_cases/DIVD-2021-00014.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00014.md rename to _cases/DIVD-2021-00014.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00015.md b/_cases/DIVD-2021-00015.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00015.md rename to _cases/DIVD-2021-00015.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00017.md b/_cases/DIVD-2021-00017.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00017.md rename to _cases/DIVD-2021-00017.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00021.md b/_cases/DIVD-2021-00021.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00021.md rename to _cases/DIVD-2021-00021.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00022.md b/_cases/DIVD-2021-00022.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00022.md rename to _cases/DIVD-2021-00022.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00023.md b/_cases/DIVD-2021-00023.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00023.md rename to _cases/DIVD-2021-00023.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00026.md b/_cases/DIVD-2021-00026.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00026.md rename to _cases/DIVD-2021-00026.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00027.md b/_cases/DIVD-2021-00027.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00027.md rename to _cases/DIVD-2021-00027.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00029.md b/_cases/DIVD-2021-00029.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00029.md rename to _cases/DIVD-2021-00029.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00030.md b/_cases/DIVD-2021-00030.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00030.md rename to _cases/DIVD-2021-00030.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00033.md b/_cases/DIVD-2021-00033.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00033.md rename to _cases/DIVD-2021-00033.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00036.md b/_cases/DIVD-2021-00036.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00036.md rename to _cases/DIVD-2021-00036.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00037.md b/_cases/DIVD-2021-00037.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00037.md rename to _cases/DIVD-2021-00037.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00038.md b/_cases/DIVD-2021-00038.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00038.md rename to _cases/DIVD-2021-00038.md diff --git a/csirt.divd.nl/_cases/DIVD-2021-00039.md b/_cases/DIVD-2021-00039.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2021-00039.md rename to _cases/DIVD-2021-00039.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00002.md b/_cases/DIVD-2022-00002.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00002.md rename to _cases/DIVD-2022-00002.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00004.md b/_cases/DIVD-2022-00004.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00004.md rename to _cases/DIVD-2022-00004.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00005.md b/_cases/DIVD-2022-00005.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00005.md rename to _cases/DIVD-2022-00005.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00006.md b/_cases/DIVD-2022-00006.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00006.md rename to _cases/DIVD-2022-00006.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00007.md b/_cases/DIVD-2022-00007.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00007.md rename to _cases/DIVD-2022-00007.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00008.md b/_cases/DIVD-2022-00008.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00008.md rename to _cases/DIVD-2022-00008.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00010.md b/_cases/DIVD-2022-00010.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00010.md rename to _cases/DIVD-2022-00010.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00012.md b/_cases/DIVD-2022-00012.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00012.md rename to _cases/DIVD-2022-00012.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00014.md b/_cases/DIVD-2022-00014.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00014.md rename to _cases/DIVD-2022-00014.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00015.md b/_cases/DIVD-2022-00015.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00015.md rename to _cases/DIVD-2022-00015.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00017.md b/_cases/DIVD-2022-00017.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00017.md rename to _cases/DIVD-2022-00017.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00019.md b/_cases/DIVD-2022-00019.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00019.md rename to _cases/DIVD-2022-00019.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00021.md b/_cases/DIVD-2022-00021.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00021.md rename to _cases/DIVD-2022-00021.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00022.md b/_cases/DIVD-2022-00022.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00022.md rename to _cases/DIVD-2022-00022.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00024.md b/_cases/DIVD-2022-00024.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00024.md rename to _cases/DIVD-2022-00024.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00025.md b/_cases/DIVD-2022-00025.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00025.md rename to _cases/DIVD-2022-00025.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00026.md b/_cases/DIVD-2022-00026.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00026.md rename to _cases/DIVD-2022-00026.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00027.md b/_cases/DIVD-2022-00027.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00027.md rename to _cases/DIVD-2022-00027.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00029.md b/_cases/DIVD-2022-00029.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00029.md rename to _cases/DIVD-2022-00029.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00030.md b/_cases/DIVD-2022-00030.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00030.md rename to _cases/DIVD-2022-00030.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00032.md b/_cases/DIVD-2022-00032.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00032.md rename to _cases/DIVD-2022-00032.md diff --git a/csirt.divd.nl/_cases/DIVD-2022-00033.md b/_cases/DIVD-2022-00033.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-2022-00033.md rename to _cases/DIVD-2022-00033.md diff --git a/csirt.divd.nl/_cases/DIVD-3000-00001.md b/_cases/DIVD-3000-00001.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-3000-00001.md rename to _cases/DIVD-3000-00001.md diff --git a/csirt.divd.nl/_cases/DIVD-3000-00002.md b/_cases/DIVD-3000-00002.md similarity index 100% rename from csirt.divd.nl/_cases/DIVD-3000-00002.md rename to _cases/DIVD-3000-00002.md diff --git a/csirt.divd.nl/_config.yml b/_config.yml similarity index 98% rename from csirt.divd.nl/_config.yml rename to _config.yml index bf97f45c..0a83a3ba 100644 --- a/csirt.divd.nl/_config.yml +++ b/_config.yml @@ -64,3 +64,4 @@ exclude: - "*.conf" - "*:Zone.Identifier" - "_config_livereload.yml" + - "www.divd.nl" diff --git a/csirt.divd.nl/_cves/CVE-2021-26471.md b/_cves/CVE-2021-26471.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-26471.md rename to _cves/CVE-2021-26471.md diff --git a/csirt.divd.nl/_cves/CVE-2021-26472.md b/_cves/CVE-2021-26472.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-26472.md rename to _cves/CVE-2021-26472.md diff --git a/csirt.divd.nl/_cves/CVE-2021-26473.md b/_cves/CVE-2021-26473.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-26473.md rename to _cves/CVE-2021-26473.md diff --git a/csirt.divd.nl/_cves/CVE-2021-26474.md b/_cves/CVE-2021-26474.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-26474.md rename to _cves/CVE-2021-26474.md diff --git a/csirt.divd.nl/_cves/CVE-2021-30116.md b/_cves/CVE-2021-30116.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-30116.md rename to _cves/CVE-2021-30116.md diff --git a/csirt.divd.nl/_cves/CVE-2021-30117.md b/_cves/CVE-2021-30117.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-30117.md rename to _cves/CVE-2021-30117.md diff --git a/csirt.divd.nl/_cves/CVE-2021-30118.md b/_cves/CVE-2021-30118.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-30118.md rename to _cves/CVE-2021-30118.md diff --git a/csirt.divd.nl/_cves/CVE-2021-30119.md b/_cves/CVE-2021-30119.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-30119.md rename to _cves/CVE-2021-30119.md diff --git a/csirt.divd.nl/_cves/CVE-2021-30120.md b/_cves/CVE-2021-30120.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-30120.md rename to _cves/CVE-2021-30120.md diff --git a/csirt.divd.nl/_cves/CVE-2021-30121.md b/_cves/CVE-2021-30121.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-30121.md rename to _cves/CVE-2021-30121.md diff --git a/csirt.divd.nl/_cves/CVE-2021-30201.md b/_cves/CVE-2021-30201.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-30201.md rename to _cves/CVE-2021-30201.md diff --git a/csirt.divd.nl/_cves/CVE-2021-32233.md b/_cves/CVE-2021-32233.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-32233.md rename to _cves/CVE-2021-32233.md diff --git a/csirt.divd.nl/_cves/CVE-2021-32234.md b/_cves/CVE-2021-32234.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-32234.md rename to _cves/CVE-2021-32234.md diff --git a/csirt.divd.nl/_cves/CVE-2021-40385.md b/_cves/CVE-2021-40385.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-40385.md rename to _cves/CVE-2021-40385.md diff --git a/csirt.divd.nl/_cves/CVE-2021-40386.md b/_cves/CVE-2021-40386.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-40386.md rename to _cves/CVE-2021-40386.md diff --git a/csirt.divd.nl/_cves/CVE-2021-40387.md b/_cves/CVE-2021-40387.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-40387.md rename to _cves/CVE-2021-40387.md diff --git a/csirt.divd.nl/_cves/CVE-2021-43977.md b/_cves/CVE-2021-43977.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2021-43977.md rename to _cves/CVE-2021-43977.md diff --git a/csirt.divd.nl/_cves/CVE-2022-0564.md b/_cves/CVE-2022-0564.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2022-0564.md rename to _cves/CVE-2022-0564.md diff --git a/csirt.divd.nl/_cves/CVE-2022-24384.md b/_cves/CVE-2022-24384.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2022-24384.md rename to _cves/CVE-2022-24384.md diff --git a/csirt.divd.nl/_cves/CVE-2022-24385.md b/_cves/CVE-2022-24385.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2022-24385.md rename to _cves/CVE-2022-24385.md diff --git a/csirt.divd.nl/_cves/CVE-2022-24386.md b/_cves/CVE-2022-24386.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2022-24386.md rename to _cves/CVE-2022-24386.md diff --git a/csirt.divd.nl/_cves/CVE-2022-24387.md b/_cves/CVE-2022-24387.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2022-24387.md rename to _cves/CVE-2022-24387.md diff --git a/csirt.divd.nl/_cves/CVE-2022-25151.md b/_cves/CVE-2022-25151.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2022-25151.md rename to _cves/CVE-2022-25151.md diff --git a/csirt.divd.nl/_cves/CVE-2022-25152.md b/_cves/CVE-2022-25152.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2022-25152.md rename to _cves/CVE-2022-25152.md diff --git a/csirt.divd.nl/_cves/CVE-2022-25153.md b/_cves/CVE-2022-25153.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-2022-25153.md rename to _cves/CVE-2022-25153.md diff --git a/csirt.divd.nl/_cves/CVE-3000-21907.md b/_cves/CVE-3000-21907.md similarity index 100% rename from csirt.divd.nl/_cves/CVE-3000-21907.md rename to _cves/CVE-3000-21907.md diff --git a/csirt.divd.nl/_cves/CVE-3000-6666.md b/_cves/CVE-3000-6666.md similarity index 98% rename from csirt.divd.nl/_cves/CVE-3000-6666.md rename to _cves/CVE-3000-6666.md index 07a10e8c..91e1fe45 100644 --- a/csirt.divd.nl/_cves/CVE-3000-6666.md +++ b/_cves/CVE-3000-6666.md @@ -141,7 +141,7 @@ json : { ] }, { - "url": "https://csirt.divd.nl/DIVD-3000-0001", + "url": "https://csirt.divd.nl/DIVD-3000-00001", "tags": [ "third-party-advisory" ] @@ -263,7 +263,7 @@ json : { } ], "source": { - "advisory": "DIVD-3000-0001", + "advisory": "DIVD-3000-00001", "discovery": "INTERNAL" }, "x_generator": { diff --git a/csirt.divd.nl/_data/navigation.yml b/_data/navigation.yml similarity index 100% rename from csirt.divd.nl/_data/navigation.yml rename to _data/navigation.yml diff --git a/csirt.divd.nl/_data/scanners.yml b/_data/scanners.yml similarity index 100% rename from csirt.divd.nl/_data/scanners.yml rename to _data/scanners.yml diff --git a/csirt.divd.nl/_includes/disclaimer.html b/_includes/disclaimer.html similarity index 100% rename from csirt.divd.nl/_includes/disclaimer.html rename to _includes/disclaimer.html diff --git a/csirt.divd.nl/_includes/footer.html b/_includes/footer.html similarity index 100% rename from csirt.divd.nl/_includes/footer.html rename to _includes/footer.html diff --git a/csirt.divd.nl/_includes/header.html b/_includes/header.html similarity index 100% rename from csirt.divd.nl/_includes/header.html rename to _includes/header.html diff --git a/csirt.divd.nl/_includes/menu.html b/_includes/menu.html similarity index 100% rename from csirt.divd.nl/_includes/menu.html rename to _includes/menu.html diff --git a/csirt.divd.nl/_includes/navigation.html b/_includes/navigation.html similarity index 100% rename from csirt.divd.nl/_includes/navigation.html rename to _includes/navigation.html diff --git a/csirt.divd.nl/_includes/numf.html b/_includes/numf.html similarity index 100% rename from csirt.divd.nl/_includes/numf.html rename to _includes/numf.html diff --git a/csirt.divd.nl/_includes/paginator.html b/_includes/paginator.html similarity index 100% rename from csirt.divd.nl/_includes/paginator.html rename to _includes/paginator.html diff --git a/csirt.divd.nl/_includes/stats.html b/_includes/stats.html similarity index 100% rename from csirt.divd.nl/_includes/stats.html rename to _includes/stats.html diff --git a/csirt.divd.nl/_includes/timeline.html b/_includes/timeline.html similarity index 100% rename from csirt.divd.nl/_includes/timeline.html rename to _includes/timeline.html diff --git a/csirt.divd.nl/_includes/timeline_cases.html b/_includes/timeline_cases.html similarity index 100% rename from csirt.divd.nl/_includes/timeline_cases.html rename to _includes/timeline_cases.html diff --git a/csirt.divd.nl/_includes/timeline_cases_open.html b/_includes/timeline_cases_open.html similarity index 100% rename from csirt.divd.nl/_includes/timeline_cases_open.html rename to _includes/timeline_cases_open.html diff --git a/csirt.divd.nl/_includes/timeline_gantt.html b/_includes/timeline_gantt.html similarity index 100% rename from csirt.divd.nl/_includes/timeline_gantt.html rename to _includes/timeline_gantt.html diff --git a/csirt.divd.nl/_includes/timeline_table.html b/_includes/timeline_table.html similarity index 100% rename from csirt.divd.nl/_includes/timeline_table.html rename to _includes/timeline_table.html diff --git a/csirt.divd.nl/_layouts/bio.html b/_layouts/bio.html similarity index 100% rename from csirt.divd.nl/_layouts/bio.html rename to _layouts/bio.html diff --git a/csirt.divd.nl/_layouts/case.html b/_layouts/case.html similarity index 100% rename from csirt.divd.nl/_layouts/case.html rename to _layouts/case.html diff --git a/csirt.divd.nl/_layouts/cve-json-40.html b/_layouts/cve-json-40.html similarity index 100% rename from csirt.divd.nl/_layouts/cve-json-40.html rename to _layouts/cve-json-40.html diff --git a/csirt.divd.nl/_layouts/cve-json-50.html b/_layouts/cve-json-50.html similarity index 97% rename from csirt.divd.nl/_layouts/cve-json-50.html rename to _layouts/cve-json-50.html index dc92c417..3489f368 100644 --- a/csirt.divd.nl/_layouts/cve-json-50.html +++ b/_layouts/cve-json-50.html @@ -121,7 +121,7 @@ <h1>{{ page.cve | escape }} - {{ page.title | escape }}</h1> <td> {% if v.status == "affected" %} {% if v.lessThan or v.lessThanOrEqual %} - >= + >= {% else %} = {% endif %} @@ -129,10 +129,10 @@ <h1>{{ page.cve | escape }} - {{ page.title | escape }}</h1> {% if v.lessThan or v.lessThanOrEqual %} to {% if v.lessThan %} - < {{ v.lessThan }} + < {{ v.lessThan }} {% endif %} {% if v.lessThanOrEqual %} - < {{ v.lessThanOrEqual }} + < {{ v.lessThanOrEqual }} {% endif %} {% endif %} {% endif %} @@ -140,7 +140,7 @@ <h1>{{ page.cve | escape }} - {{ page.title | escape }}</h1> <td> {% if v.status == "unaffected" %} {% if v.lessThan or v.lessThanOrEqual %} - >= + >= {% else %} = {% endif %} @@ -148,10 +148,10 @@ <h1>{{ page.cve | escape }} - {{ page.title | escape }}</h1> {% if v.lessThan or v.lessThanOrEqual %} to {% if v.lessThan %} - < {{ v.lessThan }} + < {{ v.lessThan }} {% endif %} {% if v.lessThanOrEqual %} - < {{ v.lessThanOrEqual }} + < {{ v.lessThanOrEqual }} {% endif %} {% endif %} {% endif %} @@ -159,7 +159,7 @@ <h1>{{ page.cve | escape }} - {{ page.title | escape }}</h1> <td> {% if v.status == "unknown" %} {% if v.lessThan or v.lessThanOrEqual %} - >= + >= {% else %} = {% endif %} @@ -167,10 +167,10 @@ <h1>{{ page.cve | escape }} - {{ page.title | escape }}</h1> {% if v.lessThan or v.lessThanOrEqual %} to {% if v.lessThan %} - < {{ v.lessThan }} + < {{ v.lessThan }} {% endif %} {% if v.lessThanOrEqual %} - < {{ v.lessThanOrEqual }} + < {{ v.lessThanOrEqual }} {% endif %} {% endif %} {% endif %} diff --git a/csirt.divd.nl/_layouts/cve-json.json b/_layouts/cve-json.json similarity index 100% rename from csirt.divd.nl/_layouts/cve-json.json rename to _layouts/cve-json.json diff --git a/csirt.divd.nl/_layouts/cve.html b/_layouts/cve.html similarity index 100% rename from csirt.divd.nl/_layouts/cve.html rename to _layouts/cve.html diff --git a/csirt.divd.nl/_layouts/default.html b/_layouts/default.html similarity index 100% rename from csirt.divd.nl/_layouts/default.html rename to _layouts/default.html diff --git a/csirt.divd.nl/_layouts/faq.html b/_layouts/faq.html similarity index 100% rename from csirt.divd.nl/_layouts/faq.html rename to _layouts/faq.html diff --git a/csirt.divd.nl/_layouts/page.html b/_layouts/page.html similarity index 100% rename from csirt.divd.nl/_layouts/page.html rename to _layouts/page.html diff --git a/csirt.divd.nl/_layouts/post.html b/_layouts/post.html similarity index 100% rename from csirt.divd.nl/_layouts/post.html rename to _layouts/post.html diff --git a/csirt.divd.nl/_layouts/team.html b/_layouts/team.html similarity index 100% rename from csirt.divd.nl/_layouts/team.html rename to _layouts/team.html diff --git a/csirt.divd.nl/_plugins/casesPlugin.rb b/_plugins/casesPlugin.rb similarity index 100% rename from csirt.divd.nl/_plugins/casesPlugin.rb rename to _plugins/casesPlugin.rb diff --git a/csirt.divd.nl/_plugins/cve_json.rb b/_plugins/cve_json.rb similarity index 100% rename from csirt.divd.nl/_plugins/cve_json.rb rename to _plugins/cve_json.rb diff --git a/csirt.divd.nl/_posts/20-01-13-Citrix.md b/_posts/20-01-13-Citrix.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-13-Citrix.md rename to _posts/20-01-13-Citrix.md diff --git a/csirt.divd.nl/_posts/20-01-15-How-to-check-your-Citrix-gateway.md b/_posts/20-01-15-How-to-check-your-Citrix-gateway.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-15-How-to-check-your-Citrix-gateway.md rename to _posts/20-01-15-How-to-check-your-Citrix-gateway.md diff --git a/csirt.divd.nl/_posts/20-01-16-Terug-bij-af.md b/_posts/20-01-16-Terug-bij-af.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-16-Terug-bij-af.md rename to _posts/20-01-16-Terug-bij-af.md diff --git a/csirt.divd.nl/_posts/20-01-17-Scannen-Citrix-gaat-door.md b/_posts/20-01-17-Scannen-Citrix-gaat-door.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-17-Scannen-Citrix-gaat-door.md rename to _posts/20-01-17-Scannen-Citrix-gaat-door.md diff --git a/csirt.divd.nl/_posts/20-01-19-Eerste-Citrix-patches.md b/_posts/20-01-19-Eerste-Citrix-patches.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-19-Eerste-Citrix-patches.md rename to _posts/20-01-19-Eerste-Citrix-patches.md diff --git a/csirt.divd.nl/_posts/20-01-22-Citrix-en-wildcards.md b/_posts/20-01-22-Citrix-en-wildcards.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-22-Citrix-en-wildcards.md rename to _posts/20-01-22-Citrix-en-wildcards.md diff --git a/csirt.divd.nl/_posts/20-01-26-DIVD-call-for-volunteers.md b/_posts/20-01-26-DIVD-call-for-volunteers.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-26-DIVD-call-for-volunteers.md rename to _posts/20-01-26-DIVD-call-for-volunteers.md diff --git a/csirt.divd.nl/_posts/20-01-27-BlueGate-POC.md b/_posts/20-01-27-BlueGate-POC.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-27-BlueGate-POC.md rename to _posts/20-01-27-BlueGate-POC.md diff --git a/csirt.divd.nl/_posts/20-01-29-BlueGate-patch-restart.md b/_posts/20-01-29-BlueGate-patch-restart.md similarity index 100% rename from csirt.divd.nl/_posts/20-01-29-BlueGate-patch-restart.md rename to _posts/20-01-29-BlueGate-patch-restart.md diff --git a/csirt.divd.nl/_posts/20-02-05-Citrix-notifications-again.md b/_posts/20-02-05-Citrix-notifications-again.md similarity index 100% rename from csirt.divd.nl/_posts/20-02-05-Citrix-notifications-again.md rename to _posts/20-02-05-Citrix-notifications-again.md diff --git a/csirt.divd.nl/_posts/20-02-10-Mirai bezemwagen.md b/_posts/20-02-10-Mirai bezemwagen.md similarity index 100% rename from csirt.divd.nl/_posts/20-02-10-Mirai bezemwagen.md rename to _posts/20-02-10-Mirai bezemwagen.md diff --git a/csirt.divd.nl/_posts/20-02-15-Hacker-Hotel.md b/_posts/20-02-15-Hacker-Hotel.md similarity index 100% rename from csirt.divd.nl/_posts/20-02-15-Hacker-Hotel.md rename to _posts/20-02-15-Hacker-Hotel.md diff --git a/csirt.divd.nl/_posts/20-02-22-Ghostcat.md b/_posts/20-02-22-Ghostcat.md similarity index 100% rename from csirt.divd.nl/_posts/20-02-22-Ghostcat.md rename to _posts/20-02-22-Ghostcat.md diff --git a/csirt.divd.nl/_posts/20-03-12-smbv3.md b/_posts/20-03-12-smbv3.md similarity index 100% rename from csirt.divd.nl/_posts/20-03-12-smbv3.md rename to _posts/20-03-12-smbv3.md diff --git a/csirt.divd.nl/_posts/20-03-12-zz_smbv3-patch.md b/_posts/20-03-12-zz_smbv3-patch.md similarity index 100% rename from csirt.divd.nl/_posts/20-03-12-zz_smbv3-patch.md rename to _posts/20-03-12-zz_smbv3-patch.md diff --git a/csirt.divd.nl/_posts/20-05-28-Citrix-ShareFile.md b/_posts/20-05-28-Citrix-ShareFile.md similarity index 100% rename from csirt.divd.nl/_posts/20-05-28-Citrix-ShareFile.md rename to _posts/20-05-28-Citrix-ShareFile.md diff --git a/csirt.divd.nl/_posts/20-08-05-PulseVPN dataset leaked.md b/_posts/20-08-05-PulseVPN dataset leaked.md similarity index 100% rename from csirt.divd.nl/_posts/20-08-05-PulseVPN dataset leaked.md rename to _posts/20-08-05-PulseVPN dataset leaked.md diff --git a/csirt.divd.nl/_posts/20-08-07-wpDiscuz-RCE.md b/_posts/20-08-07-wpDiscuz-RCE.md similarity index 100% rename from csirt.divd.nl/_posts/20-08-07-wpDiscuz-RCE.md rename to _posts/20-08-07-wpDiscuz-RCE.md diff --git a/csirt.divd.nl/_posts/20-11-15-49000-vulnerable-Fortinet-VPNs.md b/_posts/20-11-15-49000-vulnerable-Fortinet-VPNs.md similarity index 100% rename from csirt.divd.nl/_posts/20-11-15-49000-vulnerable-Fortinet-VPNs.md rename to _posts/20-11-15-49000-vulnerable-Fortinet-VPNs.md diff --git a/csirt.divd.nl/_posts/20-11-27-Wordpress-in-dot-nl-space-indexed.md b/_posts/20-11-27-Wordpress-in-dot-nl-space-indexed.md similarity index 100% rename from csirt.divd.nl/_posts/20-11-27-Wordpress-in-dot-nl-space-indexed.md rename to _posts/20-11-27-Wordpress-in-dot-nl-space-indexed.md diff --git a/csirt.divd.nl/_posts/20-12-17-Security-meldpunt-wordt-DIVD-CSIRT.md b/_posts/20-12-17-Security-meldpunt-wordt-DIVD-CSIRT.md similarity index 100% rename from csirt.divd.nl/_posts/20-12-17-Security-meldpunt-wordt-DIVD-CSIRT.md rename to _posts/20-12-17-Security-meldpunt-wordt-DIVD-CSIRT.md diff --git a/csirt.divd.nl/_posts/20-12-30-Solarwinds-Orion.md b/_posts/20-12-30-Solarwinds-Orion.md similarity index 100% rename from csirt.divd.nl/_posts/20-12-30-Solarwinds-Orion.md rename to _posts/20-12-30-Solarwinds-Orion.md diff --git a/csirt.divd.nl/_posts/21-01-01-Phising-slachtoffer-notificatie.md b/_posts/21-01-01-Phising-slachtoffer-notificatie.md similarity index 100% rename from csirt.divd.nl/_posts/21-01-01-Phising-slachtoffer-notificatie.md rename to _posts/21-01-01-Phising-slachtoffer-notificatie.md diff --git a/csirt.divd.nl/_posts/21-03-03-Exchange-vulnerabilities-actively-abused.md b/_posts/21-03-03-Exchange-vulnerabilities-actively-abused.md similarity index 100% rename from csirt.divd.nl/_posts/21-03-03-Exchange-vulnerabilities-actively-abused.md rename to _posts/21-03-03-Exchange-vulnerabilities-actively-abused.md diff --git a/csirt.divd.nl/_posts/21-03-08-Exchange-vulnerabilities-update.md b/_posts/21-03-08-Exchange-vulnerabilities-update.md similarity index 100% rename from csirt.divd.nl/_posts/21-03-08-Exchange-vulnerabilities-update.md rename to _posts/21-03-08-Exchange-vulnerabilities-update.md diff --git a/csirt.divd.nl/_posts/21-03-16-Additional-exchange-servers.md b/_posts/21-03-16-Additional-exchange-servers.md similarity index 100% rename from csirt.divd.nl/_posts/21-03-16-Additional-exchange-servers.md rename to _posts/21-03-16-Additional-exchange-servers.md diff --git a/csirt.divd.nl/_posts/21-05-09-Phishing-slachtoffer-notificatie.md b/_posts/21-05-09-Phishing-slachtoffer-notificatie.md similarity index 100% rename from csirt.divd.nl/_posts/21-05-09-Phishing-slachtoffer-notificatie.md rename to _posts/21-05-09-Phishing-slachtoffer-notificatie.md diff --git a/csirt.divd.nl/_posts/21-05-10-Pulse-Secure-PreAuth-RCE.md b/_posts/21-05-10-Pulse-Secure-PreAuth-RCE.md similarity index 100% rename from csirt.divd.nl/_posts/21-05-10-Pulse-Secure-PreAuth-RCE.md rename to _posts/21-05-10-Pulse-Secure-PreAuth-RCE.md diff --git a/csirt.divd.nl/_posts/21-05-11-Vembu-zero-days.md b/_posts/21-05-11-Vembu-zero-days.md similarity index 100% rename from csirt.divd.nl/_posts/21-05-11-Vembu-zero-days.md rename to _posts/21-05-11-Vembu-zero-days.md diff --git a/csirt.divd.nl/_posts/21-05-14-Closing-ProxyLogon-case.md b/_posts/21-05-14-Closing-ProxyLogon-case.md similarity index 100% rename from csirt.divd.nl/_posts/21-05-14-Closing-ProxyLogon-case.md rename to _posts/21-05-14-Closing-ProxyLogon-case.md diff --git a/csirt.divd.nl/_posts/21-06-03-Warehouse-Botnet.md b/_posts/21-06-03-Warehouse-Botnet.md similarity index 100% rename from csirt.divd.nl/_posts/21-06-03-Warehouse-Botnet.md rename to _posts/21-06-03-Warehouse-Botnet.md diff --git a/csirt.divd.nl/_posts/21-06-06-vCenter-Server-PreAuth-RCE.md b/_posts/21-06-06-vCenter-Server-PreAuth-RCE.md similarity index 100% rename from csirt.divd.nl/_posts/21-06-06-vCenter-Server-PreAuth-RCE.md rename to _posts/21-06-06-vCenter-Server-PreAuth-RCE.md diff --git a/csirt.divd.nl/_posts/21-07-02-Kaseya-VSA-Advisory.md b/_posts/21-07-02-Kaseya-VSA-Advisory.md similarity index 100% rename from csirt.divd.nl/_posts/21-07-02-Kaseya-VSA-Advisory.md rename to _posts/21-07-02-Kaseya-VSA-Advisory.md diff --git a/csirt.divd.nl/_posts/21-07-03-Kaseya-Case-Update.md b/_posts/21-07-03-Kaseya-Case-Update.md similarity index 100% rename from csirt.divd.nl/_posts/21-07-03-Kaseya-Case-Update.md rename to _posts/21-07-03-Kaseya-Case-Update.md diff --git a/csirt.divd.nl/_posts/21-07-04-Kaseya-Case-Update-2.md b/_posts/21-07-04-Kaseya-Case-Update-2.md similarity index 100% rename from csirt.divd.nl/_posts/21-07-04-Kaseya-Case-Update-2.md rename to _posts/21-07-04-Kaseya-Case-Update-2.md diff --git a/csirt.divd.nl/_posts/21-07-06-Kaseya-Case-Update-3.md b/_posts/21-07-06-Kaseya-Case-Update-3.md similarity index 100% rename from csirt.divd.nl/_posts/21-07-06-Kaseya-Case-Update-3.md rename to _posts/21-07-06-Kaseya-Case-Update-3.md diff --git a/csirt.divd.nl/_posts/21-07-07-Kaseya-Limited-Disclosure.md b/_posts/21-07-07-Kaseya-Limited-Disclosure.md similarity index 100% rename from csirt.divd.nl/_posts/21-07-07-Kaseya-Limited-Disclosure.md rename to _posts/21-07-07-Kaseya-Limited-Disclosure.md diff --git a/csirt.divd.nl/_posts/21-08-20-Planned-Vembu-Full-Disclosure.md b/_posts/21-08-20-Planned-Vembu-Full-Disclosure.md similarity index 100% rename from csirt.divd.nl/_posts/21-08-20-Planned-Vembu-Full-Disclosure.md rename to _posts/21-08-20-Planned-Vembu-Full-Disclosure.md diff --git a/csirt.divd.nl/_posts/21-08-20-Social-Media-Consolidation.md b/_posts/21-08-20-Social-Media-Consolidation.md similarity index 100% rename from csirt.divd.nl/_posts/21-08-20-Social-Media-Consolidation.md rename to _posts/21-08-20-Social-Media-Consolidation.md diff --git a/csirt.divd.nl/_posts/21-08-25-Vembu-BDR-Full-Disclosure.md b/_posts/21-08-25-Vembu-BDR-Full-Disclosure.md similarity index 100% rename from csirt.divd.nl/_posts/21-08-25-Vembu-BDR-Full-Disclosure.md rename to _posts/21-08-25-Vembu-BDR-Full-Disclosure.md diff --git a/csirt.divd.nl/_posts/21-08-26-Kaseya-Unitrends-update.md b/_posts/21-08-26-Kaseya-Unitrends-update.md similarity index 100% rename from csirt.divd.nl/_posts/21-08-26-Kaseya-Unitrends-update.md rename to _posts/21-08-26-Kaseya-Unitrends-update.md diff --git a/csirt.divd.nl/_posts/21-08-26-ProxyShell-and-ProxyOracle.md b/_posts/21-08-26-ProxyShell-and-ProxyOracle.md similarity index 100% rename from csirt.divd.nl/_posts/21-08-26-ProxyShell-and-ProxyOracle.md rename to _posts/21-08-26-ProxyShell-and-ProxyOracle.md diff --git a/csirt.divd.nl/_posts/21-10-05-Apache-HTTP-Server-CVE-2021-41773.md b/_posts/21-10-05-Apache-HTTP-Server-CVE-2021-41773.md similarity index 100% rename from csirt.divd.nl/_posts/21-10-05-Apache-HTTP-Server-CVE-2021-41773.md rename to _posts/21-10-05-Apache-HTTP-Server-CVE-2021-41773.md diff --git a/csirt.divd.nl/_posts/21-10-07-Apache-HTTP-Server-CVE-2021-41773 Update.md b/_posts/21-10-07-Apache-HTTP-Server-CVE-2021-41773 Update.md similarity index 100% rename from csirt.divd.nl/_posts/21-10-07-Apache-HTTP-Server-CVE-2021-41773 Update.md rename to _posts/21-10-07-Apache-HTTP-Server-CVE-2021-41773 Update.md diff --git a/csirt.divd.nl/_posts/21-11-04-N-Able-vulnerabilities.md b/_posts/21-11-04-N-Able-vulnerabilities.md similarity index 100% rename from csirt.divd.nl/_posts/21-11-04-N-Able-vulnerabilities.md rename to _posts/21-11-04-N-Able-vulnerabilities.md diff --git a/csirt.divd.nl/_posts/21-11-11-GitLab-Unauthenticated-RCE-Flaw.md b/_posts/21-11-11-GitLab-Unauthenticated-RCE-Flaw.md similarity index 100% rename from csirt.divd.nl/_posts/21-11-11-GitLab-Unauthenticated-RCE-Flaw.md rename to _posts/21-11-11-GitLab-Unauthenticated-RCE-Flaw.md diff --git a/csirt.divd.nl/_posts/21-11-27-NMAP-script-to-test-for-GitLab-CVE-2021-22205.md b/_posts/21-11-27-NMAP-script-to-test-for-GitLab-CVE-2021-22205.md similarity index 100% rename from csirt.divd.nl/_posts/21-11-27-NMAP-script-to-test-for-GitLab-CVE-2021-22205.md rename to _posts/21-11-27-NMAP-script-to-test-for-GitLab-CVE-2021-22205.md diff --git a/csirt.divd.nl/_posts/21-12-10-Apache-log4j-remote-code-execution.md b/_posts/21-12-10-Apache-log4j-remote-code-execution.md similarity index 100% rename from csirt.divd.nl/_posts/21-12-10-Apache-log4j-remote-code-execution.md rename to _posts/21-12-10-Apache-log4j-remote-code-execution.md diff --git a/csirt.divd.nl/_posts/21-12-14-Update-Apache-log4j-remote-code-execution.md b/_posts/21-12-14-Update-Apache-log4j-remote-code-execution.md similarity index 100% rename from csirt.divd.nl/_posts/21-12-14-Update-Apache-log4j-remote-code-execution.md rename to _posts/21-12-14-Update-Apache-log4j-remote-code-execution.md diff --git a/csirt.divd.nl/_posts/22-02-01-DIVD-is-a-CVE-Numbering-Authority.md b/_posts/22-02-01-DIVD-is-a-CVE-Numbering-Authority.md similarity index 100% rename from csirt.divd.nl/_posts/22-02-01-DIVD-is-a-CVE-Numbering-Authority.md rename to _posts/22-02-01-DIVD-is-a-CVE-Numbering-Authority.md diff --git a/csirt.divd.nl/_posts/22-02-07-XSS-Zeroday-in-Zimbra.md b/_posts/22-02-07-XSS-Zeroday-in-Zimbra.md similarity index 100% rename from csirt.divd.nl/_posts/22-02-07-XSS-Zeroday-in-Zimbra.md rename to _posts/22-02-07-XSS-Zeroday-in-Zimbra.md diff --git a/csirt.divd.nl/_posts/22-02-08-SAP-auth-bypass.md b/_posts/22-02-08-SAP-auth-bypass.md similarity index 100% rename from csirt.divd.nl/_posts/22-02-08-SAP-auth-bypass.md rename to _posts/22-02-08-SAP-auth-bypass.md diff --git a/csirt.divd.nl/_posts/22-03-12-Limited-disclosure-SmarterTrack.md b/_posts/22-03-12-Limited-disclosure-SmarterTrack.md similarity index 100% rename from csirt.divd.nl/_posts/22-03-12-Limited-disclosure-SmarterTrack.md rename to _posts/22-03-12-Limited-disclosure-SmarterTrack.md diff --git a/csirt.divd.nl/_posts/22-04-04-Kaseya-VSA-Full-Disclosure.md b/_posts/22-04-04-Kaseya-VSA-Full-Disclosure.md similarity index 100% rename from csirt.divd.nl/_posts/22-04-04-Kaseya-VSA-Full-Disclosure.md rename to _posts/22-04-04-Kaseya-VSA-Full-Disclosure.md diff --git a/csirt.divd.nl/_posts/22-06-03-Confluence-Zero-Day.md b/_posts/22-06-03-Confluence-Zero-Day.md similarity index 100% rename from csirt.divd.nl/_posts/22-06-03-Confluence-Zero-Day.md rename to _posts/22-06-03-Confluence-Zero-Day.md diff --git a/csirt.divd.nl/_posts/22-06-08-ITarian-critical-vulnerabilities.md b/_posts/22-06-08-ITarian-critical-vulnerabilities.md similarity index 100% rename from csirt.divd.nl/_posts/22-06-08-ITarian-critical-vulnerabilities.md rename to _posts/22-06-08-ITarian-critical-vulnerabilities.md diff --git a/csirt.divd.nl/_team/.keep b/_team/.keep similarity index 100% rename from csirt.divd.nl/_team/.keep rename to _team/.keep diff --git a/csirt.divd.nl/assets/css/font-awesome.min.css b/assets/css/font-awesome.min.css similarity index 100% rename from csirt.divd.nl/assets/css/font-awesome.min.css rename to assets/css/font-awesome.min.css diff --git a/csirt.divd.nl/assets/css/main.css b/assets/css/main.css similarity index 100% rename from csirt.divd.nl/assets/css/main.css rename to assets/css/main.css diff --git a/csirt.divd.nl/assets/css/menu.scss b/assets/css/menu.scss similarity index 100% rename from csirt.divd.nl/assets/css/menu.scss rename to assets/css/menu.scss diff --git a/csirt.divd.nl/assets/css/mermaid.css b/assets/css/mermaid.css similarity index 100% rename from csirt.divd.nl/assets/css/mermaid.css rename to assets/css/mermaid.css diff --git a/csirt.divd.nl/assets/css/style.scss b/assets/css/style.scss similarity index 100% rename from csirt.divd.nl/assets/css/style.scss rename to assets/css/style.scss diff --git a/csirt.divd.nl/assets/fonts/FontAwesome.otf b/assets/fonts/FontAwesome.otf similarity index 100% rename from csirt.divd.nl/assets/fonts/FontAwesome.otf rename to assets/fonts/FontAwesome.otf diff --git a/csirt.divd.nl/assets/fonts/fontawesome-webfont.eot b/assets/fonts/fontawesome-webfont.eot similarity index 100% rename from csirt.divd.nl/assets/fonts/fontawesome-webfont.eot rename to assets/fonts/fontawesome-webfont.eot diff --git a/csirt.divd.nl/assets/fonts/fontawesome-webfont.svg b/assets/fonts/fontawesome-webfont.svg similarity index 100% rename from csirt.divd.nl/assets/fonts/fontawesome-webfont.svg rename to assets/fonts/fontawesome-webfont.svg diff --git a/csirt.divd.nl/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf similarity index 100% rename from csirt.divd.nl/assets/fonts/fontawesome-webfont.ttf rename to assets/fonts/fontawesome-webfont.ttf diff --git a/csirt.divd.nl/assets/fonts/fontawesome-webfont.woff b/assets/fonts/fontawesome-webfont.woff similarity index 100% rename from csirt.divd.nl/assets/fonts/fontawesome-webfont.woff rename to assets/fonts/fontawesome-webfont.woff diff --git a/csirt.divd.nl/assets/fonts/fontawesome-webfont.woff2 b/assets/fonts/fontawesome-webfont.woff2 similarity index 100% rename from csirt.divd.nl/assets/fonts/fontawesome-webfont.woff2 rename to assets/fonts/fontawesome-webfont.woff2 diff --git a/csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.eot b/assets/fonts/raleway-v22-latin-regular.eot similarity index 100% rename from csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.eot rename to assets/fonts/raleway-v22-latin-regular.eot diff --git a/csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.svg b/assets/fonts/raleway-v22-latin-regular.svg similarity index 100% rename from csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.svg rename to assets/fonts/raleway-v22-latin-regular.svg diff --git a/csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.ttf b/assets/fonts/raleway-v22-latin-regular.ttf similarity index 100% rename from csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.ttf rename to assets/fonts/raleway-v22-latin-regular.ttf diff --git a/csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.woff b/assets/fonts/raleway-v22-latin-regular.woff similarity index 100% rename from csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.woff rename to assets/fonts/raleway-v22-latin-regular.woff diff --git a/csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.woff2 b/assets/fonts/raleway-v22-latin-regular.woff2 similarity index 100% rename from csirt.divd.nl/assets/fonts/raleway-v22-latin-regular.woff2 rename to assets/fonts/raleway-v22-latin-regular.woff2 diff --git a/csirt.divd.nl/assets/images/404divd.svg b/assets/images/404divd.svg similarity index 100% rename from csirt.divd.nl/assets/images/404divd.svg rename to assets/images/404divd.svg diff --git a/csirt.divd.nl/assets/images/CitrixADC_graph.png b/assets/images/CitrixADC_graph.png similarity index 100% rename from csirt.divd.nl/assets/images/CitrixADC_graph.png rename to assets/images/CitrixADC_graph.png diff --git a/csirt.divd.nl/assets/images/DIVD-2020-00003_vulnstats.png b/assets/images/DIVD-2020-00003_vulnstats.png similarity index 100% rename from csirt.divd.nl/assets/images/DIVD-2020-00003_vulnstats.png rename to assets/images/DIVD-2020-00003_vulnstats.png diff --git a/csirt.divd.nl/assets/images/DIVD-2021-00001-stats.png b/assets/images/DIVD-2021-00001-stats.png similarity index 100% rename from csirt.divd.nl/assets/images/DIVD-2021-00001-stats.png rename to assets/images/DIVD-2021-00001-stats.png diff --git a/csirt.divd.nl/assets/images/DIVD-2021-00002-stats-2.png b/assets/images/DIVD-2021-00002-stats-2.png similarity index 100% rename from csirt.divd.nl/assets/images/DIVD-2021-00002-stats-2.png rename to assets/images/DIVD-2021-00002-stats-2.png diff --git a/csirt.divd.nl/assets/images/DIVD-2021-00002-stats-3.png b/assets/images/DIVD-2021-00002-stats-3.png similarity index 100% rename from csirt.divd.nl/assets/images/DIVD-2021-00002-stats-3.png rename to assets/images/DIVD-2021-00002-stats-3.png diff --git a/csirt.divd.nl/assets/images/DIVD-2021-00002-stats-nl.png b/assets/images/DIVD-2021-00002-stats-nl.png similarity index 100% rename from csirt.divd.nl/assets/images/DIVD-2021-00002-stats-nl.png rename to assets/images/DIVD-2021-00002-stats-nl.png diff --git a/csirt.divd.nl/assets/images/DIVD-2021-00002-stats.png b/assets/images/DIVD-2021-00002-stats.png similarity index 100% rename from csirt.divd.nl/assets/images/DIVD-2021-00002-stats.png rename to assets/images/DIVD-2021-00002-stats.png diff --git a/csirt.divd.nl/assets/images/apache-2.4.49-2.4.50.png b/assets/images/apache-2.4.49-2.4.50.png similarity index 100% rename from csirt.divd.nl/assets/images/apache-2.4.49-2.4.50.png rename to assets/images/apache-2.4.49-2.4.50.png diff --git a/csirt.divd.nl/assets/images/banner.jpg b/assets/images/banner.jpg similarity index 100% rename from csirt.divd.nl/assets/images/banner.jpg rename to assets/images/banner.jpg diff --git a/csirt.divd.nl/assets/images/bg.jpg b/assets/images/bg.jpg similarity index 100% rename from csirt.divd.nl/assets/images/bg.jpg rename to assets/images/bg.jpg diff --git a/csirt.divd.nl/assets/images/bluegate.jpg b/assets/images/bluegate.jpg similarity index 100% rename from csirt.divd.nl/assets/images/bluegate.jpg rename to assets/images/bluegate.jpg diff --git a/csirt.divd.nl/assets/images/bluegate_small.png b/assets/images/bluegate_small.png similarity index 100% rename from csirt.divd.nl/assets/images/bluegate_small.png rename to assets/images/bluegate_small.png diff --git a/csirt.divd.nl/assets/images/cve-2021-26472.png b/assets/images/cve-2021-26472.png similarity index 100% rename from csirt.divd.nl/assets/images/cve-2021-26472.png rename to assets/images/cve-2021-26472.png diff --git a/csirt.divd.nl/assets/images/cve-2021-30116/cookies.png b/assets/images/cve-2021-30116/cookies.png similarity index 100% rename from csirt.divd.nl/assets/images/cve-2021-30116/cookies.png rename to assets/images/cve-2021-30116/cookies.png diff --git a/csirt.divd.nl/assets/images/cve-2021-30116/dl.asp.png b/assets/images/cve-2021-30116/dl.asp.png similarity index 100% rename from csirt.divd.nl/assets/images/cve-2021-30116/dl.asp.png rename to assets/images/cve-2021-30116/dl.asp.png diff --git a/csirt.divd.nl/assets/images/cve-2021-30116/kaseyad.ini.png b/assets/images/cve-2021-30116/kaseyad.ini.png similarity index 100% rename from csirt.divd.nl/assets/images/cve-2021-30116/kaseyad.ini.png rename to assets/images/cve-2021-30116/kaseyad.ini.png diff --git a/csirt.divd.nl/assets/images/cve-2021-30116/vookies.png b/assets/images/cve-2021-30116/vookies.png similarity index 100% rename from csirt.divd.nl/assets/images/cve-2021-30116/vookies.png rename to assets/images/cve-2021-30116/vookies.png diff --git a/csirt.divd.nl/assets/images/cve-2021-30116/xss.png b/assets/images/cve-2021-30116/xss.png similarity index 100% rename from csirt.divd.nl/assets/images/cve-2021-30116/xss.png rename to assets/images/cve-2021-30116/xss.png diff --git a/csirt.divd.nl/assets/images/ghostcat-logo-small.png b/assets/images/ghostcat-logo-small.png similarity index 100% rename from csirt.divd.nl/assets/images/ghostcat-logo-small.png rename to assets/images/ghostcat-logo-small.png diff --git a/csirt.divd.nl/assets/images/ghostcat-logo.png b/assets/images/ghostcat-logo.png similarity index 100% rename from csirt.divd.nl/assets/images/ghostcat-logo.png rename to assets/images/ghostcat-logo.png diff --git a/csirt.divd.nl/assets/images/itarian.png b/assets/images/itarian.png similarity index 100% rename from csirt.divd.nl/assets/images/itarian.png rename to assets/images/itarian.png diff --git a/csirt.divd.nl/assets/images/meldpunt.png b/assets/images/meldpunt.png similarity index 100% rename from csirt.divd.nl/assets/images/meldpunt.png rename to assets/images/meldpunt.png diff --git a/csirt.divd.nl/assets/images/vembu_graph.png b/assets/images/vembu_graph.png similarity index 100% rename from csirt.divd.nl/assets/images/vembu_graph.png rename to assets/images/vembu_graph.png diff --git a/csirt.divd.nl/assets/js/breakpoints.min.js b/assets/js/breakpoints.min.js similarity index 100% rename from csirt.divd.nl/assets/js/breakpoints.min.js rename to assets/js/breakpoints.min.js diff --git a/csirt.divd.nl/assets/js/browser.min.js b/assets/js/browser.min.js similarity index 100% rename from csirt.divd.nl/assets/js/browser.min.js rename to assets/js/browser.min.js diff --git a/csirt.divd.nl/assets/js/jquery.min.js b/assets/js/jquery.min.js similarity index 100% rename from csirt.divd.nl/assets/js/jquery.min.js rename to assets/js/jquery.min.js diff --git a/csirt.divd.nl/assets/js/main.js b/assets/js/main.js similarity index 100% rename from csirt.divd.nl/assets/js/main.js rename to assets/js/main.js diff --git a/csirt.divd.nl/assets/js/mermaid.min.js b/assets/js/mermaid.min.js similarity index 100% rename from csirt.divd.nl/assets/js/mermaid.min.js rename to assets/js/mermaid.min.js diff --git a/csirt.divd.nl/assets/js/mermaid.min.js.map b/assets/js/mermaid.min.js.map similarity index 100% rename from csirt.divd.nl/assets/js/mermaid.min.js.map rename to assets/js/mermaid.min.js.map diff --git a/csirt.divd.nl/assets/js/util.js b/assets/js/util.js similarity index 100% rename from csirt.divd.nl/assets/js/util.js rename to assets/js/util.js diff --git a/csirt.divd.nl/blog/index.html b/blog/index.html similarity index 100% rename from csirt.divd.nl/blog/index.html rename to blog/index.html diff --git a/csirt.divd.nl/cases.html b/cases.html similarity index 100% rename from csirt.divd.nl/cases.html rename to cases.html diff --git a/csirt.divd.nl/contact.md b/contact.md similarity index 100% rename from csirt.divd.nl/contact.md rename to contact.md diff --git a/csirt.divd.nl/.htaccess b/csirt.divd.nl/.htaccess deleted file mode 100644 index eaa278a2..00000000 --- a/csirt.divd.nl/.htaccess +++ /dev/null @@ -1,7 +0,0 @@ -Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;" -Header always append X-Frame-Options DENY -Header set X-Content-Type-Options nosniff -Header set X-XSS-Protection "1; mode=block" -Header set Content-Security-Policy "default-src 'none'; font-src 'self'; img-src 'self'; script-src 'self' ; style-src 'self'" -Header always set Referrer-Policy "same-origin" -ErrorDocument 404 /404.html \ No newline at end of file diff --git a/csirt.divd.nl/README.md b/csirt.divd.nl/README.md deleted file mode 100644 index d3deed44..00000000 --- a/csirt.divd.nl/README.md +++ /dev/null @@ -1,23 +0,0 @@ -## Adding new news items -1. Create a new file in the `_posts` folder with filename `<year>-<month>-<day>-<title>.md` -2. Start the file with the following template configuration: -```markdown ---- -layout: news -title: <-- title-- > -author: <-- your name --> -excerpt: <-- one line summary in Dutch / And English will show on blog page --> ---- -``` - -## Development -The site is easiest deployed locally with [Docker](https://docker.com). - -1. Install Docker -2. Clone this repository -3. Run `./serve` -4. Open your favorite Internet Explorer and go to `http://localhost:4000` - -## Markdown - -See: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet diff --git a/csirt.divd.nl/update.sh b/csirt.divd.nl/update.sh deleted file mode 100755 index 2adc8949..00000000 --- a/csirt.divd.nl/update.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -echo "Updating team" -( - cd _team - rm -f *.html - cp ../../www.divd.nl/_team/*.html . -) \ No newline at end of file diff --git a/csirt.divd.nl/cves.md b/cves.md similarity index 100% rename from csirt.divd.nl/cves.md rename to cves.md diff --git a/csirt.divd.nl/divd-bimi.svg b/divd-bimi.svg similarity index 100% rename from csirt.divd.nl/divd-bimi.svg rename to divd-bimi.svg diff --git a/csirt.divd.nl/favicon.ico b/favicon.ico similarity index 100% rename from csirt.divd.nl/favicon.ico rename to favicon.ico diff --git a/csirt.divd.nl/feed.xml b/feed.xml similarity index 100% rename from csirt.divd.nl/feed.xml rename to feed.xml diff --git a/csirt.divd.nl/html-minifier.conf b/html-minifier.conf similarity index 100% rename from csirt.divd.nl/html-minifier.conf rename to html-minifier.conf diff --git a/csirt.divd.nl/index.md b/index.md similarity index 100% rename from csirt.divd.nl/index.md rename to index.md diff --git a/csirt.divd.nl/proof_html.sh b/proof_html.sh similarity index 97% rename from csirt.divd.nl/proof_html.sh rename to proof_html.sh index 3d81e376..26781966 100755 --- a/csirt.divd.nl/proof_html.sh +++ b/proof_html.sh @@ -6,7 +6,7 @@ apt-get install python3-pip libcurl4 -y pip3 install html5validator TEAMCOUNT_HERE=$( ls _team|wc -l ) -TEAMCOUNT_THERE=$( ls ../www.divd.nl/_team|wc -l ) +TEAMCOUNT_THERE=$( ls www.divd.nl/_team|wc -l ) if [[ $TEAMCOUNT_HERE -le 0 || $TEAMCOUNT_HERE -ne $TEAMCOUNT_THERE ]]; then echo "_team directory is not updated, run ./update.sh" exit 1 diff --git a/csirt.divd.nl/security.txt b/security.txt similarity index 100% rename from csirt.divd.nl/security.txt rename to security.txt diff --git a/csirt.divd.nl/serve b/serve similarity index 91% rename from csirt.divd.nl/serve rename to serve index 7c00a5bf..0997b97b 100755 --- a/csirt.divd.nl/serve +++ b/serve @@ -23,14 +23,14 @@ grep Content-Security-Policy _config.yml | \ sed "s#connect-src #connect-src * #" \ >> _config_livereload.yml docker run \ - --volume="$PWD/../:/root/project:delegated" \ + --volume="$PWD:/root/project:delegated" \ --entrypoint /bin/bash \ --publish $PORT:4000 \ --publish 35729:35729 \ -ti mrseccubus/github-pages \ -c " gem install -N jekyll-secinfo jekyll-paginate jekyll-last-modified-at; - cd /root/project/csirt.divd.nl; + cd /root/project/; if [[ -e Gemfile ]]; then echo \"*** Installing Gems in Gemfile ***\" bundle install @@ -38,6 +38,7 @@ docker run \ fi while [ 1 ] ; do + git config --global --add safe.directory /root/project/www.divd.nl ./update.sh rm -rf _site/*; $EXEC jekyll serve --incremental --livereload --host=0.0.0.0 --future --config=_config.yml,_config_livereload.yml 2>&1 diff --git a/csirt.divd.nl/test_it.sh b/test_it.sh similarity index 52% rename from csirt.divd.nl/test_it.sh rename to test_it.sh index 4032e54c..ce03e8ee 100755 --- a/csirt.divd.nl/test_it.sh +++ b/test_it.sh @@ -1,9 +1,10 @@ #!/bin/bash docker pull mrseccubus/github-pages:latest -docker run --volume="$PWD/..:/root/project:delegated" --entrypoint /bin/bash -ti mrseccubus/github-pages \ +docker run --volume="$PWD:/root/project:delegated" --entrypoint /bin/bash -ti mrseccubus/github-pages \ -c " - cd /root/project/csirt.divd.nl; + cd /root/project/; + git config --global --add safe.directory /root/project/www.divd.nl ./update.sh; rm -rf _site/* jekyll-build.log; jekyll build --future 2>&1 |grep -Ev 'rb:[0-9]+: warning' 2>&1 | tee jekyll-build.log diff --git a/update.sh b/update.sh new file mode 100755 index 00000000..abbc3335 --- /dev/null +++ b/update.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if [[ ! -e serve ]]; then + echo "It looks like you are not in the root directory because I don;t see the serve script" + echo "I'm cowardly quitting" + exit 1 +fi +if [[ ! -d www.divd.nl ]]; then + git clone https://github.com/DIVD-NL/web-www.git www.divd.nl +else + ( cd www.divd.nl ; git pull ) +fi + + +echo "Updating team" +( + cd _team + rm -f *.html + cp ../www.divd.nl/_team/*.html . +) \ No newline at end of file diff --git a/www.divd.nl/.htaccess b/www.divd.nl/.htaccess deleted file mode 100644 index 6ad913be..00000000 --- a/www.divd.nl/.htaccess +++ /dev/null @@ -1,9 +0,0 @@ -Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;" -Header always append X-Frame-Options DENY -Header set X-Content-Type-Options nosniff -Header set X-XSS-Protection "1; mode=block" -Header set Content-Security-Policy "default-src 'none'; font-src 'self'; img-src 'self' data:; script-src 'self' ; style-src 'self'; connect-src 'self';" - -Header always set Referrer-Policy "same-origin" - -ErrorDocument 404 /404.html \ No newline at end of file diff --git a/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/fonts.scssc b/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/fonts.scssc deleted file mode 100644 index 9e6dc7f2..00000000 Binary files a/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/fonts.scssc and /dev/null differ diff --git a/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/jekyll-theme-minimal.scssc b/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/jekyll-theme-minimal.scssc deleted file mode 100644 index 941b6dae..00000000 Binary files a/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/jekyll-theme-minimal.scssc and /dev/null differ diff --git a/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/rouge-github.scssc b/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/rouge-github.scssc deleted file mode 100644 index 32c38420..00000000 Binary files a/www.divd.nl/.sass-cache/230fc3d426c4db6f22d20cfe4f52a73ba68b5faa/rouge-github.scssc and /dev/null differ diff --git a/www.divd.nl/404.md b/www.divd.nl/404.md deleted file mode 100644 index b8deb256..00000000 --- a/www.divd.nl/404.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -# example 404.md - -layout: default -permalink: /404.html ---- -# 404 - Page not found - -Oops, in true hacker style you ended up on a non-existing page. May I suggest that you [return to our homepage](/)? - -![broken DIVD logo](/images/404divd.svg "Broken DIVD logo") diff --git a/www.divd.nl/README.md b/www.divd.nl/README.md deleted file mode 100644 index 089185c7..00000000 --- a/www.divd.nl/README.md +++ /dev/null @@ -1,37 +0,0 @@ -## Adding new news items -1. Create a new file in the `_posts` folder with filename `<year>-<month>-<day>-<title>.md` -2. Start the file with the following template configuration: -```markdown ---- -layout: news -title: <-- title-- > -author: <-- your name --> -excerpt: <-- one or two line summary --> ---- -``` - -## Adding new reports -1. Create a new file in the `reports` folder with filename `<year>-<month>-<day>-<title>.md` -2. Start the file with the following template configuration: -```markdown ---- -title: <-- title --> -date: <-- date (e.g. 1 January, 2020) --> -author: <-- author --> -excerpt: <-- one or two line summary --> ---- -<header> - <h2><-- title --></h2> - <span><-- date (e.g. 1 January, 2020) -->, by <-- author --></span> -</header> -``` - -## Development -The site is easiest deployed locally with [Docker](https://docker.com). - -1. Install Docker -2. Clone this repository -3. Open the .env file in a text-editor -4. Add your [Github personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) to the `JEKYLL_GITHUB_TOKEN=` setting. -5. Run the docker-compose file to start the Docker stack -6. Open your favorite Internet Explorer and go to `http://localhost:4000` diff --git a/www.divd.nl/_cases/.keep b/www.divd.nl/_cases/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_config.yml b/www.divd.nl/_config.yml deleted file mode 100644 index 9717c8a9..00000000 --- a/www.divd.nl/_config.yml +++ /dev/null @@ -1,63 +0,0 @@ -theme: jekyll-theme-minimal - -paginate: 10 -plugins: [jekyll-paginate] -paginate_path: "news/:num/" - -language: nl-nl - -title: DIVD -description: "Dutch Institute for Vulnerability Disclosure, we aim to make the digital world safer by reporting vulnerabilities we find in digital systems to the people who can fix them. We have a global reach, but do it Dutch style: open, honest, collaborative and for free." -repository: DIVD-NL/sites - -timezone: Europe/Amsterdam -future: true -encoding: utf-8 - -permalink: pretty -markdown: kramdown -show_downloads: false -github: - is_project_page: false - -sass: - sass_dir: assets/sass - style: compressed - -plugins: - - jekyll-sitemap - - jekyll-secinfo - - jekyll-paginate - - jekyll-last-modified-at - -collections: - team: - output: true - cases: - output: false - cves: - output: false - csirt_posts: - output: false - permalink: "/:year/:month/:day/:title/" - -# Custom headers -webrick: - headers: - Content-Security-Policy: "default-src 'none'; font-src 'self' https://fonts.gstatic.com; img-src 'self' data:; script-src 'self'; style-src 'self'; connect-src 'self';" - -defaults: - - - scope: - path: "" # an empty string here means all files in the project - values: - layout: "default" - -exclude: - - README.md - - serve* - - "*.sh" - - "Gemfile*" - - "*.conf" - - "*:Zone.Identifier" - - "_config_livereload.yml" diff --git a/www.divd.nl/_csirt_posts/.keep b/www.divd.nl/_csirt_posts/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_cves/.keep b/www.divd.nl/_cves/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_data/navigation.yml b/www.divd.nl/_data/navigation.yml deleted file mode 100644 index 14c1fcf8..00000000 --- a/www.divd.nl/_data/navigation.yml +++ /dev/null @@ -1,10 +0,0 @@ -- name: Home - link: / -- name: Team - link: /team -- name: News - link: /news -- name: Reports - link: /reports -- name: Contact - link: /contact \ No newline at end of file diff --git a/www.divd.nl/_includes/footer.html b/www.divd.nl/_includes/footer.html deleted file mode 100644 index be7657ca..00000000 --- a/www.divd.nl/_includes/footer.html +++ /dev/null @@ -1,40 +0,0 @@ - <!-- Footer --> - <footer id="footer"> - <div class="inner"> - <div class="content"> - <table> - <tr> - <td> - <ul class="plain"> - <li><a href="/security"><i class="icon fa-shield"> </i>Security</a></li> - <li><a href="https://twitter.com/DIVDnl"><i class="icon fa-twitter"> </i>Twitter</a></li> - <li><a href="https://github.com/DIVD-NL"><i class="icon fa-github"> </i>Github</a></li> - <li><a href="/anbi"><i class="icon fa-book"> </i>ANBI</a></li> - </ul> - </td> - - <td class="right-align"> - <b>Scanning from</b><br /> - {% for s in site.data.scanners -%} - {{ s.name }}<br> - <span class='small'>{{ s.description }}</span><br> - {% endfor %} - </td> - </tr> - </table> - </div> - </div> - </footer> - - - <!-- Scripts --> - <script src="/assets/js/jquery.min.js"></script> - <script src="/assets/js/browser.min.js"></script> - <script src="/assets/js/breakpoints.min.js"></script> - <script src="/assets/js/util.js"></script> - <script src="/assets/js/main.js"></script> - {% for script in page.scripts %} - <script type="text/javascript" src="/assets/js/{{ script }}"></script> - {% endfor %} -</body> -</html> diff --git a/www.divd.nl/_includes/header.html b/www.divd.nl/_includes/header.html deleted file mode 100644 index 7c0c5e27..00000000 --- a/www.divd.nl/_includes/header.html +++ /dev/null @@ -1,19 +0,0 @@ -<!doctype html> -<html> -<head> - <meta charset="utf-8"> - - <title>DIVD{% unless page.title == "frontpage" %} / {{ page.title | capitalize }}{% endunless %} - - - - - - - - - - - - - diff --git a/www.divd.nl/_includes/last-10-posts.html b/www.divd.nl/_includes/last-10-posts.html deleted file mode 100644 index caf5edb6..00000000 --- a/www.divd.nl/_includes/last-10-posts.html +++ /dev/null @@ -1,13 +0,0 @@ -{% assign posts = site.csirt_posts |reverse %} -
-

Last 10 csirt blog posts

- {% for post in posts %} - {% if forloop.index <= 10 %} -
- {{ post.date | date_to_long_string }} - {{ post.title }} -
- {% endif %} - {% endfor %} -
-
All posts
-
diff --git a/www.divd.nl/_includes/navigation.html b/www.divd.nl/_includes/navigation.html deleted file mode 100644 index 13d463c4..00000000 --- a/www.divd.nl/_includes/navigation.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/www.divd.nl/_includes/numf.html b/www.divd.nl/_includes/numf.html deleted file mode 100644 index 4d96d11c..00000000 --- a/www.divd.nl/_includes/numf.html +++ /dev/null @@ -1,2 +0,0 @@ -{% assign ds = include.ds | default:',' %}{% assign ts = include.ts | default:'.' %}{% assign numdecimals = include.decimals | default:2 %}{% assign parts = include.number | round:numdecimals | split:'.' %}{% assign digits = parts[0] | split:'' %}{% for digit in digits %}{% assign threeFromEnd = digits.size | minus:forloop.index | modulo: 3 %}{% if threeFromEnd == 2 and forloop.index != 1 %}{{ digit | prepend: ts }}{% else %}{{ digit }}{% endif %}{% endfor %}{% if numdecimals > 0 %}{{ ds }}{% if parts.size == 1 %}{% assign decs = '0000000000' %}{% else %}{% assign decs = parts[1] | append:'0000000000' %}{% endif %}{% assign digits = decs | split:'' %}{% for digit in digits limit:numdecimals %}{{ digit }}{% endfor %}{% endif %} -{%- comment -%}From: https://gist.github.com/hexerei/5bd632b2a179717e219fbe18c5793181 {%- endcomment -%} \ No newline at end of file diff --git a/www.divd.nl/_includes/open-cases.html b/www.divd.nl/_includes/open-cases.html deleted file mode 100644 index b228d21d..00000000 --- a/www.divd.nl/_includes/open-cases.html +++ /dev/null @@ -1,11 +0,0 @@ -{% assign cases2 = site.cases |reverse %} -
-

Current open cases

- {% for c in cases2 %} - {% if c.status == "Open" %} -
{{ c.title }}
- {% endif %} - {% endfor %} -
-
All cases
-
diff --git a/www.divd.nl/_includes/paginator.html b/www.divd.nl/_includes/paginator.html deleted file mode 100644 index e60c558c..00000000 --- a/www.divd.nl/_includes/paginator.html +++ /dev/null @@ -1,27 +0,0 @@ -{% capture last_minus_one %}{{ paginator.total_pages | minus : 1 }}{% endcapture %} -{% capture next_as_string %}{{ paginator.next_page}}{% endcapture %} - -{% if paginator.total_pages > 1 %} - {% if paginator.previous_page %} - « Earlier | - {% if paginator.previous_page > 1%} - 1 | - {% endif %} - {% if paginator.previous_page > 2%} - ... | - {% endif %} - {{ paginator.previous_page }} | - {% endif %} - {{ paginator.page }} - {% if paginator.next_page %} - | - {{ paginator.next_page }} - {% if paginator.next_page < paginator.total_pages %} - {% if next_as_string != last_minus_one %} - | ... - {% endif %} - | {{ paginator.total_pages }} - {% endif %} - | Later » - {% endif %} -{% endif %} diff --git a/www.divd.nl/_includes/posts-cases.html b/www.divd.nl/_includes/posts-cases.html deleted file mode 100644 index 6fcb20b0..00000000 --- a/www.divd.nl/_includes/posts-cases.html +++ /dev/null @@ -1,134 +0,0 @@ -{% assign found = false %} -{% assign blog = false %} -{% for p in site.posts %} - {% if p.author == include.name %} - {% assign found = true %} - {% assign blog = true %} - {% endif %} -{% endfor %} - -{% for c in site.cases %} - {% if c.author contains include.name or c.lead == include.name or c.researchers contains include.name %} - {% assign found = true %} - {% assign cases = true %} - {% endif %} -{% endfor %} - -{% for p in site.csirt_posts %} - {% if p.author contains include.name %} - {% assign found = true %} - {% assign csirt_blog = true %} - {% endif %} -{% endfor %} - -{% assign cve_discovered = '' | split: '' %} -{% assign cve_contributed = '' | split: '' %} -{% for c in site.cves %} - {% assign credited = false %} - {% assign discovered = false %} - {% capture name1 %} {{ include.name }}{% endcapture %} - {% capture name2 %}{{ include.name }} {% endcapture %} - {% for cr in c.json.credit %} - {% if cr.value == include.name or cr.value contains name1 or cr.value contains name2 %} - {% assign credited = true %} - {% endif %} - {% endfor %} - {% for cr in c.json.containers.cna.credits %} - {% if cr.value == include.name or cr.value contains name1 or cr.value contains name2 %} - {% assign credited = true %} - {% if cr.type == "finder" %} - {% assign discovered = true %} - {% endif %} - {% endif %} - {% endfor %} - - {% if c.author == include.name or c.discovered_by contains include.name or c.researchers contains include.name or credited %} - {% assign found = true %} - {% assign cve = true %} - {% if discovered or c.discovered_by contains include.name %} - {% assign cve_discovered = cve_discovered | push: c %} - {% else %} - {% assign cve_contributed = cve_contributed | push: c %} - {% endif %} - {% endif %} -{% endfor %} - - - -{% if found %} -
-
-

Articles / cases / cves

- - {% if blog %} -

Blog posts

- - - {% endif %} - - {% if cases %} -

CSIRT Cases

- -
    - {% assign rev_cases = site.cases | reverse %} - {% for c in rev_cases %} - {% if c.author contains include.name or c.lead == include.name or c.researchers contains include.name %} -
  • - {{ c.title }} -
  • - {% endif %} - {% endfor %} -
- {% endif %} - - {% if cve_discovered.size > 0 %} -

CVEs discovered

- - - {% endif %} - - - {% if cve_contributed.size > 0 %} -

CVEs contributed to

- - - {% endif %} - - {% if csirt_blog %} -

CSIRT blog posts

- - - {% endif %} - - - -{% endif %} \ No newline at end of file diff --git a/www.divd.nl/_includes/stats.html b/www.divd.nl/_includes/stats.html deleted file mode 120000 index 34a91c7c..00000000 --- a/www.divd.nl/_includes/stats.html +++ /dev/null @@ -1 +0,0 @@ -../../csirt.divd.nl/_includes/stats.html \ No newline at end of file diff --git a/www.divd.nl/_includes/timeline.html b/www.divd.nl/_includes/timeline.html deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_includes/timeline_gantt.html b/www.divd.nl/_includes/timeline_gantt.html deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_includes/timeline_table.html b/www.divd.nl/_includes/timeline_table.html deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_layouts/case.md b/www.divd.nl/_layouts/case.md deleted file mode 100644 index 27d9a80d..00000000 --- a/www.divd.nl/_layouts/case.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -permalink: /cases//:year/:month/:day/:title:/ ---- \ No newline at end of file diff --git a/www.divd.nl/_layouts/cve-json-40.html b/www.divd.nl/_layouts/cve-json-40.html deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_layouts/cve-json-50.html b/www.divd.nl/_layouts/cve-json-50.html deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_layouts/cve-json.json b/www.divd.nl/_layouts/cve-json.json deleted file mode 100644 index e69de29b..00000000 diff --git a/www.divd.nl/_layouts/cve.md b/www.divd.nl/_layouts/cve.md deleted file mode 100644 index a49ba484..00000000 --- a/www.divd.nl/_layouts/cve.md +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- \ No newline at end of file diff --git a/www.divd.nl/_layouts/default.html b/www.divd.nl/_layouts/default.html deleted file mode 100644 index 8bf4a812..00000000 --- a/www.divd.nl/_layouts/default.html +++ /dev/null @@ -1,31 +0,0 @@ -{% include header.html %} - -{% if page.title == "frontpage" %} - - - -
-
- {{ content }} -
-
-{% else %} -{% include navigation.html %} - - -
-

{{ page.header | default: page.title }}

-
- -
-
- {{ content }} -
-
-{% endif %} - -{% include footer.html scripts=page.scripts %} diff --git a/www.divd.nl/_layouts/news.html b/www.divd.nl/_layouts/news.html deleted file mode 100644 index 60a30abb..00000000 --- a/www.divd.nl/_layouts/news.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: default ---- -

{{ page.title }}

-
- {{ page.date | date_to_long_string }}, by {{ page.author | default: "anonymous" }} -
-
-
-{{ content }} -
-
-Last modified: {{ page.last_modified_at | date: "%d %b %Y %H:%M"}} diff --git a/www.divd.nl/_layouts/team.html b/www.divd.nl/_layouts/team.html deleted file mode 100644 index f9783509..00000000 --- a/www.divd.nl/_layouts/team.html +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: default ---- -

{{ page.name }}

- -Role: {{ page.role }} -
-Department: {{ page.dept }} - -{{ content | markdownify }} - -
-{% if page.twitter or page.linkedin or page.wikipedia %} -

Social media

-{% endif %} -{% if page.twitter %} -Icon - {{ page.twitter }} -
-{% endif %} -{% if page.linkedin %} -Icon - {{ page.name }} -
-{% endif %} -{% if page.wikipedia %} -Icon - {{ page.name }} -
-{% endif %} -{% if page.github %} -Icon - {{ page.github }} -
-{% endif %} - -{% include - posts-cases.html - name = page.name -%} - diff --git a/www.divd.nl/_plugins/casesPlugin.rb b/www.divd.nl/_plugins/casesPlugin.rb deleted file mode 120000 index ebb0b8dd..00000000 --- a/www.divd.nl/_plugins/casesPlugin.rb +++ /dev/null @@ -1 +0,0 @@ -../../csirt.divd.nl/_plugins/casesPlugin.rb \ No newline at end of file diff --git a/www.divd.nl/_plugins/cve_json.rb b/www.divd.nl/_plugins/cve_json.rb deleted file mode 100644 index c55784c7..00000000 --- a/www.divd.nl/_plugins/cve_json.rb +++ /dev/null @@ -1,144 +0,0 @@ -module CveJson - @@log = Logger.new(STDERR) # Could send output to STDOUT - @@log.level = Logger::WARN - @@log.progname = 'CveJson' - @@log.formatter = proc { |severity, datetime, progname, msg| - "#{severity} #{progname}: #{msg}\n" - } - - def self.log - @@log - end - - class CveJson40Generator < Jekyll::Generator - safe true - - - - def generate(site) - # Get all the documents in collection cves - site.collections.each do |n, collection| - if n == "cves" then - collection.docs.each do | doc | - if doc.data["layout"] == "cve-json-40" - # Get data - cve = doc.data["json"]["CVE_data_meta"]["ID"] - if doc.data["json"]["CVE_data_meta"].key?("TITLE") then - title = doc.data["json"]["CVE_data_meta"]["TITLE"] - else - doc.data["json"]["description"]["description_data"].each do | d | - if d["lang"] == "eng" then - title = d["value"] - break - end - end - end - CveJson.log.info "Title: #{title}" - # Set additional attributes - doc.data["cve"] = cve - doc.data["title"] = title - doc.data["redirect_from"] = [ "/#{cve}/" ] - # Create JSON page too - site.pages << CveJson40Page.new(site, doc.data["json"]) - elsif doc.data["layout"] == "cve-json-50" - # Get data - cve = doc.data["json"]["cveMetadata"]["cveId"] - title = doc.data["json"]["containers"]["cna"]["title"] - CveJson.log.info "Title: #{title}" - # Set additional attributes - doc.data["cve"] = cve - doc.data["title"] = title - doc.data["redirect_from"] = [ "/#{cve}/" ] - # Create JSON page too - site.pages << CveJson50Page.new(site, doc.data["json"]) - elsif doc.data["layout"] == "cve" then - CveJson.log.info doc.basename_without_ext - cve = doc.basename_without_ext - unless doc.data.key?("cve") then - doc.data["cve"] = cve - end - unless doc.data.key?("redirect_from") then - doc.data["redirect_from"] = [ "/#{cve}/" ] - end - end - end - end - - end - end - end - - # Subclass of `Jekyll::Page` with custom method definitions. - class CveJson40Page < Jekyll::Page - def initialize(site, data) - # Generate a new document with layout cve-json-40-json in /cves based on the original one. - CveJson.log.info "Creating a JSON file for #{ data["CVE_data_meta"]["ID"]}" - @site = site # the current site instance. - @base = site.source # path to the source directory. - @dir = "cves" # the directory the page will reside in. - - # All pages have the same filename, so define attributes straight away. - @basename = data["CVE_data_meta"]["ID"] # filename without the extension. - @ext = '.json' # the extension. - @name = "#{@basename}#{ext}" # basically @basename + @ext. - - # Initialize data hash with the new layout and the origina json data - @data = { - 'json' => data, - 'layout' => 'cve-json' - } - - - ## Look up front matter defaults - data.default_proc = proc do |_, key| - site.frontmatter_defaults #.find(relative_path, :categories, key) - end - end - - # Placeholders that are used in constructing page URL. - def url_placeholders - { - :path => @dir, - :basename => basename, - :output_ext => output_ext, - } - end - end - - # Subclass of `Jekyll::Page` with custom method definitions. - class CveJson50Page < Jekyll::Page - def initialize(site, data) - # Generate a new document with layout cve-json-40-json in /cves based on the original one. - CveJson.log.info "Creating a JSON file for #{ data['cveMetadata']['cveId'] }" - @site = site # the current site instance. - @base = site.source # path to the source directory. - @dir = "cves" # the directory the page will reside in. - - # All pages have the same filename, so define attributes straight away. - @basename = data["cveMetadata"]["cveId"] # filename without the extension. - @ext = '.json' # the extension. - @name = "#{@basename}#{ext}" # basically @basename + @ext. - - # Initialize data hash with the new layout and the origina json data - @data = { - 'json' => data, - 'layout' => 'cve-json' - } - - - ## Look up front matter defaults - data.default_proc = proc do |_, key| - site.frontmatter_defaults #.find(relative_path, :categories, key) - end - end - - # Placeholders that are used in constructing page URL. - def url_placeholders - { - :path => @dir, - :basename => basename, - :output_ext => output_ext, - } - end - end -end \ No newline at end of file diff --git a/www.divd.nl/_posts/2019-09-27-DIVD-registered.md b/www.divd.nl/_posts/2019-09-27-DIVD-registered.md deleted file mode 100644 index 5dc9ad44..00000000 --- a/www.divd.nl/_posts/2019-09-27-DIVD-registered.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: news -title: DIVD registered at notary -author: Chris van 't Hof -excerpt: DIVD registered at notary. After years of vulnerability disclosures we now have a solid base for our operations. ---- - -![DIVD registered at notary](images/news/divdboard.png) - -Astrid Oosenbrug (Treasurer), Victor Gevers (Chair) and Chris van 't Hof (Secretary) at the notary to register the Dutch Institute for Vulnerability Disclosure. After years of vulnerability disclosures we now have a solid base for our operations. \ No newline at end of file diff --git a/www.divd.nl/_posts/2019-10-03-DIVD-at-One-Conference.md b/www.divd.nl/_posts/2019-10-03-DIVD-at-One-Conference.md deleted file mode 100644 index e58dcc8f..00000000 --- a/www.divd.nl/_posts/2019-10-03-DIVD-at-One-Conference.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: news -title: DIVD at One Conference -author: Chris van 't Hof -excerpt: DIVD registered at notary. After years of vulnerability disclosures we now have a solid base for our operations. ---- - -![DIVD at One Conference](images/news/one.png) - -At the annual [One Conference](https://one-conference.nl/) of the Dutch National Cyber Security Center we held an open meeting for anyone who wants to join our initiative. Some researchers showed up with a list of found vulnerabilities, while others offered to help out with sponsoring, building the platform or networking. During the conference, our Chair Victor got to bring our message on main stage. Our Secretary Chris also reached main stage. Not as a speaker, but as a [dummy](https://twitter.com/DIVDnl/status/1179814947385204737) in a medical hack demo... diff --git a/www.divd.nl/_posts/2019-10-22-Collaboration-With-SecurityMeldpunt.md b/www.divd.nl/_posts/2019-10-22-Collaboration-With-SecurityMeldpunt.md deleted file mode 100644 index 9d18a9bc..00000000 --- a/www.divd.nl/_posts/2019-10-22-Collaboration-With-SecurityMeldpunt.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: news -title: Collaboration with Dutch Security Hotline -author: Chris van 't Hof -excerpt: DIVD announces collaboration with Security Meldpunt ---- - -[![Security Meldpunt](images/news/meldpunt.png)](https://www.securitymeldpunt.nl/) - -We are not the only ones who want to make the online work safer by doing vulnerability reporting. Frank Breedijk, also known of his vulnerability scanner Seccubus, was already working on a ["Security Meldpunt"](https://www.securitymeldpunt.nl/), or hotline, for vulnerability reporting in the Netherlands. He is currently setting up a response team among network operators. We are happy to join forces and get this working. Like us, the hotline is in the build up phase so don't file reports yet. diff --git a/www.divd.nl/_posts/2019-11-26-DIVD-at-dcypher.md b/www.divd.nl/_posts/2019-11-26-DIVD-at-dcypher.md deleted file mode 100644 index e29e8e76..00000000 --- a/www.divd.nl/_posts/2019-11-26-DIVD-at-dcypher.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: news -title: DIVD present at dcypher Symposium -author: Chris van 't Hof -excerpt: DIVD will be at the symposium of the Dutch Cyber Security Platform for Higher Education and Research ---- - -![dcypher 2019](images/news/Symp19.png) - -At the annual symposium of the Dutch Cyber Security Platform for Higher Education and Research, dcypher, Victor Gevers, Chris van 't Hof, Frank Breedijk and Matthijs Koot will be present to provide an update of our work. diff --git a/www.divd.nl/_posts/2020-01-13-DIVD-NLSecureID-28-January.md b/www.divd.nl/_posts/2020-01-13-DIVD-NLSecureID-28-January.md deleted file mode 100644 index 5fdcf6d8..00000000 --- a/www.divd.nl/_posts/2020-01-13-DIVD-NLSecureID-28-January.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: news -title: DIVD present at KPN Security's congres NLsecureID 28 January -author: Chris van 't Hof -excerpt: Astrid Oosenbrug will give an overview of our work, Matthijs Koot will dive into the VPN vulnerability case. Session will be moderated by Chris van 't Hof. ---- - -![NLSecure Security Event](images/news/nlsecure.png) - -Astrid Oosenbrug will give an overview of our work, Matthijs Koot will dive into the VPN vulnerability case. Session will be moderated by Chris van 't Hof. diff --git a/www.divd.nl/_posts/2021-03-29-DIVD-publishes-first-annual-report.md b/www.divd.nl/_posts/2021-03-29-DIVD-publishes-first-annual-report.md deleted file mode 100644 index 879e3383..00000000 --- a/www.divd.nl/_posts/2021-03-29-DIVD-publishes-first-annual-report.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: news -title: DIVD publishes it’s first annual report (in Dutch). -author: Lennaert Oudshoorn -excerpt: The first annual report of the Dutch Institute for Vulnerability Disclosure is now available. ---- -The first annual report has been written by our secretary, Chris van 't Hof, and has been signed off on by the supervisory board. The report is now publicly available. - -[Click here to download the report](https://divd.nl/assets/downloads/DIVD_jaarverslag_2020_online.pdf) (Dutch) diff --git a/www.divd.nl/_posts/2021-12-16-DIVD-in-report-Dutch-Safety-Board.md b/www.divd.nl/_posts/2021-12-16-DIVD-in-report-Dutch-Safety-Board.md deleted file mode 100644 index 8ac407ee..00000000 --- a/www.divd.nl/_posts/2021-12-16-DIVD-in-report-Dutch-Safety-Board.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -layout: news -title: DIVD in report Dutch Safety Board -author: Chris van 't Hof -excerpt: "The Dutch Safety Board underlines the importance of DIVD for keeping the internet safe and describes how our research on Citrix, Solar Winds, Microsoft Exchange and off course KaseyaVSA contributed to preventing cyberattacks" ---- - -The Dutch Safety Board underlines the importance of DIVD for keeping the internet safe and describes how our research on Citrix, Solar Winds, Microsoft Exchange and off course KaseyaVSA contributed to preventing cyberattacks - -[https://www.onderzoeksraad.nl/en/page/17171/vulnerable-through-software---lessons-resulting-from-security](https://www.onderzoeksraad.nl/en/page/17171/vulnerable-through-software---lessons-resulting-from-security) - diff --git a/www.divd.nl/_posts/2022-01-01-Things-are-changing-at-DIVD.md b/www.divd.nl/_posts/2022-01-01-Things-are-changing-at-DIVD.md deleted file mode 100644 index 73e66928..00000000 --- a/www.divd.nl/_posts/2022-01-01-Things-are-changing-at-DIVD.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: news -title: DIVD is changing -author: Chris van 't Hof -excerpt: From January 1, 2022, several things will change at DIVD. ---- -From 2022, the Dutch Institute for Vulnerability Disclosure will play an even more significant role in making the internet safe as it received the 'Cyber Resilience Reinforcement' grant for 2022-2024 from the Digital Trust Center. DIVD is a group of several dozen volunteers who scan the entire internet for known vulnerabilities and report it to those who can fix it. For example, they have prevented many ransomware attacks and data leaks, as can be read in the report 'Vulnerable through software - Lessons resulting from security breaches relating to Citrix software' by the Dutch Safety Board. One of the main conclusions of that report is that ["(voluntary) security researchers play a crucial role in incident response."](https://www.onderzoeksraad.nl/en/page/17171/kwetsbaar-door-software---lessen-naar-aanleiding-van) The DIVD currently plays an important and guiding role in the [log4j crisis](https://csirt.divd.nl//2021/12/14/Update-Apache-log4j-remote-code-execution/). - -With this grant, the Dutch government underlines the value of DIVD for the cyber resilience of the Netherlands and the rest of the world. To support the volunteers of DIVD in their work, paid positions will be created for [Lennaert Oudshoorn](https://www.divd.nl/team/Lennaert%20Oudshoorn/) (research coordinator and head of the DIVD-CSIRT), [Victor Gevers](https://www.divd.nl/team/Victor%20Gevers/) (head of research) and [Chris van 't Hof](https://www.divd.nl/team/Chris%20van%20't%20Hof/) (director). Administrative support will be provided by [LunaVia](https://lunavia.nl/). - -In addition, DIVD has now also signed a cooperation agreement with the Dutch National Cyber Security Center to share data about found online vulnerabilities and report findings to potential victims and other partners. Furthermore, the DIVD helps to establish The Dutch Security Hotline for various organizations with which they already work to have a greater reach and be able to proceed more effectively with reporting vulnerabilities. DIVD has also started an international [Computer Security Incident Response Team](https://csirt.global) so that international reports can also be passed on to representatives in various countries. Finally, in 2022 the [DIVD Academy](https://divd.academy/) will start to train the next generation of helpful hackers. - -For further information, you can contact our new director Chris van 't Hof, via [question@divd.nl](mailto:question@divd.nl) or +31 70 41 90 309. diff --git a/www.divd.nl/_posts/2022-01-11-Huntress-supports-DIVD.md b/www.divd.nl/_posts/2022-01-11-Huntress-supports-DIVD.md deleted file mode 100644 index 07728f60..00000000 --- a/www.divd.nl/_posts/2022-01-11-Huntress-supports-DIVD.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: news -title: Huntress supports DIVD -author: Chris van 't Hof -excerpt: "Huntress Donates $100,000 to DIVD Bug Bounty Program to Elevate SMB Cybersecurity" ---- - -Huntress Donates $100,000 to DIVD Bug Bounty Program to Elevate SMB Cybersecurity, Calls on MSP Vendors to Follow Suit. Real talk: the MSP vendor community needs to get its shit together - -[https://www.huntress.com/blog/huntress-donates-100000-to-divd-bug-bounty-program](https://www.huntress.com/blog/huntress-donates-100000-to-divd-bug-bounty-program) diff --git a/www.divd.nl/_posts/2022-02-01-DIVD-is-a-CVE-Numbering-Authority.md b/www.divd.nl/_posts/2022-02-01-DIVD-is-a-CVE-Numbering-Authority.md deleted file mode 100644 index 930c07e2..00000000 --- a/www.divd.nl/_posts/2022-02-01-DIVD-is-a-CVE-Numbering-Authority.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -layout: news -title: DIVD is a CVE Numbering Authority -author: Frank Breedijk -excerpt: "DIVD is accepted into the CVE Community as a CVE Numbering Authority (CNA), for vulnerabilities we discover or vulnerabilities reported to us that fall outside the scope of other CNAs" -#jekyll-secinfo: -# cve: -# url: /cves/CVE- ---- -DIVD has been authorized by the CVE® Program as a CNA, enabling us to register CVE IDs - -It is with great joy that we announce that as of February 1st we have joined ’the CVE Community as a CVE Numbering Authority (CNA). As a CNA, we are able to swiftly and discretely register CVE IDs and publish them on the CVE List. We can do this for new vulnerabilities discovered by our own researchers and those reported to us, e.g., via our soon-to-be-released bounty program for MSP and SME software. - -CVE IDs are unique numbers assigned to vulnerabilities which help the security community by providing a unique ID for a vulnerability and thus alleviating misunderstandings and miscommunications when discussing or referring to vulnerabilities. They make vulnerability management and research more effective and efficient. - -Being able to create CVE Records on our own is important to our mission. We aim to make the digital world safer by reporting vulnerabilities found in digital systems to the people who can fix them. - -In the coordinated vulnerability disclosure (CVD) process, timeliness and confidentiality are often crucial. We had to rely on other CNAs to register a CVE ID in the past. Now that we are able to independently register CVE IDs, there are less parties involved and we can speed up the process. Besides that, we help the entire CVE community. - -The mission of the CVE® Program, to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities, greatly aligns with that of our own, and we are proud to be a member of the CVE community. - ---- - -What is CVE? -- CVE is an international, community-based effort and relies on the community to discover vulnerabilities. The vulnerabilities are discovered then assigned and published to the [CVE List](https://cve.mitre.org/about/terminology.html#cve_list). -- Partners publish CVE Records to communicate consistent descriptions of vulnerabilities. Information technology and cybersecurity professionals use CVE Records to ensure they are discussing the same issue, and to coordinate their efforts to prioritize and address the vulnerabilities. -- The CVE Records published in the catalog enable program stakeholders to rapidly discover and correlate vulnerability information used to protect systems against attacks. -- The CVE List is built by CVE Numbering Authorities (CNAs). Every CVE Record added to the list is assigned by a CNA. -- The CVE List feeds the U.S. National Vulnerability Database (NVD). - -CVE Value: - -CVE enables two or more people or tools to refer to a vulnerability and know they are talking about the same thing, resulting in significant time and cost savings. - -CVE is Community Driven: -- The CVE Program relies on the community to discover vulnerabilities. The vulnerabilities are discovered then assigned and published by organizations from around the world that have partnered with the CVE Program. -- Partners publish CVE Records to communicate consistent descriptions of vulnerabilities. Information technology and cybersecurity professionals use CVE Records to ensure they are discussing the same issue, and to coordinate their efforts to prioritize and address the vulnerabilities. -- The CVE Board, which drives the direction of the CVE Program, consists of industry, academic, and government representatives from around the world. -- CVE Working Groups develop the program’s policies (approved by the CVE Board) and are open to the community. - -About the CVE Program: - -The mission of the ® CVE Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities. There is one CVE Record for each vulnerability in the catalog. The vulnerabilities are discovered then assigned and published by organizations from around the world that have partnered with the CVE Program. Partners publish CVE Records to communicate consistent descriptions of vulnerabilities. Information technology and cybersecurity professionals use CVE Records to ensure they are discussing the same issue, and to coordinate their efforts to prioritize and address the vulnerabilities. - -Sponsored by: - -The CVE Program is sponsored by the Cybersecurity and Infrastructure Security Agency (CISA), of the U.S. Department of Homeland Security (DHS) and is operated by the MITRE Corporation in close collaboration with international industry, academic, and government stakeholders. - -What are CNAs (CVE Numbering Authorities) - -CNAs are organizations responsible for the regular assignment of CVE IDs to vulnerabilities, and for creating and publishing information about the Vulnerability in the associated CVE Record. Each CNA has a specific Scope of responsibility for vulnerability identification and publishing. - -About the Dutch Institute for Vulnerability Disclosure - -DIVD is a group of voluntary security researchers who aim to make the digital world safer by scanning the whole IPv4 space for known and new vulnerabilities in digital systems and reporting them to the people who can fix them. A full list of researches performed, the team and a Code of Conduct can be found on [divd.nl](https://divd.nl) diff --git a/www.divd.nl/_posts/2022-02-14-Dutch-Security-Info-Clearinghouse-started.md b/www.divd.nl/_posts/2022-02-14-Dutch-Security-Info-Clearinghouse-started.md deleted file mode 100644 index 237009b5..00000000 --- a/www.divd.nl/_posts/2022-02-14-Dutch-Security-Info-Clearinghouse-started.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Dutch Security Information Clearinghouse started -layout: news -author: Frank Breedijk ---- -*As of the 14th of February, all Dutch organizations can use the new cyber security warning system of the Dutch security clearing house ([Het Nederlands Security Meldpunt](https://www.securitymeldpunt.nl)). This clearinghouse, which Dutch private organizations have started, will help Dutch cyber resilience by cyber threat information in an automated fashion.* - -On the 28th of September 2021 the six founders, [DIVD](https://divd.nl), [Connect2Trust](https://connect2trust.nl), [NBIP](https://nbip.nl), [SURFcert](https://surf.nl/surfcert-247-ondersteuning-bij-beveiligingsincidenten), [Ams-IX](https://ams-ix.net) and [AbuseIO](https://abuse.io) announced a new warning system that would share information about potential abuse and cyber threats for Dutch organisations. And it delivered on its promise early this year by sharing IP addresses of vulnerable systems during the log4shell crisis. Based on these experiences, the clearinghouse has officially opened its doors on the 14th of February 2022, and all organizations in The Netherlands can now profit from its existence. - -Chris van 't Hof, the director of DIVD, is very glad the clearinghouse has been founded. "We are already sharing lists of IP addresses and vulnerabilities with most of the participants of the clearinghouse. We supply each of them with the information for their constituency. With the inception of the clearinghouse, we now get clarity of which constituencies are being served and an automated way to do so. It enables us to help these organizations even better. I believe this private-public partnership is the one of its kind in the world." - -The clearinghouse uses the Clean networks platform of NBIP and the ThreatMatcher intelligence platform of Connect2Trust to share information. The Dutch Institute for Vulnerability Discoslure supports the clearinghouse with our know-how. On behalf of the Nederlands Security Meldpunt, we will also perform triage on notifications sent to the clearinghouse by new unvetted notifiers. And Frank Breedijk, our manager CSIRT, is also a board member of the clearinghouse. - -"Right from the start, the clearinghouse has a nationwide coverage," says Frank. "When we process information about systems that are vulnerable, we will not only supply information to those organizations represented by our members, but also to those that have not registered yet. But we know that the unregistered route tends to be less effective", he says, "I, therefore, urge all organizations to register as soon as possible." Because all founders of the clearinghouse are not-for-profit organizations, this registration is often free. - -![Logo Nederlands Security meldpunt](/images/news/meldpunt_logo.svg) - -More information can be found at [securitymeldpunt.nl](https://www.securitymeldpunt.nl) diff --git a/www.divd.nl/_posts/2022-03-01-Jaaroverzicht-2021.md b/www.divd.nl/_posts/2022-03-01-Jaaroverzicht-2021.md deleted file mode 100644 index 5077946e..00000000 --- a/www.divd.nl/_posts/2022-03-01-Jaaroverzicht-2021.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Jaaroverzicht 2021 -layout: news -author: Lucinda Sterk ---- - -*DIVD is here to stay.* - -Met 19 afgeronde onderzoeken, waaronder het spraakmakende Kaseya VSA, 76 vrijwilligers, tientallen media-optredens en 9 zero-day cases, heeft DIVD in 2021 een vaste plek veroverd in het Nederlandse security landschap. Het Dutch Institute for Vulnerability Disclosure scant het hele internet op kwetsbaarheden en meldt die bij degenen die het kunnen fixen: gratis en ongevraagd. Wij zijn het Rode Kruis van het internet. - -KaseyaVSA is een van de 19 onderzoeken die DIVD in 2021 heeft gedaan tegenover 14 in 2020. Naast deze kwantitatieve groei zijn we vooral gegroeid in het soort onderzoek dat DIVD verricht. Naast het scannen op bekende kwetsbaarheden, in de regel een CVE high/high, zijn er twee nieuwe onderzoekslijnen het afgelopen jaar ontwikkeld: gelekte credentials en zero-days. Hiervoor is de Code of Conduct aangepast om ook binnen deze bredere scope verantwoordelijk te kunnen handelen. Om onze scan-activiteiten te professionaliseren is in 2021 een eigen Autonomous System (AS50559), dus een eigen reeks van IPv4-adressen aangeschaft: 194.5.73.0 tot en met 194.5.73.255. Hierbij kunnen degenen die gescand worden dus zien dat wij het zijn. Zet deze adressen vooral op je allow list. - -### CSIRT -De afdeling DIVD CSIRT heeft in 2021 in totaal 77.727 kwetsbaar bevonden IP adressen genotificeerd. Ten opzichte van 57.809 in 2020 is dat een groei van ruim 34%. Op het moment van schrijven zijn nog niet alle cases uit 2021 geheel afgerond, dus het werkelijke aantal notificaties ligt nog iets hoger. - -### Academy -In 2021 heeft de DIVD Academy vooral ingezet op de opbouw en inrichting van de Academy, het inrichten van het lespakket en workshops en het aangaan van duurzame partnerschappen. Eind 2021 is besloten door het bestuur de DIVD Academy af te splitsen als een zelfstandige stichting, met een eigen bestuur en begroting, maar wel met deelname van docenten van het DIVD Instituut. - -### Vrijwilligers -Op 1 januari 2022 telt DIVD 76 deelnemers: zeven bij Academy, dertien bij CSIRT, achttien bij Instituut, acht bij Operations en dertig bij Research. Van deze deelnemers zijn er negentien pas in december 2021 aangenomen. Bijna elke week komen er nieuwe vrijwilligers bij in diverse onderdelen van DIVD. - -### Zero-day -In 2021 zijn negen zero-day cases gedraaid vanuit Research. Dat zijn dus onbekende kwetsbaarheden die de DIVD onderzoekers zelf hebben ontdekt en gemeld bij de makers van de software. Hiervan zijn er vijf gepubliceerd op csirt.divd.nl. Door de onderzoekers zijn er afgelopen jaar 92 individuele Coordinated Vulnerability Disclosure meldingen gedaan die geen casenummer hebben. Het research team is nu uitgegroeid tot een volledige afdeling bestaande uit drie teams. - -Kortom: DIVD heeft in 2021 laten zien dat we ertoe doen. We zijn ook geen CERT of SOC voor een specifieke doelgroep, maar gaan uit van een kwetsbaarheid en scannen daar de hele wereld op. Zitten daar IP-adressen bij die volgens ons door anderen bediend worden, bijvoorbeeld hun CERT of Internet Service Provider, melden we ook via die partijen. We blijven scannen en melden totdat de aantallen potentiële slachtoffers zodanig is gedaald dat we voldoende weerbaar zijn tegen toekomstige aanvallen. - -### Jaarverslag - -Ons jaarverslag is te [downloaden via deze link](/uploads/DIVD jaarverslag 2021.pdf) diff --git a/www.divd.nl/_posts/2022-03-18- DIVD-helps-aid-organizations-and-charities.md b/www.divd.nl/_posts/2022-03-18- DIVD-helps-aid-organizations-and-charities.md deleted file mode 100644 index fc74dc41..00000000 --- a/www.divd.nl/_posts/2022-03-18- DIVD-helps-aid-organizations-and-charities.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: DIVD helps aid organizations and charities -layout: news -author: Lucinda Sterk ---- - -National and international aid organizations are vulnerable to attacks by cybercriminals. The hackers of the Dutch Institute for Vulnerability Disclosure have informed thousands of charities in recent months about vulnerabilities in their online systems. - -DIVD has scanned the online environments of more than 35,000 foundations and charities worldwide for known vulnerabilities. Volunteers from DIVD then notified the IT departments of these organizations about these vulnerabilities so that they could take action to resolve the vulnerabilities. - -The reason for this action is the November 2021 hack on the International Red Cross in which data of 515,000 people worldwide was leaked. The attackers exploited a known vulnerability CVE-2021-405439 for which a patch was available for a long time. This once again demonstrates the importance of timely updates. - -DIVD calls on the aid organizations that have received an e-mail from them to patch the systems as quickly as possible. The e-mail clearly states which vulnerability is involved. If the organizations encounter problems with patching, they can always contact DIVD. - -DIVD researcher [Tom Wolters](https://www.divd.nl/team/Tom%20Wolters/) is in charge of this [case](https://csirt.divd.nl/cases/DIVD-2022-00012/) from DIVD: “In these times it is important that we strengthen our systems worldwide and are less vulnerable. Charities and foundations work hard to make the world a better place, let's help them where we can; detect vulnerabilities and close gaps.” - -The researchers will continue to scan the environments. Aid organizations can therefore expect another e-mail with additional information. - -**About DIVD** - -The Dutch Institute for Vulnerability Disclosure scans the entire internet for vulnerabilities and reports them to those who can fix them: free of charge and unsolicited. We are the Red Cross of the Internet. Read more about our work on our website DIVD.nl. diff --git a/www.divd.nl/_posts/2022-04-04-Kaseya-VSA-full disclosure.md b/www.divd.nl/_posts/2022-04-04-Kaseya-VSA-full disclosure.md deleted file mode 100644 index e9db8ce0..00000000 --- a/www.divd.nl/_posts/2022-04-04-Kaseya-VSA-full disclosure.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: DIVD gives full disclosure in Kaseya case -layout: news -author: Lucinda Sterk ---- -Say Kaseya VSA and any IT specialist will know what you’re talking about. It was one of the most high-profile incidents of 2021. Almost a year later, the researchers of the Dutch Institute for Vulnerability Disclosure (DIVD) provide full disclosure in [release the full technical details of the bugs they found](https://csirt.divd.nl/2022/04/04/Kaseya-VSA-Full-Disclosure/) - -It is now safe to fully explain what exactly was vulnerable and how it could be abused, says [Frank Breedijk](/team/Frank%20Breedijk), Manager CSIRT at DIVD. “If you haven't patched by now, you're a pancake.” - -In the podcast [episode #6 of The Ransomware Files podcast](https://www.bankinfosecurity.com/interviews/ransomware-files-episode-6-kaseya-revil-i-5045) he and DIVD leader [Victor Gevers](/team/Victor%20Gevers) talk extensively about this case. - -How it started ---- -In April 2021, DIVD researcher Wietse Boonstra discovered several previously undiscovered vulnerabilities, zero days, in Kaseya VSA software. The vulnerabilities were reported and the volunteer specialists worked together with Kaseya for weeks on a patch. Only just before the finish did REvil's cybercriminals overtake them with all the consequences that entailed. Until now only [limited details](https://csirt.divd.nl/2021/07/07/Kaseya-Limited-Disclosure/) have been released - -What we are disclosing ----------------------- -The details released in the full disclosure indicate that the ransomware attack is due to a serious design flaw when it comes to how Kaseya's VSA client authenticated to the server. In addition, there was a lot of technical debt. The full disclosure also reveals the details of [CVE-2021-30118](https://csirt.divd.nl/CVE-2021-30118), which would have allowed REvil to execute its attack even more efficiently and effectively. REvil infected more than 1,500 organizations worldwide with ransomware through the Kaseya vulnerabilities. - -A peek behind the scenes ------------------------- -When the Kaseya VSA crisis happened, [Gerard Janssen](/team/Gerard%20Janssen/), was writing his book [Hackers](https://www.thomasrap.nl/boek/hackers/) and he wrote an entire chapter on this case of which a [translation is available as background report on this site](/reports/2021-00002-Kaseya%20VSA%20behind%20the%20scenes/). diff --git a/www.divd.nl/_posts/2022-06-06-Confluence-0-day.md b/www.divd.nl/_posts/2022-06-06-Confluence-0-day.md deleted file mode 100644 index 4dee887d..00000000 --- a/www.divd.nl/_posts/2022-06-06-Confluence-0-day.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: DIVD warns worldwide Confluence users of critical vulnerability -layout: news -author: Lucinda Sterk ---- -It is again a race against time. Cyber criminals have been massively exploiting the critical vulnerability in Atlassian's Confluence for several days now. The voluntary researchers of the Dutch Institute for Vulnerability Disclosure (DIVD) are working diligently to alert as many Confluence users as possible to this vulnerability and the patch that is now in available. They’ve sent 15,000 mails and counting. In the Netherlands alone, there were at least 460 vulnerable systems. - -On the 2nd of June, researchers at the American security company Volexity announced that they had discovered that an unknown (0-day) vulnerability in Confluence had been used against one of their customers' systems. At the time of discovery, this exploit was only used in a very targeted way. Later, at about the same time the patches were released, details of how to exploit the vulnerability came out, resulting in a massive spread of malware. - -A few days later over 18,000 mails were sent and we kept updating the Digital Trust Center with our findings regarding the Netherlands. - -Confluence is used worldwide by governments, banks and critical infrastructure, among others. Confluence is a collaboration software for capturing (internal) documentation and supports direct integration with many other systems such as Google Drive, Draw.io. and more. - -In the last few days, cybercriminals have been scanning for this vulnerability en masse. Greynoise.io found 350 unique IP addresses that were scanning for this vulnerability. 349 of these are marked 'malicious'. - -What can criminals achieve with an exploit? ---- -By using Confluence servers, attackers can gain access to an organization's infrastructure. Within confluence the vulnerability allows attackers to create admin users and they can steal all internal data from the Confluence instance. - -Since the exploit was announced, attackers have placed Crypto Miners, Mirai botnet agents and web shells on servers. It is also possible that attackers will scan internal systems, which can lead to major data breaches. - - -What does DIVD do? ---- -DIVD's volunteer investigators identify vulnerable Confluence instances accessible over the Internet and alert their owners. We try to warn organizations to update their systems before criminals exploit the vulnerability and to facilitate speedy recovery if a system has already been taken over. - -From our own scanning infrastructure [AS: 50559] we scan for Atlassian Confluence servers and filter out the versions that are not yet patched. - -When we determine that a vulnerable Confluence instance is present, we send a notification to the organization via the internet service provider. In the case of Dutch system owners, we share our data with the Digital Trust Center and the Dutch Security Clearing House (Security Meldpunt). These organizations in turn share the information with the end users. - -To contact the right ISPs we look up the correct contact details with use of WHOIS information. When we can see a clear owner by means of, for example, the domain name, we will look for a contact person or e-mail address to send a notification. With critical organizations such as governments, chemical industries, oil/gas production, manufacturers, transport and financial services, we often seek direct contact, via telephone or LinkedIn, if we do not yet have a liaison or contact person at these organizations. - -What can organizations do? ---- -Patch. If this is not possible, it might be in your best interest to take the environment off the public internet for the time being and/or use a WAF. Try to create an isolated environment that can only be accessed by IP addresses that need access. -Check that no additional users have been created by third parties. -Check the log files {installation directory}/logs/conf_access_log{date}.log for abuse. - -If a malicious person was able to place a web shell, it is possible that the log file has been manipulated / cleaned afterwards. It is recommended to thoroughly investigate the server for any type of backdoors and to see if there has been any unusual activity from the server in question. - -Observations ---- - -Our first global scan shows that Germany and the US were very late with patching the vulnerable systems. The US is in second place, but this is because cloud services such as Amazon are widely used. - -| [![Caption to the table: Frequency of how often a country appears in the total set (from our first scan / mail round (03-05-22 to 04-05-22))](/images/news/confluence_graph.png)](/images/news/confluence_graph.png) | -|:--:| -| Frequency of how often a country appears in the total set (from our first scan / mail round (03-05-22 to 04-05-22)) | - - - -Where can I find more technical information? ---- - -* [DIVD case file](Https://csirt.divd.nl/DIVD-2022-00033) -* [Volexity blog post](https://www.volexity.com/blog/2022/06/02/zero-day-exploitation-of-atlassian-confluence/) -* [Rapid 7 blog post](https://www.rapid7.com/blog/post/2022/06/02/active-exploitation-of-confluence-cve-2022-26134/) -* [Atlassian advisory](https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html) -* [Definition of WAF (from Wikipedia)](https://en.wikipedia.org/wiki/Web_application_firewall) - diff --git a/www.divd.nl/_team/Alain Bettonviel.html b/www.divd.nl/_team/Alain Bettonviel.html deleted file mode 100644 index a092a1e5..00000000 --- a/www.divd.nl/_team/Alain Bettonviel.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Alain Bettonviel -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: alain-bettonviel --wikipedia: ---- diff --git a/www.divd.nl/_team/Anne-Lee den Breems.html b/www.divd.nl/_team/Anne-Lee den Breems.html deleted file mode 100644 index 8a93d62b..00000000 --- a/www.divd.nl/_team/Anne-Lee den Breems.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Anne-Lee den Breems -role: Graphic Designer -dept: Institute -layout: team -appearance: 320 -board: false -active: true --twitter: -linkedin: anne-lee-den-breems --wikipedia: ---- -As a Graphic Designer I have a determined personality that allows me to create and deliver high quality content. diff --git a/www.divd.nl/_team/Artur Miron.html b/www.divd.nl/_team/Artur Miron.html deleted file mode 100644 index 0a7330f1..00000000 --- a/www.divd.nl/_team/Artur Miron.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Artur Miron -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: arturmiron --wikipedia: ---- diff --git a/www.divd.nl/_team/Asif Nawaz Minhas.html b/www.divd.nl/_team/Asif Nawaz Minhas.html deleted file mode 100644 index d4efabd6..00000000 --- a/www.divd.nl/_team/Asif Nawaz Minhas.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Asif Nawaz Minhas -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: asifminhasnl --wikipedia: ---- -Security researcher, interested in open source cms like Wordpress - diff --git a/www.divd.nl/_team/Astrid Oosenbrug.html b/www.divd.nl/_team/Astrid Oosenbrug.html deleted file mode 100644 index 2ff22787..00000000 --- a/www.divd.nl/_team/Astrid Oosenbrug.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Astrid Oosenbrug -role: Chair and Head of Academy -dept: Academy -layout: team -appearance: 30 -board: true -english: -active: true --twitter: -linkedin: astridoosenbrug -wikipedia: https://nl.wikipedia.org/wiki/Astrid_Oosenbrug ---- -Chair, formerly known as DIVD treasurer, lobbyist and foster parent to many young hackers. She started as sysadmin 20+ years ago, but has mostly been politically active since, as Member of Parliament and in numerous NGOs. Her preferred channel is f2f. diff --git a/www.divd.nl/_team/Barry van Kampen.html b/www.divd.nl/_team/Barry van Kampen.html deleted file mode 100644 index c847850d..00000000 --- a/www.divd.nl/_team/Barry van Kampen.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Barry van Kampen -role: Researcher -dept: Academy -layout: team -appearance: 120 -board: false -active: true -twitter: Fish_ -linkedin: bvankampen --wikipedia: ---- -Researcher and CSIRT handler at DIVD . He is also a director of The S-Unit diff --git a/www.divd.nl/_team/Boaz Braaksma.html b/www.divd.nl/_team/Boaz Braaksma.html deleted file mode 100644 index 616b741f..00000000 --- a/www.divd.nl/_team/Boaz Braaksma.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Boaz Braaksma -role: CSIRT handler -dept: CSIRT -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: boazbraaksma --wikipedia: ---- -CSIRT handler diff --git a/www.divd.nl/_team/Boris Postma.html b/www.divd.nl/_team/Boris Postma.html deleted file mode 100644 index 59818810..00000000 --- a/www.divd.nl/_team/Boris Postma.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Boris Postma -role: Academy -dept: Academy -layout: team -appearance: 390 -board: false -active: true --twitter: -linkedin: borispostma/ --wikipedia: ---- diff --git a/www.divd.nl/_team/Brenno de Winter.html b/www.divd.nl/_team/Brenno de Winter.html deleted file mode 100644 index 9b53b4e2..00000000 --- a/www.divd.nl/_team/Brenno de Winter.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Brenno de Winter -role: Data Protection Officer -dept: Institute -layout: team -appearance: 150 -board: false -active: true -twitter: brenno -linkedin: brenno --wikipedia: ---- -Privacy Officer diff --git a/www.divd.nl/_team/Caroline Loef.html b/www.divd.nl/_team/Caroline Loef.html deleted file mode 100644 index 59853f0d..00000000 --- a/www.divd.nl/_team/Caroline Loef.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Caroline Loef -role: CSIRT handler -dept: CSIRT -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: caroline-loef-818395b --wikipedia: ---- diff --git a/www.divd.nl/_team/Casper Kuijper.html b/www.divd.nl/_team/Casper Kuijper.html deleted file mode 100644 index f992e826..00000000 --- a/www.divd.nl/_team/Casper Kuijper.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Casper Kuijper -role: Head of Operations -dept: Operations -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: casper-kuijper-8a44a143 --wikipedia: ---- diff --git a/www.divd.nl/_team/Chantal Stekelenburg.html b/www.divd.nl/_team/Chantal Stekelenburg.html deleted file mode 100644 index 8ca38974..00000000 --- a/www.divd.nl/_team/Chantal Stekelenburg.html +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Chantal Stekelenburg -role: Member of supervisory board -dept: Institute -layout: team -appearance: 1500 -board: false -supervision: true -super_role: -active: true -twitter: MiFare_lady -linkedin: chantalstekelenburg --wikipedia: ---- -Chantal takes care of the hacker community at Zerocopter, is co-founder of [WICCA](http://www.womenofwicca.nl/) (Women In Cybersecurity Community Association) and brings infosec ladies and (female) security enthusiasts together. She also volunteers in cybercrime teams at the Dutch Police, can be found at hacker events and heard in podcasts. - diff --git a/www.divd.nl/_team/Chris van 't Hof.html b/www.divd.nl/_team/Chris van 't Hof.html deleted file mode 100644 index d24dbb7e..00000000 --- a/www.divd.nl/_team/Chris van 't Hof.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Chris van 't Hof -role: Director -dept: Institute -layout: team -appearance: 20 -board: false -active: true --twitter: cvthof -linkedin: chris-van-t-hof-312609 ---- -Director and our previous secretary, text writer and the guy who tries to keep everyone together. He has been researcher, writer and presenter in ICT for 22 years now. His preferred channel is email. diff --git a/www.divd.nl/_team/Chris van den Hooven.html b/www.divd.nl/_team/Chris van den Hooven.html deleted file mode 100644 index e7744075..00000000 --- a/www.divd.nl/_team/Chris van den Hooven.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: Chris van den Hooven -role: Docent -dept: Academy -layout: team -appearance: 500 -board: false -active: true --twitter: --linkedin: ---- diff --git "a/www.divd.nl/_team/C\303\251listine Oosting.html" "b/www.divd.nl/_team/C\303\251listine Oosting.html" deleted file mode 100644 index 86e32957..00000000 --- "a/www.divd.nl/_team/C\303\251listine Oosting.html" +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Célistine Oosting -role: Researcher -layout: team -dept: Research -appearance: 190 -board: false -active: true --twitter: -linkedin: c%C3%A9listine-o-b6ab85198 --wikipedia: ---- -Researcher diff --git a/www.divd.nl/_team/Diego Klinkhamer.html b/www.divd.nl/_team/Diego Klinkhamer.html deleted file mode 100644 index 1846c616..00000000 --- a/www.divd.nl/_team/Diego Klinkhamer.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Diego Klinkhamer -role: Operations & Researcher -layout: team -dept: Research -appearance: 280 -board: false -active: true --twitter: -linkedin: diegoklinkhamer --wikipedia: ---- diff --git a/www.divd.nl/_team/Edwin van Andel.html b/www.divd.nl/_team/Edwin van Andel.html deleted file mode 100644 index d0ad0066..00000000 --- a/www.divd.nl/_team/Edwin van Andel.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Edwin van Andel -role: Unique Intelligence / Advisor -dept: Research -layout: team -appearance: 50 -board: false -active: true -twitter: yafsec -linkedin: yafsec --wikipedia: ---- -Unique Intelligence, member of guild of grumpy old hackers. diff --git a/www.divd.nl/_team/Erik van Oosbree.html b/www.divd.nl/_team/Erik van Oosbree.html deleted file mode 100644 index 79221895..00000000 --- a/www.divd.nl/_team/Erik van Oosbree.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Erik van Oosbree -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: mildata -linkedin: erikvanoosbree --wikipedia: ---- -Breaking stuff for fun and profit. diff --git a/www.divd.nl/_team/Eward Driehuis.html b/www.divd.nl/_team/Eward Driehuis.html deleted file mode 100644 index a6a70394..00000000 --- a/www.divd.nl/_team/Eward Driehuis.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Eward Driehuis -role: Marketing en businessdevelopment -dept: CSIRT -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: ewarddriehuis --wikipedia: ---- diff --git a/www.divd.nl/_team/Ferdinand Uittenbogaard.html b/www.divd.nl/_team/Ferdinand Uittenbogaard.html deleted file mode 100644 index ca4f96f7..00000000 --- a/www.divd.nl/_team/Ferdinand Uittenbogaard.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Ferdinand Uittenbogaard -role: Privacy Officer -dept: Institute -layout: team -appearance: 500 -board: false -active: true -twitter: Ferdinand_EU -linkedin: "ferdinanduittenbogaard" ---- -Looks at privacy stuff and legal. Tries to fathom security. Values compliance and certifications. Bad at gaming. Likes Muay Thai. Works at odd hours. - diff --git a/www.divd.nl/_team/Finn van der Knaap.html b/www.divd.nl/_team/Finn van der Knaap.html deleted file mode 100644 index 2fbb71c7..00000000 --- a/www.divd.nl/_team/Finn van der Knaap.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Finn van der Knaap -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: finn-van-der-knaap-864800205 --wikipedia: ---- diff --git a/www.divd.nl/_team/Fleur van Leusden.html b/www.divd.nl/_team/Fleur van Leusden.html deleted file mode 100644 index f27e0c9d..00000000 --- a/www.divd.nl/_team/Fleur van Leusden.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Fleur van Leusden -role: Secretary -dept: Institute -layout: team -appearance: 200 -board: true -active: true --twitter: -linkedin: fleur-van-leusden-356bb054 --wikipedia: ---- -Secretary, former DIVD CISO. Asks the harder questions and assists the chairwoman with preparing meetings. Keeps track of board decisions as well as making sure decisions match DIVD goals and policies. diff --git a/www.divd.nl/_team/Frank Breedijk.html b/www.divd.nl/_team/Frank Breedijk.html deleted file mode 100644 index 6566f698..00000000 --- a/www.divd.nl/_team/Frank Breedijk.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Frank Breedijk -role: Manager DIVD CSIRT -dept: Institute -layout: team -appearance: 70 -board: false -active: true -twitter: Seccubus -linkedin: seccubus --wikipedia: ---- -Manager and initiator of the DIVD CSIRT, previous know as Dutch Security Hotline. In daily live he is the CISO of Schuberg Philis \ No newline at end of file diff --git a/www.divd.nl/_team/Frank Voelkel.html b/www.divd.nl/_team/Frank Voelkel.html deleted file mode 100644 index a5bd3780..00000000 --- a/www.divd.nl/_team/Frank Voelkel.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Frank Voelkel -role: Researcher -dept: Research -layout: team -appearance: 230 -board: false -active: true --twitter: -linkedin: frank-voelkel-119154204 --wikipedia: ---- -Researcher diff --git a/www.divd.nl/_team/Gerard Janssen.html b/www.divd.nl/_team/Gerard Janssen.html deleted file mode 100644 index 662639c2..00000000 --- a/www.divd.nl/_team/Gerard Janssen.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Gerard Janssen -role: Head of Reporters -dept: Research -layout: team -appearance: 220 -board: false -active: true -twitter: gerardusjanssen --linkedin: --wikipedia: ---- -Gerard Janssen studied Physics in Delft, started a phd in Oceanography, but after a few years working as a deejay/producer ended up writing for magazines and publishers. Working on a book about hackers and the art of hacking. diff --git a/www.divd.nl/_team/Gerdriaan Mulder.html b/www.divd.nl/_team/Gerdriaan Mulder.html deleted file mode 100644 index 9107c3d4..00000000 --- a/www.divd.nl/_team/Gerdriaan Mulder.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Gerdriaan Mulder -role: Head of Development -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: mrngm -linkedin: mrngm --wikipedia: ---- diff --git a/www.divd.nl/_team/Gert Jan Roke.html b/www.divd.nl/_team/Gert Jan Roke.html deleted file mode 100644 index 6320556b..00000000 --- a/www.divd.nl/_team/Gert Jan Roke.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Gert Jan Roke -role: Webdeveloper -dept: Academy -layout: team -appearance: 390 -board: false -active: true --twitter: -linkedin: gertjanroke --wikipedia: ---- diff --git a/www.divd.nl/_team/Hans Meuris.html b/www.divd.nl/_team/Hans Meuris.html deleted file mode 100644 index 282e7b5f..00000000 --- a/www.divd.nl/_team/Hans Meuris.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Hans Meuris -role: Advisor -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: meurisjo -linkedin: hansmeuris --wikipedia: ---- diff --git a/www.divd.nl/_team/Hans van de Looy.html b/www.divd.nl/_team/Hans van de Looy.html deleted file mode 100644 index 28b2c74b..00000000 --- a/www.divd.nl/_team/Hans van de Looy.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Hans van de Looy -role: Ethical Conscience / Advisor -dept: Research -layout: team -appearance: 100 -board: false -active: true -twitter: Quux_NL -linkedin: hansvandelooy --wikipedia: ---- -Ethical Conscience diff --git a/www.divd.nl/_team/Herbert Bos.html b/www.divd.nl/_team/Herbert Bos.html deleted file mode 100644 index 88bbd8e7..00000000 --- a/www.divd.nl/_team/Herbert Bos.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Herbert Bos -role: Member of supervisory board -dept: Institute -layout: team -appearance: 1040 -board: false -supervision: true -active: true --twitter: -linkedin: herbertbos1 --wikipedia: ---- -Member of supervisory board and professor at VU University Amsterdam \ No newline at end of file diff --git a/www.divd.nl/_team/Hidde Smit.html b/www.divd.nl/_team/Hidde Smit.html deleted file mode 100644 index 8207369d..00000000 --- a/www.divd.nl/_team/Hidde Smit.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Hidde Smit -role: Researcher -dept: Research -layout: team -appearance: 240 -board: false -active: true -twitter: HiddeSmit -linkedin: hiddes --wikipedia: ---- -Security Researcher and professional pentester. diff --git a/www.divd.nl/_team/Jan Los.html b/www.divd.nl/_team/Jan Los.html deleted file mode 100644 index 13fdc5dc..00000000 --- a/www.divd.nl/_team/Jan Los.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Jan Los -role: HRM -dept: Institute -layout: team -appearance: 330 -board: false -active: true -twitter: bolnr1 -linkedin: losjan --wikipedia: ---- diff --git a/www.divd.nl/_team/Jelle Ursem.html b/www.divd.nl/_team/Jelle Ursem.html deleted file mode 100644 index ca857d41..00000000 --- a/www.divd.nl/_team/Jelle Ursem.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Jelle Ursem -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: SchizoDuckie -linkedin: jelle-ursem-2393b9188 --wikipedia: ---- -I find the passwords people upload to Github diff --git a/www.divd.nl/_team/Jeroen van de Weerd.html b/www.divd.nl/_team/Jeroen van de Weerd.html deleted file mode 100644 index 7f40e237..00000000 --- a/www.divd.nl/_team/Jeroen van de Weerd.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Jeroen van de Weerd -role: Web Editor, Researcher and Reporter -dept: Research -layout: team -appearance: 140 -board: false -active: true --twitter: -linkedin: jvandeweerd --wikipedia: ---- -Web Editor and Reporter diff --git a/www.divd.nl/_team/John Cornegge.html b/www.divd.nl/_team/John Cornegge.html deleted file mode 100644 index 5251f640..00000000 --- a/www.divd.nl/_team/John Cornegge.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: John Cornegge -role: Developer -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: JohnCornegge -linkedin: JohnCornegge -github: ---- -Solutions Architect, Lead Developer and security enthousiast diff --git a/www.divd.nl/_team/Jonathan Bouman.html b/www.divd.nl/_team/Jonathan Bouman.html deleted file mode 100644 index 8cf0fb77..00000000 --- a/www.divd.nl/_team/Jonathan Bouman.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Jonathan Bouman -role: Researcher level 2 -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: jonathanbouman -linkedin: "jonathanbouman" ---- -Hunts bugs in humans and computers for living. diff --git a/www.divd.nl/_team/Joost Hendricksen.html b/www.divd.nl/_team/Joost Hendricksen.html deleted file mode 100644 index 0dcd67c1..00000000 --- a/www.divd.nl/_team/Joost Hendricksen.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Joost Hendricksen -role: Researcher -dept: Research -layout: team -appearance: 210 -board: false -active: true -twitter: joostsec -linkedin: joost-hendricksen-5b6251a --wikipedia: ---- -Security architect working for Dutch vital infrastructure companies. diff --git a/www.divd.nl/_team/Joris van de Vis.html b/www.divd.nl/_team/Joris van de Vis.html deleted file mode 100644 index ce6c67df..00000000 --- a/www.divd.nl/_team/Joris van de Vis.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Joris van de Vis -role: SAP Researcher -dept: Research -layout: team -appearance: 250 -board: false -active: true -twitter: jvis -linkedin: jorisvandevis --wikipedia: ---- -SAP Security specialist and researcher. Reported ~100 0-days to the SAP Security response team. Co-Founder of [Protect4S SAP Security Automation](https://protect4s.com/). diff --git a/www.divd.nl/_team/Laurent de Vries.html b/www.divd.nl/_team/Laurent de Vries.html deleted file mode 100644 index f7ba616e..00000000 --- a/www.divd.nl/_team/Laurent de Vries.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Laurent de Vries -role: CSIRT handler -dept: CSIRT -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: laurent-de-vries --wikipedia: ---- - diff --git a/www.divd.nl/_team/Lennaert Oudshoorn.html b/www.divd.nl/_team/Lennaert Oudshoorn.html deleted file mode 100644 index d7fa1f66..00000000 --- a/www.divd.nl/_team/Lennaert Oudshoorn.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Lennaert Oudshoorn -role: CSIRT Coordinator and webmaster -dept: CSIRT -layout: team -appearance: 90 -board: false -active: true -twitter: lennaert89 -linkedin: lennaertoudshoorn --wikipedia: ---- -CSIRT Coordinator at DIVD. He studies Digital Forensics at the University of Applied Sciences in Leiden. diff --git a/www.divd.nl/_team/Lodewijk van Zwieten.html b/www.divd.nl/_team/Lodewijk van Zwieten.html deleted file mode 100644 index dfa77919..00000000 --- a/www.divd.nl/_team/Lodewijk van Zwieten.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Lodewijk van Zwieten -role: Chairman of supervisory board -dept: Institute -layout: team -appearance: 1000 -board: false -supervision: true -active: true --twitter: -linkedin: cybercrime --wikipedia: ---- -Chairman of supervisory board and public prosecutor specialized in cybercrime. \ No newline at end of file diff --git a/www.divd.nl/_team/Lucinda Sterk.html b/www.divd.nl/_team/Lucinda Sterk.html deleted file mode 100644 index 7d95f3af..00000000 --- a/www.divd.nl/_team/Lucinda Sterk.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Lucinda Sterk -role: Hoofd Communicatie -dept: Institute -layout: team -appearance: 500 -board: false -active: true -twitter: Luusco -linkedin: "lucinda-sterk" ---- -She started her career in journalism in 2004 and switched to communications and PR in 2008. After almost a decade at the National Crisiscenter for Counter Terrorism and cyber security she moved to Fox-IT. She loves working with nerds and nerds love working with her. Some call her the meme-queen. But everyone else can call her Boss of Communications. diff --git a/www.divd.nl/_team/Marco Heijkoop.html b/www.divd.nl/_team/Marco Heijkoop.html deleted file mode 100644 index 1261a27d..00000000 --- a/www.divd.nl/_team/Marco Heijkoop.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: Marco Heijkoop -role: System engineer -dept: Operations -layout: team -appearance: 500 -board: false -active: true -twitter: marcoheijkoop -linkedin: marcoheijkoop ---- diff --git a/www.divd.nl/_team/Mark de Vos.html b/www.divd.nl/_team/Mark de Vos.html deleted file mode 100644 index 29974de0..00000000 --- a/www.divd.nl/_team/Mark de Vos.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: Mark de Vos -role: Head of education -dept: Academy -layout: team -appearance: 500 -board: false -active: true -twitter: -linkedin: "mbdevos" ---- diff --git a/www.divd.nl/_team/Marnix Lourens.html b/www.divd.nl/_team/Marnix Lourens.html deleted file mode 100644 index 71c1c113..00000000 --- a/www.divd.nl/_team/Marnix Lourens.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: Marnix Lourens -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: MarnixLourens90 -linkedin: "marnix-lourens-2aa312145" ---- diff --git a/www.divd.nl/_team/Martin van Wingerden.html b/www.divd.nl/_team/Martin van Wingerden.html deleted file mode 100644 index 22a33c39..00000000 --- a/www.divd.nl/_team/Martin van Wingerden.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Martin van Wingerden -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: MartinvW -linkedin: martinvw -github: martinvw --wikipedia: ---- -Freelance Developer, Open Source enthousiast and Security Researcher who loves to automate his job. diff --git a/www.divd.nl/_team/Matthijs Koot.html b/www.divd.nl/_team/Matthijs Koot.html deleted file mode 100644 index ff9f0b1f..00000000 --- a/www.divd.nl/_team/Matthijs Koot.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Matthijs Koot -role: Researcher -dept: Research -layout: team -appearance: 80 -board: false -active: true -twitter: MrKoot -linkedin: MrKoot --wikipedia: ---- -Researcher diff --git a/www.divd.nl/_team/Mattijs van Ommeren.html b/www.divd.nl/_team/Mattijs van Ommeren.html deleted file mode 100644 index 8036cb4f..00000000 --- a/www.divd.nl/_team/Mattijs van Ommeren.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Mattijs van Ommeren -role: Researcher -dept: Research -layout: team -appearance: 40 -board: false -active: true -twitter: alcyonsecurity -linkedin: mattijsvanommeren --wikipedia: ---- -Researcher and member of the guild of grumpy old hackers. diff --git a/www.divd.nl/_team/Max van der Horst.html b/www.divd.nl/_team/Max van der Horst.html deleted file mode 100644 index 4bdaf678..00000000 --- a/www.divd.nl/_team/Max van der Horst.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Max van der Horst -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: shaunster --wikipedia: ---- - -Currently working as the security officer of a cloud MSP and studying the at the Security and Network Engineering Master’s program at the University of Amsterdam. Special interests lie with cryptography, anything other low-level and enjoys tutoring/teaching, for which you can always send a message! - diff --git a/www.divd.nl/_team/Mick Beer.html b/www.divd.nl/_team/Mick Beer.html deleted file mode 100644 index 8b348fa8..00000000 --- a/www.divd.nl/_team/Mick Beer.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Mick Beer -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: 1 -linkedin: mick-beer-941b44226 ---- -Mick started using linux at the age of 10 years old who transformed his passion to ethical hacking. Security Governance and pentesting both have his interests. - diff --git a/www.divd.nl/_team/Nikola Diete.html b/www.divd.nl/_team/Nikola Diete.html deleted file mode 100644 index 239e013f..00000000 --- a/www.divd.nl/_team/Nikola Diete.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Nikola Diete -role: Project Management -dept: Institute -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: nikola-diete --wikipedia: ---- -Project management and administrative assistant diff --git a/www.divd.nl/_team/Otto van Wieringen.html b/www.divd.nl/_team/Otto van Wieringen.html deleted file mode 100644 index dbd1df94..00000000 --- a/www.divd.nl/_team/Otto van Wieringen.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Otto van Wieringen -role: System engineer -dept: Operations -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: ottovanwieringen --wikipedia: ---- diff --git a/www.divd.nl/_team/Patrick Hulshof.html b/www.divd.nl/_team/Patrick Hulshof.html deleted file mode 100644 index 3384e9a1..00000000 --- a/www.divd.nl/_team/Patrick Hulshof.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Patrick Hulshof -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: patrickhulshof --wikipedia: ---- diff --git a/www.divd.nl/_team/Paula Wester.html b/www.divd.nl/_team/Paula Wester.html deleted file mode 100644 index 653113f6..00000000 --- a/www.divd.nl/_team/Paula Wester.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: Paula Wester -role: Team Lead Events -dept: Instituut -layout: team -appearance: 500 -board: false -active: true -twitter: -linkedin: "paulawester" ---- diff --git a/www.divd.nl/_team/Pepijn van der Stap.html b/www.divd.nl/_team/Pepijn van der Stap.html deleted file mode 100644 index f17da64b..00000000 --- a/www.divd.nl/_team/Pepijn van der Stap.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Pepijn van der Stap -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: 1 -twitter: xstplanet -github: xstp -linkedin: pepijn-v-3637a2175 ---- -[Pepijn](https://pepijnvanderstap.nl/) is a 20-year old Ethical Hacker and Medior Software Engineer who likes to be in nature, listening to music, like this [masterpiece](https://www.youtube.com/watch?v=hC8CH0Z3L54). He loves code that functions the way it should and favours open source software. In his spare time, he likes to help companies and organisations with the security of their systems, to strengthen their security and contribute to secure the planet. diff --git a/www.divd.nl/_team/Petra Oldengarm.html b/www.divd.nl/_team/Petra Oldengarm.html deleted file mode 100644 index 51b052ba..00000000 --- a/www.divd.nl/_team/Petra Oldengarm.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Petra Oldengarm -role: Member of supervisory board -dept: Institute -layout: team -appearance: 1030 -board: false -supervision: true -super_role: -active: true --twitter: -linkedin: petraoldengarm --wikipedia: ---- -Member of supervisory board and directory at Cyberveilig Nederland diff --git a/www.divd.nl/_team/Ralph Horn.html b/www.divd.nl/_team/Ralph Horn.html deleted file mode 100644 index 7471d56b..00000000 --- a/www.divd.nl/_team/Ralph Horn.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Ralph Horn -role: CSIRT handler -dept: CSIRT -layout: team -appearance: 340 -board: false -active: true --twitter: -linkedin: ralph-h-686283105 --wikipedia: ---- diff --git a/www.divd.nl/_team/Raymond Bierens.html b/www.divd.nl/_team/Raymond Bierens.html deleted file mode 100644 index b6ed9270..00000000 --- a/www.divd.nl/_team/Raymond Bierens.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Raymond Bierens -role: Advisor -dept: Institute -layout: team -appearance: 60 -board: false -active: true --twitter: -linkedin: raymond-bierens-7a1508 --wikipedia: ---- -Advisor \ No newline at end of file diff --git a/www.divd.nl/_team/Remco Verhoef.html b/www.divd.nl/_team/Remco Verhoef.html deleted file mode 100644 index 8a66991c..00000000 --- a/www.divd.nl/_team/Remco Verhoef.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Remco Verhoef -role: Researcher -dept: Research -layout: team -appearance: 370 -board: false -active: true --twitter: -linkedin: remcoverhoef --wikipedia: ---- diff --git a/www.divd.nl/_team/Richard Masmeijer.html b/www.divd.nl/_team/Richard Masmeijer.html deleted file mode 100644 index 743228ab..00000000 --- a/www.divd.nl/_team/Richard Masmeijer.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Richard Masmeijer -role: CSIRT handler -dept: CSIRT -layout: team -appearance: 160 -board: false -active: true --twitter: -linkedin: richard-masmeijer --wikipedia: ---- -Handler at DIVD CSIRT. He's also a security incident responder at the dutch railway company Nederlandse Spoorwegen. \ No newline at end of file diff --git a/www.divd.nl/_team/Rob Blokland.html b/www.divd.nl/_team/Rob Blokland.html deleted file mode 100644 index 46e24105..00000000 --- a/www.divd.nl/_team/Rob Blokland.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Rob Blokland -role: System engineer -dept: Operations -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: robblokland --wikipedia: ---- - diff --git a/www.divd.nl/_team/Ronald Prins.html b/www.divd.nl/_team/Ronald Prins.html deleted file mode 100644 index ec51a9f7..00000000 --- a/www.divd.nl/_team/Ronald Prins.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Ronald Prins -role: Member of supervisory board -dept: Institute -layout: team -appearance: 1010 -board: false -supervision: true -super_role: -active: true -twitter: cryptoron -linkedin: ronaldprins --wikipedia: ---- -Member of supervisory board and co-founder at Hunt & Hackett diff --git a/www.divd.nl/_team/Ruben Uithol.html b/www.divd.nl/_team/Ruben Uithol.html deleted file mode 100644 index cce0afbe..00000000 --- a/www.divd.nl/_team/Ruben Uithol.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Ruben Uithol -role: Researcher -dept: Research -layout: team -appearance: 380 -board: false -active: true --twitter: -linkedin: ruben-uithol-a967b4194 --wikipedia: ---- diff --git a/www.divd.nl/_team/Shairesh Algoe.html b/www.divd.nl/_team/Shairesh Algoe.html deleted file mode 100644 index 6d96c5b9..00000000 --- a/www.divd.nl/_team/Shairesh Algoe.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Shairesh Algoe -role: Treasurer -dept: Institute -layout: team -appearance: 500 -board: true -active: true --twitter: -linkedin: shaireshalgoe --wikipedia: ---- -Treasurer, passionate about information security and tech and enjoys teaching and telling stories. He tries to keep information security simple with more than 12 years of experience. His preferred channel is F2F. diff --git a/www.divd.nl/_team/Sjors Roelfzema.html b/www.divd.nl/_team/Sjors Roelfzema.html deleted file mode 100644 index 65d461ff..00000000 --- a/www.divd.nl/_team/Sjors Roelfzema.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Sjors Roelfzema -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true -twitter: c0ldlip -linkedin: sj0rs --wikipedia: ---- -Researcher that likes webapps, infrastructure, hardware and helping people diff --git a/www.divd.nl/_team/Thomas van Voorst.html b/www.divd.nl/_team/Thomas van Voorst.html deleted file mode 100644 index f45cddad..00000000 --- a/www.divd.nl/_team/Thomas van Voorst.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Thomas van Voorst -role: CSIRT handler -dept: CSIRT -layout: team -appearance: 350 -board: false -active: true -twitter: callmetjomas -linkedin: thomasvanvoorst --wikipedia: ---- diff --git a/www.divd.nl/_team/Tom Wolters.html b/www.divd.nl/_team/Tom Wolters.html deleted file mode 100644 index 45463d20..00000000 --- a/www.divd.nl/_team/Tom Wolters.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Tom Wolters -role: Researcher -dept: Research -layout: team -appearance: 310 -board: false -active: true -twitter: Tom_Wolters -linkedin: tomwolters --wikipedia: ---- -He wants to contribute to a safer world. With his passion for tech, what better place to start than the internet. diff --git a/www.divd.nl/_team/Victor Gevers.html b/www.divd.nl/_team/Victor Gevers.html deleted file mode 100644 index 65695576..00000000 --- a/www.divd.nl/_team/Victor Gevers.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: Victor Gevers -role: Head of research -dept: Research -layout: team -appearance: 10 -board: false -active: true -twitter: 0xDUDE ---- -Head of Research, visionary and janitor of our online environment. Chairman as his previous role. He is the undisputed champion in Responsible Disclosure, with 5.600+ vulnerability reports successfully handled in the last 18 years. Don’t send him e mails, as he receives millions a day. His preferred channel is Twitter. diff --git a/www.divd.nl/_team/Victor Pasman.html b/www.divd.nl/_team/Victor Pasman.html deleted file mode 100644 index c4ea5ef6..00000000 --- a/www.divd.nl/_team/Victor Pasman.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Victor Pasman -role: CSIRT handler -dept: CSIRT -layout: team -appearance: 360 -board: false -active: true --twitter: -linkedin: victor-pasman-68245124 --wikipedia: ---- diff --git a/www.divd.nl/_team/Vincent Thiele.html b/www.divd.nl/_team/Vincent Thiele.html deleted file mode 100644 index 14b768c9..00000000 --- a/www.divd.nl/_team/Vincent Thiele.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Vincent Thiele -role: Head of CSIRT Global -dept: CSIRT -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: thielev --wikipedia: ---- diff --git a/www.divd.nl/_team/Wietse Boonstra.html b/www.divd.nl/_team/Wietse Boonstra.html deleted file mode 100644 index b3d504d7..00000000 --- a/www.divd.nl/_team/Wietse Boonstra.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Wietse Boonstra -role: Researcher -dept: Research -layout: team -appearance: 170 -board: false -active: true -twitter: wietsman -linkedin: wietse-boonstra --wikipedia: ---- -Security Researcher, bugbounty hunter, ethical hacker and loads more from the backcorner of the Netherlands!!!1111oneoneone diff --git a/www.divd.nl/_team/Willem Kutschruiter.html b/www.divd.nl/_team/Willem Kutschruiter.html deleted file mode 100644 index 1b63f378..00000000 --- a/www.divd.nl/_team/Willem Kutschruiter.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Willem Kutschruiter -role: CSIRT handler -dept: CSIRT -layout: team -appearance: 110 -board: false -active: true --twitter: -linkedin: willemkutschruiter --wikipedia: ---- -CSIRT handler diff --git a/www.divd.nl/_team/Wouter Schoot.html b/www.divd.nl/_team/Wouter Schoot.html deleted file mode 100644 index 3487a536..00000000 --- a/www.divd.nl/_team/Wouter Schoot.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: Wouter Schoot -role: System engineer -dept: Operations -layout: team -appearance: 500 -board: false -active: true -twitter: WouterSchoot -linkedin: wouterschoot -github: wschoot ---- -Fixes typo's and dead links on sites and is part in the operations team. Likes Ansible and automating Linux in general. diff --git a/www.divd.nl/_team/Yury Zhauniarovich.html b/www.divd.nl/_team/Yury Zhauniarovich.html deleted file mode 100644 index 2caaca44..00000000 --- a/www.divd.nl/_team/Yury Zhauniarovich.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Yury Zhauniarovich -role: Researcher -dept: Research -layout: team -appearance: 500 -board: false -active: true --twitter: -linkedin: zhauniarovich --wikipedia: ---- -[Yury Zhauniarovich](https://zhauniarovich.com/) is an Assistant Professor in Cybersecurity at the Technology, Policy and Management (TPM) faculty at TU Delft (Netherlands). Before joining the university, he has spent several years working in the industry, and therefore he is curious how technology can facilitate security. His research interests include network measurements, mobile security, DDoS attacks, blockchain technologies, data analysis, and machine learning. - diff --git a/www.divd.nl/anbi.md b/www.divd.nl/anbi.md deleted file mode 100644 index 6d3b1187..00000000 --- a/www.divd.nl/anbi.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default -title: ANBI -header: ANBI ---- -
-

ANBI

-
- -### Documents - -* [Beleidsplan DIVD](/uploads/Beleidsplan-DIVD-v27-12-2021.pdf) (Dutch) - - diff --git a/www.divd.nl/assets/css/font-awesome.min.css b/www.divd.nl/assets/css/font-awesome.min.css deleted file mode 100644 index 86464860..00000000 --- a/www.divd.nl/assets/css/font-awesome.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - @font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/www.divd.nl/assets/css/main.css b/www.divd.nl/assets/css/main.css deleted file mode 100644 index 2df0b0f2..00000000 --- a/www.divd.nl/assets/css/main.css +++ /dev/null @@ -1,2874 +0,0 @@ -@import url(font-awesome.min.css); -/* raleway-regular - latin */ -@font-face { - font-family: 'Raleway'; - font-style: normal; - font-weight: 400; - src: url('../fonts/raleway-v22-latin-regular.eot'); /* IE9 Compat Modes */ - src: local(''), - url('../fonts/raleway-v22-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/raleway-v22-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/raleway-v22-latin-regular.woff') format('woff'), /* Modern Browsers */ - url('../fonts/raleway-v22-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/raleway-v22-latin-regular.svg#Raleway') format('svg'); /* Legacy iOS */ -} -/* - Industrious by TEMPLATED - templated.co @templatedco - Released for free under the Creative Commons Attribution 3.0 license (templated.co/license) -*/ -/* Basic */ -@-ms-viewport { - width: device-width; } -body { - -ms-overflow-style: scrollbar; } - -@media screen and (max-width: 480px) { - html, body { - min-width: 320px; } } -html { - box-sizing: border-box; } - -*, *:before, *:after { - box-sizing: inherit; } - -body { - background: #ffffff; } - body.is-preload *, body.is-preload *:before, body.is-preload *:after { - -moz-animation: none !important; - -webkit-animation: none !important; - -ms-animation: none !important; - animation: none !important; - -moz-transition: none !important; - -webkit-transition: none !important; - -ms-transition: none !important; - transition: none !important; } - -html, body, div, span, applet, object, -iframe, h1, h2, h3, h4, h5, h6, p, blockquote, -pre, a, abbr, acronym, address, big, cite, -code, del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, b, -u, i, center, dl, dt, dd, ol, ul, li, fieldset, -form, label, legend, table, caption, tbody, -tfoot, thead, tr, th, td, article, aside, -canvas, details, embed, figure, figcaption, -footer, header, hgroup, menu, nav, output, ruby, -section, summary, time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; } - -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; } - -body { - line-height: 1; } - -ol, ul { - list-style: none; } - -blockquote, q { - quotes: none; } - blockquote:before, blockquote:after, q:before, q:after { - content: ''; - content: none; } - -table { - border-collapse: collapse; - border-spacing: 0; } - -body { - -webkit-text-size-adjust: none; } - -mark { - background-color: transparent; - color: inherit; } - -input::-moz-focus-inner { - border: 0; - padding: 0; } - -input, select, textarea { - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - appearance: none; } - -/* Typography */ -html { - font-size: 13pt; } - @media screen and (max-width: 1680px) { - html { - font-size: 11pt; } } - @media screen and (max-width: 980px) { - html { - font-size: 12pt; } } - @media screen and (max-width: 480px) { - html { - font-size: 11pt; } } - -body { - background-color: #ffffff; - color: #444444; } - -body, input, select, textarea { - font-family: "Raleway", Arial, Helvetica, sans-serif; - font-weight: 400; - font-size: 1rem; - line-height: 1.65; } - -a { - -moz-transition: color 0.2s ease-in-out; - -webkit-transition: color 0.2s ease-in-out; - -ms-transition: color 0.2s ease-in-out; - transition: color 0.2s ease-in-out; - text-decoration: underline; } - a:hover { - text-decoration: none; } - -strong, b { - font-weight: 600; } - -em, i { - font-style: italic; } - -p { - margin: 0 0 2rem 0; } - -header.special { - text-align: center; - margin-bottom: 4rem; } - header.special p { - max-width: 75%; - margin-left: auto; - margin-right: auto; } - -h1, h2, h3, h4, h5, h6 { - font-weight: 300; - line-height: 1.5; - text-transform: uppercase; - margin: 0 0 1.5rem 0; } - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - color: inherit; - text-decoration: none; } - -h1 { - font-size: 3rem; - line-height: 1.2; } - -h2 { - font-size: 2.25rem; - line-height: 1.3; } - -h3 { - font-size: 1.25rem; } - -h4 { - font-size: 1rem; } - -h5 { - font-size: 0.9rem; } - -h6 { - font-size: 0.7rem; } - -@media screen and (max-width: 736px) { - h1 { - font-size: 2.75rem; - line-height: 1.3; } - - h2 { - font-size: 1.75rem; - line-height: 1.5; } - - h3 { - font-size: 1.25rem; } } -sub { - font-size: 0.8rem; - position: relative; - top: 0.5rem; } - -sup { - font-size: 0.8rem; - position: relative; - top: -0.5rem; } - -blockquote { - border-left: solid 0.5rem; - font-style: italic; - margin: 0 0 2rem 0; - padding: 1rem 0 1rem 2rem; } - -code { - border-radius: 4px; - border: solid 1px; - font-family: "Courier New", monospace; - font-size: 0.9rem; - margin: 0 0.25rem; - padding: 0.25rem 0.65rem; } - -pre { - -webkit-overflow-scrolling: touch; - font-family: "Courier New", monospace; - font-size: 0.9rem; - margin: 0 0 2rem 0; } - pre code { - display: block; - line-height: 1.75; - padding: 1rem 1.5rem; - overflow-x: auto; } - -hr { - border: 0; - border-bottom: solid 1px; - margin: 2rem 0; } - hr.major { - margin: 4rem 0; } - -input, select, textarea { - color: #555555; } - -a { - color: #ce1b28; } - -strong, b { - color: #555555; } - -h1, h2, h3, h4, h5, h6 { - color: #555555; } - -blockquote { - border-left-color: rgba(0, 0, 0, 0.25); } - -code { - background: rgba(0, 0, 0, 0.075); - border-color: rgba(0, 0, 0, 0.25); } - -hr { - border-bottom-color: rgba(0, 0, 0, 0.25); } - -/* Inner */ -.inner { - margin: 0 auto; - width: 75rem; - max-width: calc(100% - 6rem); } - @media screen and (max-width: 480px) { - .inner { - max-width: calc(100% - 3rem); - } - .inner img { - max-width: inherit; - } - } -/* Button */ -input[type="submit"], -input[type="reset"], -input[type="button"], -button, -.button { - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - appearance: none; - -moz-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out; - -webkit-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out; - -ms-transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out; - transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, color 0.2s ease-in-out; - border: 0; - border-radius: 4px; - cursor: pointer; - display: inline-block; - font-weight: 600; - height: 3.25rem; - line-height: 3.25rem; - padding: 0 1.75rem; - text-align: center; - text-decoration: none; - white-space: nowrap; } - input[type="submit"].small, - input[type="reset"].small, - input[type="button"].small, - button.small, - .button.small { - font-size: 0.8rem; - height: 2.4375rem; - line-height: 2.4375rem; - padding: 0 1.25rem; } - input[type="submit"].large, - input[type="reset"].large, - input[type="button"].large, - button.large, - .button.large { - font-size: 1.35rem; - height: 4.0625rem; - line-height: 4.0625rem; - padding: 0 2rem; } - input[type="submit"].wide, - input[type="reset"].wide, - input[type="button"].wide, - button.wide, - .button.wide { - min-width: 13rem; } - input[type="submit"].icon:before, - input[type="reset"].icon:before, - input[type="button"].icon:before, - button.icon:before, - .button.icon:before { - margin-right: 0.5rem; } - input[type="submit"].fit, - input[type="reset"].fit, - input[type="button"].fit, - button.fit, - .button.fit { - width: 100%; } - input[type="submit"].disabled, input[type="submit"]:disabled, - input[type="reset"].disabled, - input[type="reset"]:disabled, - input[type="button"].disabled, - input[type="button"]:disabled, - button.disabled, - button:disabled, - .button.disabled, - .button:disabled { - pointer-events: none; - opacity: 0.25; } - -input[type="submit"], -input[type="reset"], -input[type="button"], -button, -.button { - background-color: transparent; - box-shadow: inset 0 0 0 1px #555555; - color: #555555 !important; } - input[type="submit"]:hover, - input[type="reset"]:hover, - input[type="button"]:hover, - button:hover, - .button:hover { - box-shadow: inset 0 0 0 1px #ce1b28; - color: #ce1b28 !important; } - input[type="submit"]:hover:active, - input[type="reset"]:hover:active, - input[type="button"]:hover:active, - button:hover:active, - .button:hover:active { - background-color: rgba(206, 27, 40, 0.25); } - input[type="submit"].primary, - input[type="reset"].primary, - input[type="button"].primary, - button.primary, - .button.primary { - box-shadow: none; - background-color: #ce1b28; - color: #ffffff !important; } - input[type="submit"].primary:hover, - input[type="reset"].primary:hover, - input[type="button"].primary:hover, - button.primary:hover, - .button.primary:hover { - background-color: #e2212f; - box-shadow: none; } - input[type="submit"].primary:hover:active, - input[type="reset"].primary:hover:active, - input[type="button"].primary:hover:active, - button.primary:hover:active, - .button.primary:hover:active { - background-color: #b71824; } - -/* Form */ -form { - margin: 0 0 2rem 0; } - -input[type="text"], -input[type="password"], -input[type="email"], -input[type="tel"], -input[type="search"], -input[type="url"], -select, -textarea { - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - appearance: none; - border-radius: 4px; - border: none; - border: solid 1px; - color: inherit; - display: block; - outline: 0; - padding: 0 1rem; - text-decoration: none; - width: 100%; } - input[type="text"]:invalid, - input[type="password"]:invalid, - input[type="email"]:invalid, - input[type="tel"]:invalid, - input[type="search"]:invalid, - input[type="url"]:invalid, - select:invalid, - textarea:invalid { - box-shadow: none; } - -label { - display: block; - font-size: 1rem; - font-weight: 600; - margin: 0 0 1rem 0; } - -input[type="text"], -input[type="password"], -input[type="email"], -input[type="tel"], -input[type="search"], -input[type="url"] { - height: 3.25rem; } - -select { - background-size: 1.25rem; - background-repeat: no-repeat; - background-position: calc(100% - 1rem) center; - height: 3.25rem; - padding-right: 3.25rem; - text-overflow: ellipsis; } - select:focus::-ms-value { - background-color: transparent; } - select::-ms-expand { - display: none; } - -textarea { - padding: 0.75rem 1rem; } - -input[type="checkbox"], -input[type="radio"] { - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - appearance: none; - display: block; - float: left; - margin-right: -2rem; - opacity: 0; - width: 1rem; - z-index: -1; } - input[type="checkbox"] + label, - input[type="radio"] + label { - text-decoration: none; - cursor: pointer; - display: inline-block; - font-size: 1rem; - font-weight: 400; - padding-left: 2.825rem; - padding-right: 0.875rem; - position: relative; } - input[type="checkbox"] + label:before, - input[type="radio"] + label:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - input[type="checkbox"] + label:before, - input[type="radio"] + label:before { - border-radius: 4px; - border: solid 1px; - content: ''; - display: inline-block; - height: 1.95rem; - left: 0; - line-height: 1.86875rem; - position: absolute; - text-align: center; - top: -0.1625rem; - width: 1.95rem; } - input[type="checkbox"]:checked + label:before, - input[type="radio"]:checked + label:before { - content: '\f00c'; } - -input[type="checkbox"] + label:before { - border-radius: 4px; } - -input[type="radio"] + label:before { - border-radius: 100%; } - -::-webkit-input-placeholder { - opacity: 1.0; } - -:-moz-placeholder { - opacity: 1.0; } - -::-moz-placeholder { - opacity: 1.0; } - -:-ms-input-placeholder { - opacity: 1.0; } - -label { - color: #555555; } - -input[type="text"], -input[type="password"], -input[type="email"], -input[type="tel"], -input[type="search"], -input[type="url"], -select, -textarea { - background-color: rgba(0, 0, 0, 0.075); - border-color: rgba(0, 0, 0, 0.25); } - input[type="text"]:focus, - input[type="password"]:focus, - input[type="email"]:focus, - input[type="tel"]:focus, - input[type="search"]:focus, - input[type="url"]:focus, - select:focus, - textarea:focus { - border-color: #ce1b28; - box-shadow: 0 0 0 1px #ce1b28; } - -select { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(0, 0, 0, 0.25)' /%3E%3C/svg%3E"); } - select option { - color: #444444; - background-color: #ffffff; } - -input[type="checkbox"] + label, -input[type="radio"] + label { - color: #444444; } - input[type="checkbox"] + label:before, - input[type="radio"] + label:before { - background: rgba(0, 0, 0, 0.075); - border-color: rgba(0, 0, 0, 0.25); } -input[type="checkbox"]:checked + label:before, -input[type="radio"]:checked + label:before { - background-color: #ce1b28; - border-color: #ce1b28; - color: #ffffff; } -input[type="checkbox"]:focus + label:before, -input[type="radio"]:focus + label:before { - border-color: #ce1b28; - box-shadow: 0 0 0 1px #ce1b28; } - -::-webkit-input-placeholder { - color: #bbbbbb !important; } - -:-moz-placeholder { - color: #bbbbbb !important; } - -::-moz-placeholder { - color: #bbbbbb !important; } - -:-ms-input-placeholder { - color: #bbbbbb !important; } - -/* List */ -ol { - list-style: decimal; - margin: 0 0 2rem 0; - padding-left: 1.25rem; } - ol li { - padding-left: 0.25rem; } - -ul { - list-style: disc; - margin: 0 0 2rem 0; - padding-left: 1rem; } - ul li { - padding-left: 0.325rem; } - ul.plain { - list-style: none; - padding-left: 0; } - ul.plain li { - margin-bottom: 1rem; } - ul.plain li .icon { - border-radius: 4px; - color: #ffffff; - display: inline-block; - margin-right: 1rem; - text-align: center; - width: 2rem; - height: 2rem; - line-height: 2rem; - background: rgba(0, 0, 0, 0.5); } - ul.alt { - list-style: none; - padding-left: 0; } - ul.alt li { - border-top: solid 1px; - padding: 0.75rem 0; } - ul.alt li:first-child { - border-top: 0; - padding-top: 0; } - ul.alt li:last-child { - padding-bottom: 0; } - -dl { - margin: 0 0 2rem 0; } - dl dt { - display: block; - font-weight: 600; - margin: 0 0 1rem 0; } - dl dd { - margin-left: 1.5rem; } - -ul.alt li { - border-top-color: rgba(0, 0, 0, 0.25); } - -/* Table */ -.table-wrapper { - -webkit-overflow-scrolling: touch; - overflow-x: auto; } - -table { - margin: 0 0 2rem 0; - width: 100%; } - table tbody tr { - border: solid 1px; - border-left: 0; - border-right: 0; } - table td { - padding: 0.75rem 0.75rem; } - table th { - font-size: 0.9rem; - font-weight: 600; - padding: 0 0.75rem 0.75rem 0.75rem; - text-align: left; } - table thead { - border-bottom: solid 2px; } - table tfoot { - border-top: solid 2px; } - table.alt { - border-collapse: separate; } - table.alt tbody tr td { - border: solid 1px; - border-left-width: 0; - border-top-width: 0; } - table.alt tbody tr td:first-child { - border-left-width: 1px; } - table.alt tbody tr:first-child td { - border-top-width: 1px; } - table.alt thead { - border-bottom: 0; } - table.alt tfoot { - border-top: 0; } - -table tbody tr { - border-color: rgba(0, 0, 0, 0.25); } - table tbody tr:nth-child(2n + 1) { - background-color: rgba(0, 0, 0, 0.075); } -table th { - color: #555555; } -table thead { - border-bottom-color: rgba(0, 0, 0, 0.25); } -table tfoot { - border-top-color: rgba(0, 0, 0, 0.25); } -table.alt tbody tr td { - border-color: rgba(0, 0, 0, 0.25); } - -/* Highlights */ -.highlights { - width: 100%; - margin: 2.5rem 0; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -moz-align-items: -moz-stretch; - -webkit-align-items: -webkit-stretch; - -ms-align-items: -ms-stretch; - align-items: stretch; } - .highlights > * { - -moz-flex-shrink: 1; - -webkit-flex-shrink: 1; - -ms-flex-shrink: 1; - flex-shrink: 1; - -moz-flex-grow: 0; - -webkit-flex-grow: 0; - -ms-flex-grow: 0; - flex-grow: 0; } - .highlights > * { - width: 33.3333333333%; } - .highlights > * { - padding: 1.5rem; - width: calc(33.3333333333% + 1rem); } - .highlights > :nth-child(-n + 3) { - padding-top: 0; } - .highlights > :nth-last-child(-n + 3) { - padding-bottom: 0; } - .highlights > :nth-child(3n + 1) { - padding-left: 0; } - .highlights > :nth-child(3n) { - padding-right: 0; } - .highlights > :nth-child(3n + 1), - .highlights > :nth-child(3n) { - width: calc(33.3333333333% + -0.5rem); } - .highlights .content { - border-radius: 4px; - height: 100%; - padding: 3rem; - text-align: center; } - .highlights .content .icon { - font-size: 5rem; } - .highlights > div > :last-child { - margin-bottom: 0; } - @media screen and (max-width: 980px) { - .highlights > * { - width: 50%; } - .highlights > * { - padding: 1rem; - width: calc(33.3333333333% + 0.6666666667rem); } - .highlights > :nth-child(-n + 3) { - padding-top: 1rem; } - .highlights > :nth-last-child(-n + 3) { - padding-bottom: 1rem; } - .highlights > :nth-child(3n + 1) { - padding-left: 1rem; } - .highlights > :nth-child(3n) { - padding-right: 1rem; } - .highlights > :nth-child(3n + 1), - .highlights > :nth-child(3n) { - padding: 1rem; - width: calc(50% + 1rem); } - .highlights > * { - padding: 1rem; - width: calc(50% + 1rem); } - .highlights > :nth-child(-n + 2) { - padding-top: 0; } - .highlights > :nth-last-child(-n + 2) { - padding-bottom: 0; } - .highlights > :nth-child(2n + 1) { - padding-left: 0; } - .highlights > :nth-child(2n) { - padding-right: 0; } - .highlights > :nth-child(2n + 1), - .highlights > :nth-child(2n) { - width: calc(50% + 0rem); } - .highlights .content { - padding: 2rem; } } - @media screen and (max-width: 736px) { - .highlights > * { - width: 100%; } - .highlights > * { - padding: 1rem; - width: calc(33.3333333333% + 0.6666666667rem); } - .highlights > :nth-child(-n + 3) { - padding-top: 1rem; } - .highlights > :nth-last-child(-n + 3) { - padding-bottom: 1rem; } - .highlights > :nth-child(3n + 1) { - padding-left: 1rem; } - .highlights > :nth-child(3n) { - padding-right: 1rem; } - .highlights > :nth-child(3n + 1), - .highlights > :nth-child(3n) { - padding: 1rem; - width: calc(100% + 2rem); } - .highlights > * { - padding: 1rem; - width: calc(50% + 1rem); } - .highlights > :nth-child(-n + 2) { - padding-top: 1rem; } - .highlights > :nth-last-child(-n + 2) { - padding-bottom: 1rem; } - .highlights > :nth-child(2n + 1) { - padding-left: 1rem; } - .highlights > :nth-child(2n) { - padding-right: 1rem; } - .highlights > :nth-child(2n + 1), - .highlights > :nth-child(2n) { - padding: 1rem; - width: calc(100% + 2rem); } - .highlights > * { - padding: 1rem; - width: calc(100% + 2rem); } - .highlights > :nth-child(-n + 1) { - padding-top: 0; } - .highlights > :nth-last-child(-n + 1) { - padding-bottom: 0; } - .highlights > :nth-child(1n + 1) { - padding-left: 0; } - .highlights > :nth-child(1n) { - padding-right: 0; } - .highlights > :nth-child(1n + 1), - .highlights > :nth-child(1n) { - width: calc(100% + 1rem); } } - -.highlights .content { - background: #ffffff; - box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.025); } - -/* Testimonials */ -.testimonials { - margin: 2.5rem 0; - width: 100%; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -moz-align-items: -moz-stretch; - -webkit-align-items: -webkit-stretch; - -ms-align-items: -ms-stretch; - align-items: stretch; } - .testimonials > * { - -moz-flex-shrink: 1; - -webkit-flex-shrink: 1; - -ms-flex-shrink: 1; - flex-shrink: 1; - -moz-flex-grow: 0; - -webkit-flex-grow: 0; - -ms-flex-grow: 0; - flex-grow: 0; } - .testimonials > * { - width: 33.3333333333%; } - .testimonials > * { - padding: 1.5rem; - width: calc(33.3333333333% + 1rem); } - .testimonials > :nth-child(-n + 3) { - padding-top: 0; } - .testimonials > :nth-last-child(-n + 3) { - padding-bottom: 0; } - .testimonials > :nth-child(3n + 1) { - padding-left: 0; } - .testimonials > :nth-child(3n) { - padding-right: 0; } - .testimonials > :nth-child(3n + 1), - .testimonials > :nth-child(3n) { - width: calc(33.3333333333% + -0.5rem); } - .testimonials .content { - border-radius: 4px; - height: 100%; - padding: 3rem; } - .testimonials .content .author { - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; } - .testimonials .content .author blockquote { - margin: 0; } - .testimonials .content .author .image { - margin-right: 2rem; - width: 20%; } - .testimonials .content .author .image img { - border-radius: 100%; - max-width: 100%; } - .testimonials .content .credit { - font-size: 0.75rem; } - .testimonials .content p:last-child { - margin: 0; } - .testimonials > div > :last-child { - margin-bottom: 0; } - @media screen and (max-width: 980px) { - .testimonials > * { - width: 50%; } - .testimonials > * { - padding: 1rem; - width: calc(33.3333333333% + 0.6666666667rem); } - .testimonials > :nth-child(-n + 3) { - padding-top: 1rem; } - .testimonials > :nth-last-child(-n + 3) { - padding-bottom: 1rem; } - .testimonials > :nth-child(3n + 1) { - padding-left: 1rem; } - .testimonials > :nth-child(3n) { - padding-right: 1rem; } - .testimonials > :nth-child(3n + 1), - .testimonials > :nth-child(3n) { - padding: 1rem; - width: calc(50% + 1rem); } - .testimonials > * { - padding: 1rem; - width: calc(50% + 1rem); } - .testimonials > :nth-child(-n + 2) { - padding-top: 0; } - .testimonials > :nth-last-child(-n + 2) { - padding-bottom: 0; } - .testimonials > :nth-child(2n + 1) { - padding-left: 0; } - .testimonials > :nth-child(2n) { - padding-right: 0; } - .testimonials > :nth-child(2n + 1), - .testimonials > :nth-child(2n) { - width: calc(50% + 0rem); } - .testimonials .content { - padding: 2rem; } } - @media screen and (max-width: 736px) { - .testimonials > * { - width: 100%; } - .testimonials > * { - padding: 1rem; - width: calc(33.3333333333% + 0.6666666667rem); } - .testimonials > :nth-child(-n + 3) { - padding-top: 1rem; } - .testimonials > :nth-last-child(-n + 3) { - padding-bottom: 1rem; } - .testimonials > :nth-child(3n + 1) { - padding-left: 1rem; } - .testimonials > :nth-child(3n) { - padding-right: 1rem; } - .testimonials > :nth-child(3n + 1), - .testimonials > :nth-child(3n) { - padding: 1rem; - width: calc(100% + 2rem); } - .testimonials > * { - padding: 1rem; - width: calc(50% + 1rem); } - .testimonials > :nth-child(-n + 2) { - padding-top: 1rem; } - .testimonials > :nth-last-child(-n + 2) { - padding-bottom: 1rem; } - .testimonials > :nth-child(2n + 1) { - padding-left: 1rem; } - .testimonials > :nth-child(2n) { - padding-right: 1rem; } - .testimonials > :nth-child(2n + 1), - .testimonials > :nth-child(2n) { - padding: 1rem; - width: calc(100% + 2rem); } - .testimonials > * { - padding: 1rem; - width: calc(100% + 2rem); } - .testimonials > :nth-child(-n + 1) { - padding-top: 0; } - .testimonials > :nth-last-child(-n + 1) { - padding-bottom: 0; } - .testimonials > :nth-child(1n + 1) { - padding-left: 0; } - .testimonials > :nth-child(1n) { - padding-right: 0; } - .testimonials > :nth-child(1n + 1), - .testimonials > :nth-child(1n) { - width: calc(100% + 1rem); } } - -.testimonials .content { - background: #ffffff; - box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.025); } - .testimonials .content .credit strong { - color: #ce1b28; } - -/* Actions */ -ul.actions { - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - cursor: default; - list-style: none; - margin-left: -1rem; - padding-left: 0; } - ul.actions li { - padding: 0 0 0 1rem; - vertical-align: middle; } - ul.actions.special { - -moz-justify-content: center; - -webkit-justify-content: center; - -ms-justify-content: center; - justify-content: center; - width: calc(100% + 1rem); } - ul.actions.stacked { - -moz-flex-direction: column; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - margin-left: 0; } - ul.actions.stacked li { - padding: 1.3rem 0 0 0; } - ul.actions.stacked li:first-child { - padding-top: 0; } - ul.actions.fit { - width: calc(100% + 1rem); } - ul.actions.fit li { - -moz-flex-grow: 1; - -webkit-flex-grow: 1; - -ms-flex-grow: 1; - flex-grow: 1; - -moz-flex-shrink: 1; - -webkit-flex-shrink: 1; - -ms-flex-shrink: 1; - flex-shrink: 1; - width: 100%; } - ul.actions.fit li > * { - width: 100%; } - ul.actions.fit.stacked { - width: 100%; } - @media screen and (max-width: 480px) { - ul.actions:not(.fixed) { - -moz-flex-direction: column; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - margin-left: 0; - width: 100% !important; } - ul.actions:not(.fixed) li { - -moz-flex-grow: 1; - -webkit-flex-grow: 1; - -ms-flex-grow: 1; - flex-grow: 1; - -moz-flex-shrink: 1; - -webkit-flex-shrink: 1; - -ms-flex-shrink: 1; - flex-shrink: 1; - padding: 1rem 0 0 0; - text-align: center; - width: 100%; } - ul.actions:not(.fixed) li > * { - width: 100%; } - ul.actions:not(.fixed) li:first-child { - padding-top: 0; } - ul.actions:not(.fixed) li input[type="submit"], - ul.actions:not(.fixed) li input[type="reset"], - ul.actions:not(.fixed) li input[type="button"], - ul.actions:not(.fixed) li button, - ul.actions:not(.fixed) li .button { - width: 100%; } - ul.actions:not(.fixed) li input[type="submit"].icon:before, - ul.actions:not(.fixed) li input[type="reset"].icon:before, - ul.actions:not(.fixed) li input[type="button"].icon:before, - ul.actions:not(.fixed) li button.icon:before, - ul.actions:not(.fixed) li .button.icon:before { - margin-left: -0.5rem; } } - -/* Grid */ -.row { - display: flex; - flex-wrap: wrap; - box-sizing: border-box; } - .row > * { - box-sizing: border-box; } - .row.gtr-uniform > * > :last-child { - margin-bottom: 0; } - -.row > .imp { - order: -1; } -.row > .col-1 { - width: 8.3333333333%; } -.row > .off-1 { - margin-left: 8.3333333333%; } -.row > .col-2 { - width: 16.6666666667%; } -.row > .off-2 { - margin-left: 16.6666666667%; } -.row > .col-3 { - width: 25%; } -.row > .off-3 { - margin-left: 25%; } -.row > .col-4 { - width: 33.3333333333%; } -.row > .off-4 { - margin-left: 33.3333333333%; } -.row > .col-5 { - width: 41.6666666667%; } -.row > .off-5 { - margin-left: 41.6666666667%; } -.row > .col-6 { - width: 50%; } -.row > .off-6 { - margin-left: 50%; } -.row > .col-7 { - width: 58.3333333333%; } -.row > .off-7 { - margin-left: 58.3333333333%; } -.row > .col-8 { - width: 66.6666666667%; } -.row > .off-8 { - margin-left: 66.6666666667%; } -.row > .col-9 { - width: 75%; } -.row > .off-9 { - margin-left: 75%; } -.row > .col-10 { - width: 83.3333333333%; } -.row > .off-10 { - margin-left: 83.3333333333%; } -.row > .col-11 { - width: 91.6666666667%; } -.row > .off-11 { - margin-left: 91.6666666667%; } -.row > .col-12 { - width: 100%; } -.row > .off-12 { - margin-left: 100%; } -.row.gtr-0 { - margin-top: 0; - margin-left: 0rem; } - .row.gtr-0 > * { - padding: 0 0 0 0rem; } - .row.gtr-0.gtr-uniform { - margin-top: 0rem; } - .row.gtr-0.gtr-uniform > * { - padding-top: 0rem; } -.row.gtr-25 { - margin-top: 0; - margin-left: -0.75rem; } - .row.gtr-25 > * { - padding: 0 0 0 0.75rem; } - .row.gtr-25.gtr-uniform { - margin-top: -0.75rem; } - .row.gtr-25.gtr-uniform > * { - padding-top: 0.75rem; } -.row.gtr-50 { - margin-top: 0; - margin-left: -1.5rem; } - .row.gtr-50 > * { - padding: 0 0 0 1.5rem; } - .row.gtr-50.gtr-uniform { - margin-top: -1.5rem; } - .row.gtr-50.gtr-uniform > * { - padding-top: 1.5rem; } -.row { - margin-top: 0; - margin-left: -3rem; } - .row > * { - padding: 0 0 0 3rem; } - .row.gtr-uniform { - margin-top: -3rem; } - .row.gtr-uniform > * { - padding-top: 3rem; } -.row.gtr-150 { - margin-top: 0; - margin-left: -4.5rem; } - .row.gtr-150 > * { - padding: 0 0 0 4.5rem; } - .row.gtr-150.gtr-uniform { - margin-top: -4.5rem; } - .row.gtr-150.gtr-uniform > * { - padding-top: 4.5rem; } -.row.gtr-200 { - margin-top: 0; - margin-left: -6rem; } - .row.gtr-200 > * { - padding: 0 0 0 6rem; } - .row.gtr-200.gtr-uniform { - margin-top: -6rem; } - .row.gtr-200.gtr-uniform > * { - padding-top: 6rem; } - -@media screen and (max-width: 1680px) { - .row { - display: flex; - flex-wrap: wrap; - box-sizing: border-box; } - .row > * { - box-sizing: border-box; } - .row.gtr-uniform > * > :last-child { - margin-bottom: 0; } - - .row > .imp-xlarge { - order: -1; } - .row > .col-1-xlarge { - width: 8.3333333333%; } - .row > .off-1-xlarge { - margin-left: 8.3333333333%; } - .row > .col-2-xlarge { - width: 16.6666666667%; } - .row > .off-2-xlarge { - margin-left: 16.6666666667%; } - .row > .col-3-xlarge { - width: 25%; } - .row > .off-3-xlarge { - margin-left: 25%; } - .row > .col-4-xlarge { - width: 33.3333333333%; } - .row > .off-4-xlarge { - margin-left: 33.3333333333%; } - .row > .col-5-xlarge { - width: 41.6666666667%; } - .row > .off-5-xlarge { - margin-left: 41.6666666667%; } - .row > .col-6-xlarge { - width: 50%; } - .row > .off-6-xlarge { - margin-left: 50%; } - .row > .col-7-xlarge { - width: 58.3333333333%; } - .row > .off-7-xlarge { - margin-left: 58.3333333333%; } - .row > .col-8-xlarge { - width: 66.6666666667%; } - .row > .off-8-xlarge { - margin-left: 66.6666666667%; } - .row > .col-9-xlarge { - width: 75%; } - .row > .off-9-xlarge { - margin-left: 75%; } - .row > .col-10-xlarge { - width: 83.3333333333%; } - .row > .off-10-xlarge { - margin-left: 83.3333333333%; } - .row > .col-11-xlarge { - width: 91.6666666667%; } - .row > .off-11-xlarge { - margin-left: 91.6666666667%; } - .row > .col-12-xlarge { - width: 100%; } - .row > .off-12-xlarge { - margin-left: 100%; } - .row.gtr-0 { - margin-top: 0; - margin-left: 0rem; } - .row.gtr-0 > * { - padding: 0 0 0 0rem; } - .row.gtr-0.gtr-uniform { - margin-top: 0rem; } - .row.gtr-0.gtr-uniform > * { - padding-top: 0rem; } - .row.gtr-25 { - margin-top: 0; - margin-left: -0.75rem; } - .row.gtr-25 > * { - padding: 0 0 0 0.75rem; } - .row.gtr-25.gtr-uniform { - margin-top: -0.75rem; } - .row.gtr-25.gtr-uniform > * { - padding-top: 0.75rem; } - .row.gtr-50 { - margin-top: 0; - margin-left: -1.5rem; } - .row.gtr-50 > * { - padding: 0 0 0 1.5rem; } - .row.gtr-50.gtr-uniform { - margin-top: -1.5rem; } - .row.gtr-50.gtr-uniform > * { - padding-top: 1.5rem; } - .row { - margin-top: 0; - margin-left: -3rem; } - .row > * { - padding: 0 0 0 3rem; } - .row.gtr-uniform { - margin-top: -3rem; } - .row.gtr-uniform > * { - padding-top: 3rem; } - .row.gtr-150 { - margin-top: 0; - margin-left: -4.5rem; } - .row.gtr-150 > * { - padding: 0 0 0 4.5rem; } - .row.gtr-150.gtr-uniform { - margin-top: -4.5rem; } - .row.gtr-150.gtr-uniform > * { - padding-top: 4.5rem; } - .row.gtr-200 { - margin-top: 0; - margin-left: -6rem; } - .row.gtr-200 > * { - padding: 0 0 0 6rem; } - .row.gtr-200.gtr-uniform { - margin-top: -6rem; } - .row.gtr-200.gtr-uniform > * { - padding-top: 6rem; } } -@media screen and (max-width: 1280px) { - .row { - display: flex; - flex-wrap: wrap; - box-sizing: border-box; } - .row > * { - box-sizing: border-box; } - .row.gtr-uniform > * > :last-child { - margin-bottom: 0; } - - .row > .imp-large { - order: -1; } - .row > .col-1-large { - width: 8.3333333333%; } - .row > .off-1-large { - margin-left: 8.3333333333%; } - .row > .col-2-large { - width: 16.6666666667%; } - .row > .off-2-large { - margin-left: 16.6666666667%; } - .row > .col-3-large { - width: 25%; } - .row > .off-3-large { - margin-left: 25%; } - .row > .col-4-large { - width: 33.3333333333%; } - .row > .off-4-large { - margin-left: 33.3333333333%; } - .row > .col-5-large { - width: 41.6666666667%; } - .row > .off-5-large { - margin-left: 41.6666666667%; } - .row > .col-6-large { - width: 50%; } - .row > .off-6-large { - margin-left: 50%; } - .row > .col-7-large { - width: 58.3333333333%; } - .row > .off-7-large { - margin-left: 58.3333333333%; } - .row > .col-8-large { - width: 66.6666666667%; } - .row > .off-8-large { - margin-left: 66.6666666667%; } - .row > .col-9-large { - width: 75%; } - .row > .off-9-large { - margin-left: 75%; } - .row > .col-10-large { - width: 83.3333333333%; } - .row > .off-10-large { - margin-left: 83.3333333333%; } - .row > .col-11-large { - width: 91.6666666667%; } - .row > .off-11-large { - margin-left: 91.6666666667%; } - .row > .col-12-large { - width: 100%; } - .row > .off-12-large { - margin-left: 100%; } - .row.gtr-0 { - margin-top: 0; - margin-left: 0rem; } - .row.gtr-0 > * { - padding: 0 0 0 0rem; } - .row.gtr-0.gtr-uniform { - margin-top: 0rem; } - .row.gtr-0.gtr-uniform > * { - padding-top: 0rem; } - .row.gtr-25 { - margin-top: 0; - margin-left: -0.375rem; } - .row.gtr-25 > * { - padding: 0 0 0 0.375rem; } - .row.gtr-25.gtr-uniform { - margin-top: -0.375rem; } - .row.gtr-25.gtr-uniform > * { - padding-top: 0.375rem; } - .row.gtr-50 { - margin-top: 0; - margin-left: -0.75rem; } - .row.gtr-50 > * { - padding: 0 0 0 0.75rem; } - .row.gtr-50.gtr-uniform { - margin-top: -0.75rem; } - .row.gtr-50.gtr-uniform > * { - padding-top: 0.75rem; } - .row { - margin-top: 0; - margin-left: -1.5rem; } - .row > * { - padding: 0 0 0 1.5rem; } - .row.gtr-uniform { - margin-top: -1.5rem; } - .row.gtr-uniform > * { - padding-top: 1.5rem; } - .row.gtr-150 { - margin-top: 0; - margin-left: -2.25rem; } - .row.gtr-150 > * { - padding: 0 0 0 2.25rem; } - .row.gtr-150.gtr-uniform { - margin-top: -2.25rem; } - .row.gtr-150.gtr-uniform > * { - padding-top: 2.25rem; } - .row.gtr-200 { - margin-top: 0; - margin-left: -3rem; } - .row.gtr-200 > * { - padding: 0 0 0 3rem; } - .row.gtr-200.gtr-uniform { - margin-top: -3rem; } - .row.gtr-200.gtr-uniform > * { - padding-top: 3rem; } } -@media screen and (max-width: 980px) { - .row { - display: flex; - flex-wrap: wrap; - box-sizing: border-box; } - .row > * { - box-sizing: border-box; } - .row.gtr-uniform > * > :last-child { - margin-bottom: 0; } - - .row > .imp-medium { - order: -1; } - .row > .col-1-medium { - width: 8.3333333333%; } - .row > .off-1-medium { - margin-left: 8.3333333333%; } - .row > .col-2-medium { - width: 16.6666666667%; } - .row > .off-2-medium { - margin-left: 16.6666666667%; } - .row > .col-3-medium { - width: 25%; } - .row > .off-3-medium { - margin-left: 25%; } - .row > .col-4-medium { - width: 33.3333333333%; } - .row > .off-4-medium { - margin-left: 33.3333333333%; } - .row > .col-5-medium { - width: 41.6666666667%; } - .row > .off-5-medium { - margin-left: 41.6666666667%; } - .row > .col-6-medium { - width: 50%; } - .row > .off-6-medium { - margin-left: 50%; } - .row > .col-7-medium { - width: 58.3333333333%; } - .row > .off-7-medium { - margin-left: 58.3333333333%; } - .row > .col-8-medium { - width: 66.6666666667%; } - .row > .off-8-medium { - margin-left: 66.6666666667%; } - .row > .col-9-medium { - width: 75%; } - .row > .off-9-medium { - margin-left: 75%; } - .row > .col-10-medium { - width: 83.3333333333%; } - .row > .off-10-medium { - margin-left: 83.3333333333%; } - .row > .col-11-medium { - width: 91.6666666667%; } - .row > .off-11-medium { - margin-left: 91.6666666667%; } - .row > .col-12-medium { - width: 100%; } - .row > .off-12-medium { - margin-left: 100%; } - .row.gtr-0 { - margin-top: 0; - margin-left: 0rem; } - .row.gtr-0 > * { - padding: 0 0 0 0rem; } - .row.gtr-0.gtr-uniform { - margin-top: 0rem; } - .row.gtr-0.gtr-uniform > * { - padding-top: 0rem; } - .row.gtr-25 { - margin-top: 0; - margin-left: -0.375rem; } - .row.gtr-25 > * { - padding: 0 0 0 0.375rem; } - .row.gtr-25.gtr-uniform { - margin-top: -0.375rem; } - .row.gtr-25.gtr-uniform > * { - padding-top: 0.375rem; } - .row.gtr-50 { - margin-top: 0; - margin-left: -0.75rem; } - .row.gtr-50 > * { - padding: 0 0 0 0.75rem; } - .row.gtr-50.gtr-uniform { - margin-top: -0.75rem; } - .row.gtr-50.gtr-uniform > * { - padding-top: 0.75rem; } - .row { - margin-top: 0; - margin-left: -1.5rem; } - .row > * { - padding: 0 0 0 1.5rem; } - .row.gtr-uniform { - margin-top: -1.5rem; } - .row.gtr-uniform > * { - padding-top: 1.5rem; } - .row.gtr-150 { - margin-top: 0; - margin-left: -2.25rem; } - .row.gtr-150 > * { - padding: 0 0 0 2.25rem; } - .row.gtr-150.gtr-uniform { - margin-top: -2.25rem; } - .row.gtr-150.gtr-uniform > * { - padding-top: 2.25rem; } - .row.gtr-200 { - margin-top: 0; - margin-left: -3rem; } - .row.gtr-200 > * { - padding: 0 0 0 3rem; } - .row.gtr-200.gtr-uniform { - margin-top: -3rem; } - .row.gtr-200.gtr-uniform > * { - padding-top: 3rem; } } -@media screen and (max-width: 736px) { - .row { - display: flex; - flex-wrap: wrap; - box-sizing: border-box; } - .row > * { - box-sizing: border-box; } - .row.gtr-uniform > * > :last-child { - margin-bottom: 0; } - - .row > .imp-small { - order: -1; } - .row > .col-1-small { - width: 8.3333333333%; } - .row > .off-1-small { - margin-left: 8.3333333333%; } - .row > .col-2-small { - width: 16.6666666667%; } - .row > .off-2-small { - margin-left: 16.6666666667%; } - .row > .col-3-small { - width: 25%; } - .row > .off-3-small { - margin-left: 25%; } - .row > .col-4-small { - width: 33.3333333333%; } - .row > .off-4-small { - margin-left: 33.3333333333%; } - .row > .col-5-small { - width: 41.6666666667%; } - .row > .off-5-small { - margin-left: 41.6666666667%; } - .row > .col-6-small { - width: 50%; } - .row > .off-6-small { - margin-left: 50%; } - .row > .col-7-small { - width: 58.3333333333%; } - .row > .off-7-small { - margin-left: 58.3333333333%; } - .row > .col-8-small { - width: 66.6666666667%; } - .row > .off-8-small { - margin-left: 66.6666666667%; } - .row > .col-9-small { - width: 75%; } - .row > .off-9-small { - margin-left: 75%; } - .row > .col-10-small { - width: 83.3333333333%; } - .row > .off-10-small { - margin-left: 83.3333333333%; } - .row > .col-11-small { - width: 91.6666666667%; } - .row > .off-11-small { - margin-left: 91.6666666667%; } - .row > .col-12-small { - width: 100%; } - .row > .off-12-small { - margin-left: 100%; } - .row.gtr-0 { - margin-top: 0; - margin-left: 0rem; } - .row.gtr-0 > * { - padding: 0 0 0 0rem; } - .row.gtr-0.gtr-uniform { - margin-top: 0rem; } - .row.gtr-0.gtr-uniform > * { - padding-top: 0rem; } - .row.gtr-25 { - margin-top: 0; - margin-left: -0.3125rem; } - .row.gtr-25 > * { - padding: 0 0 0 0.3125rem; } - .row.gtr-25.gtr-uniform { - margin-top: -0.3125rem; } - .row.gtr-25.gtr-uniform > * { - padding-top: 0.3125rem; } - .row.gtr-50 { - margin-top: 0; - margin-left: -0.625rem; } - .row.gtr-50 > * { - padding: 0 0 0 0.625rem; } - .row.gtr-50.gtr-uniform { - margin-top: -0.625rem; } - .row.gtr-50.gtr-uniform > * { - padding-top: 0.625rem; } - .row { - margin-top: 0; - margin-left: -1.25rem; } - .row > * { - padding: 0 0 0 1.25rem; } - .row.gtr-uniform { - margin-top: -1.25rem; } - .row.gtr-uniform > * { - padding-top: 1.25rem; } - .row.gtr-150 { - margin-top: 0; - margin-left: -1.875rem; } - .row.gtr-150 > * { - padding: 0 0 0 1.875rem; } - .row.gtr-150.gtr-uniform { - margin-top: -1.875rem; } - .row.gtr-150.gtr-uniform > * { - padding-top: 1.875rem; } - .row.gtr-200 { - margin-top: 0; - margin-left: -2.5rem; } - .row.gtr-200 > * { - padding: 0 0 0 2.5rem; } - .row.gtr-200.gtr-uniform { - margin-top: -2.5rem; } - .row.gtr-200.gtr-uniform > * { - padding-top: 2.5rem; } } -@media screen and (max-width: 480px) { - .row { - display: flex; - flex-wrap: wrap; - box-sizing: border-box; } - .row > * { - box-sizing: border-box; } - .row.gtr-uniform > * > :last-child { - margin-bottom: 0; } - - .row > .imp-xsmall { - order: -1; } - .row > .col-1-xsmall { - width: 8.3333333333%; } - .row > .off-1-xsmall { - margin-left: 8.3333333333%; } - .row > .col-2-xsmall { - width: 16.6666666667%; } - .row > .off-2-xsmall { - margin-left: 16.6666666667%; } - .row > .col-3-xsmall { - width: 25%; } - .row > .off-3-xsmall { - margin-left: 25%; } - .row > .col-4-xsmall { - width: 33.3333333333%; } - .row > .off-4-xsmall { - margin-left: 33.3333333333%; } - .row > .col-5-xsmall { - width: 41.6666666667%; } - .row > .off-5-xsmall { - margin-left: 41.6666666667%; } - .row > .col-6-xsmall { - width: 50%; } - .row > .off-6-xsmall { - margin-left: 50%; } - .row > .col-7-xsmall { - width: 58.3333333333%; } - .row > .off-7-xsmall { - margin-left: 58.3333333333%; } - .row > .col-8-xsmall { - width: 66.6666666667%; } - .row > .off-8-xsmall { - margin-left: 66.6666666667%; } - .row > .col-9-xsmall { - width: 75%; } - .row > .off-9-xsmall { - margin-left: 75%; } - .row > .col-10-xsmall { - width: 83.3333333333%; } - .row > .off-10-xsmall { - margin-left: 83.3333333333%; } - .row > .col-11-xsmall { - width: 91.6666666667%; } - .row > .off-11-xsmall { - margin-left: 91.6666666667%; } - .row > .col-12-xsmall { - width: 100%; } - .row > .off-12-xsmall { - margin-left: 100%; } - .row.gtr-0 { - margin-top: 0; - margin-left: 0rem; } - .row.gtr-0 > * { - padding: 0 0 0 0rem; } - .row.gtr-0.gtr-uniform { - margin-top: 0rem; } - .row.gtr-0.gtr-uniform > * { - padding-top: 0rem; } - .row.gtr-25 { - margin-top: 0; - margin-left: -0.3125rem; } - .row.gtr-25 > * { - padding: 0 0 0 0.3125rem; } - .row.gtr-25.gtr-uniform { - margin-top: -0.3125rem; } - .row.gtr-25.gtr-uniform > * { - padding-top: 0.3125rem; } - .row.gtr-50 { - margin-top: 0; - margin-left: -0.625rem; } - .row.gtr-50 > * { - padding: 0 0 0 0.625rem; } - .row.gtr-50.gtr-uniform { - margin-top: -0.625rem; } - .row.gtr-50.gtr-uniform > * { - padding-top: 0.625rem; } - .row { - margin-top: 0; - margin-left: -1.25rem; } - .row > * { - padding: 0 0 0 1.25rem; } - .row.gtr-uniform { - margin-top: -1.25rem; } - .row.gtr-uniform > * { - padding-top: 1.25rem; } - .row.gtr-150 { - margin-top: 0; - margin-left: -1.875rem; } - .row.gtr-150 > * { - padding: 0 0 0 1.875rem; } - .row.gtr-150.gtr-uniform { - margin-top: -1.875rem; } - .row.gtr-150.gtr-uniform > * { - padding-top: 1.875rem; } - .row.gtr-200 { - margin-top: 0; - margin-left: -2.5rem; } - .row.gtr-200 > * { - padding: 0 0 0 2.5rem; } - .row.gtr-200.gtr-uniform { - margin-top: -2.5rem; } - .row.gtr-200.gtr-uniform > * { - padding-top: 2.5rem; } } -/* Icon */ -.icon { - text-decoration: none; - border-bottom: none; - position: relative; } - .icon:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - .icon > .label { - display: none; } - -/* Icons */ -ul.icons { - cursor: default; - list-style: none; - padding-left: 0; } - ul.icons li { - display: inline-block; - padding: 0 1rem 0 0; } - ul.icons li:last-child { - padding-right: 0; } - ul.icons li .icon:before { - font-size: 2rem; } - -/* Image */ -.image { - border-radius: 4px; - border: 0; - display: inline-block; - position: relative; } - .image img { - border-radius: 4px; - display: block; } - .image.left, .image.right { - max-width: 40%; } - .image.left img, .image.right img { - width: 100%; } - .image.left { - float: left; - margin: 0 2rem 2rem 0; - top: 0.25rem; } - .image.right { - float: right; - margin: 0 0 2rem 2rem; - top: 0.25rem; } - .image.fit { - display: block; - margin: 0 0 2rem 0; - width: 100%; } - .image.fit img { - width: 100%; } - .image.main { - display: block; - margin: 0 0 3rem 0; - width: 100%; } - .image.main img { - width: 100%; } - -/* Wrapper */ -.wrapper { - padding: 8rem 0 6rem 0 ; - position: relative; - z-index: 1; } - @media screen and (max-width: 1280px) { - .wrapper { - padding: 4rem 0 2rem 0 ; } } - @media screen and (max-width: 736px) { - .wrapper { - padding: 3rem 0 1rem 0 ; } } - @media screen and (max-width: 480px) { - .wrapper { - padding: 2rem 0 0.1rem 0 ; } } - -/* Banner */ -#banner { - -ms-flex-align: center; - -ms-flex-pack: center; - background-color: #111111; - color: rgba(255, 255, 255, 0.5); - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-justify-content: center; - -webkit-justify-content: center; - -ms-justify-content: center; - justify-content: center; - background-image: url("../../images/banner.jpg"); - background-position: center; - background-repeat: no-repeat; - background-size: cover; - border-top: 0; - display: -ms-flexbox; - height: 35rem !important; - min-height: 35rem; - overflow: hidden; - position: relative; - text-align: center; - width: 100%; } - #banner input, #banner select, #banner textarea { - color: #ffffff; } - #banner a { - color: #ce1b28; } - #banner strong, #banner b { - color: #ffffff; } - #banner h1, #banner h2, #banner h3, #banner h4, #banner h5, #banner h6 { - color: #ffffff; } - #banner blockquote { - border-left-color: rgba(255, 255, 255, 0.25); } - #banner code { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #banner hr { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #banner input[type="submit"], - #banner input[type="reset"], - #banner input[type="button"], - #banner button, - #banner .button { - background-color: transparent; - box-shadow: inset 0 0 0 1px #ffffff; - color: #ffffff !important; } - #banner input[type="submit"]:hover, - #banner input[type="reset"]:hover, - #banner input[type="button"]:hover, - #banner button:hover, - #banner .button:hover { - box-shadow: inset 0 0 0 1px #ce1b28; - color: #ce1b28 !important; } - #banner input[type="submit"]:hover:active, - #banner input[type="reset"]:hover:active, - #banner input[type="button"]:hover:active, - #banner button:hover:active, - #banner .button:hover:active { - background-color: rgba(206, 27, 40, 0.25); } - #banner input[type="submit"].primary, - #banner input[type="reset"].primary, - #banner input[type="button"].primary, - #banner button.primary, - #banner .button.primary { - box-shadow: none; - background-color: #ce1b28; - color: #ffffff !important; } - #banner input[type="submit"].primary:hover, - #banner input[type="reset"].primary:hover, - #banner input[type="button"].primary:hover, - #banner button.primary:hover, - #banner .button.primary:hover { - background-color: #e2212f; - box-shadow: none; } - #banner input[type="submit"].primary:hover:active, - #banner input[type="reset"].primary:hover:active, - #banner input[type="button"].primary:hover:active, - #banner button.primary:hover:active, - #banner .button.primary:hover:active { - background-color: #b71824; } - #banner label { - color: #ffffff; } - #banner input[type="text"], - #banner input[type="password"], - #banner input[type="email"], - #banner input[type="tel"], - #banner input[type="search"], - #banner input[type="url"], - #banner select, - #banner textarea { - background-color: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #banner input[type="text"]:focus, - #banner input[type="password"]:focus, - #banner input[type="email"]:focus, - #banner input[type="tel"]:focus, - #banner input[type="search"]:focus, - #banner input[type="url"]:focus, - #banner select:focus, - #banner textarea:focus { - border-color: #ce1b28; - box-shadow: 0 0 0 1px #ce1b28; } - #banner select { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(255, 255, 255, 0.25)' /%3E%3C/svg%3E"); } - #banner select option { - color: rgba(255, 255, 255, 0.5); - background-color: #111111; } - #banner input[type="checkbox"] + label, - #banner input[type="radio"] + label { - color: rgba(255, 255, 255, 0.5); } - #banner input[type="checkbox"] + label:before, - #banner input[type="radio"] + label:before { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #banner input[type="checkbox"]:checked + label:before, - #banner input[type="radio"]:checked + label:before { - background-color: #ce1b28; - border-color: #ce1b28; - color: #ffffff; } - #banner input[type="checkbox"]:focus + label:before, - #banner input[type="radio"]:focus + label:before { - border-color: #ce1b28; - box-shadow: 0 0 0 1px #ce1b28; } - #banner ::-webkit-input-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #banner :-moz-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #banner ::-moz-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #banner :-ms-input-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #banner ul.alt li { - border-top-color: rgba(255, 255, 255, 0.25); } - #banner table tbody tr { - border-color: rgba(255, 255, 255, 0.25); } - #banner table tbody tr:nth-child(2n + 1) { - background-color: rgba(255, 255, 255, 0.075); } - #banner table th { - color: #ffffff; } - #banner table thead { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #banner table tfoot { - border-top-color: rgba(255, 255, 255, 0.25); } - #banner table.alt tbody tr td { - border-color: rgba(255, 255, 255, 0.25); } - #banner .highlights .content { - background: #111111; - box-shadow: 0px 0px 4px 1px rgba(255, 255, 255, 0.025); } - #banner .testimonials .content { - background: #111111; - box-shadow: 0px 0px 4px 1px rgba(255, 255, 255, 0.025); } - #banner .testimonials .content .credit strong { - color: #ce1b28; } - #banner > .inner { - -moz-transform: scale(1.0); - -webkit-transform: scale(1.0); - -ms-transform: scale(1.0); - transform: scale(1.0); - -moz-transition: opacity 1s ease, -moz-transform 1s ease; - -webkit-transition: opacity 1s ease, -webkit-transform 1s ease; - -ms-transition: opacity 1s ease, -ms-transform 1s ease; - transition: opacity 1s ease, transform 1s ease; - opacity: 1; - position: relative; - z-index: 3; } - #banner > .inner > :last-child { - margin-bottom: 0; } - #banner h1 { - font-size: 4rem; - margin-bottom: 1rem; } - #banner p { - font-size: 1.5rem; } - #banner a { - color: rgba(255, 255, 255, 0.5); - text-decoration: none; } - #banner a:hover { - color: #ffffff; } - #banner video { - -moz-transform: translateX(50%) translateY(50%); - -webkit-transform: translateX(50%) translateY(50%); - -ms-transform: translateX(50%) translateY(50%); - transform: translateX(50%) translateY(50%); - bottom: 50%; - height: auto; - min-height: 100%; - min-width: 100%; - overflow: hidden; - position: absolute; - right: 50%; - width: auto; } - #banner:before { - -moz-transition: opacity 3s ease; - -webkit-transition: opacity 3s ease; - -ms-transition: opacity 3s ease; - transition: opacity 3s ease; - -moz-transition-delay: 1.25s; - -webkit-transition-delay: 1.25s; - -ms-transition-delay: 1.25s; - transition-delay: 1.25s; - background: #111111; - content: ''; - display: block; - height: 100%; - left: 0; - opacity: 0.45; - position: absolute; - top: 0; - width: 100%; - z-index: 1; } - #banner:after { - background: linear-gradient(135deg, #ce1b28 0%, #111111 74%); - content: ' '; - display: block; - height: 100%; - left: 0; - opacity: 0.6; - position: absolute; - top: 0; - width: 100%; - z-index: 1; } - #banner.small { - height: 30vh !important; - min-height: 30vh; } - @media screen and (max-width: 1280px) { - #banner video { - display: none; } } - @media screen and (max-width: 736px) { - #banner { - height: auto !important; - min-height: 0; - padding: 4rem 2rem 4rem 2rem; } - #banner .inner { - width: 100%; } - #banner h1 { - font-size: 1.75rem; - margin-bottom: 0.5rem; - padding-bottom: 0; } - #banner p { - font-size: 1.25rem; } - #banner br { - display: none; } - #banner .button { - width: 100%; } } - @media screen and (max-width: 480px) { - #banner p { - font-size: 1rem; } } - body.is-preload #banner .inner { - -moz-transform: scale(0.99); - -webkit-transform: scale(0.99); - -ms-transform: scale(0.99); - transform: scale(0.99); - opacity: 0; } - body.is-preload #banner:before { - opacity: 1; } - -/* CTA */ -#cta { - background-color: #ce1b28; - color: rgba(255, 255, 255, 0.75); - background-attachment: fixed; - background-image: linear-gradient(rgba(206, 27, 40, 0.25), rgba(206, 27, 40, 0.25)), url(../../images/cta01.jpg); - background-position: bottom; - background-repeat: no-repeat; - background-size: cover; - position: relative; - text-align: center; - z-index: 1; } - #cta input, #cta select, #cta textarea { - color: #ffffff; } - #cta a { - color: #ffffff; } - #cta strong, #cta b { - color: #ffffff; } - #cta h1, #cta h2, #cta h3, #cta h4, #cta h5, #cta h6 { - color: #ffffff; } - #cta blockquote { - border-left-color: rgba(255, 255, 255, 0.25); } - #cta code { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #cta hr { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #cta input[type="submit"], - #cta input[type="reset"], - #cta input[type="button"], - #cta button, - #cta .button { - background-color: transparent; - box-shadow: inset 0 0 0 1px #ffffff; - color: #ffffff !important; } - #cta input[type="submit"]:hover, - #cta input[type="reset"]:hover, - #cta input[type="button"]:hover, - #cta button:hover, - #cta .button:hover { - background-color: rgba(255, 255, 255, 0.1); } - #cta input[type="submit"]:hover:active, - #cta input[type="reset"]:hover:active, - #cta input[type="button"]:hover:active, - #cta button:hover:active, - #cta .button:hover:active { - background-color: rgba(255, 255, 255, 0.25); } - #cta input[type="submit"].primary, - #cta input[type="reset"].primary, - #cta input[type="button"].primary, - #cta button.primary, - #cta .button.primary { - box-shadow: none; - background-color: #ffffff; - color: #ce1b28 !important; } - #cta input[type="submit"].primary:hover, - #cta input[type="reset"].primary:hover, - #cta input[type="button"].primary:hover, - #cta button.primary:hover, - #cta .button.primary:hover { - background-color: rgba(255, 255, 255, 0.875); - box-shadow: none; } - #cta input[type="submit"].primary:hover:active, - #cta input[type="reset"].primary:hover:active, - #cta input[type="button"].primary:hover:active, - #cta button.primary:hover:active, - #cta .button.primary:hover:active { - background-color: rgba(255, 255, 255, 0.5); } - #cta label { - color: #ffffff; } - #cta input[type="text"], - #cta input[type="password"], - #cta input[type="email"], - #cta input[type="tel"], - #cta input[type="search"], - #cta input[type="url"], - #cta select, - #cta textarea { - background-color: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #cta input[type="text"]:focus, - #cta input[type="password"]:focus, - #cta input[type="email"]:focus, - #cta input[type="tel"]:focus, - #cta input[type="search"]:focus, - #cta input[type="url"]:focus, - #cta select:focus, - #cta textarea:focus { - border-color: #ffffff; - box-shadow: 0 0 0 1px #ffffff; } - #cta select { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(255, 255, 255, 0.25)' /%3E%3C/svg%3E"); } - #cta select option { - color: rgba(255, 255, 255, 0.75); - background-color: #ce1b28; } - #cta input[type="checkbox"] + label, - #cta input[type="radio"] + label { - color: rgba(255, 255, 255, 0.75); } - #cta input[type="checkbox"] + label:before, - #cta input[type="radio"] + label:before { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #cta input[type="checkbox"]:checked + label:before, - #cta input[type="radio"]:checked + label:before { - background-color: #ffffff; - border-color: #ffffff; - color: #ce1b28; } - #cta input[type="checkbox"]:focus + label:before, - #cta input[type="radio"]:focus + label:before { - border-color: #ffffff; - box-shadow: 0 0 0 1px #ffffff; } - #cta ::-webkit-input-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #cta :-moz-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #cta ::-moz-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #cta :-ms-input-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #cta ul.alt li { - border-top-color: rgba(255, 255, 255, 0.25); } - #cta table tbody tr { - border-color: rgba(255, 255, 255, 0.25); } - #cta table tbody tr:nth-child(2n + 1) { - background-color: rgba(255, 255, 255, 0.075); } - #cta table th { - color: #ffffff; } - #cta table thead { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #cta table tfoot { - border-top-color: rgba(255, 255, 255, 0.25); } - #cta table.alt tbody tr td { - border-color: rgba(255, 255, 255, 0.25); } - #cta .highlights .content { - background: #ce1b28; - box-shadow: 0px 0px 4px 1px rgba(255, 255, 255, 0.025); } - #cta .testimonials .content { - background: #ce1b28; - box-shadow: 0px 0px 4px 1px rgba(255, 255, 255, 0.025); } - #cta .testimonials .content .credit strong { - color: #ce1b28; } - #cta .inner { - position: relative; - z-index: 3; } - @media screen and (max-width: 980px) { - #cta { - background-attachment: scroll; } } - -/* Footer */ -#footer { - background-color: #111111; - color: rgba(255, 255, 255, 0.5); - padding: 1rem 0; } - #footer input, #footer select, #footer textarea { - color: #ffffff; } - #footer a { - color: #ce1b28; } - #footer strong, #footer b { - color: #ffffff; } - #footer h1, #footer h2, #footer h3, #footer h4, #footer h5, #footer h6 { - color: #ffffff; } - #footer blockquote { - border-left-color: rgba(255, 255, 255, 0.25); } - #footer code { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #footer hr { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #footer input[type="submit"], - #footer input[type="reset"], - #footer input[type="button"], - #footer button, - #footer .button { - background-color: transparent; - box-shadow: inset 0 0 0 1px #ffffff; - color: #ffffff !important; } - #footer input[type="submit"]:hover, - #footer input[type="reset"]:hover, - #footer input[type="button"]:hover, - #footer button:hover, - #footer .button:hover { - box-shadow: inset 0 0 0 1px #ce1b28; - color: #ce1b28 !important; } - #footer input[type="submit"]:hover:active, - #footer input[type="reset"]:hover:active, - #footer input[type="button"]:hover:active, - #footer button:hover:active, - #footer .button:hover:active { - background-color: rgba(206, 27, 40, 0.25); } - #footer input[type="submit"].primary, - #footer input[type="reset"].primary, - #footer input[type="button"].primary, - #footer button.primary, - #footer .button.primary { - box-shadow: none; - background-color: #ce1b28; - color: #ffffff !important; } - #footer input[type="submit"].primary:hover, - #footer input[type="reset"].primary:hover, - #footer input[type="button"].primary:hover, - #footer button.primary:hover, - #footer .button.primary:hover { - background-color: #e2212f; - box-shadow: none; } - #footer input[type="submit"].primary:hover:active, - #footer input[type="reset"].primary:hover:active, - #footer input[type="button"].primary:hover:active, - #footer button.primary:hover:active, - #footer .button.primary:hover:active { - background-color: #b71824; } - #footer label { - color: #ffffff; } - #footer input[type="text"], - #footer input[type="password"], - #footer input[type="email"], - #footer input[type="tel"], - #footer input[type="search"], - #footer input[type="url"], - #footer select, - #footer textarea { - background-color: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #footer input[type="text"]:focus, - #footer input[type="password"]:focus, - #footer input[type="email"]:focus, - #footer input[type="tel"]:focus, - #footer input[type="search"]:focus, - #footer input[type="url"]:focus, - #footer select:focus, - #footer textarea:focus { - border-color: #ce1b28; - box-shadow: 0 0 0 1px #ce1b28; } - #footer select { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(255, 255, 255, 0.25)' /%3E%3C/svg%3E"); } - #footer select option { - color: rgba(255, 255, 255, 0.5); - background-color: #111111; } - #footer input[type="checkbox"] + label, - #footer input[type="radio"] + label { - color: rgba(255, 255, 255, 0.5); } - #footer input[type="checkbox"] + label:before, - #footer input[type="radio"] + label:before { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #footer input[type="checkbox"]:checked + label:before, - #footer input[type="radio"]:checked + label:before { - background-color: #ce1b28; - border-color: #ce1b28; - color: #ffffff; } - #footer input[type="checkbox"]:focus + label:before, - #footer input[type="radio"]:focus + label:before { - border-color: #ce1b28; - box-shadow: 0 0 0 1px #ce1b28; } - #footer ::-webkit-input-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #footer :-moz-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #footer ::-moz-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #footer :-ms-input-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #footer ul.alt li { - border-top-color: rgba(255, 255, 255, 0.25); } - #footer table tbody tr { - border-color: rgba(255, 255, 255, 0.25); } - #footer table tbody tr:nth-child(2n + 1) { - background-color: rgba(255, 255, 255, 0.075); } - #footer table th { - color: #ffffff; } - #footer table thead { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #footer table tfoot { - border-top-color: rgba(255, 255, 255, 0.25); } - #footer table.alt tbody tr td { - border-color: rgba(255, 255, 255, 0.25); } - #footer .highlights .content { - background: #111111; - box-shadow: 0px 0px 4px 1px rgba(255, 255, 255, 0.025); } - #footer .testimonials .content { - background: #111111; - box-shadow: 0px 0px 4px 1px rgba(255, 255, 255, 0.025); } - #footer .testimonials .content .credit strong { - color: #ce1b28; } - #footer a { - color: rgba(255, 255, 255, 0.5); - text-decoration: none; } - #footer a:hover { - color: #ce1b28; } - #footer .content { - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; } - #footer .content section { - width: 25%; } - #footer .content section:first-child { - width: 50%; - padding-right: 4rem; } - #footer .content section:last-child { - padding-left: 4rem; } - #footer .copyright { - border-top: 1px solid; - font-size: 0.8rem; - opacity: 0.5; - padding: 2rem 0; - text-align: center; } - @media screen and (max-width: 1280px) { - #footer { - padding: 4rem 0 2rem 0 ; } } - @media screen and (max-width: 980px) { - #footer .content { - -moz-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - #footer .content section { - width: 50%; } - #footer .content section:first-child { - width: 100%; - padding-right: 0; } } - @media screen and (max-width: 736px) { - #footer { - padding: 3rem 0 1rem 0 ; } - #footer .content section { - width: 100%; } - #footer .content section:last-child { - padding-left: 0; } } - @media screen and (max-width: 480px) { - #footer { - padding: 2rem 0 0.1rem 0 ; } } - -/* Header */ -body { - padding-top: 3.25rem; } - body:before { - content: ' '; - background-image: url(../../images/bg.jpg); - background-size: cover; - background-repeat: no-repeat; - background-attachment: fixed; - display: block; - position: fixed; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: -1; - opacity: 0.05; } - -#header { - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-justify-content: space-between; - -webkit-justify-content: space-between; - -ms-justify-content: space-between; - justify-content: space-between; - background: #111111; - color: rgba(255, 255, 255, 0.5); - cursor: default; - height: 3.25rem; - left: 0; - line-height: 3.25rem; - position: fixed; - top: 0; - width: 100%; - z-index: 10001; } - #header > .logo { - color: #ffffff; - font-size: 1rem; - height: inherit; - line-height: inherit; - padding: 0 1.25rem; - overflow: hidden; - text-decoration: none; } - #header > .logo > a { - color: #ffffff; - font-weight: 600; - text-decoration: none; } - #header > .logo > a:hover { - text-decoration: underline; } - #header > nav > a { - color: inherit; - display: inline-block; - padding: 0 0.75rem; - text-decoration: none; } - #header > nav > a:hover { - color: #ffffff; } - #header > nav > a[href="#menu"] { - text-decoration: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - #header > nav > a[href="#menu"]:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - #header > nav > a[href="#menu"]:before { - content: '\f0c9'; - margin: 0 0.5rem 0 0; } - #header > nav > a + a[href="#menu"]:last-child { - border-left: solid 1px rgba(255, 255, 255, 0.25); - margin-left: 0.5rem; - padding-left: 1.25rem; } - #header > nav > a:last-child { - padding-right: 1.25rem; } - @media screen and (max-width: 736px) { - #header > nav > a { - padding: 0 0.5rem; } - #header > nav > a + a[href="#menu"]:last-child { - margin-left: 0.25rem; - padding-left: 1rem; } - #header > nav > a:last-child { - padding-right: 1rem; } } - -@media screen and (max-width: 980px) { - body { - padding-top: 44px; } - - #header { - height: 44px; - line-height: 44px; } } -@media screen and (max-width: 480px) { - #header { - min-width: 320px; } } -/* Heading */ -#heading { - -ms-flex-align: center; - -ms-flex-pack: center; - background-color: #111111; - color: rgba(255, 255, 255, 0.5); - -moz-align-items: center; - -webkit-align-items: center; - -ms-align-items: center; - align-items: center; - display: -moz-flex; - display: -webkit-flex; - display: -ms-flex; - display: flex; - -moz-justify-content: center; - -webkit-justify-content: center; - -ms-justify-content: center; - justify-content: center; - background-image: linear-gradient(rgba(17, 17, 17, 0.25), rgba(17, 17, 17, 0.25)), url("../../images/banner.jpg"); - background-position: center; - background-repeat: no-repeat; - background-size: cover; - border-top: 0; - display: -ms-flexbox; - height: 7rem !important; - min-height: 7rem; - overflow: hidden; - position: relative; - text-align: center; - width: 100%; } - #heading input, #heading select, #heading textarea { - color: #ffffff; } - #heading a { - color: #ce1b28; } - #heading strong, #heading b { - color: #ffffff; } - #heading h1, #heading h2, #heading h3, #heading h4, #heading h5, #heading h6 { - color: #ffffff; } - #heading blockquote { - border-left-color: rgba(255, 255, 255, 0.25); } - #heading code { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #heading hr { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #heading input[type="submit"], - #heading input[type="reset"], - #heading input[type="button"], - #heading button, - #heading .button { - background-color: transparent; - box-shadow: inset 0 0 0 1px #ffffff; - color: #ffffff !important; } - #heading input[type="submit"]:hover, - #heading input[type="reset"]:hover, - #heading input[type="button"]:hover, - #heading button:hover, - #heading .button:hover { - box-shadow: inset 0 0 0 1px #ce1b28; - color: #ce1b28 !important; } - #heading input[type="submit"]:hover:active, - #heading input[type="reset"]:hover:active, - #heading input[type="button"]:hover:active, - #heading button:hover:active, - #heading .button:hover:active { - background-color: rgba(206, 27, 40, 0.25); } - #heading input[type="submit"].primary, - #heading input[type="reset"].primary, - #heading input[type="button"].primary, - #heading button.primary, - #heading .button.primary { - box-shadow: none; - background-color: #ce1b28; - color: #ffffff !important; } - #heading input[type="submit"].primary:hover, - #heading input[type="reset"].primary:hover, - #heading input[type="button"].primary:hover, - #heading button.primary:hover, - #heading .button.primary:hover { - background-color: #e2212f; - box-shadow: none; } - #heading input[type="submit"].primary:hover:active, - #heading input[type="reset"].primary:hover:active, - #heading input[type="button"].primary:hover:active, - #heading button.primary:hover:active, - #heading .button.primary:hover:active { - background-color: #b71824; } - #heading label { - color: #ffffff; } - #heading input[type="text"], - #heading input[type="password"], - #heading input[type="email"], - #heading input[type="tel"], - #heading input[type="search"], - #heading input[type="url"], - #heading select, - #heading textarea { - background-color: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #heading input[type="text"]:focus, - #heading input[type="password"]:focus, - #heading input[type="email"]:focus, - #heading input[type="tel"]:focus, - #heading input[type="search"]:focus, - #heading input[type="url"]:focus, - #heading select:focus, - #heading textarea:focus { - border-color: #ce1b28; - box-shadow: 0 0 0 1px #ce1b28; } - #heading select { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(255, 255, 255, 0.25)' /%3E%3C/svg%3E"); } - #heading select option { - color: rgba(255, 255, 255, 0.5); - background-color: #111111; } - #heading input[type="checkbox"] + label, - #heading input[type="radio"] + label { - color: rgba(255, 255, 255, 0.5); } - #heading input[type="checkbox"] + label:before, - #heading input[type="radio"] + label:before { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #heading input[type="checkbox"]:checked + label:before, - #heading input[type="radio"]:checked + label:before { - background-color: #ce1b28; - border-color: #ce1b28; - color: #ffffff; } - #heading input[type="checkbox"]:focus + label:before, - #heading input[type="radio"]:focus + label:before { - border-color: #ce1b28; - box-shadow: 0 0 0 1px #ce1b28; } - #heading ::-webkit-input-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #heading :-moz-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #heading ::-moz-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #heading :-ms-input-placeholder { - color: rgba(255, 255, 255, 0.4) !important; } - #heading ul.alt li { - border-top-color: rgba(255, 255, 255, 0.25); } - #heading table tbody tr { - border-color: rgba(255, 255, 255, 0.25); } - #heading table tbody tr:nth-child(2n + 1) { - background-color: rgba(255, 255, 255, 0.075); } - #heading table th { - color: #ffffff; } - #heading table thead { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #heading table tfoot { - border-top-color: rgba(255, 255, 255, 0.25); } - #heading table.alt tbody tr td { - border-color: rgba(255, 255, 255, 0.25); } - #heading .highlights .content { - background: #111111; - box-shadow: 0px 0px 4px 1px rgba(255, 255, 255, 0.025); } - #heading .testimonials .content { - background: #111111; - box-shadow: 0px 0px 4px 1px rgba(255, 255, 255, 0.025); } - #heading .testimonials .content .credit strong { - color: #ce1b28; } - #heading:before { - background: linear-gradient(135deg, #ce1b28 0%, #111111 74%); - content: ' '; - display: block; - height: 100%; - left: 0; - opacity: 0.6; - position: absolute; - top: 0; - width: 100%; - z-index: 1; } - #heading h1 { - margin-bottom: 0; - position: relative; - z-index: 2; } - @media screen and (max-width: 980px) { - #heading { - padding: 2rem; } } - -/* Main */ -#main .content { - background: #ffffff; - border-radius: 4px; - box-shadow: 0px 0px 4px 1px rgba(0, 0, 0, 0.025); - margin-bottom: 2rem; - padding: 3rem; } - #main .content img { - max-width: 100%; } - @media screen and (max-width: 980px) { - #main .content { - padding: 2rem; } } - @media screen and (max-width: 480px) { - #main .content { - padding: 1.5rem; } } - -/* Menu */ -#menu { - background-color: #111111; - color: rgba(255, 255, 255, 0.5); - -moz-transform: translateX(20rem); - -webkit-transform: translateX(20rem); - -ms-transform: translateX(20rem); - transform: translateX(20rem); - -moz-transition: -moz-transform 0.5s ease, box-shadow 0.5s ease, visibility 0.5s; - -webkit-transition: -webkit-transform 0.5s ease, box-shadow 0.5s ease, visibility 0.5s; - -ms-transition: -ms-transform 0.5s ease, box-shadow 0.5s ease, visibility 0.5s; - transition: transform 0.5s ease, box-shadow 0.5s ease, visibility 0.5s; - -webkit-overflow-scrolling: touch; - box-shadow: none; - height: 100%; - max-width: 80%; - overflow-y: auto; - padding: 3rem 2rem; - position: fixed; - right: 0; - top: 0; - visibility: hidden; - width: 20rem; - z-index: 10002; } - #menu input, #menu select, #menu textarea { - color: #ffffff; } - #menu a { - color: #ce1b28; } - #menu strong, #menu b { - color: #ffffff; } - #menu h1, #menu h2, #menu h3, #menu h4, #menu h5, #menu h6 { - color: #ffffff; } - #menu blockquote { - border-left-color: rgba(255, 255, 255, 0.25); } - #menu code { - background: rgba(255, 255, 255, 0.075); - border-color: rgba(255, 255, 255, 0.25); } - #menu hr { - border-bottom-color: rgba(255, 255, 255, 0.25); } - #menu input[type="submit"], - #menu input[type="reset"], - #menu input[type="button"], - #menu button, - #menu .button { - background-color: transparent; - box-shadow: inset 0 0 0 1px #ffffff; - color: #ffffff !important; } - #menu input[type="submit"]:hover, - #menu input[type="reset"]:hover, - #menu input[type="button"]:hover, - #menu button:hover, - #menu .button:hover { - box-shadow: inset 0 0 0 1px #ce1b28; - color: #ce1b28 !important; } - #menu input[type="submit"]:hover:active, - #menu input[type="reset"]:hover:active, - #menu input[type="button"]:hover:active, - #menu button:hover:active, - #menu .button:hover:active { - background-color: rgba(206, 27, 40, 0.25); } - #menu input[type="submit"].primary, - #menu input[type="reset"].primary, - #menu input[type="button"].primary, - #menu button.primary, - #menu .button.primary { - box-shadow: none; - background-color: #ce1b28; - color: #ffffff !important; } - #menu input[type="submit"].primary:hover, - #menu input[type="reset"].primary:hover, - #menu input[type="button"].primary:hover, - #menu button.primary:hover, - #menu .button.primary:hover { - background-color: #e2212f; - box-shadow: none; } - #menu input[type="submit"].primary:hover:active, - #menu input[type="reset"].primary:hover:active, - #menu input[type="button"].primary:hover:active, - #menu button.primary:hover:active, - #menu .button.primary:hover:active { - background-color: #b71824; } - #menu > ul { - margin: 0 0 1rem 0; } - #menu > ul.links { - list-style: none; - padding: 0; } - #menu > ul.links > li { - padding: 0; } - #menu > ul.links > li > a { - border: 0; - border-top: solid 1px rgba(255, 255, 255, 0.25); - color: inherit; - display: block; - line-height: 3.5rem; - text-decoration: none; } - #menu > ul.links > li > a:hover { - color: #ffffff; } - #menu > ul.links > li:first-child > a { - border-top: 0; } - #menu .close { - text-decoration: none; - -moz-transition: color 0.2s ease-in-out; - -webkit-transition: color 0.2s ease-in-out; - -ms-transition: color 0.2s ease-in-out; - transition: color 0.2s ease-in-out; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - border: 0; - color: rgba(255, 255, 255, 0.4); - cursor: pointer; - display: block; - height: 3.25rem; - line-height: 3.25rem; - padding-right: 1.25rem; - position: absolute; - right: 0; - text-align: right; - top: 0; - width: 7rem; } - #menu .close:before { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; } - #menu .close:before { - content: '\f00d'; - font-size: 1.25rem; } - #menu .close:hover { - color: #ffffff; } - @media screen and (max-width: 736px) { - #menu .close { - height: 4rem; - line-height: 4rem; } } - @media screen and (max-width: 736px) { - #menu { - padding: 2.5rem 1.75rem; } } - -body.is-menu-visible #menu { - -moz-transform: translateX(0); - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); - box-shadow: 0 0 1.5rem 0 rgba(0, 0, 0, 0.2); - visibility: visible; } - -/** Custom rules */ -#main .content .newsitem h3 a { - color: #ce1b28; } -#main .content .newsitem h3 em { - font-size: 1rem; - text-align: right; - float: right; - text-transform: none; } - -/** Social media icons **/ -.social-icon { - height: 1.5em; -} - -.right-align { - text-align: right; -} - -.unbrakable { - white-space: nowrap; -} - -.right-align { - text-align: right; -} - -.small { - font-size: x-small; -} \ No newline at end of file diff --git a/www.divd.nl/assets/downloads/DIVD_jaarverslag_2020_online.pdf b/www.divd.nl/assets/downloads/DIVD_jaarverslag_2020_online.pdf deleted file mode 100644 index 6426772e..00000000 Binary files a/www.divd.nl/assets/downloads/DIVD_jaarverslag_2020_online.pdf and /dev/null differ diff --git a/www.divd.nl/assets/downloads/LIA_abuse_informatie_v1.1.pdf b/www.divd.nl/assets/downloads/LIA_abuse_informatie_v1.1.pdf deleted file mode 100644 index e21b33f9..00000000 Binary files a/www.divd.nl/assets/downloads/LIA_abuse_informatie_v1.1.pdf and /dev/null differ diff --git a/www.divd.nl/assets/fonts/FontAwesome.otf b/www.divd.nl/assets/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f3..00000000 Binary files a/www.divd.nl/assets/fonts/FontAwesome.otf and /dev/null differ diff --git a/www.divd.nl/assets/fonts/fontawesome-webfont.eot b/www.divd.nl/assets/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca9..00000000 Binary files a/www.divd.nl/assets/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/www.divd.nl/assets/fonts/fontawesome-webfont.svg b/www.divd.nl/assets/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845e..00000000 --- a/www.divd.nl/assets/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ - - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/www.divd.nl/assets/fonts/fontawesome-webfont.ttf b/www.divd.nl/assets/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2f..00000000 Binary files a/www.divd.nl/assets/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/www.divd.nl/assets/fonts/fontawesome-webfont.woff b/www.divd.nl/assets/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a4..00000000 Binary files a/www.divd.nl/assets/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/www.divd.nl/assets/fonts/fontawesome-webfont.woff2 b/www.divd.nl/assets/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc60..00000000 Binary files a/www.divd.nl/assets/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.eot b/www.divd.nl/assets/fonts/raleway-v22-latin-regular.eot deleted file mode 100644 index c1caad97..00000000 Binary files a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.eot and /dev/null differ diff --git a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.svg b/www.divd.nl/assets/fonts/raleway-v22-latin-regular.svg deleted file mode 100644 index eca08e1d..00000000 --- a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.svg +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.ttf b/www.divd.nl/assets/fonts/raleway-v22-latin-regular.ttf deleted file mode 100644 index 9d0afd6a..00000000 Binary files a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.ttf and /dev/null differ diff --git a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.woff b/www.divd.nl/assets/fonts/raleway-v22-latin-regular.woff deleted file mode 100644 index 90dbc4ab..00000000 Binary files a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.woff and /dev/null differ diff --git a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.woff2 b/www.divd.nl/assets/fonts/raleway-v22-latin-regular.woff2 deleted file mode 100644 index b614f0de..00000000 Binary files a/www.divd.nl/assets/fonts/raleway-v22-latin-regular.woff2 and /dev/null differ diff --git a/www.divd.nl/assets/js/breakpoints.min.js b/www.divd.nl/assets/js/breakpoints.min.js deleted file mode 100644 index 16b9a58b..00000000 --- a/www.divd.nl/assets/js/breakpoints.min.js +++ /dev/null @@ -1,351 +0,0 @@ -/* breakpoints.js v0.1-dev | @ajlkn | MIT licensed */ - -var breakpoints = (function() { "use strict"; var _ = { - - /** - * List. - * @var {array} - */ - list: null, - - /** - * Media cache. - * @var {object} - */ - media: {}, - - /** - * Events. - * @var {array} - */ - events: [], - - /** - * Initialize. - * @param {array} list List. - */ - init: function(list) { - - // Set list. - _.list = list; - - // Add event listeners. - window.addEventListener('resize', _.poll); - window.addEventListener('orientationchange', _.poll); - window.addEventListener('load', _.poll); - window.addEventListener('fullscreenchange', _.poll); - - }, - - /** - * Determines if a given query is active. - * @param {string} query Query. - * @return {bool} True if yes, false if no. - */ - active: function(query) { - - var breakpoint, op, media, - a, x, y, units; - - // Media for this query doesn't exist? Generate it. - if (!(query in _.media)) { - - // Determine operator, breakpoint. - - // Greater than or equal. - if (query.substr(0, 2) == '>=') { - - op = 'gte'; - breakpoint = query.substr(2); - - } - - // Less than or equal. - else if (query.substr(0, 2) == '<=') { - - op = 'lte'; - breakpoint = query.substr(2); - - } - - // Greater than. - else if (query.substr(0, 1) == '>') { - - op = 'gt'; - breakpoint = query.substr(1); - - } - - // Less than. - else if (query.substr(0, 1) == '<') { - - op = 'lt'; - breakpoint = query.substr(1); - - } - - // Not. - else if (query.substr(0, 1) == '!') { - - op = 'not'; - breakpoint = query.substr(1); - - } - - // Equal. - else { - - op = 'eq'; - breakpoint = query; - - } - - // Build media. - if (breakpoint && breakpoint in _.list) { - - a = _.list[breakpoint]; - - // Range. - if (Array.isArray(a)) { - - x = parseInt(a[0]); - y = parseInt(a[1]); - - if (!isNaN(x)) - units = a[0].substr(String(x).length); - else if (!isNaN(y)) - units = a[1].substr(String(y).length); - else - return; - - // Max only. - if (isNaN(x)) { - - switch (op) { - - // Greater than or equal (>= 0 / anything) - case 'gte': - media = 'screen'; - break; - - // Less than or equal (<= y) - case 'lte': - media = 'screen and (max-width: ' + y + units + ')'; - break; - - // Greater than (> y) - case 'gt': - media = 'screen and (min-width: ' + (y + 1) + units + ')'; - break; - - // Less than (< 0 / invalid) - case 'lt': - media = 'screen and (max-width: -1px)'; - break; - - // Not (> y) - case 'not': - media = 'screen and (min-width: ' + (y + 1) + units + ')'; - break; - - // Equal (<= y) - default: - media = 'screen and (max-width: ' + y + units + ')'; - break; - - } - - } - - // Min only. - else if (isNaN(y)) { - - switch (op) { - - // Greater than or equal (>= x) - case 'gte': - media = 'screen and (min-width: ' + x + units + ')'; - break; - - // Less than or equal (<= inf / anything) - case 'lte': - media = 'screen'; - break; - - // Greater than (> inf / invalid) - case 'gt': - media = 'screen and (max-width: -1px)'; - break; - - // Less than (< x) - case 'lt': - media = 'screen and (max-width: ' + (x - 1) + units + ')'; - break; - - // Not (< x) - case 'not': - media = 'screen and (max-width: ' + (x - 1) + units + ')'; - break; - - // Equal (>= x) - default: - media = 'screen and (min-width: ' + x + units + ')'; - break; - - } - - } - - // Min and max. - else { - - switch (op) { - - // Greater than or equal. - case 'gte': - media = 'screen and (min-width: ' + x + units + ')'; - break; - - // Less than or equal. - case 'lte': - media = 'screen and (max-width: ' + y + units + ')'; - break; - - // Greater than. - case 'gt': - media = 'screen and (min-width: ' + (y + 1) + units + ')'; - break; - - // Less than. - case 'lt': - media = 'screen and (max-width: ' + (x - 1) + units + ')'; - break; - - // Not. - case 'not': - media = 'screen and (max-width: ' + (x - 1) + units + '), screen and (min-width: ' + (y + 1) + units + ')'; - break; - - // Equal. - default: - media = 'screen and (min-width: ' + x + units + ') and (max-width: ' + y + units + ')'; - break; - - } - - } - - } - - // String. - else { - - // Missing a media type? Prefix with "screen". - if (a.charAt(0) == '(') - media = 'screen and ' + a; - - // Otherwise, use as-is. - else - media = a; - - } - - } - - // Cache. - _.media[query] = (media ? media : false); - - } - - return ( - _.media[query] === false - ? false - : window.matchMedia(_.media[query]).matches - ); - - }, - - /** - * Registers an event. - * @param {string} query Query. - * @param {function} handler Handler. - */ - on: function(query, handler) { - - // Register event. - _.events.push({ - query: query, - handler: handler, - state: false - }); - - // Query active *right now*? Call handler. - if (_.active(query)) - (handler)(); - - }, - - /** - * Polls for events. - */ - poll: function() { - - var i, e; - - // Step through events. - for (i=0; i < _.events.length; i++) { - - // Get event. - e = _.events[i]; - - // Active? - if (_.active(e.query)) { - - // Hasn't been called yet? - if (!e.state) { - - // Mark as called. - e.state = true; - - // Call handler. - (e.handler)(); - - } - - } - - // Otherwise ... - else { - - // Previously called? - if (e.state) { - - // Unmark as called. - e.state = false; - - } - - } - - } - - }, - -}; function __(list) { _.init(list); }; __._ = _; __.on = function(query, handler) { _.on(query, handler); }; __.active = function(query) { return _.active(query); }; return __; })(); - -// UMD Wrapper (github.com/umdjs/umd/blob/master/returnExports.js | @umdjs + @nason) -(function(root, factory) { - - // AMD. - if (typeof define === 'function' && define.amd) - define([], factory); - - // Node. - else if (typeof exports === 'object') - module.exports = factory(); - - // Breakpoints global. - else - root.breakpoints = factory(); - -}(this, function() { return breakpoints; })); \ No newline at end of file diff --git a/www.divd.nl/assets/js/browser.min.js b/www.divd.nl/assets/js/browser.min.js deleted file mode 100644 index 2bf334c5..00000000 --- a/www.divd.nl/assets/js/browser.min.js +++ /dev/null @@ -1,166 +0,0 @@ -/* browser.js v0.1-dev | @ajlkn | MIT licensed */ - -var browser = (function() { "use strict"; var _ = { - - /** - * Name. - * @var {string} - */ - name: null, - - /** - * Version. - * @var {float} - */ - version: null, - - /** - * OS. - * @var {string} - */ - os: null, - - /** - * OS version. - * @var {float} - */ - osVersion: null, - - /** - * Touch. - * @var {bool} - */ - touch: null, - - /** - * Mobile. - * @var {bool} - */ - mobile: null, - - /** - * Temporary element for canUse() - * @var {DOMElement} - */ - _canUse: null, - - /** - * Determines if the browser supports a given property. - * @param {string} p Property. - * @return {bool} True if property is supported, false if not. - */ - canUse: function(p) { - - // Create temporary element if it doesn't already exist. - if (!_._canUse) - _._canUse = document.createElement('div'); - - // Check for property. - var e = _._canUse.style, - up = p.charAt(0).toUpperCase() + p.slice(1); - - return ( - p in e - || ('Moz' + up) in e - || ('Webkit' + up) in e - || ('O' + up) in e - || ('ms' + up) in e - ); - - }, - - /** - * Initialize. - */ - init: function() { - - var x, y, a, i, ua = navigator.userAgent; - - // name, version. - x = 'other'; - y = 0; - a = [ - ['firefox', /Firefox\/([0-9\.]+)/], - ['bb', /BlackBerry.+Version\/([0-9\.]+)/], - ['bb', /BB[0-9]+.+Version\/([0-9\.]+)/], - ['opera', /OPR\/([0-9\.]+)/], - ['opera', /Opera\/([0-9\.]+)/], - ['edge', /Edge\/([0-9\.]+)/], - ['safari', /Version\/([0-9\.]+).+Safari/], - ['chrome', /Chrome\/([0-9\.]+)/], - ['ie', /MSIE ([0-9]+)/], - ['ie', /Trident\/.+rv:([0-9]+)/] - ]; - - for (i=0; i < a.length; i++) { - - if (ua.match(a[i][1])) { - - x = a[i][0]; - y = parseFloat(RegExp.$1); - - break; - - } - - } - - _.name = x; - _.version = y; - - // os, osVersion. - x = 'other'; - y = 0; - a = [ - ['ios', /([0-9_]+) like Mac OS X/, function(v) { return v.replace('_', '.').replace('_', ''); }], - ['ios', /CPU like Mac OS X/, function(v) { return 0 }], - ['wp', /Windows Phone ([0-9\.]+)/, null], - ['android', /Android ([0-9\.]+)/, null], - ['mac', /Macintosh.+Mac OS X ([0-9_]+)/, function(v) { return v.replace('_', '.').replace('_', ''); }], - ['windows', /Windows NT ([0-9\.]+)/, null], - ['bb', /BlackBerry.+Version\/([0-9\.]+)/, null], - ['bb', /BB[0-9]+.+Version\/([0-9\.]+)/, null] - ]; - - for (i=0; i < a.length; i++) { - - if (ua.match(a[i][1])) { - - x = a[i][0]; - y = parseFloat( a[i][2] ? (a[i][2])(RegExp.$1) : RegExp.$1 ); - - break; - - } - - } - - _.os = x; - _.osVersion = y; - - // touch. - _.touch = (_.os == 'wp' ? (navigator.msMaxTouchPoints > 0) : !!('ontouchstart' in window)); - - // mobile. - _.mobile = (_.os == 'wp' || _.os == 'android' || _.os == 'ios' || _.os == 'bb'); - - }, - -}; _.init(); return _; })(); - -// UMD Wrapper (github.com/umdjs/umd/blob/master/returnExports.js | @umdjs + @nason) -(function(root, factory) { - - // AMD. - if (typeof define === 'function' && define.amd) - define([], factory); - - // Node. - else if (typeof exports === 'object') - module.exports = factory(); - - // Browser global. - else - root.browser = factory(); - -}(this, function() { return browser; })); \ No newline at end of file diff --git a/www.divd.nl/assets/js/jquery.min.js b/www.divd.nl/assets/js/jquery.min.js deleted file mode 100644 index c4c6022f..00000000 --- a/www.divd.nl/assets/js/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0') - .appendTo($body) - .panel({ - target: $body, - visibleClass: 'is-menu-visible', - delay: 500, - hideOnClick: true, - hideOnSwipe: true, - resetScroll: true, - resetForms: true, - side: 'right' - }); - -})(jQuery); \ No newline at end of file diff --git a/www.divd.nl/assets/js/supp.js b/www.divd.nl/assets/js/supp.js deleted file mode 100644 index e546a62c..00000000 --- a/www.divd.nl/assets/js/supp.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Functions for the donate page: - * - Fetch the data - * - Render the html. - */ - -/** - * Anti-XSS condom - */ -function condom(unsafe) { - return $("
").text(unsafe).html(); -} - -/** - * Iterate donations in reverse (to render the latest ones first and then: - * - fix the date format and breaking on '-' in the table by replacing it with ‑ - * - Parse the name, or flag as anonymous - * - html-safe render the name and donation comment. - * - add the referal data to the donate link - */ -function renderDonations(data) { - - $('#name').text(data.name); - $('#description').text(data.description); - $(".donate_btn").attr("url",data.absoluteUrl); - $('#amount').text(data.raised); - $('#goal').text(data.goal > 0 ? "of €" + data.goal : ""); - - let rows = data.donations.reverse().map(function(donation) { - let created = donation.created_at.split(" ")[0].split("-").reverse().join("‑"); - let name = donation.anonymous ? "Anonymous" : `${donation.first_name ?? ''} ${donation.last_name_prefix ?? ''} ${donation.last_name ?? ''}`; - - return `${created} - € ${donation.amount} - ${condom(name)} - ${condom(donation.message)} - `; - }); - - $("#donations").html(rows.join('')); - - $('.donate_btn').on('click', function(evt) { - let addition = evt.target.value ? "/v=${evt.target.value}" : ''; - window.location.href = data.absoluteUrl+"/donate${addition}"; - }); - -}; - -$(document).ready(function() { - $.getJSON('/data/supp.json').then((result)=>renderDonations(result.data)); -}); diff --git a/www.divd.nl/assets/js/util.js b/www.divd.nl/assets/js/util.js deleted file mode 100644 index ecf7b371..00000000 --- a/www.divd.nl/assets/js/util.js +++ /dev/null @@ -1,587 +0,0 @@ -(function($) { - - /** - * Generate an indented list of links from a nav. Meant for use with panel(). - * @return {jQuery} jQuery object. - */ - $.fn.navList = function() { - - var $this = $(this); - $a = $this.find('a'), - b = []; - - $a.each(function() { - - var $this = $(this), - indent = Math.max(0, $this.parents('li').length - 1), - href = $this.attr('href'), - target = $this.attr('target'); - - b.push( - '' + - '' + - $this.text() + - '' - ); - - }); - - return b.join(''); - - }; - - /** - * Panel-ify an element. - * @param {object} userConfig User config. - * @return {jQuery} jQuery object. - */ - $.fn.panel = function(userConfig) { - - // No elements? - if (this.length == 0) - return $this; - - // Multiple elements? - if (this.length > 1) { - - for (var i=0; i < this.length; i++) - $(this[i]).panel(userConfig); - - return $this; - - } - - // Vars. - var $this = $(this), - $body = $('body'), - $window = $(window), - id = $this.attr('id'), - config; - - // Config. - config = $.extend({ - - // Delay. - delay: 0, - - // Hide panel on link click. - hideOnClick: false, - - // Hide panel on escape keypress. - hideOnEscape: false, - - // Hide panel on swipe. - hideOnSwipe: false, - - // Reset scroll position on hide. - resetScroll: false, - - // Reset forms on hide. - resetForms: false, - - // Side of viewport the panel will appear. - side: null, - - // Target element for "class". - target: $this, - - // Class to toggle. - visibleClass: 'visible' - - }, userConfig); - - // Expand "target" if it's not a jQuery object already. - if (typeof config.target != 'jQuery') - config.target = $(config.target); - - // Panel. - - // Methods. - $this._hide = function(event) { - - // Already hidden? Bail. - if (!config.target.hasClass(config.visibleClass)) - return; - - // If an event was provided, cancel it. - if (event) { - - event.preventDefault(); - event.stopPropagation(); - - } - - // Hide. - config.target.removeClass(config.visibleClass); - - // Post-hide stuff. - window.setTimeout(function() { - - // Reset scroll position. - if (config.resetScroll) - $this.scrollTop(0); - - // Reset forms. - if (config.resetForms) - $this.find('form').each(function() { - this.reset(); - }); - - }, config.delay); - - }; - - // Vendor fixes. - $this - .css('-ms-overflow-style', '-ms-autohiding-scrollbar') - .css('-webkit-overflow-scrolling', 'touch'); - - // Hide on click. - if (config.hideOnClick) { - - $this.find('a') - .css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)'); - - $this - .on('click', 'a', function(event) { - - var $a = $(this), - href = $a.attr('href'), - target = $a.attr('target'); - - if (!href || href == '#' || href == '' || href == '#' + id) - return; - - // Cancel original event. - event.preventDefault(); - event.stopPropagation(); - - // Hide panel. - $this._hide(); - - // Redirect to href. - window.setTimeout(function() { - - if (target == '_blank') - window.open(href); - else - window.location.href = href; - - }, config.delay + 10); - - }); - - } - - // Event: Touch stuff. - $this.on('touchstart', function(event) { - - $this.touchPosX = event.originalEvent.touches[0].pageX; - $this.touchPosY = event.originalEvent.touches[0].pageY; - - }) - - $this.on('touchmove', function(event) { - - if ($this.touchPosX === null - || $this.touchPosY === null) - return; - - var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX, - diffY = $this.touchPosY - event.originalEvent.touches[0].pageY, - th = $this.outerHeight(), - ts = ($this.get(0).scrollHeight - $this.scrollTop()); - - // Hide on swipe? - if (config.hideOnSwipe) { - - var result = false, - boundary = 20, - delta = 50; - - switch (config.side) { - - case 'left': - result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta); - break; - - case 'right': - result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta)); - break; - - case 'top': - result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta); - break; - - case 'bottom': - result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta)); - break; - - default: - break; - - } - - if (result) { - - $this.touchPosX = null; - $this.touchPosY = null; - $this._hide(); - - return false; - - } - - } - - // Prevent vertical scrolling past the top or bottom. - if (($this.scrollTop() < 0 && diffY < 0) - || (ts > (th - 2) && ts < (th + 2) && diffY > 0)) { - - event.preventDefault(); - event.stopPropagation(); - - } - - }); - - // Event: Prevent certain events inside the panel from bubbling. - $this.on('click touchend touchstart touchmove', function(event) { - event.stopPropagation(); - }); - - // Event: Hide panel if a child anchor tag pointing to its ID is clicked. - $this.on('click', 'a[href="#' + id + '"]', function(event) { - - event.preventDefault(); - event.stopPropagation(); - - config.target.removeClass(config.visibleClass); - - }); - - // Body. - - // Event: Hide panel on body click/tap. - $body.on('click touchend', function(event) { - $this._hide(event); - }); - - // Event: Toggle. - $body.on('click', 'a[href="#' + id + '"]', function(event) { - - event.preventDefault(); - event.stopPropagation(); - - config.target.toggleClass(config.visibleClass); - - }); - - // Window. - - // Event: Hide on ESC. - if (config.hideOnEscape) - $window.on('keydown', function(event) { - - if (event.keyCode == 27) - $this._hide(event); - - }); - - return $this; - - }; - - /** - * Apply "placeholder" attribute polyfill to one or more forms. - * @return {jQuery} jQuery object. - */ - $.fn.placeholder = function() { - - // Browser natively supports placeholders? Bail. - if (typeof (document.createElement('input')).placeholder != 'undefined') - return $(this); - - // No elements? - if (this.length == 0) - return $this; - - // Multiple elements? - if (this.length > 1) { - - for (var i=0; i < this.length; i++) - $(this[i]).placeholder(); - - return $this; - - } - - // Vars. - var $this = $(this); - - // Text, TextArea. - $this.find('input[type=text],textarea') - .each(function() { - - var i = $(this); - - if (i.val() == '' - || i.val() == i.attr('placeholder')) - i - .addClass('polyfill-placeholder') - .val(i.attr('placeholder')); - - }) - .on('blur', function() { - - var i = $(this); - - if (i.attr('name').match(/-polyfill-field$/)) - return; - - if (i.val() == '') - i - .addClass('polyfill-placeholder') - .val(i.attr('placeholder')); - - }) - .on('focus', function() { - - var i = $(this); - - if (i.attr('name').match(/-polyfill-field$/)) - return; - - if (i.val() == i.attr('placeholder')) - i - .removeClass('polyfill-placeholder') - .val(''); - - }); - - // Password. - $this.find('input[type=password]') - .each(function() { - - var i = $(this); - var x = $( - $('
') - .append(i.clone()) - .remove() - .html() - .replace(/type="password"/i, 'type="text"') - .replace(/type=password/i, 'type=text') - ); - - if (i.attr('id') != '') - x.attr('id', i.attr('id') + '-polyfill-field'); - - if (i.attr('name') != '') - x.attr('name', i.attr('name') + '-polyfill-field'); - - x.addClass('polyfill-placeholder') - .val(x.attr('placeholder')).insertAfter(i); - - if (i.val() == '') - i.hide(); - else - x.hide(); - - i - .on('blur', function(event) { - - event.preventDefault(); - - var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); - - if (i.val() == '') { - - i.hide(); - x.show(); - - } - - }); - - x - .on('focus', function(event) { - - event.preventDefault(); - - var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']'); - - x.hide(); - - i - .show() - .focus(); - - }) - .on('keypress', function(event) { - - event.preventDefault(); - x.val(''); - - }); - - }); - - // Events. - $this - .on('submit', function() { - - $this.find('input[type=text],input[type=password],textarea') - .each(function(event) { - - var i = $(this); - - if (i.attr('name').match(/-polyfill-field$/)) - i.attr('name', ''); - - if (i.val() == i.attr('placeholder')) { - - i.removeClass('polyfill-placeholder'); - i.val(''); - - } - - }); - - }) - .on('reset', function(event) { - - event.preventDefault(); - - $this.find('select') - .val($('option:first').val()); - - $this.find('input,textarea') - .each(function() { - - var i = $(this), - x; - - i.removeClass('polyfill-placeholder'); - - switch (this.type) { - - case 'submit': - case 'reset': - break; - - case 'password': - i.val(i.attr('defaultValue')); - - x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); - - if (i.val() == '') { - i.hide(); - x.show(); - } - else { - i.show(); - x.hide(); - } - - break; - - case 'checkbox': - case 'radio': - i.attr('checked', i.attr('defaultValue')); - break; - - case 'text': - case 'textarea': - i.val(i.attr('defaultValue')); - - if (i.val() == '') { - i.addClass('polyfill-placeholder'); - i.val(i.attr('placeholder')); - } - - break; - - default: - i.val(i.attr('defaultValue')); - break; - - } - }); - - }); - - return $this; - - }; - - /** - * Moves elements to/from the first positions of their respective parents. - * @param {jQuery} $elements Elements (or selector) to move. - * @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations. - */ - $.prioritize = function($elements, condition) { - - var key = '__prioritize'; - - // Expand $elements if it's not already a jQuery object. - if (typeof $elements != 'jQuery') - $elements = $($elements); - - // Step through elements. - $elements.each(function() { - - var $e = $(this), $p, - $parent = $e.parent(); - - // No parent? Bail. - if ($parent.length == 0) - return; - - // Not moved? Move it. - if (!$e.data(key)) { - - // Condition is false? Bail. - if (!condition) - return; - - // Get placeholder (which will serve as our point of reference for when this element needs to move back). - $p = $e.prev(); - - // Couldn't find anything? Means this element's already at the top, so bail. - if ($p.length == 0) - return; - - // Move element to top of parent. - $e.prependTo($parent); - - // Mark element as moved. - $e.data(key, $p); - - } - - // Moved already? - else { - - // Condition is true? Bail. - if (condition) - return; - - $p = $e.data(key); - - // Move element back to its original location (using our placeholder). - $e.insertAfter($p); - - // Unmark element as moved. - $e.removeData(key); - - } - - }); - - }; - -})(jQuery); \ No newline at end of file diff --git a/www.divd.nl/assets/js/whydonate.js b/www.divd.nl/assets/js/whydonate.js deleted file mode 100644 index 87f9279d..00000000 --- a/www.divd.nl/assets/js/whydonate.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Functions for the donate page - * whydonate.js from https://whydonate-production-api.appspot.com/api/v1/project/fundraising/local/?client=whydonate_production&slug=divd - * Whydonate2 from https://whydonate-production-api.appspot.com/api/v1/donation/orders/fundraising/local/?client=whydonate_production&id=15964&cursor=&limit=1000 - */ - -function update_donations(data) { - //console.log(data); - data.results.forEach(function(d) { - txt = "" - txt += ""+$("
").text(d.created_at.split("T")[0]).html()+"" - txt += "€ "+$("
").text(d.amount).html()+"" - if( d.is_anonymous ) { - txt += "Anonymous" - } else { - txt += ""+$("
").text(d.donor.full_name).html()+"" - } - txt += ""+$("
").text(d.donor.message).html()+"" - txt += "" - $('#donations').append(txt) - - }) -} - -function update_fundraiser(data) { - console.log(data); - $('#title').text(data.title); - $('#description').text(data.description); - $('#amount').text(data.donation.amount); - $('#count').text(data.donation.count); - $('.donate_btn').on('click', function(evt) { - window.location.href="https://www.whydonate.nl/fundraising/divd" - }); -} - -function load_donations() { - $.ajax({ - - url : '/data/whydonate2.json', - type : 'GET', - data : {}, - dataType:'json', - success : function(data) { - update_donations(data) - }, - error : function(request,error) - { - console.error("C") - console.log("Request: "+JSON.stringify(request)); - } - }); -}; - -function load_fundraiser() { - $.ajax({ - - url : '/data/whydonate.json', - type : 'GET', - data : {}, - dataType:'json', - success : function(data) { - update_fundraiser(data.data) - }, - error : function(request,error) - { - console.log("Request: "+JSON.stringify(request)); - } - }); -}; - - -$( document ).ready(function() { - load_donations(); - load_fundraiser(); -}) \ No newline at end of file diff --git a/www.divd.nl/assets/sass/base/_page.scss b/www.divd.nl/assets/sass/base/_page.scss deleted file mode 100644 index e4eba079..00000000 --- a/www.divd.nl/assets/sass/base/_page.scss +++ /dev/null @@ -1,41 +0,0 @@ -/* Basic */ - - // MSIE: Required for IEMobile. - @-ms-viewport { - width: device-width; - } - - // MSIE: Prevents scrollbar from overlapping content. - body { - -ms-overflow-style: scrollbar; - } - - // Ensures page width is always >=320px. - @include breakpoint('<=xsmall') { - html, body { - min-width: 320px; - } - } - - // Set box model to border-box. - // Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice - html { - box-sizing: border-box; - } - - *, *:before, *:after { - box-sizing: inherit; - } - - body { - background: _palette(bg); - - // Stops initial animations until page loads. - &.is-preload { - *, *:before, *:after { - @include vendor('animation', 'none !important'); - @include vendor('transition', 'none !important'); - } - } - - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/base/_reset.scss b/www.divd.nl/assets/sass/base/_reset.scss deleted file mode 100644 index c9775589..00000000 --- a/www.divd.nl/assets/sass/base/_reset.scss +++ /dev/null @@ -1,70 +0,0 @@ -// Reset. -// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: public domain) - - html, body, div, span, applet, object, - iframe, h1, h2, h3, h4, h5, h6, p, blockquote, - pre, a, abbr, acronym, address, big, cite, - code, del, dfn, em, img, ins, kbd, q, s, samp, - small, strike, strong, sub, sup, tt, var, b, - u, i, center, dl, dt, dd, ol, ul, li, fieldset, - form, label, legend, table, caption, tbody, - tfoot, thead, tr, th, td, article, aside, - canvas, details, embed, figure, figcaption, - footer, header, hgroup, menu, nav, output, ruby, - section, summary, time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; - } - - article, aside, details, figcaption, figure, - footer, header, hgroup, menu, nav, section { - display: block; - } - - body { - line-height: 1; - } - - ol, ul { - list-style:none; - } - - blockquote, q { - quotes: none; - - &:before, - &:after { - content: ''; - content: none; - } - } - - table { - border-collapse: collapse; - border-spacing: 0; - } - - body { - -webkit-text-size-adjust: none; - } - - mark { - background-color: transparent; - color: inherit; - } - - input::-moz-focus-inner { - border: 0; - padding: 0; - } - - input, select, textarea { - -moz-appearance: none; - -webkit-appearance: none; - -ms-appearance: none; - appearance: none; - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/base/_typography.scss b/www.divd.nl/assets/sass/base/_typography.scss deleted file mode 100644 index 2d5182b2..00000000 --- a/www.divd.nl/assets/sass/base/_typography.scss +++ /dev/null @@ -1,214 +0,0 @@ -/* Typography */ - - html { - font-size: 13pt; - - @include breakpoint('<=xlarge') { - font-size: 11pt; - } - - @include breakpoint('<=medium') { - font-size: 12pt; - } - - @include breakpoint('<=xsmall') { - font-size: 11pt; - } - } - - body { - background-color: _palette(bg); - color: _palette(fg); - } - - body, input, select, textarea { - font-family: _font(family); - font-weight: _font(weight); - font-size: 1rem; - line-height: 1.65; - } - - a { - @include vendor('transition', 'color #{_duration(transition)} ease-in-out'); - text-decoration: underline; - - &:hover { - text-decoration: none; - } - } - - strong, b { - font-weight: _font(weight-bold); - } - - em, i { - font-style: italic; - } - - p { - margin: 0 0 _size(element-margin) 0; - } - - header { - &.special { - text-align:center; - margin-bottom: _size(element-margin) * 2; - - p { - max-width: 75%; - margin-left: auto; - margin-right: auto; - } - } - } - - h1, h2, h3, h4, h5, h6 { - font-weight: _font(weight-light); - line-height: 1.5; - text-transform: uppercase; - margin: 0 0 (_size(element-margin) * 0.75) 0; - - a { - color: inherit; - text-decoration: none; - } - } - - h1 { - font-size: 3rem; - line-height: 1.2; - } - - h2 { - font-size: 2.25rem; - line-height: 1.3; - } - - h3 { - font-size: 1.25rem; - } - - h4 { - font-size: 1rem; - } - - h5 { - font-size: 0.9rem; - } - - h6 { - font-size: 0.7rem; - } - - @include breakpoint('<=small') { - h1 { - font-size: 2.75rem; - line-height: 1.3; - } - - h2 { - font-size: 1.75rem; - line-height: 1.5; - } - - h3 { - font-size: 1.25rem; - } - } - - sub { - font-size: 0.8rem; - position: relative; - top: 0.5rem; - } - - sup { - font-size: 0.8rem; - position: relative; - top: -0.5rem; - } - - blockquote { - border-left: solid 0.5rem; - font-style: italic; - margin: 0 0 _size(element-margin) 0; - padding: (_size(element-margin) * 0.5) 0 (_size(element-margin) * 0.5) _size(element-margin); - } - - code { - border-radius: _size(border-radius); - border: solid 1px; - font-family: _font(family-fixed); - font-size: 0.9rem; - margin: 0 0.25rem; - padding: 0.25rem 0.65rem; - } - - pre { - -webkit-overflow-scrolling: touch; - font-family: _font(family-fixed); - font-size: 0.9rem; - margin: 0 0 _size(element-margin) 0; - - code { - display: block; - line-height: 1.75; - padding: 1rem 1.5rem; - overflow-x: auto; - } - } - - hr { - border: 0; - border-bottom: solid 1px; - margin: _size(element-margin) 0; - - &.major { - margin: (_size(element-margin) * 2) 0; - } - } - - @mixin color-typography($p: null) { - $highlight: _palette($p, highlight); - - @if $p != null { - background-color: _palette($p, bg); - color: _palette($p, fg); - } - - input, select, textarea { - color: _palette($p, fg-bold); - } - - a { - @if $p == $highlight { - color: _palette($p, fg-bold); - } - @else { - color: _palette(accent1, bg); - } - } - - strong, b { - color: _palette($p, fg-bold); - } - - h1, h2, h3, h4, h5, h6 { - color: _palette($p, fg-bold); - } - - blockquote { - border-left-color: _palette($p, border); - } - - code { - background: _palette($p, border-bg); - border-color: _palette($p, border); - } - - hr { - border-bottom-color: _palette($p, border); - } - } - - @include color-typography; \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_actions.scss b/www.divd.nl/assets/sass/components/_actions.scss deleted file mode 100644 index 9ffdbeb1..00000000 --- a/www.divd.nl/assets/sass/components/_actions.scss +++ /dev/null @@ -1,88 +0,0 @@ -/* Actions */ - - ul.actions { - @include vendor('display', 'flex'); - cursor: default; - list-style: none; - margin-left: (_size(element-margin) * -0.5); - padding-left: 0; - - li { - padding: 0 0 0 (_size(element-margin) * 0.5); - vertical-align: middle; - } - - &.special { - @include vendor('justify-content', 'center'); - width: calc(100% + #{_size(element-margin) * 0.5}); - } - - &.stacked { - @include vendor('flex-direction', 'column'); - margin-left: 0; - - li { - padding: (_size(element-margin) * 0.65) 0 0 0; - - &:first-child { - padding-top: 0; - } - } - } - - &.fit { - width: calc(100% + #{_size(element-margin) * 0.5}); - - li { - @include vendor('flex-grow', '1'); - @include vendor('flex-shrink', '1'); - width: 100%; - - > * { - width: 100%; - } - } - - &.stacked { - width: 100%; - } - } - - @include breakpoint('<=xsmall') { - &:not(.fixed) { - @include vendor('flex-direction', 'column'); - margin-left: 0; - width: 100% !important; - - li { - @include vendor('flex-grow', '1'); - @include vendor('flex-shrink', '1'); - padding: (_size(element-margin) * 0.5) 0 0 0; - text-align: center; - width: 100%; - - > * { - width: 100%; - } - - &:first-child { - padding-top: 0; - } - - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - width: 100%; - - &.icon { - &:before { - margin-left: -0.5rem; - } - } - } - } - } - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_box.scss b/www.divd.nl/assets/sass/components/_box.scss deleted file mode 100644 index b26402f4..00000000 --- a/www.divd.nl/assets/sass/components/_box.scss +++ /dev/null @@ -1,29 +0,0 @@ -/* Box */ - - .box { - border-radius: _size(border-radius); - box-shadow: 0px 0px 4px 1px _palette(border-lt); - padding: 3rem; - - > :last-child { - margin-bottom: 0; - } - - &.alt { - border: 0; - border-radius: 0; - padding: 0; - } - - @include breakpoint('<=medium') { - padding: 2rem; - } - } - - @mixin color-box($p: null) { - .box { - border-color: _palette($p, border); - } - } - - @include color-box; \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_button.scss b/www.divd.nl/assets/sass/components/_button.scss deleted file mode 100644 index facf0481..00000000 --- a/www.divd.nl/assets/sass/components/_button.scss +++ /dev/null @@ -1,126 +0,0 @@ -/* Button */ - - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - @include vendor('appearance', 'none'); - @include vendor('transition', ( - 'background-color #{_duration(transition)} ease-in-out', - 'box-shadow #{_duration(transition)} ease-in-out', - 'color #{_duration(transition)} ease-in-out' - )); - border: 0; - border-radius: _size(border-radius); - cursor: pointer; - display: inline-block; - font-weight: _font(weight-bold); - height: _size(element-height); - line-height: _size(element-height); - padding: 0 1.75rem; - text-align: center; - text-decoration: none; - white-space: nowrap; - - &.small { - font-size: 0.8rem; - height: _size(element-height) * 0.75; - line-height: _size(element-height) * 0.75; - padding: 0 1.25rem; - } - - &.large { - font-size: 1.35rem; - height: _size(element-height) * 1.25; - line-height: _size(element-height) * 1.25; - padding: 0 2rem; - } - - &.wide { - min-width: 13rem; - } - - &.icon { - &:before { - margin-right: 0.5rem; - } - } - - &.fit { - width: 100%; - } - - &.disabled, - &:disabled { - @include vendor('pointer-events', 'none'); - opacity: 0.25; - } - } - - @mixin color-button($p: null) { - $highlight: _palette($p, highlight); - - input[type="submit"], - input[type="reset"], - input[type="button"], - button, - .button { - background-color: transparent; - box-shadow: inset 0 0 0 1px _palette($p, fg-bold); - color: _palette($p, fg-bold) !important; - - @if ($p == $highlight) { - &:hover { - background-color: transparentize(_palette($p, fg-bold), 0.9); - - &:active { - background-color: transparentize(_palette($p, fg-bold), 0.75); - } - } - } - @else { - &:hover { - box-shadow: inset 0 0 0 1px _palette($highlight, bg); - color: _palette($highlight, bg) !important; - - &:active { - background-color: transparentize(_palette($highlight, bg), 0.75); - } - } - } - - &.primary { - box-shadow: none; - - @if $p == $highlight { - background-color: _palette($p, fg-bold); - color: _palette($p, bg) !important; - - &:hover { - background-color: transparentize(_palette($p, fg-bold), 0.125); - box-shadow: none; - - &:active { - background-color: transparentize(_palette($p, fg-bold), 0.5); - } - } - } - @else { - background-color: _palette($highlight, bg); - color: _palette($highlight, fg-bold) !important; - - &:hover { - background-color: lighten(_palette($highlight, bg), 5); - box-shadow: none; - - &:active { - background-color: darken(_palette($highlight, bg), 5); - } - } - } - } - } - } - - @include color-button; \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_form.scss b/www.divd.nl/assets/sass/components/_form.scss deleted file mode 100644 index 8f5ea04b..00000000 --- a/www.divd.nl/assets/sass/components/_form.scss +++ /dev/null @@ -1,240 +0,0 @@ -/* Form */ - - form { - margin: 0 0 _size(element-margin) 0; - } - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="tel"], - input[type="search"], - input[type="url"], - select, - textarea { - @include vendor('appearance', 'none'); - border-radius: _size(border-radius); - border: none; - border: solid 1px; - color: inherit; - display: block; - outline: 0; - padding: 0 1rem; - text-decoration: none; - width: 100%; - - &:invalid { - box-shadow: none; - } - } - - label { - display: block; - font-size: 1rem; - font-weight: _font(weight-bold); - margin: 0 0 (_size(element-margin) * 0.5) 0; - } - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="tel"], - input[type="search"], - input[type="url"] { - height: _size(element-height); - } - - select { - background-size: 1.25rem; - background-repeat: no-repeat; - background-position: calc(100% - 1rem) center; - height: _size(element-height); - padding-right: _size(element-height); - text-overflow: ellipsis; - - &:focus { - &::-ms-value { - background-color: transparent; - } - } - - &::-ms-expand { - display: none; - } - } - - textarea { - padding: 0.75rem 1rem; - } - - input[type="checkbox"], - input[type="radio"], { - @include vendor('appearance', 'none'); - display: block; - float: left; - margin-right: -2rem; - opacity: 0; - width: 1rem; - z-index: -1; - - & + label { - @include icon; - cursor: pointer; - display: inline-block; - font-size: 1rem; - font-weight: _font(weight); - padding-left: (_size(element-height) * 0.6) + 0.875rem; - padding-right: 0.875rem; - position: relative; - - &:before { - border-radius: _size(border-radius); - border: solid 1px; - content: ''; - display: inline-block; - height: (_size(element-height) * 0.6); - left: 0; - line-height: (_size(element-height) * 0.575); - position: absolute; - text-align: center; - top: (_size(element-height) * -0.05); - width: (_size(element-height) * 0.6); - } - } - - &:checked + label { - &:before { - content: '\f00c'; - } - } - } - - input[type="checkbox"] { - & + label { - &:before { - border-radius: _size(border-radius); - } - } - } - - input[type="radio"] { - & + label { - &:before { - border-radius: 100%; - } - } - } - - ::-webkit-input-placeholder { - opacity: 1.0; - } - - :-moz-placeholder { - opacity: 1.0; - } - - ::-moz-placeholder { - opacity: 1.0; - } - - :-ms-input-placeholder { - opacity: 1.0; - } - - @mixin color-form($p: null) { - $highlight: _palette($p, highlight); - - label { - color: _palette($p, fg-bold); - } - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="tel"], - input[type="search"], - input[type="url"], - select, - textarea { - background-color: _palette($p, border-bg); - border-color: _palette($p, border); - - &:focus { - @if $p == $highlight { - border-color: _palette($p, fg-bold); - box-shadow: 0 0 0 1px _palette($p, fg-bold); - } - @else { - border-color: _palette(accent1, bg); - box-shadow: 0 0 0 1px _palette(accent1, bg); - } - } - } - - select { - background-image: svg-url(""); - - option { - color: _palette($p, fg); - background-color: _palette($p, bg); - } - } - - input[type="checkbox"], - input[type="radio"], { - & + label { - color: _palette($p, fg); - - &:before { - background: _palette($p, border-bg); - border-color: _palette($p, border); - } - } - - &:checked + label { - &:before { - @if $p == $highlight { - background-color: _palette($p, fg-bold); - border-color: _palette($p, fg-bold); - color: _palette($p, bg); - } - @else { - background-color: _palette(accent1, bg); - border-color: _palette(accent1, bg); - color: _palette(accent1, fg-bold); - } - } - } - - &:focus + label { - &:before { - @if $p == $highlight { - border-color: _palette($p, fg-bold); - box-shadow: 0 0 0 1px _palette($p, fg-bold); - } - @else { - border-color: _palette(accent1, bg); - box-shadow: 0 0 0 1px _palette(accent1, bg); - } - } - } - } - - ::-webkit-input-placeholder { - color: _palette($p, fg-light) !important; - } - - :-moz-placeholder { - color: _palette($p, fg-light) !important; - } - - ::-moz-placeholder { - color: _palette($p, fg-light) !important; - } - - :-ms-input-placeholder { - color: _palette($p, fg-light) !important; - } - } - - @include color-form; \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_grid.scss b/www.divd.nl/assets/sass/components/_grid.scss deleted file mode 100644 index 9e503b5d..00000000 --- a/www.divd.nl/assets/sass/components/_grid.scss +++ /dev/null @@ -1,23 +0,0 @@ -/* Grid */ - - @include grid(3rem); - - @include breakpoint('<=xlarge') { - @include grid(3rem, 'xlarge'); - } - - @include breakpoint('<=large') { - @include grid(1.5rem, 'large'); - } - - @include breakpoint('<=medium') { - @include grid(1.5rem, 'medium'); - } - - @include breakpoint('<=small') { - @include grid(1.25rem, 'small'); - } - - @include breakpoint('<=xsmall') { - @include grid(1.25rem, 'xsmall'); - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_highlights.scss b/www.divd.nl/assets/sass/components/_highlights.scss deleted file mode 100644 index a0f10cc1..00000000 --- a/www.divd.nl/assets/sass/components/_highlights.scss +++ /dev/null @@ -1,65 +0,0 @@ -/* Highlights */ - - .highlights { - width: 100%; - margin: (_size(element-margin) * 1.25) 0; - - @include flexgrid(( - columns: 3, - gutters: 3rem, - vertical-align: stretch - )); - - .content { - border-radius: _size(border-radius); - height: 100%; - padding: 3rem; - text-align: center; - - .icon { - font-size: 5rem; - } - } - - > div { - - > :last-child { - margin-bottom: 0; - } - - } - - @include breakpoint('<=medium') { - @include flexgrid-resize(( - columns: 2, - gutters: 2rem, - prev-columns: 3 - )); - - .content { - padding: 2rem; - } - } - - @include breakpoint('<=small') { - @include flexgrid-resize(( - columns: 1, - gutters: 2rem, - prev-columns: (3, 2) - )); - - } - } - - @mixin color-highlights($p: null) { - $highlight: _palette($p, highlight); - - .highlights { - .content { - background: _palette($p, bg); - box-shadow: 0px 0px 4px 1px _palette($p, border-lt); - } - } - } - - @include color-highlights; \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_icon.scss b/www.divd.nl/assets/sass/components/_icon.scss deleted file mode 100644 index d0024947..00000000 --- a/www.divd.nl/assets/sass/components/_icon.scss +++ /dev/null @@ -1,11 +0,0 @@ -/* Icon */ - - .icon { - @include icon; - border-bottom: none; - position: relative; - - > .label { - display: none; - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_icons.scss b/www.divd.nl/assets/sass/components/_icons.scss deleted file mode 100644 index 55ae388b..00000000 --- a/www.divd.nl/assets/sass/components/_icons.scss +++ /dev/null @@ -1,22 +0,0 @@ -/* Icons */ - - ul.icons { - cursor: default; - list-style: none; - padding-left: 0; - - li { - display: inline-block; - padding: 0 1rem 0 0; - - &:last-child { - padding-right: 0; - } - - .icon { - &:before { - font-size: 2rem; - } - } - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_image.scss b/www.divd.nl/assets/sass/components/_image.scss deleted file mode 100644 index 242b075a..00000000 --- a/www.divd.nl/assets/sass/components/_image.scss +++ /dev/null @@ -1,54 +0,0 @@ -/* Image */ - - .image { - border-radius: _size(border-radius); - border: 0; - display: inline-block; - position: relative; - - img { - border-radius: _size(border-radius); - display: block; - } - - &.left, - &.right { - max-width: 40%; - - img { - width: 100%; - } - } - - &.left { - float: left; - margin: 0 2rem 2rem 0; - top: 0.25rem; - } - - &.right { - float: right; - margin: 0 0 2rem 2rem; - top: 0.25rem; - } - - &.fit { - display: block; - margin: 0 0 _size(element-margin) 0; - width: 100%; - - img { - width: 100%; - } - } - - &.main { - display: block; - margin: 0 0 (_size(element-margin) * 1.5) 0; - width: 100%; - - img { - width: 100%; - } - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_inner.scss b/www.divd.nl/assets/sass/components/_inner.scss deleted file mode 100644 index 7aa2cb33..00000000 --- a/www.divd.nl/assets/sass/components/_inner.scss +++ /dev/null @@ -1,11 +0,0 @@ -/* Inner */ - - .inner { - margin: 0 auto; - width: _size(inner-width); - max-width: calc(100% - 6rem); - - @include breakpoint('<=xsmall') { - max-width: calc(100% - 3rem); - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_list.scss b/www.divd.nl/assets/sass/components/_list.scss deleted file mode 100644 index 16a7957d..00000000 --- a/www.divd.nl/assets/sass/components/_list.scss +++ /dev/null @@ -1,88 +0,0 @@ -/* List */ - - ol { - list-style: decimal; - margin: 0 0 _size(element-margin) 0; - padding-left: 1.25rem; - - li { - padding-left: 0.25rem; - } - } - - ul { - list-style: disc; - margin: 0 0 _size(element-margin) 0; - padding-left: 1rem; - - li { - padding-left: 0.325rem; - } - - &.plain { - list-style: none; - padding-left: 0; - - li { - margin-bottom: 1rem; - - .icon { - border-radius: _size(border-radius); - color: _palette(accent1,fg-bold); - display: inline-block; - margin-right: 1rem; - text-align:center; - width: 2rem; - height: 2rem; - line-height: 2rem; - background: rgba(0,0,0,0.5); - } - - } - } - - &.alt { - list-style: none; - padding-left: 0; - - li { - border-top: solid 1px; - padding: 0.75rem 0; - - &:first-child { - border-top: 0; - padding-top: 0; - } - - &:last-child { - padding-bottom: 0; - } - } - } - } - - dl { - margin: 0 0 _size(element-margin) 0; - - dt { - display: block; - font-weight: _font(weight-bold); - margin: 0 0 (_size(element-margin) * 0.5) 0; - } - - dd { - margin-left: (_size(element-margin) * 0.75); - } - } - - @mixin color-list($p: null) { - ul { - &.alt { - li { - border-top-color: _palette($p, border); - } - } - } - } - - @include color-list; \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_table.scss b/www.divd.nl/assets/sass/components/_table.scss deleted file mode 100644 index 40682c0b..00000000 --- a/www.divd.nl/assets/sass/components/_table.scss +++ /dev/null @@ -1,108 +0,0 @@ -/* Table */ - - .table-wrapper { - -webkit-overflow-scrolling: touch; - overflow-x: auto; - } - - table { - margin: 0 0 _size(element-margin) 0; - width: 100%; - - tbody { - tr { - border: solid 1px; - border-left: 0; - border-right: 0; - } - } - - td { - padding: 0.75rem 0.75rem; - } - - th { - font-size: 0.9rem; - font-weight: _font(weight-bold); - padding: 0 0.75rem 0.75rem 0.75rem; - text-align: left; - } - - thead { - border-bottom: solid 2px; - } - - tfoot { - border-top: solid 2px; - } - - &.alt { - border-collapse: separate; - - tbody { - tr { - td { - border: solid 1px; - border-left-width: 0; - border-top-width: 0; - - &:first-child { - border-left-width: 1px; - } - } - - &:first-child { - td { - border-top-width: 1px; - } - } - } - } - - thead { - border-bottom: 0; - } - - tfoot { - border-top: 0; - } - } - } - - @mixin color-table($p: null) { - table { - tbody { - tr { - border-color: _palette($p, border); - - &:nth-child(2n + 1) { - background-color: _palette($p, border-bg); - } - } - } - - th { - color: _palette($p, fg-bold); - } - - thead { - border-bottom-color: _palette($p, border); - } - - tfoot { - border-top-color: _palette($p, border); - } - - &.alt { - tbody { - tr { - td { - border-color: _palette($p, border); - } - } - } - } - } - } - - @include color-table; \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_testimonials.scss b/www.divd.nl/assets/sass/components/_testimonials.scss deleted file mode 100644 index 022066d9..00000000 --- a/www.divd.nl/assets/sass/components/_testimonials.scss +++ /dev/null @@ -1,92 +0,0 @@ -/* Testimonials */ - - .testimonials { - margin: (_size(element-margin) * 1.25) 0; - width: 100%; - - @include flexgrid(( - columns: 3, - gutters: 3rem, - vertical-align: stretch, - )); - - .content { - border-radius: _size(border-radius); - height: 100%; - padding: 3rem; - - .author { - @include vendor('display','flex'); - @include vendor('align-items','center'); - - blockquote { - margin: 0; - } - - .image { - margin-right: 2rem; - width: 20%; - - img { - border-radius: 100%; - max-width: 100%; - } - } - } - - .credit { - font-size: 0.75rem; - } - - p { - &:last-child { - margin: 0; - } - } - } - - > div { - > :last-child { - margin-bottom: 0; - } - } - - @include breakpoint('<=medium') { - @include flexgrid-resize(( - columns: 2, - gutters: 2rem, - prev-columns: 3 - )); - - .content { - padding: 2rem; - } - } - - @include breakpoint('<=small') { - @include flexgrid-resize(( - columns: 1, - gutters: 2rem, - prev-columns: (3, 2) - )); - } - } - - @mixin color-testimonials($p: null) { - $highlight: _palette($p, highlight); - - .testimonials { - .content { - background: _palette($p, bg); - box-shadow: 0px 0px 4px 1px _palette($p, border-lt); - - .credit { - strong { - color: _palette($highlight,bg); - } - } - } - } - } - - @include color-testimonials; \ No newline at end of file diff --git a/www.divd.nl/assets/sass/components/_wrapper.scss b/www.divd.nl/assets/sass/components/_wrapper.scss deleted file mode 100644 index c7cdd0cd..00000000 --- a/www.divd.nl/assets/sass/components/_wrapper.scss +++ /dev/null @@ -1,20 +0,0 @@ -/* Wrapper */ - - .wrapper { - @include padding(8rem, 0); - position: relative; - z-index: 1; - - @include breakpoint('<=large') { - @include padding(4rem, 0); - } - - @include breakpoint('<=small') { - @include padding(3rem, 0); - } - - @include breakpoint('<=xsmall') { - @include padding(2rem, 0); - } - - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/layout/_banner.scss b/www.divd.nl/assets/sass/layout/_banner.scss deleted file mode 100644 index 706b91b5..00000000 --- a/www.divd.nl/assets/sass/layout/_banner.scss +++ /dev/null @@ -1,152 +0,0 @@ -/* Banner */ - - #banner { - -ms-flex-align: center; - -ms-flex-pack: center; - @include color(accent2); - @include vendor('align-items', 'center'); - @include vendor('display', 'flex'); - @include vendor('justify-content', 'center'); - background-image: url('../../images/banner.jpg'); - background-position: center; - background-repeat: no-repeat; - background-size: cover; - border-top: 0; - display: -ms-flexbox; - height: 35rem !important; - min-height: 35rem; - overflow: hidden; - position: relative; - text-align: center; - width: 100%; - - > .inner { - @include vendor('transform', 'scale(1.0)'); - @include vendor('transition', ( - 'opacity #{_duration(banner)} ease', - 'transform #{_duration(banner)} ease' - )); - opacity: 1; - position: relative; - z-index: 3; - - > :last-child { - margin-bottom: 0; - } - } - - h1 { - font-size: 4rem; - margin-bottom: 1rem; - } - - p { - font-size: 1.5rem; - } - - a { - color: _palette(accent2, fg); - text-decoration: none; - - &:hover { - color: _palette(accent2, fg-bold); - } - } - - video { - @include vendor('transform', 'translateX(50%) translateY(50%)'); - bottom: 50%; - height: auto; - min-height: 100%; - min-width: 100%; - overflow: hidden; - position: absolute; - right: 50%; - width: auto; - } - - &:before { - @include vendor('transition', 'opacity 3s ease'); - @include vendor('transition-delay', '#{_duration(banner) * 1.25}'); - background: _palette(accent2,bg); - content: ''; - display: block; - height: 100%; - left: 0; - opacity: 0.45; - position: absolute; - top: 0; - width: 100%; - z-index: 1; - } - - &:after { - background: linear-gradient(135deg, _palette(accent1,bg) 0%,_palette(accent2,bg) 74%); - content: ' '; - display: block; - height: 100%; - left: 0; - opacity: 0.6; - position: absolute; - top: 0; - webkit-linear-gradientidth: 100%; - width: 100%; - z-index: 1; - } - - &.small { - height: 30vh !important; - min-height: 30vh; - } - - @include breakpoint('<=large') { - video { - display: none; - } - } - - @include breakpoint('<=small') { - height: auto !important; - min-height: 0; - padding: 4rem 2rem 4rem 2rem; - - .inner { - width: 100%; - } - - h1 { - font-size: 1.75rem; - margin-bottom: 0.5rem; - padding-bottom: 0; - } - - p { - font-size: 1.25rem; - } - - br { - display: none; - } - - .button { - width: 100%; - } - } - - @include breakpoint('<=xsmall') { - p { - font-size: 1rem; - } - } - - body.is-preload & { - .inner { - @include vendor('transform', 'scale(0.99)'); - opacity: 0; - } - - &:before { - opacity: 1; - } - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/layout/_cta.scss b/www.divd.nl/assets/sass/layout/_cta.scss deleted file mode 100644 index 0e7c803f..00000000 --- a/www.divd.nl/assets/sass/layout/_cta.scss +++ /dev/null @@ -1,22 +0,0 @@ -/* CTA */ - - #cta { - @include color(accent1); - background-attachment: fixed; - background-image: linear-gradient(transparentize(_palette(accent1,bg), 0.75), transparentize(_palette(accent1,bg), 0.75)), url(../../images/cta01.jpg); - background-position: bottom; - background-repeat: no-repeat; - background-size: cover; - position: relative; - text-align: center; - z-index: 1; - - .inner { - position: relative; - z-index: 3; - } - - @include breakpoint('<=medium') { - background-attachment: scroll; - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/layout/_footer.scss b/www.divd.nl/assets/sass/layout/_footer.scss deleted file mode 100644 index 4366a821..00000000 --- a/www.divd.nl/assets/sass/layout/_footer.scss +++ /dev/null @@ -1,77 +0,0 @@ -/* Footer */ - - #footer { - @include color(accent2); - @include padding(8rem, 0); - - a { - color: _palette(accent2, fg); - text-decoration: none; - - &:hover { - color: _palette(accent1, bg); - } - } - - .content { - @include vendor('display', 'flex'); - - section { - width: 25%; - - &:first-child { - width: 50%; - padding-right: _size(element-margin) * 2; - } - - &:last-child { - padding-left: _size(element-margin) * 2; - } - } - } - - .copyright { - border-top: 1px solid; - font-size: 0.8rem; - opacity: 0.5; - padding: _size(element-margin) 0; - text-align: center; - } - - @include breakpoint('<=large') { - @include padding(4rem, 0); - } - - @include breakpoint('<=medium') { - .content { - @include vendor('flex-wrap', 'wrap'); - - section { - width: 50%; - - &:first-child { - width: 100%; - padding-right: 0; - } - } - } - } - - @include breakpoint('<=small') { - @include padding(3rem, 0); - - .content { - section { - width: 100%; - - &:last-child { - padding-left: 0; - } - } - } - } - - @include breakpoint('<=xsmall') { - @include padding(2rem, 0); - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/layout/_header.scss b/www.divd.nl/assets/sass/layout/_header.scss deleted file mode 100644 index 910662e6..00000000 --- a/www.divd.nl/assets/sass/layout/_header.scss +++ /dev/null @@ -1,113 +0,0 @@ -/* Header */ - - $accent: accent2; - - body { - - padding-top: _size(header-height); - - &:before { - content: ' '; - background-image: url(../../images/bg.jpg); - background-size: cover; - background-repeat: no-repeat; - background-attachment: fixed; - display: block; - position: fixed; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: -1; - opacity: 0.05; - } - } - - #header { - @include vendor('align-items', 'center'); - @include vendor('display', 'flex'); - @include vendor('justify-content', 'space-between'); - background: _palette($accent, bg); - color: _palette($accent, fg); - cursor: default; - height: _size(header-height); - left: 0; - line-height: _size(header-height); - position: fixed; - top: 0; - width: 100%; - z-index: _misc(z-index-base) + 1; - - > .logo { - color: _palette($accent, fg-bold); - font-size: 1rem; - font-weight: _font(weight-bold); - height: inherit; - line-height: inherit; - padding: 0 1.25rem; - text-decoration: none; - } - - > nav { - > a { - color: inherit; - display: inline-block; - padding: 0 0.75rem; - text-decoration: none; - - &:hover { - color: _palette($accent, fg-bold); - } - - &[href="#menu"] { - @include icon; - -webkit-tap-highlight-color: rgba(0,0,0,0); - - &:before { - content: '\f0c9'; - margin: 0 0.5rem 0 0; - } - } - - & + a[href="#menu"]:last-child { - border-left: solid 1px _palette($accent, border); - margin-left: 0.5rem; - padding-left: 1.25rem; - } - - &:last-child { - padding-right: 1.25rem; - } - - @include breakpoint('<=small') { - padding: 0 0.5rem; - - & + a[href="#menu"]:last-child { - margin-left: 0.25rem; - padding-left: 1rem; - } - - &:last-child { - padding-right: 1rem; - } - } - } - } - } - - @include breakpoint('<=medium') { - body { - padding-top: 44px; - } - - #header { - height: 44px; - line-height: 44px; - } - } - - @include breakpoint('<=xsmall') { - #header { - min-width: 320px; - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/layout/_heading.scss b/www.divd.nl/assets/sass/layout/_heading.scss deleted file mode 100644 index 208da65c..00000000 --- a/www.divd.nl/assets/sass/layout/_heading.scss +++ /dev/null @@ -1,45 +0,0 @@ -/* Heading */ - - #heading { - -ms-flex-align: center; - -ms-flex-pack: center; - @include color(accent2); - @include vendor('align-items', 'center'); - @include vendor('display', 'flex'); - @include vendor('justify-content', 'center'); - background-image: linear-gradient(transparentize(_palette(accent2,bg), 0.75), transparentize(_palette(accent2,bg), 0.75)), url('../../images/banner.jpg'); - background-position: center; - background-repeat: no-repeat; - background-size: cover; - border-top: 0; - display: -ms-flexbox; - height: 15rem !important; - min-height: 15rem; - overflow: hidden; - position: relative; - text-align: center; - width: 100%; - - &:before { - background: linear-gradient(135deg, _palette(accent1,bg) 0%,_palette(accent2,bg) 74%); - content: ' '; - display: block; - height: 100%; - left: 0; - opacity: 0.6; - position: absolute; - top: 0; - width: 100%; - z-index: 1; - } - - h1 { - margin-bottom: 0; - position: relative; - z-index: 2; - } - - @include breakpoint('<=medium') { - padding: 2rem; - } - } diff --git a/www.divd.nl/assets/sass/layout/_main.scss b/www.divd.nl/assets/sass/layout/_main.scss deleted file mode 100644 index ebad6bc6..00000000 --- a/www.divd.nl/assets/sass/layout/_main.scss +++ /dev/null @@ -1,19 +0,0 @@ -/* Main */ - - #main { - .content { - background: _palette(bg); - border-radius: _size(border-radius); - box-shadow: 0px 0px 4px 1px _palette(border-lt); - margin-bottom: _size(element-margin); - padding: 3rem; - - @include breakpoint('<=medium') { - padding: 2rem; - } - - @include breakpoint('<=xsmall') { - padding: 1.5rem; - } - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/layout/_menu.scss b/www.divd.nl/assets/sass/layout/_menu.scss deleted file mode 100644 index 7927c165..00000000 --- a/www.divd.nl/assets/sass/layout/_menu.scss +++ /dev/null @@ -1,104 +0,0 @@ -/* Menu */ - - $accent: accent2; - - #menu { - @include color-typography($accent); - @include color-button($accent); - @include vendor('transform', 'translateX(#{_size(menu-width)})'); - @include vendor('transition', ( - 'transform #{_duration(menu)} ease', - 'box-shadow #{_duration(menu)} ease', - 'visibility #{_duration(menu)}' - )); - -webkit-overflow-scrolling: touch; - box-shadow: none; - height: 100%; - max-width: 80%; - overflow-y: auto; - padding: 3rem 2rem; - position: fixed; - right: 0; - top: 0; - visibility: hidden; - width: _size(menu-width); - z-index: _misc(z-index-base) + 2; - - > ul { - margin: 0 0 (_size(element-margin) * 0.5) 0; - - &.links { - list-style: none; - padding: 0; - - > li { - padding: 0; - - > a { - border: 0; - border-top: solid 1px _palette($accent, border); - color: inherit; - display: block; - letter-spacing: _size(letter-spacing-alt); - line-height: 3.5rem; - text-decoration: none; - - &:hover { - color: _palette($accent, fg-bold); - } - } - - &:first-child { - > a { - border-top: 0; - } - } - } - } - } - - .close { - @include icon; - @include vendor('transition', 'color #{_duration(transition)} ease-in-out'); - -webkit-tap-highlight-color: rgba(0,0,0,0); - border: 0; - color: _palette($accent, fg-light); - cursor: pointer; - display: block; - height: 3.25rem; - line-height: 3.25rem; - padding-right: 1.25rem; - position: absolute; - right: 0; - text-align: right; - top: 0; - vertical-align: middle; - width: 7rem; - - &:before { - content: '\f00d'; - font-size: 1.25rem; - } - - &:hover { - color: _palette($accent, fg-bold); - } - - @include breakpoint('<=small') { - height: 4rem; - line-height: 4rem; - } - } - - @include breakpoint('<=small') { - padding: 2.5rem 1.75rem; - } - } - - body.is-menu-visible { - #menu { - @include vendor('transform', 'translateX(0)'); - box-shadow: 0 0 1.5rem 0 rgba(0,0,0,0.2); - visibility: visible; - } - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/libs/_breakpoints.scss b/www.divd.nl/assets/sass/libs/_breakpoints.scss deleted file mode 100644 index ce56df77..00000000 --- a/www.divd.nl/assets/sass/libs/_breakpoints.scss +++ /dev/null @@ -1,223 +0,0 @@ -// breakpoints.scss v0.1-dev | @ajlkn | MIT licensed */ - -// Vars. - - /// Breakpoints. - /// @var {list} - $breakpoints: () !global; - -// Mixins. - - /// Sets breakpoints. - /// @param {map} $x Breakpoints. - @mixin breakpoints($x: ()) { - $breakpoints: $x !global; - } - - /// Wraps @content in a @media block targeting a specific orientation. - /// @param {string} $orientation Orientation. - @mixin orientation($orientation) { - @media screen and (orientation: #{$orientation}) { - @content; - } - } - - /// Wraps @content in a @media block using a given query. - /// @param {string} $query Query. - @mixin breakpoint($query: null) { - - $breakpoint: null; - $op: null; - $media: null; - - // Determine operator, breakpoint. - - // Greater than or equal. - @if (str-slice($query, 0, 2) == '>=') { - - $op: 'gte'; - $breakpoint: str-slice($query, 3); - - } - - // Less than or equal. - @elseif (str-slice($query, 0, 2) == '<=') { - - $op: 'lte'; - $breakpoint: str-slice($query, 3); - - } - - // Greater than. - @elseif (str-slice($query, 0, 1) == '>') { - - $op: 'gt'; - $breakpoint: str-slice($query, 2); - - } - - // Less than. - @elseif (str-slice($query, 0, 1) == '<') { - - $op: 'lt'; - $breakpoint: str-slice($query, 2); - - } - - // Not. - @elseif (str-slice($query, 0, 1) == '!') { - - $op: 'not'; - $breakpoint: str-slice($query, 2); - - } - - // Equal. - @else { - - $op: 'eq'; - $breakpoint: $query; - - } - - // Build media. - @if ($breakpoint and map-has-key($breakpoints, $breakpoint)) { - - $a: map-get($breakpoints, $breakpoint); - - // Range. - @if (type-of($a) == 'list') { - - $x: nth($a, 1); - $y: nth($a, 2); - - // Max only. - @if ($x == null) { - - // Greater than or equal (>= 0 / anything) - @if ($op == 'gte') { - $media: 'screen'; - } - - // Less than or equal (<= y) - @elseif ($op == 'lte') { - $media: 'screen and (max-width: ' + $y + ')'; - } - - // Greater than (> y) - @elseif ($op == 'gt') { - $media: 'screen and (min-width: ' + ($y + 1) + ')'; - } - - // Less than (< 0 / invalid) - @elseif ($op == 'lt') { - $media: 'screen and (max-width: -1px)'; - } - - // Not (> y) - @elseif ($op == 'not') { - $media: 'screen and (min-width: ' + ($y + 1) + ')'; - } - - // Equal (<= y) - @else { - $media: 'screen and (max-width: ' + $y + ')'; - } - - } - - // Min only. - @else if ($y == null) { - - // Greater than or equal (>= x) - @if ($op == 'gte') { - $media: 'screen and (min-width: ' + $x + ')'; - } - - // Less than or equal (<= inf / anything) - @elseif ($op == 'lte') { - $media: 'screen'; - } - - // Greater than (> inf / invalid) - @elseif ($op == 'gt') { - $media: 'screen and (max-width: -1px)'; - } - - // Less than (< x) - @elseif ($op == 'lt') { - $media: 'screen and (max-width: ' + ($x - 1) + ')'; - } - - // Not (< x) - @elseif ($op == 'not') { - $media: 'screen and (max-width: ' + ($x - 1) + ')'; - } - - // Equal (>= x) - @else { - $media: 'screen and (min-width: ' + $x + ')'; - } - - } - - // Min and max. - @else { - - // Greater than or equal (>= x) - @if ($op == 'gte') { - $media: 'screen and (min-width: ' + $x + ')'; - } - - // Less than or equal (<= y) - @elseif ($op == 'lte') { - $media: 'screen and (max-width: ' + $y + ')'; - } - - // Greater than (> y) - @elseif ($op == 'gt') { - $media: 'screen and (min-width: ' + ($y + 1) + ')'; - } - - // Less than (< x) - @elseif ($op == 'lt') { - $media: 'screen and (max-width: ' + ($x - 1) + ')'; - } - - // Not (< x and > y) - @elseif ($op == 'not') { - $media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')'; - } - - // Equal (>= x and <= y) - @else { - $media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')'; - } - - } - - } - - // String. - @else { - - // Missing a media type? Prefix with "screen". - @if (str-slice($a, 0, 1) == '(') { - $media: 'screen and ' + $a; - } - - // Otherwise, use as-is. - @else { - $media: $a; - } - - } - - } - - // Output. - @media #{$media} { - @content; - } - - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/libs/_flexgrid.scss b/www.divd.nl/assets/sass/libs/_flexgrid.scss deleted file mode 100644 index 293a364d..00000000 --- a/www.divd.nl/assets/sass/libs/_flexgrid.scss +++ /dev/null @@ -1,338 +0,0 @@ -// flexgrid.scss v0.1-dev | @ajlkn | MIT licensed */ - -// Mixins. - - /// Initializes base flexgrid classes. - /// @param {string} $vertical-align Vertical alignment of cells. - /// @param {string} $horizontal-align Horizontal alignment of cells. - @mixin flexgrid-base($vertical-align: null, $horizontal-align: null) { - - // Grid. - @include vendor('display', 'flex'); - @include vendor('flex-wrap', 'wrap'); - - // Vertical alignment. - @if ($vertical-align == top) { - @include vendor('align-items', 'flex-start'); - } - @else if ($vertical-align == bottom) { - @include vendor('align-items', 'flex-end'); - } - @else if ($vertical-align == center) { - @include vendor('align-items', 'center'); - } - @else { - @include vendor('align-items', 'stretch'); - } - - // Horizontal alignment. - @if ($horizontal-align != null) { - text-align: $horizontal-align; - } - - // Cells. - > * { - @include vendor('flex-shrink', '1'); - @include vendor('flex-grow', '0'); - } - - } - - /// Sets up flexgrid columns. - /// @param {integer} $columns Columns. - @mixin flexgrid-columns($columns) { - - > * { - $cell-width: 100% / $columns; - width: #{$cell-width}; - } - - } - - /// Sets up flexgrid gutters. - /// @param {integer} $columns Columns. - /// @param {number} $gutters Gutters. - @mixin flexgrid-gutters($columns, $gutters) { - - // Apply padding. - > * { - $cell-width: 100% / $columns; - - padding: ($gutters * 0.5); - width: $cell-width; - } - - } - - /// Sets up flexgrid gutters (flush). - /// @param {integer} $columns Columns. - /// @param {number} $gutters Gutters. - @mixin flexgrid-gutters-flush($columns, $gutters) { - - // Apply padding. - > * { - $cell-width: 100% / $columns; - $cell-width-pad: $gutters / $columns; - - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } - - // Clear top/bottom gutters. - > :nth-child(-n + #{$columns}) { - padding-top: 0; - } - - > :nth-last-child(-n + #{$columns}) { - padding-bottom: 0; - } - - // Clear left/right gutters. - > :nth-child(#{$columns}n + 1) { - padding-left: 0; - } - - > :nth-child(#{$columns}n) { - padding-right: 0; - } - - // Adjust widths of leftmost and rightmost cells. - > :nth-child(#{$columns}n + 1), - > :nth-child(#{$columns}n) { - $cell-width: 100% / $columns; - $cell-width-pad: ($gutters / $columns) - ($gutters / 2); - - width: calc(#{$cell-width} + #{$cell-width-pad}); - } - - } - - /// Reset flexgrid gutters (flush only). - /// Used to override a previous set of flexgrid gutter classes. - /// @param {integer} $columns Columns. - /// @param {number} $gutters Gutters. - /// @param {integer} $prev-columns Previous columns. - @mixin flexgrid-gutters-flush-reset($columns, $gutters, $prev-columns) { - - // Apply padding. - > * { - $cell-width: 100% / $prev-columns; - $cell-width-pad: $gutters / $prev-columns; - - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } - - // Clear top/bottom gutters. - > :nth-child(-n + #{$prev-columns}) { - padding-top: ($gutters * 0.5); - } - - > :nth-last-child(-n + #{$prev-columns}) { - padding-bottom: ($gutters * 0.5); - } - - // Clear left/right gutters. - > :nth-child(#{$prev-columns}n + 1) { - padding-left: ($gutters * 0.5); - } - - > :nth-child(#{$prev-columns}n) { - padding-right: ($gutters * 0.5); - } - - // Adjust widths of leftmost and rightmost cells. - > :nth-child(#{$prev-columns}n + 1), - > :nth-child(#{$prev-columns}n) { - $cell-width: 100% / $columns; - $cell-width-pad: $gutters / $columns; - - padding: ($gutters * 0.5); - width: calc(#{$cell-width} + #{$cell-width-pad}); - } - - } - - /// Adds debug styles to current flexgrid element. - @mixin flexgrid-debug() { - - box-shadow: 0 0 0 1px red; - - > * { - box-shadow: inset 0 0 0 1px blue; - position: relative; - - > * { - position: relative; - box-shadow: inset 0 0 0 1px green; - } - } - - } - - /// Initializes the current element as a flexgrid. - /// @param {integer} $columns Columns (optional). - /// @param {number} $gutters Gutters (optional). - /// @param {bool} $flush If true, clears padding around the very edge of the grid. - @mixin flexgrid($settings: ()) { - - // Settings. - - // Debug. - $debug: false; - - @if (map-has-key($settings, 'debug')) { - $debug: map-get($settings, 'debug'); - } - - // Vertical align. - $vertical-align: null; - - @if (map-has-key($settings, 'vertical-align')) { - $vertical-align: map-get($settings, 'vertical-align'); - } - - // Horizontal align. - $horizontal-align: null; - - @if (map-has-key($settings, 'horizontal-align')) { - $horizontal-align: map-get($settings, 'horizontal-align'); - } - - // Columns. - $columns: null; - - @if (map-has-key($settings, 'columns')) { - $columns: map-get($settings, 'columns'); - } - - // Gutters. - $gutters: 0; - - @if (map-has-key($settings, 'gutters')) { - $gutters: map-get($settings, 'gutters'); - } - - // Flush. - $flush: true; - - @if (map-has-key($settings, 'flush')) { - $flush: map-get($settings, 'flush'); - } - - // Initialize base grid. - @include flexgrid-base($vertical-align, $horizontal-align); - - // Debug? - @if ($debug) { - @include flexgrid-debug; - } - - // Columns specified? - @if ($columns != null) { - - // Initialize columns. - @include flexgrid-columns($columns); - - // Gutters specified? - @if ($gutters > 0) { - - // Flush gutters? - @if ($flush) { - - // Initialize gutters (flush). - @include flexgrid-gutters-flush($columns, $gutters); - - } - - // Otherwise ... - @else { - - // Initialize gutters. - @include flexgrid-gutters($columns, $gutters); - - } - - } - - } - - } - - /// Resizes a previously-initialized grid. - /// @param {integer} $columns Columns. - /// @param {number} $gutters Gutters (optional). - /// @param {list} $reset A list of previously-initialized grid columns (only if $flush is true). - /// @param {bool} $flush If true, clears padding around the very edge of the grid. - @mixin flexgrid-resize($settings: ()) { - - // Settings. - - // Columns. - $columns: 1; - - @if (map-has-key($settings, 'columns')) { - $columns: map-get($settings, 'columns'); - } - - // Gutters. - $gutters: 0; - - @if (map-has-key($settings, 'gutters')) { - $gutters: map-get($settings, 'gutters'); - } - - // Previous columns. - $prev-columns: false; - - @if (map-has-key($settings, 'prev-columns')) { - $prev-columns: map-get($settings, 'prev-columns'); - } - - // Flush. - $flush: true; - - @if (map-has-key($settings, 'flush')) { - $flush: map-get($settings, 'flush'); - } - - // Resize columns. - @include flexgrid-columns($columns); - - // Gutters specified? - @if ($gutters > 0) { - - // Flush gutters? - @if ($flush) { - - // Previous columns specified? - @if ($prev-columns) { - - // Convert to list if it isn't one already. - @if (type-of($prev-columns) != list) { - $prev-columns: ($prev-columns); - } - - // Step through list of previous columns and reset them. - @each $x in $prev-columns { - @include flexgrid-gutters-flush-reset($columns, $gutters, $x); - } - - } - - // Resize gutters (flush). - @include flexgrid-gutters-flush($columns, $gutters); - - } - - // Otherwise ... - @else { - - // Resize gutters. - @include flexgrid-gutters($columns, $gutters); - - } - - } - - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/libs/_functions.scss b/www.divd.nl/assets/sass/libs/_functions.scss deleted file mode 100644 index 54bcb0be..00000000 --- a/www.divd.nl/assets/sass/libs/_functions.scss +++ /dev/null @@ -1,92 +0,0 @@ -// skel-baseline v3.0.1 | (c) n33 | skel.io | MIT licensed - -/// Removes a specific item from a list. -/// @author Hugo Giraudel -/// @param {list} $list List. -/// @param {integer} $index Index. -/// @return {list} Updated list. -@function remove-nth($list, $index) { - - $result: null; - - @if type-of($index) != number { - @warn "$index: #{quote($index)} is not a number for `remove-nth`."; - } - @else if $index == 0 { - @warn "List index 0 must be a non-zero integer for `remove-nth`."; - } - @else if abs($index) > length($list) { - @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; - } - @else { - - $result: (); - $index: if($index < 0, length($list) + $index + 1, $index); - - @for $i from 1 through length($list) { - - @if $i != $index { - $result: append($result, nth($list, $i)); - } - - } - - } - - @return $result; - -} - -/// Gets a value from a map. -/// @author Hugo Giraudel -/// @param {map} $map Map. -/// @param {string} $keys Key(s). -/// @return {string} Value. -@function val($map, $keys...) { - - @if nth($keys, 1) == null { - $keys: remove-nth($keys, 1); - } - - @each $key in $keys { - $map: map-get($map, $key); - } - - @return $map; - -} - -/// Gets a duration value. -/// @param {string} $keys Key(s). -/// @return {string} Value. -@function _duration($keys...) { - @return val($duration, $keys...); -} - -/// Gets a font value. -/// @param {string} $keys Key(s). -/// @return {string} Value. -@function _font($keys...) { - @return val($font, $keys...); -} - -/// Gets a misc value. -/// @param {string} $keys Key(s). -/// @return {string} Value. -@function _misc($keys...) { - @return val($misc, $keys...); -} - -/// Gets a palette value. -/// @param {string} $keys Key(s). -/// @return {string} Value. -@function _palette($keys...) { - @return val($palette, $keys...); -} - -/// Gets a size value. -/// @param {string} $keys Key(s). -/// @return {string} Value. -@function _size($keys...) { - @return val($size, $keys...); -} \ No newline at end of file diff --git a/www.divd.nl/assets/sass/libs/_grid.scss b/www.divd.nl/assets/sass/libs/_grid.scss deleted file mode 100644 index 56fa1515..00000000 --- a/www.divd.nl/assets/sass/libs/_grid.scss +++ /dev/null @@ -1,121 +0,0 @@ -// grid.scss v0.1-dev | @ajlkn | MIT licensed */ - -// Mixins. - - /// Initializes grid classes. - /// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually). - /// @param {string} $suffix Optional column class suffix. - /// @param {list} $override Optional list of column classes to override. - @mixin grid($gutters: 1.5em, $suffix: '', $override: ()) { - - // Initialize. - $cols: 12; - $multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00; - $unit: 100% / $cols; - $suffixes: join($override, ($suffix)); - - // Gutters. - $guttersCols: null; - $guttersRows: null; - - @if (type-of($gutters) == 'list') { - - $guttersCols: nth($gutters, 1); - $guttersRows: nth($gutters, 2); - - } - @else { - - $guttersCols: $gutters; - $guttersRows: 0; - - } - - // Row. - .row { - display: flex; - flex-wrap: wrap; - box-sizing: border-box; - - // Columns. - > * { - box-sizing: border-box; - } - - // Gutters. - &.gtr-uniform { - > * { - > :last-child { - margin-bottom: 0; - } - } - } - - } - - // Step through suffixes. - @each $suffix in $suffixes { - - // Suffix. - @if ($suffix != '') { - $suffix: '-' + $suffix; - } - @else { - $suffix: ''; - } - - // Row. - .row { - - // Important. - > .imp#{$suffix} { - order: -1; - } - - // Columns, offsets. - @for $i from 1 through $cols { - > .col-#{$i}#{$suffix} { - width: $unit * $i; - } - - > .off-#{$i}#{$suffix} { - margin-left: $unit * $i; - } - } - - // Step through multipliers. - @each $multiplier in $multipliers { - - // Gutters. - $class: null; - - @if ($multiplier != 1) { - $class: '.gtr-' + ($multiplier * 100); - } - - &#{$class} { - margin-top: ($guttersRows * $multiplier * -1); - margin-left: ($guttersCols * $multiplier * -1); - - > * { - padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier); - } - - // Uniform. - &.gtr-uniform { - margin-top: $guttersCols * $multiplier * -1; - - > * { - padding-top: $guttersCols * $multiplier; - } - } - - } - - } - - } - - } - - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/libs/_mixins.scss b/www.divd.nl/assets/sass/libs/_mixins.scss deleted file mode 100644 index 2fc1bdaa..00000000 --- a/www.divd.nl/assets/sass/libs/_mixins.scss +++ /dev/null @@ -1,63 +0,0 @@ -/// Makes an element's :before pseudoelement a FontAwesome icon. -/// @param {string} $content Optional content value to use. -/// @param {string} $where Optional pseudoelement to target (before or after). -@mixin icon($content: false, $where: before) { - - text-decoration: none; - - &:#{$where} { - - @if $content { - content: $content; - } - - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - text-transform: none !important; - - } - -} - -/// Applies padding to an element, taking the current element-margin value into account. -/// @param {mixed} $tb Top/bottom padding. -/// @param {mixed} $lr Left/right padding. -/// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left) -/// @param {bool} $important If true, adds !important. -@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) { - - @if $important { - $important: '!important'; - } - - $x: 0.1em; - - @if unit(_size(element-margin)) == 'rem' { - $x: 0.1rem; - } - - padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important}; - -} - -/// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp). -/// @param {string} $svg SVG data URL. -/// @return {string} Encoded SVG data URL. -@function svg-url($svg) { - - $svg: str-replace($svg, '"', '\''); - $svg: str-replace($svg, '%', '%25'); - $svg: str-replace($svg, '<', '%3C'); - $svg: str-replace($svg, '>', '%3E'); - $svg: str-replace($svg, '&', '%26'); - $svg: str-replace($svg, '#', '%23'); - $svg: str-replace($svg, '{', '%7B'); - $svg: str-replace($svg, '}', '%7D'); - $svg: str-replace($svg, ';', '%3B'); - - @return url("data:image/svg+xml;charset=utf8,#{$svg}"); - -} \ No newline at end of file diff --git a/www.divd.nl/assets/sass/libs/_vars.scss b/www.divd.nl/assets/sass/libs/_vars.scss deleted file mode 100644 index dfe038eb..00000000 --- a/www.divd.nl/assets/sass/libs/_vars.scss +++ /dev/null @@ -1,66 +0,0 @@ -// Misc. - $misc: ( - z-index-base: 10000 - ); - -// Duration. - $duration: ( - menu: 0.5s, - banner: 1s, - transition: 0.2s - ); - -// Size. - $size: ( - border-radius: 4px, - element-height: 3.25rem, - element-margin: 2rem, - container-width: 80rem, - header-height: 3.25rem, - inner-width: 75rem, - menu-width: 20rem - ); - -// Font. - $font: ( - family: ('Raleway', Arial, Helvetica, sans-serif), - family-fixed: ('Courier New', monospace), - weight: 400, - weight-light: 300, - weight-xlite: 200, - weight-bold: 600 - ); - -// Palette. - $palette: ( - bg: #ffffff, - fg: #444444, - fg-bold: #555555, - fg-light: #bbbbbb, - border: rgba(0,0,0,0.25), - border-bg: rgba(0,0,0,0.075), - border-lt: rgba(0,0,0,0.025), - highlight: accent1, - - accent1: ( - bg: #ce1b28, - fg: rgba(255,255,255,0.75), - fg-bold: #ffffff, - fg-light: rgba(255,255,255,0.4), - border: rgba(255,255,255,0.25), - border-bg: rgba(255,255,255,0.075), - border-lt: rgba(255,255,255,0.025), - highlight: accent1 - ), - - accent2: ( - bg: #111111, - fg: rgba(255,255,255,0.5), - fg-bold: #ffffff, - fg-light: rgba(255,255,255,0.4), - border: rgba(255,255,255,0.25), - border-bg: rgba(255,255,255,0.075), - border-lt: rgba(255,255,255,0.025), - highlight: accent1 - ) - ); \ No newline at end of file diff --git a/www.divd.nl/assets/sass/libs/_vendor.scss b/www.divd.nl/assets/sass/libs/_vendor.scss deleted file mode 100644 index 672394bf..00000000 --- a/www.divd.nl/assets/sass/libs/_vendor.scss +++ /dev/null @@ -1,376 +0,0 @@ -// vendor.scss v0.1-dev | @ajlkn | MIT licensed */ - -// Vars. - - /// Vendor prefixes. - /// @var {list} - $vendor-prefixes: ( - '-moz-', - '-webkit-', - '-ms-', - '' - ); - - /// Properties that should be vendorized. - /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org - /// @var {list} - $vendor-properties: ( - - // Animation. - 'animation', - 'animation-delay', - 'animation-direction', - 'animation-duration', - 'animation-fill-mode', - 'animation-iteration-count', - 'animation-name', - 'animation-play-state', - 'animation-timing-function', - - // Appearance. - 'appearance', - - // Backdrop filter. - 'backdrop-filter', - - // Background image options. - 'background-clip', - 'background-origin', - 'background-size', - - // Box sizing. - 'box-sizing', - - // Clip path. - 'clip-path', - - // Filter effects. - 'filter', - - // Flexbox. - 'align-content', - 'align-items', - 'align-self', - 'flex', - 'flex-basis', - 'flex-direction', - 'flex-flow', - 'flex-grow', - 'flex-shrink', - 'flex-wrap', - 'justify-content', - 'order', - - // Font feature. - 'font-feature-settings', - 'font-language-override', - 'font-variant-ligatures', - - // Font kerning. - 'font-kerning', - - // Fragmented borders and backgrounds. - 'box-decoration-break', - - // Grid layout. - 'grid-column', - 'grid-column-align', - 'grid-column-end', - 'grid-column-start', - 'grid-row', - 'grid-row-align', - 'grid-row-end', - 'grid-row-start', - 'grid-template-columns', - 'grid-template-rows', - - // Hyphens. - 'hyphens', - 'word-break', - - // Masks. - 'mask', - 'mask-border', - 'mask-border-outset', - 'mask-border-repeat', - 'mask-border-slice', - 'mask-border-source', - 'mask-border-width', - 'mask-clip', - 'mask-composite', - 'mask-image', - 'mask-origin', - 'mask-position', - 'mask-repeat', - 'mask-size', - - // Multicolumn. - 'break-after', - 'break-before', - 'break-inside', - 'column-count', - 'column-fill', - 'column-gap', - 'column-rule', - 'column-rule-color', - 'column-rule-style', - 'column-rule-width', - 'column-span', - 'column-width', - 'columns', - - // Object fit. - 'object-fit', - 'object-position', - - // Regions. - 'flow-from', - 'flow-into', - 'region-fragment', - - // Scroll snap points. - 'scroll-snap-coordinate', - 'scroll-snap-destination', - 'scroll-snap-points-x', - 'scroll-snap-points-y', - 'scroll-snap-type', - - // Shapes. - 'shape-image-threshold', - 'shape-margin', - 'shape-outside', - - // Tab size. - 'tab-size', - - // Text align last. - 'text-align-last', - - // Text decoration. - 'text-decoration-color', - 'text-decoration-line', - 'text-decoration-skip', - 'text-decoration-style', - - // Text emphasis. - 'text-emphasis', - 'text-emphasis-color', - 'text-emphasis-position', - 'text-emphasis-style', - - // Text size adjust. - 'text-size-adjust', - - // Text spacing. - 'text-spacing', - - // Transform. - 'transform', - 'transform-origin', - - // Transform 3D. - 'backface-visibility', - 'perspective', - 'perspective-origin', - 'transform-style', - - // Transition. - 'transition', - 'transition-delay', - 'transition-duration', - 'transition-property', - 'transition-timing-function', - - // Unicode bidi. - 'unicode-bidi', - - // User select. - 'user-select', - - // Writing mode. - 'writing-mode', - - ); - - /// Values that should be vendorized. - /// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org - /// @var {list} - $vendor-values: ( - - // Cross fade. - 'cross-fade', - - // Element function. - 'element', - - // Filter function. - 'filter', - - // Flexbox. - 'flex', - 'inline-flex', - - // Grab cursors. - 'grab', - 'grabbing', - - // Gradients. - 'linear-gradient', - 'repeating-linear-gradient', - 'radial-gradient', - 'repeating-radial-gradient', - - // Grid layout. - 'grid', - 'inline-grid', - - // Image set. - 'image-set', - - // Intrinsic width. - 'max-content', - 'min-content', - 'fit-content', - 'fill', - 'fill-available', - 'stretch', - - // Sticky position. - 'sticky', - - // Transform. - 'transform', - - // Zoom cursors. - 'zoom-in', - 'zoom-out', - - ); - -// Functions. - - /// Removes a specific item from a list. - /// @author Hugo Giraudel - /// @param {list} $list List. - /// @param {integer} $index Index. - /// @return {list} Updated list. - @function remove-nth($list, $index) { - - $result: null; - - @if type-of($index) != number { - @warn "$index: #{quote($index)} is not a number for `remove-nth`."; - } - @else if $index == 0 { - @warn "List index 0 must be a non-zero integer for `remove-nth`."; - } - @else if abs($index) > length($list) { - @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; - } - @else { - - $result: (); - $index: if($index < 0, length($list) + $index + 1, $index); - - @for $i from 1 through length($list) { - - @if $i != $index { - $result: append($result, nth($list, $i)); - } - - } - - } - - @return $result; - - } - - /// Replaces a substring within another string. - /// @author Hugo Giraudel - /// @param {string} $string String. - /// @param {string} $search Substring. - /// @param {string} $replace Replacement. - /// @return {string} Updated string. - @function str-replace($string, $search, $replace: '') { - - $index: str-index($string, $search); - - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); - } - - @return $string; - - } - - /// Replaces a substring within each string in a list. - /// @param {list} $strings List of strings. - /// @param {string} $search Substring. - /// @param {string} $replace Replacement. - /// @return {list} Updated list of strings. - @function str-replace-all($strings, $search, $replace: '') { - - @each $string in $strings { - $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace)); - } - - @return $strings; - - } - -// Mixins. - - /// Wraps @content in vendorized keyframe blocks. - /// @param {string} $name Name. - @mixin keyframes($name) { - - @-moz-keyframes #{$name} { @content; } - @-webkit-keyframes #{$name} { @content; } - @-ms-keyframes #{$name} { @content; } - @keyframes #{$name} { @content; } - - } - - /// Vendorizes a declaration's property and/or value(s). - /// @param {string} $property Property. - /// @param {mixed} $value String/list of value(s). - @mixin vendor($property, $value) { - - // Determine if property should expand. - $expandProperty: index($vendor-properties, $property); - - // Determine if value should expand (and if so, add '-prefix-' placeholder). - $expandValue: false; - - @each $x in $value { - @each $y in $vendor-values { - @if $y == str-slice($x, 1, str-length($y)) { - - $value: set-nth($value, index($value, $x), '-prefix-' + $x); - $expandValue: true; - - } - } - } - - // Expand property? - @if $expandProperty { - @each $vendor in $vendor-prefixes { - #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; - } - } - - // Expand just the value? - @elseif $expandValue { - @each $vendor in $vendor-prefixes { - #{$property}: #{str-replace-all($value, '-prefix-', $vendor)}; - } - } - - // Neither? Treat them as a normal declaration. - @else { - #{$property}: #{$value}; - } - - } \ No newline at end of file diff --git a/www.divd.nl/assets/sass/main.scss b/www.divd.nl/assets/sass/main.scss deleted file mode 100644 index d01cd647..00000000 --- a/www.divd.nl/assets/sass/main.scss +++ /dev/null @@ -1,65 +0,0 @@ -@import 'libs/vars'; -@import 'libs/functions'; -@import 'libs/mixins'; -@import 'libs/vendor'; -@import 'libs/breakpoints'; -@import 'libs/grid'; -@import 'libs/flexgrid'; -@import 'font-awesome.min.css'; - -/* - Industrious by TEMPLATED - templated.co @templatedco - Released for free under the Creative Commons Attribution 3.0 license (templated.co/license) -*/ - -// Breakpoints. - @include breakpoints(( - default: (1681px, null ), - xlarge: (1281px, 1680px ), - large: (981px, 1280px ), - medium: (737px, 980px ), - small: (481px, 736px ), - xsmall: (361px, 480px ), - xxsmall: (null, 360px ) - )); - -// Color. - @mixin color($p) { - @include color-typography($p); - @include color-button($p); - @include color-form($p); - @include color-list($p); - @include color-table($p); - @include color-highlights($p); - @include color-testimonials($p); - } - -// Base. - @import 'base/page'; - @import 'base/reset'; - @import 'base/typography'; - -// Component. - @import 'components/inner'; - @import 'components/button'; - @import 'components/form'; - @import 'components/list'; - @import 'components/table'; - @import 'components/highlights'; - @import 'components/testimonials'; - @import 'components/actions'; - @import 'components/grid'; - @import 'components/icon'; - @import 'components/icons'; - @import 'components/image'; - @import 'components/wrapper'; - -// Layout. - @import 'layout/banner'; - @import 'layout/cta'; - @import 'layout/footer'; - @import 'layout/header'; - @import 'layout/heading'; - @import 'layout/main'; - @import 'layout/menu'; \ No newline at end of file diff --git a/www.divd.nl/code.md b/www.divd.nl/code.md deleted file mode 100644 index a94cc746..00000000 --- a/www.divd.nl/code.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -layout: default -title: Code of Conduct -header: Code of Conduct ---- -
-

Code of Conduct 2.1

-
-1. DIVD is a Dutch research institute that works with volunteers who aim to make the digital world safer by searching the internet for vulnerabilities and reporting the findings to those who can fix these vulnerabilities. -2. As we work on sensitive data, gathered without informed consent, we established this Code of Conduct to provide an ethical base for the work we do. This code can also be used by other researchers working on what is currently referred to as responsible disclosure, or coordinated vulnerability disclosure. -3. In our research projects we, for example: -- Scan the internet for vulnerabilities, mostly Common Vulnerabilities and Exposures (CVEs), and report our findings and possible solutions to the owners of these systems. -- Analyse online systems for new vulnerabilities (zero-days), report our findings to the makers and try to help them out in fixing the vulnerabilities. -- Analyse databases with leaked credentials and report to the organisations or people who are compromised to take appropriate measures. -- Work with trusted partners to extend our reach and notify as many organisations and people as possible -4. We are aware that we operate at the edges of what is legally allowed, so we proceed by these three criteria commonly used in court cases on vulnerability disclosures: -- Societal need: we do vulnerability disclosure to prevent online damage to as many internet users as possible and don’t serve any particular financial, political or individual interests. -- Principle of Proportionality: we serve this need with appropriate means. Our research should increase and not decrease the integrity and availability of online systems. -- Principle of Subsidiarity: if several means are available to meet the need, we opt for the one which has the least impact. -5. We validate our findings to prevent reporting false positives or miss false negatives and sometimes need to verify if a vulnerability is actually present. We use custom-made scripts based on publicly available proof of concepts or non-weaponized exploit code and take good care that we don’t damage systems, download too much personal data, or create backdoors. -6. Our findings typically consist of lists with several to millions of IP addresses, the type of vulnerability found, contact information, and metadata (e.g. timestamps, scripts, researchers working on the data). This is sensitive data, so we take all precautions necessary to protect the confidentiality of this data. -7. We disclose zero-day vulnerabilities to the vendor first, then request CVE numbers and negotiate a reasonable time span for disclosing it to our Trusted Information Sharing Partners and the broader public. Ideally, the disclosure is preceded by a patch. If a vendor is obviously slow in providing the patch and it is likely others may discover and abuse the vulnerability, we may consider disclosure to warn potential victims and advise them on mitigation measures. -8. We report the CVEs we find to the owners of the systems, mostly by generating email addresses based on their domain name, such as info@, security@ or abuse@ and to the listed abuse addresses of IP owners. We may also send them our findings through our Trusted Information Sharing Partners, who are, for example, Computer Emergency Response Teams, Computer Security Incident Response Teams, Internet Service Providers, governmental organisations or other research institutes. -9. We analyse online threats, not threat actors. We are researchers and don’t serve the needs of governments or law enforcement. -10. After reporting our findings, we repeat our scans to track progress. We, therefore, need to store data and log our activities. We may also need this data in case of a dispute. We minimize the amount of personal data we gather and store and are aware that an IP address can also be perceived as information relating to an identified or identifiable natural person. We believe that our processing of this data is proportional to our aim to protect much more sensitive personal data in the systems at stake. -11. During our research, we inform the broader security community and the media about our findings only on a statistical basis: just numbers, no names, or other identifiable information. We close all research projects with a report, which can be downloaded from divd.nl and is under Creative Commons Licence. -12. We only report vulnerable systems. Patching or other mitigation is solely the responsibility of the owner. -13. DIVD is responsible for making researchers aware of these rules, while it is the responsibility of each researcher to stick to them. If they don’t, the board will take appropriate measures, for instance by revoking their DIVD account. -14. This Code of Conduct will also be used as an ethical guidance for our DIVD Academy, shared with the broader security community and updated regularly. Suggestions and feedback are welcome. Contact our Secretary [Fleur van Leusden](/team/Fleur%20van%20Leusden). - -

More info:

-

Is it legit to exchange lists of IP addresses together with vulnerabilities? The short answer is: Yes, according to Dutch law we can. The more elaborate answer you will find in this Liability Impact Assessment, prepared by Privacy Management Partners (in Dutch).

- [Click here to download](assets/downloads/LIA_abuse_informatie_v1.1.pdf) (Dutch) diff --git a/www.divd.nl/contact.md b/www.divd.nl/contact.md deleted file mode 100644 index a6e8b23c..00000000 --- a/www.divd.nl/contact.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: default -title: contact -header: contact ---- -
-

Not a regular office

-
- -We are a network of security researchers who mainly work online. If you want to contact us, you can send us an e mail to "question" at divd nl or use our [contact form](https://form.jotform.com/221683503984058). - -You can also meet us at cyber security conferences and hacker events or just follow us on [Twitter](https://twitter.com/DIVDnl). - -For questions related to our CSIRT you can email "csirt" at divd nl. - -## Want to help? -The Dutch Institute for Vulnerability Disclosure is always looking for new volunteers. On our website, you can discover which type of volunteer work suits you best and read the experiences of others. Do you also want to make the digital world a safer place? Then please [signup](https://form.jotform.com/221242784790055) as a volunteer. - -
-### Address -We have a flexible workplace:
-Maanweg 174
-2516 AB Den Haag
-Tel.: (+31) 70 41 90 309 - -## Confidential Advisor (vertrouwenspersoon) - -DIVD wants to be a safe organization, where everyone feels at home and respected. After all, together we do everything we can to prevent things such as 'bullying', conflicts and arguments, discrimination, and sexual intimidation within our institute. - -It is not possible to make a list of things that would or would not be sexual intimidation or aggression. In other words, it's not about the intentions of the person giving the unwanted attention, it's about how it comes across. -The reason why someone behaves in this way is also irrelevant in determining whether there is sexual harassment, aggression, or violence. Even a person's accountability does not play a role. In practice, however, is a lot more complicated, after all, what one person experiences as a nuisance, need not disturb another. - -That is one of the reasons why DIVD has appointed two confidential advisors. A central point of contact to ensure that the way in which we interact within the institute remains professional, fun, and safe. Within the institute, the confidential counselors are the point of contact for anyone who is dealing with transgressive or sexually intimidating behavior and who wants to talk to someone about it. - -The confidential advisors at DIVD are: -* [Jan Los](/team/Jan%20Los/) -* [Nikola Diete](/team/Nikola%20Diete/) - -Both can be reached via [vertrouwenspersoon@divd.nl](mailto:vertrouwenspersoon@divd.nl) - -You can approach them for any kind of transgressive or sexually harassing behavior. He or she listens to your story and helps you look for possibilities to solve the situation. Your information will be treated in the strictest confidence and nothing will happen that you don't know. - -If needed, the confidential advisors can also help you to submit a complaint to the police. But of course, you can also just talk. diff --git a/www.divd.nl/data/supp.json b/www.divd.nl/data/supp.json deleted file mode 100644 index a9b5b616..00000000 --- a/www.divd.nl/data/supp.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"id":661,"organization_id":179,"url":"divdnl","name":"Dutch Institute for Vulnerability Disclosure","user_display_name":null,"description":"We aim to make the digital world safer by reporting vulnerabilities we find in digital systems to the people who can fix them. We have a global reach, but do it Dutch style: open, honest, collaborative and for free.","photo_url":"\/storage\/projects\/fee9adb16b1696b83706.png","created_at":"2021-03-24 22:02:12","updated_at":"2021-03-25 11:43:25","demo":false,"goal":0,"closing_date":"2100-01-01 00:00:00","event_date":null,"state":2,"allow_recurring":false,"allow_peer_to_peer":false,"entry_fee":null,"goal_product_participant":0,"video_url":null,"allow_teams":false,"manual_donations":0,"show_user_as_owner":0,"p2p_subscription_deadline":null,"archived_at":null,"subscription_code_limit":null,"subscription_limit":null,"subscription_code_visible_for_participants":null,"choosable_goal":0,"choosable_goal_min":null,"choosable_goal_max":null,"choosable_goal_default":null,"thank_mail_auto":1,"thank_mail_enabled":1,"enabled_privacy_switches":null,"enabled_donation_switches":null,"donation_switches_reason":null,"allow_donation_switches":0,"allow_team_creation":false,"donation_update_mail":0,"show_goal":0,"published_at":"2021-03-25 11:43:25","allow_only_monthly":false,"hide_raised":0,"show_subscriptions_amount":0,"allow_webhooks":0,"donation_webhook":0,"donation_webhook_url":null,"user_webhook":0,"user_webhook_url":null,"participant_webhook":0,"participant_webhook_url":null,"project_webhook":0,"project_webhook_url":null,"blogsubscription_webhook":false,"blogsubscription_webhook_url":null,"is_manager":false,"fullName":"Dutch Institute for Vulnerability Disclosure","fullUrl":"divdnl","absoluteUrl":"https:\/\/supp.to\/divdnl","appRootUrl":"https:\/\/supp.to\/divdnl","hasEntryFee":false,"hasSubscriptionLimit":false,"hasSubscriptionCodeLimit":false,"hasSubscriptionCode":false,"allowTeams":false,"canParticipate":false,"organization":{"id":179,"url":"divd","external_url":"https:\/\/www.divd.nl","name":"Dutch Institute for Vulnerability Disclosure - DIVD","phone":"070 41 90 309","address":"Maanweg 174","zipcode":"2516 AB","city":"Den Haag","country":"NL","registration_number":"75957345","legal_form":"","description":"Wij streven ernaar om de digitale wereld veiliger te maken door kwetsbaarheden in digitale systemen te melden aan de mensen die deze kunnen oplossen. Om dat te bereiken hebben wij vrijwilligers nodig die weten hoe ze een goede melding kunnen verzorgen, daarnaast willen we onze deelnemers de juiste methodiek en mindset leren, zodat ze in staat zijn hun digitale skills in te zetten voor de goede zaak. DIVD Academy is onderdeel van DIVD.","category":"8398","allow_webhooks":0,"donation_webhook":0,"donation_webhook_url":null,"user_webhook":0,"user_webhook_url":null,"participant_webhook":0,"participant_webhook_url":null,"project_webhook":0,"project_webhook_url":null,"blogsubscription_webhook":0,"blogsubscription_webhook_url":null,"allow_donation_switches":0,"created_at":"2021-03-24 21:10:24","updated_at":"2021-04-15 12:00:57","photo_url":"\/storage\/organizations\/371ecf391d8ded44ddab.png","anbi":0,"bank_account":"NL37TRIO0788805894","bank_account_holder":"DIVD","cbf":0,"header_image_url":"\/storage\/organizations\/3b463d16c95f03fd4952.png","state":2,"is_manager":false,"fullName":"Dutch Institute for Vulnerability Disclosure - DIVD","fullUrl":"divd","absoluteUrl":"https:\/\/supp.to\/divd"},"raised":3126,"subscriptionsAmount":0,"monthlySubscriptionRaised":null,"isDonationAllowed":true,"dynamicGoal":"0.00","canEnableRecurring":false,"hasMollieThroughOrganization":false,"hasMollieThroughProject":false,"authenticatedParticipantId":null,"canMakeTeam":false,"donations":[{"id":40618,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":10,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-03-30 20:49:25","updated_at":"2021-03-30 20:50:06","participant":null,"user":null},{"id":40683,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":25,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-04-01 20:30:25","updated_at":"2021-04-01 20:30:41","participant":null,"user":null},{"id":40705,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Joris","last_name_prefix":null,"last_name":null,"message":"#scan all the things","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-04-02 08:52:11","updated_at":"2021-04-02 08:52:37","participant":null,"user":null},{"id":40708,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Peter","last_name_prefix":null,"last_name":null,"message":"Geweldig initiatief! Ik hoop dat dit meer media aandacht krijgen en betrokkenen om het te laten groeien.","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-04-02 11:22:14","updated_at":"2021-04-02 11:22:59","participant":null,"user":null},{"id":40709,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-04-02 12:12:57","updated_at":"2021-04-02 12:13:15","participant":null,"user":null},{"id":41536,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":42,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-04-17 18:36:50","updated_at":"2021-04-17 18:37:52","participant":null,"user":null},{"id":42208,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Klaas","last_name_prefix":null,"last_name":"Bakker","message":"","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-04-26 14:40:21","updated_at":"2021-04-26 14:42:01","participant":null,"user":null},{"id":42525,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":10,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-04-30 16:40:32","updated_at":"2021-04-30 16:41:18","participant":null,"user":null},{"id":45879,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":10,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-06-03 14:39:34","updated_at":"2021-06-03 14:40:32","participant":null,"user":null},{"id":45983,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-06-04 09:50:24","updated_at":"2021-06-04 09:51:24","participant":null,"user":null},{"id":46673,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":25,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-06-13 17:24:07","updated_at":"2021-06-13 17:24:38","participant":null,"user":null},{"id":47636,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Eelco","last_name_prefix":null,"last_name":"Maljaars","message":"","amount":50,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-03 07:00:01","updated_at":"2021-07-03 07:00:32","participant":null,"user":null},{"id":47657,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Pim","last_name_prefix":null,"last_name":"Schilperoort","message":"Keep up the good work!","amount":5,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-04 20:00:34","updated_at":"2021-07-04 20:00:52","participant":null,"user":null},{"id":47660,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"S.","last_name_prefix":null,"last_name":"Van Eldijk","message":"Goed werk dit weekend!","amount":23,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-04 22:22:51","updated_at":"2021-07-04 22:23:02","participant":null,"user":null},{"id":47662,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Mustafa","last_name_prefix":null,"last_name":"Ghazi","message":"Www.noori.org","amount":5,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-05 01:16:22","updated_at":"2021-07-05 01:16:41","participant":null,"user":null},{"id":47669,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-05 12:26:42","updated_at":"2021-07-05 12:27:44","participant":null,"user":null},{"id":47702,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":10,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-05 20:29:07","updated_at":"2021-07-05 20:29:26","participant":null,"user":null},{"id":47705,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"jan","last_name_prefix":null,"last_name":"luken","message":"geweldig","amount":10,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-06 00:11:32","updated_at":"2021-07-06 00:13:28","participant":null,"user":null},{"id":47711,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":10,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-06 10:06:02","updated_at":"2021-07-06 10:06:44","participant":null,"user":null},{"id":47731,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":10,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-07 10:38:39","updated_at":"2021-07-07 10:39:18","participant":null,"user":null},{"id":47732,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":1000,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-07 11:29:10","updated_at":"2021-07-07 11:29:41","participant":null,"user":null},{"id":47736,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-07 15:44:00","updated_at":"2021-07-07 15:44:32","participant":null,"user":null},{"id":47739,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":25,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-07 16:13:41","updated_at":"2021-07-07 16:13:57","participant":null,"user":null},{"id":47742,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":10,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-07 16:33:57","updated_at":"2021-07-07 16:34:15","participant":null,"user":null},{"id":47744,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Chris","last_name_prefix":null,"last_name":"Dickhaut","message":"Good work guys! Keep","amount":50,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-07 16:57:44","updated_at":"2021-07-07 16:57:59","participant":null,"user":null},{"id":47746,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Lime","last_name_prefix":null,"last_name":"Networks","message":"Lime Networks support DIVD volledig. blijf zo door gaan allen!","amount":50,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-07 17:00:26","updated_at":"2021-07-07 17:01:11","participant":null,"user":null},{"id":47749,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":25,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-07 21:04:56","updated_at":"2021-07-07 21:05:16","participant":null,"user":null},{"id":47752,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":25,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-07 22:55:54","updated_at":"2021-07-07 22:56:20","participant":null,"user":null},{"id":47800,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":42,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-09 09:17:03","updated_at":"2021-07-09 09:17:24","participant":null,"user":null},{"id":47809,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Bryan","last_name_prefix":null,"last_name":"ter Schuur","message":"Mensen van DIVD, succes ermee! Groetjes van trillanomik xoxo","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-09 11:37:31","updated_at":"2021-07-09 11:38:04","participant":null,"user":null},{"id":47847,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":42,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-10 21:45:10","updated_at":"2021-07-10 21:45:38","participant":null,"user":null},{"id":47875,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Chris","last_name_prefix":null,"last_name":"Osieck","message":"Op naar een veiligere, betere en relevantere digitale wereld voor iedereen.","amount":25,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":0,"created_at":"2021-07-12 11:51:53","updated_at":"2021-07-12 11:52:22","participant":null,"user":null},{"id":47901,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":50,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-12 23:47:37","updated_at":"2021-07-12 23:47:57","participant":null,"user":null},{"id":48355,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":100,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-21 09:11:53","updated_at":"2021-07-21 09:12:39","participant":null,"user":null},{"id":48677,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":15,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-26 13:46:24","updated_at":"2021-07-26 13:46:46","participant":null,"user":null},{"id":48777,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Supp-er gever","last_name_prefix":null,"last_name":"","message":"","amount":250,"fee_absolute":"0.49","fee_relative":"0.00","tax_percentage":"0.210","anonymous":1,"created_at":"2021-07-30 09:30:43","updated_at":"2021-07-30 09:31:57","participant":null,"user":null},{"id":48863,"organization_id":179,"project_id":661,"participant_id":null,"supp_subscription_id":null,"first_name":"Hidde","last_name_prefix":null,"last_name":"Smit","message":"Werkt dit?