Showing preview only (1,043K chars total). Download the full file or copy to clipboard to get everything.
Repository: drewbot/sass-flexbox-grid
Branch: master
Commit: 9042c7cb4b3d
Files: 168
Total size: 998.8 KB
Directory structure:
gitextract_bd_8y92o/
├── .babelrc
├── .bowerrc
├── .csscomb.json
├── .editorconfig
├── .eslintrc
├── .gitattributes
├── .jsbeautifyrc
├── .tmp/
│ ├── fonts/
│ │ ├── Graphik/
│ │ │ ├── Graphik-Black.otf
│ │ │ ├── Graphik-BlackItalic.otf
│ │ │ ├── Graphik-Bold.otf
│ │ │ ├── Graphik-BoldItalic.otf
│ │ │ ├── Graphik-Extralight.otf
│ │ │ ├── Graphik-ExtralightItalic.otf
│ │ │ ├── Graphik-Light.otf
│ │ │ ├── Graphik-LightItalic.otf
│ │ │ ├── Graphik-Medium.otf
│ │ │ ├── Graphik-MediumItalic.otf
│ │ │ ├── Graphik-Regular.otf
│ │ │ ├── Graphik-RegularItalic.otf
│ │ │ ├── Graphik-Semibold.otf
│ │ │ ├── Graphik-SemiboldItalic.otf
│ │ │ ├── Graphik-Super.otf
│ │ │ ├── Graphik-SuperItalic.otf
│ │ │ ├── Graphik-Thin.otf
│ │ │ └── Graphik-ThinItalic.otf
│ │ └── Majesti-Banner/
│ │ ├── Majesti-Banner-Bold.otf
│ │ ├── Majesti-Banner-BoldItalic.otf
│ │ ├── Majesti-Banner-Book.otf
│ │ ├── Majesti-Banner-BookItalic.otf
│ │ ├── Majesti-Banner-Heavy.otf
│ │ ├── Majesti-Banner-HeavyItalic.otf
│ │ ├── Majesti-Banner-Light.otf
│ │ ├── Majesti-Banner-LightItalic.otf
│ │ ├── Majesti-Banner-Medium.otf
│ │ └── Majesti-Banner-MediumItalic.otf
│ └── styles/
│ └── main.css
├── .yo-rc.json
├── LICENSE.md
├── README.md
├── app/
│ ├── browserconfig.xml
│ ├── fonts/
│ │ ├── Graphik/
│ │ │ ├── Graphik-Black.otf
│ │ │ ├── Graphik-BlackItalic.otf
│ │ │ ├── Graphik-Bold.otf
│ │ │ ├── Graphik-BoldItalic.otf
│ │ │ ├── Graphik-Extralight.otf
│ │ │ ├── Graphik-ExtralightItalic.otf
│ │ │ ├── Graphik-Light.otf
│ │ │ ├── Graphik-LightItalic.otf
│ │ │ ├── Graphik-Medium.otf
│ │ │ ├── Graphik-MediumItalic.otf
│ │ │ ├── Graphik-Regular.otf
│ │ │ ├── Graphik-RegularItalic.otf
│ │ │ ├── Graphik-Semibold.otf
│ │ │ ├── Graphik-SemiboldItalic.otf
│ │ │ ├── Graphik-Super.otf
│ │ │ ├── Graphik-SuperItalic.otf
│ │ │ ├── Graphik-Thin.otf
│ │ │ └── Graphik-ThinItalic.otf
│ │ └── Majesti-Banner/
│ │ ├── Majesti-Banner-Bold.otf
│ │ ├── Majesti-Banner-BoldItalic.otf
│ │ ├── Majesti-Banner-Book.otf
│ │ ├── Majesti-Banner-BookItalic.otf
│ │ ├── Majesti-Banner-Heavy.otf
│ │ ├── Majesti-Banner-HeavyItalic.otf
│ │ ├── Majesti-Banner-Light.otf
│ │ ├── Majesti-Banner-LightItalic.otf
│ │ ├── Majesti-Banner-Medium.otf
│ │ └── Majesti-Banner-MediumItalic.otf
│ ├── index.html
│ ├── manifest.json
│ ├── robots.txt
│ ├── scripts/
│ │ ├── app.js
│ │ ├── bundle.js
│ │ ├── content/
│ │ │ ├── classes.js
│ │ │ ├── documentation-obj.js
│ │ │ ├── documentation.js
│ │ │ ├── examples.js
│ │ │ ├── mixins.js
│ │ │ ├── overview.js
│ │ │ ├── sass-classes.js
│ │ │ ├── sass-mixins.js
│ │ │ ├── sass-variables.js
│ │ │ └── variables.js
│ │ ├── main.js
│ │ ├── marked.js
│ │ └── router.js
│ ├── styles/
│ │ ├── _border-box-all.scss
│ │ ├── _element-defaults.scss
│ │ ├── _fonts.scss
│ │ ├── _reset.scss
│ │ ├── _unique.scss
│ │ ├── library/
│ │ │ ├── _grid.scss
│ │ │ ├── _visibility.scss
│ │ │ ├── main.scss
│ │ │ ├── mixins/
│ │ │ │ ├── _grid-mixins.scss
│ │ │ │ ├── _visibility-mixins.scss
│ │ │ │ └── main.scss
│ │ │ └── variables/
│ │ │ ├── _grid-variables.scss
│ │ │ └── main.scss
│ │ ├── main.scss
│ │ ├── mixins/
│ │ │ ├── _text-mixins.scss
│ │ │ └── main.scss
│ │ └── variables/
│ │ ├── _color-variables.scss
│ │ ├── _text-variables.scss
│ │ └── main.scss
│ └── views/
│ ├── classes/
│ │ └── index.html
│ ├── classes.html
│ ├── documentation.html
│ ├── mixins/
│ │ └── index.html
│ ├── mixins.html
│ ├── variables/
│ │ └── index.html
│ └── variables.html
├── app.js
├── bower.json
├── dist/
│ ├── browserconfig.xml
│ ├── fonts/
│ │ ├── Graphik/
│ │ │ ├── Graphik-Black.otf
│ │ │ ├── Graphik-BlackItalic.otf
│ │ │ ├── Graphik-Bold.otf
│ │ │ ├── Graphik-BoldItalic.otf
│ │ │ ├── Graphik-Extralight.otf
│ │ │ ├── Graphik-ExtralightItalic.otf
│ │ │ ├── Graphik-Light.otf
│ │ │ ├── Graphik-LightItalic.otf
│ │ │ ├── Graphik-Medium.otf
│ │ │ ├── Graphik-MediumItalic.otf
│ │ │ ├── Graphik-Regular.otf
│ │ │ ├── Graphik-RegularItalic.otf
│ │ │ ├── Graphik-Semibold.otf
│ │ │ ├── Graphik-SemiboldItalic.otf
│ │ │ ├── Graphik-Super.otf
│ │ │ ├── Graphik-SuperItalic.otf
│ │ │ ├── Graphik-Thin.otf
│ │ │ └── Graphik-ThinItalic.otf
│ │ └── Majesti-Banner/
│ │ ├── Majesti-Banner-Bold.otf
│ │ ├── Majesti-Banner-BoldItalic.otf
│ │ ├── Majesti-Banner-Book.otf
│ │ ├── Majesti-Banner-BookItalic.otf
│ │ ├── Majesti-Banner-Heavy.otf
│ │ ├── Majesti-Banner-HeavyItalic.otf
│ │ ├── Majesti-Banner-Light.otf
│ │ ├── Majesti-Banner-LightItalic.otf
│ │ ├── Majesti-Banner-Medium.otf
│ │ └── Majesti-Banner-MediumItalic.otf
│ ├── index.html
│ ├── manifest.json
│ ├── robots.txt
│ ├── scripts/
│ │ ├── bundle.js
│ │ ├── main.js
│ │ ├── vendor/
│ │ │ └── modernizr.js
│ │ └── vendor.js
│ ├── styles/
│ │ └── main.css
│ └── views/
│ ├── classes.html
│ ├── documentation.html
│ ├── mixins.html
│ └── variables.html
├── gulpfile.js
├── package.json
├── public/
│ └── sass-flexbox/
│ ├── main.css
│ └── scss/
│ ├── _grid.scss
│ ├── _visibility.scss
│ ├── main.scss
│ ├── mixins/
│ │ ├── _grid-mixins.scss
│ │ ├── _visibility-mixins.scss
│ │ └── main.scss
│ └── variables/
│ ├── _grid-variables.scss
│ └── main.scss
└── test/
├── index.html
└── spec/
└── test.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .babelrc
================================================
{
"presets": [
"es2015"
]
}
================================================
FILE: .bowerrc
================================================
{
"directory": "bower_components"
}
================================================
FILE: .csscomb.json
================================================
{
"remove-empty-rulesets": true,
"always-semicolon": true,
"color-case": "lower",
"block-indent": "\t",
"element-case": "lower",
"eof-newline": false,
"leading-zero": false,
"quotes": "single",
"sort-order-fallback": "abc",
"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,
"unitless-zero": true,
"vendor-prefix-align": true,
"sort-order": [
[
"display",
"position",
"top",
"right",
"bottom",
"left",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"flex",
"flex-basis",
"flex-grow",
"flex-direction",
"flex-order",
"flex-pack",
"flex-align",
"flex-wrap",
"align-content",
"align-items",
"align-self",
"justify-content",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"-webkit-box-sizing",
"-moz-box-sizing",
"box-sizing",
"object-fit",
"float",
"clear",
"columns",
"column-gap",
"column-fill",
"column-rule",
"column-span",
"column-count",
"column-width",
"-webkit-transform",
"-moz-transform",
"-ms-transform",
"-o-transform",
"transform",
"-webkit-transform-origin",
"-moz-transform-origin",
"-ms-transform-origin",
"-o-transform-origin",
"transform-origin",
"-webkit-transition",
"-moz-transition",
"-ms-transition",
"-o-transition",
"transition",
"-webkit-transition-delay",
"-moz-transition-delay",
"-ms-transition-delay",
"-o-transition-delay",
"transition-delay",
"-webkit-transition-timing-function",
"-moz-transition-timing-function",
"-ms-transition-timing-function",
"-o-transition-timing-function",
"transition-timing-function",
"-webkit-transition-duration",
"-moz-transition-duration",
"-ms-transition-duration",
"-o-transition-duration",
"transition-duration",
"-webkit-transition-property",
"-moz-transition-property",
"-ms-transition-property",
"-o-transition-property",
"transition-property",
"-webkit-animation",
"-moz-animation",
"-ms-animation",
"-o-animation",
"animation",
"-webkit-animation-name",
"-moz-animation-name",
"-ms-animation-name",
"-o-animation-name",
"animation-name",
"-webkit-animation-duration",
"-moz-animation-duration",
"-ms-animation-duration",
"-o-animation-duration",
"animation-duration",
"-webkit-animation-play-state",
"-moz-animation-play-state",
"-ms-animation-play-state",
"-o-animation-play-state",
"animation-play-state",
"-webkit-animation-timing-function",
"-moz-animation-timing-function",
"-ms-animation-timing-function",
"-o-animation-timing-function",
"animation-timing-function",
"-webkit-animation-delay",
"-moz-animation-delay",
"-ms-animation-delay",
"-o-animation-delay",
"animation-delay",
"-webkit-animation-iteration-count",
"-moz-animation-iteration-count",
"-ms-animation-iteration-count",
"-o-animation-iteration-count",
"animation-iteration-count",
"-webkit-animation-iteration-count",
"-moz-animation-iteration-count",
"-ms-animation-iteration-count",
"-o-animation-iteration-count",
"animation-iteration-count",
"-webkit-animation-direction",
"-moz-animation-direction",
"-ms-animation-direction",
"-o-animation-direction",
"animation-direction",
"border",
"border-top",
"border-right",
"border-bottom",
"border-left",
"border-width",
"border-top-width",
"border-right-width",
"border-bottom-width",
"border-left-width",
"-webkit-border-image",
"-moz-border-image",
"-o-border-image",
"border-image",
"-webkit-border-image-source",
"-moz-border-image-source",
"-o-border-image-source",
"border-image-source",
"-webkit-border-image-slice",
"-moz-border-image-slice",
"-o-border-image-slice",
"border-image-slice",
"-webkit-border-image-width",
"-moz-border-image-width",
"-o-border-image-width",
"border-image-width",
"-webkit-border-image-outset",
"-moz-border-image-outset",
"-o-border-image-outset",
"border-image-outset",
"-webkit-border-image-repeat",
"-moz-border-image-repeat",
"-o-border-image-repeat",
"border-image-repeat",
"border-style",
"border-top-style",
"border-right-style",
"border-bottom-style",
"border-left-style",
"-webkit-border-radius",
"-moz-border-radius",
"border-radius",
"-webkit-border-top-left-radius",
"-moz-border-radius-topleft",
"border-top-left-radius",
"-webkit-border-top-right-radius",
"-moz-border-radius-topright",
"border-top-right-radius",
"-webkit-border-bottom-left-radius",
"-moz-border-radius-bottomleft",
"border-bottom-left-radius",
"-webkit-border-bottom-right-radius",
"-moz-border-radius-bottomright",
"border-bottom-right-radius",
"border-color",
"border-top-color",
"border-right-color",
"border-bottom-color",
"border-left-color",
"outline",
"outline-color",
"outline-offset",
"outline-style",
"outline-width",
"background",
"background-color",
"background-image",
"background-repeat",
"background-position",
"background-position-x",
"-ms-background-position-x",
"background-position-y",
"-ms-background-position-y",
"-webkit-background-size",
"-moz-background-size",
"-o-background-size",
"background-size",
"background-attachment",
"-webkit-background-clip",
"-moz-background-clip",
"background-clip",
"background-origin",
"color",
"font",
"font-family",
"font-size",
"font-style",
"font-variant",
"font-weight",
"font-size-adjust",
"font-stretch",
"letter-spacing",
"line-height",
"list-style",
"list-style-type",
"list-style-image",
"list-style-position",
"text-align",
"text-decoration",
"text-indent",
"text-overflow",
"text-rendering",
"text-shadow",
"text-transform",
"text-wrap",
"-webkit-text-align-last",
"-moz-text-align-last",
"-ms-text-align-last",
"text-align-last",
"white-space",
"-ms-word-wrap",
"word-wrap",
"word-break",
"-ms-word-break",
"word-spacing",
"border-collapse",
"border-spacing",
"-webkit-box-shadow",
"-moz-box-shadow",
"box-shadow",
"caption-side",
"content",
"cursor",
"counter",
"counter-reset",
"counter-increment",
"empty-cells",
"opacity",
"overflow",
"overflow-x",
"overflow-y",
"-ms-overflow-x",
"-ms-overflow-y",
"-webkit-overflow-scrolling",
"quotes",
"table-layout",
"vertical-align",
"visibility",
"z-index",
"resize"
]
]
}
================================================
FILE: .editorconfig
================================================
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
# change these settings to your own preference
indent_style = space
indent_size = 2
# we recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
[{package,bower}.json]
indent_style = space
indent_size = 2
================================================
FILE: .eslintrc
================================================
{
"parser": "babel-eslint",
"extends": "airbnb/base",
"env": {
"node": true,
"mocha": true,
"browser": true,
"jquery": true,
"mongo": true,
"es6": true
},
"globals": {
"riot": true,
"app": true
},
"rules": {
"padded-blocks": 0,
"indent": [ 1, "tab", {
"VariableDeclarator": 4
} ],
"max-len": [ 1, 120, 2, {
"ignoreComments": true
} ],
"quote-props": [ 1, "consistent-as-needed" ],
"no-cond-assign": [ 2, "except-parens" ],
"radix": 0,
"space-infix-ops": 0,
"no-unused-vars": [ 1, {
"vars": "local",
"args": "none"
} ],
"default-case": 0,
"no-else-return": 0,
"no-param-reassign": 0,
"quotes": 0,
"no-console": 0,
"space-before-function-paren": [ 1, {
"anonymous": "always",
"named": "never"
} ]
}
}
================================================
FILE: .gitattributes
================================================
* text=auto
================================================
FILE: .jsbeautifyrc
================================================
{
"html": {
"allowed_file_extensions": [ "htm", "html", "xhtml", "shtml", "xml", "svg", "hbs", "tag" ],
"brace_style": "collapse",
"end_with_newline": false,
"indent_char": "\t",
"indent_handlebars": true,
"indent_inner_html": true,
"indent_scripts": "normal",
"indent_size": 1,
"max_preserve_newlines": 3,
"preserve_newlines": true,
"unformatted": [ "a", "span", "img", "code", "pre", "sub", "sup", "em", "strong", "b", "i", "u", "strike", "big", "small", "pre", "h1", "h2", "h3", "h4", "h5", "h6" ],
"wrap_line_length": 0
},
"css": {
"allowed_file_extensions": [ "css", "scss", "sass", "less" ],
"end_with_newline": false,
"indent_char": "\t",
"indent_size": 1,
"newline_between_rules": true,
"selector_separator": " ",
"selector_separator_newline": true
},
"js": {
"allowed_file_extensions": [ "js", "json", "jshintrc", "jsbeautifyrc", "eslintrc" ],
"brace_style": "collapse",
"break_chained_methods": false,
"e4x": false,
"end_with_newline": false,
"indent_char": "\t",
"indent_level": 0,
"indent_size": 1,
"indent_with_tabs": true,
"jslint_happy": true,
"keep_array_indentation": false,
"keep_function_indentation": false,
"max_preserve_newlines": 3,
"preserve_newlines": true,
"space_after_anon_function": true,
"space_before_conditional": true,
"space_in_empty_paren": false,
"space_in_paren": true,
"unescape_strings": false,
"wrap_line_length": 0
}
}
================================================
FILE: .tmp/fonts/Graphik/Graphik-Extralight.otf
================================================
================================================
FILE: .tmp/styles/main.css
================================================
@import url("https://fonts.googleapis.com/css?family=PT+Mono");
.row {
box-sizing: border-box;
margin: 0 auto;
width: 100%;
display: -ms-flexbox;
display: flex;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-ms-flex-direction: row;
flex-direction: row;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.row.reverse {
-ms-flex-direction: row-reverse;
flex-direction: row-reverse;
}
.row.natural-height {
-ms-flex-align: start;
align-items: flex-start;
}
.row.flex-column {
-ms-flex-direction: column;
flex-direction: column;
}
.col {
box-sizing: border-box;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-preferred-size: 0;
flex-basis: 0;
max-width: 100%;
padding: 1rem;
}
.col.reverse {
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
}
.first {
-ms-flex-order: -1;
order: -1;
}
.last {
-ms-flex-order: 1;
order: 1;
}
.align-start {
-ms-flex-item-align: start;
align-self: flex-start;
}
.align-end {
-ms-flex-item-align: end;
align-self: flex-end;
}
.align-center {
-ms-flex-item-align: center;
-ms-grid-row-align: center;
align-self: center;
}
.align-baseline {
-ms-flex-item-align: baseline;
align-self: baseline;
}
.align-stretch {
-ms-flex-item-align: stretch;
-ms-grid-row-align: stretch;
align-self: stretch;
}
.col-xs {
box-sizing: border-box;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-preferred-size: 0;
flex-basis: 0;
max-width: 100%;
padding: 1rem;
}
.col-xs-1 {
box-sizing: border-box;
-ms-flex-preferred-size: 8.3333333333%;
flex-basis: 8.3333333333%;
max-width: 8.3333333333%;
padding: 1rem;
}
.col-xs-offset-1 {
margin-left: 8.3333333333%;
}
.col-xs-2 {
box-sizing: border-box;
-ms-flex-preferred-size: 16.6666666667%;
flex-basis: 16.6666666667%;
max-width: 16.6666666667%;
padding: 1rem;
}
.col-xs-offset-2 {
margin-left: 16.6666666667%;
}
.col-xs-3 {
box-sizing: border-box;
-ms-flex-preferred-size: 25%;
flex-basis: 25%;
max-width: 25%;
padding: 1rem;
}
.col-xs-offset-3 {
margin-left: 25%;
}
.col-xs-4 {
box-sizing: border-box;
-ms-flex-preferred-size: 33.3333333333%;
flex-basis: 33.3333333333%;
max-width: 33.3333333333%;
padding: 1rem;
}
.col-xs-offset-4 {
margin-left: 33.3333333333%;
}
.col-xs-5 {
box-sizing: border-box;
-ms-flex-preferred-size: 41.6666666667%;
flex-basis: 41.6666666667%;
max-width: 41.6666666667%;
padding: 1rem;
}
.col-xs-offset-5 {
margin-left: 41.6666666667%;
}
.col-xs-6 {
box-sizing: border-box;
-ms-flex-preferred-size: 50%;
flex-basis: 50%;
max-width: 50%;
padding: 1rem;
}
.col-xs-offset-6 {
margin-left: 50%;
}
.col-xs-7 {
box-sizing: border-box;
-ms-flex-preferred-size: 58.3333333333%;
flex-basis: 58.3333333333%;
max-width: 58.3333333333%;
padding: 1rem;
}
.col-xs-offset-7 {
margin-left: 58.3333333333%;
}
.col-xs-8 {
box-sizing: border-box;
-ms-flex-preferred-size: 66.6666666667%;
flex-basis: 66.6666666667%;
max-width: 66.6666666667%;
padding: 1rem;
}
.col-xs-offset-8 {
margin-left: 66.6666666667%;
}
.col-xs-9 {
box-sizing: border-box;
-ms-flex-preferred-size: 75%;
flex-basis: 75%;
max-width: 75%;
padding: 1rem;
}
.col-xs-offset-9 {
margin-left: 75%;
}
.col-xs-10 {
box-sizing: border-box;
-ms-flex-preferred-size: 83.3333333333%;
flex-basis: 83.3333333333%;
max-width: 83.3333333333%;
padding: 1rem;
}
.col-xs-offset-10 {
margin-left: 83.3333333333%;
}
.col-xs-11 {
box-sizing: border-box;
-ms-flex-preferred-size: 91.6666666667%;
flex-basis: 91.6666666667%;
max-width: 91.6666666667%;
padding: 1rem;
}
.col-xs-offset-11 {
margin-left: 91.6666666667%;
}
.col-xs-12 {
box-sizing: border-box;
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
max-width: 100%;
padding: 1rem;
}
.col-xs-offset-12 {
margin-left: 100%;
}
.row.start-xs {
-ms-flex-pack: start;
justify-content: flex-start;
}
.row.center-xs {
-ms-flex-pack: center;
justify-content: center;
}
.row.end-xs {
-ms-flex-pack: end;
justify-content: flex-end;
}
.row.top-xs {
-ms-flex-align: start;
align-items: flex-start;
}
.row.middle-xs {
-ms-flex-align: center;
align-items: center;
}
.row.bottom-xs {
-ms-flex-align: end;
align-items: flex-end;
}
.row.around-xs {
-ms-flex-pack: distribute;
justify-content: space-around;
}
.row.between-xs {
-ms-flex-pack: justify;
justify-content: space-between;
}
.first-xs {
-ms-flex-order: -1;
order: -1;
}
.last-xs {
-ms-flex-order: 1;
order: 1;
}
@media only screen and (min-width: 41rem) {
.col-sm {
box-sizing: border-box;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-preferred-size: 0;
flex-basis: 0;
max-width: 100%;
padding: 1rem;
}
.col-sm-1 {
box-sizing: border-box;
-ms-flex-preferred-size: 8.3333333333%;
flex-basis: 8.3333333333%;
max-width: 8.3333333333%;
padding: 1rem;
}
.col-sm-offset-1 {
margin-left: 8.3333333333%;
}
.col-sm-2 {
box-sizing: border-box;
-ms-flex-preferred-size: 16.6666666667%;
flex-basis: 16.6666666667%;
max-width: 16.6666666667%;
padding: 1rem;
}
.col-sm-offset-2 {
margin-left: 16.6666666667%;
}
.col-sm-3 {
box-sizing: border-box;
-ms-flex-preferred-size: 25%;
flex-basis: 25%;
max-width: 25%;
padding: 1rem;
}
.col-sm-offset-3 {
margin-left: 25%;
}
.col-sm-4 {
box-sizing: border-box;
-ms-flex-preferred-size: 33.3333333333%;
flex-basis: 33.3333333333%;
max-width: 33.3333333333%;
padding: 1rem;
}
.col-sm-offset-4 {
margin-left: 33.3333333333%;
}
.col-sm-5 {
box-sizing: border-box;
-ms-flex-preferred-size: 41.6666666667%;
flex-basis: 41.6666666667%;
max-width: 41.6666666667%;
padding: 1rem;
}
.col-sm-offset-5 {
margin-left: 41.6666666667%;
}
.col-sm-6 {
box-sizing: border-box;
-ms-flex-preferred-size: 50%;
flex-basis: 50%;
max-width: 50%;
padding: 1rem;
}
.col-sm-offset-6 {
margin-left: 50%;
}
.col-sm-7 {
box-sizing: border-box;
-ms-flex-preferred-size: 58.3333333333%;
flex-basis: 58.3333333333%;
max-width: 58.3333333333%;
padding: 1rem;
}
.col-sm-offset-7 {
margin-left: 58.3333333333%;
}
.col-sm-8 {
box-sizing: border-box;
-ms-flex-preferred-size: 66.6666666667%;
flex-basis: 66.6666666667%;
max-width: 66.6666666667%;
padding: 1rem;
}
.col-sm-offset-8 {
margin-left: 66.6666666667%;
}
.col-sm-9 {
box-sizing: border-box;
-ms-flex-preferred-size: 75%;
flex-basis: 75%;
max-width: 75%;
padding: 1rem;
}
.col-sm-offset-9 {
margin-left: 75%;
}
.col-sm-10 {
box-sizing: border-box;
-ms-flex-preferred-size: 83.3333333333%;
flex-basis: 83.3333333333%;
max-width: 83.3333333333%;
padding: 1rem;
}
.col-sm-offset-10 {
margin-left: 83.3333333333%;
}
.col-sm-11 {
box-sizing: border-box;
-ms-flex-preferred-size: 91.6666666667%;
flex-basis: 91.6666666667%;
max-width: 91.6666666667%;
padding: 1rem;
}
.col-sm-offset-11 {
margin-left: 91.6666666667%;
}
.col-sm-12 {
box-sizing: border-box;
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
max-width: 100%;
padding: 1rem;
}
.col-sm-offset-12 {
margin-left: 100%;
}
.row.start-sm {
-ms-flex-pack: start;
justify-content: flex-start;
}
.row.center-sm {
-ms-flex-pack: center;
justify-content: center;
}
.row.end-sm {
-ms-flex-pack: end;
justify-content: flex-end;
}
.row.top-sm {
-ms-flex-align: start;
align-items: flex-start;
}
.row.middle-sm {
-ms-flex-align: center;
align-items: center;
}
.row.bottom-sm {
-ms-flex-align: end;
align-items: flex-end;
}
.row.around-sm {
-ms-flex-pack: distribute;
justify-content: space-around;
}
.row.between-sm {
-ms-flex-pack: justify;
justify-content: space-between;
}
.first-sm {
-ms-flex-order: -1;
order: -1;
}
.last-sm {
-ms-flex-order: 1;
order: 1;
}
}
@media only screen and (min-width: 65rem) {
.col-md {
box-sizing: border-box;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-preferred-size: 0;
flex-basis: 0;
max-width: 100%;
padding: 1rem;
}
.col-md-1 {
box-sizing: border-box;
-ms-flex-preferred-size: 8.3333333333%;
flex-basis: 8.3333333333%;
max-width: 8.3333333333%;
padding: 1rem;
}
.col-md-offset-1 {
margin-left: 8.3333333333%;
}
.col-md-2 {
box-sizing: border-box;
-ms-flex-preferred-size: 16.6666666667%;
flex-basis: 16.6666666667%;
max-width: 16.6666666667%;
padding: 1rem;
}
.col-md-offset-2 {
margin-left: 16.6666666667%;
}
.col-md-3 {
box-sizing: border-box;
-ms-flex-preferred-size: 25%;
flex-basis: 25%;
max-width: 25%;
padding: 1rem;
}
.col-md-offset-3 {
margin-left: 25%;
}
.col-md-4 {
box-sizing: border-box;
-ms-flex-preferred-size: 33.3333333333%;
flex-basis: 33.3333333333%;
max-width: 33.3333333333%;
padding: 1rem;
}
.col-md-offset-4 {
margin-left: 33.3333333333%;
}
.col-md-5 {
box-sizing: border-box;
-ms-flex-preferred-size: 41.6666666667%;
flex-basis: 41.6666666667%;
max-width: 41.6666666667%;
padding: 1rem;
}
.col-md-offset-5 {
margin-left: 41.6666666667%;
}
.col-md-6 {
box-sizing: border-box;
-ms-flex-preferred-size: 50%;
flex-basis: 50%;
max-width: 50%;
padding: 1rem;
}
.col-md-offset-6 {
margin-left: 50%;
}
.col-md-7 {
box-sizing: border-box;
-ms-flex-preferred-size: 58.3333333333%;
flex-basis: 58.3333333333%;
max-width: 58.3333333333%;
padding: 1rem;
}
.col-md-offset-7 {
margin-left: 58.3333333333%;
}
.col-md-8 {
box-sizing: border-box;
-ms-flex-preferred-size: 66.6666666667%;
flex-basis: 66.6666666667%;
max-width: 66.6666666667%;
padding: 1rem;
}
.col-md-offset-8 {
margin-left: 66.6666666667%;
}
.col-md-9 {
box-sizing: border-box;
-ms-flex-preferred-size: 75%;
flex-basis: 75%;
max-width: 75%;
padding: 1rem;
}
.col-md-offset-9 {
margin-left: 75%;
}
.col-md-10 {
box-sizing: border-box;
-ms-flex-preferred-size: 83.3333333333%;
flex-basis: 83.3333333333%;
max-width: 83.3333333333%;
padding: 1rem;
}
.col-md-offset-10 {
margin-left: 83.3333333333%;
}
.col-md-11 {
box-sizing: border-box;
-ms-flex-preferred-size: 91.6666666667%;
flex-basis: 91.6666666667%;
max-width: 91.6666666667%;
padding: 1rem;
}
.col-md-offset-11 {
margin-left: 91.6666666667%;
}
.col-md-12 {
box-sizing: border-box;
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
max-width: 100%;
padding: 1rem;
}
.col-md-offset-12 {
margin-left: 100%;
}
.row.start-md {
-ms-flex-pack: start;
justify-content: flex-start;
}
.row.center-md {
-ms-flex-pack: center;
justify-content: center;
}
.row.end-md {
-ms-flex-pack: end;
justify-content: flex-end;
}
.row.top-md {
-ms-flex-align: start;
align-items: flex-start;
}
.row.middle-md {
-ms-flex-align: center;
align-items: center;
}
.row.bottom-md {
-ms-flex-align: end;
align-items: flex-end;
}
.row.around-md {
-ms-flex-pack: distribute;
justify-content: space-around;
}
.row.between-md {
-ms-flex-pack: justify;
justify-content: space-between;
}
.first-md {
-ms-flex-order: -1;
order: -1;
}
.last-md {
-ms-flex-order: 1;
order: 1;
}
}
@media only screen and (min-width: 91rem) {
.col-lg {
box-sizing: border-box;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-preferred-size: 0;
flex-basis: 0;
max-width: 100%;
padding: 1rem;
}
.col-lg-1 {
box-sizing: border-box;
-ms-flex-preferred-size: 8.3333333333%;
flex-basis: 8.3333333333%;
max-width: 8.3333333333%;
padding: 1rem;
}
.col-lg-offset-1 {
margin-left: 8.3333333333%;
}
.col-lg-2 {
box-sizing: border-box;
-ms-flex-preferred-size: 16.6666666667%;
flex-basis: 16.6666666667%;
max-width: 16.6666666667%;
padding: 1rem;
}
.col-lg-offset-2 {
margin-left: 16.6666666667%;
}
.col-lg-3 {
box-sizing: border-box;
-ms-flex-preferred-size: 25%;
flex-basis: 25%;
max-width: 25%;
padding: 1rem;
}
.col-lg-offset-3 {
margin-left: 25%;
}
.col-lg-4 {
box-sizing: border-box;
-ms-flex-preferred-size: 33.3333333333%;
flex-basis: 33.3333333333%;
max-width: 33.3333333333%;
padding: 1rem;
}
.col-lg-offset-4 {
margin-left: 33.3333333333%;
}
.col-lg-5 {
box-sizing: border-box;
-ms-flex-preferred-size: 41.6666666667%;
flex-basis: 41.6666666667%;
max-width: 41.6666666667%;
padding: 1rem;
}
.col-lg-offset-5 {
margin-left: 41.6666666667%;
}
.col-lg-6 {
box-sizing: border-box;
-ms-flex-preferred-size: 50%;
flex-basis: 50%;
max-width: 50%;
padding: 1rem;
}
.col-lg-offset-6 {
margin-left: 50%;
}
.col-lg-7 {
box-sizing: border-box;
-ms-flex-preferred-size: 58.3333333333%;
flex-basis: 58.3333333333%;
max-width: 58.3333333333%;
padding: 1rem;
}
.col-lg-offset-7 {
margin-left: 58.3333333333%;
}
.col-lg-8 {
box-sizing: border-box;
-ms-flex-preferred-size: 66.6666666667%;
flex-basis: 66.6666666667%;
max-width: 66.6666666667%;
padding: 1rem;
}
.col-lg-offset-8 {
margin-left: 66.6666666667%;
}
.col-lg-9 {
box-sizing: border-box;
-ms-flex-preferred-size: 75%;
flex-basis: 75%;
max-width: 75%;
padding: 1rem;
}
.col-lg-offset-9 {
margin-left: 75%;
}
.col-lg-10 {
box-sizing: border-box;
-ms-flex-preferred-size: 83.3333333333%;
flex-basis: 83.3333333333%;
max-width: 83.3333333333%;
padding: 1rem;
}
.col-lg-offset-10 {
margin-left: 83.3333333333%;
}
.col-lg-11 {
box-sizing: border-box;
-ms-flex-preferred-size: 91.6666666667%;
flex-basis: 91.6666666667%;
max-width: 91.6666666667%;
padding: 1rem;
}
.col-lg-offset-11 {
margin-left: 91.6666666667%;
}
.col-lg-12 {
box-sizing: border-box;
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
max-width: 100%;
padding: 1rem;
}
.col-lg-offset-12 {
margin-left: 100%;
}
.row.start-lg {
-ms-flex-pack: start;
justify-content: flex-start;
}
.row.center-lg {
-ms-flex-pack: center;
justify-content: center;
}
.row.end-lg {
-ms-flex-pack: end;
justify-content: flex-end;
}
.row.top-lg {
-ms-flex-align: start;
align-items: flex-start;
}
.row.middle-lg {
-ms-flex-align: center;
align-items: center;
}
.row.bottom-lg {
-ms-flex-align: end;
align-items: flex-end;
}
.row.around-lg {
-ms-flex-pack: distribute;
justify-content: space-around;
}
.row.between-lg {
-ms-flex-pack: justify;
justify-content: space-between;
}
.first-lg {
-ms-flex-order: -1;
order: -1;
}
.last-lg {
-ms-flex-order: 1;
order: 1;
}
}
@media only screen and (min-width: 121rem) {
.col-xl {
box-sizing: border-box;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-preferred-size: 0;
flex-basis: 0;
max-width: 100%;
padding: 1rem;
}
.col-xl-1 {
box-sizing: border-box;
-ms-flex-preferred-size: 8.3333333333%;
flex-basis: 8.3333333333%;
max-width: 8.3333333333%;
padding: 1rem;
}
.col-xl-offset-1 {
margin-left: 8.3333333333%;
}
.col-xl-2 {
box-sizing: border-box;
-ms-flex-preferred-size: 16.6666666667%;
flex-basis: 16.6666666667%;
max-width: 16.6666666667%;
padding: 1rem;
}
.col-xl-offset-2 {
margin-left: 16.6666666667%;
}
.col-xl-3 {
box-sizing: border-box;
-ms-flex-preferred-size: 25%;
flex-basis: 25%;
max-width: 25%;
padding: 1rem;
}
.col-xl-offset-3 {
margin-left: 25%;
}
.col-xl-4 {
box-sizing: border-box;
-ms-flex-preferred-size: 33.3333333333%;
flex-basis: 33.3333333333%;
max-width: 33.3333333333%;
padding: 1rem;
}
.col-xl-offset-4 {
margin-left: 33.3333333333%;
}
.col-xl-5 {
box-sizing: border-box;
-ms-flex-preferred-size: 41.6666666667%;
flex-basis: 41.6666666667%;
max-width: 41.6666666667%;
padding: 1rem;
}
.col-xl-offset-5 {
margin-left: 41.6666666667%;
}
.col-xl-6 {
box-sizing: border-box;
-ms-flex-preferred-size: 50%;
flex-basis: 50%;
max-width: 50%;
padding: 1rem;
}
.col-xl-offset-6 {
margin-left: 50%;
}
.col-xl-7 {
box-sizing: border-box;
-ms-flex-preferred-size: 58.3333333333%;
flex-basis: 58.3333333333%;
max-width: 58.3333333333%;
padding: 1rem;
}
.col-xl-offset-7 {
margin-left: 58.3333333333%;
}
.col-xl-8 {
box-sizing: border-box;
-ms-flex-preferred-size: 66.6666666667%;
flex-basis: 66.6666666667%;
max-width: 66.6666666667%;
padding: 1rem;
}
.col-xl-offset-8 {
margin-left: 66.6666666667%;
}
.col-xl-9 {
box-sizing: border-box;
-ms-flex-preferred-size: 75%;
flex-basis: 75%;
max-width: 75%;
padding: 1rem;
}
.col-xl-offset-9 {
margin-left: 75%;
}
.col-xl-10 {
box-sizing: border-box;
-ms-flex-preferred-size: 83.3333333333%;
flex-basis: 83.3333333333%;
max-width: 83.3333333333%;
padding: 1rem;
}
.col-xl-offset-10 {
margin-left: 83.3333333333%;
}
.col-xl-11 {
box-sizing: border-box;
-ms-flex-preferred-size: 91.6666666667%;
flex-basis: 91.6666666667%;
max-width: 91.6666666667%;
padding: 1rem;
}
.col-xl-offset-11 {
margin-left: 91.6666666667%;
}
.col-xl-12 {
box-sizing: border-box;
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
max-width: 100%;
padding: 1rem;
}
.col-xl-offset-12 {
margin-left: 100%;
}
.row.start-xl {
-ms-flex-pack: start;
justify-content: flex-start;
}
.row.center-xl {
-ms-flex-pack: center;
justify-content: center;
}
.row.end-xl {
-ms-flex-pack: end;
justify-content: flex-end;
}
.row.top-xl {
-ms-flex-align: start;
align-items: flex-start;
}
.row.middle-xl {
-ms-flex-align: center;
align-items: center;
}
.row.bottom-xl {
-ms-flex-align: end;
align-items: flex-end;
}
.row.around-xl {
-ms-flex-pack: distribute;
justify-content: space-around;
}
.row.between-xl {
-ms-flex-pack: justify;
justify-content: space-between;
}
.first-xl {
-ms-flex-order: -1;
order: -1;
}
.last-xl {
-ms-flex-order: 1;
order: 1;
}
}
.col-gutter-lr {
padding: 0 1rem;
}
.col-no-gutter {
padding: 0;
}
.show {
display: block !important;
}
.row.show {
display: -ms-flexbox !important;
display: flex !important;
}
.hide {
display: none !important;
}
.show-xs {
display: block !important;
}
.row.show-xs {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-xs {
display: none !important;
}
@media only screen and (max-width: 40rem) {
.show-xs-only {
display: block !important;
}
.row.show-xs-only {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-xs-only {
display: none !important;
}
}
@media only screen and (min-width: 41rem) {
.show-sm {
display: block !important;
}
.row.show-sm {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-sm {
display: none !important;
}
}
@media only screen and (min-width: 41rem) and (max-width: 64rem) {
.show-sm-only {
display: block !important;
}
.row.show-sm-only {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-sm-only {
display: none !important;
}
}
@media only screen and (min-width: 65rem) {
.show-md {
display: block !important;
}
.row.show-md {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-md {
display: none !important;
}
}
@media only screen and (min-width: 65rem) and (max-width: 90rem) {
.show-md-only {
display: block !important;
}
.row.show-md-only {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-md-only {
display: none !important;
}
}
@media only screen and (min-width: 91rem) {
.show-lg {
display: block !important;
}
.row.show-lg {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-lg {
display: none !important;
}
}
@media only screen and (min-width: 91rem) and (max-width: 120rem) {
.show-lg-only {
display: block !important;
}
.row.show-lg-only {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-lg-only {
display: none !important;
}
}
@media only screen and (min-width: 121rem) {
.show-xl {
display: block !important;
}
.row.show-xl {
display: -ms-flexbox !important;
display: flex !important;
}
.hide-xl {
display: none !important;
}
}
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/* apply a natural box layout model to all elements, but allowing components to change */
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
@font-face {
font-family: "graphik-regular";
src: url(../fonts/Graphik/Graphik-Regular.otf) format("truetype");
}
@font-face {
font-family: "graphik-medium";
src: url(../fonts/Graphik/Graphik-Medium.otf) format("truetype");
}
@font-face {
font-family: "graphik-semibold";
src: url(../fonts/Graphik/Graphik-SemiBold.otf) format("truetype");
}
@font-face {
font-family: "majesti-banner-book";
src: url(../fonts/Majesti-Banner/Majesti-Banner-Book.otf) format("truetype");
}
html {
font-size: 10px;
}
body {
font-family: "graphik-regular", helvetica, sans-serif;
}
h1 {
font-family: "majesti-banner-book", serif;
font-size: 3rem;
line-height: 5.4rem;
color: #ffffff;
}
@media only screen and (min-width: 65rem) {
h1 {
font-size: 5rem;
line-height: 9rem;
}
}
@media only screen and (min-width: 91rem) {
h1 {
font-size: 7rem;
line-height: 12.6rem;
}
}
h2 {
font-family: "majesti-banner-book", serif;
font-size: 2.6rem;
line-height: 4.68rem;
color: #303030;
}
@media only screen and (min-width: 65rem) {
h2 {
font-size: 4rem;
line-height: 7.2rem;
}
}
@media only screen and (min-width: 91rem) {
h2 {
font-size: 6.6rem;
line-height: 11.88rem;
}
}
h4 {
font-family: "graphik-medium", helvetica, sans-serif;
font-size: 1.8rem;
line-height: 3.24rem;
color: #88714D;
}
@media only screen and (min-width: 91rem) {
h4 {
font-size: 2rem;
line-height: 3.6rem;
}
}
p {
margin: 0 0 1.8rem 0;
font-family: "graphik-regular", helvetica, sans-serif;
font-size: 1.6rem;
line-height: 2.88rem;
color: #303030;
}
@media only screen and (min-width: 65rem) {
p {
margin: 0 0 2rem 0;
font-size: 2rem;
line-height: 3.6rem;
}
}
@media only screen and (min-width: 91rem) {
p {
margin: 0 0 2.2rem 0;
font-size: 2.2rem;
line-height: 3.96rem;
}
}
a {
color: #a68c62;
}
a:hover {
cursor: pointer;
color: #b9a382;
}
li {
font-family: "graphik-regular", helvetica, sans-serif;
font-size: 1.8rem;
line-height: 3.24rem;
color: #303030;
}
@media only screen and (min-width: 65rem) {
li {
font-size: 2rem;
line-height: 3.6rem;
}
}
@media only screen and (min-width: 91rem) {
li {
font-size: 2.2rem;
line-height: 3.96rem;
}
}
aside, .secondary-text {
font-family: "graphik-regular", helvetica, sans-serif;
font-size: 1.4rem;
line-height: 2.52rem;
color: #88714D;
}
@media only screen and (min-width: 65rem) {
aside, .secondary-text {
font-size: 1.6rem;
line-height: 2.88rem;
}
}
@media only screen and (min-width: 91rem) {
aside, .secondary-text {
font-size: 1.8rem;
line-height: 3.24rem;
}
}
img {
width: auto;
max-width: 100%;
height: auto;
}
button {
padding: 2px 14px 2px 14px;
background-color: #a68c62;
font-family: "graphik-medium", helvetica, sans-serif;
text-align: center;
border: none;
font-size: 1.4rem;
line-height: 2.52rem;
color: #ffffff;
border-radius: 0;
transition: background-color 0.2s ease-in;
transition: border 0.2s ease-in;
}
@media only screen and (min-width: 65rem) {
button {
padding: 3px 15px 3px 15px;
font-size: 1.6rem;
line-height: 2.88rem;
}
}
@media only screen and (min-width: 91rem) {
button {
padding: 5px 16px 5px 16px;
font-size: 1.8rem;
line-height: 3.24rem;
}
}
button:hover {
cursor: pointer;
background-color: #af9772;
}
.fa {
color: #ffffff;
font-size: 1.8rem;
line-height: 3.24rem;
}
@media only screen and (min-width: 65rem) {
.fa {
font-size: 2rem;
line-height: 3.6rem;
}
}
@media only screen and (min-width: 91rem) {
.fa {
font-size: 2.2rem;
line-height: 3.96rem;
}
}
h4 {
color: #ffffff;
line-height: 2.2rem;
}
@media only screen and (min-width: 41rem) {
h4 {
line-height: 2.2rem;
}
}
@media only screen and (min-width: 65rem) {
h4 {
line-height: 2.2rem;
}
}
@media only screen and (min-width: 91rem) {
h4 {
line-height: 2.2rem;
}
}
nav {
position: fixed;
top: 0;
width: 100%;
background-color: #88714D;
padding: 0.5rem 0;
}
@media only screen and (min-width: 41rem) {
nav {
padding: 0.6rem 0;
}
}
@media only screen and (min-width: 65rem) {
nav {
padding: 0.8rem 0;
}
}
nav i:hover {
cursor: pointer;
}
#menu {
display: none;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(48, 48, 48, 0.95);
text-align: center;
padding: 9.6rem 0 3rem 0;
}
@media only screen and (min-width: 41rem) {
#menu {
padding: 10rem 0 3.2rem 0;
}
}
@media only screen and (min-width: 65rem) {
#menu {
padding: 11rem 0 3.6rem 0;
}
}
@media only screen and (min-width: 91rem) {
#menu {
padding: 11.2rem 0 4rem 0;
}
}
#menu li {
font-size: 2.4rem;
line-height: 4.2rem;
}
@media only screen and (min-width: 65rem) {
#menu li {
font-size: 3rem;
line-height: 5.4rem;
}
}
@media only screen and (min-width: 91rem) {
#menu li {
font-size: 3.2rem;
line-height: 5.8rem;
}
}
#menu a {
display: block;
color: #ffffff;
text-decoration: none;
transition: all 200ms ease;
}
#menu a:hover {
background-color: #2c2c2c;
}
#menu .close {
position: absolute;
top: 2rem;
right: 3rem;
cursor: pointer;
font-size: 2.2rem;
line-height: 3.96rem;
}
@media only screen and (min-width: 65rem) {
#menu .close {
font-size: 2.6rem;
line-height: 4.68rem;
}
}
@media only screen and (min-width: 91rem) {
#menu .close {
font-size: 2.8rem;
line-height: 5.04rem;
}
}
header {
background-color: #303030;
padding: 9.6rem 0 3rem 0;
}
@media only screen and (min-width: 41rem) {
header {
padding: 10rem 0 3.2rem 0;
}
}
@media only screen and (min-width: 65rem) {
header {
padding: 11rem 0 3.6rem 0;
}
}
@media only screen and (min-width: 91rem) {
header {
padding: 11.2rem 0 4rem 0;
}
}
header p {
color: #ffffff;
}
footer {
background-color: #303030;
padding: 4.8rem 0;
}
@media only screen and (min-width: 41rem) {
footer {
padding: 5.4rem 0;
}
}
@media only screen and (min-width: 65rem) {
footer {
padding: 6rem 0;
}
}
@media only screen and (min-width: 91rem) {
footer {
padding: 6.6rem 0;
}
}
footer aside {
color: #ffffff;
}
section {
padding: 0 0 4.8rem 0;
}
@media only screen and (min-width: 41rem) {
section {
padding: 0 0 5.4rem 0;
}
}
@media only screen and (min-width: 65rem) {
section {
padding: 0 0 6rem 0;
}
}
@media only screen and (min-width: 91rem) {
section {
padding: 0 0 6.6rem 0;
}
}
section:first-of-type {
padding: 4.8rem 0;
}
@media only screen and (min-width: 41rem) {
section:first-of-type {
padding: 5.4rem 0;
}
}
@media only screen and (min-width: 65rem) {
section:first-of-type {
padding: 6rem 0;
}
}
@media only screen and (min-width: 91rem) {
section:first-of-type {
padding: 6.6rem 0;
}
}
nav ul li {
color: #ffffff;
}
.content-block {
padding: 0 3.2rem;
}
@media only screen and (min-width: 41rem) {
.content-block {
padding: 0 3.6rem;
}
}
@media only screen and (min-width: 65rem) {
.content-block {
padding: 0 4rem;
}
}
@media only screen and (min-width: 91rem) {
.content-block {
padding: 0 4.4rem;
}
}
.features-list {
list-style: square;
margin: 0 0 3.2rem 0;
}
@media only screen and (min-width: 41rem) {
.features-list {
margin: 0 0 3.6rem 0;
}
}
@media only screen and (min-width: 65rem) {
.features-list {
margin: 0 0 4rem 0;
}
}
@media only screen and (min-width: 91rem) {
.features-list {
margin: 0 0 4.4rem 0;
}
}
.features-list li {
margin: 0 0 0 1.6rem;
color: #ffffff;
font-size: 1.4rem;
line-height: 2.52rem;
}
@media only screen and (min-width: 65rem) {
.features-list li {
display: inline-block;
margin: 0 0 0 0.8rem;
font-size: 1.6rem;
line-height: 2.88rem;
}
}
@media only screen and (min-width: 91rem) {
.features-list li {
font-size: 1.8rem;
line-height: 3.24rem;
}
}
.example {
padding: 0 3.2rem;
}
@media only screen and (min-width: 41rem) {
.example {
padding: 0 3.6rem;
}
}
@media only screen and (min-width: 65rem) {
.example {
padding: 0 4rem;
}
}
@media only screen and (min-width: 91rem) {
.example {
padding: 0 4.4rem;
}
}
.example p {
padding-top: 1em;
color: #ffffff;
}
.example h4, .example p {
font-size: 1.4rem;
line-height: 2.52rem;
}
@media only screen and (min-width: 65rem) {
.example h4, .example p {
font-size: 1.7rem;
line-height: 3.06rem;
}
}
@media only screen and (min-width: 91rem) {
.example h4, .example p {
font-size: 1.9rem;
line-height: 3.42rem;
}
}
.example > div {
min-height: 40px;
margin-bottom: 1.8rem;
}
.example > div h4, .example > div p {
padding: 0;
margin: 0;
font-size: 1.4rem;
line-height: 2rem;
}
@media only screen and (min-width: 65rem) {
.example > div h4, .example > div p {
font-size: 1.7rem;
}
}
@media only screen and (min-width: 91rem) {
.example > div h4, .example > div p {
font-size: 1.9rem;
}
}
.example > div .row {
padding: 0;
}
.example > div > div {
height: 100%;
}
.example > div > div > div {
padding-left: 1rem;
}
.example > div:nth-of-type(5n + 1) {
background-color: #EA526F;
}
.example > div:nth-of-type(5n + 2) {
background-color: #63474D;
}
.example > div:nth-of-type(5n + 3) {
background-color: #FFC972;
}
.example > div:nth-of-type(5n + 4) {
background-color: #7C9EB2;
}
.example > div:nth-of-type(5n + 5) {
background-color: #585B56;
}
.example > div > div > div:nth-of-type(5n + 1) {
background-color: #f07f95;
}
.example > div > div > div:nth-of-type(5n + 2) {
background-color: #815c64;
}
.example > div > div > div:nth-of-type(5n + 3) {
background-color: #937D64;
}
.example > div > div > div:nth-of-type(5n + 4) {
background-color: #9cb6c5;
}
.example > div > div > div:nth-of-type(5n + 5) {
background-color: #71756f;
}
.code-block {
margin-bottom: 3.2rem;
padding: 1.6rem;
background-color: #F5F5F5;
}
@media only screen and (min-width: 41rem) {
.code-block {
margin-bottom: 3.6rem;
padding: 1.8rem;
}
}
@media only screen and (min-width: 65rem) {
.code-block {
margin-bottom: 4rem;
padding: 2rem;
}
}
@media only screen and (min-width: 91rem) {
.code-block {
margin-bottom: 4.4rem;
padding: 2.2rem;
}
}
.code-block p {
margin: 0;
font-family: "PT Mono", monospace;
color: #4f4f4f;
font-size: 1.4rem;
line-height: 2.52rem;
}
@media only screen and (min-width: 65rem) {
.code-block p {
font-size: 1.7rem;
line-height: 3.06rem;
}
}
@media only screen and (min-width: 91rem) {
.code-block p {
font-size: 1.9rem;
line-height: 3.42rem;
}
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9mb250cy5zY3NzIiwibGlicmFyeS9fZ3JpZC5zY3NzIiwibGlicmFyeS9taXhpbnMvX2dyaWQtbWl4aW5zLnNjc3MiLCJsaWJyYXJ5L3ZhcmlhYmxlcy9fZ3JpZC12YXJpYWJsZXMuc2NzcyIsIm1haW4uY3NzIiwibGlicmFyeS9fdmlzaWJpbGl0eS5zY3NzIiwiX3Jlc2V0LnNjc3MiLCJfYm9yZGVyLWJveC1hbGwuc2NzcyIsIl9lbGVtZW50LWRlZmF1bHRzLnNjc3MiLCJ2YXJpYWJsZXMvX3RleHQtdmFyaWFibGVzLnNjc3MiLCJtaXhpbnMvX3RleHQtbWl4aW5zLnNjc3MiLCJ2YXJpYWJsZXMvX2NvbG9yLXZhcmlhYmxlcy5zY3NzIiwiX3VuaXF1ZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtEQUFZO0FDSVo7RUNIRSx1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLFlBQVk7RUFFWixxQkFBcUI7RUFDckIsY0FBYztFQUNkLG1CQUFlO01BQWYsZUFBZTtFQUNmLHdCQUFvQjtNQUFwQixvQkFBb0I7RUFDcEIsb0JBQWdCO01BQWhCLGdCQUFnQjtDREhqQjs7QUFFRDtFQ1VFLGdDQUE0QjtNQUE1Qiw0QkFBNEI7Q0RSN0I7O0FBRUQ7RUNVRSxzQkFBd0I7TUFBeEIsd0JBQXdCO0NEUnpCOztBQUVEO0VDVUUsMkJBQXVCO01BQXZCLHVCQUF1QjtDRFJ4Qjs7QUFFRDtFQzJCSSx1QkFBdUI7RUFDdkIscUJBQWE7TUFBYixhQUFhO0VBQ2IsMkJBQWM7TUFBZCxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGNDM0NTO0NGY1o7O0FBRUQ7RUNNRSxtQ0FBK0I7TUFBL0IsK0JBQStCO0NESmhDOztBQUVEO0VBQ0UsbUJBQVU7TUFBVixVQUFVO0NBQ1g7O0FBRUQ7RUFDRSxrQkFBUztNQUFULFNBQVM7Q0FDVjs7QUFFRDtFQUNFLDJCQUF1QjtNQUF2Qix1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSx5QkFBcUI7TUFBckIscUJBQXFCO0NBQ3RCOztBQUVE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RWxCRSxnQkZ1QnFDO0lFdEJyQyxvQkFBcUM7R0YyQnRDO0NKc2pDQTs7QUl6akNDO0VBUEY7SUVsQkUsa0JGMEJ1QztJRXpCdkMsc0JBQXFDO0dGMkJ0QztDSjZqQ0E7O0FJM2pDRDtFQUNFLHFEQy9Cc0Q7RUNBdEQsa0JGZ0NxQztFRS9CckMscUJBQXFDO0VGZ0NyQyxlRzlCYztDSGtDZjs7QUFIQztFQUpGO0lFOUJFLGdCRm1DcUM7SUVsQ3JDLG9CQUFxQztHRm9DdEM7Q0pra0NBOztBSWhrQ0Q7RUFDRSxxQkFBcUI7RUFDckIsc0RDMUNnRDtFQ0NoRCxrQkYwQ3FDO0VFekNyQyxxQkFBcUM7RUYwQ3JDLGVHMUNpQjtDSG1EbEI7O0FBUkM7RUFMRjtJQU1JLG1CQUFtQjtJRTdDckIsZ0JGOENxQztJRTdDckMsb0JBQXFDO0dGbUR0QztDSm1rQ0E7O0FJdmtDQztFQVRGO0lBVUkscUJBQXFCO0lFakR2QixrQkZrRHVDO0lFakR2QyxxQkFBcUM7R0ZtRHRDO0NKMmtDQTs7QUl6a0NEO0VBQ0UsZUFBYztDQUtmOztBQU5EO0VBR0ksZ0JBQWdCO0VBQ2hCLGVBQWM7Q0FDZjs7QUFHSDtFQUNFLHNEQ2hFZ0Q7RUNDaEQsa0JGZ0VxQztFRS9EckMscUJBQXFDO0VGZ0VyQyxlR2hFaUI7Q0h1RWxCOztBQU5DO0VBSkY7SUU5REUsZ0JGbUVxQztJRWxFckMsb0JBQXFDO0dGdUV0QztDSjhrQ0E7O0FJamxDQztFQVBGO0lFOURFLGtCRnNFdUM7SUVyRXZDLHFCQUFxQztHRnVFdEM7Q0pxbENBOztBSW5sQ0Q7RUFDRSxzREM1RWdEO0VDQ2hELGtCRjRFcUM7RUUzRXJDLHFCQUFxQztFRjRFckMsZUcxRWM7Q0hpRmY7O0FBTkM7RUFKRjtJRTFFRSxrQkYrRXVDO0lFOUV2QyxxQkFBcUM7R0ZtRnRDO0NKdWxDQTs7QUkxbENDO0VBUEY7SUUxRUUsa0JGa0Z1QztJRWpGdkMscUJBQXFDO0dGbUZ0QztDSjhsQ0E7O0FJNWxDRDtFQUNFLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsYUFBYTtDQUNkOztBQUVEO0VBQ0Us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SSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0dBY25CO0NSazRDQTs7QVE5NUNEO0VBaUJJLFVBQVU7RUFDVixrQ0hsUzBCO0VHbVMxQixlQUFjO0VGclNoQixrQkVzU3VDO0VGclN2QyxxQkFBcUM7Q0U0U3BDOztBQU5DO0VBckJKO0lGbFJFLGtCRXdTeUM7SUZ2U3pDLHFCQUFxQztHRTRTcEM7Q1JrNUNGOztBUXI1Q0c7RUF4Qko7SUZsUkUsa0JFMlN5QztJRjFTekMscUJBQXFDO0dFNFNwQztDUnk1Q0YiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVBUK01vbm8nKTtcblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiZ3JhcGhpay1yZWd1bGFyXCI7XG4gICAgc3JjOiB1cmwoLi4vZm9udHMvR3JhcGhpay9HcmFwaGlrLVJlZ3VsYXIub3RmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiZ3JhcGhpay1tZWRpdW1cIjtcbiAgICBzcmM6IHVybCguLi9mb250cy9HcmFwaGlrL0dyYXBoaWstTWVkaXVtLm90ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcImdyYXBoaWstc2VtaWJvbGRcIjtcbiAgICBzcmM6IHVybCguLi9mb250cy9HcmFwaGlrL0dyYXBoaWstU2VtaUJvbGQub3RmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwibWFqZXN0aS1iYW5uZXItYm9va1wiO1xuICAgIHNyYzogdXJsKC4uL2ZvbnRzL01hamVzdGktQmFubmVyL01hamVzdGktQmFubmVyLUJvb2sub3RmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbiIsIi8vIENyZWRzIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9rcmlzdG9mZXJqb3NlcGgvZmxleGJveGdyaWRcbi8vIE5vIGd1dHRlcnNcbi8vIE5vIHRleHQgYWxpZ25tZW50IHdpdGgganVzdGlmaWVkIGNvbnRhaW5lciBjbGFzc2VzIChjZW50ZXIteHMsIGZvciBleGFtcGxlKVxuXG4ucm93IHtcbiAgQGluY2x1ZGUgcm93KCk7XG59XG5cbi5yb3cucmV2ZXJzZSB7XG4gIEBpbmNsdWRlIHJvdy1yZXZlcnNlKCk7XG59XG5cbi5yb3cubmF0dXJhbC1oZWlnaHQge1xuICBAaW5jbHVkZSByb3ctbmF0dXJhbC1oZWlnaHQoKTtcbn1cblxuLnJvdy5mbGV4LWNvbHVtbiB7XG4gIEBpbmNsdWRlIHJvdy1mbGV4LWNvbHVtbigpO1xufVxuXG4uY29sIHtcbiAgQGluY2x1ZGUgY29sKCk7XG59XG5cbi5jb2wucmV2ZXJzZSB7XG4gIEBpbmNsdWRlIGNvbC1yZXZlcnNlKCk7XG59XG5cbi5maXJzdCB7XG4gIG9yZGVyOiAtMTtcbn1cblxuLmxhc3Qge1xuICBvcmRlcjogMTtcbn1cblxuLmFsaWduLXN0YXJ0IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLmFsaWduLWVuZCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4uYWxpZ24tY2VudGVyIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG4uYWxpZ24tYmFzZWxpbmUge1xuICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbn1cblxuLmFsaWduLXN0cmV0Y2gge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG5cbi8vIE1peGluIHRvIHJ1biBpbnNpZGUgb2YgZm9yIGxvb3AgLSBjcmVhdGVzIGNvbC9icmVha3BvaW50IGNsYXNzZXMgKiBOb3QgZm9yIGRldmVsb3BlciB1c2UgKlxuQG1peGluIGNvbC1mYWN0b3J5KCR0aGlzUHJlZml4KSB7XG4gIC5jb2wtI3skdGhpc1ByZWZpeH0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6ICRndXR0ZXI7XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAuY29sLSN7JHRoaXNQcmVmaXh9LSN7JGl9IHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlIC8gJGdyaWQtY29sdW1ucyAqICRpO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlIC8gJGdyaWQtY29sdW1ucyAqICRpO1xuICAgICAgcGFkZGluZzogJGd1dHRlcjtcbiAgICB9XG4gICAgLmNvbC0jeyR0aGlzUHJlZml4fS1vZmZzZXQtI3skaX0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwMCUgLyAkZ3JpZC1jb2x1bW5zICogJGk7XG4gICAgfVxuICB9XG4gIC5yb3cuc3RhcnQtI3skdGhpc1ByZWZpeH0ge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAucm93LmNlbnRlci0jeyR0aGlzUHJlZml4fSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLnJvdy5lbmQtI3skdGhpc1ByZWZpeH0ge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cbiAgLnJvdy50b3AtI3skdGhpc1ByZWZpeH0ge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5yb3cubWlkZGxlLSN7JHRoaXNQcmVmaXh9IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5yb3cuYm90dG9tLSN7JHRoaXNQcmVmaXh9IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbiAgLnJvdy5hcm91bmQtI3skdGhpc1ByZWZpeH0ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB9XG4gIC5yb3cuYmV0d2Vlbi0jeyR0aGlzUHJlZml4fSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG4gIC5maXJzdC0jeyR0aGlzUHJlZml4fSB7XG4gICAgb3JkZXI6IC0xO1xuICB9XG4gIC5sYXN0LSN7JHRoaXNQcmVmaXh9IHtcbiAgICBvcmRlcjogMTtcbiAgfVxufSAvLyBNaXhpbiB0byBydW4gaW5zaWRlIG9mIGZvciBsb29wIC0gY3JlYXRlcyBjb2wvYnJlYWtwb2ludCBjbGFzc2VzXG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRicmVha3BvaW50LXVwLXByZWZpeGVzKSB7XG4gICR0aGlzUHJlZml4OiBudGgoJGJyZWFrcG9pbnQtdXAtcHJlZml4ZXMsICRpKTtcbiAgQGlmICR0aGlzUHJlZml4ID09IFwieHNcIiB7XG4gICAgQGluY2x1ZGUgY29sLWZhY3RvcnkoJHRoaXNQcmVmaXgpO1xuICB9IEBlbHNlIGlmICR0aGlzUHJlZml4ID09IFwic21cIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tdXB9IHtcbiAgICAgIEBpbmNsdWRlIGNvbC1mYWN0b3J5KCR0aGlzUHJlZml4KTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHRoaXNQcmVmaXggPT0gXCJtZFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgICAgQGluY2x1ZGUgY29sLWZhY3RvcnkoJHRoaXNQcmVmaXgpO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkdGhpc1ByZWZpeCA9PSBcImxnXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgICBAaW5jbHVkZSBjb2wtZmFjdG9yeSgkdGhpc1ByZWZpeCk7XG4gICAgfVxuICB9IEBlbHNlIGlmICR0aGlzUHJlZml4ID09IFwieGxcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQteGwtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGNvbC1mYWN0b3J5KCR0aGlzUHJlZml4KTtcbiAgICB9XG4gIH1cbn1cblxuLmNvbC1ndXR0ZXItbHIge1xuICAgIHBhZGRpbmc6IDAgJGd1dHRlcjtcbn1cblxuLmNvbC1uby1ndXR0ZXIge1xuICAgIHBhZGRpbmc6IDA7XG59XG4iLCJAbWl4aW4gcm93KCRmdWxsLXdpZHRoOiBcImZhbHNlXCIpIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDEgYXV0bztcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICAvLyAvLyBPdmVycmlkZXMgZmxleGJveCdzIGRlZmF1bHQgYmVoYXZpb3Igb2YgbWFraW5nIGFsbCBjaGlsZHJlbiBlcXVhbCBoZWlnaHRcbiAgLy8gYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8vIElmIHRoaXMgd2FzIG5vdCBpbiBwbGFjZSBpdCB3b3VsZCByZXF1aXJlIHR3byBjbGFzc2VzIHRvIG1ha2UgYSByb3cgZnVsbCBvZiB1bmVxdWFsIGhlaWdodCBjb2x1bW5zIGFsaWduZWQgdG9wLCBtaWRkbGUsIGJvdHRvbVxuICBAaWYgdHlwZS1vZigkY29udGVudC13ZWxsLW1heC13aWR0aCkgPT0gbnVtYmVyIGFuZCAkY29udGVudC13ZWxsLW1heC13aWR0aCAhPSAwIGFuZCAkZnVsbC13aWR0aCA9PSBcImZhbHNlXCJ7XG4gICAgbWF4LXdpZHRoOiAkY29udGVudC13ZWxsLW1heC13aWR0aDtcbiAgfVxufVxuXG5AbWl4aW4gcm93LXJldmVyc2UoKSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuQG1peGluIHJvdy1uYXR1cmFsLWhlaWdodCgpIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbkBtaXhpbiByb3ctZmxleC1jb2x1bW4oKSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbkBtaXhpbiBjb2wtcmV2ZXJzZSgpIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuXG4vLyBDb25kaXRpb24gdG8gcnVuIGluc2lkZSBvZiB0aGUgY29sIG1peGluICogbm90IGZvciBkZXZlbG9wZXIgdXNlICpcbkBtaXhpbiBjb2wtY29uZGl0aW9uKCRjb2wtbnVtYmVyKSB7XG4gIEBpZiB0eXBlLW9mKCRjb2wtbnVtYmVyKSA9PSBudW1iZXIge1xuICAgIEBpZiAkY29sLW51bWJlciA+ICRncmlkLWNvbHVtbnMgb3IgJGNvbC1udW1iZXIgPT0gMCB7XG4gICAgICBAd2FybiBcIkNvbHVtbiBudW1iZXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkICgjeyRncmlkLWNvbHVtbnN9KVwiO1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUgLyAkZ3JpZC1jb2x1bW5zICogJGNvbC1udW1iZXI7XG4gICAgICBtYXgtd2lkdGg6IDEwMCUgLyAkZ3JpZC1jb2x1bW5zICogJGNvbC1udW1iZXI7XG4gICAgICBwYWRkaW5nOiAkZ3V0dGVyO1xuICAgIH1cbiAgLy8gSWYgbm8gY29sIG51bWJlciBpcyBwYXNzZWQgdGhlbiBhcmcgaXMgc2V0IHRvIFwiYXV0b1wiIGJ5IGRlZmF1bHRcbiAgLy8gXCJhdXRvXCIgbW9kZSBmaWxscyB0aGUgaG9yaXpvbnRhbCBzcGFjZSB3aXRoIGV2ZW5seSBzaXplZCBjb250YWluZXJzXG4gIH0gQGVsc2UgaWYgJGNvbC1udW1iZXIgPT0gXCJhdXRvXCIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6ICRndXR0ZXI7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiQ29sdW1uIG51bWJlciBhcmd1bWVudCBtdXN0IGVpdGhlciBiZSB0aGUgc3RyaW5nICdhdXRvJyBvciBhIG51bWJlciBncmVhdGVyIHRoYW4gMCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkICgjeyRncmlkLWNvbHVtbnN9KVwiO1xuICB9XG59IC8vIENvbmRpdGlvbiB0byBydW4gaW5zaWRlIG9mIHRoZSBjb2wgbWl4aW4gKiBub3QgZm9yIGRldmVsb3BlciB1c2UgKlxuXG5AbWl4aW4gY29sKCRicmVha3BvaW50OiBcInhzXCIsICRjb2wtbnVtYmVyOiBcImF1dG9cIikge1xuICAvLyBJZiBubyBicmVha3BvaW50IGlzIHBhc3NlZCBhbmQgYSBjb2wgbnVtYmVyIGlzIGp1c3QgdXNlIHRoZSBmaXJzdCBhcmcgYXMgdGhlIGNvbCBudW1iZXIgYW5kIGFjdCBsaWtlIHhzXG4gIEBpZiB0eXBlLW9mKCRicmVha3BvaW50KSA9PSBudW1iZXIge1xuICAgICRjb2wtbnVtYmVyOiAkYnJlYWtwb2ludDtcbiAgICBAaW5jbHVkZSBjb2wtY29uZGl0aW9uKCRjb2wtbnVtYmVyKTtcbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xuICAgIEBpbmNsdWRlIGNvbC1jb25kaXRpb24oJGNvbC1udW1iZXIpO1xuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwic21cIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tdXB9IHtcbiAgICAgIEBpbmNsdWRlIGNvbC1jb25kaXRpb24oJGNvbC1udW1iZXIpO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBAaW5jbHVkZSBjb2wtY29uZGl0aW9uKCRjb2wtbnVtYmVyKTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJsZ1wiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgICAgQGluY2x1ZGUgY29sLWNvbmRpdGlvbigkY29sLW51bWJlcik7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwieGxcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQteGwtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGNvbC1jb25kaXRpb24oJGNvbC1udW1iZXIpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJjb2wgbWl4aW4gcmVxdWlyZXMgb25lIG9mIHRoZSBleGlzdGluZyBicmVha3BvaW50IHByZWZpeGVzICgjeyRicmVha3BvaW50LXVwLXByZWZpeGVzfSlcIjtcbiAgfVxufVxuXG4vLyBDb25kaXRpb24gdG8gcnVuIGluc2lkZSBvZiB0aGUgY29sLW9mZnNldCBtaXhpbiAqIG5vdCBmb3IgZGV2ZWxvcGVyIHVzZSAqXG5AbWl4aW4gY29sLW9mZnNldC1jb25kaXRpb24oJG9mZnNldC1udW1iZXIpIHtcbiAgQGlmIHR5cGUtb2YoJG9mZnNldC1udW1iZXIpICE9IG51bWJlciB7XG4gICAgQHdhcm4gXCJDb2x1bW4gb2Zmc2V0IG51bWJlciBtdXN0IGJlIGEgbnVtYmVyIChvbmx5IGFyZyBvciBzZWNvbmQgYXJnIGluIHRoZSBjb2wgbWl4aW4pXCI7XG4gIH0gQGVsc2UgaWYgJG9mZnNldC1udW1iZXIgPT0gMCB7XG4gICAgQHdhcm4gXCJDb2x1bW4gb2Zmc2V0IG51bWJlciBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQgKCN7JGdyaWQtY29sdW1uc30pXCI7XG4gIH0gQGVsc2UgaWYgJG9mZnNldC1udW1iZXIgPiAkZ3JpZC1jb2x1bW5zIHtcbiAgICBAd2FybiBcIkNvbHVtbiBvZmZzZXQgbnVtYmVyIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCAoI3skZ3JpZC1jb2x1bW5zfSlcIjtcbiAgfSBAZWxzZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCUgLyAkZ3JpZC1jb2x1bW5zICogJG9mZnNldC1udW1iZXI7XG4gIH1cbn0gLy8gQ29uZGl0aW9uIHRvIHJ1biBpbnNpZGUgb2YgdGhlIGNvbC1vZmZzZXQgbWl4aW4gKiBub3QgZm9yIGRldmVsb3BlciB1c2UgKlxuXG5AbWl4aW4gY29sLW9mZnNldCgkYnJlYWtwb2ludDogXCJ4c1wiLCAkb2Zmc2V0LW51bWJlcjogMCkge1xuICAvLyBJZiBubyBicmVha3BvaW50IGlzIHBhc3NlZCBhbmQgYSBjb2wgbnVtYmVyIGlzIGp1c3QgdXNlIHRoZSBmaXJzdCBhcmcgYXMgdGhlIGNvbCBudW1iZXIgYW5kIGFjdCBsaWtlIHhzXG4gIEBpZiB0eXBlLW9mKCRicmVha3BvaW50KSA9PSBudW1iZXIge1xuICAgICRvZmZzZXQtbnVtYmVyOiAkYnJlYWtwb2ludDtcbiAgICBAaW5jbHVkZSBjb2wtb2Zmc2V0LWNvbmRpdGlvbigkb2Zmc2V0LW51bWJlcik7XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcbiAgICBAaW5jbHVkZSBjb2wtb2Zmc2V0LWNvbmRpdGlvbigkb2Zmc2V0LW51bWJlcik7XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJzbVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgICAgQGluY2x1ZGUgY29sLW9mZnNldC1jb25kaXRpb24oJG9mZnNldC1udW1iZXIpO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBAaW5jbHVkZSBjb2wtb2Zmc2V0LWNvbmRpdGlvbigkb2Zmc2V0LW51bWJlcik7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwibGdcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICAgIEBpbmNsdWRlIGNvbC1vZmZzZXQtY29uZGl0aW9uKCRvZmZzZXQtbnVtYmVyKTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJ4bFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC14bC11cH0ge1xuICAgICAgQGluY2x1ZGUgY29sLW9mZnNldC1jb25kaXRpb24oJG9mZnNldC1udW1iZXIpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJjb2wgbWl4aW4gcmVxdWlyZXMgb25lIG9mIHRoZSBleGlzdGluZyBicmVha3BvaW50IHByZWZpeGVzICgjeyRicmVha3BvaW50LXVwLXByZWZpeGVzfSlcIjtcbiAgfVxufVxuXG5AbWl4aW4gc3RhcnQoJGJyZWFrcG9pbnQ6IFwieHNcIikge1xuICBAaWYgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJzbVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwibGdcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJ4bFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC14bC11cH0ge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJzdGFydCBtaXhpbiBhcmcgbXVzdCBiZSBvbmUgb2YgdGhlIGV4aXN0aW5nIGJyZWFrcG9pbnRzICgjeyRicmVha3BvaW50LXVwLXByZWZpeGVzfSlcIjtcbiAgfVxufVxuXG5AbWl4aW4gY2VudGVyKCRicmVha3BvaW50OiBcInhzXCIpIHtcbiAgQGlmICRicmVha3BvaW50ID09IFwieHNcIiB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJzbVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwibWRcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcImxnXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJ4bFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC14bC11cH0ge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImNlbnRlciBtaXhpbiBhcmcgbXVzdCBiZSBvbmUgb2YgdGhlIGV4aXN0aW5nIGJyZWFrcG9pbnRzICgjeyRicmVha3BvaW50LXVwLXByZWZpeGVzfSlcIjtcbiAgfVxufVxuXG5AbWl4aW4gZW5kKCRicmVha3BvaW50OiBcInhzXCIpIHtcbiAgQGlmICRicmVha3BvaW50ID09IFwieHNcIiB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcInNtXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LXNtLXVwfSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcImxnXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcInhsXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LXhsLXVwfSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJlbmQgbWl4aW4gYXJnIG11c3QgYmUgb25lIG9mIHRoZSBleGlzdGluZyBicmVha3BvaW50cyAoI3skYnJlYWtwb2ludC11cC1wcmVmaXhlc30pXCI7XG4gIH1cbn1cblxuQG1peGluIHRvcCgkYnJlYWtwb2ludDogXCJ4c1wiKSB7XG4gIEBpZiAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwic21cIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tdXB9IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJsZ1wiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwieGxcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQteGwtdXB9IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJ0b3AgbWl4aW4gYXJnIG11c3QgYmUgb25lIG9mIHRoZSBleGlzdGluZyBicmVha3BvaW50cyAoI3skYnJlYWtwb2ludC11cC1wcmVmaXhlc30pXCI7XG4gIH1cbn1cblxuQG1peGluIG1pZGRsZSgkYnJlYWtwb2ludDogXCJ4c1wiKSB7XG4gIEBpZiAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJzbVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJtZFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJsZ1wiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJ4bFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC14bC11cH0ge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwibWlkZGxlIG1peGluIGFyZyBtdXN0IGJlIG9uZSBvZiB0aGUgZXhpc3RpbmcgYnJlYWtwb2ludHMgKCN7JGJyZWFrcG9pbnQtdXAtcHJlZml4ZXN9KVwiO1xuICB9XG59XG5cbkBtaXhpbiBib3R0b20oJGJyZWFrcG9pbnQ6IFwieHNcIikge1xuICBAaWYgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJzbVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwibGdcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJ4bFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC14bC11cH0ge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJib3R0b20gbWl4aW4gYXJnIG11c3QgYmUgb25lIG9mIHRoZSBleGlzdGluZyBicmVha3BvaW50cyAoI3skYnJlYWtwb2ludC11cC1wcmVmaXhlc30pXCI7XG4gIH1cbn1cblxuQG1peGluIGFyb3VuZCgkYnJlYWtwb2ludDogXCJ4c1wiKSB7XG4gIEBpZiAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwic21cIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tdXB9IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJsZ1wiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwieGxcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQteGwtdXB9IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJhcm91bmQgbWl4aW4gYXJnIG11c3QgYmUgb25lIG9mIHRoZSBleGlzdGluZyBicmVha3BvaW50cyAoI3skYnJlYWtwb2ludC11cC1wcmVmaXhlc30pXCI7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJGJyZWFrcG9pbnQ6IFwieHNcIikge1xuICBAaWYgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJzbVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwibGdcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJ4bFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC14bC11cH0ge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJiZXR3ZWVuIG1peGluIGFyZyBtdXN0IGJlIG9uZSBvZiB0aGUgZXhpc3RpbmcgYnJlYWtwb2ludHMgKCN7JGJyZWFrcG9pbnQtdXAtcHJlZml4ZXN9KVwiO1xuICB9XG59XG5cbkBtaXhpbiBmaXJzdCgkYnJlYWtwb2ludDogXCJ4c1wiKSB7XG4gIEBpZiAkYnJlYWtwb2ludCA9PSBcInhzXCIge1xuICAgIG9yZGVyOiAtMTtcbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcInNtXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LXNtLXVwfSB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwibWRcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJsZ1wiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgICAgb3JkZXI6IC0xO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcInhsXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LXhsLXVwfSB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImZpcnN0IG1peGluIGFyZyBtdXN0IGJlIG9uZSBvZiB0aGUgZXhpc3RpbmcgYnJlYWtwb2ludHMgKCN7JGJyZWFrcG9pbnQtdXAtcHJlZml4ZXN9KVwiO1xuICB9XG59XG5cbkBtaXhpbiBsYXN0KCRicmVha3BvaW50OiBcInhzXCIpIHtcbiAgQGlmICRicmVha3BvaW50ID09IFwieHNcIiB7XG4gICAgb3JkZXI6IDE7XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJzbVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9IEBlbHNlIGlmICRicmVha3BvaW50ID09IFwibWRcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkYnJlYWtwb2ludCA9PSBcImxnXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJGJyZWFrcG9pbnQgPT0gXCJ4bFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC14bC11cH0ge1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImxhc3QgbWl4aW4gYXJnIG11c3QgYmUgb25lIG9mIHRoZSBleGlzdGluZyBicmVha3BvaW50cyAoI3skYnJlYWtwb2ludC11cC1wcmVmaXhlc30pXCI7XG4gIH1cbn1cbiIsIi8vIEdyaWRcbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0OyAvLyBTZXQgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcblxuJHhzLW1heDogNDByZW0gIWRlZmF1bHQ7IC8vIFNldCB4cyBicmVha3BvaW50J3MgbWF4IHdpZHRoXG4kc20tbWF4OiA2NHJlbSAhZGVmYXVsdDsgLy8gU2V0IHNtIGJyZWFrcG9pbnQncyBtYXggd2lkdGhcbiRtZC1tYXg6IDkwcmVtICFkZWZhdWx0OyAvLyBTZXQgbWQgYnJlYWtwb2ludCdzIG1heCB3aWR0aFxuJGxnLW1heDogMTIwcmVtICFkZWZhdWx0OyAvLyBTZXQgbGcgYnJlYWtwb2ludCdzIG1heCB3aWR0aFxuXG4kZ3V0dGVyOiAxcmVtICFkZWZhdWx0OyAvLyBTZXQgZ3V0dGVyIHNpemVcblxuJGNvbnRlbnQtd2VsbC1tYXgtd2lkdGg6IFwibm9uZVwiICFkZWZhdWx0OyAvLyBTZXQgdGhlIG1heC13aWR0aCBvZiB0aGUgY29udGVudCB3ZWxsXG5cbiRzbS1zdGFydDogKCR4cy1tYXggKyAxKTsgLy8gR2VuZXJhdGUgc20gYnJlYWtwb2ludCdzIG1pbiB3aWR0aFxuJG1kLXN0YXJ0OiAoJHNtLW1heCArIDEpOyAvLyBHZW5lcmF0ZSBtZCBicmVha3BvaW50J3MgbWluIHdpZHRoXG4kbGctc3RhcnQ6ICgkbWQtbWF4ICsgMSk7IC8vIEdlbmVyYXRlIGxnIGJyZWFrcG9pbnQncyBtaW4gd2lkdGhcbiR4bC1zdGFydDogKCRsZy1tYXggKyAxKTsgLy8gR2VuZXJhdGUgeGwgYnJlYWtwb2ludCdzIG1pbiB3aWR0aFxuXG4vLyBCcmVha3BvaW50c1xuLy8gQ3JlYXRlIGJyZWFrcG9pbnQgcmFuZ2Ugc3RhdGVtZW50cyB0byBiZSB1c2VkIGluIG1lZGlhIHF1ZXJpZXNcbiRicmVha3BvaW50LXhzLW9ubHk6IFwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHhzLW1heH0pXCI7IC8vIDAgLT4geHMtbWF4IHJhbmdlXG4kYnJlYWtwb2ludC1zbS11cDogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skc20tc3RhcnR9KVwiOyAvLyBzbS1zdGFydCAtPiB1cCByYW5nZVxuJGJyZWFrcG9pbnQtc20tb25seTogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skc20tc3RhcnR9KSBhbmQgKG1heC13aWR0aDogI3skc20tbWF4fSlcIjsgLy8gc20tc3RhcnQgLT4gc20tbWF4IHJhbmdlXG4kYnJlYWtwb2ludC1tZC11cDogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skbWQtc3RhcnR9KVwiOyAvLyBtZC1zdGFydCAtPiB1cCByYW5nZVxuJGJyZWFrcG9pbnQtbWQtb25seTogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skbWQtc3RhcnR9KSBhbmQgKG1heC13aWR0aDogI3skbWQtbWF4fSlcIjsgLy8gbWQtc3RhcnQgLT4gbWQtbWF4IHJhbmdlXG4kYnJlYWtwb2ludC1sZy11cDogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skbGctc3RhcnR9KVwiOyAvLyBsZy1zdGFydCAtPiB1cCByYW5nZVxuJGJyZWFrcG9pbnQtbGctb25seTogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skbGctc3RhcnR9KSBhbmQgKG1heC13aWR0aDogI3skbGctbWF4fSlcIjsgLy8gbGctc3RhcnQgLT4gbGctbWF4IHJhbmdlXG4kYnJlYWtwb2ludC14bC11cDogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skeGwtc3RhcnR9KVwiOyAvLyB4bC1zdGFydCAtPiB1cCByYW5nZVxuXG4kYnJlYWtwb2ludHMtYWxsOiAoJGJyZWFrcG9pbnQteHMtb25seSwgJGJyZWFrcG9pbnQtc20tdXAsICRicmVha3BvaW50LXNtLW9ubHksICRicmVha3BvaW50LW1kLXVwLCAkYnJlYWtwb2ludC1tZC1vbmx5LCAkYnJlYWtwb2ludC1sZy11cCwgJGJyZWFrcG9pbnQtbGctb25seSwgJGJyZWFrcG9pbnQteGwtdXApO1xuJGJyZWFrcG9pbnQtdXBzOiAoJGJyZWFrcG9pbnQtc20tdXAsICRicmVha3BvaW50LW1kLXVwLCAkYnJlYWtwb2ludC1sZy11cCwgJGJyZWFrcG9pbnQteGwtdXApO1xuJGJyZWFrcG9pbnQtYWxsLXByZWZpeGVzOiAoXCJ4c1wiLCBcInhzLW9ubHlcIiwgXCJzbVwiLCBcInNtLW9ubHlcIiwgXCJtZFwiLCBcIm1kLW9ubHlcIiwgXCJsZ1wiLCBcImxnLW9ubHlcIiwgXCJ4bFwiKTtcbiRicmVha3BvaW50LXVwLXByZWZpeGVzOiAoXCJ4c1wiLCBcInNtXCIsIFwibWRcIiwgXCJsZ1wiLCBcInhsXCIpO1xuIiwiQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9UFQrTW9ub1wiKTtcbi5yb3cge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5yb3cucmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLnJvdy5uYXR1cmFsLWhlaWdodCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4ucm93LmZsZXgtY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNvbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1iYXNpczogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4uY29sLnJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG59XG5cbi5maXJzdCB7XG4gIG9yZGVyOiAtMTtcbn1cblxuLmxhc3Qge1xuICBvcmRlcjogMTtcbn1cblxuLmFsaWduLXN0YXJ0IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLmFsaWduLWVuZCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4uYWxpZ24tY2VudGVyIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG4uYWxpZ24tYmFzZWxpbmUge1xuICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbn1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xufVxuXG4uY29sLXhzIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LWJhc2lzOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbi5jb2wteHMtMSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtYmFzaXM6IDguMzMzMzMzMzMzMyU7XG4gIG1heC13aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLTIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LWJhc2lzOiAxNi42NjY2NjY2NjY3JTtcbiAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC14cy0zIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1iYXNpczogMjUlO1xuICBtYXgtd2lkdGg6IDI1JTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG5cbi5jb2wteHMtNCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtYmFzaXM6IDMzLjMzMzMzMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4uY29sLXhzLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLTUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LWJhc2lzOiA0MS42NjY2NjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC14cy02IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1iYXNpczogNTAlO1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG5cbi5jb2wteHMtNyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtYmFzaXM6IDU4LjMzMzMzMzMzMzMlO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4uY29sLXhzLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLTgge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LWJhc2lzOiA2Ni42NjY2NjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC14cy05IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1iYXNpczogNzUlO1xuICBtYXgtd2lkdGg6IDc1JTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7XG59XG5cbi5jb2wteHMtMTAge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LWJhc2lzOiA4My4zMzMzMzMzMzMzJTtcbiAgbWF4LXdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wteHMtMTEge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LWJhc2lzOiA5MS42NjY2NjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbC14cy1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wteHMtMTIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LWJhc2lzOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbi5jb2wteHMtb2Zmc2V0LTEyIHtcbiAgbWFyZ2luLWxlZnQ6IDEwMCU7XG59XG5cbi5yb3cuc3RhcnQteHMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5yb3cuY2VudGVyLXhzIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5yb3cuZW5kLXhzIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLnJvdy50b3AteHMge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLnJvdy5taWRkbGUteHMge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucm93LmJvdHRvbS14cyB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLnJvdy5hcm91bmQteHMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLnJvdy5iZXR3ZWVuLXhzIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZmlyc3QteHMge1xuICBvcmRlcjogLTE7XG59XG5cbi5sYXN0LXhzIHtcbiAgb3JkZXI6IDE7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDFyZW0pIHtcbiAgLmNvbC1zbSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXNtLTEge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogOC4zMzMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogMTYuNjY2NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTMge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLTQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTUge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogNDEuNjY2NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NjY2NjY3JTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTYge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLTcge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogNTguMzMzMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTgge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogNjYuNjY2NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTkge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLTEwIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tMTEge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogOTEuNjY2NjY2NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS0xMiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAucm93LnN0YXJ0LXNtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLnJvdy5jZW50ZXItc20ge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5yb3cuZW5kLXNtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB9XG4gIC5yb3cudG9wLXNtIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuICAucm93Lm1pZGRsZS1zbSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICAucm93LmJvdHRvbS1zbSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICB9XG4gIC5yb3cuYXJvdW5kLXNtIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgfVxuICAucm93LmJldHdlZW4tc20ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuICAuZmlyc3Qtc20ge1xuICAgIG9yZGVyOiAtMTtcbiAgfVxuICAubGFzdC1zbSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICAuY29sLW1kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtbWQtMSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtMiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY2NjY2NjclO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtbWQtNCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtNSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA0MS42NjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtNiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbWQtNyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA1OC4zMzMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtOCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA2Ni42NjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtOSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbWQtMTAge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogODMuMzMzMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMzMzMzMzJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC0xMSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA5MS42NjY2NjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTEyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5yb3cuc3RhcnQtbWQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAucm93LmNlbnRlci1tZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgLnJvdy5lbmQtbWQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cbiAgLnJvdy50b3AtbWQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5yb3cubWlkZGxlLW1kIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5yb3cuYm90dG9tLW1kIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbiAgLnJvdy5hcm91bmQtbWQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB9XG4gIC5yb3cuYmV0d2Vlbi1tZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG4gIC5maXJzdC1tZCB7XG4gICAgb3JkZXI6IC0xO1xuICB9XG4gIC5sYXN0LW1kIHtcbiAgICBvcmRlcjogMTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIC5jb2wtbGcge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1sZy0xIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDguMzMzMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy0yIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy0zIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1sZy00IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy01IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDQxLjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy02IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1sZy03IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy04IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy05IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1sZy0xMCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA4My4zMzMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTExIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMTIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLnJvdy5zdGFydC1sZyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5yb3cuY2VudGVyLWxnIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAucm93LmVuZC1sZyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuICAucm93LnRvcC1sZyB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLnJvdy5taWRkbGUtbGcge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLnJvdy5ib3R0b20tbGcge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuICAucm93LmFyb3VuZC1sZyB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIH1cbiAgLnJvdy5iZXR3ZWVuLWxnIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLmZpcnN0LWxnIHtcbiAgICBvcmRlcjogLTE7XG4gIH1cbiAgLmxhc3QtbGcge1xuICAgIG9yZGVyOiAxO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxcmVtKSB7XG4gIC5jb2wteGwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC14bC0xIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDguMzMzMzMzMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzMzMzMzMlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC14bC1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC14bC0yIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXhsLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC0zIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wteGwtb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC14bC00IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXhsLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC14bC01IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDQxLjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXhsLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC02IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wteGwtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC14bC03IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMzMzMzMyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXhsLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC14bC04IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjY2NjY2NyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXhsLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC14bC05IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5jb2wteGwtb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC14bC0xMCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LWJhc2lzOiA4My4zMzMzMzMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbC14bC1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXhsLTExIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NjY2NjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjY2NjY2NyU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXhsLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wteGwtMTIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxuICAuY29sLXhsLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLnJvdy5zdGFydC14bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5yb3cuY2VudGVyLXhsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAucm93LmVuZC14bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuICAucm93LnRvcC14bCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLnJvdy5taWRkbGUteGwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLnJvdy5ib3R0b20teGwge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuICAucm93LmFyb3VuZC14bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIH1cbiAgLnJvdy5iZXR3ZWVuLXhsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLmZpcnN0LXhsIHtcbiAgICBvcmRlcjogLTE7XG4gIH1cbiAgLmxhc3QteGwge1xuICAgIG9yZGVyOiAxO1xuICB9XG59XG5cbi5jb2wtZ3V0dGVyLWxyIHtcbiAgcGFkZGluZzogMCAxcmVtO1xufVxuXG4uY29sLW5vLWd1dHRlciB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLnJvdy5zaG93IHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbn1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zaG93LXhzIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLnJvdy5zaG93LXhzIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbn1cblxuLmhpZGUteHMge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDByZW0pIHtcbiAgLnNob3cteHMtb25seSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAucm93LnNob3cteHMtb25seSB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmhpZGUteHMtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDFyZW0pIHtcbiAgLnNob3ctc20ge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy5zaG93LXNtIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuaGlkZS1zbSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDFyZW0pIGFuZCAobWF4LXdpZHRoOiA2NHJlbSkge1xuICAuc2hvdy1zbS1vbmx5IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3cuc2hvdy1zbS1vbmx5IHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuaGlkZS1zbS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICAuc2hvdy1tZCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAucm93LnNob3ctbWQge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5oaWRlLW1kIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkgYW5kIChtYXgtd2lkdGg6IDkwcmVtKSB7XG4gIC5zaG93LW1kLW9ubHkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy5zaG93LW1kLW9ubHkge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5oaWRlLW1kLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIC5zaG93LWxnIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC5yb3cuc2hvdy1sZyB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmhpZGUtbGcge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSBhbmQgKG1heC13aWR0aDogMTIwcmVtKSB7XG4gIC5zaG93LWxnLW9ubHkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy5zaG93LWxnLW9ubHkge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5oaWRlLWxnLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMXJlbSkge1xuICAuc2hvdy14bCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAucm93LnNob3cteGwge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5oaWRlLXhsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC9cbiAgIHYyLjAgfCAyMDExMDEyNlxuICAgTGljZW5zZTogbm9uZSAocHVibGljIGRvbWFpbilcbiovXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udDogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxub2wsIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTtcbn1cblxuYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG5xOmJlZm9yZSwgcTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBjb250ZW50OiBub25lO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG4vKiBhcHBseSBhIG5hdHVyYWwgYm94IGxheW91dCBtb2RlbCB0byBhbGwgZWxlbWVudHMsIGJ1dCBhbGxvd2luZyBjb21wb25lbnRzIHRvIGNoYW5nZSAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImdyYXBoaWstcmVndWxhclwiO1xuICBzcmM6IHVybCguLi9mb250cy9HcmFwaGlrL0dyYXBoaWstUmVndWxhci5vdGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiZ3JhcGhpay1tZWRpdW1cIjtcbiAgc3JjOiB1cmwoLi4vZm9udHMvR3JhcGhpay9HcmFwaGlrLU1lZGl1bS5vdGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiZ3JhcGhpay1zZW1pYm9sZFwiO1xuICBzcmM6IHVybCguLi9mb250cy9HcmFwaGlrL0dyYXBoaWstU2VtaUJvbGQub3RmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIm1hamVzdGktYmFubmVyLWJvb2tcIjtcbiAgc3JjOiB1cmwoLi4vZm9udHMvTWFqZXN0aS1CYW5uZXIvTWFqZXN0aS1CYW5uZXItQm9vay5vdGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiZ3JhcGhpay1yZWd1bGFyXCIsIGhlbHZldGljYSwgc2Fucy1zZXJpZjtcbn1cblxuaDEge1xuICBmb250LWZhbWlseTogXCJtYWplc3RpLWJhbm5lci1ib29rXCIsIHNlcmlmO1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiA1LjRyZW07XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1cmVtKSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDlyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MXJlbSkge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiA3cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMi42cmVtO1xuICB9XG59XG5cbmgyIHtcbiAgZm9udC1mYW1pbHk6IFwibWFqZXN0aS1iYW5uZXItYm9va1wiLCBzZXJpZjtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiA0LjY4cmVtO1xuICBjb2xvcjogIzMwMzAzMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICBoMiB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiA3LjJyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MXJlbSkge1xuICBoMiB7XG4gICAgZm9udC1zaXplOiA2LjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDExLjg4cmVtO1xuICB9XG59XG5cbmg0IHtcbiAgZm9udC1mYW1pbHk6IFwiZ3JhcGhpay1tZWRpdW1cIiwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDMuMjRyZW07XG4gIGNvbG9yOiAjODg3MTREO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMuNnJlbTtcbiAgfVxufVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMS44cmVtIDA7XG4gIGZvbnQtZmFtaWx5OiBcImdyYXBoaWstcmVndWxhclwiLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMi44OHJlbTtcbiAgY29sb3I6ICMzMDMwMzA7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjVyZW0pIHtcbiAgcCB7XG4gICAgbWFyZ2luOiAwIDAgMnJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMy42cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTFyZW0pIHtcbiAgcCB7XG4gICAgbWFyZ2luOiAwIDAgMi4ycmVtIDA7XG4gICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMuOTZyZW07XG4gIH1cbn1cblxuYSB7XG4gIGNvbG9yOiAjYTY4YzYyO1xufVxuXG5hOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogI2I5YTM4Mjtcbn1cblxubGkge1xuICBmb250LWZhbWlseTogXCJncmFwaGlrLXJlZ3VsYXJcIiwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDMuMjRyZW07XG4gIGNvbG9yOiAjMzAzMDMwO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1cmVtKSB7XG4gIGxpIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMuNnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIGxpIHtcbiAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMy45NnJlbTtcbiAgfVxufVxuXG5hc2lkZSwgLnNlY29uZGFyeS10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFwiZ3JhcGhpay1yZWd1bGFyXCIsIGhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjUycmVtO1xuICBjb2xvcjogIzg4NzE0RDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICBhc2lkZSwgLnNlY29uZGFyeS10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi44OHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIGFzaWRlLCAuc2Vjb25kYXJ5LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzLjI0cmVtO1xuICB9XG59XG5cbmltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMnB4IDE0cHggMnB4IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhNjhjNjI7XG4gIGZvbnQtZmFtaWx5OiBcImdyYXBoaWstbWVkaXVtXCIsIGhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMi41MnJlbTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLWluO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1cmVtKSB7XG4gIGJ1dHRvbiB7XG4gICAgcGFkZGluZzogM3B4IDE1cHggM3B4IDE1cHg7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuODhyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MXJlbSkge1xuICBidXR0b24ge1xuICAgIHBhZGRpbmc6IDVweCAxNnB4IDVweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzLjI0cmVtO1xuICB9XG59XG5cbmJ1dHRvbjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FmOTc3Mjtcbn1cblxuLmZhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMy4yNHJlbTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICAuZmEge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMy42cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTFyZW0pIHtcbiAgLmZhIHtcbiAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMy45NnJlbTtcbiAgfVxufVxuXG5oNCB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBsaW5lLWhlaWdodDogMi4ycmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxcmVtKSB7XG4gIGg0IHtcbiAgICBsaW5lLWhlaWdodDogMi4ycmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjVyZW0pIHtcbiAgaDQge1xuICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MXJlbSkge1xuICBoNCB7XG4gICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcbiAgfVxufVxuXG5uYXYge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODcxNEQ7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxcmVtKSB7XG4gIG5hdiB7XG4gICAgcGFkZGluZzogMC42cmVtIDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICBuYXYge1xuICAgIHBhZGRpbmc6IDAuOHJlbSAwO1xuICB9XG59XG5cbm5hdiBpOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ4LCA0OCwgNDgsIDAuOTUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDkuNnJlbSAgMCAzcmVtIDA7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDFyZW0pIHtcbiAgI21lbnUge1xuICAgIHBhZGRpbmc6IDEwcmVtIDAgMy4ycmVtIDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICAjbWVudSB7XG4gICAgcGFkZGluZzogMTFyZW0gMCAzLjZyZW0gMDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gICNtZW51IHtcbiAgICBwYWRkaW5nOiAxMS4ycmVtIDAgNHJlbSAwO1xuICB9XG59XG5cbiNtZW51IGxpIHtcbiAgZm9udC1zaXplOiAyLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiA0LjJyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjVyZW0pIHtcbiAgI21lbnUgbGkge1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBsaW5lLWhlaWdodDogNS40cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTFyZW0pIHtcbiAgI21lbnUgbGkge1xuICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiA1LjhyZW07XG4gIH1cbn1cblxuI21lbnUgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTtcbn1cblxuI21lbnUgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzJjMmM7XG59XG5cbiNtZW51IC5jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycmVtO1xuICByaWdodDogM3JlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDIuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDMuOTZyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjVyZW0pIHtcbiAgI21lbnUgLmNsb3NlIHtcbiAgICBmb250LXNpemU6IDIuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogNC42OHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gICNtZW51IC5jbG9zZSB7XG4gICAgZm9udC1zaXplOiAyLjhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDUuMDRyZW07XG4gIH1cbn1cblxuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzMDtcbiAgcGFkZGluZzogOS42cmVtICAwIDNyZW0gMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MXJlbSkge1xuICBoZWFkZXIge1xuICAgIHBhZGRpbmc6IDEwcmVtIDAgMy4ycmVtIDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICBoZWFkZXIge1xuICAgIHBhZGRpbmc6IDExcmVtIDAgMy42cmVtIDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MXJlbSkge1xuICBoZWFkZXIge1xuICAgIHBhZGRpbmc6IDExLjJyZW0gMCA0cmVtIDA7XG4gIH1cbn1cblxuaGVhZGVyIHAge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzMDtcbiAgcGFkZGluZzogNC44cmVtIDA7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDFyZW0pIHtcbiAgZm9vdGVyIHtcbiAgICBwYWRkaW5nOiA1LjRyZW0gMDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1cmVtKSB7XG4gIGZvb3RlciB7XG4gICAgcGFkZGluZzogNnJlbSAwO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTFyZW0pIHtcbiAgZm9vdGVyIHtcbiAgICBwYWRkaW5nOiA2LjZyZW0gMDtcbiAgfVxufVxuXG5mb290ZXIgYXNpZGUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuc2VjdGlvbiB7XG4gIHBhZGRpbmc6IDAgMCA0LjhyZW0gMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MXJlbSkge1xuICBzZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwIDAgNS40cmVtIDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICBzZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwIDAgNnJlbSAwO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTFyZW0pIHtcbiAgc2VjdGlvbiB7XG4gICAgcGFkZGluZzogMCAwIDYuNnJlbSAwO1xuICB9XG59XG5cbnNlY3Rpb246Zmlyc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmc6IDQuOHJlbSAwO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxcmVtKSB7XG4gIHNlY3Rpb246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZzogNS40cmVtIDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICBzZWN0aW9uOmZpcnN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmc6IDZyZW0gMDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIHNlY3Rpb246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZzogNi42cmVtIDA7XG4gIH1cbn1cblxubmF2IHVsIGxpIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5jb250ZW50LWJsb2NrIHtcbiAgcGFkZGluZzogMCAzLjJyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDFyZW0pIHtcbiAgLmNvbnRlbnQtYmxvY2sge1xuICAgIHBhZGRpbmc6IDAgMy42cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjVyZW0pIHtcbiAgLmNvbnRlbnQtYmxvY2sge1xuICAgIHBhZGRpbmc6IDAgNHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIC5jb250ZW50LWJsb2NrIHtcbiAgICBwYWRkaW5nOiAwIDQuNHJlbTtcbiAgfVxufVxuXG4uZmVhdHVyZXMtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IHNxdWFyZTtcbiAgbWFyZ2luOiAwIDAgMy4ycmVtIDA7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDFyZW0pIHtcbiAgLmZlYXR1cmVzLWxpc3Qge1xuICAgIG1hcmdpbjogMCAwIDMuNnJlbSAwO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjVyZW0pIHtcbiAgLmZlYXR1cmVzLWxpc3Qge1xuICAgIG1hcmdpbjogMCAwIDRyZW0gMDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIC5mZWF0dXJlcy1saXN0IHtcbiAgICBtYXJnaW46IDAgMCA0LjRyZW0gMDtcbiAgfVxufVxuXG4uZmVhdHVyZXMtbGlzdCBsaSB7XG4gIG1hcmdpbjogMCAwIDAgMS42cmVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjUycmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1cmVtKSB7XG4gIC5mZWF0dXJlcy1saXN0IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgMCAwLjhyZW07XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuODhyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MXJlbSkge1xuICAuZmVhdHVyZXMtbGlzdCBsaSB7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMuMjRyZW07XG4gIH1cbn1cblxuLmV4YW1wbGUge1xuICBwYWRkaW5nOiAwIDMuMnJlbTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MXJlbSkge1xuICAuZXhhbXBsZSB7XG4gICAgcGFkZGluZzogMCAzLjZyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICAuZXhhbXBsZSB7XG4gICAgcGFkZGluZzogMCA0cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTFyZW0pIHtcbiAgLmV4YW1wbGUge1xuICAgIHBhZGRpbmc6IDAgNC40cmVtO1xuICB9XG59XG5cbi5leGFtcGxlIHAge1xuICBwYWRkaW5nLXRvcDogMWVtO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmV4YW1wbGUgaDQsIC5leGFtcGxlIHAge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNTJyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjVyZW0pIHtcbiAgLmV4YW1wbGUgaDQsIC5leGFtcGxlIHAge1xuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzLjA2cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTFyZW0pIHtcbiAgLmV4YW1wbGUgaDQsIC5leGFtcGxlIHAge1xuICAgIGZvbnQtc2l6ZTogMS45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzLjQycmVtO1xuICB9XG59XG5cbi5leGFtcGxlID4gZGl2IHtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMS44cmVtO1xufVxuXG4uZXhhbXBsZSA+IGRpdiBoNCwgLmV4YW1wbGUgPiBkaXYgcCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1cmVtKSB7XG4gIC5leGFtcGxlID4gZGl2IGg0LCAuZXhhbXBsZSA+IGRpdiBwIHtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIC5leGFtcGxlID4gZGl2IGg0LCAuZXhhbXBsZSA+IGRpdiBwIHtcbiAgICBmb250LXNpemU6IDEuOXJlbTtcbiAgfVxufVxuXG4uZXhhbXBsZSA+IGRpdiAucm93IHtcbiAgcGFkZGluZzogMDtcbn1cblxuLmV4YW1wbGUgPiBkaXYgPiBkaXYge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5leGFtcGxlID4gZGl2ID4gZGl2ID4gZGl2IHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuXG4uZXhhbXBsZSA+IGRpdjpudGgtb2YtdHlwZSg1biArIDEpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VBNTI2Rjtcbn1cblxuLmV4YW1wbGUgPiBkaXY6bnRoLW9mLXR5cGUoNW4gKyAyKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MzQ3NEQ7XG59XG5cbi5leGFtcGxlID4gZGl2Om50aC1vZi10eXBlKDVuICsgMykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTcyO1xufVxuXG4uZXhhbXBsZSA+IGRpdjpudGgtb2YtdHlwZSg1biArIDQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzdDOUVCMjtcbn1cblxuLmV4YW1wbGUgPiBkaXY6bnRoLW9mLXR5cGUoNW4gKyA1KSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODVCNTY7XG59XG5cbi5leGFtcGxlID4gZGl2ID4gZGl2ID4gZGl2Om50aC1vZi10eXBlKDVuICsgMSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjA3Zjk1O1xufVxuXG4uZXhhbXBsZSA+IGRpdiA+IGRpdiA+IGRpdjpudGgtb2YtdHlwZSg1biArIDIpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgxNWM2NDtcbn1cblxuLmV4YW1wbGUgPiBkaXYgPiBkaXYgPiBkaXY6bnRoLW9mLXR5cGUoNW4gKyAzKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MzdENjQ7XG59XG5cbi5leGFtcGxlID4gZGl2ID4gZGl2ID4gZGl2Om50aC1vZi10eXBlKDVuICsgNCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWNiNmM1O1xufVxuXG4uZXhhbXBsZSA+IGRpdiA+IGRpdiA+IGRpdjpudGgtb2YtdHlwZSg1biArIDUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcxNzU2Zjtcbn1cblxuLmNvZGUtYmxvY2sge1xuICBtYXJnaW4tYm90dG9tOiAzLjJyZW07XG4gIHBhZGRpbmc6IDEuNnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MXJlbSkge1xuICAuY29kZS1ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMy42cmVtO1xuICAgIHBhZGRpbmc6IDEuOHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY1cmVtKSB7XG4gIC5jb2RlLWJsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MXJlbSkge1xuICAuY29kZS1ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogNC40cmVtO1xuICAgIHBhZGRpbmc6IDIuMnJlbTtcbiAgfVxufVxuXG4uY29kZS1ibG9jayBwIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogXCJQVCBNb25vXCIsIG1vbm9zcGFjZTtcbiAgY29sb3I6ICM0ZjRmNGY7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBsaW5lLWhlaWdodDogMi41MnJlbTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NXJlbSkge1xuICAuY29kZS1ibG9jayBwIHtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBsaW5lLWhlaWdodDogMy4wNnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkxcmVtKSB7XG4gIC5jb2RlLWJsb2NrIHAge1xuICAgIGZvbnQtc2l6ZTogMS45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAzLjQycmVtO1xuICB9XG59XG4iLCJcbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLnJvdy5zaG93IHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbn1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIE1peGluIHRvIHJ1biBpbnNpZGUgb2YgZm9yIGxvb3AgLSBjcmVhdGVzIHZpc2liaWxpdHkgY2xhc3NlcyAqIE5vdCBmb3IgZGV2ZWxvcGVyIHVzZSAqXG5AbWl4aW4gdmlzLWZhY3RvcnkoJHRoaXNQcmVmaXgpIHtcbiAgLnNob3ctI3skdGhpc1ByZWZpeH0ge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnJvdy5zaG93LSN7JHRoaXNQcmVmaXh9IHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgfVxuICAuaGlkZS0jeyR0aGlzUHJlZml4fSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59IC8vIE1peGluIHRvIHJ1biBpbnNpZGUgb2YgZm9yIGxvb3AgLSBjcmVhdGVzIHZpc2liaWxpdHkgY2xhc3NlcyAqIE5vdCBmb3IgZGV2ZWxvcGVyIHVzZSAqXG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRicmVha3BvaW50LWFsbC1wcmVmaXhlcykge1xuICAkdGhpc1ByZWZpeDogbnRoKCRicmVha3BvaW50LWFsbC1wcmVmaXhlcywgJGkpO1xuICBAaWYgJHRoaXNQcmVmaXggPT0gXCJ4c1wiIHtcbiAgICBAaW5jbHVkZSB2aXMtZmFjdG9yeSgkdGhpc1ByZWZpeCk7XG4gIH0gQGVsc2UgaWYgJHRoaXNQcmVmaXggPT0gXCJ4cy1vbmx5XCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LXhzLW9ubHl9IHtcbiAgICAgIEBpbmNsdWRlIHZpcy1mYWN0b3J5KCR0aGlzUHJlZml4KTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHRoaXNQcmVmaXggPT0gXCJzbVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgICAgQGluY2x1ZGUgdmlzLWZhY3RvcnkoJHRoaXNQcmVmaXgpO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkdGhpc1ByZWZpeCA9PSBcInNtLW9ubHlcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tb25seX0ge1xuICAgICAgQGluY2x1ZGUgdmlzLWZhY3RvcnkoJHRoaXNQcmVmaXgpO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkdGhpc1ByZWZpeCA9PSBcIm1kXCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBAaW5jbHVkZSB2aXMtZmFjdG9yeSgkdGhpc1ByZWZpeCk7XG4gICAgfVxuICB9IEBlbHNlIGlmICR0aGlzUHJlZml4ID09IFwibWQtb25seVwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC1vbmx5fSB7XG4gICAgICBAaW5jbHVkZSB2aXMtZmFjdG9yeSgkdGhpc1ByZWZpeCk7XG4gICAgfVxuICB9IEBlbHNlIGlmICR0aGlzUHJlZml4ID09IFwibGdcIiB7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICAgIEBpbmNsdWRlIHZpcy1mYWN0b3J5KCR0aGlzUHJlZml4KTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHRoaXNQcmVmaXggPT0gXCJsZy1vbmx5XCIge1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLW9ubHl9IHtcbiAgICAgIEBpbmNsdWRlIHZpcy1mYWN0b3J5KCR0aGlzUHJlZml4KTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHRoaXNQcmVmaXggPT0gXCJ4bFwiIHtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC14bC11cH0ge1xuICAgICAgQGluY2x1ZGUgdmlzLWZhY3RvcnkoJHRoaXNQcmVmaXgpO1xuICAgIH1cbiAgfVxufVxuIiwiLyogaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC9cbiAgIHYyLjAgfCAyMDExMDEyNlxuICAgTGljZW5zZTogbm9uZSAocHVibGljIGRvbWFpbilcbiovXG5cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbmEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG5iLCB1LCBpLCBjZW50ZXIsXG5kbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG50YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbmFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxuZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLFxubWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG50aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogMDtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRmb250OiBpbmhlcml0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5ib2R5IHtcblx0bGluZS1oZWlnaHQ6IDE7XG59XG5vbCwgdWwge1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuYmxvY2txdW90ZSwgcSB7XG5cdHF1b3Rlczogbm9uZTtcbn1cbmJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyLFxucTpiZWZvcmUsIHE6YWZ0ZXIge1xuXHRjb250ZW50OiAnJztcblx0Y29udGVudDogbm9uZTtcbn1cbnRhYmxlIHtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0Ym9yZGVyLXNwYWNpbmc6IDA7XG59XG4iLCIvKiBhcHBseSBhIG5hdHVyYWwgYm94IGxheW91dCBtb2RlbCB0byBhbGwgZWxlbWVudHMsIGJ1dCBhbGxvd2luZyBjb21wb25lbnRzIHRvIGNoYW5nZSAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cbiIsIlxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAkZ3JhcGhpaztcbn1cblxuaDEge1xuICBmb250LWZhbWlseTogJG1hamVzdGk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgzcmVtKTtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoNXJlbSk7XG4gIH1cbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoN3JlbSk7XG4gIH1cbn1cblxuaDIge1xuICBmb250LWZhbWlseTogJG1hamVzdGk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgyLjZyZW0pO1xuICBjb2xvcjogJGRhcmtzbGF0ZTtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoNHJlbSk7XG4gIH1cbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoNi42cmVtKTtcbiAgfVxufVxuXG5oNCB7XG4gIGZvbnQtZmFtaWx5OiAkZ3JhcGhpay1tZWRpdW07XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjhyZW0pO1xuICBjb2xvcjogJGJyb256ZTtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoMnJlbSk7XG4gIH1cbn1cblxucCB7XG4gIG1hcmdpbjogMCAwIDEuOHJlbSAwO1xuICBmb250LWZhbWlseTogJGdyYXBoaWs7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjZyZW0pO1xuICBjb2xvcjogJGRhcmtzbGF0ZTtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBtYXJnaW46IDAgMCAycmVtIDA7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDJyZW0pO1xuICB9XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgbWFyZ2luOiAwIDAgMi4ycmVtIDA7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDIuMnJlbSk7XG4gIH1cbn1cblxuYSB7XG4gIGNvbG9yOiBsaWdodGVuKCRicm9uemUsIDEwJSk7O1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IGxpZ2h0ZW4oJGJyb256ZSwgMjAlKTtcbiAgfVxufVxuXG5saSB7XG4gIGZvbnQtZmFtaWx5OiAkZ3JhcGhpaztcbiAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDEuOHJlbSk7XG4gIGNvbG9yOiAkZGFya3NsYXRlO1xuICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgycmVtKTtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgyLjJyZW0pO1xuICB9XG59XG5cbmFzaWRlLCAuc2Vjb25kYXJ5LXRleHQge1xuICBmb250LWZhbWlseTogJGdyYXBoaWs7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjRyZW0pO1xuICBjb2xvcjogJGJyb256ZTtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoMS42cmVtKTtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjhyZW0pO1xuICB9XG59XG5cbmltZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMnB4IDE0cHggMnB4IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGJyb256ZSwgMTAlKTtcbiAgZm9udC1mYW1pbHk6ICRncmFwaGlrLW1lZGl1bTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjRyZW0pO1xuICBjb2xvcjogJHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbjtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbjtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBwYWRkaW5nOiAzcHggMTVweCAzcHggMTVweDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoMS42cmVtKTtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgIHBhZGRpbmc6IDVweCAxNnB4IDVweCAxNnB4O1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjhyZW0pO1xuICB9XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRicm9uemUsIDE1JSk7XG4gIH1cbn1cblxuLmZhIHtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDEuOHJlbSk7XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDJyZW0pO1xuICB9XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDIuMnJlbSk7XG4gIH1cbn1cbiIsIi8vIGZvbnRzXG4kbWFqZXN0aTogXCJtYWplc3RpLWJhbm5lci1ib29rXCIsIHNlcmlmO1xuJGdyYXBoaWs6IFwiZ3JhcGhpay1yZWd1bGFyXCIsIGhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiRncmFwaGlrLW1lZGl1bTogXCJncmFwaGlrLW1lZGl1bVwiLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4kZ3JhcGhpay1zZW1pYm9sZDogXCJncmFwaGlrLXNlbWlib2xkXCIsIGhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiRwdC1tb25vOiBcIlBUIE1vbm9cIiwgbW9ub3NwYWNlO1xuXG4vLyB0ZXh0XG4kbGluZS1oZWlnaHQtbXVsdGlwbGllcjogMS44O1xuIiwiLy8gVGV4dCBNaXhpbnNcblxuQG1peGluIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgkc2l6ZSkge1xuICBmb250LXNpemU6ICRzaXplO1xuICBsaW5lLWhlaWdodDogKCRsaW5lLWhlaWdodC1tdWx0aXBsaWVyICogJHNpemUpO1xufVxuIiwiLy8gQ29sb3JzXG4kd2hpdGU6ICNmZmZmZmY7XG4kYmxhY2s6ICMwMDAwMDA7XG4kc2xhdGU6ICM3QjdCN0I7XG4kZGFya3NsYXRlOiAjMzAzMDMwO1xuJGxpZ2h0c2xhdGU6ICNGNUY1RjU7XG4kYnJvbnplOiAjODg3MTREO1xuJGxpZ2h0YnJvbnplOiBsaWdodGVuKCRicm9uemUsIDUyJSk7XG5cbiRjb3JhbDogI0VBNTI2RjtcbiRidXJnYW5keTogIzYzNDc0RDtcbiRnb2xkOiAjRkZDOTcyO1xuJHNsYXRlYmx1ZTogIzdDOUVCMjtcbiRjaGFyY29hbDogIzU4NUI1NjtcblxuJGNvcmFsLWx0OiBsaWdodGVuKCRjb3JhbCwgMTAlKTtcbiRidXJnYW5keS1sdDogbGlnaHRlbigkYnVyZ2FuZHksIDEwJSk7XG4kZ29sZC1sdDogIzkzN0Q2NDtcbiRzbGF0ZWJsdWUtbHQ6IGxpZ2h0ZW4oJHNsYXRlYmx1ZSwgMTAlKTtcbiRjaGFyY29hbC1sdDogbGlnaHRlbigkY2hhcmNvYWwsIDEwJSk7XG5cbiRibG9jay1jb2xvcnM6ICgkY29yYWwsICRidXJnYW5keSwgJGdvbGQsICRzbGF0ZWJsdWUsICRjaGFyY29hbCk7XG4kYmxvY2stY29sb3JzLWx0OiAoJGNvcmFsLWx0LCAkYnVyZ2FuZHktbHQsICRnb2xkLWx0LCAkc2xhdGVibHVlLWx0LCAkY2hhcmNvYWwtbHQpO1xuIiwiaDQge1xuICBjb2xvcjogJHdoaXRlO1xuICBsaW5lLWhlaWdodDogMi4ycmVtO1xuICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgIGxpbmUtaGVpZ2h0OiAyLjJyZW07XG4gIH1cbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBsaW5lLWhlaWdodDogMi4ycmVtO1xuICB9XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgbGluZS1oZWlnaHQ6IDIuMnJlbTtcbiAgfVxufVxuXG5uYXYge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRicm9uemU7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xuICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgIHBhZGRpbmc6IDAuNnJlbSAwO1xuICB9XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgcGFkZGluZzogMC44cmVtIDA7XG4gIH1cblxuICBpIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuI21lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0OCwgNDgsIDQ4LCAwLjk1KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA5LjZyZW0gIDAgM3JlbSAwO1xuICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgIHBhZGRpbmc6IDEwcmVtIDAgMy4ycmVtIDA7XG4gIH1cbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBwYWRkaW5nOiAxMXJlbSAwIDMuNnJlbSAwO1xuICB9XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgcGFkZGluZzogMTEuMnJlbSAwIDRyZW0gMDtcbiAgfVxuXG4gIGxpIHtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogNC4ycmVtO1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICBsaW5lLWhlaWdodDogNS40cmVtXG4gICAgfVxuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1LjhyZW1cbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZGFya3NsYXRlLCAxLjQlKTs7XG4gICAgfVxuICB9XG5cbiAgLmNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAycmVtO1xuICAgIHJpZ2h0OiAzcmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoMi4ycmVtKTtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDIuNnJlbSk7XG4gICAgfVxuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoMi44cmVtKTtcbiAgICB9XG4gIH1cbn1cblxuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtzbGF0ZTtcbiAgcGFkZGluZzogOS42cmVtICAwIDNyZW0gMDtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tdXB9IHtcbiAgICBwYWRkaW5nOiAxMHJlbSAwIDMuMnJlbSAwO1xuICB9XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgcGFkZGluZzogMTFyZW0gMCAzLjZyZW0gMDtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgIHBhZGRpbmc6IDExLjJyZW0gMCA0cmVtIDA7XG4gIH1cbiAgcCB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuXG5mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya3NsYXRlO1xuICBwYWRkaW5nOiA0LjhyZW0gMDtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tdXB9IHtcbiAgICBwYWRkaW5nOiA1LjRyZW0gMDtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgIHBhZGRpbmc6IDZyZW0gMDtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgIHBhZGRpbmc6IDYuNnJlbSAwO1xuICB9XG4gIGFzaWRlIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59XG5cbnNlY3Rpb24ge1xuICBwYWRkaW5nOiAwIDAgNC44cmVtIDA7XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LXNtLXVwfSB7XG4gICAgcGFkZGluZzogMCAwIDUuNHJlbSAwO1xuICB9XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgcGFkZGluZzogMCAwIDZyZW0gMDtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgIHBhZGRpbmc6IDAgMCA2LjZyZW0gMDtcbiAgfVxuICAmOmZpcnN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmc6IDQuOHJlbSAwO1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LXNtLXVwfSB7XG4gICAgICBwYWRkaW5nOiA1LjRyZW0gMDtcbiAgICB9XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICAgIHBhZGRpbmc6IDZyZW0gMDtcbiAgICB9XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICAgIHBhZGRpbmc6IDYuNnJlbSAwO1xuICAgIH1cbiAgfVxufVxuXG5uYXYge1xuICB1bCB7XG4gICAgbGkge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuLmNvbnRlbnQtYmxvY2sge1xuICBwYWRkaW5nOiAwIDMuMnJlbTtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tdXB9IHtcbiAgICBwYWRkaW5nOiAwIDMuNnJlbTtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgIHBhZGRpbmc6IDAgNHJlbTtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgIHBhZGRpbmc6IDAgNC40cmVtO1xuICB9XG59XG5cbi5mZWF0dXJlcy1saXN0IHtcbiAgbGlzdC1zdHlsZTogc3F1YXJlO1xuICBtYXJnaW46IDAgMCAzLjJyZW0gMDtcbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtc20tdXB9IHtcbiAgICBtYXJnaW46IDAgMCAzLjZyZW0gMDtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgIG1hcmdpbjogMCAwIDRyZW0gMDtcbiAgfVxuICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgIG1hcmdpbjogMCAwIDQuNHJlbSAwO1xuICB9XG4gIGxpIHtcbiAgICBtYXJnaW46IDAgMCAwIDEuNnJlbTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjRyZW0pO1xuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDAgMCAwIDAuOHJlbTtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjZyZW0pO1xuICAgIH1cbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDEuOHJlbSk7XG4gICAgfVxuICB9XG59XG5cbi5leGFtcGxlIHtcbiAgcGFkZGluZzogMCAzLjJyZW07XG4gIEBtZWRpYSAjeyRicmVha3BvaW50LXNtLXVwfSB7XG4gICAgcGFkZGluZzogMCAzLjZyZW07XG4gIH1cbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBwYWRkaW5nOiAwIDRyZW07XG4gIH1cbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICBwYWRkaW5nOiAwIDQuNHJlbTtcbiAgfVxuICBwIHtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICBoNCwgcCB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDEuNHJlbSk7XG4gICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZS1saW5lLWhlaWdodCgxLjdyZW0pO1xuICAgIH1cbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1sZy11cH0ge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDEuOXJlbSk7XG4gICAgfVxuICB9XG59XG5cbi5leGFtcGxlID4gZGl2IHtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMS44cmVtO1xuXG4gIGg0LCBwIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgfVxuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgICBmb250LXNpemU6IDEuOXJlbTtcbiAgICB9XG4gIH1cblxuICAucm93IHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5leGFtcGxlID4gZGl2ID4gZGl2IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICAmID4gZGl2IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgLy8gaDQsIHAge1xuICAgIC8vICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgLy8gICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICAvLyAgIEBtZWRpYSAjeyRicmVha3BvaW50LW1kLXVwfSB7XG4gICAgLy8gICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgIC8vICAgfVxuICAgIC8vICAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICAvLyAgICAgZm9udC1zaXplOiAxLjlyZW07XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG59XG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gIC5leGFtcGxlID4gZGl2Om50aC1vZi10eXBlKDVuICsgI3skaX0pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBudGgoJGJsb2NrLWNvbG9ycywgJGkpO1xuICB9XG59XG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gIC5leGFtcGxlID4gZGl2ID4gZGl2ID4gZGl2Om50aC1vZi10eXBlKDVuICsgI3skaX0pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBudGgoJGJsb2NrLWNvbG9ycy1sdCwgJGkpO1xuICB9XG59XG5cbi5jb2RlLWJsb2NrIHtcbiAgbWFyZ2luLWJvdHRvbTogMy4ycmVtO1xuICBwYWRkaW5nOiAxLjZyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodHNsYXRlO1xuICBAbWVkaWEgI3skYnJlYWtwb2ludC1zbS11cH0ge1xuICAgIG1hcmdpbi1ib3R0b206IDMuNnJlbTtcbiAgICBwYWRkaW5nOiAxLjhyZW07XG4gIH1cbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbWQtdXB9IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cbiAgQG1lZGlhICN7JGJyZWFrcG9pbnQtbGctdXB9IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0LjRyZW07XG4gICAgcGFkZGluZzogMi4ycmVtO1xuICB9XG4gIHAge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJHB0LW1vbm87XG4gICAgY29sb3I6IGxpZ2h0ZW4oJGRhcmtzbGF0ZSwgMTIlKTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoMS40cmVtKTtcbiAgICBAbWVkaWEgI3skYnJlYWtwb2ludC1tZC11cH0ge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplLWxpbmUtaGVpZ2h0KDEuN3JlbSk7XG4gICAgfVxuICAgIEBtZWRpYSAjeyRicmVha3BvaW50LWxnLXVwfSB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUtbGluZS1oZWlnaHQoMS45cmVtKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== */
================================================
FILE: .yo-rc.json
================================================
{
"generator-mocha": {
"ui": "tdd",
"rjs": false
}
}
================================================
FILE: LICENSE.md
================================================
The MIT License (MIT)
Copyright (c) 2018 Drew Botka
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.
================================================
FILE: README.md
================================================
# Sass Flexbox Grid
Documentation and examples available at [sassflexboxgrid.com](http://sassflexboxgrid.com/)
## Overview
A responsive grid system based on [Flexbox Grid](http://flexboxgrid.com/ "flexbox-grid") and the flex property, re-written in Sass, edited and expanded upon.
Enhancements include:
- Visibility classes
- Additional 'XL' breakpoint
- Sass variables and mixins
- Customizable grid
## Installation
### npm
```
npm install @drewbot/sass-flexbox-grid --save
```
Then link to your preferred CSS or Sass File:
#### CSS
`node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/main.css`
#### CSS (minified)
`node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/main.min.css`
Or copy the Sass files over to your `src` directory from the following directory:
`node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/scss`
### Direct download
[https://github.com/drewbot/sass-flexbox-grid/raw/master/public/sass-flexbox.zip](https://github.com/drewbot/sass-flexbox-grid/raw/master/public/sass-flexbox.zip)
## Mobile First
Use Sass Flexbox Grid's mobile-first media queries provided in the Sass version of the library. All styles should first be declared at small (mobile) then built outward for larger screens.
## Version 2.0.3 Release Notes - 04/12/2018
- Added `!default;` to adjustable grid vars in `.../scss/variables/_grid-variables.scss`.
## Version 2.0.2 Release Notes - 04/10/2018
- Added `box-sizing: border-box;` to all rows and columns by default.
## Version 2.0.0 Release Notes - 04/09/2018
- All columns within a row will automatically scale in height to match the tallest column in the row.
- `eq-height` is thereby deprecated.
- `.auto-height` class has been refactored to `.natural-height`.
- Likewise, the `row-auto-height()` mixin has been refactored to `row-natural-height()`.
- The `flex-column()` mixin has been refactored to `row-flex-column()`.
- The `.show` class can now be applied to `.row` elements.
- The `show()` mixin now accepts an optional `$row` argument and can be used on `row` elements.
- Example: `@include show("xs", "row")` or `@include show("xs", "true")`.
## Version 1.0.0 Release Notes - 04/08/2018
- Added gutters to the top, bottom, left, and right of all columns by default.
- Gutter size can be adjusted by changing the value of the sass variable `$gutter`.
- The `.col-gutter-lr` class will only apply gutters to the left and right of a column.
- The `.col-no-gutter` class will remove gutters from a column.
================================================
FILE: app/browserconfig.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
================================================
FILE: app/fonts/Graphik/Graphik-Extralight.otf
================================================
================================================
FILE: app/index.html
================================================
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sass Flexbox Grid</title>
<script src="https://use.fontawesome.com/e00da74127.js"></script>
<link rel="apple-touch-icon" sizes="57x57" href="/images/favicons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/images/favicons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/images/favicons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/images/favicons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/images/favicons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/images/favicons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/images/favicons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/images/favicons/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/images/favicons/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicons/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/images/favicons/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
<!-- Place favicon.ico in the root directory -->
<!-- build:css styles/vendor.css -->
<!-- bower:css -->
<!-- endbower -->
<!-- endbuild -->
<!-- build:css styles/main.css -->
<link rel="stylesheet" href="styles/main.css">
<!-- endbuild -->
<!-- build:js scripts/vendor/modernizr.js -->
<script src="/bower_components/modernizr/modernizr.js"></script>
<!-- endbuild -->
</head>
<body>
<!--[if lt IE 10]>
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
<nav>
<div class="row between-xs content-block">
<div>
<a href="/">
<i class="fa fa-home" aria-hidden="true"></i>
</a>
</div>
<div>
<a href="https://github.com/drewbot/sass-flexbox-grid/raw/master/public/sass-flexbox.zip">
<button><i class="fa fa-download" aria-hidden="true"></i><span class="hide-xs-only"> Download</span></button>
</a>
</div>
<div>
<a href="views/documentation.html">
<button><i class="fa fa-book" aria-hidden="true"></i><span class="hide-xs-only"> Documentation</span></button>
</a>
</div>
<div>
<a href="https://github.com/drewbot/sass-flexbox-grid">
<button><i class="fa fa-github" aria-hidden="true"></i><span class="hide-xs-only"> Github</span></button>
</a>
</div>
<div id="menuOpen">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
</div>
</nav>
<div id="menu">
<i id="menuClose" class="fa fa-window-close-o close" aria-hidden="true"></i>
<ul>
<li>
<a href="/">Overview</a>
</li>
<li>
<a href="views/documentation.html">Documentation</a>
</li>
<li>
<a href="views/classes.html">Classes</a>
</li>
<li>
<a href="views/variables.html">Variables</a>
</li>
<li>
<a href="views/mixins.html">Mixins</a>
</li>
</ul>
</div>
<div id="view-home" class="">
<header>
<div class="row center-xs content-block">
<div class="col-xs-12 col-md-8">
<h1>Sass Flexbox Grid</h1>
<p>
A responsive grid system based on <a href="http://flexboxgrid.com/">Flexbox Grid</a> and the flex property, re-written in Sass, edited and expanded upon.
</p>
<ul class="features-list">
<li>Visibility classes,</li>
<li>Additional 'XL' breakpoint,</li>
<li>Sass variables and mixins,</li>
<li>Customizable grid</li>
</ul>
</div>
</div>
</header>
<section id="responsive">
<div class="row example">
<div class="col-xs-12 col-sm-3 col-md-2 col-lg-1"></div>
<div class="col-xs-6 col-sm-6 col-md-8 col-lg-10"></div>
<div class="col-xs-6 col-sm-3 col-md-2 col-lg-1"></div>
<div class="col-xs-12 col-sm-3 col-md-2 col-lg-1"></div>
<div class="col-xs-12 col-sm-9 col-md-10 col-lg-11"></div>
<div class="col-xs-10 col-sm-6 col-md-8 col-lg-10"></div>
<div class="col-xs-2 col-sm-6 col-md-4 col-lg-2"></div>
</div>
</section>
<section id="offsets">
<div class="row example">
<div class="col-xs-offset-10 col-xs-2"></div>
<div class="col-xs-offset-8 col-xs-4"></div>
<div class="col-xs-offset-6 col-xs-6"></div>
<div class="col-xs-offset-4 col-xs-8"></div>
<div class="col-xs-offset-2 col-xs-10"></div>
<div class="col-xs-12"></div>
</div>
</section>
<section id="autoWidth">
<div class="row example">
<div class="col"></div>
<div class="col"></div>
</div>
<div class="row example">
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
</div>
</section>
<section id="alignment">
<div class="row start-xs example">
<div class="col-xs-6">
<h4>.start-xs</h4>
</div>
</div>
<div class="row center-xs example">
<div class="col-xs-6">
<h4>.center-xs</h4>
</div>
</div>
<div class="row end-xs example">
<div class="col-xs-6">
<h4>.end-xs</h4>
</div>
</div>
<div class="row center-xs end-sm start-md example">
<div class="col-xs-8">
<h4>.center-xs, .end-sm, .start-md</h4>
</div>
</div>
<div class="row example">
<div class="col-xs" style="height: 100px;">
<div class="row top-xs">
<div class="col-xs"><h4>.top-xs</h4></div>
</div>
</div>
</div>
<div class="row example">
<div class="col-xs" style="height: 100px;">
<div class="row middle-xs">
<div class="col-xs"><h4>.middle-xs</h4></div>
</div>
</div>
</div>
<div class="row example">
<div class="col-xs" style="height: 100px;">
<div class="row bottom-xs">
<div class="col-xs"><h4>.bottom-xs</h4></div>
</div>
</div>
</div>
</section>
<section id="distribution">
<div class="row example">
<div class="col-xs-12">
<div class="row around-xs">
<div class="col-xs-2"><h4>.around-xs</h4></div>
<div class="col-xs-2"></div>
<div class="col-xs-2"></div>
</div>
</div>
</div>
<div class="row example">
<div class="col-xs-12">
<div class="row between-xs">
<div class="col-xs-2"><h4>.between-xs</h4></div>
<div class="col-xs-2"></div>
<div class="col-xs-2"></div>
</div>
</div>
</div>
</section>
<section id="reorder">
<div class="row example">
<div class="col-xs-2"><h4>1</h4></div>
<div class="col-xs-2"><h4>2</h4></div>
<div class="col-xs-2 first-xs"><h4>3 (.first-xs)</h4></div>
<div class="col-xs-2"><h4>4</h4></div>
<div class="col-xs-2"><h4>5</h4></div>
<div class="col-xs-2"><h4>6</h4></div>
</div>
<div class="row example">
<div class="col-xs-2"><h4>1</h4></div>
<div class="col-xs-2"><h4>2</h4></div>
<div class="col-xs-2 last-xs"><h4>3 (.last-xs)</h4></div>
<div class="col-xs-2"><h4>4</h4></div>
<div class="col-xs-2"><h4>5</h4></div>
<div class="col-xs-2"><h4>6</h4></div>
</div>
</section>
<section id="reverse">
<div class="row reverse example">
<div class="col-xs"><h4>1</h4></div>
<div class="col-xs"><h4>2</h4></div>
<div class="col-xs"><h4>3</h4></div>
</div>
</section>
<section id="eqHeight">
<div class="row example hide-xs-only">
<div class="col"><p>They never said winning was easy.</p></div>
<div class="col"><p>Another one. It’s on you how you want to live your life. Everyone has a choice. I pick my choice, squeaky clean. They don’t want us to eat. The first of the month is coming, we have to get money, we have no choice. Some people can’t handle success, I can. </p></div>
<div class="col"><p>The key to more success is to get a massage once a week, very important, major key, cloth talk.</p></div>
</div>
</section>
<section id="nested">
<div class="row example">
<div class="col-xs">
<div class="row">
<div class="col-xs"></div>
<div class="col-xs"></div>
</div>
</div>
<div class="col-xs">
<div class="row">
<div class="col-xs"></div>
<div class="col-xs"></div>
<div class="col-xs"></div>
<div class="col-xs"></div>
</div>
</div>
<div class="col-xs">
<div class="row">
<div class="col-xs"></div>
<div class="col-xs"></div>
<div class="col-xs"></div>
</div>
</div>
</div>
</section>
<section id="visibility">
<div class="row example">
<div class="col hide-md"><h4>.hide-md</h4></div>
<div class="col hide-xs show-md"><h4>.hide-xs, .show-md</h4></div>
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
<div class="col hide-sm-only"><h4>.hide-sm-only</h4></div>
</div>
</section>
<section id="variables">
</section>
<section id="mixins">
</section>
</div>
<footer id="footerSection">
<div class="row content-block">
<ul>
<li>
<aside id="siteOwner"></aside>
</li>
</ul>
</div>
</footer>
<script id="feature-detail" type="text/x-handlebars-template">
<div>
<div class="row center-xs content-block">
<div class="col-xs-12 col-md-8">
<h2>{{ title }}</h2>
<p>
{{ description }}
{{#if hasLink}}
<a href="{{ href }}">{{ linkContent }}</a>
{{/if}}
</p>
</div>
</div>
<div class="row content-block">
<div class="col-xs-12 col-md-offset-2 col-md-8 code-block" id="{{ codeBlockId }}"></div>
</div>
</div>
</script>
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
<script>
(function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]=
function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date;
e=o.createElement(i);r=o.getElementsByTagName(i)[0];
e.src='https://www.google-analytics.com/analytics.js';
r.parentNode.insertBefore(e,r)}(window,document,'script','ga'));
ga('create','UA-XXXXX-X');ga('send','pageview');
</script>
<!-- build:js scripts/vendor.js -->
<!-- bower:js -->
<script src="/bower_components/jquery/dist/jquery.js"></script>
<script src="/bower_components/marked/lib/marked.js"></script>
<script src="/bower_components/handlebars/handlebars.js"></script>
<!-- endbower -->
<!-- endbuild -->
<!-- build:js scripts/main.js -->
<script src="/scripts/bundle.js"></script>
<!-- endbuild -->
</body>
</html>
================================================
FILE: app/manifest.json
================================================
{
"name": "App",
"icons": [
{
"src": "\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}
================================================
FILE: app/robots.txt
================================================
# robotstxt.org/
User-agent: *
Disallow:
================================================
FILE: app/scripts/app.js
================================================
// import customRouter from './router.js';
import setMarkedOptions from './marked.js';
import mainObj from './main.js';
import examplesObj from './content/examples.js';
import sassClassesObj from './content/sass-classes.js';
import sassVarsObj from './content/sass-variables.js';
import sassMixinsObj from './content/sass-mixins.js';
import documentationObj from './content/documentation-obj.js'
import overviewCollection from './content/overview.js';
import variablesCollection from './content/variables.js';
import mixinsCollection from './content/mixins.js';
import classesCollection from './content/classes.js';
import documentationCollection from './content/documentation.js'
console.log(mainObj.isTouchDevice() ? 'Touch Device': 'Desktop');
setMarkedOptions();
var codeContentsArray = [examplesObj, sassClassesObj, sassVarsObj, sassMixinsObj, documentationObj];
$(function() {
var featureDetailSource = $('#feature-detail').html(),
featureDetailTemplate = Handlebars.compile(featureDetailSource);
var makeFeatureDetail = function(obj, i, array) {
var context = obj,
html = featureDetailTemplate(context);
$(`#${obj.sectionId}`).prepend(html);
}
overviewCollection.forEach( makeFeatureDetail );
variablesCollection.forEach( makeFeatureDetail );
mixinsCollection.forEach( makeFeatureDetail );
classesCollection.forEach( makeFeatureDetail );
documentationCollection.forEach( makeFeatureDetail );
// customRouter();
var markedSection = function(obj) {
$.each(obj, function(key, value) {
$(`#${key}`).html(marked(value));
})
}
$.each(codeContentsArray, function(i, obj) {
markedSection(obj);
})
$('#siteOwner').append(mainObj.getOwnerContent());
$('#menuOpen').on('click', function() {
$('#menu').show();
})
$('#menuClose').on('click', function() {
$('#menu').hide();
})
// $('#menu a').on('click', function() {
// event.stopPropagation();
// })
});
================================================
FILE: app/scripts/bundle.js
================================================
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
'use strict';
var _marked = require('./marked.js');
var _marked2 = _interopRequireDefault(_marked);
var _main = require('./main.js');
var _main2 = _interopRequireDefault(_main);
var _examples = require('./content/examples.js');
var _examples2 = _interopRequireDefault(_examples);
var _sassClasses = require('./content/sass-classes.js');
var _sassClasses2 = _interopRequireDefault(_sassClasses);
var _sassVariables = require('./content/sass-variables.js');
var _sassVariables2 = _interopRequireDefault(_sassVariables);
var _sassMixins = require('./content/sass-mixins.js');
var _sassMixins2 = _interopRequireDefault(_sassMixins);
var _documentationObj = require('./content/documentation-obj.js');
var _documentationObj2 = _interopRequireDefault(_documentationObj);
var _overview = require('./content/overview.js');
var _overview2 = _interopRequireDefault(_overview);
var _variables = require('./content/variables.js');
var _variables2 = _interopRequireDefault(_variables);
var _mixins = require('./content/mixins.js');
var _mixins2 = _interopRequireDefault(_mixins);
var _classes = require('./content/classes.js');
var _classes2 = _interopRequireDefault(_classes);
var _documentation = require('./content/documentation.js');
var _documentation2 = _interopRequireDefault(_documentation);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// import customRouter from './router.js';
console.log(_main2.default.isTouchDevice() ? 'Touch Device' : 'Desktop');
(0, _marked2.default)();
var codeContentsArray = [_examples2.default, _sassClasses2.default, _sassVariables2.default, _sassMixins2.default, _documentationObj2.default];
$(function () {
var featureDetailSource = $('#feature-detail').html(),
featureDetailTemplate = Handlebars.compile(featureDetailSource);
var makeFeatureDetail = function makeFeatureDetail(obj, i, array) {
var context = obj,
html = featureDetailTemplate(context);
$('#' + obj.sectionId).prepend(html);
};
_overview2.default.forEach(makeFeatureDetail);
_variables2.default.forEach(makeFeatureDetail);
_mixins2.default.forEach(makeFeatureDetail);
_classes2.default.forEach(makeFeatureDetail);
_documentation2.default.forEach(makeFeatureDetail);
// customRouter();
var markedSection = function markedSection(obj) {
$.each(obj, function (key, value) {
$('#' + key).html(marked(value));
});
};
$.each(codeContentsArray, function (i, obj) {
markedSection(obj);
});
$('#siteOwner').append(_main2.default.getOwnerContent());
$('#menuOpen').on('click', function () {
$('#menu').show();
});
$('#menuClose').on('click', function () {
$('#menu').hide();
});
// $('#menu a').on('click', function() {
// event.stopPropagation();
// })
});
},{"./content/classes.js":2,"./content/documentation-obj.js":3,"./content/documentation.js":4,"./content/examples.js":5,"./content/mixins.js":6,"./content/overview.js":7,"./content/sass-classes.js":8,"./content/sass-mixins.js":9,"./content/sass-variables.js":10,"./content/variables.js":11,"./main.js":12,"./marked.js":13}],2:[function(require,module,exports){
'use strict';
var classesCollection = [{
sectionId: 'rowClasses',
codeBlockId: 'rowClassesExample',
title: 'Row Classes',
description: 'Define how content is arranged horizontally and vertically. You can also get specific about ordering and distribution of space.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'colClasses',
codeBlockId: 'colClassesExample',
title: 'Column Classes',
description: 'Define column width and placement for each breakpoint or for a set range',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'visClasses',
codeBlockId: 'visClassesExample',
title: 'Visibility Classes',
description: 'Hide and show content. Define visibility for each breakpoint or for a set range',
hasLink: false,
href: '',
linkContent: ''
}];
module.exports = classesCollection;
},{}],3:[function(require,module,exports){
"use strict";
var indent = " ",
indentDouble = indent + indent,
indentTriple = indentDouble + indent,
indentQuadruple = indentTriple + indent,
indentQuintuple = indentQuadruple + indent,
indentSextuple = indentQuintuple + indent;
var documentationObj = {
npmInstallationExample: "\n npm install @drewbot/sass-flexbox-grid --save\n ",
cssInstallationExample: "\n // Full version\n node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/main.css\n // Minified version\n node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/main.min.css\n ",
sassInstallationExample: "\n node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/scss\n ",
variableSetupExample: "\n // .../sass-flexbox-grid/public/sass-flexbox/scss/variables/_grid-variables.scss\n " + indent + "\n $grid-columns: 12; // Set number of columns in the grid\n " + indent + "\n $xs-max: 40rem; // Set xs breakpoint's max width\n $sm-max: 64rem; // Set sm breakpoint's max width\n $md-max: 90rem; // Set md breakpoint's max width\n $lg-max: 120rem; // Set lg breakpoint's max width\n " + indent + "\n $gutter: 1rem; // Set gutter size\n " + indent + "\n $content-well-max-width: \"none\"; // Set the max-width of the content well\n "
};
module.exports = documentationObj;
},{}],4:[function(require,module,exports){
'use strict';
var documentationCollection = [{
sectionId: 'npmInstallation',
codeBlockId: 'npmInstallationExample',
title: 'NPM Install',
description: 'From the command line:',
hasLink: false,
href: 'https://www.npmjs.com/package/@drewbot/sass-flexbox-grid',
linkContent: 'View the NPM package webpage'
}, {
sectionId: 'cssInstallation',
codeBlockId: 'cssInstallationExample',
title: 'Link to CSS',
description: 'Link to the full CSS file or the minified version.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'sassInstallation',
codeBlockId: 'sassInstallationExample',
title: 'Sass Usage',
description: 'Copy the Sass folder over to your development directory in order to customize and preprocess on your own.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'variableSetup',
codeBlockId: 'variableSetupExample',
title: 'Customize Your Grid',
description: 'If you\'re using the Sass version of the library you can update _grid-variables.scss with your preferred number of columns, breakpoint sizes, gutter size, and content well max-width.',
hasLink: false,
href: '',
linkContent: ''
}];
module.exports = documentationCollection;
},{}],5:[function(require,module,exports){
"use strict";
var indent = " ",
indentDouble = indent + indent,
indentTriple = indentDouble + indent,
indentQuadruple = indentTriple + indent,
indentQuintuple = indentQuadruple + indent,
indentSextuple = indentQuintuple + indent;
var examplesObj = {
responsiveExample: "\n <div class=\"row\">\n " + indent + "<div class=\"col-xs-12 col-sm-8 col-md-6 col-lg-4\"></div>\n </div>\n ",
offsetsExample: "\n <div class=\"row\">\n " + indent + "<div class=\"col-xs-offset-3 col-xs-9\"></div>\n </div>\n ",
autoWidthExample: "\n <div class=\"row\">\n " + indent + "<div class=\"col\"></div>\n " + indent + "<div class=\"col\"></div>\n </div>\n ",
nestedExample: "\n <div class=\"row\">\n " + indent + "<div class=\"col-xs\">\n " + indentDouble + "<div class=\"row\">\n " + indentTriple + "<div class=\"col-xs\"></div>\n " + indentDouble + "</div>\n " + indent + "</div>\n </div>\n ",
alignmentExample: "\n <div class=\"row start-xs\">\n " + indent + "<div class=\"col-xs-6\">content</div>\n </div>\n ",
distributionExample: "\n <div class=\"row around-xs\">\n " + indent + "<div class=\"col-xs-2\"></div>\n " + indent + "<div class=\"col-xs-2\"></div>\n " + indent + "<div class=\"col-xs-2\"></div>\n </div>\n ",
reorderExample: "\n <div class=\"row\">\n " + indent + "<div class=\"col-xs-2\">1</div>\n " + indent + "<div class=\"col-xs-2\">2</div>\n " + indent + "<div class=\"col-xs-2 first-xs\">3</div>\n " + indent + "...\n </div>\n ",
reverseExample: "\n <div class=\"row reverse\">\n " + indent + "<div class=\"col-xs\">1</div>\n " + indent + "<div class=\"col-xs\">2</div>\n " + indent + "<div class=\"col-xs\">3</div>\n </div>\n ",
variablesExample: "\n $grid-columns: 12; // Set number of columns in the grid\n " + indent + "\n $xs-max: 40rem; // Set xs breakpoint's max width\n $sm-max: 64rem; // Set sm breakpoint's max width\n $md-max: 90rem; // Set md breakpoint's max width\n $lg-max: 120rem; // Set lg breakpoint's max width\n " + indent + "\n $gutter: 1rem; // Set gutter size\n " + indent + "\n $content-well-max-width: \"none\"; // Set the max-width of the content well\n ",
mixinsExample: "\n .container {\n " + indent + "@include row();\n " + indent + ".box {\n " + indentDouble + "@inlcude col(6);\n " + indentDouble + "@inlcude col(md, 3);\n " + indent + "}\n " + indent + ".extras {\n " + indentDouble + "@include hide(lg);\n " + indent + "}\n }\n ",
visibilityExample: "\n <div class=\"row\">\n " + indent + "<div class=\"col hide-md\"></div>\n " + indent + "<div class=\"col hide-xs show-md\"></div>\n " + indent + "<div class=\"col\"></div>\n " + indent + "<div class=\"col\"></div>\n " + indent + "<div class=\"col\"></div>\n " + indent + "<div class=\"col hide-sm-only\"></div>\n </div>\n ",
eqHeightExample: "\n <div class=\"row\">\n " + indent + "<div class=\"col\">Content of varying height</div>\n " + indent + "<div class=\"col\">Content of varying height</div>\n </div>\n "
};
module.exports = examplesObj;
// var examplesArray = [
// {
// id: 'responsiveExample',
// markup: `
// <div class="row">
// ${indent}<div class="col-xs-12 col-sm-8 col-md-6 col-lg-4"></div>
// </div>
// `
// },
// {
// id: 'offsetsExample',
// markup: `
// <div class="row">
// ${indent}<div class="col-xs-offset-3 col-xs-9"></div>
// </div>
// `
// },
// {
// id: 'autoWidthExample',
// markup: `
// <div class="row">
// ${indent}<div class="col"></div>
// ${indent}<div class="col"></div>
// </div>
// `
// },
// {
// id: 'nestedExample',
// markup: `
// <div class="row">
// ${indent}<div class="col-xs">
// ${indentDouble}<div class="row">
// ${indentTriple}<div class="col-xs"></div>
// ${indentDouble}</div>
// ${indent}</div>
// </div>
// `
// },
// {
// id: 'alignmentExample',
// markup: `
// <div class="row start-xs">
// ${indent}<div class="col-xs-6">content</div>
// </div>
// `
// },
// {
// id: 'distributionExample',
// markup: `
// <div class="row around-xs">
// ${indent}<div class="col-xs-2"></div>
// ${indent}<div class="col-xs-2"></div>
// ${indent}<div class="col-xs-2"></div>
// </div>
// `
// },
// {
// id: 'reorderExample',
// markup: `
// <div class="row">
// ${indent}<div class="col-xs-2">1</div>
// ${indent}<div class="col-xs-2">2</div>
// ${indent}<div class="col-xs-2 first-xs">3</div>
// ${indent}...
// </div>
// `
// },
// {
// id: 'reverseExample',
// markup: `
// <div class="row reverse">
// ${indent}<div class="col-xs">1</div>
// ${indent}<div class="col-xs">2</div>
// ${indent}<div class="col-xs">3</div>
// </div>
// `
// },
// {
// id: 'variablesExample',
// markup: `
// $grid-columns: 12;
//
// $xs-max: 640px;
// $sm-max: 1024px;
// $md-max: 1440px;
// $lg-max: 1920px;
//
// $content-well-max-width: 2400px;
// `
// },
// {
// id: 'mixinsExample',
// markup: `
// .container {
// ${indent}@include row();
// ${indent}.box {
// ${indentDouble}@inlcude col(6);
// ${indentDouble}@inlcude col(md, 3);
// ${indent}}
// ${indent}.extras {
// ${indentDouble}@include hide(lg);
// ${indent}}
// }
// `
// },
// {
// id: 'visibilityExample',
// markup: `
// <div class="row">
// ${indent}<div class="col hide-md-up"></div>
// ${indent}<div class="col hide-xs-up show-md-up"></div>
// ${indent}<div class="col"></div>
// ${indent}<div class="col"></div>
// ${indent}<div class="col"></div>
// ${indent}<div class="col hide-sm-only"></div>
// </div>
// `
// },
// {
// id: 'eqHeightExample',
// markup: `
// <div class="row eq-height">
// ${indent}<div class="col">Content of varying height</div>
// ${indent}<div class="col">Content of varying height</div>
// </div>
// `
// }
// ]
},{}],6:[function(require,module,exports){
'use strict';
var mixinsCollection = [{
sectionId: 'rowMixins',
codeBlockId: 'rowMixinsExample',
title: 'Row Mixins',
description: 'Set a container as a row and customize.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'colMixins',
codeBlockId: 'colMixinsExample',
title: 'Column Mixins',
description: 'Set a container as a column and customize.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'arrangeMixins',
codeBlockId: 'arrangeMixinsExample',
title: 'Arrangement Mixins',
description: 'Customize the arrangement, placement and orientation.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'visibilityMixins',
codeBlockId: 'visibilityMixinsExample',
title: 'Visibility Mixins',
description: 'Hide and show content within all or various breakpoint ranges.',
hasLink: false,
href: '',
linkContent: ''
}];
module.exports = mixinsCollection;
},{}],7:[function(require,module,exports){
'use strict';
var overviewCollection = [{
sectionId: 'responsive',
codeBlockId: 'responsiveExample',
title: 'Responsive and Fluid',
description: 'Responsive modifiers let you define column sizes, offsets, alignment and distribution at xs, sm, md & lg viewport widths. Use the row class to define an outer row of columns and then place columns inside of rows.',
hasLink: true,
href: '/views/classes.html',
linkContent: 'See all classes'
}, {
sectionId: 'offsets',
codeBlockId: 'offsetsExample',
title: 'Offsets',
description: 'Offset a column.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'autoWidth',
codeBlockId: 'autoWidthExample',
title: 'Auto Width',
description: 'Add any number of auto sizing columns to a row. Let the grid figure it out.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'alignment',
codeBlockId: 'alignmentExample',
title: 'Alignment',
description: 'Add classes to align elements to the start or end of a row as well as the top, bottom, or center of a column.',
hasLink: true,
href: '/views/classes.html',
linkContent: 'See all classes'
}, {
sectionId: 'distribution',
codeBlockId: 'distributionExample',
title: 'Distribution',
description: 'Add classes to distribute the contents of a row or column.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'reorder',
codeBlockId: 'reorderExample',
title: 'Reordering',
description: 'Add classes to reorder columns.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'reverse',
codeBlockId: 'reverseExample',
title: 'Reversing',
description: 'Add a class to reverse columns or column content.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'eqHeight',
codeBlockId: 'eqHeightExample',
title: 'Column Height Equalizer',
description: 'By default, flexbox stretches each flex item to match the height of it\'s sibling. The .natural-height row utility class will make each column\'s height match it\'s content, giving the developer control of the behavior.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'nested',
codeBlockId: 'nestedExample',
title: 'Nested Grids',
description: 'Nest grids inside grids inside grids.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'visibility',
codeBlockId: 'visibilityExample',
title: 'Visibility',
description: 'Visibility classes allow for responsive showing and hiding of content.',
hasLink: true,
href: '/views/classes.html',
linkContent: 'See all classes'
}, {
sectionId: 'variables',
codeBlockId: 'variablesExample',
title: 'Variables',
description: 'Customizable Sass variables allow you to create a grid and responsive framework to meet your needs. You can easily change the number of columns in your grid from the default 12. Update your breakpoint ranges by adjusting these variables and all of the media queries, classes and mixins will update accordingly.',
hasLink: true,
href: '/views/variables.html',
linkContent: 'See all variables'
}, {
sectionId: 'mixins',
codeBlockId: 'mixinsExample',
title: 'Mixins',
description: 'Mixins are available for every Sass Flexbox Grid set of delarations.',
hasLink: true,
href: '/views/mixins.html',
linkContent: 'See all mixins'
}];
module.exports = overviewCollection;
},{}],8:[function(require,module,exports){
"use strict";
var indent = " ",
indentDouble = indent + indent,
indentTriple = indentDouble + indent,
indentQuadruple = indentTriple + indent,
indentQuintuple = indentQuadruple + indent,
indentSextuple = indentQuintuple + indent;
var sassClassesObj = {
rowClassesExample: "\n .row // Define and element as a row\n .reverse // Reverse the order of the row's children\n .natural-height // Row children heights match their contents\n .flex-column // Arrange row children vertically\n .start // Align row children to the beginning of the row\n .center // Align row children to the center of the row\n .end // Align row children to the end of the row\n .top // Align row children to the top of the row\n .middle // Align row children to the middle of the row\n .bottom // Align row children to the bottom of the row\n .around // Apply equal space around each row child\n .between // Apply equal space between each row child\n ",
colClassesExample: "\n .col // Define a column with auto-sizing\n .col-xs // Define a column with auto-sizing on XS and up\n .col-sm // Define a column with auto-sizing on SM and up\n .col-md // Define a column with auto-sizing on MD and up\n .col-lg // Define a column with auto-sizing on LG and up\n .col-xl // Define a column with auto-sizing on XL and up\n .col-xs-<column number> // Define a column's number width on XS and up\n .col-sm-<column number> // Define a column's number width on SM and up\n .col-md-<column number> // Define a column's number width on MD and up\n .col-lg-<column number> // Define a column's number width on LG and up\n .col-xl-<column number> // Define a column's number width on XL and up\n .col-xs-offset-<column number> // Offset by a number width on XS and up\n .col-sm-offset-<column number> // Offset by a number width on SM and up\n .col-md-offset-<column number> // Offset by a number width on MD and up\n .col-lg-offset-<column number> // Offset by a number width on LG and up\n .col-xl-offset-<column number> // Offset by a number width on XL and up\n .first // Make a column first in order within a row\n .first-xs // Make a column first in order on XS and up\n .first-sm // Make a column first in order on SM and up\n .first-md // Make a column first in order on MD and up\n .first-lg // Make a column first in order on LG and up\n .first-xl // Make a column first in order on XL and up\n .last // Make a column last in order on XS and up\n .last-xs // Make a column last in order on XS and up\n .last-sm // Make a column last in order on SM and up\n .last-md // Make a column last in order on MD and up\n .last-lg // Make a column last in order on LG and up\n .last-xl // Make a column last in order on XL and up\n ",
visClassesExample: "\n .show // Show an element\n .show-xs // Show an element on XS and up\n .show-xs-only // Show an element on XS only\n .show-sm // Show an element on SM and up\n .show-sm-only // Show an element on SM only\n .show-md // Show an element on MD and up\n .show-md-only // Show an element on MD only\n .show-lg // Show an element on LG and up\n .show-lg-only // Show an element on LG only\n .show-xl // Show an element on XL screens\n .hide // Hide an element\n .hide-xs // Hide an element on XS and up\n .hide-xs-only // Hide an element on XS only\n .hide-sm // Hide an element on SM and up\n .hide-sm-only // Hide an element on SM only\n .hide-md // Hide an element on MD and up\n .hide-md-only // Hide an element on MD only\n .hide-lg // Hide an element on LG and up\n .hide-lg-only // Hide an element on LG only\n .hide-xl // Hide an element on XL screens\n "
};
module.exports = sassClassesObj;
},{}],9:[function(require,module,exports){
"use strict";
var indent = " ",
indentDouble = indent + indent,
indentTriple = indentDouble + indent,
indentQuadruple = indentTriple + indent,
indentQuintuple = indentQuadruple + indent,
indentSextuple = indentQuintuple + indent;
var sassMixinsObj = {
rowMixinsExample: "\n row(); // Define and element as a row\n row-reverse(); // Reverse the order of the row's children\n row-natural-height(); // Row children heights match their contents\n row-flex-column(); // Row children arrange vertically\n ",
colMixinsExample: "\n // Pass in breakpoint and number arguments to define a column\n col(<breakpoint prefix>, <number of columns>);\n " + indent + "\n // No breakpoint arg = xs-<number of columns>\n col(<number of columns>);\n " + indent + "\n // No args = auto-width column at the xs breakpoint\n col();\n " + indent + "\n // Pass in breakpoint and number arguments to offset a column\n col-offset(<breakpoint prefix>, <number of columns>);\n " + indent + "\n // Reverse the order of an auto width col\n col-reverse();\n ",
arrangeMixinsExample: "\n // apply to a row to arrange descendants\n start(<breakpoint prefix>); // Align to the beginning of the row\n center(<breakpoint prefix>); // Align to the center of the row\n end(<breakpoint prefix>); // Align to the end of the row\n top(<breakpoint prefix>); // Align to the top of the row\n middle(<breakpoint prefix>); // Align to the middle of the row\n bottom(<breakpoint prefix>); // Align to the bottom of the row\n around(<breakpoint prefix>); // Apply equal space around each row child\n between(<breakpoint prefix>); // Apply equal space between each row child\n " + indent + "\n // Apply to a column to arrange this element\n first(<breakpoint prefix>); // Make a column first in order within a row\n last(<breakpoint prefix>); // Make a column last in order on XS and up\n ",
visibilityMixinsExample: "\n show(<breakpoint range prefix>); // Show an element\n hide(<breakpoint range prefix>); // Hide an element\n "
};
module.exports = sassMixinsObj;
},{}],10:[function(require,module,exports){
"use strict";
var indent = " ",
indentDouble = indent + indent,
indentTriple = indentDouble + indent,
indentQuadruple = indentTriple + indent,
indentQuintuple = indentQuadruple + indent,
indentSextuple = indentQuintuple + indent;
var sassVarsObj = {
gridVarsExample: "\n $grid-columns: 12; // Set number of columns in the grid\n " + indent + "\n $xs-max: 40rem; // Set xs breakpoint's max width\n $sm-max: 64rem; // Set sm breakpoint's max width\n $md-max: 90rem; // Set md breakpoint's max width\n $lg-max: 120rem; // Set lg breakpoint's max width\n " + indent + "\n $gutter: 1rem; // Set gutter size\n " + indent + "\n $content-well-max-width: \"none\"; // Set the max-width of the content well\n " + indent + "\n $sm-start: ($xs-max + 1); // Generate sm breakpoint's min width\n $md-start: ($sm-max + 1); // Generate md breakpoint's min width\n $lg-start: ($md-max + 1); // Generate lg breakpoint's min width\n $xl-start: ($lg-max + 1); // Generate xl breakpoint's min width\n ",
breakpointVarsExample: "\n $breakpoint-xs-only: \"only screen and (max-width: #{$xs-max})\";\n $breakpoint-sm-up: \"only screen and (min-width: #{$sm-start})\";\n $breakpoint-sm-only: \"only screen and (min-width: #{$sm-start}) and (max-width: #{$sm-max})\";\n $breakpoint-md-up: \"only screen and (min-width: #{$md-start})\";\n $breakpoint-md-only: \"only screen and (min-width: #{$md-start}) and (max-width: #{$md-max})\";\n $breakpoint-lg-up: \"only screen and (min-width: #{$lg-start})\";\n $breakpoint-lg-only: \"only screen and (min-width: #{$lg-start}) and (max-width: #{$lg-max})\";\n $breakpoint-xl-up: \"only screen and (min-width: #{$xl-start})\";\n "
};
module.exports = sassVarsObj;
},{}],11:[function(require,module,exports){
'use strict';
var variablesCollection = [{
sectionId: 'gridVars',
codeBlockId: 'gridVarsExample',
title: 'Grid Control',
description: 'You can easily change the number of columns in your grid from the default 12. Update your breakpoint ranges by adjusting these variables and all of the media queries, classes and mixins will update accordingly.',
hasLink: false,
href: '',
linkContent: ''
}, {
sectionId: 'breakpointVars',
codeBlockId: 'breakpointVarsExample',
title: 'Breakpoint Ranges',
description: 'Breakpoint range variables are automagically created based on the grid variables.',
hasLink: false,
href: '',
linkContent: ''
}];
module.exports = variablesCollection;
},{}],12:[function(require,module,exports){
'use strict';
var mainObj = {
owner: 'Drew Botka',
githubUrl: 'https://github.com/drewbot',
currentYear: new Date().getFullYear(),
isTouchDevice: function isTouchDevice() {
return !!('ontouchstart' in window) || !!('msmaxtouchpoints' in window.navigator);
},
getCopyright: function getCopyright() {
return '© ' + this.currentYear + ' ' + this.owner + '. All Rights Reserved.';
},
getOwnerContent: function getOwnerContent() {
return 'Made by <a href="' + this.githubUrl + '">' + this.owner + '</a>';
}
};
module.exports = mainObj;
},{}],13:[function(require,module,exports){
"use strict";
var setMarkedOptions = function setMarkedOptions() {
return marked.setOptions({
breaks: true,
sanitize: true
});
};
module.exports = setMarkedOptions;
},{}]},{},[1]);
//# sourceMappingURL=../../maps/bundle.js.map
================================================
FILE: app/scripts/content/classes.js
================================================
var classesCollection = [
{
sectionId: 'rowClasses',
codeBlockId: 'rowClassesExample',
title: 'Row Classes',
description: 'Define how content is arranged horizontally and vertically. You can also get specific about ordering and distribution of space.',
hasLink: false,
href: '',
linkContent: ''
},
{
sectionId: 'colClasses',
codeBlockId: 'colClassesExample',
title: 'Column Classes',
description: 'Define column width and placement for each breakpoint or for a set range',
hasLink: false,
href: '',
linkContent: ''
},
{
sectionId: 'visClasses',
codeBlockId: 'visClassesExample',
title: 'Visibility Classes',
description: 'Hide and show content. Define visibility for each breakpoint or for a set range',
hasLink: false,
href: '',
linkContent: ''
}
];
module.exports = classesCollection;
================================================
FILE: app/scripts/content/documentation-obj.js
================================================
var indent = ` `,
indentDouble = indent + indent,
indentTriple = indentDouble + indent,
indentQuadruple = indentTriple + indent,
indentQuintuple = indentQuadruple + indent,
indentSextuple = indentQuintuple + indent;
var documentationObj = {
npmInstallationExample: `
npm install @drewbot/sass-flexbox-grid --save
`,
cssInstallationExample: `
// Full version
node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/main.css
// Minified version
node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/main.min.css
`,
sassInstallationExample: `
node_modules/@drewbot/sass-flexbox-grid/public/sass-flexbox/scss
`,
variableSetupExample: `
// .../sass-flexbox-grid/public/sass-flexbox/scss/variables/_grid-variables.scss
${indent}
$grid-columns: 12; // Set number of columns in the grid
${indent}
$xs-max: 40rem; // Set xs breakpoint's max width
$sm-max: 64rem; // Set sm breakpoint's max width
$md-max: 90rem; // Set md breakpoint's max width
$lg-max: 120rem; // Set lg breakpoint's max width
${indent}
$gutter: 1rem; // Set gutter size
${indent}
$content-well-max-width: "none"; // Set the max-width of the content well
`
}
module.exports = documentationObj;
================================================
FILE: app/scripts/content/documentation.js
================================================
var documentationCollection = [
{
sectionId: 'npmInstallation',
codeBlockId: 'npmInstallationExample',
title: 'NPM Install',
description: 'From the command line:',
hasLink: false,
href: 'https://www.npmjs.com/package/@drewbot/sass-flexbox-grid',
linkContent: 'View the NPM package webpage'
},
{
sectionId: 'cssInstallation',
codeBlockId: 'cssInstallationExample',
title: 'Link to CSS',
description: 'Link to the full CSS file or the minified version.',
hasLink: false,
href: '',
linkContent: ''
},
{
sectionId: 'sassInstallation',
codeBlockId: 'sassInstallationExample',
title: 'Sass Usage',
description: 'Copy the Sass folder over to your development directory in order to customize and preprocess on your own.',
hasLink: false,
href: '',
linkContent: ''
},
{
sectionId: 'variableSetup',
codeBlockId: 'variableSetupExample',
title: 'Customize Your Grid',
description: 'If you\'re using the Sass version of the library you can update _grid-variables.scss with your preferred number of columns, breakpoint sizes, gutter size, and content well max-width.',
hasLink: false,
href: '',
linkContent: ''
}
];
module.exports = documentationCollection;
================================================
FILE: app/scripts/content/examples.js
================================================
var indent = ` `,
indentDouble = indent + indent,
indentTriple = indentDouble + indent,
indentQuadruple = indentTriple + indent,
indentQuintuple = indentQuadruple + indent,
indentSextuple = indentQuintuple + indent;
var examplesObj = {
responsiveExample: `
<div class="row">
${indent}<div class="col-xs-12 col-sm-8 col-md-6 col-lg-4"></div>
</div>
`,
offsetsExample: `
<div class="row">
${indent}<div class="col-xs-offset-3 col-xs-9"></div>
</div>
`,
autoWidthExample: `
<div class="row">
${indent}<div class="col"></div>
${indent}<div class="col"></div>
</div>
`,
nestedExample: `
<div class="row">
${indent}<div class="col-xs">
${indentDouble}<div class="row">
${indentTriple}<div class="col-xs"></div>
${indentDouble}</div>
${indent}</div>
</div>
`,
alignmentExample: `
<div class="row start-xs">
${indent}<div class="col-xs-6">content</div>
</div>
`,
distributionExample: `
<div class="row around-xs">
${indent}<div class="col-xs-2"></div>
${indent}<div class="col-xs-2"></div>
${indent}<div class="col-xs-2"></div>
</div>
`,
reorderExample: `
<div class="row">
${indent}<div class="col-xs-2">1</div>
${indent}<div class="col-xs-2">2</div>
${indent}<div class="col-xs-2 first-xs">3</div>
${indent}...
</div>
`,
reverseExample: `
<div class="row reverse">
${indent}<div class="col-xs">1</div>
${indent}<div class="col-xs">2</div>
${indent}<div class="col-xs">3</div>
</div>
`,
variablesExample: `
gitextract_bd_8y92o/
├── .babelrc
├── .bowerrc
├── .csscomb.json
├── .editorconfig
├── .eslintrc
├── .gitattributes
├── .jsbeautifyrc
├── .tmp/
│ ├── fonts/
│ │ ├── Graphik/
│ │ │ ├── Graphik-Black.otf
│ │ │ ├── Graphik-BlackItalic.otf
│ │ │ ├── Graphik-Bold.otf
│ │ │ ├── Graphik-BoldItalic.otf
│ │ │ ├── Graphik-Extralight.otf
│ │ │ ├── Graphik-ExtralightItalic.otf
│ │ │ ├── Graphik-Light.otf
│ │ │ ├── Graphik-LightItalic.otf
│ │ │ ├── Graphik-Medium.otf
│ │ │ ├── Graphik-MediumItalic.otf
│ │ │ ├── Graphik-Regular.otf
│ │ │ ├── Graphik-RegularItalic.otf
│ │ │ ├── Graphik-Semibold.otf
│ │ │ ├── Graphik-SemiboldItalic.otf
│ │ │ ├── Graphik-Super.otf
│ │ │ ├── Graphik-SuperItalic.otf
│ │ │ ├── Graphik-Thin.otf
│ │ │ └── Graphik-ThinItalic.otf
│ │ └── Majesti-Banner/
│ │ ├── Majesti-Banner-Bold.otf
│ │ ├── Majesti-Banner-BoldItalic.otf
│ │ ├── Majesti-Banner-Book.otf
│ │ ├── Majesti-Banner-BookItalic.otf
│ │ ├── Majesti-Banner-Heavy.otf
│ │ ├── Majesti-Banner-HeavyItalic.otf
│ │ ├── Majesti-Banner-Light.otf
│ │ ├── Majesti-Banner-LightItalic.otf
│ │ ├── Majesti-Banner-Medium.otf
│ │ └── Majesti-Banner-MediumItalic.otf
│ └── styles/
│ └── main.css
├── .yo-rc.json
├── LICENSE.md
├── README.md
├── app/
│ ├── browserconfig.xml
│ ├── fonts/
│ │ ├── Graphik/
│ │ │ ├── Graphik-Black.otf
│ │ │ ├── Graphik-BlackItalic.otf
│ │ │ ├── Graphik-Bold.otf
│ │ │ ├── Graphik-BoldItalic.otf
│ │ │ ├── Graphik-Extralight.otf
│ │ │ ├── Graphik-ExtralightItalic.otf
│ │ │ ├── Graphik-Light.otf
│ │ │ ├── Graphik-LightItalic.otf
│ │ │ ├── Graphik-Medium.otf
│ │ │ ├── Graphik-MediumItalic.otf
│ │ │ ├── Graphik-Regular.otf
│ │ │ ├── Graphik-RegularItalic.otf
│ │ │ ├── Graphik-Semibold.otf
│ │ │ ├── Graphik-SemiboldItalic.otf
│ │ │ ├── Graphik-Super.otf
│ │ │ ├── Graphik-SuperItalic.otf
│ │ │ ├── Graphik-Thin.otf
│ │ │ └── Graphik-ThinItalic.otf
│ │ └── Majesti-Banner/
│ │ ├── Majesti-Banner-Bold.otf
│ │ ├── Majesti-Banner-BoldItalic.otf
│ │ ├── Majesti-Banner-Book.otf
│ │ ├── Majesti-Banner-BookItalic.otf
│ │ ├── Majesti-Banner-Heavy.otf
│ │ ├── Majesti-Banner-HeavyItalic.otf
│ │ ├── Majesti-Banner-Light.otf
│ │ ├── Majesti-Banner-LightItalic.otf
│ │ ├── Majesti-Banner-Medium.otf
│ │ └── Majesti-Banner-MediumItalic.otf
│ ├── index.html
│ ├── manifest.json
│ ├── robots.txt
│ ├── scripts/
│ │ ├── app.js
│ │ ├── bundle.js
│ │ ├── content/
│ │ │ ├── classes.js
│ │ │ ├── documentation-obj.js
│ │ │ ├── documentation.js
│ │ │ ├── examples.js
│ │ │ ├── mixins.js
│ │ │ ├── overview.js
│ │ │ ├── sass-classes.js
│ │ │ ├── sass-mixins.js
│ │ │ ├── sass-variables.js
│ │ │ └── variables.js
│ │ ├── main.js
│ │ ├── marked.js
│ │ └── router.js
│ ├── styles/
│ │ ├── _border-box-all.scss
│ │ ├── _element-defaults.scss
│ │ ├── _fonts.scss
│ │ ├── _reset.scss
│ │ ├── _unique.scss
│ │ ├── library/
│ │ │ ├── _grid.scss
│ │ │ ├── _visibility.scss
│ │ │ ├── main.scss
│ │ │ ├── mixins/
│ │ │ │ ├── _grid-mixins.scss
│ │ │ │ ├── _visibility-mixins.scss
│ │ │ │ └── main.scss
│ │ │ └── variables/
│ │ │ ├── _grid-variables.scss
│ │ │ └── main.scss
│ │ ├── main.scss
│ │ ├── mixins/
│ │ │ ├── _text-mixins.scss
│ │ │ └── main.scss
│ │ └── variables/
│ │ ├── _color-variables.scss
│ │ ├── _text-variables.scss
│ │ └── main.scss
│ └── views/
│ ├── classes/
│ │ └── index.html
│ ├── classes.html
│ ├── documentation.html
│ ├── mixins/
│ │ └── index.html
│ ├── mixins.html
│ ├── variables/
│ │ └── index.html
│ └── variables.html
├── app.js
├── bower.json
├── dist/
│ ├── browserconfig.xml
│ ├── fonts/
│ │ ├── Graphik/
│ │ │ ├── Graphik-Black.otf
│ │ │ ├── Graphik-BlackItalic.otf
│ │ │ ├── Graphik-Bold.otf
│ │ │ ├── Graphik-BoldItalic.otf
│ │ │ ├── Graphik-Extralight.otf
│ │ │ ├── Graphik-ExtralightItalic.otf
│ │ │ ├── Graphik-Light.otf
│ │ │ ├── Graphik-LightItalic.otf
│ │ │ ├── Graphik-Medium.otf
│ │ │ ├── Graphik-MediumItalic.otf
│ │ │ ├── Graphik-Regular.otf
│ │ │ ├── Graphik-RegularItalic.otf
│ │ │ ├── Graphik-Semibold.otf
│ │ │ ├── Graphik-SemiboldItalic.otf
│ │ │ ├── Graphik-Super.otf
│ │ │ ├── Graphik-SuperItalic.otf
│ │ │ ├── Graphik-Thin.otf
│ │ │ └── Graphik-ThinItalic.otf
│ │ └── Majesti-Banner/
│ │ ├── Majesti-Banner-Bold.otf
│ │ ├── Majesti-Banner-BoldItalic.otf
│ │ ├── Majesti-Banner-Book.otf
│ │ ├── Majesti-Banner-BookItalic.otf
│ │ ├── Majesti-Banner-Heavy.otf
│ │ ├── Majesti-Banner-HeavyItalic.otf
│ │ ├── Majesti-Banner-Light.otf
│ │ ├── Majesti-Banner-LightItalic.otf
│ │ ├── Majesti-Banner-Medium.otf
│ │ └── Majesti-Banner-MediumItalic.otf
│ ├── index.html
│ ├── manifest.json
│ ├── robots.txt
│ ├── scripts/
│ │ ├── bundle.js
│ │ ├── main.js
│ │ ├── vendor/
│ │ │ └── modernizr.js
│ │ └── vendor.js
│ ├── styles/
│ │ └── main.css
│ └── views/
│ ├── classes.html
│ ├── documentation.html
│ ├── mixins.html
│ └── variables.html
├── gulpfile.js
├── package.json
├── public/
│ └── sass-flexbox/
│ ├── main.css
│ └── scss/
│ ├── _grid.scss
│ ├── _visibility.scss
│ ├── main.scss
│ ├── mixins/
│ │ ├── _grid-mixins.scss
│ │ ├── _visibility-mixins.scss
│ │ └── main.scss
│ └── variables/
│ ├── _grid-variables.scss
│ └── main.scss
└── test/
├── index.html
└── spec/
└── test.js
SYMBOL INDEX (160 symbols across 8 files)
FILE: app.js
function normalizePort (line 5) | function normalizePort(val) {
FILE: app/scripts/bundle.js
function r (line 1) | function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==...
function _interopRequireDefault (line 52) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
FILE: app/scripts/main.js
method isTouchDevice (line 5) | isTouchDevice() {
method getCopyright (line 8) | getCopyright() {
method getOwnerContent (line 11) | getOwnerContent() {
FILE: dist/scripts/bundle.js
function r (line 1) | function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==...
function _interopRequireDefault (line 52) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
FILE: dist/scripts/main.js
function r (line 1) | function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==...
function _interopRequireDefault (line 52) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
FILE: dist/scripts/vendor.js
function isArraylike (line 533) | function isArraylike( obj ) {
function Sizzle (line 750) | function Sizzle( selector, context, results, seed ) {
function createCache (line 864) | function createCache() {
function markFunction (line 882) | function markFunction( fn ) {
function assert (line 891) | function assert( fn ) {
function addHandle (line 913) | function addHandle( attrs, handler ) {
function siblingCheck (line 928) | function siblingCheck( a, b ) {
function createInputPseudo (line 955) | function createInputPseudo( type ) {
function createButtonPseudo (line 966) | function createButtonPseudo( type ) {
function createPositionalPseudo (line 977) | function createPositionalPseudo( fn ) {
function testContext (line 1000) | function testContext( context ) {
function setFilters (line 2009) | function setFilters() {}
function toSelector (line 2080) | function toSelector( tokens ) {
function addCombinator (line 2090) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2143) | function elementMatcher( matchers ) {
function multipleContexts (line 2157) | function multipleContexts( selector, contexts, results ) {
function condense (line 2166) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2187) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2280) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2338) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function winnow (line 2634) | function winnow( elements, qualifier, not ) {
function sibling (line 2958) | function sibling( cur, dir ) {
function createOptions (line 3036) | function createOptions( options ) {
function completed (line 3430) | function completed() {
function Data (line 3535) | function Data() {
function dataAttr (line 3726) | function dataAttr( elem, key, data ) {
function returnTrue (line 4066) | function returnTrue() {
function returnFalse (line 4070) | function returnFalse() {
function safeActiveElement (line 4074) | function safeActiveElement() {
function manipulationTarget (line 4946) | function manipulationTarget( elem, content ) {
function disableScript (line 4956) | function disableScript( elem ) {
function restoreScript (line 4960) | function restoreScript( elem ) {
function setGlobalEval (line 4973) | function setGlobalEval( elems, refElements ) {
function cloneCopyEvent (line 4984) | function cloneCopyEvent( src, dest ) {
function getAll (line 5018) | function getAll( context, tag ) {
function fixInput (line 5029) | function fixInput( src, dest ) {
function actualDisplay (line 5484) | function actualDisplay( name, doc ) {
function defaultDisplay (line 5506) | function defaultDisplay( nodeName ) {
function curCSS (line 5553) | function curCSS( elem, name, computed ) {
function addGetHookIf (line 5601) | function addGetHookIf( conditionFn, hookFn ) {
function computePixelPositionAndBoxSizingReliable (line 5641) | function computePixelPositionAndBoxSizingReliable() {
function vendorPropName (line 5746) | function vendorPropName( style, name ) {
function setPositiveNumber (line 5768) | function setPositiveNumber( elem, value, subtract ) {
function augmentWidthOrHeight (line 5776) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
function getWidthOrHeight (line 5815) | function getWidthOrHeight( elem, name, extra ) {
function showHide (line 5859) | function showHide( elements, show ) {
function Tween (line 6157) | function Tween( elem, options, prop, end, easing ) {
function createFxNow (line 6326) | function createFxNow() {
function genFx (line 6334) | function genFx( type, includeWidth ) {
function createTween (line 6354) | function createTween( value, prop, animation ) {
function defaultPrefilter (line 6368) | function defaultPrefilter( elem, props, opts ) {
function propFilter (line 6501) | function propFilter( props, specialEasing ) {
function Animation (line 6538) | function Animation( elem, properties, options ) {
function addToPrefiltersOrTransports (line 7586) | function addToPrefiltersOrTransports( structure ) {
function inspectPrefiltersOrTransports (line 7618) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
function ajaxExtend (line 7645) | function ajaxExtend( target, src ) {
function ajaxHandleResponses (line 7665) | function ajaxHandleResponses( s, jqXHR, responses ) {
function ajaxConvert (line 7721) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
function done (line 8179) | function done( status, nativeStatusText, responses, headers ) {
function buildParams (line 8423) | function buildParams( prefix, obj, traditional, add ) {
function getWindow (line 8917) | function getWindow( elem ) {
function Lexer (line 9319) | function Lexer(options) {
function InlineLexer (line 9755) | function InlineLexer(links, options) {
function Renderer (line 10001) | function Renderer(options) {
function TextRenderer (line 10156) | function TextRenderer() {}
function Parser (line 10181) | function Parser(options) {
function escape (line 10365) | function escape(html, encode) {
function unescape (line 10374) | function unescape(html) {
function edit (line 10388) | function edit(regex, opt) {
function resolveUrl (line 10404) | function resolveUrl(base, href) {
function noop (line 10428) | function noop() {}
function merge (line 10431) | function merge(obj) {
function marked (line 10452) | function marked(src, opt, callback) {
function __webpack_require__ (line 10642) | function __webpack_require__(moduleId) {
function create (line 10716) | function create() {
function create (line 10801) | function create() {
function HandlebarsEnvironment (line 10896) | function HandlebarsEnvironment(helpers, partials, decorators) {
function escapeChar (line 10987) | function escapeChar(chr) {
function extend (line 10991) | function extend(obj /* , ...source */) {
function indexOf (line 11031) | function indexOf(array, value) {
function escapeExpression (line 11040) | function escapeExpression(string) {
function isEmpty (line 11063) | function isEmpty(value) {
function createFrame (line 11073) | function createFrame(object) {
function blockParams (line 11079) | function blockParams(params, ids) {
function appendContextPath (line 11084) | function appendContextPath(contextPath, id) {
function Exception (line 11100) | function Exception(message, node) {
function registerDefaultHelpers (line 11220) | function registerDefaultHelpers(instance) {
function execIteration (line 11314) | function execIteration(field, index, last) {
function registerDefaultDecorators (line 11529) | function registerDefaultDecorators(instance) {
function SafeString (line 11625) | function SafeString(string) {
function checkRevision (line 11666) | function checkRevision(compilerInfo) {
function template (line 11682) | function template(templateSpec, env) {
function wrapProgram (line 11850) | function wrapProgram(container, i, fn, data, declaredBlockParams, blockP...
function resolvePartial (line 11870) | function resolvePartial(partial, context, options) {
function invokePartial (line 11885) | function invokePartial(partial, context, options) {
function noop (line 11925) | function noop() {
function initData (line 11929) | function initData(context, data) {
function executeDecorators (line 11937) | function executeDecorators(fn, prog, container, depths, data, blockParam...
function parse (line 12200) | function parse(input, options) {
function popStack (line 12511) | function popStack(n) {
function lex (line 12516) | function lex() {
function strip (line 12773) | function strip(start, end) {
function Parser (line 12953) | function Parser() {
function WhitespaceControl (line 12974) | function WhitespaceControl() {
function isPrevWhitespace (line 13110) | function isPrevWhitespace(body, i, isRoot) {
function isNextWhitespace (line 13127) | function isNextWhitespace(body, i, isRoot) {
function omitRight (line 13150) | function omitRight(body, i, multiple) {
function omitLeft (line 13168) | function omitLeft(body, i, multiple) {
function Visitor (line 13198) | function Visitor() {
function visitSubExpression (line 13307) | function visitSubExpression(mustache) {
function visitBlock (line 13312) | function visitBlock(block) {
function visitPartial (line 13318) | function visitPartial(partial) {
function validateClose (line 13351) | function validateClose(open, close) {
function SourceLocation (line 13361) | function SourceLocation(source, locInfo) {
function id (line 13373) | function id(token) {
function stripFlags (line 13381) | function stripFlags(open, close) {
function stripComment (line 13388) | function stripComment(comment) {
function preparePath (line 13392) | function preparePath(data, parts, loc) {
function prepareMustache (line 13430) | function prepareMustache(path, params, hash, open, strip, locInfo) {
function prepareRawBlock (line 13447) | function prepareRawBlock(openRawBlock, contents, close, locInfo) {
function prepareBlock (line 13471) | function prepareBlock(openBlock, program, inverseAndProgram, close, inve...
function prepareProgram (line 13516) | function prepareProgram(statements, loc) {
function preparePartialBlock (line 13545) | function preparePartialBlock(open, program, close, locInfo) {
function Compiler (line 13587) | function Compiler() {}
function precompile (line 14041) | function precompile(input, options, env) {
function compile (line 14059) | function compile(input, options, env) {
function argEquals (line 14105) | function argEquals(a, b) {
function transformLiteralToPath (line 14120) | function transformLiteralToPath(sexpr) {
function Literal (line 14158) | function Literal(value) {
function JavaScriptCompiler (line 14162) | function JavaScriptCompiler() {}
function strictLookup (line 15245) | function strictLookup(requireTerminal, compiler, parts, type) {
function castChunk (line 15322) | function castChunk(chunk, codeGen, loc) {
function CodeGen (line 15337) | function CodeGen(srcFile) {
FILE: dist/scripts/vendor/modernizr.js
function isEventSupported (line 193) | function isEventSupported( eventName, element ) {
function setCss (line 289) | function setCss( str ) {
function setCssAll (line 296) | function setCssAll( str1, str2 ) {
function is (line 303) | function is( obj, type ) {
function contains (line 310) | function contains( str, substr ) {
function testProps (line 334) | function testProps( props, prefixed ) {
function testDOMProps (line 350) | function testDOMProps( props, obj, elem ) {
function testPropsAll (line 378) | function testPropsAll( prop, prefixed, elem ) {
function webforms (line 849) | function webforms() {
function addStyleSheet (line 1073) | function addStyleSheet(ownerDocument, cssText) {
function getElements (line 1086) | function getElements() {
function getExpandoData (line 1097) | function getExpandoData(ownerDocument) {
function createElement (line 1115) | function createElement(nodeName, ownerDocument, data){
function createDocumentFragment (line 1151) | function createDocumentFragment(ownerDocument, data){
function shivMethods (line 1175) | function shivMethods(ownerDocument, data) {
function shivDocument (line 1213) | function shivDocument(ownerDocument) {
FILE: gulpfile.js
function lint (line 44) | function lint(files, options) {
Condensed preview — 168 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,091K chars).
[
{
"path": ".babelrc",
"chars": 36,
"preview": "{\n \"presets\": [\n \"es2015\"\n ]\n}\n"
},
{
"path": ".bowerrc",
"chars": 38,
"preview": "{\n \"directory\": \"bower_components\"\n}\n"
},
{
"path": ".csscomb.json",
"chars": 7063,
"preview": "{\n\t\"remove-empty-rulesets\": true,\n\t\"always-semicolon\": true,\n\t\"color-case\": \"lower\",\n\t\"block-indent\": \"\\t\",\n\t\"element-ca"
},
{
"path": ".editorconfig",
"chars": 476,
"preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
},
{
"path": ".eslintrc",
"chars": 777,
"preview": "{\n\t\"parser\": \"babel-eslint\",\n\t\"extends\": \"airbnb/base\",\n\t\"env\": {\n\t\t\"node\": true,\n\t\t\"mocha\": true,\n\t\t\"browser\": true,\n\t\t"
},
{
"path": ".gitattributes",
"chars": 11,
"preview": "* text=auto"
},
{
"path": ".jsbeautifyrc",
"chars": 1444,
"preview": "{\n\t\"html\": {\n\t\t\"allowed_file_extensions\": [ \"htm\", \"html\", \"xhtml\", \"shtml\", \"xml\", \"svg\", \"hbs\", \"tag\" ],\n\t\t\"brace_styl"
},
{
"path": ".tmp/fonts/Graphik/Graphik-Extralight.otf",
"chars": 0,
"preview": ""
},
{
"path": ".tmp/styles/main.css",
"chars": 135790,
"preview": "@import url(\"https://fonts.googleapis.com/css?family=PT+Mono\");\n.row {\n box-sizing: border-box;\n margin: 0 auto;\n wid"
},
{
"path": ".yo-rc.json",
"chars": 64,
"preview": "{\n \"generator-mocha\": {\n \"ui\": \"tdd\",\n \"rjs\": false\n }\n}"
},
{
"path": "LICENSE.md",
"chars": 1076,
"preview": "The MIT License (MIT)\nCopyright (c) 2018 Drew Botka\n\nPermission is hereby granted, free of charge, to any person obtaini"
},
{
"path": "README.md",
"chars": 2510,
"preview": "# Sass Flexbox Grid\n\nDocumentation and examples available at [sassflexboxgrid.com](http://sassflexboxgrid.com/)\n\n## Over"
},
{
"path": "app/browserconfig.xml",
"chars": 281,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<browserconfig><msapplication><tile><square70x70logo src=\"/ms-icon-70x70.png\"/><s"
},
{
"path": "app/fonts/Graphik/Graphik-Extralight.otf",
"chars": 0,
"preview": ""
},
{
"path": "app/index.html",
"chars": 12699,
"preview": "<!doctype html>\n<html class=\"no-js\" lang=\"\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"description\" content=\"\""
},
{
"path": "app/manifest.json",
"chars": 720,
"preview": "{\n \"name\": \"App\",\n \"icons\": [\n {\n \"src\": \"\\/android-icon-36x36.png\",\n \"sizes\": \"36x36\",\n \"type\": \"image\\/png\",\n "
},
{
"path": "app/robots.txt",
"chars": 43,
"preview": "# robotstxt.org/\n\nUser-agent: * \nDisallow:\n"
},
{
"path": "app/scripts/app.js",
"chars": 1968,
"preview": "// import customRouter from './router.js';\nimport setMarkedOptions from './marked.js';\nimport mainObj from './main.js';\n"
},
{
"path": "app/scripts/bundle.js",
"chars": 27150,
"preview": "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)ret"
},
{
"path": "app/scripts/content/classes.js",
"chars": 884,
"preview": "var classesCollection = [\n {\n sectionId: 'rowClasses',\n codeBlockId: 'rowClassesExample',\n title: 'Row Classes"
},
{
"path": "app/scripts/content/documentation-obj.js",
"chars": 1248,
"preview": "var indent = ` `,\n indentDouble = indent + indent,\n indentTriple = indentDouble + indent,\n indentQua"
},
{
"path": "app/scripts/content/documentation.js",
"chars": 1273,
"preview": "var documentationCollection = [\n {\n sectionId: 'npmInstallation',\n codeBlockId: 'npmInstallationExample',\n tit"
},
{
"path": "app/scripts/content/examples.js",
"chars": 5751,
"preview": "var indent = ` `,\n indentDouble = indent + indent,\n indentTriple = indentDouble + indent,\n indentQua"
},
{
"path": "app/scripts/content/mixins.js",
"chars": 995,
"preview": "var mixinsCollection = [\n {\n sectionId: 'rowMixins',\n codeBlockId: 'rowMixinsExample',\n title: 'Row Mixins',\n "
},
{
"path": "app/scripts/content/overview.js",
"chars": 3577,
"preview": "var overviewCollection = [\n {\n sectionId: 'responsive',\n codeBlockId: 'responsiveExample',\n title: 'Responsive"
},
{
"path": "app/scripts/content/sass-classes.js",
"chars": 3694,
"preview": "var indent = ` `,\n indentDouble = indent + indent,\n indentTriple = indentDouble + indent,\n indentQua"
},
{
"path": "app/scripts/content/sass-mixins.js",
"chars": 2039,
"preview": "var indent = ` `,\n indentDouble = indent + indent,\n indentTriple = indentDouble + indent,\n indentQua"
},
{
"path": "app/scripts/content/sass-variables.js",
"chars": 1663,
"preview": "var indent = ` `,\n indentDouble = indent + indent,\n indentTriple = indentDouble + indent,\n indentQua"
},
{
"path": "app/scripts/content/variables.js",
"chars": 725,
"preview": "var variablesCollection = [\n {\n sectionId: 'gridVars',\n codeBlockId: 'gridVarsExample',\n title: 'Grid Control'"
},
{
"path": "app/scripts/main.js",
"chars": 458,
"preview": "var mainObj = {\n owner: 'Drew Botka',\n githubUrl: `https://github.com/drewbot`,\n currentYear: new Date().getFullYear("
},
{
"path": "app/scripts/marked.js",
"chars": 170,
"preview": "var setMarkedOptions = function() {\n return marked.setOptions({\n breaks: true,\n sanitize: true\n "
},
{
"path": "app/scripts/router.js",
"chars": 845,
"preview": "// var root = null,\n// useHash = false,\n// router = new Navigo(root, useHash),\n// $allViews = $( '[id|=\"view"
},
{
"path": "app/styles/_border-box-all.scss",
"chars": 174,
"preview": "/* apply a natural box layout model to all elements, but allowing components to change */\nhtml {\n box-sizing: border-bo"
},
{
"path": "app/styles/_element-defaults.scss",
"chars": 2612,
"preview": "\nhtml {\n font-size: 10px;\n}\n\nbody {\n font-family: $graphik;\n}\n\nh1 {\n font-family: $majesti;\n @include font-size-line"
},
{
"path": "app/styles/_fonts.scss",
"chars": 571,
"preview": "@import url('https://fonts.googleapis.com/css?family=PT+Mono');\n\n@font-face {\n font-family: \"graphik-regular\";\n sr"
},
{
"path": "app/styles/_reset.scss",
"chars": 1089,
"preview": "/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, sp"
},
{
"path": "app/styles/_unique.scss",
"chars": 5554,
"preview": "h4 {\n color: $white;\n line-height: 2.2rem;\n @media #{$breakpoint-sm-up} {\n line-height: 2.2rem;\n }\n @media #{$br"
},
{
"path": "app/styles/library/_grid.scss",
"chars": 2652,
"preview": "// Creds to https://github.com/kristoferjoseph/flexboxgrid\n// No gutters\n// No text alignment with justified container c"
},
{
"path": "app/styles/library/_visibility.scss",
"chars": 1805,
"preview": "\n.show {\n display: block !important;\n}\n\n.row.show {\n display: -webkit-flex !important;\n display: -ms-flexbox !importa"
},
{
"path": "app/styles/library/main.scss",
"chars": 131,
"preview": "@import \"variables/main.scss\";\n@import \"mixins/main.scss\";\n@import \"grid\";\n@import \"visibility\"; // Visibility last for "
},
{
"path": "app/styles/library/mixins/_grid-mixins.scss",
"chars": 10877,
"preview": "@mixin row($full-width: \"false\") {\n box-sizing: border-box;\n margin: 0 auto;\n width: 100%;\n display: -webkit-flex;\n "
},
{
"path": "app/styles/library/mixins/_visibility-mixins.scss",
"chars": 2837,
"preview": "@mixin show($breakpoint, $row) {\n @if $breakpoint == \"xs\" {\n @if $row == \"true\" or $row == \"row\" {\n display: fl"
},
{
"path": "app/styles/library/mixins/main.scss",
"chars": 73,
"preview": "// mixins/main.scss\n\n@import \"visibility-mixins\";\n@import \"grid-mixins\";\n"
},
{
"path": "app/styles/library/variables/_grid-variables.scss",
"chars": 2012,
"preview": "// Grid\n$grid-columns: 12 !default; // Set number of columns in the grid\n\n$xs-max: 40rem !default; // Set xs breakpoint'"
},
{
"path": "app/styles/library/variables/main.scss",
"chars": 50,
"preview": "// variables/main.scss\n\n@import \"grid-variables\";\n"
},
{
"path": "app/styles/main.scss",
"chars": 245,
"preview": "// bower:scss\n// endbower\n\n@import \"library/main.scss\"; // Sass-Flexbox library\n@import \"reset\";\n@import \"border-box-all"
},
{
"path": "app/styles/mixins/_text-mixins.scss",
"chars": 126,
"preview": "// Text Mixins\n\n@mixin font-size-line-height($size) {\n font-size: $size;\n line-height: ($line-height-multiplier * $siz"
},
{
"path": "app/styles/mixins/main.scss",
"chars": 44,
"preview": "// mixins/main.scss\n\n@import \"text-mixins\";\n"
},
{
"path": "app/styles/variables/_color-variables.scss",
"chars": 577,
"preview": "// Colors\n$white: #ffffff;\n$black: #000000;\n$slate: #7B7B7B;\n$darkslate: #303030;\n$lightslate: #F5F5F5;\n$bronze: #88714D"
},
{
"path": "app/styles/variables/_text-variables.scss",
"chars": 292,
"preview": "// fonts\n$majesti: \"majesti-banner-book\", serif;\n$graphik: \"graphik-regular\", helvetica, sans-serif;\n$graphik-medium: \"g"
},
{
"path": "app/styles/variables/main.scss",
"chars": 77,
"preview": "// variables/main.scss\n\n@import \"text-variables\";\n@import \"color-variables\";\n"
},
{
"path": "app/views/classes/index.html",
"chars": 6179,
"preview": "<!doctype html>\n<html class=\"no-js\" lang=\"\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"description\" content=\"\""
},
{
"path": "app/views/classes.html",
"chars": 6296,
"preview": "<!doctype html>\n<html class=\"no-js\" lang=\"\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"description\" content=\"\""
},
{
"path": "app/views/documentation.html",
"chars": 7452,
"preview": "<!doctype html>\n<html class=\"no-js\" lang=\"\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"description\" content=\"\""
},
{
"path": "app/views/mixins/index.html",
"chars": 6115,
"preview": "<!doctype html>\n<html class=\"no-js\" lang=\"\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"description\" content=\"\""
},
{
"path": "app/views/mixins.html",
"chars": 6232,
"preview": "<!doctype html>\n<html class=\"no-js\" lang=\"\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"description\" content=\"\""
},
{
"path": "app/views/variables/index.html",
"chars": 6074,
"preview": "<!doctype html>\n<html class=\"no-js\" lang=\"\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"description\" content=\"\""
},
{
"path": "app/views/variables.html",
"chars": 6187,
"preview": "<!doctype html>\n<html class=\"no-js\" lang=\"\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"description\" content=\"\""
},
{
"path": "app.js",
"chars": 515,
"preview": "var express = require('express');\nvar app = express();\nvar port = normalizePort(process.env.PORT || '3000');\n\nfunction n"
},
{
"path": "bower.json",
"chars": 280,
"preview": "{\n \"name\": \"web-boilerplate\",\n \"private\": true,\n \"dependencies\": {\n \"jquery\": \"~2.1.1\",\n \"modernizr\": \"~2.8.1\","
},
{
"path": "dist/browserconfig.xml",
"chars": 281,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<browserconfig><msapplication><tile><square70x70logo src=\"/ms-icon-70x70.png\"/><s"
},
{
"path": "dist/fonts/Graphik/Graphik-Extralight.otf",
"chars": 0,
"preview": ""
},
{
"path": "dist/index.html",
"chars": 9343,
"preview": "<!doctype html><html class=\"no-js\" lang=\"\"><head><meta charset=\"utf-8\"><meta name=\"description\" content=\"\"><meta name=\"v"
},
{
"path": "dist/manifest.json",
"chars": 720,
"preview": "{\n \"name\": \"App\",\n \"icons\": [\n {\n \"src\": \"\\/android-icon-36x36.png\",\n \"sizes\": \"36x36\",\n \"type\": \"image\\/png\",\n "
},
{
"path": "dist/robots.txt",
"chars": 43,
"preview": "# robotstxt.org/\n\nUser-agent: * \nDisallow:\n"
},
{
"path": "dist/scripts/bundle.js",
"chars": 27103,
"preview": "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)ret"
},
{
"path": "dist/scripts/main.js",
"chars": 27150,
"preview": "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)ret"
},
{
"path": "dist/scripts/vendor/modernizr.js",
"chars": 51351,
"preview": "/*!\n * Modernizr v2.8.3\n * www.modernizr.com\n *\n * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton\n * Available under "
},
{
"path": "dist/scripts/vendor.js",
"chars": 446801,
"preview": "/*!\n * jQuery JavaScript Library v2.1.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Cop"
},
{
"path": "dist/styles/main.css",
"chars": 25552,
"preview": "@import url(\"https://fonts.googleapis.com/css?family=PT+Mono\");.row{box-sizing:border-box;margin:0 auto;width:100%;displ"
},
{
"path": "dist/views/classes.html",
"chars": 5351,
"preview": "<!doctype html><html class=\"no-js\" lang=\"\"><head><meta charset=\"utf-8\"><meta name=\"description\" content=\"\"><meta name=\"v"
},
{
"path": "dist/views/documentation.html",
"chars": 6122,
"preview": "<!doctype html><html class=\"no-js\" lang=\"\"><head><meta charset=\"utf-8\"><meta name=\"description\" content=\"\"><meta name=\"v"
},
{
"path": "dist/views/mixins.html",
"chars": 5280,
"preview": "<!doctype html><html class=\"no-js\" lang=\"\"><head><meta charset=\"utf-8\"><meta name=\"description\" content=\"\"><meta name=\"v"
},
{
"path": "dist/views/variables.html",
"chars": 5249,
"preview": "<!doctype html><html class=\"no-js\" lang=\"\"><head><meta charset=\"utf-8\"><meta name=\"description\" content=\"\"><meta name=\"v"
},
{
"path": "gulpfile.js",
"chars": 13226,
"preview": "// generated on 2016-12-01 using generator-webapp 2.1.0\nconst gulp = require('gulp');\nconst gulpLoadPlugins = require('g"
},
{
"path": "package.json",
"chars": 2000,
"preview": "{\n \"name\": \"@drewbot/sass-flexbox-grid\",\n \"version\": \"2.0.7\",\n \"description\": \"A responsive sass grid library built w"
},
{
"path": "public/sass-flexbox/main.css",
"chars": 83164,
"preview": ".row {\n box-sizing: border-box;\n margin: 0 auto;\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0"
},
{
"path": "public/sass-flexbox/scss/_grid.scss",
"chars": 2652,
"preview": "// Creds to https://github.com/kristoferjoseph/flexboxgrid\n// No gutters\n// No text alignment with justified container c"
},
{
"path": "public/sass-flexbox/scss/_visibility.scss",
"chars": 1805,
"preview": "\n.show {\n display: block !important;\n}\n\n.row.show {\n display: -webkit-flex !important;\n display: -ms-flexbox !importa"
},
{
"path": "public/sass-flexbox/scss/main.scss",
"chars": 131,
"preview": "@import \"variables/main.scss\";\n@import \"mixins/main.scss\";\n@import \"grid\";\n@import \"visibility\"; // Visibility last for "
},
{
"path": "public/sass-flexbox/scss/mixins/_grid-mixins.scss",
"chars": 10877,
"preview": "@mixin row($full-width: \"false\") {\n box-sizing: border-box;\n margin: 0 auto;\n width: 100%;\n display: -webkit-flex;\n "
},
{
"path": "public/sass-flexbox/scss/mixins/_visibility-mixins.scss",
"chars": 2837,
"preview": "@mixin show($breakpoint, $row) {\n @if $breakpoint == \"xs\" {\n @if $row == \"true\" or $row == \"row\" {\n display: fl"
},
{
"path": "public/sass-flexbox/scss/mixins/main.scss",
"chars": 73,
"preview": "// mixins/main.scss\n\n@import \"visibility-mixins\";\n@import \"grid-mixins\";\n"
},
{
"path": "public/sass-flexbox/scss/variables/_grid-variables.scss",
"chars": 2012,
"preview": "// Grid\n$grid-columns: 12 !default; // Set number of columns in the grid\n\n$xs-max: 40rem !default; // Set xs breakpoint'"
},
{
"path": "public/sass-flexbox/scss/variables/main.scss",
"chars": 50,
"preview": "// variables/main.scss\n\n@import \"grid-variables\";\n"
},
{
"path": "test/index.html",
"chars": 753,
"preview": "<!doctype html>\n<html>\n<head>\n <meta charset=\"utf-8\">\n <title>Mocha Spec Runner</title>\n <link rel=\"stylesheet\" href="
},
{
"path": "test/spec/test.js",
"chars": 229,
"preview": "(function () {\n 'use strict';\n\n describe('Give it some context', function () {\n describe('maybe a bit more context "
}
]
// ... and 81 more files (download for full content)
About this extraction
This page contains the full source code of the drewbot/sass-flexbox-grid GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 168 files (998.8 KB), approximately 354.6k tokens, and a symbol index with 160 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.