* {
    outline: none;
    box-sizing: border-box;
    -webkit-box-sizing: border-box
}

::-webkit-input-placeholder {
    color: #2C4527
}

::-moz-placeholder {
    color: #2C4527
}

:-moz-placeholder {
    color: #2C4527
}

:-ms-input-placeholder {
    color: #2C4527
}

html, body {
    margin: 0;
    padding: 0;
    background: #fff;
    font-size: 16px;
    color: #4A4A4A;
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -webkit-text-size-adjust: 100%
}

a {
    color: #F5A623;
    text-decoration: none;
    cursor: pointer
}

a:link {
    color: #F5A623
}

a:active {
    color: #F5A623
}

a:visited {
    color: #F5A623
}

a:hover {
    text-decoration: underline
}

a img {
    border: none
}

input, textarea, button {
    font-family: "Montserrat";
    -webkit-appearance: none;
    -webkit-box-shadow: none;
    box-shadow: none
}

label {
    cursor: pointer
}

.clear {
    clear: both
}

strong {
    font-weight: 700
}

.centrize {
    display: table !important;
    table-layout: fixed !important;
    height: 100% !important;
    position: relative !important
}

.centrize.full-width {
    width: 100% !important
}

.vertical-center {
    display: table-cell !important;
    vertical-align: middle !important
}

.slimScrollRail {
    width: 2px !important;
    display: block !important;
    background: transparent !important;
    opacity: 1 !important;
    right: 0 !important
}

.slimScrollBar {
    width: 4px !important;
    background: #D8D8D8 !important;
    border: none !important;
    cursor: pointer !important;
    opacity: 1 !important;
    right: 0 !important;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -khtml-border-radius: 4px
}

a.btn, .btn {
    padding: 0 50px;
    position: relative;
    display: inline-block;
    vertical-align: top;
    height: 60px;
    line-height: 56px;
    font-size: 16px;
    color: #fff;
    text-align: center;
    text-decoration: none;
    font-weight: 400;
    background: #6DAE81;
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAD961', endColorstr='#F76B1C', GradientType=0);
    border: none;
    border-bottom: 4px solid #356944;
    cursor: pointer;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -khtml-border-radius: 4px;
    transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    box-shadow: 0 20px 50px rgba(109, 174, 129, 0.6);
    -moz-box-shadow: 0 20px 50px rgba(109, 174, 129, 0.6);
    -webkit-box-shadow: 0 20px 50px rgba(109, 174, 129, 0.6);
    -khtml-box-shadow: 0 20px 50px rgba(109, 174, 129, 0.6)
}

a.btn.border, .btn.border {
    background: none;
    border: 3px solid #6DAE81;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -khtml-border-radius: 4px;
    box-shadow: 0 0 0 rgba(105, 67, 4, 0.5);
    -moz-box-shadow: 0 0 0 rgba(105, 67, 4, 0.5);
    -webkit-box-shadow: 0 0 0 rgba(105, 67, 4, 0.5);
    -khtml-box-shadow: 0 0 0 rgba(105, 67, 4, 0.5)
}

a.btn:hover, .btn:hover {
    box-shadow: 0 0 0 rgba(105, 67, 4, 0.5);
    -moz-box-shadow: 0 0 0 rgba(105, 67, 4, 0.5);
    -webkit-box-shadow: 0 0 0 rgba(105, 67, 4, 0.5);
    -khtml-box-shadow: 0 0 0 rgba(105, 67, 4, 0.5)
}

.bg {
    position: relative;
    overflow: hidden
}

.fw {
    position: relative;
    margin: 0 auto;
    width: 1200px
}

.fw:after {
    content: '';
    clear: both;
    display: block
}

.disabled {
    display: none
}

.m-title {
    position: relative;
    margin: 0 0 50px 0;
    font-size: 50px;
    line-height: 60px;
    font-weight: 800;
    color: #4A4A4A;
    text-align: center
}

.m-subtitle {
    font-size: 18px;
    line-height: 30px;
    color: #4A4A4A
}

.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-align: center;
    background: #fff;
    z-index: 1000
}

.preloader .spinner {
    width: 64px;
    height: 64px;
    display: inline-block;
    position: relative;
    background: url(../images/preloader.gif) no-repeat;
    background-size: 100% 100%
}

.c-form .group {
    margin: 0 0 15px 0
}

.c-form .field {
    position: relative
}

.c-form .field input[type="text"], .c-form .field input[type="tel"], .c-form .field input[type="password"], .c-form .field input[type="email"], .c-form .field textarea {
    padding: 0 10px;
    width: 100%;
    height: 40px;
    font-size: 16px;
    color: #2C4527;
    font-family: "Montserrat";
    font-weight: 500;
    border: none;
    border-bottom: 1px solid rgba(108, 141, 102, 0.5);
    background: none;
    transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s
}

.c-form .field input[type="text"].error, .c-form .field input[type="tel"].error, .c-form .field input[type="password"].error, .c-form .field input[type="email"].error, .c-form .field textarea.error {
    border-color: red
}

.c-form .field label.error {
    position: absolute;
    left: 0;
    bottom: -18px;
    font-size: 12px;
    color: red;
    text-align: left;
    color: red;
    width: 100%
}

.c-form .info-text {
    margin: 35px 0 0 0;
    position: relative;
    display: block;
    font-size: 14px;
    line-height: 22px;
    color: #4A4A4A;
    font-weight: 400
}

.c-form .info-text a {
    color: #FA0663;
    font-weight: 700;
    text-decoration: none
}

.c-form .info-text a:hover {
    text-decoration: underline
}

.c-form .submit-btn {
    margin-top: 35px;
    padding: 0;
    float: none;
    display: block;
    width: 100%;
    cursor: pointer
}

.overlay, .cf-overlay {
    display: none;
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.6;
    z-index: 101
}

.nonebox {
    position: absolute;
    left: 50%;
    top: -3000px;
    width: 384px;
    margin: 0 0 0 -192px;
    padding: 45px 40px;
    background: #fff;
    z-index: 1002;
    text-align: left;
    border-radius: 10px;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px
}

.nonebox .close {
    position: absolute;
    top: -50px;
    right: -50px;
    width: 50px;
    height: 50px;
    background: url(../images/nclose.png) no-repeat;
    background-size: contain;
    font-size: 0;
    cursor: pointer
}

.nonebox .title {
    margin: 0 0 20px 0;
    font-family: "Montserrat";
    font-size: 26px;
    line-height: 36px;
    color: #4A4A4A;
    font-weight: 700
}

.nonebox .subtitle {
    font-size: 18px;
    line-height: 28px;
    color: #4A4A4A
}

body.fancybox-active {
    overflow: hidden
}

body.fancybox-iosfix {
    position: fixed;
    left: 0;
    right: 0
}

.fancybox-is-hidden {
    position: absolute;
    top: -9999px;
    left: -9999px;
    visibility: hidden
}

.fancybox-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99992;
    -webkit-tap-highlight-color: transparent;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"
}

.fancybox-outer, .fancybox-inner, .fancybox-bg, .fancybox-stage {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0
}

.fancybox-outer {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch
}

.fancybox-bg {
    background: #1e1e1e;
    opacity: 0;
    -webkit-transition-duration: inherit;
    -o-transition-duration: inherit;
    transition-duration: inherit;
    -webkit-transition-property: opacity;
    -o-transition-property: opacity;
    transition-property: opacity;
    -webkit-transition-timing-function: cubic-bezier(0.47, 0, 0.74, 0.71);
    -o-transition-timing-function: cubic-bezier(0.47, 0, 0.74, 0.71);
    transition-timing-function: cubic-bezier(0.47, 0, 0.74, 0.71)
}

.fancybox-is-open .fancybox-bg {
    opacity: 0.87;
    -webkit-transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
    -o-transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
    transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1)
}

.fancybox-infobar, .fancybox-toolbar, .fancybox-caption-wrap {
    position: absolute;
    direction: ltr;
    z-index: 99997;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: opacity .25s, visibility 0s linear .25s;
    -o-transition: opacity .25s, visibility 0s linear .25s;
    transition: opacity .25s, visibility 0s linear .25s;
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

.fancybox-show-infobar .fancybox-infobar, .fancybox-show-toolbar .fancybox-toolbar, .fancybox-show-caption .fancybox-caption-wrap {
    opacity: 1;
    visibility: visible;
    -webkit-transition: opacity .25s, visibility 0s;
    -o-transition: opacity .25s, visibility 0s;
    transition: opacity .25s, visibility 0s
}

.fancybox-infobar {
    top: 0;
    left: 0;
    font-size: 13px;
    padding: 0 10px;
    height: 44px;
    min-width: 44px;
    line-height: 44px;
    color: #ccc;
    text-align: center;
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    -webkit-tap-highlight-color: transparent;
    -webkit-font-smoothing: subpixel-antialiased;
    mix-blend-mode: exclusion
}

.fancybox-toolbar {
    top: 0;
    right: 0;
    margin: 0;
    padding: 0
}

.fancybox-stage {
    overflow: hidden;
    direction: ltr;
    z-index: 99994;
    -webkit-transform: translate3d(0, 0, 0)
}

.fancybox-is-closing .fancybox-stage {
    overflow: visible
}

.fancybox-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: auto;
    outline: none;
    white-space: normal;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    text-align: center;
    z-index: 99994;
    -webkit-overflow-scrolling: touch;
    display: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transition-property: opacity, -webkit-transform;
    -webkit-transition-property: opacity, -webkit-transform;
    -o-transition-property: transform, opacity;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform
}

.fancybox-slide::before {
    content: '';
    display: inline-block;
    vertical-align: middle;
    height: 100%;
    width: 0
}

.fancybox-is-sliding .fancybox-slide, .fancybox-slide--previous, .fancybox-slide--current, .fancybox-slide--next {
    display: block
}

.fancybox-slide--image {
    overflow: visible
}

.fancybox-slide--image::before {
    display: none
}

.fancybox-slide--video .fancybox-content, .fancybox-slide--video iframe {
    background: #000
}

.fancybox-slide--map .fancybox-content, .fancybox-slide--map iframe {
    background: #E5E3DF
}

.fancybox-slide--next {
    z-index: 99995
}

.fancybox-slide > * {
    display: inline-block;
    position: relative;
    padding: 24px;
    margin: 44px 0 44px;
    border-width: 0;
    vertical-align: middle;
    text-align: left;
    background-color: #fff;
    overflow: auto;
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

.fancybox-slide > title, .fancybox-slide > style, .fancybox-slide > meta, .fancybox-slide > link, .fancybox-slide > script, .fancybox-slide > base {
    display: none
}

.fancybox-slide .fancybox-image-wrap {
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    padding: 0;
    border: 0;
    z-index: 99995;
    background: transparent;
    cursor: default;
    overflow: visible;
    -webkit-transform-origin: top left;
    -ms-transform-origin: top left;
    transform-origin: top left;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    transition-property: opacity, -webkit-transform;
    -webkit-transition-property: opacity, -webkit-transform;
    -o-transition-property: transform, opacity;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform
}

.fancybox-can-zoomOut .fancybox-image-wrap {
    cursor: -webkit-zoom-out;
    cursor: zoom-out
}

.fancybox-can-zoomIn .fancybox-image-wrap {
    cursor: -webkit-zoom-in;
    cursor: zoom-in
}

.fancybox-can-drag .fancybox-image-wrap {
    cursor: -webkit-grab;
    cursor: grab
}

.fancybox-is-dragging .fancybox-image-wrap {
    cursor: -webkit-grabbing;
    cursor: grabbing
}

.fancybox-image, .fancybox-spaceball {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    max-width: none;
    max-height: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.fancybox-spaceball {
    z-index: 1
}

.fancybox-slide--iframe .fancybox-content {
    padding: 0;
    width: 80%;
    height: 80%;
    max-width: calc(100% - 100px);
    max-height: calc(100% - 88px);
    overflow: visible;
    background: #fff
}

.fancybox-iframe {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    width: 100%;
    height: 100%;
    background: #fff
}

.fancybox-error {
    margin: 0;
    padding: 40px;
    width: 100%;
    max-width: 380px;
    background: #fff;
    cursor: default
}

.fancybox-error p {
    margin: 0;
    padding: 0;
    color: #444;
    font-size: 16px;
    line-height: 20px
}

.fancybox-button {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    display: inline-block;
    vertical-align: top;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 10px;
    border: 0;
    border-radius: 0;
    background: rgba(30, 30, 30, 0.6);
    -webkit-transition: color .3s ease;
    -o-transition: color .3s ease;
    transition: color .3s ease;
    cursor: pointer;
    outline: none
}

.fancybox-button, .fancybox-button:visited, .fancybox-button:link {
    color: #ccc
}

.fancybox-button:focus, .fancybox-button:hover {
    color: #fff
}

.fancybox-button[disabled] {
    color: #ccc;
    cursor: default;
    opacity: 0.6
}

.fancybox-button svg {
    display: block;
    position: relative;
    overflow: visible;
    shape-rendering: geometricPrecision
}

.fancybox-button svg path {
    fill: currentColor;
    stroke: currentColor;
    stroke-linejoin: round;
    stroke-width: 3
}

.fancybox-button--share svg path {
    stroke-width: 1
}

.fancybox-button--play svg path:nth-child(2) {
    display: none
}

.fancybox-button--pause svg path:nth-child(1) {
    display: none
}

.fancybox-button--zoom svg path {
    fill: transparent
}

.fancybox-navigation {
    display: none
}

.fancybox-show-nav .fancybox-navigation {
    display: block
}

.fancybox-navigation button {
    position: absolute;
    top: 50%;
    margin: -50px 0 0 0;
    z-index: 99997;
    background: transparent;
    width: 60px;
    height: 100px;
    padding: 17px
}

.fancybox-navigation button:before {
    content: "";
    position: absolute;
    top: 30px;
    right: 10px;
    width: 40px;
    height: 40px;
    background: rgba(30, 30, 30, 0.6)
}

.fancybox-navigation .fancybox-button--arrow_left {
    left: 0
}

.fancybox-navigation .fancybox-button--arrow_right {
    right: 0
}

.fancybox-close-small {
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    z-index: 10;
    cursor: pointer
}

.fancybox-close-small:after {
    content: '×';
    position: absolute;
    top: 5px;
    right: 5px;
    width: 30px;
    height: 30px;
    font: 22px/30px Arial, "Helvetica Neue", Helvetica, sans-serif;
    color: #888;
    font-weight: 300;
    text-align: center;
    border-radius: 50%;
    border-width: 0;
    background-color: transparent;
    -webkit-transition: background-color .25s;
    -o-transition: background-color .25s;
    transition: background-color .25s;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    z-index: 2
}

.fancybox-close-small:focus {
    outline: none
}

.fancybox-close-small:focus:after {
    outline: 1px dotted #888
}

.fancybox-close-small:hover:after {
    color: #555;
    background: #eee
}

.fancybox-slide--image .fancybox-close-small, .fancybox-slide--iframe .fancybox-close-small {
    top: 0;
    right: -40px
}

.fancybox-slide--image .fancybox-close-small:after, .fancybox-slide--iframe .fancybox-close-small:after {
    font-size: 35px;
    color: #aaa
}

.fancybox-slide--image .fancybox-close-small:hover:after, .fancybox-slide--iframe .fancybox-close-small:hover:after {
    color: #fff;
    background: transparent
}

.fancybox-is-scaling .fancybox-close-small, .fancybox-is-zoomable.fancybox-can-drag .fancybox-close-small {
    display: none
}

.fancybox-caption-wrap {
    bottom: 0;
    left: 0;
    right: 0;
    padding: 60px 2vw 0 2vw;
    background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(20%, rgba(0, 0, 0, 0.1)), color-stop(40%, rgba(0, 0, 0, 0.2)), color-stop(80%, rgba(0, 0, 0, 0.6)), to(rgba(0, 0, 0, 0.8)));
    background: -o-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.1) 20%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.6) 80%, rgba(0, 0, 0, 0.8) 100%);
    background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.1) 20%, rgba(0, 0, 0, 0.2) 40%, rgba(0, 0, 0, 0.6) 80%, rgba(0, 0, 0, 0.8) 100%);
    pointer-events: none
}

.fancybox-caption {
    padding: 30px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.4);
    font-size: 14px;
    color: #fff;
    line-height: 20px;
    -webkit-text-size-adjust: none
}

.fancybox-caption a, .fancybox-caption button, .fancybox-caption select {
    pointer-events: all;
    position: relative
}

.fancybox-caption a {
    color: #fff;
    text-decoration: underline
}

.fancybox-slide > .fancybox-loading {
    border: 6px solid rgba(100, 100, 100, 0.4);
    border-top: 6px solid rgba(255, 255, 255, 0.6);
    border-radius: 100%;
    height: 50px;
    width: 50px;
    -webkit-animation: fancybox-rotate .8s infinite linear;
    animation: fancybox-rotate .8s infinite linear;
    background: transparent;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -30px;
    margin-left: -30px;
    z-index: 99999
}

@-webkit-keyframes fancybox-rotate {
    from {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }
    to {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg)
    }
}

@keyframes fancybox-rotate {
    from {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }
    to {
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg)
    }
}

.fancybox-animated {
    -webkit-transition-timing-function: cubic-bezier(0, 0, 0.25, 1);
    -o-transition-timing-function: cubic-bezier(0, 0, 0.25, 1);
    transition-timing-function: cubic-bezier(0, 0, 0.25, 1)
}

.fancybox-fx-slide.fancybox-slide--previous {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    opacity: 0
}

.fancybox-fx-slide.fancybox-slide--next {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    opacity: 0
}

.fancybox-fx-slide.fancybox-slide--current {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1
}

.fancybox-fx-fade.fancybox-slide--previous, .fancybox-fx-fade.fancybox-slide--next {
    opacity: 0;
    -webkit-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
    -o-transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
    transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1)
}

.fancybox-fx-fade.fancybox-slide--current {
    opacity: 1
}

.fancybox-fx-zoom-in-out.fancybox-slide--previous {
    -webkit-transform: scale3d(1.5, 1.5, 1.5);
    transform: scale3d(1.5, 1.5, 1.5);
    opacity: 0
}

.fancybox-fx-zoom-in-out.fancybox-slide--next {
    -webkit-transform: scale3d(0.5, 0.5, 0.5);
    transform: scale3d(0.5, 0.5, 0.5);
    opacity: 0
}

.fancybox-fx-zoom-in-out.fancybox-slide--current {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
    opacity: 1
}

.fancybox-fx-rotate.fancybox-slide--previous {
    -webkit-transform: rotate(-360deg);
    -ms-transform: rotate(-360deg);
    transform: rotate(-360deg);
    opacity: 0
}

.fancybox-fx-rotate.fancybox-slide--next {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
    opacity: 0
}

.fancybox-fx-rotate.fancybox-slide--current {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg);
    opacity: 1
}

.fancybox-fx-circular.fancybox-slide--previous {
    -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
    transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
    opacity: 0
}

.fancybox-fx-circular.fancybox-slide--next {
    -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
    transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
    opacity: 0
}

.fancybox-fx-circular.fancybox-slide--current {
    -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
    transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
    opacity: 1
}

.fancybox-fx-tube.fancybox-slide--previous {
    -webkit-transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg);
    transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg)
}

.fancybox-fx-tube.fancybox-slide--next {
    -webkit-transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg);
    transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg)
}

.fancybox-fx-tube.fancybox-slide--current {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
    transform: translate3d(0, 0, 0) scale(1)
}

.fancybox-share {
    padding: 30px;
    border-radius: 3px;
    background: #f4f4f4;
    max-width: 90%;
    text-align: center
}

.fancybox-share h1 {
    color: #222;
    margin: 0 0 20px 0;
    font-size: 35px;
    font-weight: 700
}

.fancybox-share p {
    margin: 0;
    padding: 0
}

p.fancybox-share__links {
    margin-right: -10px
}

.fancybox-share__button {
    display: inline-block;
    text-decoration: none;
    margin: 0 10px 10px 0;
    padding: 0 15px;
    min-width: 130px;
    border: 0;
    border-radius: 3px;
    background: #fff;
    white-space: nowrap;
    font-size: 14px;
    font-weight: 700;
    line-height: 40px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    color: #fff;
    -webkit-transition: all .2s;
    -o-transition: all .2s;
    transition: all .2s
}

.fancybox-share__button:hover {
    text-decoration: none
}

.fancybox-share__button--fb {
    background: #3b5998
}

.fancybox-share__button--fb:hover {
    background: #344e86
}

.fancybox-share__button--pt {
    background: #bd081d
}

.fancybox-share__button--pt:hover {
    background: #aa0719
}

.fancybox-share__button--tw {
    background: #1da1f2
}

.fancybox-share__button--tw:hover {
    background: #0d95e8
}

.fancybox-share__button svg {
    position: relative;
    top: -1px;
    width: 25px;
    height: 25px;
    margin-right: 7px;
    vertical-align: middle
}

.fancybox-share__button svg path {
    fill: #fff
}

.fancybox-share__input {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    margin: 10px 0 0 0;
    padding: 10px 15px;
    background: transparent;
    color: #5d5b5b;
    font-size: 14px;
    outline: none;
    border: 0;
    border-bottom: 2px solid #d7d7d7
}

.fancybox-thumbs {
    display: none;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 212px;
    margin: 0;
    padding: 2px 2px 4px 2px;
    background: #fff;
    -webkit-tap-highlight-color: transparent;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    z-index: 99995
}

.fancybox-thumbs-x {
    overflow-y: hidden;
    overflow-x: auto
}

.fancybox-show-thumbs .fancybox-thumbs {
    display: block
}

.fancybox-show-thumbs .fancybox-inner {
    right: 212px
}

.fancybox-thumbs > ul {
    list-style: none;
    position: absolute;
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    font-size: 0;
    white-space: nowrap
}

.fancybox-thumbs-x > ul {
    overflow: hidden
}

.fancybox-thumbs-y > ul::-webkit-scrollbar {
    width: 7px
}

.fancybox-thumbs-y > ul::-webkit-scrollbar-track {
    background: #fff;
    border-radius: 10px;
    -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3)
}

.fancybox-thumbs-y > ul::-webkit-scrollbar-thumb {
    background: #2a2a2a;
    border-radius: 10px
}

.fancybox-thumbs > ul > li {
    float: left;
    overflow: hidden;
    padding: 0;
    margin: 2px;
    width: 100px;
    height: 75px;
    max-width: calc(50% - 4px);
    max-height: calc(100% - 8px);
    position: relative;
    cursor: pointer;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

li.fancybox-thumbs-loading {
    background: rgba(0, 0, 0, 0.1)
}

.fancybox-thumbs > ul > li > img {
    position: absolute;
    top: 0;
    left: 0;
    max-width: none;
    max-height: none;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.fancybox-thumbs > ul > li:before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border: 4px solid #4ea7f9;
    z-index: 99991;
    opacity: 0;
    -webkit-transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    -o-transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.fancybox-thumbs > ul > li.fancybox-thumbs-active:before {
    opacity: 1
}

@media all and (max-width: 800px) {
    .insn {
        display: none;
    }

    .fancybox-thumbs {
        width: 110px
    }

    .fancybox-show-thumbs .fancybox-inner {
        right: 110px
    }

    .fancybox-thumbs > ul > li {
        max-width: calc(100% - 10px)
    }
}

.owl-carousel .animated {
    -webkit-animation-duration: 1000ms;
    animation-duration: 1000ms;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both
}

.owl-carousel .owl-animated-in {
    z-index: 0
}

.owl-carousel .owl-animated-out {
    z-index: 1
}

.owl-carousel .fadeOut {
    -webkit-animation-name: fadeOut;
    animation-name: fadeOut
}

@-webkit-keyframes fadeOut {
    0% {
        opacity: 1
    }
    100% {
        opacity: 0
    }
}

@keyframes fadeOut {
    0% {
        opacity: 1
    }
    100% {
        opacity: 0
    }
}

.owl-height {
    -webkit-transition: height 500ms ease-in-out;
    -o-transition: height 500ms ease-in-out;
    transition: height 500ms ease-in-out
}

.owl-carousel {
    display: none;
    width: 100%;
    -webkit-tap-highlight-color: transparent;
    position: relative;
    z-index: 1
}

.owl-carousel .owl-stage {
    position: relative;
    -ms-touch-action: pan-Y
}

.owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0
}

.owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    -webkit-transform: translate3d(0px, 0px, 0px);
    padding-bottom: 12px
}

.owl-carousel .owl-controls .owl-nav .owl-prev, .owl-carousel .owl-controls .owl-nav .owl-next, .owl-carousel .owl-controls .owl-dot {
    cursor: pointer;
    cursor: hand;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.owl-carousel.owl-loaded {
    display: block
}

.owl-carousel.owl-loading {
    opacity: 0;
    display: block
}

.owl-carousel.owl-hidden {
    opacity: 0
}

.owl-carousel .owl-refresh .owl-item {
    display: none
}

.owl-carousel .owl-item {
    position: relative;
    min-height: 1px;
    float: left
}

.owl-carousel.owl-text-select-on .owl-item {
    -webkit-user-select: auto;
    -moz-user-select: auto;
    -ms-user-select: auto;
    user-select: auto
}

.owl-carousel .owl-grab {
    cursor: move;
    cursor: -webkit-grab;
    cursor: -o-grab;
    cursor: -ms-grab;
    cursor: grab
}

.owl-carousel.owl-rtl {
    direction: rtl
}

.owl-carousel.owl-rtl .owl-item {
    float: right
}

.no-js .owl-carousel {
    display: block
}

.owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    -webkit-transition: opacity 400ms ease;
    -o-transition: opacity 400ms ease;
    transition: opacity 400ms ease
}

.owl-carousel .owl-item img {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d
}

.owl-carousel .owl-video-wrapper {
    position: relative;
    height: 100%;
    background: #000
}

.owl-carousel .owl-video-play-icon {
    position: absolute;
    height: 80px;
    width: 80px;
    left: 50%;
    top: 50%;
    margin-left: -40px;
    margin-top: -40px;
    background: url("owl.video.play.png") no-repeat;
    cursor: pointer;
    z-index: 1;
    -webkit-backface-visibility: hidden;
    -webkit-transition: scale 100ms ease;
    -o-transition: scale 100ms ease;
    transition: scale 100ms ease
}

.owl-carousel .owl-video-play-icon:hover {
    -webkit-transition: scale(1.3, 1.3);
    -o-transition: scale(1.3, 1.3);
    transition: scale(1.3, 1.3)
}

.owl-carousel .owl-video-playing .owl-video-tn, .owl-carousel .owl-video-playing .owl-video-play-icon {
    display: none
}

.owl-carousel .owl-video-tn {
    opacity: 0;
    height: 100%;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    -webkit-transition: opacity 400ms ease;
    -o-transition: opacity 400ms ease;
    transition: opacity 400ms ease
}

.owl-carousel .owl-video-frame {
    position: relative;
    z-index: 1
}

/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2017 Daniel Eden
 */
.animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both
}

.animated.infinite {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite
}

.animated.hinge {
    -webkit-animation-duration: 2s;
    animation-duration: 2s
}

.animated.flipOutX, .animated.flipOutY, .animated.bounceIn, .animated.bounceOut {
    -webkit-animation-duration: .75s;
    animation-duration: .75s
}

@-webkit-keyframes bounce {
    from, 20%, 53%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    40%, 43% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -30px, 0);
        transform: translate3d(0, -30px, 0)
    }
    70% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -15px, 0);
        transform: translate3d(0, -15px, 0)
    }
    90% {
        -webkit-transform: translate3d(0, -4px, 0);
        transform: translate3d(0, -4px, 0)
    }
}

@keyframes bounce {
    from, 20%, 53%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    40%, 43% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -30px, 0);
        transform: translate3d(0, -30px, 0)
    }
    70% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -15px, 0);
        transform: translate3d(0, -15px, 0)
    }
    90% {
        -webkit-transform: translate3d(0, -4px, 0);
        transform: translate3d(0, -4px, 0)
    }
}

.bounce {
    -webkit-animation-name: bounce;
    animation-name: bounce;
    -webkit-transform-origin: center bottom;
    -ms-transform-origin: center bottom;
    transform-origin: center bottom
}

@-webkit-keyframes flash {
    from, 50%, to {
        opacity: 1
    }
    25%, 75% {
        opacity: 0
    }
}

@keyframes flash {
    from, 50%, to {
        opacity: 1
    }
    25%, 75% {
        opacity: 0
    }
}

.flash {
    -webkit-animation-name: flash;
    animation-name: flash
}

@-webkit-keyframes pulse {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
    50% {
        -webkit-transform: scale3d(1.05, 1.05, 1.05);
        transform: scale3d(1.05, 1.05, 1.05)
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

@keyframes pulse {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
    50% {
        -webkit-transform: scale3d(1.05, 1.05, 1.05);
        transform: scale3d(1.05, 1.05, 1.05)
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

.pulse {
    -webkit-animation-name: pulse;
    animation-name: pulse
}

@-webkit-keyframes rubberBand {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
    30% {
        -webkit-transform: scale3d(1.25, 0.75, 1);
        transform: scale3d(1.25, 0.75, 1)
    }
    40% {
        -webkit-transform: scale3d(0.75, 1.25, 1);
        transform: scale3d(0.75, 1.25, 1)
    }
    50% {
        -webkit-transform: scale3d(1.15, 0.85, 1);
        transform: scale3d(1.15, 0.85, 1)
    }
    65% {
        -webkit-transform: scale3d(0.95, 1.05, 1);
        transform: scale3d(0.95, 1.05, 1)
    }
    75% {
        -webkit-transform: scale3d(1.05, 0.95, 1);
        transform: scale3d(1.05, 0.95, 1)
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

@keyframes rubberBand {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
    30% {
        -webkit-transform: scale3d(1.25, 0.75, 1);
        transform: scale3d(1.25, 0.75, 1)
    }
    40% {
        -webkit-transform: scale3d(0.75, 1.25, 1);
        transform: scale3d(0.75, 1.25, 1)
    }
    50% {
        -webkit-transform: scale3d(1.15, 0.85, 1);
        transform: scale3d(1.15, 0.85, 1)
    }
    65% {
        -webkit-transform: scale3d(0.95, 1.05, 1);
        transform: scale3d(0.95, 1.05, 1)
    }
    75% {
        -webkit-transform: scale3d(1.05, 0.95, 1);
        transform: scale3d(1.05, 0.95, 1)
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

.rubberBand {
    -webkit-animation-name: rubberBand;
    animation-name: rubberBand
}

@-webkit-keyframes shake {
    from, to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    10%, 30%, 50%, 70%, 90% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0)
    }
    20%, 40%, 60%, 80% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0)
    }
}

@keyframes shake {
    from, to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    10%, 30%, 50%, 70%, 90% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0)
    }
    20%, 40%, 60%, 80% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0)
    }
}

.shake {
    -webkit-animation-name: shake;
    animation-name: shake
}

@-webkit-keyframes headShake {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
    6.5% {
        -webkit-transform: translateX(-6px) rotateY(-9deg);
        transform: translateX(-6px) rotateY(-9deg)
    }
    18.5% {
        -webkit-transform: translateX(5px) rotateY(7deg);
        transform: translateX(5px) rotateY(7deg)
    }
    31.5% {
        -webkit-transform: translateX(-3px) rotateY(-5deg);
        transform: translateX(-3px) rotateY(-5deg)
    }
    43.5% {
        -webkit-transform: translateX(2px) rotateY(3deg);
        transform: translateX(2px) rotateY(3deg)
    }
    50% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
}

@keyframes headShake {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
    6.5% {
        -webkit-transform: translateX(-6px) rotateY(-9deg);
        transform: translateX(-6px) rotateY(-9deg)
    }
    18.5% {
        -webkit-transform: translateX(5px) rotateY(7deg);
        transform: translateX(5px) rotateY(7deg)
    }
    31.5% {
        -webkit-transform: translateX(-3px) rotateY(-5deg);
        transform: translateX(-3px) rotateY(-5deg)
    }
    43.5% {
        -webkit-transform: translateX(2px) rotateY(3deg);
        transform: translateX(2px) rotateY(3deg)
    }
    50% {
        -webkit-transform: translateX(0);
        transform: translateX(0)
    }
}

.headShake {
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-name: headShake;
    animation-name: headShake
}

@-webkit-keyframes swing {
    20% {
        -webkit-transform: rotate3d(0, 0, 1, 15deg);
        transform: rotate3d(0, 0, 1, 15deg)
    }
    40% {
        -webkit-transform: rotate3d(0, 0, 1, -10deg);
        transform: rotate3d(0, 0, 1, -10deg)
    }
    60% {
        -webkit-transform: rotate3d(0, 0, 1, 5deg);
        transform: rotate3d(0, 0, 1, 5deg)
    }
    80% {
        -webkit-transform: rotate3d(0, 0, 1, -5deg);
        transform: rotate3d(0, 0, 1, -5deg)
    }
    to {
        -webkit-transform: rotate3d(0, 0, 1, 0deg);
        transform: rotate3d(0, 0, 1, 0deg)
    }
}

@keyframes swing {
    20% {
        -webkit-transform: rotate3d(0, 0, 1, 15deg);
        transform: rotate3d(0, 0, 1, 15deg)
    }
    40% {
        -webkit-transform: rotate3d(0, 0, 1, -10deg);
        transform: rotate3d(0, 0, 1, -10deg)
    }
    60% {
        -webkit-transform: rotate3d(0, 0, 1, 5deg);
        transform: rotate3d(0, 0, 1, 5deg)
    }
    80% {
        -webkit-transform: rotate3d(0, 0, 1, -5deg);
        transform: rotate3d(0, 0, 1, -5deg)
    }
    to {
        -webkit-transform: rotate3d(0, 0, 1, 0deg);
        transform: rotate3d(0, 0, 1, 0deg)
    }
}

.swing {
    -webkit-transform-origin: top center;
    -ms-transform-origin: top center;
    transform-origin: top center;
    -webkit-animation-name: swing;
    animation-name: swing
}

@-webkit-keyframes tada {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
    10%, 20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)
    }
    30%, 50%, 70%, 90% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
    }
    40%, 60%, 80% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

@keyframes tada {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
    10%, 20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)
    }
    30%, 50%, 70%, 90% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
    }
    40%, 60%, 80% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

.tada {
    -webkit-animation-name: tada;
    animation-name: tada
}

@-webkit-keyframes wobble {
    from {
        -webkit-transform: none;
        transform: none
    }
    15% {
        -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
    }
    30% {
        -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
    }
    45% {
        -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
    }
    60% {
        -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
    }
    75% {
        -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
    }
    to {
        -webkit-transform: none;
        transform: none
    }
}

@keyframes wobble {
    from {
        -webkit-transform: none;
        transform: none
    }
    15% {
        -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
    }
    30% {
        -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
    }
    45% {
        -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
    }
    60% {
        -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
    }
    75% {
        -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
    }
    to {
        -webkit-transform: none;
        transform: none
    }
}

.wobble {
    -webkit-animation-name: wobble;
    animation-name: wobble
}

@-webkit-keyframes jello {
    from, 11.1%, to {
        -webkit-transform: none;
        transform: none
    }
    22.2% {
        -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
        transform: skewX(-12.5deg) skewY(-12.5deg)
    }
    33.3% {
        -webkit-transform: skewX(6.25deg) skewY(6.25deg);
        transform: skewX(6.25deg) skewY(6.25deg)
    }
    44.4% {
        -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
        transform: skewX(-3.125deg) skewY(-3.125deg)
    }
    55.5% {
        -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
        transform: skewX(1.5625deg) skewY(1.5625deg)
    }
    66.6% {
        -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
        transform: skewX(-0.78125deg) skewY(-0.78125deg)
    }
    77.7% {
        -webkit-transform: skewX(0.39062deg) skewY(0.39062deg);
        transform: skewX(0.39062deg) skewY(0.39062deg)
    }
    88.8% {
        -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
        transform: skewX(-0.19531deg) skewY(-0.19531deg)
    }
}

@keyframes jello {
    from, 11.1%, to {
        -webkit-transform: none;
        transform: none
    }
    22.2% {
        -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
        transform: skewX(-12.5deg) skewY(-12.5deg)
    }
    33.3% {
        -webkit-transform: skewX(6.25deg) skewY(6.25deg);
        transform: skewX(6.25deg) skewY(6.25deg)
    }
    44.4% {
        -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
        transform: skewX(-3.125deg) skewY(-3.125deg)
    }
    55.5% {
        -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
        transform: skewX(1.5625deg) skewY(1.5625deg)
    }
    66.6% {
        -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
        transform: skewX(-0.78125deg) skewY(-0.78125deg)
    }
    77.7% {
        -webkit-transform: skewX(0.39062deg) skewY(0.39062deg);
        transform: skewX(0.39062deg) skewY(0.39062deg)
    }
    88.8% {
        -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
        transform: skewX(-0.19531deg) skewY(-0.19531deg)
    }
}

.jello {
    -webkit-animation-name: jello;
    animation-name: jello;
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
    transform-origin: center
}

@-webkit-keyframes bounceIn {
    from, 20%, 40%, 60%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    0% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3)
    }
    20% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1)
    }
    40% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03, 1.03, 1.03);
        transform: scale3d(1.03, 1.03, 1.03)
    }
    80% {
        -webkit-transform: scale3d(0.97, 0.97, 0.97);
        transform: scale3d(0.97, 0.97, 0.97)
    }
    to {
        opacity: 1;
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

@keyframes bounceIn {
    from, 20%, 40%, 60%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    0% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3)
    }
    20% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1)
    }
    40% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03, 1.03, 1.03);
        transform: scale3d(1.03, 1.03, 1.03)
    }
    80% {
        -webkit-transform: scale3d(0.97, 0.97, 0.97);
        transform: scale3d(0.97, 0.97, 0.97)
    }
    to {
        opacity: 1;
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1)
    }
}

.bounceIn {
    -webkit-animation-name: bounceIn;
    animation-name: bounceIn
}

@-webkit-keyframes bounceInDown {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0, -3000px, 0);
        transform: translate3d(0, -3000px, 0)
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, 25px, 0);
        transform: translate3d(0, 25px, 0)
    }
    75% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0)
    }
    90% {
        -webkit-transform: translate3d(0, 5px, 0);
        transform: translate3d(0, 5px, 0)
    }
    to {
        -webkit-transform: none;
        transform: none
    }
}

@keyframes bounceInDown {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0, -3000px, 0);
        transform: translate3d(0, -3000px, 0)
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, 25px, 0);
        transform: translate3d(0, 25px, 0)
    }
    75% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0)
    }
    90% {
        -webkit-transform: translate3d(0, 5px, 0);
        transform: translate3d(0, 5px, 0)
    }
    to {
        -webkit-transform: none;
        transform: none
    }
}

.bounceInDown {
    -webkit-animation-name: bounceInDown;
    animation-name: bounceInDown
}

@-webkit-keyframes bounceInLeft {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(-3000px, 0, 0);
        transform: translate3d(-3000px, 0, 0)
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(25px, 0, 0);
        transform: translate3d(25px, 0, 0)
    }
    75% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0)
    }
    90% {
        -webkit-transform: translate3d(5px, 0, 0);
        transform: translate3d(5px, 0, 0)
    }
    to {
        -webkit-transform: none;
        transform: none
    }
}

@keyframes bounceInLeft {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(-3000px, 0, 0);
        transform: translate3d(-3000px, 0, 0)
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(25px, 0, 0);
        transform: translate3d(25px, 0, 0)
    }
    75% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0)
    }
    90% {
        -webkit-transform: translate3d(5px, 0, 0);
        transform: translate3d(5px, 0, 0)
    }
    to {
        -webkit-transform: none;
        transform: none
    }
}

.bounceInLeft {
    -webkit-animation-name: bounceInLeft;
    animation-name: bounceInLeft
}

@-webkit-keyframes bounceInRight {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    from {
        opacity: 0;
        -webkit-transform: translate3d(3000px, 0, 0);
        transform: translate3d(3000px, 0, 0)
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(-25px, 0, 0);
        transform: translate3d(-25px, 0, 0)
    }
    75% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0)
    }
    90% {
        -webkit-transform: translate3d(-5px, 0, 0);
        transform: translate3d(-5px, 0, 0)
    }
    to {
        -webkit-transform: none;
        transform: none
    }
}

@keyframes bounceInRight {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    from {
        opacity: 0;
        -webkit-transform: translate3d(3000px, 0, 0);
        transform: translate3d(3000px, 0, 0)
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(-25px, 0, 0);
        transform: translate3d(-25px, 0, 0)
    }
    75% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0)
    }
    90% {
        -webkit-transform: translate3d(-5px, 0, 0);
        transform: translate3d(-5px, 0, 0)
    }
    to {
        -webkit-transform: none;
        transform: none
    }
}

.bounceInRight {
    -webkit-animation-name: bounceInRight;
    animation-name: bounceInRight
}

@-webkit-keyframes bounceInUp {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 3000px, 0);
        transform: translate3d(0, 3000px, 0)
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0)
    }
    75% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0)
    }
    90% {
        -webkit-transform: translate3d(0, -5px, 0);
        transform: translate3d(0, -5px, 0)
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

@keyframes bounceInUp {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 3000px, 0);
        transform: translate3d(0, 3000px, 0)
    }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0)
    }
    75% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0)
    }
    90% {
        -webkit-transform: translate3d(0, -5px, 0);
        transform: translate3d(0, -5px, 0)
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

.bounceInUp {
    -webkit-animation-name: bounceInUp;
    animation-name: bounceInUp
}

@-webkit-keyframes bounceOut {
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9)
    }
    50%, 55% {
        opacity: 1;
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1)
    }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3)
    }
}

@keyframes bounceOut {
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9)
    }
    50%, 55% {
        opacity: 1;
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1)
    }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3)
    }
}

.bounceOut {
    -webkit-animation-name: bounceOut;
    animation-name: bounceOut
}

@-webkit-keyframes bounceOutDown {
    20% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0)
    }
    40%, 45% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0)
    }
}

@keyframes bounceOutDown {
    20% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0)
    }
    40%, 45% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0)
    }
}

.bounceOutDown {
    -webkit-animation-name: bounceOutDown;
    animation-name: bounceOutDown
}

@-webkit-keyframes bounceOutLeft {
    20% {
        opacity: 1;
        -webkit-transform: translate3d(20px, 0, 0);
        transform: translate3d(20px, 0, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-2000px, 0, 0);
        transform: translate3d(-2000px, 0, 0)
    }
}

@keyframes bounceOutLeft {
    20% {
        opacity: 1;
        -webkit-transform: translate3d(20px, 0, 0);
        transform: translate3d(20px, 0, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-2000px, 0, 0);
        transform: translate3d(-2000px, 0, 0)
    }
}

.bounceOutLeft {
    -webkit-animation-name: bounceOutLeft;
    animation-name: bounceOutLeft
}

@-webkit-keyframes bounceOutRight {
    20% {
        opacity: 1;
        -webkit-transform: translate3d(-20px, 0, 0);
        transform: translate3d(-20px, 0, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(2000px, 0, 0);
        transform: translate3d(2000px, 0, 0)
    }
}

@keyframes bounceOutRight {
    20% {
        opacity: 1;
        -webkit-transform: translate3d(-20px, 0, 0);
        transform: translate3d(-20px, 0, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(2000px, 0, 0);
        transform: translate3d(2000px, 0, 0)
    }
}

.bounceOutRight {
    -webkit-animation-name: bounceOutRight;
    animation-name: bounceOutRight
}

@-webkit-keyframes bounceOutUp {
    20% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0)
    }
    40%, 45% {
        opacity: 1;
        -webkit-transform: translate3d(0, 20px, 0);
        transform: translate3d(0, 20px, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0)
    }
}

@keyframes bounceOutUp {
    20% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0)
    }
    40%, 45% {
        opacity: 1;
        -webkit-transform: translate3d(0, 20px, 0);
        transform: translate3d(0, 20px, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0)
    }
}

.bounceOutUp {
    -webkit-animation-name: bounceOutUp;
    animation-name: bounceOutUp
}

@-webkit-keyframes fadeIn {
    from {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

@keyframes fadeIn {
    from {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

.fadeIn {
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn
}

@-webkit-keyframes fadeInDown {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.fadeInDown {
    -webkit-animation-name: fadeInDown;
    animation-name: fadeInDown
}

@-webkit-keyframes fadeInDownBig {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes fadeInDownBig {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.fadeInDownBig {
    -webkit-animation-name: fadeInDownBig;
    animation-name: fadeInDownBig
}

@-webkit-keyframes fadeInLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.fadeInLeft {
    -webkit-animation-name: fadeInLeft;
    animation-name: fadeInLeft
}

@-webkit-keyframes fadeInLeftBig {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-2000px, 0, 0);
        transform: translate3d(-2000px, 0, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes fadeInLeftBig {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-2000px, 0, 0);
        transform: translate3d(-2000px, 0, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.fadeInLeftBig {
    -webkit-animation-name: fadeInLeftBig;
    animation-name: fadeInLeftBig
}

@-webkit-keyframes fadeInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.fadeInRight {
    -webkit-animation-name: fadeInRight;
    animation-name: fadeInRight
}

@-webkit-keyframes fadeInRightBig {
    from {
        opacity: 0;
        -webkit-transform: translate3d(2000px, 0, 0);
        transform: translate3d(2000px, 0, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes fadeInRightBig {
    from {
        opacity: 0;
        -webkit-transform: translate3d(2000px, 0, 0);
        transform: translate3d(2000px, 0, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.fadeInRightBig {
    -webkit-animation-name: fadeInRightBig;
    animation-name: fadeInRightBig
}

@-webkit-keyframes fadeInUp {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.fadeInUp {
    -webkit-animation-name: fadeInUp;
    animation-name: fadeInUp
}

@-webkit-keyframes fadeInUpBig {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes fadeInUpBig {
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.fadeInUpBig {
    -webkit-animation-name: fadeInUpBig;
    animation-name: fadeInUpBig
}

@keyframes fadeOut {
    from {
        opacity: 1
    }
    to {
        opacity: 0
    }
}

.fadeOut {
    -webkit-animation-name: fadeOut;
    animation-name: fadeOut
}

@-webkit-keyframes fadeOutDown {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0)
    }
}

@keyframes fadeOutDown {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0)
    }
}

.fadeOutDown {
    -webkit-animation-name: fadeOutDown;
    animation-name: fadeOutDown
}

@-webkit-keyframes fadeOutDownBig {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0)
    }
}

@keyframes fadeOutDownBig {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0)
    }
}

.fadeOutDownBig {
    -webkit-animation-name: fadeOutDownBig;
    animation-name: fadeOutDownBig
}

@-webkit-keyframes fadeOutLeft {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0)
    }
}

@keyframes fadeOutLeft {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0)
    }
}

.fadeOutLeft {
    -webkit-animation-name: fadeOutLeft;
    animation-name: fadeOutLeft
}

@-webkit-keyframes fadeOutLeftBig {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-2000px, 0, 0);
        transform: translate3d(-2000px, 0, 0)
    }
}

@keyframes fadeOutLeftBig {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(-2000px, 0, 0);
        transform: translate3d(-2000px, 0, 0)
    }
}

.fadeOutLeftBig {
    -webkit-animation-name: fadeOutLeftBig;
    animation-name: fadeOutLeftBig
}

@-webkit-keyframes fadeOutRight {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0)
    }
}

@keyframes fadeOutRight {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0)
    }
}

.fadeOutRight {
    -webkit-animation-name: fadeOutRight;
    animation-name: fadeOutRight
}

@-webkit-keyframes fadeOutRightBig {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(2000px, 0, 0);
        transform: translate3d(2000px, 0, 0)
    }
}

@keyframes fadeOutRightBig {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(2000px, 0, 0);
        transform: translate3d(2000px, 0, 0)
    }
}

.fadeOutRightBig {
    -webkit-animation-name: fadeOutRightBig;
    animation-name: fadeOutRightBig
}

@-webkit-keyframes fadeOutUp {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0)
    }
}

@keyframes fadeOutUp {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0)
    }
}

.fadeOutUp {
    -webkit-animation-name: fadeOutUp;
    animation-name: fadeOutUp
}

@-webkit-keyframes fadeOutUpBig {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0)
    }
}

@keyframes fadeOutUpBig {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0)
    }
}

.fadeOutUpBig {
    -webkit-animation-name: fadeOutUpBig;
    animation-name: fadeOutUpBig
}

@-webkit-keyframes flip {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out
    }
    40% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out
    }
    50% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
    80% {
        -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
}

@keyframes flip {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out
    }
    40% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out
    }
    50% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
    80% {
        -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
}

.animated.flip {
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
    -webkit-animation-name: flip;
    animation-name: flip
}

@-webkit-keyframes flipInX {
    from {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
    60% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px)
    }
}

@keyframes flipInX {
    from {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
    60% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px)
    }
}

.flipInX {
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    -webkit-animation-name: flipInX;
    animation-name: flipInX
}

@-webkit-keyframes flipInY {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
    60% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        opacity: 1
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px)
    }
}

@keyframes flipInY {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0
    }
    40% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in
    }
    60% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        opacity: 1
    }
    80% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
    }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px)
    }
}

.flipInY {
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    -webkit-animation-name: flipInY;
    animation-name: flipInY
}

@-webkit-keyframes flipOutX {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px)
    }
    30% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1
    }
    to {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        opacity: 0
    }
}

@keyframes flipOutX {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px)
    }
    30% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1
    }
    to {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        opacity: 0
    }
}

.flipOutX {
    -webkit-animation-name: flipOutX;
    animation-name: flipOutX;
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important
}

@-webkit-keyframes flipOutY {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px)
    }
    30% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        opacity: 1
    }
    to {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        opacity: 0
    }
}

@keyframes flipOutY {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px)
    }
    30% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        opacity: 1
    }
    to {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        opacity: 0
    }
}

.flipOutY {
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    -webkit-animation-name: flipOutY;
    animation-name: flipOutY
}

@-webkit-keyframes lightSpeedIn {
    from {
        -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
        transform: translate3d(100%, 0, 0) skewX(-30deg);
        opacity: 0
    }
    60% {
        -webkit-transform: skewX(20deg);
        transform: skewX(20deg);
        opacity: 1
    }
    80% {
        -webkit-transform: skewX(-5deg);
        transform: skewX(-5deg);
        opacity: 1
    }
    to {
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

@keyframes lightSpeedIn {
    from {
        -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
        transform: translate3d(100%, 0, 0) skewX(-30deg);
        opacity: 0
    }
    60% {
        -webkit-transform: skewX(20deg);
        transform: skewX(20deg);
        opacity: 1
    }
    80% {
        -webkit-transform: skewX(-5deg);
        transform: skewX(-5deg);
        opacity: 1
    }
    to {
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

.lightSpeedIn {
    -webkit-animation-name: lightSpeedIn;
    animation-name: lightSpeedIn;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
}

@-webkit-keyframes lightSpeedOut {
    from {
        opacity: 1
    }
    to {
        -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
        transform: translate3d(100%, 0, 0) skewX(30deg);
        opacity: 0
    }
}

@keyframes lightSpeedOut {
    from {
        opacity: 1
    }
    to {
        -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
        transform: translate3d(100%, 0, 0) skewX(30deg);
        opacity: 0
    }
}

.lightSpeedOut {
    -webkit-animation-name: lightSpeedOut;
    animation-name: lightSpeedOut;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
}

@-webkit-keyframes rotateIn {
    from {
        -webkit-transform-origin: center;
        transform-origin: center;
        -webkit-transform: rotate3d(0, 0, 1, -200deg);
        transform: rotate3d(0, 0, 1, -200deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: center;
        transform-origin: center;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

@keyframes rotateIn {
    from {
        -webkit-transform-origin: center;
        transform-origin: center;
        -webkit-transform: rotate3d(0, 0, 1, -200deg);
        transform: rotate3d(0, 0, 1, -200deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: center;
        transform-origin: center;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

.rotateIn {
    -webkit-animation-name: rotateIn;
    animation-name: rotateIn
}

@-webkit-keyframes rotateInDownLeft {
    from {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

@keyframes rotateInDownLeft {
    from {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

.rotateInDownLeft {
    -webkit-animation-name: rotateInDownLeft;
    animation-name: rotateInDownLeft
}

@-webkit-keyframes rotateInDownRight {
    from {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

@keyframes rotateInDownRight {
    from {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

.rotateInDownRight {
    -webkit-animation-name: rotateInDownRight;
    animation-name: rotateInDownRight
}

@-webkit-keyframes rotateInUpLeft {
    from {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

@keyframes rotateInUpLeft {
    from {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

.rotateInUpLeft {
    -webkit-animation-name: rotateInUpLeft;
    animation-name: rotateInUpLeft
}

@-webkit-keyframes rotateInUpRight {
    from {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: rotate3d(0, 0, 1, -90deg);
        transform: rotate3d(0, 0, 1, -90deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

@keyframes rotateInUpRight {
    from {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: rotate3d(0, 0, 1, -90deg);
        transform: rotate3d(0, 0, 1, -90deg);
        opacity: 0
    }
    to {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: none;
        transform: none;
        opacity: 1
    }
}

.rotateInUpRight {
    -webkit-animation-name: rotateInUpRight;
    animation-name: rotateInUpRight
}

@-webkit-keyframes rotateOut {
    from {
        -webkit-transform-origin: center;
        transform-origin: center;
        opacity: 1
    }
    to {
        -webkit-transform-origin: center;
        transform-origin: center;
        -webkit-transform: rotate3d(0, 0, 1, 200deg);
        transform: rotate3d(0, 0, 1, 200deg);
        opacity: 0
    }
}

@keyframes rotateOut {
    from {
        -webkit-transform-origin: center;
        transform-origin: center;
        opacity: 1
    }
    to {
        -webkit-transform-origin: center;
        transform-origin: center;
        -webkit-transform: rotate3d(0, 0, 1, 200deg);
        transform: rotate3d(0, 0, 1, 200deg);
        opacity: 0
    }
}

.rotateOut {
    -webkit-animation-name: rotateOut;
    animation-name: rotateOut
}

@-webkit-keyframes rotateOutDownLeft {
    from {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        opacity: 1
    }
    to {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0
    }
}

@keyframes rotateOutDownLeft {
    from {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        opacity: 1
    }
    to {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: rotate3d(0, 0, 1, 45deg);
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0
    }
}

.rotateOutDownLeft {
    -webkit-animation-name: rotateOutDownLeft;
    animation-name: rotateOutDownLeft
}

@-webkit-keyframes rotateOutDownRight {
    from {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        opacity: 1
    }
    to {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0
    }
}

@keyframes rotateOutDownRight {
    from {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        opacity: 1
    }
    to {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0
    }
}

.rotateOutDownRight {
    -webkit-animation-name: rotateOutDownRight;
    animation-name: rotateOutDownRight
}

@-webkit-keyframes rotateOutUpLeft {
    from {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        opacity: 1
    }
    to {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0
    }
}

@keyframes rotateOutUpLeft {
    from {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        opacity: 1
    }
    to {
        -webkit-transform-origin: left bottom;
        transform-origin: left bottom;
        -webkit-transform: rotate3d(0, 0, 1, -45deg);
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0
    }
}

.rotateOutUpLeft {
    -webkit-animation-name: rotateOutUpLeft;
    animation-name: rotateOutUpLeft
}

@-webkit-keyframes rotateOutUpRight {
    from {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        opacity: 1
    }
    to {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: rotate3d(0, 0, 1, 90deg);
        transform: rotate3d(0, 0, 1, 90deg);
        opacity: 0
    }
}

@keyframes rotateOutUpRight {
    from {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        opacity: 1
    }
    to {
        -webkit-transform-origin: right bottom;
        transform-origin: right bottom;
        -webkit-transform: rotate3d(0, 0, 1, 90deg);
        transform: rotate3d(0, 0, 1, 90deg);
        opacity: 0
    }
}

.rotateOutUpRight {
    -webkit-animation-name: rotateOutUpRight;
    animation-name: rotateOutUpRight
}

@-webkit-keyframes hinge {
    0% {
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out
    }
    20%, 60% {
        -webkit-transform: rotate3d(0, 0, 1, 80deg);
        transform: rotate3d(0, 0, 1, 80deg);
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out
    }
    40%, 80% {
        -webkit-transform: rotate3d(0, 0, 1, 60deg);
        transform: rotate3d(0, 0, 1, 60deg);
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        opacity: 1
    }
    to {
        -webkit-transform: translate3d(0, 700px, 0);
        transform: translate3d(0, 700px, 0);
        opacity: 0
    }
}

@keyframes hinge {
    0% {
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out
    }
    20%, 60% {
        -webkit-transform: rotate3d(0, 0, 1, 80deg);
        transform: rotate3d(0, 0, 1, 80deg);
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out
    }
    40%, 80% {
        -webkit-transform: rotate3d(0, 0, 1, 60deg);
        transform: rotate3d(0, 0, 1, 60deg);
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        opacity: 1
    }
    to {
        -webkit-transform: translate3d(0, 700px, 0);
        transform: translate3d(0, 700px, 0);
        opacity: 0
    }
}

.hinge {
    -webkit-animation-name: hinge;
    animation-name: hinge
}

@-webkit-keyframes jackInTheBox {
    from {
        opacity: 0;
        -webkit-transform: scale(0.1) rotate(30deg);
        transform: scale(0.1) rotate(30deg);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom
    }
    50% {
        -webkit-transform: rotate(-10deg);
        transform: rotate(-10deg)
    }
    70% {
        -webkit-transform: rotate(3deg);
        transform: rotate(3deg)
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

@keyframes jackInTheBox {
    from {
        opacity: 0;
        -webkit-transform: scale(0.1) rotate(30deg);
        transform: scale(0.1) rotate(30deg);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom
    }
    50% {
        -webkit-transform: rotate(-10deg);
        transform: rotate(-10deg)
    }
    70% {
        -webkit-transform: rotate(3deg);
        transform: rotate(3deg)
    }
    to {
        opacity: 1;
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

.jackInTheBox {
    -webkit-animation-name: jackInTheBox;
    animation-name: jackInTheBox
}

@-webkit-keyframes rollIn {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

@keyframes rollIn {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
    }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none
    }
}

.rollIn {
    -webkit-animation-name: rollIn;
    animation-name: rollIn
}

@-webkit-keyframes rollOut {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
    }
}

@keyframes rollOut {
    from {
        opacity: 1
    }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
    }
}

.rollOut {
    -webkit-animation-name: rollOut;
    animation-name: rollOut
}

@-webkit-keyframes zoomIn {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3)
    }
    50% {
        opacity: 1
    }
}

@keyframes zoomIn {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3)
    }
    50% {
        opacity: 1
    }
}

.zoomIn {
    -webkit-animation-name: zoomIn;
    animation-name: zoomIn
}

@-webkit-keyframes zoomInDown {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

@keyframes zoomInDown {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

.zoomInDown {
    -webkit-animation-name: zoomInDown;
    animation-name: zoomInDown
}

@-webkit-keyframes zoomInLeft {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

@keyframes zoomInLeft {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

.zoomInLeft {
    -webkit-animation-name: zoomInLeft;
    animation-name: zoomInLeft
}

@-webkit-keyframes zoomInRight {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

@keyframes zoomInRight {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

.zoomInRight {
    -webkit-animation-name: zoomInRight;
    animation-name: zoomInRight
}

@-webkit-keyframes zoomInUp {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

@keyframes zoomInUp {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

.zoomInUp {
    -webkit-animation-name: zoomInUp;
    animation-name: zoomInUp
}

@-webkit-keyframes zoomOut {
    from {
        opacity: 1
    }
    50% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3)
    }
    to {
        opacity: 0
    }
}

@keyframes zoomOut {
    from {
        opacity: 1
    }
    50% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3)
    }
    to {
        opacity: 0
    }
}

.zoomOut {
    -webkit-animation-name: zoomOut;
    animation-name: zoomOut
}

@-webkit-keyframes zoomOutDown {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

@keyframes zoomOutDown {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

.zoomOutDown {
    -webkit-animation-name: zoomOutDown;
    animation-name: zoomOutDown
}

@-webkit-keyframes zoomOutLeft {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
        transform: scale(0.1) translate3d(-2000px, 0, 0);
        -webkit-transform-origin: left center;
        transform-origin: left center
    }
}

@keyframes zoomOutLeft {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
        transform: scale(0.1) translate3d(-2000px, 0, 0);
        -webkit-transform-origin: left center;
        transform-origin: left center
    }
}

.zoomOutLeft {
    -webkit-animation-name: zoomOutLeft;
    animation-name: zoomOutLeft
}

@-webkit-keyframes zoomOutRight {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
        transform: scale(0.1) translate3d(2000px, 0, 0);
        -webkit-transform-origin: right center;
        transform-origin: right center
    }
}

@keyframes zoomOutRight {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0)
    }
    to {
        opacity: 0;
        -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
        transform: scale(0.1) translate3d(2000px, 0, 0);
        -webkit-transform-origin: right center;
        transform-origin: right center
    }
}

.zoomOutRight {
    -webkit-animation-name: zoomOutRight;
    animation-name: zoomOutRight
}

@-webkit-keyframes zoomOutUp {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

@keyframes zoomOutUp {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
    }
}

.zoomOutUp {
    -webkit-animation-name: zoomOutUp;
    animation-name: zoomOutUp
}

@-webkit-keyframes slideInDown {
    from {
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
        visibility: visible
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

@keyframes slideInDown {
    from {
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0);
        visibility: visible
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

.slideInDown {
    -webkit-animation-name: slideInDown;
    animation-name: slideInDown
}

@-webkit-keyframes slideInLeft {
    from {
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
        visibility: visible
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

@keyframes slideInLeft {
    from {
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
        visibility: visible
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

.slideInLeft {
    -webkit-animation-name: slideInLeft;
    animation-name: slideInLeft
}

@-webkit-keyframes slideInRight {
    from {
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
        visibility: visible
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

@keyframes slideInRight {
    from {
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0);
        visibility: visible
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

.slideInRight {
    -webkit-animation-name: slideInRight;
    animation-name: slideInRight
}

@-webkit-keyframes slideInUp {
    from {
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
        visibility: visible
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

@keyframes slideInUp {
    from {
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0);
        visibility: visible
    }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
}

.slideInUp {
    -webkit-animation-name: slideInUp;
    animation-name: slideInUp
}

@-webkit-keyframes slideOutDown {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0)
    }
}

@keyframes slideOutDown {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0)
    }
}

.slideOutDown {
    -webkit-animation-name: slideOutDown;
    animation-name: slideOutDown
}

@-webkit-keyframes slideOutLeft {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0)
    }
}

@keyframes slideOutLeft {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0)
    }
}

.slideOutLeft {
    -webkit-animation-name: slideOutLeft;
    animation-name: slideOutLeft
}

@-webkit-keyframes slideOutRight {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0)
    }
}

@keyframes slideOutRight {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0)
    }
}

.slideOutRight {
    -webkit-animation-name: slideOutRight;
    animation-name: slideOutRight
}

@-webkit-keyframes slideOutUp {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0)
    }
}

@keyframes slideOutUp {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0)
    }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0)
    }
}

.slideOutUp {
    -webkit-animation-name: slideOutUp;
    animation-name: slideOutUp
}

.jq-checkbox, .jq-radio {
    position: relative;
    display: inline-block;
    overflow: hidden;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

.jq-checkbox input, .jq-radio input {
    position: absolute;
    z-index: -1;
    margin: 0;
    padding: 0;
    opacity: 0
}

.jq-file {
    position: relative;
    display: inline-block;
    overflow: hidden
}

.jq-file input {
    position: absolute;
    top: 0;
    right: 0;
    height: auto;
    margin: 0;
    padding: 0;
    opacity: 0;
    font-size: 100px;
    line-height: 1em
}

.jq-file__name {
    overflow: hidden;
    white-space: nowrap;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis
}

.jq-selectbox, .jq-select-multiple {
    position: relative;
    display: inline-block
}

.jq-selectbox select, .jq-select-multiple select {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0
}

.jq-selectbox li, .jq-select-multiple li {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    white-space: nowrap
}

.jq-selectbox {
    z-index: 10 !important
}

.jq-selectbox__select {
    position: relative
}

.jq-selectbox__select-text {
    overflow: hidden;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    white-space: nowrap;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis
}

.jq-selectbox__dropdown {
    position: absolute
}

.jq-selectbox__search input {
    -webkit-appearance: textfield
}

.jq-selectbox__search input::-webkit-search-cancel-button, .jq-selectbox__search input::-webkit-search-decoration {
    -webkit-appearance: none
}

.jq-selectbox__dropdown ul {
    position: relative;
    overflow: auto;
    overflow-x: hidden;
    list-style: none;
    -webkit-overflow-scrolling: touch
}

.jq-select-multiple ul {
    position: relative;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch
}

.jq-number {
    display: inline-block
}

.jq-number__field input {
    -moz-appearance: textfield;
    text-align: left
}

.jq-number__field input::-webkit-inner-spin-button, .jq-number__field input::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none
}

.jq-checkbox, .jq-radio {
    vertical-align: -4px;
    width: 16px;
    height: 16px;
    margin: 0 4px 0 0;
    border: 1px solid #C3C3C3;
    background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#E6E6E6));
    background: -o-linear-gradient(#fff, #E6E6E6);
    background: linear-gradient(#fff, #E6E6E6);
    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05), inset -1px -1px #fff, inset 1px -1px #fff;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05), inset -1px -1px #fff, inset 1px -1px #fff;
    cursor: pointer
}

.jq-checkbox.focused, .jq-radio.focused {
    border: 1px solid #08C
}

.jq-checkbox.disabled, .jq-radio.disabled {
    opacity: .55
}

.jq-checkbox {
    border-radius: 3px
}

.jq-checkbox.checked .jq-checkbox__div {
    width: 8px;
    height: 4px;
    margin: 3px 0 0 3px;
    border-bottom: 2px solid #666;
    border-left: 2px solid #666;
    -webkit-transform: rotate(-50deg);
    -ms-transform: rotate(-50deg);
    transform: rotate(-50deg)
}

.jq-radio {
    border-radius: 50%
}

.jq-radio.checked .jq-radio__div {
    width: 10px;
    height: 10px;
    margin: 3px 0 0 3px;
    border-radius: 50%;
    background: #777;
    -webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.7);
    box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.7)
}

.jq-file {
    width: 270px;
    border-radius: 4px;
    -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1)
}

.jq-file input {
    cursor: pointer
}

.jq-file__name {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    height: 34px;
    padding: 0 80px 0 10px;
    border: 1px solid #CCC;
    border-bottom-color: #B3B3B3;
    border-radius: 4px;
    background: #FFF;
    -webkit-box-shadow: inset 1px 1px #F1F1F1;
    box-shadow: inset 1px 1px #F1F1F1;
    font: 14px/32px Arial, sans-serif;
    color: #333
}

.jq-file__browse {
    position: absolute;
    top: 1px;
    right: 1px;
    padding: 0 10px;
    border-left: 1px solid #CCC;
    border-radius: 0 4px 4px 0;
    background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#E6E6E6));
    background: -o-linear-gradient(#fff, #E6E6E6);
    background: linear-gradient(#fff, #E6E6E6);
    -webkit-box-shadow: inset 1px -1px #F1F1F1, inset -1px 0 #F1F1F1, 0 1px 2px rgba(0, 0, 0, 0.1);
    box-shadow: inset 1px -1px #F1F1F1, inset -1px 0 #F1F1F1, 0 1px 2px rgba(0, 0, 0, 0.1);
    font: 14px/32px Arial, sans-serif;
    color: #333;
    text-shadow: 1px 1px #FFF
}

.jq-file:hover .jq-file__browse {
    background: -webkit-gradient(linear, left top, left bottom, from(#F6F6F6), to(#E6E6E6));
    background: -o-linear-gradient(#F6F6F6, #E6E6E6);
    background: linear-gradient(#F6F6F6, #E6E6E6)
}

.jq-file:active .jq-file__browse {
    background: #F5F5F5;
    -webkit-box-shadow: inset 1px 1px 3px #DDD;
    box-shadow: inset 1px 1px 3px #DDD
}

.jq-file.focused .jq-file__name {
    border: 1px solid #5794BF
}

.jq-file.disabled, .jq-file.disabled .jq-file__name, .jq-file.disabled .jq-file__browse {
    border-color: #CCC;
    background: #F5F5F5;
    -webkit-box-shadow: none;
    box-shadow: none;
    color: #888
}

.jq-number {
    position: relative;
    vertical-align: middle;
    padding: 0;
    text-align: center
}

.jq-number__field {
    width: 140px
}

.jq-number__field input {
    padding: 0 45px;
    width: 100%;
    height: 46px;
    border: none;
    outline: none;
    font-family: "Montserrat";
    font-size: 14px;
    color: #4A4A4A;
    background: #fff;
    border: 1px solid #B3B3B3;
    text-align: center;
    border-radius: 6px;
    -moz-border-radius: 6px;
    -webkit-border-radius: 6px;
    -khtml-border-radius: 6px
}

.jq-number__spin {
    position: absolute;
    top: 0;
    left: 0;
    width: 45px;
    height: 46px;
    border: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: pointer;
    border-right: 1px solid #B3B3B3
}

.jq-number__spin.plus {
    left: auto;
    right: 0;
    border-right: none;
    border-left: 1px solid #B3B3B3
}

.jq-number__spin.minus:after, .jq-number__spin.plus:after {
    content: '-';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    line-height: 46px
}

.jq-number__spin.plus:after {
    content: '+'
}

.jq-number.focused .jq-number__field {
    border: 1px solid #5794BF
}

.jq-number.disabled .jq-number__field, .jq-number.disabled .jq-number__spin {
    border-color: #CCC;
    background: #F5F5F5;
    -webkit-box-shadow: none;
    box-shadow: none;
    color: #888
}

.jq-number.disabled .jq-number__spin:after {
    border-bottom-color: #AAA
}

.jq-number.disabled .jq-number__spin.minus:after {
    border-top-color: #AAA
}

.jq-selectbox {
    width: auto;
    display: inline-block;
    vertical-align: middle;
    cursor: pointer
}

.jq-selectbox__select {
    display: inline-block;
    height: auto;
    padding: 0 20px 0 0;
    border: none;
    font-family: "Montserrat";
    font-size: 14px;
    line-height: 24px;
    color: #6DAE81;
    font-weight: 800;
    border: none
}

.jq-selectbox.disabled .jq-selectbox__select {
    opacity: 0.5
}

.jq-selectbox__select-text {
    display: block;
    width: auto !important;
    overflow: visible
}

.jq-selectbox .placeholder {
    color: #888
}

.jq-selectbox__trigger {
    position: absolute;
    top: 0;
    right: 0;
    width: 20px;
    height: 100%
}

.jq-selectbox__trigger-arrow {
    margin-top: -3px;
    position: absolute;
    top: 50%;
    right: 0;
    width: 12px;
    height: 6px;
    background: url(../images/sel.svg) no-repeat
}

.jq-selectbox__dropdown {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    padding: 0;
    border-top: 1px solid #B3B3B3;
    border-radius: 2px;
    -webkit-border-radius: 2px;
    background: #F5F5F5;
    font-family: "Montserrat";
    font-size: 14px;
    line-height: 20px;
    color: #4A4A4A;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    -moz-box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    -webkit-box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    -khtml-box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1)
}

.jq-selectbox__search {
    margin: 5px
}

.jq-selectbox__search input {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 5px 27px 6px 8px;
    border: 1px solid #CCC;
    border-radius: 3px;
    outline: none;
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNqU078LAXEYx/FzYfNzk5TJaFNKYjFYSQZ/hvwBsvg1UCY2xT9gM8hukQGThWRjkcFw3pdnujhfT736Xn2fPvfc3fd07V0OFDDFAnM0ENYsZRiGLSc9OpqIYIA9fMhhjCrW2h9VlMlcH/aymMGtOqEugX08PwQucUZKdTozMIqdTc9WepQD7wjY9ARx+ydwhfyXfS+S0qMcOEQJGcueB3VccFINdMgal6NzkmPjRwJXxDBB7/2RDdtAp6wb+dpphHDASG5QQ0V6u2aoSqBZD/lDrNWRJynLK2qpBn4rc6K2XB9/Nb8EGABtf1thzY6X2AAAAABJRU5ErkJggg==") no-repeat 100% 50%;
    -webkit-box-shadow: inset 1px 1px #F1F1F1;
    box-shadow: inset 1px 1px #F1F1F1;
    color: #333
}

.jq-selectbox__not-found {
    margin: 5px;
    padding: 5px 8px 6px;
    background: #F0F0F0;
    font-size: 13px
}

.jq-selectbox ul {
    margin: 0;
    padding: 0
}

.jq-selectbox li {
    padding: 15px;
    color: #4A4A4A
}

.jq-selectbox li.selected {
    background-color: #F5A623;
    color: #FFF
}

.jq-selectbox li:hover {
    background-color: #F5A623;
    color: #FFF
}

.jq-selectbox li.disabled {
    color: #AAA
}

.jq-selectbox li.optgroup {
    font-weight: bold
}

.jq-selectbox li.optgroup:hover {
    background: none;
    color: #231F20;
    cursor: default
}

.jq-selectbox li.option {
    padding-left: 25px
}

.jq-select-multiple {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding: 1px;
    border: 1px solid #CCC;
    border-bottom-color: #B3B3B3;
    border-radius: 4px;
    background: #FFF;
    -webkit-box-shadow: inset 1px 1px #F1F1F1, 0 1px 2px rgba(0, 0, 0, 0.1);
    box-shadow: inset 1px 1px #F1F1F1, 0 1px 2px rgba(0, 0, 0, 0.1);
    font: 14px/18px Arial, sans-serif;
    color: #333;
    cursor: default
}

.jq-select-multiple.focused {
    border: 1px solid #5794BF
}

.jq-select-multiple.disabled {
    border-color: #CCC;
    background: #F5F5F5;
    -webkit-box-shadow: none;
    box-shadow: none;
    color: #888
}

.jq-select-multiple ul {
    margin: 0;
    padding: 0
}

.jq-select-multiple li {
    padding: 3px 9px 4px;
    list-style: none
}

.jq-select-multiple li:first-child {
    border-radius: 3px 3px 0 0
}

.jq-select-multiple li:last-child {
    border-radius: 0 0 3px 3px
}

.jq-select-multiple li.selected {
    background: #08C;
    color: #FFF
}

.jq-select-multiple li.disabled {
    color: #AAA
}

.jq-select-multiple li.optgroup {
    font-weight: bold
}

.jq-select-multiple li.option {
    padding-left: 25px
}

.jq-select-multiple.disabled li.selected, .jq-select-multiple li.selected.disabled {
    background: #CCC;
    color: #FFF
}

input[type='email'].styler, input[type='password'].styler, input[type='search'].styler, input[type='tel'].styler, input[type='text'].styler, input[type='url'].styler, textarea.styler {
    padding: 8px 9px;
    border: 1px solid #CCC;
    border-bottom-color: #B3B3B3;
    border-radius: 4px;
    -webkit-box-shadow: inset 1px 1px #F1F1F1, 0 1px 2px rgba(0, 0, 0, 0.1);
    box-shadow: inset 1px 1px #F1F1F1, 0 1px 2px rgba(0, 0, 0, 0.1);
    font: 14px Arial, sans-serif;
    color: #333
}

input[type='search'].styler {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

textarea.styler {
    overflow: auto
}

input[type='email'].styler:hover, input[type='password'].styler:hover, input[type='search'].styler:hover, input[type='tel'].styler:hover, input[type='text'].styler:hover, input[type='url'].styler:hover, textarea.styler:hover {
    border-color: #B3B3B3
}

input[type='email'].styler:hover:focus, input[type='password'].styler:hover:focus, input[type='search'].styler:hover:focus, input[type='tel'].styler:hover:focus, input[type='text'].styler:hover:focus, input[type='url'].styler:hover:focus, textarea.styler:hover:focus {
    border-color: #CCC;
    border-top-color: #B3B3B3;
    outline: none;
    -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1)
}

button.styler, input[type='button'].styler, input[type='submit'].styler, input[type='reset'].styler {
    overflow: visible;
    padding: 8px 11px;
    border: 1px solid #CCC;
    border-bottom-color: #B3B3B3;
    border-radius: 4px;
    outline: none;
    background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#E6E6E6));
    background: -o-linear-gradient(#fff, #E6E6E6);
    background: linear-gradient(#fff, #E6E6E6);
    -webkit-box-shadow: inset 1px -1px #F1F1F1, inset -1px 0 #F1F1F1, 0 1px 2px rgba(0, 0, 0, 0.1);
    box-shadow: inset 1px -1px #F1F1F1, inset -1px 0 #F1F1F1, 0 1px 2px rgba(0, 0, 0, 0.1);
    font: 14px Arial, sans-serif;
    color: #333;
    text-shadow: 1px 1px #FFF;
    cursor: pointer
}

button.styler.styler::-moz-focus-inner, input[type='button'].styler.styler::-moz-focus-inner, input[type='submit'].styler.styler::-moz-focus-inner, input[type='reset'].styler.styler::-moz-focus-inner {
    padding: 0;
    border: 0
}

button.styler:not([disabled]):hover, input[type='button'].styler:not([disabled]):hover, input[type='submit'].styler:not([disabled]):hover, input[type='reset'].styler:not([disabled]):hover, input[type='reset'].styler:hover {
    background: -webkit-gradient(linear, left top, left bottom, from(#F6F6F6), to(#E6E6E6));
    background: -o-linear-gradient(#F6F6F6, #E6E6E6);
    background: linear-gradient(#F6F6F6, #E6E6E6)
}

button.styler:active, input[type='button'].styler:active, input[type='submit'].styler:active, input[type='reset'].styler:active {
    background: #F5F5F5;
    -webkit-box-shadow: inset 1px 1px 3px #DDD;
    box-shadow: inset 1px 1px 3px #DDD
}

button.styler[disabled], input[type='button'].styler[disabled], input[type='submit'].styler[disabled] {
    border-color: #CCC;
    background: #F5F5F5;
    -webkit-box-shadow: none;
    box-shadow: none;
    color: #888
}

.header {
    padding: 35px 0 0 0;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 160px;
    z-index: 90
}

.header.opened {
    overflow: auto;
    height: 100%
}

.header.opened .menu-btn {
    background: none
}

.header.opened .menu-btn:before {
    opacity: 0
}

.header.opened .menu-btn:after {
    opacity: 1
}

.header .logo {
    margin-top: -15px;
    float: left;
    width: 339px;
    font-size: 0
}

.header .logo a {
    text-decoration: none
}

.header .logo img {
    max-width: 100%
}

.header .contacts {
    width: 350px;
    margin-right: 50px;
    float: right;
    font-size: 16px;
    line-height: 19px;
    color: #fff
}

.header .contacts .tel {
    margin-bottom: 4px;
    display: block;
    font-size: 30px;
    line-height: 37px;
    color: #fff;
    font-weight: 800;
    text-decoration: none
}

.header .head-btn {
    float: right;
    width: 280px;
    height: 60px;
    line-height: 56px;
    font-family: "Roboto";
    font-size: 16px;
    color: #fff;
    text-align: center;
    text-decoration: none;
    border: 3px solid #6DAE81;
    border-radius: 60px;
    -moz-border-radius: 60px;
    -webkit-border-radius: 60px;
    -khtml-border-radius: 60px
}

.header .menu-btn {
    padding: 0;
    display: none;
    width: 70px;
    height: 55px
}

.header .menu-btn:before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: url(../images/menu.png) no-repeat center center;
    background-size: 35px auto
}

.header .menu-btn:after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: url(../images/menu2.png) no-repeat center center;
    background-size: 25px auto;
    opacity: 0
}

.footer {
    padding: 90px 0 0 0;
    background: url(../images/footer.jpg) no-repeat top center;
    background-size: cover
}

.footer .f-left {
    float: left;
    width: 330px
}

.footer .f-right {
    float: right;
    width: 790px
}

.footer .f-bottom {
    margin-top: 70px;
    padding-top: 25px;
    padding-bottom: 25px;
    border-top: 1px solid #141414
}

.footer .m-title {
    margin: 0 0 35px 0;
    color: #fff;
    text-align: left
}

.footer .f-logo {
    margin-right: 125px;
    float: left;
    width: 339px;
    font-size: 0
}

.footer .f-logo img {
    max-width: 100%
}

.footer .f-pol {
    margin-top: 55px;
    float: left;
    font-size: 16px;
    line-height: 20px;
    color: #fff;
    text-decoration: underline
}

.footer .f-create {
    margin-top: 30px;
    float: right;
    width: 165px;
    font-size: 12px;
    line-height: 10px;
    color: #fff
}

.footer .f-create a {
    margin-top: 5px;
    display: block;
    font-weight: 800;
    color: #fff;
    text-decoration: underline
}

.footer .f-create a:hover {
    text-decoration: none
}

.f-contacts .tel {
    margin-bottom: 10px;
    font-size: 16px;
    line-height: 20px;
    color: #fff;
    font-weight: 500
}

.f-contacts .tel a {
    display: block;
    font-size: 30px;
    line-height: 38px;
    color: #fff;
    font-weight: 800;
    text-decoration: none
}

.f-contacts .time {
    margin-bottom: 30px;
    font-size: 16px;
    line-height: 20px;
    color: #fff;
    font-weight: 400
}

.f-contacts .ins-lnk {
    position: relative;
    margin-bottom: 50px;
    padding: 0 0 0 45px;
    display: inline-block;
    vertical-align: top;
    font-size: 16px;
    line-height: 20px;
    font-weight: 700;
    color: #F90563;
    text-decoration: none
}

.f-contacts .ins-lnk:before {
    margin-top: -15px;
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 30px;
    height: 30px;
    background: url(../images/ins.png) no-repeat
}

.f-contacts .ins-lnk span {
    border-bottom: 2px solid rgba(249, 5, 99, 0.3)
}

.f-contacts .btn {
    margin-bottom: 20px;
    width: 300px
}

.f-contacts .btn.price {
    padding-left: 30px;
    padding-right: 80px
}

.f-contacts .btn.price:before {
    content: '';
    position: absolute;
    top: -12px;
    right: -10px;
    width: 97px;
    height: 90px;
    background: url(../images/price_ic.png) no-repeat
}

.map-box {
    overflow: hidden;
    background: #fff;
    border-radius: 8px;
    -moz-border-radius: 8px;
    -webkit-border-radius: 8px;
    -khtml-border-radius: 8px
}

.map-box, .map-desc, .map-image {
    position: relative;
    height: 470px
}

.map-desc {
    padding: 45px 30px;
    float: left;
    width: 40%
}

.map-desc:before {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    width: 94px;
    height: 143px;
    background: url(../images/flower.png) no-repeat
}

.map-desc .map-sel {
    margin-bottom: 20px
}

.map-desc .map-sel .label {
    position: relative;
    font-size: 14px;
    line-height: 20px;
    color: #4A4A4A
}

.map-desc .map-info {
    position: relative;
    overflow: auto;
    height: 280px
}

.map-desc .map-info ul {
    margin: 0;
    padding: 0;
    list-style: none
}

.map-desc .map-info ul li {
    margin-bottom: 25px;
    font-size: 16px;
    line-height: 26px;
    color: #4A4A4A;
    font-weight: 500
}

.map-desc .map-info ul li:last-child {
    margin-bottom: 0
}

.map-desc .map-info ul li span {
    margin: 0 0 8px 0;
    display: block;
    line-height: 20px;
    color: #CFCFCF
}

.map-desc .map-info ul li a {
    margin-bottom: 8px;
    display: block;
    color: #4A4A4A;
    text-decoration: none
}

.map-desc .map-info ul li a:hover {
    text-decoration: underline
}

.map-image {
    float: right;
    width: 60%
}

.map-image .map {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%
}

.section {
    position: relative
}

.section.m-started {
    padding-top: 170px;
    padding-bottom: 70px;
    position: relative;
    min-height: 1460px;
    background: #b5b2b2f7;
}

.started-intro {
    position: relative;
    float: left;
    width: 610px
}

.started-intro:before {
    content: '';
    position: absolute;
    right: -325px;
    top: 15px;
    width: 452px;
    height: 468px;
    background: url(../images/mag.png) no-repeat;
    background-size: contain
}

.started-intro .title {
    margin: 0 0 20px 0;
    font-size: 60px;
    line-height: 70px;
    font-weight: 800;
    color: #fff
}

.started-intro .list {
    margin-bottom: 115px
}

.started-intro .list ul {
    margin: 0;
    padding: 0;
    list-style: none
}

.started-intro .list ul li {
    position: relative;
    padding: 0 0 0 35px;
    font-size: 20px;
    line-height: 45px;
    font-weight: 500;
    color: #fff
}

.started-intro .list ul li:before {
    margin-top: -9px;
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 18px;
    height: 18px;
    background: #fff;
    border-radius: 18px;
    -moz-border-radius: 18px;
    -webkit-border-radius: 18px;
    -khtml-border-radius: 18px;
    box-shadow: 0 8px 23px rgba(255, 255, 255, 0.43);
    -moz-box-shadow: 0 8px 23px rgba(255, 255, 255, 0.43);
    -webkit-box-shadow: 0 8px 23px rgba(255, 255, 255, 0.43);
    -khtml-box-shadow: 0 8px 23px rgba(255, 255, 255, 0.43)
}

.started-intro .ben-items {
    margin: 0 -12px;
    font-size: 0
}

.started-intro .ben-items .ben-col {
    padding: 0 12px 24px 12px;
    display: inline-block;
    vertical-align: top;
    width: 33.333%
}

.started-intro .ben-item {
    position: relative;
    padding: 80px 0 0 0;
    font-size: 18px;
    line-height: 28px;
    color: #fff;
    font-weight: 400
}

.started-intro .ben-item .icon {
    position: absolute;
    left: 0;
    top: 0;
    width: 60px;
    height: 60px;
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat
}

.started-form {
    position: relative;
    margin-top: -10px;
    padding: 45px 40px;
    float: right;
    width: 384px;
    background: #fff;
    z-index: 2;
    border-radius: 10px;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -khtml-border-radius: 10px
}

.started-form .title {
    margin-bottom: 20px;
    font-size: 26px;
    line-height: 36px;
    color: #4A4A4A;
    font-weight: 700
}

.started-about {
    margin-top: 130px
}

.started-about .desc {
    position: relative;
    top: -18px;
    float: left;
    width: 486px
}

.started-about .desc .title {
    margin: 0 0 20px 0;
    font-size: 50px;
    line-height: 60px;
    color: #fff;
    font-weight: 800
}

.started-about .desc .text {
    margin-bottom: 35px
}

.started-about .desc .text p {
    margin: 10px 0;
    font-size: 18px;
    line-height: 30px;
    font-weight: 400;
    color: #fff
}

.started-about .image {
    float: right;
    width: 690px
}

.started-about .video {
    position: relative;
    width: 100%;
    font-size: 0;
    transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
    -webkit-box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
    -khtml-box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5)
}

.started-about .video:hover {
    box-shadow: 0 0 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0.5);
    -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0.5);
    -khtml-box-shadow: 0 0 0 rgba(0, 0, 0, 0.5)
}

.started-about .video a:before {
    margin: -50px 0 0 -50px;
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100px;
    height: 100px;
    background: url(../images/play.svg) no-repeat;
    background-size: contain;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);
    -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);
    -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);
    -khtml-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);
    z-index: 4
}

.started-about .video a:after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: -o-radial-gradient(center, ellipse, rgba(0, 0, 0, 0) 0%, #212121 100%);
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 0%, #212121 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#212121', GradientType=1);
    z-index: 3
}

.started-about .video img {
    width: 100%;
    height: auto
}

.lep-bg {
    position: absolute
}

.lep-bg.item-1 {
    left: -580px;
    bottom: 50px;
    width: 474px;
    height: 467px;
    background: url(../images/lep1.png) no-repeat;
    z-index: 2
}

.lep-bg.item-2 {
    left: -580px;
    bottom: 150px;
    width: 496px;
    height: 512px;
    background: url(../images/lep2.png) no-repeat
}

.section.m-news {
    padding: 90px 0
}

.section.m-news .bts {
    margin-top: 25px;
    text-align: center
}

.news-items {
    margin: 0 -12px;
    font-size: 0
}

.news-items .news-col {
    padding: 0 12px 24px 12px;
    display: inline-block;
    vertical-align: top;
    width: 33.333%
}

.news-item {
    position: relative;
    background: #fff;
    min-height: 470px;
    border: 1px solid #E5E5E5;
    transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -khtml-border-radius: 4px
}

.news-item .image {
    margin-top: -1px;
    margin-bottom: 25px
}

.news-item .image img {
    max-width: 100%;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -khtml-border-radius: 4px
}

.news-item .desc {
    padding: 0 30px
}

.news-item .desc .name {
    margin-bottom: 10px;
    display: block;
    font-size: 20px;
    line-height: 30px;
    color: #4A4A4A;
    font-weight: 700;
    text-decoration: none
}

.news-item .desc .text {
    font-size: 16px;
    line-height: 26px;
    color: #4A4A4A
}

.news-item:hover {
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
    -moz-box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
    -webkit-box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
    -khtml-box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25)
}

.sale-item {
    position: relative;
    background: #fff;
    min-height: 470px;
    transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s
}

.sale-item a {
    text-decoration: none
}

.sale-item .image {
    position: relative;
    overflow: hidden;
    display: block;
    width: 100%;
    height: 470px;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -khtml-border-radius: 4px
}

.sale-item .image:after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(#212121));
    background: -o-linear-gradient(top, rgba(0, 0, 0, 0) 0%, #212121 100%);
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #212121 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#212121', GradientType=0)
}

.sale-item .desc {
    position: absolute;
    left: 0;
    bottom: 0;
    padding: 0 30px 45px 30px;
    width: 100%
}

.sale-item .desc .name {
    margin-bottom: 10px;
    display: block;
    font-size: 25px;
    line-height: 30px;
    color: #fff;
    font-weight: 800;
    text-decoration: none
}

.sale-item .desc .text {
    margin-bottom: 20px;
    display: block;
    font-size: 16px;
    line-height: 26px;
    color: #fff
}

.sale-item .desc .more-btn {
    display: inline-block;
    vertical-align: top;
    font-size: 16px;
    line-height: 20px;
    color: #fff;
    font-weight: 800;
    border-bottom: 2px solid #fff
}

.sale-item:hover {
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
    -moz-box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
    -webkit-box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
    -khtml-box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25)
}

.section.m-prof {
    padding: 65px 0;
    background: url(../images/prof_bg.jpg) no-repeat top center;
    background-size: cover
}

.section.m-prof .fw:before {
    content: '';
    position: absolute;
    left: -465px;
    top: -65px;
    bottom: -65px;
    width: 50%;
    background: url(../images/man.png) no-repeat left top;
    background-size: auto 100%
}

.section.m-prof .titles {
    float: left;
    width: 500px
}

.section.m-prof .m-title {
    margin: 0 0 20px 0;
    color: #fff;
    text-align: left
}

.section.m-prof .m-subtitle {
    color: #fff
}

.section.m-prof .list {
    padding: 60px 40px 40px 40px;
    float: right;
    width: 645px;
    background: url(../images/prof_list.png) no-repeat;
    background-size: cover;
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    -khtml-border-radius: 4px
}

.section.m-prof .list ul {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0
}

.section.m-prof .list ul li {
    position: relative;
    margin-bottom: 20px;
    padding: 0 0 0 15px;
    font-size: 18px;
    line-height: 22px;
    color: #4A4A4A;
    font-weight: 500
}

.section.m-prof .list ul li:before {
    margin-top: -3px;
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    background: url(../images/list.svg) no-repeat;
    background-size: contain
}

.section.m-prof .col {
    float: left;
    width: 50%
}

.section.m-partners {
    padding: 65px 0 95px 0
}

.section.m-partners .m-title {
    margin: 0 0 10px 0;
    text-align: left
}

.partners-carousel {
    margin-top: 50px;
    padding: 0 60px
}

.partners-carousel .owl-carousel .owl-stage-outer {
    padding-bottom: 0
}

.partners-carousel .item a {
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: center;
    width: 160px;
    height: 80px;
    font-size: 0
}

.partners-carousel .item a img {
    max-width: 100%;
    filter: url("data:image/svg+xml;utf8,&lt;svg xmlns='http://www.w3.org/2000/svg'&gt;&lt;filter id='grayscale'&gt;&lt;feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/&gt;&lt;/filter&gt;&lt;/svg&gt;#grayscale");
    filter: gray;
    -webkit-filter: grayscale(100%);
    opacity: 0.3;
    transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s
}

.partners-carousel .item a:hover img {
    filter: url("data:image/svg+xml;utf8,&lt;svg xmlns='http://www.w3.org/2000/svg'&gt;&lt;filter id='grayscale'&gt;&lt;feColorMatrix type='matrix' values='1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0'/&gt;&lt;/filter&gt;&lt;/svg&gt;#grayscale");
    -webkit-filter: grayscale(0%);
    opacity: 1
}

.partners-carousel .owl-prev, .partners-carousel .owl-next {
    margin-top: -30px;
    position: absolute;
    top: 50%;
    right: -60px;
    width: 60px;
    height: 60px;
    font-size: 0;
    cursor: pointer;
    border-radius: 60px;
    -moz-border-radius: 60px;
    -webkit-border-radius: 60px;
    -khtml-border-radius: 60px;
    transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s
}

.partners-carousel .owl-prev:before, .partners-carousel .owl-prev:after, .partners-carousel .owl-next:before, .partners-carousel .owl-next:after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: url(../images/nav.svg) no-repeat center center;
    opacity: 1;
    transition: all 0.3s ease 0s;
    -moz-transition: all 0.3s ease 0s;
    -webkit-transition: all 0.3s ease 0s;
    -o-transition: all 0.3s ease 0s
}

.partners-carousel .owl-prev:after, .partners-carousel .owl-next:after {
    background: url(../images/nav2.svg) no-repeat center center;
    opacity: 0
}

.partners-carousel .owl-prev:hover, .partners-carousel .owl-next:hover {
    box-shadow: 0 20px 50px rgba(105, 67, 4, 0.5);
    -moz-box-shadow: 0 20px 50px rgba(105, 67, 4, 0.5);
    -webkit-box-shadow: 0 20px 50px rgba(105, 67, 4, 0.5);
    -khtml-box-shadow: 0 20px 50px rgba(105, 67, 4, 0.5)
}

.partners-carousel .owl-prev:hover:before, .partners-carousel .owl-next:hover:before {
    opacity: 0
}

.partners-carousel .owl-prev:hover:after, .partners-carousel .owl-next:hover:after {
    opacity: 1
}

.partners-carousel .owl-prev {
    right: auto;
    left: -60px;
    -ms-transform: scaleX(-1);
    transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    -moz-transform: scaleX(-1);
    -o-transform: scaleX(-1)
}

.section.m-geo {
    padding: 100px 0 0 0;
    height: 900px;
    background: url(../images/geo_bg.jpg) no-repeat top center
}

.section.m-geo .titles {
    margin: 0 auto;
    max-width: 590px;
    text-align: center
}

.section.m-geo .m-title {
    margin-bottom: 20px;
    color: #fff
}

.section.m-geo .m-subtitle {
    margin: 0;
    color: #fff
}

.geo-map-fw {
    margin-top: -175px;
    padding-top: 175px;
    position: relative;
    overflow: auto
}

.geo-map {
    position: relative;
    width: 1200px;
    height: 643px;
    background: url(../images/g_map.png) no-repeat top center;
    background-size: contain
}

.geo-items {
    position: relative
}

.geo-item {
    position: absolute;
    right: 0;
    top: 0;
    width: 52px;
    height: 52px
}

.geo-item.item-1 {
    top: 144px;
    right: 300px
}

.geo-item.item-2 {
    top: 302px;
    right: 280px
}

.geo-item.item-3 {
    top: 480px;
    right: 525px;
}

.geo-item.item-4 {
    top: 197px;
    right: 440px
}

.geo-item.item-5 {
    top: 142px;
    right: 510px
}

.geo-item.item-6 {
    top: 209px;
    right: 497px
}

.geo-item.item-7 {
    top: 258px;
    right: 488px
}

.geo-item.item-8 {
    top: 354px;
    right: 475px
}

.geo-item.item-9 {
    top: 401px;
    right: 497px
}

.geo-item.item-10 {
    top: 156px;
    right: 561px
}

.geo-item.item-11 {
    top: 177px;
    right: 608px
}

.geo-item.item-12 {
    top: 212px;
    right: 562px
}

.geo-item.item-13 {
    top: 355px;
    right: 829px
}

.geo-item.item-14 {
    top: 384px;
    right: 874px
}

.geo-item.item-15 {
    top: 335px;
    right: 895px
}

.geo-item .geo-btn {
    display: block;
    width: 52px;
    height: 52px;
    cursor: pointer
}

.geo-item .geo-btn:before, .geo-item .geo-btn:after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: url(../images/geo_ic.svg) no-repeat;
    background-size: contain;
    opacity: 1
}

.geo-item .geo-btn:after {
    background: url(../images/geo_ic2.svg) no-repeat;
    background-size: contain;
    opacity: 0
}

.geo-item .geo-btn.active:before {
    opacity: 0
}

.geo-item .geo-btn.active:after {
    opacity: 1
}

.geo-popup {
    display: none;
    margin-left: -158px;
    position: absolute;
    left: 50%;
    bottom: 70px;
    padding: 20px;
    display: none;
    width: 316px;
    background: #fff;
    border-top: 5px solid #6DAE81;
    z-index: 5;
    border-radius: 6px;
    -moz-border-radius: 6px;
    -webkit-border-radius: 6px;
    -khtml-border-radius: 6px;
    box-shadow: 0 20px 40px rgba(53, 0, 61, 0.4);
    -moz-box-shadow: 0 20px 40px rgba(53, 0, 61, 0.4);
    -webkit-box-shadow: 0 20px 40px rgba(53, 0, 61, 0.4);
    -khtml-box-shadow: 0 20px 40px rgba(53, 0, 61, 0.4)
}

.geo-popup:before {
    margin-left: -15px;
    content: '';
    position: absolute;
    left: 50%;
    bottom: -30px;
    border: 15px solid transparent;
    border-top: 15px solid #fff
}

.geo-popup .name {
    margin-bottom: 10px;
    font-size: 18px;
    line-height: 22px;
    font-weight: 800;
    color: #000
}

.geo-popup .text {
    margin-right: 10px;
    position: relative;
    overflow: auto;
    height: 200px;
    font-size: 14px;
    line-height: 20px;
    color: #4A4A4A
}

.section.m-pricing {
    margin-top: -110px;
    height: 608px;
    background: url(../images/price_bg.png) no-repeat top center
}

.section.m-pricing .titles {
    padding: 200px 0 0 0;
    width: 590px;
    float: right
}

.section.m-pricing .title {
    margin: 0 0 20px 0;
    font-size: 35px;
    line-height: 43px;
    font-weight: 700;
    color: #4A4A4A
}

.section.m-pricing .subtitle {
    margin-bottom: 45px;
    font-size: 18px;
    line-height: 30px;
    color: #4A4A4A
}

@media screen and (max-width: 1200px) {
    .fw {
        width: 720px
    }

    .header {
        padding: 20px 0;
        height: 100px
    }

    .header .logo {
        margin-top: 0;
        width: 204px
    }

    .header .head-btn {
        width: 210px
    }

    .header .contacts {
        margin-right: 40px;
        font-size: 14px
    }

    .header .contacts .tel {
        margin-bottom: 0;
        font-size: 22px
    }

    .section.m-started {
        padding-top: 150px
    }

    .started-intro {
        width: 310px
    }

    .started-intro:before {
        display: none
    }

    .started-intro .title {
        font-size: 50px;
        line-height: 60px
    }

    .started-intro .list {
        margin-bottom: 60px
    }

    .started-intro .list ul li {
        font-size: 18px
    }

    .started-intro .ben-items .ben-col {
        width: 100%
    }

    .started-intro .ben-item {
        padding: 0 0 0 60px;
        min-height: 60px;
        font-size: 18px;
        line-height: 30px
    }

    .started-intro .ben-item .icon {
        width: 40px;
        height: 50px
    }

    .started-form {
        margin-top: 0;
        padding: 45px 25px;
        width: 350px
    }

    .started-about {
        margin-top: 70px
    }

    .started-about .desc {
        margin-bottom: 70px;
        top: 0;
        float: none;
        width: auto
    }

    .started-about .image {
        float: none;
        width: 100%
    }

    .lep-bg {
        display: none
    }

    .section.m-news {
        padding: 70px 0
    }

    .news-items .news-col {
        width: 50%
    }

    .section.m-prof .fw:before {
        display: none
    }

    .section.m-prof .titles {
        margin-bottom: 50px;
        float: none;
        width: auto;
        text-align: center
    }

    .section.m-prof .titles .m-title {
        text-align: center
    }

    .section.m-prof .list {
        float: none;
        width: auto
    }

    .section.m-partners .m-title {
        text-align: center
    }

    .section.m-partners .m-subtitle {
        text-align: center
    }

    .section.m-geo {
        padding: 70px 0 0 0
    }

    .section.m-geo .fw {
        width: auto
    }

    .section.m-geo .titles {
        max-width: 720px
    }

    .section.m-pricing {
        padding: 70px 0;
        margin-top: 0;
        height: auto;
        background: #fff
    }

    .section.m-pricing .titles {
        padding: 0;
        width: auto;
        float: none;
        text-align: center
    }

    .footer {
        padding: 70px 0 0 0
    }

    .footer .f-left, .footer .f-right {
        float: none;
        width: auto
    }

    .f-contacts .c-group, .f-contacts .btn-group {
        float: left;
        width: 50%
    }

    .footer .f-pol {
        display: none
    }
}

@media screen and (max-width: 740px) {
    .fw {
        width: 300px
    }

    a.btn, .btn {
        padding: 0 25px;
        display: block;
        font-size: 14px
    }

    .c-form .field input[type="text"], .c-form .field input[type="tel"], .c-form .field input[type="password"], .c-form .field input[type="email"], .c-form .field textarea {
        font-size: 15px
    }

    .m-title {
        margin: 0 0 30px 0;
        font-size: 29px;
        line-height: 39px
    }

    .m-subtitle {
        font-size: 16px;
        line-height: 26px
    }

    .header {
        padding: 15px 0;
        height: 80px
    }

    .header .logo {
        margin-top: 0;
        width: 170px
    }

    .header .head-btn {
        width: 50px;
        height: 50px;
        line-height: 46px;
        font-size: 0;
        background: url(../images/telr.png) no-repeat center center;
        background-size: 25px 25px
    }

    .header .contacts {
        margin-right: 23px;
        padding-top: 13px;
        font-size: 0
    }

    .header .contacts .tel {
        width: 25px;
        height: 25px;
        font-size: 0;
        background: url(../images/tel.png) no-repeat center center;
        background-size: 25px 25px;
        -webkit-filter: brightness(0) invert(1);
        filter: brightness(0) invert(1)
    }

    .section.m-started {
        padding-top: 110px
    }

    .started-intro {
        width: auto;
        float: none
    }

    .started-intro .title {
        font-size: 29px;
        line-height: 39px
    }

    .started-intro .list {
        margin-bottom: 50px
    }

    .started-intro .list ul li {
        padding-left: 25px;
        font-size: 16px;
        line-height: 35px
    }

    .started-intro .list ul li:before {
        width: 14px;
        height: 14px;
        margin-top: -7px
    }

    .started-intro .ben-item {
        padding: 0 0 0 50px;
        min-height: 40px;
        font-size: 15px
    }

    .started-intro .ben-item .icon {
        margin-top: -10px;
        width: 30px;
        height: 40px
    }

    .started-form {
        margin-top: 25px;
        padding: 30px 20px;
        float: none;
        width: auto
    }

    .started-form .title {
        font-size: 22px;
        line-height: 32px
    }

    .started-about {
        margin-top: 50px
    }

    .started-about .desc {
        margin-bottom: 50px
    }

    .started-about .desc .title {
        font-size: 29px;
        line-height: 39px
    }

    .started-about .desc .text p {
        font-size: 15px;
        line-height: 26px
    }

    .started-about .image {
        float: none;
        width: 100%
    }

    .section.m-news {
        padding: 50px 0 60px 0
    }

    .section.m-news .bts {
        margin-top: 0
    }

    .news-items .news-col {
        width: 100%
    }

    .sale-item {
        min-height: auto
    }

    .sale-item .image {
        height: 400px
    }

    .sale-item .desc {
        padding: 0 20px 30px 20px
    }

    .sale-item .desc .name {
        font-size: 20px
    }

    .sale-item .desc .text {
        font-size: 15px
    }

    .news-item {
        min-height: auto
    }

    .news-item .image {
        margin-bottom: 20px
    }

    .news-item .desc {
        padding: 0 20px 20px 20px
    }

    .news-item .desc .text {
        font-size: 15px
    }

    .section.m-prof {
        padding: 50px 0
    }

    .section.m-prof .titles {
        margin-bottom: 30px
    }

    .section.m-prof .list {
        padding: 30px 20px;
        border-radius: 15px;
        -moz-border-radius: 15px;
        -webkit-border-radius: 15px;
        -khtml-border-radius: 15px
    }

    .section.m-prof .col {
        float: none;
        width: 100%
    }

    .section.m-prof .list ul li {
        margin-bottom: 15px;
        font-size: 16px
    }

    .section.m-partners {
        padding: 50px 0 60px 0
    }

    .section.m-geo {
        padding: 50px 0 0 0
    }

    .section.m-geo .fw {
        width: auto
    }

    .section.m-geo .titles {
        max-width: 300px
    }

    .geo-popup {
        margin-left: -125px;
        padding: 15px;
        width: 250px
    }

    .section.m-pricing {
        padding: 50px 0 60px 0
    }

    .section.m-pricing .title {
        font-size: 29px;
        line-height: 39px;
        text-align: left
    }

    .section.m-pricing .subtitle {
        font-size: 16px;
        line-height: 26px
    }

    .footer {
        padding: 50px 0 0 0
    }

    .f-contacts .c-group, .f-contacts .btn-group {
        float: none;
        width: 100%
    }

    .f-contacts .tel a {
        font-size: 24px
    }

    .footer .f-right {
        margin-top: 50px
    }

    .map-box {
        height: auto
    }

    .map-desc {
        padding: 30px 20px;
        float: none;
        width: 100%;
        height: auto
    }

    .map-desc .map-info ul li:last-child {
        margin-bottom: 0
    }

    .map-image {
        float: none;
        width: 100%
    }

    .footer .f-logo {
        margin-right: 0;
        float: none;
        width: 100%
    }

    .footer .f-create {
        margin-top: 30px;
        float: none;
        font-size: 16px
    }

    .nonebox {
        width: 300px;
        margin: 0 0 0 -150px;
        padding: 30px 20px
    }

    .nonebox .title {
        font-size: 20px;
        line-height: 30px
    }

    .nonebox .close {
        top: -60px;
        right: 0
    }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UvX2Jhc2Uuc2NzcyIsImhlbHBlcnMvX3ZhcmlhYmxlcy5zY3NzIiwiaGVscGVycy9fbWl4aW5zLnNjc3MiLCJwbHVnaW5zL19mYW5jeWJveC5zY3NzIiwicGx1Z2lucy9fb3dsLWNhcm91c2VsLnNjc3MiLCJwbHVnaW5zL19hbmltYXRlLnNjc3MiLCJwbHVnaW5zL19mb3JtLXN0eWxlci5zY3NzIiwibGF5b3V0L19oZWFkZXIuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJwYWdlcy9faG9tZS5zY3NzIiwiY29tcG9uZW50cy9fcmVzcG9uc2l2ZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLEVBQ0MsYUFDQSxzQkFDQSw2QkFBOEIsQ0FDOUIsNEJBRTRCLGFDQ0UsQ0REOEIsbUJBQ3hDLGFDQVUsQ0RBc0Isa0JBQ2pDLGFDRFcsQ0RDcUIsdUJBQzVCLGFDRk8sQ0RFeUIsVUFHdkQsU0FDQSxVQUNBLGdCQUNBLGVBQ0EsY0FDQSxvQ0FDQSxnQkFDQSxtQ0FDQSw2QkFBOEIsQ0FDOUIsRUFHQSxjQUNBLHFCQUNBLGNBQWUsQ0FIaEIsT0FLRSxhQzNCdUIsQ0RzQnpCLFNBUUUsYUM5QnVCLENEc0J6QixVQVdFLGFDakN1QixDRHNCekIsUUFjRSx5QkFBMEIsQ0FkNUIsTUFpQkUsV0FBWSxDQUNaLHNCQUlELHlCQUNBLHdCQUNBLHdCQUFBLEFBQWdCLGVBQUEsQ0FDaEIsTUFHQSxjQUFlLENBQ2YsT0FHQSxVQUFXLENBQ1gsT0FHQSxlQUFnQixDQUNoQixVQUdBLHlCQUNBLDhCQUNBLHVCQUNBLDRCQUE2QixDQUo5QixxQkFNRSxxQkFBc0IsQ0FDdEIsaUJBSUQsOEJBQ0EsZ0NBQWlDLENBQ2pDLGdCQUdBLHFCQUNBLHlCQUNBLGtDQUNBLHFCQUNBLGtCQUFrQixDQUNsQixlQUdBLHFCQUNBLDhCQUNBLHVCQUNBLDBCQUNBLHFCQUNBLG1CRTFGQSxrQkFDQSx1QkFDQSwwQkFDQSx3QkZ3RjBCLENBQzFCLFdBS0EsZUFDQSxrQkFDQSxxQkFDQSxtQkFDQSxZQUNBLGlCQUNBLGVBQ0EsV0FDQSxrQkFDQSxxQkFDQSxnQkFDQSxtQkFDQSxBQUVBLHVGQUFBLEFBQ0EsNkRBREEsQUFDQSxnRUFBQSxtSEFDQSxZQUNBLGdDQUNBLGVFbkhBLGtCQUNBLHVCQUNBLDBCQUNBLHlCQVdBLDRCQUNBLGlDQUNBLG9DQUNBLCtCQVZBLDBDQUNBLCtDQUNBLGtEQUNBLGdERjRHa0QsQ0F0Qm5ELHlCQXdCRSxnQkFDQSx5QkV6SEQsa0JBQ0EsdUJBQ0EsMEJBQ0EseUJBSUEsb0NBQ0EseUNBQ0EsNENBQ0EsMENGaUg2QyxDQTNCOUMsdUJFekZDLG9DQUNBLHlDQUNBLDRDQUNBLDBDRm9INkMsQ0FDNUMsSUFNRCxrQkFDQSxlQUFnQixDQUNoQixJQUdBLGtCQUNBLGNBQ0EsWUN2SWtCLENEb0luQixVQUtFLFdBQ0EsV0FDQSxhQUFjLENBQ2QsVUFHUyxZQUFhLENBQUcsU0FLMUIsa0JBQ0Esa0JBQ0EsZUFDQSxpQkFDQSxnQkFDQSxjQUNBLGlCQUFrQixDQUNsQixZQUdBLGVBQ0EsaUJBQ0EsYUN2S3dCLENEd0t4QixXQUtBLGVBQ0EsTUFDQSxPQUNBLFdBQ0EsWUFDQSxrQkFDQSxnQkFDQSxZQUFhLENBUmQsb0JBVUUsV0FDQSxZQUNBLHFCQUNBLGtCQUNBLGtEQUNBLHlCQUEwQixDQUMxQixlQU9BLGlCQUFrQixDQUZwQixlQUtFLGlCQUFrQixDQUxwQixvS0FPRyxlQUNBLFdBQ0EsWUFDQSxlQUNBLGNBQ0EseUJBQ0EsZ0JBQ0EsWUFDQSw4Q0FDQSxnQkVqTUYsNEJBQ0EsaUNBQ0Esb0NBQ0EsOEJGK0xzQyxDQWpCdkMsa01BbUJJLGdCQUFpQixDQW5CckIsMkJBdUJHLGtCQUNBLE9BQ0EsYUFDQSxlQUNBLFVBQ0EsZ0JBQ0EsVUFDQSxVQUFXLENBOUJkLG1CQWtDRSxrQkFDQSxrQkFDQSxjQUNBLGVBQ0EsaUJBQ0EsY0FDQSxlQUFnQixDQXhDbEIscUJBMENHLGNBQ0EsZ0JBQ0Esb0JBQXFCLENBNUN4QiwyQkE4Q0kseUJBQTBCLENBOUM5QixvQkFtREUsZ0JBQ0EsVUFDQSxXQUNBLGNBQ0EsV0FDQSxjQUFlLENBQ2YscUJBTUQsYUFDQSxlQUNBLFFBQ0EsU0FDQSxXQUNBLFlBQ0EsZ0JBQ0EsWUFDQSxXQUFZLENBQ1osU0FHQSxrQkFDQSxTQUNBLFlBQ0EsWUFDQSxvQkFDQSxrQkFDQSxnQkFDQSxhQUNBLGdCRWxSQSxtQkFDQSx3QkFDQSwyQkFDQSx5QkZnUjJCLENBVjVCLGdCQVlFLGtCQUNBLFVBQ0EsWUFDQSxXQUNBLFlBQ0EsK0NBQ0Esd0JBQ0EsWUFDQSxjQUFlLENBcEJqQixnQkF1QkUsa0JBQ0EseUJBQ0EsZUFDQSxpQkFDQSxjQUNBLGVBQWdCLENBNUJsQixtQkErQkUsZUFDQSxpQkFDQSxhQzVTdUIsQ0Q2U3ZCLHFCRzVTQSxlQUFnQixDQUFHLHFCQUduQixlQUNBLE9BQ0EsT0FBUSxDQUFHLG9CQUdYLGtCQUNBLFlBQ0EsYUFDQSxpQkFBa0IsQ0FBRyxvQkFHckIsZUFDQSxNQUNBLE9BQ0EsV0FDQSxZQUNBLGNBQ0Esd0NBQ0EsbUNBQ0EsMkJBQ0EsZ0NBQ0Esd0JBQ0EsZ0tBQWlLLENBQUcsNkRBTXBLLGtCQUNBLE1BQ0EsUUFDQSxTQUNBLE1BQU8sQ0FBRyxnQkFHVixnQkFDQSxnQ0FBaUMsQ0FBRyxhQUdwQyxtQkFDQSxVQUNBLG9DQUFBLEFBQ0EsK0JBREEsQUFDQSw0QkFBQSxvQ0FBQSxBQUNBLCtCQURBLEFBQ0EsNEJBQUEscUVBQUEsQUFBNkQsZ0VBQTdELEFBQTZELDREQUFBLENBQUcsK0JBR2hFLGFBQ0EscUVBQUEsQUFBNkQsZ0VBQTdELEFBQTZELDREQUFBLENBQUcsMkRBS2hFLGtCQUNBLGNBQ0EsY0FDQSxVQUNBLGtCQUNBLDJEQUFBLEFBQ0Esc0RBREEsQUFDQSxtREFBQSw4QkFBQSxBQUFzQixxQkFBQSxDQUFHLGdJQUt6QixVQUNBLG1CQUNBLCtDQUFBLEFBQXVDLDBDQUF2QyxBQUF1QyxzQ0FBQSxDQUFHLGtCQUcxQyxNQUNBLE9BQ0EsZUFDQSxlQUNBLFlBQ0EsZUFDQSxpQkFDQSxXQUNBLGtCQUNBLG9CQUNBLHlCQUNBLHNCQUNBLHFCQUNBLGlCQUNBLDJCQUNBLHdDQUNBLDRDQUNBLHdCQUF5QixDQUFHLGtCQUc1QixNQUNBLFFBQ0EsU0FDQSxTQUFVLENBQUcsZ0JBR2IsZ0JBQ0EsY0FDQSxjQUNBLHNDQUF1QyxDQUFHLHFDQUcxQyxnQkFBaUIsQ0FBRyxnQkFHcEIsa0JBQ0EsTUFDQSxPQUNBLFdBQ0EsWUFDQSxTQUNBLFVBQ0EsY0FDQSxhQUNBLG1CQUNBLDhCQUFBLEFBQ0Esc0JBQUEsa0JBQ0EsY0FDQSxpQ0FDQSxhQUNBLG1DQUNBLDJCQUNBLCtDQUNBLHVEQUFBLEFBQ0EsMENBREEsQUFDQSx1Q0FBQSx5REFBMEQsQ0FBRyx3QkFHN0QsV0FDQSxxQkFDQSxzQkFDQSxZQUNBLE9BQVEsQ0FBRyw4R0FNWCxhQUFjLENBQUcsdUJBR2pCLGdCQUFpQixDQUFHLCtCQUdwQixZQUFhLENBQUcsdUVBSWhCLGVBQWdCLENBQUcsbUVBSW5CLGtCQUFtQixDQUFHLHNCQUd0QixhQUFjLENBQUcsa0JBR2pCLHFCQUNBLGtCQUNBLGFBQ0EsbUJBQ0EsZUFDQSxzQkFDQSxnQkFDQSxzQkFDQSxjQUNBLDhCQUFBLEFBQXNCLHFCQUFBLENBQUcsa0lBUXpCLFlBQWEsQ0FBRyxxQ0FHaEIsa0JBQ0EsTUFDQSxPQUNBLFNBQ0EsVUFDQSxTQUNBLGNBQ0EsdUJBQ0EsZUFDQSxpQkFDQSxrQ0FDQSw4QkFDQSwwQkFDQSwwQkFDQSw0QkFDQSxtQ0FDQSwyQkFDQSx5QkFDQSxzQkFDQSxxQkFDQSxpQkFDQSwrQ0FDQSx1REFBQSxBQUNBLDBDQURBLEFBQ0EsdUNBQUEseURBQTBELENBQUcsMkNBRzdELHdCQUNBLGVBQWdCLENBQUcsMENBR25CLHVCQUNBLGNBQWUsQ0FBRyx3Q0FHbEIsb0JBQ0EsV0FBWSxDQUFHLDJDQUdmLHdCQUNBLGVBQWdCLENBQUcsb0NBSW5CLGtCQUNBLE1BQ0EsT0FDQSxXQUNBLFlBQ0EsU0FDQSxVQUNBLFNBQ0EsZUFDQSxnQkFDQSx5QkFDQSxzQkFDQSxxQkFDQSxnQkFBaUIsQ0FBRyxvQkFHcEIsU0FBVSxDQUFHLDBDQUdiLFVBQ0EsVUFDQSxXQUNBLDZCQUNBLDZCQUNBLGlCQUNBLGVBQWdCLENBQUcsaUJBR25CLGNBQ0EsU0FDQSxVQUNBLFNBQ0EsV0FDQSxZQUNBLGVBQWdCLENBQUcsZ0JBR25CLFNBQ0EsYUFDQSxXQUNBLGdCQUNBLGdCQUNBLGNBQWUsQ0FBRyxrQkFHbEIsU0FDQSxVQUNBLFdBQ0EsZUFDQSxnQkFBaUIsQ0FBRyxpQkFJcEIsOEJBQUEsQUFDQSxzQkFBQSxxQkFDQSxtQkFDQSxXQUNBLFlBQ0EsU0FDQSxhQUNBLFNBQ0EsZ0JBQ0EsOEJBQ0Esa0NBQUEsQUFDQSw2QkFEQSxBQUNBLDBCQUFBLGVBQ0EsWUFBYSxDQUFHLGdFQUtoQixVQUFXLENBQUcsOENBSWQsVUFBVyxDQUFHLDJCQUdkLFdBQ0EsZUFDQSxXQUFZLENBQUcscUJBR2YsY0FDQSxrQkFDQSxpQkFDQSxrQ0FBbUMsQ0FBRywwQkFHdEMsa0JBQ0Esb0JBQ0Esc0JBQ0EsY0FBZSxDQUFHLGlDQUdsQixjQUFlLENBQUcsNkNBR2xCLFlBQWEsQ0FBRyw4Q0FHaEIsWUFBYSxDQUFHLGdDQUdoQixnQkFBaUIsQ0FBRyxxQkFJcEIsWUFBYSxDQUFHLHdDQUdoQixhQUFjLENBQUcsNEJBR2pCLGtCQUNBLFFBQ0EsbUJBQ0EsY0FDQSx1QkFDQSxXQUNBLGFBQ0EsWUFBYSxDQUFHLG1DQUdoQixXQUNBLGtCQUNBLFNBQ0EsV0FDQSxXQUNBLFlBQ0EsNkJBQWlDLENBQUcsa0RBR3BDLE1BQU8sQ0FBRyxtREFHVixPQUFRLENBQUcsc0JBSVgsa0JBQ0EsTUFDQSxRQUNBLFdBQ0EsWUFDQSxVQUNBLFNBQ0EsU0FDQSxnQkFDQSx1QkFDQSxXQUNBLGNBQWUsQ0FBRyw0QkFHbEIsWUFDQSxrQkFDQSxRQUNBLFVBQ0EsV0FDQSxZQUNBLDJEQUNBLFdBQ0EsZ0JBQ0Esa0JBQ0Esa0JBQ0EsZUFDQSw2QkFDQSx5Q0FBQSxBQUNBLG9DQURBLEFBQ0EsaUNBQUEsOEJBQUEsQUFDQSxzQkFBQSxTQUFVLENBQUcsNEJBR2IsWUFBYSxDQUFHLGtDQUdoQix1QkFBd0IsQ0FBRyxrQ0FHM0IsV0FDQSxlQUFnQixDQUFHLDJGQUluQixNQUNBLFdBQVksQ0FBRyx1R0FJZixlQUNBLFVBQVcsQ0FBRyxtSEFJZCxXQUNBLHNCQUF1QixDQUFHLHlHQUkxQixZQUFhLENBQUcsdUJBSWhCLFNBQ0EsT0FDQSxRQUNBLHVCQUNBLHlNQUFBLEFBQ0Esd0lBREEsQUFDQSwySUFBQSxtQkFBb0IsQ0FBRyxrQkFHdkIsZUFDQSwyQ0FDQSxlQUNBLFdBQ0EsaUJBQ0EsNkJBQThCLENBQUcsc0VBS2pDLG1CQUNBLGlCQUFrQixDQUNGLG9CQUdoQixXQUNBLHlCQUEwQixDQUFHLGtDQUk3Qix1Q0FDQSwyQ0FDQSxtQkFDQSxZQUNBLFdBQ0Esc0RBQ0EsOENBQ0EsdUJBQ0Esa0JBQ0EsUUFDQSxTQUNBLGlCQUNBLGtCQUNBLGFBQWMsQ0FBRyxtQ0FHakIsS0FDRSwrQkFDQSxzQkFBdUIsQ0FDekIsR0FDRSxpQ0FDQSx3QkFBeUIsQ0FBQSxDQUU3QiwyQkFDRSxLQUNFLCtCQUNBLHNCQUF1QixDQUN6QixHQUNFLGlDQUNBLHdCQUF5QixDQUFBLENBRzdCLG1CQUNFLCtEQUFBLEFBQXVELDBEQUF2RCxBQUF1RCxzREFBQSxDQUFHLDRDQUkxRCwyQ0FDQSxtQ0FDQSxTQUFVLENBQUcsd0NBR2IsMENBQ0Esa0NBQ0EsU0FBVSxDQUFHLDJDQUdiLHVDQUNBLCtCQUNBLFNBQVUsQ0FBRyxrRkFLYixVQUNBLGtFQUFBLEFBQTBELDZEQUExRCxBQUEwRCx5REFBQSxDQUFHLDBDQUc3RCxTQUFVLENBQUcsa0RBSWIseUNBQ0EsaUNBQ0EsU0FBVSxDQUFHLDhDQUdiLHlDQUNBLGlDQUNBLFNBQVUsQ0FBRyxpREFHYixtQ0FDQSwyQkFDQSxTQUFVLENBQUcsNkNBSWIsa0NBQ0EsOEJBQ0EsMEJBQ0EsU0FBVSxDQUFHLHlDQUdiLGlDQUNBLDZCQUNBLHlCQUNBLFNBQVUsQ0FBRyw0Q0FHYiwrQkFDQSwyQkFDQSx1QkFDQSxTQUFVLENBQUcsK0NBSWIsNERBQ0Esb0RBQ0EsU0FBVSxDQUFHLDJDQUdiLDJEQUNBLG1EQUNBLFNBQVUsQ0FBRyw4Q0FHYix3REFDQSxnREFDQSxTQUFVLENBQUcsMkNBSWIsbUVBQ0EsMERBQTJELENBQUcsdUNBRzlELGlFQUNBLHdEQUF5RCxDQUFHLDBDQUc1RCxnREFDQSx1Q0FBd0MsQ0FBRyxnQkFJM0MsYUFDQSxrQkFDQSxtQkFDQSxjQUNBLGlCQUFrQixDQUFHLG1CQUdyQixXQUNBLGtCQUNBLGVBQ0EsZUFBZ0IsQ0FBRyxrQkFHbkIsU0FDQSxTQUFVLENBQUcsd0JBR2Isa0JBQW1CLENBQUcsd0JBR3RCLHFCQUNBLHFCQUNBLHFCQUNBLGVBQ0EsZ0JBQ0EsU0FDQSxrQkFDQSxnQkFDQSxtQkFDQSxlQUNBLGdCQUNBLGlCQUNBLHlCQUNBLHNCQUNBLHFCQUNBLGlCQUNBLFdBQ0EsMkJBQUEsQUFBbUIsc0JBQW5CLEFBQW1CLGtCQUFBLENBQUcsOEJBR3RCLG9CQUFxQixDQUFHLDRCQUd4QixrQkFBbUIsQ0FBRyxrQ0FHdEIsa0JBQW1CLENBQUcsNEJBR3RCLGtCQUFtQixDQUFHLGtDQUd0QixrQkFBbUIsQ0FBRyw0QkFHdEIsa0JBQW1CLENBQUcsa0NBR3RCLGtCQUFtQixDQUFHLDRCQUd0QixrQkFDQSxTQUNBLFdBQ0EsWUFDQSxpQkFDQSxxQkFBc0IsQ0FBRyxpQ0FHekIsU0FBVSxDQUFHLHVCQUdiLDhCQUFBLEFBQ0Esc0JBQUEsV0FDQSxrQkFDQSxrQkFDQSx1QkFDQSxjQUNBLGVBQ0EsYUFDQSxTQUNBLCtCQUFnQyxDQUFHLGlCQUluQyxhQUNBLGtCQUNBLE1BQ0EsU0FDQSxRQUNBLFlBQ0EsU0FDQSx3QkFDQSxnQkFDQSx3Q0FDQSxpQ0FDQSw0Q0FDQSw4QkFBQSxBQUNBLHNCQUFBLGFBQWMsQ0FBRyxtQkFHakIsa0JBQ0EsZUFBZ0IsQ0FBRyx1Q0FHbkIsYUFBYyxDQUFHLHNDQUdqQixXQUFZLENBQUcsb0JBR2YsZ0JBQ0Esa0JBQ0Esa0JBQ0EsV0FDQSxZQUNBLFNBQ0EsVUFDQSxrQkFDQSxnQkFDQSxZQUNBLGtCQUFtQixDQUFHLHNCQUd0QixlQUFnQixDQUFHLHlDQUduQixTQUFVLENBQUcsK0NBR2IsZ0JBQ0EsbUJBQ0EsaURBQUEsQUFBNEMsd0NBQUEsQ0FBRywrQ0FHL0MsbUJBQ0Esa0JBQW1CLENBQUcsdUJBR3RCLFdBQ0EsZ0JBQ0EsVUFDQSxXQUNBLFlBQ0EsWUFDQSwwQkFDQSw0QkFDQSxrQkFDQSxlQUNBLGFBQ0Esd0NBQ0EsbUNBQ0EsMkJBQ0EsOEJBQUEsQUFBc0IscUJBQUEsQ0FBRywyQkFHekIsMEJBQThCLENBQUcsMkJBR2pDLGtCQUNBLE1BQ0EsT0FDQSxlQUNBLGdCQUNBLDJCQUNBLHlCQUNBLHNCQUNBLHFCQUNBLGdCQUFpQixDQUFHLDhCQUdwQixXQUNBLGtCQUNBLE1BQ0EsUUFDQSxTQUNBLE9BQ0EseUJBQ0EsY0FDQSxVQUNBLGlFQUFBLEFBQXlELDREQUF6RCxBQUF5RCx3REFBQSxDQUFHLHFEQUc1RCxTQUFVLENBQUcsa0NBSWIsaUJBQ0UsV0FBWSxDQUFHLHNDQUVmLFdBQVksQ0FBRyx1QkFFZiwyQkFBNEIsQ0FBRyxDQy92Qm5DLHdCQUNFLGtDQUNBLDBCQUNBLGlDQUNBLHdCQUF5QixDQUMxQiwrQkFFQyxTQUFVLENBQ1gsZ0NBRUMsU0FBVSxDQUNYLHVCQUVDLCtCQUNBLHNCQUF1QixDQUN4QiwyQkFHQyxHQUNFLFNBQVUsQ0FHWixLQUNFLFNBQVUsQ0FBQSxDQUdkLG1CQUNFLEdBQ0UsU0FBVSxDQUdaLEtBQ0UsU0FBVSxDQUFBLENBT2QsWUFDRSw0Q0FDQSxBQUVBLHVDQUNBLG1DQUFvQyxDQUNyQyxjQU1DLGFBQ0EsV0FDQSx3Q0FFQSxrQkFDQSxTQUFVLENBQ1gseUJBRUMsa0JBQ0Esc0JBQXVCLENBQ3hCLCtCQUVDLFlBQ0EsY0FDQSxXQUNBLGtCQUNBLGNBQ0EsUUFBUyxDQUNWLCtCQUVDLGtCQUNBLGdCQUVBLDZDQUNBLG1CQUFvQixDQUNyQixtSUFJQyxlQUNBLFlBQ0EseUJBQ0EsQUFDQSxzQkFDQSxxQkFDQSxnQkFBaUIsQ0FDbEIseUJBRUMsYUFBYyxDQUNmLDBCQUVDLFVBQ0EsYUFBYyxDQUNmLHlCQUVDLFNBQVUsQ0FDWCxxQ0FFQyxZQUFhLENBQ2Qsd0JBRUMsa0JBQ0EsZUFDQSxVQUFXLENBQ1osMkNBSUMseUJBQ0Esc0JBQ0EscUJBQ0EsZ0JBQWlCLENBQ2xCLHdCQUVDLFlBQ0Esb0JBQ0EsZUFDQSxnQkFDQSxXQUFZLENBQ2Isc0JBRUMsYUFBYyxDQUNmLGdDQUVDLFdBQVksQ0FDYixxQkFJQyxhQUFjLENBQ2Ysa0NBTUMsVUFDQSxzQ0FDQSxBQUVBLGlDQUNBLDZCQUE4QixDQUMvQiw0QkFFQyxvQ0FBQSxBQUE0QiwyQkFBQSxDQUM3QixpQ0FNQyxrQkFDQSxZQUNBLGVBQWdCLENBQ2pCLG1DQUVDLGtCQUNBLFlBQ0EsV0FDQSxTQUNBLFFBQ0Esa0JBQ0EsaUJBQ0EsK0NBQ0EsZUFDQSxVQUNBLG1DQUNBLG9DQUNBLEFBRUEsK0JBQ0EsMkJBQTRCLENBQzdCLHlDQUVDLG1DQUNBLEFBRUEsOEJBQ0EsMEJBQTJCLENBQzVCLHFHQUdDLFlBQWEsQ0FDZCw0QkFFQyxVQUNBLFlBQ0Esa0NBQ0EsNEJBQ0EsQUFHQSx3QkFDQSxzQ0FDQSxBQUVBLGlDQUNBLDZCQUE4QixDQUMvQiwrQkFFQyxrQkFDQSxTQUFVLENBQ1g7Ozs7OztHQ3RNRSxVQUdELDhCQUFBLEFBQ0Esc0JBQUEsaUNBQUEsQUFBeUIsd0JBQUEsQ0FDMUIsbUJBR0MsMkNBQUEsQUFBbUMsa0NBQUEsQ0FDcEMsZ0JBR0MsOEJBQUEsQUFBc0IscUJBQUEsQ0FDdkIsNkVBTUMsZ0NBQUEsQUFBd0IsdUJBQUEsQ0FDekIsMEJBR0Msb0JBQ0Usc0VBQUEsQUFDQSw4REFBQSx1Q0FBQSxBQUE2Qiw4QkFBQSxDQUcvQixRQUNFLHlFQUFBLEFBQ0EsaUVBQUEsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsSUFDRSx5RUFBQSxBQUNBLGlFQUFBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLElBQ0UsMENBQUEsQUFBZ0MsaUNBQUEsQ0FBQSxDQW5CbkMsQUF1QkQsa0JBcEJFLG9CQUNFLHNFQUFBLEFBQ0EsOERBQUEsdUNBQUEsQUFBNkIsOEJBQUEsQ0FHL0IsUUFDRSx5RUFBQSxBQUNBLGlFQUFBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLElBQ0UseUVBQUEsQUFDQSxpRUFBQSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUdyQyxJQUNFLDBDQUFBLEFBQWdDLGlDQUFBLENBQUEsQ0FJcEMsUUFDRSw4QkFBQSxBQUNBLHNCQUFBLHVDQUFBLEFBQStCLG1DQUEvQixBQUErQiw4QkFBQSxDQUNoQyx5QkFHQyxZQUNFLFNBQVUsQ0FHWixRQUNFLFNBQVUsQ0FBQSxDQVJiLEFBWUQsaUJBVEUsWUFDRSxTQUFVLENBR1osUUFDRSxTQUFVLENBQUEsQ0FJZCxPQUNFLDZCQUFBLEFBQXFCLG9CQUFBLENBQ3RCLHlCQUtDLEtBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FHN0IsSUFDRSw0Q0FBQSxBQUFvQyxtQ0FBQSxDQUd0QyxHQUNFLG1DQUFBLEFBQTJCLDBCQUFBLENBQUEsQ0FkOUIsQUFrQkQsaUJBYkUsS0FDRSxtQ0FBQSxBQUEyQiwwQkFBQSxDQUc3QixJQUNFLDRDQUFBLEFBQW9DLG1DQUFBLENBR3RDLEdBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FBQSxDQUkvQixPQUNFLDZCQUFBLEFBQXFCLG9CQUFBLENBQ3RCLDhCQUdDLEtBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FHN0IsSUFDRSx5Q0FBQSxBQUFpQyxnQ0FBQSxDQUduQyxJQUNFLHlDQUFBLEFBQWlDLGdDQUFBLENBR25DLElBQ0UseUNBQUEsQUFBaUMsZ0NBQUEsQ0FHbkMsSUFDRSx5Q0FBQSxBQUFnQyxnQ0FBQSxDQUdsQyxJQUNFLHlDQUFBLEFBQWdDLGdDQUFBLENBR2xDLEdBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FBQSxDQTVCOUIsQUFnQ0Qsc0JBN0JFLEtBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FHN0IsSUFDRSx5Q0FBQSxBQUFpQyxnQ0FBQSxDQUduQyxJQUNFLHlDQUFBLEFBQWlDLGdDQUFBLENBR25DLElBQ0UseUNBQUEsQUFBaUMsZ0NBQUEsQ0FHbkMsSUFDRSx5Q0FBQSxBQUFnQyxnQ0FBQSxDQUdsQyxJQUNFLHlDQUFBLEFBQWdDLGdDQUFBLENBR2xDLEdBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FBQSxDQUkvQixZQUNFLGtDQUFBLEFBQTBCLHlCQUFBLENBQzNCLHlCQUdDLFFBQ0UsdUNBQUEsQUFBK0IsOEJBQUEsQ0FHakMsb0JBQ0UsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsZ0JBQ0UsMENBQUEsQUFBa0MsaUNBQUEsQ0FBQSxDQVpyQyxBQWdCRCxpQkFiRSxRQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBR2pDLG9CQUNFLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLGdCQUNFLDBDQUFBLEFBQWtDLGlDQUFBLENBQUEsQ0FJdEMsT0FDRSw2QkFBQSxBQUFxQixvQkFBQSxDQUN0Qiw2QkFHQyxHQUNFLGdDQUFBLEFBQXdCLHVCQUFBLENBRzFCLEtBQ0Usa0RBQUEsQUFBMEMseUNBQUEsQ0FHNUMsTUFDRSxnREFBQSxBQUF3Qyx1Q0FBQSxDQUcxQyxNQUNFLGtEQUFBLEFBQTBDLHlDQUFBLENBRzVDLE1BQ0UsZ0RBQUEsQUFBd0MsdUNBQUEsQ0FHMUMsSUFDRSxnQ0FBQSxBQUF3Qix1QkFBQSxDQUFBLENBeEIzQixBQTRCRCxxQkF6QkUsR0FDRSxnQ0FBQSxBQUF3Qix1QkFBQSxDQUcxQixLQUNFLGtEQUFBLEFBQTBDLHlDQUFBLENBRzVDLE1BQ0UsZ0RBQUEsQUFBd0MsdUNBQUEsQ0FHMUMsTUFDRSxrREFBQSxBQUEwQyx5Q0FBQSxDQUc1QyxNQUNFLGdEQUFBLEFBQXdDLHVDQUFBLENBRzFDLElBQ0UsZ0NBQUEsQUFBd0IsdUJBQUEsQ0FBQSxDQUk1QixXQUNFLDhDQUFBLEFBQ0Esc0NBQUEsaUNBQUEsQUFBeUIsd0JBQUEsQ0FDMUIseUJBR0MsSUFDRSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUdyQyxJQUNFLDRDQUFBLEFBQW9DLG1DQUFBLENBR3RDLElBQ0UsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsSUFDRSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUdyQyxHQUNFLDBDQUFBLEFBQWtDLGlDQUFBLENBQUEsQ0FwQnJDLEFBd0JELGlCQXJCRSxJQUNFLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLElBQ0UsNENBQUEsQUFBb0MsbUNBQUEsQ0FHdEMsSUFDRSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxJQUNFLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLEdBQ0UsMENBQUEsQUFBa0MsaUNBQUEsQ0FBQSxDQUl0QyxPQUNFLG9DQUFBLEFBQ0EsZ0NBREEsQUFDQSw0QkFBQSw2QkFBQSxBQUFxQixvQkFBQSxDQUN0Qix3QkFHQyxLQUNFLG1DQUFBLEFBQTJCLDBCQUFBLENBRzdCLFFBQ0Usa0VBQUEsQUFBdUQseURBQUEsQ0FHekQsZ0JBQ0UsaUVBQUEsQUFBeUQsd0RBQUEsQ0FHM0QsWUFDRSxrRUFBQSxBQUEwRCx5REFBQSxDQUc1RCxHQUNFLG1DQUFBLEFBQTJCLDBCQUFBLENBQUEsQ0FwQjlCLEFBd0JELGdCQXJCRSxLQUNFLG1DQUFBLEFBQTJCLDBCQUFBLENBRzdCLFFBQ0Usa0VBQUEsQUFBdUQseURBQUEsQ0FHekQsZ0JBQ0UsaUVBQUEsQUFBeUQsd0RBQUEsQ0FHM0QsWUFDRSxrRUFBQSxBQUEwRCx5REFBQSxDQUc1RCxHQUNFLG1DQUFBLEFBQTJCLDBCQUFBLENBQUEsQ0FJL0IsTUFDRSw0QkFBQSxBQUFvQixtQkFBQSxDQUNyQiwwQkFLQyxLQUNFLHVCQUFBLEFBQWUsY0FBQSxDQUdqQixJQUNFLG1FQUFBLEFBQTJELDBEQUFBLENBRzdELElBQ0UsaUVBQUEsQUFBeUQsd0RBQUEsQ0FHM0QsSUFDRSxtRUFBQSxBQUEyRCwwREFBQSxDQUc3RCxJQUNFLGlFQUFBLEFBQXlELHdEQUFBLENBRzNELElBQ0Usa0VBQUEsQUFBMEQseURBQUEsQ0FHNUQsR0FDRSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQTlCbEIsQUFrQ0Qsa0JBN0JFLEtBQ0UsdUJBQUEsQUFBZSxjQUFBLENBR2pCLElBQ0UsbUVBQUEsQUFBMkQsMERBQUEsQ0FHN0QsSUFDRSxpRUFBQSxBQUF5RCx3REFBQSxDQUczRCxJQUNFLG1FQUFBLEFBQTJELDBEQUFBLENBRzdELElBQ0UsaUVBQUEsQUFBeUQsd0RBQUEsQ0FHM0QsSUFDRSxrRUFBQSxBQUEwRCx5REFBQSxDQUc1RCxHQUNFLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBSW5CLFFBQ0UsOEJBQUEsQUFBc0IscUJBQUEsQ0FDdkIseUJBR0MsY0FDRSx1QkFBQSxBQUFlLGNBQUEsQ0FHakIsTUFDRSxrREFBQSxBQUEwQyx5Q0FBQSxDQUc1QyxNQUNFLGdEQUFBLEFBQXdDLHVDQUFBLENBRzFDLE1BQ0Usb0RBQUEsQUFBNEMsMkNBQUEsQ0FHOUMsTUFDRSxvREFBQSxBQUE0QywyQ0FBQSxDQUc5QyxNQUNFLHdEQUFBLEFBQWdELCtDQUFBLENBR2xELE1BQ0Usc0RBQUEsQUFBZ0QsNkNBQUEsQ0FHbEQsTUFDRSx3REFBQSxBQUFvRCwrQ0FBQSxDQUFBLENBaEN2RCxBQW9DRCxpQkFqQ0UsY0FDRSx1QkFBQSxBQUFlLGNBQUEsQ0FHakIsTUFDRSxrREFBQSxBQUEwQyx5Q0FBQSxDQUc1QyxNQUNFLGdEQUFBLEFBQXdDLHVDQUFBLENBRzFDLE1BQ0Usb0RBQUEsQUFBNEMsMkNBQUEsQ0FHOUMsTUFDRSxvREFBQSxBQUE0QywyQ0FBQSxDQUc5QyxNQUNFLHdEQUFBLEFBQWdELCtDQUFBLENBR2xELE1BQ0Usc0RBQUEsQUFBZ0QsNkNBQUEsQ0FHbEQsTUFDRSx3REFBQSxBQUFvRCwrQ0FBQSxDQUFBLENBSXhELE9BQ0UsNkJBQUEsQUFDQSxxQkFBQSxnQ0FBQSxBQUF3Qiw0QkFBeEIsQUFBd0IsdUJBQUEsQ0FDekIsNEJBR0Msd0JBQ0Usc0VBQUEsQUFBbUUsNkRBQUEsQ0FHckUsR0FDRSxVQUNBLHlDQUFBLEFBQThCLGdDQUFBLENBR2hDLElBQ0UseUNBQUEsQUFBaUMsZ0NBQUEsQ0FHbkMsSUFDRSx5Q0FBQSxBQUE4QixnQ0FBQSxDQUdoQyxJQUNFLFVBQ0EsNENBQUEsQUFBb0MsbUNBQUEsQ0FHdEMsSUFDRSw0Q0FBQSxBQUFpQyxtQ0FBQSxDQUduQyxHQUNFLFVBQ0EsbUNBQUEsQUFBMkIsMEJBQUEsQ0FBQSxDQS9COUIsQUFtQ0Qsb0JBaENFLHdCQUNFLHNFQUFBLEFBQW1FLDZEQUFBLENBR3JFLEdBQ0UsVUFDQSx5Q0FBQSxBQUE4QixnQ0FBQSxDQUdoQyxJQUNFLHlDQUFBLEFBQWlDLGdDQUFBLENBR25DLElBQ0UseUNBQUEsQUFBOEIsZ0NBQUEsQ0FHaEMsSUFDRSxVQUNBLDRDQUFBLEFBQW9DLG1DQUFBLENBR3RDLElBQ0UsNENBQUEsQUFBaUMsbUNBQUEsQ0FHbkMsR0FDRSxVQUNBLG1DQUFBLEFBQTJCLDBCQUFBLENBQUEsQ0FJL0IsVUFDRSxnQ0FBQSxBQUF3Qix1QkFBQSxDQUN6QixnQ0FHQyxvQkFDRSxzRUFBQSxBQUFtRSw2REFBQSxDQUdyRSxHQUNFLFVBQ0EsNkNBQUEsQUFBcUMsb0NBQUEsQ0FHdkMsSUFDRSxVQUNBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLElBQ0UsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsSUFDRSx5Q0FBQSxBQUFpQyxnQ0FBQSxDQUduQyxHQUNFLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBMUJsQixBQThCRCx3QkEzQkUsb0JBQ0Usc0VBQUEsQUFBbUUsNkRBQUEsQ0FHckUsR0FDRSxVQUNBLDZDQUFBLEFBQXFDLG9DQUFBLENBR3ZDLElBQ0UsVUFDQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxJQUNFLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLElBQ0UseUNBQUEsQUFBaUMsZ0NBQUEsQ0FHbkMsR0FDRSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQUluQixjQUNFLG9DQUFBLEFBQTRCLDJCQUFBLENBQzdCLGdDQUdDLG9CQUNFLHNFQUFBLEFBQW1FLDZEQUFBLENBR3JFLEdBQ0UsVUFDQSw2Q0FBQSxBQUFxQyxvQ0FBQSxDQUd2QyxJQUNFLFVBQ0EsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsSUFDRSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUdyQyxJQUNFLHlDQUFBLEFBQWlDLGdDQUFBLENBR25DLEdBQ0UsdUJBQUEsQUFBZSxjQUFBLENBQUEsQ0ExQmxCLEFBOEJELHdCQTNCRSxvQkFDRSxzRUFBQSxBQUFtRSw2REFBQSxDQUdyRSxHQUNFLFVBQ0EsNkNBQUEsQUFBcUMsb0NBQUEsQ0FHdkMsSUFDRSxVQUNBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLElBQ0UsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsSUFDRSx5Q0FBQSxBQUFpQyxnQ0FBQSxDQUduQyxHQUNFLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBSW5CLGNBQ0Usb0NBQUEsQUFBNEIsMkJBQUEsQ0FDN0IsaUNBR0Msb0JBQ0Usc0VBQUEsQUFBbUUsNkRBQUEsQ0FHckUsS0FDRSxVQUNBLDRDQUFBLEFBQW9DLG1DQUFBLENBR3RDLElBQ0UsVUFDQSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUdyQyxJQUNFLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLElBQ0UsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsR0FDRSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQTFCbEIsQUE4QkQseUJBM0JFLG9CQUNFLHNFQUFBLEFBQW1FLDZEQUFBLENBR3JFLEtBQ0UsVUFDQSw0Q0FBQSxBQUFvQyxtQ0FBQSxDQUd0QyxJQUNFLFVBQ0EsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsSUFDRSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxJQUNFLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLEdBQ0UsdUJBQUEsQUFBZSxjQUFBLENBQUEsQ0FJbkIsZUFDRSxxQ0FBQSxBQUE2Qiw0QkFBQSxDQUM5Qiw4QkFHQyxvQkFDRSxzRUFBQSxBQUFtRSw2REFBQSxDQUdyRSxLQUNFLFVBQ0EsNENBQUEsQUFBb0MsbUNBQUEsQ0FHdEMsSUFDRSxVQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLElBQ0UsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsSUFDRSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxHQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBQUEsQ0ExQmxDLEFBOEJELHNCQTNCRSxvQkFDRSxzRUFBQSxBQUFtRSw2REFBQSxDQUdyRSxLQUNFLFVBQ0EsNENBQUEsQUFBb0MsbUNBQUEsQ0FHdEMsSUFDRSxVQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLElBQ0UsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsSUFDRSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxHQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBQUEsQ0FJbkMsWUFDRSxrQ0FBQSxBQUEwQix5QkFBQSxDQUMzQiw2QkFHQyxJQUNFLHlDQUFBLEFBQThCLGdDQUFBLENBR2hDLFFBQ0UsVUFDQSx5Q0FBQSxBQUFpQyxnQ0FBQSxDQUduQyxHQUNFLFVBQ0EseUNBQUEsQUFBOEIsZ0NBQUEsQ0FBQSxDQWRqQyxBQWtCRCxxQkFmRSxJQUNFLHlDQUFBLEFBQThCLGdDQUFBLENBR2hDLFFBQ0UsVUFDQSx5Q0FBQSxBQUFpQyxnQ0FBQSxDQUduQyxHQUNFLFVBQ0EseUNBQUEsQUFBOEIsZ0NBQUEsQ0FBQSxDQUlsQyxXQUNFLGlDQUFBLEFBQXlCLHdCQUFBLENBQzFCLGlDQUdDLElBQ0UsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsUUFDRSxVQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLEdBQ0UsVUFDQSw0Q0FBQSxBQUFvQyxtQ0FBQSxDQUFBLENBZHZDLEFBa0JELHlCQWZFLElBQ0UsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsUUFDRSxVQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLEdBQ0UsVUFDQSw0Q0FBQSxBQUFvQyxtQ0FBQSxDQUFBLENBSXhDLGVBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FDOUIsaUNBR0MsSUFDRSxVQUNBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLEdBQ0UsVUFDQSw2Q0FBQSxBQUFxQyxvQ0FBQSxDQUFBLENBVnhDLEFBY0QseUJBWEUsSUFDRSxVQUNBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLEdBQ0UsVUFDQSw2Q0FBQSxBQUFxQyxvQ0FBQSxDQUFBLENBSXpDLGVBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FDOUIsa0NBR0MsSUFDRSxVQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLEdBQ0UsVUFDQSw0Q0FBQSxBQUFvQyxtQ0FBQSxDQUFBLENBVnZDLEFBY0QsMEJBWEUsSUFDRSxVQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLEdBQ0UsVUFDQSw0Q0FBQSxBQUFvQyxtQ0FBQSxDQUFBLENBSXhDLGdCQUNFLHNDQUFBLEFBQThCLDZCQUFBLENBQy9CLCtCQUdDLElBQ0UsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsUUFDRSxVQUNBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLEdBQ0UsVUFDQSw2Q0FBQSxBQUFxQyxvQ0FBQSxDQUFBLENBZHhDLEFBa0JELHVCQWZFLElBQ0UsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsUUFDRSxVQUNBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLEdBQ0UsVUFDQSw2Q0FBQSxBQUFxQyxvQ0FBQSxDQUFBLENBSXpDLGFBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FDNUIsMEJBR0MsS0FDRSxTQUFVLENBR1osR0FDRSxTQUFVLENBQUEsQ0FSYixBQVlELGtCQVRFLEtBQ0UsU0FBVSxDQUdaLEdBQ0UsU0FBVSxDQUFBLENBSWQsUUFDRSw4QkFBQSxBQUFzQixxQkFBQSxDQUN2Qiw4QkFHQyxLQUNFLFVBQ0EsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsR0FDRSxVQUNBLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBVmxCLEFBY0Qsc0JBWEUsS0FDRSxVQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLEdBQ0UsVUFDQSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQUluQixZQUNFLGtDQUFBLEFBQTBCLHlCQUFBLENBQzNCLGlDQUdDLEtBQ0UsVUFDQSw2Q0FBQSxBQUFxQyxvQ0FBQSxDQUd2QyxHQUNFLFVBQ0EsdUJBQUEsQUFBZSxjQUFBLENBQUEsQ0FWbEIsQUFjRCx5QkFYRSxLQUNFLFVBQ0EsNkNBQUEsQUFBcUMsb0NBQUEsQ0FHdkMsR0FDRSxVQUNBLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBSW5CLGVBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FDOUIsOEJBR0MsS0FDRSxVQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBR3JDLEdBQ0UsVUFDQSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQVZsQixBQWNELHNCQVhFLEtBQ0UsVUFDQSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUdyQyxHQUNFLFVBQ0EsdUJBQUEsQUFBZSxjQUFBLENBQUEsQ0FJbkIsWUFDRSxrQ0FBQSxBQUEwQix5QkFBQSxDQUMzQixpQ0FHQyxLQUNFLFVBQ0EsNkNBQUEsQUFBcUMsb0NBQUEsQ0FHdkMsR0FDRSxVQUNBLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBVmxCLEFBY0QseUJBWEUsS0FDRSxVQUNBLDZDQUFBLEFBQXFDLG9DQUFBLENBR3ZDLEdBQ0UsVUFDQSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQUluQixlQUNFLHFDQUFBLEFBQTZCLDRCQUFBLENBQzlCLCtCQUdDLEtBQ0UsVUFDQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxHQUNFLFVBQ0EsdUJBQUEsQUFBZSxjQUFBLENBQUEsQ0FWbEIsQUFjRCx1QkFYRSxLQUNFLFVBQ0EsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsR0FDRSxVQUNBLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBSW5CLGFBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FDNUIsa0NBR0MsS0FDRSxVQUNBLDRDQUFBLEFBQW9DLG1DQUFBLENBR3RDLEdBQ0UsVUFDQSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQVZsQixBQWNELDBCQVhFLEtBQ0UsVUFDQSw0Q0FBQSxBQUFvQyxtQ0FBQSxDQUd0QyxHQUNFLFVBQ0EsdUJBQUEsQUFBZSxjQUFBLENBQUEsQ0FJbkIsZ0JBQ0Usc0NBQUEsQUFBOEIsNkJBQUEsQ0FDL0IsNEJBR0MsS0FDRSxVQUNBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLEdBQ0UsVUFDQSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQVZsQixBQWNELG9CQVhFLEtBQ0UsVUFDQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxHQUNFLFVBQ0EsdUJBQUEsQUFBZSxjQUFBLENBQUEsQ0FJbkIsVUFDRSxnQ0FBQSxBQUF3Qix1QkFBQSxDQUN6QiwrQkFHQyxLQUNFLFVBQ0EsNENBQUEsQUFBb0MsbUNBQUEsQ0FHdEMsR0FDRSxVQUNBLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBVmxCLEFBY0QsdUJBWEUsS0FDRSxVQUNBLDRDQUFBLEFBQW9DLG1DQUFBLENBR3RDLEdBQ0UsVUFDQSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQUluQixhQUNFLG1DQUFBLEFBQTJCLDBCQUFBLENBQzVCLG1CQUdDLEtBQ0UsU0FBVSxDQUdaLEdBQ0UsU0FBVSxDQUFBLENBSWQsU0FDRSwrQkFBQSxBQUF1QixzQkFBQSxDQUN4QiwrQkFHQyxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0EsMENBQUEsQUFBa0MsaUNBQUEsQ0FBQSxDQVRyQyxBQWFELHVCQVZFLEtBQ0UsU0FBVSxDQUdaLEdBQ0UsVUFDQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUFBLENBSXRDLGFBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FDNUIsa0NBR0MsS0FDRSxTQUFVLENBR1osR0FDRSxVQUNBLDRDQUFBLEFBQW9DLG1DQUFBLENBQUEsQ0FUdkMsQUFhRCwwQkFWRSxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0EsNENBQUEsQUFBb0MsbUNBQUEsQ0FBQSxDQUl4QyxnQkFDRSxzQ0FBQSxBQUE4Qiw2QkFBQSxDQUMvQiwrQkFHQyxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0EsMkNBQUEsQUFBbUMsa0NBQUEsQ0FBQSxDQVR0QyxBQWFELHVCQVZFLEtBQ0UsU0FBVSxDQUdaLEdBQ0UsVUFDQSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUFBLENBSXZDLGFBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FDNUIsa0NBR0MsS0FDRSxTQUFVLENBR1osR0FDRSxVQUNBLDZDQUFBLEFBQXFDLG9DQUFBLENBQUEsQ0FUeEMsQUFhRCwwQkFWRSxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0EsNkNBQUEsQUFBcUMsb0NBQUEsQ0FBQSxDQUl6QyxnQkFDRSxzQ0FBQSxBQUE4Qiw2QkFBQSxDQUMvQixnQ0FHQyxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0EsMENBQUEsQUFBa0MsaUNBQUEsQ0FBQSxDQVRyQyxBQWFELHdCQVZFLEtBQ0UsU0FBVSxDQUdaLEdBQ0UsVUFDQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUFBLENBSXRDLGNBQ0Usb0NBQUEsQUFBNEIsMkJBQUEsQ0FDN0IsbUNBR0MsS0FDRSxTQUFVLENBR1osR0FDRSxVQUNBLDRDQUFBLEFBQW9DLG1DQUFBLENBQUEsQ0FUdkMsQUFhRCwyQkFWRSxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0EsNENBQUEsQUFBb0MsbUNBQUEsQ0FBQSxDQUl4QyxpQkFDRSx1Q0FBQSxBQUErQiw4QkFBQSxDQUNoQyw2QkFHQyxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0EsMkNBQUEsQUFBbUMsa0NBQUEsQ0FBQSxDQVR0QyxBQWFELHFCQVZFLEtBQ0UsU0FBVSxDQUdaLEdBQ0UsVUFDQSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUFBLENBSXZDLFdBQ0UsaUNBQUEsQUFBeUIsd0JBQUEsQ0FDMUIsZ0NBR0MsS0FDRSxTQUFVLENBR1osR0FDRSxVQUNBLDZDQUFBLEFBQXFDLG9DQUFBLENBQUEsQ0FUeEMsQUFhRCx3QkFWRSxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0EsNkNBQUEsQUFBcUMsb0NBQUEsQ0FBQSxDQUl6QyxjQUNFLG9DQUFBLEFBQTRCLDJCQUFBLENBQzdCLHdCQUdDLEtBQ0UsZ0VBQUEsQUFDQSx3REFBQSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUdyQyxJQUNFLHlGQUFBLEFBQ0EsaUZBQUEsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsSUFDRSx5RkFBQSxBQUNBLGlGQUFBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLElBQ0UsK0RBQUEsQUFDQSx1REFBQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxHQUNFLHFDQUFBLEFBQ0EsNkJBQUEsMENBQUEsQUFBa0MsaUNBQUEsQ0FBQSxDQXpCckMsQUE2QkQsZ0JBMUJFLEtBQ0UsZ0VBQUEsQUFDQSx3REFBQSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUdyQyxJQUNFLHlGQUFBLEFBQ0EsaUZBQUEsMkNBQUEsQUFBbUMsa0NBQUEsQ0FHckMsSUFDRSx5RkFBQSxBQUNBLGlGQUFBLDBDQUFBLEFBQWtDLGlDQUFBLENBR3BDLElBQ0UsK0RBQUEsQUFDQSx1REFBQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUdwQyxHQUNFLHFDQUFBLEFBQ0EsNkJBQUEsMENBQUEsQUFBa0MsaUNBQUEsQ0FBQSxDQUl0QyxlQUNFLG9DQUNBLDRCQUNBLDRCQUFBLEFBQW9CLG1CQUFBLENBQ3JCLDJCQUdDLEtBQ0UsOERBQUEsQUFDQSxzREFBQSwwQ0FBQSxBQUNBLGtDQUFBLFNBQVUsQ0FHWixJQUNFLCtEQUFBLEFBQ0EsdURBQUEsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsSUFDRSw4REFBQSxBQUNBLHNEQUFBLFNBQVUsQ0FHWixJQUNFLDhEQUFBLEFBQXNELHFEQUFBLENBR3hELEdBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FBQSxDQXhCaEMsQUE0QkQsbUJBekJFLEtBQ0UsOERBQUEsQUFDQSxzREFBQSwwQ0FBQSxBQUNBLGtDQUFBLFNBQVUsQ0FHWixJQUNFLCtEQUFBLEFBQ0EsdURBQUEsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsSUFDRSw4REFBQSxBQUNBLHNEQUFBLFNBQVUsQ0FHWixJQUNFLDhEQUFBLEFBQXNELHFEQUFBLENBR3hELEdBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FBQSxDQUlqQyxTQUNFLCtDQUNBLHVDQUNBLCtCQUFBLEFBQXVCLHNCQUFBLENBQ3hCLDJCQUdDLEtBQ0UsOERBQUEsQUFDQSxzREFBQSwwQ0FBQSxBQUNBLGtDQUFBLFNBQVUsQ0FHWixJQUNFLCtEQUFBLEFBQ0EsdURBQUEsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsSUFDRSw4REFBQSxBQUNBLHNEQUFBLFNBQVUsQ0FHWixJQUNFLDhEQUFBLEFBQXNELHFEQUFBLENBR3hELEdBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FBQSxDQXhCaEMsQUE0QkQsbUJBekJFLEtBQ0UsOERBQUEsQUFDQSxzREFBQSwwQ0FBQSxBQUNBLGtDQUFBLFNBQVUsQ0FHWixJQUNFLCtEQUFBLEFBQ0EsdURBQUEsMENBQUEsQUFBa0MsaUNBQUEsQ0FHcEMsSUFDRSw4REFBQSxBQUNBLHNEQUFBLFNBQVUsQ0FHWixJQUNFLDhEQUFBLEFBQXNELHFEQUFBLENBR3hELEdBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FBQSxDQUlqQyxTQUNFLCtDQUNBLHVDQUNBLCtCQUFBLEFBQXVCLHNCQUFBLENBQ3hCLDRCQUdDLEtBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FHL0IsSUFDRSwrREFBQSxBQUNBLHVEQUFBLFNBQVUsQ0FHWixHQUNFLDhEQUFBLEFBQ0Esc0RBQUEsU0FBVSxDQUFBLENBZGIsQUFrQkQsb0JBZkUsS0FDRSxxQ0FBQSxBQUE2Qiw0QkFBQSxDQUcvQixJQUNFLCtEQUFBLEFBQ0EsdURBQUEsU0FBVSxDQUdaLEdBQ0UsOERBQUEsQUFDQSxzREFBQSxTQUFVLENBQUEsQ0FJZCxVQUNFLGdDQUFBLEFBQ0Esd0JBQUEsK0NBQ0Esc0NBQXVDLENBQ3hDLDRCQUdDLEtBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FHL0IsSUFDRSwrREFBQSxBQUNBLHVEQUFBLFNBQVUsQ0FHWixHQUNFLDhEQUFBLEFBQ0Esc0RBQUEsU0FBVSxDQUFBLENBZGIsQUFrQkQsb0JBZkUsS0FDRSxxQ0FBQSxBQUE2Qiw0QkFBQSxDQUcvQixJQUNFLCtEQUFBLEFBQ0EsdURBQUEsU0FBVSxDQUdaLEdBQ0UsOERBQUEsQUFDQSxzREFBQSxTQUFVLENBQUEsQ0FJZCxVQUNFLCtDQUNBLHVDQUNBLGdDQUFBLEFBQXdCLHVCQUFBLENBQ3pCLGdDQUdDLEtBQ0Usd0RBQUEsQUFDQSxnREFBQSxTQUFVLENBR1osSUFDRSwrQkFBQSxBQUNBLHVCQUFBLFNBQVUsQ0FHWixJQUNFLCtCQUFBLEFBQ0EsdUJBQUEsU0FBVSxDQUdaLEdBQ0UsdUJBQUEsQUFDQSxlQUFBLFNBQVUsQ0FBQSxDQXBCYixBQXdCRCx3QkFyQkUsS0FDRSx3REFBQSxBQUNBLGdEQUFBLFNBQVUsQ0FHWixJQUNFLCtCQUFBLEFBQ0EsdUJBQUEsU0FBVSxDQUdaLElBQ0UsK0JBQUEsQUFDQSx1QkFBQSxTQUFVLENBR1osR0FDRSx1QkFBQSxBQUNBLGVBQUEsU0FBVSxDQUFBLENBSWQsY0FDRSxvQ0FBQSxBQUNBLDRCQUFBLDJDQUFBLEFBQW1DLGtDQUFBLENBQ3BDLGlDQUdDLEtBQ0UsU0FBVSxDQUdaLEdBQ0UsdURBQUEsQUFDQSwrQ0FBQSxTQUFVLENBQUEsQ0FUYixBQWFELHlCQVZFLEtBQ0UsU0FBVSxDQUdaLEdBQ0UsdURBQUEsQUFDQSwrQ0FBQSxTQUFVLENBQUEsQ0FJZCxlQUNFLHFDQUFBLEFBQ0EsNkJBQUEsMENBQUEsQUFBa0MsaUNBQUEsQ0FDbkMsNEJBR0MsS0FDRSxnQ0FBQSxBQUNBLHdCQUFBLDZDQUFBLEFBQ0EscUNBQUEsU0FBVSxDQUdaLEdBQ0UsZ0NBQUEsQUFDQSx3QkFBQSx1QkFBQSxBQUNBLGVBQUEsU0FBVSxDQUFBLENBWmIsQUFnQkQsb0JBYkUsS0FDRSxnQ0FBQSxBQUNBLHdCQUFBLDZDQUFBLEFBQ0EscUNBQUEsU0FBVSxDQUdaLEdBQ0UsZ0NBQUEsQUFDQSx3QkFBQSx1QkFBQSxBQUNBLGVBQUEsU0FBVSxDQUFBLENBSWQsVUFDRSxnQ0FBQSxBQUF3Qix1QkFBQSxDQUN6QixvQ0FHQyxLQUNFLHFDQUFBLEFBQ0EsNkJBQUEsNENBQUEsQUFDQSxvQ0FBQSxTQUFVLENBR1osR0FDRSxxQ0FBQSxBQUNBLDZCQUFBLHVCQUFBLEFBQ0EsZUFBQSxTQUFVLENBQUEsQ0FaYixBQWdCRCw0QkFiRSxLQUNFLHFDQUFBLEFBQ0EsNkJBQUEsNENBQUEsQUFDQSxvQ0FBQSxTQUFVLENBR1osR0FDRSxxQ0FBQSxBQUNBLDZCQUFBLHVCQUFBLEFBQ0EsZUFBQSxTQUFVLENBQUEsQ0FJZCxrQkFDRSx3Q0FBQSxBQUFnQywrQkFBQSxDQUNqQyxxQ0FHQyxLQUNFLHNDQUFBLEFBQ0EsOEJBQUEsMkNBQUEsQUFDQSxtQ0FBQSxTQUFVLENBR1osR0FDRSxzQ0FBQSxBQUNBLDhCQUFBLHVCQUFBLEFBQ0EsZUFBQSxTQUFVLENBQUEsQ0FaYixBQWdCRCw2QkFiRSxLQUNFLHNDQUFBLEFBQ0EsOEJBQUEsMkNBQUEsQUFDQSxtQ0FBQSxTQUFVLENBR1osR0FDRSxzQ0FBQSxBQUNBLDhCQUFBLHVCQUFBLEFBQ0EsZUFBQSxTQUFVLENBQUEsQ0FJZCxtQkFDRSx5Q0FBQSxBQUFpQyxnQ0FBQSxDQUNsQyxrQ0FHQyxLQUNFLHFDQUFBLEFBQ0EsNkJBQUEsMkNBQUEsQUFDQSxtQ0FBQSxTQUFVLENBR1osR0FDRSxxQ0FBQSxBQUNBLDZCQUFBLHVCQUFBLEFBQ0EsZUFBQSxTQUFVLENBQUEsQ0FaYixBQWdCRCwwQkFiRSxLQUNFLHFDQUFBLEFBQ0EsNkJBQUEsMkNBQUEsQUFDQSxtQ0FBQSxTQUFVLENBR1osR0FDRSxxQ0FBQSxBQUNBLDZCQUFBLHVCQUFBLEFBQ0EsZUFBQSxTQUFVLENBQUEsQ0FJZCxnQkFDRSxzQ0FBQSxBQUE4Qiw2QkFBQSxDQUMvQixtQ0FHQyxLQUNFLHNDQUFBLEFBQ0EsOEJBQUEsNENBQUEsQUFDQSxvQ0FBQSxTQUFVLENBR1osR0FDRSxzQ0FBQSxBQUNBLDhCQUFBLHVCQUFBLEFBQ0EsZUFBQSxTQUFVLENBQUEsQ0FaYixBQWdCRCwyQkFiRSxLQUNFLHNDQUFBLEFBQ0EsOEJBQUEsNENBQUEsQUFDQSxvQ0FBQSxTQUFVLENBR1osR0FDRSxzQ0FBQSxBQUNBLDhCQUFBLHVCQUFBLEFBQ0EsZUFBQSxTQUFVLENBQUEsQ0FJZCxpQkFDRSx1Q0FBQSxBQUErQiw4QkFBQSxDQUNoQyw2QkFHQyxLQUNFLGdDQUFBLEFBQ0Esd0JBQUEsU0FBVSxDQUdaLEdBQ0UsZ0NBQUEsQUFDQSx3QkFBQSw0Q0FBQSxBQUNBLG9DQUFBLFNBQVUsQ0FBQSxDQVhiLEFBZUQscUJBWkUsS0FDRSxnQ0FBQSxBQUNBLHdCQUFBLFNBQVUsQ0FHWixHQUNFLGdDQUFBLEFBQ0Esd0JBQUEsNENBQUEsQUFDQSxvQ0FBQSxTQUFVLENBQUEsQ0FJZCxXQUNFLGlDQUFBLEFBQXlCLHdCQUFBLENBQzFCLHFDQUdDLEtBQ0UscUNBQUEsQUFDQSw2QkFBQSxTQUFVLENBR1osR0FDRSxxQ0FBQSxBQUNBLDZCQUFBLDJDQUFBLEFBQ0EsbUNBQUEsU0FBVSxDQUFBLENBWGIsQUFlRCw2QkFaRSxLQUNFLHFDQUFBLEFBQ0EsNkJBQUEsU0FBVSxDQUdaLEdBQ0UscUNBQUEsQUFDQSw2QkFBQSwyQ0FBQSxBQUNBLG1DQUFBLFNBQVUsQ0FBQSxDQUlkLG1CQUNFLHlDQUFBLEFBQWlDLGdDQUFBLENBQ2xDLHNDQUdDLEtBQ0Usc0NBQUEsQUFDQSw4QkFBQSxTQUFVLENBR1osR0FDRSxzQ0FBQSxBQUNBLDhCQUFBLDRDQUFBLEFBQ0Esb0NBQUEsU0FBVSxDQUFBLENBWGIsQUFlRCw4QkFaRSxLQUNFLHNDQUFBLEFBQ0EsOEJBQUEsU0FBVSxDQUdaLEdBQ0Usc0NBQUEsQUFDQSw4QkFBQSw0Q0FBQSxBQUNBLG9DQUFBLFNBQVUsQ0FBQSxDQUlkLG9CQUNFLDBDQUFBLEFBQWtDLGlDQUFBLENBQ25DLG1DQUdDLEtBQ0UscUNBQUEsQUFDQSw2QkFBQSxTQUFVLENBR1osR0FDRSxxQ0FBQSxBQUNBLDZCQUFBLDRDQUFBLEFBQ0Esb0NBQUEsU0FBVSxDQUFBLENBWGIsQUFlRCwyQkFaRSxLQUNFLHFDQUFBLEFBQ0EsNkJBQUEsU0FBVSxDQUdaLEdBQ0UscUNBQUEsQUFDQSw2QkFBQSw0Q0FBQSxBQUNBLG9DQUFBLFNBQVUsQ0FBQSxDQUlkLGlCQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBQ2hDLG9DQUdDLEtBQ0Usc0NBQUEsQUFDQSw4QkFBQSxTQUFVLENBR1osR0FDRSxzQ0FBQSxBQUNBLDhCQUFBLDJDQUFBLEFBQ0EsbUNBQUEsU0FBVSxDQUFBLENBWGIsQUFlRCw0QkFaRSxLQUNFLHNDQUFBLEFBQ0EsOEJBQUEsU0FBVSxDQUdaLEdBQ0Usc0NBQUEsQUFDQSw4QkFBQSwyQ0FBQSxBQUNBLG1DQUFBLFNBQVUsQ0FBQSxDQUlkLGtCQUNFLHdDQUFBLEFBQWdDLCtCQUFBLENBQ2pDLHlCQUdDLEdBQ0Usa0NBQUEsQUFDQSwwQkFBQSw4Q0FBQSxBQUFzQyxxQ0FBQSxDQUd4QyxRQUNFLDJDQUFBLEFBQ0EsbUNBQUEsa0NBQUEsQUFDQSwwQkFBQSw4Q0FBQSxBQUFzQyxxQ0FBQSxDQUd4QyxRQUNFLDJDQUFBLEFBQ0EsbUNBQUEsa0NBQUEsQUFDQSwwQkFBQSw4Q0FBQSxBQUNBLHNDQUFBLFNBQVUsQ0FHWixHQUNFLDJDQUFBLEFBQ0EsbUNBQUEsU0FBVSxDQUFBLENBdkJiLEFBMkJELGlCQXhCRSxHQUNFLGtDQUFBLEFBQ0EsMEJBQUEsOENBQUEsQUFBc0MscUNBQUEsQ0FHeEMsUUFDRSwyQ0FBQSxBQUNBLG1DQUFBLGtDQUFBLEFBQ0EsMEJBQUEsOENBQUEsQUFBc0MscUNBQUEsQ0FHeEMsUUFDRSwyQ0FBQSxBQUNBLG1DQUFBLGtDQUFBLEFBQ0EsMEJBQUEsOENBQUEsQUFDQSxzQ0FBQSxTQUFVLENBR1osR0FDRSwyQ0FBQSxBQUNBLG1DQUFBLFNBQVUsQ0FBQSxDQUlkLE9BQ0UsNkJBQUEsQUFBcUIsb0JBQUEsQ0FDdEIsZ0NBR0MsS0FDRSxVQUNBLDJDQUFBLEFBQ0EsbUNBQUEsdUNBQUEsQUFBK0IsOEJBQUEsQ0FHakMsSUFDRSxpQ0FBQSxBQUF5Qix3QkFBQSxDQUczQixJQUNFLCtCQUFBLEFBQXVCLHNCQUFBLENBR3pCLEdBQ0UsVUFDQSwyQkFBQSxBQUFtQixrQkFBQSxDQUFBLENBbkJ0QixBQXVCRCx3QkFwQkUsS0FDRSxVQUNBLDJDQUFBLEFBQ0EsbUNBQUEsdUNBQUEsQUFBK0IsOEJBQUEsQ0FHakMsSUFDRSxpQ0FBQSxBQUF5Qix3QkFBQSxDQUczQixJQUNFLCtCQUFBLEFBQXVCLHNCQUFBLENBR3pCLEdBQ0UsVUFDQSwyQkFBQSxBQUFtQixrQkFBQSxDQUFBLENBSXZCLGNBQ0Usb0NBQUEsQUFBNEIsMkJBQUEsQ0FDN0IsMEJBS0MsS0FDRSxVQUNBLHNFQUFBLEFBQThELDZEQUFBLENBR2hFLEdBQ0UsVUFDQSx1QkFBQSxBQUFlLGNBQUEsQ0FBQSxDQVpsQixBQWdCRCxrQkFYRSxLQUNFLFVBQ0Esc0VBQUEsQUFBOEQsNkRBQUEsQ0FHaEUsR0FDRSxVQUNBLHVCQUFBLEFBQWUsY0FBQSxDQUFBLENBSW5CLFFBQ0UsOEJBQUEsQUFBc0IscUJBQUEsQ0FDdkIsMkJBS0MsS0FDRSxTQUFVLENBR1osR0FDRSxVQUNBLG9FQUFBLEFBQTRELDJEQUFBLENBQUEsQ0FYL0QsQUFlRCxtQkFWRSxLQUNFLFNBQVUsQ0FHWixHQUNFLFVBQ0Esb0VBQUEsQUFBNEQsMkRBQUEsQ0FBQSxDQUloRSxTQUNFLCtCQUFBLEFBQXVCLHNCQUFBLENBQ3hCLDBCQUdDLEtBQ0UsVUFDQSx5Q0FBQSxBQUE4QixnQ0FBQSxDQUdoQyxJQUNFLFNBQVUsQ0FBQSxDQVRiLEFBYUQsa0JBVkUsS0FDRSxVQUNBLHlDQUFBLEFBQThCLGdDQUFBLENBR2hDLElBQ0UsU0FBVSxDQUFBLENBSWQsUUFDRSw4QkFBQSxBQUFzQixxQkFBQSxDQUN2Qiw4QkFHQyxLQUNFLFVBQ0Esb0VBQUEsQUFDQSw0REFBQSx5RUFBQSxBQUFtRSxnRUFBQSxDQUdyRSxJQUNFLFVBQ0EsdUVBQUEsQUFDQSwrREFBQSxzRUFBQSxBQUErRCw2REFBQSxDQUFBLENBWmxFLEFBZ0JELHNCQWJFLEtBQ0UsVUFDQSxvRUFBQSxBQUNBLDREQUFBLHlFQUFBLEFBQW1FLGdFQUFBLENBR3JFLElBQ0UsVUFDQSx1RUFBQSxBQUNBLCtEQUFBLHNFQUFBLEFBQStELDZEQUFBLENBQUEsQ0FJbkUsWUFDRSxrQ0FBQSxBQUEwQix5QkFBQSxDQUMzQiw4QkFHQyxLQUNFLFVBQ0Esb0VBQUEsQUFDQSw0REFBQSx5RUFBQSxBQUFtRSxnRUFBQSxDQUdyRSxJQUNFLFVBQ0EsdUVBQUEsQUFDQSwrREFBQSxzRUFBQSxBQUErRCw2REFBQSxDQUFBLENBWmxFLEFBZ0JELHNCQWJFLEtBQ0UsVUFDQSxvRUFBQSxBQUNBLDREQUFBLHlFQUFBLEFBQW1FLGdFQUFBLENBR3JFLElBQ0UsVUFDQSx1RUFBQSxBQUNBLCtEQUFBLHNFQUFBLEFBQStELDZEQUFBLENBQUEsQ0FJbkUsWUFDRSxrQ0FBQSxBQUEwQix5QkFBQSxDQUMzQiwrQkFHQyxLQUNFLFVBQ0EsbUVBQUEsQUFDQSwyREFBQSx5RUFBQSxBQUFtRSxnRUFBQSxDQUdyRSxJQUNFLFVBQ0Esd0VBQUEsQUFDQSxnRUFBQSxzRUFBQSxBQUErRCw2REFBQSxDQUFBLENBWmxFLEFBZ0JELHVCQWJFLEtBQ0UsVUFDQSxtRUFBQSxBQUNBLDJEQUFBLHlFQUFBLEFBQW1FLGdFQUFBLENBR3JFLElBQ0UsVUFDQSx3RUFBQSxBQUNBLGdFQUFBLHNFQUFBLEFBQStELDZEQUFBLENBQUEsQ0FJbkUsYUFDRSxtQ0FBQSxBQUEyQiwwQkFBQSxDQUM1Qiw0QkFHQyxLQUNFLFVBQ0EsbUVBQUEsQUFDQSwyREFBQSx5RUFBQSxBQUFtRSxnRUFBQSxDQUdyRSxJQUNFLFVBQ0Esd0VBQUEsQUFDQSxnRUFBQSxzRUFBQSxBQUErRCw2REFBQSxDQUFBLENBWmxFLEFBZ0JELG9CQWJFLEtBQ0UsVUFDQSxtRUFBQSxBQUNBLDJEQUFBLHlFQUFBLEFBQW1FLGdFQUFBLENBR3JFLElBQ0UsVUFDQSx3RUFBQSxBQUNBLGdFQUFBLHNFQUFBLEFBQStELDZEQUFBLENBQUEsQ0FJbkUsVUFDRSxnQ0FBQSxBQUF3Qix1QkFBQSxDQUN6QiwyQkFHQyxLQUNFLFNBQVUsQ0FHWixJQUNFLFVBQ0EseUNBQUEsQUFBOEIsZ0NBQUEsQ0FHaEMsR0FDRSxTQUFVLENBQUEsQ0FiYixBQWlCRCxtQkFkRSxLQUNFLFNBQVUsQ0FHWixJQUNFLFVBQ0EseUNBQUEsQUFBOEIsZ0NBQUEsQ0FHaEMsR0FDRSxTQUFVLENBQUEsQ0FJZCxTQUNFLCtCQUFBLEFBQXVCLHNCQUFBLENBQ3hCLCtCQUdDLElBQ0UsVUFDQSx3RUFBQSxBQUNBLGdFQUFBLHlFQUFBLEFBQW1FLGdFQUFBLENBR3JFLEdBQ0UsVUFDQSxtRUFBQSxBQUNBLDJEQUFBLHVDQUFBLEFBQ0EsK0JBQUEsc0VBQUEsQUFBK0QsNkRBQUEsQ0FBQSxDQWJsRSxBQWlCRCx1QkFkRSxJQUNFLFVBQ0Esd0VBQUEsQUFDQSxnRUFBQSx5RUFBQSxBQUFtRSxnRUFBQSxDQUdyRSxHQUNFLFVBQ0EsbUVBQUEsQUFDQSwyREFBQSx1Q0FBQSxBQUNBLCtCQUFBLHNFQUFBLEFBQStELDZEQUFBLENBQUEsQ0FJbkUsYUFDRSxtQ0FBQSxBQUEyQiwwQkFBQSxDQUM1QiwrQkFHQyxJQUNFLFVBQ0EsdUVBQUEsQUFBNEQsOERBQUEsQ0FHOUQsR0FDRSxVQUNBLHdEQUFBLEFBQ0EsZ0RBQUEscUNBQUEsQUFBNkIsNEJBQUEsQ0FBQSxDQVhoQyxBQWVELHVCQVpFLElBQ0UsVUFDQSx1RUFBQSxBQUE0RCw4REFBQSxDQUc5RCxHQUNFLFVBQ0Esd0RBQUEsQUFDQSxnREFBQSxxQ0FBQSxBQUE2Qiw0QkFBQSxDQUFBLENBSWpDLGFBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FDNUIsZ0NBR0MsSUFDRSxVQUNBLHdFQUFBLEFBQTZELCtEQUFBLENBRy9ELEdBQ0UsVUFDQSx1REFBQSxBQUNBLCtDQUFBLHNDQUFBLEFBQThCLDZCQUFBLENBQUEsQ0FYakMsQUFlRCx3QkFaRSxJQUNFLFVBQ0Esd0VBQUEsQUFBNkQsK0RBQUEsQ0FHL0QsR0FDRSxVQUNBLHVEQUFBLEFBQ0EsK0NBQUEsc0NBQUEsQUFBOEIsNkJBQUEsQ0FBQSxDQUlsQyxjQUNFLG9DQUFBLEFBQTRCLDJCQUFBLENBQzdCLDZCQUdDLElBQ0UsVUFDQSx1RUFBQSxBQUNBLCtEQUFBLHlFQUFBLEFBQW1FLGdFQUFBLENBR3JFLEdBQ0UsVUFDQSxvRUFBQSxBQUNBLDREQUFBLHVDQUFBLEFBQ0EsK0JBQUEsc0VBQUEsQUFBK0QsNkRBQUEsQ0FBQSxDQWJsRSxBQWlCRCxxQkFkRSxJQUNFLFVBQ0EsdUVBQUEsQUFDQSwrREFBQSx5RUFBQSxBQUFtRSxnRUFBQSxDQUdyRSxHQUNFLFVBQ0Esb0VBQUEsQUFDQSw0REFBQSx1Q0FBQSxBQUNBLCtCQUFBLHNFQUFBLEFBQStELDZEQUFBLENBQUEsQ0FJbkUsV0FDRSxpQ0FBQSxBQUF5Qix3QkFBQSxDQUMxQiwrQkFHQyxLQUNFLDJDQUFBLEFBQ0EsbUNBQUEsa0JBQW1CLENBR3JCLEdBQ0UsdUNBQUEsQUFBK0IsOEJBQUEsQ0FBQSxDQVRsQyxBQWFELHVCQVZFLEtBQ0UsMkNBQUEsQUFDQSxtQ0FBQSxrQkFBbUIsQ0FHckIsR0FDRSx1Q0FBQSxBQUErQiw4QkFBQSxDQUFBLENBSW5DLGFBQ0UsbUNBQUEsQUFBMkIsMEJBQUEsQ0FDNUIsK0JBR0MsS0FDRSwyQ0FBQSxBQUNBLG1DQUFBLGtCQUFtQixDQUdyQixHQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBQUEsQ0FUbEMsQUFhRCx1QkFWRSxLQUNFLDJDQUFBLEFBQ0EsbUNBQUEsa0JBQW1CLENBR3JCLEdBQ0UsdUNBQUEsQUFBK0IsOEJBQUEsQ0FBQSxDQUluQyxhQUNFLG1DQUFBLEFBQTJCLDBCQUFBLENBQzVCLGdDQUdDLEtBQ0UsMENBQUEsQUFDQSxrQ0FBQSxrQkFBbUIsQ0FHckIsR0FDRSx1Q0FBQSxBQUErQiw4QkFBQSxDQUFBLENBVGxDLEFBYUQsd0JBVkUsS0FDRSwwQ0FBQSxBQUNBLGtDQUFBLGtCQUFtQixDQUdyQixHQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBQUEsQ0FJbkMsY0FDRSxvQ0FBQSxBQUE0QiwyQkFBQSxDQUM3Qiw2QkFHQyxLQUNFLDBDQUFBLEFBQ0Esa0NBQUEsa0JBQW1CLENBR3JCLEdBQ0UsdUNBQUEsQUFBK0IsOEJBQUEsQ0FBQSxDQVRsQyxBQWFELHFCQVZFLEtBQ0UsMENBQUEsQUFDQSxrQ0FBQSxrQkFBbUIsQ0FHckIsR0FDRSx1Q0FBQSxBQUErQiw4QkFBQSxDQUFBLENBSW5DLFdBQ0UsaUNBQUEsQUFBeUIsd0JBQUEsQ0FDMUIsZ0NBR0MsS0FDRSx1Q0FBQSxBQUErQiw4QkFBQSxDQUdqQyxHQUNFLGtCQUNBLDBDQUFBLEFBQWtDLGlDQUFBLENBQUEsQ0FUckMsQUFhRCx3QkFWRSxLQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBR2pDLEdBQ0Usa0JBQ0EsMENBQUEsQUFBa0MsaUNBQUEsQ0FBQSxDQUl0QyxjQUNFLG9DQUFBLEFBQTRCLDJCQUFBLENBQzdCLGdDQUdDLEtBQ0UsdUNBQUEsQUFBK0IsOEJBQUEsQ0FHakMsR0FDRSxrQkFDQSwyQ0FBQSxBQUFtQyxrQ0FBQSxDQUFBLENBVHRDLEFBYUQsd0JBVkUsS0FDRSx1Q0FBQSxBQUErQiw4QkFBQSxDQUdqQyxHQUNFLGtCQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBQUEsQ0FJdkMsY0FDRSxvQ0FBQSxBQUE0QiwyQkFBQSxDQUM3QixpQ0FHQyxLQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBR2pDLEdBQ0Usa0JBQ0EsMENBQUEsQUFBa0MsaUNBQUEsQ0FBQSxDQVRyQyxBQWFELHlCQVZFLEtBQ0UsdUNBQUEsQUFBK0IsOEJBQUEsQ0FHakMsR0FDRSxrQkFDQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUFBLENBSXRDLGVBQ0UscUNBQUEsQUFBNkIsNEJBQUEsQ0FDOUIsOEJBR0MsS0FDRSx1Q0FBQSxBQUErQiw4QkFBQSxDQUdqQyxHQUNFLGtCQUNBLDJDQUFBLEFBQW1DLGtDQUFBLENBQUEsQ0FUdEMsQUFhRCxzQkFWRSxLQUNFLHVDQUFBLEFBQStCLDhCQUFBLENBR2pDLEdBQ0Usa0JBQ0EsMkNBQUEsQUFBbUMsa0NBQUEsQ0FBQSxDQUl2QyxZQUNFLGtDQUFBLEFBQTBCLHlCQUFBLENBQzNCLHVCQ3hpREEsa0JBQ0EscUJBQ0EsZ0JBQ0EseUJBQ0Esc0JBQ0EscUJBQ0EsZ0JBQWlCLENBQ2pCLG1DQUdBLGtCQUNBLFdBQ0EsU0FDQSxVQUNBLFNBQVUsQ0FDVixTQUVBLGtCQUNBLHFCQUNBLGVBQWdCLENBQ2hCLGVBRUEsa0JBQ0EsTUFDQSxRQUNBLFlBQ0EsU0FDQSxVQUNBLFVBQ0EsZ0JBQ0EsZUFBZ0IsQ0FDaEIsZUFFQSxnQkFDQSxtQkFDQSwwQkFBQSxBQUF1QixzQkFBQSxDQUN2QixrQ0FHQSxrQkFDQSxvQkFBcUIsQ0FDckIsZ0RBR0Esa0JBQ0EsTUFDQSxPQUNBLFdBQ0EsWUFDQSxTQUNBLFVBQ0EsU0FBVSxDQUNWLHdDQUdBLHlCQUNBLHNCQUNBLHFCQUNBLGlCQUNBLGtCQUFtQixDQUNuQixjQUVBLHFCQUFxQixDQUNyQixzQkFFQSxpQkFBa0IsQ0FDbEIsMkJBRUEsZ0JBQ0EseUJBQ0Esc0JBQ0EscUJBQ0EsaUJBQ0EsbUJBQ0EsMEJBQUEsQUFBdUIsc0JBQUEsQ0FDdkIsd0JBRUEsaUJBQWtCLENBQ2xCLDRCQUVBLDRCQUE2QixDQUM3QixpSEFHQSx1QkFBd0IsQ0FDeEIsMkJBRUEsa0JBQ0EsY0FDQSxrQkFDQSxnQkFDQSxnQ0FBaUMsQ0FDakMsdUJBRUEsa0JBQ0Esa0JBQ0EsZ0NBQWlDLENBQ2pDLFdBRUEsb0JBQXFCLENBQ3JCLHdCQUVBLDBCQUNBLGVBQWdCLENBQ2hCLHNHQUdBLFNBQ0EsdUJBQXdCLENBQ3hCLHVCQUtBLG9CQUNBLFdBQ0EsWUFDQSxpQkFDQSx5QkFDQSxvRkFBQSxBQUNBLDZDQURBLEFBQ0EsMENBQUEsdUZBQUEsQUFDQSwrRUFBQSxjQUFlLENBQ2YsdUNBR0EscUJBQXNCLENBQ3RCLHlDQUdBLFdBQVksQ0FDWixhQUVBLGlCQUFrQixDQUNsQix1Q0FFQSxVQUNBLFdBQ0EsbUJBQ0EsNkJBQ0EsMkJBQ0EsaUNBQ0EsNkJBQUEsQUFBeUIsd0JBQUEsQ0FDekIsVUFFQSxpQkFBa0IsQ0FDbEIsaUNBRUEsV0FDQSxZQUNBLG1CQUNBLGtCQUNBLGdCQUNBLHFEQUFBLEFBQTRDLDRDQUFBLENBQzVDLFNBRUEsWUFDQSxrQkFDQSw2Q0FBQSxBQUFvQyxvQ0FBQSxDQUNwQyxlQUVBLGNBQWUsQ0FDZixlQUVBLDhCQUFBLEFBQ0Esc0JBQUEsV0FDQSxZQUNBLHNCQUNBLHNCQUNBLDRCQUNBLGtCQUNBLGdCQUNBLHlDQUFBLEFBQ0EsaUNBQUEsaUNBQ0EsVUFBVyxDQUNYLGlCQUVBLGtCQUNBLFFBQ0EsVUFDQSxlQUNBLDJCQUNBLDBCQUNBLG9GQUFBLEFBQ0EsNkNBREEsQUFDQSwwQ0FBQSx5RkFBQSxBQUNBLGlGQUFBLGlDQUNBLFdBQ0Esd0JBQXlCLENBQ3pCLGdDQUVBLHVGQUFBLEFBQTZDLGdEQUE3QyxBQUE2Qyw0Q0FBQSxDQUM3QyxpQ0FFQSxtQkFDQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUNsQyxnQ0FFQSx3QkFBeUIsQ0FDekIsc0ZBSUEsa0JBQ0EsbUJBQ0Esd0JBQUEsQUFDQSxnQkFBQSxVQUFXLENBQ1gsV0FFQSxrQkFDQSxzQkFDQSxVQUNBLGlCQUFrQixDQUNsQixrQkFFQSxXQUFZLENBQ1osd0JBRUEsZUFDQSxXQUNBLFlBQ0EsWUFDQSxhQUNBLHlCQUNBLGVBQ0EsY0FDQSxnQkFDQSx5QkFDQSxrQkpqT0Esa0JBQ0EsdUJBQ0EsMEJBQ0Esd0JJK04wQixDQUMxQixpQkFFQSxrQkFDQSxNQUNBLE9BQ0EsV0FDQSxZQUNBLFlBQ0EseUJBQ0Esc0JBQ0EscUJBQ0EsaUJBQ0EsZUFDQSw4QkFBK0IsQ0FDL0Isc0JBRUEsVUFDQSxRQUNBLGtCQUNBLDZCQUE4QixDQUM5Qix5REFRQSxZQUNBLGtCQUNBLE1BQ0EsT0FDQSxXQUNBLFlBQ0EsZ0JBQWlCLENBQ2pCLDRCQUVBLFdBQVksQ0FDWixxQ0FFQSx3QkFBeUIsQ0FDekIsMkVBR0Esa0JBQ0EsbUJBQ0Esd0JBQUEsQUFDQSxnQkFBQSxVQUFXLENBQ1gsMkNBRUEsd0JBQXlCLENBQ3pCLGlEQUVBLHFCQUFzQixDQUN0QixjQUVBLFdBQ0EscUJBQ0Esc0JBQ0EsY0FBZSxDQUNmLHNCQUVBLHFCQUNBLFlBQ0EsbUJBQ0EsWUFDQSx5QkFDQSxlQUNBLGlCQUNBLGNBQ0EsZ0JBQ0EsV0FBWSxDQUNaLDZDQVdBLFdBQVksQ0FDWiwyQkFFQSxjQUNBLHNCQUNBLGdCQUFpQixDQUNqQiwyQkFFQSxVQUFXLENBQ1gsdUJBRUEsa0JBQ0EsTUFDQSxRQUNBLFdBQ0EsV0FBWSxDQUNaLDZCQUVBLGdCQUNBLGtCQUNBLFFBQ0EsUUFDQSxXQUNBLFdBQ0EsMkNBQTRDLENBQzVDLHdCQVFBLDhCQUFBLEFBQ0Esc0JBQUEsV0FDQSxVQUNBLDZCQUNBLGtCQUNBLDBCQUNBLG1CQUNBLHlCQUNBLGVBQ0EsaUJBQ0EsY0oxVkEsdUNBQ0EsNENBQ0EsK0NBQ0EsNkNJd1YrQyxDQUMvQyxzQkFFQSxVQUFXLENBQ1gsNEJBRUEsOEJBQUEsQUFDQSxzQkFBQSxXQUNBLFNBQ0EseUJBQ0Esc0JBQ0Esa0JBQ0EsYUFDQSx3ZkFDQSx5Q0FBQSxBQUNBLGlDQUFBLFVBQVcsQ0FDWCx5QkFFQSxXQUNBLG9CQUNBLG1CQUNBLGNBQWUsQ0FDZixpQkFFQSxTQUNBLFNBQVUsQ0FDVixpQkFFQSxhQUNBLGFMall3QixDS2tZeEIsMEJBRUEseUJBQ0EsVUFBVyxDQUNYLHVCQUVBLHlCQUNBLFVBQVcsQ0FDWCwwQkFFQSxVQUFXLENBQ1gsMEJBS0EsZ0JBQWlCLENBQ2pCLGdDQUVBLGdCQUNBLGNBQ0EsY0FBZSxDQUNmLHdCQUVBLGlCQUFrQixDQUNsQixvQkFFQSw4QkFBQSxBQUNBLHNCQUFBLFlBQ0Esc0JBQ0EsNEJBQ0Esa0JBQ0EsZ0JBQ0EsbUVBQUEsQUFDQSwyREFBQSxpQ0FDQSxXQUNBLGNBQWUsQ0FDZiw0QkFFQSx3QkFBeUIsQ0FDekIsNkJBRUEsa0JBQ0EsbUJBQ0Esd0JBQUEsQUFDQSxnQkFBQSxVQUFXLENBQ1gsdUJBRUEsU0FDQSxTQUFVLENBQ1YsdUJBRUEsb0JBQ0EsZUFBZ0IsQ0FDaEIsbUNBRUEseUJBQTBCLENBQzFCLGtDQUVBLHlCQUEwQixDQUMxQixnQ0FFQSxnQkFDQSxVQUFXLENBQ1gsZ0NBRUEsVUFBVyxDQUNYLGdDQUVBLGdCQUFpQixDQUNqQiw4QkFFQSxpQkFBa0IsQ0FDbEIsa0ZBR0EsZ0JBQ0EsVUFBVyxDQUNYLGlMQVFBLGdCQUNBLHNCQUNBLDRCQUNBLGtCQUNBLG1FQUFBLEFBQ0EsMkRBQUEsNEJBQ0EsVUFBVyxDQUNYLDRCQUVBLHdCQUNBLHFCQUNBLGVBQWdCLENBQ2hCLGdCQUVBLGFBQWMsQ0FDZCwyTkFRQSxvQkFBcUIsQ0FDckIscVFBUUEsa0JBQ0EseUJBQ0EsYUFDQSxtREFBQSxBQUEwQywwQ0FBQSxDQUMxQyxpR0FLQSxpQkFDQSxpQkFDQSxzQkFDQSw0QkFDQSxrQkFDQSxhQUNBLG9GQUFBLEFBQ0EsNkNBREEsQUFDQSwwQ0FBQSx5RkFBQSxBQUNBLGlGQUFBLDRCQUNBLFdBQ0EseUJBQ0EsY0FBZSxDQUNmLHFNQUtBLFVBQ0EsUUFBUyxDQUNULDBOQU1BLHVGQUFBLEFBQTZDLGdEQUE3QyxBQUE2Qyw0Q0FBQSxDQUM3Qyw2SEFLQSxtQkFDQSwwQ0FBQSxBQUFrQyxpQ0FBQSxDQUNsQyxvR0FJQSxrQkFDQSxtQkFDQSx3QkFBQSxBQUNBLGdCQUFBLFVBQVcsQ0FDWCxRQ3hpQkEsbUJBQ0Esa0JBQ0EsT0FDQSxNQUNBLFdBQ0EsYUFDQSxVQUFXLENBUFosZUFTRSxjQUNBLFdBQVksQ0FWZCx5QkFZRyxlQUFnQixDQVpuQixnQ0FjSSxTQUFVLENBZGQsK0JBaUJJLFNBQVUsQ0FqQmQsY0FzQkUsaUJBQ0EsV0FDQSxZQUNBLFdBQVksQ0F6QmQsZ0JBMkJHLG9CQUFxQixDQTNCeEIsa0JBOEJHLGNBQWUsQ0E5QmxCLGtCQWtDRSxrQkFDQSxZQUNBLGVBQ0EsaUJBQ0EsVUFBVyxDQXRDYix1QkF3Q0csa0JBQ0EsY0FDQSxlQUNBLGlCQUNBLFdBQ0EsZ0JBQ0Esb0JBQXFCLENBOUN4QixrQkFrREUsWUFDQSxZQUNBLFlBQ0EsaUJBQ0EscUJBQ0EsZUFDQSxXQUNBLGtCQUNBLHFCQUNBLHlCTDFERCxtQkFDQSx3QkFDQSwyQkFDQSx5Qkt3RDRCLENBNUQ3QixrQkErREUsVUFDQSxhQUNBLFdBQ0EsV0FBWSxDQWxFZCx5QkFvRUcsV0FDQSxrQkFDQSxPQUNBLE1BQ0EsV0FDQSxZQUNBLDJEQUNBLHlCQUEwQixDQTNFN0Isd0JBOEVHLFdBQ0Esa0JBQ0EsT0FDQSxNQUNBLFdBQ0EsWUFDQSw0REFDQSwwQkFDQSxTQUFVLENBQ1YsUUN0RkYsbUJBQ0EsMERBQ0EscUJBQXNCLENBSHZCLGdCQUtFLFdBQ0EsV0FBWSxDQU5kLGlCQVNFLFlBQ0EsV0FBWSxDQVZkLGtCQWFFLGdCQUNBLGlCQUNBLG9CQUNBLDRCQUE2QixDQWhCL0IsaUJBbUJFLGtCQUNBLFdBQ0EsZUFBZ0IsQ0FyQmxCLGdCQXdCRSxtQkFDQSxXQUNBLFlBQ0EsV0FBWSxDQTNCZCxvQkE2QkcsY0FBZSxDQTdCbEIsZUFpQ0UsZ0JBQ0EsV0FDQSxlQUNBLGlCQUNBLFdBQ0EseUJBQTBCLENBdEM1QixrQkF5Q0UsZ0JBQ0EsWUFDQSxZQUNBLGVBQ0EsaUJBQ0EsVUFBVyxDQTlDYixvQkFnREcsZUFDQSxjQUNBLGdCQUNBLFdBQ0EseUJBQTBCLENBcEQ3QiwwQkFzREksb0JBQXFCLENBQ3JCLGlCQU9GLG1CQUNBLGVBQ0EsaUJBQ0EsV0FDQSxlQUFnQixDQU5sQixtQkFRRyxjQUNBLGVBQ0EsaUJBQ0EsV0FDQSxnQkFDQSxvQkFBcUIsQ0FieEIsa0JBaUJFLG1CQUNBLGVBQ0EsaUJBQ0EsV0FDQSxlQUFnQixDQXJCbEIscUJBd0JFLGtCQUNBLG1CQUNBLG1CQUNBLHFCQUNBLG1CQUNBLGVBQ0EsaUJBQ0EsZ0JBQ0EsY0FDQSxvQkFBcUIsQ0FqQ3ZCLDRCQW1DRyxpQkFDQSxXQUNBLGtCQUNBLE9BQ0EsUUFDQSxXQUNBLFlBQ0EsMkNBQTRDLENBMUMvQywwQkE2Q0csMENBQTJDLENBN0M5QyxpQkFpREUsbUJBQ0EsV0FBWSxDQWxEZCx1QkFvREcsa0JBQ0Esa0JBQW1CLENBckR0Qiw4QkF1REksV0FDQSxrQkFDQSxVQUNBLFlBQ0EsV0FDQSxZQUNBLGdEQUFpRCxDQUNqRCxTQU1ILGdCQUNBLGdCTmhJQSxrQkFDQSx1QkFDQSwwQkFDQSx3Qk04SDBCLENBQzFCLDhCQUdBLGtCQUNBLFlBQWEsQ0FDYixVQUdBLGtCQUNBLFdBQ0EsU0FBVSxDQUhYLGlCQUtFLFdBQ0Esa0JBQ0EsUUFDQSxTQUNBLFdBQ0EsYUFDQSw4Q0FBK0MsQ0FYakQsbUJBY0Usa0JBQW1CLENBZHJCLDBCQWdCRyxrQkFDQSxlQUNBLGlCQUNBLGFQOUpzQixDTzJJekIsb0JBdUJFLGtCQUNBLGNBQ0EsWUFBYSxDQXpCZix1QkEyQkcsU0FDQSxVQUNBLGVBQWdCLENBN0JuQiwwQkErQkksbUJBQ0EsZUFDQSxpQkFDQSxjQUNBLGVBQWdCLENBbkNwQixxQ0FxQ0ssZUFBZ0IsQ0FyQ3JCLCtCQXdDSyxpQkFDQSxjQUNBLGlCQUNBLGFBQWMsQ0EzQ25CLDRCQThDSyxrQkFDQSxjQUNBLGNBQ0Esb0JBQXFCLENBakQxQixrQ0FtRE0seUJBQTBCLENBQzFCLFdBUUwsWUFDQSxTQUFVLENBRlgsZ0JBSUUsa0JBQ0EsT0FDQSxNQUNBLFdBQ0EsV0FBWSxDQUNaLFNDN01ELGlCQUFrQixDQUNsQixtQkFLQSxrQkFDQSxvQkFDQSxrQkFDQSxrQkFDQSw4REFDQSxxQkFBc0IsQ0FDdEIsZUFHQSxrQkFDQSxXQUNBLFdBQVksQ0FIYixzQkFLRSxXQUNBLGtCQUNBLGFBQ0EsU0FDQSxZQUNBLGFBQ0EsNENBQ0EsdUJBQXdCLENBWjFCLHNCQWVFLGtCQUNBLGVBQ0EsaUJBQ0EsZ0JBQ0EsVUFBVyxDQW5CYixxQkFzQkUsbUJBQW9CLENBdEJ0Qix3QkF3QkcsU0FDQSxVQUNBLGVBQWdCLENBMUJuQiwyQkE0Qkksa0JBQ0EsbUJBQ0EsZUFDQSxpQkFDQSxnQkFDQSxVQUFXLENBakNmLGtDQW1DSyxnQkFDQSxXQUNBLGtCQUNBLE9BQ0EsUUFDQSxXQUNBLFlBQ0EsZ0JQeERKLG1CQUNBLHdCQUNBLDJCQUNBLDBCQUlBLDZDQUNBLGtEQUNBLHFEQUNBLG1ET2dEeUQsQ0E1QzFELDBCQWtERSxlQUNBLFdBQVksQ0FuRGQsbUNBcURHLHlCQUNBLHFCQUNBLG1CQUNBLGFBQWMsQ0F4RGpCLHlCQTRERSxrQkFDQSxtQkFDQSxlQUNBLGlCQUNBLFdBQ0EsZUFBZ0IsQ0FqRWxCLCtCQW1FRyxrQkFDQSxPQUNBLE1BQ0EsV0FDQSxZQUNBLHdCQUNBLGtDQUNBLDJCQUE0QixDQUM1QixjQUtGLGtCQUNBLGlCQUNBLGtCQUNBLFlBQ0EsWUFDQSxnQkFDQSxVUHBHQSxtQkFDQSx3QkFDQSwyQkFDQSx5Qk9rRzJCLENBUjVCLHFCQVVFLG1CQUNBLGVBQ0EsaUJBQ0EsY0FDQSxlQUFnQixDQUNoQixlQUlELGdCQUFpQixDQURsQixxQkFHRSxrQkFDQSxVQUNBLFdBQ0EsV0FBWSxDQU5kLDRCQVFHLGtCQUNBLGVBQ0EsaUJBQ0EsV0FDQSxlQUFnQixDQVpuQiwyQkFlRyxrQkFBbUIsQ0FmdEIsNkJBaUJJLGNBQ0EsZUFDQSxpQkFDQSxnQkFDQSxVQUFXLENBckJmLHNCQTBCRSxZQUNBLFdBQVksQ0EzQmQsc0JBOEJFLGtCQUNBLFdBQ0EsWVBqSUQsNEJBQ0EsaUNBQ0Esb0NBQ0EsK0JBVkEsdUNBQ0EsNENBQ0EsK0NBQ0EsNkNPdUlnRCxDQWxDakQsNEJQeEdDLGlDQUNBLHNDQUNBLHlDQUNBLHVDT3lJMkMsQ0FwQzVDLCtCQXdDSSx1QkFDQSxXQUNBLGtCQUNBLFNBQ0EsUUFDQSxZQUNBLGFBQ0EsNkNBQ0Esd0JQeEpILHdDQUNBLDZDQUNBLGdEQUNBLCtDT3VKRyxTQUFVLENBbERkLDhCQXFESSxXQUNBLGtCQUNBLE9BQ0EsTUFDQSxXQUNBLFlBQ0EsQUFFQSwrRUFBQSxBQUNBLDhFQUFBLHFIQUNBLFNBQVUsQ0EvRGQsMEJBbUVHLFdBQ0EsV0FBWSxDQUNaLFFBS0YsaUJBQWtCLENBRG5CLGVBR0UsWUFDQSxZQUNBLFlBQ0EsYUFDQSw2Q0FDQSxTQUFVLENBUlosZUFXRSxZQUNBLGFBQ0EsWUFDQSxhQUNBLDRDQUE2QyxDQUM3QyxnQkFNRCxjQUFlLENBRGhCLHFCQUdFLGdCQUNBLGlCQUFrQixDQUNsQixZQUlELGVBQ0EsV0FBWSxDQUZiLHNCQUlFLHlCQUNBLHFCQUNBLG1CQUNBLGFBQWMsQ0FDZCxXQUlELGtCQUNBLGdCQUNBLGlCQUNBLHlCUHROQSw0QkFDQSxpQ0FDQSxvQ0FDQSwrQkFqQkEsa0JBQ0EsdUJBQ0EsMEJBQ0Esd0JPbU8wQixDQU4zQixrQkFRRSxnQkFDQSxrQkFBbUIsQ0FUckIsc0JBV0csZVAzT0Ysa0JBQ0EsdUJBQ0EsMEJBQ0Esd0JPeU80QixDQVo3QixpQkFnQkUsY0FBZSxDQWhCakIsdUJBa0JHLG1CQUNBLGNBQ0EsZUFDQSxpQkFDQSxjQUNBLGdCQUNBLG9CQUFxQixDQXhCeEIsdUJBMkJHLGVBQ0EsaUJBQ0EsYVIvUHNCLENRa096QixpQlB6TkMsd0NBQ0EsNkNBQ0EsZ0RBQ0EsOENPdVBpRCxDQUNoRCxXQUlELGtCQUNBLGdCQUNBLGlCUDFQQSw0QkFDQSxpQ0FDQSxvQ0FDQSw4Qk93UG9DLENBSnJDLGFBTUUsb0JBQXFCLENBTnZCLGtCQVNFLGtCQUNBLGdCQUNBLGNBQ0EsV0FDQSxhQUNBLHNCQUNBLGtDQUNBLDRCUHJSRCxrQkFDQSx1QkFDQSwwQkFDQSx3Qk9tUjJCLENBakI1Qix3QkFtQkcsV0FDQSxrQkFDQSxPQUNBLE1BQ0EsV0FDQSxZQUNBLEFBRUEsNkZBQUEsQUFDQSxtRUFEQSxBQUNBLHNFQUFBLG9IQUFxSCxDQTVCeEgsaUJBZ0NFLGtCQUNBLE9BQ0EsU0FDQSx5QkFDQSxVQUFXLENBcENiLHVCQXNDRyxtQkFDQSxjQUNBLGVBQ0EsaUJBQ0EsV0FDQSxnQkFDQSxvQkFBcUIsQ0E1Q3hCLHVCQStDRyxtQkFDQSxjQUNBLGVBQ0EsaUJBQ0EsVVJ6VG9CLENRc1F2QiwyQkFzREcscUJBQ0EsbUJBQ0EsZUFDQSxpQkFDQSxXQUNBLGdCQUNBLDRCQUE2QixDQTVEaEMsaUJQOVBDLHdDQUNBLDZDQUNBLGdEQUNBLDhDTzJUaUQsQ0FDaEQsZ0JBTUQsZUFDQSwyREFDQSxxQkFBc0IsQ0FIdkIsMkJBTUcsV0FDQSxrQkFDQSxZQUNBLFVBQ0EsYUFDQSxVQUNBLHFEQUNBLHlCQUEwQixDQWI3Qix3QkFpQkUsV0FDQSxXQUFZLENBbEJkLHlCQXFCRSxrQkFDQSxXQUNBLGVBQWdCLENBdkJsQiw0QkEwQkUsVVJ0V3FCLENRNFV2QixzQkE2QkUsNEJBQ0EsWUFDQSxZQUNBLGtEQUNBLHNCUDVXRCxrQkFDQSx1QkFDQSwwQkFDQSx3Qk8wVzJCLENBbEM1Qix5QkFvQ0csU0FDQSxVQUNBLGdCQUNBLFdBQVksQ0F2Q2YsNEJBeUNJLGtCQUNBLG1CQUNBLG1CQUNBLGVBQ0EsaUJBQ0EsY0FDQSxlQUFnQixDQS9DcEIsbUNBaURLLGdCQUNBLFdBQ0Esa0JBQ0EsT0FDQSxRQUNBLFVBQ0EsV0FDQSw2Q0FDQSx1QkFBd0IsQ0F6RDdCLHFCQStERSxXQUNBLFNBQVUsQ0FDVixvQkFNRCxxQkFBc0IsQ0FEdkIsNkJBR0Usa0JBQ0EsZUFBZ0IsQ0FDaEIsbUJBSUQsZ0JBQ0EsY0FBZSxDQUZoQixrREFJRSxnQkFBaUIsQ0FKbkIsMkJBUUcsY0FDQSxvQkFBQSxBQUNBLG9CQURBLEFBQ0EsYUFBQSx5QkFBQSxBQUNBLHNCQURBLEFBQ0EsbUJBQUEsd0JBQUEsQUFDQSxxQkFEQSxBQUNBLHVCQUFBLGtCQUNBLFlBQ0EsWUFDQSxXQUFZLENBZmYsK0JBaUJJLGVBQ0EseVJBQ0EsWUFDQSwrQkFDQSxZUGhhSCw0QkFDQSxpQ0FDQSxvQ0FDQSw4Qk84WnVDLENBdEJ4QyxxQ0EwQkssK09BQ0EsNkJBQ0EsU0FBVSxDQTVCZiwwREFrQ0UsaUJBQ0Esa0JBQ0EsUUFDQSxZQUNBLFdBQ0EsWUFDQSxZQUNBLGVQbGNELG1CQUNBLHdCQUNBLDJCQUNBLDBCQVdBLDRCQUNBLGlDQUNBLG9DQUNBLDhCT21icUMsQ0EzQ3RDLDhJQTZDRyxXQUNBLGtCQUNBLE9BQ0EsTUFDQSxXQUNBLFlBQ0EsMERBQ0EsVVAvYkYsNEJBQ0EsaUNBQ0Esb0NBQ0EsOEJPNmJzQyxDQXJEdkMsc0VBd0RHLDJEQUNBLFNBQVUsQ0F6RGIsc0VQbFpDLDBDQUNBLCtDQUNBLGtEQUNBLGdETzJjb0QsQ0E1RHJELG9GQThESSxTQUFVLENBOURkLGtGQWlFSSxTQUFVLENBakVkLDZCQXNFRSxXQUNBLFdQM2NELHlCQUFBLEFBQ0EscUJBQUEsNkJBQ0EsMEJBQ0EsdUJPeWM4QixDQUM3QixlQU1ELG9CQUNBLGFBQ0EseURBQTBELENBSDNELHVCQUtFLGNBQ0EsZ0JBQ0EsaUJBQWtCLENBUHBCLHdCQVVFLG1CQUNBLFVBQVcsQ0FYYiwyQkFjRSxTQUNBLFVBQVcsQ0FDWCxZQUlELGtCQUNBLGtCQUNBLGtCQUNBLGFBQWMsQ0FDZCxTQUdBLGtCQUNBLGFBQ0EsYUFDQSx5REFDQSx1QkFBd0IsQ0FDeEIsV0FHQSxpQkFBa0IsQ0FDbEIsVUFHQSxrQkFDQSxRQUNBLE1BQ0EsV0FDQSxXQUFZLENBTGIsaUJBT0UsVUFDQSxXQUFZLENBUmQsaUJBV0UsVUFDQSxXQUFZLENBWmQsaUJBZUUsVUFDQSxXQUFZLENBaEJkLGlCQW1CRSxVQUNBLFdBQVksQ0FwQmQsaUJBdUJFLFVBQ0EsV0FBWSxDQXhCZCxpQkEyQkUsVUFDQSxXQUFZLENBNUJkLGlCQStCRSxVQUNBLFdBQVksQ0FoQ2QsaUJBbUNFLFVBQ0EsV0FBWSxDQXBDZCxpQkF1Q0UsVUFDQSxXQUFZLENBeENkLGtCQTJDRSxVQUNBLFdBQVksQ0E1Q2Qsa0JBK0NFLFVBQ0EsV0FBWSxDQWhEZCxrQkFtREUsVUFDQSxXQUFZLENBcERkLGtCQXVERSxVQUNBLFdBQVksQ0F4RGQsa0JBMkRFLFVBQ0EsV0FBWSxDQTVEZCxrQkErREUsVUFDQSxXQUFZLENBaEVkLG1CQW1FRSxjQUNBLFdBQ0EsWUFDQSxjQUFlLENBdEVqQixtREF3RUcsV0FDQSxrQkFDQSxPQUNBLE1BQ0EsV0FDQSxZQUNBLCtDQUNBLHdCQUNBLFNBQVUsQ0FoRmIseUJBb0ZHLGdEQUNBLHdCQUNBLFNBQVUsQ0F0RmIsaUNBMEZJLFNBQVUsQ0ExRmQsZ0NBNkZJLFNBQVUsQ0FDVixXQU1ILGFBQ0EsbUJBQ0Esa0JBQ0EsU0FDQSxZQUNBLGFBQ0csYUFDQSxZQUNBLGdCQUNBLDZCQUNBLFVQM25CSCxrQkFDQSx1QkFDQSwwQkFDQSx5QkFJQSx5Q0FDQSw4Q0FDQSxpREFDQSwrQ09tbkJvRCxDQWJyRCxrQkFlSyxrQkFDQSxXQUNBLGtCQUNBLFNBQ0EsYUFDQSw4QkFDQSwwQkFBMkIsQ0FyQmhDLGlCQXdCRSxtQkFDQSxlQUNBLGlCQUNBLGdCQUNBLFVBQVcsQ0E1QmIsaUJBK0JLLGtCQUNBLGtCQUNBLGNBQ0EsYUFDQSxlQUNBLGlCQUNBLGFSdnBCb0IsQ1F3cEJwQixtQkFNSixrQkFDQSxhQUNBLDJEQUE0RCxDQUg3RCwyQkFLRSxvQkFDQSxZQUNBLFdBQVksQ0FQZCwwQkFVRSxrQkFDQSxlQUNBLGlCQUNBLGdCQUNBLGFSM3FCdUIsQ1E2cEJ6Qiw2QkFpQkUsbUJBQ0EsZUFDQSxpQkFDQSxhUmpyQnVCLENRa3JCdkIsc0NDbHJCRCxJQUFLLFdBQVksQ0FBRyxRQUdYLGVBQWlCLFlBQWEsQ0FBRyxjQUMzQixhQUFlLFdBQVksQ0FBRyxrQkFDMUIsV0FBWSxDQUFHLGtCQUNmLGtCQUFvQixjQUFlLENBQUcsdUJBQ2pDLGdCQUFrQixjQUFlLENBQUcsbUJBR3hDLGlCQUFrQixDQUFHLGVBQ3pCLFdBQVksQ0FBRyxzQkFDUixZQUFhLENBQUcsc0JBQ2hCLGVBQWlCLGdCQUFpQixDQUFHLHFCQUN0QyxrQkFBbUIsQ0FBRywyQkFDaEIsY0FBZSxDQUFHLG1DQUNWLFVBQVcsQ0FBRyx5QkFDeEIsbUJBQXFCLGdCQUFrQixlQUFpQixnQkFBaUIsQ0FBRywrQkFDdEUsV0FBYSxXQUFZLENBQUcsY0FDN0MsYUFBZSxrQkFBb0IsV0FBWSxDQUFHLGVBQ2pELGVBQWdCLENBQUcscUJBQ2IsbUJBQXFCLE1BQVEsV0FBYSxVQUFXLENBQUcsc0JBQ3ZELFdBQWEsVUFBVyxDQUFHLFFBQ3pDLFlBQWEsQ0FBRyxnQkFHUixjQUFlLENBQUcsc0JBQ1osU0FBVSxDQUFHLDJCQUdSLFlBQWEsQ0FBRyx3QkFDbkIsbUJBQXFCLFdBQWEsV0FBYSxpQkFBa0IsQ0FBRyxpQ0FDM0QsaUJBQWtCLENBQUcsc0JBQ2hDLFdBQWEsVUFBVyxDQUFHLDZCQUdwQixpQkFBa0IsQ0FBRyxnQ0FDbEIsaUJBQWtCLENBQUcsZUFHdEMsa0JBQW1CLENBQUcsbUJBQ2xCLFVBQVcsQ0FBRyx1QkFDVixlQUFnQixDQUFHLG1CQUd2QixlQUFpQixhQUFlLFlBQWMsZUFBZ0IsQ0FBRywyQkFDekQsVUFBWSxXQUFhLFdBQWEsaUJBQWtCLENBQUcsUUFHOUUsa0JBQW1CLENBQUcsaUNBQ0ksV0FBYSxVQUFXLENBQUcsNENBQ2hCLFdBQWEsU0FBVSxDQUFHLGVBQ3hELFlBQWEsQ0FBRyxDQUdqQyxxQ0FDQyxJQUFLLFdBQVksQ0FBRyxXQUNQLGVBQWlCLGNBQWdCLGNBQWUsQ0FBRyxvS0FDeUcsY0FBZSxDQUFHLFNBQ2pMLGtCQUFvQixlQUFpQixnQkFBaUIsQ0FBRyxZQUN0RCxlQUFpQixnQkFBaUIsQ0FBRyxRQUd6QyxlQUFpQixXQUFZLENBQUcsY0FDMUIsYUFBZSxXQUFZLENBQUcsa0JBQzFCLFdBQWEsWUFBYyxpQkFBbUIsWUFBYywyREFBNkQseUJBQTBCLENBQUcsa0JBQ3RKLGtCQUFvQixpQkFBbUIsV0FBWSxDQUFHLHVCQUNqRCxXQUFhLFlBQWMsWUFBYywwREFBNEQsMEJBQTRCLHVDQUFBLEFBQStCLDhCQUFBLENBQUcsbUJBR3ZLLGlCQUFrQixDQUFHLGVBQ3pCLFdBQWEsVUFBVyxDQUFHLHNCQUNwQixlQUFpQixnQkFBaUIsQ0FBRyxxQkFDdEMsa0JBQW1CLENBQUcsMkJBQ2hCLGtCQUFvQixlQUFpQixnQkFBaUIsQ0FBRyxrQ0FDbEQsV0FBYSxZQUFjLGVBQWdCLENBQUcseUJBQ3ZELG1CQUFxQixnQkFBa0IsY0FBZSxDQUFHLCtCQUNuRCxpQkFBbUIsV0FBYSxXQUFZLENBQUcsY0FDaEUsZ0JBQWtCLGtCQUFvQixXQUFhLFVBQVcsQ0FBRyxxQkFDMUQsZUFBaUIsZ0JBQWlCLENBQUcsZUFDM0MsZUFBZ0IsQ0FBRyxxQkFDYixrQkFBbUIsQ0FBRyw0QkFDZixlQUFpQixnQkFBaUIsQ0FBRyw2QkFDcEMsZUFBaUIsZ0JBQWlCLENBQUcsc0JBQzVDLFdBQWEsVUFBVyxDQUFHLGdCQUdqQyxxQkFBc0IsQ0FBRyxxQkFDcEIsWUFBYSxDQUFHLHNCQUNmLFVBQVcsQ0FBRyxXQUN6QixlQUFnQixDQUFHLGtCQUNaLFlBQWEsQ0FBRyxpQkFDakIsd0JBQXlCLENBQUcsdUJBQ3RCLGNBQWUsQ0FBRyx1QkFDbEIsY0FBZSxDQUFHLFdBQzlCLGVBQWdCLENBQUcsa0JBQ1osa0JBQW1CLENBQUcsaUJBQ3ZCLHdCQUF5QixDQUFHLHVCQUN0QixjQUFlLENBQUcsZ0JBR3pCLGNBQWUsQ0FBRyx3QkFDVixrQkFBbUIsQ0FBRyxzQkFDeEIsa0JSckd2QixtQkFDQSx3QkFDQSwyQkFDQSx5QlFrR3NFLENBQUkscUJBQ3BELFdBQWEsVUFBVyxDQUFHLDRCQUNwQixtQkFBcUIsY0FBZSxDQUFHLG9CQUcvQyxxQkFBc0IsQ0FBRyxlQUc5QixrQkFBbUIsQ0FBRyxtQkFDbEIsVUFBVyxDQUFHLHVCQUNWLGVBQWdCLENBQUcsV0FDL0IsbUJBQXFCLGFBQWUsV0FBWSxDQUFHLG1CQUczQyxxQkFBc0IsQ0FBRywwQkFDbEIsZUFBaUIsaUJBQW1CLGVBQWdCLENBQUcsNkJBQ3BELGVBQWlCLGdCQUFpQixDQUFHLFFBRzFELGtCQUFtQixDQUFHLDRDQUNlLFdBQWEsVUFBVyxDQUFHLG1CQUNyRCxjQUFlLENBQUcsaUJBQ3BCLGVBQWdCLENBQUcsU0FDM0IsV0FBWSxDQUFHLFVBQ2Qsa0JBQW9CLFdBQWEsV0FBYSxXQUFZLENBQUcscUNBQ2xDLGVBQWdCLENBQUcsV0FDN0MsV0FBYSxVQUFXLENBQUcsZ0JBQ3RCLGVBQWlCLFdBQWEsVUFBVyxDQUFHLGtCQUMxQyxnQkFBa0IsV0FBYSxjQUFlLENBQUcsU0FFMUQsWUFBYyxvQkFBc0IsaUJBQWtCLENBQUcsZ0JBQ2xELGVBQWlCLGdCQUFpQixDQUFHLGdCQUNyQyxVQUFZLE9BQVEsQ0FBRyxDQUFBIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQmFzZSAqL1xuXG4qIHtcblx0b3V0bGluZTogbm9uZTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG46Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge2NvbG9yOiAkYmFzZV9mb3JtX3BsYWNlaG9sZGVyO31cbjo6LW1vei1wbGFjZWhvbGRlclx0XHR7Y29sb3I6ICRiYXNlX2Zvcm1fcGxhY2Vob2xkZXI7fVxuOi1tb3otcGxhY2Vob2xkZXJcdFx0e2NvbG9yOiAkYmFzZV9mb3JtX3BsYWNlaG9sZGVyO31cbjotbXMtaW5wdXQtcGxhY2Vob2xkZXJcdHtjb2xvcjogJGJhc2VfZm9ybV9wbGFjZWhvbGRlcjt9XG5cbmh0bWwsIGJvZHkge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGJhY2tncm91bmQ6ICRiYXNlX2JhY2tncm91bmQ7XG5cdGZvbnQtc2l6ZTogJGJhc2VfZm9udF9zaXplO1xuXHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcblx0Zm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRfZmFtaWx5LCBzYW5zLXNlcmlmO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG5hIHtcblx0Y29sb3I6ICRiYXNlX2xpbmtfY29sb3I7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQmOmxpbmsge1xuXHRcdGNvbG9yOiAkYmFzZV9saW5rX2NvbG9yO1xuXHR9XG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogJGJhc2VfbGlua19jb2xvcjtcblx0fVxuXHQmOnZpc2l0ZWQge1xuXHRcdGNvbG9yOiAkYmFzZV9saW5rX2NvbG9yO1xuXHR9XG5cdCY6aG92ZXIge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBcblx0fVxuXHRpbWcge1xuXHRcdGJvcmRlcjogbm9uZTtcblx0fVxufVxuXG5pbnB1dCwgdGV4dGFyZWEsIGJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5OiAkYmFzZV9mb250X2ZhbWlseTtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRib3gtc2hhZG93OiBub25lO1xufVxuXG5sYWJlbCB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNsZWFyIHtcblx0Y2xlYXI6IGJvdGg7XG59XG5cbnN0cm9uZyB7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jZW50cml6ZSB7XG5cdGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG5cdHRhYmxlLWxheW91dDogZml4ZWQgIWltcG9ydGFudDtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHQmLmZ1bGwtd2lkdGgge1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLnZlcnRpY2FsLWNlbnRlciB7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uc2xpbVNjcm9sbFJhaWwge1xuXHR3aWR0aDogMnB4IWltcG9ydGFudDtcblx0ZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG5cdG9wYWNpdHk6IDEhaW1wb3J0YW50O1xuXHRyaWdodDogMCFpbXBvcnRhbnQ7XG59XG5cbi5zbGltU2Nyb2xsQmFyIHtcblx0d2lkdGg6IDRweCFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6ICNEOEQ4RDghaW1wb3J0YW50O1xuXHRib3JkZXI6IG5vbmUhaW1wb3J0YW50O1xuXHRjdXJzb3I6IHBvaW50ZXIhaW1wb3J0YW50O1xuXHRvcGFjaXR5OiAxIWltcG9ydGFudDtcblx0cmlnaHQ6IDAhaW1wb3J0YW50O1xuXHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDRweCk7XG59XG5cbi8qQnV0dG9ucyovXG5cbmEuYnRuLCAuYnRuIHtcblx0cGFkZGluZzogMCA1MHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0aGVpZ2h0OiA2MHB4O1xuXHRsaW5lLWhlaWdodDogNTZweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRjb2xvcjogJGJhc2Vfd2hpdGVfY29sb3I7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRiYWNrZ3JvdW5kOiAjRkFEOTYxO1xuXHRiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNGQUQ5NjEgMCUsICNGNzZCMUMgMTAwJSk7XG5cdGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI0ZBRDk2MSAwJSwjRjc2QjFDIDEwMCUpO1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjRkFEOTYxIDAlLCNGNzZCMUMgMTAwJSk7XG5cdGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjRkFEOTYxJywgZW5kQ29sb3JzdHI9JyNGNzZCMUMnLEdyYWRpZW50VHlwZT0wICk7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICM5RTY1MDg7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg0cHgpO1xuXHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjNzIGVhc2UgMHMpO1xuXHRAaW5jbHVkZSBib3gtc2hhZG93KDAgMjBweCA1MHB4IHJnYmEoMTA1LDY3LDQsMC41KSk7XG5cdCYuYm9yZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGJvcmRlcjogM3B4IHNvbGlkICNGOUE1NDA7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg0cHgpO1xuXHRcdEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDAgcmdiYSgxMDUsNjcsNCwwLjUpKTtcblx0fVxuXHQmOmhvdmVyIHtcblx0XHRAaW5jbHVkZSBib3gtc2hhZG93KDAgMCAwIHJnYmEoMTA1LDY3LDQsMC41KSk7XG5cdH1cbn1cblxuLypXcmFwcGVyKi9cblxuLmJnIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZncge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHR3aWR0aDogJGJhc2Vfd2lkdGg7XG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5kaXNhYmxlZCB7ZGlzcGxheTogbm9uZTt9XG5cbi8qVGl0bGVzKi9cblxuLm0tdGl0bGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMCAwIDUwcHggMDtcblx0Zm9udC1zaXplOiA1MHB4O1xuXHRsaW5lLWhlaWdodDogNjBweDtcblx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0Y29sb3I6ICRiYXNlX3RleHRfY29sb3I7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm0tc3VidGl0bGUge1xuXHRmb250LXNpemU6IDE4cHg7XG5cdGxpbmUtaGVpZ2h0OiAzMHB4O1xuXHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcbn1cblxuLypQcmVsb2FkZXIqL1xuXG4ucHJlbG9hZGVyIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJhY2tncm91bmQ6ICRiYXNlX3doaXRlX2NvbG9yO1xuXHR6LWluZGV4OiAxMDAwO1xuXHQuc3Bpbm5lciB7XG5cdFx0d2lkdGg6IDY0cHg7XG5cdFx0aGVpZ2h0OiA2NHB4O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9wcmVsb2FkZXIuZ2lmKSBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG5cdH1cbn1cblxuLypGb3JtcyovXG5cbi5jLWZvcm0ge1xuXHQuZ3JvdXAge1xuXHRcdG1hcmdpbjogMCAwIDE1cHggMDtcblx0fVxuXHQuZmllbGQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cInRlbFwiXSwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIHRleHRhcmVhIHtcblx0XHRcdHBhZGRpbmc6IDAgMTBweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0Y29sb3I6ICMyQzQ1Mjc7XG5cdFx0XHRmb250LWZhbWlseTogJGJhc2VfZm9udF9mYW1pbHk7XG5cdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTA4LDE0MSwxMDIsMC41KTtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjNzIGVhc2UgMHMpO1xuXHRcdFx0Ji5lcnJvciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogcmVkO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRsYWJlbC5lcnJvciB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0Ym90dG9tOiAtMThweDtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGNvbG9yOiByZWQ7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXHQuaW5mby10ZXh0IHtcblx0XHRtYXJnaW46IDM1cHggMCAwIDA7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRsaW5lLWhlaWdodDogMjJweDtcblx0XHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICNGQTA2NjM7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuc3VibWl0LWJ0biB7XG5cdFx0bWFyZ2luLXRvcDogMzVweDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxufVxuXG4vKlBvcHVwcyovXG5cbi5vdmVybGF5LCAuY2Ytb3ZlcmxheSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwcHg7XG5cdGxlZnQ6IDBweDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZDogIzAwMDtcblx0b3BhY2l0eTogMC42O1xuXHR6LWluZGV4OiAxMDE7XG59XG5cbi5ub25lYm94IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiA1MCU7XG5cdHRvcDogLTMwMDBweDtcblx0d2lkdGg6IDM4NHB4O1xuXHRtYXJnaW46IDAgMCAwIC0xOTJweDtcblx0cGFkZGluZzogNDVweCA0MHB4O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHR6LWluZGV4OiAxMDAyO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDEwcHgpO1xuXHQuY2xvc2Uge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IC01MHB4O1xuXHRcdHJpZ2h0OiAtNTBweDtcblx0XHR3aWR0aDogNTBweDtcblx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9uY2xvc2UucG5nKSBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdGZvbnQtc2l6ZTogMDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblx0LnRpdGxlIHtcblx0XHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cdFx0Zm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRfZmFtaWx5O1xuXHRcdGZvbnQtc2l6ZTogMjZweDtcblx0XHRsaW5lLWhlaWdodDogMzZweDtcblx0XHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHR9XG5cdC5zdWJ0aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAyOHB4O1xuXHRcdGNvbG9yOiAkYmFzZV90ZXh0X2NvbG9yO1xuXHR9XG59IiwiJGJhc2VfYmFja2dyb3VuZDogI2ZmZjtcclxuJGJhc2VfdGV4dF9jb2xvcjogIzRBNEE0QTtcclxuJGJhc2Vfd2hpdGVfY29sb3I6ICNmZmY7XHJcbiRiYXNlX2xpbmtfY29sb3I6ICNGNUE2MjM7XHJcbiRiYXNlX2hvdmVyX2NvbG9yOiAjRjVBNjIzO1xyXG4kYmFzZV9mb250X3NpemU6IDE2cHg7XHJcbiRiYXNlX2ZvbnRfZmFtaWx5OiAnTW9udHNlcnJhdCc7XHJcbiRiYXNlX2ZvbnQyX2ZhbWlseTogJ1JvYm90byc7XHJcbiRiYXNlX3dpZHRoOiAxMjAwcHg7XHJcbiRiYXNlX2Zvcm1fcGxhY2Vob2xkZXI6ICMyQzQ1Mjc7IiwiLypNaXhpbnMqL1xuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzKXtcblx0Ym9yZGVyLXJhZGl1czogJHJhZGl1cztcblx0LW1vei1ib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cdC1raHRtbC1ib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkcGFyYW0pe1xuXHRib3gtc2hhZG93OiAkcGFyYW07XG5cdC1tb3otYm94LXNoYWRvdzogJHBhcmFtO1xuXHQtd2Via2l0LWJveC1zaGFkb3c6ICRwYXJhbTtcblx0LWtodG1sLWJveC1zaGFkb3c6ICRwYXJhbTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24oJHBhcmFtKXtcblx0dHJhbnNpdGlvbjogJHBhcmFtO1xuXHQtbW96LXRyYW5zaXRpb246ICRwYXJhbTtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiAkcGFyYW07XG5cdC1vLXRyYW5zaXRpb246ICRwYXJhbTtcbn1cblxuQG1peGluIHRyYW5zZm9ybSgkcGFyYW0pIHtcblx0dHJhbnNmb3JtOiAkcGFyYW07XG5cdC13ZWJraXQtdHJhbnNmb3JtOiAkcGFyYW07XG5cdC1tb3otdHJhbnNmb3JtOiAkcGFyYW07XG5cdC1vLXRyYW5zZm9ybTogJHBhcmFtO1xufVxuXG5AbWl4aW4gYW5pbWF0ZSgkYW5pbWF0aW9uLCAkZHVyYXRpb24sICRkZWxheSwgJGZpbGwsICRjb3VudCwgJGVhc2luZykge1xuXHRhbmltYXRpb24tbmFtZTogJGFuaW1hdGlvbjtcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG5cdGFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xuXHRhbmltYXRpb24tZmlsbC1tb2RlOiAkZmlsbDtcblx0YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogJGNvdW50O1xuXHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkZWFzaW5nO1xuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiAkYW5pbWF0aW9uO1xuXHQtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuXHQtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xuXHQtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6ICRmaWxsO1xuXHQtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6ICRjb3VudDtcblx0LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkZWFzaW5nO1xufVxuXG5AbWl4aW4gYmFja2dyb3VuZC1ncmFkaWVudCgkY29sb3IxLCAkY29sb3IyLCAkZnJvbTogMCUsICR0bzogMTAwJSkge1xuXHRiYWNrZ3JvdW5kOiAkY29sb3IxOyAvKiBPbGQgYnJvd3NlcnMgKi9cblx0YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoJGNvbG9yMSAkZnJvbSwgJGNvbG9yMiAkdG8pOyAvKiBGRjMuNi0xNSAqL1xuXHRiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkY29sb3IxICRmcm9tLCAkY29sb3IyICR0byk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkY29sb3IxICRmcm9tLCAkY29sb3IyICR0byk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xufVxuXG5AbWl4aW4gYmFja2dyb3VuZC1ncmFkaWVudC1sZWZ0KCRjb2xvcjEsICRjb2xvcjIpIHtcblx0YmFja2dyb3VuZDogJGNvbG9yMTsgLyogT2xkIGJyb3dzZXJzICovXG5cdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICRjb2xvcjEgMCUsICRjb2xvcjIgMTAwJSk7IC8qIEZGMy42LTE1ICovXG5cdGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICRjb2xvcjEgMCUsICRjb2xvcjIgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGNvbG9yMSAwJSwgJGNvbG9yMiAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG5cdGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPSckY29sb3IxJywgZW5kQ29sb3JzdHI9JyRjb2xvcjInLEdyYWRpZW50VHlwZT0xICk7IC8qIElFNi05ICovXG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5ib2R5LmZhbmN5Ym94LWFjdGl2ZSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG5cclxuYm9keS5mYW5jeWJveC1pb3NmaXgge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwOyB9XHJcblxyXG4uZmFuY3lib3gtaXMtaGlkZGVuIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtOTk5OXB4O1xyXG4gIGxlZnQ6IC05OTk5cHg7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XHJcblxyXG4uZmFuY3lib3gtY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHotaW5kZXg6IDk5OTkyO1xyXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcclxuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCI7IH1cclxuXHJcbi5mYW5jeWJveC1vdXRlcixcclxuLmZhbmN5Ym94LWlubmVyLFxyXG4uZmFuY3lib3gtYmcsXHJcbi5mYW5jeWJveC1zdGFnZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDsgfVxyXG5cclxuLmZhbmN5Ym94LW91dGVyIHtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxyXG5cclxuLmZhbmN5Ym94LWJnIHtcclxuICBiYWNrZ3JvdW5kOiAjMWUxZTFlO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogaW5oZXJpdDtcclxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xyXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40NywgMCwgMC43NCwgMC43MSk7IH1cclxuXHJcbi5mYW5jeWJveC1pcy1vcGVuIC5mYW5jeWJveC1iZyB7XHJcbiAgb3BhY2l0eTogMC44NztcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjIsIDAuNjEsIDAuMzYsIDEpOyB9XHJcblxyXG4uZmFuY3lib3gtaW5mb2JhcixcclxuLmZhbmN5Ym94LXRvb2xiYXIsXHJcbi5mYW5jeWJveC1jYXB0aW9uLXdyYXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBkaXJlY3Rpb246IGx0cjtcclxuICB6LWluZGV4OiA5OTk5NztcclxuICBvcGFjaXR5OiAwO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXMsIHZpc2liaWxpdHkgMHMgbGluZWFyIC4yNXM7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG5cclxuLmZhbmN5Ym94LXNob3ctaW5mb2JhciAuZmFuY3lib3gtaW5mb2JhcixcclxuLmZhbmN5Ym94LXNob3ctdG9vbGJhciAuZmFuY3lib3gtdG9vbGJhcixcclxuLmZhbmN5Ym94LXNob3ctY2FwdGlvbiAuZmFuY3lib3gtY2FwdGlvbi13cmFwIHtcclxuICBvcGFjaXR5OiAxO1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzLCB2aXNpYmlsaXR5IDBzOyB9XHJcblxyXG4uZmFuY3lib3gtaW5mb2JhciB7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxuICBoZWlnaHQ6IDQ0cHg7XHJcbiAgbWluLXdpZHRoOiA0NHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiA0NHB4O1xyXG4gIGNvbG9yOiAjY2NjO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkO1xyXG4gIG1peC1ibGVuZC1tb2RlOiBleGNsdXNpb247IH1cclxuXHJcbi5mYW5jeWJveC10b29sYmFyIHtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7IH1cclxuXHJcbi5mYW5jeWJveC1zdGFnZSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBkaXJlY3Rpb246IGx0cjtcclxuICB6LWluZGV4OiA5OTk5NDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cclxuXHJcbi5mYW5jeWJveC1pcy1jbG9zaW5nIC5mYW5jeWJveC1zdGFnZSB7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgei1pbmRleDogOTk5OTQ7XHJcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtOyB9XHJcblxyXG4uZmFuY3lib3gtc2xpZGU6OmJlZm9yZSB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAwOyB9XHJcblxyXG4uZmFuY3lib3gtaXMtc2xpZGluZyAuZmFuY3lib3gtc2xpZGUsXHJcbi5mYW5jeWJveC1zbGlkZS0tcHJldmlvdXMsXHJcbi5mYW5jeWJveC1zbGlkZS0tY3VycmVudCxcclxuLmZhbmN5Ym94LXNsaWRlLS1uZXh0IHtcclxuICBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuLmZhbmN5Ym94LXNsaWRlLS1pbWFnZSB7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZS0taW1hZ2U6OmJlZm9yZSB7XHJcbiAgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLmZhbmN5Ym94LXNsaWRlLS12aWRlbyAuZmFuY3lib3gtY29udGVudCxcclxuLmZhbmN5Ym94LXNsaWRlLS12aWRlbyBpZnJhbWUge1xyXG4gIGJhY2tncm91bmQ6ICMwMDA7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZS0tbWFwIC5mYW5jeWJveC1jb250ZW50LFxyXG4uZmFuY3lib3gtc2xpZGUtLW1hcCBpZnJhbWUge1xyXG4gIGJhY2tncm91bmQ6ICNFNUUzREY7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZS0tbmV4dCB7XHJcbiAgei1pbmRleDogOTk5OTU7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZSA+ICoge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZzogMjRweDtcclxuICBtYXJnaW46IDQ0cHggMCA0NHB4O1xyXG4gIGJvcmRlci13aWR0aDogMDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG4uZmFuY3lib3gtc2xpZGUgPiB0aXRsZSxcclxuLmZhbmN5Ym94LXNsaWRlID4gc3R5bGUsXHJcbi5mYW5jeWJveC1zbGlkZSA+IG1ldGEsXHJcbi5mYW5jeWJveC1zbGlkZSA+IGxpbmssXHJcbi5mYW5jeWJveC1zbGlkZSA+IHNjcmlwdCxcclxuLmZhbmN5Ym94LXNsaWRlID4gYmFzZSB7XHJcbiAgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLmZhbmN5Ym94LXNsaWRlIC5mYW5jeWJveC1pbWFnZS13cmFwIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIHotaW5kZXg6IDk5OTk1O1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xyXG4gIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xyXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtOyB9XHJcblxyXG4uZmFuY3lib3gtY2FuLXpvb21PdXQgLmZhbmN5Ym94LWltYWdlLXdyYXAge1xyXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLW91dDtcclxuICBjdXJzb3I6IHpvb20tb3V0OyB9XHJcblxyXG4uZmFuY3lib3gtY2FuLXpvb21JbiAuZmFuY3lib3gtaW1hZ2Utd3JhcCB7XHJcbiAgY3Vyc29yOiAtd2Via2l0LXpvb20taW47XHJcbiAgY3Vyc29yOiB6b29tLWluOyB9XHJcblxyXG4uZmFuY3lib3gtY2FuLWRyYWcgLmZhbmN5Ym94LWltYWdlLXdyYXAge1xyXG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xyXG4gIGN1cnNvcjogZ3JhYjsgfVxyXG5cclxuLmZhbmN5Ym94LWlzLWRyYWdnaW5nIC5mYW5jeWJveC1pbWFnZS13cmFwIHtcclxuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7XHJcbiAgY3Vyc29yOiBncmFiYmluZzsgfVxyXG5cclxuLmZhbmN5Ym94LWltYWdlLFxyXG4uZmFuY3lib3gtc3BhY2ViYWxsIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJvcmRlcjogMDtcclxuICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgbWF4LWhlaWdodDogbm9uZTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIHVzZXItc2VsZWN0OiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtc3BhY2ViYWxsIHtcclxuICB6LWluZGV4OiAxOyB9XHJcblxyXG4uZmFuY3lib3gtc2xpZGUtLWlmcmFtZSAuZmFuY3lib3gtY29udGVudCB7XHJcbiAgcGFkZGluZzogMDtcclxuICB3aWR0aDogODAlO1xyXG4gIGhlaWdodDogODAlO1xyXG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xyXG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDg4cHgpO1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cclxuXHJcbi5mYW5jeWJveC1pZnJhbWUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJvcmRlcjogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxyXG5cclxuLmZhbmN5Ym94LWVycm9yIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogNDBweDtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDM4MHB4O1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XHJcblxyXG4uZmFuY3lib3gtZXJyb3IgcCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgY29sb3I6ICM0NDQ7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyB9XHJcblxyXG4vKiBCdXR0b25zICovXHJcbi5mYW5jeWJveC1idXR0b24ge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgd2lkdGg6IDQ0cHg7XHJcbiAgaGVpZ2h0OiA0NHB4O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMzAsIDMwLCAzMCwgMC42KTtcclxuICB0cmFuc2l0aW9uOiBjb2xvciAuM3MgZWFzZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgb3V0bGluZTogbm9uZTsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbixcclxuLmZhbmN5Ym94LWJ1dHRvbjp2aXNpdGVkLFxyXG4uZmFuY3lib3gtYnV0dG9uOmxpbmsge1xyXG4gIGNvbG9yOiAjY2NjOyB9XHJcblxyXG4uZmFuY3lib3gtYnV0dG9uOmZvY3VzLFxyXG4uZmFuY3lib3gtYnV0dG9uOmhvdmVyIHtcclxuICBjb2xvcjogI2ZmZjsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbltkaXNhYmxlZF0ge1xyXG4gIGNvbG9yOiAjY2NjO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBvcGFjaXR5OiAwLjY7IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b24gc3ZnIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgc2hhcGUtcmVuZGVyaW5nOiBnZW9tZXRyaWNQcmVjaXNpb247IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b24gc3ZnIHBhdGgge1xyXG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcclxuICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xyXG4gIHN0cm9rZS13aWR0aDogMzsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbi0tc2hhcmUgc3ZnIHBhdGgge1xyXG4gIHN0cm9rZS13aWR0aDogMTsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbi0tcGxheSBzdmcgcGF0aDpudGgtY2hpbGQoMikge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi5mYW5jeWJveC1idXR0b24tLXBhdXNlIHN2ZyBwYXRoOm50aC1jaGlsZCgxKSB7XHJcbiAgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuLmZhbmN5Ym94LWJ1dHRvbi0tem9vbSBzdmcgcGF0aCB7XHJcbiAgZmlsbDogdHJhbnNwYXJlbnQ7IH1cclxuXHJcbi8qIE5hdmlnYXRpb24gYXJyb3dzICovXHJcbi5mYW5jeWJveC1uYXZpZ2F0aW9uIHtcclxuICBkaXNwbGF5OiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtc2hvdy1uYXYgLmZhbmN5Ym94LW5hdmlnYXRpb24ge1xyXG4gIGRpc3BsYXk6IGJsb2NrOyB9XHJcblxyXG4uZmFuY3lib3gtbmF2aWdhdGlvbiBidXR0b24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICBtYXJnaW46IC01MHB4IDAgMCAwO1xyXG4gIHotaW5kZXg6IDk5OTk3O1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIGhlaWdodDogMTAwcHg7XHJcbiAgcGFkZGluZzogMTdweDsgfVxyXG5cclxuLmZhbmN5Ym94LW5hdmlnYXRpb24gYnV0dG9uOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcIjtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAzMHB4O1xyXG4gIHJpZ2h0OiAxMHB4O1xyXG4gIHdpZHRoOiA0MHB4O1xyXG4gIGhlaWdodDogNDBweDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCAzMCwgMzAsIDAuNik7IH1cclxuXHJcbi5mYW5jeWJveC1uYXZpZ2F0aW9uIC5mYW5jeWJveC1idXR0b24tLWFycm93X2xlZnQge1xyXG4gIGxlZnQ6IDA7IH1cclxuXHJcbi5mYW5jeWJveC1uYXZpZ2F0aW9uIC5mYW5jeWJveC1idXR0b24tLWFycm93X3JpZ2h0IHtcclxuICByaWdodDogMDsgfVxyXG5cclxuLyogQ2xvc2UgYnV0dG9uIG9uIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIGh0bWwgY29udGVudCAqL1xyXG4uZmFuY3lib3gtY2xvc2Utc21hbGwge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgd2lkdGg6IDQwcHg7XHJcbiAgaGVpZ2h0OiA0MHB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIHotaW5kZXg6IDEwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjsgfVxyXG5cclxuLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmFmdGVyIHtcclxuICBjb250ZW50OiAnw5cnO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDVweDtcclxuICByaWdodDogNXB4O1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBmb250OiAyMnB4LzMwcHggQXJpYWwsXCJIZWx2ZXRpY2EgTmV1ZVwiLEhlbHZldGljYSxzYW5zLXNlcmlmO1xyXG4gIGNvbG9yOiAjODg4O1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXItd2lkdGg6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMjVzO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgei1pbmRleDogMjsgfVxyXG5cclxuLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmZvY3VzIHtcclxuICBvdXRsaW5lOiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtY2xvc2Utc21hbGw6Zm9jdXM6YWZ0ZXIge1xyXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgIzg4ODsgfVxyXG5cclxuLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmhvdmVyOmFmdGVyIHtcclxuICBjb2xvcjogIzU1NTtcclxuICBiYWNrZ3JvdW5kOiAjZWVlOyB9XHJcblxyXG4uZmFuY3lib3gtc2xpZGUtLWltYWdlIC5mYW5jeWJveC1jbG9zZS1zbWFsbCxcclxuLmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNsb3NlLXNtYWxsIHtcclxuICB0b3A6IDA7XHJcbiAgcmlnaHQ6IC00MHB4OyB9XHJcblxyXG4uZmFuY3lib3gtc2xpZGUtLWltYWdlIC5mYW5jeWJveC1jbG9zZS1zbWFsbDphZnRlcixcclxuLmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmFmdGVyIHtcclxuICBmb250LXNpemU6IDM1cHg7XHJcbiAgY29sb3I6ICNhYWE7IH1cclxuXHJcbi5mYW5jeWJveC1zbGlkZS0taW1hZ2UgLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmhvdmVyOmFmdGVyLFxyXG4uZmFuY3lib3gtc2xpZGUtLWlmcmFtZSAuZmFuY3lib3gtY2xvc2Utc21hbGw6aG92ZXI6YWZ0ZXIge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XHJcblxyXG4uZmFuY3lib3gtaXMtc2NhbGluZyAuZmFuY3lib3gtY2xvc2Utc21hbGwsXHJcbi5mYW5jeWJveC1pcy16b29tYWJsZS5mYW5jeWJveC1jYW4tZHJhZyAuZmFuY3lib3gtY2xvc2Utc21hbGwge1xyXG4gIGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi8qIENhcHRpb24gKi9cclxuLmZhbmN5Ym94LWNhcHRpb24td3JhcCB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgcGFkZGluZzogNjBweCAydncgMCAydnc7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQgMCUsIHJnYmEoMCwgMCwgMCwgMC4xKSAyMCUsIHJnYmEoMCwgMCwgMCwgMC4yKSA0MCUsIHJnYmEoMCwgMCwgMCwgMC42KSA4MCUsIHJnYmEoMCwgMCwgMCwgMC44KSAxMDAlKTtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxyXG5cclxuLmZhbmN5Ym94LWNhcHRpb24ge1xyXG4gIHBhZGRpbmc6IDMwcHggMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2ZmZjtcclxuICBsaW5lLWhlaWdodDogMjBweDtcclxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7IH1cclxuXHJcbi5mYW5jeWJveC1jYXB0aW9uIGEsXHJcbi5mYW5jeWJveC1jYXB0aW9uIGJ1dHRvbixcclxuLmZhbmN5Ym94LWNhcHRpb24gc2VsZWN0IHtcclxuICBwb2ludGVyLWV2ZW50czogYWxsO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAvKiBGaXggSUUxMSAqLyB9XHJcblxyXG4uZmFuY3lib3gtY2FwdGlvbiBhIHtcclxuICBjb2xvcjogI2ZmZjtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxyXG5cclxuLyogTG9hZGluZyBpbmRpY2F0b3IgKi9cclxuLmZhbmN5Ym94LXNsaWRlID4gLmZhbmN5Ym94LWxvYWRpbmcge1xyXG4gIGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC40KTtcclxuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHdpZHRoOiA1MHB4O1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmYW5jeWJveC1yb3RhdGUgLjhzIGluZmluaXRlIGxpbmVhcjtcclxuICBhbmltYXRpb246IGZhbmN5Ym94LXJvdGF0ZSAuOHMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgbWFyZ2luLXRvcDogLTMwcHg7XHJcbiAgbWFyZ2luLWxlZnQ6IC0zMHB4O1xyXG4gIHotaW5kZXg6IDk5OTk5OyB9XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFuY3lib3gtcm90YXRlIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7IH0gfVxyXG5cclxuQGtleWZyYW1lcyBmYW5jeWJveC1yb3RhdGUge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsgfSB9XHJcblxyXG4vKiBUcmFuc2l0aW9uIGVmZmVjdHMgKi9cclxuLmZhbmN5Ym94LWFuaW1hdGVkIHtcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMjUsIDEpOyB9XHJcblxyXG4vKiB0cmFuc2l0aW9uRWZmZWN0OiBzbGlkZSAqL1xyXG4uZmFuY3lib3gtZngtc2xpZGUuZmFuY3lib3gtc2xpZGUtLXByZXZpb3VzIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xyXG4gIG9wYWNpdHk6IDA7IH1cclxuXHJcbi5mYW5jeWJveC1meC1zbGlkZS5mYW5jeWJveC1zbGlkZS0tbmV4dCB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XHJcbiAgb3BhY2l0eTogMDsgfVxyXG5cclxuLmZhbmN5Ym94LWZ4LXNsaWRlLmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50IHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICBvcGFjaXR5OiAxOyB9XHJcblxyXG4vKiB0cmFuc2l0aW9uRWZmZWN0OiBmYWRlICovXHJcbi5mYW5jeWJveC1meC1mYWRlLmZhbmN5Ym94LXNsaWRlLS1wcmV2aW91cyxcclxuLmZhbmN5Ym94LWZ4LWZhZGUuZmFuY3lib3gtc2xpZGUtLW5leHQge1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTsgfVxyXG5cclxuLmZhbmN5Ym94LWZ4LWZhZGUuZmFuY3lib3gtc2xpZGUtLWN1cnJlbnQge1xyXG4gIG9wYWNpdHk6IDE7IH1cclxuXHJcbi8qIHRyYW5zaXRpb25FZmZlY3Q6IHpvb20taW4tb3V0ICovXHJcbi5mYW5jeWJveC1meC16b29tLWluLW91dC5mYW5jeWJveC1zbGlkZS0tcHJldmlvdXMge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuNSwgMS41LCAxLjUpO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUzZCgxLjUsIDEuNSwgMS41KTtcclxuICBvcGFjaXR5OiAwOyB9XHJcblxyXG4uZmFuY3lib3gtZngtem9vbS1pbi1vdXQuZmFuY3lib3gtc2xpZGUtLW5leHQge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNSwgMC41LCAwLjUpO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUzZCgwLjUsIDAuNSwgMC41KTtcclxuICBvcGFjaXR5OiAwOyB9XHJcblxyXG4uZmFuY3lib3gtZngtem9vbS1pbi1vdXQuZmFuY3lib3gtc2xpZGUtLWN1cnJlbnQge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcclxuICBvcGFjaXR5OiAxOyB9XHJcblxyXG4vKiB0cmFuc2l0aW9uRWZmZWN0OiByb3RhdGUgKi9cclxuLmZhbmN5Ym94LWZ4LXJvdGF0ZS5mYW5jeWJveC1zbGlkZS0tcHJldmlvdXMge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpO1xyXG4gIG9wYWNpdHk6IDA7IH1cclxuXHJcbi5mYW5jeWJveC1meC1yb3RhdGUuZmFuY3lib3gtc2xpZGUtLW5leHQge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gIG9wYWNpdHk6IDA7IH1cclxuXHJcbi5mYW5jeWJveC1meC1yb3RhdGUuZmFuY3lib3gtc2xpZGUtLWN1cnJlbnQge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIG9wYWNpdHk6IDE7IH1cclxuXHJcbi8qIHRyYW5zaXRpb25FZmZlY3Q6IGNpcmN1bGFyICovXHJcbi5mYW5jeWJveC1meC1jaXJjdWxhci5mYW5jeWJveC1zbGlkZS0tcHJldmlvdXMge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAsIDAsIDApIHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcclxuICB0cmFuc2Zvcm06IHNjYWxlM2QoMCwgMCwgMCkgdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xyXG4gIG9wYWNpdHk6IDA7IH1cclxuXHJcbi5mYW5jeWJveC1meC1jaXJjdWxhci5mYW5jeWJveC1zbGlkZS0tbmV4dCB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMCwgMCwgMCkgdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XHJcbiAgdHJhbnNmb3JtOiBzY2FsZTNkKDAsIDAsIDApIHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xyXG4gIG9wYWNpdHk6IDA7IH1cclxuXHJcbi5mYW5jeWJveC1meC1jaXJjdWxhci5mYW5jeWJveC1zbGlkZS0tY3VycmVudCB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG4gIG9wYWNpdHk6IDE7IH1cclxuXHJcbi8qIHRyYW5zaXRpb25FZmZlY3Q6IHR1YmUgKi9cclxuLmZhbmN5Ym94LWZ4LXR1YmUuZmFuY3lib3gtc2xpZGUtLXByZXZpb3VzIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHNjYWxlKDAuMSkgc2tldygtMTBkZWcpO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHNjYWxlKDAuMSkgc2tldygtMTBkZWcpOyB9XHJcblxyXG4uZmFuY3lib3gtZngtdHViZS5mYW5jeWJveC1zbGlkZS0tbmV4dCB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNjYWxlKDAuMSkgc2tldygxMGRlZyk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBzY2FsZSgwLjEpIHNrZXcoMTBkZWcpOyB9XHJcblxyXG4uZmFuY3lib3gtZngtdHViZS5mYW5jeWJveC1zbGlkZS0tY3VycmVudCB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNjYWxlKDEpO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMSk7IH1cclxuXHJcbi8qIFNoYXJlICovXHJcbi5mYW5jeWJveC1zaGFyZSB7XHJcbiAgcGFkZGluZzogMzBweDtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcclxuICBtYXgtd2lkdGg6IDkwJTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cclxuXHJcbi5mYW5jeWJveC1zaGFyZSBoMSB7XHJcbiAgY29sb3I6ICMyMjI7XHJcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xyXG4gIGZvbnQtc2l6ZTogMzVweDtcclxuICBmb250LXdlaWdodDogNzAwOyB9XHJcblxyXG4uZmFuY3lib3gtc2hhcmUgcCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7IH1cclxuXHJcbnAuZmFuY3lib3gtc2hhcmVfX2xpbmtzIHtcclxuICBtYXJnaW4tcmlnaHQ6IC0xMHB4OyB9XHJcblxyXG4uZmFuY3lib3gtc2hhcmVfX2J1dHRvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBtYXJnaW46IDAgMTBweCAxMHB4IDA7XHJcbiAgcGFkZGluZzogMCAxNXB4O1xyXG4gIG1pbi13aWR0aDogMTMwcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICBjb2xvcjogI2ZmZjtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjJzOyB9XHJcblxyXG4uZmFuY3lib3gtc2hhcmVfX2J1dHRvbjpob3ZlciB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XHJcblxyXG4uZmFuY3lib3gtc2hhcmVfX2J1dHRvbi0tZmIge1xyXG4gIGJhY2tncm91bmQ6ICMzYjU5OTg7IH1cclxuXHJcbi5mYW5jeWJveC1zaGFyZV9fYnV0dG9uLS1mYjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogIzM0NGU4NjsgfVxyXG5cclxuLmZhbmN5Ym94LXNoYXJlX19idXR0b24tLXB0IHtcclxuICBiYWNrZ3JvdW5kOiAjYmQwODFkOyB9XHJcblxyXG4uZmFuY3lib3gtc2hhcmVfX2J1dHRvbi0tcHQ6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6ICNhYTA3MTk7IH1cclxuXHJcbi5mYW5jeWJveC1zaGFyZV9fYnV0dG9uLS10dyB7XHJcbiAgYmFja2dyb3VuZDogIzFkYTFmMjsgfVxyXG5cclxuLmZhbmN5Ym94LXNoYXJlX19idXR0b24tLXR3OmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjMGQ5NWU4OyB9XHJcblxyXG4uZmFuY3lib3gtc2hhcmVfX2J1dHRvbiBzdmcge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IC0xcHg7XHJcbiAgd2lkdGg6IDI1cHg7XHJcbiAgaGVpZ2h0OiAyNXB4O1xyXG4gIG1hcmdpbi1yaWdodDogN3B4O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cclxuXHJcbi5mYW5jeWJveC1zaGFyZV9fYnV0dG9uIHN2ZyBwYXRoIHtcclxuICBmaWxsOiAjZmZmOyB9XHJcblxyXG4uZmFuY3lib3gtc2hhcmVfX2lucHV0IHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogMTBweCAwIDAgMDtcclxuICBwYWRkaW5nOiAxMHB4IDE1cHg7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgY29sb3I6ICM1ZDViNWI7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZDdkN2Q3OyB9XHJcblxyXG4vKiBUaHVtYnMgKi9cclxuLmZhbmN5Ym94LXRodW1icyB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICB3aWR0aDogMjEycHg7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDJweCAycHggNHB4IDJweDtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgei1pbmRleDogOTk5OTU7IH1cclxuXHJcbi5mYW5jeWJveC10aHVtYnMteCB7XHJcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gIG92ZXJmbG93LXg6IGF1dG87IH1cclxuXHJcbi5mYW5jeWJveC1zaG93LXRodW1icyAuZmFuY3lib3gtdGh1bWJzIHtcclxuICBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuLmZhbmN5Ym94LXNob3ctdGh1bWJzIC5mYW5jeWJveC1pbm5lciB7XHJcbiAgcmlnaHQ6IDIxMnB4OyB9XHJcblxyXG4uZmFuY3lib3gtdGh1bWJzID4gdWwge1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgZm9udC1zaXplOiAwO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cclxuXHJcbi5mYW5jeWJveC10aHVtYnMteCA+IHVsIHtcclxuICBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblxyXG4uZmFuY3lib3gtdGh1bWJzLXkgPiB1bDo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gIHdpZHRoOiA3cHg7IH1cclxuXHJcbi5mYW5jeWJveC10aHVtYnMteSA+IHVsOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLCAwLCAwLCAwLjMpOyB9XHJcblxyXG4uZmFuY3lib3gtdGh1bWJzLXkgPiB1bDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG4gIGJhY2tncm91bmQ6ICMyYTJhMmE7XHJcbiAgYm9yZGVyLXJhZGl1czogMTBweDsgfVxyXG5cclxuLmZhbmN5Ym94LXRodW1icyA+IHVsID4gbGkge1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDJweDtcclxuICB3aWR0aDogMTAwcHg7XHJcbiAgaGVpZ2h0OiA3NXB4O1xyXG4gIG1heC13aWR0aDogY2FsYyg1MCUgLSA0cHgpO1xyXG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDhweCk7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cclxuXHJcbmxpLmZhbmN5Ym94LXRodW1icy1sb2FkaW5nIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cclxuXHJcbi5mYW5jeWJveC10aHVtYnMgPiB1bCA+IGxpID4gaW1nIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgbWF4LXdpZHRoOiBub25lO1xyXG4gIG1heC1oZWlnaHQ6IG5vbmU7XHJcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cclxuXHJcbi5mYW5jeWJveC10aHVtYnMgPiB1bCA+IGxpOmJlZm9yZSB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICBib3JkZXI6IDRweCBzb2xpZCAjNGVhN2Y5O1xyXG4gIHotaW5kZXg6IDk5OTkxO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpOyB9XHJcblxyXG4uZmFuY3lib3gtdGh1bWJzID4gdWwgPiBsaS5mYW5jeWJveC10aHVtYnMtYWN0aXZlOmJlZm9yZSB7XHJcbiAgb3BhY2l0eTogMTsgfVxyXG5cclxuLyogU3R5bGluZyBmb3IgU21hbGwtU2NyZWVuIERldmljZXMgKi9cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcclxuICAuZmFuY3lib3gtdGh1bWJzIHtcclxuICAgIHdpZHRoOiAxMTBweDsgfVxyXG4gIC5mYW5jeWJveC1zaG93LXRodW1icyAuZmFuY3lib3gtaW5uZXIge1xyXG4gICAgcmlnaHQ6IDExMHB4OyB9XHJcbiAgLmZhbmN5Ym94LXRodW1icyA+IHVsID4gbGkge1xyXG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTsgfSB9XHJcbiIsIi8qIFxyXG4gKiAgT3dsIENhcm91c2VsIC0gQW5pbWF0ZSBQbHVnaW5cclxuICovXHJcbi5vd2wtY2Fyb3VzZWwgLmFuaW1hdGVkIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG59XHJcbi5vd2wtY2Fyb3VzZWwgLm93bC1hbmltYXRlZC1pbiB7XHJcbiAgei1pbmRleDogMDtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtb3V0IHtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcbi5vd2wtY2Fyb3VzZWwgLmZhZGVPdXQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XHJcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0IHtcclxuICAwJSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gIH1cclxufVxyXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xyXG4gIDAlIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBcclxuICogXHRPd2wgQ2Fyb3VzZWwgLSBBdXRvIEhlaWdodCBQbHVnaW5cclxuICovXHJcbi5vd2wtaGVpZ2h0IHtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcclxuICAtbW96LXRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcclxuICAtbXMtdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xyXG4gIC1vLXRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcclxuICB0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XHJcbn1cclxuXHJcbi8qIFxyXG4gKiAgQ29yZSBPd2wgQ2Fyb3VzZWwgQ1NTIEZpbGVcclxuICovXHJcbi5vd2wtY2Fyb3VzZWwge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAvKiBwb3NpdGlvbiByZWxhdGl2ZSBhbmQgei1pbmRleCBmaXggd2Via2l0IHJlbmRlcmluZyBmb250cyBpc3N1ZSAqL1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcbi5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi1ZO1xyXG59XHJcbi5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZTphZnRlciB7XHJcbiAgY29udGVudDogXCIuXCI7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIGxpbmUtaGVpZ2h0OiAwO1xyXG4gIGhlaWdodDogMDtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcclxuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtY29udHJvbHMgLm93bC1uYXYgLm93bC1wcmV2LFxyXG4ub3dsLWNhcm91c2VsIC5vd2wtY29udHJvbHMgLm93bC1uYXYgLm93bC1uZXh0LFxyXG4ub3dsLWNhcm91c2VsIC5vd2wtY29udHJvbHMgLm93bC1kb3Qge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBjdXJzb3I6IGhhbmQ7XHJcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4ub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbi5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7XHJcbiAgb3BhY2l0eTogMDtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtcmVmcmVzaCAub3dsLWl0ZW0ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gaW1nIHtcclxufVxyXG4ub3dsLWNhcm91c2VsLm93bC10ZXh0LXNlbGVjdC1vbiAub3dsLWl0ZW0ge1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IGF1dG87XHJcbiAgLW1vei11c2VyLXNlbGVjdDogYXV0bztcclxuICAtbXMtdXNlci1zZWxlY3Q6IGF1dG87XHJcbiAgdXNlci1zZWxlY3Q6IGF1dG87XHJcbn1cclxuLm93bC1jYXJvdXNlbCAub3dsLWdyYWIge1xyXG4gIGN1cnNvcjogbW92ZTtcclxuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcclxuICBjdXJzb3I6IC1vLWdyYWI7XHJcbiAgY3Vyc29yOiAtbXMtZ3JhYjtcclxuICBjdXJzb3I6IGdyYWI7XHJcbn1cclxuLm93bC1jYXJvdXNlbC5vd2wtcnRsIHtcclxuICBkaXJlY3Rpb246IHJ0bDtcclxufVxyXG4ub3dsLWNhcm91c2VsLm93bC1ydGwgLm93bC1pdGVtIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuXHJcbi8qIE5vIEpzICovXHJcbi5uby1qcyAub3dsLWNhcm91c2VsIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLyogXHJcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxyXG4gKi9cclxuLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5IHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xyXG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xyXG4gIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XHJcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xyXG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XHJcbn1cclxuXHJcbi8qIFxyXG4gKiBcdE93bCBDYXJvdXNlbCAtIFZpZGVvIFBsdWdpblxyXG4gKi9cclxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogIzAwMDtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgaGVpZ2h0OiA4MHB4O1xyXG4gIHdpZHRoOiA4MHB4O1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0b3A6IDUwJTtcclxuICBtYXJnaW4tbGVmdDogLTQwcHg7XHJcbiAgbWFyZ2luLXRvcDogLTQwcHg7XHJcbiAgYmFja2dyb3VuZDogdXJsKFwib3dsLnZpZGVvLnBsYXkucG5nXCIpIG5vLXJlcGVhdDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgei1pbmRleDogMTtcclxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IHNjYWxlIDEwMG1zIGVhc2U7XHJcbiAgLW1vei10cmFuc2l0aW9uOiBzY2FsZSAxMDBtcyBlYXNlO1xyXG4gIC1tcy10cmFuc2l0aW9uOiBzY2FsZSAxMDBtcyBlYXNlO1xyXG4gIC1vLXRyYW5zaXRpb246IHNjYWxlIDEwMG1zIGVhc2U7XHJcbiAgdHJhbnNpdGlvbjogc2NhbGUgMTAwbXMgZWFzZTtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheS1pY29uOmhvdmVyIHtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IHNjYWxlKDEuMywgMS4zKTtcclxuICAtbW96LXRyYW5zaXRpb246IHNjYWxlKDEuMywgMS4zKTtcclxuICAtbXMtdHJhbnNpdGlvbjogc2NhbGUoMS4zLCAxLjMpO1xyXG4gIC1vLXRyYW5zaXRpb246IHNjYWxlKDEuMywgMS4zKTtcclxuICB0cmFuc2l0aW9uOiBzY2FsZSgxLjMsIDEuMyk7XHJcbn1cclxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10bixcclxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby1wbGF5LWljb24ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXRuIHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgLW1vei1iYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgLW8tYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcclxuICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcclxuICAtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xyXG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcclxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XHJcbn1cclxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLWZyYW1lIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8qIVxuICogYW5pbWF0ZS5jc3MgLWh0dHA6Ly9kYW5lZGVuLm1lL2FuaW1hdGVcbiAqIFZlcnNpb24gLSAzLjUuMlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIC0gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNyBEYW5pZWwgRWRlblxuICovXG5cbi5hbmltYXRlZCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi5hbmltYXRlZC5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuXG4uYW5pbWF0ZWQuaGluZ2Uge1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xufVxuXG4uYW5pbWF0ZWQuZmxpcE91dFgsXG4uYW5pbWF0ZWQuZmxpcE91dFksXG4uYW5pbWF0ZWQuYm91bmNlSW4sXG4uYW5pbWF0ZWQuYm91bmNlT3V0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIGZyb20sIDIwJSwgNTMlLCA4MCUsIHRvIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICB9XG5cbiAgNDAlLCA0MyUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzBweCwgMCk7XG4gIH1cblxuICA3MCUge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTVweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApO1xuICB9XG59XG5cbi5ib3VuY2Uge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuXG5Aa2V5ZnJhbWVzIGZsYXNoIHtcbiAgZnJvbSwgNTAlLCB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDI1JSwgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mbGFzaCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnB1bHNlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xufVxuXG5Aa2V5ZnJhbWVzIHJ1YmJlckJhbmQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuICB9XG5cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gIH1cblxuICA2NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnJ1YmJlckJhbmQge1xuICBhbmltYXRpb24tbmFtZTogcnViYmVyQmFuZDtcbn1cblxuQGtleWZyYW1lcyBzaGFrZSB7XG4gIGZyb20sIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgMjAlLCA0MCUsIDYwJSwgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG59XG5cbi5zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcbn1cblxuQGtleWZyYW1lcyBoZWFkU2hha2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgNi41JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpO1xuICB9XG5cbiAgMTguNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7XG4gIH1cblxuICAzMS41JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO1xuICB9XG5cbiAgNDMuNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uaGVhZFNoYWtlIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBoZWFkU2hha2U7XG59XG5cbkBrZXlmcmFtZXMgc3dpbmcge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gIH1cbn1cblxuLnN3aW5nIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nO1xufVxuXG5Aa2V5ZnJhbWVzIHRhZGEge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAxMCUsIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDAlLCA2MCUsIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnRhZGEge1xuICBhbmltYXRpb24tbmFtZTogdGFkYTtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgd29iYmxlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgMTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ud29iYmxlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbn1cblxuQGtleWZyYW1lcyBqZWxsbyB7XG4gIGZyb20sIDExLjElLCB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgMjIuMiUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgfVxuXG4gIDMzLjMlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICB9XG5cbiAgNDQuNCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuICB9XG5cbiAgNTUuNSUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICB9XG5cbiAgNjYuNiUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgfVxuXG4gIDc3LjclIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gIH1cblxuICA4OC44JSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKTtcbiAgfVxufVxuXG4uamVsbG8ge1xuICBhbmltYXRpb24tbmFtZTogamVsbG87XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbiB7XG4gIGZyb20sIDIwJSwgNDAlLCA2MCUsIDgwJSwgdG8ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cblxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbi5ib3VuY2VJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwMDBweCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmJvdW5jZUluRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkRvd247XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5ib3VuY2VJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluUmlnaHQge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluVXAge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZUluVXAge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXQge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuXG4gIDUwJSwgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dDtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0UmlnaHQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dFJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFVwIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSwgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmZhZGVJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkRvd24ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5Eb3duQmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd25CaWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5MZWZ0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcEJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mYWRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0RG93bkJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bkJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnRCaWcge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFJpZ2h0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcEJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXBCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmxpcCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxufVxuXG4uYW5pbWF0ZWQuZmxpcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXA7XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxufVxuXG4uZmxpcEluWCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YO1xufVxuXG5Aa2V5ZnJhbWVzIGZsaXBJblkge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuLmZsaXBJblkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWTtcbn1cblxuQGtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRYIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRZIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cblxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uZmxpcE91dFkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcE91dFk7XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZEluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW47XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRPdXQge1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluRG93bkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5Eb3duUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwUmlnaHQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93bkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXREb3duUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXRVcFJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgaGluZ2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAyMCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICA0MCUsIDgwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5oaW5nZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBoaW5nZTtcbn1cblxuQGtleWZyYW1lcyBqYWNrSW5UaGVCb3gge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC4xKSByb3RhdGUoMzBkZWcpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7XG4gIH1cblxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDNkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG4uamFja0luVGhlQm94IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGphY2tJblRoZUJveDtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ucm9sbEluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGxJbjtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgcm9sbE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gIH1cbn1cblxuLnJvbGxPdXQge1xuICBhbmltYXRpb24tbmFtZTogcm9sbE91dDtcbn1cblxuQGtleWZyYW1lcyB6b29tSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uem9vbUluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21Jbjtcbn1cblxuQGtleWZyYW1lcyB6b29tSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5Eb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247XG59XG5cbkBrZXlmcmFtZXMgem9vbUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5MZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIHpvb21JblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5SaWdodDtcbn1cblxuQGtleWZyYW1lcyB6b29tSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluVXAge1xuICBhbmltYXRpb24tbmFtZTogem9vbUluVXA7XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnpvb21PdXQge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dDtcbn1cblxuQGtleWZyYW1lcyB6b29tT3V0RG93biB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbU91dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dERvd247XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dExlZnQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRMZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0UmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFVwIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tT3V0VXAge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dFVwO1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluRG93bjtcbn1cblxuQGtleWZyYW1lcyBzbGlkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnQ7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXREb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93bjtcbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0TGVmdDtcbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwO1xufVxuIiwiLmpxLWNoZWNrYm94LFxyXG4uanEtcmFkaW8ge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG5cdHVzZXItc2VsZWN0OiBub25lO1xyXG59XHJcbi5qcS1jaGVja2JveCBpbnB1dCxcclxuLmpxLXJhZGlvIGlucHV0IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0ei1pbmRleDogLTE7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0b3BhY2l0eTogMDtcclxufVxyXG4uanEtZmlsZSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcbi5qcS1maWxlIGlucHV0IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdHJpZ2h0OiAwO1xyXG5cdGhlaWdodDogYXV0bztcclxuXHRtYXJnaW46IDA7XHJcblx0cGFkZGluZzogMDtcclxuXHRvcGFjaXR5OiAwO1xyXG5cdGZvbnQtc2l6ZTogMTAwcHg7XHJcblx0bGluZS1oZWlnaHQ6IDFlbTtcclxufVxyXG4uanEtZmlsZV9fbmFtZSB7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG59XHJcbi5qcS1zZWxlY3Rib3gsXHJcbi5qcS1zZWxlY3QtbXVsdGlwbGUge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuLmpxLXNlbGVjdGJveCBzZWxlY3QsXHJcbi5qcS1zZWxlY3QtbXVsdGlwbGUgc2VsZWN0IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiAwO1xyXG5cdGxlZnQ6IDA7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAxMDAlO1xyXG5cdG1hcmdpbjogMDtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdG9wYWNpdHk6IDA7XHJcbn1cclxuLmpxLXNlbGVjdGJveCBsaSxcclxuLmpxLXNlbGVjdC1tdWx0aXBsZSBsaSB7XHJcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuXHR1c2VyLXNlbGVjdDogbm9uZTtcclxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcbi5qcS1zZWxlY3Rib3gge1xyXG5cdHotaW5kZXg6IDEwIWltcG9ydGFudDtcclxufVxyXG4uanEtc2VsZWN0Ym94X19zZWxlY3Qge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG4uanEtc2VsZWN0Ym94X19zZWxlY3QtdGV4dCB7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG5cdHVzZXItc2VsZWN0OiBub25lO1xyXG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbn1cclxuLmpxLXNlbGVjdGJveF9fZHJvcGRvd24ge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG4uanEtc2VsZWN0Ym94X19zZWFyY2ggaW5wdXQge1xyXG5cdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xyXG59XHJcbi5qcS1zZWxlY3Rib3hfX3NlYXJjaCBpbnB1dDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcclxuLmpxLXNlbGVjdGJveF9fc2VhcmNoIGlucHV0Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcclxuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuLmpxLXNlbGVjdGJveF9fZHJvcGRvd24gdWwge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRvdmVyZmxvdzogYXV0bztcclxuXHRvdmVyZmxvdy14OiBoaWRkZW47XHJcblx0bGlzdC1zdHlsZTogbm9uZTtcclxuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbn1cclxuLmpxLXNlbGVjdC1tdWx0aXBsZSB1bCB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcclxuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbn1cclxuLmpxLW51bWJlciB7XHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcbi5qcS1udW1iZXJfX2ZpZWxkIGlucHV0IHtcclxuXHQtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0OyAvKiDQtNC70Y8gT3BlcmEgUHJlc3RvwqAqL1xyXG59XHJcbi5qcS1udW1iZXJfX2ZpZWxkIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG4uanEtbnVtYmVyX19maWVsZCBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcblx0bWFyZ2luOiAwOyAvKiDQsiDQutCw0LrQuNGFLdGC0L4g0LHRgNCw0YPQt9C10YDQsNGFINC/0YDQuNGB0YPRgtGB0YLQstGD0LXRgiDQvtGC0YHRgtGD0L8gKi9cclxuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcblxyXG4uanEtY2hlY2tib3gsXHJcbi5qcS1yYWRpbyB7XHJcblx0dmVydGljYWwtYWxpZ246IC00cHg7XHJcblx0d2lkdGg6IDE2cHg7XHJcblx0aGVpZ2h0OiAxNnB4O1xyXG5cdG1hcmdpbjogMCA0cHggMCAwO1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICNDM0MzQzM7XHJcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNGRkYsICNFNkU2RTYpO1xyXG5cdGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSksIGluc2V0IC0xcHggLTFweCAjRkZGLCBpbnNldCAxcHggLTFweCAjRkZGO1xyXG5cdGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uanEtY2hlY2tib3guZm9jdXNlZCxcclxuLmpxLXJhZGlvLmZvY3VzZWQge1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICMwOEM7XHJcbn1cclxuLmpxLWNoZWNrYm94LmRpc2FibGVkLFxyXG4uanEtcmFkaW8uZGlzYWJsZWQge1xyXG5cdG9wYWNpdHk6IC41NTtcclxufVxyXG4uanEtY2hlY2tib3gge1xyXG5cdGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG4uanEtY2hlY2tib3guY2hlY2tlZCAuanEtY2hlY2tib3hfX2RpdiB7XHJcblx0d2lkdGg6IDhweDtcclxuXHRoZWlnaHQ6IDRweDtcclxuXHRtYXJnaW46IDNweCAwIDAgM3B4O1xyXG5cdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNjY2O1xyXG5cdGJvcmRlci1sZWZ0OiAycHggc29saWQgIzY2NjtcclxuXHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC01MGRlZyk7XHJcblx0dHJhbnNmb3JtOiByb3RhdGUoLTUwZGVnKTtcclxufVxyXG4uanEtcmFkaW8ge1xyXG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcclxufVxyXG4uanEtcmFkaW8uY2hlY2tlZCAuanEtcmFkaW9fX2RpdiB7XHJcblx0d2lkdGg6IDEwcHg7XHJcblx0aGVpZ2h0OiAxMHB4O1xyXG5cdG1hcmdpbjogM3B4IDAgMCAzcHg7XHJcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xyXG5cdGJhY2tncm91bmQ6ICM3Nzc7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAxcHggcmdiYSgwLDAsMCwuNyk7XHJcbn1cclxuLmpxLWZpbGUge1xyXG5cdHdpZHRoOiAyNzBweDtcclxuXHRib3JkZXItcmFkaXVzOiA0cHg7XHJcblx0Ym94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsLjEpO1xyXG59XHJcbi5qcS1maWxlIGlucHV0IHtcclxuXHRjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLmpxLWZpbGVfX25hbWUge1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiAzNHB4O1xyXG5cdHBhZGRpbmc6IDAgODBweCAwIDEwcHg7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI0NDQztcclxuXHRib3JkZXItYm90dG9tLWNvbG9yOiAjQjNCM0IzO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRiYWNrZ3JvdW5kOiAjRkZGO1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggI0YxRjFGMTtcclxuXHRmb250OiAxNHB4LzMycHggQXJpYWwsIHNhbnMtc2VyaWY7XHJcblx0Y29sb3I6ICMzMzM7XHJcbn1cclxuLmpxLWZpbGVfX2Jyb3dzZSB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMXB4O1xyXG5cdHJpZ2h0OiAxcHg7XHJcblx0cGFkZGluZzogMCAxMHB4O1xyXG5cdGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0NDQztcclxuXHRib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcclxuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI0ZGRiwgI0U2RTZFNik7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgMXB4IC0xcHggI0YxRjFGMSwgaW5zZXQgLTFweCAwICNGMUYxRjEsIDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTtcclxuXHRmb250OiAxNHB4LzMycHggQXJpYWwsIHNhbnMtc2VyaWY7XHJcblx0Y29sb3I6ICMzMzM7XHJcblx0dGV4dC1zaGFkb3c6IDFweCAxcHggI0ZGRjtcclxufVxyXG4uanEtZmlsZTpob3ZlciAuanEtZmlsZV9fYnJvd3NlIHtcclxuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI0Y2RjZGNiwgI0U2RTZFNik7XHJcbn1cclxuLmpxLWZpbGU6YWN0aXZlIC5qcS1maWxlX19icm93c2Uge1xyXG5cdGJhY2tncm91bmQ6ICNGNUY1RjU7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggI0RERDtcclxufVxyXG4uanEtZmlsZS5mb2N1c2VkIC5qcS1maWxlX19uYW1lIHtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjNTc5NEJGO1xyXG59XHJcbi5qcS1maWxlLmRpc2FibGVkLFxyXG4uanEtZmlsZS5kaXNhYmxlZCAuanEtZmlsZV9fbmFtZSxcclxuLmpxLWZpbGUuZGlzYWJsZWQgLmpxLWZpbGVfX2Jyb3dzZSB7XHJcblx0Ym9yZGVyLWNvbG9yOiAjQ0NDO1xyXG5cdGJhY2tncm91bmQ6ICNGNUY1RjU7XHJcblx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRjb2xvcjogIzg4ODtcclxufVxyXG4uanEtbnVtYmVyIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4uanEtbnVtYmVyX19maWVsZCB7XHJcblx0d2lkdGg6IDE0MHB4O1xyXG59XHJcbi5qcS1udW1iZXJfX2ZpZWxkIGlucHV0IHtcclxuXHRwYWRkaW5nOiAwIDQ1cHg7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0aGVpZ2h0OiA0NnB4O1xyXG5cdGJvcmRlcjogbm9uZTtcclxuXHRvdXRsaW5lOiBub25lO1xyXG5cdGZvbnQtZmFtaWx5OiAkYmFzZV9mb250X2ZhbWlseTtcclxuXHRmb250LXNpemU6IDE0cHg7XHJcblx0Y29sb3I6ICRiYXNlX3RleHRfY29sb3I7XHJcblx0YmFja2dyb3VuZDogJGJhc2Vfd2hpdGVfY29sb3I7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI0IzQjNCMztcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg2cHgpO1xyXG59XHJcbi5qcS1udW1iZXJfX3NwaW4ge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHR3aWR0aDogNDVweDtcclxuXHRoZWlnaHQ6IDQ2cHg7XHJcblx0Ym9yZGVyOiBub25lO1xyXG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0dXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNCM0IzQjM7XHJcbn1cclxuLmpxLW51bWJlcl9fc3Bpbi5wbHVzIHtcclxuXHRsZWZ0OiBhdXRvO1xyXG5cdHJpZ2h0OiAwO1xyXG5cdGJvcmRlci1yaWdodDogbm9uZTtcclxuXHRib3JkZXItbGVmdDogMXB4IHNvbGlkICNCM0IzQjM7XHJcbn1cclxuLmpxLW51bWJlcl9fc3Bpbjpob3ZlciB7XHJcblx0XHJcbn1cclxuLmpxLW51bWJlcl9fc3BpbjphY3RpdmUge1xyXG5cdFxyXG59XHJcbi5qcS1udW1iZXJfX3NwaW4ubWludXM6YWZ0ZXIsIC5qcS1udW1iZXJfX3NwaW4ucGx1czphZnRlciB7XHJcblx0Y29udGVudDogJy0nO1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblx0bGluZS1oZWlnaHQ6IDQ2cHg7XHJcbn1cclxuLmpxLW51bWJlcl9fc3Bpbi5wbHVzOmFmdGVyIHtcclxuXHRjb250ZW50OiAnKyc7XHJcbn1cclxuLmpxLW51bWJlci5mb2N1c2VkIC5qcS1udW1iZXJfX2ZpZWxkIHtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjNTc5NEJGO1xyXG59XHJcbi5qcS1udW1iZXIuZGlzYWJsZWQgLmpxLW51bWJlcl9fZmllbGQsXHJcbi5qcS1udW1iZXIuZGlzYWJsZWQgLmpxLW51bWJlcl9fc3BpbiB7XHJcblx0Ym9yZGVyLWNvbG9yOiAjQ0NDO1xyXG5cdGJhY2tncm91bmQ6ICNGNUY1RjU7XHJcblx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRjb2xvcjogIzg4ODtcclxufVxyXG4uanEtbnVtYmVyLmRpc2FibGVkIC5qcS1udW1iZXJfX3NwaW46YWZ0ZXIge1xyXG5cdGJvcmRlci1ib3R0b20tY29sb3I6ICNBQUE7XHJcbn1cclxuLmpxLW51bWJlci5kaXNhYmxlZCAuanEtbnVtYmVyX19zcGluLm1pbnVzOmFmdGVyIHtcclxuXHRib3JkZXItdG9wLWNvbG9yOiAjQUFBO1xyXG59XHJcbi5qcS1zZWxlY3Rib3gge1xyXG5cdHdpZHRoOiBhdXRvO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uanEtc2VsZWN0Ym94X19zZWxlY3Qge1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRoZWlnaHQ6IGF1dG87XHJcblx0cGFkZGluZzogMCAyMHB4IDAgMDtcclxuXHRib3JkZXI6IG5vbmU7XHJcblx0Zm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRfZmFtaWx5O1xyXG5cdGZvbnQtc2l6ZTogMjBweDtcclxuXHRsaW5lLWhlaWdodDogMjRweDtcclxuXHRjb2xvcjogJGJhc2VfbGlua19jb2xvcjtcclxuXHRmb250LXdlaWdodDogODAwO1xyXG5cdGJvcmRlcjogbm9uZTtcclxufVxyXG4uanEtc2VsZWN0Ym94X19zZWxlY3Q6aG92ZXIge1xyXG5cdFxyXG59XHJcbi5qcS1zZWxlY3Rib3hfX3NlbGVjdDphY3RpdmUge1xyXG5cdFxyXG59XHJcbi5qcS1zZWxlY3Rib3guZm9jdXNlZCAuanEtc2VsZWN0Ym94X19zZWxlY3Qge1xyXG5cdFxyXG59XHJcbi5qcS1zZWxlY3Rib3guZGlzYWJsZWQgLmpxLXNlbGVjdGJveF9fc2VsZWN0IHtcclxuXHRvcGFjaXR5OiAwLjU7XHJcbn1cclxuLmpxLXNlbGVjdGJveF9fc2VsZWN0LXRleHQge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdHdpZHRoOiBhdXRvIWltcG9ydGFudDtcclxuXHRvdmVyZmxvdzogdmlzaWJsZTtcclxufVxyXG4uanEtc2VsZWN0Ym94IC5wbGFjZWhvbGRlciB7XHJcblx0Y29sb3I6ICM4ODg7XHJcbn1cclxuLmpxLXNlbGVjdGJveF9fdHJpZ2dlciB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRyaWdodDogMDtcclxuXHR3aWR0aDogMjBweDtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcbn1cclxuLmpxLXNlbGVjdGJveF9fdHJpZ2dlci1hcnJvdyB7XHJcblx0bWFyZ2luLXRvcDogLTNweDtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0dG9wOiA1MCU7XHJcblx0cmlnaHQ6IDA7XHJcblx0d2lkdGg6IDEycHg7XHJcblx0aGVpZ2h0OiA2cHg7XHJcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9zZWwuc3ZnKSBuby1yZXBlYXQ7XHJcbn1cclxuLmpxLXNlbGVjdGJveDpob3ZlciAuanEtc2VsZWN0Ym94X190cmlnZ2VyLWFycm93IHtcclxuXHRcclxufVxyXG4uanEtc2VsZWN0Ym94LmRpc2FibGVkIC5qcS1zZWxlY3Rib3hfX3RyaWdnZXItYXJyb3cge1xyXG5cdFxyXG59XHJcbi5qcS1zZWxlY3Rib3hfX2Ryb3Bkb3duIHtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNCM0IzQjM7XHJcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xyXG5cdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xyXG5cdGJhY2tncm91bmQ6ICNGNUY1RjU7XHJcblx0Zm9udC1mYW1pbHk6ICRiYXNlX2ZvbnRfZmFtaWx5O1xyXG5cdGZvbnQtc2l6ZTogMTRweDtcclxuXHRsaW5lLWhlaWdodDogMjBweDtcclxuXHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcclxuXHRAaW5jbHVkZSBib3gtc2hhZG93KDAgMjBweCA0MHB4IHJnYmEoMCwwLDAsMC4xKSk7XHJcbn1cclxuLmpxLXNlbGVjdGJveF9fc2VhcmNoIHtcclxuXHRtYXJnaW46IDVweDtcclxufVxyXG4uanEtc2VsZWN0Ym94X19zZWFyY2ggaW5wdXQge1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDVweCAyN3B4IDZweCA4cHg7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI0NDQztcclxuXHRib3JkZXItcmFkaXVzOiAzcHg7XHJcblx0b3V0bGluZTogbm9uZTtcclxuXHRiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBTUNBWUFBQUJpREozN0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTzFKUkVGVWVOcVUwNzhMQVhFWXgvRnpZZk56azVUSmFGTktZakZZU1FaL2h2d0JzdmcxVUNZMnhUOWdNOGh1a1FHVGhXUmprY0Z3M3BkbnVqaGZUNzM2WG4yZlB2ZmMzZmQwN1YwT0ZEREZBbk0wRU5Zc1pSaUdMU2M5T3BxSVlJQTlmTWhoakNyVzJoOVZsTWxjSC9heW1NR3RPcUV1Z1gwOFB3UXVjVVpLZFRvek1JcWRUYzlXZXBRRDd3alk5QVJ4K3lkd2hmeVhmUytTMHFNY09FUUpHY3VlQjNWY2NGSU5kTWdhbDZOemttUGpSd0pYeERCQjcvMlJEZHRBcDZ3YitkcHBoSERBU0c1UVEwVjZ1MmFvU3FCWkQvbERyTldSSnluTEsycXBCbjRyYzZLMlhCOS9OYjhFR0FCdGYxdGh6WTZYMkFBQUFBQkpSVTVFcmtKZ2dnPT0nKSBuby1yZXBlYXQgMTAwJSA1MCU7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAjRjFGMUYxO1xyXG5cdGNvbG9yOiAjMzMzO1xyXG59XHJcbi5qcS1zZWxlY3Rib3hfX25vdC1mb3VuZCB7XHJcblx0bWFyZ2luOiA1cHg7XHJcblx0cGFkZGluZzogNXB4IDhweCA2cHg7XHJcblx0YmFja2dyb3VuZDogI0YwRjBGMDtcclxuXHRmb250LXNpemU6IDEzcHg7XHJcbn1cclxuLmpxLXNlbGVjdGJveCB1bCB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcbn1cclxuLmpxLXNlbGVjdGJveCBsaSB7XHJcblx0cGFkZGluZzogMTVweDtcclxuXHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcclxufVxyXG4uanEtc2VsZWN0Ym94IGxpLnNlbGVjdGVkIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZV9saW5rX2NvbG9yO1xyXG5cdGNvbG9yOiAjRkZGO1xyXG59XHJcbi5qcS1zZWxlY3Rib3ggbGk6aG92ZXIge1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICRiYXNlX2xpbmtfY29sb3I7XHJcblx0Y29sb3I6ICNGRkY7XHJcbn1cclxuLmpxLXNlbGVjdGJveCBsaS5kaXNhYmxlZCB7XHJcblx0Y29sb3I6ICNBQUE7XHJcbn1cclxuLmpxLXNlbGVjdGJveCBsaS5kaXNhYmxlZDpob3ZlciB7XHJcblx0XHJcbn1cclxuLmpxLXNlbGVjdGJveCBsaS5vcHRncm91cCB7XHJcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuLmpxLXNlbGVjdGJveCBsaS5vcHRncm91cDpob3ZlciB7XHJcblx0YmFja2dyb3VuZDogbm9uZTtcclxuXHRjb2xvcjogIzIzMUYyMDtcclxuXHRjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuLmpxLXNlbGVjdGJveCBsaS5vcHRpb24ge1xyXG5cdHBhZGRpbmctbGVmdDogMjVweDtcclxufVxyXG4uanEtc2VsZWN0LW11bHRpcGxlIHtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdHBhZGRpbmc6IDFweDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xyXG5cdGJvcmRlci1ib3R0b20tY29sb3I6ICNCM0IzQjM7XHJcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdGJhY2tncm91bmQ6ICNGRkY7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAjRjFGMUYxLCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7XHJcblx0Zm9udDogMTRweC8xOHB4IEFyaWFsLCBzYW5zLXNlcmlmO1xyXG5cdGNvbG9yOiAjMzMzO1xyXG5cdGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG4uanEtc2VsZWN0LW11bHRpcGxlLmZvY3VzZWQge1xyXG5cdGJvcmRlcjogMXB4IHNvbGlkICM1Nzk0QkY7XHJcbn1cclxuLmpxLXNlbGVjdC1tdWx0aXBsZS5kaXNhYmxlZCB7XHJcblx0Ym9yZGVyLWNvbG9yOiAjQ0NDO1xyXG5cdGJhY2tncm91bmQ6ICNGNUY1RjU7XHJcblx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRjb2xvcjogIzg4ODtcclxufVxyXG4uanEtc2VsZWN0LW11bHRpcGxlIHVsIHtcclxuXHRtYXJnaW46IDA7XHJcblx0cGFkZGluZzogMDtcclxufVxyXG4uanEtc2VsZWN0LW11bHRpcGxlIGxpIHtcclxuXHRwYWRkaW5nOiAzcHggOXB4IDRweDtcclxuXHRsaXN0LXN0eWxlOiBub25lO1xyXG59XHJcbi5qcS1zZWxlY3QtbXVsdGlwbGUgbGk6Zmlyc3QtY2hpbGQge1xyXG5cdGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwO1xyXG59XHJcbi5qcS1zZWxlY3QtbXVsdGlwbGUgbGk6bGFzdC1jaGlsZCB7XHJcblx0Ym9yZGVyLXJhZGl1czogMCAwIDNweCAzcHg7XHJcbn1cclxuLmpxLXNlbGVjdC1tdWx0aXBsZSBsaS5zZWxlY3RlZCB7XHJcblx0YmFja2dyb3VuZDogIzA4QztcclxuXHRjb2xvcjogI0ZGRjtcclxufVxyXG4uanEtc2VsZWN0LW11bHRpcGxlIGxpLmRpc2FibGVkIHtcclxuXHRjb2xvcjogI0FBQTtcclxufVxyXG4uanEtc2VsZWN0LW11bHRpcGxlIGxpLm9wdGdyb3VwIHtcclxuXHRmb250LXdlaWdodDogYm9sZDtcclxufVxyXG4uanEtc2VsZWN0LW11bHRpcGxlIGxpLm9wdGlvbiB7XHJcblx0cGFkZGluZy1sZWZ0OiAyNXB4O1xyXG59XHJcbi5qcS1zZWxlY3QtbXVsdGlwbGUuZGlzYWJsZWQgbGkuc2VsZWN0ZWQsXHJcbi5qcS1zZWxlY3QtbXVsdGlwbGUgbGkuc2VsZWN0ZWQuZGlzYWJsZWQge1xyXG5cdGJhY2tncm91bmQ6ICNDQ0M7XHJcblx0Y29sb3I6ICNGRkY7XHJcbn1cclxuaW5wdXRbdHlwZT0nZW1haWwnXS5zdHlsZXIsXHJcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10uc3R5bGVyLFxyXG5pbnB1dFt0eXBlPSdzZWFyY2gnXS5zdHlsZXIsXHJcbmlucHV0W3R5cGU9J3RlbCddLnN0eWxlcixcclxuaW5wdXRbdHlwZT0ndGV4dCddLnN0eWxlcixcclxuaW5wdXRbdHlwZT0ndXJsJ10uc3R5bGVyLFxyXG50ZXh0YXJlYS5zdHlsZXIge1xyXG5cdHBhZGRpbmc6IDhweCA5cHg7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI0NDQztcclxuXHRib3JkZXItYm90dG9tLWNvbG9yOiAjQjNCM0IzO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRib3gtc2hhZG93OiBpbnNldCAxcHggMXB4ICNGMUYxRjEsIDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTtcclxuXHRmb250OiAxNHB4IEFyaWFsLCBzYW5zLXNlcmlmO1xyXG5cdGNvbG9yOiAjMzMzO1xyXG59XHJcbmlucHV0W3R5cGU9J3NlYXJjaCddLnN0eWxlciB7XHJcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG5cdC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuXHRhcHBlYXJhbmNlOiBub25lO1xyXG59XHJcbnRleHRhcmVhLnN0eWxlciB7XHJcblx0b3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuaW5wdXRbdHlwZT0nZW1haWwnXS5zdHlsZXI6aG92ZXIsXHJcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10uc3R5bGVyOmhvdmVyLFxyXG5pbnB1dFt0eXBlPSdzZWFyY2gnXS5zdHlsZXI6aG92ZXIsXHJcbmlucHV0W3R5cGU9J3RlbCddLnN0eWxlcjpob3ZlcixcclxuaW5wdXRbdHlwZT0ndGV4dCddLnN0eWxlcjpob3ZlcixcclxuaW5wdXRbdHlwZT0ndXJsJ10uc3R5bGVyOmhvdmVyLFxyXG50ZXh0YXJlYS5zdHlsZXI6aG92ZXIge1xyXG5cdGJvcmRlci1jb2xvcjogI0IzQjNCMztcclxufVxyXG5pbnB1dFt0eXBlPSdlbWFpbCddLnN0eWxlcjpob3Zlcjpmb2N1cyxcclxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXS5zdHlsZXI6aG92ZXI6Zm9jdXMsXHJcbmlucHV0W3R5cGU9J3NlYXJjaCddLnN0eWxlcjpob3Zlcjpmb2N1cyxcclxuaW5wdXRbdHlwZT0ndGVsJ10uc3R5bGVyOmhvdmVyOmZvY3VzLFxyXG5pbnB1dFt0eXBlPSd0ZXh0J10uc3R5bGVyOmhvdmVyOmZvY3VzLFxyXG5pbnB1dFt0eXBlPSd1cmwnXS5zdHlsZXI6aG92ZXI6Zm9jdXMsXHJcbnRleHRhcmVhLnN0eWxlcjpob3Zlcjpmb2N1cyB7XHJcblx0Ym9yZGVyLWNvbG9yOiAjQ0NDO1xyXG5cdGJvcmRlci10b3AtY29sb3I6ICNCM0IzQjM7XHJcblx0b3V0bGluZTogbm9uZTtcclxuXHRib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7XHJcbn1cclxuYnV0dG9uLnN0eWxlcixcclxuaW5wdXRbdHlwZT0nYnV0dG9uJ10uc3R5bGVyLFxyXG5pbnB1dFt0eXBlPSdzdWJtaXQnXS5zdHlsZXIsXHJcbmlucHV0W3R5cGU9J3Jlc2V0J10uc3R5bGVyIHtcclxuXHRvdmVyZmxvdzogdmlzaWJsZTtcclxuXHRwYWRkaW5nOiA4cHggMTFweDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xyXG5cdGJvcmRlci1ib3R0b20tY29sb3I6ICNCM0IzQjM7XHJcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdG91dGxpbmU6IG5vbmU7XHJcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNGRkYsICNFNkU2RTYpO1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDFweCAtMXB4ICNGMUYxRjEsIGluc2V0IC0xcHggMCAjRjFGMUYxLCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSk7XHJcblx0Zm9udDogMTRweCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuXHRjb2xvcjogIzMzMztcclxuXHR0ZXh0LXNoYWRvdzogMXB4IDFweCAjRkZGO1xyXG5cdGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5idXR0b24uc3R5bGVyLnN0eWxlcjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXRbdHlwZT0nYnV0dG9uJ10uc3R5bGVyLnN0eWxlcjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXRbdHlwZT0nc3VibWl0J10uc3R5bGVyLnN0eWxlcjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXRbdHlwZT0ncmVzZXQnXS5zdHlsZXIuc3R5bGVyOjotbW96LWZvY3VzLWlubmVyIHtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdGJvcmRlcjogMDtcclxufVxyXG5idXR0b24uc3R5bGVyOm5vdChbZGlzYWJsZWRdKTpob3ZlcixcclxuaW5wdXRbdHlwZT0nYnV0dG9uJ10uc3R5bGVyOm5vdChbZGlzYWJsZWRdKTpob3ZlcixcclxuaW5wdXRbdHlwZT0nc3VibWl0J10uc3R5bGVyOm5vdChbZGlzYWJsZWRdKTpob3ZlcixcclxuaW5wdXRbdHlwZT0ncmVzZXQnXS5zdHlsZXI6bm90KFtkaXNhYmxlZF0pOmhvdmVyLFxyXG5pbnB1dFt0eXBlPSdyZXNldCddLnN0eWxlcjpob3ZlciB7XHJcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCNGNkY2RjYsICNFNkU2RTYpO1xyXG59XHJcbmJ1dHRvbi5zdHlsZXI6YWN0aXZlLFxyXG5pbnB1dFt0eXBlPSdidXR0b24nXS5zdHlsZXI6YWN0aXZlLFxyXG5pbnB1dFt0eXBlPSdzdWJtaXQnXS5zdHlsZXI6YWN0aXZlLFxyXG5pbnB1dFt0eXBlPSdyZXNldCddLnN0eWxlcjphY3RpdmUge1xyXG5cdGJhY2tncm91bmQ6ICNGNUY1RjU7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAzcHggI0RERDtcclxufVxyXG5idXR0b24uc3R5bGVyW2Rpc2FibGVkXSxcclxuaW5wdXRbdHlwZT0nYnV0dG9uJ10uc3R5bGVyW2Rpc2FibGVkXSxcclxuaW5wdXRbdHlwZT0nc3VibWl0J10uc3R5bGVyW2Rpc2FibGVkXSB7XHJcblx0Ym9yZGVyLWNvbG9yOiAjQ0NDO1xyXG5cdGJhY2tncm91bmQ6ICNGNUY1RjU7XHJcblx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRjb2xvcjogIzg4ODtcclxufSIsIi8qSGVhZGVyKi9cblxuLmhlYWRlciB7XG5cdHBhZGRpbmc6IDM1cHggMCAwIDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxNjBweDtcblx0ei1pbmRleDogOTA7XG5cdCYub3BlbmVkIHtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0Lm1lbnUtYnRuIHtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR9XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LmxvZ28ge1xuXHRcdG1hcmdpbi10b3A6IC0xNXB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiAzMzlweDtcblx0XHRmb250LXNpemU6IDA7XG5cdFx0YSB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdC5jb250YWN0cyB7XG5cdFx0bWFyZ2luLXJpZ2h0OiA1MHB4O1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDE5cHg7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0LnRlbCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMzBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzN3B4O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblx0fVxuXHQuaGVhZC1idG4ge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHR3aWR0aDogMjgwcHg7XG5cdFx0aGVpZ2h0OiA2MHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA1NnB4O1xuXHRcdGZvbnQtZmFtaWx5OiAkYmFzZV9mb250Ml9mYW1pbHk7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Ym9yZGVyOiAzcHggc29saWQgI0Y5QTU0MDtcblx0XHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDYwcHgpO1xuXHR9XG5cdC5tZW51LWJ0biB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdHdpZHRoOiA3MHB4O1xuXHRcdGhlaWdodDogNTVweDtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWVudS5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAzNXB4IGF1dG87XG5cdFx0fVxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21lbnUyLnBuZykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDI1cHggYXV0bztcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXHR9XG59IiwiLypGb290ZXIqL1xuXG4uZm9vdGVyIHtcblx0cGFkZGluZzogOTBweCAwIDAgMDtcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9mb290ZXIuanBnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0LmYtbGVmdCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDMzMHB4O1xuXHR9XG5cdC5mLXJpZ2h0IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0d2lkdGg6IDc5MHB4O1xuXHR9XG5cdC5mLWJvdHRvbSB7XG5cdFx0bWFyZ2luLXRvcDogNzBweDtcblx0XHRwYWRkaW5nLXRvcDogMjVweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMjVweDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgIzE0MTQxNDtcblx0fVxuXHQubS10aXRsZSB7XG5cdFx0bWFyZ2luOiAwIDAgMzVweCAwO1xuXHRcdGNvbG9yOiAkYmFzZV93aGl0ZV9jb2xvcjtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cdC5mLWxvZ28ge1xuXHRcdG1hcmdpbi1yaWdodDogMTI1cHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDMzOXB4O1xuXHRcdGZvbnQtc2l6ZTogMDtcblx0XHRpbWcge1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXHQuZi1wb2wge1xuXHRcdG1hcmdpbi10b3A6IDU1cHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG5cdC5mLWNyZWF0ZSB7XG5cdFx0bWFyZ2luLXRvcDogMzBweDtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0d2lkdGg6IDE2NXB4O1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRsaW5lLWhlaWdodDogMjBweDtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRhIHtcblx0XHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZi1jb250YWN0cyB7XG5cdC50ZWwge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMzBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzOHB4O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblx0fVxuXHQudGltZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0fVxuXHQuaW5zLWxuayB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbi1ib3R0b206IDUwcHg7XG5cdFx0cGFkZGluZzogMCAwIDAgNDVweDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRjb2xvcjogI0Y5MDU2Mztcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0bWFyZ2luLXRvcDogLTE1cHg7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHdpZHRoOiAzMHB4O1xuXHRcdFx0aGVpZ2h0OiAzMHB4O1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pbnMucG5nKSBuby1yZXBlYXQ7XG5cdFx0fVxuXHRcdHNwYW4ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMjQ5LDUsOTksMC4zKTtcblx0XHR9XG5cdH1cblx0LmJ0biB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHR3aWR0aDogMzAwcHg7XG5cdFx0Ji5wcmljZSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDMwcHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiA4MHB4O1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IC0xMnB4O1xuXHRcdFx0XHRyaWdodDogLTEwcHg7XG5cdFx0XHRcdHdpZHRoOiA5N3B4O1xuXHRcdFx0XHRoZWlnaHQ6IDkwcHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvcHJpY2VfaWMucG5nKSBuby1yZXBlYXQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5tYXAtYm94IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg4cHgpO1xufVxuXG4ubWFwLWJveCwgLm1hcC1kZXNjLCAubWFwLWltYWdlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRoZWlnaHQ6IDQ3MHB4O1xufVxuXG4ubWFwLWRlc2Mge1xuXHRwYWRkaW5nOiA0NXB4IDMwcHg7XG5cdGZsb2F0OiBsZWZ0O1xuXHR3aWR0aDogNDAlO1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHR3aWR0aDogOTRweDtcblx0XHRoZWlnaHQ6IDE0M3B4O1xuXHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvZmxvd2VyLnBuZykgbm8tcmVwZWF0O1xuXHR9XG5cdC5tYXAtc2VsIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdC5sYWJlbCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMjBweDtcblx0XHRcdGNvbG9yOiAkYmFzZV90ZXh0X2NvbG9yO1xuXHRcdH1cblx0fVxuXHQubWFwLWluZm8ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRoZWlnaHQ6IDI4MHB4O1xuXHRcdHVsIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0bGkge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyNXB4O1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAyNnB4O1xuXHRcdFx0XHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdG1hcmdpbjogMCAwIDhweCAwO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRcdFx0XHRcdGNvbG9yOiAjQ0ZDRkNGO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLm1hcC1pbWFnZSB7XG5cdGZsb2F0OiByaWdodDtcblx0d2lkdGg6IDYwJTtcblx0Lm1hcCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dG9wOiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxufSIsIi8qIEhvbWUgKi9cblxuLnNlY3Rpb24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIFNlY3Rpb24gU3RhcnRlZCAqL1xuXG4uc2VjdGlvbi5tLXN0YXJ0ZWQge1xuXHRwYWRkaW5nLXRvcDogMTcwcHg7XG5cdHBhZGRpbmctYm90dG9tOiA3MHB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1pbi1oZWlnaHQ6IDE0NjBweDtcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9zdGFydGVkX2JnLmpwZykgbm8tcmVwZWF0IHRvcCBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5zdGFydGVkLWludHJvIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbG9hdDogbGVmdDtcblx0d2lkdGg6IDYxMHB4O1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAtMzI1cHg7XG5cdFx0dG9wOiAxNXB4O1xuXHRcdHdpZHRoOiA0NTJweDtcblx0XHRoZWlnaHQ6IDQ2OHB4O1xuXHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWFnLnBuZykgbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0fVxuXHQudGl0bGUge1xuXHRcdG1hcmdpbjogMCAwIDIwcHggMDtcblx0XHRmb250LXNpemU6IDYwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDcwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRjb2xvcjogI2ZmZjtcblx0fVxuXHQubGlzdCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTE1cHg7XG5cdFx0dWwge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0XHRsaSB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0cGFkZGluZzogMCAwIDAgMzVweDtcblx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogNDVweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAtOXB4O1xuXHRcdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHRcdHdpZHRoOiAxOHB4O1xuXHRcdFx0XHRcdGhlaWdodDogMThweDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0XHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMThweCk7XG5cdFx0XHRcdFx0QGluY2x1ZGUgYm94LXNoYWRvdygwIDhweCAyM3B4IHJnYmEoMjU1LDI1NSwyNTUsMC40MykpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5iZW4taXRlbXMge1xuXHRcdG1hcmdpbjogMCAtMTJweDtcblx0XHRmb250LXNpemU6IDA7XG5cdFx0LmJlbi1jb2wge1xuXHRcdFx0cGFkZGluZzogMCAxMnB4IDI0cHggMTJweDtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHR3aWR0aDogMzMuMzMzJTtcblx0XHR9XG5cdH1cblx0LmJlbi1pdGVtIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogODBweCAwIDAgMDtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI4cHg7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHQuaWNvbiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0d2lkdGg6IDYwcHg7XG5cdFx0XHRoZWlnaHQ6IDYwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHR9XG5cdH1cbn1cblxuLnN0YXJ0ZWQtZm9ybSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luLXRvcDogLTEwcHg7XG5cdHBhZGRpbmc6IDQ1cHggNDBweDtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHR3aWR0aDogMzg0cHg7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdHotaW5kZXg6IDI7XG5cdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMTBweCk7XG5cdC50aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRmb250LXNpemU6IDI2cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDM2cHg7XG5cdFx0Y29sb3I6ICRiYXNlX3RleHRfY29sb3I7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0fVxufVxuXG4uc3RhcnRlZC1hYm91dCB7XG5cdG1hcmdpbi10b3A6IDEzMHB4O1xuXHQuZGVzYyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogLTE4cHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0d2lkdGg6IDQ4NnB4O1xuXHRcdC50aXRsZSB7XG5cdFx0XHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cdFx0XHRmb250LXNpemU6IDUwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHR9XG5cdFx0LnRleHQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzVweDtcblx0XHRcdHAge1xuXHRcdFx0XHRtYXJnaW46IDEwcHggMDtcblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMzBweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5pbWFnZSB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHdpZHRoOiA2OTBweDtcblx0fVxuXHQudmlkZW8ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRmb250LXNpemU6IDA7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBlYXNlIDBzKTtcblx0XHRAaW5jbHVkZSBib3gtc2hhZG93KDAgMjBweCA1MHB4IHJnYmEoMCwwLDAsMC41KSk7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRAaW5jbHVkZSBib3gtc2hhZG93KDAgMCAwIHJnYmEoMCwwLDAsMC41KSk7XG5cdFx0fVxuXHRcdGEge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRtYXJnaW46IC01MHB4IDAgMCAtNTBweDtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0d2lkdGg6IDEwMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3BsYXkuc3ZnKSBuby1yZXBlYXQ7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHRcdFx0QGluY2x1ZGUgYm94LXNoYWRvdygwIDEwcHggMjVweCByZ2JhKDAsMCwwLDAuMjUpKTtcblx0XHRcdFx0ei1pbmRleDogNDtcblx0XHRcdH1cblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdGJhY2tncm91bmQ6IC1tb3otcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgcmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgzMywzMywzLDEpIDEwMCUpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsIHJnYmEoMCwwLDAsMCkgMCUscmdiYSgzMywzMywzMywxKSAxMDAlKTtcblx0XHRcdFx0YmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCByZ2JhKDAsMCwwLDApIDAlLHJnYmEoMzMsMzMsMzMsMSkgMTAwJSk7XG5cdFx0XHRcdGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KCBzdGFydENvbG9yc3RyPScjMDAwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzIxMjEyMScsR3JhZGllbnRUeXBlPTEgKTtcblx0XHRcdFx0ei1pbmRleDogMztcblx0XHRcdH1cblx0XHR9XG5cdFx0aW1nIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblx0fVxufVxuXG4ubGVwLWJnIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHQmLml0ZW0tMSB7XG5cdFx0bGVmdDogLTU4MHB4O1xuXHRcdGJvdHRvbTogNTBweDtcblx0XHR3aWR0aDogNDc0cHg7XG5cdFx0aGVpZ2h0OiA0NjdweDtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2xlcDEucG5nKSBuby1yZXBlYXQ7XG5cdFx0ei1pbmRleDogMjtcblx0fVxuXHQmLml0ZW0tMiB7XG5cdFx0bGVmdDogLTU4MHB4O1xuXHRcdGJvdHRvbTogMTUwcHg7XG5cdFx0d2lkdGg6IDQ5NnB4O1xuXHRcdGhlaWdodDogNTEycHg7XG5cdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9sZXAyLnBuZykgbm8tcmVwZWF0O1xuXHR9XG59XG5cbi8qIFNlY3Rpb24gTmV3cyAqL1xuXG4uc2VjdGlvbi5tLW5ld3Mge1xuXHRwYWRkaW5nOiA5MHB4IDA7XG5cdC5idHMge1xuXHRcdG1hcmdpbi10b3A6IDI1cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG59XG5cbi5uZXdzLWl0ZW1zIHtcblx0bWFyZ2luOiAwIC0xMnB4O1xuXHRmb250LXNpemU6IDA7XG5cdC5uZXdzLWNvbCB7XG5cdFx0cGFkZGluZzogMCAxMnB4IDI0cHggMTJweDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHR3aWR0aDogMzMuMzMzJTtcblx0fVxufVxuXG4ubmV3cy1pdGVtIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRtaW4taGVpZ2h0OiA0NzBweDtcblx0Ym9yZGVyOiAxcHggc29saWQgI0U1RTVFNTtcblx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBlYXNlIDBzKTtcblx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg0cHgpO1xuXHQuaW1hZ2Uge1xuXHRcdG1hcmdpbi10b3A6IC0xcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjVweDtcblx0XHRpbWcge1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg0cHgpO1xuXHRcdH1cblx0fVxuXHQuZGVzYyB7XG5cdFx0cGFkZGluZzogMCAzMHB4O1xuXHRcdC5uYW1lIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzMHB4O1xuXHRcdFx0Y29sb3I6ICRiYXNlX3RleHRfY29sb3I7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblx0XHQudGV4dCB7XG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMjZweDtcblx0XHRcdGNvbG9yOiAkYmFzZV90ZXh0X2NvbG9yO1xuXHRcdH1cblx0fVxuXHQmOmhvdmVyIHtcblx0XHRAaW5jbHVkZSBib3gtc2hhZG93KDAgMjVweCA1MHB4IHJnYmEoMCwwLDAsMC4yNSkpO1xuXHR9XG59XG5cbi5zYWxlLWl0ZW0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdG1pbi1oZWlnaHQ6IDQ3MHB4O1xuXHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjNzIGVhc2UgMHMpO1xuXHRhIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblx0LmltYWdlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDQ3MHB4O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNHB4KTtcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHRvcDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLDApIDAlLCByZ2JhKDMzLDMzLDMzLDEpIDEwMCUpO1xuXHRcdFx0YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsMCwwLDApIDAlLHJnYmEoMzMsMzMsMzMsMSkgMTAwJSk7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsMCwwLDApIDAlLHJnYmEoMzMsMzMsMzMsMSkgMTAwJSk7XG5cdFx0XHRmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyMyMTIxMjEnLEdyYWRpZW50VHlwZT0wICk7XG5cdFx0fVxuXHR9XG5cdC5kZXNjIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0cGFkZGluZzogMCAzMHB4IDQ1cHggMzBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHQubmFtZSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmb250LXNpemU6IDI1cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMzBweDtcblx0XHRcdGNvbG9yOiAkYmFzZV93aGl0ZV9jb2xvcjtcblx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdC50ZXh0IHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyNnB4O1xuXHRcdFx0Y29sb3I6ICRiYXNlX3doaXRlX2NvbG9yO1xuXHRcdH1cblx0XHQubW9yZS1idG4ge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmY7XG5cdFx0fVxuXHR9XG5cdCY6aG92ZXIge1xuXHRcdEBpbmNsdWRlIGJveC1zaGFkb3coMCAyNXB4IDUwcHggcmdiYSgwLDAsMCwwLjI1KSk7XG5cdH1cbn1cblxuLyogU2VjdGlvbiBQcm9mZXNzaW9uYWwgKi9cblxuLnNlY3Rpb24ubS1wcm9mIHtcblx0cGFkZGluZzogNjVweCAwO1xuXHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3Byb2ZfYmcuanBnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0LmZ3IHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IC00NjVweDtcblx0XHRcdHRvcDogLTY1cHg7XG5cdFx0XHRib3R0b206IC02NXB4O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWFuLnBuZykgbm8tcmVwZWF0IGxlZnQgdG9wO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBhdXRvIDEwMCU7XG5cdFx0fVxuXHR9XG5cdC50aXRsZXMge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiA1MDBweDtcblx0fVxuXHQubS10aXRsZSB7XG5cdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuXHRcdGNvbG9yOiAkYmFzZV93aGl0ZV9jb2xvcjtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cdC5tLXN1YnRpdGxlIHtcblx0XHRjb2xvcjogJGJhc2Vfd2hpdGVfY29sb3I7XG5cdH1cblx0Lmxpc3Qge1xuXHRcdHBhZGRpbmc6IDYwcHggNDBweCA0MHB4IDQwcHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHdpZHRoOiA2NDVweDtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3Byb2ZfbGlzdC5wbmcpIG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNHB4KTtcblx0XHR1bCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdGZvbnQtc2l6ZTogMDtcblx0XHRcdGxpIHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0XHRwYWRkaW5nOiAwIDAgMCAxNXB4O1xuXHRcdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRcdFx0XHRjb2xvcjogJGJhc2VfdGV4dF9jb2xvcjtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IC0zcHg7XG5cdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdFx0d2lkdGg6IDZweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDZweDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2xpc3Quc3ZnKSBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5jb2wge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiA1MCU7XG5cdH1cbn1cblxuLyogU2VjdGlvbiBQYXJ0bmVycyAqL1xuXG4uc2VjdGlvbi5tLXBhcnRuZXJzIHtcblx0cGFkZGluZzogNjVweCAwIDk1cHggMDtcblx0Lm0tdGl0bGUge1xuXHRcdG1hcmdpbjogMCAwIDEwcHggMDtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG59XG5cbi5wYXJ0bmVycy1jYXJvdXNlbCB7XG5cdG1hcmdpbi10b3A6IDUwcHg7XG5cdHBhZGRpbmc6IDAgNjBweDtcblx0Lm93bC1jYXJvdXNlbCAub3dsLXN0YWdlLW91dGVyIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0fVxuXHQuaXRlbSB7XG5cdFx0YSB7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR3aWR0aDogMTYwcHg7XG5cdFx0XHRoZWlnaHQ6IDgwcHg7XG5cdFx0XHRmb250LXNpemU6IDA7XG5cdFx0XHRpbWcge1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHRcdGZpbHRlcjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsJmx0O3N2ZyB4bWxucz1cXCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcJyZndDsmbHQ7ZmlsdGVyIGlkPVxcJ2dyYXlzY2FsZVxcJyZndDsmbHQ7ZmVDb2xvck1hdHJpeCB0eXBlPVxcJ21hdHJpeFxcJyB2YWx1ZXM9XFwnMC4zMzMzIDAuMzMzMyAwLjMzMzMgMCAwIDAuMzMzMyAwLjMzMzMgMC4zMzMzIDAgMCAwLjMzMzMgMC4zMzMzIDAuMzMzMyAwIDAgMCAwIDAgMSAwXFwnLyZndDsmbHQ7L2ZpbHRlciZndDsmbHQ7L3N2ZyZndDsjZ3JheXNjYWxlXCIpO1xuXHRcdFx0XHRmaWx0ZXI6IGdyYXk7XG5cdFx0XHRcdC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG5cdFx0XHRcdG9wYWNpdHk6IDAuMztcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBlYXNlIDBzKTtcblx0XHRcdH1cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdGZpbHRlcjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsJmx0O3N2ZyB4bWxucz1cXCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcJyZndDsmbHQ7ZmlsdGVyIGlkPVxcJ2dyYXlzY2FsZVxcJyZndDsmbHQ7ZmVDb2xvck1hdHJpeCB0eXBlPVxcJ21hdHJpeFxcJyB2YWx1ZXM9XFwnMSAwIDAgMCAwLCAwIDEgMCAwIDAsIDAgMCAxIDAgMCwgMCAwIDAgMSAwXFwnLyZndDsmbHQ7L2ZpbHRlciZndDsmbHQ7L3N2ZyZndDsjZ3JheXNjYWxlXCIpO1xuXHRcdFx0XHRcdC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xuXHRcdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Lm93bC1wcmV2LCAub3dsLW5leHQge1xuXHRcdG1hcmdpbi10b3A6IC0zMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRyaWdodDogLTYwcHg7XG5cdFx0d2lkdGg6IDYwcHg7XG5cdFx0aGVpZ2h0OiA2MHB4O1xuXHRcdGZvbnQtc2l6ZTogMDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg2MHB4KTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjNzIGVhc2UgMHMpO1xuXHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHRvcDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9uYXYuc3ZnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjNzIGVhc2UgMHMpO1xuXHRcdH1cblx0XHQmOmFmdGVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbmF2Mi5zdmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHR9XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRAaW5jbHVkZSBib3gtc2hhZG93KDAgMjBweCA1MHB4IHJnYmEoMTA1LDY3LDQsMC41KSk7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR9XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Lm93bC1wcmV2IHtcblx0XHRyaWdodDogYXV0bztcblx0XHRsZWZ0OiAtNjBweDtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKC0xKSk7XG5cdH1cbn1cblxuLyogU2VjdGlvbiBHZW8gKi9cblxuLnNlY3Rpb24ubS1nZW8ge1xuXHRwYWRkaW5nOiAxMDBweCAwIDAgMDtcblx0aGVpZ2h0OiA5MDBweDtcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9nZW9fYmcuanBnKSBuby1yZXBlYXQgdG9wIGNlbnRlcjtcblx0LnRpdGxlcyB7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0bWF4LXdpZHRoOiA1OTBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblx0Lm0tdGl0bGUge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cblx0Lm0tc3VidGl0bGUge1xuXHRcdG1hcmdpbjogMDtcblx0XHRjb2xvcjogI2ZmZjtcblx0fVxufVxuXG4uZ2VvLW1hcC1mdyB7XG5cdG1hcmdpbi10b3A6IC0xNzVweDtcblx0cGFkZGluZy10b3A6IDE3NXB4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBhdXRvO1xufVxuXG4uZ2VvLW1hcCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEyMDBweDtcblx0aGVpZ2h0OiA2NDNweDtcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9nX21hcC5wbmcpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG5cbi5nZW8taXRlbXMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5nZW8taXRlbSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblx0d2lkdGg6IDUycHg7XG5cdGhlaWdodDogNTJweDtcblx0Ji5pdGVtLTEge1xuXHRcdHRvcDogMTQ0cHg7XG5cdFx0cmlnaHQ6IDMwMHB4O1xuXHR9XG5cdCYuaXRlbS0yIHtcblx0XHR0b3A6IDMwMnB4O1xuXHRcdHJpZ2h0OiAyODBweDtcblx0fVxuXHQmLml0ZW0tMyB7XG5cdFx0dG9wOiAzNzJweDtcblx0XHRyaWdodDogMjMwcHg7XG5cdH1cblx0Ji5pdGVtLTQge1xuXHRcdHRvcDogMTk3cHg7XG5cdFx0cmlnaHQ6IDQ0MHB4O1xuXHR9XG5cdCYuaXRlbS01IHtcblx0XHR0b3A6IDE0MnB4O1xuXHRcdHJpZ2h0OiA1MTBweDtcblx0fVxuXHQmLml0ZW0tNiB7XG5cdFx0dG9wOiAyMDlweDtcblx0XHRyaWdodDogNDk3cHg7XG5cdH1cblx0Ji5pdGVtLTcge1xuXHRcdHRvcDogMjU4cHg7XG5cdFx0cmlnaHQ6IDQ4OHB4O1xuXHR9XG5cdCYuaXRlbS04IHtcblx0XHR0b3A6IDM1NHB4O1xuXHRcdHJpZ2h0OiA0NzVweDtcblx0fVxuXHQmLml0ZW0tOSB7XG5cdFx0dG9wOiA0MDFweDtcblx0XHRyaWdodDogNDk3cHg7XG5cdH1cblx0Ji5pdGVtLTEwIHtcblx0XHR0b3A6IDE1NnB4O1xuXHRcdHJpZ2h0OiA1NjFweDtcblx0fVxuXHQmLml0ZW0tMTEge1xuXHRcdHRvcDogMTc3cHg7XG5cdFx0cmlnaHQ6IDYwOHB4O1xuXHR9XG5cdCYuaXRlbS0xMiB7XG5cdFx0dG9wOiAyMTJweDtcblx0XHRyaWdodDogNTYycHg7XG5cdH1cblx0Ji5pdGVtLTEzIHtcblx0XHR0b3A6IDM1NXB4O1xuXHRcdHJpZ2h0OiA4MjlweDtcblx0fVxuXHQmLml0ZW0tMTQge1xuXHRcdHRvcDogMzg0cHg7XG5cdFx0cmlnaHQ6IDg3NHB4O1xuXHR9XG5cdCYuaXRlbS0xNSB7XG5cdFx0dG9wOiAzMzVweDtcblx0XHRyaWdodDogODk1cHg7XG5cdH1cblx0Lmdlby1idG4ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiA1MnB4O1xuXHRcdGhlaWdodDogNTJweDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2dlb19pYy5zdmcpIG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcblx0XHR9XG5cdFx0JjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2dlb19pYzIuc3ZnKSBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdH1cblx0XHQmLmFjdGl2ZSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR9XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmdlby1wb3B1cCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdG1hcmdpbi1sZWZ0OiAtMTU4cHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogNTAlO1xuXHRib3R0b206IDcwcHg7XG5cdHBhZGRpbmc6IDIwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMzE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItdG9wOiA1cHggc29saWQgI0Y1QTYyMztcbiAgICB6LWluZGV4OiA1O1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNnB4KTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAgMjBweCA0MHB4IHJnYmEoNTMsMCw2MSwwLjQpKTtcbiAgICAmOmJlZm9yZSB7XG4gICAgXHRtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgXHRjb250ZW50OiAnJztcbiAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdGxlZnQ6IDUwJTtcbiAgICBcdGJvdHRvbTogLTMwcHg7XG4gICAgXHRib3JkZXI6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgXHRib3JkZXItdG9wOiAxNXB4IHNvbGlkICNmZmY7XG4gICAgfVxuICAgIC5uYW1lIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRsaW5lLWhlaWdodDogMjJweDtcblx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdGNvbG9yOiAjMDAwO1xuICAgIH1cbiAgICAudGV4dCB7XG4gICAgXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXHRvdmVyZmxvdzogYXV0bztcbiAgICBcdGhlaWdodDogMjAwcHg7XG4gICAgXHRmb250LXNpemU6IDE0cHg7XG4gICAgXHRsaW5lLWhlaWdodDogMjBweDtcbiAgICBcdGNvbG9yOiAkYmFzZV90ZXh0X2NvbG9yO1xuICAgIH1cbn1cblxuLyogU2VjdGlvbiBQcmljaW5nICovXG5cbi5zZWN0aW9uLm0tcHJpY2luZyB7XG5cdG1hcmdpbi10b3A6IC0xMTBweDtcblx0aGVpZ2h0OiA2MDhweDtcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9wcmljZV9iZy5wbmcpIG5vLXJlcGVhdCB0b3AgY2VudGVyO1xuXHQudGl0bGVzIHtcblx0XHRwYWRkaW5nOiAyMDBweCAwIDAgMDtcblx0XHR3aWR0aDogNTkwcHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cdC50aXRsZSB7XG5cdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuXHRcdGZvbnQtc2l6ZTogMzVweDtcblx0XHRsaW5lLWhlaWdodDogNDNweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGNvbG9yOiAkYmFzZV90ZXh0X2NvbG9yO1xuXHR9XG5cdC5zdWJ0aXRsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDVweDtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDMwcHg7XG5cdFx0Y29sb3I6ICRiYXNlX3RleHRfY29sb3I7XG5cdH1cbn0iLCJAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcclxuXHQuZncge3dpZHRoOiA3MjBweDt9XHJcblxyXG5cdC8qIGhlYWRlciAqL1xyXG5cdC5oZWFkZXIge3BhZGRpbmc6IDIwcHggMDsgaGVpZ2h0OiAxMDBweDt9XHJcblx0LmhlYWRlciAubG9nbyB7bWFyZ2luLXRvcDogMDsgd2lkdGg6IDIwNHB4O31cclxuXHQuaGVhZGVyIC5oZWFkLWJ0biB7d2lkdGg6IDIxMHB4O31cclxuXHQuaGVhZGVyIC5jb250YWN0cyB7bWFyZ2luLXJpZ2h0OiA0MHB4OyBmb250LXNpemU6IDE0cHg7fVxyXG5cdC5oZWFkZXIgLmNvbnRhY3RzIC50ZWwge21hcmdpbi1ib3R0b206IDA7IGZvbnQtc2l6ZTogMjJweDt9XHJcblxyXG5cdC8qc3RhcnRlZCovXHJcblx0LnNlY3Rpb24ubS1zdGFydGVkIHtwYWRkaW5nLXRvcDogMTUwcHg7fVxyXG5cdC5zdGFydGVkLWludHJvIHt3aWR0aDogMzEwcHg7fVxyXG5cdC5zdGFydGVkLWludHJvOmJlZm9yZSB7ZGlzcGxheTogbm9uZTt9XHJcblx0LnN0YXJ0ZWQtaW50cm8gLnRpdGxlIHtmb250LXNpemU6IDUwcHg7IGxpbmUtaGVpZ2h0OiA2MHB4O31cclxuXHQuc3RhcnRlZC1pbnRybyAubGlzdCB7bWFyZ2luLWJvdHRvbTogNjBweDt9XHJcblx0LnN0YXJ0ZWQtaW50cm8gLmxpc3QgdWwgbGkge2ZvbnQtc2l6ZTogMThweDt9XHJcblx0LnN0YXJ0ZWQtaW50cm8gLmJlbi1pdGVtcyAuYmVuLWNvbCB7d2lkdGg6IDEwMCU7fVxyXG5cdC5zdGFydGVkLWludHJvIC5iZW4taXRlbSB7cGFkZGluZzogMCAwIDAgNjBweDsgbWluLWhlaWdodDogNjBweDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMzBweDt9XHJcblx0LnN0YXJ0ZWQtaW50cm8gLmJlbi1pdGVtIC5pY29uIHt3aWR0aDogNDBweDsgaGVpZ2h0OiA1MHB4O31cclxuXHQuc3RhcnRlZC1mb3JtIHttYXJnaW4tdG9wOiAwOyBwYWRkaW5nOiA0NXB4IDI1cHg7IHdpZHRoOiAzNTBweDt9XHJcblx0LnN0YXJ0ZWQtYWJvdXQge21hcmdpbi10b3A6IDcwcHg7fVxyXG5cdC5zdGFydGVkLWFib3V0IC5kZXNjIHttYXJnaW4tYm90dG9tOiA3MHB4OyB0b3A6IDA7IGZsb2F0OiBub25lOyB3aWR0aDogYXV0bzt9XHJcblx0LnN0YXJ0ZWQtYWJvdXQgLmltYWdlIHtmbG9hdDogbm9uZTsgd2lkdGg6IDEwMCU7fVxyXG5cdC5sZXAtYmcge2Rpc3BsYXk6IG5vbmU7fVxyXG5cclxuXHQvKm5ld3MqL1xyXG5cdC5zZWN0aW9uLm0tbmV3cyB7cGFkZGluZzogNzBweCAwO31cclxuXHQubmV3cy1pdGVtcyAubmV3cy1jb2wge3dpZHRoOiA1MCU7fVxyXG5cclxuXHQvKnByb2Zlc3Npb25hbCovXHJcblx0LnNlY3Rpb24ubS1wcm9mIC5mdzpiZWZvcmUge2Rpc3BsYXk6IG5vbmU7fVxyXG5cdC5zZWN0aW9uLm0tcHJvZiAudGl0bGVzIHttYXJnaW4tYm90dG9tOiA1MHB4OyBmbG9hdDogbm9uZTsgd2lkdGg6IGF1dG87IHRleHQtYWxpZ246IGNlbnRlcjt9XHJcblx0LnNlY3Rpb24ubS1wcm9mIC50aXRsZXMgLm0tdGl0bGUge3RleHQtYWxpZ246IGNlbnRlcjt9XHJcblx0LnNlY3Rpb24ubS1wcm9mIC5saXN0IHtmbG9hdDogbm9uZTsgd2lkdGg6IGF1dG87fVxyXG5cclxuXHQvKnBhcnRuZXJzKi9cclxuXHQuc2VjdGlvbi5tLXBhcnRuZXJzIC5tLXRpdGxlIHt0ZXh0LWFsaWduOiBjZW50ZXI7fVxyXG5cdC5zZWN0aW9uLm0tcGFydG5lcnMgLm0tc3VidGl0bGUge3RleHQtYWxpZ246IGNlbnRlcjt9XHJcblxyXG5cdC8qZ2VvKi9cclxuXHQuc2VjdGlvbi5tLWdlbyB7cGFkZGluZzogNzBweCAwIDAgMDt9XHJcblx0LnNlY3Rpb24ubS1nZW8gLmZ3IHt3aWR0aDogYXV0bzt9XHJcblx0LnNlY3Rpb24ubS1nZW8gLnRpdGxlcyB7bWF4LXdpZHRoOiA3MjBweDt9XHJcblxyXG5cdC8qcHJpY2luZyovXHJcblx0LnNlY3Rpb24ubS1wcmljaW5nIHtwYWRkaW5nOiA3MHB4IDA7IG1hcmdpbi10b3A6IDA7IGhlaWdodDogYXV0bzsgYmFja2dyb3VuZDogI2ZmZjt9XHJcblx0LnNlY3Rpb24ubS1wcmljaW5nIC50aXRsZXMge3BhZGRpbmc6IDA7IHdpZHRoOiBhdXRvOyBmbG9hdDogbm9uZTsgdGV4dC1hbGlnbjogY2VudGVyO31cclxuXHJcblx0Lypmb290ZXIqL1xyXG5cdC5mb290ZXIge3BhZGRpbmc6IDcwcHggMCAwIDA7fVxyXG5cdC5mb290ZXIgLmYtbGVmdCwgLmZvb3RlciAuZi1yaWdodCB7ZmxvYXQ6IG5vbmU7IHdpZHRoOiBhdXRvO31cclxuXHQuZi1jb250YWN0cyAuYy1ncm91cCwgLmYtY29udGFjdHMgLmJ0bi1ncm91cCB7ZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MCU7fVxyXG5cdC5mb290ZXIgLmYtcG9sIHtkaXNwbGF5OiBub25lO31cclxufVxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcclxuXHQuZncge3dpZHRoOiAzMDBweDt9XHJcblx0YS5idG4sIC5idG4ge3BhZGRpbmc6IDAgMjVweDsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTRweDt9XHJcblx0LmMtZm9ybSAuZmllbGQgaW5wdXRbdHlwZT1cInRleHRcIl0sIC5jLWZvcm0gLmZpZWxkIGlucHV0W3R5cGU9XCJ0ZWxcIl0sIC5jLWZvcm0gLmZpZWxkIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSwgLmMtZm9ybSAuZmllbGQgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCAuYy1mb3JtIC5maWVsZCB0ZXh0YXJlYSB7Zm9udC1zaXplOiAxNXB4O31cclxuXHQubS10aXRsZSB7bWFyZ2luOiAwIDAgMzBweCAwOyBmb250LXNpemU6IDI5cHg7IGxpbmUtaGVpZ2h0OiAzOXB4O31cclxuXHQubS1zdWJ0aXRsZSB7Zm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMjZweDt9XHJcblxyXG5cdC8qIGhlYWRlciAqL1xyXG5cdC5oZWFkZXIge3BhZGRpbmc6IDE1cHggMDsgaGVpZ2h0OiA4MHB4O31cclxuXHQuaGVhZGVyIC5sb2dvIHttYXJnaW4tdG9wOiAwOyB3aWR0aDogMTcwcHg7fVxyXG5cdC5oZWFkZXIgLmhlYWQtYnRuIHt3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyBsaW5lLWhlaWdodDogNDZweDsgZm9udC1zaXplOiAwOyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3RlbHIucG5nKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyNXB4IDI1cHg7fVxyXG5cdC5oZWFkZXIgLmNvbnRhY3RzIHttYXJnaW4tcmlnaHQ6IDIzcHg7IHBhZGRpbmctdG9wOiAxM3B4OyBmb250LXNpemU6IDA7fVxyXG5cdC5oZWFkZXIgLmNvbnRhY3RzIC50ZWwge3dpZHRoOiAyNXB4OyBoZWlnaHQ6IDI1cHg7IGZvbnQtc2l6ZTogMDsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy90ZWwucG5nKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjsgYmFja2dyb3VuZC1zaXplOiAyNXB4IDI1cHg7IGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7fVxyXG5cclxuXHQvKnN0YXJ0ZWQqL1xyXG5cdC5zZWN0aW9uLm0tc3RhcnRlZCB7cGFkZGluZy10b3A6IDExMHB4O31cclxuXHQuc3RhcnRlZC1pbnRybyB7d2lkdGg6IGF1dG87IGZsb2F0OiBub25lO31cclxuXHQuc3RhcnRlZC1pbnRybyAudGl0bGUge2ZvbnQtc2l6ZTogMjlweDsgbGluZS1oZWlnaHQ6IDM5cHg7fVxyXG5cdC5zdGFydGVkLWludHJvIC5saXN0IHttYXJnaW4tYm90dG9tOiA1MHB4O31cclxuXHQuc3RhcnRlZC1pbnRybyAubGlzdCB1bCBsaSB7cGFkZGluZy1sZWZ0OiAyNXB4OyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAzNXB4O31cclxuXHQuc3RhcnRlZC1pbnRybyAubGlzdCB1bCBsaTpiZWZvcmUge3dpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IG1hcmdpbi10b3A6IC03cHg7fVxyXG5cdC5zdGFydGVkLWludHJvIC5iZW4taXRlbSB7cGFkZGluZzogMCAwIDAgNTBweDsgbWluLWhlaWdodDogNDBweDsgZm9udC1zaXplOiAxNXB4O31cclxuXHQuc3RhcnRlZC1pbnRybyAuYmVuLWl0ZW0gLmljb24ge21hcmdpbi10b3A6IC0xMHB4OyB3aWR0aDogMzBweDsgaGVpZ2h0OiA0MHB4O31cclxuXHQuc3RhcnRlZC1mb3JtIHttYXJnaW4tdG9wOiAyNXB4OyBwYWRkaW5nOiAzMHB4IDIwcHg7IGZsb2F0OiBub25lOyB3aWR0aDogYXV0bzt9XHJcblx0LnN0YXJ0ZWQtZm9ybSAudGl0bGUge2ZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6IDMycHg7fVxyXG5cdC5zdGFydGVkLWFib3V0IHttYXJnaW4tdG9wOiA1MHB4O31cclxuXHQuc3RhcnRlZC1hYm91dCAuZGVzYyB7bWFyZ2luLWJvdHRvbTogNTBweDt9XHJcblx0LnN0YXJ0ZWQtYWJvdXQgLmRlc2MgLnRpdGxlIHtmb250LXNpemU6IDI5cHg7IGxpbmUtaGVpZ2h0OiAzOXB4O31cclxuXHQuc3RhcnRlZC1hYm91dCAuZGVzYyAudGV4dCBwIHtmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAyNnB4O31cclxuXHQuc3RhcnRlZC1hYm91dCAuaW1hZ2Uge2Zsb2F0OiBub25lOyB3aWR0aDogMTAwJTt9XHJcblxyXG5cdC8qbmV3cyovXHJcblx0LnNlY3Rpb24ubS1uZXdzIHtwYWRkaW5nOiA1MHB4IDAgNjBweCAwO31cclxuXHQuc2VjdGlvbi5tLW5ld3MgLmJ0cyB7bWFyZ2luLXRvcDogMDt9XHJcblx0Lm5ld3MtaXRlbXMgLm5ld3MtY29sIHt3aWR0aDogMTAwJTt9XHJcblx0LnNhbGUtaXRlbSB7bWluLWhlaWdodDogYXV0bzt9XHJcblx0LnNhbGUtaXRlbSAuaW1hZ2Uge2hlaWdodDogNDAwcHg7fVxyXG5cdC5zYWxlLWl0ZW0gLmRlc2Mge3BhZGRpbmc6IDAgMjBweCAzMHB4IDIwcHg7fVxyXG5cdC5zYWxlLWl0ZW0gLmRlc2MgLm5hbWUge2ZvbnQtc2l6ZTogMjBweDt9XHJcblx0LnNhbGUtaXRlbSAuZGVzYyAudGV4dCB7Zm9udC1zaXplOiAxNXB4O31cclxuXHQubmV3cy1pdGVtIHttaW4taGVpZ2h0OiBhdXRvO31cclxuXHQubmV3cy1pdGVtIC5pbWFnZSB7bWFyZ2luLWJvdHRvbTogMjBweDt9XHJcblx0Lm5ld3MtaXRlbSAuZGVzYyB7cGFkZGluZzogMCAyMHB4IDIwcHggMjBweDt9XHJcblx0Lm5ld3MtaXRlbSAuZGVzYyAudGV4dCB7Zm9udC1zaXplOiAxNXB4O31cclxuXHJcblx0Lypwcm9mZXNzaW9uYWwqL1xyXG5cdC5zZWN0aW9uLm0tcHJvZiB7cGFkZGluZzogNTBweCAwO31cclxuXHQuc2VjdGlvbi5tLXByb2YgLnRpdGxlcyB7bWFyZ2luLWJvdHRvbTogMzBweDt9XHJcblx0LnNlY3Rpb24ubS1wcm9mIC5saXN0IHtwYWRkaW5nOiAzMHB4IDIwcHg7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMTVweCk7fVxyXG5cdC5zZWN0aW9uLm0tcHJvZiAuY29sIHtmbG9hdDogbm9uZTsgd2lkdGg6IDEwMCU7fVxyXG5cdC5zZWN0aW9uLm0tcHJvZiAubGlzdCB1bCBsaSB7bWFyZ2luLWJvdHRvbTogMTVweDsgZm9udC1zaXplOiAxNnB4O31cclxuXHJcblx0LypwYXJ0bmVycyovXHJcblx0LnNlY3Rpb24ubS1wYXJ0bmVycyB7cGFkZGluZzogNTBweCAwIDYwcHggMDt9XHJcblxyXG5cdC8qZ2VvKi9cclxuXHQuc2VjdGlvbi5tLWdlbyB7cGFkZGluZzogNTBweCAwIDAgMDt9XHJcblx0LnNlY3Rpb24ubS1nZW8gLmZ3IHt3aWR0aDogYXV0bzt9XHJcblx0LnNlY3Rpb24ubS1nZW8gLnRpdGxlcyB7bWF4LXdpZHRoOiAzMDBweDt9XHJcblx0Lmdlby1wb3B1cCB7bWFyZ2luLWxlZnQ6IC0xMjVweDsgcGFkZGluZzogMTVweDsgd2lkdGg6IDI1MHB4O31cclxuXHJcblx0LypwcmljaW5nKi9cclxuXHQuc2VjdGlvbi5tLXByaWNpbmcge3BhZGRpbmc6IDUwcHggMCA2MHB4IDA7fVxyXG5cdC5zZWN0aW9uLm0tcHJpY2luZyAudGl0bGUge2ZvbnQtc2l6ZTogMjlweDsgbGluZS1oZWlnaHQ6IDM5cHg7IHRleHQtYWxpZ246IGxlZnQ7fVxyXG5cdC5zZWN0aW9uLm0tcHJpY2luZyAuc3VidGl0bGUge2ZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI2cHg7fVxyXG5cclxuXHQvKmZvb3RlciovXHJcblx0LmZvb3RlciB7cGFkZGluZzogNTBweCAwIDAgMDt9XHJcblx0LmYtY29udGFjdHMgLmMtZ3JvdXAsIC5mLWNvbnRhY3RzIC5idG4tZ3JvdXAge2Zsb2F0OiBub25lOyB3aWR0aDogMTAwJTt9XHJcblx0LmYtY29udGFjdHMgLnRlbCBhIHtmb250LXNpemU6IDI0cHg7fVxyXG5cdC5mb290ZXIgLmYtcmlnaHQge21hcmdpbi10b3A6IDUwcHg7fVxyXG5cdC5tYXAtYm94IHtoZWlnaHQ6IGF1dG87fVxyXG5cdC5tYXAtZGVzYyB7cGFkZGluZzogMzBweCAyMHB4OyBmbG9hdDogbm9uZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzt9XHJcblx0Lm1hcC1kZXNjIC5tYXAtaW5mbyB1bCBsaTpsYXN0LWNoaWxkIHttYXJnaW4tYm90dG9tOiAwO31cclxuXHQubWFwLWltYWdlIHtmbG9hdDogbm9uZTsgd2lkdGg6IDEwMCU7fVxyXG5cdC5mb290ZXIgLmYtbG9nbyB7bWFyZ2luLXJpZ2h0OiAwOyBmbG9hdDogbm9uZTsgd2lkdGg6IDEwMCU7fVxyXG5cdC5mb290ZXIgLmYtY3JlYXRlIHttYXJnaW4tdG9wOiAzMHB4OyBmbG9hdDogbm9uZTsgZm9udC1zaXplOiAxNnB4O31cclxuXHJcblx0Lm5vbmVib3gge3dpZHRoOiAzMDBweDsgbWFyZ2luOiAwIDAgMCAtMTUwcHg7IHBhZGRpbmc6IDMwcHggMjBweDt9XHJcblx0Lm5vbmVib3ggLnRpdGxlIHtmb250LXNpemU6IDIwcHg7IGxpbmUtaGVpZ2h0OiAzMHB4O31cclxuXHQubm9uZWJveCAuY2xvc2Uge3RvcDogLTYwcHg7IHJpZ2h0OiAwO31cclxufSJdfQ== */


.insn {
    width: 50px;
    height: 50px;
    float: left;
    margin-right: 30px;
    margin-top: 6px;
}