commit e98c2dfc55abcad85835cf36f31cc6dbf2578836 Author: Sagi Dayan Date: Thu Mar 5 09:29:11 2020 -0500 Initial commit diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2dfed06 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2013-2020 Ghost Foundation + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0856049 --- /dev/null +++ b/README.md @@ -0,0 +1,98 @@ +> See section [Modifications](#modifications) +# Casper + +The default theme for [Ghost](http://github.com/tryghost/ghost/). This is the latest development version of Casper! If you're just looking to download the latest release, head over to the [releases](https://github.com/TryGhost/Casper/releases) page. + +  + +![screenshot-desktop](https://user-images.githubusercontent.com/353959/66987533-40eae100-f0c1-11e9-822e-cbaf38fb8e3f.png) + +  + +# Modifications +A few things added/removed: + - Code block syntax highlight (Using [prism](https://prismjs.com/) and [monokai](https://github.com/Swaagie/prismjs-monokai) theme) + - [Fork Awesome fonts](https://forkaweso.me/Fork-Awesome/) + - Landing page with icon links + - To use the links head over to your settings/code injection + - in site header add your links as such: + ``` + + ``` + you can add as many links as you want. but the larger the list, it might not be responsive. + - 404 page. to change the image in the 404 page - overwrite the file in `assets/404-face.png` (The name matters) + - A custom rss page (no feedly) + - removed the default social links + - custom routs.yaml - Go to settings/Labs and upload the routs.yaml file from this repo. (All blog posts will be under route /writings) + +### How do i use this theme? +Download/clone the repo and just compress it into a zip file. Then under Settings/Design Upload your new theme. +> YOu must upload the routes.yaml included in order for this theme to work properly + +# First time using a Ghost theme? + +Ghost uses a simple templating language called [Handlebars](http://handlebarsjs.com/) for its themes. + +This theme has lots of code comments to help explain what's going on just by reading the code. Once you feel comfortable with how everything works, we also have full [theme API documentation](https://ghost.org/docs/api/handlebars-themes/) which explains every possible Handlebars helper and template. + +**The main files are:** + +- `default.hbs` - The parent template file, which includes your global header/footer +- `index.hbs` - The main template to generate a list of posts, usually the home page +- `post.hbs` - The template used to render individual posts +- `page.hbs` - Used for individual pages +- `tag.hbs` - Used for tag archives, eg. "all posts tagged with `news`" +- `author.hbs` - Used for author archives, eg. "all posts written by Jamie" + +One neat trick is that you can also create custom one-off templates by adding the slug of a page to a template file. For example: + +- `page-about.hbs` - Custom template for an `/about/` page +- `tag-news.hbs` - Custom template for `/tag/news/` archive +- `author-ali.hbs` - Custom template for `/author/ali/` archive + + +# Development + +Casper styles are compiled using Gulp/PostCSS to polyfill future CSS spec. You'll need [Node](https://nodejs.org/), [Yarn](https://yarnpkg.com/) and [Gulp](https://gulpjs.com) installed globally. After that, from the theme's root directory: + +```bash +# install dependencies +yarn install + +# run development server +yarn dev +``` + +Now you can edit `/assets/css/` files, which will be compiled to `/assets/built/` automatically. + +The `zip` Gulp task packages the theme files into `dist/.zip`, which you can then upload to your site. + +```bash +# create .zip file +yarn zip +``` + +# PostCSS Features Used + +- Autoprefixer - Don't worry about writing browser prefixes of any kind, it's all done automatically with support for the latest 2 major versions of every browser. +- Variables - Simple pure CSS variables +- [Color Function](https://github.com/postcss/postcss-color-function) + + +# SVG Icons + +Casper uses inline SVG icons, included via Handlebars partials. You can find all icons inside `/partials/icons`. To use an icon just include the name of the relevant file, eg. To include the SVG icon in `/partials/icons/rss.hbs` - use `{{> "icons/rss"}}`. + +You can add your own SVG icons in the same manner. + + +# Copyright & License + +Copyright (c) 2013-2020 Ghost Foundation - Released under the [MIT license](LICENSE). diff --git a/assets/404-face.png b/assets/404-face.png new file mode 100644 index 0000000..d5b9552 Binary files /dev/null and b/assets/404-face.png differ diff --git a/assets/built/casper.js b/assets/built/casper.js new file mode 100644 index 0000000..7a22c22 --- /dev/null +++ b/assets/built/casper.js @@ -0,0 +1,2 @@ +!function(n){"use strict";n.fn.fitVids=function(e){var i={customSelector:null,ignore:null};if(!document.getElementById("fit-vids-style")){var t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("div");r.innerHTML='

x

',t.appendChild(r.childNodes[1])}return e&&n.extend(i,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];i.customSelector&&e.push(i.customSelector);var r=".fitvidsignore";i.ignore&&(r=r+", "+i.ignore);var t=n(this).find(e.join(","));(t=(t=t.not("object object")).not(r)).each(function(){var e=n(this);if(!(0
').parent(".fluid-width-video-wrapper").css("padding-top",100*t+"%"),e.removeAttr("height").removeAttr("width")}})})},n.fn.fitVids._count=0}(window.jQuery||window.Zepto),function(e,t){t.addEventListener("DOMContentLoaded",function(){t.querySelectorAll(".kg-gallery-image img").forEach(function(e){var t=e.closest(".kg-gallery-image"),i=e.attributes.width.value/e.attributes.height.value;t.style.flex=i+" 1 0%"})})}(window,document),function(t,i){var r=i.querySelector("link[rel=next]");if(r){var n=i.querySelector(".post-feed");if(n){var o=300,s=!1,a=!1,d=t.scrollY,l=t.innerHeight,c=i.documentElement.scrollHeight;t.addEventListener("scroll",f,{passive:!0}),t.addEventListener("resize",v),h()}}function u(){if(404===this.status)return t.removeEventListener("scroll",f),void t.removeEventListener("resize",v);this.response.querySelectorAll(".post-card").forEach(function(e){n.appendChild(i.importNode(e,!0))});var e=this.response.querySelector("link[rel=next]");e?r.href=e.href:(t.removeEventListener("scroll",f),t.removeEventListener("resize",v)),c=i.documentElement.scrollHeight,a=s=!1}function e(){if(!a)if(d+l<=c-o)s=!1;else{a=!0;var e=new t.XMLHttpRequest;e.responseType="document",e.addEventListener("load",u),e.open("GET",r.href),e.send(null)}}function h(){s||t.requestAnimationFrame(e),s=!0}function f(){d=t.scrollY,h()}function v(){l=t.innerHeight,c=i.documentElement.scrollHeight,h()}}(window,document),function(s,a){s.Casper||(s.Casper={}),s.Casper.stickyNavTitle=function(e){var t=a.querySelector(e.navSelector),i=a.querySelector(e.titleSelector),r=s.scrollY,n=!1;function o(){i.getBoundingClientRect().top+s.scrollY+(i.offsetHeight+35)<=r?t.classList.add(e.activeClass):t.classList.remove(e.activeClass),n=!1}s.addEventListener("scroll",function(){r=s.scrollY,function(){n||requestAnimationFrame(o);n=!0}()},{passive:!0}),o()}}(window,document); +//# sourceMappingURL=casper.js.map \ No newline at end of file diff --git a/assets/built/casper.js.map b/assets/built/casper.js.map new file mode 100644 index 0000000..3db62e2 --- /dev/null +++ b/assets/built/casper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["jquery.fitvids.js","gallery-card.js","infinite-scroll.js","sticky-nav-title.js"],"names":["$","fn","fitVids","options","settings","customSelector","ignore","document","getElementById","head","getElementsByTagName","div","createElement","innerHTML","appendChild","childNodes","extend","this","each","selectors","push","ignoreList","$allVideos","find","join","not","$this","parents","length","tagName","toLowerCase","parent","css","isNaN","attr","aspectRatio","parseInt","height","width","videoName","_count","wrap","removeAttr","window","jQuery","Zepto","addEventListener","querySelectorAll","forEach","image","container","closest","ratio","attributes","value","style","flex","nextElement","querySelector","feedElement","buffer","ticking","loading","lastScrollY","scrollY","lastWindowHeight","innerHeight","lastDocumentHeight","documentElement","scrollHeight","onScroll","passive","onResize","requestTick","onPageLoad","status","removeEventListener","response","item","importNode","resNextElement","href","onUpdate","xhr","XMLHttpRequest","responseType","open","send","requestAnimationFrame","Casper","stickyNavTitle","nav","navSelector","title","titleSelector","update","getBoundingClientRect","top","offsetHeight","classList","add","activeClass","remove"],"mappings":"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","file":"casper.js","sourcesContent":["/*jshint browser:true */\n/*!\n* FitVids 1.3\n*\n*\n* Copyright 2017, Chris Coyier + Dave Rupert + Ghost Foundation\n* This is an unofficial release, ported by John O'Nolan\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the MIT license\n*\n*/\n\n;(function( $ ){\n\n 'use strict';\n\n $.fn.fitVids = function( options ) {\n var settings = {\n customSelector: null,\n ignore: null\n };\n\n if(!document.getElementById('fit-vids-style')) {\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n var head = document.head || document.getElementsByTagName('head')[0];\n var css = '.fluid-width-video-container{flex-grow: 1;width:100%;}.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';\n var div = document.createElement(\"div\");\n div.innerHTML = '

x

';\n head.appendChild(div.childNodes[1]);\n }\n\n if ( options ) {\n $.extend( settings, options );\n }\n\n return this.each(function(){\n var selectors = [\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n 'object',\n 'embed'\n ];\n\n if (settings.customSelector) {\n selectors.push(settings.customSelector);\n }\n\n var ignoreList = '.fitvidsignore';\n\n if(settings.ignore) {\n ignoreList = ignoreList + ', ' + settings.ignore;\n }\n\n var $allVideos = $(this).find(selectors.join(','));\n $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n $allVideos.each(function(){\n var $this = $(this);\n if($this.parents(ignoreList).length > 0) {\n return; // Disable FitVids on this video.\n }\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n {\n $this.attr('height', 9);\n $this.attr('width', 16);\n }\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n aspectRatio = height / width;\n if(!$this.attr('name')){\n var videoName = 'fitvid' + $.fn.fitVids._count;\n $this.attr('name', videoName);\n $.fn.fitVids._count++;\n }\n $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n $this.removeAttr('height').removeAttr('width');\n });\n });\n };\n\n // Internal counter for unique video names.\n $.fn.fitVids._count = 0;\n\n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n","/* eslint-env browser */\n\n/**\n * Gallery card support\n * Used on any individual post/page\n *\n * Detects when a gallery card has been used and applies sizing to make sure\n * the display matches what is seen in the editor.\n */\n\n(function (window, document) {\n var resizeImagesInGalleries = function resizeImagesInGalleries() {\n var images = document.querySelectorAll('.kg-gallery-image img');\n images.forEach(function (image) {\n var container = image.closest('.kg-gallery-image');\n var width = image.attributes.width.value;\n var height = image.attributes.height.value;\n var ratio = width / height;\n container.style.flex = ratio + ' 1 0%';\n });\n };\n\n document.addEventListener('DOMContentLoaded', resizeImagesInGalleries);\n})(window, document);\n","/* eslint-env browser */\n\n/**\n * Infinite Scroll\n * Used on all pages where there is a list of posts (homepage, tag index, etc).\n *\n * When the page is scrolled to 300px from the bottom, the next page of posts\n * is fetched by following the the that is output\n * by {{ghost_head}}.\n *\n * The individual post items are extracted from the fetched pages by looking for\n * a wrapper element with the class \"post-card\". Any found elements are appended\n * to the element with the class \"post-feed\" in the currently viewed page.\n */\n\n(function (window, document) {\n // next link element\n var nextElement = document.querySelector('link[rel=next]');\n if (!nextElement) {\n return;\n }\n\n // post feed element\n var feedElement = document.querySelector('.post-feed');\n if (!feedElement) {\n return;\n }\n\n var buffer = 300;\n\n var ticking = false;\n var loading = false;\n\n var lastScrollY = window.scrollY;\n var lastWindowHeight = window.innerHeight;\n var lastDocumentHeight = document.documentElement.scrollHeight;\n\n function onPageLoad() {\n if (this.status === 404) {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n return;\n }\n\n // append contents\n var postElements = this.response.querySelectorAll('.post-card');\n postElements.forEach(function (item) {\n // document.importNode is important, without it the item's owner\n // document will be different which can break resizing of\n // `object-fit: cover` images in Safari\n feedElement.appendChild(document.importNode(item, true));\n });\n\n // set next link\n var resNextElement = this.response.querySelector('link[rel=next]');\n if (resNextElement) {\n nextElement.href = resNextElement.href;\n } else {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n }\n\n // sync status\n lastDocumentHeight = document.documentElement.scrollHeight;\n ticking = false;\n loading = false;\n }\n\n function onUpdate() {\n // return if already loading\n if (loading) {\n return;\n }\n\n // return if not scroll to the bottom\n if (lastScrollY + lastWindowHeight <= lastDocumentHeight - buffer) {\n ticking = false;\n return;\n }\n\n loading = true;\n\n var xhr = new window.XMLHttpRequest();\n xhr.responseType = 'document';\n\n xhr.addEventListener('load', onPageLoad);\n\n xhr.open('GET', nextElement.href);\n xhr.send(null);\n }\n\n function requestTick() {\n ticking || window.requestAnimationFrame(onUpdate);\n ticking = true;\n }\n\n function onScroll() {\n lastScrollY = window.scrollY;\n requestTick();\n }\n\n function onResize() {\n lastWindowHeight = window.innerHeight;\n lastDocumentHeight = document.documentElement.scrollHeight;\n requestTick();\n }\n\n window.addEventListener('scroll', onScroll, {passive: true});\n window.addEventListener('resize', onResize);\n\n requestTick();\n})(window, document);\n","/* eslint-env browser */\n\n/**\n * Nav/Title replacement\n * Used on invividual post pages, displays the post title in place of the nav\n * bar when scrolling past the title\n *\n * Usage:\n * ```\n * Casper.stickyTitle({\n * navSelector: '.site-nav-main',\n * titleSelector: '.post-full-title',\n * activeClass: 'nav-post-title-active'\n * });\n * ```\n */\n\n(function (window, document) {\n // set up Casper as a global object\n if (!window.Casper) {\n window.Casper = {};\n }\n\n window.Casper.stickyNavTitle = function stickyNavTitle(options) {\n var nav = document.querySelector(options.navSelector);\n var title = document.querySelector(options.titleSelector);\n\n var lastScrollY = window.scrollY;\n var ticking = false;\n\n function onScroll() {\n lastScrollY = window.scrollY;\n requestTick();\n }\n\n function requestTick() {\n if (!ticking) {\n requestAnimationFrame(update);\n }\n ticking = true;\n }\n\n function update() {\n var trigger = title.getBoundingClientRect().top + window.scrollY;\n var triggerOffset = title.offsetHeight + 35;\n\n // show/hide post title\n if (lastScrollY >= trigger + triggerOffset) {\n nav.classList.add(options.activeClass);\n } else {\n nav.classList.remove(options.activeClass);\n }\n\n ticking = false;\n }\n\n window.addEventListener('scroll', onScroll, {passive: true});\n\n update();\n };\n})(window, document);\n"]} \ No newline at end of file diff --git a/assets/built/global.css b/assets/built/global.css new file mode 100644 index 0000000..db31187 --- /dev/null +++ b/assets/built/global.css @@ -0,0 +1,2 @@ +a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#313b3f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#cbeafb}::selection{text-shadow:none;background:#cbeafb}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e3e9ed}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{margin:.5em 0;padding-left:.3em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:#15171a;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid #e5eff5}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a8ed;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:600;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5.5rem;font-weight:600}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2.2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500} +/*# sourceMappingURL=global.css.map */ \ No newline at end of file diff --git a/assets/built/global.css.map b/assets/built/global.css.map new file mode 100644 index 0000000..64aca3d --- /dev/null +++ b/assets/built/global.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["global.css"],"names":[],"mappings":"AAsBA,8YA6EI,QAAS,CACT,SAAU,CACV,QAAS,CACT,YAAa,CACb,cAAe,CACf,uBACJ,CACA,KACI,aACJ,CACA,MAEI,eACJ,CACA,aAEI,WACJ,CACA,oDAII,UAAW,CACX,YACJ,CAKA,IACI,cACJ,CACA,KACI,qBAAsB,CACtB,sBAAuB,CAEvB,yBAA0B,CAC1B,6BACJ,CACA,iBAGI,kBACJ,CACA,EACI,4BACJ,CACA,iBAEI,SACJ,CACA,SAEI,eACJ,CACA,SAGI,iBACJ,CACA,GACI,cAAgB,CAChB,aACJ,CACA,MACI,aACJ,CACA,QAEI,iBAAkB,CAClB,aAAc,CACd,aAAc,CACd,uBACJ,CACA,IACI,SACJ,CACA,IACI,aACJ,CACA,IACI,QACJ,CACA,eACI,eACJ,CACA,KACI,wBACJ,CACA,kBAII,+BAAiC,CACjC,aACJ,CACA,sCAKI,QAAS,CACT,aAAc,CACd,YACJ,CACA,OACI,gBAAiB,CACjB,WACJ,CACA,cAEI,mBACJ,CACA,oEAKI,cAAe,CAEf,yBACJ,CACA,sCAEI,cACJ,CACA,iDAEI,SAAU,CACV,QACJ,CACA,MACI,kBACJ,CACA,YACI,YACJ,CACA,uCAEI,qBAAsB,CACtB,SACJ,CACA,4FAEI,WACJ,CACA,mBACI,sBAAuB,CAEvB,4BACJ,CACA,+FAEI,uBACJ,CACA,OACI,SAAU,CACV,QACJ,CACA,SACI,aACJ,CACA,MACI,gBAAiB,CACjB,wBACJ,CACA,MAEI,SACJ,CAMA,KAEI,iBAAkB,CAClB,eAAgB,CAEhB,yCACJ,CACA,UANI,iBAqBJ,CAfA,KAEI,aAAoC,CACpC,wHAAwI,CACxI,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAChB,iBAAkB,CAClB,gBAAiB,CACjB,iCAAkC,CAClC,eAAgB,CAEhB,kCAAmC,CACnC,iCAAkC,CAClC,oCACJ,CAEA,iBACI,gBAAiB,CACjB,kBACJ,CAHA,YACI,gBAAiB,CACjB,kBACJ,CAEA,GACI,iBAAkB,CAClB,aAAc,CACd,UAAW,CACX,oBAAqB,CACrB,SAAU,CACV,UAAW,CACX,QAAS,CACT,4BACJ,CAEA,kCAMI,qBACJ,CAEA,SACI,QAAS,CACT,SAAU,CACV,QACJ,CAEA,SACI,eACJ,CAEA,sBAKI,gBACJ,CAEA,MAEI,kBAAmB,CACnB,mBACJ,CAEA,wBAII,iBACJ,CAEA,GACI,eACJ,CAEA,GACI,kBACJ,CAEA,MAEI,cACJ,CAEA,GACI,aAAe,CACf,iBAAmB,CACnB,iBACJ,CAEA,GACI,UAAW,CACX,iBAAkB,CAClB,WAAY,CACZ,aAAsB,CACtB,eAAgB,CAChB,gBACJ,CAEA,GACI,cAAiB,CACjB,eACJ,CAEA,WACI,cAAe,CACf,eAAwB,CACxB,8BACJ,CAEA,aACI,aAAe,CACf,eAAgB,CAChB,eACJ,CAEA,iBACI,oBAAqB,CACrB,wBAA2B,CAC3B,cAAgB,CAChB,UACJ,CAEA,wBACI,qBACJ,CAEA,gBACI,eACJ,CACA,kBACI,eACJ,CAEA,EACI,aAAgC,CAChC,oBACJ,CAEA,QACI,yBACJ,CAEA,kBAMI,YAAa,CACb,gBAAiB,CACjB,eAAgB,CAChB,iCACJ,CAEA,GACI,eAAmB,CACnB,gBAAiB,CACjB,eACJ,CACA,yBACI,GACI,gBACJ,CACJ,CAEA,GACI,mBAAuB,CACvB,gBACJ,CACA,yBACI,GACI,gBACJ,CACJ,CAEA,GACI,mBAAuB,CACvB,gBAAiB,CACjB,eACJ,CACA,yBACI,GACI,gBACJ,CACJ,CAEA,GACI,mBAAuB,CACvB,gBAAiB,CACjB,eACJ,CAQA,MALI,mBAAuB,CACvB,gBAAiB,CACjB,eAOJ","file":"global.css","sourcesContent":["/* Variables\n/* ---------------------------------------------------------- */\n\n:root {\n /* Colours */\n --blue: #3eb0ef;\n --green: #a4d037;\n --purple: #ad26b4;\n --yellow: #fecd35;\n --red: #f05230;\n --darkgrey: #15171A;\n --midgrey: #738a94;\n --lightgrey: #c5d2d9;\n --whitegrey: #e5eff5;\n --pink: #fa3a57;\n --brown: #a3821a;\n --darkmode: color(var(--darkgrey) l(+2%));\n}\n\n/* Reset\n/* ---------------------------------------------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\nimg {\n max-width: 100%;\n}\nhtml {\n box-sizing: border-box;\n font-family: sans-serif;\n\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n*,\n*:before,\n*:after {\n box-sizing: inherit;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nb,\nstrong {\n font-weight: bold;\n}\ni,\nem,\ndfn {\n font-style: italic;\n}\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nmark {\n background-color: #fdffb6;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0; /* 3 */\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n}\nbutton {\n overflow: visible;\n border: none;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\n/* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n cursor: pointer; /* 3 */\n\n -webkit-appearance: button; /* 2 */\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput:focus {\n outline: none;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n box-sizing: content-box; /* 2 */\n\n -webkit-appearance: textfield; /* 1 */\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nlegend {\n padding: 0; /* 2 */\n border: 0; /* 1 */\n}\ntextarea {\n overflow: auto;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n\n/* ==========================================================================\n Base styles: opinionated defaults\n ========================================================================== */\n\nhtml {\n overflow-x: hidden;\n overflow-y: scroll;\n font-size: 62.5%;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n overflow-x: hidden;\n color: color(var(--midgrey) l(-30%));\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 1.6rem;\n line-height: 1.6em;\n font-weight: 400;\n font-style: normal;\n letter-spacing: 0;\n text-rendering: optimizeLegibility;\n background: #fff;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -moz-font-feature-settings: \"liga\" on;\n}\n\n::selection {\n text-shadow: none;\n background: color(var(--blue) lightness(+30%));\n}\n\nhr {\n position: relative;\n display: block;\n width: 100%;\n margin: 2.5em 0 3.5em;\n padding: 0;\n height: 1px;\n border: 0;\n border-top: 1px solid color(var(--lightgrey) l(+10%));\n}\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n vertical-align: middle;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\np,\nul,\nol,\ndl,\nblockquote {\n margin: 0 0 1.5em 0;\n}\n\nol,\nul {\n padding-left: 1.3em;\n padding-right: 1.5em;\n}\n\nol ol,\nul ul,\nul ol,\nol ul {\n margin: 0.5em 0 1em;\n}\n\nul {\n list-style: disc;\n}\n\nol {\n list-style: decimal;\n}\n\nul,\nol {\n max-width: 100%;\n}\n\nli {\n margin: 0.5em 0;\n padding-left: 0.3em;\n line-height: 1.6em;\n}\n\ndt {\n float: left;\n margin: 0 20px 0 0;\n width: 120px;\n color: var(--darkgrey);\n font-weight: 500;\n text-align: right;\n}\n\ndd {\n margin: 0 0 5px 0;\n text-align: left;\n}\n\nblockquote {\n margin: 1.5em 0;\n padding: 0 1.6em 0 1.6em;\n border-left: var(--whitegrey) 0.5em solid;\n}\n\nblockquote p {\n margin: 0.8em 0;\n font-size: 1.2em;\n font-weight: 300;\n}\n\nblockquote small {\n display: inline-block;\n margin: 0.8em 0 0.8em 1.5em;\n font-size: 0.9em;\n opacity: 0.8;\n}\n/* Quotation marks */\nblockquote small:before {\n content: \"\\2014 \\00A0\";\n}\n\nblockquote cite {\n font-weight: bold;\n}\nblockquote cite a {\n font-weight: normal;\n}\n\na {\n color: color(var(--blue) l(-5%));\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n line-height: 1.15;\n font-weight: 600;\n text-rendering: optimizeLegibility;\n}\n\nh1 {\n margin: 0 0 0.5em 0;\n font-size: 5.5rem;\n font-weight: 600;\n}\n@media (max-width: 500px) {\n h1 {\n font-size: 2.2rem;\n }\n}\n\nh2 {\n margin: 1.5em 0 0.5em 0;\n font-size: 2.2rem;\n}\n@media (max-width: 500px) {\n h2 {\n font-size: 1.8rem;\n }\n}\n\nh3 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.8rem;\n font-weight: 500;\n}\n@media (max-width: 500px) {\n h3 {\n font-size: 1.7rem;\n }\n}\n\nh4 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.6rem;\n font-weight: 500;\n}\n\nh5 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.4rem;\n font-weight: 500;\n}\n\nh6 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.4rem;\n font-weight: 500;\n}\n"]} \ No newline at end of file diff --git a/assets/built/screen.css b/assets/built/screen.css new file mode 100644 index 0000000..ad37354 --- /dev/null +++ b/assets/built/screen.css @@ -0,0 +1,2 @@ +a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#313b3f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#cbeafb}::selection{text-shadow:none;background:#cbeafb}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e3e9ed}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{margin:.5em 0;padding-left:.3em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:#15171a;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid #e5eff5}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a8ed;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:600;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5.5rem;font-weight:600}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2.2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500}body{background:#fff}.img{display:block;width:100%;height:100%;background-position:50%;background-size:cover;border-radius:100%}.hidden{visibility:hidden;position:absolute;text-indent:-9999px}.site-wrapper{display:flex;flex-direction:column;min-height:100vh}.site-main{z-index:100;flex-grow:1}.outer{position:relative;padding:0 5vw}.inner{margin:0 auto;max-width:1040px;width:100%}@media (min-width:900px){.author-template .post-feed,.home-template .post-feed,.tag-template .post-feed{padding:40px 0 5vw;border-top-left-radius:3px;border-top-right-radius:3px}.home-template .site-nav{position:relative}}.site-header-background{position:relative;margin-top:64px;padding-bottom:12px;color:#fff;background:#090a0b no-repeat 50%;background-size:cover}.site-header-background:before{bottom:0;background:rgba(0,0,0,.18)}.site-header-background:after,.site-header-background:before{content:"";position:absolute;top:0;right:0;left:0;z-index:10;display:block}.site-header-background:after{bottom:auto;height:140px;background:linear-gradient(rgba(0,0,0,.15),transparent)}.site-header-background.no-image:after,.site-header-background.no-image:before{display:none}.site-header-content{z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6vw 3vw;min-height:200px;max-height:340px}.site-title{z-index:10;margin:0 0 0 -2px;padding:0;font-size:5rem;line-height:1em;font-weight:600}.site-logo{max-height:55px}.site-description{z-index:10;margin:0;padding:5px 0;font-size:2.1rem;line-height:1.4em;font-weight:400;opacity:.8}.site-home-header{z-index:1000}.site-home-header .site-header-background{margin-top:0}.site-home-header .site-header-content{padding:5vw 3vw 6vw}.site-home-header .site-title{font-size:5.5rem;text-align:center}.site-home-header .site-description{font-size:2.2rem;font-weight:300}.site-archive-header .site-header-content{position:relative;align-items:stretch;padding:12vw 0 20px;min-height:200px;max-height:600px}.site-archive-header .no-image{padding-top:0;padding-bottom:0;color:#15171a;background:#fff;opacity:1}.site-archive-header .no-image .site-description{color:#738a94;opacity:1}.site-archive-header .no-image .site-header-content{padding:5vw 0 10px;border-bottom:1px solid #e9eef1}@media (max-width:900px){.site-header-content{padding-bottom:9vw}}@media (max-width:500px){.site-home-header .site-title{font-size:3.2rem}.site-home-header .site-description{font-size:1.8rem}.site-archive-header .site-header-content{min-height:unset}}.site-nav-main{position:fixed;top:0;right:0;left:0;z-index:1000;background:#090a0b}.site-nav{position:relative;z-index:100;display:flex;justify-content:space-between;align-items:flex-start;overflow-y:hidden;height:64px;font-size:1.3rem}.site-nav-left-wrapper{position:relative;flex:1 0 auto;display:flex}.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after,.site-nav-main .site-nav-left-wrapper:after{content:"";position:absolute;top:0;z-index:1000;width:40px;height:100%;right:0;background:linear-gradient(90deg,rgba(9,10,11,0) 0,#090a0b)}.site-nav-left{flex:1 0 auto;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;margin-right:10px;padding:10px 0 80px;font-weight:500;letter-spacing:.2px;text-transform:uppercase;white-space:nowrap;-ms-overflow-scrolling:touch}.site-nav-left .nav li:last-of-type{padding-right:20px}.site-nav-logo{position:relative;z-index:100;flex-shrink:0;display:inline-block;margin-right:32px;padding:12px 0;color:#fff;font-size:1.7rem;line-height:1.8rem;font-weight:700;letter-spacing:-.5px;text-transform:none}.site-nav-logo:hover{text-decoration:none}.site-nav-logo img{display:block;width:auto;height:21px}.site-home-header .site-nav-logo{display:none}.site-nav-content{position:relative;align-self:flex-start}.nav{position:absolute;z-index:1000;display:flex;margin:0 0 0 -12px;padding:0;list-style:none;transition:all 1s cubic-bezier(.19,1,.22,1)}.nav li{display:block;margin:0;padding:0}.nav li a{position:relative;display:block;padding:12px;color:#fff;opacity:.8;transition:opacity .35s ease-in-out}.nav li a:hover{text-decoration:none;opacity:1}.nav li a:before{content:"";position:absolute;right:100%;bottom:8px;left:12px;height:1px;background:#fff;opacity:.25;transition:all .35s ease-in-out}.nav li a:hover:before{right:12px;opacity:.5}.nav-post-title-active .nav{visibility:hidden;opacity:0;transform:translateY(-175%)}.nav-post-title{visibility:hidden;position:absolute;top:9px;color:#fff;font-size:1.7rem;font-weight:400;text-transform:none;opacity:0;transition:all 1s cubic-bezier(.19,1,.22,1);transform:translateY(175%)}.nav-post-title.dash{left:-25px}.nav-post-title.dash:before{content:"– ";opacity:.5}.nav-post-title-active .nav-post-title{visibility:visible;opacity:1;transform:translateY(0)}.site-nav-right{flex:0 1 auto;display:flex;align-items:center;justify-content:flex-end;padding:10px 0;height:64px}.site-nav-right .nav{position:relative;margin:0}.site-nav-right .nav a{white-space:nowrap}.site-nav-right .nav a:before{display:none}.site-nav-right .nav li:last-of-type a{margin-right:-12px}.social-links{flex-shrink:0;display:flex;align-items:center}.social-link{display:inline-block;margin:0;padding:10px;opacity:.8}.social-link:hover{opacity:1}.social-link svg{height:1.8rem;fill:#fff}.social-link-fb svg,.social-link-wb svg{height:1.6rem}.social-link-wb svg path{stroke:#fff}.social-link-rss svg{height:1.9rem}.subscribe-button{display:block;padding:4px 10px;margin:0 0 0 10px;border:1px solid #fff;color:#fff;line-height:1em;border-radius:10px;opacity:.8}.subscribe-button:hover{text-decoration:none;opacity:1}.site-nav-right .nav+.subscribe-button{margin-left:24px}.rss-button{padding:10px 8px;opacity:.8}.rss-button:hover{opacity:1}.rss-button svg{margin-bottom:1px;height:2.1rem;fill:#fff}.home-template .site-nav-main{z-index:100}.home-template .site-nav-main .site-nav{opacity:0;transition:all .5s cubic-bezier(.19,1,.22,1) 0s}.home-template .site-nav-main .fixed-nav-active{opacity:1;transition:all .5s cubic-bezier(.19,1,.22,1) .05s}@media (max-width:700px){.site-home-header .site-nav{margin-left:-5vw}.site-nav-main{padding-right:0;padding-left:0}.site-nav-left{margin-right:0;padding-left:5vw}.site-nav-right{display:none}}.posts{overflow-x:hidden}.post-feed{flex-wrap:wrap;margin:0 -20px;padding:50px 0 0;background:#fff}.post-card,.post-feed{position:relative;display:flex}.post-card{flex:1 1 301px;flex-direction:column;overflow:hidden;margin:0 0 40px;padding:0 20px 40px;min-height:220px;border-bottom:1px solid #e9eef1;background-size:cover}.post-card-image-link{position:relative;display:block;overflow:hidden;border-radius:3px}.post-card-image{width:100%;height:200px;background:#c5d2d9 no-repeat 50%;-o-object-fit:cover;object-fit:cover}.post-card-content-link{position:relative;display:block;color:#15171a}.post-card-content-link:hover{text-decoration:none}.post-card-header{margin:15px 0 0}.post-feed .no-image .post-card-content-link{padding:0}.no-image .post-card-header{margin-top:0}.post-card-primary-tag{margin:0 0 .2em;color:#3eb0ef;font-size:1.2rem;font-weight:500;letter-spacing:.2px;text-transform:uppercase}.post-card-title{margin:0 0 .4em;line-height:1.15em;transition:color .2s ease-in-out}.no-image .post-card-title{margin-top:0}.post-card-content{flex-grow:1;display:flex;flex-direction:column}.post-card-excerpt{max-width:56em;color:#738a94;font-family:Georgia,serif}.post-card-excerpt p{margin-bottom:1em}.post-card-meta{display:flex;align-items:flex-start;padding:0}.author-profile-image,.avatar-wrapper{display:block;width:100%;height:100%;background:#e3e9ed;border-radius:100%;-o-object-fit:cover;object-fit:cover}.post-card-meta .avatar-wrapper,.post-card-meta .profile-image-wrapper{position:relative}.author-list{display:flex;flex-wrap:wrap;margin:0 0 0 4px;padding:0;list-style:none}.author-list-item{position:relative;flex-shrink:0;margin:0;padding:0}.static-avatar{display:block;overflow:hidden;margin:0 0 0 -6px;width:34px;height:34px;border:2px solid #fff;border-radius:100%}.author-name-tooltip{position:absolute;bottom:105%;z-index:999;display:block;padding:2px 8px;color:#fff;font-size:1.2rem;letter-spacing:.2px;white-space:nowrap;background:#15171a;border-radius:3px;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.03);opacity:0;transition:all .35s cubic-bezier(.4,.01,.165,.99);transform:translateY(6px);pointer-events:none}.author-list-item:hover .author-name-tooltip{opacity:1;transform:translateY(0)}@media (max-width:700px){.author-name-tooltip{display:none}}.post-card-byline-content{flex:1 1 50%;display:flex;flex-direction:column;margin:2px 0 0 6px;color:#92a3ab;font-size:1.2rem;line-height:1.4em;font-weight:400;letter-spacing:.2px;text-transform:uppercase}.post-card-byline-content span{margin:0}.post-card-byline-content a{color:#424852;font-weight:600}.post-card-byline-date{font-size:1.2rem}.post-card-byline-date .bull{display:inline-block;margin:0 4px;opacity:.6}.single-author-byline{display:flex;flex-direction:column;margin-left:5px;color:#5d7179;font-size:1.3rem;line-height:1.4em;font-weight:500}.single-author{display:flex;align-items:center}.single-author .static-avatar{margin-left:-2px}.single-author-name{display:inline-block}@media (min-width:795px){.post-card-large{flex:1 1 100%;flex-direction:row;padding-bottom:40px;min-height:280px;border-top:0}.post-card-large:hover{border-bottom-color:#e3e9ed}.post-card-large:not(.no-image) .post-card-header{margin-top:0}.post-card-large .post-card-image-link{position:relative;flex:1 1 auto;margin-bottom:0;min-height:380px}.post-card-large .post-card-image{position:absolute;width:100%;height:100%}.post-card-large .post-card-content{flex:0 1 361px;justify-content:center}.post-card-large .post-card-title{margin-top:0;font-size:3.2rem}.post-card-large .post-card-content-link,.post-card-large .post-card-meta{padding:0 0 0 40px}.post-card-large .post-card-excerpt p{margin-bottom:1.5em;font-size:1.8rem;line-height:1.5em}}@media (max-width:1170px){.post-card{margin-bottom:5vw}}@media (max-width:650px){.post-feed{padding-top:5vw}.post-card{margin-bottom:5vw}}@media (max-width:500px){.post-card-title{font-size:1.9rem}.post-card-excerpt{font-size:1.6rem}}.page-template .site-main,.post-template .site-main{margin-top:64px;padding-bottom:4vw;background:#fff}.post-full-header{position:relative;margin:0 auto;padding:70px 170px 50px;border-top-left-radius:3px;border-top-right-radius:3px}.post-full-tags{display:flex;justify-content:flex-start;align-items:center;color:#738a94;font-size:1.3rem;line-height:1.4em;font-weight:600;text-transform:uppercase}.post-full-meta-date{color:#738a94;font-size:1.2rem;font-weight:400}@media (max-width:1170px){.post-full-header{padding:60px 11vw 50px}}@media (max-width:800px){.post-full-header{padding-right:5vw;padding-left:5vw}}@media (max-width:500px){.post-full-header{padding:20px 0 35px}}.post-full-title{margin:0 0 .2em;color:#090a0b}.post-full-custom-excerpt{margin:20px 0 0;color:#738a94;font-family:Georgia,serif;font-size:2.3rem;line-height:1.4em;font-weight:300}.date-divider{display:inline-block;margin:0 6px 1px;font-weight:300}.post-full-image{display:flex;flex-direction:column;align-items:center;overflow:hidden;margin:25px 0 50px;background:#e3e9ed;border-radius:3px}.post-full-image img{max-width:1040px;width:100%;height:auto}.post-full-content{position:relative;margin:0 auto;padding:0 170px 6vw;min-height:230px;font-family:Georgia,serif;font-size:2rem;line-height:1.6em;background:#fff}@media (max-width:1170px){.post-full-content{padding:0 11vw}}@media (max-width:800px){.post-full-content{padding:0 5vw;font-size:1.8rem}}@media (max-width:500px){.post-full-custom-excerpt{font-size:1.9rem;line-height:1.5em}}.no-image .post-full-content{padding-top:0}.no-image .post-full-content:after,.no-image .post-full-content:before{display:none}.footnotes,.post-full-comments,.post-full-content blockquote,.post-full-content dl,.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h5,.post-full-content h6,.post-full-content ol,.post-full-content p,.post-full-content pre,.post-full-content ul{margin:0 0 1.5em;min-width:100%}@media (max-width:500px){.footnotes,.post-full-comments,.post-full-content dl,.post-full-content ol,.post-full-content p,.post-full-content pre,.post-full-content ul{margin-bottom:1.28em}}.post-full-content li{word-break:break-word}.post-full-content li p{margin:0}.post-full-content a{color:#15171a;word-break:break-word;box-shadow:inset 0 -1px 0 #15171a;transition:all .2s ease-in-out}.post-full-content a:hover{color:#3eb0ef;text-decoration:none;box-shadow:inset 0 -1px 0 #3eb0ef}.post-full-content em,.post-full-content strong{color:#090a0b}.post-full-content small{display:inline-block;line-height:1.6em}.post-full-content li:first-child{margin-top:0}.post-full-content img,.post-full-content video{display:block;margin:1.5em auto;max-width:1040px;height:auto}@media (max-width:1040px){.post-full-content img,.post-full-content video{width:100%}}.post-full-content img[src$="#full"]{max-width:none;width:100vw}.post-full-content img+br+small{display:block;margin-top:-3em;margin-bottom:1.5em;text-align:center}.post-full-content iframe{margin:0 auto!important}.post-full-content blockquote{margin:0 0 1.5em;padding:0 1.5em;border-left:3px solid #3eb0ef}@media (max-width:500px){.post-full-content blockquote{padding:0 1.3em}}.post-full-content blockquote p{margin:0 0 1em;color:inherit;font-size:inherit;line-height:inherit;font-style:italic}.post-full-content blockquote p:last-child{margin-bottom:0}.post-full-content code{padding:0 5px 2px;font-size:.8em;line-height:1em;font-weight:400!important;background:#e5eff5;border-radius:3px}.post-full-content p code{word-break:break-all}.post-full-content pre{overflow-x:auto;margin:1.5em 0 3em;padding:20px;max-width:100%;border:1px solid #000;color:#e5eff5;font-size:1.4rem;line-height:1.5em;background:#0e0f11;border-radius:5px}.post-full-content pre ::-moz-selection{color:#3c484e}.post-full-content pre ::selection{color:#3c484e}.post-full-content pre code{padding:0;font-size:inherit;line-height:inherit;background:transparent}.post-full-content pre code :not(span){color:inherit}.post-full-content .fluid-width-video-wrapper{margin:1.5em 0 3em}.post-full-content hr{margin:2em 0}.post-full-content hr:after{content:"";position:absolute;top:-15px;left:50%;display:block;margin-left:-10px;width:1px;height:30px;background:#e3e9ed;box-shadow:0 0 0 5px #fff;transform:rotate(45deg)}.post-full-content hr+p{margin-top:1.2em}.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h5,.post-full-content h6{color:#090a0b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.post-full-content h1{margin:.5em 0 .4em;font-size:4.2rem;line-height:1.25em;font-weight:600}.post-full-content p+h1{margin-top:.8em}@media (max-width:800px){.post-full-content h1{font-size:3.2rem;line-height:1.25em}}.post-full-content h2{margin:.5em 0 .4em;font-size:3.2rem;line-height:1.25em;font-weight:600}.post-full-content p+h2{margin-top:.8em}@media (max-width:800px){.post-full-content h2{margin-bottom:.3em;font-size:2.8rem;line-height:1.25em}}.post-full-content h3{margin:.5em 0 .2em;font-size:2.5rem;line-height:1.3em;font-weight:600}.post-full-content h2+h3{margin-top:.7em}@media (max-width:800px){.post-full-content h3{margin-bottom:.3em;font-size:2.4rem;line-height:1.3em}}.post-full-content h4{margin:.5em 0 .2em;font-size:2.5rem;font-weight:600}.post-full-content h2+h4{margin-top:.7em}.post-full-content h3+h4{margin-top:0}@media (max-width:800px){.post-full-content h4{margin-bottom:.3em;font-size:2.4rem;line-height:1.3em}}.post-full-content h5{display:block;margin:.5em 0;padding:.4em 1em .9em;border:0;color:#3eb0ef;font-family:Georgia,serif;font-size:3.2rem;line-height:1.35em;text-align:center}@media (min-width:1180px){.post-full-content h5{max-width:1060px;width:100vw}}@media (max-width:800px){.post-full-content h5{margin-bottom:1em;margin-left:1.3em;padding:0 0 .5em;font-size:2.4rem;text-align:initial}}.post-full-content h6{margin:.5em 0 .2em;font-size:2rem;font-weight:700}@media (max-width:800px){.post-full-content h6{font-size:1.8rem;line-height:1.4em}}.footnotes-sep{margin-bottom:30px}.footnotes{font-size:1.5rem}.footnotes p{margin:0}.footnote-backref{color:#3eb0ef!important;font-size:1.2rem;font-weight:700;text-decoration:none!important;box-shadow:none!important}@media (max-width:1170px){.post-full-image{margin:25px -6vw 50px;border-radius:0}.post-full-image img{max-width:1170px}}@media (max-width:700px){.post-full-image{margin:25px -5vw}}@media (max-width:500px){.post-full-meta{font-size:1.2rem;line-height:1.3em}.post-full-title{margin-top:.2em;font-size:3.3rem}.post-full-image{margin-top:5px;margin-bottom:5vw}.post-full-content{padding:0}.post-full-content:after,.post-full-content:before{display:none}}.post-full-content table{display:inline-block;overflow-x:auto;margin:.5em 0 2.5em;max-width:100%;width:auto;border-spacing:0;border-collapse:collapse;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;white-space:nowrap;vertical-align:top;-webkit-overflow-scrolling:touch;background:radial-gradient(ellipse at left,rgba(0,0,0,.2) 0,transparent 75%) 0,radial-gradient(ellipse at right,rgba(0,0,0,.2) 0,transparent 75%) 100%;background-attachment:scroll,scroll;background-size:10px 100%,10px 100%;background-repeat:no-repeat}.post-full-content table td:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-size:20px 100%;background-repeat:no-repeat}.post-full-content table td:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-size:20px 100%;background-repeat:no-repeat}.post-full-content table th{color:#15171a;font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase;background-color:#f4f8fb}.post-full-content table td,.post-full-content table th{padding:6px 12px;border:1px solid #e3ecf3}.post-full-byline{display:flex;justify-content:space-between;margin:35px 0 0;padding-top:15px;border-top:1px solid #e3e9ed}.post-full-byline-content{flex-grow:1;display:flex;align-items:flex-start}.post-full-byline-content .author-list{justify-content:flex-start;padding:0 12px 0 0}.post-full-byline-meta{margin:2px 0 0;color:#92a3ab;font-size:1.2rem;line-height:1.2em;letter-spacing:.2px;text-transform:uppercase}.post-full-byline-meta h4{margin:0 0 3px;font-size:1.3rem;line-height:1.4em;font-weight:500}.post-full-byline-meta h4 a{color:#2b2f36}.post-full-byline-meta h4 a:hover{color:#15171a}.post-full-byline-meta .bull{display:inline-block;margin:0 4px;opacity:.6}.author-avatar{display:block;overflow:hidden;margin:0 -4px;width:40px;height:40px;border:2px solid #fff;border-radius:100%;transition:all .5s cubic-bezier(.4,.01,.165,.99) .7s}.author-list-item .author-card{position:absolute;bottom:130%;left:50%;z-index:600;display:flex;justify-content:space-between;margin-left:-200px;width:400px;font-size:1.4rem;line-height:1.5em;background:#fff;border-radius:3px;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.06);opacity:0;transition:all .35s cubic-bezier(.4,.01,.165,.99);transform:scale(.98) translateY(15px);pointer-events:none}.author-list-item .author-card:before{content:"";position:absolute;top:100%;left:50%;display:block;margin-left:-8px;width:0;height:0;border-top:8px solid #fff;border-right:8px solid transparent;border-left:8px solid transparent}.author-list-item .author-card.hovered{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}.author-card{padding:20px 20px 22px}.author-card .author-info{flex:1 1 auto;padding:0 0 0 20px}.author-card .author-info h2{margin:8px 0 0;font-size:1.6rem}.author-card .author-info p{margin:4px 0 0;color:#5d7179}.author-card .author-info .bio h2{margin-top:0}.author-card .author-info .bio p{margin-top:.8em}.author-card .author-profile-image{flex:0 0 60px;margin:0;width:60px;height:60px;border:none}.basic-info .avatar-wrapper{position:relative;margin:0;width:60px;height:60px;border:none;background:rgba(229,239,245,.1)}.basic-info .avatar-wrapper svg{margin:0;width:60px;height:60px;opacity:.15}@media (max-width:1170px){.author-list-item .author-card{margin-left:-50px;width:430px}.author-list-item .author-card:before{left:50px}}@media (max-width:650px){.author-list-item .author-card{display:none}}@media (max-width:500px){.author-avatar{width:32px;height:32px}.post-full-byline-meta{font-size:1.2rem}.post-full-byline-meta h4{margin-bottom:2px;font-size:1.2rem}}.subscribe-form{margin:1.5em 0;padding:6.5vw 7vw 8vw;border:1px solid #e3e9ed;text-align:center;background:linear-gradient(#fbfdfe,#f4f8fb);border-radius:3px}.subscribe-form-title{margin:0 0 3px;padding:0;color:#15171a;font-size:3.5rem;line-height:1;font-weight:600}.subscribe-form-description{margin-bottom:.2em 0 1em;color:#738a94;font-size:2.1rem;line-height:1.55em}.subscribe-form form{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;max-width:460px}.subscribe-form .form-group{align-self:stretch;display:flex}.subscribe-email{display:block;padding:10px;width:100%;border:1px solid #dae2e7;color:#738a94;font-size:1.8rem;line-height:1em;font-weight:400;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;border-radius:5px;transition:border-color .15s linear;-webkit-appearance:none}.subscribe-form button{position:relative;display:inline-block;margin:0 0 0 10px;padding:0 20px;height:43px;outline:none;color:#fff;font-size:1.5rem;line-height:39px;font-weight:400;text-align:center;background:linear-gradient(#4fb7f0,#29a0e0 60%,#29a0e0 90%,#36a6e2);border-radius:5px;-webkit-font-smoothing:subpixel-antialiased}.subscribe-form button:active,.subscribe-form button:focus{background:#209cdf}.subscribe-form .button-loader,.subscribe-form .message-error,.subscribe-form .message-success{display:none}.subscribe-form .loading .button-content{visibility:hidden}.subscribe-form .loading .button-loader{position:absolute;top:0;left:50%;display:inline-block;margin-left:-19px;transform:scale(.7)}.subscribe-form .button-loader svg path,.subscribe-form .button-loader svg rect{fill:#fff}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error,.subscribe-form .success .message-success{margin:1em auto 0;max-width:400px;color:#f05230;font-size:1.6rem;line-height:1.5em;text-align:center}.subscribe-form .success .message-success{display:block;color:#98c22e}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error{display:block}@media (max-width:650px){.subscribe-form-title{font-size:2.4rem}.subscribe-form-description{font-size:1.6rem}}@media (max-width:500px){.subscribe-form form{flex-direction:column}.subscribe-form .form-group{flex-direction:column;width:100%}.subscribe-form button{margin:10px 0 0;width:100%}}.post-full-comments{margin:0 auto;max-width:840px}.read-next{border-bottom:1px solid hsla(0,0%,100%,.1);background:#090a0b}.read-next-feed{display:flex;flex-wrap:wrap;margin:0 -25px;padding:60px 0 0}.read-next .post-card{padding-bottom:0;border-bottom:none}.read-next .post-card:after{display:none}.read-next .post-card-primary-tag{color:#fff;opacity:.6}.read-next .post-card-title{color:#fff;opacity:.8;transition:all .2s ease-in-out}.read-next .post-card:hover .post-card-image{opacity:1}.read-next .post-card-excerpt{color:hsla(0,0%,100%,.6)}.read-next .static-avatar{border-color:#000}.read-next .post-card-byline-content{color:hsla(0,0%,100%,.6)}.read-next .post-card-byline-content a{color:hsla(0,0%,100%,.8)}.read-next-card{position:relative;flex:0 1 326px;display:flex;flex-direction:column;overflow:hidden;margin:0 25px 50px;padding:25px;background:linear-gradient(#191b1f,#090a0b);border-radius:3px}.read-next-card a{transition:all .2s ease-in-out}.read-next-card a:hover{text-decoration:none}.read-next-card-header h3{margin:0;color:hsla(0,0%,100%,.6);font-size:1.2rem;line-height:1em;font-weight:300;letter-spacing:.4px;text-transform:uppercase}.read-next-card-header h3 a{color:#fff;font-weight:500;text-decoration:none;opacity:.8}.read-next-card-header h3 a:hover{opacity:1}.read-next-card-content{font-size:1.7rem}.read-next-card-content ul{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.read-next-card-content li{display:flex;flex-direction:column;align-items:flex-start;margin:0;padding:20px 0;border-bottom:hsla(0,0%,100%,.1)}.read-next-card-content li:last-of-type{padding-bottom:5px;border:none}.read-next-card-content h4{margin:0;font-size:1.6rem;line-height:1.35em;font-weight:600}.read-next-card-content li a{display:block;color:#fff;opacity:.8}.read-next-card-content li a:hover{opacity:1}.read-next-card-excerpt{overflow:hidden;max-width:100%;font-size:1.4rem;line-height:1.2em;text-overflow:ellipsis}.read-next-card-meta{margin-top:2px;font-size:1.2rem;line-height:1.4em;font-weight:400}.read-next-card-meta p{margin:0;color:hsla(0,0%,100%,.6)}.read-next-card-footer{position:relative;margin:40px 0 5px}.read-next-card-footer a{padding:7px 12px 8px 14px;border:1px solid hsla(0,0%,100%,.6);color:hsla(0,0%,100%,.6);font-size:1.3rem;border-radius:999px;transition:all .35s ease-in-out}.read-next-card-footer a:hover{border-color:#fecd35;color:#fecd35;text-decoration:none}@media (max-width:1170px){.read-next-card{flex:1 1 261px;margin-bottom:5vw}}@media (max-width:650px){.read-next-feed{flex-direction:column;padding:25px 0 0}.read-next-card{flex:1 1 auto;margin:0 25px;padding:0;background:none}.read-next .post-card{flex:1 1 auto;margin:25px;padding:25px 0 0;border-bottom:1px solid hsla(0,0%,100%,.1)}}.post-content{display:flex;flex-direction:column;align-items:center}.post-full-content .kg-image{max-width:100%}.post-full-image+.post-full-content .kg-content :first-child .kg-image{width:100%}.post-full-content .kg-width-wide .kg-image{max-width:1040px}.post-full-content .kg-width-full .kg-image{max-width:100vw}.post-full-content figure{margin:.8em 0 2.3em}.post-full-content h1+figure,.post-full-content h2+figure,.post-full-content h3+figure,.post-full-content h4+figure{margin-top:2em}.post-full-content figure img{margin:0}.post-full-content figcaption{margin:1em 0 0;color:#5d7179;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:75%;line-height:1.5em;text-align:center}.kg-width-full figcaption{padding:0 1.5em}.kg-embed-card{display:flex;flex-direction:column;align-items:center;width:100%}.kg-embed-card .fluid-width-video-wrapper{margin:0}@media (max-width:1040px){.post-full-content .kg-width-full .kg-image{width:100vw}}.kg-gallery-container{display:flex;flex-direction:column;max-width:1040px;width:100vw}.kg-gallery-row{display:flex;flex-direction:row;justify-content:center}.kg-gallery-image img{display:block;margin:0;width:100%;height:100%}.kg-gallery-row:not(:first-of-type){margin:.75em 0 0}.kg-gallery-image:not(:first-of-type){margin:0 0 0 .75em}.kg-gallery-card+.kg-gallery-card,.kg-gallery-card+.kg-image-card.kg-width-wide,.kg-image-card.kg-width-wide+.kg-gallery-card,.kg-image-card.kg-width-wide+.kg-image-card.kg-width-wide{margin:-2.25em 0 3em}.kg-code-card{width:100%}.kg-code-card pre{margin:0}.kg-bookmark-card{width:100%}.kg-card+.kg-bookmark-card{margin-top:0}.post-full-content .kg-bookmark-container{display:flex;min-height:148px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;border-radius:3px}.post-full-content .kg-bookmark-container,.post-full-content .kg-bookmark-container:hover{color:#15171a;text-decoration:none;box-shadow:0 2px 5px -1px rgba(0,0,0,.15),0 0 1px rgba(0,0,0,.09)}.kg-bookmark-content{flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:20px}.kg-bookmark-title{color:#313b3f;font-size:1.6rem;line-height:1.5em;font-weight:600;transition:color .2s ease-in-out}.post-full-content .kg-bookmark-container:hover .kg-bookmark-title{color:#3eb0ef}.kg-bookmark-description{display:-webkit-box;overflow-y:hidden;margin-top:12px;max-height:48px;color:#5d7179;font-size:1.5rem;line-height:1.5em;font-weight:400;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kg-bookmark-thumbnail{position:relative;min-width:33%;max-height:100%}.kg-bookmark-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:0 3px 3px 0;-o-object-fit:cover;object-fit:cover}.kg-bookmark-metadata{display:flex;flex-wrap:wrap;align-items:center;margin-top:14px;color:#5d7179;font-size:1.5rem;font-weight:400}.post-full-content .kg-bookmark-icon{margin-right:8px;width:22px;height:22px}.kg-bookmark-author{line-height:1.5em}.kg-bookmark-author:after{content:"•";margin:0 6px}.kg-bookmark-publisher{overflow:hidden;max-width:240px;line-height:1.5em;text-overflow:ellipsis;white-space:nowrap}@media (max-width:800px){.post-full-content figure{margin:.2em 0 1.3em}.post-full-content h1+figure,.post-full-content h2+figure,.post-full-content h3+figure,.post-full-content h4+figure{margin-top:.9em}}@media (max-width:500px){.post-full-content .kg-width-full,.post-full-content .kg-width-wide{margin-right:-5vw;margin-left:-5vw}.post-full-content figcaption{margin-bottom:.4em}.post-full-content .kg-bookmark-container{flex-direction:column}.kg-bookmark-description,.kg-bookmark-metadata,.kg-bookmark-title{font-size:1.4rem;line-height:1.5em}.post-full-content .kg-bookmark-icon{width:18px;height:18px}.kg-bookmark-thumbnail{order:1;min-height:160px;width:100%}.kg-bookmark-thumbnail img{border-radius:3px 3px 0 0}.kg-bookmark-content{order:2}}.author-header{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;padding:10vw 0 10px}.site-archive-header .no-image .author-header{padding-bottom:20px}.author-header-content{display:flex;flex-direction:column;justify-content:center;margin:5px 0 0 30px}.site-header-content .author-profile-image{z-index:10;flex-shrink:0;margin:5px 0 0;width:110px;height:110px;box-shadow:0 0 0 6px hsla(0,0%,100%,.1)}.author-header-content .author-bio{z-index:10;flex-shrink:0;margin:6px 0 -6px;max-width:46em;font-size:2rem;line-height:1.4em;font-weight:400;opacity:.8}.author-header-content .author-meta{z-index:10;flex-shrink:0;display:flex;align-items:center;margin:0 0 0 1px;font-size:1.2rem;font-weight:400;letter-spacing:.2px;text-transform:uppercase}.author-header-content .social-link:first-of-type{padding-left:4px}.no-image .author-header-content .author-bio,.no-image .author-header-content .author-meta{color:#738a94;opacity:1}.author-social-link a{color:#fff;font-weight:600}.no-image .author-social-link a{color:#15171a}.author-social-link a:hover{opacity:1}.author-social-link{display:inline-block;margin:0;padding:10px 0}.author-location+.author-stats:before,.author-social-link+.author-social-link:before,.author-stats+.author-social-link:before{content:"\2022";display:inline-block;margin:0 12px;color:#fff;opacity:.6}.no-image .author-location+.author-stats:before,.no-image .author-social-link+.author-social-link:before,.no-image .author-stats+.author-social-link:before{color:#738a94}@media (max-width:500px){.author-header{padding:10px 0 0}.no-image .author-header{padding-bottom:10px}.author-header-content{margin-left:20px}.site-header-content .author-profile-image{width:80px;height:80px}.author-header-content .author-bio{font-size:1.8rem;line-height:1.3em;letter-spacing:0}.author-location,.author-stats{display:none}}.error-content{padding:14vw 4vw 6vw}.site-nav-center{display:flex;justify-content:center;align-items:center;padding:10px 0;text-align:center}.site-nav-center .site-nav-logo{margin-right:0}.error-message{padding-bottom:10vw;border-bottom:1px solid #e3e9ed;text-align:center}.error-code{margin:0;color:#c5d2d9;font-size:12vw;line-height:1em;letter-spacing:-5px;opacity:.75}.error-description{margin:0;color:#738a94;font-size:3rem;line-height:1.3em;font-weight:400}.error-link{display:inline-block;margin-top:5px}@media (min-width:940px){.error-content .post-card{margin-bottom:0;padding-bottom:0;border-bottom:none}}@media (max-width:800px){.error-content{padding-top:24vw}.error-code{font-size:11.2rem}.error-message{padding-bottom:16vw}.error-description{margin:5px 0 0;font-size:1.8rem}}@media (max-width:500px){.error-content{padding-top:28vw}.error-message{padding-bottom:14vw}}.subscribe-success-message{position:fixed;top:0;right:0;left:0;z-index:9000;padding:20px 0;color:#fff;text-align:center;background:#a4d037;transition:all .35s cubic-bezier(.19,1,.22,1) .5s;transform:translateY(-175%)}.subscribe-success .subscribe-success-message{visibility:visible;transform:translateY(0)}.subscribe-success-message.close{visibility:hidden;transition:all 1.35s cubic-bezier(.19,1,.22,1);transform:translateY(-175%)}.subscribe-close{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.subscribe-close:before{transform:rotate(45deg)}.subscribe-close:after,.subscribe-close:before{content:"";position:absolute;top:32px;right:25px;display:block;width:20px;height:1px;background:#fff;opacity:.8}.subscribe-close:after{transform:rotate(-45deg)}.subscribe-close:hover{cursor:default}.subscribe-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;justify-content:center;align-items:center;background:rgba(9,10,11,.97);opacity:0;transition:opacity .2s ease-in;pointer-events:none}.subscribe-overlay .subscribe-close:after,.subscribe-overlay .subscribe-close:before{top:36px;width:30px}.subscribe-overlay:target{opacity:1;pointer-events:auto}.subscribe-overlay-content{position:relative;z-index:9999;margin:0 0 5vw;padding:4vw;color:#fff;text-align:center}.subscribe-overlay .subscribe-form{border:none;color:#fff;background:none}.subscribe-overlay-logo{position:fixed;top:23px;left:30px;height:30px}.subscribe-overlay-title{display:inline-block;margin:0 0 10px;font-size:5.2rem;line-height:1.15em}.subscribe-overlay-description{margin:0 auto 50px;max-width:650px;color:#fff;font-family:Georgia,serif;font-size:2.4rem;line-height:1.3em;font-weight:300;opacity:.8}.subscribe-overlay form{display:flex;justify-content:center;align-items:center;margin:0 auto;max-width:540px}.subscribe-overlay .form-group{flex-grow:1}.subscribe-overlay .subscribe-email{display:block;padding:14px 20px;width:100%;border:none;color:#738a94;font-size:2rem;line-height:1em;font-weight:400;letter-spacing:.5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;border-radius:8px;transition:border-color .15s linear;-webkit-appearance:none}.subscribe-email:focus{outline:0;border-color:#becdd5}.subscribe-overlay button{display:inline-block;margin:0 0 0 15px;padding:0 25px;height:52px;outline:none;color:#fff;font-size:1.7rem;line-height:38px;font-weight:400;text-align:center;background:linear-gradient(#4fb7f0,#29a0e0 60%,#29a0e0 90%,#36a6e2);border-radius:8px;-webkit-font-smoothing:subpixel-antialiased}.subscribe-overlay button:active,.subscribe-overlay button:focus{background:#209cdf}.subscribe-overlay .loading .button-loader{top:5px}.site-footer{position:relative;padding-top:20px;padding-bottom:60px;color:#fff;background:#090a0b}.site-footer-content{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:1.3rem}.site-footer-content,.site-footer-content a{color:hsla(0,0%,100%,.7)}.site-footer-content a:hover{color:#fff;text-decoration:none}.site-footer-nav{display:flex}.site-footer-nav a{position:relative;margin-left:20px}.site-footer-nav a:before{content:"";position:absolute;top:11px;left:-11px;display:block;width:2px;height:2px;background:#fff;border-radius:100%}.site-footer-nav a:first-of-type:before{display:none}@media (max-width:650px){.site-footer-content{flex-direction:column}.site-footer-nav a:first-child{margin-left:0}}@media (prefers-color-scheme:dark){body{color:hsla(0,0%,100%,.75);background:#191b1f}img{opacity:.9}.site-header-background:before{background:rgba(0,0,0,.6)}.post-feed{background:#191b1f}.post-card,.post-card:hover{border-bottom-color:#2b2f36}.author-profile-image{background:#191b1f}.post-card-byline-content a{color:hsla(0,0%,100%,.75)}.post-card-byline-content a:hover{color:#fff}.post-card-image{background:#191b1f}.post-card-title{color:hsla(0,0%,100%,.85)}.post-card-excerpt{color:#92a3ab}.author-avatar,.static-avatar{border-color:#191b1f}.page-template .site-main,.post-full-content,.post-template .site-main,.site-main{background:#191b1f}.post-full-title{color:hsla(0,0%,100%,.9)}.post-full-custom-excerpt{color:#92a3ab}.post-full-image{background-color:#2b2f36}.post-full-byline{border-top-color:#3b404a}.post-full-byline-meta h4 a{color:hsla(0,0%,100%,.75)}.post-full-byline-meta h4 a:hover{color:#fff}.author-list-item .author-card{background:#22252a;box-shadow:0 12px 26px rgba(0,0,0,.4)}.author-list-item .author-card:before{border-top-color:#22252a}.no-image .author-social-link a{color:hsla(0,0%,100%,.75)}.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h6{color:hsla(0,0%,100%,.9)}.post-full-content a{color:#fff;box-shadow:inset 0 -1px 0 #fff}.post-full-content em,.post-full-content strong{color:#fff}.post-full-content code{color:#fff;background:#000}hr{border-top-color:#2b2f36}.post-full-content figcaption{color:hsla(0,0%,100%,.6)}.post-full-content table td:first-child{background-image:linear-gradient(90deg,#191b1f 50%,rgba(25,27,31,0))}.post-full-content table td:last-child{background-image:linear-gradient(270deg,#191b1f 50%,rgba(25,27,31,0))}.post-full-content table th{color:hsla(0,0%,100%,.85);background-color:#2b2f36}.post-full-content table td,.post-full-content table th{border:1px solid #2b2f36}.post-full-content .kg-bookmark-container,.post-full-content .kg-bookmark-container:hover{color:hsla(0,0%,100%,.75);box-shadow:0 0 1px hsla(0,0%,100%,.9)}.kg-bookmark-title{color:#fff}.kg-bookmark-description,.kg-bookmark-metadata{color:hsla(0,0%,100%,.75)}.site-archive-header .no-image{color:hsla(0,0%,100%,.9);background:#191b1f}.site-archive-header .no-image .site-header-content{border-bottom-color:#3b404a}.site-header-content .author-profile-image{box-shadow:0 0 0 6px hsla(0,0%,100%,.04)}.subscribe-form{border:none;background:linear-gradient(#0b0c0e,#121417)}.subscribe-form-title{color:hsla(0,0%,100%,.9)}.subscribe-form p{color:hsla(0,0%,100%,.7)}.subscribe-email{border-color:#272a30;color:hsla(0,0%,100%,.9);background:#202228}.subscribe-email:focus{border-color:#525866}.subscribe-form button{opacity:.9}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error{color:#ec694b}.subscribe-form .success .message-success{color:#acd053}} +/*# sourceMappingURL=screen.css.map */ \ No newline at end of file diff --git a/assets/built/screen.css.map b/assets/built/screen.css.map new file mode 100644 index 0000000..e15d44e --- /dev/null +++ b/assets/built/screen.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["global.css","screen.css"],"names":[],"mappings":"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","file":"screen.css","sourcesContent":["/* Variables\n/* ---------------------------------------------------------- */\n\n:root {\n /* Colours */\n --blue: #3eb0ef;\n --green: #a4d037;\n --purple: #ad26b4;\n --yellow: #fecd35;\n --red: #f05230;\n --darkgrey: #15171A;\n --midgrey: #738a94;\n --lightgrey: #c5d2d9;\n --whitegrey: #e5eff5;\n --pink: #fa3a57;\n --brown: #a3821a;\n --darkmode: color(var(--darkgrey) l(+2%));\n}\n\n/* Reset\n/* ---------------------------------------------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\nimg {\n max-width: 100%;\n}\nhtml {\n box-sizing: border-box;\n font-family: sans-serif;\n\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n*,\n*:before,\n*:after {\n box-sizing: inherit;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nb,\nstrong {\n font-weight: bold;\n}\ni,\nem,\ndfn {\n font-style: italic;\n}\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nmark {\n background-color: #fdffb6;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0; /* 3 */\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n}\nbutton {\n overflow: visible;\n border: none;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\n/* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n cursor: pointer; /* 3 */\n\n -webkit-appearance: button; /* 2 */\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput:focus {\n outline: none;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n box-sizing: content-box; /* 2 */\n\n -webkit-appearance: textfield; /* 1 */\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nlegend {\n padding: 0; /* 2 */\n border: 0; /* 1 */\n}\ntextarea {\n overflow: auto;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n\n/* ==========================================================================\n Base styles: opinionated defaults\n ========================================================================== */\n\nhtml {\n overflow-x: hidden;\n overflow-y: scroll;\n font-size: 62.5%;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n overflow-x: hidden;\n color: color(var(--midgrey) l(-30%));\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 1.6rem;\n line-height: 1.6em;\n font-weight: 400;\n font-style: normal;\n letter-spacing: 0;\n text-rendering: optimizeLegibility;\n background: #fff;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -moz-font-feature-settings: \"liga\" on;\n}\n\n::selection {\n text-shadow: none;\n background: color(var(--blue) lightness(+30%));\n}\n\nhr {\n position: relative;\n display: block;\n width: 100%;\n margin: 2.5em 0 3.5em;\n padding: 0;\n height: 1px;\n border: 0;\n border-top: 1px solid color(var(--lightgrey) l(+10%));\n}\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n vertical-align: middle;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\np,\nul,\nol,\ndl,\nblockquote {\n margin: 0 0 1.5em 0;\n}\n\nol,\nul {\n padding-left: 1.3em;\n padding-right: 1.5em;\n}\n\nol ol,\nul ul,\nul ol,\nol ul {\n margin: 0.5em 0 1em;\n}\n\nul {\n list-style: disc;\n}\n\nol {\n list-style: decimal;\n}\n\nul,\nol {\n max-width: 100%;\n}\n\nli {\n margin: 0.5em 0;\n padding-left: 0.3em;\n line-height: 1.6em;\n}\n\ndt {\n float: left;\n margin: 0 20px 0 0;\n width: 120px;\n color: var(--darkgrey);\n font-weight: 500;\n text-align: right;\n}\n\ndd {\n margin: 0 0 5px 0;\n text-align: left;\n}\n\nblockquote {\n margin: 1.5em 0;\n padding: 0 1.6em 0 1.6em;\n border-left: var(--whitegrey) 0.5em solid;\n}\n\nblockquote p {\n margin: 0.8em 0;\n font-size: 1.2em;\n font-weight: 300;\n}\n\nblockquote small {\n display: inline-block;\n margin: 0.8em 0 0.8em 1.5em;\n font-size: 0.9em;\n opacity: 0.8;\n}\n/* Quotation marks */\nblockquote small:before {\n content: \"\\2014 \\00A0\";\n}\n\nblockquote cite {\n font-weight: bold;\n}\nblockquote cite a {\n font-weight: normal;\n}\n\na {\n color: color(var(--blue) l(-5%));\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n line-height: 1.15;\n font-weight: 600;\n text-rendering: optimizeLegibility;\n}\n\nh1 {\n margin: 0 0 0.5em 0;\n font-size: 5.5rem;\n font-weight: 600;\n}\n@media (max-width: 500px) {\n h1 {\n font-size: 2.2rem;\n }\n}\n\nh2 {\n margin: 1.5em 0 0.5em 0;\n font-size: 2.2rem;\n}\n@media (max-width: 500px) {\n h2 {\n font-size: 1.8rem;\n }\n}\n\nh3 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.8rem;\n font-weight: 500;\n}\n@media (max-width: 500px) {\n h3 {\n font-size: 1.7rem;\n }\n}\n\nh4 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.6rem;\n font-weight: 500;\n}\n\nh5 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.4rem;\n font-weight: 500;\n}\n\nh6 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.4rem;\n font-weight: 500;\n}\n","/* Table of Contents\n/* ------------------------------------------------------------\n\nThis is a development CSS file which is built to a minified\nproduction stylesheet in assets/built/screen.css\n\n1. Global Styles\n2. Layout\n3. Special Templates\n4. Site Header\n 4.1 Home header\n 4.2 Archive header\n5. Site Navigation\n6. Post Feed\n7. Single Post\n 7.1. Post Byline\n 7.2. Members Subscribe Form\n 7.3. Comments\n 7.4. Related Posts\n 7.5. Koenig Styles\n8. Author Template\n9. Error Template\n10. Subscribe Overlay\n11. Site Footer\n12. Dark Mode\n\n*/\n\n\n/* 1. Global - Set up the things\n/* ---------------------------------------------------------- */\n@import \"global.css\";\n\nbody {\n background: #fff;\n}\n\n.img {\n display: block;\n width: 100%;\n height: 100%;\n background-position: center center;\n background-size: cover;\n border-radius: 100%;\n}\n\n.hidden {\n visibility: hidden;\n position: absolute;\n text-indent: -9999px;\n}\n\n\n/* 2. Layout - Page building blocks\n/* ---------------------------------------------------------- */\n\n.site-wrapper {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.site-main {\n z-index: 100;\n flex-grow: 1;\n}\n\n/* Full width page blocks */\n.outer {\n position: relative;\n padding: 0 5vw;\n}\n\n/* Centered content container blocks */\n.inner {\n margin: 0 auto;\n max-width: 1040px;\n width: 100%;\n}\n\n/* Usage:\n\n
\n
\n Centered content\n
\n
\n\n*/\n\n/* 3. Special Template Styles\n/* ---------------------------------------------------------- */\n\n@media (min-width: 900px) {\n .home-template .post-feed,\n .tag-template .post-feed,\n .author-template .post-feed {\n padding: 40px 0 5vw;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n }\n\n .home-template .site-nav {\n position: relative;\n }\n}\n\n\n/* 4. Site Header\n/* ---------------------------------------------------------- */\n\n.site-header-background {\n position: relative;\n margin-top: 64px;\n padding-bottom: 12px;\n color: #fff;\n background: color(var(--darkgrey) l(-5%)) no-repeat center center;\n background-size: cover;\n}\n\n.site-header-background:before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n display: block;\n background: rgba(0,0,0,0.18);\n}\n\n.site-header-background:after {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: auto;\n left: 0;\n z-index: 10;\n display: block;\n height: 140px;\n background: linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0));\n}\n\n.site-header-background.no-image:before,\n.site-header-background.no-image:after {\n display: none;\n}\n\n.site-header-content {\n z-index: 100;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 6vw 3vw;\n min-height: 200px;\n max-height: 340px;\n}\n\n.site-title {\n z-index: 10;\n margin: 0 0 0 -2px;\n padding: 0;\n font-size: 5.0rem;\n line-height: 1em;\n font-weight: 600;\n}\n\n.site-logo {\n max-height: 55px;\n}\n\n.site-description {\n z-index: 10;\n margin: 0;\n padding: 5px 0;\n font-size: 2.1rem;\n line-height: 1.4em;\n font-weight: 400;\n opacity: 0.8;\n}\n\n/* 4.1 Home header\n/* ---------------------------------------------------------- */\n\n.site-home-header {\n z-index: 1000;\n}\n\n.site-home-header .site-header-background {\n margin-top: 0;\n}\n\n.site-home-header .site-header-content {\n padding: 5vw 3vw 6vw;\n}\n\n.site-home-header .site-title {\n font-size: 5.5rem;\n text-align: center;\n}\n\n.site-home-header .site-description {\n font-size: 2.2rem;\n font-weight: 300;\n}\n\n\n/* 4.2 Archive header (tag and author post lists)\n/* ---------------------------------------------------------- */\n\n.site-archive-header .site-header-content {\n position: relative;\n align-items: stretch;\n padding: 12vw 0 20px;\n min-height: 200px;\n max-height: 600px;\n}\n\n.site-archive-header .no-image {\n padding-top: 0;\n padding-bottom: 0;\n color: var(--darkgrey);\n background: #fff;\n opacity: 1.0;\n}\n\n.site-archive-header .no-image .site-description {\n color: var(--midgrey);\n opacity: 1.0;\n}\n\n\n.site-archive-header .no-image .site-header-content {\n padding: 5vw 0 10px;\n border-bottom: 1px solid color(var(--lightgrey) l(+12%));\n}\n\n\n/* Special header styles for smaller screens */\n\n@media (max-width: 900px) {\n .site-header-content {\n padding-bottom: 9vw;\n }\n}\n\n@media (max-width: 500px) {\n .site-home-header .site-title {\n font-size: 3.2rem;\n }\n\n .site-home-header .site-description {\n font-size: 1.8rem;\n }\n\n .site-archive-header .site-header-content {\n min-height: unset;\n }\n}\n\n\n/* 5. Site Navigation\n/* ---------------------------------------------------------- */\n\n.site-nav-main {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1000;\n background: color(var(--darkgrey) l(-5%));\n}\n\n.site-nav {\n position: relative;\n z-index: 100;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n overflow-y: hidden;\n height: 64px;\n font-size: 1.3rem;\n}\n\n.site-nav-left-wrapper {\n position: relative;\n flex: 1 0 auto;\n display: flex;\n}\n\n.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after,\n.site-nav-main .site-nav-left-wrapper:after {\n content: \"\";\n position: absolute;\n top: 0;\n z-index: 1000;\n width: 40px;\n height: 100%;\n}\n\n.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after,\n.site-nav-main .site-nav-left-wrapper:after {\n right: 0;\n background: linear-gradient(to right, color(var(--darkgrey) l(-5%) a(0)) 0%,color(var(--darkgrey) l(-5%)) 100%);\n}\n\n.site-nav-left {\n flex: 1 0 auto;\n display: flex;\n align-items: center;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n margin-right: 10px;\n padding: 10px 0 80px;\n font-weight: 500;\n letter-spacing: 0.2px;\n text-transform: uppercase;\n white-space: nowrap;\n\n -ms-overflow-scrolling: touch;\n}\n\n.site-nav-left .nav li:last-of-type {\n padding-right: 20px;\n}\n\n/* Site Nav Hack Explanation (above):\n\nWhat's happening above is .site-nav-left is set to overflow-x and allow sideways scrolling, so that when there isn't enough space for all nav items (either due to lots of nav items, or a small viewport), you can still scroll side-to-side to reach them. Also, there is a small gradient on the left and right side covering the menu so that the menu goes offscreen smoothly.\n\nThe knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px of padding-bottom and a 40px fixed height parent (.site-nav) hides that entirely. Slightly hacky code. But nice clean end-result.\n\n*/\n\n.site-nav-logo {\n position: relative;\n z-index: 100;\n flex-shrink: 0;\n display: inline-block;\n margin-right: 32px;\n padding: 12px 0;\n color: #fff;\n font-size: 1.7rem;\n line-height: 1.8rem;\n font-weight: bold;\n letter-spacing: -0.5px;\n text-transform: none;\n}\n\n.site-nav-logo:hover {\n text-decoration: none;\n}\n\n.site-nav-logo img {\n display: block;\n width: auto;\n height: 21px;\n}\n\n.site-home-header .site-nav-logo {\n display: none;\n}\n\n.site-nav-content {\n position: relative;\n align-self: flex-start;\n}\n\n.nav {\n position: absolute;\n z-index: 1000;\n display: flex;\n margin: 0 0 0 -12px;\n padding: 0;\n list-style: none;\n transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1);\n}\n\n.nav li {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.nav li a {\n position: relative;\n display: block;\n padding: 12px 12px;\n color: #fff;\n opacity: 0.8;\n transition: opacity 0.35s ease-in-out;\n}\n\n.nav li a:hover {\n text-decoration: none;\n opacity: 1;\n}\n\n.nav li a:before {\n content: \"\";\n position: absolute;\n right: 100%;\n bottom: 8px;\n left: 12px;\n height: 1px;\n background: #fff;\n opacity: 0.25;\n transition: all 0.35s ease-in-out;\n}\n\n.nav li a:hover:before {\n right: 12px;\n opacity: 0.5;\n}\n\n.nav-post-title-active .nav {\n visibility: hidden;\n opacity: 0;\n transform: translateY(-175%);\n}\n\n.nav-post-title {\n visibility: hidden;\n position: absolute;\n top: 9px;\n color: #fff;\n font-size: 1.7rem;\n font-weight: 400;\n text-transform: none;\n opacity: 0;\n transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1);\n transform: translateY(175%);\n}\n\n.nav-post-title.dash {\n left: -25px;\n}\n\n.nav-post-title.dash:before {\n content: \"– \";\n opacity: 0.5;\n}\n\n.nav-post-title-active .nav-post-title {\n visibility: visible;\n opacity: 1;\n transform: translateY(0);\n}\n\n.site-nav-right {\n flex: 0 1 auto;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 10px 0;\n height: 64px;\n}\n\n.site-nav-right .nav {\n position: relative;\n margin: 0;\n}\n\n.site-nav-right .nav a {\n white-space: nowrap;\n}\n\n.site-nav-right .nav a:before {\n display: none;\n}\n\n.site-nav-right .nav li:last-of-type a {\n margin-right: -12px;\n}\n\n.social-links {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n}\n\n.social-link {\n display: inline-block;\n margin: 0;\n padding: 10px;\n opacity: 0.8;\n}\n\n.social-link:hover {\n opacity: 1.0;\n}\n\n.social-link svg {\n height: 1.8rem;\n fill: #fff;\n}\n\n.social-link-fb svg {\n height: 1.6rem;\n}\n\n.social-link-wb svg {\n height: 1.6rem;\n}\n\n.social-link-wb svg path {\n stroke: #fff;\n}\n\n.social-link-rss svg {\n height: 1.9rem;\n}\n\n.subscribe-button {\n display: block;\n padding: 4px 10px;\n margin: 0 0 0 10px;\n border: #fff 1px solid;\n color: #fff;\n line-height: 1em;\n border-radius: 10px;\n opacity: 0.8;\n}\n\n.subscribe-button:hover {\n text-decoration: none;\n opacity: 1;\n}\n\n.site-nav-right .nav + .subscribe-button {\n margin-left: 24px;\n}\n\n.rss-button {\n padding: 10px 8px;\n opacity: 0.8;\n}\n\n.rss-button:hover {\n opacity: 1;\n}\n\n.rss-button svg {\n margin-bottom: 1px;\n height: 2.1rem;\n fill: #fff;\n}\n\n/* Special behaviors for home navigation */\n\n.home-template .site-nav-main {\n z-index: 100;\n}\n\n.home-template .site-nav-main .site-nav {\n opacity: 0;\n transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0s;\n}\n\n.home-template .site-nav-main .fixed-nav-active {\n opacity: 1;\n transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0.05s;\n}\n\n@media (max-width: 700px) {\n .site-home-header .site-nav {\n margin-left: -5vw;\n }\n\n .site-nav-main {\n padding-right: 0;\n padding-left: 0;\n }\n\n .site-nav-left {\n margin-right: 0;\n padding-left: 5vw;\n }\n\n .site-nav-right {\n display: none;\n }\n}\n\n\n/* 6. Post Feed\n/* ---------------------------------------------------------- */\n\n.posts {\n overflow-x: hidden;\n}\n\n.post-feed {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n margin: 0 -20px;\n padding: 50px 0 0;\n background: #fff;\n}\n\n.post-card {\n position: relative;\n flex: 1 1 301px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n margin: 0 0 40px;\n padding: 0 20px 40px;\n min-height: 220px;\n border-bottom: 1px solid color(var(--lightgrey) l(+12%));\n background-size: cover;\n}\n\n.post-card-image-link {\n position: relative;\n display: block;\n overflow: hidden;\n border-radius: 3px;\n}\n\n.post-card-image {\n width: 100%;\n height: 200px;\n background: var(--lightgrey) no-repeat center center;\n\n object-fit: cover;\n}\n\n.post-card-content-link {\n position: relative;\n display: block;\n color: var(--darkgrey);\n}\n\n.post-card-content-link:hover {\n text-decoration: none;\n}\n\n.post-card-header {\n margin: 15px 0 0;\n}\n\n.post-feed .no-image .post-card-content-link {\n padding: 0;\n}\n\n.no-image .post-card-header {\n margin-top: 0;\n}\n\n.post-card-primary-tag {\n margin: 0 0 0.2em;\n color: var(--blue);\n font-size: 1.2rem;\n font-weight: 500;\n letter-spacing: 0.2px;\n text-transform: uppercase;\n}\n\n.post-card-title {\n margin: 0 0 0.4em;\n line-height: 1.15em;\n transition: color 0.2s ease-in-out;\n}\n\n.no-image .post-card-title {\n margin-top: 0;\n}\n\n.post-card-content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n}\n\n.post-card-excerpt {\n max-width: 56em;\n color: var(--midgrey);\n font-family: Georgia, serif;\n}\n\n.post-card-excerpt p {\n margin-bottom: 1em;\n}\n\n.post-card-meta {\n display: flex;\n align-items: flex-start;\n padding: 0;\n}\n\n.author-profile-image,\n.avatar-wrapper {\n display: block;\n width: 100%;\n height: 100%;\n background: color(var(--lightgrey) l(+10%));\n border-radius: 100%;\n\n object-fit: cover;\n}\n\n.post-card-meta .profile-image-wrapper,\n.post-card-meta .avatar-wrapper {\n position: relative;\n}\n\n.author-list {\n display: flex;\n flex-wrap: wrap;\n margin: 0 0 0 4px;\n padding: 0;\n list-style: none;\n}\n\n.author-list-item {\n position: relative;\n flex-shrink: 0;\n margin: 0;\n padding: 0;\n}\n\n.static-avatar {\n display: block;\n overflow: hidden;\n margin: 0 0 0 -6px;\n width: 34px;\n height: 34px;\n border: #fff 2px solid;\n border-radius: 100%;\n}\n\n.author-name-tooltip {\n position: absolute;\n bottom: 105%;\n z-index: 999;\n display: block;\n padding: 2px 8px;\n color: white;\n font-size: 1.2rem;\n letter-spacing: 0.2px;\n white-space: nowrap;\n background: var(--darkgrey);\n border-radius: 3px;\n box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.03) 1px 3px 8px;\n opacity: 0;\n transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99);\n transform: translateY(6px);\n pointer-events: none;\n}\n\n.author-list-item:hover .author-name-tooltip {\n opacity: 1.0;\n transform: translateY(0px);\n}\n\n@media (max-width: 700px) {\n .author-name-tooltip {\n display: none;\n }\n}\n\n.post-card-byline-content {\n flex: 1 1 50%;\n display: flex;\n flex-direction: column;\n margin: 2px 0 0 6px;\n color: color(var(--midgrey) l(+10%));\n font-size: 1.2rem;\n line-height: 1.4em;\n font-weight: 400;\n letter-spacing: 0.2px;\n text-transform: uppercase;\n}\n\n.post-card-byline-content span {\n margin: 0;\n}\n\n.post-card-byline-content a {\n color: color(var(--darkgrey) l(+20%));\n font-weight: 600;\n}\n\n.post-card-byline-date {\n font-size: 1.2rem;\n}\n\n.post-card-byline-date .bull {\n display: inline-block;\n margin: 0 4px;\n opacity: 0.6;\n}\n\n.single-author-byline {\n display: flex;\n flex-direction: column;\n margin-left: 5px;\n color: color(var(--midgrey) l(-10%));\n font-size: 1.3rem;\n line-height: 1.4em;\n font-weight: 500;\n}\n\n.single-author {\n display: flex;\n align-items: center;\n}\n\n.single-author .static-avatar {\n margin-left: -2px;\n}\n\n.single-author-name {\n display: inline-block;\n}\n\n/* Special Styling for home page grid (below):\n\nThe first post in the list is styled to be bigger than the others and take over\nthe full width of the grid to give it more emphasis. Wrapped in a media query to\nmake sure this only happens on large viewports / desktop-ish devices.\n\n */\n\n@media (min-width: 795px) {\n .post-card-large {\n flex: 1 1 100%;\n flex-direction: row;\n padding-bottom: 40px;\n min-height: 280px;\n border-top: 0;\n }\n\n .post-card-large:hover {\n border-bottom-color: color(var(--lightgrey) l(+10%));\n }\n\n .post-card-large:not(.no-image) .post-card-header {\n margin-top: 0;\n }\n\n .post-card-large .post-card-image-link {\n position: relative;\n flex: 1 1 auto;\n margin-bottom: 0;\n min-height: 380px;\n }\n\n .post-card-large .post-card-image {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n .post-card-large .post-card-content {\n flex: 0 1 361px;\n justify-content: center;\n }\n\n .post-card-large .post-card-title {\n margin-top: 0;\n font-size: 3.2rem;\n }\n\n .post-card-large .post-card-content-link {\n padding: 0 0 0 40px;\n }\n\n .post-card-large .post-card-meta {\n padding: 0 0 0 40px;\n }\n\n .post-card-large .post-card-excerpt p {\n margin-bottom: 1.5em;\n font-size: 1.8rem;\n line-height: 1.5em;\n }\n}\n\n\n/* Adjust some margins for smaller screens */\n@media (max-width: 1170px) {\n .post-card {\n margin-bottom: 5vw;\n }\n}\n\n@media (max-width: 650px) {\n .post-feed {\n padding-top: 5vw;\n }\n\n .post-card {\n margin-bottom: 5vw;\n }\n}\n\n@media (max-width: 500px) {\n .post-card-title {\n font-size: 1.9rem;\n }\n\n .post-card-excerpt {\n font-size: 1.6rem;\n }\n}\n\n\n/* 7. Single Post\n/* ---------------------------------------------------------- */\n\n.post-template .site-main,\n.page-template .site-main {\n margin-top: 64px;\n padding-bottom: 4vw;\n background: #fff;\n}\n\n.post-full-header {\n position: relative;\n margin: 0 auto;\n padding: 70px 170px 50px;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n\n.post-full-tags {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: var(--midgrey);\n font-size: 1.3rem;\n line-height: 1.4em;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.post-full-meta-date {\n color: var(--midgrey);\n font-size: 1.2rem;\n font-weight: 400;\n}\n\n@media (max-width: 1170px) {\n .post-full-header {\n padding: 60px 11vw 50px;\n }\n}\n\n@media (max-width: 800px) {\n .post-full-header {\n padding-right: 5vw;\n padding-left: 5vw;\n }\n}\n\n@media (max-width: 500px) {\n .post-full-header {\n padding: 20px 0 35px;\n }\n}\n\n.post-full-title {\n margin: 0 0 0.2em;\n color: color(var(--darkgrey) l(-5%));\n}\n\n.post-full-custom-excerpt {\n margin: 20px 0 0;\n color: var(--midgrey);\n font-family: Georgia, serif;\n font-size: 2.3rem;\n line-height: 1.4em;\n font-weight: 300;\n}\n\n.date-divider {\n display: inline-block;\n margin: 0 6px 1px;\n font-weight: 300;\n}\n\n.post-full-image {\n display: flex;\n flex-direction: column;\n align-items: center;\n overflow: hidden;\n margin: 25px 0 50px;\n background: color(var(--lightgrey) l(+10%));\n border-radius: 3px;\n}\n\n.post-full-image img {\n max-width: 1040px;\n width: 100%;\n height: auto;\n}\n\n.post-full-content {\n position: relative;\n margin: 0 auto;\n padding: 0 170px 6vw;\n min-height: 230px;\n font-family: Georgia, serif;\n font-size: 2.0rem;\n line-height: 1.6em;\n background: #fff;\n}\n\n@media (max-width: 1170px) {\n .post-full-content {\n padding: 0 11vw;\n }\n}\n@media (max-width: 800px) {\n .post-full-content {\n padding: 0 5vw;\n font-size: 1.8rem;\n }\n}\n@media (max-width: 500px) {\n .post-full-custom-excerpt {\n font-size: 1.9rem;\n line-height: 1.5em;\n }\n}\n\n.no-image .post-full-content {\n padding-top: 0;\n}\n\n.no-image .post-full-content:before,\n.no-image .post-full-content:after {\n display: none;\n}\n\n.post-full-content h1,\n.post-full-content h2,\n.post-full-content h3,\n.post-full-content h4,\n.post-full-content h5,\n.post-full-content h6,\n.post-full-content p,\n.post-full-content ul,\n.post-full-content ol,\n.post-full-content dl,\n.post-full-content pre,\n.post-full-content blockquote,\n.post-full-comments,\n.footnotes {\n margin: 0 0 1.5em 0;\n min-width: 100%;\n}\n@media (max-width: 500px) {\n .post-full-content p,\n .post-full-content ul,\n .post-full-content ol,\n .post-full-content dl,\n .post-full-content pre,\n .post-full-comments,\n .footnotes {\n margin-bottom: 1.28em;\n }\n}\n\n.post-full-content li {\n word-break: break-word;\n}\n\n.post-full-content li p {\n margin: 0;\n}\n\n.post-full-content a {\n color: var(--darkgrey);\n word-break: break-word;\n box-shadow: var(--darkgrey) 0 -1px 0 inset;\n transition: all 0.2s ease-in-out;\n}\n\n.post-full-content a:hover {\n color: var(--blue);\n text-decoration: none;\n box-shadow: var(--blue) 0 -1px 0 inset;\n}\n\n.post-full-content strong,\n.post-full-content em {\n color: color(var(--darkgrey) l(-5%));\n}\n\n.post-full-content small {\n display: inline-block;\n line-height: 1.6em;\n}\n\n.post-full-content li:first-child {\n margin-top: 0;\n}\n\n.post-full-content img,\n.post-full-content video {\n display: block;\n margin: 1.5em auto;\n max-width: 1040px;\n height: auto;\n}\n@media (max-width: 1040px) {\n .post-full-content img,\n .post-full-content video {\n width: 100%;\n }\n}\n\n\n/* Full bleed images (#full)\nSuper neat trick courtesy of @JoelDrapper\n\nUsage (In Ghost edtior):\n\n![img](/some/image.jpg#full)\n\n*/\n.post-full-content img[src$=\"#full\"] {\n max-width: none;\n width: 100vw;\n}\n\n\n/* Image captions\n\nUsage (In Ghost editor):\n\n![img](/some/image.jpg)\nYour image caption\n\n*/\n.post-full-content img + br + small {\n display: block;\n margin-top: -3em;\n margin-bottom: 1.5em;\n text-align: center;\n}\n\n\n/* Override third party iframe styles */\n.post-full-content iframe {\n margin: 0 auto !important;\n}\n\n.post-full-content blockquote {\n margin: 0 0 1.5em;\n padding: 0 1.5em;\n border-left: #3eb0ef 3px solid;\n}\n@media (max-width: 500px) {\n .post-full-content blockquote {\n padding: 0 1.3em;\n }\n}\n\n.post-full-content blockquote p {\n margin: 0 0 1em 0;\n color: inherit;\n font-size: inherit;\n line-height: inherit;\n font-style: italic;\n}\n\n.post-full-content blockquote p:last-child {\n margin-bottom: 0;\n}\n\n.post-full-content code {\n padding: 0 5px 2px;\n font-size: 0.8em;\n line-height: 1em;\n font-weight: 400!important;\n background: var(--whitegrey);\n border-radius: 3px;\n}\n\n.post-full-content p code {\n word-break: break-all;\n}\n\n.post-full-content pre {\n overflow-x: auto;\n margin: 1.5em 0 3em;\n padding: 20px;\n max-width: 100%;\n border: color(var(--darkgrey) l(-10%)) 1px solid;\n color: var(--whitegrey);\n font-size: 1.4rem;\n line-height: 1.5em;\n background: color(var(--darkgrey) l(-3%));\n border-radius: 5px;\n}\n\n.post-full-content pre ::selection {\n color: color(var(--midgrey) l(-25%));\n}\n\n.post-full-content pre code {\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n background: transparent;\n}\n\n.post-full-content pre code :not(span) {\n color: inherit;\n}\n\n.post-full-content .fluid-width-video-wrapper {\n margin: 1.5em 0 3em;\n}\n\n.post-full-content hr {\n margin: 2em 0;\n}\n\n.post-full-content hr:after {\n content: \"\";\n position: absolute;\n top: -15px;\n left: 50%;\n display: block;\n margin-left: -10px;\n width: 1px;\n height: 30px;\n background: color(var(--lightgrey) l(+10%));\n box-shadow: #fff 0 0 0 5px;\n transform: rotate(45deg);\n}\n\n.post-full-content hr + p {\n margin-top: 1.2em;\n}\n\n.post-full-content h1,\n.post-full-content h2,\n.post-full-content h3,\n.post-full-content h4,\n.post-full-content h5,\n.post-full-content h6 {\n color: color(var(--darkgrey) l(-5%));\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n}\n\n.post-full-content h1 {\n margin: 0.5em 0 0.4em;\n font-size: 4.2rem;\n line-height: 1.25em;\n font-weight: 600;\n}\n.post-full-content p + h1 {\n margin-top: 0.8em;\n}\n@media (max-width: 800px) {\n .post-full-content h1 {\n font-size: 3.2rem;\n line-height: 1.25em;\n }\n}\n\n.post-full-content h2 {\n margin: 0.5em 0 0.4em;\n font-size: 3.2rem;\n line-height: 1.25em;\n font-weight: 600;\n}\n.post-full-content p + h2 {\n margin-top: 0.8em;\n}\n@media (max-width: 800px) {\n .post-full-content h2 {\n margin-bottom: 0.3em;\n font-size: 2.8rem;\n line-height: 1.25em;\n }\n}\n\n.post-full-content h3 {\n margin: 0.5em 0 0.2em;\n font-size: 2.5rem;\n line-height: 1.3em;\n font-weight: 600;\n}\n.post-full-content h2 + h3 {\n margin-top: 0.7em;\n}\n@media (max-width: 800px) {\n .post-full-content h3 {\n margin-bottom: 0.3em;\n font-size: 2.4rem;\n line-height: 1.3em;\n }\n}\n\n.post-full-content h4 {\n margin: 0.5em 0 0.2em;\n font-size: 2.5rem;\n font-weight: 600;\n}\n.post-full-content h2 + h4 {\n margin-top: 0.7em;\n}\n.post-full-content h3 + h4 {\n margin-top: 0;\n}\n@media (max-width: 800px) {\n .post-full-content h4 {\n margin-bottom: 0.3em;\n font-size: 2.4rem;\n line-height: 1.3em;\n }\n}\n\n.post-full-content h5 {\n display: block;\n margin: 0.5em 0;\n padding: 0.4em 1em 0.9em;\n border: 0;\n color: var(--blue);\n font-family: Georgia,serif;\n font-size: 3.2rem;\n line-height: 1.35em;\n text-align: center;\n}\n@media (min-width: 1180px) {\n .post-full-content h5 {\n max-width: 1060px;\n width: 100vw;\n }\n}\n@media (max-width: 800px) {\n .post-full-content h5 {\n margin-bottom: 1em;\n margin-left: 1.3em;\n padding: 0 0 0.5em;\n font-size: 2.4rem;\n text-align: initial;\n }\n}\n\n.post-full-content h6 {\n margin: 0.5em 0 0.2em 0;\n font-size: 2.0rem;\n font-weight: 700;\n}\n@media (max-width: 800px) {\n .post-full-content h6 {\n font-size: 1.8rem;\n line-height: 1.4em;\n }\n}\n\n.footnotes-sep {\n margin-bottom: 30px;\n}\n\n.footnotes {\n font-size: 1.5rem;\n}\n\n.footnotes p {\n margin: 0;\n}\n\n.footnote-backref {\n color: var(--blue) !important;\n font-size: 1.2rem;\n font-weight: bold;\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n/* Some grouped styles for smaller viewports */\n@media (max-width: 1170px) {\n .post-full-image {\n margin: 25px -6vw 50px;\n border-radius: 0;\n }\n\n .post-full-image img {\n max-width: 1170px;\n }\n}\n\n@media (max-width: 700px) {\n .post-full-image {\n margin: 25px -5vw;\n }\n}\n\n@media (max-width: 500px) {\n .post-full-meta {\n font-size: 1.2rem;\n line-height: 1.3em;\n }\n\n .post-full-title {\n margin-top: 0.2em;\n font-size: 3.3rem;\n }\n\n .post-full-image {\n margin-top: 5px;\n margin-bottom: 5vw;\n }\n\n .post-full-content {\n padding: 0;\n }\n\n .post-full-content:before,\n .post-full-content:after {\n display: none;\n }\n}\n\n/* Tables */\n.post-full-content table {\n display: inline-block;\n overflow-x: auto;\n margin: 0.5em 0 2.5em;\n max-width: 100%;\n width: auto;\n border-spacing: 0;\n border-collapse: collapse;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 1.6rem;\n white-space: nowrap;\n vertical-align: top;\n}\n\n.post-full-content table {\n -webkit-overflow-scrolling: touch;\n background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center;\n background-attachment: scroll, scroll;\n background-size: 10px 100%, 10px 100%;\n background-repeat: no-repeat;\n}\n\n.post-full-content table td:first-child {\n background-image: linear-gradient(to right, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n background-size: 20px 100%;\n background-repeat: no-repeat;\n}\n\n.post-full-content table td:last-child {\n background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n background-position: 100% 0;\n background-size: 20px 100%;\n background-repeat: no-repeat;\n}\n\n.post-full-content table th {\n color: var(--darkgrey);\n font-size: 1.2rem;\n font-weight: 700;\n letter-spacing: 0.2px;\n text-align: left;\n text-transform: uppercase;\n background-color: color(var(--whitegrey) l(+4%));\n}\n\n.post-full-content table th,\n.post-full-content table td {\n padding: 6px 12px;\n border: color(var(--whitegrey) l(-1%) s(-5%)) 1px solid;\n}\n\n\n/* 7.1. Post Byline\n/* ---------------------------------------------------------- */\n\n.post-full-byline {\n display: flex;\n justify-content: space-between;\n margin: 35px 0 0;\n padding-top: 15px;\n border-top: 1px solid color(var(--lightgrey) l(+10%));\n}\n\n.post-full-byline-content {\n flex-grow: 1;\n display: flex;\n align-items: flex-start;\n}\n\n.post-full-byline-content .author-list {\n justify-content: flex-start;\n padding: 0 12px 0 0;\n}\n\n.post-full-byline-meta {\n margin: 2px 0 0;\n color: color(var(--midgrey) l(+10%));\n font-size: 1.2rem;\n line-height: 1.2em;\n letter-spacing: 0.2px;\n text-transform: uppercase;;\n}\n\n.post-full-byline-meta h4 {\n margin: 0 0 3px;\n font-size: 1.3rem;\n line-height: 1.4em;\n font-weight: 500;\n}\n\n.post-full-byline-meta h4 a {\n color: color(var(--darkgrey) l(+10%));\n}\n\n.post-full-byline-meta h4 a:hover {\n color: var(--darkgrey);\n}\n\n.post-full-byline-meta .bull {\n display: inline-block;\n margin: 0 4px;\n opacity: 0.6;\n}\n\n.author-avatar {\n display: block;\n overflow: hidden;\n margin: 0 -4px;\n width: 40px;\n height: 40px;\n border: #fff 2px solid;\n border-radius: 100%;\n transition: all 0.5s cubic-bezier(0.4, 0.01, 0.165, 0.99) 700ms;\n}\n\n.author-list-item .author-card {\n position: absolute;\n bottom: 130%;\n left: 50%;\n z-index: 600;\n display: flex;\n justify-content: space-between;\n margin-left: -200px;\n width: 400px;\n font-size: 1.4rem;\n line-height: 1.5em;\n background: white;\n border-radius: 3px;\n box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.06) 1px 3px 8px;\n opacity: 0;\n transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99);\n transform: scale(0.98) translateY(15px);\n pointer-events: none;\n}\n\n.author-list-item .author-card:before {\n content: \"\";\n position: absolute;\n top: 100%;\n left: 50%;\n display: block;\n margin-left: -8px;\n width: 0;\n height: 0;\n border-top: 8px solid #fff;\n border-right: 8px solid transparent;\n border-left: 8px solid transparent;\n}\n\n.author-list-item .author-card.hovered {\n opacity: 1.0;\n transform: scale(1) translateY(0px);\n pointer-events: auto;\n}\n\n.author-card {\n padding: 20px 20px 22px;\n}\n\n.author-card .author-info {\n flex: 1 1 auto;\n padding: 0 0 0 20px;\n}\n\n.author-card .author-info h2 {\n margin: 8px 0 0;\n font-size: 1.6rem;\n}\n\n.author-card .author-info p {\n margin: 4px 0 0;\n color: color(var(--midgrey) l(-10%));\n}\n\n.author-card .author-info .bio h2 {\n margin-top: 0;\n}\n\n.author-card .author-info .bio p {\n margin-top: 0.8em;\n}\n\n.author-card .author-profile-image {\n flex: 0 0 60px;\n margin: 0;\n width: 60px;\n height: 60px;\n border: none;\n}\n\n.basic-info .avatar-wrapper {\n position: relative;\n margin: 0;\n width: 60px;\n height: 60px;\n border: none;\n background: rgba(229, 239, 245, 0.1);\n}\n\n.basic-info .avatar-wrapper svg {\n margin: 0;\n width: 60px;\n height: 60px;\n opacity: 0.15;\n}\n\n@media (max-width: 1170px) {\n .author-list-item .author-card {\n margin-left: -50px;\n width: 430px;\n }\n\n .author-list-item .author-card:before {\n left: 50px;\n }\n}\n\n@media (max-width: 650px) {\n .author-list-item .author-card {\n display: none;\n }\n}\n\n@media (max-width: 500px) {\n .author-avatar {\n width: 32px;\n height: 32px;\n }\n\n .post-full-byline-meta {\n font-size: 1.2rem;\n }\n\n .post-full-byline-meta h4 {\n margin-bottom: 2px;\n font-size: 1.2rem;\n }\n}\n\n\n/* 7.2. Members Subscribe Form\n/* ---------------------------------------------------------- */\n.subscribe-form {\n margin: 1.5em 0;\n padding: 6.5vw 7vw 8vw;\n border: color(var(--lightgrey) l(+10%)) 1px solid;\n text-align: center;\n background: linear-gradient(color(var(--whitegrey) l(+6%)), color(var(--whitegrey) l(+4%)));\n border-radius: 3px;\n}\n\n.subscribe-form-title {\n margin: 0 0 3px 0;\n padding: 0;\n color: var(--darkgrey);\n font-size: 3.5rem;\n line-height: 1;\n font-weight: 600;\n}\n\n.subscribe-form-description {\n margin-bottom: 0.2em 0 1em;\n color: var(--midgrey);\n font-size: 2.1rem;\n line-height: 1.55em;\n}\n\n.subscribe-form form {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin: 0 auto;\n max-width: 460px;\n}\n\n.subscribe-form .form-group {\n align-self: stretch;\n display: flex;\n}\n\n.subscribe-email {\n display: block;\n padding: 10px;\n width: 100%;\n border: color(var(--lightgrey) l(+7%)) 1px solid;\n color: var(--midgrey);\n font-size: 1.8rem;\n line-height: 1em;\n font-weight: normal;\n user-select: text;\n border-radius: 5px;\n transition: border-color 0.15s linear;\n\n -webkit-appearance: none;\n}\n\n.subscribe-email:focus {\n outline: 0;\n border-color: color(var(--lightgrey) l(-2%));\n}\n\n.subscribe-form button {\n position: relative;\n display: inline-block;\n margin: 0 0 0 10px;\n padding: 0 20px;\n height: 43px;\n outline: none;\n color: #fff;\n font-size: 1.5rem;\n line-height: 39px;\n font-weight: 400;\n text-align: center;\n background: linear-gradient(\n color(var(--blue) whiteness(+7%)),\n color(var(--blue) lightness(-7%) saturation(-10%)) 60%,\n color(var(--blue) lightness(-7%) saturation(-10%)) 90%,\n color(var(--blue) lightness(-4%) saturation(-10%))\n );\n border-radius: 5px;\n\n -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.subscribe-form button:active,\n.subscribe-form button:focus {\n background: color(var(--blue) lightness(-9%) saturation(-10%));\n}\n\n.subscribe-form .button-loader,\n.subscribe-form .message-success,\n.subscribe-form .message-error {\n display: none;\n}\n\n.subscribe-form .loading .button-content {\n visibility: hidden;\n}\n\n.subscribe-form .loading .button-loader {\n position: absolute;\n top: 0;\n left: 50%;\n display: inline-block;\n margin-left: -19px;\n transform: scale(0.7);\n}\n\n.subscribe-form .button-loader svg path,\n.subscribe-form .button-loader svg rect {\n fill: #fff;\n}\n\n.subscribe-form .success .message-success,\n.subscribe-form .invalid .message-error,\n.subscribe-form .error .message-error {\n margin: 1em auto 0;\n max-width: 400px;\n color: var(--red);\n font-size: 1.6rem;\n line-height: 1.5em;\n text-align: center;\n}\n\n.subscribe-form .success .message-success {\n display: block;\n color: color(var(--green) l(-5%));\n}\n\n.subscribe-form .invalid .message-error,\n.subscribe-form .error .message-error {\n display: block;\n}\n\n\n@media (max-width: 650px) {\n .subscribe-form-title {\n font-size: 2.4rem;\n }\n\n .subscribe-form-description {\n font-size: 1.6rem;\n }\n}\n\n@media (max-width: 500px) {\n .subscribe-form form {\n flex-direction: column;\n }\n\n .subscribe-form .form-group {\n flex-direction: column;\n width: 100%;\n }\n\n .subscribe-form button {\n margin: 10px 0 0 0;\n width: 100%;\n }\n}\n\n\n/* 7.3. Comments\n/* ---------------------------------------------------------- */\n\n.post-full-comments {\n margin: 0 auto;\n max-width: 840px;\n}\n\n\n/* 7.4. Related posts\n/* ---------------------------------------------------------- */\n\n.read-next {\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n background: color(var(--darkgrey) l(-5%));\n}\n\n.read-next-feed {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -25px;\n padding: 60px 0 0 0;\n}\n\n.read-next .post-card {\n padding-bottom: 0;\n border-bottom: none;\n}\n\n.read-next .post-card:after {\n display: none;\n}\n\n.read-next .post-card-primary-tag {\n color: #fff;\n opacity: 0.6;\n}\n\n.read-next .post-card-title {\n color: #fff;\n opacity: 0.8;\n transition: all 0.2s ease-in-out;\n}\n\n.read-next .post-card:hover .post-card-image {\n opacity: 1.0;\n}\n\n.read-next .post-card-excerpt {\n color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next .static-avatar {\n border-color: #000;\n}\n\n.read-next .post-card-byline-content {\n color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next .post-card-byline-content a {\n color: rgba(255, 255, 255, 0.8);\n}\n\n.read-next-card {\n position: relative;\n flex: 0 1 326px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n margin: 0 25px 50px;\n padding: 25px;\n background: linear-gradient(color(var(--darkgrey) l(+2%)), color(var(--darkgrey) l(-5%)));\n border-radius: 3px;\n}\n\n.read-next-card a {\n transition: all 0.2s ease-in-out;\n}\n\n.read-next-card a:hover {\n text-decoration: none;\n}\n\n.read-next-card-header h3 {\n margin: 0;\n color: rgba(255, 255, 255, 0.6);\n font-size: 1.2rem;\n line-height: 1em;\n font-weight: 300;\n letter-spacing: 0.4px;\n text-transform: uppercase;\n}\n\n.read-next-card-header h3 a {\n color: #fff;\n font-weight: 500;\n text-decoration: none;\n opacity: 0.8;\n}\n\n.read-next-card-header h3 a:hover {\n opacity: 1;\n}\n\n.read-next-card-content {\n font-size: 1.7rem;\n}\n\n.read-next-card-content ul {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.read-next-card-content li {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin: 0;\n padding: 20px 0;\n border-bottom: rgba(255, 255, 255, 0.1);\n}\n\n.read-next-card-content li:last-of-type {\n padding-bottom: 5px;\n border: none;\n}\n\n.read-next-card-content h4 {\n margin: 0;\n font-size: 1.6rem;\n line-height: 1.35em;\n font-weight: 600;\n}\n\n.read-next-card-content li a {\n display: block;\n color: #fff;\n opacity: 0.8;\n}\n\n.read-next-card-content li a:hover {\n opacity: 1;\n}\n\n.read-next-card-excerpt {\n overflow: hidden;\n max-width: 100%;\n font-size: 1.4rem;\n line-height: 1.2em;\n text-overflow: ellipsis;\n}\n\n.read-next-card-meta {\n margin-top: 2px;\n font-size: 1.2rem;\n line-height: 1.4em;\n font-weight: 400;\n}\n\n.read-next-card-meta p {\n margin: 0;\n color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next-card-footer {\n position: relative;\n margin: 40px 0 5px;\n}\n\n.read-next-card-footer a {\n padding: 7px 12px 8px 14px;\n border: 1px solid rgba(255, 255, 255, 0.6);\n color: rgba(255, 255, 255, 0.6);\n font-size: 1.3rem;\n border-radius: 999px;\n transition: all 0.35s ease-in-out;\n}\n\n.read-next-card-footer a:hover {\n border-color: var(--yellow);\n color: var(--yellow);\n text-decoration: none;\n}\n\n@media (max-width: 1170px) {\n .read-next-card {\n flex: 1 1 261px;\n margin-bottom: 5vw;\n }\n}\n\n@media (max-width: 650px) {\n .read-next-feed {\n flex-direction: column;\n padding: 25px 0 0;\n }\n\n .read-next-card {\n flex: 1 1 auto;\n margin: 0 25px;\n padding: 0;\n background: none;\n }\n\n .read-next .post-card {\n flex: 1 1 auto;\n margin: 25px;\n padding: 25px 0 0;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n }\n}\n\n\n/* 7.5. Koenig Styles\n/* ---------------------------------------------------------- */\n\n.post-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.post-full-content .kg-image {\n max-width: 100%;\n}\n\n/* Preventing full-width image overlap with post image. */\n.post-full-image + .post-full-content .kg-content *:first-child .kg-image {\n width: 100%;\n}\n\n.post-full-content .kg-width-wide .kg-image {\n max-width: 1040px;\n}\n\n.post-full-content .kg-width-full .kg-image {\n max-width: 100vw;\n}\n\n.post-full-content figure {\n margin: 0.8em 0 2.3em;\n}\n\n.post-full-content h1 + figure,\n.post-full-content h2 + figure,\n.post-full-content h3 + figure,\n.post-full-content h4 + figure {\n margin-top: 2em;\n}\n\n.post-full-content figure img {\n margin: 0;\n}\n\n.post-full-content figcaption {\n margin: 1.0em 0 0;\n color: color(var(--midgrey) l(-10%));\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 75%;\n line-height: 1.5em;\n text-align: center;;\n}\n\n.kg-width-full figcaption {\n padding: 0 1.5em;\n}\n\n.kg-embed-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n}\n\n.kg-embed-card .fluid-width-video-wrapper {\n margin: 0;\n}\n\n\n@media (max-width: 1040px) {\n .post-full-content .kg-width-full .kg-image {\n width: 100vw;\n }\n}\n\n.kg-gallery-container {\n display: flex;\n flex-direction: column;\n max-width: 1040px;\n width: 100vw;\n}\n\n.kg-gallery-row {\n display: flex;\n flex-direction: row;\n justify-content: center;\n}\n\n.kg-gallery-image img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n}\n\n.kg-gallery-row:not(:first-of-type) {\n margin: 0.75em 0 0 0;\n}\n\n.kg-gallery-image:not(:first-of-type) {\n margin: 0 0 0 0.75em;\n}\n\n.kg-gallery-card + .kg-image-card.kg-width-wide,\n.kg-gallery-card + .kg-gallery-card,\n.kg-image-card.kg-width-wide + .kg-gallery-card,\n.kg-image-card.kg-width-wide + .kg-image-card.kg-width-wide {\n margin: -2.25em 0 3em;\n}\n\n/* keep existing
 styles for code cards with captions */\n.kg-code-card {\n    width: 100%;\n}\n\n.kg-code-card pre {\n    margin: 0;\n}\n\n.kg-bookmark-card {\n    width: 100%;\n}\n\n.kg-card + .kg-bookmark-card {\n    margin-top: 0;\n}\n\n.post-full-content .kg-bookmark-container {\n    display: flex;\n    min-height: 148px;\n    color: var(--darkgrey);\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n    text-decoration: none;\n    border-radius: 3px;\n    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);\n}\n\n.post-full-content .kg-bookmark-container:hover {\n    color: var(--darkgrey);\n    text-decoration: none;\n    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);\n}\n\n.kg-bookmark-content {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-start;\n    align-items: flex-start;\n    padding: 20px;\n}\n\n.kg-bookmark-title {\n    color: color(var(--midgrey) l(-30%));\n    font-size: 1.6rem;\n    line-height: 1.5em;\n    font-weight: 600;\n    transition: color 0.2s ease-in-out;\n}\n\n.post-full-content .kg-bookmark-container:hover .kg-bookmark-title {\n    color: var(--blue);\n}\n\n.kg-bookmark-description {\n    display: -webkit-box;\n    overflow-y: hidden;\n    margin-top: 12px;\n    max-height: 48px;\n    color: color(var(--midgrey) l(-10%));\n    font-size: 1.5rem;\n    line-height: 1.5em;\n    font-weight: 400;\n\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n}\n\n.kg-bookmark-thumbnail {\n    position: relative;\n    min-width: 33%;\n    max-height: 100%;\n}\n\n.kg-bookmark-thumbnail img {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border-radius: 0 3px 3px 0;\n\n    object-fit: cover;\n}\n\n.kg-bookmark-metadata {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    margin-top: 14px;\n    color: color(var(--midgrey) l(-10%));\n    font-size: 1.5rem;\n    font-weight: 400;\n}\n\n.post-full-content .kg-bookmark-icon {\n    margin-right: 8px;\n    width: 22px;\n    height: 22px;\n}\n\n.kg-bookmark-author {\n    line-height: 1.5em;\n}\n\n.kg-bookmark-author:after {\n    content: \"•\";\n    margin: 0 6px;\n}\n\n.kg-bookmark-publisher {\n    overflow: hidden;\n    max-width: 240px;\n    line-height: 1.5em;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n}\n\n@media (max-width: 800px) {\n    .post-full-content figure {\n        margin: 0.2em 0 1.3em;\n    }\n\n    .post-full-content h1 + figure,\n    .post-full-content h2 + figure,\n    .post-full-content h3 + figure,\n    .post-full-content h4 + figure {\n        margin-top: 0.9em;\n    }\n}\n\n@media (max-width: 500px) {\n    .post-full-content .kg-width-wide,\n    .post-full-content .kg-width-full {\n        margin-right: -5vw;\n        margin-left: -5vw;\n    }\n\n    .post-full-content figcaption {\n        margin-bottom: 0.4em;\n    }\n\n    .post-full-content .kg-bookmark-container {\n        flex-direction: column;\n    }\n\n    .kg-bookmark-title,\n    .kg-bookmark-description,\n    .kg-bookmark-metadata {\n        font-size: 1.4rem;\n        line-height: 1.5em;\n    }\n\n    .post-full-content .kg-bookmark-icon {\n        width: 18px;\n        height: 18px;\n    }\n\n    .kg-bookmark-thumbnail {\n        order: 1;\n        min-height: 160px;\n        width: 100%;\n    }\n\n    .kg-bookmark-thumbnail img {\n        border-radius: 3px 3px 0 0;\n    }\n\n    .kg-bookmark-content {\n        order: 2;\n    }\n}\n\n/* 8. Author Template\n/* ---------------------------------------------------------- */\n.author-header {\n    display: flex;\n    flex-direction: row;\n    justify-content: flex-start;\n    align-items: flex-start;\n    padding: 10vw 0 10px;\n}\n\n.site-archive-header .no-image .author-header {\n    padding-bottom: 20px;\n}\n\n.author-header-content {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    margin: 5px 0 0 30px;\n}\n\n.site-header-content .author-profile-image {\n    z-index: 10;\n    flex-shrink: 0;\n    margin: 5px 0 0;\n    width: 110px;\n    height: 110px;\n    box-shadow: rgba(255,255,255,0.1) 0 0 0 6px;\n}\n\n.author-header-content .author-bio {\n    z-index: 10;\n    flex-shrink: 0;\n    margin: 6px 0 -6px;\n    max-width: 46em;\n    font-size: 2.0rem;\n    line-height: 1.4em;\n    font-weight: 400;\n    opacity: 0.8;\n}\n\n.author-header-content .author-meta {\n    z-index: 10;\n    flex-shrink: 0;\n    display: flex;\n    align-items: center;\n    margin: 0 0 0 1px;\n    font-size: 1.2rem;\n    font-weight: 400;\n    letter-spacing: 0.2px;\n    text-transform: uppercase;\n}\n\n.author-header-content .social-link:first-of-type {\n    padding-left: 4px;\n}\n\n.no-image .author-header-content .author-bio {\n    color: var(--midgrey);\n    opacity: 1.0;\n}\n\n.no-image .author-header-content .author-meta {\n    color: var(--midgrey);\n    opacity: 1.0;\n}\n\n.author-social-link a {\n    color: #fff;\n    font-weight: 600;\n}\n\n.no-image .author-social-link a {\n    color: var(--darkgrey);\n}\n\n.author-social-link a:hover {\n    opacity: 1;\n}\n\n.author-social-link {\n    padding: 10px 0;\n}\n\n.author-social-link {\n    display: inline-block;\n    margin: 0;\n    padding: 10px 0;\n}\n\n.author-location + .author-stats:before,\n.author-stats + .author-social-link:before,\n.author-social-link + .author-social-link:before {\n    content: \"\\2022\";\n    display: inline-block;\n    margin: 0 12px;\n    color: #fff;\n    opacity: 0.6;\n}\n\n.no-image .author-location + .author-stats:before,\n.no-image .author-stats + .author-social-link:before,\n.no-image .author-social-link + .author-social-link:before {\n    color: var(--midgrey);\n}\n\n@media (max-width: 500px) {\n    .author-header {\n        padding: 10px 0 0;\n    }\n\n    .no-image .author-header {\n        padding-bottom: 10px;\n    }\n\n    .author-header-content {\n        margin-left: 20px;\n    }\n\n    .site-header-content .author-profile-image {\n        width: 80px;\n        height: 80px;\n    }\n\n    .author-header-content .author-bio {\n        font-size: 1.8rem;\n        line-height: 1.3em;\n        letter-spacing: 0;\n    }\n\n    .author-location,\n    .author-stats {\n        display: none;\n    }\n}\n\n\n/* 9. Error Template\n/* ---------------------------------------------------------- */\n\n.error-content {\n    padding: 14vw 4vw 6vw;\n}\n\n.site-nav-center {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    padding: 10px 0;\n    text-align: center;\n}\n\n.site-nav-center .site-nav-logo {\n    margin-right: 0;\n}\n\n.error-message {\n    padding-bottom: 10vw;\n    border-bottom: 1px solid color(var(--lightgrey) l(+10%));\n    text-align: center;\n}\n\n.error-code {\n    margin: 0;\n    color: var(--lightgrey);\n    font-size: 12vw;\n    line-height: 1em;\n    letter-spacing: -5px;\n    opacity: 0.75;\n}\n\n.error-description {\n    margin: 0;\n    color: var(--midgrey);\n    font-size: 3rem;\n    line-height: 1.3em;\n    font-weight: 400;\n}\n\n.error-link {\n    display: inline-block;\n    margin-top: 5px;\n}\n\n@media (min-width: 940px) {\n    .error-content .post-card {\n        margin-bottom: 0;\n        padding-bottom: 0;\n        border-bottom: none;\n    }\n}\n\n@media (max-width: 800px) {\n    .error-content {\n        padding-top: 24vw;\n    }\n    .error-code {\n        font-size: 11.2rem;\n    }\n    .error-message {\n        padding-bottom: 16vw;\n    }\n    .error-description {\n        margin: 5px 0 0 0;\n        font-size: 1.8rem;\n    }\n}\n\n@media (max-width: 500px) {\n    .error-content {\n        padding-top: 28vw;\n    }\n    .error-message {\n        padding-bottom: 14vw;\n    }\n}\n\n\n/* 10. Subscribe Message and Overlay\n/* ---------------------------------------------------------- */\n\n.subscribe-success-message {\n    position: fixed;\n    top: 0;\n    right: 0;\n    left: 0;\n    z-index: 9000;\n    padding: 20px 0;\n    color: #fff;\n    text-align: center;\n    background: var(--green);\n    transition: all 0.35s cubic-bezier(0.19, 1, 0.22, 1) 0.5s;\n    transform: translateY(-175%);\n}\n\n.subscribe-success .subscribe-success-message {\n    visibility: visible;\n    transform: translateY(0);\n}\n\n.subscribe-success-message.close {\n    visibility: hidden;\n    transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);\n    transform: translateY(-175%);\n}\n\n.subscribe-close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    display: block;\n}\n\n.subscribe-close:before {\n    content: \"\";\n    position: absolute;\n    top: 32px;\n    right: 25px;\n    display: block;\n    width: 20px;\n    height: 1px;\n    background: #fff;\n    opacity: 0.8;\n    transform: rotate(45deg);\n}\n\n.subscribe-close:after {\n    content: \"\";\n    position: absolute;\n    top: 32px;\n    right: 25px;\n    display: block;\n    width: 20px;\n    height: 1px;\n    background: #fff;\n    opacity: 0.8;\n    transform: rotate(-45deg);\n}\n\n.subscribe-close:hover {\n    cursor: default;\n}\n\n.subscribe-overlay {\n    position: fixed;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 9000;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    background: rgba(9,10,11,0.97);\n    opacity: 0;\n    transition: opacity 0.2s ease-in;\n    pointer-events: none;\n}\n\n.subscribe-overlay .subscribe-close:before,\n.subscribe-overlay .subscribe-close:after {\n    top: 36px;\n    width: 30px;\n}\n\n.subscribe-overlay:target {\n    opacity: 1;\n    pointer-events: auto;\n}\n\n.subscribe-overlay-content {\n    position: relative;\n    z-index: 9999;\n    margin: 0 0 5vw 0;\n    padding: 4vw;\n    color: #fff;\n    text-align: center;\n}\n\n.subscribe-overlay .subscribe-form {\n    border: none;\n    color: #fff;\n    background: none;\n}\n\n.subscribe-overlay-logo {\n    position: fixed;\n    top: 23px;\n    left: 30px;\n    height: 30px;\n}\n\n.subscribe-overlay-title {\n    display: inline-block;\n    margin: 0 0 10px 0;\n    font-size: 5.2rem;\n    line-height: 1.15em;\n}\n\n.subscribe-overlay-description {\n    margin: 0 auto 50px;\n    max-width: 650px;\n    color: #fff;\n    font-family: Georgia, serif;\n    font-size: 2.4rem;\n    line-height: 1.3em;\n    font-weight: 300;\n    opacity: 0.8;\n}\n\n.subscribe-overlay form {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    margin: 0 auto;\n    max-width: 540px;\n}\n\n.subscribe-overlay .form-group {\n    flex-grow: 1;\n}\n\n.subscribe-overlay .subscribe-email {\n    display: block;\n    padding: 14px 20px;\n    width: 100%;\n    border: none;\n    color: var(--midgrey);\n    font-size: 2rem;\n    line-height: 1em;\n    font-weight: normal;\n    letter-spacing: 0.5px;\n    user-select: text;\n    border-radius: 8px;\n    transition: border-color 0.15s linear;\n\n    -webkit-appearance: none;\n}\n\n.subscribe-email:focus {\n    outline: 0;\n    border-color: color(var(--lightgrey) l(-2%));\n}\n\n.subscribe-overlay button {\n    display: inline-block;\n    margin: 0 0 0 15px;\n    padding: 0 25px;\n    height: 52px;\n    outline: none;\n    color: #fff;\n    font-size: 1.7rem;\n    line-height: 38px;\n    font-weight: 400;\n    text-align: center;\n    background: linear-gradient(\n    color(var(--blue) whiteness(+7%)),\n    color(var(--blue) lightness(-7%) saturation(-10%)) 60%,\n    color(var(--blue) lightness(-7%) saturation(-10%)) 90%,\n    color(var(--blue) lightness(-4%) saturation(-10%))\n    );\n    border-radius: 8px;\n\n    -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.subscribe-overlay button:active,\n.subscribe-overlay button:focus {\n    background: color(var(--blue) lightness(-9%) saturation(-10%));\n}\n\n.subscribe-overlay .loading .button-loader {\n    top: 5px;\n}\n\n\n/* 11. Site Footer\n/* ---------------------------------------------------------- */\n\n.site-footer {\n    position: relative;\n    padding-top: 20px;\n    padding-bottom: 60px;\n    color: #fff;\n    background: color(var(--darkgrey) l(-5%));\n}\n\n.site-footer-content {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    align-items: center;\n    color: rgba(255,255,255,0.7);\n    font-size: 1.3rem;\n}\n\n.site-footer-content a {\n    color: rgba(255,255,255,0.7);\n}\n\n.site-footer-content a:hover {\n    color: rgba(255,255,255,1);\n    text-decoration: none;\n}\n\n.site-footer-nav {\n    display: flex;\n}\n\n.site-footer-nav a {\n    position: relative;\n    margin-left: 20px;\n}\n\n.site-footer-nav a:before {\n    content: \"\";\n    position: absolute;\n    top: 11px;\n    left: -11px;\n    display: block;\n    width: 2px;\n    height: 2px;\n    background: #fff;\n    border-radius: 100%;\n}\n\n.site-footer-nav a:first-of-type:before {\n    display: none;\n}\n\n@media (max-width: 650px) {\n    .site-footer-content {\n        flex-direction: column;\n    }\n\n    .site-footer-nav a:first-child {\n        margin-left: 0;\n    }\n}\n\n\n/* 12. Dark Mode\n/* ---------------------------------------------------------- */\n@media (prefers-color-scheme: dark) {\n    body {\n        color: rgba(255, 255, 255, 0.75);\n        background: var(--darkmode);\n    }\n\n    img {\n        opacity: 0.9;\n    }\n\n    .site-header-background:before {\n        background: rgba(0,0,0,0.6);\n    }\n\n    .post-feed {\n        background: var(--darkmode);\n    }\n\n    .post-card,\n    .post-card:hover {\n        border-bottom-color: color(var(--darkmode) l(+8%));\n    }\n\n    .author-profile-image {\n        background: var(--darkmode);\n    }\n\n    .post-card-byline-content a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-card-byline-content a:hover {\n        color: #fff;\n    }\n\n    .post-card-image {\n        background: var(--darkmode);\n    }\n\n    .post-card-title {\n        color: rgba(255, 255, 255, 0.85);\n    }\n\n    .post-card-excerpt {\n        color: color(var(--midgrey) l(+10%));\n    }\n\n    .author-avatar,\n    .static-avatar {\n        border-color: color(var(--darkgrey) l(+2%));\n    }\n\n    .site-main,\n    .post-template .site-main,\n    .page-template .site-main {\n        background: var(--darkmode);\n    }\n\n    .post-full-content {\n        background: var(--darkmode);\n    }\n\n    .post-full-title {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .post-full-custom-excerpt {\n        color: color(var(--midgrey) l(+10%));\n    }\n\n    .post-full-image {\n        background-color: color(var(--darkmode) l(+8%));\n    }\n\n    .post-full-byline {\n        border-top-color: color(var(--darkmode) l(+15%));\n    }\n\n    .post-full-byline-meta h4 a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-full-byline-meta h4 a:hover {\n        color: #fff;\n    }\n\n    .author-list-item .author-card {\n        background: color(var(--darkmode) l(+4%));\n        box-shadow: 0 12px 26px rgba(0,0,0,0.4);\n    }\n\n    .author-list-item .author-card:before {\n        border-top-color: color(var(--darkmode) l(+4%));\n    }\n\n    .no-image .author-social-link a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-full-content h1,\n    .post-full-content h2,\n    .post-full-content h3,\n    .post-full-content h4,\n    .post-full-content h6 {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .post-full-content a {\n        color: #fff;\n        box-shadow: inset 0 -1px 0 #fff;\n    }\n\n    .post-full-content strong {\n        color: #fff;\n    }\n\n    .post-full-content em {\n        color: #fff;\n    }\n\n    .post-full-content code {\n        color: #fff;\n        background: #000;\n    }\n\n    hr {\n        border-top-color: color(var(--darkmode) l(+8%));\n    }\n\n    .post-full-content figcaption {\n        color: rgba(255, 255, 255, 0.6);\n    }\n\n    .post-full-content table td:first-child {\n        background-image: linear-gradient(to right, var(--darkmode) 50%, color(var(--darkmode) a(0%)) 100%);\n    }\n\n    .post-full-content table td:last-child {\n        background-image: linear-gradient(to left, var(--darkmode) 50%, color(var(--darkmode) a(0%)) 100%);\n    }\n\n    .post-full-content table th {\n        color: rgba(255, 255, 255, 0.85);\n        background-color: color(var(--darkmode) l(+8%));\n    }\n\n    .post-full-content table th,\n    .post-full-content table td {\n        border: color(var(--darkmode) l(+8%)) 1px solid;\n    }\n\n    .post-full-content .kg-bookmark-container,\n    .post-full-content .kg-bookmark-container:hover {\n        color: rgba(255, 255, 255, 0.75);\n        box-shadow: 0 0 1px rgba(255,255,255,0.9);\n    }\n\n    .kg-bookmark-title {\n        color: #fff;\n    }\n\n    .kg-bookmark-description {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .kg-bookmark-metadata {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .site-archive-header .no-image {\n        color: rgba(255, 255, 255, 0.9);\n        background: var(--darkmode);\n    }\n\n    .site-archive-header .no-image .site-header-content {\n        border-bottom-color: color(var(--darkmode) l(+15%));\n    }\n\n    .site-header-content .author-profile-image {\n        box-shadow: 0 0 0 6px hsla(0,0%,100%,0.04);\n    }\n\n    .subscribe-form {\n        border: none;\n        background: linear-gradient(color(var(--darkmode) l(-6%)), color(var(--darkmode) l(-3%)));\n    }\n\n    .subscribe-form-title {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .subscribe-form p {\n        color: rgba(255, 255, 255, 0.7);\n    }\n\n    .subscribe-email {\n        border-color: color(var(--darkmode) l(+6%));\n        color: rgba(255, 255, 255, 0.9);\n        background: color(var(--darkmode) l(+3%));\n    }\n\n    .subscribe-email:focus {\n        border-color: color(var(--darkmode) l(+25%));\n    }\n\n    .subscribe-form button {\n        opacity: 0.9;\n    }\n\n    .subscribe-form .invalid .message-error,\n    .subscribe-form .error .message-error {\n        color: color(var(--red) l(+5%) s(-5%));\n    }\n\n    .subscribe-form .success .message-success {\n        color: color(var(--green) l(+5%) s(-5%));\n    }\n}\n"]}
\ No newline at end of file
diff --git a/assets/css/csscomb.json b/assets/css/csscomb.json
new file mode 100644
index 0000000..318b661
--- /dev/null
+++ b/assets/css/csscomb.json
@@ -0,0 +1,240 @@
+{
+    "remove-empty-rulesets": true,
+    "always-semicolon": true,
+    "color-case": "lower",
+    "block-indent": "    ",
+    "color-shorthand": true,
+    "element-case": "lower",
+    "eof-newline": true,
+    "leading-zero": true,
+    "quotes": "double",
+    "space-before-colon": "",
+    "space-after-colon": " ",
+    "space-before-combinator": " ",
+    "space-after-combinator": " ",
+    "space-between-declarations": "\n",
+    "space-before-opening-brace": " ",
+    "space-after-opening-brace": "\n",
+    "space-after-selector-delimiter": "\n",
+    "space-before-selector-delimiter": "",
+    "space-before-closing-brace": "\n",
+    "strip-spaces": true,
+    "tab-size": 4,
+    "unitless-zero": true,
+    "sort-order": [ [
+        "content",
+        "visibility",
+        "position",
+        "top",
+        "right",
+        "bottom",
+        "left",
+        "z-index",
+        "order",
+        "flex",
+        "flex-grow",
+        "flex-shrink",
+        "flex-basis",
+        "align-self",
+        "display",
+        "flex-flow",
+        "flex-direction",
+        "justify-content",
+        "align-items",
+        "align-content",
+        "flex-wrap",
+        "flex-order",
+        "flex-pack",
+        "flex-align",
+        "float",
+        "clear",
+        "box-sizing",
+        "width",
+        "height",
+        "min-width",
+        "min-height",
+        "max-width",
+        "max-height",
+        "overflow",
+        "overflow-x",
+        "overflow-y",
+        "clip",
+        "margin",
+        "margin-top",
+        "margin-right",
+        "margin-bottom",
+        "margin-left",
+        "padding",
+        "padding-top",
+        "padding-right",
+        "padding-bottom",
+        "padding-left",
+        "outline",
+        "outline-width",
+        "outline-style",
+        "outline-color",
+        "outline-offset",
+        "border",
+        "border-spacing",
+        "border-collapse",
+        "border-width",
+        "border-style",
+        "border-color",
+        "border-top",
+        "border-top-width",
+        "border-top-style",
+        "border-top-color",
+        "border-right",
+        "border-right-width",
+        "border-right-style",
+        "border-right-color",
+        "border-bottom",
+        "border-bottom-width",
+        "border-bottom-style",
+        "border-bottom-color",
+        "border-left",
+        "border-left-width",
+        "border-left-style",
+        "border-left-color",
+        "border-image",
+        "border-image-source",
+        "border-image-slice",
+        "border-image-width",
+        "border-image-outset",
+        "border-image-repeat",
+        "border-top-image",
+        "border-right-image",
+        "border-bottom-image",
+        "border-left-image",
+        "border-corner-image",
+        "border-top-left-image",
+        "border-top-right-image",
+        "border-bottom-right-image",
+        "border-bottom-left-image",
+        "table-layout",
+        "caption-side",
+        "empty-cells",
+        "list-style",
+        "list-style-position",
+        "list-style-type",
+        "list-style-image",
+        "quotes",
+        "counter-increment",
+        "counter-reset",
+        "vertical-align",
+        "stroke",
+        "fill",
+        "stroke-width",
+        "stroke-opacity",
+        "color",
+        "font",
+        "font-family",
+        "font-size",
+        "line-height",
+        "font-weight",
+        "font-style",
+        "font-variant",
+        "font-size-adjust",
+        "font-stretch",
+        "text-rendering",
+        "font-feature-settings",
+        "letter-spacing",
+        "hyphens",
+        "text-align",
+        "text-align-last",
+        "text-decoration",
+        "text-emphasis",
+        "text-emphasis-position",
+        "text-emphasis-style",
+        "text-emphasis-color",
+        "text-indent",
+        "text-justify",
+        "text-outline",
+        "text-transform",
+        "text-wrap",
+        "text-overflow",
+        "text-overflow-ellipsis",
+        "text-overflow-mode",
+        "text-shadow",
+        "white-space",
+        "word-spacing",
+        "word-wrap",
+        "word-break",
+        "tab-size",
+        "user-select",
+        "src",
+        "resize",
+        "cursor",
+        "nav-index",
+        "nav-up",
+        "nav-right",
+        "nav-down",
+        "nav-left",
+        "background",
+        "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
+        "background-color",
+        "background-image",
+        "background-size",
+        "background-attachment",
+        "background-position",
+        "background-position-x",
+        "background-position-y",
+        "background-clip",
+        "background-origin",
+        "background-repeat",
+        "border-radius",
+        "border-top-left-radius",
+        "border-top-right-radius",
+        "border-bottom-right-radius",
+        "border-bottom-left-radius",
+        "box-decoration-break",
+        "box-shadow",
+        "opacity",
+        "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
+        "filter",
+        "transition",
+        "transition-delay",
+        "transition-timing-function",
+        "transition-duration",
+        "transition-property",
+        "transform",
+        "transform-origin",
+        "animation",
+        "animation-name",
+        "animation-duration",
+        "animation-play-state",
+        "animation-timing-function",
+        "animation-delay",
+        "animation-iteration-count",
+        "animation-direction",
+        "animation-fill-mode",
+        "pointer-events",
+        "unicode-bidi",
+        "direction",
+        "columns",
+        "column-span",
+        "column-width",
+        "column-count",
+        "column-fill",
+        "column-gap",
+        "column-rule",
+        "column-rule-width",
+        "column-rule-style",
+        "column-rule-color",
+        "break-before",
+        "break-inside",
+        "break-after",
+        "page-break-before",
+        "page-break-inside",
+        "page-break-after",
+        "orphans",
+        "widows",
+        "zoom",
+        "max-zoom",
+        "min-zoom",
+        "user-zoom",
+        "orientation",
+        "-webkit-overflow-scrolling",
+        "-ms-overflow-scrolling"
+    ] ]
+}
diff --git a/assets/css/global.css b/assets/css/global.css
new file mode 100644
index 0000000..4a0008c
--- /dev/null
+++ b/assets/css/global.css
@@ -0,0 +1,487 @@
+/* Variables
+/* ---------------------------------------------------------- */
+
+:root {
+    /* Colours */
+    --blue: #3eb0ef;
+    --green: #a4d037;
+    --purple: #ad26b4;
+    --yellow: #fecd35;
+    --red: #f05230;
+    --darkgrey: #15171A;
+    --midgrey: #738a94;
+    --lightgrey: #c5d2d9;
+    --whitegrey: #e5eff5;
+    --pink: #fa3a57;
+    --brown: #a3821a;
+    --darkmode: color(var(--darkgrey) l(+2%));
+}
+
+/* Reset
+/* ---------------------------------------------------------- */
+
+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,
+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: inherit;
+    font-size: 100%;
+    vertical-align: baseline;
+}
+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-spacing: 0;
+    border-collapse: collapse;
+}
+img {
+    max-width: 100%;
+}
+html {
+    box-sizing: border-box;
+    font-family: sans-serif;
+
+    -ms-text-size-adjust: 100%;
+    -webkit-text-size-adjust: 100%;
+}
+*,
+*:before,
+*:after {
+    box-sizing: inherit;
+}
+a {
+    background-color: transparent;
+}
+a:active,
+a:hover {
+    outline: 0;
+}
+b,
+strong {
+    font-weight: bold;
+}
+i,
+em,
+dfn {
+    font-style: italic;
+}
+h1 {
+    margin: 0.67em 0;
+    font-size: 2em;
+}
+small {
+    font-size: 80%;
+}
+sub,
+sup {
+    position: relative;
+    font-size: 75%;
+    line-height: 0;
+    vertical-align: baseline;
+}
+sup {
+    top: -0.5em;
+}
+sub {
+    bottom: -0.25em;
+}
+img {
+    border: 0;
+}
+svg:not(:root) {
+    overflow: hidden;
+}
+mark {
+    background-color: #fdffb6;
+}
+code,
+kbd,
+pre,
+samp {
+    font-family: monospace, monospace;
+    font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+    margin: 0; /* 3 */
+    color: inherit; /* 1 */
+    font: inherit; /* 2 */
+}
+button {
+    overflow: visible;
+    border: none;
+}
+button,
+select {
+    text-transform: none;
+}
+button,
+html input[type="button"],
+/* 1 */
+input[type="reset"],
+input[type="submit"] {
+    cursor: pointer; /* 3 */
+
+    -webkit-appearance: button; /* 2 */
+}
+button[disabled],
+html input[disabled] {
+    cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+    padding: 0;
+    border: 0;
+}
+input {
+    line-height: normal;
+}
+input:focus {
+    outline: none;
+}
+input[type="checkbox"],
+input[type="radio"] {
+    box-sizing: border-box; /* 1 */
+    padding: 0; /* 2 */
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+    height: auto;
+}
+input[type="search"] {
+    box-sizing: content-box; /* 2 */
+
+    -webkit-appearance: textfield; /* 1 */
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+    -webkit-appearance: none;
+}
+legend {
+    padding: 0; /* 2 */
+    border: 0; /* 1 */
+}
+textarea {
+    overflow: auto;
+}
+table {
+    border-spacing: 0;
+    border-collapse: collapse;
+}
+td,
+th {
+    padding: 0;
+}
+
+/* ==========================================================================
+   Base styles: opinionated defaults
+   ========================================================================== */
+
+html {
+    overflow-x: hidden;
+    overflow-y: scroll;
+    font-size: 62.5%;
+
+    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+    overflow-x: hidden;
+    color: color(var(--midgrey) l(-30%));
+    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
+    font-size: 1.6rem;
+    line-height: 1.6em;
+    font-weight: 400;
+    font-style: normal;
+    letter-spacing: 0;
+    text-rendering: optimizeLegibility;
+    background: #fff;
+
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    -moz-font-feature-settings: "liga" on;
+}
+
+::selection {
+    text-shadow: none;
+    background: color(var(--blue) lightness(+30%));
+}
+
+hr {
+    position: relative;
+    display: block;
+    width: 100%;
+    margin: 2.5em 0 3.5em;
+    padding: 0;
+    height: 1px;
+    border: 0;
+    border-top: 1px solid color(var(--lightgrey) l(+10%));
+}
+
+audio,
+canvas,
+iframe,
+img,
+svg,
+video {
+    vertical-align: middle;
+}
+
+fieldset {
+    margin: 0;
+    padding: 0;
+    border: 0;
+}
+
+textarea {
+    resize: vertical;
+}
+
+p,
+ul,
+ol,
+dl,
+blockquote {
+    margin: 0 0 1.5em 0;
+}
+
+ol,
+ul {
+    padding-left: 1.3em;
+    padding-right: 1.5em;
+}
+
+ol ol,
+ul ul,
+ul ol,
+ol ul {
+    margin: 0.5em 0 1em;
+}
+
+ul {
+    list-style: disc;
+}
+
+ol {
+    list-style: decimal;
+}
+
+ul,
+ol {
+    max-width: 100%;
+}
+
+li {
+    margin: 0.5em 0;
+    padding-left: 0.3em;
+    line-height: 1.6em;
+}
+
+dt {
+    float: left;
+    margin: 0 20px 0 0;
+    width: 120px;
+    color: var(--darkgrey);
+    font-weight: 500;
+    text-align: right;
+}
+
+dd {
+    margin: 0 0 5px 0;
+    text-align: left;
+}
+
+blockquote {
+    margin: 1.5em 0;
+    padding: 0 1.6em 0 1.6em;
+    border-left: var(--whitegrey) 0.5em solid;
+}
+
+blockquote p {
+    margin: 0.8em 0;
+    font-size: 1.2em;
+    font-weight: 300;
+}
+
+blockquote small {
+    display: inline-block;
+    margin: 0.8em 0 0.8em 1.5em;
+    font-size: 0.9em;
+    opacity: 0.8;
+}
+/* Quotation marks */
+blockquote small:before {
+    content: "\2014 \00A0";
+}
+
+blockquote cite {
+    font-weight: bold;
+}
+blockquote cite a {
+    font-weight: normal;
+}
+
+a {
+    color: color(var(--blue) l(-5%));
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    margin-top: 0;
+    line-height: 1.15;
+    font-weight: 600;
+    text-rendering: optimizeLegibility;
+}
+
+h1 {
+    margin: 0 0 0.5em 0;
+    font-size: 5.5rem;
+    font-weight: 600;
+}
+@media (max-width: 500px) {
+    h1 {
+        font-size: 2.2rem;
+    }
+}
+
+h2 {
+    margin: 1.5em 0 0.5em 0;
+    font-size: 2.2rem;
+}
+@media (max-width: 500px) {
+    h2 {
+        font-size: 1.8rem;
+    }
+}
+
+h3 {
+    margin: 1.5em 0 0.5em 0;
+    font-size: 1.8rem;
+    font-weight: 500;
+}
+@media (max-width: 500px) {
+    h3 {
+        font-size: 1.7rem;
+    }
+}
+
+h4 {
+    margin: 1.5em 0 0.5em 0;
+    font-size: 1.6rem;
+    font-weight: 500;
+}
+
+h5 {
+    margin: 1.5em 0 0.5em 0;
+    font-size: 1.4rem;
+    font-weight: 500;
+}
+
+h6 {
+    margin: 1.5em 0 0.5em 0;
+    font-size: 1.4rem;
+    font-weight: 500;
+}
diff --git a/assets/css/momokai_theme.css b/assets/css/momokai_theme.css
new file mode 100644
index 0000000..9e11b37
--- /dev/null
+++ b/assets/css/momokai_theme.css
@@ -0,0 +1,104 @@
+/**
+ * Monokai theme for Prism.JS
+ *
+ * @author Martijn Swaagman
+ * @license MIT 2015
+ */
+
+code[class*="language-"], pre[class*="language-"] {
+  color: #f8f8f2;
+  text-shadow: 0 1px rgba(0, 0, 0, 0.3);
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+  direction: ltr;
+  text-align: left;
+  white-space: pre;
+  word-spacing: normal;
+  word-break: normal;
+  word-wrap: normal;
+  line-height: 1.5;
+  -moz-tab-size: 4;
+  -o-tab-size: 4;
+  tab-size: 4;
+  -webkit-hyphens: none;
+  -moz-hyphens: none;
+  -ms-hyphens: none;
+  hyphens: none;
+}
+
+pre[class*="language-"] {
+  padding: 1em;
+  margin: .5em 0;
+  overflow: auto;
+  border-radius: 0.3em;
+}
+
+:not(pre)>code[class*="language-"], pre[class*="language-"] {
+  background: #272822;
+}
+
+:not(pre)>code[class*="language-"] {
+  padding: .1em;
+  border-radius: .3em;
+}
+
+.token.comment, .token.prolog, .token.doctype, .token.cdata {
+  color: #778090;
+}
+
+.token.punctuation {
+  color: #F8F8F2;
+}
+
+.namespace {
+  opacity: .7;
+}
+
+.token.property, .token.tag, .token.constant, .token.symbol, .token.deleted {
+  color: #F92672;
+}
+
+.token.boolean, .token.number {
+  color: #AE81FF;
+}
+
+.token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted {
+  color: #A6E22E;
+}
+
+.token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string, .token.variable {
+  color: #F8F8F2;
+}
+
+.token.atrule, .token.attr-value, .token.function {
+  color: #E6DB74;
+}
+
+.token.keyword {
+  color: #F92672;
+}
+
+.token.regex, .token.important {
+  color: #FD971F;
+}
+
+.token.important, .token.bold {
+  font-weight: bold;
+}
+
+.token.italic {
+  font-style: italic;
+}
+
+.token.entity {
+  cursor: help;
+}
+
+div.code-toolbar {
+  width: 100%;
+}
+
+pre[class*=language-] {
+  margin: 1.75em 0;
+  font-size: 1.4rem;
+  background: #111;
+}
\ No newline at end of file
diff --git a/assets/css/screen.css b/assets/css/screen.css
new file mode 100644
index 0000000..000b8ac
--- /dev/null
+++ b/assets/css/screen.css
@@ -0,0 +1,3032 @@
+/* Table of Contents
+/* ------------------------------------------------------------
+
+This is a development CSS file which is built to a minified
+production stylesheet in assets/built/screen.css
+
+1.  Global Styles
+2.  Layout
+3.  Special Templates
+4.  Site Header
+  4.1 Home header
+  4.2 Archive header
+5.  Site Navigation
+6.  Post Feed
+7.  Single Post
+  7.1. Post Byline
+  7.2. Members Subscribe Form
+  7.3. Comments
+  7.4. Related Posts
+  7.5. Koenig Styles
+8.  Author Template
+9.  Error Template
+10. Subscribe Overlay
+11. Site Footer
+12. Dark Mode
+
+*/
+
+
+/* 1. Global - Set up the things
+/* ---------------------------------------------------------- */
+@import "global.css";
+
+body {
+    background: #fff;
+}
+
+.img {
+    display: block;
+    width: 100%;
+    height: 100%;
+    background-position: center center;
+    background-size: cover;
+    border-radius: 100%;
+}
+
+.hidden {
+    visibility: hidden;
+    position: absolute;
+    text-indent: -9999px;
+}
+
+
+/* 2. Layout - Page building blocks
+/* ---------------------------------------------------------- */
+
+.site-wrapper {
+    display: flex;
+    flex-direction: column;
+    min-height: 100vh;
+}
+
+.site-main {
+    z-index: 100;
+    flex-grow: 1;
+}
+
+/* Full width page blocks */
+.outer {
+    position: relative;
+    padding: 0 5vw;
+}
+
+/* Centered content container blocks */
+.inner {
+    margin: 0 auto;
+    max-width: 1040px;
+    width: 100%;
+}
+
+/* Usage:
+
+
+
+ Centered content +
+
+ +*/ + +/* 3. Special Template Styles +/* ---------------------------------------------------------- */ + +@media (min-width: 900px) { + .home-template .post-feed, + .tag-template .post-feed, + .author-template .post-feed { + padding: 40px 0 5vw; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + + .home-template .site-nav { + position: relative; + } +} + + +/* 4. Site Header +/* ---------------------------------------------------------- */ + +.site-header-background { + position: relative; + margin-top: 64px; + padding-bottom: 12px; + color: #fff; + background: color(var(--darkgrey) l(-5%)) no-repeat center center; + background-size: cover; +} + +.site-header-background:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 10; + display: block; + background: rgba(0,0,0,0.18); +} + +.site-header-background:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: auto; + left: 0; + z-index: 10; + display: block; + height: 140px; + background: linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0)); +} + +.site-header-background.no-image:before, +.site-header-background.no-image:after { + display: none; +} + +.site-header-content { + z-index: 100; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 6vw 3vw; + min-height: 200px; + max-height: 340px; +} + +.site-title { + z-index: 10; + margin: 0 0 0 -2px; + padding: 0; + font-size: 5.0rem; + line-height: 1em; + font-weight: 600; +} + +.site-logo { + max-height: 55px; +} + +.site-description { + z-index: 10; + margin: 0; + padding: 5px 0; + font-size: 2.1rem; + line-height: 1.4em; + font-weight: 400; + opacity: 0.8; +} + +/* 4.1 Home header +/* ---------------------------------------------------------- */ + +.site-home-header { + z-index: 1000; +} + +.site-home-header .site-header-background { + margin-top: 0; +} + +.site-home-header .site-header-content { + padding: 5vw 3vw 6vw; +} + +.site-home-header .site-title { + font-size: 5.5rem; + text-align: center; +} + +.site-home-header .site-description { + font-size: 2.2rem; + font-weight: 300; +} + + +/* 4.2 Archive header (tag and author post lists) +/* ---------------------------------------------------------- */ + +.site-archive-header .site-header-content { + position: relative; + align-items: stretch; + padding: 12vw 0 20px; + min-height: 200px; + max-height: 600px; +} + +.site-archive-header .no-image { + padding-top: 0; + padding-bottom: 0; + color: var(--darkgrey); + background: #fff; + opacity: 1.0; +} + +.site-archive-header .no-image .site-description { + color: var(--midgrey); + opacity: 1.0; +} + + +.site-archive-header .no-image .site-header-content { + padding: 5vw 0 10px; + border-bottom: 1px solid color(var(--lightgrey) l(+12%)); +} + + +/* Special header styles for smaller screens */ + +@media (max-width: 900px) { + .site-header-content { + padding-bottom: 9vw; + } +} + +@media (max-width: 500px) { + .site-home-header .site-title { + font-size: 3.2rem; + } + + .site-home-header .site-description { + font-size: 1.8rem; + } + + .site-archive-header .site-header-content { + min-height: unset; + } +} + + +/* 5. Site Navigation +/* ---------------------------------------------------------- */ + +.site-nav-main { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1000; + background: color(var(--darkgrey) l(-5%)); +} + +.site-nav { + position: relative; + z-index: 100; + display: flex; + justify-content: space-between; + align-items: flex-start; + overflow-y: hidden; + height: 64px; + font-size: 1.3rem; +} + +.site-nav-left-wrapper { + position: relative; + flex: 1 0 auto; + display: flex; +} + +.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after, +.site-nav-main .site-nav-left-wrapper:after { + content: ""; + position: absolute; + top: 0; + z-index: 1000; + width: 40px; + height: 100%; +} + +.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after, +.site-nav-main .site-nav-left-wrapper:after { + right: 0; + background: linear-gradient(to right, color(var(--darkgrey) l(-5%) a(0)) 0%,color(var(--darkgrey) l(-5%)) 100%); +} + +.site-nav-left { + flex: 1 0 auto; + display: flex; + align-items: center; + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + margin-right: 10px; + padding: 10px 0 80px; + font-weight: 500; + letter-spacing: 0.2px; + text-transform: uppercase; + white-space: nowrap; + + -ms-overflow-scrolling: touch; +} + +.site-nav-left .nav li:last-of-type { + padding-right: 20px; +} + +/* Site Nav Hack Explanation (above): + +What's happening above is .site-nav-left is set to overflow-x and allow sideways scrolling, so that when there isn't enough space for all nav items (either due to lots of nav items, or a small viewport), you can still scroll side-to-side to reach them. Also, there is a small gradient on the left and right side covering the menu so that the menu goes offscreen smoothly. + +The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px of padding-bottom and a 40px fixed height parent (.site-nav) hides that entirely. Slightly hacky code. But nice clean end-result. + +*/ + +.site-nav-logo { + position: relative; + z-index: 100; + flex-shrink: 0; + display: inline-block; + margin-right: 32px; + padding: 12px 0; + color: #fff; + font-size: 1.7rem; + line-height: 1.8rem; + font-weight: bold; + letter-spacing: -0.5px; + text-transform: none; +} + +.site-nav-logo:hover { + text-decoration: none; +} + +.site-nav-logo img { + display: block; + width: auto; + height: 21px; +} + +.site-home-header .site-nav-logo { + display: none; +} + +.site-nav-content { + position: relative; + align-self: flex-start; +} + +.nav { + position: absolute; + z-index: 1000; + display: flex; + margin: 0 0 0 -12px; + padding: 0; + list-style: none; + transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1); +} + +.nav li { + display: block; + margin: 0; + padding: 0; +} + +.nav li a { + position: relative; + display: block; + padding: 12px 12px; + color: #fff; + opacity: 0.8; + transition: opacity 0.35s ease-in-out; +} + +.nav li a:hover { + text-decoration: none; + opacity: 1; +} + +.nav li a:before { + content: ""; + position: absolute; + right: 100%; + bottom: 8px; + left: 12px; + height: 1px; + background: #fff; + opacity: 0.25; + transition: all 0.35s ease-in-out; +} + +.nav li a:hover:before { + right: 12px; + opacity: 0.5; +} + +.nav-post-title-active .nav { + visibility: hidden; + opacity: 0; + transform: translateY(-175%); +} + +.nav-post-title { + visibility: hidden; + position: absolute; + top: 9px; + color: #fff; + font-size: 1.7rem; + font-weight: 400; + text-transform: none; + opacity: 0; + transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1); + transform: translateY(175%); +} + +.nav-post-title.dash { + left: -25px; +} + +.nav-post-title.dash:before { + content: "– "; + opacity: 0.5; +} + +.nav-post-title-active .nav-post-title { + visibility: visible; + opacity: 1; + transform: translateY(0); +} + +.site-nav-right { + flex: 0 1 auto; + display: flex; + align-items: center; + justify-content: flex-end; + padding: 10px 0; + height: 64px; +} + +.site-nav-right .nav { + position: relative; + margin: 0; +} + +.site-nav-right .nav a { + white-space: nowrap; +} + +.site-nav-right .nav a:before { + display: none; +} + +.site-nav-right .nav li:last-of-type a { + margin-right: -12px; +} + +.social-links { + flex-shrink: 0; + display: flex; + align-items: center; +} + +.social-link { + display: inline-block; + margin: 0; + padding: 10px; + opacity: 0.8; +} + +.social-link:hover { + opacity: 1.0; +} + +.social-link svg { + height: 1.8rem; + fill: #fff; +} + +.social-link-fb svg { + height: 1.6rem; +} + +.social-link-wb svg { + height: 1.6rem; +} + +.social-link-wb svg path { + stroke: #fff; +} + +.social-link-rss svg { + height: 1.9rem; +} + +.subscribe-button { + display: block; + padding: 4px 10px; + margin: 0 0 0 10px; + border: #fff 1px solid; + color: #fff; + line-height: 1em; + border-radius: 10px; + opacity: 0.8; +} + +.subscribe-button:hover { + text-decoration: none; + opacity: 1; +} + +.site-nav-right .nav + .subscribe-button { + margin-left: 24px; +} + +.rss-button { + padding: 10px 8px; + opacity: 0.8; +} + +.rss-button:hover { + opacity: 1; +} + +.rss-button svg { + margin-bottom: 1px; + height: 2.1rem; + fill: #fff; +} + +/* Special behaviors for home navigation */ + +.home-template .site-nav-main { + z-index: 100; +} + +.home-template .site-nav-main .site-nav { + opacity: 0; + transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0s; +} + +.home-template .site-nav-main .fixed-nav-active { + opacity: 1; + transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0.05s; +} + +@media (max-width: 700px) { + .site-home-header .site-nav { + margin-left: -5vw; + } + + .site-nav-main { + padding-right: 0; + padding-left: 0; + } + + .site-nav-left { + margin-right: 0; + padding-left: 5vw; + } + + .site-nav-right { + display: none; + } +} + + +/* 6. Post Feed +/* ---------------------------------------------------------- */ + +.posts { + overflow-x: hidden; +} + +.post-feed { + position: relative; + display: flex; + flex-wrap: wrap; + margin: 0 -20px; + padding: 50px 0 0; + background: #fff; +} + +.post-card { + position: relative; + flex: 1 1 301px; + display: flex; + flex-direction: column; + overflow: hidden; + margin: 0 0 40px; + padding: 0 20px 40px; + min-height: 220px; + border-bottom: 1px solid color(var(--lightgrey) l(+12%)); + background-size: cover; +} + +.post-card-image-link { + position: relative; + display: block; + overflow: hidden; + border-radius: 3px; +} + +.post-card-image { + width: 100%; + height: 200px; + background: var(--lightgrey) no-repeat center center; + + object-fit: cover; +} + +.post-card-content-link { + position: relative; + display: block; + color: var(--darkgrey); +} + +.post-card-content-link:hover { + text-decoration: none; +} + +.post-card-header { + margin: 15px 0 0; +} + +.post-feed .no-image .post-card-content-link { + padding: 0; +} + +.no-image .post-card-header { + margin-top: 0; +} + +.post-card-primary-tag { + margin: 0 0 0.2em; + color: var(--blue); + font-size: 1.2rem; + font-weight: 500; + letter-spacing: 0.2px; + text-transform: uppercase; +} + +.post-card-title { + margin: 0 0 0.4em; + line-height: 1.15em; + transition: color 0.2s ease-in-out; +} + +.no-image .post-card-title { + margin-top: 0; +} + +.post-card-content { + flex-grow: 1; + display: flex; + flex-direction: column; +} + +.post-card-excerpt { + max-width: 56em; + color: var(--midgrey); + font-family: Georgia, serif; +} + +.post-card-excerpt p { + margin-bottom: 1em; +} + +.post-card-meta { + display: flex; + align-items: flex-start; + padding: 0; +} + +.author-profile-image, +.avatar-wrapper { + display: block; + width: 100%; + height: 100%; + background: color(var(--lightgrey) l(+10%)); + border-radius: 100%; + + object-fit: cover; +} + +.post-card-meta .profile-image-wrapper, +.post-card-meta .avatar-wrapper { + position: relative; +} + +.author-list { + display: flex; + flex-wrap: wrap; + margin: 0 0 0 4px; + padding: 0; + list-style: none; +} + +.author-list-item { + position: relative; + flex-shrink: 0; + margin: 0; + padding: 0; +} + +.static-avatar { + display: block; + overflow: hidden; + margin: 0 0 0 -6px; + width: 34px; + height: 34px; + border: #fff 2px solid; + border-radius: 100%; +} + +.author-name-tooltip { + position: absolute; + bottom: 105%; + z-index: 999; + display: block; + padding: 2px 8px; + color: white; + font-size: 1.2rem; + letter-spacing: 0.2px; + white-space: nowrap; + background: var(--darkgrey); + border-radius: 3px; + box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.03) 1px 3px 8px; + opacity: 0; + transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99); + transform: translateY(6px); + pointer-events: none; +} + +.author-list-item:hover .author-name-tooltip { + opacity: 1.0; + transform: translateY(0px); +} + +@media (max-width: 700px) { + .author-name-tooltip { + display: none; + } +} + +.post-card-byline-content { + flex: 1 1 50%; + display: flex; + flex-direction: column; + margin: 2px 0 0 6px; + color: color(var(--midgrey) l(+10%)); + font-size: 1.2rem; + line-height: 1.4em; + font-weight: 400; + letter-spacing: 0.2px; + text-transform: uppercase; +} + +.post-card-byline-content span { + margin: 0; +} + +.post-card-byline-content a { + color: color(var(--darkgrey) l(+20%)); + font-weight: 600; +} + +.post-card-byline-date { + font-size: 1.2rem; +} + +.post-card-byline-date .bull { + display: inline-block; + margin: 0 4px; + opacity: 0.6; +} + +.single-author-byline { + display: flex; + flex-direction: column; + margin-left: 5px; + color: color(var(--midgrey) l(-10%)); + font-size: 1.3rem; + line-height: 1.4em; + font-weight: 500; +} + +.single-author { + display: flex; + align-items: center; +} + +.single-author .static-avatar { + margin-left: -2px; +} + +.single-author-name { + display: inline-block; +} + +/* Special Styling for home page grid (below): + +The first post in the list is styled to be bigger than the others and take over +the full width of the grid to give it more emphasis. Wrapped in a media query to +make sure this only happens on large viewports / desktop-ish devices. + + */ + +@media (min-width: 795px) { + .post-card-large { + flex: 1 1 100%; + flex-direction: row; + padding-bottom: 40px; + min-height: 280px; + border-top: 0; + } + + .post-card-large:hover { + border-bottom-color: color(var(--lightgrey) l(+10%)); + } + + .post-card-large:not(.no-image) .post-card-header { + margin-top: 0; + } + + .post-card-large .post-card-image-link { + position: relative; + flex: 1 1 auto; + margin-bottom: 0; + min-height: 380px; + } + + .post-card-large .post-card-image { + position: absolute; + width: 100%; + height: 100%; + } + + .post-card-large .post-card-content { + flex: 0 1 361px; + justify-content: center; + } + + .post-card-large .post-card-title { + margin-top: 0; + font-size: 3.2rem; + } + + .post-card-large .post-card-content-link { + padding: 0 0 0 40px; + } + + .post-card-large .post-card-meta { + padding: 0 0 0 40px; + } + + .post-card-large .post-card-excerpt p { + margin-bottom: 1.5em; + font-size: 1.8rem; + line-height: 1.5em; + } +} + + +/* Adjust some margins for smaller screens */ +@media (max-width: 1170px) { + .post-card { + margin-bottom: 5vw; + } +} + +@media (max-width: 650px) { + .post-feed { + padding-top: 5vw; + } + + .post-card { + margin-bottom: 5vw; + } +} + +@media (max-width: 500px) { + .post-card-title { + font-size: 1.9rem; + } + + .post-card-excerpt { + font-size: 1.6rem; + } +} + + +/* 7. Single Post +/* ---------------------------------------------------------- */ + +.post-template .site-main, +.page-template .site-main { + margin-top: 64px; + padding-bottom: 4vw; + background: #fff; +} + +.post-full-header { + position: relative; + margin: 0 auto; + padding: 70px 170px 50px; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.post-full-tags { + display: flex; + justify-content: flex-start; + align-items: center; + color: var(--midgrey); + font-size: 1.3rem; + line-height: 1.4em; + font-weight: 600; + text-transform: uppercase; +} + +.post-full-meta-date { + color: var(--midgrey); + font-size: 1.2rem; + font-weight: 400; +} + +@media (max-width: 1170px) { + .post-full-header { + padding: 60px 11vw 50px; + } +} + +@media (max-width: 800px) { + .post-full-header { + padding-right: 5vw; + padding-left: 5vw; + } +} + +@media (max-width: 500px) { + .post-full-header { + padding: 20px 0 35px; + } +} + +.post-full-title { + margin: 0 0 0.2em; + color: color(var(--darkgrey) l(-5%)); +} + +.post-full-custom-excerpt { + margin: 20px 0 0; + color: var(--midgrey); + font-family: Georgia, serif; + font-size: 2.3rem; + line-height: 1.4em; + font-weight: 300; +} + +.date-divider { + display: inline-block; + margin: 0 6px 1px; + font-weight: 300; +} + +.post-full-image { + display: flex; + flex-direction: column; + align-items: center; + overflow: hidden; + margin: 25px 0 50px; + background: color(var(--lightgrey) l(+10%)); + border-radius: 3px; +} + +.post-full-image img { + max-width: 1040px; + width: 100%; + height: auto; +} + +.post-full-content { + position: relative; + margin: 0 auto; + padding: 0 170px 6vw; + min-height: 230px; + font-family: Georgia, serif; + font-size: 2.0rem; + line-height: 1.6em; + background: #fff; +} + +@media (max-width: 1170px) { + .post-full-content { + padding: 0 11vw; + } +} +@media (max-width: 800px) { + .post-full-content { + padding: 0 5vw; + font-size: 1.8rem; + } +} +@media (max-width: 500px) { + .post-full-custom-excerpt { + font-size: 1.9rem; + line-height: 1.5em; + } +} + +.no-image .post-full-content { + padding-top: 0; +} + +.no-image .post-full-content:before, +.no-image .post-full-content:after { + display: none; +} + +.post-full-content h1, +.post-full-content h2, +.post-full-content h3, +.post-full-content h4, +.post-full-content h5, +.post-full-content h6, +.post-full-content p, +.post-full-content ul, +.post-full-content ol, +.post-full-content dl, +.post-full-content pre, +.post-full-content blockquote, +.post-full-comments, +.footnotes { + margin: 0 0 1.5em 0; + min-width: 100%; +} +@media (max-width: 500px) { + .post-full-content p, + .post-full-content ul, + .post-full-content ol, + .post-full-content dl, + .post-full-content pre, + .post-full-comments, + .footnotes { + margin-bottom: 1.28em; + } +} + +.post-full-content li { + word-break: break-word; +} + +.post-full-content li p { + margin: 0; +} + +.post-full-content a { + color: var(--darkgrey); + word-break: break-word; + box-shadow: var(--darkgrey) 0 -1px 0 inset; + transition: all 0.2s ease-in-out; +} + +.post-full-content a:hover { + color: var(--blue); + text-decoration: none; + box-shadow: var(--blue) 0 -1px 0 inset; +} + +.post-full-content strong, +.post-full-content em { + color: color(var(--darkgrey) l(-5%)); +} + +.post-full-content small { + display: inline-block; + line-height: 1.6em; +} + +.post-full-content li:first-child { + margin-top: 0; +} + +.post-full-content img, +.post-full-content video { + display: block; + margin: 1.5em auto; + max-width: 1040px; + height: auto; +} +@media (max-width: 1040px) { + .post-full-content img, + .post-full-content video { + width: 100%; + } +} + + +/* Full bleed images (#full) +Super neat trick courtesy of @JoelDrapper + +Usage (In Ghost edtior): + +![img](/some/image.jpg#full) + +*/ +.post-full-content img[src$="#full"] { + max-width: none; + width: 100vw; +} + + +/* Image captions + +Usage (In Ghost editor): + +![img](/some/image.jpg) +Your image caption + +*/ +.post-full-content img + br + small { + display: block; + margin-top: -3em; + margin-bottom: 1.5em; + text-align: center; +} + + +/* Override third party iframe styles */ +.post-full-content iframe { + margin: 0 auto !important; +} + +.post-full-content blockquote { + margin: 0 0 1.5em; + padding: 0 1.5em; + border-left: #3eb0ef 3px solid; +} +@media (max-width: 500px) { + .post-full-content blockquote { + padding: 0 1.3em; + } +} + +.post-full-content blockquote p { + margin: 0 0 1em 0; + color: inherit; + font-size: inherit; + line-height: inherit; + font-style: italic; +} + +.post-full-content blockquote p:last-child { + margin-bottom: 0; +} + +.post-full-content code { + padding: 0 5px 2px; + font-size: 0.8em; + line-height: 1em; + font-weight: 400!important; + background: var(--whitegrey); + border-radius: 3px; +} + +.post-full-content p code { + word-break: break-all; +} + +.post-full-content pre { + overflow-x: auto; + margin: 1.5em 0 3em; + padding: 20px; + max-width: 100%; + border: color(var(--darkgrey) l(-10%)) 1px solid; + color: var(--whitegrey); + font-size: 1.4rem; + line-height: 1.5em; + background: color(var(--darkgrey) l(-3%)); + border-radius: 5px; +} + +.post-full-content pre ::selection { + color: color(var(--midgrey) l(-25%)); +} + +.post-full-content pre code { + padding: 0; + font-size: inherit; + line-height: inherit; + background: transparent; +} + +.post-full-content pre code :not(span) { + color: inherit; +} + +.post-full-content .fluid-width-video-wrapper { + margin: 1.5em 0 3em; +} + +.post-full-content hr { + margin: 2em 0; +} + +.post-full-content hr:after { + content: ""; + position: absolute; + top: -15px; + left: 50%; + display: block; + margin-left: -10px; + width: 1px; + height: 30px; + background: color(var(--lightgrey) l(+10%)); + box-shadow: #fff 0 0 0 5px; + transform: rotate(45deg); +} + +.post-full-content hr + p { + margin-top: 1.2em; +} + +.post-full-content h1, +.post-full-content h2, +.post-full-content h3, +.post-full-content h4, +.post-full-content h5, +.post-full-content h6 { + color: color(var(--darkgrey) l(-5%)); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; +} + +.post-full-content h1 { + margin: 0.5em 0 0.4em; + font-size: 4.2rem; + line-height: 1.25em; + font-weight: 600; +} +.post-full-content p + h1 { + margin-top: 0.8em; +} +@media (max-width: 800px) { + .post-full-content h1 { + font-size: 3.2rem; + line-height: 1.25em; + } +} + +.post-full-content h2 { + margin: 0.5em 0 0.4em; + font-size: 3.2rem; + line-height: 1.25em; + font-weight: 600; +} +.post-full-content p + h2 { + margin-top: 0.8em; +} +@media (max-width: 800px) { + .post-full-content h2 { + margin-bottom: 0.3em; + font-size: 2.8rem; + line-height: 1.25em; + } +} + +.post-full-content h3 { + margin: 0.5em 0 0.2em; + font-size: 2.5rem; + line-height: 1.3em; + font-weight: 600; +} +.post-full-content h2 + h3 { + margin-top: 0.7em; +} +@media (max-width: 800px) { + .post-full-content h3 { + margin-bottom: 0.3em; + font-size: 2.4rem; + line-height: 1.3em; + } +} + +.post-full-content h4 { + margin: 0.5em 0 0.2em; + font-size: 2.5rem; + font-weight: 600; +} +.post-full-content h2 + h4 { + margin-top: 0.7em; +} +.post-full-content h3 + h4 { + margin-top: 0; +} +@media (max-width: 800px) { + .post-full-content h4 { + margin-bottom: 0.3em; + font-size: 2.4rem; + line-height: 1.3em; + } +} + +.post-full-content h5 { + display: block; + margin: 0.5em 0; + padding: 0.4em 1em 0.9em; + border: 0; + color: var(--blue); + font-family: Georgia,serif; + font-size: 3.2rem; + line-height: 1.35em; + text-align: center; +} +@media (min-width: 1180px) { + .post-full-content h5 { + max-width: 1060px; + width: 100vw; + } +} +@media (max-width: 800px) { + .post-full-content h5 { + margin-bottom: 1em; + margin-left: 1.3em; + padding: 0 0 0.5em; + font-size: 2.4rem; + text-align: initial; + } +} + +.post-full-content h6 { + margin: 0.5em 0 0.2em 0; + font-size: 2.0rem; + font-weight: 700; +} +@media (max-width: 800px) { + .post-full-content h6 { + font-size: 1.8rem; + line-height: 1.4em; + } +} + +.footnotes-sep { + margin-bottom: 30px; +} + +.footnotes { + font-size: 1.5rem; +} + +.footnotes p { + margin: 0; +} + +.footnote-backref { + color: var(--blue) !important; + font-size: 1.2rem; + font-weight: bold; + text-decoration: none !important; + box-shadow: none !important; +} + +/* Some grouped styles for smaller viewports */ +@media (max-width: 1170px) { + .post-full-image { + margin: 25px -6vw 50px; + border-radius: 0; + } + + .post-full-image img { + max-width: 1170px; + } +} + +@media (max-width: 700px) { + .post-full-image { + margin: 25px -5vw; + } +} + +@media (max-width: 500px) { + .post-full-meta { + font-size: 1.2rem; + line-height: 1.3em; + } + + .post-full-title { + margin-top: 0.2em; + font-size: 3.3rem; + } + + .post-full-image { + margin-top: 5px; + margin-bottom: 5vw; + } + + .post-full-content { + padding: 0; + } + + .post-full-content:before, + .post-full-content:after { + display: none; + } +} + +/* Tables */ +.post-full-content table { + display: inline-block; + overflow-x: auto; + margin: 0.5em 0 2.5em; + max-width: 100%; + width: auto; + border-spacing: 0; + border-collapse: collapse; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + font-size: 1.6rem; + white-space: nowrap; + vertical-align: top; +} + +.post-full-content table { + -webkit-overflow-scrolling: touch; + background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center; + background-attachment: scroll, scroll; + background-size: 10px 100%, 10px 100%; + background-repeat: no-repeat; +} + +.post-full-content table td:first-child { + background-image: linear-gradient(to right, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%); + background-size: 20px 100%; + background-repeat: no-repeat; +} + +.post-full-content table td:last-child { + background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%); + background-position: 100% 0; + background-size: 20px 100%; + background-repeat: no-repeat; +} + +.post-full-content table th { + color: var(--darkgrey); + font-size: 1.2rem; + font-weight: 700; + letter-spacing: 0.2px; + text-align: left; + text-transform: uppercase; + background-color: color(var(--whitegrey) l(+4%)); +} + +.post-full-content table th, +.post-full-content table td { + padding: 6px 12px; + border: color(var(--whitegrey) l(-1%) s(-5%)) 1px solid; +} + + +/* 7.1. Post Byline +/* ---------------------------------------------------------- */ + +.post-full-byline { + display: flex; + justify-content: space-between; + margin: 35px 0 0; + padding-top: 15px; + border-top: 1px solid color(var(--lightgrey) l(+10%)); +} + +.post-full-byline-content { + flex-grow: 1; + display: flex; + align-items: flex-start; +} + +.post-full-byline-content .author-list { + justify-content: flex-start; + padding: 0 12px 0 0; +} + +.post-full-byline-meta { + margin: 2px 0 0; + color: color(var(--midgrey) l(+10%)); + font-size: 1.2rem; + line-height: 1.2em; + letter-spacing: 0.2px; + text-transform: uppercase;; +} + +.post-full-byline-meta h4 { + margin: 0 0 3px; + font-size: 1.3rem; + line-height: 1.4em; + font-weight: 500; +} + +.post-full-byline-meta h4 a { + color: color(var(--darkgrey) l(+10%)); +} + +.post-full-byline-meta h4 a:hover { + color: var(--darkgrey); +} + +.post-full-byline-meta .bull { + display: inline-block; + margin: 0 4px; + opacity: 0.6; +} + +.author-avatar { + display: block; + overflow: hidden; + margin: 0 -4px; + width: 40px; + height: 40px; + border: #fff 2px solid; + border-radius: 100%; + transition: all 0.5s cubic-bezier(0.4, 0.01, 0.165, 0.99) 700ms; +} + +.author-list-item .author-card { + position: absolute; + bottom: 130%; + left: 50%; + z-index: 600; + display: flex; + justify-content: space-between; + margin-left: -200px; + width: 400px; + font-size: 1.4rem; + line-height: 1.5em; + background: white; + border-radius: 3px; + box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.06) 1px 3px 8px; + opacity: 0; + transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99); + transform: scale(0.98) translateY(15px); + pointer-events: none; +} + +.author-list-item .author-card:before { + content: ""; + position: absolute; + top: 100%; + left: 50%; + display: block; + margin-left: -8px; + width: 0; + height: 0; + border-top: 8px solid #fff; + border-right: 8px solid transparent; + border-left: 8px solid transparent; +} + +.author-list-item .author-card.hovered { + opacity: 1.0; + transform: scale(1) translateY(0px); + pointer-events: auto; +} + +.author-card { + padding: 20px 20px 22px; +} + +.author-card .author-info { + flex: 1 1 auto; + padding: 0 0 0 20px; +} + +.author-card .author-info h2 { + margin: 8px 0 0; + font-size: 1.6rem; +} + +.author-card .author-info p { + margin: 4px 0 0; + color: color(var(--midgrey) l(-10%)); +} + +.author-card .author-info .bio h2 { + margin-top: 0; +} + +.author-card .author-info .bio p { + margin-top: 0.8em; +} + +.author-card .author-profile-image { + flex: 0 0 60px; + margin: 0; + width: 60px; + height: 60px; + border: none; +} + +.basic-info .avatar-wrapper { + position: relative; + margin: 0; + width: 60px; + height: 60px; + border: none; + background: rgba(229, 239, 245, 0.1); +} + +.basic-info .avatar-wrapper svg { + margin: 0; + width: 60px; + height: 60px; + opacity: 0.15; +} + +@media (max-width: 1170px) { + .author-list-item .author-card { + margin-left: -50px; + width: 430px; + } + + .author-list-item .author-card:before { + left: 50px; + } +} + +@media (max-width: 650px) { + .author-list-item .author-card { + display: none; + } +} + +@media (max-width: 500px) { + .author-avatar { + width: 32px; + height: 32px; + } + + .post-full-byline-meta { + font-size: 1.2rem; + } + + .post-full-byline-meta h4 { + margin-bottom: 2px; + font-size: 1.2rem; + } +} + + +/* 7.2. Members Subscribe Form +/* ---------------------------------------------------------- */ +.subscribe-form { + margin: 1.5em 0; + padding: 6.5vw 7vw 8vw; + border: color(var(--lightgrey) l(+10%)) 1px solid; + text-align: center; + background: linear-gradient(color(var(--whitegrey) l(+6%)), color(var(--whitegrey) l(+4%))); + border-radius: 3px; +} + +.subscribe-form-title { + margin: 0 0 3px 0; + padding: 0; + color: var(--darkgrey); + font-size: 3.5rem; + line-height: 1; + font-weight: 600; +} + +.subscribe-form-description { + margin-bottom: 0.2em 0 1em; + color: var(--midgrey); + font-size: 2.1rem; + line-height: 1.55em; +} + +.subscribe-form form { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + margin: 0 auto; + max-width: 460px; +} + +.subscribe-form .form-group { + align-self: stretch; + display: flex; +} + +.subscribe-email { + display: block; + padding: 10px; + width: 100%; + border: color(var(--lightgrey) l(+7%)) 1px solid; + color: var(--midgrey); + font-size: 1.8rem; + line-height: 1em; + font-weight: normal; + user-select: text; + border-radius: 5px; + transition: border-color 0.15s linear; + + -webkit-appearance: none; +} + +.subscribe-email:focus { + outline: 0; + border-color: color(var(--lightgrey) l(-2%)); +} + +.subscribe-form button { + position: relative; + display: inline-block; + margin: 0 0 0 10px; + padding: 0 20px; + height: 43px; + outline: none; + color: #fff; + font-size: 1.5rem; + line-height: 39px; + font-weight: 400; + text-align: center; + background: linear-gradient( + color(var(--blue) whiteness(+7%)), + color(var(--blue) lightness(-7%) saturation(-10%)) 60%, + color(var(--blue) lightness(-7%) saturation(-10%)) 90%, + color(var(--blue) lightness(-4%) saturation(-10%)) + ); + border-radius: 5px; + + -webkit-font-smoothing: subpixel-antialiased; +} + +.subscribe-form button:active, +.subscribe-form button:focus { + background: color(var(--blue) lightness(-9%) saturation(-10%)); +} + +.subscribe-form .button-loader, +.subscribe-form .message-success, +.subscribe-form .message-error { + display: none; +} + +.subscribe-form .loading .button-content { + visibility: hidden; +} + +.subscribe-form .loading .button-loader { + position: absolute; + top: 0; + left: 50%; + display: inline-block; + margin-left: -19px; + transform: scale(0.7); +} + +.subscribe-form .button-loader svg path, +.subscribe-form .button-loader svg rect { + fill: #fff; +} + +.subscribe-form .success .message-success, +.subscribe-form .invalid .message-error, +.subscribe-form .error .message-error { + margin: 1em auto 0; + max-width: 400px; + color: var(--red); + font-size: 1.6rem; + line-height: 1.5em; + text-align: center; +} + +.subscribe-form .success .message-success { + display: block; + color: color(var(--green) l(-5%)); +} + +.subscribe-form .invalid .message-error, +.subscribe-form .error .message-error { + display: block; +} + + +@media (max-width: 650px) { + .subscribe-form-title { + font-size: 2.4rem; + } + + .subscribe-form-description { + font-size: 1.6rem; + } +} + +@media (max-width: 500px) { + .subscribe-form form { + flex-direction: column; + } + + .subscribe-form .form-group { + flex-direction: column; + width: 100%; + } + + .subscribe-form button { + margin: 10px 0 0 0; + width: 100%; + } +} + + +/* 7.3. Comments +/* ---------------------------------------------------------- */ + +.post-full-comments { + margin: 0 auto; + max-width: 840px; +} + + +/* 7.4. Related posts +/* ---------------------------------------------------------- */ + +.read-next { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + background: color(var(--darkgrey) l(-5%)); +} + +.read-next-feed { + display: flex; + flex-wrap: wrap; + margin: 0 -25px; + padding: 60px 0 0 0; +} + +.read-next .post-card { + padding-bottom: 0; + border-bottom: none; +} + +.read-next .post-card:after { + display: none; +} + +.read-next .post-card-primary-tag { + color: #fff; + opacity: 0.6; +} + +.read-next .post-card-title { + color: #fff; + opacity: 0.8; + transition: all 0.2s ease-in-out; +} + +.read-next .post-card:hover .post-card-image { + opacity: 1.0; +} + +.read-next .post-card-excerpt { + color: rgba(255, 255, 255, 0.6); +} + +.read-next .static-avatar { + border-color: #000; +} + +.read-next .post-card-byline-content { + color: rgba(255, 255, 255, 0.6); +} + +.read-next .post-card-byline-content a { + color: rgba(255, 255, 255, 0.8); +} + +.read-next-card { + position: relative; + flex: 0 1 326px; + display: flex; + flex-direction: column; + overflow: hidden; + margin: 0 25px 50px; + padding: 25px; + background: linear-gradient(color(var(--darkgrey) l(+2%)), color(var(--darkgrey) l(-5%))); + border-radius: 3px; +} + +.read-next-card a { + transition: all 0.2s ease-in-out; +} + +.read-next-card a:hover { + text-decoration: none; +} + +.read-next-card-header h3 { + margin: 0; + color: rgba(255, 255, 255, 0.6); + font-size: 1.2rem; + line-height: 1em; + font-weight: 300; + letter-spacing: 0.4px; + text-transform: uppercase; +} + +.read-next-card-header h3 a { + color: #fff; + font-weight: 500; + text-decoration: none; + opacity: 0.8; +} + +.read-next-card-header h3 a:hover { + opacity: 1; +} + +.read-next-card-content { + font-size: 1.7rem; +} + +.read-next-card-content ul { + display: flex; + flex-direction: column; + margin: 0; + padding: 0; + list-style: none; +} + +.read-next-card-content li { + display: flex; + flex-direction: column; + align-items: flex-start; + margin: 0; + padding: 20px 0; + border-bottom: rgba(255, 255, 255, 0.1); +} + +.read-next-card-content li:last-of-type { + padding-bottom: 5px; + border: none; +} + +.read-next-card-content h4 { + margin: 0; + font-size: 1.6rem; + line-height: 1.35em; + font-weight: 600; +} + +.read-next-card-content li a { + display: block; + color: #fff; + opacity: 0.8; +} + +.read-next-card-content li a:hover { + opacity: 1; +} + +.read-next-card-excerpt { + overflow: hidden; + max-width: 100%; + font-size: 1.4rem; + line-height: 1.2em; + text-overflow: ellipsis; +} + +.read-next-card-meta { + margin-top: 2px; + font-size: 1.2rem; + line-height: 1.4em; + font-weight: 400; +} + +.read-next-card-meta p { + margin: 0; + color: rgba(255, 255, 255, 0.6); +} + +.read-next-card-footer { + position: relative; + margin: 40px 0 5px; +} + +.read-next-card-footer a { + padding: 7px 12px 8px 14px; + border: 1px solid rgba(255, 255, 255, 0.6); + color: rgba(255, 255, 255, 0.6); + font-size: 1.3rem; + border-radius: 999px; + transition: all 0.35s ease-in-out; +} + +.read-next-card-footer a:hover { + border-color: var(--yellow); + color: var(--yellow); + text-decoration: none; +} + +@media (max-width: 1170px) { + .read-next-card { + flex: 1 1 261px; + margin-bottom: 5vw; + } +} + +@media (max-width: 650px) { + .read-next-feed { + flex-direction: column; + padding: 25px 0 0; + } + + .read-next-card { + flex: 1 1 auto; + margin: 0 25px; + padding: 0; + background: none; + } + + .read-next .post-card { + flex: 1 1 auto; + margin: 25px; + padding: 25px 0 0; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + } +} + + +/* 7.5. Koenig Styles +/* ---------------------------------------------------------- */ + +.post-content { + display: flex; + flex-direction: column; + align-items: center; +} + +.post-full-content .kg-image { + max-width: 100%; +} + +/* Preventing full-width image overlap with post image. */ +.post-full-image + .post-full-content .kg-content *:first-child .kg-image { + width: 100%; +} + +.post-full-content .kg-width-wide .kg-image { + max-width: 1040px; +} + +.post-full-content .kg-width-full .kg-image { + max-width: 100vw; +} + +.post-full-content figure { + margin: 0.8em 0 2.3em; +} + +.post-full-content h1 + figure, +.post-full-content h2 + figure, +.post-full-content h3 + figure, +.post-full-content h4 + figure { + margin-top: 2em; +} + +.post-full-content figure img { + margin: 0; +} + +.post-full-content figcaption { + margin: 1.0em 0 0; + color: color(var(--midgrey) l(-10%)); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + font-size: 75%; + line-height: 1.5em; + text-align: center;; +} + +.kg-width-full figcaption { + padding: 0 1.5em; +} + +.kg-embed-card { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; +} + +.kg-embed-card .fluid-width-video-wrapper { + margin: 0; +} + + +@media (max-width: 1040px) { + .post-full-content .kg-width-full .kg-image { + width: 100vw; + } +} + +.kg-gallery-container { + display: flex; + flex-direction: column; + max-width: 1040px; + width: 100vw; +} + +.kg-gallery-row { + display: flex; + flex-direction: row; + justify-content: center; +} + +.kg-gallery-image img { + display: block; + margin: 0; + width: 100%; + height: 100%; +} + +.kg-gallery-row:not(:first-of-type) { + margin: 0.75em 0 0 0; +} + +.kg-gallery-image:not(:first-of-type) { + margin: 0 0 0 0.75em; +} + +.kg-gallery-card + .kg-image-card.kg-width-wide, +.kg-gallery-card + .kg-gallery-card, +.kg-image-card.kg-width-wide + .kg-gallery-card, +.kg-image-card.kg-width-wide + .kg-image-card.kg-width-wide { + margin: -2.25em 0 3em; +} + +/* keep existing
 styles for code cards with captions */
+.kg-code-card {
+    width: 100%;
+}
+
+.kg-code-card pre {
+    margin: 0;
+}
+
+.kg-bookmark-card {
+    width: 100%;
+}
+
+.kg-card + .kg-bookmark-card {
+    margin-top: 0;
+}
+
+.post-full-content .kg-bookmark-container {
+    display: flex;
+    min-height: 148px;
+    color: var(--darkgrey);
+    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
+    text-decoration: none;
+    border-radius: 3px;
+    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);
+}
+
+.post-full-content .kg-bookmark-container:hover {
+    color: var(--darkgrey);
+    text-decoration: none;
+    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);
+}
+
+.kg-bookmark-content {
+    flex-grow: 1;
+    display: flex;
+    flex-direction: column;
+    justify-content: flex-start;
+    align-items: flex-start;
+    padding: 20px;
+}
+
+.kg-bookmark-title {
+    color: color(var(--midgrey) l(-30%));
+    font-size: 1.6rem;
+    line-height: 1.5em;
+    font-weight: 600;
+    transition: color 0.2s ease-in-out;
+}
+
+.post-full-content .kg-bookmark-container:hover .kg-bookmark-title {
+    color: var(--blue);
+}
+
+.kg-bookmark-description {
+    display: -webkit-box;
+    overflow-y: hidden;
+    margin-top: 12px;
+    max-height: 48px;
+    color: color(var(--midgrey) l(-10%));
+    font-size: 1.5rem;
+    line-height: 1.5em;
+    font-weight: 400;
+
+    -webkit-line-clamp: 2;
+    -webkit-box-orient: vertical;
+}
+
+.kg-bookmark-thumbnail {
+    position: relative;
+    min-width: 33%;
+    max-height: 100%;
+}
+
+.kg-bookmark-thumbnail img {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    border-radius: 0 3px 3px 0;
+
+    object-fit: cover;
+}
+
+.kg-bookmark-metadata {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    margin-top: 14px;
+    color: color(var(--midgrey) l(-10%));
+    font-size: 1.5rem;
+    font-weight: 400;
+}
+
+.post-full-content .kg-bookmark-icon {
+    margin-right: 8px;
+    width: 22px;
+    height: 22px;
+}
+
+.kg-bookmark-author {
+    line-height: 1.5em;
+}
+
+.kg-bookmark-author:after {
+    content: "•";
+    margin: 0 6px;
+}
+
+.kg-bookmark-publisher {
+    overflow: hidden;
+    max-width: 240px;
+    line-height: 1.5em;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+@media (max-width: 800px) {
+    .post-full-content figure {
+        margin: 0.2em 0 1.3em;
+    }
+
+    .post-full-content h1 + figure,
+    .post-full-content h2 + figure,
+    .post-full-content h3 + figure,
+    .post-full-content h4 + figure {
+        margin-top: 0.9em;
+    }
+}
+
+@media (max-width: 500px) {
+    .post-full-content .kg-width-wide,
+    .post-full-content .kg-width-full {
+        margin-right: -5vw;
+        margin-left: -5vw;
+    }
+
+    .post-full-content figcaption {
+        margin-bottom: 0.4em;
+    }
+
+    .post-full-content .kg-bookmark-container {
+        flex-direction: column;
+    }
+
+    .kg-bookmark-title,
+    .kg-bookmark-description,
+    .kg-bookmark-metadata {
+        font-size: 1.4rem;
+        line-height: 1.5em;
+    }
+
+    .post-full-content .kg-bookmark-icon {
+        width: 18px;
+        height: 18px;
+    }
+
+    .kg-bookmark-thumbnail {
+        order: 1;
+        min-height: 160px;
+        width: 100%;
+    }
+
+    .kg-bookmark-thumbnail img {
+        border-radius: 3px 3px 0 0;
+    }
+
+    .kg-bookmark-content {
+        order: 2;
+    }
+}
+
+/* 8. Author Template
+/* ---------------------------------------------------------- */
+.author-header {
+    display: flex;
+    flex-direction: row;
+    justify-content: flex-start;
+    align-items: flex-start;
+    padding: 10vw 0 10px;
+}
+
+.site-archive-header .no-image .author-header {
+    padding-bottom: 20px;
+}
+
+.author-header-content {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    margin: 5px 0 0 30px;
+}
+
+.site-header-content .author-profile-image {
+    z-index: 10;
+    flex-shrink: 0;
+    margin: 5px 0 0;
+    width: 110px;
+    height: 110px;
+    box-shadow: rgba(255,255,255,0.1) 0 0 0 6px;
+}
+
+.author-header-content .author-bio {
+    z-index: 10;
+    flex-shrink: 0;
+    margin: 6px 0 -6px;
+    max-width: 46em;
+    font-size: 2.0rem;
+    line-height: 1.4em;
+    font-weight: 400;
+    opacity: 0.8;
+}
+
+.author-header-content .author-meta {
+    z-index: 10;
+    flex-shrink: 0;
+    display: flex;
+    align-items: center;
+    margin: 0 0 0 1px;
+    font-size: 1.2rem;
+    font-weight: 400;
+    letter-spacing: 0.2px;
+    text-transform: uppercase;
+}
+
+.author-header-content .social-link:first-of-type {
+    padding-left: 4px;
+}
+
+.no-image .author-header-content .author-bio {
+    color: var(--midgrey);
+    opacity: 1.0;
+}
+
+.no-image .author-header-content .author-meta {
+    color: var(--midgrey);
+    opacity: 1.0;
+}
+
+.author-social-link a {
+    color: #fff;
+    font-weight: 600;
+}
+
+.no-image .author-social-link a {
+    color: var(--darkgrey);
+}
+
+.author-social-link a:hover {
+    opacity: 1;
+}
+
+.author-social-link {
+    padding: 10px 0;
+}
+
+.author-social-link {
+    display: inline-block;
+    margin: 0;
+    padding: 10px 0;
+}
+
+.author-location + .author-stats:before,
+.author-stats + .author-social-link:before,
+.author-social-link + .author-social-link:before {
+    content: "\2022";
+    display: inline-block;
+    margin: 0 12px;
+    color: #fff;
+    opacity: 0.6;
+}
+
+.no-image .author-location + .author-stats:before,
+.no-image .author-stats + .author-social-link:before,
+.no-image .author-social-link + .author-social-link:before {
+    color: var(--midgrey);
+}
+
+@media (max-width: 500px) {
+    .author-header {
+        padding: 10px 0 0;
+    }
+
+    .no-image .author-header {
+        padding-bottom: 10px;
+    }
+
+    .author-header-content {
+        margin-left: 20px;
+    }
+
+    .site-header-content .author-profile-image {
+        width: 80px;
+        height: 80px;
+    }
+
+    .author-header-content .author-bio {
+        font-size: 1.8rem;
+        line-height: 1.3em;
+        letter-spacing: 0;
+    }
+
+    .author-location,
+    .author-stats {
+        display: none;
+    }
+}
+
+
+/* 9. Error Template
+/* ---------------------------------------------------------- */
+
+.error-content {
+    padding: 14vw 4vw 6vw;
+}
+
+.site-nav-center {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 10px 0;
+    text-align: center;
+}
+
+.site-nav-center .site-nav-logo {
+    margin-right: 0;
+}
+
+.error-message {
+    padding-bottom: 10vw;
+    border-bottom: 1px solid color(var(--lightgrey) l(+10%));
+    text-align: center;
+}
+
+.error-code {
+    margin: 0;
+    color: var(--lightgrey);
+    font-size: 12vw;
+    line-height: 1em;
+    letter-spacing: -5px;
+    opacity: 0.75;
+}
+
+.error-description {
+    margin: 0;
+    color: var(--midgrey);
+    font-size: 3rem;
+    line-height: 1.3em;
+    font-weight: 400;
+}
+
+.error-link {
+    display: inline-block;
+    margin-top: 5px;
+}
+
+@media (min-width: 940px) {
+    .error-content .post-card {
+        margin-bottom: 0;
+        padding-bottom: 0;
+        border-bottom: none;
+    }
+}
+
+@media (max-width: 800px) {
+    .error-content {
+        padding-top: 24vw;
+    }
+    .error-code {
+        font-size: 11.2rem;
+    }
+    .error-message {
+        padding-bottom: 16vw;
+    }
+    .error-description {
+        margin: 5px 0 0 0;
+        font-size: 1.8rem;
+    }
+}
+
+@media (max-width: 500px) {
+    .error-content {
+        padding-top: 28vw;
+    }
+    .error-message {
+        padding-bottom: 14vw;
+    }
+}
+
+
+/* 10. Subscribe Message and Overlay
+/* ---------------------------------------------------------- */
+
+.subscribe-success-message {
+    position: fixed;
+    top: 0;
+    right: 0;
+    left: 0;
+    z-index: 9000;
+    padding: 20px 0;
+    color: #fff;
+    text-align: center;
+    background: var(--green);
+    transition: all 0.35s cubic-bezier(0.19, 1, 0.22, 1) 0.5s;
+    transform: translateY(-175%);
+}
+
+.subscribe-success .subscribe-success-message {
+    visibility: visible;
+    transform: translateY(0);
+}
+
+.subscribe-success-message.close {
+    visibility: hidden;
+    transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);
+    transform: translateY(-175%);
+}
+
+.subscribe-close {
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    display: block;
+}
+
+.subscribe-close:before {
+    content: "";
+    position: absolute;
+    top: 32px;
+    right: 25px;
+    display: block;
+    width: 20px;
+    height: 1px;
+    background: #fff;
+    opacity: 0.8;
+    transform: rotate(45deg);
+}
+
+.subscribe-close:after {
+    content: "";
+    position: absolute;
+    top: 32px;
+    right: 25px;
+    display: block;
+    width: 20px;
+    height: 1px;
+    background: #fff;
+    opacity: 0.8;
+    transform: rotate(-45deg);
+}
+
+.subscribe-close:hover {
+    cursor: default;
+}
+
+.subscribe-overlay {
+    position: fixed;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    z-index: 9000;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    background: rgba(9,10,11,0.97);
+    opacity: 0;
+    transition: opacity 0.2s ease-in;
+    pointer-events: none;
+}
+
+.subscribe-overlay .subscribe-close:before,
+.subscribe-overlay .subscribe-close:after {
+    top: 36px;
+    width: 30px;
+}
+
+.subscribe-overlay:target {
+    opacity: 1;
+    pointer-events: auto;
+}
+
+.subscribe-overlay-content {
+    position: relative;
+    z-index: 9999;
+    margin: 0 0 5vw 0;
+    padding: 4vw;
+    color: #fff;
+    text-align: center;
+}
+
+.subscribe-overlay .subscribe-form {
+    border: none;
+    color: #fff;
+    background: none;
+}
+
+.subscribe-overlay-logo {
+    position: fixed;
+    top: 23px;
+    left: 30px;
+    height: 30px;
+}
+
+.subscribe-overlay-title {
+    display: inline-block;
+    margin: 0 0 10px 0;
+    font-size: 5.2rem;
+    line-height: 1.15em;
+}
+
+.subscribe-overlay-description {
+    margin: 0 auto 50px;
+    max-width: 650px;
+    color: #fff;
+    font-family: Georgia, serif;
+    font-size: 2.4rem;
+    line-height: 1.3em;
+    font-weight: 300;
+    opacity: 0.8;
+}
+
+.subscribe-overlay form {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    margin: 0 auto;
+    max-width: 540px;
+}
+
+.subscribe-overlay .form-group {
+    flex-grow: 1;
+}
+
+.subscribe-overlay .subscribe-email {
+    display: block;
+    padding: 14px 20px;
+    width: 100%;
+    border: none;
+    color: var(--midgrey);
+    font-size: 2rem;
+    line-height: 1em;
+    font-weight: normal;
+    letter-spacing: 0.5px;
+    user-select: text;
+    border-radius: 8px;
+    transition: border-color 0.15s linear;
+
+    -webkit-appearance: none;
+}
+
+.subscribe-email:focus {
+    outline: 0;
+    border-color: color(var(--lightgrey) l(-2%));
+}
+
+.subscribe-overlay button {
+    display: inline-block;
+    margin: 0 0 0 15px;
+    padding: 0 25px;
+    height: 52px;
+    outline: none;
+    color: #fff;
+    font-size: 1.7rem;
+    line-height: 38px;
+    font-weight: 400;
+    text-align: center;
+    background: linear-gradient(
+    color(var(--blue) whiteness(+7%)),
+    color(var(--blue) lightness(-7%) saturation(-10%)) 60%,
+    color(var(--blue) lightness(-7%) saturation(-10%)) 90%,
+    color(var(--blue) lightness(-4%) saturation(-10%))
+    );
+    border-radius: 8px;
+
+    -webkit-font-smoothing: subpixel-antialiased;
+}
+
+.subscribe-overlay button:active,
+.subscribe-overlay button:focus {
+    background: color(var(--blue) lightness(-9%) saturation(-10%));
+}
+
+.subscribe-overlay .loading .button-loader {
+    top: 5px;
+}
+
+
+/* 11. Site Footer
+/* ---------------------------------------------------------- */
+
+.site-footer {
+    position: relative;
+    padding-top: 20px;
+    padding-bottom: 60px;
+    color: #fff;
+    background: color(var(--darkgrey) l(-5%));
+}
+
+.site-footer-content {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-between;
+    align-items: center;
+    color: rgba(255,255,255,0.7);
+    font-size: 1.3rem;
+}
+
+.site-footer-content a {
+    color: rgba(255,255,255,0.7);
+}
+
+.site-footer-content a:hover {
+    color: rgba(255,255,255,1);
+    text-decoration: none;
+}
+
+.site-footer-nav {
+    display: flex;
+}
+
+.site-footer-nav a {
+    position: relative;
+    margin-left: 20px;
+}
+
+.site-footer-nav a:before {
+    content: "";
+    position: absolute;
+    top: 11px;
+    left: -11px;
+    display: block;
+    width: 2px;
+    height: 2px;
+    background: #fff;
+    border-radius: 100%;
+}
+
+.site-footer-nav a:first-of-type:before {
+    display: none;
+}
+
+@media (max-width: 650px) {
+    .site-footer-content {
+        flex-direction: column;
+    }
+
+    .site-footer-nav a:first-child {
+        margin-left: 0;
+    }
+}
+
+
+/* 12. Dark Mode
+/* ---------------------------------------------------------- */
+@media (prefers-color-scheme: dark) {
+    body {
+        color: rgba(255, 255, 255, 0.75);
+        background: var(--darkmode);
+    }
+
+    img {
+        opacity: 0.9;
+    }
+
+    .site-header-background:before {
+        background: rgba(0,0,0,0.6);
+    }
+
+    .post-feed {
+        background: var(--darkmode);
+    }
+
+    .post-card,
+    .post-card:hover {
+        border-bottom-color: color(var(--darkmode) l(+8%));
+    }
+
+    .author-profile-image {
+        background: var(--darkmode);
+    }
+
+    .post-card-byline-content a {
+        color: rgba(255, 255, 255, 0.75);
+    }
+
+    .post-card-byline-content a:hover {
+        color: #fff;
+    }
+
+    .post-card-image {
+        background: var(--darkmode);
+    }
+
+    .post-card-title {
+        color: rgba(255, 255, 255, 0.85);
+    }
+
+    .post-card-excerpt {
+        color: color(var(--midgrey) l(+10%));
+    }
+
+    .author-avatar,
+    .static-avatar {
+        border-color: color(var(--darkgrey) l(+2%));
+    }
+
+    .site-main,
+    .post-template .site-main,
+    .page-template .site-main {
+        background: var(--darkmode);
+    }
+
+    .post-full-content {
+        background: var(--darkmode);
+    }
+
+    .post-full-title {
+        color: rgba(255, 255, 255, 0.9);
+    }
+
+    .post-full-custom-excerpt {
+        color: color(var(--midgrey) l(+10%));
+    }
+
+    .post-full-image {
+        background-color: color(var(--darkmode) l(+8%));
+    }
+
+    .post-full-byline {
+        border-top-color: color(var(--darkmode) l(+15%));
+    }
+
+    .post-full-byline-meta h4 a {
+        color: rgba(255, 255, 255, 0.75);
+    }
+
+    .post-full-byline-meta h4 a:hover {
+        color: #fff;
+    }
+
+    .author-list-item .author-card {
+        background: color(var(--darkmode) l(+4%));
+        box-shadow: 0 12px 26px rgba(0,0,0,0.4);
+    }
+
+    .author-list-item .author-card:before {
+        border-top-color: color(var(--darkmode) l(+4%));
+    }
+
+    .no-image .author-social-link a {
+        color: rgba(255, 255, 255, 0.75);
+    }
+
+    .post-full-content h1,
+    .post-full-content h2,
+    .post-full-content h3,
+    .post-full-content h4,
+    .post-full-content h6 {
+        color: rgba(255, 255, 255, 0.9);
+    }
+
+    .post-full-content a {
+        color: #fff;
+        box-shadow: inset 0 -1px 0 #fff;
+    }
+
+    .post-full-content strong {
+        color: #fff;
+    }
+
+    .post-full-content em {
+        color: #fff;
+    }
+
+    .post-full-content code {
+        color: #fff;
+        background: #000;
+    }
+
+    hr {
+        border-top-color: color(var(--darkmode) l(+8%));
+    }
+
+    .post-full-content figcaption {
+        color: rgba(255, 255, 255, 0.6);
+    }
+
+    .post-full-content table td:first-child {
+        background-image: linear-gradient(to right, var(--darkmode) 50%, color(var(--darkmode) a(0%)) 100%);
+    }
+
+    .post-full-content table td:last-child {
+        background-image: linear-gradient(to left, var(--darkmode) 50%, color(var(--darkmode) a(0%)) 100%);
+    }
+
+    .post-full-content table th {
+        color: rgba(255, 255, 255, 0.85);
+        background-color: color(var(--darkmode) l(+8%));
+    }
+
+    .post-full-content table th,
+    .post-full-content table td {
+        border: color(var(--darkmode) l(+8%)) 1px solid;
+    }
+
+    .post-full-content .kg-bookmark-container,
+    .post-full-content .kg-bookmark-container:hover {
+        color: rgba(255, 255, 255, 0.75);
+        box-shadow: 0 0 1px rgba(255,255,255,0.9);
+    }
+
+    .kg-bookmark-title {
+        color: #fff;
+    }
+
+    .kg-bookmark-description {
+        color: rgba(255, 255, 255, 0.75);
+    }
+
+    .kg-bookmark-metadata {
+        color: rgba(255, 255, 255, 0.75);
+    }
+
+    .site-archive-header .no-image {
+        color: rgba(255, 255, 255, 0.9);
+        background: var(--darkmode);
+    }
+
+    .site-archive-header .no-image .site-header-content {
+        border-bottom-color: color(var(--darkmode) l(+15%));
+    }
+
+    .site-header-content .author-profile-image {
+        box-shadow: 0 0 0 6px hsla(0,0%,100%,0.04);
+    }
+
+    .subscribe-form {
+        border: none;
+        background: linear-gradient(color(var(--darkmode) l(-6%)), color(var(--darkmode) l(-3%)));
+    }
+
+    .subscribe-form-title {
+        color: rgba(255, 255, 255, 0.9);
+    }
+
+    .subscribe-form p {
+        color: rgba(255, 255, 255, 0.7);
+    }
+
+    .subscribe-email {
+        border-color: color(var(--darkmode) l(+6%));
+        color: rgba(255, 255, 255, 0.9);
+        background: color(var(--darkmode) l(+3%));
+    }
+
+    .subscribe-email:focus {
+        border-color: color(var(--darkmode) l(+25%));
+    }
+
+    .subscribe-form button {
+        opacity: 0.9;
+    }
+
+    .subscribe-form .invalid .message-error,
+    .subscribe-form .error .message-error {
+        color: color(var(--red) l(+5%) s(-5%));
+    }
+
+    .subscribe-form .success .message-success {
+        color: color(var(--green) l(+5%) s(-5%));
+    }
+}
diff --git a/assets/js/gallery-card.js b/assets/js/gallery-card.js
new file mode 100644
index 0000000..fa630cc
--- /dev/null
+++ b/assets/js/gallery-card.js
@@ -0,0 +1,24 @@
+/* eslint-env browser */
+
+/**
+ * Gallery card support
+ * Used on any individual post/page
+ *
+ * Detects when a gallery card has been used and applies sizing to make sure
+ * the display matches what is seen in the editor.
+ */
+
+(function (window, document) {
+    var resizeImagesInGalleries = function resizeImagesInGalleries() {
+        var images = document.querySelectorAll('.kg-gallery-image img');
+        images.forEach(function (image) {
+            var container = image.closest('.kg-gallery-image');
+            var width = image.attributes.width.value;
+            var height = image.attributes.height.value;
+            var ratio = width / height;
+            container.style.flex = ratio + ' 1 0%';
+        });
+    };
+
+    document.addEventListener('DOMContentLoaded', resizeImagesInGalleries);
+})(window, document);
diff --git a/assets/js/infinite-scroll.js b/assets/js/infinite-scroll.js
new file mode 100644
index 0000000..dd34d41
--- /dev/null
+++ b/assets/js/infinite-scroll.js
@@ -0,0 +1,112 @@
+/* eslint-env browser */
+
+/**
+ * Infinite Scroll
+ * Used on all pages where there is a list of posts (homepage, tag index, etc).
+ *
+ * When the page is scrolled to 300px from the bottom, the next page of posts
+ * is fetched by following the the  that is output
+ * by {{ghost_head}}.
+ *
+ * The individual post items are extracted from the fetched pages by looking for
+ * a wrapper element with the class "post-card". Any found elements are appended
+ * to the element with the class "post-feed" in the currently viewed page.
+ */
+
+(function (window, document) {
+    // next link element
+    var nextElement = document.querySelector('link[rel=next]');
+    if (!nextElement) {
+        return;
+    }
+
+    // post feed element
+    var feedElement = document.querySelector('.post-feed');
+    if (!feedElement) {
+        return;
+    }
+
+    var buffer = 300;
+
+    var ticking = false;
+    var loading = false;
+
+    var lastScrollY = window.scrollY;
+    var lastWindowHeight = window.innerHeight;
+    var lastDocumentHeight = document.documentElement.scrollHeight;
+
+    function onPageLoad() {
+        if (this.status === 404) {
+            window.removeEventListener('scroll', onScroll);
+            window.removeEventListener('resize', onResize);
+            return;
+        }
+
+        // append contents
+        var postElements = this.response.querySelectorAll('.post-card');
+        postElements.forEach(function (item) {
+            // document.importNode is important, without it the item's owner
+            // document will be different which can break resizing of
+            // `object-fit: cover` images in Safari
+            feedElement.appendChild(document.importNode(item, true));
+        });
+
+        // set next link
+        var resNextElement = this.response.querySelector('link[rel=next]');
+        if (resNextElement) {
+            nextElement.href = resNextElement.href;
+        } else {
+            window.removeEventListener('scroll', onScroll);
+            window.removeEventListener('resize', onResize);
+        }
+
+        // sync status
+        lastDocumentHeight = document.documentElement.scrollHeight;
+        ticking = false;
+        loading = false;
+    }
+
+    function onUpdate() {
+        // return if already loading
+        if (loading) {
+            return;
+        }
+
+        // return if not scroll to the bottom
+        if (lastScrollY + lastWindowHeight <= lastDocumentHeight - buffer) {
+            ticking = false;
+            return;
+        }
+
+        loading = true;
+
+        var xhr = new window.XMLHttpRequest();
+        xhr.responseType = 'document';
+
+        xhr.addEventListener('load', onPageLoad);
+
+        xhr.open('GET', nextElement.href);
+        xhr.send(null);
+    }
+
+    function requestTick() {
+        ticking || window.requestAnimationFrame(onUpdate);
+        ticking = true;
+    }
+
+    function onScroll() {
+        lastScrollY = window.scrollY;
+        requestTick();
+    }
+
+    function onResize() {
+        lastWindowHeight = window.innerHeight;
+        lastDocumentHeight = document.documentElement.scrollHeight;
+        requestTick();
+    }
+
+    window.addEventListener('scroll', onScroll, {passive: true});
+    window.addEventListener('resize', onResize);
+
+    requestTick();
+})(window, document);
diff --git a/assets/js/lib/jquery.fitvids.js b/assets/js/lib/jquery.fitvids.js
new file mode 100644
index 0000000..edf1d7f
--- /dev/null
+++ b/assets/js/lib/jquery.fitvids.js
@@ -0,0 +1,89 @@
+/*jshint browser:true */
+/*!
+* FitVids 1.3
+*
+*
+* Copyright 2017, Chris Coyier + Dave Rupert + Ghost Foundation
+* This is an unofficial release, ported by John O'Nolan
+* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
+* Released under the MIT license
+*
+*/
+
+;(function( $ ){
+
+  'use strict';
+
+  $.fn.fitVids = function( options ) {
+    var settings = {
+      customSelector: null,
+      ignore: null
+    };
+
+    if(!document.getElementById('fit-vids-style')) {
+      // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
+      var head = document.head || document.getElementsByTagName('head')[0];
+      var css = '.fluid-width-video-container{flex-grow: 1;width:100%;}.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
+      var div = document.createElement("div");
+      div.innerHTML = '

x

'; + head.appendChild(div.childNodes[1]); + } + + if ( options ) { + $.extend( settings, options ); + } + + return this.each(function(){ + var selectors = [ + 'iframe[src*="player.vimeo.com"]', + 'iframe[src*="youtube.com"]', + 'iframe[src*="youtube-nocookie.com"]', + 'iframe[src*="kickstarter.com"][src*="video.html"]', + 'object', + 'embed' + ]; + + if (settings.customSelector) { + selectors.push(settings.customSelector); + } + + var ignoreList = '.fitvidsignore'; + + if(settings.ignore) { + ignoreList = ignoreList + ', ' + settings.ignore; + } + + var $allVideos = $(this).find(selectors.join(',')); + $allVideos = $allVideos.not('object object'); // SwfObj conflict patch + $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. + + $allVideos.each(function(){ + var $this = $(this); + if($this.parents(ignoreList).length > 0) { + return; // Disable FitVids on this video. + } + if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } + if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) + { + $this.attr('height', 9); + $this.attr('width', 16); + } + var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), + width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), + aspectRatio = height / width; + if(!$this.attr('name')){ + var videoName = 'fitvid' + $.fn.fitVids._count; + $this.attr('name', videoName); + $.fn.fitVids._count++; + } + $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%'); + $this.removeAttr('height').removeAttr('width'); + }); + }); + }; + + // Internal counter for unique video names. + $.fn.fitVids._count = 0; + +// Works with either jQuery or Zepto +})( window.jQuery || window.Zepto ); diff --git a/assets/js/sticky-nav-title.js b/assets/js/sticky-nav-title.js new file mode 100644 index 0000000..6e14bb9 --- /dev/null +++ b/assets/js/sticky-nav-title.js @@ -0,0 +1,61 @@ +/* eslint-env browser */ + +/** + * Nav/Title replacement + * Used on invividual post pages, displays the post title in place of the nav + * bar when scrolling past the title + * + * Usage: + * ``` + * Casper.stickyTitle({ + * navSelector: '.site-nav-main', + * titleSelector: '.post-full-title', + * activeClass: 'nav-post-title-active' + * }); + * ``` + */ + +(function (window, document) { + // set up Casper as a global object + if (!window.Casper) { + window.Casper = {}; + } + + window.Casper.stickyNavTitle = function stickyNavTitle(options) { + var nav = document.querySelector(options.navSelector); + var title = document.querySelector(options.titleSelector); + + var lastScrollY = window.scrollY; + var ticking = false; + + function onScroll() { + lastScrollY = window.scrollY; + requestTick(); + } + + function requestTick() { + if (!ticking) { + requestAnimationFrame(update); + } + ticking = true; + } + + function update() { + var trigger = title.getBoundingClientRect().top + window.scrollY; + var triggerOffset = title.offsetHeight + 35; + + // show/hide post title + if (lastScrollY >= trigger + triggerOffset) { + nav.classList.add(options.activeClass); + } else { + nav.classList.remove(options.activeClass); + } + + ticking = false; + } + + window.addEventListener('scroll', onScroll, {passive: true}); + + update(); + }; +})(window, document); diff --git a/assets/screenshot-desktop.jpg b/assets/screenshot-desktop.jpg new file mode 100755 index 0000000..2d81bfe Binary files /dev/null and b/assets/screenshot-desktop.jpg differ diff --git a/assets/screenshot-mobile.jpg b/assets/screenshot-mobile.jpg new file mode 100755 index 0000000..83e90fc Binary files /dev/null and b/assets/screenshot-mobile.jpg differ diff --git a/author.hbs b/author.hbs new file mode 100644 index 0000000..88a688a --- /dev/null +++ b/author.hbs @@ -0,0 +1,59 @@ +{{!< default}} +{{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}} + +{{#author}} +{{!-- Everything inside the #author tags pulls data from the author --}} + + +
+ {{> site-header}} + {{> header-background background=cover_image}} {{!--Special header-image.hbs partial to generate the background image--}} +
+
+ {{#if profile_image}} + {{name}} + {{/if}} +
+

{{name}}

+ {{#if bio}} +

{{bio}}

+ {{/if}} +
+ {{#if location}} +
{{location}}
+ {{/if}} +
+ {{plural ../pagination.total empty='No posts' singular='% post' plural='% posts'}} +
+ {{#if website}} + Website + {{/if}} + {{#if twitter}} + Twitter + {{/if}} + {{#if facebook}} + Facebook + {{/if}} +
+
+
+
+ +
+{{/author}} + +{{!-- The main content area --}} +
+
+ +
+ {{#foreach posts}} + + {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}} + {{> "post-card"}} + + {{/foreach}} +
+ +
+
diff --git a/default.hbs b/default.hbs new file mode 100644 index 0000000..0a9b945 --- /dev/null +++ b/default.hbs @@ -0,0 +1,160 @@ + + + + + + {{!-- Document Settings --}} + + + + {{!-- Base Meta --}} + {{@site.title}} + + + + {{!-- Styles'n'Scripts --}} + + + + {{!-- Code highlight - prism + monokai --}} + + + + {{!-- This tag outputs SEO meta+structured data and other important settings --}} + {{ghost_head}} + + + + + +
+ + {{!-- All the main content gets inserted here, index.hbs, post.hbs, etc --}} + {{{body}}} + + {{!-- The footer at the very bottom of the screen --}} + + +
+ + {{!-- The big email subscribe modal content --}} + {{#if @labs.members}} + + + + {{/if}} + + {{!-- jQuery, required for fitvids --}} + + + {{!-- Fitvids (for responsive video embeds), infinite scroll, floating header, and gallery card support --}} + + + {{!-- Scripts for Members subscription --}} + + {{!-- Code Highlight --}} + + + + + + + {{!-- The #block helper will pull in data from the #contentFor other template files. In this case, there's some JavaScript which we only want to use in post.hbs, but it needs to be included down here, after jQuery has already loaded. --}} + {{{block "scripts"}}} + + {{!-- Ghost outputs important scripts and data with this tag - it should always be the very last thing before the closing body tag --}} + {{ghost_foot}} + + + + \ No newline at end of file diff --git a/error-404.hbs b/error-404.hbs new file mode 100644 index 0000000..bf3068c --- /dev/null +++ b/error-404.hbs @@ -0,0 +1,38 @@ +{{!-- +This error template is used for all 404 errors, which might occur on your site. +It's a good idea to keep this template as minimal as possible in terms of both file size and complexity. +--}} + +{{!< default}} +{{!-- The tag above means: insert everything in this file +into the {body} of the default.hbs template --}} + + + +
+
+
+ 404-face + {{!--

{{statusCode}}

--}} +

{{statusCode}} - {{message}}

+ Take me home → +
+ + {{#get "posts" limit="3" include="authors,tags"}} +
+ {{#foreach posts}} + {{> "post-card"}} + {{/foreach}} +
+ {{/get}} +
+
+ + \ No newline at end of file diff --git a/error.hbs b/error.hbs new file mode 100644 index 0000000..dfa5274 --- /dev/null +++ b/error.hbs @@ -0,0 +1,66 @@ +{{!-- +This error template is used for all 400/500 errors, except 404, which might occur on your site. +It's a good idea to keep this template as minimal as possible in terms of both file size and complexity. +You'll notice that we *don't* use any JavaScript, or ghost_head / ghost_foot in this file. +--}} + + + + + + + {{meta_title}} + + + + + +
+ + + +
+
+ +
+

{{statusCode}}

+

{{message}}

+ Go to the front page → +
+ + {{#if errorDetails}} +
+

Theme errors

+
    + {{#foreach errorDetails}} +
  • + {{{rule}}} + + {{#foreach failures}} +

    Ref: {{ref}}

    +

    Message: {{message}}

    + {{/foreach}} +
  • + {{/foreach}} +
+
+ {{/if}} + +
+
+
+ + diff --git a/feed/rss.hbs b/feed/rss.hbs new file mode 100644 index 0000000..10d6d71 --- /dev/null +++ b/feed/rss.hbs @@ -0,0 +1,47 @@ + + + + <![CDATA[ {{@blog.title}} ]]> + + + + + {{@blog.url}} + + {{@blog.url}}/favicon.png + {{@blog.title}} + {{@blog.url}} + + {{date format="ddd, DD MMM YYYY HH:mm:ss ZZ"}} + + 60 + + {{#get "posts" limit="all" include="authors"}} + {{#foreach posts}} + + + <![CDATA[ {{title}} ]]> + + + + + {{url absolute="true"}} + {{id}} + + + + + + + {{date format="ddd, DD MMM YYYY HH:mm:ss ZZ"}} + + + + + + {{/foreach}} + {{/get}} + + + \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..69ad16d --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,216 @@ +const {series, watch, src, dest, parallel} = require('gulp'); +const pump = require('pump'); + +// gulp plugins and utils +const livereload = require('gulp-livereload'); +const postcss = require('gulp-postcss'); +const zip = require('gulp-zip'); +const concat = require('gulp-concat'); +const uglify = require('gulp-uglify'); +const beeper = require('beeper'); +const fs = require('fs'); + +// postcss plugins +const autoprefixer = require('autoprefixer'); +const colorFunction = require('postcss-color-function'); +const cssnano = require('cssnano'); +const customProperties = require('postcss-custom-properties'); +const easyimport = require('postcss-easy-import'); + +function serve(done) { + livereload.listen(); + done(); +} + +const handleError = (done) => { + return function (err) { + if (err) { + beeper(); + } + return done(err); + }; +}; + +function hbs(done) { + pump([ + src(['*.hbs', 'partials/**/*.hbs']), + livereload() + ], handleError(done)); +} + +function css(done) { + const processors = [ + easyimport, + customProperties({preserve: false}), + colorFunction(), + autoprefixer(), + cssnano() + ]; + + pump([ + src('assets/css/*.css', {sourcemaps: true}), + postcss(processors), + dest('assets/built/', {sourcemaps: '.'}), + livereload() + ], handleError(done)); +} + +function js(done) { + pump([ + src([ + // pull in lib files first so our own code can depend on it + 'assets/js/lib/*.js', + 'assets/js/*.js' + ], {sourcemaps: true}), + concat('casper.js'), + uglify(), + dest('assets/built/', {sourcemaps: '.'}), + livereload() + ], handleError(done)); +} + +function zipper(done) { + const targetDir = 'dist/'; + const themeName = require('./package.json').name; + const filename = themeName + '.zip'; + + pump([ + src([ + '**', + '!node_modules', '!node_modules/**', + '!dist', '!dist/**' + ]), + zip(filename), + dest(targetDir) + ], handleError(done)); +} + +const cssWatcher = () => watch('assets/css/**', css); +const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs); +const watcher = parallel(cssWatcher, hbsWatcher); +const build = series(css, js); +const dev = series(build, serve, watcher); + +exports.build = build; +exports.zip = series(build, zipper); +exports.default = dev; + +// release imports +const path = require('path'); +const releaseUtils = require('@tryghost/release-utils'); + +let config; +try { + config = require('./config'); +} catch (err) { + config = null; +} + +const REPO = 'TryGhost/Casper'; +const USER_AGENT = 'Casper'; +const CHANGELOG_PATH = path.join(process.cwd(), '.', 'changelog.md'); + +const changelog = ({previousVersion}) => { + const changelog = new releaseUtils.Changelog({ + changelogPath: CHANGELOG_PATH, + folder: path.join(process.cwd(), '.') + }); + + changelog + .write({ + githubRepoPath: `https://github.com/${REPO}`, + lastVersion: previousVersion + }) + .sort() + .clean(); +}; + +const previousRelease = () => { + return releaseUtils + .releases + .get({ + userAgent: USER_AGENT, + uri: `https://api.github.com/repos/${REPO}/releases` + }) + .then((response) => { + if (!response || !response.length) { + console.log('No releases found. Skipping'); + return; + } + let prevVersion = response[0].tag_name || response[0].name; + console.log(`Previous version ${prevVersion}`); + return prevVersion; + }); +}; + +/** + * + * `yarn ship` will trigger `postship` task. + * + * [optional] For full automation + * + * `GHOST=2.10.1,2.10.0 yarn ship` + * First value: Ships with Ghost + * Second value: Compatible with Ghost/GScan + * + * You can manually run in case the task has thrown an error. + * + * `npm_package_version=0.5.0 gulp release` + */ +const release = () => { + // @NOTE: https://yarnpkg.com/lang/en/docs/cli/version/ + // require(./package.json) can run into caching issues, this re-reads from file everytime on release + var packageJSON = JSON.parse(fs.readFileSync('./package.json')); + const newVersion = packageJSON.version; + let shipsWithGhost = '{version}'; + let compatibleWithGhost = '2.10.0'; + const ghostEnvValues = process.env.GHOST || null; + + if (ghostEnvValues) { + shipsWithGhost = ghostEnvValues.split(',')[0]; + compatibleWithGhost = ghostEnvValues.split(',')[1]; + + if (!compatibleWithGhost) { + compatibleWithGhost = '2.10.0'; + } + } + + if (!newVersion || newVersion === '') { + console.log('Invalid version.'); + return; + } + + console.log(`\nDraft release for ${newVersion}.`); + + if (!config || !config.github || !config.github.username || !config.github.token) { + console.log('Please copy config.example.json and configure Github token.'); + return; + } + + return previousRelease() + .then((previousVersion) => { + changelog({previousVersion}); + + return releaseUtils + .releases + .create({ + draft: true, + preRelease: false, + tagName: newVersion, + releaseName: newVersion, + userAgent: USER_AGENT, + uri: `https://api.github.com/repos/${REPO}/releases`, + github: { + username: config.github.username, + token: config.github.token + }, + content: [`**Ships with Ghost ${shipsWithGhost} Compatible with Ghost >= ${compatibleWithGhost}**\n\n`], + changelogPath: CHANGELOG_PATH + }) + .then((response) => { + console.log(`\nRelease draft generated: ${response.releaseUrl}\n`); + }); + }); +}; + +exports.release = release; diff --git a/index.hbs b/index.hbs new file mode 100644 index 0000000..8b85db8 --- /dev/null +++ b/index.hbs @@ -0,0 +1,98 @@ +{{!< default}} +{{!-- The tag above means: insert everything in this file +into the {body} of the default.hbs template --}} + +
+ {{> header-background background=@site.cover_image}} {{!--Special header-image.hbs partial to generate the background image--}} +
+ {{> "site-nav"}} +
+

+ {{#if @site.logo}} + + {{else}} + {{@site.title}} + {{/if}} +

+

{{@site.description}}

+
+
+ +
+ +{{!-- The main content area --}} +
+
+ +
+ {{#foreach posts}} + + {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}} + {{> "post-card"}} + + {{/foreach}} +
+ +
+
+ +{{> site-header}} + +{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}} +{{#contentFor "scripts"}} + +{{/contentFor}} \ No newline at end of file diff --git a/landing-page.hbs b/landing-page.hbs new file mode 100644 index 0000000..7b3b290 --- /dev/null +++ b/landing-page.hbs @@ -0,0 +1,127 @@ +{{!< default}} +{{!-- The tag above means: insert everything in this file +into the {body} of the default.hbs template --}} + +{{!-- The big featured header, it uses blog cover image as a BG if available --}} +
+ {{> header-background background=@site.cover_image}} + {{!--Special header-image.hbs partial to generate the background image--}} +
+ {{> "site-nav"}} +
+

+ {{#if @site.logo}} + + {{else}} + {{@site.title}} + {{/if}} +

+

{{@site.description}}

+ +
+
+ +
+ + +{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}} +{{#contentFor "scripts"}} + +{{/contentFor}} + + \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..d9747c4 --- /dev/null +++ b/package.json @@ -0,0 +1,92 @@ +{ + "name": "casper-sagi", + "description": "A clean, minimal default theme for the Ghost publishing platform - Modified By sagidayan@gmail.com", + "demo": "https://www.sagidayan.com", + "version": "3.0.7", + "engines": { + "ghost": ">=3.0.0", + "ghost-api": "v3" + }, + "license": "MIT", + "screenshots": { + "desktop": "assets/screenshot-desktop.jpg", + "mobile": "assets/screenshot-mobile.jpg" + }, + "scripts": { + "dev": "gulp", + "zip": "gulp zip", + "test": "gscan .", + "test:ci": "gscan --fatal --verbose .", + "pretest": "gulp build", + "preship": "yarn test", + "ship": "STATUS=$(git status --porcelain); echo $STATUS; if [ -z \"$STATUS\" ]; then yarn version && git push --follow-tags; else echo \"Uncomitted changes found.\" && exit 1; fi", + "postship": "git fetch && gulp release" + }, + "author": { + "name": "Ghost Foundation", + "email": "hello@ghost.org", + "url": "https://ghost.org" + }, + "gpm": { + "type": "theme", + "categories": [ + "Minimal", + "Magazine", + "Landing Page" + ] + }, + "keywords": [ + "ghost", + "theme", + "ghost-theme" + ], + "repository": { + "type": "git", + "url": "https://github.com/TryGhost/Casper.git" + }, + "bugs": "https://github.com/TryGhost/Casper/issues", + "contributors": "https://github.com/TryGhost/Casper/graphs/contributors", + "devDependencies": { + "@tryghost/release-utils": "0.3.3", + "autoprefixer": "9.7.1", + "beeper": "2.0.0", + "cssnano": "4.1.10", + "gscan": "3.3.0", + "gulp": "4.0.2", + "gulp-concat": "2.6.1", + "gulp-livereload": "4.0.2", + "gulp-postcss": "8.0.0", + "gulp-uglify": "3.0.2", + "gulp-zip": "5.0.1", + "postcss-color-function": "4.1.0", + "postcss-custom-properties": "9.0.2", + "postcss-easy-import": "3.0.0", + "pump": "3.0.0" + }, + "browserslist": [ + "defaults" + ], + "config": { + "posts_per_page": 25, + "image_sizes": { + "xxs": { + "width": 30 + }, + "xs": { + "width": 100 + }, + "s": { + "width": 300 + }, + "m": { + "width": 600 + }, + "l": { + "width": 1000 + }, + "xl": { + "width": 2000 + } + } + } +} \ No newline at end of file diff --git a/page.hbs b/page.hbs new file mode 100644 index 0000000..579ed18 --- /dev/null +++ b/page.hbs @@ -0,0 +1,65 @@ +{{!< default}} +{{!-- The tag above means: insert everything in this file +into the {body} of the default.hbs template --}} + +{{!-- The big featured header, it uses blog cover image as a BG if available --}} + + +{{!-- Everything inside the #post tags pulls data from the post --}} +{{#post}} + +
+
+ +
+ +
+

{{title}}

+
+ + {{#if feature_image}} +
+ {{!-- This is a responsive image, it loads different sizes depending on device + https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}} + {{title}} +
+ {{/if}} + +
+
+ {{content}} +
+
+ +
+ +
+
+ +{{/post}} + +{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}} +{{#contentFor "scripts"}} + +{{/contentFor}} diff --git a/partials/header-background.hbs b/partials/header-background.hbs new file mode 100644 index 0000000..9d78ab6 --- /dev/null +++ b/partials/header-background.hbs @@ -0,0 +1,47 @@ +{{!-- +Wow what the hell is going on in here even? + +Ok so, several templates use this big header with a giant BG image. Nice idea, but big images +have a heavy impact on performance, so it's a good idea to make them responsive. Because we +can only get the image dynamically using Handlebars, and we can only set the image to properly +be a background image using CSS, we end up with a handful of inline styles. + +If the template in question has a background image, then we render responsive image styles +for it, and apply those styles to the
tag. Else, we just output a
tag +with a `no-image` class so we can style it accordingly. +--}} + +{{#if background}} + + +
+ +{{else}} + +
+ +{{/if}} \ No newline at end of file diff --git a/partials/icons/avatar.hbs b/partials/icons/avatar.hbs new file mode 100644 index 0000000..af37fca --- /dev/null +++ b/partials/icons/avatar.hbs @@ -0,0 +1 @@ + diff --git a/partials/icons/facebook.hbs b/partials/icons/facebook.hbs new file mode 100644 index 0000000..91120b8 --- /dev/null +++ b/partials/icons/facebook.hbs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/partials/icons/loader.hbs b/partials/icons/loader.hbs new file mode 100644 index 0000000..4a7f2cd --- /dev/null +++ b/partials/icons/loader.hbs @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/partials/icons/rss.hbs b/partials/icons/rss.hbs new file mode 100644 index 0000000..3840238 --- /dev/null +++ b/partials/icons/rss.hbs @@ -0,0 +1 @@ + diff --git a/partials/icons/twitter.hbs b/partials/icons/twitter.hbs new file mode 100644 index 0000000..19de4af --- /dev/null +++ b/partials/icons/twitter.hbs @@ -0,0 +1 @@ + diff --git a/partials/post-card.hbs b/partials/post-card.hbs new file mode 100644 index 0000000..f3e4f93 --- /dev/null +++ b/partials/post-card.hbs @@ -0,0 +1,69 @@ +
+ + {{#if feature_image}} + + {{!-- This is a responsive image, it loads different sizes depending on device + https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}} + {{title}} + + {{/if}} + +
+ + + +
+ {{#if primary_tag}} + {{#primary_tag}} +
{{name}}
+ {{/primary_tag}} + {{/if}} +

{{title}}

+
+ +
+ {{#if feature_image}} +

{{excerpt words="30"}}

+ {{else}} +

{{excerpt words="44"}}

+ {{/if}} +
+ +
+ +
+
    + {{#foreach authors}} +
  • + +
    + {{name}} +
    + + {{#if profile_image}} + + {{name}} + + {{else}} + {{> "icons/avatar"}} + {{/if}} +
  • + {{/foreach}} +
+ +
+ +
{{!--/.post-card-content--}} + +
diff --git a/partials/site-header.hbs b/partials/site-header.hbs new file mode 100644 index 0000000..11e06f2 --- /dev/null +++ b/partials/site-header.hbs @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/partials/site-nav.hbs b/partials/site-nav.hbs new file mode 100644 index 0000000..f3f5225 --- /dev/null +++ b/partials/site-nav.hbs @@ -0,0 +1,41 @@ + \ No newline at end of file diff --git a/partials/subscribe-form.hbs b/partials/subscribe-form.hbs new file mode 100644 index 0000000..dc3f8bd --- /dev/null +++ b/partials/subscribe-form.hbs @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/post.hbs b/post.hbs new file mode 100644 index 0000000..f11d4c0 --- /dev/null +++ b/post.hbs @@ -0,0 +1,214 @@ +{{!< default}} + +{{!-- The tag above means: insert everything in this file +into the {body} of the default.hbs template --}} + + + +{{!-- Everything inside the #post tags pulls data from the post --}} +{{#post}} + +
+
+ +
+ +
+ + {{#if primary_tag}} +
+ {{#primary_tag}} + {{name}} + {{/primary_tag}} +
+ {{/if}} + +

{{title}}

+ + {{#if custom_excerpt}} +

{{custom_excerpt}}

+ {{/if}} + + +
+ + {{#if feature_image}} +
+ {{!-- This is a responsive image, it loads different sizes depending on device + https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}} + {{title}} +
+ {{/if}} + +
+
+ {{content}} +
+
+ + {{!-- Email subscribe form at the bottom of the page --}} + {{#if @labs.members}} + {{> subscribe-form}} + {{/if}} + + {{!-- +
+ If you want to embed comments, this is a good place to do it! +
+ --}} + +
+ +
+
+ +{{!-- Links to Previous/Next posts --}} + + +{{/post}} + +{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}} +{{#contentFor "scripts"}} + +{{/contentFor}} diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..2b1e364 --- /dev/null +++ b/renovate.json @@ -0,0 +1,8 @@ +{ + "extends": [ + "@tryghost:theme" + ], + "node": { + "supportPolicy": ["lts_latest"] + } +} diff --git a/routes.yaml b/routes.yaml new file mode 100644 index 0000000..57c6e10 --- /dev/null +++ b/routes.yaml @@ -0,0 +1,14 @@ +routes: + /: + template: landing-page + /rss-feed/: + template: feed/rss + content_type: text/xml +collections: + /writings/: + permalink: /writings/{slug}/ + template: + - index +taxonomies: + tag: /tag/{slug}/ + author: /author/{slug}/ diff --git a/tag.hbs b/tag.hbs new file mode 100644 index 0000000..86c5407 --- /dev/null +++ b/tag.hbs @@ -0,0 +1,32 @@ +{{!< default}} +{{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}} + +{{#tag}} +
+ {{> site-header}} + {{> header-background background=feature_image}} {{!--Special header-image.hbs partial to generate the background image--}} +
+

{{name}}

+

+ {{#if description}} + {{description}} + {{else}} + A collection of {{plural ../pagination.total empty='posts' singular='% post' plural='% posts'}} + {{/if}} +

+
+
+
+{{/tag}} + +{{!-- The main content area --}} +
+
+
+ {{#foreach posts}} + {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}} + {{> "post-card"}} + {{/foreach}} +
+
+
diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..ce21dab --- /dev/null +++ b/yarn.lock @@ -0,0 +1,5136 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@tryghost/extract-zip@1.6.6": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@tryghost/extract-zip/-/extract-zip-1.6.6.tgz#937e0e775fec6dea937ac49d73a068bcafb67f50" + integrity sha512-HZ8Q/HgH36Fn0fOcAC2lGjTylu5ctMQn8jvwtCCiDfkg03BaBYv8xbEqqbDbz2/3v0i9pFrNdXHWheQGM1jXgw== + dependencies: + concat-stream "1.6.0" + debug "2.6.9" + mkdirp "0.5.0" + yauzl "2.4.1" + +"@tryghost/pretty-cli@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@tryghost/pretty-cli/-/pretty-cli-1.2.2.tgz#bebc31cabdba3a60c0848b9fdb39f1f4846b4017" + integrity sha512-3GK42+Ju7blugavxmGZoNBhkKXtd4NNcXGE9FZ99+tXLiFs+Y5psVLm9dK3DJB6lgt2Keo0GbpJxsh57ivLG2w== + dependencies: + chalk "^2.4.1" + sywac "^1.2.1" + +"@tryghost/release-utils@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@tryghost/release-utils/-/release-utils-0.3.3.tgz#b4c849f8570ea06229ff941f0dee5dfdd6187d13" + integrity sha512-b6Q6CiAPrIPhVTryzEyEtq8UVaN8VJ5yKOW0eeJjbQFNwIQOQ/Gawxr2ryESLv60JJuAxmK5zjWNd5MMhDFlzw== + dependencies: + bluebird "^3.5.3" + emoji-regex "^8.0.0" + execa "^1.0.0" + lodash "^4.17.11" + request "^2.88.0" + request-promise "^4.2.4" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== + dependencies: + ansi-wrap "^0.1.0" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172" + integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= + dependencies: + buffer-equal "^1.0.0" + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= + dependencies: + make-iterator "^1.0.0" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= + dependencies: + make-iterator "^1.0.0" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-each@^1.0.0, array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== + dependencies: + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^2.0.0" + stream-exhaust "^1.0.1" + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= + dependencies: + async-done "^1.2.2" + +async@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@9.7.1: + version "9.7.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.1.tgz#9ffc44c55f5ca89253d9bb7186cefb01ef57747f" + integrity sha512-w3b5y1PXWlhYulevrTJ0lizkQ5CyqfeU6BIRDbuhsMupstHQOeb1Ur80tcB1zxSu7AwyY/qCQ7Vvqklh31ZBFw== + dependencies: + browserslist "^4.7.2" + caniuse-lite "^1.0.30001006" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.21" + postcss-value-parser "^4.0.2" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" + +balanced-match@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" + integrity sha1-tQS9BYabOSWd0MXvw12EMXbczEo= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +beeper@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-2.0.0.tgz#ecda02439e3c0539d300c363303e4ffeb2daec70" + integrity sha512-+ShExQEewPvKdTUOtCAJmkUAgEyNF0QqgiAhPRE5xLvoFkIPt8xuHKaz1gMLzSMS73beHWs9gbRBngdH61nVWw== + dependencies: + delay "^4.1.0" + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bluebird@^3.4.6, bluebird@^3.5.0, bluebird@^3.5.3: + version "3.7.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" + integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +body@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" + integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= + dependencies: + continuable-cache "^0.3.1" + error "^7.0.0" + raw-body "~1.1.0" + safe-json-parse "~1.0.1" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +browserslist@^4.0.0, browserslist@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348" + integrity sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw== + dependencies: + caniuse-lite "^1.0.30001004" + electron-to-chromium "^1.3.295" + node-releases "^1.1.38" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +bunyan-loggly@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/bunyan-loggly/-/bunyan-loggly-1.4.1.tgz#b6c806fb34bfcde2ce0d98878cf3534620b969e7" + integrity sha512-D2NGeqz94bWWa8gTgEXLtSNGuKprpAhUroGv2gFJeJ1cwhGEkwQJBgshrNUfW/zMuaI5rKCmxMo0G47ob4BemQ== + dependencies: + json-stringify-safe "^5.0.1" + node-loggly-bulk "^2.2.4" + +bunyan@1.8.12: + version "1.8.12" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" + integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c= + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" + integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +caller@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/caller/-/caller-1.0.1.tgz#b851860f70e195db3d277395aa1a7e23ea30ecf5" + integrity sha1-uFGGD3Dhlds9J3OVqhp+I+ow7PU= + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +camelcase@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001004, caniuse-lite@^1.0.30001006: + version "1.0.30001008" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz#b8841b1df78a9f5ed9702537ef592f1f8772c0d9" + integrity sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^2.0.0: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cliui@^3.0.3, cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= + dependencies: + color-name "^1.0.0" + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q= + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colors@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.19.0, commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + integrity sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc= + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^1.5.2, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-with-sourcemaps@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + +config-chain@~1.1.5: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +continuable-cache@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" + integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= + +convert-source-map@^1.5.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-props@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" + integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== + dependencies: + each-props "^1.3.0" + is-plain-object "^2.0.1" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +css-color-function@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/css-color-function/-/css-color-function-1.3.3.tgz#8ed24c2c0205073339fafa004bc8c141fccb282e" + integrity sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4= + dependencies: + balanced-match "0.1.0" + color "^0.11.0" + debug "^3.1.0" + rgb "~0.1.0" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d" + integrity sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg== + dependencies: + css-tree "1.0.0-alpha.37" + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== + dependencies: + kind-of "^5.0.2" + +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delay@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-4.3.0.tgz#efeebfb8f545579cb396b3a722443ec96d14c50e" + integrity sha512-Lwaf3zVFDMBop1yDuFZ19F9WyGcZcGacsbdlZtWjQmM50tOcMntm1njF/Nb/Vjij3KaSvCF+sEYGKrrjObu2NA== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domelementtype@1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +dtrace-provider@~0.8: + version "0.8.8" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" + integrity sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg== + dependencies: + nan "^2.14.0" + +duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +each-props@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +editorconfig@^0.15.0: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.295: + version "1.3.306" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.306.tgz#e8265301d053d5f74e36cb876486830261fbe946" + integrity sha512-frDqXvrIROoYvikSKTIKbHbzO6M3/qC6kCIt/1FOa9kALe++c4VAJnwjSFvf1tYLEUsP2n9XZ4XSCyqc3l7A/A== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + +es-abstract@^1.12.0, es-abstract@^1.5.1: + version "1.16.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.0.tgz#d3a26dc9c3283ac9750dca569586e976d9dcc06d" + integrity sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.0" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" + +es-to-primitive@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50: + version "0.10.52" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.52.tgz#bb21777e919a04263736ded120a9d665f10ea63f" + integrity sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.2" + next-tick "~1.0.0" + +es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +express-hbs@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/express-hbs/-/express-hbs-2.3.0.tgz#ceccd1845674ad70f35d47b2130727be280af086" + integrity sha512-vhm9DXIPebBXnajFX5c33fMFe3Y+3Zd02BDn2uWiWVZ+A2VMErZYRLoVTx0fcldHM2wGLajjSO+dwubkklsOGA== + dependencies: + bluebird "^3.5.3" + handlebars "4.5.3" + js-beautify "1.8.8" + lodash "4.17.15" + readdirp "2.2.1" + +express@^4.16.2: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.2.0.tgz#8dd8d2dd21bcced3045be09621fa0cbf73908ba4" + integrity sha512-0ccUQK/9e3NreLFg6K6np8aPyRgwycx+oFGtfx1dSp7Wj00Ozw9r05FgBRlzjf2XBM7LAzwgLyDscRrtSU91hA== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fancy-log@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +faye-websocket@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= + dependencies: + pend "~1.2.0" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-root@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + +flush-write-stream@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-extra@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gelf-stream@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/gelf-stream/-/gelf-stream-1.1.1.tgz#9cea9b6386ac301c741838ca3cb91e66dbfbf669" + integrity sha1-nOqbY4asMBx0GDjKPLkeZtv79mk= + dependencies: + gelfling "^0.3.0" + +gelfling@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/gelfling/-/gelfling-0.3.1.tgz#336a98f81510f9ae0af2a494e17468a116a9dc04" + integrity sha1-M2qY+BUQ+a4K8qSU4XRooRap3AQ= + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +ghost-ignition@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ghost-ignition/-/ghost-ignition-4.0.0.tgz#cf0dab07842c23f7e3aea38053a20b18db1eab53" + integrity sha512-Te2Q4xYL70HEEeasJT3b/04iRy2QI/fXWlc5y+TMkfSj2x6nki76eiUKSsz3Y61zEO0BES5GxWEAZQ9KjAh35A== + dependencies: + bunyan "1.8.12" + bunyan-loggly "^1.3.1" + caller "1.0.1" + debug "^4.0.0" + find-root "1.1.0" + fs-extra "^3.0.1" + gelf-stream "^1.1.1" + json-stringify-safe "^5.0.1" + lodash "^4.16.4" + moment "^2.15.2" + nconf "^0.10.0" + prettyjson "^1.1.3" + uuid "^3.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= + dependencies: + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" + +glob-watcher@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" + integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg== + dependencies: + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + object.defaults "^1.1.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +glogg@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" + integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== + dependencies: + sparkles "^1.0.0" + +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +gscan@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/gscan/-/gscan-3.3.0.tgz#6529c12ce7ccdd0590d1a579d245c9070ae886b7" + integrity sha512-6/47M9TITWCn5H6tJv7st/26x2/9DMzee9NLB2pOz0DWnFSlqC31evBdrk4Mk6B6FYx3BfXpLWuZevoLPRZ5hQ== + dependencies: + "@tryghost/extract-zip" "1.6.6" + "@tryghost/pretty-cli" "1.2.2" + bluebird "^3.4.6" + chalk "^3.0.0" + common-tags "^1.8.0" + express "^4.16.2" + express-hbs "2.3.0" + fs-extra "^8.0.0" + ghost-ignition "4.0.0" + glob "^7.0.5" + lodash "^4.17.12" + multer "^1.1.0" + pluralize "^8.0.0" + require-dir "^1.0.0" + semver "^6.0.0" + upath "^1.1.0" + uuid "^3.0.0" + validator "^6.3.0" + +gulp-cli@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc" + integrity sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA== + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.1.0" + isobject "^3.0.1" + liftoff "^3.1.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.0.1" + yargs "^7.1.0" + +gulp-concat@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/gulp-concat/-/gulp-concat-2.6.1.tgz#633d16c95d88504628ad02665663cee5a4793353" + integrity sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M= + dependencies: + concat-with-sourcemaps "^1.0.0" + through2 "^2.0.0" + vinyl "^2.0.0" + +gulp-livereload@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gulp-livereload/-/gulp-livereload-4.0.2.tgz#fc8a75c7511cd65afd2202cbcdc8bb0f8dde377b" + integrity sha512-InmaR50Xl1xB1WdEk4mrUgGHv3VhhlRLrx7u60iY5AAer90FlK95KXitPcGGQoi28zrUJM189d/h6+V470Ncgg== + dependencies: + chalk "^2.4.1" + debug "^3.1.0" + fancy-log "^1.3.2" + lodash.assign "^4.2.0" + readable-stream "^3.0.6" + tiny-lr "^1.1.1" + vinyl "^2.2.0" + +gulp-postcss@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-8.0.0.tgz#8d3772cd4d27bca55ec8cb4c8e576e3bde4dc550" + integrity sha512-Wtl6vH7a+8IS/fU5W9IbOpcaLqKxd5L1DUOzaPmlnCbX1CrG0aWdwVnC3Spn8th0m8D59YbysV5zPUe1n/GJYg== + dependencies: + fancy-log "^1.3.2" + plugin-error "^1.0.1" + postcss "^7.0.2" + postcss-load-config "^2.0.0" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-uglify@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gulp-uglify/-/gulp-uglify-3.0.2.tgz#5f5b2e8337f879ca9dec971feb1b82a5a87850b0" + integrity sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg== + dependencies: + array-each "^1.0.1" + extend-shallow "^3.0.2" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + isobject "^3.0.1" + make-error-cause "^1.1.1" + safe-buffer "^5.1.2" + through2 "^2.0.0" + uglify-js "^3.0.5" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-zip@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-5.0.1.tgz#0dba5094901b0d91bcc8b53b3f6ff797c0f2002d" + integrity sha512-M/IWLh9RvOpuofDZkgDirtiyz9J3yIqnDOJ3muzk2D/XnZ1ruqPlPLRIpXnl/aZU+xXwKPdOIxjRzkUcVEQyZQ== + dependencies: + get-stream "^5.1.0" + plugin-error "^1.0.1" + through2 "^3.0.1" + vinyl "^2.1.0" + yazl "^2.5.1" + +gulp@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" + integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== + dependencies: + glob-watcher "^5.0.3" + gulp-cli "^2.2.0" + undertaker "^1.2.1" + vinyl-fs "^3.0.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= + dependencies: + glogg "^1.0.0" + +handlebars@4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" + integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= + dependencies: + sparkles "^1.0.0" + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.0, ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +interpret@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +ip-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-url-superb@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-3.0.0.tgz#b9a1da878a1ac73659047d1e6f4ef22c209d3e25" + integrity sha512-3faQP+wHCGDQT1qReM5zCPx2mxoal6DzbzquFlCYJLWyy4WPTved33ea2xFbX37z4NoriEwZGIYhFtx8RUB5wQ== + dependencies: + url-regex "^5.0.0" + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +js-beautify@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.8.8.tgz#1eb175b73a3571a5f1ed8d98e7cf2b05bfa98471" + integrity sha512-qVNq7ZZ7ZbLdzorvSlRDadS0Rh5oyItaE95v6I4wbbuSiijxn7SnnsV6dvKlcXuO2jX7lK8tn9fBulx34K/Ejg== + dependencies: + config-chain "~1.1.5" + editorconfig "^0.15.0" + mkdirp "~0.5.0" + nopt "~4.0.1" + +js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +just-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" + integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0, kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= + dependencies: + flush-write-stream "^1.0.2" + +liftoff@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== + dependencies: + extend "^3.0.0" + findup-sync "^3.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +livereload-js@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" + integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@4.17.15, lodash@^4.16.4, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.4: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-error-cause@^1.1.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" + integrity sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0= + dependencies: + make-error "^1.2.0" + +make-error@^1.2.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== + +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +"minimatch@2 || 3", minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" + integrity sha1-HXMHam35hs2TROFecfzAWkyavxI= + dependencies: + minimist "0.0.8" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +moment@^2.10.6, moment@^2.15.2, moment@^2.18.1: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multer@^1.1.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" + integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== + dependencies: + append-field "^1.0.0" + busboy "^0.2.11" + concat-stream "^1.5.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" + +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== + +mv@~2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +nan@^2.12.1, nan@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +nconf@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/nconf/-/nconf-0.10.0.tgz#da1285ee95d0a922ca6cee75adcf861f48205ad2" + integrity sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q== + dependencies: + async "^1.4.0" + ini "^1.3.0" + secure-keys "^1.0.0" + yargs "^3.19.0" + +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= + +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-loggly-bulk@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/node-loggly-bulk/-/node-loggly-bulk-2.2.4.tgz#bdd8638d97c43ecf1e1831ca98b250968fa6dee9" + integrity sha512-DfhtsDfkSBU6Dp1zvK+H1MgHRcA2yb4z07ctyA6uo+bNwKtv1exhohN910zcWNkdSYq1TImCq+O+3bOTuYHvmQ== + dependencies: + json-stringify-safe "5.0.x" + moment "^2.18.1" + request ">=2.76.0 <3.0.0" + +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^1.1.38: + version "1.1.39" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.39.tgz#c1011f30343aff5b633153b10ff691d278d08e8d" + integrity sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA== + dependencies: + semver "^6.3.0" + +nopt@^4.0.1, nopt@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +now-and-later@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" + integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== + dependencies: + once "^1.3.2" + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-packlist@^1.1.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" + integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.defaults@^1.0.0, object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= + dependencies: + readable-stream "^2.0.1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" + integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + dependencies: + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" + +postcss-color-function@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-color-function/-/postcss-color-function-4.1.0.tgz#b6f9355e07b12fcc5c34dab957834769b03d8f57" + integrity sha512-2/fuv6mP5Lt03XbRpVfMdGC8lRP1sykme+H1bR4ARyOmSMB8LPSjcL6EAI1iX6dqUF+jNEvKIVVXhan1w/oFDQ== + dependencies: + css-color-function "~1.3.3" + postcss "^6.0.23" + postcss-message-helpers "^2.0.0" + postcss-value-parser "^3.3.1" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-properties@9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-9.0.2.tgz#091aefaa309826302d53ec6d780fbe1df8f40fd4" + integrity sha512-WHaQrEp3gJ6mgxBA4mGJKW6DSVfy2IFnKPFAb2IEulgxGUW8nWp1NkOD/rWR6e2uIuAdnTa0LXSupST7daniAw== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^3.0.5" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-easy-import@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-easy-import/-/postcss-easy-import-3.0.0.tgz#8eaaf5ae59566083d0cae98735dfd803e3ab194d" + integrity sha512-cfNsear/v8xlkl9v5Wm8y4Do/puiDQTFF+WX2Fo++h7oKt1fKWVVW/5Ca8hslYDQWnjndrg813cA23Pt1jsYdg== + dependencies: + globby "^6.1.0" + is-glob "^4.0.0" + lodash "^4.17.4" + object-assign "^4.0.1" + pify "^3.0.0" + postcss "^6.0.11" + postcss-import "^10.0.0" + resolve "^1.1.7" + +postcss-import@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-10.0.0.tgz#4c85c97b099136cc5ea0240dc1dfdbfde4e2ebbe" + integrity sha1-TIXJewmRNsxeoCQNwd/b/eTi674= + dependencies: + object-assign "^4.0.1" + postcss "^6.0.1" + postcss-value-parser "^3.2.3" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4= + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + dependencies: + dot-prop "^4.1.1" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + +postcss-values-parser@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-3.0.5.tgz#9f83849fb89eaac74c2d5bf75e8e9715508a8c8d" + integrity sha512-0N6EUBx2Vzl0c9LQipuus90EkVh7saBQFRhgAYpHHcDCIvxRt+K/q0zwcIYtDQVNs5Y9NGqei4AuCEvAOsePfQ== + dependencies: + color-name "^1.1.4" + is-number "^7.0.0" + is-url-superb "^3.0.0" + postcss "^7.0.5" + url-regex "^5.0.0" + +postcss@^6.0.1, postcss@^6.0.11, postcss@^6.0.23: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.5: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + +prettyjson@^1.1.3: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289" + integrity sha1-/P+rQdGcq0365eV15kJGYZsS0ok= + dependencies: + colors "^1.1.2" + minimist "^1.2.0" + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + +pump@3.0.0, pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.4.0: + version "6.9.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" + integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@~1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" + integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= + dependencies: + bytes "1" + string_decoder "0.10" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + dependencies: + pify "^2.3.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@2 || 3", readable-stream@^3.0.6: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@2.2.1, readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" + +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== + dependencies: + lodash "^4.17.15" + +request-promise@^4.2.4: + version "4.2.5" + resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.5.tgz#186222c59ae512f3497dfe4d75a9c8461bd0053c" + integrity sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg== + dependencies: + bluebird "^3.5.0" + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +"request@>=2.76.0 <3.0.0", request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-dir@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/require-dir/-/require-dir-1.2.0.tgz#0d443b75e96012d3ca749cf19f529a789ae74817" + integrity sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= + dependencies: + value-or-function "^3.0.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== + dependencies: + path-parse "^1.0.6" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgb@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/rgb/-/rgb-0.1.0.tgz#be27b291e8feffeac1bd99729721bfa40fc037b5" + integrity sha1-vieykej+/+rBvZlylyG/pA/AN7U= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= + dependencies: + glob "^6.0.1" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-json-parse@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" + integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= + +safe-json-stringify@~1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +secure-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/secure-keys/-/secure-keys-1.0.0.tgz#f0c82d98a3b139a8776a8808050b824431087fca" + integrity sha1-8MgtmKOxOah3aogIBQuCRDEIf8o= + +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= + dependencies: + sver-compat "^1.5.0" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.1, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-exhaust@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.trimleft@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string_decoder@0.10, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= + dependencies: + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +sywac@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/sywac/-/sywac-1.2.2.tgz#8d9e7271fc11337de09a38e70b71a264cb74caf0" + integrity sha512-Bfyo0Oddco9b/ifXTevNmMCewmWH2EeE06cPKolsahly7nShbYooZmJYZxJc5EN4WFAXvbR8WOx97PUvaYYMEg== + +tar@^4: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +through2-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-lr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" + integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== + dependencies: + body "^5.1.0" + debug "^3.1.0" + faye-websocket "~0.10.0" + livereload-js "^2.3.0" + object-assign "^4.1.0" + qs "^6.4.0" + +tlds@^1.203.0: + version "1.203.1" + resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" + integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== + +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= + dependencies: + through2 "^2.0.3" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@^3.0.5, uglify-js@^3.1.4: + version "3.6.8" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.8.tgz#5edcbcf9d49cbb0403dc49f856fe81530d65145e" + integrity sha512-XhHJ3S3ZyMwP8kY1Gkugqx3CJh2C3O0y8NPiSxtm1tyD/pktLAkFZsFGpuNfTZddKDQ/bbDBLAd2YyA1pbi8HQ== + dependencies: + commander "~2.20.3" + source-map "~0.6.1" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= + +undertaker@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" + integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA== + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-stream@^2.0.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== + dependencies: + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.0, upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== + dependencies: + ip-regex "^4.1.0" + tlds "^1.203.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.0, uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +v8flags@^3.0.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" + integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== + dependencies: + homedir-polyfill "^1.0.1" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validator@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-6.3.0.tgz#47ce23ed8d4eaddfa9d4b8ef0071b6cf1078d7c8" + integrity sha1-R84j7Y1Ord+p1LjvAHG2zxB418g= + +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" + integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-fs@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== + dependencies: + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" + +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= + dependencies: + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" + +vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= + dependencies: + source-map "^0.5.1" + +vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" + integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + +which@^1.2.14, which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY= + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.0, y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= + dependencies: + camelcase "^3.0.0" + +yargs@^3.19.0: + version "3.32.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + integrity sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU= + dependencies: + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" + +yargs@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + +yauzl@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= + dependencies: + fd-slicer "~1.0.1" + +yazl@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== + dependencies: + buffer-crc32 "~0.2.3"