@import url(http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800);
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{
    margin:0;
    padding:0;
    border:0;
    font:inherit;
    vertical-align:baseline
}
h2{
    font-size:1.71em;
    margin:0 0 1em;
    text-transform:uppercase
}
article,aside,details,figcaption,figure,footer,header,hgroup,i,menu,nav,section{
    display:block
}
body{
    line-height:1
}
ol,ul{
    list-style:none
}
blockquote,q{
    quotes:none
}
blockquote:after,blockquote:before,q:after,q:before{
    content:none
}
table{
    border-collapse:collapse;
    border-spacing:0
}
html{
    -webkit-box-sizing:border-box;
    -moz-box-sizing:border-box;
    box-sizing:border-box
}
*,:after,:before{
    -webkit-box-sizing:inherit;
    -moz-box-sizing:inherit;
    box-sizing:inherit;
    outline:none
}
@media only screen and (max-width:1066px){
    ._desktop{
        display:none
    }
}
@media only screen and (min-width:1067px){
    ._mobile{
        display:none
    }
}
body,html{
    width:100%;
    min-height:100%;
    color:#434343;
    font-family:'Open Sans',Arial,Helvetica,sans-serif;
    position:relative;
    -webkit-font-smoothing:antialiased;
    font-size:14px
}
@media only screen and (max-width:1066px){
    body,html{
        font-size:10px
    }
}
html{
    background-color:#000000
}
.-checkbox label:before,.-radio label:before,body,input,select{
    background-color:#fff
}
h1{
    color:#ffe200;
    font-size:1em
}
@media only screen and (max-width:1066px){
    h2{
        font-size:14px
    }
}
p{
    line-height:1.4em
}
@media only screen and (max-width:1066px){
    p{
        line-height:1.6em
    }
}
.btn,a,input.btn{
    cursor:pointer;
    -webkit-transition:.6s all cubic-bezier(.25,.46,.45,.94);
    transition:.6s all cubic-bezier(.25,.46,.45,.94)
}
a{
    text-decoration:none
}
.btn.-actif,.no-touch .btn:hover,.no-touch a:hover,.no-touch i>svg:hover,.no-touch input.btn:hover,a.-actif,i>svg.-actif,input.btn.-actif{
    -webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);
    transition-timing-function:cubic-bezier(.075,.82,.165,1)
}
h2,label a,p a{
    color:#000000
}
.no-touch label a:hover,.no-touch p a:hover,label a.-actif,p a.-actif{
    color:#071029
}
h2,strong{
    font-weight:800
}
small{
    font-size:.85em
}
.underline,label a,p a{
    text-decoration:underline
}
.btn,input.btn{
    height:50px;
    padding:1em 2em;
    display:inline-block;
    font-size:1.14em;
    text-transform:uppercase;
    font-weight:700;
    color:#fff;
    background-color:#000000
}
.btn.-actif,.no-touch .btn:hover,.no-touch input.btn:hover,input.btn.-actif{
    background-color:#071029
}
@media only screen and (max-width:1066px){
    .btn,input.btn{
        height:40px
    }
}
i>svg{
    width:100%;
    height:100%;
    -webkit-transition:.6s fill cubic-bezier(.25,.46,.45,.94);
    transition:.6s fill cubic-bezier(.25,.46,.45,.94)
}
.logo._mobile dib,.logo._mobile>img{
    width:90px
}
.safe-width{
    width:1066px
}
#main{
    text-align:center;
    width:100%;
    margin:0 auto
}
@media only screen and (max-width:1066px){
    #main>.content{
        margin-left:auto;
        margin-right:auto
    }
}
#main>section{
    position:relative;
    padding:80px 0
}
#main>section:not(:first-child):before{
    content:'';
    position:absolute;
    -webkit-transform-style:preserve-3d;
    transform-style:preserve-3d;
    left:50%;
    -webkit-transform:translateX(-50%);
    -ms-transform:translateX(-50%);
    transform:translateX(-50%);
    top:0;
    width:600px;
    border-top:1px solid #c9c9c9
}
@media only screen and (max-width:1066px){
    #main>section:not(:first-child):before{
        width:270px
    }
    #main>section{
        padding:40px 0 30px
    }
}
._hidden{
    display:none
}
#form-msg,[data-page=reception] #main #form-msg #form-msg-html{
    max-width:800px;
    margin:0 auto;
    padding:6em 0;
    font-size:1.14em;
    font-weight:400
}
@media only screen and (max-width:1066px){
    #form-msg{
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
}
#form-msg.-success,[data-page=reception] #main #form-msg #form-msg-html.-success{
    color:#434343
}
#form-msg.-error,#registrationForm #newsletter .input.-radio.-error>input+label,.input.-checkbox.-error>input+label,.input.-radio.-error>input+label,[data-page=reception] #main #form-msg #form-msg-html.-error{
    color:#ab2126
}
#form-msg>p,[data-page=reception] #main #form-msg #form-msg-html>p{
    margin:1em 0
}
.gammes-table{
    margin:40px auto;
    width:550px;
    text-align:left
}
.gammes-table td{
    border:1px solid #c9c9c9;
    border-left:0;
    border-right:0;
    padding:12px 0 12px 22px;
    color:#000000;
    font-weight:600;
    text-align:right
}
.gammes-table td.-grey{
    color:#434343;
    font-weight:700
}
.gammes-table td:nth-child(1){
    width:260px;
    text-align:left
}
.gammes-table td:nth-child(2){
    width:155px
}
.gammes-table td:nth-child(4){
    text-align:left
}
@media only screen and (max-width:1066px){
    .gammes-table{
        margin:20px auto;
        width:280px
    }
    .gammes-table td{
        padding:.9em 0;
        font-size:.85em
    }
    .gammes-table td:nth-child(1){
        width:130px;
        text-align:left;
        padding-left:.6em
    }
    .gammes-table td:nth-child(2){
        width:75px;
        padding-right:1em
    }
    .gammes-table td:nth-child(4){
        text-align:center
    }
}
#header{
    background-color:#000;
    position:relative;
    height:88px;
    z-index:1000;
    *zoom:1;
    overflow:hidden
}
#header:after,#header:before,.main-nav>.wrapper:after,.main-nav>.wrapper:before,.main-nav>.wrapper>.item:after,.main-nav>.wrapper>.item:before,body form .select-wapper .select2-container .select2-choice:after,body form .select-wapper .select2-container .select2-choice:before,fieldset.caa:after,fieldset.caa:before,form fieldset:after,form fieldset:before,form fieldset>.wrapper:after,form fieldset>.wrapper:before{
    content:'';
    display:table
}
#header:after,.main-nav>.wrapper:after,.main-nav>.wrapper>.item:after,body form .select-wapper .select2-container .select2-choice:after,fieldset.caa:after,form fieldset:after,form fieldset>.wrapper:after{
    clear:both
}
#header>.wrapper{
    width:1066px;
    margin:0 auto
}
#header .right-nav>.item:before,#header>.wrapper:before{
    content:'';
    display:inline-block;
    vertical-align:middle;
    width:0;
    height:88px
}
#header>.wrapper>.logo{
    float:left;
    padding-top:13px;
    vertical-align:middle
}
#header>.wrapper>.title{
    text-align:center;
    display:inline-block;
    position:relative;
    margin-left:6em;
    text-transform:uppercase;
    font-weight:600;
    letter-spacing:.15em
}
#header>.wrapper>.right-nav{
    float:right;
    width:150px;
    text-align:right;
    margin-top:2.2em
}
#header .right-nav>.item{
    display:inline-block;
    padding-left:1.5em;
    height:26px
}
#header .right-nav>.item:before{
    height:100%
}
#header .right-nav>.item:first-child{
    padding-left:0;
    padding-right:2em;
    border-right:1px solid #fff
}
#header .right-nav a{
    display:inline-block;
    vertical-align:middle;
    color:#fff;
    font-size:.71em;
    text-transform:uppercase;
    font-weight:700;
    letter-spacing:.1em
}
#header .right-nav a>i{
    width:20px;
    height:20px;
    display:block
}
#header .right-nav a>i svg{
    width:100%;
    height:100%;
    fill:#fff
}
#header .right-nav a.actif,.no-touch #header .right-nav a:hover{
    color:#ffe200
}
#header .right-nav a.actif>i svg,.no-touch #header .right-nav a:hover>i svg{
    fill:#ffe200
}
.hero{
    width:100%;
    background-color:#000;
    text-align:center
}
.hero>img{
    width:100%;
    max-width:1066px
}
@media only screen and (max-width:1066px){
    body{
        padding-top:44px
    }
    .hero>img.center{
        width:auto
    }
    #header{
        height:44px;
        position:fixed;
        top:0;
        right:0;
        left:0
    }
    #header>.wrapper{
        max-width:100%
    }
    #header>.wrapper>.burger{
        float:left;
        margin:1.3em 0 0 1.3em
    }
    #header>.wrapper>.burger>i{
        width:20px;
        height:20px
    }
    #header>.wrapper>.burger>i>svg{
        fill:#ffe200
    }
    #header>.wrapper>.title{
        font-size:.85em;
        float:left;
        margin:2.2em 0 0 1.5em
    }
    .burger.-open>.close{
        display:block
    }
    .burger.-open>.open,.burger>.close{
        display:none
    }
}
.main-nav{
    width:100%;
    background-color:#ffe200;
    color:#434343;
    z-index:500
}
.main-nav>.wrapper{
    width:100%;
    max-width:940px;
    margin:0 auto;
    *zoom:1
}
.main-nav>.wrapper>.item{
    *zoom:1;
    float:left;
    clear:none;
    text-align:inherit;
    width:20%;
    margin-left:0%;
    margin-right:0%;
    height:140px;
    position:relative
}
.main-nav>.wrapper>.item:not(:first-child):before{
    content:'';
    display:block;
    border-left:1px solid #434343;
    position:absolute;
    top:2em;
    bottom:2em;
    left:0;
    z-index:2;
    -webkit-transition:border .4s cubic-bezier(.25,.46,.45,.94);
    transition:border .4s cubic-bezier(.25,.46,.45,.94)
}
.main-nav>.wrapper>.item.-actif+.item:before,.main-nav>.wrapper>.item.-actif:before,.no-touch .main-nav>.wrapper>.item:hover+.item:before,.no-touch .main-nav>.wrapper>.item:hover:before{
    border-color:rgba(255,255,255,0)
}
.main-nav>.wrapper>.item>a{
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    left:0;
    color:#434343;
    font-weight:800;
    text-align:center;
    padding:2.5em 0 0;
    background-color:#ffe200
}
.main-nav>.wrapper>.item>a>.content>i{
    display:block;
    width:100%
}
.main-nav>.wrapper>.item>a>.content>i svg{
    width:30px;
    height:30px;
    fill:#000000;
    -webkit-transition:none;
    transition:none
}
.main-nav>.wrapper>.item>a>.content>span{
    display:block;
    width:80%;
    margin:.4em auto 0;
    letter-spacing:.15em;
    line-height:1.5em;
    text-transform:uppercase;
    font-size:.78em
}
.main-nav>.wrapper>.item.-actif a,.no-touch .main-nav>.wrapper>.item a:hover{
    background-color:transparent;
    background:#000;
    color:#fff
}
.main-nav>.wrapper>.item.-actif a i svg,.no-touch .main-nav>.wrapper>.item a:hover i svg{
    fill:#ffe200
}
@media only screen and (max-width:1066px){
    .main-nav{
        position:fixed;
        top:44px;
        right:0;
        left:0;
        -webkit-transform:translateY(-100%);
        -ms-transform:translateY(-100%);
        transform:translateY(-100%);
        -webkit-transition:transform 1s cubic-bezier(.25,.46,.45,.94);
        transition:transform 1s cubic-bezier(.25,.46,.45,.94)
    }
    .main-nav.-open{
        -webkit-transform:translateY(0%);
        -ms-transform:translateY(0%);
        transform:translateY(0%);
        -webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);
        transition-timing-function:cubic-bezier(.075,.82,.165,1)
    }
    .main-nav>.wrapper>.item{
        display:block;
        float:none;
        width:100%;
        height:62.5px
    }
    .main-nav>.wrapper>.item:not(:first-child):before{
        display:none
    }
    .main-nav>.wrapper>.item:not(:first-child)>a>.content:before{
        content:'';
        display:block;
        position:absolute;
        top:0;
        right:0;
        left:0;
        border-top:1px solid rgba(0,0,0,.5)
    }
    .main-nav>.wrapper>.item>a{
        padding:0
    }
    .main-nav>.wrapper>.item>a>.content{
        height:100%;
        max-width:270px;
        display:block;
        margin:0 auto;
        position:relative;
        *zoom:1
    }
    .main-nav .extra>.col:after{
        content:'';
        display:table
    }
    .main-nav .extra>.col:before{
        display:table
    }
    .main-nav>.wrapper>.item>a>.content:after,.main-nav>.wrapper>.item>a>.content:before{
        content:'';
        display:table
    }
    .main-nav .extra>.col:after,.main-nav>.wrapper>.item>a>.content:after{
        clear:both
    }
    .main-nav .extra>.col,.main-nav>.wrapper>.item>a>.content>i{
        float:left;
        position:relative;
        height:100%;
        width:6em;
        text-align:center
    }
    .main-nav>.wrapper>.item>a>.content>i>svg,.main-nav>.wrapper>.item>a>.content>span{
        position:absolute;
        -webkit-transform-style:preserve-3d;
        transform-style:preserve-3d;
        top:50%
    }
    .main-nav>.wrapper>.item>a>.content>span{
        float:left;
        text-align:left;
        -webkit-transform:translateY(-50%);
        -ms-transform:translateY(-50%);
        transform:translateY(-50%);
        font-size:1.14em;
        color:#434343;
        left:8em
    }
    .main-nav>.wrapper>.item>a>.content>i>svg{
        left:50%;
        -webkit-transform:translate(-50%,-50%);
        -ms-transform:translate(-50%,-50%);
        transform:translate(-50%,-50%);
        width:20px;
        height:20px
    }
    .main-nav>.wrapper>.item.-actif>a>.content>span,.no-touch .main-nav>.wrapper>.item>a:hover>.content>span{
        color:#fff
    }
    .main-nav>.wrapper>.item.-actif>a>.content>i>svg,.no-touch .main-nav>.wrapper>.item>a:hover>.content>i>svg{
        fill:#ffe200
    }
    .main-nav>.wrapper>.item.-actif+.item>a>.content:before,.main-nav>.wrapper>.item.-actif>a>.content:before{
        border-color:rgba(255,255,255,0)
    }
    .main-nav .extra:before{
        display:none!important
    }
    .main-nav .extra>.col{
        *zoom:1;
        clear:none;
        text-align:inherit;
        width:50%;
        margin-left:0%;
        margin-right:0%
    }
    .main-nav .extra>.col:before{
        content:'';
        display:block;
        position:absolute;
        top:0;
        width:135px;
        border-top:1px solid rgba(0,0,0,.5)
    }
    .main-nav .extra>.col:first-child:before{
        right:0
    }
    .main-nav .extra>.col>a{
        position:absolute;
        top:0;
        right:0;
        bottom:0;
        left:0;
        font-size:1.14em;
        color:#434343;
        font-weight:800;
        letter-spacing:.1em;
        text-align:center
    }
    .main-nav .extra>.col>a svg{
        fill:#434343
    }
    .main-nav .extra>.col>a>.content{
        width:135px;
        position:absolute;
        -webkit-transform-style:preserve-3d;
        transform-style:preserve-3d;
        top:50%;
        -webkit-transform:translateY(-50%);
        -ms-transform:translateY(-50%);
        transform:translateY(-50%)
    }
    .main-nav .extra>.col>a.fb i{
        margin:0 auto;
        width:20px;
        height:20px
    }
    .main-nav .extra>.col>a.actif,.no-touch .main-nav .extra>.col>a:hover{
        color:#000000;
        background:0 0
    }
    .main-nav .extra>.col>a.actif svg,.no-touch .main-nav .extra>.col>a:hover svg{
        fill:#000000
    }
    .main-nav .extra>.col:nth-child(1)>a:before{
        content:'';
        position:absolute;
        top:1.8em;
        right:0;
        bottom:1.8em;
        border-right:1px solid rgba(0,0,0,.5)
    }
    .main-nav .extra>.col:nth-child(1)>a>.content{
        right:0
    }
    .main-nav .extra>.col:nth-child(2)>a>.content{
        left:0
    }
}
#footer{
    width:100%;
    height:225px;
    position:relative;
    bottom:0;
    font-size:.78em;
    text-align:center;
    text-transform:uppercase;
    color:#fff;
    background-color:#000000
}
@media only screen and (max-width:1066px){
    #footer{
        height:120px
    }
}
.nav-footer{
    width:100%;
    max-width:1066px;
    position:absolute;
    -webkit-transform-style:preserve-3d;
    transform-style:preserve-3d;
    top:50%;
    left:50%;
    -webkit-transform:translate(-50%,-50%);
    -ms-transform:translate(-50%,-50%);
    transform:translate(-50%,-50%)
}
.nav-footer .item,[data-page=reception] #main form>.-grey>fieldset.id>.input{
    display:inline-block
}
.nav-footer .item:not(:first-child){
    border-left:1px solid #fff
}
.nav-footer .item>a{
    color:#fff;
    text-decoration:none;
    -webkit-transition:.6s color cubic-bezier(.25,.46,.45,.94);
    transition:.6s color cubic-bezier(.25,.46,.45,.94);
    -webkit-box-sizing:content-box;
    -moz-box-sizing:content-box;
    box-sizing:content-box;
    letter-spacing:.1em;
    padding:0 .5em
}
.nav-footer .item>a.-actif,.no-touch .nav-footer .item>a:hover{
    color:#ffe200;
    -webkit-transition-timing-function:cubic-bezier(.075,.82,.165,1);
    transition-timing-function:cubic-bezier(.075,.82,.165,1)
}
@media only screen and (max-width:1066px){
    .nav-footer .item{
        margin-bottom:1em
    }
}
.trademark{
    margin-top:3em
}
@media only screen and (max-width:1066px){
    .trademark{
        margin-top:2em
    }
}
.select-wapper,input{
    font-size:1em;
    width:250px
}
@media only screen and (max-width:1066px){
    .select-wapper,input{
        width:100%
    }
}
button,input,select{
    -webkit-appearance:none
}
[data-page=contact] #main fieldset.-grey .row .input input,select{
    width:100%
}
[data-page=reception] #main form>.-grey>hr,form>hr{
    width:600px;
    margin:0 auto
}
@media only screen and (max-width:1066px){
    form>hr{
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
}
[data-page=contact] #main fieldset.-grey .row,fieldset.caa,form fieldset{
    *zoom:1
}
form fieldset>.wrapper{
    *zoom:1;
    max-width:1066px;
    margin:0 auto;
    display:block
}
@media only screen and (max-width:1066px){
    form fieldset>.wrapper{
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
}
form fieldset legend{
    color:#000000;
    font-size:1.14em;
    font-weight:800;
    max-width:560px;
    line-height:1.4em;
    margin:0 auto;
    width:100%
}
@media only screen and (min-width:1067px){
    form fieldset .col{
        *zoom:1;
        float:left;
        clear:none;
        width:48.5%;
        margin-left:0%;
        margin-right:3%;
        text-align:center
    }
    form fieldset .col:after,form fieldset .col:before{
        content:'';
        display:table
    }
    form fieldset .col:after{
        clear:both
    }
    form fieldset .col:nth-child(2n){
        margin-right:0%;
        float:right
    }
    form fieldset .col:nth-child(2n+1){
        clear:both
    }
    form fieldset .col:first-child{
        padding-left:180px
    }
    form fieldset .col:first-child+.col{
        padding-left:80px
    }
    form fieldset .col>.input{
        text-align:left
    }
}
.input.-select :disabled,.input.-text :disabled,.input.-textarea :disabled{
    color:#c9c9c9
}
.input.-select>label,.input.-text>label,.input.-textarea>label{
    font-size:.78em;
    overflow:hidden;
    height:1.5em
}
.input.-select>label>span,.input.-text>label>span,.input.-textarea>label>span{
    position:absolute;
    -webkit-transform:translateY(0%);
    -ms-transform:translateY(0%);
    transform:translateY(0%);
    -ms-filter:none;
    filter:none;
    opacity:1;
    -webkit-transition:all .6s cubic-bezier(.075,.82,.165,1);
    transition:all .6s cubic-bezier(.075,.82,.165,1)
}
.input.-select.-empty>label>span,.input.-text.-empty>label>span,.input.-textarea.-empty>label>span{
    -webkit-transform:translateY(100%);
    -ms-transform:translateY(100%);
    transform:translateY(100%);
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter:alpha(opacity=0);
    opacity:0;
    -webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94);
    transition-timing-function:cubic-bezier(.25,.46,.45,.94)
}
@media only screen and (max-width:1066px){
    .input.-select>label,.input.-text>label,.input.-textarea>label{
        font-size:9px
    }
}
.input>*{
    display:block
}
.input>label{
    text-align:left
}
.input>input{
    border:1px solid #434343;
    border-radius:0;
    padding:1em 2em;
    height:50px
}
.input>.select-wapper select{
    padding:1.1em 2em;
    border:1px solid #434343;
    border-radius:0
}
.input.-text>input:disabled{
    border:1px solid #c9c9c9
}
.input.-error.-textarea>textarea,.input.-error>.select-wapper select,.input.-error>input{
    color:#ab2126;
    border-color:#ab2126
}
.input.-select>.select-wapper{
    position:relative
}
.input.-textarea{
    height:10.5em;
    padding-bottom:1em
}
.input.-textarea>textarea{
    font-size:1em;
    padding:1.1em 2em;
    border:1px solid #434343;
    width:100%;
    height:100%;
    resize:none
}
[type=submit]{
    border:none;
    background:0 0;
    width:auto
}
.input.-submit{
    text-align:left;
    margin-top:2.4em
}
.input.-submit>input{
    border:0;
    padding-left:3em;
    padding-right:3em
}
.input.-radio{
    max-width:400px
}
.input.-radio>label{
    position:relative;
    text-transform:none
}
.input.-checkbox>input,.input.-radio>input{
    width:auto;
    position:absolute;
    left:-9999px
}
.input.-radio>input+label{
    position:relative;
    padding-right:2em;
    cursor:pointer;
    font-size:1em
}
.input.-radio>input+label,.input.-radio>input+label:after,.input.-radio>input+label:before{
    vertical-align:middle;
    display:inline-block
}
.input.-radio>input+label:before{
    width:18px;
    height:18px
}
.input.-radio>input+label:after,.input.-radio>input+label:before{
    content:'';
    border-radius:50%;
    border:1px solid #000000
}
.input.-radio>input+label:before{
    border-width:3px;
    position:absolute;
    top:0;
    right:0
}
.input.-radio>input+label:after{
    position:absolute;
    top:0;
    right:0;
    width:0;
    height:0;
    border-width:0;
    border-color:#000000;
    -webkit-transform:translate(-100%,100%);
    -ms-transform:translate(-100%,100%);
    transform:translate(-100%,100%)
}
.input.-radio>input:checked+label:after{
    border-width:3px
}
.input.-radio.-error>input+label:before{
    border-color:#ab2126
}
@media only screen and (max-width:1066px){
    .input.-radio>input+label{
        font-size:9px
    }
    table .input.-radio>input+label{
        font-size:7px;
        padding-top:.2em
    }
    .input.-radio>input+label:before{
        width:10px;
        height:10px;
        border-width:2px
    }
    .input.-radio>input+label:after{
        top:-1px;
        right:-1px
    }
    .input.-radio>input:checked+label:after{
        border-width:2px
    }
}
.input.-checkbox{
    max-width:400px;
    margin-top:1em
}
.input.-checkbox>label{
    position:relative;
    text-transform:none;
    width:100%;
    height:2em
}
.input.-checkbox>input+label{
    position:relative;
    padding-left:47px;
    cursor:pointer;
    font-size:.85em
}
.input.-checkbox>input+label,.input.-checkbox>input+label:after,.input.-checkbox>input+label:before{
    vertical-align:middle;
    display:inline-block
}
.input.-checkbox>input+label:before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:25px;
    height:25px;
    border:1px solid #434343;
    -webkit-transition:border .4s cubic-bezier(.19,1,.22,1);
    transition:border .4s cubic-bezier(.19,1,.22,1)
}
.input.-checkbox>input+label:after{
    position:absolute;
    top:4px;
    left:5px;
    content:url(/images/check.svg);
    width:15px;
    height:15px;
    font-size:2em;
    -webkit-transform:scale(0);
    -ms-transform:scale(0);
    transform:scale(0);
    line-height:0;
    -webkit-transition:transform .4s cubic-bezier(.19,1,.22,1);
    transition:transform .4s cubic-bezier(.19,1,.22,1)
}
.input.-checkbox>input:checked+label:after{
    -webkit-transform:scale(1);
    -ms-transform:scale(1);
    transform:scale(1)
}
#registrationForm #newsletter .input.-radio.-error>input+label:before,.input.-checkbox.-error>input+label:before,.input.-select.-error .select2-choice{
    border-color:#ab2126
}
.input>.message{
    height:1.5em;
    font-size:.78em;
    color:#434343;
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter:alpha(opacity=0);
    opacity:0
}
.input.-error>.message{
    color:#ab2126;
    -ms-filter:none;
    filter:none;
    opacity:1
}
.input.-checkbox>.message{
    margin-top:3px
}
.input .-under-table{
    margin-bottom:1em;
    font-size:1.14em
}
fieldset.-grey{
    margin-top:5em;
    padding:2.5em 0 6em;
    background-color:#f0f0f0
}
body form .select-wapper .select2-container .select2-choice{
    border-radius:0;
    height:50px;
    padding-left:2em;
    position:relative;
    background:#fff;
    border-color:#434343;
    *zoom:1
}
body form .select-wapper .select2-container .select2-choice>.select2-chosen{
    position:absolute;
    -webkit-transform-style:preserve-3d;
    transform-style:preserve-3d;
    top:50%;
    -webkit-transform:translateY(-50%);
    -ms-transform:translateY(-50%);
    transform:translateY(-50%)
}
body form .select-wapper .select2-container .select2-choice .select2-arrow{
    background:0 0;
    border:0;
    border-radius:0;
    width:3em
}
body form .select-wapper .select2-container .select2-choice .select2-arrow b:before{
    content:url(/images/arrow.svg);
    display:inline-block;
    color:red;
    position:absolute;
    -webkit-transform-style:preserve-3d;
    transform-style:preserve-3d;
    top:50%;
    left:50%;
    -webkit-transform:translate(-50%,-50%);
    -ms-transform:translate(-50%,-50%);
    transform:translate(-50%,-50%);
    width:1em
}
.select2-results>.select2-result{
    padding:.5em;
    color:#434343
}
.select2-results>.select2-result.select2-highlighted{
    background-color:#000000;
    color:#fff
}
.select2-drop.select2-drop-above.select2-drop-active,body .select2-drop-active{
    border:1px solid #434343;
    -webkit-box-shadow:none;
    box-shadow:none;
    border-radius:0
}
.input.-select.-empty .select2-choice>.select2-chosen{
    color:#acacac
}
.select2-search{
    padding-left:0!important;
    padding-right:0!important
}
.select2-drop.select2-drop-above .select2-search input{
    margin-top:0!important
}
.section-infos>footer>.actions{
    margin:50px 0 40px
}
.section-infos>footer>.actions>.btn{
    width:265px;
    padding-left:0;
    padding-right:0;
    margin:0 3em
}
.section-infos h2{
    margin-bottom:.5em
}
.section-infos .description-big{
    margin-top:1.2em;
    font-size:1.14em
}
@media only screen and (max-width:1066px){
    .section-infos .description,.section-infos>header{
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
    .section-infos>footer>.actions{
        margin:20px 0 30px
    }
    .section-infos>footer>.actions>.btn{
        width:180px;
        margin:0 auto;
        padding:0;
        position:relative;
        display:block
    }
    .section-infos>footer>.actions>.btn>span{
        position:absolute;
        -webkit-transform-style:preserve-3d;
        transform-style:preserve-3d;
        top:50%;
        left:50%;
        -webkit-transform:translate(-50%,-50%);
        -ms-transform:translate(-50%,-50%);
        transform:translate(-50%,-50%)
    }
    .section-infos>footer>.actions>.btn:first-child{
        margin-bottom:20px
    }
}
.section-caa>header figure{
    margin-bottom:3em
}
.section-caa>header figure figcaption{
    font-weight:300;
    color:#00529b;
    font-size:28px
}
@media only screen and (max-width:1066px){
    .section-caa{
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
    .section-caa>header>figure>img{
        width:60px
    }
    .section-caa>header>figure>figcaption{
        font-size:14px
    }
}
[data-page=home] #main{
    max-width:1066px
}
[data-page=home] #footer{
    margin-top:27px
}
.head-message{
    background-color:#000000
}
.head-message>.wrapper{
    color:#fff;
    padding:5em 0
}
.head-message>.wrapper a{
    color:#ffe200
}
.head-message>.wrapper a .actif,.no-touch .head-message>.wrapper a:hover{
    color:#ffeb4d
}
.head-message>.wrapper>.title{
    color:#fff;
    font-size:1.71em;
    font-weight:800;
    margin-bottom:.4em;
    line-height:1.2
}
.head-message>.wrapper>.legend{
    font-size:.85em
}
.head-message>.wrapper>.note{
    margin-top:3.5em;
    font-weight:600
}
@media only screen and (max-width:1066px){
    .head-message>.wrapper{
        padding:2em 0 3.2em;
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
    .head-message>.wrapper>.title{
        font-size:14px;
        margin-top:1em
    }
    .head-message>.wrapper>p{
        font-size:.85em
    }
    .head-message>.wrapper>.note{
        margin-top:1em
    }
}
#registrationForm .select-wapper,#registrationForm input{
    width:310px
}
@media only screen and (min-width:1067px){
    #registrationForm .col{
        *zoom:1;
        float:left;
        clear:none;
        text-align:inherit;
        width:48.5%;
        margin-left:0%;
        margin-right:3%
    }
    #registrationForm .col:after,#registrationForm .col:before{
        content:'';
        display:table
    }
    #registrationForm .col:after{
        clear:both
    }
    #registrationForm .col:nth-child(2n){
        margin-right:0%;
        float:right
    }
    #registrationForm .col:nth-child(2n+1){
        clear:both
    }
    #registrationForm .col:first-child{
        padding-left:150px
    }
    #registrationForm .col:first-child+.col{
        padding-left:60px
    }
}
#registrationForm #form-errMsg{
    border:1px solid #000000;
    text-align:left;
    color:#000000;
    font-size:.85em;
    padding:2em 2em 2em 3.5em;
    line-height:2em;
    margin-top:2em;
    width:310px;
}
#registrationForm #form-errMsg li,[data-page=contact] #main #form-errMsg li{
    list-style-type:disc
}
#registrationForm #invoiceLabel>.labelUploadFile{
    margin-top:-3px;
    text-transform:initial
}
#registrationForm #invoiceLabel>.labelUploadNotice{
    font-size:.78em;
    text-transform:initial
}
#registrationForm #newsletter{
    margin-top:20px;
    margin-bottom:30px
}
#registrationForm #newsletter>.input{
    margin-bottom:10px
}
#registrationForm #newsletter .input.-radio>input+label{
    padding-left:2em
}
#registrationForm #newsletter .input.-radio>input+label:before{
    position:absolute;
    top:0;
    left:0
}
#registrationForm #newsletter .input.-radio>input+label:after{
    position:absolute;
    top:0;
    left:12px
}
@media only screen and (max-width:1066px){
    #registrationForm #newsletter .input.-radio>input+label{
        padding-right:0
    }
    #registrationForm #newsletter .input.-radio>input+label:after{
        top:-1px;
        left:7px
    }
}
.locale{
    text-align:center;
    padding:5em 0 3.2em
}
.caa>.row>.input,.locale>.input{
    display:inline-block;
    margin:0 1.8em
}
@media only screen and (max-width:1066px){
    .locale{
        padding:2em 0 3.2em;
        margin-left:auto;
        margin-right:auto
    }
}
.bill{
    padding:4em 0 1.4em
}
.bill>.btn{
    margin-bottom:.8em
}
@media only screen and (max-width:1066px){
    .bill>.btn{
        padding-top:15px;
        padding-bottom:15px
    }
}
.bill>input{
    display:none
}
.bill>.note{
    color:#000000;
    font-size:.85em;
    margin-bottom:1em
}
.caa{
    margin:3em 0 1.2em
}
.caa>legend{
    max-width:none
}
.caa>.row{
    display:block;
    margin:2em 0 1em
}
.caa>.row>.-text>label{
    font-size:1em;
    font-weight:600;
    margin:.4em 0;
    text-align:center
}
.product{
    margin-top:2.6em
}
.product>.wrapper>.gammes-table,[data-page=contact] #main>.content>p,[data-page=contact] #main>header>h2,[data-page=contact] #main>header>p,[data-page=reception] #main>header>h2{
    margin-bottom:1em
}
.product>.wrapper>.gammes-table td:nth-child(2){
    width:auto;
    padding-left:0
}
.product>.wrapper>.note,[data-page=contact] #main>.content>p small,[data-page=reception] #main>.content>p small{
    font-size:.85em
}
#receptionForm fieldset>.wrapper{
    text-align:left;
    display:inline-block
}
[data-page=reception] #main{
    padding:60px 0 0
}
@media only screen and (max-width:1066px){
    [data-page=reception] #main{
        padding-top:40px
    }
}
[data-page=reception] #main>header{
    padding-bottom:2em
}
[data-page=reception] #main>.content{
    max-width:800px;
    margin:0 auto
}
[data-page=reception] #main>.content>h3{
    color:#000000;
    font-weight:800
}
[data-page=reception] #main .content-reception{
    margin-bottom:40px
}
[data-page=reception] #main form{
    padding-top:1em
}
[data-page=reception] #main form>.messages{
    max-width:600px;
    margin:0 auto 3em
}
[data-page=reception] #main form>.-grey{
    background-color:#f0f0f0;
    position:relative
}
[data-page=reception] #main form>.-grey>fieldset{
    padding-bottom:3em
}
[data-page=reception] #main form>.-grey>fieldset.other{
    padding-bottom:6em
}
[data-page=reception] #main form>.-grey>fieldset>legend{
    top:3em;
    margin-bottom:4em;
    position:relative;
    width:100%;
    max-width:none
}
[data-page=reception] #main form>.-grey>fieldset>.wrapper{
    width:600px
}
[data-page=reception] #main form>.-grey>fieldset>.wrapper>.col{
    padding-left:0
}
@media only screen and (min-width:1067px){
    [data-page=reception] #main form>.-grey>fieldset>.wrapper>.col+.col{
        padding-left:40px
    }
}
[data-page=reception] #main form .-submit{
    text-align:center;
    clear:both;
    padding-top:2em
}
[data-page=reception] #main form>.-grey>.other .bottom-note{
    margin-top:40px
}
@media only screen and (max-width:1066px){
    [data-page=reception] #main>header{
        padding-top:0
    }
    [data-page=reception] #main>header>.logo{
        display:block;
        margin-bottom:2em
    }
    [data-page=reception] #main form>.-grey>.id>.wrapper,[data-page=reception] #main form>.-grey>.other>.wrapper,[data-page=reception] #main form>.-grey>hr,[data-page=reception] #main form>.messages{
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
}
[data-page=reception] #main #form-msg{
    background-color:#f0f0f0;
    padding:0;
    max-width:inherit
}
@media only screen and (max-width:1066px){
    [data-page=reception] #main #form-msg #form-msg-html{
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
}
.top-message p{
    font-weight:700;
    font-size:12px
}
.block-content{
    padding:20px;
    border:1px solid gray;
    margin-bottom:30px!important
}
[data-page=contact] #main{
    padding:80px 0 0
}
[data-page=contact] #main>header{
    padding-bottom:2em;
    max-width:800px;
    margin:0 auto
}
[data-page=contact] #main>.content{
    max-width:800px;
    margin:0 auto
}
[data-page=contact] #main>.content>h3{
    color:#000000;
    font-weight:800;
    font-size:1.14em;
    margin-bottom:1em
}
[data-page=contact] #main>.footerContent{
    max-width:800px;
    margin:0 auto;
    padding:70px 0
}
[data-page=contact] #main>.footerContent>p{
    margin-top:3em
}
[data-page=contact] #main>.footerContent>h3{
    font-size:1.71em;
    color:#000000;
    font-weight:800
}
[data-page=contact] #main>.footerContent>h3>a{
    color:#000000
}
[data-page=contact] #main fieldset.-grey{
    padding-bottom:3.5em
}
[data-page=contact] #main fieldset.-grey .-submit.input{
    clear:right;
    float:right
}
[data-page=contact] #main fieldset.-grey .row .input:after,[data-page=contact] #main fieldset.-grey .row .input:before,[data-page=contact] #main fieldset.-grey .row:after,[data-page=contact] #main fieldset.-grey .row:before{
    content:'';
    display:table
}
[data-page=contact] #main fieldset.-grey .row .input:after,[data-page=contact] #main fieldset.-grey .row:after{
    clear:both
}
[data-page=contact] #main fieldset.-grey .row .input{
    *zoom:1;
    float:left;
    clear:none;
    text-align:inherit;
    width:48.5%;
    margin-left:0%;
    margin-right:3%
}
[data-page=contact] #main fieldset.-grey .row .input:nth-child(2n){
    margin-right:0%;
    float:right
}
[data-page=contact] #main fieldset.-grey .row .input:nth-child(2n+1){
    clear:both
}
@media only screen and (max-width:1066px){
    [data-page=contact] #main fieldset.-grey .row .input{
        *zoom:1;
        float:left;
        clear:none;
        text-align:inherit;
        width:100%;
        margin-left:0%;
        margin-right:3%
    }
    [data-page=contact] #main fieldset.-grey .row .input:after,[data-page=contact] #main fieldset.-grey .row .input:before{
        content:'';
        display:table
    }
    [data-page=contact] #main fieldset.-grey .row .input:after{
        clear:both
    }
    [data-page=contact] #main fieldset.-grey .row .input:last-child{
        margin-right:0%
    }
}
@media only screen and (min-width:1067px){
    [data-page=contact] #main>form>.-grey>.wrapper{
        width:600px
    }
    [data-page=contact] #main>form>.-grey>.wrapper textarea{
        width:100%
    }
    [data-page=contact] #main>form>.-grey>.wrapper>.col{
        padding-left:0
    }
    [data-page=contact] #main>form>.-grey>.wrapper>.col+.col{
        padding-left:40px
    }
}
@media only screen and (max-width:1066px){
    [data-page=contact] #main{
        padding-top:40px
    }
    [data-page=contact] #main>header{
        width:270px;
        margin-left:auto;
        margin-right:auto;
        padding-top:0
    }
    [data-page=contact] #main>header>.logo{
        display:block;
        margin-bottom:2em
    }
    [data-page=contact] #main .input.-textarea{
        height:13em
    }
    [data-page=contact] #main .input.-textarea textarea{
        width:100%
    }
}
[data-page=contact] #main #form-msg{
    max-width:100%;
    background-color:#f0f0f0;
    margin-top:70px
}
@media only screen and (max-width:1066px){
    [data-page=contact] #main #form-msg{
        width:100%
    }
}
[data-page=contact] #main #form-errMsg{
    border:1px solid #000000;
    text-align:left;
    color:#000000;
    font-size:.85em;
    padding:2em 2em 2em 3.5em;
    line-height:2em;
    margin-top:4em;
    width:100%;
/*    float:right */
}
[data-page=terms] #main{
    padding:80px 0
}
[data-page=terms] #main>header{
    padding-top:2em
}
[data-page=terms] #main>.wrapper{
    width:1066px;
    margin:0 auto;
    text-align:left
}
[data-page=terms] #main>.wrapper ol,[data-page=terms] #main>.wrapper>p{
    padding-bottom:2em
}
[data-page=terms] #main>.wrapper h5,[data-page=terms] #main>.wrapper strong{
    font-weight:700
}
[data-page=terms] #main>.wrapper ol{
    padding-left:1em;
    font-weight:700
}
[data-page=terms] #main>.wrapper ol li{
    list-style-type:decimal;
    font-weight:700
}
[data-page=terms] #main>.wrapper ol li:not(:first-child){
    margin-top:2em
}
[data-page=terms] #main>.wrapper ol li p{
    font-weight:400
}
@media only screen and (max-width:1066px){
    [data-page=terms] #main{
        padding:40px 0 30px
    }
    [data-page=terms] #main>header{
        padding-top:0
    }
    [data-page=terms] #main>header>.logo{
        display:block;
        margin-bottom:2em
    }
    [data-page=terms] #main>.wrapper{
        width:270px;
        margin-left:auto;
        margin-right:auto
    }
}
/*# sourceMappingURL=data:application/json;
base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9jb25maWcvZm9udHMuc3R5bCIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9rb3V0by1zd2lzcy9saWIva291dG8tc3dpc3MvcmVzZXQvbWV5ZXItcmVzZXQuc3R5bCIsImFwcC9sYXlvdXQvbGF5b3V0LnN0eWwiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva291dG8tc3dpc3MvbGliL2tvdXRvLXN3aXNzL21peGlucy92ZW5kb3JzLWZsZXguc3R5bCIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9rb3V0by1zd2lzcy9saWIva291dG8tc3dpc3MvcmVzZXQvYm94LXNpemluZy1yZXNldC5zdHlsIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tvdXRvLXN3aXNzL2xpYi9rb3V0by1zd2lzcy9taXhpbnMvdmVuZG9ycy5zdHlsIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tvdXRvLXN3aXNzL2xpYi9rb3V0by1zd2lzcy91dGlsaXRpZXMvcG9zaXRpb24uc3R5bCIsImFwcC9sYXlvdXQvZm9ybXMuc3R5bCIsImFwcC5jc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva291dG8tc3dpc3MvbGliL2tvdXRvLXN3aXNzL3V0aWxpdGllcy9zaXplLnN0eWwiLCJhcHAvY29uZmlnL3ZhcmlhYmxlcy5zdHlsIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2plZXQvc3R5bHVzL2plZXQvX2dyaWQuc3R5bCIsImFwcC9sYXlvdXQvcmVjZXB0aW9uLnN0eWwiLCJhcHAvbGF5b3V0L3JlZ2lzdHJhdGlvbi5zdHlsIiwiYXBwL2xheW91dC9oZWFkZXIuc3R5bCIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9rb3V0by1zd2lzcy9saWIva291dG8tc3dpc3MvdXRpbGl0aWVzL292ZXJmbG93LnN0eWwiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva291dG8tc3dpc3MvbGliL2tvdXRvLXN3aXNzL3V0aWxpdGllcy9jbGVhcmZpeC5zdHlsIiwiYXBwL2xheW91dC9tYWluLW5hdi5zdHlsIiwiYXBwL2xheW91dC9mb290ZXIuc3R5bCIsImFwcC9sYXlvdXQvY29udGFjdC5zdHlsIiwiYXBwL2xheW91dC9ob21lLnN0eWwiLCJhcHAvbGF5b3V0L3Rlcm1zLnN0eWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY2tGLGtGQ1pRLEMsQ0FBSSxJLENBQ0ksTyxDQUFNLE8sQ0FGbkYsTSxDQVE4VCxPLENBQUcsSyxDQUlzSSxLLENBUm5RLEMsQ0FGeEcsRyxDQUR0QyxVLENBRHZFLEksQ0FTNFYsTSxDQUYzRCxPLENBRmpFLE0sQ0FIMUcsSSxDQUFLLEksQ0FJb0gsRSxDQUo5RyxHLENBT2tPLE8sQ0FQN04sRyxDQUZoSSxHLENBSzZOLEUsQ0FBTyxFLENBRjlGLEUsQ0FNK04sSyxDQUg1RyxRLENBRzJILFUsQ0FBTixNLENBQ2UsTSxDQUpqSSxJLENBTjNOLEUsQ0FBTyxFLENBQ0ssRSxDQUFJLEUsQ0FBSSxFLENBQUksRSxDQVNnVixNLENBQVEsTSxDQVZ2WixJLENBSzZOLEMsQ0FMOUwsTSxDQUdrSCxHLENBQUksRyxDQUFLLEcsQ0FJbUgsSyxDQUFNLE0sQ0FEeEIsRSxDQUtzTixJLENBRGxELEksQ0FBTyxHLENBVi9ZLE0sQ0FNNE4sRSxDQUswTCxNLENBVjFXLEMsQ0FBTyxHLENBRXFGLEMsQ0FRbVIsSSxDQVI5USxDLENBQUcsSSxDQVFtUixPLENBUmhSLEssQ0FIOUosSSxDQUdtSyxNLENBQ1EsTSxDQUFRLEcsQ0FPaVEsTyxDQVB6UCxHLENBR21GLEssQ0FDZSxLLENBQWtDLEUsQ0FBekIsSyxDQUFxQixFLENBQWQsSyxDQUdnSixJLENBSHpJLEUsQ0FKcEgsRSxDQUFhLEMsQ0FFOEIsRSxDQUZ0QyxHLENBUTZRLEssQ0FDMWQsUSxDQUNBLFMsQ0FDQSxRLENBRUEsWSxDQUNBLHVCLENBbEIwQyxFLENDeURoRCxnQixDQUVBLGMsQ0FDQSx3QixDRHhDRSxPLENBQUEsSyxDQUFTLE8sQ0FBTyxVLENBQVMsTSxDQUFZLE0sQ0FBTyxNLENBQ1MsTSxDQytGekQsQyxDRC9GaUUsSSxDQUFRLEcsQ0FBTSxPLENFQXZFLGEsQ0ZHSixJLENBQ0ksYSxDQUVKLEUsQ0FBQSxFLENBQ0ksZSxDQUVKLFUsQ0FBQSxDLENBQ0ksVyxDQUVKLGdCLENBQUEsaUIsQ0FBb0MsTyxDQUFqQixRLENBR2YsWSxDQUVKLEssQ0FDSSx3QixDQUNBLGdCLENHdkNBLEksQ0NLeUIsNkIsQ0FBQSwwQixDQVNoQixxQixDRFhULEMsQ0FBRyxNLENBQUgsTyxDQ0V5QiwwQixDQUFBLHVCLENBU2hCLGtCLENIVWYsWSxDSXFIUywwQ0psSFQsUyxDQ1BNLFksQ0d5SEcsQ0FBQSwwQ0ovR1QsUSxDQ1ZNLFksQ0d5SEcsQ0o1R1gsSSxDQUFBLEksQ0FFRSxVLENBQ0EsZSxDQUVBLGEsQ0FDQSxrRCxDS3ZCTSxpQixDTHlCTixrQyxDQUNBLGMsQ0ltR1MsMENBQUEsSSxDQUFBLEksQ0pqR1AsYyxDSWlHTyxDSmhHWCxJLENBQ0Usd0IsQ010QlksdUIsQ0FEUixvQixDTndCTixJLENNeEJBLEssQ0FBQSxNLENOeUJFLHFCLENBRUYsRSxDQUNFLGEsQ0FDQSxhLENJeUZTLDBDQUFBLEUsQ0poRlAsYyxDSWdGTyxDSjlFWCxDLENBQ0UsaUIsQ0k2RVMsMENBQUEsQyxDSjNFUCxpQixDSTJFTyxDSi9DWCxJLENBMUJBLEMsQ0EwQkEsUyxDQVVFLGMsQ0duRytCLHdELENBU2hCLGdELENIc0RqQixDLENBQ0Usb0IsQ0FzQ0EsVyxDQUFTLG9CLENBbkNULGlCLENBZ0RFLHFCLENPcUlpQix5QixDUHJMbkIsUSxDQWdERSxZLENBYkYsZ0IsQ0d0RytCLGdFLENBU2hCLHdELENId0NqQixFLENBc0JBLE8sQ0FBQSxHLENBRUUsYSxDQUVTLHVCLENPZ0phLG1CLENQaEp0QixjLENBQUEsVSxDQUVFLGEsQ0E1QkosRSxDQStCQSxNLENGN0RFLGUsQ0VnRUYsSyxDQUNFLGUsQ0FFRixVLENBZkEsTyxDQUFBLEcsQ0FnQkUseUIsQ0FFRixJLENBQUEsUyxDQUVFLFcsQ0FDQSxlLENDN0VNLG9CLENEK0VOLGdCLENBQ0Esd0IsQ0Y5RUEsZSxDRWdGQSxVLENBQ0Esd0IsQ0FJQSxXLENBQVMsb0IsQ09rSlUseUIsQ1BsSm5CLGdCLENBRUUsd0IsQ0lnQ08sMENBQUEsSSxDQUFBLFMsQ0o3QlAsVyxDSTZCTyxDSnhCVCxLLENRckhNLFUsQ0FDQSxXLENMSXlCLHlELENBU2hCLGlELENIZ0hiLGlCLENBQUEsaUIsQ0FFRSxVLENBRU4sVyxDQUNFLFksQ0FFRixLLENBQ0UsaUIsQ0FDQSxVLENBRUEsYSxDSUlTLDBDQUFBLGMsQ0toRlQsVyxDQUNBLGdCLENBQ0EsaUIsQ0w4RVMsQ0pFVCxhLENLL0hNLGlCLENMaUlKLGMsQ0FFRSxzQyxDQUNFLFUsQ0twSUEsaUIsQ0ZYeUIsbUMsQ0FTaEIsMkIsQ09tUGIsUSxDUDVQNkIsa0MsQ0FBQSw4QixDQVNoQiwwQixDSHdJVCxLLENBQ0EsVyxDQUNBLDRCLENJWEcsMENBQUEsc0MsQ0phRCxXLENJYkMsYSxDSmVMLG1CLENJZkssQ0ppQlgsUSxDQzFJUSxZLENENklSLFMsQ1cxREksb0QsQ1gyREYsZSxDQUNBLGEsQ0FDQSxhLENBQ0EsZ0IsQ0ZuSkEsZSxDTTJIUywwQ0FBQSxTLENLaEZULFcsQ0FDQSxnQixDQUNBLGlCLENMOEVTLENKNEJULGtCLENXMURJLDZELENYMkRGLGEsQ0FDRixnQixDWTFFTSw4RCxDTnlMSixtQyxDQW5FQSxnQyxDS3RHRSwyRCxDWDJERixhLENBQ0YsVyxDVzFESSxzRCxDWDJERixZLENBSUosYSxDQUNFLGdCLENBQ0EsVyxDQUNBLGUsQ0FDQSxnQixDQUNFLHdCLENBQ0EsYSxDQUNBLGMsQ0FDQSx3QixDQUNBLGEsQ0Z2S0YsZSxDRXlLRSxnQixDQUNBLHNCLENBQ0UsYSxDRnpLSixlLENFMktFLDZCLENBQ0UsVyxDQUNBLGUsQ0FDRiw2QixDQUNFLFcsQ0FDRiw2QixDQUNFLGUsQ0kxREssMENBQUEsYSxDSjREUCxnQixDQUNBLFcsQ0FDQSxnQixDQUNFLGMsQ0FDQSxlLENBQ0EsNkIsQ0FDRSxXLENBQ0EsZSxDQUNBLGlCLENBQ0YsNkIsQ0FDRSxVLENBQ0EsaUIsQ0FDRiw2QixDQUNFLGlCLENJekVHLENTM0hYLE8sQ0FDRSx3QixDUkhNLGlCLENRS04sVyxDQUNBLFksQ0h5UEMsTyxDSTNRSyxlLENKNlFOLGEsQ0FBQSxjLENBQUEsd0IsQ0FBQSx5QixDQUFBLDhCLENBQUEsK0IsQ0FBQSxpRSxDQUFBLGtFLENBQUEsa0IsQ0FBQSxtQixDQUFBLG1CLENBQUEsb0IsQ0FBQSw0QixDQUFBLDZCLENBQ0UsVSxDVDlQSSxhLENTaVFOLGEsQ0FBQSx3QixDQUFBLDhCLENBQUEsaUUsQ0FBQSxrQixDQUFBLG1CLENBQUEsNEIsQ0t2UU0sVSxDRldOLGdCLENBT0UsWSxDQUNBLGEsQ0F5QkEsK0IsQ0FoQ0EsdUIsQ0FDRSxVLENaUEUsb0IsQ1lTRixxQixDQUNBLE8sQ0FDQSxXLENBSUYsc0IsQ0FDRSxVLENBQ0EsZ0IsQ0FDQSxxQixDQUNGLHVCLENBQ0UsaUIsQ1pwQkUsb0IsQ0lKQSxpQixDUTJCRixlLENBQ0Esd0IsQ2Z4QkosZSxDZTBCSSxvQixDQUNGLDJCLENBQ0UsVyxDQUNBLFcsQ0FDQSxnQixDQUNBLGdCLENBR0osd0IsQ1psQ00sb0IsQ1lvQ0osa0IsQ0FDQSxXLENBQ0EsK0IsQ0FLRSxXLENBQ0Ysb0MsQ0FDRSxjLENBQ0EsaUIsQ0FDQSwyQixDQUVKLG9CLENaakRNLG9CLENZbURKLHFCLENBQ0EsVSxDQUNBLGUsQ0FDQSx3QixDZnBERixlLENlc0RFLG1CLENBQ0Esc0IsQ0w3RUksVSxDQUNBLFcsQ1BtQkEsYSxDWTRERiwwQixDTGhGRSxVLENBQ0EsVyxDS2lGQSxTLENBQ0osMEIsQ0FBQSxvQyxDQUVFLGEsQ0FDQSxnQyxDQUFBLDBDLENBQ0UsWSxDQUtSLEssQ0FDRSxVLENBQ0Esd0IsQ0FDQSxpQixDQUNBLFMsQ0FDRSxVLENBQ0EsZ0IsQ1QyQ08sMENTcENULEksQ0FDRSxnQixDQUNGLGdCLENBQ0MsVSxDQUNELE8sQ0FDRSxXLENSOUZJLGMsQ0FpQkEsSyxDQUNBLE8sQ0FFQSxNLENRNEVKLGdCLENBQ0UsYyxDQUNBLHdCLENBQ0UsVSxDQUNBLHNCLENBQ0EsMEIsQ0xySEEsVSxDQUNBLFcsQ0tzSEUsOEIsQ0FDRSxZLENBQ04sdUIsQ0FDRSxlLENBQ0EsVSxDQUNBLHNCLENBS0Ysb0IsQ1o3R0UsYSxDWStHRixtQixDQUxGLGMsQ1oxR0ksWSxDR3lIRyxDWTVIWCxTLENBQ0UsVSxDQUNBLHdCLENBQ0EsYSxDQUNBLFcsQ0FDQSxrQixDQUNFLFUsQ0FDQSxlLENBQ0EsYSxDTnNQRCxPLENNcFBDLHdCLENOb1BELE8sQ0ExS0QsVSxDS3ZGTSxVLENMeUZOLGtCLENBQ0EsUyxDQUNZLGMsQ0FDUyxlLENNN0VqQixZLENYYkUsaUIsQ1dnQkEsaUQsQ0FDRSxVLENmYkYsYSxDZWVFLDZCLENYbkJGLGlCLENBaUJBLE8sQ0FFQSxVLENBQ0EsTSxDV0NFLFMsQ2JoQ3VCLDJELENBU2hCLG1ELENJc2tCaUMsNEMsQ1N6aUJ4QyxzQyxDVDBpQnFDLHFELENTMWlCckMsK0MsQ0FDRSxnQyxDQU1SLDBCLENYbENJLGlCLENBRUEsSyxDQUNBLE8sQ0FDQSxRLENBQ0EsTSxDVytCRixhLENsQjVCSixlLENrQjhCSSxpQixDQUNBLGlCLENBQ0Esd0IsQ0FFRSxxQyxDZnRDQSxhLENld0NFLFUsQ0FDQSx5QyxDUjdERixVLENBQ0EsVyxDUThESSxZLENiMURxQix1QixDQVNoQixlLENhbURULHdDLENmN0NBLGEsQ2UrQ0UsUyxDQUNBLGtCLENBQ0Esb0IsQ0FDQSxpQixDQUNBLHdCLENBQ0EsZSxDQUNOLGlDLENBQUEsMEMsQ0FFRSw0QixDQUNBLGtCLENBQ0EsVSxDQUNBLHVDLENBQUEsZ0QsQ0FDRSxZLENaOERHLDBDWXREVCxTLENYdkVNLGMsQ0FpQkEsUSxDQUNBLE8sQ0FFQSxNLENGL0J5QixtQyxDQUFBLCtCLENBU2hCLDJCLENBVGdCLDZELENBU2hCLHFELENhNkViLGUsQ2J0RjZCLGdDLENBQUEsNEIsQ0FTaEIsd0IsQ0FUZ0IsZ0UsQ0FTaEIsd0QsQ2FpRlgsd0IsQ2YzRUUsYSxDZTZFQSxVLENBQ0EsVSxDQUNBLGEsQ0FFRSxpRCxDZmpGRixZLENlbUZFLDRELENBQ0UsVSxDZnBGSixhLENJSkEsaUIsQ0FpQkEsSyxDQUNBLE8sQ0FFQSxNLENXdUVJLG1DLENBQ0osMEIsQ0FDRSxTLENBQ0EsbUMsQ0FDRSxXLENBQ0EsZSxDZjVGSixhLENlOEZJLGEsQ1hsR0osaUIsQ0srUEwsTyxDQUVELDJCLENBQ0UsVSxDVDlQSSxhLENTNlBOLDRCLENUN1BNLGEsQ1M2UE4seUMsQ0FBQSwwQyxDQUNFLFUsQ1Q5UEksYSxDU2lRTiwyQixDQUFBLHlDLENLdlFNLFUsQ0N3SUYscUIsQ0FqQ00scUMsQ0FFRSxVLENYdkdOLGlCLENXMEdNLFcsQ0FDQSxTLENBQ0EsaUIsQ0FDQSx5QyxDQVJGLHdDLENYckdKLGlCLENGWHlCLG1DLENBU2hCLDJCLENPeVBiLE8sQ01sSlEsd0MsQ0FFRSxVLENBVUEsZSxDYjVIbUIsa0MsQ0FBQSw4QixDQVNoQiwwQixDYXNISCxnQixDQUNBLGEsQ0FGQSxRLENBTkEseUMsQ04ySVYsUSxDUG5RNkIsc0MsQ0FBQSxrQyxDQVNoQiw4QixDS2RULFUsQ0FDQSxXLENReUlJLCtDLENBQUEsd0QsQ0FDRSxVLENBQ0YsZ0QsQ0FBQSx5RCxDQUNFLFksQ0FHSix1RCxDQUFBLGlELENBQ0UsZ0MsQ0FHTix1QixDZmhJRSxzQixDZWtJRixxQixDTnlISCxPLENLalFLLFUsQ0x5Rk4sa0IsQ0FDQSxTLENBQ1ksYyxDQUNTLGUsQ01nRGYsNEIsQ0FDRSxVLENmdklGLGEsQ0lKQSxpQixDQVlBLEssQ1drSUUsVyxDQUNBLG1DLENBRUEsd0MsQ0FDRSxPLENBRUosdUIsQ1hwSkEsaUIsQ0FFQSxLLENBQ0EsTyxDQUNBLFEsQ0FDQSxNLENXaUpFLGdCLENBQ0EsYSxDbEIvSVIsZSxDa0JpSlEsbUIsQ0FDQSxpQixDQUNBLDJCLENBQ0UsWSxDQUNGLGdDLENBQ0UsVyxDWDlKSixpQixDRlh5QixtQyxDQVNoQiwyQixDT3NQYixPLENQL1A2QixrQyxDQUFBLDhCLENBU2hCLDBCLENhbUtMLDRCLENBQ0UsYSxDUmxMTixVLENBQ0EsVyxDUW1MRSw2QixDQUFBLHVDLENBRUUsYSxDQUNBLGMsQ0FDQSxpQyxDQUFBLDJDLENBQ0UsWSxDQUlGLDJDLENBQ0UsVSxDWDlLTixpQixDQWlCQSxTLENBQ0EsTyxDQUNBLFksQ1c2Sk0scUMsQ0FDRiw2QyxDQUNFLE8sQ0FHSiw2QyxDQUNFLE0sQ1p6REQsQ2FySVYsTyxDQUNDLFUsQ0FDQSxZLENaTU0saUIsQ1lKTixRLENBQ0EsZSxDQUNBLGlCLENBQ0Esd0IsQ0FDQSxVLENBQ0Esd0IsQ2I0SFMsMENBQUEsTyxDYTFIUCxZLENiMEhPLENhdkhYLFcsQ0FDRSxVLENBQ0EsZ0IsQ1pSTSxpQixDRlh5QixtQyxDQVNoQiwyQixDT3lQYixPLENBQ0EsUSxDUG5RNkIsc0MsQ0FBQSxrQyxDQVNoQiw4QixDY1lmLGlCLENOaUNRLDBELENWdkNGLG9CLENnQlFKLG1DLENBQ0UsMEIsQ0FDRixtQixDQUNFLFUsQ0FDQSxvQixDZDNCMkIsMEQsQ0FTaEIsa0QsQ0FUZ0IsOEIsQ0FBQSwyQixDQVNoQixzQixDY3FCWCxtQixDQUNBLGMsQ0FDQSwwQixDQUFBLG1DLENBRUUsYSxDZGxDeUIsZ0UsQ0FTaEIsd0QsQ0MrSE4sMENhbkdQLGlCLENBQ0UsaUIsQ2JrR0ssQ2FoR1gsVSxDQUNFLGMsQ2IrRlMsMENBQUEsVSxDYTdGUCxjLENiNkZPLENFakhYLGMsQ0FBQSxLLENBRUUsYSxDQUNBLFcsQ0Y4R1MsMENBQUEsYyxDQUFBLEssQ0U1R1AsVSxDRjRHTyxDRTFHSixNLENBQVAsSyxDQUFBLE0sQ0FHRSx1QixDWTJCTSwwRCxDWjFCUixNLENBQ0UsVSxDS2FJLDBDLENMVkosTyxDQUNFLFcsQ0FDQSxhLENGZ0dPLDBDQUFBLE8sQ0toRlQsVyxDQUNBLGdCLENBQ0EsaUIsQ0w4RVMsQ2NsRkwsNkMsQ1o4UE4sWSxDQXJRQSxhLENJMk5HLE8sQ0p4TkQsc0IsQ0l3TkMsTyxDSnROQyxnQixDQUNBLGEsQ0x0Q0ksYSxDR3lIRywwQ0FBQSxzQixDS2hGVCxXLENBQ0EsZ0IsQ0FDQSxpQixDTDhFUyxDRS9FVCxvQixDQUNFLGEsQ0FFQSxnQixDUnpDRixlLENRMkNFLGUsQ0FDQSxpQixDQUNBLGEsQ0FDQSxVLENGdUVPLDBDQUFBLGtCLENNa0lSLE8sQ0F2UEQsVSxDS1ZNLFUsQ0xhTixXLENBQ1ksYyxDQUNTLGUsQ0o4Q2pCLGlCLENJc01KLHdCLENBQUEseUIsQ0FDRSxVLENUOVBJLGEsQ1NpUU4sd0IsQ0t2UU0sVSxDTHlCSixnQyxDQUN1QixlLENBQ3JCLFcsQ0FDRixrQyxDSzVCSSxVLENUOERGLDhCLENBQ0Usa0IsQ0FDQSxtQyxDQUNFLGlCLENBQ0oseUIsQ0FDRSxlLENGNERHLENHczJCZ0Isd0IsQ0RuNUJ2QixzQixDQUFBLDBCLENBQ0UsYSxDQ3U1QmtCLG9CLENEdDVCcEIsa0IsQ0FBQSxzQixDQUNFLGUsQ1EvRkUsZSxDUmlHRixZLENDMDVCd0IseUIsQ0R6NUJ4Qix1QixDQUFBLDJCLENEdEZFLGlCLENGWHlCLGdDLENBQUEsNEIsQ0FTaEIsd0IsQ0FpSUQsZSxDQUNBLFcsQ0FJUixTLENBL0l5Qix3RCxDQVNoQixnRCxDSTgvQm9CLGdDLENELzVCN0IsOEIsQ0FBQSxrQyxDSHhHeUIsa0MsQ0FBQSw4QixDQVNoQiwwQixDQW9JRCwrRCxDQUNBLHVCLENBQ1IsUyxDQS9JeUIsZ0UsQ0FTaEIsd0QsQ0MrSE4sMENHNDRCZSxvQixDRHQ2QnBCLGtCLENBQUEsc0IsQ0FDRSxhLENGeUJHLENFbkJULFEsQ0x0R00sYSxDS3dHTixZLENBQ0UsZSxDQUVGLFksQ0FHRSx3QixDQUNBLGUsQ0FFQSxlLENBQ0EsVyxDQVBGLDRCLENBRUUsaUIsQ0FDQSx3QixDQUNBLGUsQ0FLQSwyQixDQUNFLHdCLENBR0YsZ0MsQ0FBTyxtQyxDQUFQLG1CLENBR0UsYSxDQUNBLG9CLENBR0YsNkIsQ0RuSUksaUIsQ0NzSU4sZ0IsQ0FDRSxhLENBQ0Esa0IsQ0FDQSx5QixDQUNFLGEsQ0FDQSxpQixDQUNBLHdCLENFNUpFLFUsQ0FDQSxXLENGNkpGLFcsQ0FJTixhLENBQ0UsVyxDQUNBLGMsQ0FDQSxVLENBRUYsYyxDQUNFLGUsQ0FDQSxnQixDQUNBLG9CLENBQ0UsUSxDQUNBLGdCLENBQ0EsaUIsQ0FLSixhLENBQ0UsZSxDQUNBLG1CLENEcEtNLGlCLENDc0tKLG1CLENBa0VGLHNCLENBakVBLG1CLENBQ0UsVSxDRHhLSSxpQixDQzBLSixZLENBQ0EseUIsQ0QzS0ksaUIsQ0M2S0YsaUIsQ0FDQSxjLENBQ0EsYSxDQUpGLHlCLENBS0ksK0IsQ0FBRixnQyxDQUdFLHFCLENML0tBLG9CLENLaUxGLGdDLENFck1FLFUsQ0FDQSxXLENGb01GLCtCLENBQUEsZ0MsQ0FFRSxVLENBQ0EsaUIsQ0FFQSx3QixDQUNGLGdDLENBQ0UsZ0IsQ0Q1TEEsaUIsQ0FpQkEsSyxDQUNBLE8sQ0M0S0YsK0IsQ0Q5TEUsaUIsQ0FpQkEsSyxDQUNBLE8sQ0dsQ0EsTyxDQUNBLFEsQ0ZnTkEsYyxDQUNBLG9CLENIN015Qix1QyxDQUFBLG1DLENBU2hCLCtCLENHc01iLHVDLENBQ0UsZ0IsQ0FJQSx1QyxDQUNFLG9CLENGN0VHLDBDRWlGTCx5QixDQUNFLGEsQ0FDQSwrQixDQUNFLGEsQ0FDQSxnQixDQUNGLGdDLENFbk9BLFUsQ0FDQSxXLENGb09FLGdCLENBQ0YsK0IsQ0FDRSxRLENBQ0EsVSxDQUNKLHVDLENBQ0UsZ0IsQ0Y3RkcsQ0VtR1gsZ0IsQ0FDRSxlLENBQ0EsYyxDQUNBLHNCLENEbk9NLGlCLENDcU9KLG1CLENBQ0EsVSxDQUNBLFUsQ0FLQSw0QixDRDVPSSxpQixDQzhPRixpQixDQUNBLGMsQ0FDQSxlLENBSkYsNEIsQ0FLSSxrQyxDQUFGLG1DLENBR0UscUIsQ0xoUEEsb0IsQ0ttUEYsbUMsQ0FDRSxVLENEeFBBLGlCLENBaUJBLEssQ0FHQSxNLENHcENBLFUsQ0FDQSxXLENGMFFBLHdCLENIdFF5Qix1RCxDQVNoQiwrQyxDR2dRWCxrQyxDRDlQRSxpQixDQWlCQSxPLENBR0EsUSxDQzRPQSw4QixDRWhSQSxVLENBQ0EsVyxDRmlSQSxhLENIN1F5QiwwQixDQUFBLHNCLENBU2hCLGtCLENHdVFULGEsQ0hoUnlCLDBELENBU2hCLGtELENHeVFiLDBDLENIbFI2QiwwQixDQUFBLHNCLENBU2hCLGtCLENTcUZQLHFFLENOeUxKLDBDLENBeUdGLHFDLENBeEdJLG9CLENBT04sZSxDQUNFLFksQ0FDQSxlLENBQ0EsYSxDSHJKWSwrRCxDQUNBLHVCLENBQ1IsUyxDR3FKTixzQixDQUNFLGEsQ0gzSlksZSxDQUNBLFcsQ0FJUixTLENHeUpKLHlCLENBQ0UsYyxDQUNKLG9CLENBQ0UsaUIsQ0FDQSxnQixDQVlGLGMsQ0FDRSxjLENBQ0EsbUIsQ0FDQSx3QixDQXdCRiwyRCxDQUNFLGUsQ0FDQSxXLENBQ0EsZ0IsQ0QzVUksaUIsQ0M2VUosZSxDQUNBLG9CLENJL0VELE8sQ0ptRkMsMkUsQ0RsVkksaUIsQ0ZYeUIsbUMsQ0FTaEIsMkIsQ09zUGIsTyxDUC9QNkIsa0MsQ0FBQSw4QixDQVNoQiwwQixDR3NWYiwwRSxDQUNFLGMsQ0FDQSxRLENBQ0EsZSxDQUNBLFMsQ0FDQSxtRixDQUNFLDhCLENMdFZBLG9CLENLd1ZBLFMsQ0Q1VkEsaUIsQ0ZYeUIsbUMsQ0FTaEIsMkIsQ095UGIsTyxDQUNBLFEsQ1BuUTZCLHNDLENBQUEsa0MsQ0FTaEIsOEIsQ0dnV1QsUyxDQUdOLGdDLENBQ0UsWSxDQUNBLGEsQ0FDQSxvRCxDQUNFLHdCLENBQ0EsVSxDQUVOLG9ELENBQUEseUIsQ0FFRSx3QixDSHJYK0IsdUIsQ0FTaEIsZSxDRzhXZixlLENBS0kscUQsQ0FDRSxhLENBTVIsZSxDQUNFLHdCLENBQ0EseUIsQ0FFRixzRCxDQUNFLHNCLENhNVhFLDhCLENBQ0Usa0IsQ0FDQSxtQyxDQUNFLFcsQ0FDQSxjLENBQ0EsZSxDQUNBLFksQ0FDTixpQixDQUNFLGtCLENBQ0YsK0IsQ0FDRSxnQixDQUNBLGdCLENmaUhPLDBDZS9HUCwyQixDQUFBLHFCLENWK0JGLFcsQ0FDQSxnQixDQUNBLGlCLENVN0JJLDhCLENBQ0Usa0IsQ0FDQSxtQyxDQUNFLFcsQ0FDQSxhLENBQ0EsUyxDZHZCRixpQixDSklBLGEsQ2tCc0JFLHdDLENkMUJGLGlCLENGWHlCLG1DLENBU2hCLDJCLENPeVBiLE8sQ0FDQSxRLENQblE2QixzQyxDQUFBLGtDLENBU2hCLDhCLENnQjhCUCwrQyxDQUNFLGtCLENmZ0dELENlNUZQLDBCLENBQ0UsaUIsQ0FDQSxxQyxDckJuQ0osZSxDcUJxQ00sYSxDQUNBLGMsQ2Z1RkcsMENBQUEsWSxDZXJGUCxXLENBQ0EsZ0IsQ0FDQSxpQixDQUdJLDhCLENBQ0UsVSxDQUNGLHFDLENBQ0UsYyxDZjZFQyxDZXpFVCxzQixDQUNFLGdCLENBQ0Ysd0IsQ0FDRSxlLENQdkRKLGEsQ0FDRSx3QixDQUNBLHNCLENBQ0UsVSxDQUNBLGEsQ0FDQSx3QixDQUNFLGEsQ0FDQSwrQixDQUFBLHdDLENBRUUsYSxDQUNKLDZCLENBQ0UsVSxDQUNBLGdCLENkSkosZSxDY01JLGtCLENBQ0EsZSxDQUNGLDhCLENBQ0UsZSxDQUNGLDRCLENBQ0UsZ0IsQ0FDQSxlLENSeUdLLDBDQUFBLHNCLENRdEdMLG1CLENIc0JKLFcsQ0FDQSxnQixDQUNBLGlCLENHdEJJLDZCLENBQ0UsYyxDQUNBLGMsQ0FDRix3QixDQUNFLGUsQ0FDRiw0QixDQUNFLGMsQ1I4RkcsQ1F0RlQsZ0MsQ0FBQSx1QixDQUVFLFcsQ1JvRk8sMENBQUEsc0IsQ01rSVIsTyxDQXZQRCxVLENLVk0sVSxDTFlOLGtCLENBQ0EsVyxDQUNZLGMsQ0FDUyxlLENBb1ByQiw0QixDQUFBLDZCLENBQ0UsVSxDVDlQSSxhLENTaVFOLDRCLENLdlFNLFUsQ0x5Qkosb0MsQ0FDdUIsZSxDQUNyQixXLENBQ0Ysc0MsQ0s1QkksVSxDSCtDRixrQyxDQUNFLGtCLENBQ0EsdUMsQ0FDRSxpQixDUjZFQyxDUTVFVCw4QixDQUNFLHdCLENBQ0EsZSxDQUNBLGEsQ0FDQSxlLENBQ0EseUIsQ0FDQSxlLENBQ0EsYyxDQUNBLFcsQ0FDQSxpQyxDTWlDQSx5QyxDTmhDRSxvQixDQUVGLGdELENBQ0UsZSxDQUNBLHNCLENBQ0Ysa0QsQ0FDRSxlLENBQ0Esc0IsQ0FDSiw2QixDQUNFLGUsQ0FDQSxrQixDQUNBLG9DLENBQ0Usa0IsQ0FHRSx1RCxDQUNFLGdCLENBQ0EsOEQsQ1A1RUYsaUIsQ0FpQkEsSyxDQUdBLE0sQ08wREUsNkQsQ1A5RUYsaUIsQ0FpQkEsSyxDQUdBLFMsQ0R5R0csMENRckNELHVELENBQ0UsZSxDQUNBLDZELENBQ0UsUSxDQUNBLFEsQ1JpQ0gsQ1EvQlgsTyxDQUNFLGlCLENBQ0EsbUIsQ0E4QkUsZ0IsQ0E3QkYsYyxDWDdGTSxvQixDVytGSixjLENSMEJPLDBDQUFBLE8sQ1F2QlAsbUIsQ0h6REYsVyxDQUNBLGdCLENBQ0EsaUIsQ0w4RVMsQ1FwQlgsSyxDQUNFLG1CLENBQ0EsVSxDQUNFLGtCLENSaUJPLDBDQUFBLFUsQ1FmTCxnQixDQUNBLG1CLENSY0ssQ1FiVCxXLENYNUdNLFksQ1c4R04sVyxDQUNFLGEsQ0FDQSxlLENBQ0EsaUIsQ0FFSixJLENBQ0Usa0IsQ0FDQSxXLENBQ0UsYyxDQUNGLFMsQ1h2SE0sYSxDV3lISixnQixDQUtFLHNCLENBQ0UsYSxDZC9ITixlLENjaUlNLGEsQ0FDQSxpQixDQUVSLFEsQ0FDRSxnQixDQUVFLCtCLENNekhBLG9DLENBWkEsbUMsQ0FFQSxrQyxDUEdBLHFDLENDaUlFLGlCLENBQ0EsK0MsQ0FDRSxVLENBQ0EsYyxDQUNKLHVCLENNNUhFLDBDLENQQ0EsNEMsQ0M0SEEsZSxDRGhKRixnQyxDQUNFLGUsQ1ZFRSxvQixDVUNSLDJCLENBQ0UsZ0IsQ1B1SFMsMENBQUEsMkIsQ09ySFAsZ0IsQ1BxSE8sQ09wSFQsa0MsQ0FDRSxrQixDQUdGLG9DLENBQ0UsZSxDQUNBLGEsQ0FDQSx1QyxDQUNFLGEsQ2JUSixlLENhaUJBLDhDLENBQ0Usa0IsQ0FFRixnQyxDQUNFLGUsQ0FDQSwwQyxDQUNFLGUsQ0FDQSxpQixDQUVGLHVDLENBQ0Usd0IsQ05uQ0UsaUIsQ013Q0YsZ0QsQ0FDRSxrQixDQUlBLHNELENBQ0Usa0IsQ0FDRix1RCxDQUNFLE8sQ0FDQSxpQixDTmpERixpQixDTW1ERSxVLENBQ0EsYyxDQUNGLHlELENBQ0UsVyxDQUNBLDhELENBQ0UsYyxDUHFFRCwwQ09uRUcsbUUsQ0FDRSxpQixDUGtFTCxDT2pFUCx5QyxDQUNFLGlCLENJL0RFLFUsQ0ppRUYsZSxDQUdGLDJELENBQ0UsZSxDUDBESywwQ092RFAsa0MsQ0FDRSxhLENBQ0Esd0MsQ1ZwRUUsYSxDVXNFQSxpQixDQUVGLG9ELENBQVcsdUQsQ0FDd0IsMEMsQ0FEbkMsMEMsQ0YvQkosVyxDQUNBLGdCLENBQ0EsaUIsQ0w4RVMsQ08xQ1QscUMsQ0FDRSx3QixDQUNBLFMsQ0FDQSxpQixDUHVDTywwQ0FBQSxvRCxDS2hGVCxXLENBQ0EsZ0IsQ0FDQSxpQixDTDhFUyxDT3RCVCxjLENBQ0UsZSxDQUNBLGMsQ0FDSixjLENBQ0UsWSxDQUNBLHFCLENBQ0EsNEIsQ083R0YseUIsQ0FDRSxnQixDQUNBLGdDLENBQ0Usa0IsQ0FDQSxlLENBQ0EsYSxDQUtGLGtDLENBQ0UsZSxDQUNBLGEsQ0FDQSxxQyxDQUNFLGEsQ3BCTkosZSxDb0JRSSxnQixDQUNBLGlCLENBT0osd0MsQ0FDRSxlLENBQ0EsYSxDQUNBLGMsQ0FDQSwwQyxDQUNFLGMsQ0FDRiwyQyxDQUNFLGdCLENBQ0EsYSxDcEJ4QkosZSxDb0IyQkksNkMsQ0FDRSxhLENBRUosd0MsQ0FDRSxvQixDQUNBLHVELENIMUNFLFcsQ0c0Q0EsVyxDUnVOTiwwRCxDQUFBLDJELENBQUEsbUQsQ0FBQSxvRCxDQUNFLFUsQ1Q5UEksYSxDU2lRTiwwRCxDQUFBLG1ELENLdlFNLFUsQ0crQ0Esb0QsQ1JrTkwsTyxDQXZQRCxVLENLVk0sVSxDTFlOLGtCLENBQ0EsVyxDQUNZLGMsQ0FDUyxlLENBVW5CLGtFLENBQ3VCLGUsQ0FDckIsVyxDQUNGLG9FLENLNUJJLFUsQ1grSEcsMENBQUEsb0QsQ01rSVIsTyxDQXZQRCxVLENLVk0sVSxDTFlOLGtCLENBQ0EsVSxDQUNZLGMsQ0FDUyxlLENBb1ByQiwwRCxDQUFBLDJELENBQ0UsVSxDVDlQSSxhLENTaVFOLDBELENLdlFNLFUsQ0wrQkosK0QsQ0FDdUIsZSxDTitGaEIsQ0FBQSwwQ2N4RVAsOEMsQ0FDSSxXLENBQ0EsdUQsQ0FDRSxVLENBQ0YsbUQsQ0FDRSxjLENBQ0Esd0QsQ0FDRSxpQixDZGlFRCxDQUFBLDBDQUFBLHlCLENjOURQLGdCLENBQ0EsZ0MsQ1RuQkYsVyxDQUNBLGdCLENBQ0EsaUIsQ1NtQkksYSxDQUNBLHNDLENqQi9ERSxhLENpQmlFQSxpQixDQUNKLDBDLENBQ0UsVyxDQUNBLG1ELENBQ0UsVSxDZG9ERyxDY25EVCxtQyxDQUNFLGMsQ0FDQSx3QixDQUNBLGUsQ2RnRE8sMENBQUEsbUMsQ2M5Q0wsVSxDZDhDSyxDYzVDVCxzQyxDQUNFLHdCLENBQ0EsZSxDQUNBLGEsQ0FDQSxlLENBQ0EseUIsQ0FDQSxlLENBQ0EsYyxDQUNBLFcsQ0FDQSxXLENFM0ZKLHVCLENBQ0UsYyxDQUNBLDhCLENBQ0UsZSxDQUVGLGdDLENBQ0UsWSxDQUNBLGEsQ0FDQSxlLENBQ0EsbUMsQ0FBQSxrQyxDQUNFLGtCLENBQ0YsbUMsQ0FBQSx1QyxDdEJKRixlLENzQk1FLG1DLENBQ0UsZ0IsQ3RCUEosZSxDc0JTSSxzQyxDQUNFLHVCLEN0QlZOLGUsQ3NCWU0sd0QsQ0FDRSxjLENBQ0Ysd0MsQ3RCbEJOLGUsQ00ySFMsMENBQUEsdUIsQ2dCckdQLG1CLENBQ0EsOEIsQ0FDRSxhLENBQ0Esb0MsQ25CdkJFLGEsQ21CeUJBLGlCLENBQ0osZ0MsQ1hlRixXLENBQ0EsZ0IsQ0FDQSxpQixDTDhFUyIsImZpbGUiOiJhcHAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgRm9udHMgZGVjbGFyYXRpb25zXG4gKlxuICogIEBhdXRob3IgV0VfQVJFXG5cbiAqIF9HT08gIEdvb2dsZSBmb250c1xuICogX0lDTyAgSWNvbnMgIChmb250ZmFjZSlcbiAqL1xuXG5mb250RGVmYXVsdCA9IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWZcblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19HT09dICAvICBHb29nbGUgZm9udHNcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGltcG9ydCB1cmwoJ2h0dHA6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU9wZW4rU2FuczozMDAsNDAwLDYwMCw3MDAsODAwJylcbl9mLW9wZW5TYW5zID0gJ09wZW4gU2FucycsIGZvbnREZWZhdWx0XG5cbmxpZ2h0KClcbiAgZm9udC13ZWlnaHQ6IDMwMFxubm9ybWFsKClcbiAgZm9udC13ZWlnaHQ6IDQwMFxuc2VtaWJvbGQoKVxuICBmb250LXdlaWdodDogNjAwXG5ib2xkKClcbiAgZm9udC13ZWlnaHQ6IDcwMFxuZXh0cmFib2xkKClcbiAgZm9udC13ZWlnaHQ6IDgwMFxuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBfSUNPICBJY29ucyAgKGZvbnRmYWNlKVxuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZm9udC1mYWNlXG4vLyAgIGZvbnQtZmFtaWx5ICdpY29tb29uJ1xuLy8gICBzcmMgdXJsKCcuLi9mb250cy9pY29tb29uLmVvdD8teTFhb284Jylcbi8vICAgc3JjIHVybCgnLi4vZm9udHMvaWNvbW9vbi5lb3Q/I2llZml4LXkxYW9vOCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbi8vICAgICB1cmwoJy4uL2ZvbnRzL2ljb21vb24ud29mZj8teTFhb284JykgZm9ybWF0KCd3b2ZmJyksXG4vLyAgICAgdXJsKCcuLi9mb250cy9pY29tb29uLnR0Zj8teTFhb284JykgZm9ybWF0KCd0cnVldHlwZScpLFxuLy8gICAgIHVybCgnLi4vZm9udHMvaWNvbW9vbi5zdmc/LXkxYW9vOCNpY29tb29uJykgZm9ybWF0KCdzdmcnKVxuLy8gICBmb250LXdlaWdodCBub3JtYWxcbi8vICAgZm9udC1zdHlsZSBub3JtYWxcblxuLy8gW2NsYXNzXj1cImljb24tXCJdLCBbY2xhc3MqPVwiIGljb24tXCJdXG4vLyAgIGZvbnQtZmFtaWx5ICdpY29tb29uJ1xuLy8gICBzcGVhayBub25lXG4vLyAgIGZvbnQtc3R5bGUgbm9ybWFsXG4vLyAgIGZvbnQtd2VpZ2h0IG5vcm1hbFxuLy8gICBmb250LXZhcmlhbnQgbm9ybWFsXG4vLyAgIHRleHQtdHJhbnNmb3JtIG5vbmVcbi8vICAgbGluZS1oZWlnaHQgMVxuXG4vLyAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuLy8gICAtd2Via2l0LWZvbnQtc21vb3RoaW5nIGFudGlhbGlhc2VkXG4vLyAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nIGdyYXlzY2FsZVxuIiwia3MtbWV5ZXItcmVzZXQoKVxuICAgIGh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG4gICAgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuICAgIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgICBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuICAgIGIsIHUsIGksIGNlbnRlcixcbiAgICBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuICAgIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxuICAgIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuICAgIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxuICAgIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbiAgICBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbiAgICB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW9cbiAgICAgICAgbWFyZ2luOiAwXG4gICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgYm9yZGVyOiAwXG4gICAgICAgIGZvbnQtc2l6ZTogMTAwJVxuICAgICAgICBmb250OiBpbmhlcml0XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxuXG4gICAgYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSxcbiAgICBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb25cbiAgICAgICAgZGlzcGxheTogYmxvY2tcblxuICAgIGJvZHlcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFcblxuICAgIG9sLCB1bFxuICAgICAgICBsaXN0LXN0eWxlOiBub25lXG5cbiAgICBibG9ja3F1b3RlLCBxXG4gICAgICAgIHF1b3Rlczogbm9uZVxuXG4gICAgYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsXG4gICAgcTpiZWZvcmUsIHE6YWZ0ZXJcbiAgICAgICAgY29udGVudDogXCJcIlxuICAgICAgICBjb250ZW50OiBub25lXG5cbiAgICB0YWJsZVxuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlXG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwXG5cbm1leWVyLXJlc2V0ID0ga3MtbWV5ZXItcmVzZXQgdW5sZXNzIGtzLW5vLWNvbmZsaWN0XG4iLCIvKipcbiAqICBHZW5lcmljIGxheW91dFxuICpcbiAqICBAYXV0aG9yIFdFX0FSRVxuICovXG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfVEFCXSAgLyAgVGFibGUgb2YgQ29udGVudHNcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLypcbiAgX1RBQiAgLyBUYWJsZSBvZiBDb250ZW50c1xuICBfR0VOICAvIEdlbmVyaWNcbiAgX1RBQiAgLyBUYWJsZXNcbiAgX1NFQyAgLyBTZWN0aW9uXG4qL1xuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0dFTl0gIC8gIEdlbmVyaWNcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5tZXllci1yZXNldCgpXG5ib3gtc2l6aW5nLXJlc2V0KClcblxuKixcbio6YmVmb3JlLFxuKjphZnRlclxuICBvdXRsaW5lIG5vbmVcblxuK21vYmlsZSgpXG4gIC5fZGVza3RvcFxuICAgIGRpc3BsYXkgbm9uZVxuK2Rlc2t0b3AoKVxuICAuX21vYmlsZVxuICAgIGRpc3BsYXkgbm9uZVxuXG5odG1sLFxuYm9keVxuICB3aWR0aCAxMDAlXG4gIG1pbi1oZWlnaHQgMTAwJVxuICAvLyBiYWNrZ3JvdW5kLWNvbG9yIF9jLXdoaXRlXG4gIGNvbG9yIF9jLWJsYWNrXG4gIGZvbnQtZmFtaWx5IF9mLW9wZW5TYW5zXG4gIHBvc2l0aW9uIHJlbGF0aXZlXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmcgYW50aWFsaWFzZWRcbiAgZm9udC1zaXplIDE0cHhcbiAgK21vYmlsZSgpXG4gICAgZm9udC1zaXplIDEwcHhcbmh0bWxcbiAgYmFja2dyb3VuZC1jb2xvcjogX2MtYWNjZW50XG5ib2R5XG4gIGJhY2tncm91bmQtY29sb3I6IF9jLXdoaXRlXG5cbmgxXG4gIGNvbG9yOiBfYy1hbHRcbiAgZm9udC1zaXplOiBfZnotcmVndWxhclxuXG5oMlxuICBjb2xvcjogX2MtYWNjZW50XG4gIGZvbnQtc2l6ZTogX2Z6LWJpZ1xuICBleHRyYWJvbGQoKVxuICBtYXJnaW4tYm90dG9tOiAxZW1cbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZVxuICArbW9iaWxlKClcbiAgICBmb250LXNpemU6IDE0cHhcblxucFxuICBsaW5lLWhlaWdodDogMS40ZW1cbiAgK21vYmlsZSgpXG4gICAgbGluZS1oZWlnaHQ6IDEuNmVtXG5cbmFcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gIHRyYW5zaXRpb24gLjZzIGFsbCBlYXNpbmcoJ291dC1xdWFkJylcbiAgY3Vyc29yIHBvaW50ZXJcbiAgJi4tYWN0aWYsXG4gIC5uby10b3VjaCAmOmhvdmVyXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gZWFzaW5nKCdvdXQtY2lyYycpXG5cbmxhYmVsIGEsXG5wIGFcbiAgY29sb3IgX2MtYWNjZW50XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXG4gICYuLWFjdGlmLFxuICAubm8tdG91Y2ggJjpob3ZlclxuICAgIGNvbG9yOiBkYXJrZW4oX2MtYWNjZW50LCAzMCUpXG5cblxuc3Ryb25nXG4gIGV4dHJhYm9sZCgpXG5cbnNtYWxsXG4gIGZvbnQtc2l6ZTogX2Z6LW1lZGl1bVxuXG4udW5kZXJsaW5lXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXG5cbi5idG4sXG5pbnB1dC5idG5cbiAgaGVpZ2h0IDUwcHhcbiAgcGFkZGluZyAxZW0gMmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgZm9udC1zaXplOiBfZnotYWNjZW50XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2VcbiAgYm9sZCgpXG4gIGNvbG9yOiBfYy13aGl0ZVxuICBiYWNrZ3JvdW5kLWNvbG9yOiBfYy1hY2NlbnRcbiAgY3Vyc29yIHBvaW50ZXJcbiAgLy8gYmFja2dyb3VuZC1jb2xvcjogX2MtYWx0XG4gIHRyYW5zaXRpb24gLjZzIGFsbCBlYXNpbmcoJ291dC1xdWFkJylcbiAgJi4tYWN0aWYsXG4gIC5uby10b3VjaCAmOmhvdmVyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKF9jLWFjY2VudCwgMzAlKVxuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIGVhc2luZygnb3V0LWNpcmMnKVxuICArbW9iaWxlKClcbiAgICBoZWlnaHQgNDBweFxuXG5cbmlcbiAgZGlzcGxheSBibG9ja1xuICA+c3ZnXG4gICAgc2l6ZSAxMDAlXG4gICAgdHJhbnNpdGlvbiAuNnMgZmlsbCBlYXNpbmcoJ291dC1xdWFkJylcbiAgICAmLi1hY3RpZixcbiAgICAubm8tdG91Y2ggJjpob3ZlclxuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gZWFzaW5nKCdvdXQtY2lyYycpXG5cbi5sb2dvXG4gICYuX21vYmlsZVxuICAgIGRpYlxuICAgID5pbWdcbiAgICAgIHdpZHRoIDkwcHhcblxuLnNhZmUtd2lkdGhcbiAgd2lkdGggX3ctc2FmZVxuXG4jbWFpblxuICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgd2lkdGggMTAwJVxuICAvLyBtYXgtd2lkdGggX3ctc2FmZVxuICBtYXJnaW4gMCBhdXRvXG4gID4uY29udGVudFxuICAgICttb2JpbGUoKVxuICAgICAgbW9iaWxlLXNhZmUoKVxuXG5cbiAgPnNlY3Rpb25cbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBwYWRkaW5nIDgwcHggMFxuICAgICY6bm90KDpmaXJzdC1jaGlsZClcbiAgICAgICY6YmVmb3JlXG4gICAgICAgIGNvbnRlbnQgJydcbiAgICAgICAgYWxpZ24oaClcbiAgICAgICAgdG9wIDBcbiAgICAgICAgd2lkdGggNjAwcHhcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIF9jLWxpZ2h0XG4gICAgICAgICttb2JpbGUoKVxuICAgICAgICAgIHdpZHRoIF93LXNhZmUtbW9iaWxlXG4gICAgK21vYmlsZSgpXG4gICAgICBwYWRkaW5nIDQwcHggMCAzMHB4XG5cbi5faGlkZGVuXG4gIGRpc3BsYXkgbm9uZVxuXG4jZm9ybS1tc2dcbiAgbWF4LXdpZHRoIDgwMHB4XG4gIG1hcmdpbiAwIGF1dG9cbiAgcGFkZGluZyA2ZW0gMFxuICBmb250LXNpemU6IF9mei1hY2NlbnRcbiAgbm9ybWFsKClcbiAgK21vYmlsZSgpXG4gICAgbW9iaWxlLXNhZmUoKVxuICAmLi1zdWNjZXNzXG4gICAgY29sb3IgX2MtYmxhY2tcbiAgJi4tZXJyb3JcbiAgICBjb2xvciBfYy1lcnJvclxuICA+cFxuICAgIG1hcmdpbiAxZW0gMFxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19UQUJdICAvICBUYWJsZXNcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmdhbW1lcy10YWJsZVxuICBtYXJnaW4gNDBweCBhdXRvXG4gIHdpZHRoIDU1MHB4XG4gIHRleHQtYWxpZ246IGxlZnRcbiAgdGRcbiAgICBib3JkZXIgMXB4IHNvbGlkIF9jLWxpZ2h0XG4gICAgYm9yZGVyLWxlZnQgMFxuICAgIGJvcmRlci1yaWdodCAwXG4gICAgcGFkZGluZyAxMnB4IDAgMTJweCAyMnB4XG4gICAgY29sb3IgX2MtYWNjZW50XG4gICAgc2VtaWJvbGQoKVxuICAgIHRleHQtYWxpZ246IHJpZ2h0XG4gICAgJi4tZ3JleVxuICAgICAgY29sb3IgX2MtYmxhY2tcbiAgICAgIGJvbGQoKVxuICAgICY6bnRoLWNoaWxkKDEpXG4gICAgICB3aWR0aCAyNTBweFxuICAgICAgdGV4dC1hbGlnbjogbGVmdFxuICAgICY6bnRoLWNoaWxkKDIpXG4gICAgICB3aWR0aCAxNDVweFxuICAgICY6bnRoLWNoaWxkKDQpXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICttb2JpbGUoKVxuICAgIG1hcmdpbiAyMHB4IGF1dG9cbiAgICB3aWR0aCAyODBweFxuICAgIHRkXG4gICAgICBwYWRkaW5nIC45ZW0gMFxuICAgICAgZm9udC1zaXplOiBfZnotbWVkaXVtXG4gICAgICAmOm50aC1jaGlsZCgxKVxuICAgICAgICB3aWR0aCAxMzBweFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICAgICAgIHBhZGRpbmctbGVmdDogLjZlbVxuICAgICAgJjpudGgtY2hpbGQoMilcbiAgICAgICAgd2lkdGggNzVweFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW1cbiAgICAgICY6bnRoLWNoaWxkKDQpXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxuXG5cbi8vIGh0bWxcbi8vICAgYmFja2dyb3VuZCBiZWlnZSB1cmwoJy9pbWFnZXMvX2RlYnVnL21vYmlsZS5wbmcnKSB0b3AgbGVmdCBuby1yZXBlYXRcbi8vICAgYmFja2dyb3VuZCBiZWlnZSB1cmwoJy9pbWFnZXMvX2RlYnVnL21vYmlsZS1uby1tZW51LnBuZycpIHRvcCBsZWZ0IG5vLXJlcGVhdFxuLy8gICBiYWNrZ3JvdW5kIGJlaWdlIHVybCgnL2ltYWdlcy9fZGVidWcvZm9ybS1tb2JpbGUucG5nJykgdG9wIGxlZnQgbm8tcmVwZWF0XG4iLCJfa3Mtc3VwcG9ydC1vbGQtZmxleC1pbXBsZW1lbnRhdGlvbigpXG4gICAgcmV0dXJuIGtzLXN1cHBvcnQtc2FmYXJpIDw9IDYgb3Iga3Mtc3VwcG9ydC1hbmRyb2lkLWJyb3dzZXIgPD0gNC4zIG9yIGtzLXN1cHBvcnQtY2hyb21lIDw9IDIwIG9yIGtzLXN1cHBvcnQtaW9zLXNhZmFyaSA8PSA2LjEgb3Iga3Mtc3VwcG9ydC1ibGFja2JlcnJ5LWJyb3dzZXIgPD0gN1xuXG5rcy1kaXNwbGF5KCB2YWx1ZSwgYXJncy4uLiApXG4gICAgaWYgdmFsdWUgPT0gZmxleFxuICAgICAgICBpZiBrcy12ZW5kb3JzLXByZWZpeGVzIGlzbnQgZmFsc2UgYW5kICEoIGZsZXggaW4ga3Mtc3VwcG9ydC1pZ25vcmUtZmVhdHVyZXMgKSBhbmQgISggZmxleGJveCBpbiBrcy1zdXBwb3J0LWlnbm9yZS1mZWF0dXJlcyApXG4gICAgICAgICAgICBpZiBfa3Mtc3VwcG9ydC1vbGQtZmxleC1pbXBsZW1lbnRhdGlvbigpXG4gICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3ggYXJnc1xuICAgICAgICAgICAgZm9yIHByZWZpeCBpbiBjYW5pdXNlLXByZWZpeGVzKCBcImZsZXhib3hcIiApXG4gICAgICAgICAgICAgICAgaWYgcHJlZml4IGlzIFwid2Via2l0XCJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4IGFyZ3NcbiAgICAgICAgICAgICAgICBpZiBwcmVmaXggaXMgXCJtb3pcIlxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAtbW96LWJveCBhcmdzXG4gICAgICAgICAgICAgICAgaWYgcHJlZml4IGlzIFwibXNcIlxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveCBhcmdzXG4gICAgICAgIGRpc3BsYXk6IGZsZXggYXJnc1xuICAgIGVsc2UgaWYgdmFsdWUgPT0gaW5saW5lLWZsZXhcbiAgICAgICAgaWYga3MtdmVuZG9ycy1wcmVmaXhlcyBpc250IGZhbHNlIGFuZCAhKCBmbGV4IGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzICkgYW5kICEoIGZsZXhib3ggaW4ga3Mtc3VwcG9ydC1pZ25vcmUtZmVhdHVyZXMgKVxuICAgICAgICAgICAgZm9yIHByZWZpeCBpbiBjYW5pdXNlLXByZWZpeGVzKCBcImZsZXhib3hcIiApXG4gICAgICAgICAgICAgICAgZGlzcGxheTogdW5xdW90ZSggXCItXCIgKyBwcmVmaXggKyBcIi1pbmxpbmUtZmxleFwiICkgYXJnc1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCBhcmdzXG4gICAgZWxzZVxuICAgICAgICBkaXNwbGF5OiB2YWx1ZSBhcmdzXG5cbmRpc3BsYXkgPSBrcy1kaXNwbGF5IHVubGVzcyBrcy1uby1jb25mbGljdFxuXG51bmxlc3Mga3Mtbm8tY29uZmxpY3RcbiAgICBmbGV4LWdyb3coKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZmxleC1ncm93XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuXG4gICAgZmxleC1iYXNpcygpXG4gICAgICAgIGtzLXZlbmRvciggXCJmbGV4LWJhc2lzXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuXG4gICAgZmxleC1kaXJlY3Rpb24oIHZhbHVlLCBhcmdzLi4uIClcbiAgICAgICAgaWYga3MtdmVuZG9ycy1wcmVmaXhlcyBpc250IGZhbHNlIGFuZCAhKCBmbGV4IGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzICkgYW5kICEoIGZsZXhib3ggaW4ga3Mtc3VwcG9ydC1pZ25vcmUtZmVhdHVyZXMgKVxuICAgICAgICAgICAgaWYgX2tzLXN1cHBvcnQtb2xkLWZsZXgtaW1wbGVtZW50YXRpb24oKVxuICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIHJvd1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgYXJnc1xuICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIHJvdy1yZXZlcnNlXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgYXJnc1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2UgYXJnc1xuICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIGNvbHVtblxuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWwgYXJnc1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCBhcmdzXG4gICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgY29sdW1uLXJldmVyc2VcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlIGFyZ3NcbiAgICAgICAgICAgIGZvciBwcmVmaXggaW4gY2FuaXVzZS1wcmVmaXhlcyggXCJmbGV4Ym94XCIgKVxuICAgICAgICAgICAgICAgIGlmIHByZWZpeCBpcyBcIm1velwiIGFuZCBrcy1zdXBwb3J0LWZpcmVmb3ggPD0gMjBcbiAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgcm93XG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1vcmllbnQ6IHZlcnRpY2FsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LWRpcmVjdGlvbjogbm9ybWFsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgcm93LXJldmVyc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LW9yaWVudDogdmVydGljYWwgYXJnc1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtZGlyZWN0aW9uOiByZXZlcnNlIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LWJveC1vcmllbnQ6IGhvcml6b250YWwgYXJnc1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtZGlyZWN0aW9uOiBub3JtYWwgYXJnc1xuICAgICAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBjb2x1bW4tcmV2ZXJzZVxuICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtb3JpZW50OiBob3Jpem9udGFsIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LWRpcmVjdGlvbjogcmV2ZXJzZSBhcmdzXG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyByb3dcbiAgICAgICAgICAgICAgICAgICAgICAgIC17cHJlZml4fS1mbGV4LWRpcmVjdGlvbjogdW5xdW90ZSggXCJyb3dcIiApIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiB2YWx1ZSBpcyBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgIC17cHJlZml4fS1mbGV4LWRpcmVjdGlvbjogdW5xdW90ZSggXCJjb2x1bW5cIiApIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgLXtwcmVmaXh9LWZsZXgtZGlyZWN0aW9uOiB2YWx1ZSBhcmdzXG4gICAgICAgIGlmIHZhbHVlIGlzIHJvd1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHVucXVvdGUoIFwicm93XCIgKSBhcmdzXG4gICAgICAgIGVsc2UgaWYgdmFsdWUgaXMgY29sdW1uXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogdW5xdW90ZSggXCJjb2x1bW5cIiApIGFyZ3NcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHZhbHVlIGFyZ3NcblxuICAgIGZsZXgtZmxvdyggZGlyLCB3cmFwLXR5cGUsIGFyZ3MuLi4gKVxuICAgICAgICBpZiBkaXIgaXMgcm93XG4gICAgICAgICAgICBkaXIgPSB1bnF1b3RlKCBcInJvd1wiIClcbiAgICAgICAgaWYgZGlyIGlzIGNvbHVtblxuICAgICAgICAgICAgZGlyID0gdW5xdW90ZSggXCJjb2x1bW5cIiApXG4gICAgICAgIGlmIGtzLXZlbmRvcnMtcHJlZml4ZXMgaXNudCBmYWxzZSBhbmQgISggZmxleCBpbiBrcy1zdXBwb3J0LWlnbm9yZS1mZWF0dXJlcyApIGFuZCAhKCBmbGV4Ym94IGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzIClcbiAgICAgICAgICAgIGZvciBwcmVmaXggaW4gY2FuaXVzZS1wcmVmaXhlcyggXCJmbGV4Ym94XCIgKVxuICAgICAgICAgICAgICAgIC17cHJlZml4fS1mbGV4LWZsb3c6IGRpciB3cmFwLXR5cGUgYXJnc1xuICAgICAgICBmbGV4LWZsb3c6IGRpciB3cmFwLXR5cGUgYXJnc1xuXG4gICAgZmxleC1zaHJpbmsoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZmxleC1zaHJpbmtcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImZsZXhib3hcIiApXG5cbiAgICBmbGV4LXdyYXAoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZmxleC13cmFwXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuXG4gICAgZmxleCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJmbGV4XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuXG4gICAgYWxpZ24tY29udGVudCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbGlnbi1jb250ZW50XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuXG4gICAgYWxpZ24taXRlbXMoIHZhbHVlLCBhcmdzLi4uIClcbiAgICAgICAgaWYga3MtdmVuZG9ycy1wcmVmaXhlcyBpc250IGZhbHNlIGFuZCAhKCBmbGV4IGluIGtzLXN1cHBvcnQtaWdub3JlLWZlYXR1cmVzICkgYW5kICEoIGZsZXhib3ggaW4ga3Mtc3VwcG9ydC1pZ25vcmUtZmVhdHVyZXMgKVxuICAgICAgICAgICAgaWYgX2tzLXN1cHBvcnQtb2xkLWZsZXgtaW1wbGVtZW50YXRpb24oKVxuICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIGZsZXgtc3RhcnRcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0IGFyZ3NcbiAgICAgICAgICAgICAgICBlbHNlIGlmIHZhbHVlIGlzIGZsZXgtZW5kXG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQgYXJnc1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHZhbHVlIGFyZ3NcbiAgICAgICAgICAgIGZvciBwcmVmaXggaW4gY2FuaXVzZS1wcmVmaXhlcyggXCJmbGV4Ym94XCIgKVxuICAgICAgICAgICAgICAgIGlmIHByZWZpeCBpcyBcIm1velwiIGFuZCBrcy1zdXBwb3J0LWZpcmVmb3ggPD0gMjBcbiAgICAgICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgZmxleC1zdGFydFxuICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtYWxpZ246IHN0YXJ0IGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiB2YWx1ZSBpcyBmbGV4LWVuZFxuICAgICAgICAgICAgICAgICAgICAgICAgLW1vei1ib3gtYWxpZ246IGVuZCBhcmdzXG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC1tb3otYm94LWFsaWduOiB2YWx1ZSBhcmdzXG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAte3ByZWZpeH0tYWxpZ24taXRlbXM6IHZhbHVlIGFyZ3NcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiB2YWx1ZSBhcmdzXG5cbiAgICBhbGlnbi1zZWxmKClcbiAgICAgICAga3MtdmVuZG9yKCBcImFsaWduLXNlbGZcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImZsZXhib3hcIiApXG4iLCJrcy1ib3gtc2l6aW5nLXJlc2V0KClcbiAgICBpZiBzZWxlY3RvcigpIGlzIFwiJlwiXG4gICAgICAgIGh0bWxcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3hcblxuICAgICAgICAqLCAqOmJlZm9yZSwgKjphZnRlclxuICAgICAgICAgICAgYm94LXNpemluZzogaW5oZXJpdFxuICAgIGVsc2VcbiAgICAgICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXJcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3hcblxuYm94LXNpemluZy1yZXNldCA9IGtzLWJveC1zaXppbmctcmVzZXQgdW5sZXNzIGtzLW5vLWNvbmZsaWN0XG4iLCJrcy12ZW5kb3JzLXByZWZpeGVzID0gcmVjb21tZW5kZWRcblxua3MtdmVuZG9yKCBwcm9wZXJ0eSwgdmFsdWUsIGZlYXR1cmUgPSBudWxsLCBwcmVmaXhlcyA9IG51bGwsIG9mZmljaWFsID0gdHJ1ZSApXG4gICAgdW5sZXNzIFwidmVuZG9yXCIgaW4gY2FsbGVkLWZyb21cbiAgICAgICAgaWYgZmVhdHVyZSBpc250IG51bGwgYW5kICEoIGZlYXR1cmUgaW4ga3Mtc3VwcG9ydC1pZ25vcmUtZmVhdHVyZXMgKVxuICAgICAgICAgICAgZm9yIHByZWZpeCBpbiBjYW5pdXNlLXByZWZpeGVzKCBmZWF0dXJlIClcbiAgICAgICAgICAgICAgICBwcmVmaXhlZHByb3BlcnR5ID0gXCItXCIgKyBwcmVmaXggKyBcIi1cIiArIHByb3BlcnR5XG4gICAgICAgICAgICAgICAge3ByZWZpeGVkcHJvcGVydHl9OiB2YWx1ZVxuICAgICAgICBlbHNlIGlmIGtzLXZlbmRvcnMtcHJlZml4ZXMgaXNudCBmYWxzZVxuICAgICAgICAgICAgICAgIGlmIGtzLXZlbmRvcnMtcHJlZml4ZXMgaXNudCByZWNvbW1lbmRlZFxuICAgICAgICAgICAgICAgICAgICBwcmVmaXhlcyA9IGtzLXZlbmRvcnMtcHJlZml4ZXNcbiAgICAgICAgICAgICAgICBpZiBwcmVmaXhlc1xuICAgICAgICAgICAgICAgICAgICBmb3IgcHJlZml4IGluIHByZWZpeGVzXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhlZHByb3BlcnR5ID0gXCItXCIgKyBwcmVmaXggKyBcIi1cIiArIHByb3BlcnR5XG4gICAgICAgICAgICAgICAgICAgICAgICB7cHJlZml4ZWRwcm9wZXJ0eX06IHZhbHVlXG4gICAgaWYgb2ZmaWNpYWxcbiAgICAgICAge3Byb3BlcnR5fTogdmFsdWVcblxudmVuZG9yID0ga3MtdmVuZG9yIHVubGVzcyBrcy1uby1jb25mbGljdFxuXG51bmxlc3Mga3Mtbm8tY29uZmxpY3RcbiAgICBhbmltYXRpb24oKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYW5pbWF0aW9uXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtYW5pbWF0aW9uXCIgKVxuICAgIGFuaW1hdGlvbi1kZWxheSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbmltYXRpb24tZGVsYXlcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1hbmltYXRpb25cIiApXG4gICAgYW5pbWF0aW9uLWRpcmVjdGlvbigpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbmltYXRpb24tZGlyZWN0aW9uXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtYW5pbWF0aW9uXCIgKVxuICAgIGFuaW1hdGlvbi1kdXJhdGlvbigpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbmltYXRpb24tZHVyYXRpb25cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1hbmltYXRpb25cIiApXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbmltYXRpb24tZmlsbC1tb2RlXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtYW5pbWF0aW9uXCIgKVxuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWFuaW1hdGlvblwiIClcbiAgICBhbmltYXRpb24tbmFtZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbmltYXRpb24tbmFtZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWFuaW1hdGlvblwiIClcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJhbmltYXRpb24tcGxheS1zdGF0ZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWFuaW1hdGlvblwiIClcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKClcbiAgICAgICAga3MtdmVuZG9yKCBcImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb25cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1hbmltYXRpb25cIiApXG5cbiAgICBhcHBlYXJhbmNlKClcbiAgICAgICAga3MtdmVuZG9yKCBcImFwcGVhcmFuY2VcIiwgYXJndW1lbnRzLCBwcmVmaXhlczogd2Via2l0IG1veiApXG5cbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5KClcbiAgICAgICAga3MtdmVuZG9yKCBcImJhY2tmYWNlLXZpc2liaWxpdHlcIiwgYXJndW1lbnRzLCBwcmVmaXhlczogd2Via2l0IG1zIClcblxuICAgIGJhY2tncm91bmQtY2xpcCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJiYWNrZ3JvdW5kLWNsaXBcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImJhY2tncm91bmQtaW1nLW9wdHNcIiApXG4gICAgYmFja2dyb3VuZC1vcmlnaW4oKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYmFja2dyb3VuZC1vcmlnaW5cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImJhY2tncm91bmQtaW1nLW9wdHNcIiApXG4gICAgYmFja2dyb3VuZC1zaXplKClcbiAgICAgICAga3MtdmVuZG9yKCBcImJhY2tncm91bmQtc2l6ZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiYmFja2dyb3VuZC1pbWctb3B0c1wiIClcblxuICAgIGJvcmRlci1pbWFnZS1zb3VyY2UoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYm9yZGVyLWltYWdlLXNvdXJjZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiYm9yZGVyLWltYWdlXCIgKVxuICAgIGJvcmRlci1pbWFnZS1zbGljZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJib3JkZXItaW1hZ2Utc2xpY2VcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImJvcmRlci1pbWFnZVwiIClcbiAgICBib3JkZXItaW1hZ2Utd2lkdGgoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiYm9yZGVyLWltYWdlLXdpZHRoXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJib3JkZXItaW1hZ2VcIiApXG4gICAgYm9yZGVyLWltYWdlLW91dHNldCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJib3JkZXItaW1hZ2Utb3V0c2V0XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJib3JkZXItaW1hZ2VcIiApXG4gICAgYm9yZGVyLWltYWdlLXJlcGVhdCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJib3JkZXItaW1hZ2UtcmVwZWF0XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJib3JkZXItaW1hZ2VcIiApXG4gICAgYm9yZGVyLWltYWdlKClcbiAgICAgICAga3MtdmVuZG9yKCBcImJvcmRlci1pbWFnZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiYm9yZGVyLWltYWdlXCIgKVxuXG4gICAgYm94LXNoYWRvdygpXG4gICAgICAgIGtzLXZlbmRvciggXCJib3gtc2hhZG93XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtYm94c2hhZG93XCIgKVxuXG4gICAgYm94LXNpemluZygpXG4gICAgICAgIGtzLXZlbmRvciggXCJib3gtc2l6aW5nXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MzLWJveHNpemluZ1wiIClcblxuICAgIGNsaXAtcGF0aCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJjbGlwLXBhdGhcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1jbGlwLXBhdGhcIiApXG5cbiAgICBjb2x1bW4tY291bnQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY29sdW1uLWNvdW50XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJtdWx0aWNvbHVtblwiIClcbiAgICBjb2x1bW4tZmlsbCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJjb2x1bW4tZmlsbFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwibXVsdGljb2x1bW5cIiApXG4gICAgY29sdW1uLWdhcCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJjb2x1bW4tZ2FwXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJtdWx0aWNvbHVtblwiIClcbiAgICBjb2x1bW4tcnVsZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJjb2x1bW4tcnVsZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwibXVsdGljb2x1bW5cIiApXG4gICAgY29sdW1uLXJ1bGUtY29sb3IoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY29sdW1uLXJ1bGUtY29sb3JcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcIm11bHRpY29sdW1uXCIgKVxuICAgIGNvbHVtbi1ydWxlLXN0eWxlKClcbiAgICAgICAga3MtdmVuZG9yKCBcImNvbHVtbi1ydWxlLXN0eWxlXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJtdWx0aWNvbHVtblwiIClcbiAgICBjb2x1bW4tcnVsZS13aWR0aCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJjb2x1bW4tcnVsZS13aWR0aFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwibXVsdGljb2x1bW5cIiApXG4gICAgY29sdW1uLXNwYW4oKVxuICAgICAgICBrcy12ZW5kb3IoIFwiY29sdW1uLXNwYW5cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcIm11bHRpY29sdW1uXCIpXG4gICAgY29sdW1uLXdpZHRoKClcbiAgICAgICAga3MtdmVuZG9yKCBcImNvbHVtbi13aWR0aFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwibXVsdGljb2x1bW5cIiApXG4gICAgY29sdW1ucygpXG4gICAgICAgIGtzLXZlbmRvciggXCJjb2x1bW5zXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJtdWx0aWNvbHVtblwiIClcblxuICAgIGdyaWQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC1hcmVhKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtYXJlYVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC1hdXRvLWNvbHVtbnMoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC1hdXRvLWNvbHVtbnNcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtYXV0by1mbG93KClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtYXV0by1mbG93XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLWF1dG8tcG9zaXRpb24oKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC1hdXRvLXBvc2l0aW9uXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLWF1dG8tcm93cygpXG4gICAgICAgIGtzLXZlbmRvciggXCJncmlkLWF1dG8tcm93c1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC1jb2x1bW4oKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC1jb2x1bW5cIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtY29sdW1uLWVuZCgpXG4gICAgICAgIGtzLXZlbmRvciggXCJncmlkLWNvbHVtbi1lbmRcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtY29sdW1uLXN0YXJ0KClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtY29sdW1uLXN0YXJ0XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLXJvdygpXG4gICAgICAgIGtzLXZlbmRvciggXCJncmlkLXJvd1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC1yb3ctZW5kKClcbiAgICAgICAga3MtdmVuZG9yKCBcImdyaWQtcm93LWVuZFwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC1yb3ctc3RhcnQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC1yb3ctc3RhcnRcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImNzcy1ncmlkXCIgKVxuICAgIGdyaWQtdGVtcGxhdGUoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC10ZW1wbGF0ZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWdyaWRcIiApXG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhcygpXG4gICAgICAgIGtzLXZlbmRvciggXCJncmlkLXRlbXBsYXRlLWFyZWFzXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnMoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcbiAgICBncmlkLXRlbXBsYXRlLXJvd3MoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiZ3JpZC10ZW1wbGF0ZS1yb3dzXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtZ3JpZFwiIClcblxuICAgIGh5cGhlbnMoKVxuICAgICAgICBrcy12ZW5kb3IoIFwiaHlwaGVuc1wiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLWh5cGhlbnNcIiApXG5cbiAgICBqdXN0aWZ5LWNvbnRlbnQoKVxuICAgICAgICBrcy12ZW5kb3IoIFwianVzdGlmeS1jb250ZW50XCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJmbGV4Ym94XCIgKVxuXG4gICAgbWFzaygpXG4gICAgICAgIGtzLXZlbmRvciggXCJtYXNrXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtbWFza3NcIiApXG5cbiAgICBvcGFjaXR5KCB2YWx1ZSApXG4gICAgICAgIGlmIHZhbHVlID09IGluaGVyaXQgb3IgdmFsdWUgPT0gaW5pdGlhbFxuICAgICAgICAgICAgLW1zLWZpbHRlciB2YWx1ZVxuICAgICAgICAgICAgZmlsdGVyIHZhbHVlXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHZhbCA9IHJvdW5kKCB2YWx1ZSAqIDEwMCApXG4gICAgICAgICAgICBpZiB2YWwgPT0gMTAwXG4gICAgICAgICAgICAgICAgLW1zLWZpbHRlcjogbm9uZVxuICAgICAgICAgICAgICAgIGZpbHRlcjogbm9uZVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIC1tcy1maWx0ZXI6ICdcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PSVzKVwiJyAlIHZhbFxuICAgICAgICAgICAgICAgIGZpbHRlcjogJ2FscGhhKG9wYWNpdHk9JXMpJyAlIHZhbFxuICAgICAgICBvcGFjaXR5OiB2YWx1ZVxuXG4gICAgb3JkZXIoKVxuICAgICAgICBrcy12ZW5kb3IoIFwib3JkZXJcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcImZsZXhib3hcIiApXG5cbiAgICBwZXJzcGVjdGl2ZSgpXG4gICAgICAgIGlmIGN1cnJlbnQtcHJvcGVydHlbIDAgXSBpcyBcInBlcnNwZWN0aXZlXCJcbiAgICAgICAgICAgIGtzLXZlbmRvciggXCJwZXJzcGVjdGl2ZVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwidHJhbnNmb3JtczNkXCIgKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB1bnF1b3RlKCBcInBlcnNwZWN0aXZlKFwiICsgYXJndW1lbnRzICsgXCIpXCIgKVxuXG4gICAgcGVyc3BlY3RpdmUtb3JpZ2luKClcbiAgICAgICAga3MtdmVuZG9yKCBcInBlcnNwZWN0aXZlLW9yaWdpblwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwidHJhbnNmb3JtczNkXCIgKVxuXG4gICAgdHJhbnNmb3JtKClcbiAgICAgICAga3MtdmVuZG9yKCBcInRyYW5zZm9ybVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwidHJhbnNmb3JtczJkXCIgKVxuICAgIHRyYW5zZm9ybS1vcmlnaW4oKVxuICAgICAgICBrcy12ZW5kb3IoIFwidHJhbnNmb3JtLW9yaWdpblwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwidHJhbnNmb3JtczJkXCIgKVxuICAgIHRyYW5zZm9ybS1zdHlsZSgpXG4gICAgICAgIGtzLXZlbmRvciggXCJ0cmFuc2Zvcm0tc3R5bGVcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcInRyYW5zZm9ybXMzZFwiIClcblxuICAgIHRyYW5zaXRpb24oKVxuICAgICAgICBrcy12ZW5kb3IoIFwidHJhbnNpdGlvblwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLXRyYW5zaXRpb25zXCIgKVxuICAgIHRyYW5zaXRpb24tZGVsYXkoKVxuICAgICAgICBrcy12ZW5kb3IoIFwidHJhbnNpdGlvbi1kZWxheVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLXRyYW5zaXRpb25zXCIgKVxuICAgIHRyYW5zaXRpb24tZHVyYXRpb24oKVxuICAgICAgICBrcy12ZW5kb3IoIFwidHJhbnNpdGlvbi1kdXJhdGlvblwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLXRyYW5zaXRpb25zXCIgKVxuICAgIHRyYW5zaXRpb24tcHJvcGVydHkoKVxuICAgICAgICBrcy12ZW5kb3IoIFwidHJhbnNpdGlvbi1wcm9wZXJ0eVwiLCBhcmd1bWVudHMsIGZlYXR1cmU6IFwiY3NzLXRyYW5zaXRpb25zXCIgKVxuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKClcbiAgICAgICAga3MtdmVuZG9yKCBcInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXCIsIGFyZ3VtZW50cywgZmVhdHVyZTogXCJjc3MtdHJhbnNpdGlvbnNcIiApXG5cbiAgICB1c2VyLXNlbGVjdCggdmFsdWUgKVxuICAgICAgICBrcy12ZW5kb3IoIFwidXNlci1zZWxlY3RcIiwgYXJndW1lbnRzLCBmZWF0dXJlOiBcInVzZXItc2VsZWN0LW5vbmVcIiApXG4iLCJiYXNlLWZvbnQtc2l6ZSA/PSAxNnB4XG5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcyA/PSBmYWxzZVxuXG5ydXB0dXJlID0ge1xuICByYXN0ZXJpc2UtbWVkaWEtcXVlcmllczogcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXNcbiAgbW9iaWxlLWN1dG9mZjogNDAwcHhcbiAgZGVza3RvcC1jdXRvZmY6IDEwNTBweFxuICBoZC1jdXRvZmY6IDE4MDBweFxuICBlbmFibGUtZW0tYnJlYWtwb2ludHM6IGZhbHNlXG4gIGJhc2UtZm9udC1zaXplOiBiYXNlLWZvbnQtc2l6ZVxuICBhbnRpLW92ZXJsYXA6IGZhbHNlXG4gIGRlbnNpdHktcXVlcmllczogJ2RwcHgnICd3ZWJraXQnICdtb3onICdkcGknXG4gIHJldGluYS1kZW5zaXR5OiAxLjVcbiAgdXNlLWRldmljZS13aWR0aDogZmFsc2Vcbn1cbnJ1cHR1cmUuc2NhbGUgPSAwIChydXB0dXJlLm1vYmlsZS1jdXRvZmYpIDYwMHB4IDgwMHB4IChydXB0dXJlLmRlc2t0b3AtY3V0b2ZmKSAocnVwdHVyZS5oZC1jdXRvZmYpXG5ydXB0dXJlLnNjYWxlLW5hbWVzID0gJ3hzJyAncycgJ20nICdsJyAneGwnICdoZCdcblxuLWlzLXN0cmluZyh2YWwpXG4gIGlmIHR5cGVvZih2YWwpIGlzIG5vdCAndW5pdCdcbiAgICBpZiB2YWwgaXMgYSAnc3RyaW5nJyBvciB2YWwgaXMgYSAnaWRlbnQnXG4gICAgICB0cnVlXG4gICAgZWxzZVxuICAgICAgZmFsc2VcbiAgZWxzZVxuICAgIGZhbHNlXG5cbi1nZXQtc2NhbGUtbnVtYmVyKHNjYWxlLW5hbWUpXG4gIGZvciBsaXN0LWl0ZW0sIGkgaW4gcnVwdHVyZS5zY2FsZS1uYW1lc1xuICAgIGlmIGxpc3QtaXRlbSBpcyBzY2FsZS1uYW1lXG4gICAgICByZXR1cm4gaSArIDFcbiAgcmV0dXJuIGZhbHNlXG5cbi1jb252ZXJ0LXRvKHRvLXVuaXQsIHZhbHVlLCBjb250ZXh0ID0gcnVwdHVyZS5iYXNlLWZvbnQtc2l6ZSlcbiAgZnJvbS11bml0ID0gdW5pdCh2YWx1ZSlcbiAgcmV0dXJuIHZhbHVlIGlmIHRvLXVuaXQgaXMgZnJvbS11bml0XG4gIGlmIHRvLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHZhbHVlIGlmIGZyb20tdW5pdCBpbiAoJ2VtJyAncmVtJylcbiAgICByZXR1cm4gdW5pdCgodmFsdWUgLyBjb250ZXh0KSwgdG8tdW5pdClcbiAgaWYgdG8tdW5pdCBpcyAncHgnXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlICogY29udGV4dCksICdweCcpXG5cbi1vbi1zY2FsZShuKVxuICByZXR1cm4gdW5pdChuKSBpcyAnJ1xuXG4tbGFyZ2VyLXRoYW4tc2NhbGUobilcbiAgcmV0dXJuIChuID4gKGxlbmd0aChydXB0dXJlLnNjYWxlKSAtIDEpKSBhbmQgLW9uLXNjYWxlKG4pXG5cbi1pcy16ZXJvKG4pXG4gIHJldHVybiBuIGlzIDBcblxuLW92ZXJsYXAtc2hpZnQoYW50aS1vdmVybGFwLCBuKVxuICBzaGlmdC11bml0ID0gdW5pdChuKVxuICBhbnRpLW92ZXJsYXAgPSAwcHggdW5sZXNzIGFudGktb3ZlcmxhcFxuICBhbnRpLW92ZXJsYXAgPSAxcHggaWYgYW50aS1vdmVybGFwIGlzIHRydWVcbiAgaWYgbGVuZ3RoKGFudGktb3ZlcmxhcCkgaXMgMVxuICAgIHJldHVybiAtY29udmVydC10byhzaGlmdC11bml0LCBhbnRpLW92ZXJsYXApXG4gIGZvciB2YWwgaW4gYW50aS1vdmVybGFwXG4gICAgcmV0dXJuIHZhbCBpZiB1bml0KHZhbCkgaXMgc2hpZnQtdW5pdFxuXG4tYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCBuLCBzaWRlID0gJ21pbicpXG4gIC1zaGlmdCA9IC1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgaWYgKHNpZGUgaXMgJ21pbicgYW5kIC1zaGlmdCA+IDApIG9yIChzaWRlIGlzICdtYXgnIGFuZCAtc2hpZnQgPCAwKVxuICAgIG4gPSBuICsgLXNoaWZ0XG4gIHJldHVybiBuXG5cbi1pcy1wb3NpdGl2ZShuKVxuICByZXR1cm4gbiA+PSAwXG5cbi1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgaWYgdHlwZW9mKGRlbnNpdHkpIGlzIG5vdCAndW5pdCdcbiAgICBpZiBub3QgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9ICclcycgJSBkZW5zaXR5XG4gIGRlbnNpdHkgPSBydXB0dXJlLnJldGluYS1kZW5zaXR5IGlmIGRlbnNpdHkgaXMgJ3JldGluYSdcbiAgcXVlcmllcyA9ICgpXG4gIGZvciBxdWVyeSBpbiBydXB0dXJlLmRlbnNpdHktcXVlcmllc1xuICAgIGlmIHF1ZXJ5IGlzICd3ZWJraXQnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ21veidcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnbydcbiAgICAgIHB1c2gocXVlcmllcywgJygtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcy8xKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAncmF0aW8nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcGknXG4gICAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICAgIGRlbnNpdHk9Y29udmVydChkZW5zaXR5KVxuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwaSknICUgKHJvdW5kKGRlbnNpdHkgKiA5NiwgMSkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ2RwcHgnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLXJlc29sdXRpb246ICVzZHBweCknICUgKGRlbnNpdHkpKVxuICByZXR1cm4gcXVlcmllc1xuXG5jcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGNsYXNzKVxuICAveycnICsgY2xhc3MgKyAnICcgKyBzZWxlY3RlZH1cbiAgICB7YmxvY2t9XG5cbi8vICtiZXR3ZWVuKG1pbiwgbWF4KVxuLy8gdXNhZ2UgKHNjYWxlIGNhbiBiZSBtaXhlZCB3aXRoIGN1c3RvbSB2YWx1ZXMpOlxuLy8gICAtICtiZXR3ZWVuKDEsIDMpIHNjYWxlOnNjYWxlXG4vLyAgIC0gK2JldHdlZW4oMCwgMykgMCB3aWR0aDpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDIwMHB4LCA1MDBweCkgY3VzdG9tOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDAsIDMwMHB4KSAwIHdpZHRoOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDEsIDMwMHB4KSBzY2FsZTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigyMDBweCwgNCkgY3VzdG9tOnNjYWxlXG5cbmJldHdlZW4obWluLCBtYXgsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgaWYgLWlzLXN0cmluZyhtaW4pXG4gICAgbWluID0gLWdldC1zY2FsZS1udW1iZXIobWluKVxuICBpZiAtaXMtc3RyaW5nKG1heClcbiAgICBtYXggPSAtZ2V0LXNjYWxlLW51bWJlcihtYXgpXG5cbiAgLW1pbiA9IHJ1cHR1cmUuc2NhbGVbbWluIC0gMV0gdW5sZXNzIC1pcy16ZXJvKG1pbikgb3IgKG5vdCAtb24tc2NhbGUobWluKSlcbiAgLW1heCA9IHJ1cHR1cmUuc2NhbGVbbWF4XSB1bmxlc3Mgbm90IC1vbi1zY2FsZShtYXgpXG4gIC1taW4gPz0gbWluXG4gIC1tYXggPz0gbWF4XG5cbiAgaWYgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgbm90IChkZW5zaXR5IG9yIC1tYXggb3Igb3JpZW50YXRpb24pXG4gICAgICB7YmxvY2t9XG4gIGVsc2VcbiAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4nXG4gICAgdXNlLWRldmljZS13aWR0aCA9IHVzZS1kZXZpY2Utd2lkdGggPyAnZGV2aWNlLScgOiAnJ1xuICAgIHVubGVzcyAtbWluIGlzIDBcbiAgICAgIC1taW4gPSAtY29udmVydC10bygnZW0nLCAtbWluKSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1pbiA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1taW4sIHNpZGU6ICdtaW4nKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1pbi0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWluKVxuICAgIHVubGVzcyAtbGFyZ2VyLXRoYW4tc2NhbGUobWF4KVxuICAgICAgLW1heCA9IC1jb252ZXJ0LXRvKCdlbScsIC1tYXgpIGlmIHJ1cHR1cmUuZW5hYmxlLWVtLWJyZWFrcG9pbnRzXG4gICAgICAtbWF4ID0gLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgLW1heCwgc2lkZTogJ21heCcpXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAobWF4LScgKyB1c2UtZGV2aWNlLXdpZHRoICsgJ3dpZHRoOiAlcyknICUgKC1tYXgpXG4gICAgaWYgb3JpZW50YXRpb25cbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICBpZiBkZW5zaXR5XG4gICAgICBjb25kaXRpb25zID0gKClcbiAgICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uICsgJyBhbmQgJXMnICUgKHF1ZXJ5KSlcbiAgICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICB7YmxvY2t9XG5cbmF0KHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5mcm9tLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBsZW5ndGgocnVwdHVyZS5zY2FsZSksIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuYWJvdmUgPSBmcm9tLXdpZHRoXG5cbnRvLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKDEsIHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmJlbG93ID0gdG8td2lkdGhcblxubW9iaWxlKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JlbG93KHJ1cHR1cmUubW9iaWxlLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG50YWJsZXQoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihydXB0dXJlLm1vYmlsZS1jdXRvZmYsIHJ1cHR1cmUuZGVza3RvcC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZGVza3RvcChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmhkKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2Fib3ZlKHJ1cHR1cmUuaGQtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlbnNpdHkoZGVuc2l0eSwgb3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgY29uZGl0aW9ucyA9ICgpXG4gICAgZm9yIHF1ZXJ5IGluIC1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgICAgIGNvbmRpdGlvbiA9ICdvbmx5IHNjcmVlbiBhbmQgJXMnICUgKHF1ZXJ5KVxuICAgICAgaWYgb3JpZW50YXRpb25cbiAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG9yaWVudGF0aW9uOiAlcyknICUgKG9yaWVudGF0aW9uKVxuICAgICAgcHVzaChjb25kaXRpb25zLCBjb25kaXRpb24pXG4gICAgY29uZGl0aW9uID0gam9pbignLCAnLCBjb25kaXRpb25zKVxuICAgIEBtZWRpYSBjb25kaXRpb25cbiAgICAgIHtibG9ja31cbiAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cblxucGl4ZWwtcmF0aW8gPSBkZW5zaXR5XG5cbnJldGluYShvcmllbnRhdGlvbiA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgK2RlbnNpdHkoJ3JldGluYScsIG9yaWVudGF0aW9uLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmxhbmRzY2FwZShkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBsYW5kc2NhcGUsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcbiAgICAgICAge2Jsb2NrfVxuICAgICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgICAge2Jsb2NrfVxuXG5wb3J0cmFpdChkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBwb3J0cmFpdCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cbiAgICBlbHNlXG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cbiIsImtzLXBvc2l0aW9uKCBwb3MsIHZhbHVlcyApXG4gICAgaWYgbGFzdCggdmFsdWVzICkgPT0gXCIhaW1wb3J0YW50XCJcbiAgICAgICAgX3ZvaWQgPSBwb3AoIHZhbHVlcyApXG4gICAgICAgIGltcG9ydGFudCA9IFwiIWltcG9ydGFudFwiXG4gICAgZWxzZVxuICAgICAgICBpbXBvcnRhbnQgPSBcIlwiXG4gICAgaWYgcG9zID09IHN0aWNreVxuICAgICAgICBpZiAhKCBcImNzcy1zdGlja3lcIiBpbiBrcy1zdXBwb3J0LWlnbm9yZS1mZWF0dXJlcyApXG4gICAgICAgICAgICBmb3IgcHJlZml4IGluIGNhbml1c2UtcHJlZml4ZXMoIFwiY3NzLXN0aWNreVwiIClcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogdW5xdW90ZSggXCItXCIgKyBwcmVmaXggKyBcIi1zdGlja3kgXCIgKyBpbXBvcnRhbnQgKVxuICAgICAgICBlbHNlIGlmIGtzLXZlbmRvcnMtcHJlZml4ZXMgaXNudCBmYWxzZVxuICAgICAgICAgICAgICAgIGlmIGtzLXZlbmRvcnMtcHJlZml4ZXMgaXNudCByZWNvbW1lbmRlZFxuICAgICAgICAgICAgICAgICAgICBwcmVmaXhlcyA9IGtzLXZlbmRvcnMtcHJlZml4ZXNcbiAgICAgICAgICAgICAgICBpZiBwcmVmaXhlc1xuICAgICAgICAgICAgICAgICAgICBmb3IgcHJlZml4IGluIHByZWZpeGVzXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogdW5xdW90ZSggXCItXCIgKyBwcmVmaXggKyBcIi1zdGlja3kgXCIgKyBpbXBvcnRhbnQgKVxuICAgICAgICBwb3NpdGlvbjogdW5xdW90ZSggXCJzdGlja3kgXCIgKyBpbXBvcnRhbnQgKVxuICAgIGVsc2VcbiAgICAgICAgcG9zaXRpb246IHBvcyB1bnF1b3RlKCBpbXBvcnRhbnQgKVxuICAgIGlmIGxlbmd0aCggdmFsdWVzICkgPT0gMSAmJiB2YWx1ZXNbIDAgXSAhPSBmYWxzZVxuICAgICAgICB0b3A6IHZhbHVlc1sgMCBdIHVucXVvdGUoIGltcG9ydGFudCApXG4gICAgICAgIHJpZ2h0OiB2YWx1ZXNbIDAgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKVxuICAgICAgICBib3R0b206IHZhbHVlc1sgMCBdIHVucXVvdGUoIGltcG9ydGFudCApXG4gICAgICAgIGxlZnQ6IHZhbHVlc1sgMCBdIHVucXVvdGUoIGltcG9ydGFudCApXG4gICAgaWYgbGVuZ3RoKCB2YWx1ZXMgKSA9PSAyXG4gICAgICAgIHRvcDogdmFsdWVzWyAwIF0gdW5xdW90ZSggaW1wb3J0YW50ICkgaWYgdmFsdWVzWyAwIF0gIT0gZmFsc2VcbiAgICAgICAgcmlnaHQ6IHZhbHVlc1sgMSBdIHVucXVvdGUoIGltcG9ydGFudCApIGlmIHZhbHVlc1sgMSBdICE9IGZhbHNlXG4gICAgICAgIGJvdHRvbTogdmFsdWVzWyAwIF0gdW5xdW90ZSggaW1wb3J0YW50ICkgaWYgdmFsdWVzWyAwIF0gIT0gZmFsc2VcbiAgICAgICAgbGVmdDogdmFsdWVzWyAxIF0gdW5xdW90ZSggaW1wb3J0YW50ICkgaWYgdmFsdWVzWyAxIF0gIT0gZmFsc2VcbiAgICBpZiBsZW5ndGgoIHZhbHVlcyApID09IDNcbiAgICAgICAgdG9wOiB2YWx1ZXNbIDAgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKSBpZiB2YWx1ZXNbIDAgXSAhPSBmYWxzZVxuICAgICAgICByaWdodDogdmFsdWVzWyAxIF0gdW5xdW90ZSggaW1wb3J0YW50ICkgaWYgdmFsdWVzWyAxIF0gIT0gZmFsc2VcbiAgICAgICAgYm90dG9tOiB2YWx1ZXNbIDIgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKSBpZiB2YWx1ZXNbIDIgXSAhPSBmYWxzZVxuICAgICAgICBsZWZ0OiB2YWx1ZXNbIDEgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKSBpZiB2YWx1ZXNbIDEgXSAhPSBmYWxzZVxuICAgIGlmIGxlbmd0aCggdmFsdWVzICkgPT0gNFxuICAgICAgICB0b3A6IHZhbHVlc1sgMCBdIHVucXVvdGUoIGltcG9ydGFudCApIGlmIHZhbHVlc1sgMCBdICE9IGZhbHNlXG4gICAgICAgIHJpZ2h0OiB2YWx1ZXNbIDEgXSB1bnF1b3RlKCBpbXBvcnRhbnQgKSBpZiB2YWx1ZXNbIDEgXSAhPSBmYWxzZVxuICAgICAgICBib3R0b206IHZhbHVlc1sgMiBdIHVucXVvdGUoIGltcG9ydGFudCApIGlmIHZhbHVlc1sgMiBdICE9IGZhbHNlXG4gICAgICAgIGxlZnQ6IHZhbHVlc1sgMyBdIHVucXVvdGUoIGltcG9ydGFudCApIGlmIHZhbHVlc1sgMyBdICE9IGZhbHNlXG5cbmtzLXN0YXRpYyggdmFsdWVzLi4uIClcbiAgICBrcy1wb3NpdGlvbiggc3RhdGljLCB2YWx1ZXMgKVxuXG5rcy1yZWxhdGl2ZSggdmFsdWVzLi4uIClcbiAgICBrcy1wb3NpdGlvbiggcmVsYXRpdmUsIHZhbHVlcyApXG5cbmtzLWFic29sdXRlKCB2YWx1ZXMuLi4gKVxuICAgIGtzLXBvc2l0aW9uKCBhYnNvbHV0ZSwgdmFsdWVzIClcblxua3MtZml4ZWQoIHZhbHVlcy4uLiApXG4gICAga3MtcG9zaXRpb24oIGZpeGVkLCB2YWx1ZXMgKVxuXG5rcy1zdGlja3koIHZhbHVlcy4uLiApXG4gICAga3MtcG9zaXRpb24oIHN0aWNreSwgdmFsdWVzIClcblxudW5sZXNzIGtzLW5vLWNvbmZsaWN0XG4gICAgc3RhdGljKCB2YWx1ZXMuLi4gKVxuICAgICAgICBrcy1wb3NpdGlvbiggc3RhdGljLCB2YWx1ZXMgKVxuXG4gICAgcmVsYXRpdmUoIHZhbHVlcy4uLiApXG4gICAgICAgIGtzLXBvc2l0aW9uKCByZWxhdGl2ZSwgdmFsdWVzIClcblxuICAgIGFic29sdXRlKCB2YWx1ZXMuLi4gKVxuICAgICAgICBrcy1wb3NpdGlvbiggYWJzb2x1dGUsIHZhbHVlcyApXG5cbiAgICBmaXhlZCggdmFsdWVzLi4uIClcbiAgICAgICAga3MtcG9zaXRpb24oIGZpeGVkLCB2YWx1ZXMgKVxuXG4gICAgc3RpY2t5KCB2YWx1ZXMuLi4gKVxuICAgICAgICBrcy1wb3NpdGlvbiggc3RpY2t5LCB2YWx1ZXMgKVxuXG4gICAgcG9zaXRpb24oIHZhbHVlLCB2YWx1ZXMuLi4gKVxuICAgICAgICBrcy1wb3NpdGlvbiggdmFsdWUsIHZhbHVlcyApXG4iLCIvKipcbiAqICBGb3JtcyBzdHlsZXNcbiAqXG4gKiAgQGF1dGhvciBXRV9BUkVcbiAqL1xuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX1RBQl0gIC8gIFRhYmxlIG9mIENvbnRlbnRzXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qXG4gIF9UQUIgIC8gVGFibGUgb2YgQ29udGVudHNcbiAgX0dFTiAgLyBHZW5lcmljXG4gIF9GSUUgIC8gRmllbGRzZXRzICgrIGNvbHMgZXRjKVxuICBfTEFCICAvIExhYmVsXG4gIF9JTlAgIC8gSW5wdXRzIChnZW5lcmFsKVxuICBfQ0hFICAvIENoZWNrYm94XG4gIF9NU0cgIC8gTWVzc2FnZXMgKGVycm9yIGV0YylcbiAgX09USCAgLyBPdGhlcnNcbiAgX0RFQiAgLyBEZWJ1Z1xuICBfU0VMICAvIFNlbGVjdDJcbiovXG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfR0VOXSAgLyAgR2VuZXJpY1xuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5pbnB1dCxcbnNlbGVjdCxcbi4tcmFkaW8gbGFiZWw6YmVmb3JlLFxuLi1jaGVja2JveCBsYWJlbDpiZWZvcmVcbiAgYmFja2dyb3VuZC1jb2xvcjogX2Mtd2hpdGVcbmlucHV0LFxuLnNlbGVjdC13YXBwZXJcbiAgZm9udC1zaXplOiBfZnotcmVndWxhclxuICB3aWR0aCAyNTBweFxuICArbW9iaWxlKClcbiAgICB3aWR0aCAxMDAlXG5cbnNlbGVjdCxcbmlucHV0LFxuYnV0dG9uXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZVxuc2VsZWN0XG4gIHdpZHRoIDEwMCVcblxuZm9ybVxuICA+aHJcbiAgICB3aWR0aCA2MDBweFxuICAgIG1hcmdpbiAwIGF1dG9cbiAgICArbW9iaWxlKClcbiAgICAgIG1vYmlsZS1zYWZlKClcblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19GSUVdICAvICBGaWVsZHNldHMgKCsgY29scyBldGMpXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZvcm0gZmllbGRzZXRcbiAgLy8gcGFkZGluZyAyZW0gMCA2ZW1cbiAgY2YoKVxuICA+LndyYXBwZXJcbiAgICBjZigpXG4gICAgbWF4LXdpZHRoIF93LXNhZmVcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgZGlzcGxheSBibG9ja1xuICAgICttb2JpbGUoKVxuICAgICAgbW9iaWxlLXNhZmUoKVxuICBsZWdlbmRcbiAgICBjb2xvciBfYy1hY2NlbnRcbiAgICAvLyBjb2xvciBncmVlblxuICAgIGZvbnQtc2l6ZTogX2Z6LWFjY2VudFxuICAgIGV4dHJhYm9sZCgpXG4gICAgbWF4LXdpZHRoIDU2MHB4XG4gICAgbGluZS1oZWlnaHQ6IDEuNGVtXG4gICAgbWFyZ2luIDAgYXV0b1xuICAgIHdpZHRoIDEwMCVcbiAgICAvLyBsZXR0ZXItc3BhY2luZyAuMWVtXG4gIC5jb2xcbiAgICArZGVza3RvcCgpXG4gICAgICBjb2woMS8yLCBjeWNsZToyKVxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyXG4gICAgICAmOmZpcnN0LWNoaWxkXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTgwcHhcbiAgICAgICAgKy5jb2xcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDgwcHhcbiAgICAgID4uaW5wdXRcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdFxuICAgICAgICAvLyB3aWR0aCA1MCVcbiAgICAgICAgLy8gbWFyZ2luIDAgYXV0b1xuXG4gIC8vICttb2JpbGUoKVxuICAvLyAgIC5jb2xcblxuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0xBQl0gIC8gIExhYmVsXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dFxuICAmLi10ZXh0LFxuICAmLi10ZXh0YXJlYSxcbiAgJi4tc2VsZWN0XG4gICAgOmRpc2FibGVkXG4gICAgICBjb2xvciBfYy1saWdodFxuICAgID5sYWJlbFxuICAgICAgZm9udC1zaXplOiBfZnotc21hbGxcbiAgICAgIG92ZXJmbG93IGhpZGRlblxuICAgICAgaGVpZ2h0IDEuNWVtXG4gICAgICA+c3BhblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICAgICAgdHJhbnNmb3JtIHRyYW5zbGF0ZVkoMCUpXG4gICAgICAgIG9wYWNpdHk6IDFcbiAgICAgICAgdHJhbnNpdGlvbiBhbGwgLjZzIGVhc2luZygnb3V0LWNpcmMnKVxuICAgICYuLWVtcHR5XG4gICAgICA+bGFiZWxcbiAgICAgICAgPnNwYW5cbiAgICAgICAgICB0cmFuc2Zvcm0gdHJhbnNsYXRlWSgxMDAlKVxuICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiBlYXNpbmcoJ291dC1xdWFkJylcblxuICAgICttb2JpbGUoKVxuICAgICAgPmxhYmVsXG4gICAgICAgIGZvbnQtc2l6ZTogOXB4XG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfSU5QXSAgLyAgSW5wdXRzIChnZW5lcmFsKVxuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXRcbiAgPipcbiAgICBkaXNwbGF5IGJsb2NrXG4gID5sYWJlbFxuICAgIHRleHQtYWxpZ246IGxlZnRcblxuICA+aW5wdXQsXG4gID4uc2VsZWN0LXdhcHBlciBzZWxlY3RcbiAgICBwYWRkaW5nIDEuMWVtIDJlbVxuICAgIGJvcmRlciAxcHggc29saWQgX2MtYmxhY2tcbiAgICBib3JkZXItcmFkaXVzIDBcbiAgPmlucHV0XG4gICAgcGFkZGluZyAxZW0gMmVtXG4gICAgaGVpZ2h0IDUwcHhcbiAgJi4tdGV4dFxuICAgID5pbnB1dDpkaXNhYmxlZFxuICAgICAgYm9yZGVyIDFweCBzb2xpZCBfYy1saWdodFxuXG4gICYuLWVycm9yXG4gICAgPmlucHV0LFxuICAgICYuLXRleHRhcmVhID50ZXh0YXJlYSxcbiAgICA+LnNlbGVjdC13YXBwZXIgc2VsZWN0XG4gICAgICBjb2xvciAgX2MtZXJyb3JcbiAgICAgIGJvcmRlci1jb2xvciBfYy1lcnJvclxuXG4gICYuLXNlbGVjdFxuICAgID4uc2VsZWN0LXdhcHBlclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlXG5cbiAgJi4tdGV4dGFyZWFcbiAgICBoZWlnaHQgMTAuNWVtXG4gICAgcGFkZGluZy1ib3R0b206IDFlbVxuICAgID50ZXh0YXJlYVxuICAgICAgZm9udC1zaXplOiBfZnotcmVndWxhclxuICAgICAgcGFkZGluZyAxLjFlbSAyZW1cbiAgICAgIGJvcmRlciAxcHggc29saWQgX2MtYmxhY2tcbiAgICAgIHNpemUgMTAwJVxuICAgICAgcmVzaXplOiBub25lXG5cblxuXG5bdHlwZT1cInN1Ym1pdFwiXVxuICBib3JkZXIgbm9uZVxuICBiYWNrZ3JvdW5kIG5vbmVcbiAgd2lkdGggYXV0b1xuXG4uaW5wdXQuLXN1Ym1pdFxuICB0ZXh0LWFsaWduOiBsZWZ0XG4gIG1hcmdpbi10b3A6IDIuNGVtXG4gID5pbnB1dFxuICAgIGJvcmRlciAwXG4gICAgcGFkZGluZy1sZWZ0IDNlbVxuICAgIHBhZGRpbmctcmlnaHQgM2VtXG5cbi8vIC8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLy8gIFtfUkFEXSAgLyAgUmFkaW9zXG4vLyAvLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC4tcmFkaW9cbiAgbWF4LXdpZHRoIDQwMHB4XG4gID5sYWJlbFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lXG4gID5pbnB1dFxuICAgIHdpZHRoIGF1dG9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICBsZWZ0IC05OTk5cHhcbiAgICArbGFiZWxcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgcGFkZGluZy1yaWdodDogMmVtXG4gICAgICBjdXJzb3I6IHBvaW50ZXJcbiAgICAgIGZvbnQtc2l6ZTogX2Z6LXJlZ3VsYXJcbiAgICAgICYsXG4gICAgICAmOmJlZm9yZSxcbiAgICAgICY6YWZ0ZXJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgICY6YmVmb3JlLFxuICAgICAgJjphZnRlclxuICAgICAgICBjb250ZW50OiAnJ1xuICAgICAgICBib3JkZXItcmFkaXVzIDUwJVxuICAgICAgICBzaXplIDE4cHhcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgX2MtYWNjZW50XG4gICAgICAmOmJlZm9yZVxuICAgICAgICBib3JkZXItd2lkdGggM3B4XG4gICAgICAgIGFic29sdXRlIDAgMCBmYWxzZSBmYWxzZVxuICAgICAgJjphZnRlclxuICAgICAgICBhYnNvbHV0ZSAwIDAgZmFsc2UgZmFsc2VcbiAgICAgICAgc2l6ZSAwcHhcbiAgICAgICAgYm9yZGVyLXdpZHRoIDBweFxuICAgICAgICBib3JkZXItY29sb3I6IF9jLWFjY2VudFxuICAgICAgICB0cmFuc2Zvcm0gdHJhbnNsYXRlKC0xMDAlLCAxMDAlKVxuICAgICY6Y2hlY2tlZCArIGxhYmVsOmFmdGVyXG4gICAgICBib3JkZXItd2lkdGggM3B4XG4gICYuLWVycm9yXG4gICAgPmlucHV0K2xhYmVsXG4gICAgICBjb2xvciBfYy1lcnJvclxuICAgICAgJjpiZWZvcmVcbiAgICAgICAgYm9yZGVyLWNvbG9yIF9jLWVycm9yXG5cbiAgK21vYmlsZSgpXG4gICAgPmlucHV0XG4gICAgICArbGFiZWxcbiAgICAgICAgZm9udC1zaXplOiA5cHhcbiAgICAgICAgdGFibGUgJlxuICAgICAgICAgIGZvbnQtc2l6ZTogN3B4XG4gICAgICAgICAgcGFkZGluZy10b3A6IC4yZW1cbiAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICBzaXplIDEwcHhcbiAgICAgICAgICBib3JkZXItd2lkdGggMnB4XG4gICAgICAgICY6YWZ0ZXJcbiAgICAgICAgICB0b3AgLTFweFxuICAgICAgICAgIHJpZ2h0IC0xcHhcbiAgICAgICY6Y2hlY2tlZCArIGxhYmVsOmFmdGVyXG4gICAgICAgIGJvcmRlci13aWR0aCAycHhcblxuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0NIRV0gIC8gIENoZWNrYm94XG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC4tY2hlY2tib3hcbiAgbWF4LXdpZHRoIDQwMHB4XG4gIG1hcmdpbi10b3A6IDFlbVxuICA+bGFiZWxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZVxuICAgIHdpZHRoOiAxMDAlXG4gICAgaGVpZ2h0IDJlbVxuICA+aW5wdXRcbiAgICB3aWR0aCBhdXRvXG4gICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgbGVmdCAtOTk5OXB4XG4gICAgK2xhYmVsXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgIHBhZGRpbmctbGVmdDogNDdweFxuICAgICAgY3Vyc29yOiBwb2ludGVyXG4gICAgICBmb250LXNpemU6IF9mei1tZWRpdW1cbiAgICAgICYsXG4gICAgICAmOmJlZm9yZSxcbiAgICAgICY6YWZ0ZXJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIC8vIGJveCAob3V0c2lkZSlcbiAgICAgICY6YmVmb3JlXG4gICAgICAgIGNvbnRlbnQ6ICcnXG4gICAgICAgIGFic29sdXRlIDAgZmFsc2UgZmFsc2UgMFxuICAgICAgICBzaXplIDI1cHhcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgX2MtYmxhY2tcbiAgICAgICAgLy8gYmFja2dyb3VuZDogJHdoaXRlXG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlciAuNHMgZWFzaW5nKCdvdXQtZXhwbycpXG4gICAgICAmOmFmdGVyXG4gICAgICAgIGFic29sdXRlIDRweCBmYWxzZSBmYWxzZSA1cHhcbiAgICAgICAgY29udGVudCB1cmwoJy9pbWFnZXMvY2hlY2suc3ZnJylcbiAgICAgICAgc2l6ZSAxNXB4XG4gICAgICAgIGZvbnQtc2l6ZTogMmVtXG4gICAgICAgIC8vIGNvbG9yICRyZWRcbiAgICAgICAgdHJhbnNmb3JtIHNjYWxlKDApXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwXG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNHMgZWFzaW5nKCdvdXQtZXhwbycpXG4gICAgJjpjaGVja2VkICsgbGFiZWw6YWZ0ZXJcbiAgICAgIHRyYW5zZm9ybSBzY2FsZSgxKVxuICAmLi1lcnJvclxuICAgID5pbnB1dCtsYWJlbFxuICAgICAgY29sb3IgX2MtZXJyb3JcbiAgICAgICY6YmVmb3JlXG4gICAgICAgIGJvcmRlci1jb2xvciBfYy1lcnJvclxuXG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfTVNHXSAgLyAgTWVzc2FnZXMgKGVycm9yIGV0Yylcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0XG4gID4ubWVzc2FnZVxuICAgIGhlaWdodCAxLjVlbVxuICAgIGZvbnQtc2l6ZTogX2Z6LXNtYWxsXG4gICAgY29sb3IgX2MtYmxhY2tcbiAgICBvcGFjaXR5OiAwXG4gICYuLWVycm9yID4ubWVzc2FnZVxuICAgIGNvbG9yIF9jLWVycm9yXG4gICAgb3BhY2l0eTogMVxuICAmLi1jaGVja2JveFxuICAgID4ubWVzc2FnZVxuICAgICAgbWFyZ2luLXRvcCAzcHhcbiAgLi11bmRlci10YWJsZVxuICAgIG1hcmdpbi1ib3R0b20gMWVtXG4gICAgZm9udC1zaXplIF9mei1hY2NlbnRcblxuXG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfT1RIXSAgLyAgT3RoZXJzXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZmllbGRzZXQuY2FhXG4gIGNmKClcblxuZmllbGRzZXRcbiAgJi4tZ3JleVxuICAgIG1hcmdpbi10b3A6IDVlbVxuICAgIHBhZGRpbmcgMi41ZW0gMCA2ZW1cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBfYy1iZy1kYXJrXG5cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19ERUJdICAvICBEZWJ1Z1xuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGZvcm1cbi8vICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcvaW1hZ2VzL19kZWJ1Zy9fZm9ybXBhZ2UucG5nJykgY2VudGVyIC00ODdweCBuby1yZXBlYXRcbi8vICAgLy8gLm1lc3NhZ2Vcbi8vICAgLy8gICBvcGFjaXR5OiAwXG4vLyAgIGZpZWxkc2V0XG4vLyAgICAgJi4tZ3JleVxuLy8gICAgICAgLy8gYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcvaW1hZ2VzL19kZWJ1Zy9fZm9ybS5wbmcnKSBjZW50ZXIgdG9wIG5vLXJlcGVhdFxuXG5cblxuXG5cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19TRUxdICAvICBTZWxlY3QgMlxuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5ib2R5IGZvcm0gLnNlbGVjdC13YXBwZXIgLnNlbGVjdDItY29udGFpbmVyXG4gIC5zZWxlY3QyLWNob2ljZVxuICAgIGJvcmRlci1yYWRpdXMgMFxuICAgIGhlaWdodCA1MHB4XG4gICAgcGFkZGluZy1sZWZ0OiAyZW1cbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICBiYWNrZ3JvdW5kOiBfYy13aGl0ZVxuICAgIGJvcmRlci1jb2xvciBfYy1ibGFja1xuICAgIGNmKClcbiAgICAvLyArbW9iaWxlKClcbiAgICAvLyAgIGhlaWdodCAzM3B4XG4gICAgPi5zZWxlY3QyLWNob3NlblxuICAgICAgYWxpZ24odilcbiAgICAuc2VsZWN0Mi1hcnJvd1xuICAgICAgYmFja2dyb3VuZCBub25lXG4gICAgICBib3JkZXIgMFxuICAgICAgYm9yZGVyLXJhZGl1cyAwXG4gICAgICB3aWR0aCAzZW1cbiAgICAgIGI6YmVmb3JlXG4gICAgICAgIGNvbnRlbnQ6IHVybCgnL2ltYWdlcy9hcnJvdy5zdmcnKVxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgICAgY29sb3IgcmVkXG4gICAgICAgIGFsaWduKClcbiAgICAgICAgd2lkdGggMWVtXG4uc2VsZWN0Mi1yZXN1bHRzXG4gIC8vIHBhZGRpbmcgMWVtIDBcbiAgPi5zZWxlY3QyLXJlc3VsdFxuICAgIHBhZGRpbmcgLjVlbVxuICAgIGNvbG9yIF9jLWJsYWNrXG4gICAgJi5zZWxlY3QyLWhpZ2hsaWdodGVkXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBfYy1hY2NlbnRcbiAgICAgIGNvbG9yIF9jLXdoaXRlXG5cbmJvZHkgLnNlbGVjdDItZHJvcC1hY3RpdmUsXG4uc2VsZWN0Mi1kcm9wLnNlbGVjdDItZHJvcC1hYm92ZS5zZWxlY3QyLWRyb3AtYWN0aXZlXG4gIGJvcmRlciAxcHggc29saWQgX2MtYmxhY2tcbiAgYm94LXNoYWRvdyBub25lXG4gIGJvcmRlci1yYWRpdXMgMFxuXG4uaW5wdXQuLXNlbGVjdFxuICAmLi1lbXB0eVxuICAgIC5zZWxlY3QyLWNob2ljZVxuICAgICAgPi5zZWxlY3QyLWNob3NlblxuICAgICAgICBjb2xvciAjQUNBQ0FDXG5cbiAgJi4tZXJyb3JcbiAgICAuc2VsZWN0Mi1jaG9pY2VcbiAgICAgIGJvcmRlci1jb2xvciBfYy1lcnJvclxuXG4uc2VsZWN0Mi1zZWFyY2hcbiAgcGFkZGluZy1sZWZ0IDAgIWltcG9ydGFudFxuICBwYWRkaW5nLXJpZ2h0IDAgIWltcG9ydGFudFxuXG4uc2VsZWN0Mi1kcm9wLnNlbGVjdDItZHJvcC1hYm92ZSAuc2VsZWN0Mi1zZWFyY2ggaW5wdXRcbiAgbWFyZ2luLXRvcCAwICFpbXBvcnRhbnRcblxuXG4iLCIvKipcbiAqICBAYXV0aG9yIFdFX0FSRVxuICpcbiAqICBfVkVOICBWZW5kb3JzXG4gKiAgX0NPRiAgQ29uZmlnIChmb250cywgdmFycylcbiAqICBfVVRJICBVdGlscyAobWl4aW5zLCBjbGFzc2VzLCAuLi4pXG4gKiAgX0xBWSAgTGF5b3V0XG4gKiAgX1VJICAgVXNlciBpbnRlcmZhY2VcbiAqICBfUEFHICBQYWdlc1xuICogIF9ERUIgIERlYnVnXG4gKi9cbkBpbXBvcnQgdXJsKFwiaHR0cDovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9T3BlbitTYW5zOjMwMCw0MDAsNjAwLDcwMCw4MDBcIik7XG5odG1sLFxuYm9keSxcbmRpdixcbnNwYW4sXG5hcHBsZXQsXG5vYmplY3QsXG5pZnJhbWUsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wLFxuYmxvY2txdW90ZSxcbnByZSxcbmEsXG5hYmJyLFxuYWNyb255bSxcbmFkZHJlc3MsXG5iaWcsXG5jaXRlLFxuY29kZSxcbmRlbCxcbmRmbixcbmVtLFxuaW1nLFxuaW5zLFxua2JkLFxucSxcbnMsXG5zYW1wLFxuc21hbGwsXG5zdHJpa2UsXG5zdHJvbmcsXG5zdWIsXG5zdXAsXG50dCxcbnZhcixcbmIsXG51LFxuaSxcbmNlbnRlcixcbmRsLFxuZHQsXG5kZCxcbm9sLFxudWwsXG5saSxcbmZpZWxkc2V0LFxuZm9ybSxcbmxhYmVsLFxubGVnZW5kLFxudGFibGUsXG5jYXB0aW9uLFxudGJvZHksXG50Zm9vdCxcbnRoZWFkLFxudHIsXG50aCxcbnRkLFxuYXJ0aWNsZSxcbmFzaWRlLFxuY2FudmFzLFxuZGV0YWlscyxcbmVtYmVkLFxuZmlndXJlLFxuZmlnY2FwdGlvbixcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1lbnUsXG5uYXYsXG5vdXRwdXQsXG5ydWJ5LFxuc2VjdGlvbixcbnN1bW1hcnksXG50aW1lLFxubWFyayxcbmF1ZGlvLFxudmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1lbnUsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5vbCxcbnVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbmJsb2NrcXVvdGUsXG5xIHtcbiAgcXVvdGVzOiBub25lO1xufVxuYmxvY2txdW90ZTpiZWZvcmUsXG5ibG9ja3F1b3RlOmFmdGVyLFxucTpiZWZvcmUsXG5xOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgY29udGVudDogbm9uZTtcbn1cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5odG1sIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBpbmhlcml0O1xuICAtbW96LWJveC1zaXppbmc6IGluaGVyaXQ7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIC5fZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDY3cHgpIHtcbiAgLl9tb2JpbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbmh0bWwsXG5ib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiAjNDM0MzQzO1xuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxufVxuaHRtbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTE3M2E7XG59XG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbmgxIHtcbiAgY29sb3I6ICNmZmUyMDA7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuaDIge1xuICBjb2xvcjogIzBhMTczYTtcbiAgZm9udC1zaXplOiAxLjcxZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cbnAge1xuICBsaW5lLWhlaWdodDogMS40ZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICBwIHtcbiAgICBsaW5lLWhlaWdodDogMS42ZW07XG4gIH1cbn1cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC42cyBhbGwgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICB0cmFuc2l0aW9uOiAwLjZzIGFsbCBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmEuLWFjdGlmLFxuLm5vLXRvdWNoIGE6aG92ZXIge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpO1xufVxubGFiZWwgYSxcbnAgYSB7XG4gIGNvbG9yOiAjMGExNzNhO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmxhYmVsIGEuLWFjdGlmLFxucCBhLi1hY3RpZixcbi5uby10b3VjaCBsYWJlbCBhOmhvdmVyLFxuLm5vLXRvdWNoIHAgYTpob3ZlciB7XG4gIGNvbG9yOiAjMDcxMDI5O1xufVxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cbnNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG59XG4udW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYnRuLFxuaW5wdXQuYnRuIHtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nOiAxZW0gMmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4xNGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMTczYTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNnMgYWxsIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgdHJhbnNpdGlvbjogMC42cyBhbGwgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuLmJ0bi4tYWN0aWYsXG5pbnB1dC5idG4uLWFjdGlmLFxuLm5vLXRvdWNoIC5idG46aG92ZXIsXG4ubm8tdG91Y2ggaW5wdXQuYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA3MTAyOTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIC5idG4sXG4gIGlucHV0LmJ0biB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICB9XG59XG5pIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5pID5zdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNnMgZmlsbCBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gIHRyYW5zaXRpb246IDAuNnMgZmlsbCBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5pID5zdmcuLWFjdGlmLFxuLm5vLXRvdWNoIGkgPnN2Zzpob3ZlciB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7XG59XG4ubG9nby5fbW9iaWxlIGRpYixcbi5sb2dvLl9tb2JpbGUgPmltZyB7XG4gIHdpZHRoOiA5MHB4O1xufVxuLnNhZmUtd2lkdGgge1xuICB3aWR0aDogMTA2NnB4O1xufVxuI21haW4ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gICNtYWluID4uY29udGVudCB7XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuI21haW4gPnNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDgwcHggMDtcbn1cbiNtYWluID5zZWN0aW9uOm5vdCg6Zmlyc3QtY2hpbGQpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgbGVmdDogNTAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB0b3A6IDA7XG4gIHdpZHRoOiA2MDBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjOWM5Yzk7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICAjbWFpbiA+c2VjdGlvbjpub3QoOmZpcnN0LWNoaWxkKTpiZWZvcmUge1xuICAgIHdpZHRoOiAyNzBweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgI21haW4gPnNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDQwcHggMCAzMHB4O1xuICB9XG59XG4uX2hpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jZm9ybS1tc2cge1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogNmVtIDA7XG4gIGZvbnQtc2l6ZTogMS4xNGVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgI2Zvcm0tbXNnIHtcbiAgICB3aWR0aDogMjcwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG4jZm9ybS1tc2cuLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzQzNDM0Mztcbn1cbiNmb3JtLW1zZy4tZXJyb3Ige1xuICBjb2xvcjogI2FiMjEyNjtcbn1cbiNmb3JtLW1zZyA+cCB7XG4gIG1hcmdpbjogMWVtIDA7XG59XG4uZ2FtbWVzLXRhYmxlIHtcbiAgbWFyZ2luOiA0MHB4IGF1dG87XG4gIHdpZHRoOiA1NTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5nYW1tZXMtdGFibGUgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzljOWM5O1xuICBib3JkZXItbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAxMnB4IDAgMTJweCAyMnB4O1xuICBjb2xvcjogIzBhMTczYTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uZ2FtbWVzLXRhYmxlIHRkLi1ncmV5IHtcbiAgY29sb3I6ICM0MzQzNDM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uZ2FtbWVzLXRhYmxlIHRkOm50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiAyNTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5nYW1tZXMtdGFibGUgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDE0NXB4O1xufVxuLmdhbW1lcy10YWJsZSB0ZDpudGgtY2hpbGQoNCkge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgLmdhbW1lcy10YWJsZSB7XG4gICAgbWFyZ2luOiAyMHB4IGF1dG87XG4gICAgd2lkdGg6IDI4MHB4O1xuICB9XG4gIC5nYW1tZXMtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDAuOWVtIDA7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gIH1cbiAgLmdhbW1lcy10YWJsZSB0ZDpudGgtY2hpbGQoMSkge1xuICAgIHdpZHRoOiAxMzBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogMC42ZW07XG4gIH1cbiAgLmdhbW1lcy10YWJsZSB0ZDpudGgtY2hpbGQoMikge1xuICAgIHdpZHRoOiA3NXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgfVxuICAuZ2FtbWVzLXRhYmxlIHRkOm50aC1jaGlsZCg0KSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4jaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA1MGExOTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDg4cHg7XG4gIHotaW5kZXg6IDEwMDA7XG4gICp6b29tOiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuI2hlYWRlcjpiZWZvcmUsXG4jaGVhZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuI2hlYWRlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuI2hlYWRlciA+LndyYXBwZXIge1xuICB3aWR0aDogMTA2NnB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbiNoZWFkZXIgPi53cmFwcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDg4cHg7XG59XG4jaGVhZGVyID4ud3JhcHBlciA+LmxvZ28ge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy10b3A6IDEzcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4jaGVhZGVyID4ud3JhcHBlciA+LnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWxlZnQ6IDZlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTVlbTtcbn1cbiNoZWFkZXIgPi53cmFwcGVyID4ucmlnaHQtbmF2IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogMTUwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAyLjJlbTtcbn1cbiNoZWFkZXIgLnJpZ2h0LW5hdiA+Lml0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIGhlaWdodDogMjZweDtcbn1cbiNoZWFkZXIgLnJpZ2h0LW5hdiA+Lml0ZW06YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cbiNoZWFkZXIgLnJpZ2h0LW5hdiA+Lml0ZW06Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDJlbTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZmZjtcbn1cbiNoZWFkZXIgLnJpZ2h0LW5hdiBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAwLjcxZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbn1cbiNoZWFkZXIgLnJpZ2h0LW5hdiBhID5pIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4jaGVhZGVyIC5yaWdodC1uYXYgYSA+aSBzdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmaWxsOiAjZmZmO1xufVxuI2hlYWRlciAucmlnaHQtbmF2IGEuYWN0aWYsXG4ubm8tdG91Y2ggI2hlYWRlciAucmlnaHQtbmF2IGE6aG92ZXIge1xuICBjb2xvcjogI2ZmZTIwMDtcbn1cbiNoZWFkZXIgLnJpZ2h0LW5hdiBhLmFjdGlmID5pIHN2Zyxcbi5uby10b3VjaCAjaGVhZGVyIC5yaWdodC1uYXYgYTpob3ZlciA+aSBzdmcge1xuICBmaWxsOiAjZmZlMjAwO1xufVxuLmhlcm8ge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMTczYTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmhlcm8gPmltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwNjZweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIGJvZHkge1xuICAgIHBhZGRpbmctdG9wOiA0NHB4O1xuICB9XG4gIC5oZXJvPmltZy5jZW50ZXIge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gICNoZWFkZXIge1xuICAgIGhlaWdodDogNDRweDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cbiAgI2hlYWRlciA+LndyYXBwZXIge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAjaGVhZGVyID4ud3JhcHBlciA+LmJ1cmdlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAxLjNlbSAwIDAgMS4zZW07XG4gIH1cbiAgI2hlYWRlciA+LndyYXBwZXIgPi5idXJnZXIgPmkge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgfVxuICAjaGVhZGVyID4ud3JhcHBlciA+LmJ1cmdlciA+aSA+c3ZnIHtcbiAgICBmaWxsOiAjZmZlMjAwO1xuICB9XG4gICNoZWFkZXIgPi53cmFwcGVyID4udGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMi4yZW0gMCAwIDEuNWVtO1xuICB9XG4gIC5idXJnZXIgPi5jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuYnVyZ2VyLi1vcGVuID4uY2xvc2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5idXJnZXIuLW9wZW4gPi5vcGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ubWFpbi1uYXYge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTIwMDtcbiAgY29sb3I6ICM0MzQzNDM7XG4gIHotaW5kZXg6IDUwMDtcbn1cbi5tYWluLW5hdiA+LndyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5NDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gICp6b29tOiAxO1xufVxuLm1haW4tbmF2ID4ud3JhcHBlcjpiZWZvcmUsXG4ubWFpbi1uYXYgPi53cmFwcGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLm1haW4tbmF2ID4ud3JhcHBlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0ge1xuICAqem9vbTogMTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICB3aWR0aDogMjAlO1xuICBtYXJnaW4tbGVmdDogMCU7XG4gIG1hcmdpbi1yaWdodDogMCU7XG4gIGhlaWdodDogMTQwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtOmJlZm9yZSxcbi5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW06YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbi5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDM0MzQzO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMmVtO1xuICBib3R0b206IDJlbTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXIgMC40cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gIHRyYW5zaXRpb246IGJvcmRlciAwLjRzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cbi5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtLi1hY3RpZjpiZWZvcmUsXG4ubm8tdG91Y2ggLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW06aG92ZXI6YmVmb3JlLFxuLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0uLWFjdGlmKy5pdGVtOmJlZm9yZSxcbi5uby10b3VjaCAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbTpob3ZlcisuaXRlbTpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMCk7XG59XG4ubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogIzQzNDM0MztcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyLjVlbSAwIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmUyMDA7XG59XG4ubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSA+LmNvbnRlbnQgPmkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG4ubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSA+LmNvbnRlbnQgPmkgc3ZnIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgZmlsbDogIzBhMTczYTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0gPmEgPi5jb250ZW50ID5zcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogMC40ZW0gYXV0byAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xNWVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMC43OGVtO1xufVxuLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0uLWFjdGlmIGEsXG4ubm8tdG91Y2ggLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0gYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kOiAjMGExNzNhO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtLi1hY3RpZiBhIGkgc3ZnLFxuLm5vLXRvdWNoIC5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtIGE6aG92ZXIgaSBzdmcge1xuICBmaWxsOiAjZmZlMjAwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgLm1haW4tbmF2IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiA0NHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gIH1cbiAgLm1haW4tbmF2Li1vcGVuIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7XG4gIH1cbiAgLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNjIuNXB4O1xuICB9XG4gIC5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbTpub3QoOmZpcnN0LWNoaWxkKSA+YSA+LmNvbnRlbnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC41KTtcbiAgfVxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSA+LmNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDI3MHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAqem9vbTogMTtcbiAgfVxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSA+LmNvbnRlbnQ6YmVmb3JlLFxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSA+LmNvbnRlbnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG4gIC5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtID5hID4uY29udGVudDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0gPmEgPi5jb250ZW50ID5pLFxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSA+LmNvbnRlbnQgPnNwYW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSA+LmNvbnRlbnQgPmkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogNmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbSA+YSA+LmNvbnRlbnQgPmkgPnN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gIH1cbiAgLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0gPmEgPi5jb250ZW50ID5zcGFuIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB0b3A6IDUwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBsZWZ0OiA4ZW07XG4gICAgZm9udC1zaXplOiAxLjE0ZW07XG4gICAgY29sb3I6ICM0MzQzNDM7XG4gIH1cbiAgLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0uLWFjdGlmID5hID4uY29udGVudCA+c3BhbixcbiAgLm5vLXRvdWNoIC5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtID4gYTpob3ZlciA+LmNvbnRlbnQgPnNwYW4ge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG4gIC5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtLi1hY3RpZiA+YSA+LmNvbnRlbnQgPmkgPnN2ZyxcbiAgLm5vLXRvdWNoIC5tYWluLW5hdiA+LndyYXBwZXIgPi5pdGVtID4gYTpob3ZlciA+LmNvbnRlbnQgPmkgPnN2ZyB7XG4gICAgZmlsbDogI2ZmZTIwMDtcbiAgfVxuICAubWFpbi1uYXYgPi53cmFwcGVyID4uaXRlbS4tYWN0aWYgPmEgPi5jb250ZW50OmJlZm9yZSxcbiAgLm1haW4tbmF2ID4ud3JhcHBlciA+Lml0ZW0uLWFjdGlmICsgLml0ZW0gPmEgPi5jb250ZW50OmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDApO1xuICB9XG4gIC5tYWluLW5hdiAuZXh0cmE6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1haW4tbmF2IC5leHRyYSA+LmNvbCB7XG4gICAgKnpvb206IDE7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgLm1haW4tbmF2IC5leHRyYSA+LmNvbDpiZWZvcmUsXG4gIC5tYWluLW5hdiAuZXh0cmEgPi5jb2w6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG4gIC5tYWluLW5hdiAuZXh0cmEgPi5jb2w6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5tYWluLW5hdiAuZXh0cmEgPi5jb2w6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMzVweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjUpO1xuICB9XG4gIC5tYWluLW5hdiAuZXh0cmEgPi5jb2w6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICByaWdodDogMDtcbiAgfVxuICAubWFpbi1uYXYgLmV4dHJhID4uY29sID5hIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGZvbnQtc2l6ZTogMS4xNGVtO1xuICAgIGNvbG9yOiAjNDM0MzQzO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubWFpbi1uYXYgLmV4dHJhID4uY29sID5hIHN2ZyB7XG4gICAgZmlsbDogIzQzNDM0MztcbiAgfVxuICAubWFpbi1uYXYgLmV4dHJhID4uY29sID5hID4uY29udGVudCB7XG4gICAgd2lkdGg6IDEzNXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB0b3A6IDUwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxuICAubWFpbi1uYXYgLmV4dHJhID4uY29sID5hLmZiIGkge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgfVxuICAubWFpbi1uYXYgLmV4dHJhID4uY29sID5hLmFjdGlmLFxuICAubm8tdG91Y2ggLm1haW4tbmF2IC5leHRyYSA+LmNvbCA+YTpob3ZlciB7XG4gICAgY29sb3I6ICMwYTE3M2E7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLm1haW4tbmF2IC5leHRyYSA+LmNvbCA+YS5hY3RpZiBzdmcsXG4gIC5uby10b3VjaCAubWFpbi1uYXYgLmV4dHJhID4uY29sID5hOmhvdmVyIHN2ZyB7XG4gICAgZmlsbDogIzBhMTczYTtcbiAgfVxuICAubWFpbi1uYXYgLmV4dHJhID4uY29sOm50aC1jaGlsZCgxKSA+YTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEuOGVtO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMS44ZW07XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjUpO1xuICB9XG4gIC5tYWluLW5hdiAuZXh0cmEgPi5jb2w6bnRoLWNoaWxkKDEpID5hID4uY29udGVudCB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLm1haW4tbmF2IC5leHRyYSA+LmNvbDpudGgtY2hpbGQoMikgPmEgPi5jb250ZW50IHtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG4jZm9vdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjI1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm90dG9tOiAwO1xuICBmb250LXNpemU6IDAuNzhlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMTczYTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gICNmb290ZXIge1xuICAgIGhlaWdodDogMTIwcHg7XG4gIH1cbn1cbi5uYXYtZm9vdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTA2NnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbi5uYXYtZm9vdGVyIC5pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLm5hdi1mb290ZXIgLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNmZmY7XG59XG4ubmF2LWZvb3RlciAuaXRlbSA+YSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC42cyBjb2xvciBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gIHRyYW5zaXRpb246IDAuNnMgY29sb3IgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBwYWRkaW5nOiAwIDAuNWVtO1xufVxuLm5hdi1mb290ZXIgLml0ZW0gPmEuLWFjdGlmLFxuLm5vLXRvdWNoIC5uYXYtZm9vdGVyIC5pdGVtID5hOmhvdmVyIHtcbiAgY29sb3I6ICNmZmUyMDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjA3NSwgMC44MiwgMC4xNjUsIDEpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICAubmF2LWZvb3RlciAuaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICB9XG59XG4udHJhZGVtYXJrIHtcbiAgbWFyZ2luLXRvcDogM2VtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgLnRyYWRlbWFyayB7XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICB9XG59XG5pbnB1dCxcbnNlbGVjdCxcbi4tcmFkaW8gbGFiZWw6YmVmb3JlLFxuLi1jaGVja2JveCBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuaW5wdXQsXG4uc2VsZWN0LXdhcHBlciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB3aWR0aDogMjUwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICBpbnB1dCxcbiAgLnNlbGVjdC13YXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5zZWxlY3QsXG5pbnB1dCxcbmJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbnNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuZm9ybSA+aHIge1xuICB3aWR0aDogNjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgZm9ybSA+aHIge1xuICAgIHdpZHRoOiAyNzBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cbn1cbmZvcm0gZmllbGRzZXQge1xuICAqem9vbTogMTtcbn1cbmZvcm0gZmllbGRzZXQ6YmVmb3JlLFxuZm9ybSBmaWVsZHNldDphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbmZvcm0gZmllbGRzZXQ6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbmZvcm0gZmllbGRzZXQgPi53cmFwcGVyIHtcbiAgKnpvb206IDE7XG4gIG1heC13aWR0aDogMTA2NnB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5mb3JtIGZpZWxkc2V0ID4ud3JhcHBlcjpiZWZvcmUsXG5mb3JtIGZpZWxkc2V0ID4ud3JhcHBlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbmZvcm0gZmllbGRzZXQgPi53cmFwcGVyOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICBmb3JtIGZpZWxkc2V0ID4ud3JhcHBlciB7XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuZm9ybSBmaWVsZHNldCBsZWdlbmQge1xuICBjb2xvcjogIzBhMTczYTtcbiAgZm9udC1zaXplOiAxLjE0ZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIG1heC13aWR0aDogNTYwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDY3cHgpIHtcbiAgZm9ybSBmaWVsZHNldCAuY29sIHtcbiAgICAqem9vbTogMTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBjbGVhcjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgIHdpZHRoOiA0OC41JTtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAzJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgZm9ybSBmaWVsZHNldCAuY29sOmJlZm9yZSxcbiAgZm9ybSBmaWVsZHNldCAuY29sOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuICBmb3JtIGZpZWxkc2V0IC5jb2w6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIGZvcm0gZmllbGRzZXQgLmNvbDpudGgtY2hpbGQoMm4pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAlO1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICBmb3JtIGZpZWxkc2V0IC5jb2w6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICBmb3JtIGZpZWxkc2V0IC5jb2w6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMTgwcHg7XG4gIH1cbiAgZm9ybSBmaWVsZHNldCAuY29sOmZpcnN0LWNoaWxkICsuY29sIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDgwcHg7XG4gIH1cbiAgZm9ybSBmaWVsZHNldCAuY29sID4uaW5wdXQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbi5pbnB1dC4tdGV4dCA6ZGlzYWJsZWQsXG4uaW5wdXQuLXRleHRhcmVhIDpkaXNhYmxlZCxcbi5pbnB1dC4tc2VsZWN0IDpkaXNhYmxlZCB7XG4gIGNvbG9yOiAjYzljOWM5O1xufVxuLmlucHV0Li10ZXh0ID5sYWJlbCxcbi5pbnB1dC4tdGV4dGFyZWEgPmxhYmVsLFxuLmlucHV0Li1zZWxlY3QgPmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjc4ZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMS41ZW07XG59XG4uaW5wdXQuLXRleHQgPmxhYmVsID5zcGFuLFxuLmlucHV0Li10ZXh0YXJlYSA+bGFiZWwgPnNwYW4sXG4uaW5wdXQuLXNlbGVjdCA+bGFiZWwgPnNwYW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIC1tcy1maWx0ZXI6IG5vbmU7XG4gIGZpbHRlcjogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC42cyBjdWJpYy1iZXppZXIoMC4wNzUsIDAuODIsIDAuMTY1LCAxKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNnMgY3ViaWMtYmV6aWVyKDAuMDc1LCAwLjgyLCAwLjE2NSwgMSk7XG59XG4uaW5wdXQuLXRleHQuLWVtcHR5ID5sYWJlbCA+c3Bhbixcbi5pbnB1dC4tdGV4dGFyZWEuLWVtcHR5ID5sYWJlbCA+c3Bhbixcbi5pbnB1dC4tc2VsZWN0Li1lbXB0eSA+bGFiZWwgPnNwYW4ge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApXCI7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgLmlucHV0Li10ZXh0ID5sYWJlbCxcbiAgLmlucHV0Li10ZXh0YXJlYSA+bGFiZWwsXG4gIC5pbnB1dC4tc2VsZWN0ID5sYWJlbCB7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gIH1cbn1cbi5pbnB1dCA+KiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmlucHV0ID5sYWJlbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uaW5wdXQgPmlucHV0LFxuLmlucHV0ID4uc2VsZWN0LXdhcHBlciBzZWxlY3Qge1xuICBwYWRkaW5nOiAxLjFlbSAyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MzQzNDM7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uaW5wdXQgPmlucHV0IHtcbiAgcGFkZGluZzogMWVtIDJlbTtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLmlucHV0Li10ZXh0ID5pbnB1dDpkaXNhYmxlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjOWM5Yzk7XG59XG4uaW5wdXQuLWVycm9yID5pbnB1dCxcbi5pbnB1dC4tZXJyb3IuLXRleHRhcmVhID50ZXh0YXJlYSxcbi5pbnB1dC4tZXJyb3IgPi5zZWxlY3Qtd2FwcGVyIHNlbGVjdCB7XG4gIGNvbG9yOiAjYWIyMTI2O1xuICBib3JkZXItY29sb3I6ICNhYjIxMjY7XG59XG4uaW5wdXQuLXNlbGVjdCA+LnNlbGVjdC13YXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaW5wdXQuLXRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxMC41ZW07XG4gIHBhZGRpbmctYm90dG9tOiAxZW07XG59XG4uaW5wdXQuLXRleHRhcmVhID50ZXh0YXJlYSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAxLjFlbSAyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MzQzNDM7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHJlc2l6ZTogbm9uZTtcbn1cblt0eXBlPVwic3VibWl0XCJdIHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogYXV0bztcbn1cbi5pbnB1dC4tc3VibWl0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMi40ZW07XG59XG4uaW5wdXQuLXN1Ym1pdCA+aW5wdXQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmctbGVmdDogM2VtO1xuICBwYWRkaW5nLXJpZ2h0OiAzZW07XG59XG4uaW5wdXQuLXJhZGlvIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cbi5pbnB1dC4tcmFkaW8gPmxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi5pbnB1dC4tcmFkaW8gPmlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OTlweDtcbn1cbi5pbnB1dC4tcmFkaW8gPmlucHV0ICtsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLmlucHV0Li1yYWRpbyA+aW5wdXQgK2xhYmVsLFxuLmlucHV0Li1yYWRpbyA+aW5wdXQgK2xhYmVsOmJlZm9yZSxcbi5pbnB1dC4tcmFkaW8gPmlucHV0ICtsYWJlbDphZnRlciB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5pbnB1dC4tcmFkaW8gPmlucHV0ICtsYWJlbDpiZWZvcmUsXG4uaW5wdXQuLXJhZGlvID5pbnB1dCArbGFiZWw6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMGExNzNhO1xufVxuLmlucHV0Li1yYWRpbyA+aW5wdXQgK2xhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogM3B4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uaW5wdXQuLXJhZGlvID5pbnB1dCArbGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICBib3JkZXItd2lkdGg6IDBweDtcbiAgYm9yZGVyLWNvbG9yOiAjMGExNzNhO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlLCAxMDAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDAlLCAxMDAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMCUsIDEwMCUpO1xufVxuLmlucHV0Li1yYWRpbyA+aW5wdXQ6Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAzcHg7XG59XG4uaW5wdXQuLXJhZGlvLi1lcnJvciA+aW5wdXQrbGFiZWwge1xuICBjb2xvcjogI2FiMjEyNjtcbn1cbi5pbnB1dC4tcmFkaW8uLWVycm9yID5pbnB1dCtsYWJlbDpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICNhYjIxMjY7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICAuaW5wdXQuLXJhZGlvID5pbnB1dCArbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICB9XG4gIHRhYmxlIC5pbnB1dC4tcmFkaW8gPmlucHV0ICtsYWJlbCB7XG4gICAgZm9udC1zaXplOiA3cHg7XG4gICAgcGFkZGluZy10b3A6IDAuMmVtO1xuICB9XG4gIC5pbnB1dC4tcmFkaW8gPmlucHV0ICtsYWJlbDpiZWZvcmUge1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgfVxuICAuaW5wdXQuLXJhZGlvID5pbnB1dCArbGFiZWw6YWZ0ZXIge1xuICAgIHRvcDogLTFweDtcbiAgICByaWdodDogLTFweDtcbiAgfVxuICAuaW5wdXQuLXJhZGlvID5pbnB1dDpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICB9XG59XG4uaW5wdXQuLWNoZWNrYm94IHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLmlucHV0Li1jaGVja2JveCA+bGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyZW07XG59XG4uaW5wdXQuLWNoZWNrYm94ID5pbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTk5cHg7XG59XG4uaW5wdXQuLWNoZWNrYm94ID5pbnB1dCArbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogNDdweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cbi5pbnB1dC4tY2hlY2tib3ggPmlucHV0ICtsYWJlbCxcbi5pbnB1dC4tY2hlY2tib3ggPmlucHV0ICtsYWJlbDpiZWZvcmUsXG4uaW5wdXQuLWNoZWNrYm94ID5pbnB1dCArbGFiZWw6YWZ0ZXIge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uaW5wdXQuLWNoZWNrYm94ID5pbnB1dCArbGFiZWw6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNDM0MzQzO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlciAwLjRzIGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xufVxuLmlucHV0Li1jaGVja2JveCA+aW5wdXQgK2xhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgbGVmdDogNXB4O1xuICBjb250ZW50OiB1cmwoXCIvaW1hZ2VzL2NoZWNrLnN2Z1wiKTtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgZm9udC1zaXplOiAyZW07XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xufVxuLmlucHV0Li1jaGVja2JveCA+aW5wdXQ6Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbi5pbnB1dC4tY2hlY2tib3guLWVycm9yID5pbnB1dCtsYWJlbCB7XG4gIGNvbG9yOiAjYWIyMTI2O1xufVxuLmlucHV0Li1jaGVja2JveC4tZXJyb3IgPmlucHV0K2xhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogI2FiMjEyNjtcbn1cbi5pbnB1dCA+Lm1lc3NhZ2Uge1xuICBoZWlnaHQ6IDEuNWVtO1xuICBmb250LXNpemU6IDAuNzhlbTtcbiAgY29sb3I6ICM0MzQzNDM7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MClcIjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICBvcGFjaXR5OiAwO1xufVxuLmlucHV0Li1lcnJvciA+Lm1lc3NhZ2Uge1xuICBjb2xvcjogI2FiMjEyNjtcbiAgLW1zLWZpbHRlcjogbm9uZTtcbiAgZmlsdGVyOiBub25lO1xuICBvcGFjaXR5OiAxO1xufVxuLmlucHV0Li1jaGVja2JveCA+Lm1lc3NhZ2Uge1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG4uaW5wdXQgLi11bmRlci10YWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgZm9udC1zaXplOiAxLjE0ZW07XG59XG5maWVsZHNldC5jYWEge1xuICAqem9vbTogMTtcbn1cbmZpZWxkc2V0LmNhYTpiZWZvcmUsXG5maWVsZHNldC5jYWE6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG59XG5maWVsZHNldC5jYWE6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbmZpZWxkc2V0Li1ncmV5IHtcbiAgbWFyZ2luLXRvcDogNWVtO1xuICBwYWRkaW5nOiAyLjVlbSAwIDZlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbmJvZHkgZm9ybSAuc2VsZWN0LXdhcHBlciAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICM0MzQzNDM7XG4gICp6b29tOiAxO1xufVxuYm9keSBmb3JtIC5zZWxlY3Qtd2FwcGVyIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2U6YmVmb3JlLFxuYm9keSBmb3JtIC5zZWxlY3Qtd2FwcGVyIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2U6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG59XG5ib2R5IGZvcm0gLnNlbGVjdC13YXBwZXIgLnNlbGVjdDItY29udGFpbmVyIC5zZWxlY3QyLWNob2ljZTphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuYm9keSBmb3JtIC5zZWxlY3Qtd2FwcGVyIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgPi5zZWxlY3QyLWNob3NlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbmJvZHkgZm9ybSAuc2VsZWN0LXdhcHBlciAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItY2hvaWNlIC5zZWxlY3QyLWFycm93IHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogM2VtO1xufVxuYm9keSBmb3JtIC5zZWxlY3Qtd2FwcGVyIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1jaG9pY2UgLnNlbGVjdDItYXJyb3cgYjpiZWZvcmUge1xuICBjb250ZW50OiB1cmwoXCIvaW1hZ2VzL2Fycm93LnN2Z1wiKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogI2YwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiAxZW07XG59XG4uc2VsZWN0Mi1yZXN1bHRzID4uc2VsZWN0Mi1yZXN1bHQge1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgY29sb3I6ICM0MzQzNDM7XG59XG4uc2VsZWN0Mi1yZXN1bHRzID4uc2VsZWN0Mi1yZXN1bHQuc2VsZWN0Mi1oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYTE3M2E7XG4gIGNvbG9yOiAjZmZmO1xufVxuYm9keSAuc2VsZWN0Mi1kcm9wLWFjdGl2ZSxcbi5zZWxlY3QyLWRyb3Auc2VsZWN0Mi1kcm9wLWFib3ZlLnNlbGVjdDItZHJvcC1hY3RpdmUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjNDM0MzQzO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uaW5wdXQuLXNlbGVjdC4tZW1wdHkgLnNlbGVjdDItY2hvaWNlID4uc2VsZWN0Mi1jaG9zZW4ge1xuICBjb2xvcjogI2FjYWNhYztcbn1cbi5pbnB1dC4tc2VsZWN0Li1lcnJvciAuc2VsZWN0Mi1jaG9pY2Uge1xuICBib3JkZXItY29sb3I6ICNhYjIxMjY7XG59XG4uc2VsZWN0Mi1zZWFyY2gge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLnNlbGVjdDItZHJvcC5zZWxlY3QyLWRyb3AtYWJvdmUgLnNlbGVjdDItc2VhcmNoIGlucHV0IHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuLnNlY3Rpb24taW5mb3MgPmZvb3RlciA+LmFjdGlvbnMge1xuICBtYXJnaW46IDUwcHggMCA0MHB4O1xufVxuLnNlY3Rpb24taW5mb3MgPmZvb3RlciA+LmFjdGlvbnMgPi5idG4ge1xuICB3aWR0aDogMjY1cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgbWFyZ2luOiAwIDNlbTtcbn1cbi5zZWN0aW9uLWluZm9zIGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG4uc2VjdGlvbi1pbmZvcyAuZGVzY3JpcHRpb24tYmlnIHtcbiAgbWFyZ2luLXRvcDogMS4yZW07XG4gIGZvbnQtc2l6ZTogMS4xNGVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgLnNlY3Rpb24taW5mb3MgPmhlYWRlcixcbiAgLnNlY3Rpb24taW5mb3MgLmRlc2NyaXB0aW9uIHtcbiAgICB3aWR0aDogMjcwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC5zZWN0aW9uLWluZm9zID5mb290ZXIgPi5hY3Rpb25zIHtcbiAgICBtYXJnaW46IDIwcHggMCAzMHB4O1xuICB9XG4gIC5zZWN0aW9uLWluZm9zID5mb290ZXIgPi5hY3Rpb25zID4uYnRuIHtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnNlY3Rpb24taW5mb3MgPmZvb3RlciA+LmFjdGlvbnMgPi5idG4gPnNwYW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIH1cbiAgLnNlY3Rpb24taW5mb3MgPmZvb3RlciA+LmFjdGlvbnMgPi5idG46Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbn1cbi5zZWN0aW9uLWNhYSA+aGVhZGVyIGZpZ3VyZSB7XG4gIG1hcmdpbi1ib3R0b206IDNlbTtcbn1cbi5zZWN0aW9uLWNhYSA+aGVhZGVyIGZpZ3VyZSBmaWdjYXB0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMwMDUyOWI7XG4gIGZvbnQtc2l6ZTogMjhweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIC5zZWN0aW9uLWNhYSB7XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICAuc2VjdGlvbi1jYWEgPmhlYWRlciA+ZmlndXJlID5pbWcge1xuICAgIHdpZHRoOiA2MHB4O1xuICB9XG4gIC5zZWN0aW9uLWNhYSA+aGVhZGVyID5maWd1cmUgPmZpZ2NhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuW2RhdGEtcGFnZT0naG9tZSddICNtYWluIHtcbiAgbWF4LXdpZHRoOiAxMDY2cHg7XG59XG5bZGF0YS1wYWdlPSdob21lJ10gI2Zvb3RlciB7XG4gIG1hcmdpbi10b3A6IDI3cHg7XG59XG4uaGVhZC1tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMTczYTtcbn1cbi5oZWFkLW1lc3NhZ2UgPi53cmFwcGVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDVlbSAwO1xufVxuLmhlYWQtbWVzc2FnZSA+LndyYXBwZXIgYSB7XG4gIGNvbG9yOiAjZmZlMjAwO1xufVxuLmhlYWQtbWVzc2FnZSA+LndyYXBwZXIgYSAuYWN0aWYsXG4ubm8tdG91Y2ggLmhlYWQtbWVzc2FnZSA+LndyYXBwZXIgYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZlYjRkO1xufVxuLmhlYWQtbWVzc2FnZSA+LndyYXBwZXIgPi50aXRsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEuNzFlbTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC40ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4uaGVhZC1tZXNzYWdlID4ud3JhcHBlciA+LmxlZ2VuZCB7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xufVxuLmhlYWQtbWVzc2FnZSA+LndyYXBwZXIgPi5ub3RlIHtcbiAgbWFyZ2luLXRvcDogMy41ZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICAuaGVhZC1tZXNzYWdlID4ud3JhcHBlciB7XG4gICAgcGFkZGluZzogMmVtIDAgMy4yZW07XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuICAuaGVhZC1tZXNzYWdlID4ud3JhcHBlciA+LnRpdGxlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG4gIC5oZWFkLW1lc3NhZ2UgPi53cmFwcGVyID5wIHtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgfVxuICAuaGVhZC1tZXNzYWdlID4ud3JhcHBlciA+Lm5vdGUge1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgfVxufVxuI3JlZ2lzdHJhdGlvbkZvcm0gaW5wdXQsXG4jcmVnaXN0cmF0aW9uRm9ybSAuc2VsZWN0LXdhcHBlciB7XG4gIHdpZHRoOiAzMTBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTA2N3B4KSB7XG4gICNyZWdpc3RyYXRpb25Gb3JtIC5jb2wge1xuICAgICp6b29tOiAxO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDQ4LjUlO1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICB9XG4gICNyZWdpc3RyYXRpb25Gb3JtIC5jb2w6YmVmb3JlLFxuICAjcmVnaXN0cmF0aW9uRm9ybSAuY29sOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuICAjcmVnaXN0cmF0aW9uRm9ybSAuY29sOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAjcmVnaXN0cmF0aW9uRm9ybSAuY29sOm50aC1jaGlsZCgybikge1xuICAgIG1hcmdpbi1yaWdodDogMCU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gICNyZWdpc3RyYXRpb25Gb3JtIC5jb2w6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAjcmVnaXN0cmF0aW9uRm9ybSAuY29sOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1MHB4O1xuICB9XG4gICNyZWdpc3RyYXRpb25Gb3JtIC5jb2w6Zmlyc3QtY2hpbGQgKy5jb2wge1xuICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgfVxufVxuI3JlZ2lzdHJhdGlvbkZvcm0gI2Zvcm0tZXJyTXNnIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzBhMTczYTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICMwYTE3M2E7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBwYWRkaW5nOiAyZW0gMmVtIDJlbSAzLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgbWFyZ2luLXRvcDogMmVtO1xuICB3aWR0aDogMzEwcHg7XG59XG4jcmVnaXN0cmF0aW9uRm9ybSAjZm9ybS1lcnJNc2cgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG4jcmVnaXN0cmF0aW9uRm9ybSAjaW52b2ljZUxhYmVsID4ubGFiZWxVcGxvYWRGaWxlIHtcbiAgbWFyZ2luLXRvcDogLTNweDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG59XG4jcmVnaXN0cmF0aW9uRm9ybSAjaW52b2ljZUxhYmVsID4ubGFiZWxVcGxvYWROb3RpY2Uge1xuICBmb250LXNpemU6IDAuNzhlbTtcbiAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG59XG4jcmVnaXN0cmF0aW9uRm9ybSAjbmV3c2xldHRlciB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG4jcmVnaXN0cmF0aW9uRm9ybSAjbmV3c2xldHRlciA+LmlucHV0IHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbiNyZWdpc3RyYXRpb25Gb3JtICNuZXdzbGV0dGVyIC5pbnB1dC4tcmFkaW8gPmlucHV0ICtsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMmVtO1xufVxuI3JlZ2lzdHJhdGlvbkZvcm0gI25ld3NsZXR0ZXIgLmlucHV0Li1yYWRpbyA+aW5wdXQgK2xhYmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuI3JlZ2lzdHJhdGlvbkZvcm0gI25ld3NsZXR0ZXIgLmlucHV0Li1yYWRpbyA+aW5wdXQgK2xhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEycHg7XG59XG4jcmVnaXN0cmF0aW9uRm9ybSAjbmV3c2xldHRlciAuaW5wdXQuLXJhZGlvLi1lcnJvciA+aW5wdXQrbGFiZWwge1xuICBjb2xvcjogI2FiMjEyNjtcbn1cbiNyZWdpc3RyYXRpb25Gb3JtICNuZXdzbGV0dGVyIC5pbnB1dC4tcmFkaW8uLWVycm9yID5pbnB1dCtsYWJlbDpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICNhYjIxMjY7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICAjcmVnaXN0cmF0aW9uRm9ybSAjbmV3c2xldHRlciAuaW5wdXQuLXJhZGlvID5pbnB1dCArbGFiZWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbiAgI3JlZ2lzdHJhdGlvbkZvcm0gI25ld3NsZXR0ZXIgLmlucHV0Li1yYWRpbyA+aW5wdXQgK2xhYmVsOmFmdGVyIHtcbiAgICB0b3A6IC0xcHg7XG4gICAgbGVmdDogN3B4O1xuICB9XG59XG4ubG9jYWxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA1ZW0gMCAzLjJlbTtcbn1cbi5sb2NhbGUgPi5pbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDEuOGVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgLmxvY2FsZSB7XG4gICAgcGFkZGluZzogMmVtIDAgMy4yZW07XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuLmJpbGwge1xuICBwYWRkaW5nOiA0ZW0gMCAxLjRlbTtcbn1cbi5iaWxsID4uYnRuIHtcbiAgbWFyZ2luLWJvdHRvbTogMC44ZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNjZweCkge1xuICAuYmlsbCA+LmJ0biB7XG4gICAgcGFkZGluZy10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIH1cbn1cbi5iaWxsID5pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYmlsbCA+Lm5vdGUge1xuICBjb2xvcjogIzBhMTczYTtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi5jYWEge1xuICBtYXJnaW46IDNlbSAwIDEuMmVtO1xufVxuLmNhYSA+bGVnZW5kIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLmNhYSA+LnJvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDJlbSAwIDFlbTtcbn1cbi5jYWEgPi5yb3cgPi5pbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDEuOGVtO1xufVxuLmNhYSA+LnJvdyA+Li10ZXh0ID5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW46IDAuNGVtIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5wcm9kdWN0IHtcbiAgbWFyZ2luLXRvcDogMi42ZW07XG59XG4ucHJvZHVjdCA+LndyYXBwZXIgPi5nYW1tZXMtdGFibGUge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4ucHJvZHVjdCA+LndyYXBwZXIgPi5nYW1tZXMtdGFibGUgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbi5wcm9kdWN0ID4ud3JhcHBlciA+Lm5vdGUge1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cbiNyZWNlcHRpb25Gb3JtIGZpZWxkc2V0ID4ud3JhcHBlciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbltkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4ge1xuICBwYWRkaW5nOiA2MHB4IDAgMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIFtkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4ge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICB9XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluID5oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMmVtO1xufVxuW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiA+aGVhZGVyID5oMiB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbltkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4gPi5jb250ZW50IHtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluID4uY29udGVudCA+aDMge1xuICBjb2xvcjogIzBhMTczYTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cbltkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4gPi5jb250ZW50ID5wIHNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluIC5jb250ZW50LXJlY2VwdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluIGZvcm0ge1xuICBwYWRkaW5nLXRvcDogMWVtO1xufVxuW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiBmb3JtID4ubWVzc2FnZXMge1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW46IDAgYXV0byAzZW07XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluIGZvcm0gPi4tZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbltkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4gZm9ybSA+Li1ncmV5ID5ociB7XG4gIHdpZHRoOiA2MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluIGZvcm0gPi4tZ3JleSA+ZmllbGRzZXQge1xuICBwYWRkaW5nLWJvdHRvbTogM2VtO1xufVxuW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiBmb3JtID4uLWdyZXkgPmZpZWxkc2V0LmlkID4uaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluIGZvcm0gPi4tZ3JleSA+ZmllbGRzZXQub3RoZXIge1xuICBwYWRkaW5nLWJvdHRvbTogNmVtO1xufVxuW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiBmb3JtID4uLWdyZXkgPmZpZWxkc2V0ID5sZWdlbmQge1xuICB0b3A6IDNlbTtcbiAgbWFyZ2luLWJvdHRvbTogNGVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluIGZvcm0gPi4tZ3JleSA+ZmllbGRzZXQgPi53cmFwcGVyIHtcbiAgd2lkdGg6IDYwMHB4O1xufVxuW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiBmb3JtID4uLWdyZXkgPmZpZWxkc2V0ID4ud3JhcHBlciA+LmNvbCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTA2N3B4KSB7XG4gIFtkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4gZm9ybSA+Li1ncmV5ID5maWVsZHNldCA+LndyYXBwZXIgPi5jb2wrLmNvbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICB9XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluIGZvcm0gLi1zdWJtaXQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNsZWFyOiBib3RoO1xuICBwYWRkaW5nLXRvcDogMmVtO1xufVxuW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiBmb3JtID4uLWdyZXkgPi5vdGhlciAuYm90dG9tLW5vdGUge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiA+aGVhZGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxuICBbZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluID5oZWFkZXIgPi5sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIH1cbiAgW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiBmb3JtID4ubWVzc2FnZXMsXG4gIFtkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4gZm9ybSA+Li1ncmV5ID4uaWQgPi53cmFwcGVyLFxuICBbZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluIGZvcm0gPi4tZ3JleSA+Lm90aGVyID4ud3JhcHBlcixcbiAgW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiBmb3JtID4uLWdyZXkgPmhyIHtcbiAgICB3aWR0aDogMjcwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluICNmb3JtLW1zZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC13aWR0aDogaW5oZXJpdDtcbn1cbltkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4gI2Zvcm0tbXNnICNmb3JtLW1zZy1odG1sIHtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDZlbSAwO1xuICBmb250LXNpemU6IDEuMTRlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIFtkYXRhLXBhZ2U9XCJyZWNlcHRpb25cIl0gI21haW4gI2Zvcm0tbXNnICNmb3JtLW1zZy1odG1sIHtcbiAgICB3aWR0aDogMjcwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluICNmb3JtLW1zZyAjZm9ybS1tc2ctaHRtbC4tc3VjY2VzcyB7XG4gIGNvbG9yOiAjNDM0MzQzO1xufVxuW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpbiAjZm9ybS1tc2cgI2Zvcm0tbXNnLWh0bWwuLWVycm9yIHtcbiAgY29sb3I6ICNhYjIxMjY7XG59XG5bZGF0YS1wYWdlPVwicmVjZXB0aW9uXCJdICNtYWluICNmb3JtLW1zZyAjZm9ybS1tc2ctaHRtbCA+cCB7XG4gIG1hcmdpbjogMWVtIDA7XG59XG4udG9wLW1lc3NhZ2UgcCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYmxvY2stY29udGVudCB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM4MDgwODA7XG4gIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluIHtcbiAgcGFkZGluZzogODBweCAwIDA7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiA+aGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiA+aGVhZGVyID5oMiB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID5oZWFkZXIgPnAge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiA+LmNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID4uY29udGVudCA+aDMge1xuICBjb2xvcjogIzBhMTczYTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiAxLjE0ZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID4uY29udGVudCA+cCB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID4uY29udGVudCA+cCBzbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xufVxuW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gPi5mb290ZXJDb250ZW50IHtcbiAgbWF4LXdpZHRoOiA4MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDcwcHggMDtcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID4uZm9vdGVyQ29udGVudCA+cCB7XG4gIG1hcmdpbi10b3A6IDNlbTtcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID4uZm9vdGVyQ29udGVudCA+aDMge1xuICBmb250LXNpemU6IDEuNzFlbTtcbiAgY29sb3I6ICMwYTE3M2E7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiA+LmZvb3RlckNvbnRlbnQgPmgzID5hIHtcbiAgY29sb3I6ICMwYTE3M2E7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiBmaWVsZHNldC4tZ3JleSB7XG4gIHBhZGRpbmctYm90dG9tOiAzLjVlbTtcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluIGZpZWxkc2V0Li1ncmV5IC4tc3VibWl0LmlucHV0IHtcbiAgY2xlYXI6IHJpZ2h0O1xuICBmbG9hdDogcmlnaHQ7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiBmaWVsZHNldC4tZ3JleSAucm93IHtcbiAgKnpvb206IDE7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiBmaWVsZHNldC4tZ3JleSAucm93OmJlZm9yZSxcbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluIGZpZWxkc2V0Li1ncmV5IC5yb3c6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiBmaWVsZHNldC4tZ3JleSAucm93OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiBmaWVsZHNldC4tZ3JleSAucm93IC5pbnB1dCB7XG4gICp6b29tOiAxO1xuICBmbG9hdDogbGVmdDtcbiAgY2xlYXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIHdpZHRoOiA0OC41JTtcbiAgbWFyZ2luLWxlZnQ6IDAlO1xuICBtYXJnaW4tcmlnaHQ6IDMlO1xufVxuW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gZmllbGRzZXQuLWdyZXkgLnJvdyAuaW5wdXQ6YmVmb3JlLFxuW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gZmllbGRzZXQuLWdyZXkgLnJvdyAuaW5wdXQ6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiBmaWVsZHNldC4tZ3JleSAucm93IC5pbnB1dDphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gZmllbGRzZXQuLWdyZXkgLnJvdyAuaW5wdXQ6bnRoLWNoaWxkKDJuKSB7XG4gIG1hcmdpbi1yaWdodDogMCU7XG4gIGZsb2F0OiByaWdodDtcbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluIGZpZWxkc2V0Li1ncmV5IC5yb3cgLmlucHV0Om50aC1jaGlsZCgybisxKSB7XG4gIGNsZWFyOiBib3RoO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gZmllbGRzZXQuLWdyZXkgLnJvdyAuaW5wdXQge1xuICAgICp6b29tOiAxO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBub25lO1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICAgIG1hcmdpbi1yaWdodDogMyU7XG4gIH1cbiAgW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gZmllbGRzZXQuLWdyZXkgLnJvdyAuaW5wdXQ6YmVmb3JlLFxuICBbZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiBmaWVsZHNldC4tZ3JleSAucm93IC5pbnB1dDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbiAgW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gZmllbGRzZXQuLWdyZXkgLnJvdyAuaW5wdXQ6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIFtkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluIGZpZWxkc2V0Li1ncmV5IC5yb3cgLmlucHV0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMCU7XG4gIH1cbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluIGZpZWxkc2V0Li1ncmV5IC5yb3cgLmlucHV0IGlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwNjdweCkge1xuICBbZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiA+Zm9ybSA+Li1ncmV5ID4ud3JhcHBlciB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICB9XG4gIFtkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID5mb3JtID4uLWdyZXkgPi53cmFwcGVyIHRleHRhcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBbZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiA+Zm9ybSA+Li1ncmV5ID4ud3JhcHBlciA+LmNvbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIFtkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID5mb3JtID4uLWdyZXkgPi53cmFwcGVyID4uY29sKy5jb2wge1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4ge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICB9XG4gIFtkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluID5oZWFkZXIge1xuICAgIHdpZHRoOiAyNzBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbiAgW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gPmhlYWRlciA+LmxvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgfVxuICBbZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiAuaW5wdXQuLXRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IDEzZW07XG4gIH1cbiAgW2RhdGEtcGFnZT1cImNvbnRhY3RcIl0gI21haW4gLmlucHV0Li10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluICNmb3JtLW1zZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgbWFyZ2luLXRvcDogNzBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA2NnB4KSB7XG4gIFtkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluICNmb3JtLW1zZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluICNmb3JtLWVyck1zZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwYTE3M2E7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMGExNzNhO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgcGFkZGluZzogMmVtIDJlbSAyZW0gMy41ZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIG1hcmdpbi10b3A6IDRlbTtcbiAgd2lkdGg6IDMxMHB4O1xuICBmbG9hdDogcmlnaHQ7XG59XG5bZGF0YS1wYWdlPVwiY29udGFjdFwiXSAjbWFpbiAjZm9ybS1lcnJNc2cgbGkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5bZGF0YS1wYWdlPVwidGVybXNcIl0gI21haW4ge1xuICBwYWRkaW5nOiA4MHB4IDA7XG59XG5bZGF0YS1wYWdlPVwidGVybXNcIl0gI21haW4gPmhlYWRlciB7XG4gIHBhZGRpbmctdG9wOiAyZW07XG59XG5bZGF0YS1wYWdlPVwidGVybXNcIl0gI21haW4gPi53cmFwcGVyIHtcbiAgd2lkdGg6IDEwNjZweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5bZGF0YS1wYWdlPVwidGVybXNcIl0gI21haW4gPi53cmFwcGVyID5wLFxuW2RhdGEtcGFnZT1cInRlcm1zXCJdICNtYWluID4ud3JhcHBlciBvbCB7XG4gIHBhZGRpbmctYm90dG9tOiAyZW07XG59XG5bZGF0YS1wYWdlPVwidGVybXNcIl0gI21haW4gPi53cmFwcGVyIGg1LFxuW2RhdGEtcGFnZT1cInRlcm1zXCJdICNtYWluID4ud3JhcHBlciBzdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuW2RhdGEtcGFnZT1cInRlcm1zXCJdICNtYWluID4ud3JhcHBlciBvbCB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuW2RhdGEtcGFnZT1cInRlcm1zXCJdICNtYWluID4ud3JhcHBlciBvbCBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbltkYXRhLXBhZ2U9XCJ0ZXJtc1wiXSAjbWFpbiA+LndyYXBwZXIgb2wgbGk6bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tdG9wOiAyZW07XG59XG5bZGF0YS1wYWdlPVwidGVybXNcIl0gI21haW4gPi53cmFwcGVyIG9sIGxpIHAge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDY2cHgpIHtcbiAgW2RhdGEtcGFnZT1cInRlcm1zXCJdICNtYWluIHtcbiAgICBwYWRkaW5nOiA0MHB4IDAgMzBweDtcbiAgfVxuICBbZGF0YS1wYWdlPVwidGVybXNcIl0gI21haW4gPmhlYWRlciB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbiAgW2RhdGEtcGFnZT1cInRlcm1zXCJdICNtYWluID5oZWFkZXIgPi5sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIH1cbiAgW2RhdGEtcGFnZT1cInRlcm1zXCJdICNtYWluID4ud3JhcHBlciB7XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuIiwia3Mtc2l6ZSggdmFsdWVzLi4uIClcbiAgICBpZiBsZW5ndGgoIHZhbHVlcyApID09IDFcbiAgICAgICAgd2lkdGg6IHZhbHVlc1sgMCBdIHx8IGF1dG9cbiAgICAgICAgaGVpZ2h0OiB2YWx1ZXNbIDAgXSB8fCBhdXRvXG4gICAgZWxzZVxuICAgICAgICB3aWR0aDogdmFsdWVzWyAwIF0gaWYgdmFsdWVzWyAwIF0gIT0gZmFsc2VcbiAgICAgICAgaGVpZ2h0OiB2YWx1ZXNbIDEgXSBpZiB2YWx1ZXNbIDEgXSAhPSBmYWxzZVxuXG5zaXplID0ga3Mtc2l6ZSB1bmxlc3Mga3Mtbm8tY29uZmxpY3RcbiIsIi8qKlxuICogXHRTb21lIHZhcnMgZm9yIHJlY3VyZW50IHZhbHVlc1xuICpcbiAqXHRAYXV0aG9yIFdFX0FSRVxuICovXG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfVEFCXSAgLyAgVGFibGUgb2YgQ29udGVudHNcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLypcbl9UQUJcdFRhYmxlIG9mIENvbnRlbnRzXG5fR1JJXHRHcmlkXG5fQ09MXHRDb2xvcnNcbl9TRUwgIFNlbGVjdG9yc1xuX0ZTSSAgRm9udFNpemVzIChiYXNlIGlzIDE0cHgpXG5fWklOXHRaLUluZGV4XG4qL1xuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0dSSV0gIC8gIEdyaWRcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX3ctc2FmZSAgICAgICAgICAgICAgICAgPSAxMDY2cHhcbl93LXNhZmUtbW9iaWxlICAgICAgICAgID0gMjcwcHhcbnJ1cHR1cmUuZGVza3RvcC1jdXRvZmYgID0gX3ctc2FmZSArIDFcbnJ1cHR1cmUubW9iaWxlLWN1dG9mZiAgID0gX3ctc2FmZVxuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0NPTF0gIC8gIENvbG9yc1xuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fYy13aGl0ZSAgICAgID0gI2ZmZmZmZlxuX2MtYmxhY2sgICAgICA9ICM0MzQzNDNcbl9jLWFjY2VudCAgICAgPSAjMGExNzNhXG5fYy1hbHQgICAgICAgID0gI2ZmZTIwMFxuX2MtbGlnaHQgICAgICA9ICNjOWM5Yzlcbl9jLWJnLWRhcmsgICAgPSAjZjBmMGYwXG5fYy1lcnJvciAgICAgID0gI2FiMjEyNlxuX2Mtc3VjY2VzcyAgICA9ICMzNjhBNTVcbl9jLWhlYWRlci1iZyAgPSAjMDUwYTE5XG5fYy1tYWluLXNlbGVjdGVkID0gX2MtYWNjZW50XG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfU0VMXSAgLyAgU2VsZWN0b3JzXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRoZWFkaW5ncyA9ICdoMSwgaDIsIGgzLCBoNCwgaDUsIGg2J1xuJGlucHV0cyAgID0gJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdLGlucHV0W3R5cGU9XCJlbWFpbFwiXSxpbnB1dFt0eXBlPVwibnVtYmVyXCJdLGlucHV0W3R5cGU9XCJzZWFyY2hcIl0saW5wdXRbdHlwZT1cInRlbFwiXSxpbnB1dFt0eXBlPVwidXJsXCJdJ1xuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0ZTSV0gIC8gIEZvbnRTaXplcyAoYmFzZSBpcyAxNHB4KVxuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fZnotYmlnICAgICAgID0gMS43MWVtICAvLyAyNHB4XG5fZnotYWNjZW50ICAgID0gMS4xNGVtICAvLyAxNnB4XG5fZnotcmVndWxhciAgID0gMWVtICAgICAvLyAxNHB4XG5fZnotbWVkaXVtICAgID0gLjg1ZW0gICAvLyAxMnB4XG5fZnotc21hbGwgICAgID0gLjc4ZW0gICAvLyAxMXB4XG5fZnotc21hbGxlciAgID0gLjcxZW0gICAvLyAxMHB4XG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfWklOXSAgLyAgWi1JbmRleFxuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fei1oZWFkZXIgICAgID0gMTAwMFxuX3otbWVudSAgICAgICA9IDUwMFxuXG5tb2JpbGUtc2FmZSgpXG4gIHdpZHRoIF93LXNhZmUtbW9iaWxlXG4gIG1hcmdpbi1sZWZ0OiBhdXRvXG4gIG1hcmdpbi1yaWdodDogYXV0b1xuIiwiLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGggYSBndXR0ZXIuXG4gKiBAcGFyYW0ge251bWJlcn0gW3JhdGlvcz0xXSAtIEEgd2lkdGggcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lciBhcyBhIGZyYWN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXQ9MF0gLSBBIG9mZnNldCBzcGVjaWZpZWQgYXMgYSBmcmFjdGlvbiAoc2VlIHJhdGlvcykuXG4gKiBAcGFyYW0ge251bWJlcn0gW2N5Y2xlPTBdIC0gRWFzaWx5IGNyZWF0ZSBhbiBudGggY29sdW1uIGdyaWQgd2hlcmUgY3ljbGUgZXF1YWxzIHRoZSBudW1iZXIgb2YgY29sdW1ucy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbdW5jeWNsZT0wXSAtIFVuZG8gYSBwcmV2aW91cyBjeWNsZSB2YWx1ZSB0byBhbGxvdyBmb3IgYSBuZXcgb25lLlxuICogQHBhcmFtIHtudW1iZXJ9IFtndXR0ZXI9amVldC5ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuY29sdW1uKHJhdGlvcyA9IDEsIG9mZnNldCA9IDAsIGN5Y2xlID0gMCwgdW5jeWNsZSA9IDAsIGd1dHRlciA9IGplZXQuZ3V0dGVyKVxuICBzaWRlID0gamVldC1nZXQtbGF5b3V0LWRpcmVjdGlvbigpXG4gIG9wcG9zaXRlLXNpZGUgPSBvcHBvc2l0ZS1wb3NpdGlvbihzaWRlKVxuICBjb2x1bW4td2lkdGhzID0gamVldC1nZXQtY29sdW1uKHJhdGlvcywgZ3V0dGVyKVxuICBtYXJnaW4tbGFzdCA9IDBcbiAgbWFyZ2luLWwgPSBtYXJnaW4tbGFzdFxuICBtYXJnaW4tciA9IGNvbHVtbi13aWR0aHNbMV1cblxuICB1bmxlc3Mgb2Zmc2V0ID09IDBcbiAgICBpZiBvZmZzZXQgPCAwXG4gICAgICBvZmZzZXQgKj0gLTFcbiAgICAgIG9mZnNldCA9IGplZXQtZ2V0LWNvbHVtbihvZmZzZXQsIGNvbHVtbi13aWR0aHNbMV0pWzBdXG4gICAgICBtYXJnaW4tciA9IG1hcmdpbi1sYXN0ID0gb2Zmc2V0ICsgY29sdW1uLXdpZHRoc1sxXSAqIDJcbiAgICBlbHNlXG4gICAgICBvZmZzZXQgPSBqZWV0LWdldC1jb2x1bW4ob2Zmc2V0LCBjb2x1bW4td2lkdGhzWzFdKVswXVxuICAgICAgbWFyZ2luLWwgPSBvZmZzZXQgKyBjb2x1bW4td2lkdGhzWzFdXG5cbiAgY2YoKVxuICBmbG9hdDogc2lkZVxuICBjbGVhcjogbm9uZVxuICB0ZXh0LWFsaWduOiBpbmhlcml0XG4gIHdpZHRoOiAoY29sdW1uLXdpZHRoc1swXSklXG4gIG1hcmdpbi17c2lkZX06IChtYXJnaW4tbCklXG4gIG1hcmdpbi17b3Bwb3NpdGUtc2lkZX06IChtYXJnaW4tciklXG5cbiAgaWYgdW5jeWNsZSAhPSAwXG4gICAgJjpudGgtY2hpbGQoe3VuY3ljbGV9bilcbiAgICAgIG1hcmdpbi17b3Bwb3NpdGUtc2lkZX06IChtYXJnaW4tciklXG4gICAgICBmbG9hdDogc2lkZVxuICAgICY6bnRoLWNoaWxkKHt1bmN5Y2xlfW4rMSlcbiAgICAgIGNsZWFyOiBub25lXG5cbiAgaWYgY3ljbGUgIT0gMFxuICAgICY6bnRoLWNoaWxkKHtjeWNsZX1uKVxuICAgICAgbWFyZ2luLXtvcHBvc2l0ZS1zaWRlfTogKG1hcmdpbi1sYXN0KSVcbiAgICAgIGZsb2F0OiBvcHBvc2l0ZS1zaWRlXG4gICAgJjpudGgtY2hpbGQoe2N5Y2xlfW4rMSlcbiAgICAgIGNsZWFyOiBib3RoXG4gICBlbHNlXG4gICAgJjpsYXN0LWNoaWxkXG4gICAgICBtYXJnaW4te29wcG9zaXRlLXNpZGV9OiAobWFyZ2luLWxhc3QpJVxuXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uIG1peGluLlxuICovXG5jb2wgPSBjb2x1bW5cblxuLyoqXG4gKiBHZXQgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGFuZCBub3RoaW5nIGVsc2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3JhdGlvcz0xXSAtIEEgd2lkdGggcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lciBhcyBhIGZyYWN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFtndXR0ZXI9amVldC5ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuY29sdW1uLXdpZHRoKHJhdGlvcyA9IDEsIGd1dHRlciA9IGplZXQuZ3V0dGVyKVxuICByZXR1cm4gamVldC1nZXQtY29sdW1uKHJhdGlvcywgZ3V0dGVyKVswXSArICclJ1xuXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uLXdpZHRoIGZ1bmN0aW9uLlxuICovXG5jdyA9IGNvbHVtbi13aWR0aFxuXG4vKipcbiAqIEdldCB0aGUgZ3V0dGVyIHNpemUgb2YgYSBjb2x1bW4gYW5kIG5vdGhpbmcgZWxzZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gW2d1dHRlcj1qZWV0Lmd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG5jb2x1bW4tZ3V0dGVyKHJhdGlvcyA9IDEsIGd1dHRlciA9IGplZXQuZ3V0dGVyKVxuICByZXR1cm4gamVldC1nZXQtY29sdW1uKHJhdGlvcywgZ3V0dGVyKVsxXSArICclJ1xuXG4vKipcbiAqIEFuIGFsaWFzIGZvciB0aGUgY29sdW1uLWd1dHRlciBmdW5jdGlvbi5cbiAqL1xuY2cgPSBjb2x1bW4tZ3V0dGVyXG5cbi8qKlxuICogU3R5bGUgYW4gZWxlbWVudCBhcyBhIGNvbHVtbiB3aXRob3V0IGFueSBndXR0ZXJzIGZvciBhIHNlYW1sZXNzIHJvdy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldD0wXSAtIEEgb2Zmc2V0IHNwZWNpZmllZCBhcyBhIGZyYWN0aW9uIChzZWUgcmF0aW9zKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbY3ljbGU9MF0gLSBFYXNpbHkgY3JlYXRlIGFuIG50aCBjb2x1bW4gZ3JpZCB3aGVyZSBjeWNsZSBlcXVhbHMgdGhlIG51bWJlciBvZiBjb2x1bW5zLlxuICogQHBhcmFtIHtudW1iZXJ9IFt1bmN5Y2xlPTBdIC0gVW5kbyBhIHByZXZpb3VzIGN5Y2xlIHZhbHVlIHRvIGFsbG93IGZvciBhIG5ldyBvbmUuXG4gKi9cbnNwYW4ocmF0aW8gPSAxLCBvZmZzZXQgPSAwLCBjeWNsZSA9IDAsIHVuY3ljbGUgPSAwKVxuICBzaWRlID0gamVldC1nZXQtbGF5b3V0LWRpcmVjdGlvbigpXG4gIG9wcG9zaXRlLXNpZGUgPSBvcHBvc2l0ZS1wb3NpdGlvbihzaWRlKVxuICBzcGFuLXdpZHRoID0gamVldC1nZXQtc3BhbihyYXRpbylcbiAgbWFyZ2luLXIgPSAwXG4gIG1hcmdpbi1sID0gbWFyZ2luLXJcblxuICB1bmxlc3Mgb2Zmc2V0ID09IDBcbiAgICBpZiBvZmZzZXQgPCAwXG4gICAgICBvZmZzZXQgKj0gLTFcbiAgICAgIG1hcmdpbi1yID0gamVldC1nZXQtc3BhbihvZmZzZXQpXG4gICAgZWxzZVxuICAgICAgbWFyZ2luLWwgPSBqZWV0LWdldC1zcGFuKG9mZnNldClcblxuICBjZigpXG4gIGZsb2F0OiBzaWRlXG4gIGNsZWFyOiBub25lXG4gIHRleHQtYWxpZ246IGluaGVyaXRcbiAgd2lkdGg6IChzcGFuLXdpZHRoKSVcbiAgbWFyZ2luLXtzaWRlfTogKG1hcmdpbi1sKSVcbiAgbWFyZ2luLXtvcHBvc2l0ZS1zaWRlfTogKG1hcmdpbi1yKSVcblxuICBpZiBjeWNsZSAhPSAwXG4gICAgJjpudGgtY2hpbGQoe2N5Y2xlfW4pXG4gICAgICBmbG9hdDogb3Bwb3NpdGUtc2lkZVxuICAgICY6bnRoLWNoaWxkKHtjeWNsZX1uICsgMSlcbiAgICAgIGNsZWFyOiBib3RoXG5cbiAgaWYgdW5jeWNsZSAhPSAwXG4gICAgJjpudGgtY2hpbGQoe3VuY3ljbGV9bilcbiAgICAgIGZsb2F0OiBzaWRlXG4gICAgJjpudGgtY2hpbGQoe3VuY3ljbGV9biArIDEpXG4gICAgICBjbGVhcjogbm9uZVxuXG4vKipcbiAqIFJlb3JkZXIgY29sdW1ucyB3aXRob3V0IGFsdGVyaW5nIHRoZSBIVE1MLlxuICogQHBhcmFtIHtudW1iZXJ9IFtyYXRpb3M9MF0gLSBTcGVjaWZ5IGhvdyBmYXIgYWxvbmcgeW91IHdhbnQgdGhlIGVsZW1lbnQgdG8gbW92ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbY29sLW9yLXNwYW49Y29sdW1uXSAtIFNwZWNpZnkgd2hldGhlciB0aGUgZWxlbWVudCBoYXMgYSBndXR0ZXIgb3Igbm90LlxuICogQHBhcmFtIHtudW1iZXJ9IFtndXR0ZXI9amVldC5ndXR0ZXJdIC0gU3BlY2lmeSB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY29udGFpbmVycyB3aWR0aC5cbiAqL1xuc2hpZnQocmF0aW9zID0gMCwgY29sLW9yLXNwYW4gPSBjb2x1bW4sIGd1dHRlciA9IGplZXQuZ3V0dGVyKVxuICB0cmFuc2xhdGUgPSAnJ1xuICBzaWRlID0gamVldC1nZXQtbGF5b3V0LWRpcmVjdGlvbigpXG5cbiAgaWYgc2lkZSA9PSByaWdodFxuICAgIHJhdGlvcyA9IGplZXQtcmVwbGFjZS1udGgocmF0aW9zLCAwLCByYXRpb3NbMF0gKiAtMSlcblxuICBpZiBjb2wtb3Itc3BhbiA9PSBjb2x1bW4gb3IgY29sLW9yLXNwYW4gPT0gY29sIG9yIGNvbC1vci1zcGFuID09IGNcbiAgICBjb2x1bW4td2lkdGhzID0gamVldC1nZXQtY29sdW1uKHJhdGlvcywgZ3V0dGVyKVxuICAgIHRyYW5zbGF0ZSA9IGNvbHVtbi13aWR0aHNbMF0gKyBjb2x1bW4td2lkdGhzWzFdXG4gIGVsc2VcbiAgICB0cmFuc2xhdGUgPSBqZWV0LWdldC1zcGFuKHJhdGlvcylcblxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgbGVmdDogKHRyYW5zbGF0ZSklXG5cbi8qKlxuICogUmVzZXQgYW4gZWxlbWVudCB0aGF0IGhhcyBoYWQgc2hpZnQoKSBhcHBsaWVkIHRvIGl0LlxuICovXG51bnNoaWZ0KClcbiAgcG9zaXRpb246IHN0YXRpY1xuICBsZWZ0OiAwXG5cbi8qKlxuICogVmlldyB0aGUgZ3JpZCBhbmQgaXRzIGxheWVycyBmb3IgZWFzeSBkZWJ1Z2dpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NvbG9yPWJsYWNrXSAtIFRoZSBiYWNrZ3JvdW5kIHRpbnQgYXBwbGllZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ltcG9ydGFudD1mYWxzZV0gLSBXaGV0aGVyIHRvIGFwcGx5IHRoZSBzdHlsZSBhcyAhaW1wb3J0YW50LlxuICovXG5lZGl0KGNvbG9yID0gYmxhY2ssIGltcG9ydGFudCA9IGZhbHNlKVxuICBpZiBpbXBvcnRhbnRcbiAgICAqXG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKGNvbG9yLCA1JSkgIWltcG9ydGFudFxuICBlbHNlXG4gICAgKlxuICAgICAgYmFja2dyb3VuZDogcmdiYShjb2xvciwgNSUpXG5cbi8qKlxuICogIEFsaWFzIGZvciBlZGl0KCkuXG4gKi9cbmRlYnVnID0gZWRpdFxuXG4vKipcbiAqIEhvcml6b250YWxseSBjZW50ZXIgYW4gZWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbWF4LXdpZHRoPWplZXQubWF4LXdpZHRoXSAtIFRoZSBtYXggd2lkdGggdGhlIGVsZW1lbnQgY2FuIGJlLlxuICogQHBhcmFtIHtudW1iZXJ9IFtwYWQ9MF0gLSBTcGVjaWZ5IHRoZSBlbGVtZW50J3MgbGVmdCBhbmQgcmlnaHQgcGFkZGluZy5cbiAqL1xuY2VudGVyKG1heC13aWR0aCA9IGplZXQubWF4LXdpZHRoLCBwYWQgPSAwKVxuICBjZigpXG4gIHdpZHRoOiBhdXRvXG4gIG1heC13aWR0aDogbWF4LXdpZHRoXG4gIGZsb2F0OiBub25lXG4gIGRpc3BsYXk6IHVucXVvdGUoJ2Jsb2NrJylcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvXG4gIG1hcmdpbi1sZWZ0OiBhdXRvXG4gIHBhZGRpbmctbGVmdDogcGFkXG4gIHBhZGRpbmctcmlnaHQ6IHBhZFxuXG4vKipcbiAqIFVuY2VudGVyIGFuIGVsZW1lbnQuXG4gKi9cbnVuY2VudGVyKClcbiAgbWF4LXdpZHRoOiBub25lXG4gIG1hcmdpbi1yaWdodDogMFxuICBtYXJnaW4tbGVmdDogMFxuICBwYWRkaW5nLWxlZnQ6IDBcbiAgcGFkZGluZy1yaWdodDogMFxuXG4vKipcbiAqIFN0YWNrIGFuIGVsZW1lbnQgc28gdGhhdCBub3RoaW5nIGlzIGVpdGhlciBzaWRlIG9mIGl0LlxuICogQHBhcmFtIHtudW1iZXJ9IFtwYWQ9MF0gLSBTcGVjaWZ5IHRoZSBlbGVtZW50J3MgbGVmdCBhbmQgcmlnaHQgcGFkZGluZy5cbiAqIEBwYXJhbSB7Ym9sbGVhbi9zdHJpbmd9IFthbGlnbj1mYWxzZV0gLSBTcGVjaWZ5IHRoZSB0ZXh0IGFsaWduIGZvciB0aGUgZWxlbWVudC5cbiAqL1xuc3RhY2socGFkID0gMCwgYWxpZ24gPSBmYWxzZSlcbiAgc2lkZSA9IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKVxuICBvcHBvc2l0ZS1zaWRlID0gb3Bwb3NpdGUtcG9zaXRpb24oc2lkZSlcblxuICBkaXNwbGF5OiB1bnF1b3RlKCdibG9jaycpXG4gIGNsZWFyOiBib3RoXG4gIGZsb2F0OiBub25lXG4gIHdpZHRoOiAxMDAlXG4gIG1hcmdpbi1sZWZ0OiBhdXRvXG4gIG1hcmdpbi1yaWdodDogYXV0b1xuXG4gICY6Zmlyc3QtY2hpbGRcbiAgICBtYXJnaW4te3NpZGV9OiBhdXRvXG5cbiAgJjpsYXN0LWNoaWxkXG4gICAgbWFyZ2luLXtvcHBvc2l0ZS1zaWRlfTogYXV0b1xuXG4gIGlmIHBhZCAhPSAwXG4gICAgcGFkZGluZy1sZWZ0OiBwYWRcbiAgICBwYWRkaW5nLXJpZ2h0OiBwYWRcblxuICBpZiAoYWxpZ24gaXMgbm90IGZhbHNlKVxuICAgIGlmIChhbGlnbiA9PSBjZW50ZXIpIG9yIChhbGlnbiA9PSBjKVxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyXG4gICAgaWYgKGFsaWduID09IGxlZnQpIG9yIChhbGlnbiA9PSBsKVxuICAgICAgdGV4dC1hbGlnbjogbGVmdFxuICAgIGlmIChhbGlnbiA9PSByaWdodCkgb3IgKGFsaWduID09IHIpXG4gICAgICB0ZXh0LWFsaWduOiByaWdodFxuXG4vKipcbiAqIFVuc3RhY2sgYW4gZWxlbWVudC5cbiAqL1xudW5zdGFjaygpXG4gIHNpZGUgPSBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKClcbiAgb3Bwb3NpdGUtc2lkZSA9IG9wcG9zaXRlLXBvc2l0aW9uKHNpZGUpXG5cbiAgdGV4dC1hbGlnbjogc2lkZVxuICBkaXNwbGF5OiBpbmxpbmVcbiAgY2xlYXI6IG5vbmVcbiAgd2lkdGg6IGF1dG9cbiAgbWFyZ2luLWxlZnQ6IDBcbiAgbWFyZ2luLXJpZ2h0OiAwXG5cbiAgJjpmaXJzdC1jaGlsZFxuICAgIG1hcmdpbi17c2lkZX06IDBcblxuICAmOmxhc3QtY2hpbGRcbiAgICBtYXJnaW4te29wcG9zaXRlLXNpZGV9OiAwXG5cbi8qKlxuICogQ2VudGVyIGFuIGVsZW1lbnQgb24gZWl0aGVyIG9yIGJvdGggYXhlcy5cbiAqIEByZXF1aXJlcyBBIHBhcmVudCBjb250YWluZXIgd2l0aCByZWxhdGl2ZSBwb3NpdGlvbmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZGlyZWN0aW9uPWJvdGhdIC0gU3BlY2lmeSB3aGljaCBheGVzIHRvIGNlbnRlciB0aGUgZWxlbWVudCBvbi5cbiAqL1xuYWxpZ24oZGlyZWN0aW9uID0gYm90aClcbiAgcG9zaXRpb246IGFic29sdXRlXG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2RcblxuICBpZiAoZGlyZWN0aW9uID09IGhvcml6b250YWwpIG9yIChkaXJlY3Rpb24gPT0gaClcbiAgICBsZWZ0OiA1MCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSlcbiAgZWxzZSBpZiAoZGlyZWN0aW9uID09IHZlcnRpY2FsKSBvciAoZGlyZWN0aW9uID09IHYpXG4gICAgdG9wOiA1MCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSlcbiAgZWxzZVxuICAgIHRvcDogNTAlXG4gICAgbGVmdDogNTAlXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSlcblxuLyoqXG4gKiBBcHBseSBhIGNsZWFyZml4IHRvIGFuIGVsZW1lbnQuXG4gKi9cbmNmKClcbiAgKnpvb206IDFcblxuICAmOmJlZm9yZSwgJjphZnRlclxuICAgIGNvbnRlbnQ6ICcnXG4gICAgZGlzcGxheTogdGFibGVcblxuICAmOmFmdGVyXG4gICAgY2xlYXI6IGJvdGhcbiIsIi8qKlxuICogIFJlY2VwdGlvbiBwYWdlXG4gKlxuICogIEBhdXRob3IgV0VfQVJFXG4gKi9cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19UQUJdICAvICBUYWJsZSBvZiBDb250ZW50c1xuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKlxuICBfVEFCICAvIFRhYmxlIG9mIENvbnRlbnRzXG4gIF9HRU4gIC8gR2VuZXJpY1xuKi9cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19HRU5dICAvICBHZW5lcmljXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiNyZWNlcHRpb25Gb3JtXG4gIGZpZWxkc2V0XG4gICAgPi53cmFwcGVyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcblxuW2RhdGEtcGFnZT1cInJlY2VwdGlvblwiXSAjbWFpblxuICBwYWRkaW5nIDYwcHggMCAwXG4gICttb2JpbGUoKVxuICAgIHBhZGRpbmctdG9wIDQwcHhcbiAgPmhlYWRlclxuICAgIHBhZGRpbmctYm90dG9tOiAyZW1cbiAgICA+aDJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbVxuICA+LmNvbnRlbnRcbiAgICBtYXgtd2lkdGggODAwcHhcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgPmgzXG4gICAgICBjb2xvcjogX2MtYWNjZW50XG4gICAgICBleHRyYWJvbGQoKVxuICAgID5wXG5cbiAgICAgIHNtYWxsXG4gICAgICAgIGZvbnQtc2l6ZTogX2Z6LW1lZGl1bVxuXG5cbiAgLmNvbnRlbnQtcmVjZXB0aW9uXG4gICAgbWFyZ2luLWJvdHRvbSA0MHB4XG5cbiAgZm9ybVxuICAgIHBhZGRpbmctdG9wOiAxZW1cbiAgICA+Lm1lc3NhZ2VzXG4gICAgICBtYXgtd2lkdGggNjAwcHhcbiAgICAgIG1hcmdpbiAwIGF1dG8gM2VtXG5cbiAgICA+Li1ncmV5XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBfYy1iZy1kYXJrXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgID5oclxuICAgICAgICB3aWR0aCA2MDBweFxuICAgICAgICBtYXJnaW4gMCBhdXRvXG4gICAgICA+ZmllbGRzZXRcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNlbVxuICAgICAgICAmLmlkXG4gICAgICAgICAgPi5pbnB1dFxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgICAgICYub3RoZXJcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNmVtXG4gICAgICAgID5sZWdlbmRcbiAgICAgICAgICB0b3AgM2VtXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNGVtXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgIG1heC13aWR0aCBub25lXG4gICAgICAgID4ud3JhcHBlclxuICAgICAgICAgIHdpZHRoIDYwMHB4XG4gICAgICAgICAgPi5jb2xcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMFxuICAgICAgICAgICAgK2Rlc2t0b3AoKVxuICAgICAgICAgICAgICAmKy5jb2xcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHhcbiAgICAuLXN1Ym1pdFxuICAgICAgdGV4dC1hbGlnbiBjZW50ZXJcbiAgICAgIGNsZWFyIGJvdGhcbiAgICAgIHBhZGRpbmctdG9wIDJlbVxuXG4gIGZvcm0gPi4tZ3JleSA+Lm90aGVyXG4gICAgLmJvdHRvbS1ub3RlXG4gICAgICBtYXJnaW4tdG9wIDQwcHhcblxuICArbW9iaWxlKClcbiAgICA+aGVhZGVyXG4gICAgICBwYWRkaW5nLXRvcDogMFxuICAgICAgPi5sb2dvXG4gICAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMmVtXG4gICAgZm9ybVxuICAgICAgPi5tZXNzYWdlcyxcbiAgICAgID4uLWdyZXkgPi5pZCA+LndyYXBwZXIsXG4gICAgICA+Li1ncmV5ID4ub3RoZXIgPi53cmFwcGVyLFxuICAgICAgPi4tZ3JleSA+aHJcbiAgICAgICAgbW9iaWxlLXNhZmUoKVxuXG5cbiAgI2Zvcm0tbXNnXG4gICAgYmFja2dyb3VuZC1jb2xvciBfYy1iZy1kYXJrXG4gICAgcGFkZGluZyAwXG4gICAgbWF4LXdpZHRoIGluaGVyaXRcbiAgICAjZm9ybS1tc2ctaHRtbFxuICAgICAgbWF4LXdpZHRoIDgwMHB4XG4gICAgICBtYXJnaW4gMCBhdXRvXG4gICAgICBwYWRkaW5nIDZlbSAwXG4gICAgICBmb250LXNpemU6IF9mei1hY2NlbnRcbiAgICAgIG5vcm1hbCgpXG4gICAgICArbW9iaWxlKClcbiAgICAgICAgbW9iaWxlLXNhZmUoKVxuICAgICAgJi4tc3VjY2Vzc1xuICAgICAgICBjb2xvciBfYy1ibGFja1xuICAgICAgJi4tZXJyb3JcbiAgICAgICAgY29sb3IgX2MtZXJyb3JcbiAgICAgID5wXG4gICAgICAgIG1hcmdpbiAxZW0gMFxuXG4udG9wLW1lc3NhZ2VcbiAgcFxuICAgIGZvbnQtd2VpZ2h0IGJvbGRcbiAgICBmb250LXNpemUgMTJweFxuLmJsb2NrLWNvbnRlbnRcbiAgcGFkZGluZyAyMHB4XG4gIGJvcmRlciAxcHggc29saWQgIzgwODA4MFxuICBtYXJnaW4tYm90dG9tIDMwcHggIWltcG9ydGFudFxuXG5cbiIsIi8qKlxuICogIFJlZ2lzdHJhdGlvbiBmb3JtcyBzdHlsZXNcbiAqXG4gKiAgQGF1dGhvciBXRV9BUkVcbiAqL1xuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX1RBQl0gIC8gIFRhYmxlIG9mIENvbnRlbnRzXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qXG4gIF9UQUIgIC8gVGFibGUgb2YgQ29udGVudHNcbiAgX0hFQSAgLyBIZWFkIG1lc3NhZ2VcbiAgX0ZPUiAgLyBGb3JtIHNlY3Rpb25zXG4qL1xuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0hFQV0gIC8gIEhlYWQgbWVzc2FnZVxuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaGVhZC1tZXNzYWdlXG4gIGJhY2tncm91bmQtY29sb3I6IF9jLWFjY2VudFxuICA+LndyYXBwZXJcbiAgICBjb2xvciBfYy13aGl0ZVxuICAgIHBhZGRpbmcgNWVtIDBcbiAgICBhXG4gICAgICBjb2xvciBfYy1hbHRcbiAgICAgIC5hY3RpZixcbiAgICAgIC5uby10b3VjaCAmOmhvdmVyXG4gICAgICAgIGNvbG9yIGxpZ2h0ZW4oX2MtYWx0LCAzMCUpXG4gICAgPi50aXRsZVxuICAgICAgY29sb3IgX2Mtd2hpdGVcbiAgICAgIGZvbnQtc2l6ZTogX2Z6LWJpZ1xuICAgICAgZXh0cmFib2xkKClcbiAgICAgIG1hcmdpbi1ib3R0b206IC40ZW1cbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJcbiAgICA+LmxlZ2VuZFxuICAgICAgZm9udC1zaXplOiBfZnotbWVkaXVtXG4gICAgPi5ub3RlXG4gICAgICBtYXJnaW4tdG9wOiAzLjVlbVxuICAgICAgZm9udC13ZWlnaHQgNjAwXG5cbiAgICArbW9iaWxlKClcbiAgICAgIHBhZGRpbmcgMmVtIDAgMy4yZW1cbiAgICAgIG1vYmlsZS1zYWZlKClcbiAgICAgID4udGl0bGVcbiAgICAgICAgZm9udC1zaXplOiAxNHB4XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbVxuICAgICAgPnBcbiAgICAgICAgZm9udC1zaXplOiBfZnotbWVkaXVtXG4gICAgICA+Lm5vdGVcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtXG5cblxuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0ZPUl0gIC8gIEZvcm0gc2VjdGlvbnNcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuI3JlZ2lzdHJhdGlvbkZvcm1cbiAgaW5wdXQsXG4gIC5zZWxlY3Qtd2FwcGVyXG4gICAgd2lkdGggMzEwcHhcbiAgLmNvbFxuICAgICtkZXNrdG9wKClcbiAgICAgIGNvbCgxLzIsIGN5Y2xlOjIpXG4gICAgICAmOmZpcnN0LWNoaWxkXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTUwcHhcbiAgICAgICAgKy5jb2xcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDYwcHhcbiAgI2Zvcm0tZXJyTXNnXG4gICAgYm9yZGVyIDFweCBzb2xpZCBfYy1hY2NlbnRcbiAgICB0ZXh0LWFsaWduIGxlZnRcbiAgICBjb2xvciBfYy1hY2NlbnRcbiAgICBmb250LXNpemUgX2Z6LW1lZGl1bVxuICAgIHBhZGRpbmcgMmVtIDJlbSAyZW0gMy41ZW1cbiAgICBsaW5lLWhlaWdodCAyZW1cbiAgICBtYXJnaW4tdG9wIDJlbVxuICAgIHdpZHRoIDMxMHB4XG4gICAgbGlcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgI2ludm9pY2VMYWJlbFxuICAgID4ubGFiZWxVcGxvYWRGaWxlXG4gICAgICBtYXJnaW4tdG9wIC0zcHhcbiAgICAgIHRleHQtdHJhbnNmb3JtIGluaXRpYWxcbiAgICA+LmxhYmVsVXBsb2FkTm90aWNlXG4gICAgICBmb250LXNpemUgX2Z6LXNtYWxsXG4gICAgICB0ZXh0LXRyYW5zZm9ybSBpbml0aWFsXG4gICNuZXdzbGV0dGVyXG4gICAgbWFyZ2luLXRvcCAyMHB4XG4gICAgbWFyZ2luLWJvdHRvbSAzMHB4XG4gICAgPi5pbnB1dFxuICAgICAgbWFyZ2luLWJvdHRvbSAxMHB4XG4gICAgLmlucHV0Li1yYWRpb1xuICAgICAgPmlucHV0XG4gICAgICAgICtsYWJlbFxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMmVtXG4gICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgIGFic29sdXRlIDAgZmFsc2UgZmFsc2UgMFxuICAgICAgICAgICY6YWZ0ZXJcbiAgICAgICAgICAgIGFic29sdXRlIDAgZmFsc2UgZmFsc2UgMTJweFxuICAgICAgJi4tZXJyb3JcbiAgICAgICAgPmlucHV0K2xhYmVsXG4gICAgICAgICAgY29sb3IgX2MtZXJyb3JcbiAgICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIF9jLWVycm9yXG5cbiAgICAgICttb2JpbGUoKVxuICAgICAgICA+aW5wdXRcbiAgICAgICAgICArbGFiZWxcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQgMFxuICAgICAgICAgICAgJjphZnRlclxuICAgICAgICAgICAgICB0b3AgLTFweFxuICAgICAgICAgICAgICBsZWZ0IDdweFxuXG4ubG9jYWxlXG4gIHRleHQtYWxpZ246IGNlbnRlclxuICBwYWRkaW5nIDVlbSAwIDMuMmVtXG4gID4uaW5wdXRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICBtYXJnaW4gMCAxLjhlbVxuXG4gICttb2JpbGUoKVxuICAgIHBhZGRpbmcgMmVtIDAgMy4yZW1cbiAgICBtb2JpbGUtc2FmZSgpXG5cbi5iaWxsXG4gIHBhZGRpbmcgNGVtIDAgMS40ZW1cbiAgPi5idG5cbiAgICBtYXJnaW4tYm90dG9tOiAuOGVtXG4gICAgK21vYmlsZSgpXG4gICAgICBwYWRkaW5nLXRvcDogMTVweFxuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHhcbiAgPmlucHV0XG4gICAgZGlzcGxheSBub25lXG4gID4ubm90ZVxuICAgIGNvbG9yOiBfYy1hY2NlbnRcbiAgICBmb250LXNpemU6IF9mei1tZWRpdW1cbiAgICBtYXJnaW4tYm90dG9tOiAxZW1cblxuLmNhYVxuICBtYXJnaW4gM2VtIDAgMS4yZW1cbiAgPmxlZ2VuZFxuICAgIG1heC13aWR0aCBub25lXG4gID4ucm93XG4gICAgZGlzcGxheSBibG9ja1xuICAgIG1hcmdpbiAyZW0gMCAxZW1cbiAgICA+LmlucHV0XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIG1hcmdpbiAwIDEuOGVtXG4gICAgPi4tdGV4dFxuICAgICAgPmxhYmVsXG4gICAgICAgIGZvbnQtc2l6ZTogX2Z6LXJlZ3VsYXJcbiAgICAgICAgc2VtaWJvbGQoKVxuICAgICAgICBtYXJnaW4gLjRlbSAwXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxuXG4ucHJvZHVjdFxuICBtYXJnaW4tdG9wOiAyLjZlbVxuICA+LndyYXBwZXJcbiAgICA+LmdhbW1lcy10YWJsZVxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtXG4gICAgICB0ZDpudGgtY2hpbGQoMilcbiAgICAgICAgd2lkdGggYXV0b1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDBcbiAgICA+Lm5vdGVcbiAgICAgIGZvbnQtc2l6ZTogX2Z6LW1lZGl1bVxuIiwiLyoqXG4gKiAgSGVhZGVyIGFuZCBtZW51XG4gKlxuICogIEBhdXRob3IgV0VfQVJFXG4gKi9cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19UQUJdICAvICBUYWJsZSBvZiBDb250ZW50c1xuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKlxuICBfVEFCICAvIFRhYmxlIG9mIENvbnRlbnRzXG4gIF9IRUEgIC8gSGVhZGVyXG4gIF9IRVIgIC8gSGVybyAoaW1nIGNhYSB3aXRoIHR4dClcbiAgX01PQiAgLyBNb2JpbGVcbiovXG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfSEVBXSAgLyAgSGVhZGVyXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuI2hlYWRlclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBfYy1oZWFkZXItYmdcbiAgcG9zaXRpb246IHJlbGF0aXZlXG4gIGhlaWdodCA4OHB4XG4gIHotaW5kZXg6IF96LWhlYWRlclxuICBjZigpXG4gIG92ZXJmbG93IGhpZGRlblxuICA+LndyYXBwZXJcbiAgICAmOmJlZm9yZVxuICAgICAgY29udGVudDogJydcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuICAgICAgd2lkdGggMFxuICAgICAgaGVpZ2h0IDg4cHhcbiAgICB3aWR0aCBfdy1zYWZlXG4gICAgbWFyZ2luIDAgYXV0b1xuXG4gICAgPi5sb2dvXG4gICAgICBmbG9hdCBsZWZ0XG4gICAgICBwYWRkaW5nLXRvcDogMTNweFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuICAgID4udGl0bGVcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgIG1hcmdpbi1sZWZ0OiA2ZW1cbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2VcbiAgICAgIHNlbWlib2xkKClcbiAgICAgIGxldHRlci1zcGFjaW5nIC4xNWVtXG4gICAgPi5yaWdodC1uYXZcbiAgICAgIGZsb2F0IHJpZ2h0XG4gICAgICB3aWR0aCAxNTBweFxuICAgICAgdGV4dC1hbGlnbjogcmlnaHRcbiAgICAgIG1hcmdpbi10b3A6IDIuMmVtXG5cbiNoZWFkZXIgLnJpZ2h0LW5hdlxuICA+Lml0ZW1cbiAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgIHBhZGRpbmctbGVmdDogMS41ZW1cbiAgICBoZWlnaHQgMjZweFxuICAgICY6YmVmb3JlXG4gICAgICBjb250ZW50ICcnXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcbiAgICAgIHdpZHRoIDBcbiAgICAgIGhlaWdodCAxMDAlXG4gICAgJjpmaXJzdC1jaGlsZFxuICAgICAgcGFkZGluZy1sZWZ0OiAwXG4gICAgICBwYWRkaW5nLXJpZ2h0IDJlbVxuICAgICAgYm9yZGVyLXJpZ2h0IDFweCBzb2xpZCBfYy13aGl0ZVxuXG4gIGFcbiAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcbiAgICBjb2xvcjogX2Mtd2hpdGVcbiAgICBmb250LXNpemU6IF9mei1zbWFsbGVyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZVxuICAgIGJvbGQoKVxuICAgIGxldHRlci1zcGFjaW5nIC4xZW1cbiAgICA+aVxuICAgICAgc2l6ZSAyMHB4XG4gICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICBzdmdcbiAgICAgICAgc2l6ZSAxMDAlXG4gICAgICAgIGZpbGwgX2Mtd2hpdGVcbiAgICAmLmFjdGlmLFxuICAgIC5uby10b3VjaCAmOmhvdmVyXG4gICAgICBjb2xvciBfYy1hbHRcbiAgICAgID5pIHN2Z1xuICAgICAgICBmaWxsIF9jLWFsdFxuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX0hFUl0gIC8gIEhlcm8gKGltZyBjYWEgd2l0aCB0eHQpXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5oZXJvXG4gIHdpZHRoIDEwMCVcbiAgYmFja2dyb3VuZC1jb2xvcjogX2MtYWNjZW50XG4gIHRleHQtYWxpZ246IGNlbnRlclxuICA+aW1nXG4gICAgd2lkdGggMTAwJVxuICAgIG1heC13aWR0aCBfdy1zYWZlXG5cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19NT0JdICAvICBNb2JpbGVcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuK21vYmlsZSgpXG4gIGJvZHlcbiAgICBwYWRkaW5nLXRvcDogNDRweFxuICAuaGVybz5pbWcuY2VudGVyXG4gIFx0d2lkdGg6YXV0b1xuICAjaGVhZGVyXG4gICAgaGVpZ2h0IDQ0cHhcbiAgICBmaXhlZCAwIDAgZmFsc2UgMFxuICAgID4ud3JhcHBlclxuICAgICAgbWF4LXdpZHRoIDEwMCVcbiAgICAgID4uYnVyZ2VyXG4gICAgICAgIGZsb2F0OiBsZWZ0XG4gICAgICAgIG1hcmdpbiAxLjNlbSAwIDAgMS4zZW1cbiAgICAgICAgPmlcbiAgICAgICAgICBzaXplIDIwcHhcbiAgICAgICAgICA+c3ZnXG4gICAgICAgICAgICBmaWxsIF9jLWFsdFxuICAgICAgPi50aXRsZVxuICAgICAgICBmb250LXNpemU6IF9mei1tZWRpdW1cbiAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICAgbWFyZ2luIDIuMmVtIDAgMCAxLjVlbVxuICAuYnVyZ2VyXG4gICAgPi5jbG9zZVxuICAgICAgZGlzcGxheSBub25lXG4gICAgJi4tb3BlblxuICAgICAgPi5jbG9zZVxuICAgICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICA+Lm9wZW5cbiAgICAgICAgZGlzcGxheSBub25lXG5cbiIsImtzLW92ZXJmbG93KCB2YWx1ZSwgYXJncy4uLiApXG4gICAgaWYgdmFsdWUgPT0gZWxsaXBzaXNcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpc1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuXG4gICAgZWxzZVxuICAgICAgICBvdmVyZmxvdzogdmFsdWUgYXJnc1xuXG5vdmVyZmxvdyA9IGtzLW92ZXJmbG93IHVubGVzcyBrcy1uby1jb25mbGljdFxuIiwia3MtY2xlYXJmaXgoKVxuICAgIGlmIGtzLXN1cHBvcnQtaWUgPD0gN1xuICAgICAgICAqem9vbSAxXG4gICAgJjpiZWZvcmVcbiAgICAmOmFmdGVyXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlXG4gICAgJjphZnRlclxuICAgICAgICBjbGVhcjogYm90aFxuXG5jbGVhcmZpeCA9IGtzLWNsZWFyZml4IHVubGVzcyBrcy1uby1jb25mbGljdFxuXG5rcy1jbGVhciggdmFsdWUsIGFyZ3MuLi4gKVxuICAgIGlmIHZhbHVlID09IGZpeFxuICAgICAgICBjbGVhcmZpeCgpXG4gICAgZWxzZVxuICAgICAgICBjbGVhcjogdmFsdWUgYXJnc1xuXG5jbGVhciA9IGtzLWNsZWFyIHVubGVzcyBrcy1uby1jb25mbGljdFxuXG5fa3MtZml4LXByb2Nlc3NpbmcoIGN1cnJlbnQtcHJvcGVydHkgKVxuICAgIGlmKCBjdXJyZW50LXByb3BlcnR5WyAwIF0gPT0gXCJjbGVhclwiIClcbiAgICAgICAgZml4XG4gICAgZWxzZVxuICAgICAgICBlcnJvciggXCJmaXgoKSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgY2xlYXIgcHJvcGVydHlcIiApXG5cbmtzLWZpeCgpXG4gICAgaWYoIGN1cnJlbnQtcHJvcGVydHkgKVxuICAgICAgICBfa3MtZml4LXByb2Nlc3NpbmcoIGN1cnJlbnQtcHJvcGVydHkgKVxuICAgIGVsc2VcbiAgICAgICAgZXJyb3IoIFwia3MtZml4KCkgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIGNsZWFyIHByb3BlcnR5XCIgKVxuXG51bmxlc3Mga3Mtbm8tY29uZmxpY3RcbiAgICBmaXgoKVxuICAgICAgICBpZiggY3VycmVudC1wcm9wZXJ0eSApXG4gICAgICAgICAgICBfa3MtZml4LXByb2Nlc3NpbmcoIGN1cnJlbnQtcHJvcGVydHkgKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBlcnJvciggXCJmaXgoKSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgY2xlYXIgcHJvcGVydHlcIiApXG4iLCIvKipcbiAqICBNYWluIG1lbnVcbiAqXG4gKiAgQGF1dGhvciBXRV9BUkVcbiAqL1xuXG4vLz09PT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICBbX1RBQl0gIC8gIFRhYmxlIG9mIENvbnRlbnRzXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qXG4gIF9UQUIgIC8gVGFibGUgb2YgQ29udGVudHNcbiAgX0dFTiAgLyBHZW5lcmljXG4gIF9JVEUgIC8gSXRlbVxuICBfTU9CICAvIE1vYmlsZVxuKi9cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19HRU5dICAvICBHZW5lcmljXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5tYWluLW5hdlxuICB3aWR0aCAxMDAlXG4gIGJhY2tncm91bmQtY29sb3I6IF9jLWFsdFxuICBjb2xvciBfYy1ibGFja1xuICB6LWluZGV4OiBfei1tZW51XG4gID4ud3JhcHBlclxuICAgIHdpZHRoIDEwMCVcbiAgICBtYXgtd2lkdGggOTQwcHhcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgY2YoKVxuICAgID4uaXRlbVxuICAgICAgc3BhbigxLzUpXG4gICAgICBoZWlnaHQgMTQwcHhcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKVxuICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgIGNvbnRlbnQ6ICcnXG4gICAgICAgICAgZGlzcGxheSBibG9ja1xuICAgICAgICAgIGJvcmRlci1sZWZ0IDFweCBzb2xpZCBfYy1ibGFja1xuICAgICAgICAgIGFic29sdXRlIDJlbSBmYWxzZSAyZW0gMFxuICAgICAgICAgIHotaW5kZXg6IDJcbiAgICAgICAgICB0cmFuc2l0aW9uIGJvcmRlciAuNHMgZWFzaW5nKCdvdXQtcXVhZCcpXG4gICAgICAmLi1hY3RpZlxuICAgICAgLm5vLXRvdWNoICY6aG92ZXJcbiAgICAgICAgJixcbiAgICAgICAgJisuaXRlbVxuICAgICAgICAgICY6YmVmb3JlXG4gICAgICAgICAgICBib3JkZXItY29sb3IgdHJhbnNwYXJlbnRpZnkoX2MtYmxhY2ssIDApXG5cbiAgLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vICBbX0lURV0gIC8gIEl0ZW1cbiAgLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gID4ud3JhcHBlciA+Lml0ZW1cbiAgICA+YVxuICAgICAgYWJzb2x1dGUgMFxuICAgICAgY29sb3IgX2MtYmxhY2tcbiAgICAgIGV4dHJhYm9sZCgpXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgICAgIHBhZGRpbmcgMi41ZW0gMCAwXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBfYy1hbHRcbiAgICAgID4uY29udGVudFxuICAgICAgICA+aVxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgIHN2Z1xuICAgICAgICAgICAgc2l6ZSAzMHB4XG4gICAgICAgICAgICBmaWxsIF9jLWFjY2VudFxuICAgICAgICAgICAgdHJhbnNpdGlvbiBub25lXG4gICAgICAgID5zcGFuXG4gICAgICAgICAgZGlzcGxheTogYmxvY2tcbiAgICAgICAgICB3aWR0aCA4MCVcbiAgICAgICAgICBtYXJnaW4gLjRlbSBhdXRvIDBcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZyAuMTVlbVxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbVxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2VcbiAgICAgICAgICBmb250LXNpemU6IF9mei1zbWFsbFxuICAgICYuLWFjdGlmIGEsXG4gICAgLm5vLXRvdWNoICYgYTpob3ZlclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRcbiAgICAgIGJhY2tncm91bmQgX2MtbWFpbi1zZWxlY3RlZFxuICAgICAgY29sb3IgX2Mtd2hpdGVcbiAgICAgIGkgc3ZnXG4gICAgICAgIGZpbGwgX2MtYWx0XG5cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19NT0JdICAvICBNb2JpbGVcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4rbW9iaWxlKClcbiAgLm1haW4tbmF2XG4gICAgZml4ZWQgNDRweCAwIGZhbHNlIDBcbiAgICB0cmFuc2Zvcm0gdHJhbnNsYXRlWSgtMTAwJSlcbiAgICB0cmFuc2l0aW9uIHRyYW5zZm9ybSAxcyBlYXNpbmcoJ291dC1xdWFkJylcbiAgICAmLi1vcGVuXG4gICAgICB0cmFuc2Zvcm0gdHJhbnNsYXRlWSgwJSlcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIGVhc2luZygnb3V0LWNpcmMnKVxuICAgID4ud3JhcHBlclxuICAgICAgPi5pdGVtXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgICAgIGZsb2F0OiBub25lXG4gICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgaGVpZ2h0IDYyLjVweFxuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpXG4gICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgZGlzcGxheSBub25lXG4gICAgICAgICAgPmEgPi5jb250ZW50OmJlZm9yZVxuICAgICAgICAgICAgY29udGVudCAnJ1xuICAgICAgICAgICAgZGlzcGxheSBibG9ja1xuICAgICAgICAgICAgYWJzb2x1dGUgMCAwIGZhbHNlIDBcbiAgICAgICAgICAgIGJvcmRlci10b3AgMXB4IHNvbGlkIHRyYW5zcGFyZW50aWZ5KF9jLWJsYWNrLCAuNSlcbiAgICAgICAgPmFcbiAgICAgICAgICBwYWRkaW5nIDBcbiAgICAgICAgICA+LmNvbnRlbnRcbiAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICAgICBtYXgtd2lkdGggX3ctc2FmZS1tb2JpbGVcbiAgICAgICAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgICAgICAgIG1hcmdpbiAwIGF1dG9cbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgICAgICAgY2YoKVxuICAgICAgICAgICAgPmksXG4gICAgICAgICAgICA+c3BhblxuICAgICAgICAgICAgICBmbG9hdDogbGVmdFxuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgICAgICAgID5pXG4gICAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICAgICAgIHdpZHRoIDZlbVxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgICAgICAgICAgICAgPnN2Z1xuICAgICAgICAgICAgICAgIGFsaWduKClcbiAgICAgICAgICAgICAgICBzaXplIDIwcHhcbiAgICAgICAgICAgID5zcGFuXG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnRcbiAgICAgICAgICAgICAgYWxpZ24odilcbiAgICAgICAgICAgICAgbGVmdCA4ZW1cbiAgICAgICAgICAgICAgZm9udC1zaXplOiBfZnotYWNjZW50XG4gICAgICAgICAgICAgIGNvbG9yIF9jLWJsYWNrXG4gICAgICAgIC8vIC8vICAgbWF4LXdpZHRoIHZhbHVlXG4gICAgICAgICYuLWFjdGlmID5hLFxuICAgICAgICAubm8tdG91Y2ggJiA+IGE6aG92ZXJcbiAgICAgICAgICA+LmNvbnRlbnRcbiAgICAgICAgICAgID5zcGFuXG4gICAgICAgICAgICAgIGNvbG9yIF9jLXdoaXRlXG4gICAgICAgICAgICA+aSA+c3ZnXG4gICAgICAgICAgICAgIGZpbGwgX2MtYWx0XG4gICAgICAgICYuLWFjdGlmLFxuICAgICAgICAmLi1hY3RpZiArIC5pdGVtXG4gICAgICAgICAgPmEgPi5jb250ZW50OmJlZm9yZVxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHRyYW5zcGFyZW50aWZ5KF9jLWJsYWNrLCAwKVxuXG4gICAgLmV4dHJhXG4gICAgICAmOmJlZm9yZVxuICAgICAgICBkaXNwbGF5IG5vbmUgIWltcG9ydGFudFxuICAgICAgPi5jb2xcbiAgICAgICAgc3BhbigxLzIpXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgICAgICBoZWlnaHQgMTAwJVxuICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgIGNvbnRlbnQgJydcbiAgICAgICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICAgICAgYWJzb2x1dGUgMCBmYWxzZSBmYWxzZVxuICAgICAgICAgIHdpZHRoIDEzNXB4XG4gICAgICAgICAgYm9yZGVyLXRvcCAxcHggc29saWQgdHJhbnNwYXJlbnRpZnkoX2MtYmxhY2ssIC41KVxuICAgICAgICAmOmZpcnN0LWNoaWxkXG4gICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgIHJpZ2h0IDBcblxuICAgICAgICA+YVxuICAgICAgICAgIGFic29sdXRlIDBcbiAgICAgICAgICBmb250LXNpemU6IF9mei1hY2NlbnRcbiAgICAgICAgICBjb2xvciBfYy1ibGFja1xuICAgICAgICAgIGV4dHJhYm9sZCgpXG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmcgLjFlbVxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxuICAgICAgICAgIHN2Z1xuICAgICAgICAgICAgZmlsbCBfYy1ibGFja1xuICAgICAgICAgID4uY29udGVudFxuICAgICAgICAgICAgd2lkdGggMTM1cHhcbiAgICAgICAgICAgIGFsaWduKHYpXG4gICAgICAgICAgJi5mYlxuICAgICAgICAgICAgaVxuICAgICAgICAgICAgICBtYXJnaW4gMCBhdXRvXG4gICAgICAgICAgICAgIHNpemUgMjBweFxuICAgICAgICAgICYuYWN0aWYsXG4gICAgICAgICAgLm5vLXRvdWNoICY6aG92ZXJcbiAgICAgICAgICAgIGNvbG9yIF9jLWFjY2VudFxuICAgICAgICAgICAgYmFja2dyb3VuZCB0cmFuc3BhcmVudFxuICAgICAgICAgICAgc3ZnXG4gICAgICAgICAgICAgIGZpbGwgX2MtYWNjZW50XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMSlcbiAgICAgICAgICA+YVxuICAgICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgICAgY29udGVudDogJydcbiAgICAgICAgICAgICAgYWJzb2x1dGUgMS44ZW0gMCAxLjhlbSBmYWxzZVxuICAgICAgICAgICAgICBib3JkZXItcmlnaHQgMXB4IHNvbGlkIHRyYW5zcGFyZW50aWZ5KF9jLWJsYWNrLCAuNSlcbiAgICAgICAgICAgID4uY29udGVudFxuICAgICAgICAgICAgICByaWdodCAwXG5cbiAgICAgICAgJjpudGgtY2hpbGQoMilcbiAgICAgICAgICA+YSA+LmNvbnRlbnRcbiAgICAgICAgICAgIGxlZnQgMFxuXG5cbi8vIC5tYWluLW5hdlxuLy8gICBiYWNrZ3JvdW5kIGJlaWdlIHVybCgnL2ltYWdlcy9fZGVidWcvbW9iaWxlLnBuZycpIDAgLTQ0cHggbm8tcmVwZWF0XG4vLyAgID5vbFxuLy8gICAgIC8vIG9wYWNpdHk6IC42XG4iLCIvKipcbiAqICBGb290ZXJcbiAqXG4gKiAgQGF1dGhvciBXRV9BUkVcbiAqL1xuLy8gYm9keVxuLy8gICBwYWRkaW5nLWJvdHRvbTogMjI1cHhcbi8vICAgbWluLWhlaWdodCAxMDB2aFxuLy8gICArbW9iaWxlKClcbi8vICAgICBwYWRkaW5nLWJvdHRvbSAxMjBweFxuICNmb290ZXJcbiAgd2lkdGggMTAwJVxuICBoZWlnaHQgMjI1cHhcbiAgcG9zaXRpb24gcmVsYXRpdmVcbiAgYm90dG9tIDBcbiAgZm9udC1zaXplOiBfZnotc21hbGxcbiAgdGV4dC1hbGlnbjogY2VudGVyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2VcbiAgY29sb3IgX2Mtd2hpdGVcbiAgYmFja2dyb3VuZC1jb2xvcjogX2MtYWNjZW50XG4gICttb2JpbGUoKVxuICAgIGhlaWdodCAxMjBweFxuXG5cbi5uYXYtZm9vdGVyXG4gIHdpZHRoIDEwMCVcbiAgbWF4LXdpZHRoIF93LXNhZmVcbiAgYWxpZ24oKVxuICAuaXRlbVxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICY6bm90KDpmaXJzdC1jaGlsZClcbiAgICAgIGJvcmRlci1sZWZ0IDFweCBzb2xpZCBfYy13aGl0ZVxuICAgID5hXG4gICAgICBjb2xvciBfYy13aGl0ZVxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gICAgICB0cmFuc2l0aW9uIC42cyBjb2xvciBlYXNpbmcoJ291dC1xdWFkJylcbiAgICAgIGJveC1zaXppbmcgY29udGVudC1ib3hcbiAgICAgIGxldHRlci1zcGFjaW5nIC4xZW1cbiAgICAgIHBhZGRpbmcgMCAuNWVtXG4gICAgICAmLi1hY3RpZixcbiAgICAgIC5uby10b3VjaCAmOmhvdmVyXG4gICAgICAgIGNvbG9yIF9jLWFsdFxuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiBlYXNpbmcoJ291dC1jaXJjJylcbiAgK21vYmlsZSgpXG4gICAgLml0ZW1cbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbVxuXG4udHJhZGVtYXJrXG4gIG1hcmdpbi10b3A6IDNlbVxuICArbW9iaWxlKClcbiAgICBtYXJnaW4tdG9wOiAyZW1cbiIsIi8qKlxuICogIGNvbnRhY3QgZm9ybVxuICpcbiAqICBAYXV0aG9yIFdFX0FSRVxuICovXG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfVEFCXSAgLyAgVGFibGUgb2YgQ29udGVudHNcbi8vPT09PT09PT09Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLypcbiAgX1RBQiAgLyBUYWJsZSBvZiBDb250ZW50c1xuICBfR0VOICAvIEdlbmVyaWNcbiovXG5cbi8vPT09PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gIFtfR0VOXSAgLyAgR2VuZXJpY1xuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbltkYXRhLXBhZ2U9XCJjb250YWN0XCJdICNtYWluXG4gIHBhZGRpbmcgODBweCAwIDBcbiAgPmhlYWRlclxuICAgIHBhZGRpbmctYm90dG9tOiAyZW1cbiAgICBtYXgtd2lkdGggODAwcHhcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgPmgyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW1cbiAgICA+cFxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtXG4gID4uY29udGVudFxuICAgIG1heC13aWR0aCA4MDBweFxuICAgIG1hcmdpbiAwIGF1dG9cbiAgICA+aDNcbiAgICAgIGNvbG9yOiBfYy1hY2NlbnRcbiAgICAgIGV4dHJhYm9sZCgpXG4gICAgICBmb250LXNpemU6IF9mei1hY2NlbnRcbiAgICAgIG1hcmdpbi1ib3R0b20gMWVtXG4gICAgPnBcbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbVxuICAgICAgc21hbGxcbiAgICAgICAgZm9udC1zaXplOiBfZnotbWVkaXVtXG4gICAgPnAubm90ZVxuICAgICAgLy8gZm9udC1zaXplOiBfZnotbWVkaXVtXG4gID4uZm9vdGVyQ29udGVudFxuICAgIG1heC13aWR0aCA4MDBweFxuICAgIG1hcmdpbiAwIGF1dG9cbiAgICBwYWRkaW5nIDcwcHggMFxuICAgID5wXG4gICAgICBtYXJnaW4tdG9wIDNlbVxuICAgID5oM1xuICAgICAgZm9udC1zaXplOiBfZnotYmlnXG4gICAgICBjb2xvcjogX2MtYWNjZW50XG4gICAgICBleHRyYWJvbGQoKVxuXG4gICAgICA+YVxuICAgICAgICBjb2xvciBfYy1hY2NlbnRcbiAgZmllbGRzZXRcbiAgICAmLi1ncmV5XG4gICAgICBwYWRkaW5nLWJvdHRvbSAzLjVlbVxuICAgICAgLi1zdWJtaXQuaW5wdXRcbiAgICAgICAgY2xlYXIgcmlnaHRcbiAgICAgICAgZmxvYXQgcmlnaHRcbiAgICAgIC5yb3dcbiAgICAgICAgY2YoKVxuICAgICAgICAuaW5wdXRcbiAgICAgICAgICBjb2woMS8yLGN5Y2xlOjIpXG4gICAgICAgICAgK21vYmlsZSgpXG4gICAgICAgICAgICBjb2woMS8xKVxuICAgICAgICAuaW5wdXQgaW5wdXRcbiAgICAgICAgICB3aWR0aCAxMDAlXG5cbiAgK2Rlc2t0b3AoKVxuICAgID5mb3JtID4uLWdyZXkgPi53cmFwcGVyXG4gICAgICAgIHdpZHRoIDYwMHB4XG4gICAgICAgIHRleHRhcmVhXG4gICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICA+LmNvbFxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMFxuICAgICAgICAgICYrLmNvbFxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4XG5cbiAgK21vYmlsZSgpXG4gICAgcGFkZGluZy10b3A6IDQwcHhcbiAgICA+aGVhZGVyXG4gICAgICBtb2JpbGUtc2FmZSgpXG4gICAgICBwYWRkaW5nLXRvcDogMFxuICAgICAgPi5sb2dvXG4gICAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMmVtXG4gICAgLmlucHV0Li10ZXh0YXJlYVxuICAgICAgaGVpZ2h0IDEzZW1cbiAgICAgIHRleHRhcmVhXG4gICAgICAgIHdpZHRoIDEwMCVcbiAgI2Zvcm0tbXNnXG4gICAgbWF4LXdpZHRoIDEwMCVcbiAgICBiYWNrZ3JvdW5kLWNvbG9yICNmMGYwZjBcbiAgICBtYXJnaW4tdG9wIDcwcHhcbiAgICArbW9iaWxlKClcbiAgICAgIHdpZHRoIDEwMCVcblxuICAjZm9ybS1lcnJNc2dcbiAgICBib3JkZXIgMXB4IHNvbGlkIF9jLWFjY2VudFxuICAgIHRleHQtYWxpZ24gbGVmdFxuICAgIGNvbG9yIF9jLWFjY2VudFxuICAgIGZvbnQtc2l6ZSBfZnotbWVkaXVtXG4gICAgcGFkZGluZyAyZW0gMmVtIDJlbSAzLjVlbVxuICAgIGxpbmUtaGVpZ2h0IDJlbVxuICAgIG1hcmdpbi10b3AgNGVtXG4gICAgd2lkdGggMzEwcHhcbiAgICBmbG9hdDogcmlnaHRcbiAgICBsaVxuICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuIiwiLyoqXG4gKiAgSG9tbmUgc3R5bGVzXG4gKlxuICogIEBhdXRob3IgV0VfQVJFXG4gKi9cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19UQUJdICAvICBUYWJsZSBvZiBDb250ZW50c1xuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKlxuICBfVEFCICAvIFRhYmxlIG9mIENvbnRlbnRzXG4gIF9HRU4gIC8gR2VuZXJpY1xuKi9cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19HRU5dICAvICBHZW5lcmljXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5zZWN0aW9uLWluZm9zXG4gID5mb290ZXJcbiAgICA+LmFjdGlvbnNcbiAgICAgIG1hcmdpbiA1MHB4IDAgNDBweFxuICAgICAgPi5idG5cbiAgICAgICAgd2lkdGggMjY1cHhcbiAgICAgICAgcGFkZGluZy1sZWZ0IDBcbiAgICAgICAgcGFkZGluZy1yaWdodCAwXG4gICAgICAgIG1hcmdpbiAwIDNlbVxuICBoMlxuICAgIG1hcmdpbi1ib3R0b20gMC41ZW1cbiAgLmRlc2NyaXB0aW9uLWJpZ1xuICAgIG1hcmdpbi10b3AgMS4yZW1cbiAgICBmb250LXNpemUgX2Z6LWFjY2VudFxuICArbW9iaWxlKClcbiAgICA+aGVhZGVyLFxuICAgIC5kZXNjcmlwdGlvblxuICAgICAgbW9iaWxlLXNhZmUoKVxuICAgID5mb290ZXJcbiAgICAgID4uYWN0aW9uc1xuICAgICAgICBtYXJnaW4gMjBweCAwIDMwcHhcbiAgICAgICAgPi5idG5cbiAgICAgICAgICB3aWR0aCAxODBweFxuICAgICAgICAgIG1hcmdpbiAwIGF1dG9cbiAgICAgICAgICBwYWRkaW5nIDBcbiAgICAgICAgICBwb3NpdGlvbiByZWxhdGl2ZVxuICAgICAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgICAgICA+c3BhblxuICAgICAgICAgICAgYWxpZ24oKVxuICAgICAgICAgICY6Zmlyc3QtY2hpbGRcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b20gMjBweFxuXG4uc2VjdGlvbi1jYWFcbiAgPmhlYWRlclxuICAgIGZpZ3VyZVxuICAgICAgbWFyZ2luLWJvdHRvbTogM2VtXG4gICAgICBmaWdjYXB0aW9uXG4gICAgICAgIGxpZ2h0KClcbiAgICAgICAgY29sb3IgIzAwNTI5YlxuICAgICAgICBmb250LXNpemU6IDI4cHhcbiAgK21vYmlsZSgpXG4gICAgd2lkdGggX3ctc2FmZS1tb2JpbGVcbiAgICBtYXJnaW4tbGVmdCBhdXRvXG4gICAgbWFyZ2luLXJpZ2h0IGF1dG9cbiAgICA+aGVhZGVyXG4gICAgICA+ZmlndXJlXG4gICAgICAgID5pbWdcbiAgICAgICAgICB3aWR0aCA2MHB4XG4gICAgICAgID5maWdjYXB0aW9uXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4XG5cblxuW2RhdGEtcGFnZT0naG9tZSddXG4gICNtYWluXG4gICAgbWF4LXdpZHRoIF93LXNhZmVcbiAgI2Zvb3RlclxuICAgIG1hcmdpbi10b3A6IDI3cHhcbiIsIi8qKlxuICogIFRlcm1zIGFuZCBjb25kaXRpb25zXG4gKlxuICogIEBhdXRob3IgV0VfQVJFXG4gKi9cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19UQUJdICAvICBUYWJsZSBvZiBDb250ZW50c1xuLy89PT09PT09PT0vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKlxuICBfVEFCICAvIFRhYmxlIG9mIENvbnRlbnRzXG4gIF9HRU4gIC8gR2VuZXJpY1xuKi9cblxuLy89PT09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAgW19HRU5dICAvICBHZW5lcmljXG4vLz09PT09PT09PS8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbltkYXRhLXBhZ2U9XCJ0ZXJtc1wiXSAjbWFpblxuICBwYWRkaW5nIDgwcHggMFxuICA+aGVhZGVyXG4gICAgcGFkZGluZy10b3AgMmVtXG5cbiAgPi53cmFwcGVyXG4gICAgd2lkdGg6IF93LXNhZmVcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgdGV4dC1hbGlnbjogbGVmdFxuICAgID5wLCBvbFxuICAgICAgcGFkZGluZy1ib3R0b206IDJlbVxuICAgIGg1LCBzdHJvbmdcbiAgICAgIGJvbGQoKVxuICAgIG9sXG4gICAgICBwYWRkaW5nLWxlZnQ6IDFlbVxuICAgICAgYm9sZCgpXG4gICAgICBsaVxuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWxcbiAgICAgICAgYm9sZCgpXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZClcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyZW1cbiAgICAgICAgcFxuICAgICAgICAgIG5vcm1hbCgpXG5cbiAgK21vYmlsZSgpXG4gICAgcGFkZGluZzogNDBweCAwIDMwcHhcbiAgICA+aGVhZGVyXG4gICAgICBwYWRkaW5nLXRvcDogMFxuICAgICAgPi5sb2dvXG4gICAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMmVtXG4gICAgPi53cmFwcGVyXG4gICAgICBtb2JpbGUtc2FmZSgpXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
 