/*! modern-normalize v0.6.0 | MIT License | https://github.com/sindresorhus/modern-normalize */

/*
Document
========
*/

/**
Use a better box model (opinionated).
*/

*,
*::before,
*::after {
	box-sizing: border-box;
}

/**
Use a more readable tab size (opinionated).
*/

:root {
	-moz-tab-size: 4;
	-o-tab-size: 4;
	   tab-size: 4;
}

/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
*/

html {
	line-height: 1.15; /* 1 */
	-webkit-text-size-adjust: 100%; /* 2 */
}

/*
Sections
========
*/

/**
Remove the margin in all browsers.
*/

body {
	margin: 0;
}

/**
Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/

body {
	font-family:
		system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, 
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
}

/*
Grouping content
================
*/

/**
Add the correct height in Firefox.
*/

hr {
	height: 0;
}

/*
Text-level semantics
====================
*/

/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr[title] {
	text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/

b,
strong {
	font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
	font-family:
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/

small {
	font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/*
Forms
=====
*/

/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/

button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
1. Remove the inheritance of text transform in Firefox.
*/

button,
select { /* 1 */
	text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type='button'],
[type='reset'],
[type='submit'] {
	-webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/

button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/

button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
Correct the padding in Firefox.
*/

fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/

legend {
	padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
	vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/

[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
	height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/

[type='search']::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/

::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}

/*
Interactive
===========
*/

/*
Add the correct display in Chrome and Safari.
*/

summary {
	display: list-item;
}

:root {
  --max-content-width: 30em;

  --color-black: #101010;
  --color-azuri: #067df7;
  --color-razzmatazz: #de0f77;
  --color-purple: #be27dc;
  --color-light-purple: #faedfc;
  --color-body: #222;
  --color-emperor: #555;
  --color-silver: #bbb;
  --color-mercury: #eaeaea;
  --color-concrete: #f3f3f3;
  --color-white: #fff;

  --font: 'Roboto', Helvetica, Arial, sans-serif;
  --font-code: 'FiraCode', 'Roboto Mono', monospace, serif;

  --shadow: 0 2px 8px 2px rgba(0, 0, 0, .075);
  --shadow-subtle: 0 2px 8px 2px rgba(0, 0, 0, .025);

  --space-xs: .25rem;
  --space-sm: .5rem;
  --space: 1rem;
  --space-lg: 2rem;
  --space-xl: 4rem;

  --size-sm: .75em;
  --size: 1em;
  --size-lg: 1.25em;
  --size-xl: 1.75em;

  --breakpoint-mobile: 500px;
}

@font-face {
  font-family: 'Roboto';
  src: local('Roboto'),
       url('/assets/fonts/roboto-bold.woff2') format('woff2'),
       url('/assets/fonts/roboto-bold.woff') format('woff');
  font-weight: bold;
}

@font-face {
  font-family: 'Roboto';
  src: local('Roboto'),
       url('/assets/fonts/roboto-italic.woff2') format('woff2'),
       url('/assets/fonts/roboto-italic.woff') format('woff');
  font-style: italic;
}

@font-face {
  font-family: 'Roboto';
  src: local('Roboto'),
       url('/assets/fonts/roboto-regular.woff2') format('woff2'),
       url('/assets/fonts/roboto-regular.woff') format('woff');
}

@font-face {
  font-family: 'FiraCode';
  src: local('FiraCode'),
       url('/assets/fonts/FiraCode-Bold.woff2') format('woff2'),
       url('/assets/fonts/FiraCode-Bold.woff') format('woff');
  font-weight: bold;
}

@font-face {
  font-family: 'FiraCode';
  src: local('FiraCode'),
       url('/assets/fonts/FiraCode-Regular.woff2') format('woff2'),
       url('/assets/fonts/FiraCode-Regular.woff') format('woff');
}

html {
  background: #be27dc;
  background: var(--color-purple);
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  background: #fff;
  background: var(--color-white);
  color: #101010;
  color: var(--color-black);
  font-family: 'Roboto', Helvetica, Arial, sans-serif;
  font-family: var(--font);
  font-size: 18px;
  margin: 0;
  line-height: 1.4;
  text-rendering: optimizeLegibility;
}

::-moz-selection {
  color: #fff;
  color: var(--color-white);
  background: #be27dc;
  background: var(--color-purple);
}

::selection {
  color: #fff;
  color: var(--color-white);
  background: #be27dc;
  background: var(--color-purple);
}

::-moz-selection {
  color: #fff;
  color: var(--color-white);
  background: #be27dc;
  background: var(--color-purple);
}

main {
  padding: 1rem;
  padding: var(--space);
}

.wrap {
  max-width: 30em;
  max-width: var(--max-content-width);
  margin: 0 auto;
}

h1, h2, h3 {
  margin: 1rem 0 .5rem 0;
  margin: var(--space) 0 var(--space-sm) 0
}

h1 + p, h2 + p, h3 + p {
    margin-top: 0;
  }

h1 {
  font-size: 1.75em;
  font-size: var(--size-xl);
}

h2 {
  margin-top: 2rem;
  margin-top: var(--space-lg);
}

p, ul, ol {
  color: #222;
  color: var(--color-body);
}

h2 + p {
  margin-top: .5rem;
  margin-top: var(--space-sm);
}

a {
  color: #067df7;
  color: var(--color-azuri);
  text-decoration: none
}

a:hover {
    text-decoration: underline;
  }

ul, ol {
  padding-left: 1.1em;
}

ul > li,
ol > li {
  margin-bottom: .3em;
}

img {
  box-shadow: 0 2px 8px 2px rgba(0, 0, 0, .075);
  box-shadow: var(--shadow);
  display: block;
  max-width: 100%;
}

.subtitle {
  margin-top: calc(.5rem * -1);
  margin-top: calc(var(--space-sm) * -1);
  font-size: 1.25em;
  font-size: var(--size-lg);
}

.arrow-link {
  font-family: 'FiraCode', 'Roboto Mono', monospace, serif;
  font-family: var(--font-code);
}

@media (min-width: 500px) {
  h1 {
    font-size: 2em;
  }

  main {
    padding: 2rem;
    padding: var(--space-lg);
  }
}

code {
  background: #faedfc;
  background: var(--color-light-purple);
  font-family: 'FiraCode', 'Roboto Mono', monospace, serif;
  font-family: var(--font-code);
  font-size: 0.875em;
  line-height: 1.5em;
  padding: 0 .25em;
}

code[class*='language-'],
pre[class*='language-'] {
  background: transparent;
  border-radius: 0;
  padding: 0;
  color: #101010;
  color: var(--color-black);
  font-family: 'FiraCode', 'Roboto Mono', monospace, serif;
  font-family: var(--font-code);
  font-size: 0.875em;
  line-height: 1.5em;
  -moz-tab-size: 4;
    -o-tab-size: 4;
       tab-size: 4;
  text-align: left;
  -ms-hyphens: none;
      hyphens: none;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
}

pre[class*='language-'] {
  overflow: auto;
  padding: 1rem;
  padding: var(--space);
  margin: 0;
  border: 1px solid #eaeaea;
  border: 1px solid var(--color-mercury);
}

.token.keyword {
  font-weight: bold;
}

.token.string {
  color: #555;
  color: var(--color-emperor);
}

.token.comment {
  color: #bbb;
  color: var(--color-silver);
}

.token.function, .token.tag, .token.class-name, .token.number {
  color: #de0f77;
  color: var(--color-razzmatazz);
}

code[class='language-bash'],
pre[class='language-bash'] {
  background: #101010;
  background: var(--color-black);
  color: #fff;
  color: var(--color-white)
}

code[class='language-bash'] .token.string, code[class='language-bash'] .token.function, code[class='language-bash'] .token.tag, code[class='language-bash'] .token.class-name, code[class='language-bash'] .token.number, pre[class='language-bash'] .token.string, pre[class='language-bash'] .token.function, pre[class='language-bash'] .token.tag, pre[class='language-bash'] .token.class-name, pre[class='language-bash'] .token.number {
    color: #fff;
    color: var(--color-white);
  }

.header {
  margin-bottom: 2rem;
  margin-bottom: var(--space-lg)
}

.header .header__logo {
    box-shadow: none;
    height: auto;
    width: 5em;
  }

.articles {
  margin-top: 2rem;
  margin-top: var(--space-lg)
}

.articles .articles__item {
    padding-bottom: calc(1rem * 1.5);
    padding-bottom: calc(var(--space) * 1.5);
  }

.articles .articles__item-title {
    font-size: 1.25em;
    font-size: var(--size-lg);
    margin: 0 0 .1em 0;
  }

.articles .articles__item-content {
    margin: 0;
  }

.callout {
  border-left: 1px solid #be27dc;
  border-left: 1px solid var(--color-purple);
  margin-top: 1rem;
  margin-top: var(--space);
  padding: 1rem;
  padding: var(--space)
}

.callout.callout--background {
    border: none;
    background: #faedfc;
    background: var(--color-light-purple)
  }

.callout p {
    margin: 0;
  }

.callout b,
  .callout strong {
    color: #101010;
    color: var(--color-black);
  }

.article-header {
  --square-background: rgba(190, 39, 220, .1);

  align-items: center;
  display: flex;
  height: 9em;
  justify-content: flex-end;
  position: relative;
  margin: 4rem 0;
  margin: var(--space-xl) 0;
  padding: 1rem 0;
  padding: var(--space) 0
}

.article-header h1 {
    color: #be27dc;
    color: var(--color-purple);
    font-family: 'FiraCode', 'Roboto Mono', monospace, serif;
    font-family: var(--font-code);
    font-weight: normal;
    text-align: right;
    max-width: 320px;
    width: 100%;
    margin: 0;
  }

.article-header::before,
  .article-header::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 6em;
    height: 6em;
    background: var(--square-background);
  }

.article-header::before {
    left: 3em;
  }

.article-header::after {
    top: 3em;
  }
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9tb2Rlcm4tbm9ybWFsaXplL21vZGVybi1ub3JtYWxpemUuY3NzIiwiLi4vLi4vc3JjL3N0eWxlcy92YXJpYWJsZXMuY3NzIiwiLi4vLi4vc3JjL3N0eWxlcy9mb250cy5jc3MiLCIuLi8uLi9zcmMvc3R5bGVzL2Jhc2UuY3NzIiwiLi4vLi4vc3JjL3N0eWxlcy9jb2RlLmNzcyIsIi4uLy4uL3NyYy9zdHlsZXMvaGVhZGVyLmNzcyIsIi4uLy4uL3NyYy9zdHlsZXMvYXJ0aWNsZXMuY3NzIiwiLi4vLi4vc3JjL3N0eWxlcy9jYWxsb3V0LmNzcyIsIi4uLy4uL3NyYy9zdHlsZXMvYXJ0aWNsZS1oZWFkZXIuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtGQUErRjs7QUFFL0Y7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOzs7Q0FHQyx1QkFBdUI7Q0FDdkI7O0FBRUQ7O0VBRUU7O0FBRUY7Q0FDQyxpQkFBaUI7Q0FDakIsZUFBWTtJQUFaLFlBQVk7Q0FDWjs7QUFFRDs7O0VBR0U7O0FBRUY7Q0FDQyxrQkFBa0IsQ0FBQyxPQUFPO0NBQzFCLCtCQUErQixDQUFDLE9BQU87Q0FDdkM7O0FBRUQ7OztFQUdFOztBQUVGOztFQUVFOztBQUVGO0NBQ0MsVUFBVTtDQUNWOztBQUVEOztFQUVFOztBQUVGO0NBQ0M7Ozs7Ozs7O21CQVNrQjtDQUNsQjs7QUFFRDs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7Q0FDQyxVQUFVO0NBQ1Y7O0FBRUQ7OztFQUdFOztBQUVGOztFQUVFOztBQUVGO0NBQ0Msa0NBQWtDO0NBQ2xDOztBQUVEOztFQUVFOztBQUVGOztDQUVDLG9CQUFvQjtDQUNwQjs7QUFFRDs7O0VBR0U7O0FBRUY7Ozs7Q0FJQzs7Ozs7WUFLVyxDQUFDLE9BQU87Q0FDbkIsZUFBZSxDQUFDLE9BQU87Q0FDdkI7O0FBRUQ7O0VBRUU7O0FBRUY7Q0FDQyxlQUFlO0NBQ2Y7O0FBRUQ7O0VBRUU7O0FBRUY7O0NBRUMsZUFB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LGVBQTJCO0lBQTNCLDJCQUEyQjtJQUMzQix5REFBOEI7SUFBOUIsOEJBQThCO0lBQzlCLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixVQUFVO0dBQ1g7O0FBRUQ7O0lBRUUsWUFBWTtJQUNaLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsT0FBTztJQUNQLFFBQVE7SUFDUixXQUFXO0lBQ1gsWUFBWTtJQUNaLHFDQUFxQztHQUN0Qzs7QUFFRDtJQUNFLFVBQVU7R0FDWDs7QUFFRDtJQUNFLFNBQVM7R0FDViIsImZpbGUiOiJpbmRleC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgbW9kZXJuLW5vcm1hbGl6ZSB2MC42LjAgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZSAqL1xuXG4vKlxuRG9jdW1lbnRcbj09PT09PT09XG4qL1xuXG4vKipcblVzZSBhIGJldHRlciBib3ggbW9kZWwgKG9waW5pb25hdGVkKS5cbiovXG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qKlxuVXNlIGEgbW9yZSByZWFkYWJsZSB0YWIgc2l6ZSAob3BpbmlvbmF0ZWQpLlxuKi9cblxuOnJvb3Qge1xuXHQtbW96LXRhYi1zaXplOiA0O1xuXHR0YWItc2l6ZTogNDtcbn1cblxuLyoqXG4xLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4yLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiovXG5cbmh0bWwge1xuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLypcblNlY3Rpb25zXG49PT09PT09PVxuKi9cblxuLyoqXG5SZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5ib2R5IHtcblx0bWFyZ2luOiAwO1xufVxuXG4vKipcbkltcHJvdmUgY29uc2lzdGVuY3kgb2YgZGVmYXVsdCBmb250cyBpbiBhbGwgYnJvd3NlcnMuIChodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvaXNzdWVzLzMpXG4qL1xuXG5ib2R5IHtcblx0Zm9udC1mYW1pbHk6XG5cdFx0c3lzdGVtLXVpLFxuXHRcdC1hcHBsZS1zeXN0ZW0sIC8qIEZpcmVmb3ggc3VwcG9ydHMgdGhpcyBidXQgbm90IHlldCBgc3lzdGVtLXVpYCAqL1xuXHRcdCdTZWdvZSBVSScsXG5cdFx0Um9ib3RvLFxuXHRcdEhlbHZldGljYSxcblx0XHRBcmlhbCxcblx0XHRzYW5zLXNlcmlmLFxuXHRcdCdBcHBsZSBDb2xvciBFbW9qaScsXG5cdFx0J1NlZ29lIFVJIEVtb2ppJztcbn1cblxuLypcbkdyb3VwaW5nIGNvbnRlbnRcbj09PT09PT09PT09PT09PT1cbiovXG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IGhlaWdodCBpbiBGaXJlZm94LlxuKi9cblxuaHIge1xuXHRoZWlnaHQ6IDA7XG59XG5cbi8qXG5UZXh0LWxldmVsIHNlbWFudGljc1xuPT09PT09PT09PT09PT09PT09PT1cbiovXG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4qL1xuXG5hYmJyW3RpdGxlXSB7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gRWRnZSBhbmQgU2FmYXJpLlxuKi9cblxuYixcbnN0cm9uZyB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuMS4gSW1wcm92ZSBjb25zaXN0ZW5jeSBvZiBkZWZhdWx0IGZvbnRzIGluIGFsbCBicm93c2Vycy4gKGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9pc3N1ZXMvMylcbjIuIENvcnJlY3QgdGhlIG9kZCAnZW0nIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiovXG5cbmNvZGUsXG5rYmQsXG5zYW1wLFxucHJlIHtcblx0Zm9udC1mYW1pbHk6XG5cdFx0U0ZNb25vLVJlZ3VsYXIsXG5cdFx0Q29uc29sYXMsXG5cdFx0J0xpYmVyYXRpb24gTW9ubycsXG5cdFx0TWVubG8sXG5cdFx0bW9ub3NwYWNlOyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zbWFsbCB7XG5cdGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcblByZXZlbnQgJ3N1YicgYW5kICdzdXAnIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zdWIsXG5zdXAge1xuXHRmb250LXNpemU6IDc1JTtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuXHRib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG5cdHRvcDogLTAuNWVtO1xufVxuXG4vKlxuRm9ybXNcbj09PT09XG4qL1xuXG4vKipcbjEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxMDAlOyAvKiAxICovXG5cdGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG5cdG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSBhbmQgRmlyZWZveC5cbjEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiovXG5cbmJ1dHRvbixcblt0eXBlPSdidXR0b24nXSxcblt0eXBlPSdyZXNldCddLFxuW3R5cGU9J3N1Ym1pdCddIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdidXR0b24nXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdyZXNldCddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzLWlubmVyIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcblJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPSdidXR0b24nXTotbW96LWZvY3VzcmluZyxcblt0eXBlPSdyZXNldCddOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9J3N1Ym1pdCddOi1tb3otZm9jdXNyaW5nIHtcblx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbkNvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiovXG5cbmZpZWxkc2V0IHtcblx0cGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcblJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXQgJ2ZpZWxkc2V0JyBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5sZWdlbmQge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbkFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lIGFuZCBGaXJlZm94LlxuKi9cblxucHJvZ3Jlc3Mge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gU2FmYXJpLlxuKi9cblxuW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbjEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4qL1xuXG5bdHlwZT0nc2VhcmNoJ10ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiovXG5cblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4xLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byAnaW5oZXJpdCcgaW4gU2FmYXJpLlxuKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG5cdGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcbkludGVyYWN0aXZlXG49PT09PT09PT09PVxuKi9cblxuLypcbkFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIENocm9tZSBhbmQgU2FmYXJpLlxuKi9cblxuc3VtbWFyeSB7XG5cdGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cbiIsIjpyb290IHtcbiAgLS1tYXgtY29udGVudC13aWR0aDogMzBlbTtcblxuICAtLWNvbG9yLWJsYWNrOiAjMTAxMDEwO1xuICAtLWNvbG9yLWF6dXJpOiAjMDY3ZGY3O1xuICAtLWNvbG9yLXJhenptYXRheno6ICNkZTBmNzc7XG4gIC0tY29sb3ItcHVycGxlOiAjYmUyN2RjO1xuICAtLWNvbG9yLWxpZ2h0LXB1cnBsZTogI2ZhZWRmYztcbiAgLS1jb2xvci1ib2R5OiAjMjIyO1xuICAtLWNvbG9yLWVtcGVyb3I6ICM1NTU7XG4gIC0tY29sb3Itc2lsdmVyOiAjYmJiO1xuICAtLWNvbG9yLW1lcmN1cnk6ICNlYWVhZWE7XG4gIC0tY29sb3ItY29uY3JldGU6ICNmM2YzZjM7XG4gIC0tY29sb3Itd2hpdGU6ICNmZmY7XG5cbiAgLS1mb250OiAnUm9ib3RvJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgLS1mb250LWNvZGU6ICdGaXJhQ29kZScsICdSb2JvdG8gTW9ubycsIG1vbm9zcGFjZSwgc2VyaWY7XG5cbiAgLS1zaGFkb3c6IDAgMnB4IDhweCAycHggcmdiYSgwLCAwLCAwLCAuMDc1KTtcbiAgLS1zaGFkb3ctc3VidGxlOiAwIDJweCA4cHggMnB4IHJnYmEoMCwgMCwgMCwgLjAyNSk7XG5cbiAgLS1zcGFjZS14czogLjI1cmVtO1xuICAtLXNwYWNlLXNtOiAuNXJlbTtcbiAgLS1zcGFjZTogMXJlbTtcbiAgLS1zcGFjZS1sZzogMnJlbTtcbiAgLS1zcGFjZS14bDogNHJlbTtcblxuICAtLXNpemUtc206IC43NWVtO1xuICAtLXNpemU6IDFlbTtcbiAgLS1zaXplLWxnOiAxLjI1ZW07XG4gIC0tc2l6ZS14bDogMS43NWVtO1xuXG4gIC0tYnJlYWtwb2ludC1tb2JpbGU6IDUwMHB4O1xufSIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIHNyYzogbG9jYWwoJ1JvYm90bycpLFxuICAgICAgIHVybCgnL2Fzc2V0cy9mb250cy9yb2JvdG8tYm9sZC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICB1cmwoJy9hc3NldHMvZm9udHMvcm9ib3RvLWJvbGQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgc3JjOiBsb2NhbCgnUm9ib3RvJyksXG4gICAgICAgdXJsKCcvYXNzZXRzL2ZvbnRzL3JvYm90by1pdGFsaWMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgdXJsKCcvYXNzZXRzL2ZvbnRzL3JvYm90by1pdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIHNyYzogbG9jYWwoJ1JvYm90bycpLFxuICAgICAgIHVybCgnL2Fzc2V0cy9mb250cy9yb2JvdG8tcmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICB1cmwoJy9hc3NldHMvZm9udHMvcm9ib3RvLXJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGaXJhQ29kZSc7XG4gIHNyYzogbG9jYWwoJ0ZpcmFDb2RlJyksXG4gICAgICAgdXJsKCcvYXNzZXRzL2ZvbnRzL0ZpcmFDb2RlLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgdXJsKCcvYXNzZXRzL2ZvbnRzL0ZpcmFDb2RlLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRmlyYUNvZGUnO1xuICBzcmM6IGxvY2FsKCdGaXJhQ29kZScpLFxuICAgICAgIHVybCgnL2Fzc2V0cy9mb250cy9GaXJhQ29kZS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnL2Fzc2V0cy9mb250cy9GaXJhQ29kZS1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn0iLCJodG1sIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHVycGxlKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXB1cnBsZSk7XG59XG5cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBjb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wdXJwbGUpO1xufVxuXG5tYWluIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2UpO1xufVxuXG4ud3JhcCB7XG4gIG1heC13aWR0aDogdmFyKC0tbWF4LWNvbnRlbnQtd2lkdGgpO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuaDEsIGgyLCBoMyB7XG4gIG1hcmdpbjogdmFyKC0tc3BhY2UpIDAgdmFyKC0tc3BhY2Utc20pIDA7XG5cbiAgJiArIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuaDEge1xuICBmb250LXNpemU6IHZhcigtLXNpemUteGwpO1xufVxuXG5oMiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLWxnKTtcbn1cblxucCwgdWwsIG9sIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJvZHkpO1xufVxuXG5oMiArIHAge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZS1zbSk7XG59XG5cbmEge1xuICBjb2xvcjogdmFyKC0tY29sb3ItYXp1cmkpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cblxudWwsIG9sIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjFlbTtcbn1cblxudWwgPiBsaSxcbm9sID4gbGkge1xuICBtYXJnaW4tYm90dG9tOiAuM2VtO1xufVxuXG5pbWcge1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3cpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uc3VidGl0bGUge1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNwYWNlLXNtKSAqIC0xKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLWxnKTtcbn1cblxuLmFycm93LWxpbmsge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1jb2RlKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDUwMHB4KSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgfVxuXG4gIG1haW4ge1xuICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLWxnKTtcbiAgfVxufSIsImNvZGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1saWdodC1wdXJwbGUpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1jb2RlKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIHBhZGRpbmc6IDAgLjI1ZW07XG59XG5cbmNvZGVbY2xhc3MqPSdsYW5ndWFnZS0nXSxcbnByZVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWNvZGUpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgdGFiLXNpemU6IDQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGh5cGhlbnM6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG59XG5cbnByZVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlKTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1tZXJjdXJ5KTtcbn1cblxuLnRva2VuLmtleXdvcmQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnRva2VuLnN0cmluZyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1lbXBlcm9yKTtcbn1cblxuLnRva2VuLmNvbW1lbnQge1xuICBjb2xvcjogdmFyKC0tY29sb3Itc2lsdmVyKTtcbn1cblxuLnRva2VuLmZ1bmN0aW9uLCAudG9rZW4udGFnLCAudG9rZW4uY2xhc3MtbmFtZSwgLnRva2VuLm51bWJlciB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1yYXp6bWF0YXp6KTtcbn1cblxuY29kZVtjbGFzcz0nbGFuZ3VhZ2UtYmFzaCddLFxucHJlW2NsYXNzPSdsYW5ndWFnZS1iYXNoJ10ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG5cbiAgJiAudG9rZW4uc3RyaW5nLCAmIC50b2tlbi5mdW5jdGlvbiwgJiAudG9rZW4udGFnLCAmIC50b2tlbi5jbGFzcy1uYW1lLCAmIC50b2tlbi5udW1iZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gIH1cbn0iLCIuaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UtbGcpO1xuXG4gICYgLmhlYWRlcl9fbG9nbyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDVlbTtcbiAgfVxufSIsIi5hcnRpY2xlcyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLWxnKTtcblxuICAmIC5hcnRpY2xlc19faXRlbSB7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tc3BhY2UpICogMS41KTtcbiAgfVxuXG4gICYgLmFydGljbGVzX19pdGVtLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtbGcpO1xuICAgIG1hcmdpbjogMCAwIC4xZW0gMDtcbiAgfVxuXG4gICYgLmFydGljbGVzX19pdGVtLWNvbnRlbnQge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuIiwiLmNhbGxvdXQge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXB1cnBsZSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2UpO1xuXG4gICYuY2FsbG91dC0tYmFja2dyb3VuZCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWxpZ2h0LXB1cnBsZSlcbiAgfVxuXG4gICYgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgJiBiLFxuICAmIHN0cm9uZyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTtcbiAgfVxufSIsIi5hcnRpY2xlLWhlYWRlciB7XG4gIC0tc3F1YXJlLWJhY2tncm91bmQ6IHJnYmEoMTkwLCAzOSwgMjIwLCAuMSk7XG5cbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiA5ZW07XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiB2YXIoLS1zcGFjZS14bCkgMDtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2UpIDA7XG5cbiAgJiBoMSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXB1cnBsZSk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtY29kZSk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNmVtO1xuICAgIGhlaWdodDogNmVtO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNxdWFyZS1iYWNrZ3JvdW5kKTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgbGVmdDogM2VtO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHRvcDogM2VtO1xuICB9XG59Il19 */