@-webkit-keyframes hide{to{opacity:0}}@keyframes hide{to{opacity:0}}@-webkit-keyframes details-fold-out{0%{-webkit-transform:translateY(-40%);transform:translateY(-40%);opacity:0}20%{-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:1}}@keyframes details-fold-out{0%{-webkit-transform:translateY(-40%);transform:translateY(-40%);opacity:0}20%{-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:1}}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:initial;box-sizing:initial;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:initial}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:initial}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,body,caption,dd,dl,fieldset,figure,form,h1,h2,h3,h4,h5,h6,hr,legend,ol,p,pre,table,td,th,ul{padding:0;margin:0}ol,ul{list-style:none}html{scroll-behavior:smooth}body{min-height:100vh}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}audio,canvas,embed,iframe,img,object,svg,video{max-width:100%;display:block;vertical-align:middle}button,input,select,textarea{font:inherit}*,:after,:before{border:0 solid}:focus{outline:none}:focus-visible{-webkit-box-shadow:0 0 0 .1rem rgba(0,0,0,.1);box-shadow:0 0 0 .1rem rgba(0,0,0,.1)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;-webkit-transition-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}li>ol,li>ul{margin-bottom:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@font-face{font-family:ABCSocial;src:url(fonts/ABCSocial-Regular.woff2) format("woff2"),url(fonts/ABCSocial-Regular.woff) format("woff");font-weight:400;font-display:block}@font-face{font-family:RecklessNeue;src:url(fonts/RecklessNeue-Regular.woff2) format("woff2"),url(fonts/RecklessNeue-Regular.woff) format("woff");font-weight:400;font-display:block}:root{--size-25:0.1rem;--size-50:0.25rem;--size-100:0.5rem;--size-200:0.64rem;--size-300:0.8rem;--size-400:1rem;--size-500:1.25rem;--size-600:1.563rem;--size-700:1.953rem;--size-800:2.441rem;--size-900:3.052rem;--size-1000:3.815rem;--size-1100:5rem;--size-1200:6rem;--size-1300:7.5rem;--size-1400:10rem;--container-w:calc(80vw + 2rem);--body-p:0.8rem;--text-box-align:-0.5ex;--grid-rows:8;--column-gap:0.6rem;--cluster-gap:0px;--trans-x:1rem;--trans-y:2rem;--nav-h:2rem;--text-default:#3d3737;--text-light:#faf7ef;--text-brown:#a95d1f;--text-brown-dark:#804516;--text-highlight:#ba6724;--bg-default:#faf7ef;--bg-default-dark:#eae5de;--bg-brown:#ba6724;--bg-brown-light:rgba(186,103,36,0.6);--bg-brown-dark:#95521c;--bg-dark:#2c1c0e;--border-default:#faf7ef;--border-radius-s:0.2rem;--border-radius-m:0.4rem;--box-shadow-m:0px 0.15rem 0.8rem rgba(0,0,0,0.255);--box-shadow-l:0px 0.5rem 2rem rgba(0,0,0,0.255)}@supports (width:min(1rem,1rem)){@media screen and (min-width:64em){:root{--container-w:min(50vw + 20rem,70rem)}}}@media screen and (min-width:37.5em){:root{--grid-rows:16;--body-p:1rem}}@media screen and (min-width:64em){:root{--column-gap:0.8rem}}html{height:100%;--baseFontSize:0.8rem;--fontSizeZoomFactor:0.5vw;--maxFontSize:3rem;font-size:min(var(--baseFontSize) + var(--fontSizeZoomFactor),var(--maxFontSize));min-height:1vw}@media screen and (min-width:64em){html{--baseFontSize:0.8rem;--fontSizeZoomFactor:0.4vw}}body{height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;font-weight:400;line-height:1.2;font-family:ABCSocial,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif;letter-spacing:0;color:var(--text-default);background-color:var(--bg-default);background-image:var(--bg-gradient)}p{margin:0}h1,h2,h3,h4,h5,h6{font-weight:400}h1,h2,h3{line-height:1.2;font-family:RecklessNeue,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif}@media screen and (max-width:37.45em){h1 br,h2 br,h3 br{display:none}}h4,h5,h6{font-size:1rem;line-height:1.2;font-weight:400}@media screen and (min-width:37.5em){h4,h5,h6{font-size:1.563rem;line-height:1.1;letter-spacing:-.01em}}h1,h2{font-size:1.953rem;line-height:1.1;letter-spacing:-.01em}@media screen and (min-width:37.5em){h1,h2{font-size:3.052rem;line-height:1.125;letter-spacing:-.026em}}@media screen and (min-width:64em){h1,h2{font-size:3.815rem;line-height:1.05}}h3{font-size:1.953rem;line-height:1.1;letter-spacing:-.01em}@media screen and (min-width:37.5em){h3{font-size:2.441rem;line-height:1.125;letter-spacing:-.026em}}h4{font-size:1.563rem;line-height:1.1;letter-spacing:-.01em}h5{font-size:1rem;line-height:1.2}em,strong{font-weight:inherit}address,cite,em,strong{font-style:normal}a{text-decoration:none;color:inherit;-webkit-transition:color .5s cubic-bezier(.1,.6,.4,1);transition:color .5s cubic-bezier(.1,.6,.4,1)}a:not([class]):hover{color:var(--text-brown-dark)}q{quotes:none;font-size:1.953rem;line-height:1.1;letter-spacing:-.01em;display:inline-block;text-indent:var(--text-indent)}@media screen and (min-width:37.5em){q{font-size:3.815rem;line-height:1.05}}blockquote{quotes:none}blockquote p+p{padding-left:2ex}.section{width:100%;padding-top:var(--size-1000);padding-bottom:var(--size-1200)}@media screen and (min-width:37.5em){.section{padding-top:var(--size-1200);padding-bottom:var(--size-1400)}}.section--full{min-height:calc(100vh - var(--nav-h))}.section--no-gap{padding-bottom:0}.section--partly{height:80vh}.details{padding:.4rem 0}.details+.details{border-top:1px solid var(--text-brown)}.details+.details.details--light{border-top:1px solid var(--text-light)}.details__summary{padding:var(--body-p) 0;cursor:pointer;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}.details__summary::-webkit-details-marker,.details__summary::marker{display:none;content:""}.details__summary:after{-webkit-transform-origin:top right;transform-origin:top right;-webkit-transform:scale(.8);transform:scale(.8);content:url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' width='37' height='37' viewBox='0 0 37 37'> <g id='Ellipse_177' data-name='Ellipse 177' fill='none' stroke='rgba(186,103,36,1)' stroke-width='1.5'> <circle cx='18.5' cy='18.5' r='18.5' stroke='none'/> <circle cx='18.5' cy='18.5' r='17.75' fill='none'/> </g> <line id='Linie_1' data-name='Linie 1' y2='16' transform='translate(18.5 10.5)' fill='none' stroke='rgba(186,103,36,1)' stroke-width='1.5'/> <line id='Linie_2' data-name='Linie 2' y2='16' transform='translate(26.5 18.5) rotate(90)' fill='none' stroke='rgba(186,103,36,1)' stroke-width='1.5'/> </svg>");margin-left:.3rem}[open] .details__summary:after{content:url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' width='37' height='37' viewBox='0 0 37 37'> <g id='Ellipse_177' data-name='Ellipse 177' fill='none' stroke='rgba(186,103,36,1)' stroke-width='1.5'> <circle cx='18.5' cy='18.5' r='18.5' stroke='none'/> <circle cx='18.5' cy='18.5' r='17.75' fill='none'/> </g> <line id='Linie_2' data-name='Linie 2' y2='16' transform='translate(26.5 18.5) rotate(90)' fill='none' stroke='rgba(186,103,36,1)' stroke-width='1.5'/> </svg>")}.details--light .details__summary:after{content:url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' width='37' height='37' viewBox='0 0 37 37'> <g id='Ellipse_177' data-name='Ellipse 177' fill='none' stroke='rgba(250,247,239,1)' stroke-width='1.5'> <circle cx='18.5' cy='18.5' r='18.5' stroke='none'/> <circle cx='18.5' cy='18.5' r='17.75' fill='none'/> </g> <line id='Linie_1' data-name='Linie 1' y2='16' transform='translate(18.5 10.5)' fill='none' stroke='rgba(250,247,239,1)' stroke-width='1.5'/> <line id='Linie_2' data-name='Linie 2' y2='16' transform='translate(26.5 18.5) rotate(90)' fill='none' stroke='rgba(250,247,239,1)' stroke-width='1.5'/> </svg>")}.details--light[open] .details__summary:after{content:url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' width='37' height='37' viewBox='0 0 37 37'> <g id='Ellipse_177' data-name='Ellipse 177' fill='none' stroke='rgba(250,247,239,1)' stroke-width='1.5'> <circle cx='18.5' cy='18.5' r='18.5' stroke='none'/> <circle cx='18.5' cy='18.5' r='17.75' fill='none'/> </g> <line id='Linie_2' data-name='Linie 2' y2='16' transform='translate(26.5 18.5) rotate(90)' fill='none' stroke='rgba(250,247,239,1)' stroke-width='1.5'/> </svg>")}@media screen and (min-width:37.5em){.details__summary:after{-webkit-transform:none;transform:none}}[open] .details__content p{-webkit-animation:details-fold-out .5s cubic-bezier(.1,.6,.4,1) 1 forwards;animation:details-fold-out .5s cubic-bezier(.1,.6,.4,1) 1 forwards}.container{width:var(--container-w);margin-left:auto;margin-right:auto}.page-grid{display:grid;grid-template-columns:repeat(var(--grid-rows),minmax(0,1fr));-webkit-column-gap:var(--column-gap);-moz-column-gap:var(--column-gap);column-gap:var(--column-gap);-webkit-box-align:start;align-items:start}@media screen and (min-width:37.5em){.md\:page-grid{display:grid;grid-template-columns:repeat(var(--grid-rows),minmax(0,1fr));-webkit-column-gap:var(--column-gap);-moz-column-gap:var(--column-gap);column-gap:var(--column-gap);-webkit-box-align:start;align-items:start}}@media screen and (min-width:64em){.lg\:page-grid{display:grid;grid-template-columns:repeat(var(--grid-rows),minmax(0,1fr));-webkit-column-gap:var(--column-gap);-moz-column-gap:var(--column-gap);column-gap:var(--column-gap);-webkit-box-align:start;align-items:start}}.cluster{--cluster-gap:var(--column-gap,1rem);margin-left:calc(var(--cluster-gap)*0.5*-1);margin-right:calc(var(--cluster-gap)*0.5*-1);display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center}@media screen and (min-width:37.5em){.md\:cluster{--cluster-gap:var(--column-gap,1rem);margin-left:calc(var(--cluster-gap)*0.5*-1);margin-right:calc(var(--cluster-gap)*0.5*-1);display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-align:center;align-items:center}}.cluster>*{margin-left:calc(var(--cluster-gap)*0.5);margin-right:calc(var(--cluster-gap)*0.5)}@media screen and (min-width:37.5em){.md\:cluster>*{margin-left:calc(var(--cluster-gap)*0.5);margin-right:calc(var(--cluster-gap)*0.5)}}.cluster--y-gap{--cluster-y-gap:var(--column-gap,1rem);margin-top:calc(var(--cluster-y-gap)*0.5*-1);margin-bottom:calc(var(--cluster-y-gap)*0.5*-1)}.cluster--y-gap>*{margin-top:calc(var(--cluster-y-gap)*0.5);margin-bottom:calc(var(--cluster-y-gap)*0.5)}.cluster--x-50{--cluster-gap:0.25rem}.cluster--x-100{--cluster-gap:0.5rem}.cluster--x-200{--cluster-gap:0.64rem}.cluster--x-300{--cluster-gap:0.8rem}.cluster--x-400{--cluster-gap:1rem}.cluster--x-600{--cluster-gap:1.563rem}.cluster--x-800{--cluster-gap:2.441rem}@media screen and (min-width:64em){.cluster--cards{--cluster-gap:4.8%}}.cluster--y-50{--cluster-y-gap:0.25rem}.cluster--y-100{--cluster-y-gap:0.5rem}.cluster--y-200{--cluster-y-gap:0.64rem}.cluster--y-300{--cluster-y-gap:0.8rem}.cluster--y-400{--cluster-y-gap:1rem}.cluster--y-500{--cluster-y-gap:1.25rem}.cluster--y-600{--cluster-y-gap:1.563rem}.cluster--y-700{--cluster-y-gap:1.953rem}.cluster--y-800{--cluster-y-gap:2.441rem}.cluster--y-1000{--cluster-y-gap:3.815rem}.flow-25,.flow-50,.flow-100,.flow-200,.flow-300,.flow-400,.flow-500,.flow-600,.flow-700,.flow-800,.flow-900,.flow-1000,.flow-1100,.flow-1200,.flow-section{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:start;justify-content:flex-start}.flow-25>*+*,.flow-50>*+*,.flow-100>*+*,.flow-200>*+*,.flow-300>*+*,.flow-400>*+*,.flow-500>*+*,.flow-600>*+*,.flow-700>*+*,.flow-800>*+*,.flow-900>*+*,.flow-1000>*+*,.flow-1100>*+*,.flow-1200>*+*,.flow-section>*+*{margin-top:var(--flow-space)}.flow-25>*+*{--flow-space:0.1rem}.flow-50>*+*{--flow-space:0.25rem}.flow-100>*+*{--flow-space:0.5rem}.flow-200>*+*{--flow-space:0.64rem}.flow-300>*+*{--flow-space:0.8rem}.flow-400>*+*{--flow-space:1rem}.flow-500>*+*{--flow-space:1.25rem}.flow-600>*+*{--flow-space:1.563rem}.flow-700>*+*{--flow-space:1.953rem}.flow-800>*+*{--flow-space:2.441rem}.flow-900>*+*{--flow-space:3.052rem}.flow-1000>*+*{--flow-space:3.815rem}.flow-1100>*+*{--flow-space:5rem}.flow-1200>*+*{--flow-space:6rem}.flow-section>*+*{--flow-space:3.815rem}@media screen and (min-width:37.5em){.flow-section>*+*{--flow-space:7.5rem}}.media-box{position:relative;overflow:hidden}.media-box img,.media-box video{width:calc(100% + 2px);height:calc(100% + 2px);position:absolute;top:0;left:0;object-fit:cover;object-position:50% 50%;-webkit-transition:opacity .125s cubic-bezier(.1,.6,.4,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:opacity .125s cubic-bezier(.1,.6,.4,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:opacity .125s cubic-bezier(.1,.6,.4,1),transform .5s cubic-bezier(0,.23,.07,1);transition:opacity .125s cubic-bezier(.1,.6,.4,1),transform .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1)}@media (hover:hover){a:hover .media-box img,a:hover .media-box video{-webkit-transform:scale(var(--img-scale));transform:scale(var(--img-scale))}}@media (hover:none){a:focus .media-box img,a:focus .media-box video{-webkit-transform:scale(var(--img-scale));transform:scale(var(--img-scale))}}.media-box--cover{position:absolute;top:0;left:0;bottom:0;right:0}.media-box--cube:before,.media-box--landscape:before,.media-box--portrait:before{content:"";display:block;width:100%;padding-bottom:150%;height:0}.media-box--cube img,.media-box--cube video,.media-box--landscape img,.media-box--landscape video,.media-box--portrait img,.media-box--portrait video{width:calc(100% + 2px);height:calc(100% + 2px);position:absolute;top:0;left:0;object-fit:cover;object-position:50% 50%}.media-box--landscape:before{content:"";display:block;width:100%;padding-bottom:75%;height:0}.media-box--cube:before{content:"";display:block;width:100%;padding-bottom:100%;height:0}.btn{display:inline-block;vertical-align:middle;font:inherit;text-align:center;cursor:pointer;color:inherit;outline:none;border:none;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;white-space:nowrap;font-size:1rem;font-weight:400;line-height:1.2;font-family:RecklessNeue,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif;border-radius:var(--border-radius-s);padding:.4rem .8rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;letter-spacing:0}@media screen and (min-width:37.5em){.btn{font-size:.8rem;line-height:1.25;letter-spacing:-.02em;letter-spacing:0}}.btn--primary{color:var(--text-light);background-color:var(--bg-brown);-webkit-transition:background .5s cubic-bezier(.1,.6,.4,1);transition:background .5s cubic-bezier(.1,.6,.4,1)}@media (hover:hover){.btn--primary:hover{background:var(--bg-brown-dark)}}@media (hover:none){.btn--primary:focus{background:var(--bg-brown-dark)}}@media screen and (min-width:37.5em){.btn--primary{font-size:1rem;line-height:1.2}}.btn--outline-brown{background-color:initial;color:var(--text-brown);border:1px solid;-webkit-transition:background .5s cubic-bezier(.1,.6,.4,1),color .5s cubic-bezier(.1,.6,.4,1);transition:background .5s cubic-bezier(.1,.6,.4,1),color .5s cubic-bezier(.1,.6,.4,1)}@media (hover:hover){.btn--outline-brown:hover{background:var(--bg-default-dark)}}@media (hover:none){.btn--outline-brown:focus{background:var(--bg-default-dark)}}.btn--outline-light{background-color:var(--bg-brown-light);color:var(--text-light);border:1px solid}.card{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:justify;justify-content:space-between;border-radius:var(--border-radius-s);color:var(--text-default);background:var(--bg-default);-webkit-box-shadow:var(--box-shadow-m);box-shadow:var(--box-shadow-m);-webkit-transition:-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:box-shadow .5s cubic-bezier(0,.23,.07,1),transform .5s cubic-bezier(0,.23,.07,1);transition:box-shadow .5s cubic-bezier(0,.23,.07,1),transform .5s cubic-bezier(0,.23,.07,1),-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1)}.card h3{max-width:34ex}.card p{max-width:50ex}@media (hover:hover){.card:hover{-webkit-box-shadow:var(--box-shadow-l);box-shadow:var(--box-shadow-l);-webkit-transform:scale(1.02);transform:scale(1.02);-webkit-transition:-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:box-shadow .5s cubic-bezier(0,.23,.07,1),transform .5s cubic-bezier(0,.23,.07,1);transition:box-shadow .5s cubic-bezier(0,.23,.07,1),transform .5s cubic-bezier(0,.23,.07,1),-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1)}}@media (hover:none){.card:focus{-webkit-box-shadow:var(--box-shadow-l);box-shadow:var(--box-shadow-l);-webkit-transform:scale(1.02);transform:scale(1.02);-webkit-transition:-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:box-shadow .5s cubic-bezier(0,.23,.07,1),transform .5s cubic-bezier(0,.23,.07,1);transition:box-shadow .5s cubic-bezier(0,.23,.07,1),transform .5s cubic-bezier(0,.23,.07,1),-webkit-box-shadow .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1)}}.card--full-bleed{min-height:16rem}.card__body{padding:var(--body-p);-webkit-box-flex:1;flex-grow:1}.card__name{font-size:1rem;line-height:1.2;min-height:2.4rem}.card__claim{font-size:1.25rem;letter-spacing:-.01em;font-weight:400;line-height:1.2;font-family:RecklessNeue,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif}@media screen and (min-width:37.5em){.card__text{font-size:.8rem;line-height:1.25;letter-spacing:-.02em}}.card__media{position:relative;overflow:hidden;display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;flex-direction:column-reverse;-webkit-box-align:center;align-items:center;margin-top:auto;height:10rem;background:var(--bg-brown);padding:var(--body-p);border-radius:0 0 var(--border-radius-s) var(--border-radius-s)}.card--full-bleed .card__media{margin-top:0;height:100%;-webkit-box-flex:1;flex:1;-webkit-box-pack:center;justify-content:center}.card__media img{opacity:.45;-webkit-transform:scale(1.01);transform:scale(1.01);-webkit-transition:opacity .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:opacity .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1);transition:transform .5s cubic-bezier(0,.23,.07,1),opacity .5s cubic-bezier(0,.23,.07,1);transition:transform .5s cubic-bezier(0,.23,.07,1),opacity .5s cubic-bezier(0,.23,.07,1),-webkit-transform .5s cubic-bezier(0,.23,.07,1)}@media (hover:hover){.card:hover .card__media img{opacity:.6;-webkit-transform:scale(1.05);transform:scale(1.05)}}@media (hover:none){.card:focus .card__media img{opacity:.6;-webkit-transform:scale(1.05);transform:scale(1.05)}}.card__btn{display:block}.card__btn,.hero{position:relative}.hero{display:-webkit-box;display:flex}@media screen and (min-width:37.5em){.hero{top:0;bottom:var(--nav-h);left:0;right:0;position:fixed}}.hero__container{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;min-height:100%;padding-bottom:2rem}@media screen and (min-width:37.5em){.hero__container{padding-bottom:0}}.hero__image{position:absolute;top:0;left:0;bottom:0;right:0}.hero__image img{opacity:.8}.prose{word-break:break-word}.prose h1,.prose h2{font-size:1.25rem;line-height:1.13;letter-spacing:-.01em;--flow-space:var(--size-800)}.prose h1,.prose h2,.prose h3{color:var(--text-brown)}.prose h1+p,.prose h2+p,.prose h3+p{--flow-space:0.1rem}.prose ul{list-style:disc outside}.prose li{margin-left:1em}.prose hr{background:none;border:none;--flow-space:var(--size-1200)}.prose a{color:var(--text-brown)}@media screen and (min-width:37.5em){.prose h1,.prose h2{font-size:1.563rem;line-height:1.1;letter-spacing:-.01em}.prose h3{font-size:1.25rem;line-height:1.13;letter-spacing:-.01em}.prose h4,.prose h5,.prose h6{font-size:1rem;line-height:1.2}}.text-default{color:#3d3737}.text-light{color:#faf7ef}.text-brown{color:#a95d1f}.text-brown-dark{color:#804516}.text-highlight{color:#ba6724}.bg-default{background-color:#faf7ef}.bg-default-dark{background-color:#eae5de}.bg-brown{background-color:#ba6724}.bg-brown-light{background-color:rgba(186,103,36,.6)}.bg-brown-dark{background-color:#95521c}.bg-dark{background-color:#2c1c0e}.text-style-default{font-weight:400;line-height:1.2;font-family:ABCSocial,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif;letter-spacing:0}@media screen and (min-width:37.5em){.md\:text-style-default{font-weight:400;line-height:1.2;font-family:ABCSocial,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif;letter-spacing:0}}@media screen and (min-width:64em){.lg\:text-style-default{font-weight:400;line-height:1.2;font-family:ABCSocial,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif;letter-spacing:0}}.text-style-serif{font-weight:400;line-height:1.2;font-family:RecklessNeue,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif}@media screen and (min-width:37.5em){.md\:text-style-serif{font-weight:400;line-height:1.2;font-family:RecklessNeue,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif}}@media screen and (min-width:64em){.lg\:text-style-serif{font-weight:400;line-height:1.2;font-family:RecklessNeue,system,-apple-system,\.SFNSText-Regular,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif}}.text-style-300{font-size:.8rem;line-height:1.25;letter-spacing:-.02em}@media screen and (min-width:37.5em){.md\:text-style-300{font-size:.8rem;line-height:1.25;letter-spacing:-.02em}}@media screen and (min-width:64em){.lg\:text-style-300{font-size:.8rem;line-height:1.25;letter-spacing:-.02em}}.text-style-400{font-size:1rem;line-height:1.2}@media screen and (min-width:37.5em){.md\:text-style-400{font-size:1rem;line-height:1.2}}@media screen and (min-width:64em){.lg\:text-style-400{font-size:1rem;line-height:1.2}}.text-style-500{font-size:1.25rem;line-height:1.13;letter-spacing:-.01em}@media screen and (min-width:37.5em){.md\:text-style-500{font-size:1.25rem;line-height:1.13;letter-spacing:-.01em}}@media screen and (min-width:64em){.lg\:text-style-500{font-size:1.25rem;line-height:1.13;letter-spacing:-.01em}}.text-style-600{font-size:1.563rem;line-height:1.1;letter-spacing:-.01em}@media screen and (min-width:37.5em){.md\:text-style-600{font-size:1.563rem;line-height:1.1;letter-spacing:-.01em}}@media screen and (min-width:64em){.lg\:text-style-600{font-size:1.563rem;line-height:1.1;letter-spacing:-.01em}}.text-style-700{font-size:1.953rem;line-height:1.1;letter-spacing:-.01em}@media screen and (min-width:37.5em){.md\:text-style-700{font-size:1.953rem;line-height:1.1;letter-spacing:-.01em}}@media screen and (min-width:64em){.lg\:text-style-700{font-size:1.953rem;line-height:1.1;letter-spacing:-.01em}}.text-style-800{font-size:2.441rem;line-height:1.125;letter-spacing:-.026em}@media screen and (min-width:37.5em){.md\:text-style-800{font-size:2.441rem;line-height:1.125;letter-spacing:-.026em}}@media screen and (min-width:64em){.lg\:text-style-800{font-size:2.441rem;line-height:1.125;letter-spacing:-.026em}}.text-style-900{font-size:3.052rem;line-height:1.125;letter-spacing:-.026em}@media screen and (min-width:37.5em){.md\:text-style-900{font-size:3.052rem;line-height:1.125;letter-spacing:-.026em}}@media screen and (min-width:64em){.lg\:text-style-900{font-size:3.052rem;line-height:1.125;letter-spacing:-.026em}}.text-style-1000{font-size:3.815rem;line-height:1.05}@media screen and (min-width:37.5em){.md\:text-style-1000{font-size:3.815rem;line-height:1.05}}@media screen and (min-width:64em){.lg\:text-style-1000{font-size:3.815rem;line-height:1.05}}.focus-only:not(:focus),.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.focus-only{position:absolute}.z-1{z-index:1}.z-999{z-index:999}.w-full{width:calc(100% + var(--cluster-gap))}.w-auto{width:auto}.w-1\/10{width:calc(10% - var(--cluster-gap) - 1px)}.w-1\/2{width:calc(50% - var(--cluster-gap) - 1px)}.w-1\/3{width:calc(33.33333% - var(--cluster-gap) - 1px)}.w-2\/3{width:calc(66.66667% - var(--cluster-gap) - 1px)}.w-1\/4{width:calc(25% - var(--cluster-gap) - 1px)}.w-2\/4{width:calc(50% - var(--cluster-gap) - 1px)}.w-3\/4{width:calc(75% - var(--cluster-gap) - 1px)}.w-1\/5{width:calc(20% - var(--cluster-gap) - 1px)}.w-2\/5{width:calc(40% - var(--cluster-gap) - 1px)}.w-3\/5{width:calc(60% - var(--cluster-gap) - 1px)}.w-4\/5{width:calc(80% - var(--cluster-gap) - 1px)}.w-15\/16{width:calc(93.75% - var(--cluster-gap) - 1px)}.w-1\/8{width:calc(12.5% - var(--cluster-gap) - 1px)}.w-2\/8{width:calc(25% - var(--cluster-gap) - 1px)}.w-3\/8{width:calc(37.5% - var(--cluster-gap) - 1px)}.w-4\/8{width:calc(50% - var(--cluster-gap) - 1px)}.w-5\/8{width:calc(62.5% - var(--cluster-gap) - 1px)}.w-6\/8{width:calc(75% - var(--cluster-gap) - 1px)}.w-7\/8{width:calc(87.5% - var(--cluster-gap) - 1px)}.w-7\/10{width:calc(70% - var(--cluster-gap) - 1px)}.w-5\/16{width:calc(31.25% - var(--cluster-gap) - 1px)}@media screen and (min-width:37.5em){.md\:w-full{width:calc(100% + var(--cluster-gap))}.md\:w-auto{width:auto}.md\:w-1\/10{width:calc(10% - var(--cluster-gap) - 1px)}.md\:w-1\/2{width:calc(50% - var(--cluster-gap) - 1px)}.md\:w-1\/3{width:calc(33.33333% - var(--cluster-gap) - 1px)}.md\:w-2\/3{width:calc(66.66667% - var(--cluster-gap) - 1px)}.md\:w-1\/4{width:calc(25% - var(--cluster-gap) - 1px)}.md\:w-2\/4{width:calc(50% - var(--cluster-gap) - 1px)}.md\:w-3\/4{width:calc(75% - var(--cluster-gap) - 1px)}.md\:w-1\/5{width:calc(20% - var(--cluster-gap) - 1px)}.md\:w-2\/5{width:calc(40% - var(--cluster-gap) - 1px)}.md\:w-3\/5{width:calc(60% - var(--cluster-gap) - 1px)}.md\:w-4\/5{width:calc(80% - var(--cluster-gap) - 1px)}.md\:w-15\/16{width:calc(93.75% - var(--cluster-gap) - 1px)}.md\:w-1\/8{width:calc(12.5% - var(--cluster-gap) - 1px)}.md\:w-2\/8{width:calc(25% - var(--cluster-gap) - 1px)}.md\:w-3\/8{width:calc(37.5% - var(--cluster-gap) - 1px)}.md\:w-4\/8{width:calc(50% - var(--cluster-gap) - 1px)}.md\:w-5\/8{width:calc(62.5% - var(--cluster-gap) - 1px)}.md\:w-6\/8{width:calc(75% - var(--cluster-gap) - 1px)}.md\:w-7\/8{width:calc(87.5% - var(--cluster-gap) - 1px)}.md\:w-7\/10{width:calc(70% - var(--cluster-gap) - 1px)}.md\:w-5\/16{width:calc(31.25% - var(--cluster-gap) - 1px)}}@media screen and (min-width:64em){.lg\:w-full{width:calc(100% + var(--cluster-gap))}.lg\:w-auto{width:auto}.lg\:w-1\/10{width:calc(10% - var(--cluster-gap) - 1px)}.lg\:w-1\/2{width:calc(50% - var(--cluster-gap) - 1px)}.lg\:w-1\/3{width:calc(33.33333% - var(--cluster-gap) - 1px)}.lg\:w-2\/3{width:calc(66.66667% - var(--cluster-gap) - 1px)}.lg\:w-1\/4{width:calc(25% - var(--cluster-gap) - 1px)}.lg\:w-2\/4{width:calc(50% - var(--cluster-gap) - 1px)}.lg\:w-3\/4{width:calc(75% - var(--cluster-gap) - 1px)}.lg\:w-1\/5{width:calc(20% - var(--cluster-gap) - 1px)}.lg\:w-2\/5{width:calc(40% - var(--cluster-gap) - 1px)}.lg\:w-3\/5{width:calc(60% - var(--cluster-gap) - 1px)}.lg\:w-4\/5{width:calc(80% - var(--cluster-gap) - 1px)}.lg\:w-15\/16{width:calc(93.75% - var(--cluster-gap) - 1px)}.lg\:w-1\/8{width:calc(12.5% - var(--cluster-gap) - 1px)}.lg\:w-2\/8{width:calc(25% - var(--cluster-gap) - 1px)}.lg\:w-3\/8{width:calc(37.5% - var(--cluster-gap) - 1px)}.lg\:w-4\/8{width:calc(50% - var(--cluster-gap) - 1px)}.lg\:w-5\/8{width:calc(62.5% - var(--cluster-gap) - 1px)}.lg\:w-6\/8{width:calc(75% - var(--cluster-gap) - 1px)}.lg\:w-7\/8{width:calc(87.5% - var(--cluster-gap) - 1px)}.lg\:w-7\/10{width:calc(70% - var(--cluster-gap) - 1px)}.lg\:w-5\/16{width:calc(31.25% - var(--cluster-gap) - 1px)}}.grid-toggle{display:none}.is-development .grid-toggle{display:block;position:fixed;bottom:6rem;right:0}.is-development .grid-toggle input{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px!important;padding:0;border:0}.is-development .grid-toggle label{display:inline-block;width:1.6rem;height:1.6rem;background:#1dff00;border-radius:100%;cursor:help;margin:1.6rem;text-indent:-200vw}.is-development .grid-toggle input:checked+label{-webkit-transform:scale(.7);transform:scale(.7)}.is-development .grid-toggle input:checked+label:after{content:"";display:inline-block;position:absolute;top:0;left:0;width:1.6rem;height:1.6rem;border-radius:100%;border:2px solid #1dff00;-webkit-transform:scale(2);transform:scale(2)}.touch .is-development .grid-toggle{cursor:pointer}.no-touch .is-development .grid-toggle:active+.grid-overlay,.no-touch .is-development .grid-toggle:focus+.grid-overlay,.no-touch .is-development .grid-toggle:hover+.grid-overlay{opacity:.8}.is-development .grid-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;-webkit-transition:opacity .25s cubic-bezier(.1,.6,.4,1);transition:opacity .25s cubic-bezier(.1,.6,.4,1)}.is-development .grid-overlay .container{height:100%}.is-development .grid-overlay-container{display:none;height:100%}.is-development .grid-overlay-container div{background-color:rgba(255,0,255,.1);border-left:1px solid rgba(255,0,255,.4);border-right:1px solid rgba(255,0,255,.4);height:100%}@media screen and (max-width:37.45em){.is-development .grid--sm{display:grid}}@media screen and (min-width:37.5em) and (max-width:63.95em){.is-development .grid--md{display:grid}}@media screen and (min-width:64em){.is-development .grid--lg{display:grid}}.is-development .body-margin{position:fixed;top:0;left:0;right:0;bottom:0;outline:1px solid #1dff00;pointer-events:none;opacity:0;-webkit-transition:opacity .25s cubic-bezier(.1,.6,.4,1);transition:opacity .25s cubic-bezier(.1,.6,.4,1);margin:var(--body-p)}.is-development.is-grid-visible .body-margin,.is-development.is-grid-visible .grid-overlay{opacity:1}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.top-\[3rem\]{top:3rem}.top-0{top:0}.z-2{z-index:2}.z-10{z-index:10}.order-6{-webkit-box-ordinal-group:7;order:6}.order-5{-webkit-box-ordinal-group:6;order:5}.order-2{-webkit-box-ordinal-group:3;order:2}.order-7{-webkit-box-ordinal-group:8;order:7}.order-3{-webkit-box-ordinal-group:4;order:3}.order-4{-webkit-box-ordinal-group:5;order:4}.order-1{-webkit-box-ordinal-group:2;order:1}.col-span-14{grid-column:span 14/span 14}.col-span-6{grid-column:span 6/span 6}.col-span-8{grid-column:span 8/span 8}.col-span-4{grid-column:span 4/span 4}.col-span-10{grid-column:span 10/span 10}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-4{grid-column-start:4}.col-start-12{grid-column-start:12}.col-start-5{grid-column-start:5}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.m-body{margin:var(--body-p)}.mx-\[-0\.1ex\]{margin-left:-.1ex;margin-right:-.1ex}.my-\[-0\.3ex\]{margin-top:-.3ex;margin-bottom:-.3ex}.my-800{margin-top:var(--size-800);margin-bottom:var(--size-800)}.my-1200{margin-top:var(--size-1200);margin-bottom:var(--size-1200)}.mt-auto{margin-top:auto}.mt-200{margin-top:var(--size-200)}.-mt-600{margin-top:calc(var(--size-600)*-1)}.mt-1000{margin-top:var(--size-1000)}.mt-1200{margin-top:var(--size-1200)}.mb-400{margin-bottom:var(--size-400)}.mt-800{margin-top:var(--size-800)}.mt-\[8rem\]{margin-top:8rem}.mt-1300{margin-top:var(--size-1300)}.mt-400{margin-top:var(--size-400)}.mt-\[10rem\]{margin-top:10rem}.ml-400{margin-left:var(--size-400)}.block{display:block}.inline-block{display:inline-block}.flex{display:-webkit-box;display:flex}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.h-full{height:100%}.min-h-\[var\(--nav-h\)\]{min-height:var(--nav-h)}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.items-start{-webkit-box-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;align-items:center}.items-stretch{-webkit-box-align:stretch;align-items:stretch}.justify-end{-webkit-box-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;justify-content:space-between}.justify-around{justify-content:space-around}.whitespace-nowrap{white-space:nowrap}.bg-brown{background-color:var(--text-brown)}.p-body{padding:var(--body-p)}.px-body{padding-left:var(--body-p);padding-right:var(--body-p)}.py-200{padding-top:var(--size-200);padding-bottom:var(--size-200)}.px-600{padding-left:var(--size-600);padding-right:var(--size-600)}.py-1200{padding-top:var(--size-1200);padding-bottom:var(--size-1200)}.pt-300{padding-top:var(--size-300)}.pb-1000{padding-bottom:var(--size-1000)}.pt-400{padding-top:var(--size-400)}.pt-0{padding-top:0}.pt-1200{padding-top:var(--size-1200)}.pb-900{padding-bottom:var(--size-900)}.pb-800{padding-bottom:var(--size-800)}.pb-1200{padding-bottom:var(--size-1200)}.text-brown{color:var(--text-brown)}.text-light{color:var(--text-light)}.opacity-\[0\.45\]{opacity:.45}@media (min-width:37.5em){.md\:sticky{position:sticky}.md\:bottom-auto{bottom:auto}.md\:top-0{top:0}.md\:order-1{-webkit-box-ordinal-group:2;order:1}.md\:col-span-8{grid-column:span 8/span 8}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-9{grid-column:span 9/span 9}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-10{grid-column:span 10/span 10}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-12{grid-column:span 12/span 12}.md\:col-start-7{grid-column-start:7}.md\:col-start-10{grid-column-start:10}.md\:col-start-2{grid-column-start:2}.md\:col-start-12{grid-column-start:12}.md\:col-start-1{grid-column-start:1}.md\:col-start-3{grid-column-start:3}.md\:col-start-5{grid-column-start:5}.md\:col-start-11{grid-column-start:11}.md\:row-start-1{grid-row-start:1}.md\:row-start-2{grid-row-start:2}.md\:mt-0{margin-top:0}.md\:mt-\[calc\(100vh-var\(--nav-h\2c 1em\)\)\]{margin-top:calc(100vh - var(--nav-h,1em))}.md\:mt-1300{margin-top:var(--size-1300)}.md\:mt-400{margin-top:var(--size-400)}.md\:mb-0{margin-bottom:0}.md\:mt-\[2\.4rem\]{margin-top:2.4rem}.md\:mt-1400{margin-top:var(--size-1400)}.md\:mt-\[36rem\]{margin-top:36rem}.md\:mt-\[calc\(80vh-var\(--nav-h\2c 1em\)\)\]{margin-top:calc(80vh - var(--nav-h,1em))}.md\:block{display:block}.md\:inline{display:inline}.md\:hidden{display:none}.md\:min-h-\[3rem\]{min-height:3rem}.md\:justify-start{-webkit-box-pack:start;justify-content:flex-start}.md\:justify-between{-webkit-box-pack:justify;justify-content:space-between}.md\:py-100{padding-top:var(--size-100);padding-bottom:var(--size-100)}.md\:px-0{padding-left:0;padding-right:0}.md\:pb-400{padding-bottom:var(--size-400)}.md\:text-brown{color:var(--text-brown)}}@media (min-width:64em){.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-start-2{grid-column-start:2}.lg\:col-start-12{grid-column-start:12}.lg\:ml-200{margin-left:var(--size-200)}.lg\:mt-1000{margin-top:var(--size-1000)}.lg\:mb-0{margin-bottom:0}.lg\:-mt-\[3\.5rem\]{margin-top:-3.5rem}.lg\:hidden{display:none}}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi90b29scy9fdG9vbHMuYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovLy8uL21haW4uc2NzcyIsIndlYnBhY2s6Ly8vLi90b29scy9fdG9vbHMubWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZ2VuZXJpYy9fZ2VuZXJpYy5ib3gtc2l6aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZ2VuZXJpYy9fZ2VuZXJpYy5ub3JtYWxpemUuc2NzcyIsIndlYnBhY2s6Ly8vLi9nZW5lcmljL19nZW5lcmljLnJlc2V0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZWxlbWVudHMvX2VsZW1lbnRzLmZvbnRmYWNlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZWxlbWVudHMvX2VsZW1lbnRzLnJvb3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9zZXR0aW5ncy9fc2V0dGluZ3MuYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9lbGVtZW50cy9fZWxlbWVudHMucGFnZS5zY3NzIiwid2VicGFjazovLy8uL2VsZW1lbnRzL19lbGVtZW50cy50eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZWxlbWVudHMvX2VsZW1lbnRzLmxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZWxlbWVudHMvX2VsZW1lbnRzLnF1b3Rlcy5zY3NzIiwid2VicGFjazovLy8uL2VsZW1lbnRzL19lbGVtZW50cy5zZWN0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZWxlbWVudHMvX2VsZW1lbnRzLmRldGFpbHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9vYmplY3RzL19vYmplY3RzLmNvbnRhaW5lci5zY3NzIiwid2VicGFjazovLy8uL29iamVjdHMvX29iamVjdHMucGFnZS1ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vb2JqZWN0cy9fb2JqZWN0cy5jbHVzdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vb2JqZWN0cy9fb2JqZWN0cy5mbG93LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vb2JqZWN0cy9fb2JqZWN0cy5tZWRpYS1ib3guc2NzcyIsIndlYnBhY2s6Ly8vLi9zZXR0aW5ncy9fc2V0dGluZ3MudmFycy5zY3NzIiwid2VicGFjazovLy8uL2NvbXBvbmVudHMvX2NvbXBvbmVudHMuYnV0dG9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tcG9uZW50cy9fY29tcG9uZW50cy5jYXJkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vY29tcG9uZW50cy9fY29tcG9uZW50cy5oZXJvLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc2NvcGVzL19zY29wZXMucHJvc2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi91dGlsaXRpZXMvX3V0aWxpdGllcy50ZXh0LXN0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vdXRpbGl0aWVzL191dGlsaXRpZXMuYWNjZXNzaWJpbGl0eS5zY3NzIiwid2VicGFjazovLy8uL3V0aWxpdGllcy9fdXRpbGl0aWVzLnotaW5kZXguc2NzcyIsIndlYnBhY2s6Ly8vLi9kZXZlbG9wbWVudC9fZGV2ZWxvcG1lbnQuZ3JpZC1zaG93LnNjc3MiLCJ3ZWJwYWNrOi8vLzxubyBzb3VyY2U+Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLHdCQUNJLEdBQ0ksU0NrRE4sQ0FDRixDRHJEQSxnQkFDSSxHQUNJLFNDa0ROLENBQ0YsQ0N3REksb0NGdEdBLEdBQ0ksOERBQ0EsU0NpRE4sQ0QvQ0UsSUFDSSx1RENpRE4sQ0QvQ0UsR0FDSSxTQ2lETixDQUNGLENDNENJLDRCRnRHQSxHQUNJLDhEQUNBLFNDaUROLENEL0NFLElBQ0ksdURDaUROLENEL0NFLEdBQ0ksU0NpRE4sQ0FDRixDRTVEQSxLQUNFLDhCQUVNLHFCRnFFUixDRWhFRSxpQkFHRSwyQkFFUSxrQkZpRVo7O0FHdkZBLDRFQVVBLEtBQ0UsaUJBQ0EsNkJIeUZGLENHL0VBLEtBQ0UsUUh1RkYsQ0doRkEsS0FDRSxhSHNGRixDRzlFQSxHQUNFLGNBQ0EsY0hxRkYsQ0cxRUEsR0FDRSw4Q0FDQSxTQUNBLGdCSHNGRixDRzlFQSxJQUNFLGdDQUNBLGFIdUZGLENHN0VBLEVBQ0Usd0JIcUZGLENHN0VBLFlBQ0UsbUJBQ0EsMEJBQ0EseUVIdUZGLENHaEZBLFNBRUUsa0JIc0ZGLENHOUVBLGNBR0UsZ0NBQ0EsYUh1RkYsQ0doRkEsTUFDRSxhSHNGRixDRzlFQSxRQUVFLGNBQ0EsY0FDQSxrQkFDQSxzQkhxRkYsQ0dsRkEsSUFDRSxhSHFGRixDR2xGQSxJQUNFLFNIcUZGLENHM0VBLElBQ0UsaUJIbUZGLENHeEVBLHNDQUtFLG9CQUNBLGVBQ0EsaUJBQ0EsUUhxRkYsQ0c3RUEsYUFFRSxnQkhxRkYsQ0c3RUEsY0FFRSxtQkhxRkYsQ0c5RUEsZ0RBSUUseUJIb0ZGLENHN0VBLHdIQUlFLGtCQUNBLFNIbUZGLENHNUVBLDRHQUlFLDZCSGtGRixDRzNFQSxTQUNFLDBCSGlGRixDR3ZFQSxPQUNFLG9EQUNBLGNBQ0EsY0FDQSxlQUNBLFVBQ0Esa0JIc0ZGLENHL0VBLFNBQ0Usc0JIcUZGLENHOUVBLFNBQ0UsYUhvRkYsQ0c1RUEsNkJBRUUsb0RBQ0EsU0hxRkYsQ0c5RUEsa0ZBRUUsV0hvRkYsQ0c1RUEsY0FDRSw2QkFDQSxtQkhxRkYsQ0c5RUEseUNBQ0UsdUJIb0ZGLENHNUVBLDZCQUNFLDBCQUNBLFlIcUZGLENHM0VBLFFBQ0UsYUhtRkYsQ0c1RUEsUUFDRSxpQkhrRkYsQ0doRUEsa0JBQ0UsWUgrRUYsQ0kvWkEsdUdBdUJFLFVBQ0EsUUoyYUYsQ0l2YUEsTUFFRSxlSjJhRixDSXZhQSxLQUNFLHNCSjJhRixDSXZhQSxLQUNFLGdCSjJhRixDSXZhQSxlQUNFLDhESjJhRixDSXZhQSwrQ0FRRSxlQUNBLGNBQ0EscUJKMmFGLENJdmFBLDZCQUlFLFlKMmFGLENJdmFBLGlCQUtFLGNKMmFGLENJcGFBLE9BQ0UsWUp3YUYsQ0lwYUEsZUFDRSxtRkp1YUYsQ0luYUEsdUNBQ0UsS0FDRSxvQkp1YUYsQ0lyYUEsaUJBR0UsOEVBQ0Esb0ZBQ0EsZ0ZBQ0EsOEJKd2FGLENBQ0YsQ0loYUUsWUFFRSxlSnFhSixDSTdaQSxNQUNFLHlCQUNBLGdCSm1hRixDSWhhQSxNQUVFLFNKbWFGLENLOWdCQSxXQUNJLHNCQUNBLG1IQUVBLGdCQUNBLGtCTG1oQkosQ0svZ0JBLFdBQ0kseUJBQ0EsbUhBRUEsZ0JBQ0Esa0JMZ2hCSixDTXZqQkEsTUxnWlkseVNLM1lSLGdDTCtYZ0IsdUlBWVIscWJEd05aLENNam1CSSxpQ0N1QlksbUNEOUJoQixNQVNZLHFDTm9tQlIsQ0FDRixDQUNGLENPamxCZ0IscUNEOUJoQixNTHlZd0IsNEJEMk90QixDQUNGLENPdmxCZ0IsbUNEOUJoQixNTHlZd0IsbUJEZ1B0QixDQUNGLENRMW5CQSxLQUNJLFlBZUEsc0JBQ0EsMkJBQ0EsbUJBQ0Esa0ZBT0EsY1IrbUJKLENPM21CZ0IsbUNDOUJoQixLQXFDUSxzQkFDQSwwQlJ3bUJOLENBQ0YsQ1FybUJBLEtBQ0ksWUFDQSxtQ0FDQSxrQ0FDQSxrQlBzR1EsdUtPcEdSLDBCQUNBLG1DQUNBLG1DUjJtQkosQ1MvcEJBLEVBQ0ksUVRxcUJKLENTOXBCQSxrQkFISSxlVDJxQkosQ1N4cUJBLFNSOElZLHdJRDBoQlosQ08zb0JnQixzQ0V6QlIsa0JBQ0ksWVR1cUJWLENBQ0YsQ1NucUJBLFNSNEhZLGVBUUEsZ0JRaElSLGVUdXFCSixDTzdwQmdCLHFDRWRoQixTUjRIWSxtQkFRQSxxQ0QraUJWLENBQ0YsQ1N6cUJBLE1SaUhZLG1CQVFBLHFDRHNqQlosQ081cUJnQixxQ0VIaEIsTVJpSFksbUJBUUEsd0NENGpCVixDQUNGLENPbnJCZ0IsbUNFSGhCLE1SaUhZLG1CQVFBLGdCRGtrQlYsQ0FDRixDU2hyQkEsR1JxR1ksbUJBUUEscUNEeWtCWixDTy9yQmdCLHFDRVNoQixHUnFHWSxtQkFRQSx3Q0Qra0JWLENBQ0YsQ1NyckJBLEdSNkZZLG1CQVFBLHFDRHNsQlosQ1N2ckJBLEdSeUZZLGVBUUEsZUQybEJaLENTeHJCQSxVQUVJLG1CVDRyQkosQ1N4ckJBLHVCQUhJLGlCVGdzQkosQ1U5dkJBLEVBQ0kscUJBQ0EsY0FDQSxtR1Zvd0JKLENVbHdCSSxxQkFDSSw0QlZvd0JSLENXdHdCQSxFQUVJLFlWMElRLG1CQVFBLHNDVWhKUixxQkFDQSw4Qlh3eEJKLENPL3ZCZ0IscUNJOUJoQixFVjRJWSxtQkFRQSxnQkQ4b0JWLENBQ0YsQ1c3d0JBLFdBQ0ksV1hneEJKLENXOXdCSSxlQUNJLGdCWGd4QlIsQ1lsekJBLFNBQ0ksV0FDQSw2QkFDQSwrQlpxekJKLENPbHhCZ0IscUNLdENoQixTQU1RLDZCQUNBLCtCWnN6Qk4sQ0FDRixDWW56QkEsZUFDSSxxQ1pzekJKLENZbnpCQSxpQkFDSSxnQlpzekJKLENZbnpCQSxpQkFDSSxXWnN6QkosQ2ExMEJBLFNBQ0ksZWI2MEJKLENhMzBCSSxrQkFDSSxzQ2I2MEJSLENhMTBCSSxpQ0FDSSxzQ2I0MEJSLENheDBCQSxrQkFDSSx3QkFDQSxlQUNBLGlDQUNBLHNEYjIwQkosQ2F6MEJJLG9FQUVJLGFBQ0EsVWIwMEJSLENhdjBCSSx3QkFDSSw4REFDQSxnREFDQSwrbkJBQ0EsaUJieTBCUixDYXYwQlEsK0JBQ0ksaWZieTBCWixDYXQwQlEsd0NBQ0ksaW9CYncwQlosQ2FyMEJRLDhDQUNJLG1mYnUwQlosQ094MEJnQixxQ01NUix3QkFDSSxxQ2JxMEJWLENBQ0YsQ2EvekJRLDJCQUNJLDZJYmswQlosQ2NoM0JBLFdBQ0kseUJBQ0EsaUJBQ0EsaUJkczNCSixDZTEzQkEsV0FFUSxhQUNBLDZEQUNBLG9HQUNBLHlDZiszQlIsQ09wMkJnQixxQ05tWkgsZWNqYkwsYUFDQSw2REFDQSxvR0FDQSx5Q2ZzNEJOLENBQ0YsQ081MkJnQixtQ05tWkgsZWNqYkwsYUFDQSw2REFDQSxvR0FDQSx5Q2YrNEJOLENBQ0YsQ2dCcjRCQSxTQUVRLHFDQUNBLDRDQUNBLDZDQUNBLGlDQUNBLGVBQ0EsMkNoQjI1QlIsQ09sNUJnQixxQ05tWkgsYWVqYUwscUNBQ0EsNENBQ0EsNkNBQ0EsaUNBQ0EsZUFDQSwyQ2hCbzZCTixDQUNGLENnQmo2QkEsV0FDSSx5Q0FDQSx5Q2hCbzZCSixDT2o2QmdCLHFDU0FoQixlQUVRLHlDQUNBLHlDaEJvNkJOLENBQ0YsQ2dCaDZCQSxnQkFDSSx1Q0FDQSw2Q0FDQSwrQ2hCbTZCSixDZ0JoNkJBLGtCQUNJLDBDQUNBLDRDaEJtNkJKLENnQmg2QkEsZUFBaUIscUJoQm82QmpCLENnQm42QkEsZ0JBQWtCLG9CaEJ1NkJsQixDZ0J0NkJBLGdCQUFrQixxQmhCMDZCbEIsQ2dCejZCQSxnQkFBa0Isb0JoQjY2QmxCLENnQjU2QkEsZ0JBQWtCLGtCaEJnN0JsQixDZ0IvNkJBLGdCQUFrQixzQmhCbTdCbEIsQ2dCbDdCQSxnQkFBa0Isc0JoQnM3QmxCLENPLzhCZ0IsbUNTMEJoQixnQkFFUSxrQmhCdzdCTixDQUNGLENnQnA3QkEsZUFBaUIsdUJoQnc3QmpCLENnQnY3QkEsZ0JBQWtCLHNCaEIyN0JsQixDZ0IxN0JBLGdCQUFrQix1QmhCODdCbEIsQ2dCNzdCQSxnQkFBa0Isc0JoQmk4QmxCLENnQmg4QkEsZ0JBQWtCLG9CaEJvOEJsQixDZ0JuOEJBLGdCQUFrQix1QmhCdThCbEIsQ2dCdDhCQSxnQkFBa0Isd0JoQjA4QmxCLENnQno4QkEsZ0JBQWtCLHdCaEI2OEJsQixDZ0I1OEJBLGdCQUFrQix3QmhCZzlCbEIsQ2dCLzhCQSxpQkFBbUIsd0JoQm05Qm5CLENpQnBoQ0EsMkpBZUksaUNBQ0EsK0VBQ0EsaURqQjBoQ0osQ2lCdmhDQSx1TkFlSSw0QmpCMGhDSixDaUJ2aENBLGFBQW9CLG1CakIyaENwQixDaUIxaENBLGFBQW9CLG9CakI4aENwQixDaUI3aENBLGNBQXFCLG1CakJpaUNyQixDaUJoaUNBLGNBQXFCLG9CakJvaUNyQixDaUJuaUNBLGNBQXFCLG1CakJ1aUNyQixDaUJ0aUNBLGNBQXFCLGlCakIwaUNyQixDaUJ6aUNBLGNBQXFCLG9CakI2aUNyQixDaUI1aUNBLGNBQXFCLHFCakJnakNyQixDaUIvaUNBLGNBQXFCLHFCakJtakNyQixDaUJsakNBLGNBQXFCLHFCakJzakNyQixDaUJyakNBLGNBQXFCLHFCakJ5akNyQixDaUJ4akNBLGVBQXNCLHFCakI0akN0QixDaUIzakNBLGVBQXNCLGlCakIrakN0QixDaUI5akNBLGVBQXNCLGlCakJra0N0QixDaUJoa0NBLGtCQUNJLHFCakJta0NKLENPbG1DZ0IscUNVOEJoQixrQkFJUSxtQmpCb2tDTixDQUNGLENrQjduQ0EsV0FDSSxrQkFDQSxlbEI0b0NKLENrQjFvQ0ksZ0NBRUksdUJBQ0Esd0JBQ0Esa0JBQ0EsTUFDQSxPQUNBLGlCQUNBLHdCQUNBLCthbEI0b0NSLENDcm5DUSxxQkFDSSxnRGlCbkJBLDJFbEI0b0NWLENBQ0YsQ0NwbkNRLG9CQUNJLGdEaUIxQkEsMkVsQmtwQ1YsQ0FDRixDa0I5b0NBLGtCakJvTEksa0JBQ0EsTUFDQSxPQUNBLFNBQ0EsT0Q4OUJKLENDdDhCSSxpRkFDSSxXQUNBLGNBQ0EsV0FDQSxtQmtCeE5TLENsQnlOVCxRRDI4QlIsQ2tCcnBDSSxzSkFFSSx1QkFDQSx3QkFDQSxrQkFDQSxNQUNBLE9BQ0EsaUJBQ0EsdUJsQjJwQ1IsQ0M5OUJJLDZCQUNJLFdBQ0EsY0FDQSxXQUNBLGtCa0J2TlUsQ2xCd05WLFFEaStCUixDQ3QrQkksd0JBQ0ksV0FDQSxjQUNBLFdBQ0EsbUJrQnJOSyxDbEJzTkwsUUR5K0JSLENvQm50Q0EsS0FDSSxxQkFDQSxzQkFDQSxhQUNBLGtCQUNBLGVBQ0EsY0FDQSxhQUNBLFlBQ0EsZ0JBQ0EsNkRBQ0EsbUJuQnVIUSxlQVFBLHlKbUIzSFIscUNBQ0Esb0JBQ0EsbUVBQ0EsZ0JwQjJ0Q0osQ096dENnQixxQ2FwQmhCLEtuQmtJWSxnQkFRQSx1Q21CcEhKLGdCcEI4dENOLENBQ0YsQ29CM3RDQSxjQUNJLHdCQUNBLGlDQUNBLDZHcEI4dENKLENDN3VDUSxxQkFDSSxvQm1CaUJKLCtCcEIrdENOLENBQ0YsQ0MzdUNRLG9CQUNJLG9CbUJVSiwrQnBCb3VDTixDQUNGLENPanZDZ0IscUNhTWhCLGNuQndHWSxlQVFBLGVEZ29DVixDQUNGLENvQm51Q0Esb0JBQ0kseUJBQ0Esd0JBQ0EsaUJBQ0EsbUxwQnN1Q0osQ0Nwd0NRLHFCQUNJLDBCbUJpQ0osaUNwQnN1Q04sQ0FDRixDQ2x3Q1Esb0JBQ0ksMEJtQjBCSixpQ3BCMnVDTixDQUNGLENvQnZ1Q0Esb0JBQ0ksdUNBQ0Esd0JBQ0EsZ0JwQjB1Q0osQ3FCaHpDQSxNQUNJLGlDQUNBLCtFQUNBLHVEQUNBLHFDQUNBLDBCQUNBLDZCQUNBLHNFQUNBLHdmckJzekNKLENxQm56Q0ksU0FDSSxjckJxekNSLENxQmx6Q0ksUUFDSSxjckJvekNSLENDeHlDUSxxQkFDSSxZb0JUSixzRUFDQSxvREFDQSx3ZnJCb3pDTixDQUNGLENDeHlDUSxvQkFDSSxZb0JoQkosc0VBQ0Esb0RBQ0Esd2ZyQjJ6Q04sQ0FDRixDcUJ0ekNBLGtCQUNJLGdCckJ5ekNKLENxQnR6Q0EsWUFDSSxzQkFDQSw4QnJCeXpDSixDcUJ0ekNBLFlwQjJHWSxlQVFBLGdCb0JqSFIsaUJyQjB6Q0osQ3FCdnpDQSxhcEJzR1ksa0JBUUEsOEtEa3RDWixDT3gwQ2dCLHFDY2FoQixZcEJpR1ksZ0JBUUEsc0NEeXRDVixDQUNGLENxQjd6Q0EsYUFDSSxrQkFDQSxnQkFDQSxpQ0FDQSx3RkFDQSw0Q0FDQSxnQkFDQSxhQUNBLDJCQUNBLHNCQUNBLCtEckJnMENKLENxQjl6Q0ksK0JBQ0ksYUFDQSxZQUNBLDBCQUNBLDhDckJnMENSLENxQjd6Q0ksaUJBQ0ksWUFDQSxvREFDQSwyYXJCK3pDUixDQzExQ1EscUJvQmdDQSw2QkFDSSxXQUNBLG1EckI2ekNWLENBQ0YsQ0N6MUNRLG9Cb0J5QkEsNkJBQ0ksV0FDQSxtRHJCbTBDVixDQUNGLENxQi96Q0EsV0FDSSxhckJtMENKLENzQi81Q0EsaUJENkZJLGlCckJ1MENKLENzQnA2Q0EsTUFDSSxnQ3RCbTZDSixDTzkzQ2dCLHFDZXRDaEIsTUFLUSxNQUNBLG9CQUNBLE9BQ0EsUUFDQSxjdEJtNkNOLENBQ0YsQ3NCaDZDQSxpQkFDSSxpQ0FDQSwrRUFDQSxnQkFDQSxtQnRCbTZDSixDTzk0Q2dCLHFDZXpCaEIsaUJBT1EsZ0J0Qm82Q04sQ0FDRixDc0JqNkNBLGFyQm1NSSxrQkFDQSxNQUNBLE9BQ0EsU0FDQSxPRGt1Q0osQ3NCdDZDSSxpQkFDSSxVdEJ3NkNSLEN1Qmg4Q0EsT0FDSSxxQnZCczhDSixDdUJwOENJLG9CdEI2SVEsa0JBUUEsdUNzQjlJSiw0QnZCbThDUixDdUJoOENJLDhCQUdJLHVCdkJzOENSLEN1QnA4Q1Esb0NBQ0ksbUJ2Qnc4Q1osQ3VCcDhDSSxVQUNJLHVCdkJzOENSLEN1Qm44Q0ksVUFDSSxldkJxOENSLEN1Qmw4Q0ksVUFDSSxnQkFDQSxZQUNBLDZCdkJvOENSLEN1Qmo4Q0ksU0FDSSx1QnZCbThDUixDT3Y4Q2dCLHFDZ0JRUixvQnRCc0dJLG1CQVFBLHFDRHcxQ1YsQ3VCajhDTSxVdEJpR0ksa0JBUUEsc0NENjFDVixDdUJsOENNLDhCdEI2RkksZUFRQSxlRG0yQ1YsQ0FDRixDQ2xpQ1EsY0FHUSxhRHNpQ2hCLENDemlDUSxZQUdRLGFEMGlDaEIsQ0M3aUNRLFlBR1EsYUQ4aUNoQixDQ2pqQ1EsaUJBR1EsYURrakNoQixDQ3JqQ1EsZ0JBR1EsYURzakNoQixDQ3pqQ1EsWUFHUSx3QkQwakNoQixDQzdqQ1EsaUJBR1Esd0JEOGpDaEIsQ0Nqa0NRLFVBR1Esd0JEa2tDaEIsQ0Nya0NRLGdCQUdRLG9DRHNrQ2hCLENDemtDUSxlQUdRLHdCRDBrQ2hCLENDN2tDUSxTQUdRLHdCRDhrQ2hCLEN3QnppREksb0J2QnNKUSxzS0Q2NUNaLENPbmhEZ0IscUNObVpILHdCQTdSRCxzS0RvNkNWLENBQ0YsQ08zaERnQixtQ05tWkgsd0JBN1JELHNLRDY2Q1YsQ0FDRixDd0Jwa0RJLGtCdkJzSlEsd0pEbzdDWixDTzFpRGdCLHFDTm1aSCxzQkE3UkQsd0pEMDdDVixDQUNGLENPampEZ0IsbUNObVpILHNCQTdSRCx3SkRrOENWLENBQ0YsQ3dCemxESSxnQnZCOElRLGdCQVFBLHNDRHk4Q1osQ08vakRnQixxQ05tWkgsb0JBclNELGdCQVFBLHNDRCs4Q1YsQ0FDRixDT3RrRGdCLG1DTm1aSCxvQkFyU0QsZ0JBUUEsc0NEdTlDVixDQUNGLEN3QjltREksZ0J2QjhJUSxlQVFBLGVENjlDWixDT25sRGdCLHFDTm1aSCxvQkFyU0QsZUFRQSxlRGsrQ1YsQ0FDRixDT3psRGdCLG1DTm1aSCxvQkFyU0QsZUFRQSxlRHkrQ1YsQ0FDRixDd0Job0RJLGdCdkI4SVEsa0JBUUEsc0NEZy9DWixDT3RtRGdCLHFDTm1aSCxvQkFyU0Qsa0JBUUEsc0NEcy9DVixDQUNGLENPN21EZ0IsbUNObVpILG9CQXJTRCxrQkFRQSxzQ0Q4L0NWLENBQ0YsQ3dCcnBESSxnQnZCOElRLG1CQVFBLHFDRHFnRFosQ08zbkRnQixxQ05tWkgsb0JBclNELG1CQVFBLHFDRDJnRFYsQ0FDRixDT2xvRGdCLG1DTm1aSCxvQkFyU0QsbUJBUUEscUNEbWhEVixDQUNGLEN3QjFxREksZ0J2QjhJUSxtQkFRQSxxQ0QwaERaLENPaHBEZ0IscUNObVpILG9CQXJTRCxtQkFRQSxxQ0RnaURWLENBQ0YsQ092cERnQixtQ05tWkgsb0JBclNELG1CQVFBLHFDRHdpRFYsQ0FDRixDd0IvckRJLGdCdkI4SVEsbUJBUUEsd0NEK2lEWixDT3JxRGdCLHFDTm1aSCxvQkFyU0QsbUJBUUEsd0NEcWpEVixDQUNGLENPNXFEZ0IsbUNObVpILG9CQXJTRCxtQkFRQSx3Q0Q2akRWLENBQ0YsQ3dCcHRESSxnQnZCOElRLG1CQVFBLHdDRG9rRFosQ08xckRnQixxQ05tWkgsb0JBclNELG1CQVFBLHdDRDBrRFYsQ0FDRixDT2pzRGdCLG1DTm1aSCxvQkFyU0QsbUJBUUEsd0NEa2xEVixDQUNGLEN3Qnp1REksaUJ2QjhJUSxtQkFRQSxnQkR3bERaLENPOXNEZ0IscUNObVpILHFCQXJTRCxtQkFRQSxnQkQ2bERWLENBQ0YsQ09wdERnQixtQ05tWkgscUJBclNELG1CQVFBLGdCRG9tRFYsQ0FDRixDeUIxdkRBLGlDQUVJLGtCQUNBLFVBQ0EsV0FDQSxVQUNBLFlBQ0EsZ0JBQ0EsbUJBQ0EsbUJBQ0EsY3pCZ3dESixDeUI3dkRBLFlBQ0ksaUJ6Qmd3REosQzBCdHdEQSxLQUNJLFMxQjR3REosQzBCendEQSxPQUNJLFcxQjR3REosQ0NweENZLFFBRUkscUNEeXhDaEIsQ0MzeENZLFFBRUksVUQ2eENoQixDQy94Q1ksU0FFSSwwQ0RpeUNoQixDQ255Q1ksUUFFSSwwQ0RxeUNoQixDQ3Z5Q1ksUUFFSSxnRER5eUNoQixDQzN5Q1ksUUFFSSxnREQ2eUNoQixDQy95Q1ksUUFFSSwwQ0RpekNoQixDQ256Q1ksUUFFSSwwQ0RxekNoQixDQ3Z6Q1ksUUFFSSwwQ0R5ekNoQixDQzN6Q1ksUUFFSSwwQ0Q2ekNoQixDQy96Q1ksUUFFSSwwQ0RpMENoQixDQ24wQ1ksUUFFSSwwQ0RxMENoQixDQ3YwQ1ksUUFFSSwwQ0R5MENoQixDQzMwQ1ksVUFFSSw2Q0Q2MENoQixDQy8wQ1ksUUFFSSw0Q0RpMUNoQixDQ24xQ1ksUUFFSSwwQ0RxMUNoQixDQ3YxQ1ksUUFFSSw0Q0R5MUNoQixDQzMxQ1ksUUFFSSwwQ0Q2MUNoQixDQy8xQ1ksUUFFSSw0Q0RpMkNoQixDQ24yQ1ksUUFFSSwwQ0RxMkNoQixDQ3YyQ1ksUUFFSSw0Q0R5MkNoQixDQzMyQ1ksU0FFSSwwQ0Q2MkNoQixDQy8yQ1ksU0FFSSw2Q0RpM0NoQixDT3oxRGdCLHFDTnFmUSxZQUVJLHFDRHUyQzFCLENDejJDc0IsWUFFSSxVRDIyQzFCLENDNzJDc0IsYUFFSSwwQ0QrMkMxQixDQ2ozQ3NCLFlBRUksMENEbTNDMUIsQ0NyM0NzQixZQUVJLGdERHUzQzFCLENDejNDc0IsWUFFSSxnREQyM0MxQixDQzczQ3NCLFlBRUksMENEKzNDMUIsQ0NqNENzQixZQUVJLDBDRG00QzFCLENDcjRDc0IsWUFFSSwwQ0R1NEMxQixDQ3o0Q3NCLFlBRUksMENEMjRDMUIsQ0M3NENzQixZQUVJLDBDRCs0QzFCLENDajVDc0IsWUFFSSwwQ0RtNUMxQixDQ3I1Q3NCLFlBRUksMENEdTVDMUIsQ0N6NUNzQixjQUVJLDZDRDI1QzFCLENDNzVDc0IsWUFFSSw0Q0QrNUMxQixDQ2o2Q3NCLFlBRUksMENEbTZDMUIsQ0NyNkNzQixZQUVJLDRDRHU2QzFCLENDejZDc0IsWUFFSSwwQ0QyNkMxQixDQzc2Q3NCLFlBRUksNENEKzZDMUIsQ0NqN0NzQixZQUVJLDBDRG03QzFCLENDcjdDc0IsWUFFSSw0Q0R1N0MxQixDQ3o3Q3NCLGFBRUksMENEMjdDMUIsQ0M3N0NzQixhQUVJLDZDRCs3QzFCLENBQ0YsQ092N0RnQixtQ05xZlEsWUFFSSxxQ0RvOEMxQixDQ3Q4Q3NCLFlBRUksVUR3OEMxQixDQzE4Q3NCLGFBRUksMENENDhDMUIsQ0M5OENzQixZQUVJLDBDRGc5QzFCLENDbDlDc0IsWUFFSSxnRERvOUMxQixDQ3Q5Q3NCLFlBRUksZ0REdzlDMUIsQ0MxOUNzQixZQUVJLDBDRDQ5QzFCLENDOTlDc0IsWUFFSSwwQ0RnK0MxQixDQ2wrQ3NCLFlBRUksMENEbytDMUIsQ0N0K0NzQixZQUVJLDBDRHcrQzFCLENDMStDc0IsWUFFSSwwQ0Q0K0MxQixDQzkrQ3NCLFlBRUksMENEZy9DMUIsQ0NsL0NzQixZQUVJLDBDRG8vQzFCLENDdC9Dc0IsY0FFSSw2Q0R3L0MxQixDQzEvQ3NCLFlBRUksNENENC9DMUIsQ0M5L0NzQixZQUVJLDBDRGdnRDFCLENDbGdEc0IsWUFFSSw0Q0RvZ0QxQixDQ3RnRHNCLFlBRUksMENEd2dEMUIsQ0MxZ0RzQixZQUVJLDRDRDRnRDFCLENDOWdEc0IsWUFFSSwwQ0RnaEQxQixDQ2xoRHNCLFlBRUksNENEb2hEMUIsQ0N0aERzQixhQUVJLDBDRHdoRDFCLENDMWhEc0IsYUFFSSw2Q0Q0aEQxQixDQUNGLEMyQnZqRUEsYUFDSSxZM0IwakVKLEMyQnRqRUksNkJBQ0ksY0FDQSxlQUNBLFlBQ0EsTzNCeWpFUixDMkJ0akVRLG1DMUIwR0osa0JBQ0EsZ0JBQ0EsbUJBQ0EsV0FDQSxVQUNBLHNCQUNBLFVBQ0EsUUQrOERKLEMyQjVqRVEsbUNBQ0kscUJBQ0EsYUFDQSxjQUNBLGtCQXRCUSxDQXVCUixtQkFDQSxZQUNBLGNBQ0Esa0IzQjhqRVosQzJCM2pFUSxpREFDSSwrQzNCNmpFWixDMkIzakVZLHVEMUJ3R1IsVUFENEQsQ0FFNUQsb0JBRm9CLENBR3BCLGlCQUh3QyxDMEJyRzVCLE1BQ0EsT0FDQSxhQUNBLGNBQ0EsbUJBQ0EseUJBQ0EsNkMzQitqRWhCLEMyQjNqRVEsb0NBQ0ksYzNCNmpFWixDMkJ6akVZLGtMQUdJLFUzQnlqRWhCLEMyQm5qRUksOEJBQ0ksZUFDQSxNQUNBLE9BQ0EsV0FDQSxZQUVBLG9CQUNBLFVBQ0EseUczQm9qRVIsQzJCbGpFUSx5Q0FDSSxXM0JvakVaLEMyQmhqRUksd0NBQ0ksYUFDQSxXM0JrakVSLEMyQmhqRVEsNENBQ0ksb0NBQ0EseUNBQ0EsMENBQ0EsVzNCa2pFWixDTzFsRWdCLHNDb0I0Q1osMEJBRVEsWTNCZ2pFVixDQUNGLENPL2xFZ0IsNkRvQmtEWiwwQkFFUSxZM0IraUVWLENBQ0YsQ096bUVnQixtQ29CNkRaLDBCQUVRLFkzQjhpRVYsQ0FDRixDMkIxaUVJLDZCQUNJLGVBQ0EsTUFDQSxPQUNBLFFBQ0EsU0FFQSwwQkFDQSxvQkFDQSxVQUNBLDBHQUNBLG9CM0IyaUVSLEMyQnRpRVEsMkZBRUksUzNCd2lFWixDQWxoRUEsTzRCbEpBLGM1QmtKQSxXNEJsSkEsaUI1QmtKQSxXNEJsSkEsaUI1QmtKQSxTNEJsSkEsZTVCa0pBLFU0QmxKQSw2QjVCa0pBLFc0QmxKQSxRNUJrSkEsZTRCbEpBLFE1QmtKQSxRNEJsSkEsSzVCa0pBLE00QmxKQSxTNUJrSkEsTzRCbEpBLFU1QmtKQSxVNEJsSkEsbUM1QmtKQSxVNEJsSkEsbUM1QmtKQSxVNEJsSkEsbUM1QmtKQSxVNEJsSkEsbUM1QmtKQSxVNEJsSkEsbUM1QmtKQSxVNEJsSkEsbUM1QmtKQSxVNEJsSkEsbUM1QmtKQSxjNEJsSkEsMkI1QmtKQSxhNEJsSkEseUI1QmtKQSxhNEJsSkEseUI1QmtKQSxhNEJsSkEseUI1QmtKQSxjNEJsSkEsMkI1QmtKQSxjNEJsSkEsbUI1QmtKQSxjNEJsSkEsbUI1QmtKQSxjNEJsSkEsbUI1QmtKQSxlNEJsSkEsb0I1QmtKQSxjNEJsSkEsbUI1QmtKQSxjNEJsSkEsZ0I1QmtKQSxjNEJsSkEsZ0I1QmtKQSxTNEJsSkEsb0I1QmtKQSxpQjRCbEpBLG9DNUJrSkEsaUI0QmxKQSxvQzVCa0pBLFM0QmxKQSx3RDVCa0pBLFU0QmxKQSwwRDVCa0pBLFU0QmxKQSxlNUJrSkEsUzRCbEpBLDBCNUJrSkEsVTRCbEpBLG1DNUJrSkEsVTRCbEpBLDJCNUJrSkEsVTRCbEpBLDJCNUJrSkEsUzRCbEpBLDZCNUJrSkEsUzRCbEpBLDBCNUJrSkEsYzRCbEpBLGU1QmtKQSxVNEJsSkEsMkI1QmtKQSxTNEJsSkEsMEI1QmtKQSxlNEJsSkEsZ0I1QmtKQSxTNEJsSkEsMkI1QmtKQSxRNEJsSkEsYTVCa0pBLGU0QmxKQSxvQjVCa0pBLE80QmxKQSxnQzVCa0pBLE80QmxKQSxZNUJrSkEsUzRCbEpBLFk1QmtKQSxlNEJsSkEsaUI1QmtKQSxTNEJsSkEsVzVCa0pBLDJCNEJsSkEsdUI1QmtKQSxXNEJsSkEsOEU1QmtKQSxjNEJsSkEsZ0I1QmtKQSxjNEJsSkEsOEM1QmtKQSxlNEJsSkEsMkM1QmtKQSxnQjRCbEpBLDZDNUJrSkEsYzRCbEpBLDZDNUJrSkEsaUI0QmxKQSw4QzVCa0pBLGtCNEJsSkEsc0Q1QmtKQSxpQjRCbEpBLDRCNUJrSkEsb0I0QmxKQSxrQjVCa0pBLFc0QmxKQSxrQzVCa0pBLFM0QmxKQSxxQjVCa0pBLFU0QmxKQSxzRDVCa0pBLFM0QmxKQSwwRDVCa0pBLFM0QmxKQSwwRDVCa0pBLFU0QmxKQSw0RDVCa0pBLFM0QmxKQSwyQjVCa0pBLFU0QmxKQSwrQjVCa0pBLFM0QmxKQSwyQjVCa0pBLE80QmxKQSxhNUJrSkEsVTRCbEpBLDRCNUJrSkEsUzRCbEpBLDhCNUJrSkEsUzRCbEpBLDhCNUJrSkEsVTRCbEpBLCtCNUJrSkEsYTRCbEpBLHVCNUJrSkEsYTRCbEpBLHVCNUJrSkEsb0I0QmxKQSxXNUJrSkEsQ0FsSkEsMEI0QkFBLG9vRDVCQUEsd0I0QkFBLDZUIiwiZmlsZSI6ImNzcy9tYWluLm1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICNBTklNQVRJT05TXG4vL1xcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5Aa2V5ZnJhbWVzIGhpZGUge1xuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhkZXRhaWxzLWZvbGQtb3V0KSB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwJSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIDIwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNQUlOXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqXG4gKiBSRUZFUkVOQ0UgYW5kIEdVSURFTElORVNcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9IdW1hbnMtTWFjaGluZXMvc3R5bGVndWlkZS90cmVlL2RldmVsb3AvaHRtbC1jc3NcbiAqXG4gKlxuICogQ09OVEVOVFNcbiAqXG4gKiBTRVRUSU5HU1xuICogRGVmaW5lIHRoZSBncm91bmQ6IERlc2lnbiB0b2tlbnMsIHNpemVzLCBvdGhlciB2YXJzXG4gKiBObyBDU1Mgb3V0cHV0IGhlcmVcbiAqXG4gKiBUT09MU1xuICogR2xvYmFsbHkgdXNlZCBtaXhpbnMgYW5kIGZ1bmN0aW9uc1xuICogTm8gQ1NTIG91dHB1dCBoZXJlXG4gKlxuICogR0VORVJJQ1xuICogR2xvYmFsIHJlc2V0cyBhbmQgbm9ybWFsaXplIHN0eWxlcywgYm94LXNpemluZyBkZWZpbml0aW9uLCBldGNcbiAqIEZpcnN0IGxheWVyIG9mIHRoZSB0cmlhbmdsZSB0aGF0IGdlbmVyYXRlcyBDU1NcbiAqXG4gKiBWRU5ET1JcbiAqIEluY2x1ZGVzIG9mIHZlbmRvciBzdHlsZXMgZm9yIHRoaXJkIHBhcnR5IGNvbXBvbmVudHNcbiAqIFRyeSB0byBpbmNsdWRlIG9ubHkgbG93IHNwZWNpZmljaXR5IHN0eWxlc1xuICogQWRkIGlmIG5lZWRlZFxuICpcbiAqIEVMRU1FTlRTXG4gKiBTdHlsaW5nIGZvciBiYXJlIEhUTUwgZWxlbWVudHMgKGxpa2UgSDEsIEEsIGhlYWRlciwgZm9vdGVyLCDigKYpXG4gKiBSZWRlZmluZSBicm93c2VyIHByZXNldHMgdG8gdGhlIHByb2plY3RzIG5lZWRzIGFuZCBwdXJzdWVkIGRlc2lnbiBzeXN0ZW1cbiAqXG4gKiBPQkpFQ1RTXG4gKiBDbGFzcy1iYXNlZCBzZWxlY3RvcnMgd2hpY2ggZGVmaW5lIGNvbXBvc2l0aW9uIGFuZCB1bmRlY29yYXRlZCBkZXNpZ24gcGF0dGVybnMuXG4gKiBBbiBvYmplY3QgKENVQkUgQ1NTIE1ldGhvZG9sb2d5OiBVdGlsaXR5KSBkb2VzIG9uZSBqb2IgYW5kIGRvZXMgdGhhdCBqb2Igd2VsbC5cbiAqXG4gKiBDT01QT05FTlRTXG4gKiBTcGVjaWZpYyBVSSBjb21wb25lbnRzIHdoaWNoIGFyZSB0byBjb21wbGV4IHRvIGJlIGRlZmluZWQgYnkgYXRvbWljIENTUyB1dGlsaXRpZXNcbiAqIFVzZXMgQkVNIGZvciBuYW1pbmdcbiAqXG4gKiBTQ09QRVNcbiAqIFN0eWxpbmcgZm9yIGJhcmUgSFRNTCBlbGVtZW50cyBpbiBhIHNjb3BlZCBjb250ZXh0XG4gKiBFZy4gZm9yIE1hcmtkb3duIG91dHB1dCBmcm9tIENNU1xuICpcbiAqIFVUSUxJVElFU1xuICogQXRvbWljIENTUyB1dGlsaXRpZXNcbiAqIEluY2x1ZGVkIGxhc3QgdG8gYWxzbyBiYSBhYmxlIHRvIHNlcnZlIGFzIGNvbXBvbmVudCBtb2RpZmllcnNcbiAqXG4gKiBERVZFTE9QTUVOVFxuICogRGVidWdnaW5nIGFuZCBEZXZlbG9wbWVudCBjb21wb25lbnRzIGFuZCBzdHlsZXNcbiAqXG4gKi9cblxuXG4vLyBTRVRUSU5HU1xuQGltcG9ydCBcInNldHRpbmdzL3NldHRpbmdzLnRva2Vuc1wiOyAvLyB0b2RvOiBhZGQgdG9rZW5zXG5AaW1wb3J0IFwic2V0dGluZ3Mvc2V0dGluZ3MuYnJlYWtwb2ludHNcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9zZXR0aW5ncy51aVwiO1xuQGltcG9ydCBcInNldHRpbmdzL3NldHRpbmdzLnotaW5kZXhcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9zZXR0aW5ncy52YXJzXCI7XG5cbi8vIFRPT0xTXG5AaW1wb3J0IFwidG9vbHMvdG9vbHMuZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwidG9vbHMvdG9vbHMubWl4aW5zXCI7XG5AaW1wb3J0IFwidG9vbHMvdG9vbHMuYW5pbWF0aW9uc1wiO1xuXG4vLyBHRU5FUklDXG5AaW1wb3J0IFwiZ2VuZXJpYy9nZW5lcmljLmJveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJnZW5lcmljL2dlbmVyaWMubm9ybWFsaXplXCI7XG5AaW1wb3J0IFwiZ2VuZXJpYy9nZW5lcmljLnJlc2V0XCI7XG5cbi8vIFZFTkRPUlxuLy8gQWRkIFZlbmRvciBmaWxlcyBpZiBuZWVkZWRcblxuLy8gRUxFTUVOVFNcbkBpbXBvcnQgXCJlbGVtZW50cy9lbGVtZW50cy5mb250ZmFjZVwiO1xuQGltcG9ydCBcImVsZW1lbnRzL2VsZW1lbnRzLnJvb3RcIjtcbkBpbXBvcnQgXCJlbGVtZW50cy9lbGVtZW50cy5wYWdlXCI7XG5AaW1wb3J0IFwiZWxlbWVudHMvZWxlbWVudHMudHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcImVsZW1lbnRzL2VsZW1lbnRzLmxpbmtzXCI7XG5AaW1wb3J0IFwiZWxlbWVudHMvZWxlbWVudHMucXVvdGVzXCI7XG5AaW1wb3J0IFwiZWxlbWVudHMvZWxlbWVudHMuc2VjdGlvblwiO1xuQGltcG9ydCBcImVsZW1lbnRzL2VsZW1lbnRzLmRldGFpbHNcIjtcblxuLy8gT0JKRUNUU1xuLy8gQGltcG9ydCBcIm9iamVjdHMvb2JqZWN0cy5pY29uXCI7XG5AaW1wb3J0IFwib2JqZWN0cy9vYmplY3RzLmNvbnRhaW5lclwiO1xuQGltcG9ydCBcIm9iamVjdHMvb2JqZWN0cy5wYWdlLWdyaWRcIjtcbkBpbXBvcnQgXCJvYmplY3RzL29iamVjdHMuY2x1c3RlclwiO1xuQGltcG9ydCBcIm9iamVjdHMvb2JqZWN0cy5mbG93XCI7XG5AaW1wb3J0IFwib2JqZWN0cy9vYmplY3RzLm1lZGlhLWJveFwiO1xuXG4vLyBDT01QT05FTlRTXG4vLyBAaW1wb3J0IFwiY29tcG9uZW50cy9jb21wb25lbnRzLmN0YVwiOyAgICAgICAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuLy8gQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50cy50YWdcIjsgICAgICAgICAvLyBUT0RPIFNlZSBpZiB3ZSBuZWVkIHRoYXRcbi8vIEBpbXBvcnQgXCJjb21wb25lbnRzL2NvbXBvbmVudHMubG9nb1wiOyAgICAgICAgLy8gVE9ETyBTZWUgaWYgd2UgbmVlZCB0aGF0XG4vLyBAaW1wb3J0IFwiY29tcG9uZW50cy9jb21wb25lbnRzLmNvbnRhY3RcIjsgICAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuLy8gQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50cy5mb290ZXJcIjsgICAgICAvLyBUT0RPIFNlZSBpZiB3ZSBuZWVkIHRoYXRcbi8vIEBpbXBvcnQgXCJjb21wb25lbnRzL2NvbXBvbmVudHMuc2xpZGVyXCI7ICAgICAgLy8gVE9ETyBTZWUgaWYgd2UgbmVlZCB0aGF0XG4vLyBAaW1wb3J0IFwiY29tcG9uZW50cy9jb21wb25lbnRzLmludHJvXCI7ICAgICAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuLy8gQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50cy5jaGFsbGVuZ2VzXCI7ICAvLyBUT0RPIFNlZSBpZiB3ZSBuZWVkIHRoYXRcbi8vIEBpbXBvcnQgXCJjb21wb25lbnRzL2NvbXBvbmVudHMuc2VydmljZXNcIjsgICAgLy8gVE9ETyBTZWUgaWYgd2UgbmVlZCB0aGF0XG4vLyBAaW1wb3J0IFwiY29tcG9uZW50cy9jb21wb25lbnRzLm1ldGhvZFwiOyAgICAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuLy8gQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50cy5hYm91dFwiOyAgICAgICAvLyBUT0RPIFNlZSBpZiB3ZSBuZWVkIHRoYXRcbi8vIEBpbXBvcnQgXCJjb21wb25lbnRzL2NvbXBvbmVudHMubWFpblwiOyAgICAgICAgLy8gVE9ETyBTZWUgaWYgd2UgbmVlZCB0aGF0XG4vLyBAaW1wb3J0IFwiY29tcG9uZW50cy9jb21wb25lbnRzLmFydGljbGVcIjsgICAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50cy5idXR0b25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NvbXBvbmVudHMuY2FyZFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50cy5oZXJvXCI7XG5cbi8vIFNDT1BFU1xuQGltcG9ydCBcInNjb3Blcy9zY29wZXMucHJvc2VcIjtcblxuLy8gVVRJTElUSUVTXG4vLyBAaW1wb3J0IFwidXRpbGl0aWVzL3V0aWxpdGllcy5wYWRkaW5nXCI7ICAgICAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuLy8gQGltcG9ydCBcInV0aWxpdGllcy91dGlsaXRpZXMubWFyZ2luXCI7ICAgICAgICAvLyBUT0RPIFNlZSBpZiB3ZSBuZWVkIHRoYXRcbi8vIEBpbXBvcnQgXCJ1dGlsaXRpZXMvdXRpbGl0aWVzLmRpc3BsYXlcIjsgICAgICAgLy8gVE9ETyBTZWUgaWYgd2UgbmVlZCB0aGF0XG4vLyBAaW1wb3J0IFwidXRpbGl0aWVzL3V0aWxpdGllcy5wb3NpdGlvblwiOyAgICAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuLy8gQGltcG9ydCBcInV0aWxpdGllcy91dGlsaXRpZXMuZmxleFwiOyAgICAgICAgICAvLyBUT0RPIFNlZSBpZiB3ZSBuZWVkIHRoYXRcbi8vIEBpbXBvcnQgXCJ1dGlsaXRpZXMvdXRpbGl0aWVzLmFsaWdubWVudFwiOyAgICAgLy8gVE9ETyBTZWUgaWYgd2UgbmVlZCB0aGF0XG4vLyBAaW1wb3J0IFwidXRpbGl0aWVzL3V0aWxpdGllcy5saW5lLWJyZWFrc1wiOyAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuLy8gQGltcG9ydCBcInV0aWxpdGllcy91dGlsaXRpZXMuaGVpZ2h0XCI7ICAgICAgICAvLyBUT0RPIFNlZSBpZiB3ZSBuZWVkIHRoYXRcbi8vIEBpbXBvcnQgXCJ1dGlsaXRpZXMvdXRpbGl0aWVzLnRyYW5zZm9ybVwiOyAgICAgLy8gVE9ETyBTZWUgaWYgd2UgbmVlZCB0aGF0XG4vLyBAaW1wb3J0IFwidXRpbGl0aWVzL3V0aWxpdGllcy5zaGFkb3dcIjsgICAgICAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuLy8gQGltcG9ydCBcInV0aWxpdGllcy91dGlsaXRpZXMudGV4dFwiOyAgICAgICAgICAvLyBUT0RPIFNlZSBpZiB3ZSBuZWVkIHRoYXRcbi8vIEBpbXBvcnQgXCJ1dGlsaXRpZXMvdXRpbGl0aWVzLmJvcmRlclwiOyAgICAgICAgLy8gVE9ETyBTZWUgaWYgd2UgbmVlZCB0aGF0XG4vLyBAaW1wb3J0IFwidXRpbGl0aWVzL3V0aWxpdGllcy50cmFuc2l0aW9uc1wiOyAgIC8vIFRPRE8gU2VlIGlmIHdlIG5lZWQgdGhhdFxuQGltcG9ydCBcInV0aWxpdGllcy91dGlsaXRpZXMuY29sb3JcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvdXRpbGl0aWVzLnRleHQtc3R5bGVcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvdXRpbGl0aWVzLmFjY2Vzc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvdXRpbGl0aWVzLnotaW5kZXhcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvdXRpbGl0aWVzLndpZHRoXCI7ICBcblxuLy8gSGFja3Ncbi8vIEhhY2tzIGdvIGhlcmVcblxuLy8gSGVscGVyXG4vLyBAaW1wb3J0IFwiaGVscGVyL2hlbHBlci5zY3JvbGxiYXItbWVhc3VyZVwiO1xuXG4vLyBERVZFTE9QTUVOVFxuQGltcG9ydCBcImRldmVsb3BtZW50L2RldmVsb3BtZW50LmdyaWQtc2hvd1wiO1xuXG4vLyBUQUlMV0lORFxuLy8gQHRhaWx3aW5kIGJhc2U7IC8vIFdlIGFyZSBub3QgdXNpbmcgVGFpbHdpbmQgYmFzZVxuLy8gQHRhaWx3aW5kIGNvbXBvbmVudHM7IC8vIFdlIG5vdCB1c2luZyB0YWlsd2luZCBjb21wb25lbnRzXG5AdGFpbHdpbmQgdXRpbGl0aWVzOyIsIkB1c2UgXCJzYXNzOnN0cmluZ1wiO1xuQHVzZSBcInNhc3M6c2VsZWN0b3JcIjtcbkB1c2UgXCJzYXNzOmxpc3RcIjtcbkB1c2UgXCJzYXNzOm1ldGFcIjtcblxuLy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAjTUlYSU5TXG4vL1xcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIEdsb2JhbCBtaXhpbnMgYXZhaWxhYmxlIHRvIHRoZSBlbnRpcmUgcHJvamVjdC5cblxuLy8gTWl4aW4gZm9yIGlucHV0IHBsYWNlaG9sZGVyIHN0eWxpbmdcbkBtaXhpbiBwbGFjZWhvbGRlcigpIHtcbiAgICA6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGNvbnRlbnRcbiAgICB9XG59XG5cbi8vIE1peGluIGZvciBuZXN0ZWQgaW5wdXQgcGxhY2Vob2xkZXIgc3R5bGluZ1xuQG1peGluIHBsYWNlaG9sZGVyLW5lc3RlZCgpIHtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50XG4gICAgfVxufVxuXG4vLyBNaXhpbiBmb3IgbW9iaWxlIHNhZmUgaG92ZXIgZWZmZWN0c1xuLy9cbi8vIEBwYXJhbSB7c3RyaW5nfSAkZ3JvdXAtaG92ZXIgLSBDU1MgY2xhc3Mgb2YgaG92ZXJlZCBwYXJlbnRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkY2xhc3MgLSBBZGRpdGlvbmFsIENTUyBjbGFzcyB0byBtYXRjaFxuQG1peGluIGhvdmVyKCRncm91cC1ob3ZlcjogJycsICRjbGFzczogJycpIHtcbiAgICBAaWYgJGdyb3VwLWhvdmVyID09ICcnIHtcbiAgICAgICAgLy8gSG92ZXIgZm9yIGhvdmVyXG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNob3cgZm9jdXMgc3R5bGUgZm9yIG5vbi1ob3ZlciBkZXZpY2VzXG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRjbGFzcyAhPSAnJyB7XG4gICAgICAgICAgICAmI3skY2xhc3N9IHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBIb3ZlciBmb3IgaG92ZXJcbiAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgICAgICN7JGdyb3VwLWhvdmVyfTpob3ZlciAmIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNob3cgZm9jdXMgc3R5bGUgZm9yIG5vbi1ob3ZlciBkZXZpY2VzXG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICAgICAgICN7JGdyb3VwLWhvdmVyfTpmb2N1cyAmIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkY2xhc3MgIT0gJycge1xuICAgICAgICAgICAgI3skZ3JvdXAtaG92ZXJ9I3skY2xhc3N9ICYge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBNaXhpbiBmb3Igbm8tdG91Y2ggc3R5bGVzXG5AbWl4aW4gbm8tdG91Y2goKSB7XG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBNaXhpbiBmb3IgYXBwbHlpbmcgbW9iaWxlIHNwZWNpZmljIGNzc1xuQG1peGluIG5vLWhvdmVyKCkge1xuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBIaWUgc2Nyb2xsYmFycyBvbiBpb3MgYW5kIG90aGVyIHdlYmtpdHNcbkBtaXhpbiBoaWRlLXNjcm9sbGJhcnMoKSB7XG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBoZWlnaHQ6IDA7IC8qIHJlbW92ZSBzY3JvbGxiYXIgc3BhY2UgKi9cbiAgICAgICAgd2lkdGg6IDA7IC8qIHJlbW92ZSBzY3JvbGxiYXIgc3BhY2UgKi9cbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IC8qIG9wdGlvbmFsOiBqdXN0IG1ha2Ugc2Nyb2xsYmFyIGludmlzaWJsZSAqL1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgTWV0aG9kIGZvciBrZXlmcmFtZXNcbi8vLyBOZWVkZWQgaGVyZSBzaW5jZSBtaXhpbnMgbmVlZCBhbmltYXRpb25zIGFuZCB0aGVyZWZvcmUgY29tZSBuZXh0IGluIG1haW5zLnNjc3Ncbi8vL1xuLy8vIEBjb250ZW50XG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRuYW1lIC0gVGhlIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBIaWRlIEVsZW1lbnRzIFZpc3VhbGx5IHdpdGhvdXQgbG9vc2luZyBhY2Nlc3NpYmlsaXR5XG4vLyBSZWY6IGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vcGxhY2VzLWl0cy10ZW1wdGluZy10by11c2UtZGlzcGxheS1ub25lLWJ1dC1kb250L1xuQG1peGluIGhpZGUoKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB3aWR0aDogMXB4O1xuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4vLyBNaXhpbiBmb3IgcHNldWRvIGVsZW1lbnRzXG4vL1xuLy8gQHBhcmFtIHtzdHJpbmd9ICRkaXNwbGF5IFtpbmxpbmUtYmxvY2tdIC0gSG93IHRvIGRpc3BsYXkgdGhlIHBzZXVkbyBlbGVtZW50XG4vLyBAcGFyYW0ge3N0cmluZ30gJHBvcyAgICAgW2Fic29sdXRlXSAgICAgLSBQb3NpdGlvbiBvZiB0aGUgcHNldWRvIGVsZW1lbnRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkY29udGVudCBbZW1wdHldICAgICAgICAtIEluaXRpYWwgY29udGVudCB0byBzZXRcbkBtaXhpbiBwc2V1ZG8oJGRpc3BsYXk6IGlubGluZS1ibG9jaywgJHBvczogYWJzb2x1dGUsICRjb250ZW50OiAnJykge1xuICAgIGNvbnRlbnQ6ICRjb250ZW50O1xuICAgIGRpc3BsYXk6ICRkaXNwbGF5O1xuICAgIHBvc2l0aW9uOiAkcG9zO1xufVxuXG4vLyBNaXhpbnMgdG8gaGVscCBnZW5lcmF0aW5nIHRleHQgc3R5bGVzXG5AbWl4aW4gdGV4dC1zdHlsZSgkbmFtZSkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkdGV4dC1zdHlsZXMsICRuYW1lKSB7XG5cbiAgICAgICAgLy8gR2V0IHNpemUgZnJvbSAkc2l6ZS1zY2FsZSBpZiAkbmFtZSBtYXRjaGVzIGEgc2l6ZSBoZXJlXG4gICAgICAgIEBpZiBtYXAtaGFzLWtleSgkc2l6ZS1zY2FsZSwgJG5hbWUpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2l6ZS1zY2FsZSwgJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IGRlZmluZWQgcHJvcGVydGllc1xuICAgICAgICAkc3R5bGU6IG1hcC1nZXQoJHRleHQtc3R5bGVzLCAkbmFtZSk7XG5cbiAgICAgICAgLy8gQWRkIGRlZmluZWQgcHJvcGVydGllc1xuICAgICAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkc3R5bGUge1xuICAgICAgICAgICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQHdhcm4gXCJVbmtub3duIGAjeyRuYW1lfWAgaW4gJHRleHQtc3R5bGVzXCI7XG4gICAgfVxufVxuXG4vLyBNaXhpbiBmb3IgZGVmaW5pbmcgdGV4dCBjb2xvcnMgd2l0aCB2YXJpYWJsZXNcbkBtaXhpbiB0ZXh0LWNvbG9yKCRuYW1lKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCR0ZXh0LWNvbG9ycywgJG5hbWUpIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXRleHQtI3skbmFtZX0pO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybiBcIlVua25vd24gYCN7JG5hbWV9YCBpbiAkdGV4dC1jb2xvcnNcIjtcbiAgICB9XG59XG5cbi8vIE1peGluIGZvciBkZWZpbmluZyBiYWNrZ3JvdW5kIGNvbG9ycyB3aXRoIHZhcmlhYmxlc1xuQG1peGluIGJnLWNvbG9yKCRuYW1lKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRiZy1jb2xvcnMsICRuYW1lKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLSN7JG5hbWV9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQHdhcm4gXCJVbmtub3duIGAjeyRuYW1lfWAgaW4gJGJnLWNvbG9yc1wiO1xuICAgIH1cbn1cblxuLy8gTWl4aW4gZm9yIGhpZGRpbmcgYm9keSBvdmVyZmxvd1xuLy8gVXNlZCBmb3IgbW9kYWxzIGV0Y1xuQG1peGluIGhpZGUtYm9keS1vdmVyZmxvdygkY2xhc3MpIHtcbiAgICBib2R5LiN7JGNsYXNzfSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zY3JvbGxiYXItd2lkdGgpOyAvLyBQcmV2ZW50IGp1bXBpbmcgYXMgc2Nyb29sYmFyIHRvZ2dsZXNcbiAgICB9XG5cbiAgICAvLyBwcmV2ZW50IGp1bXBzIG9mIGZpeGVkIGVsZW1lbnRzXG4gICAgLy8gYXMgYm9keSBzY3JvbGxiYXIgZGlzYXBwZWFyc1xuICAgIC4jeyRjbGFzc30ge1xuICAgICAgICAubmF2aWNvbixcbiAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgcmlnaHQ6IHZhcigtLXNjcm9sbGJhci13aWR0aCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE1peGluIGZvciBwcm9ncmVzc2l2ZSBlbmhhbmNlIHRyYW5zaXRpb25zXG5AbWl4aW4gZnVsbC1leHBlcmllbmNlKCRib2R5LWNsYXNzOiBmYWxzZSkge1xuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgICAgICBAc3VwcG9ydHMgKC0tY3NzOiB2YXJpYWJsZSkgYW5kIChtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMCksIHJnYmEoMCwgMCwgMCwgMSkpKSB7IC8vIGxpbWl0IHRvIGNzcyBwcm9wZXJ0aWVzXG4gICAgICAgICAgICBAaWYgJGJvZHktY2xhc3Mge1xuICAgICAgICAgICAgICAgIC5uby1lZGdlLm5vLXRvdWNoICN7JGJvZHktY2xhc3N9ICYgeyAvLyBvbmx5IHNob3cgb24gbW9kZXJuIG5vbi10b3VjaCBkZXZpY2VzXG4gICAgICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIC5uby1lZGdlLm5vLXRvdWNoICYgeyAvLyBvbmx5IHNob3cgb24gbW9kZXJuIG5vbi10b3VjaCBkZXZpY2VzXG4gICAgICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gTWl4aW4gZm9yIGVsZW1lbnRzIHRvIGZpdCBpbnNpZGUgd3JhcHBlclxuQG1peGluIGNvdmVyLWJveCgpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4vLyBTaW1wbGUgdHJ1bmNhdGlvbiBtaXhpbiB0byBjdXQgb2ZmIHRleHQgdXNpbmcgYW4gZWxsaXBzaXMgYWZ0ZXIgYSBjZXJ0YWluXG4vLyB3aWR0aC5cbi8vXG4vLyAuc2ltcGxlLXVzYWdlIHtcbi8vICAgQGluY2x1ZGUgdHJ1bmNhdGUoKTtcbi8vIH1cbi8vXG4vLyAuZGV0YWlsZWQtdXNhZ2Uge1xuLy8gICBAaW5jbHVkZSB0cnVuY2F0ZSg8dmFsdWU+KTtcbi8vIH1cbkBtaXhpbiB0cnVuY2F0ZSgkd2lkdGg6IDEwMCUpIHtcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIEFkZCBhIHNwZWNpZmljIHJhdGlvIHRvIGEgYm94XG5AbWl4aW4gYXNwZWN0LXJhdGlvKCRyYXRpbzogJzI6MycpIHtcbiAgICAvLyBuZWVkcyB0byBiZSB3cmFwcGVkIHdpdGggYSBiZWZvcmUgYmVjYXVzZSBvdGhlcndpc2UgaXQgd2lsbCBicmVha1xuICAgIC8vIG9uIGZpcmVmb3ggYW5kIGVkZ2UgLT4gZmxleC1ib3ggaXNzdWVcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkcmF0aW87XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG59XG5cbi8vIE1ha2UgRnVsbCBXaWR0aCBDb250YWluZXJzIGluIExpbWl0ZWQgV2lkdGggUGFyZW50c1xuLy8gaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9mdWxsLXdpZHRoLWNvbnRhaW5lcnMtbGltaXRlZC13aWR0aC1wYXJlbnRzL1xuQG1peGluIGZ1bGwtd2lkdGgoKSB7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTUwdnc7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNTB2dztcbn1cblxuLy8gTWl4aW4gZm9yIGJvcmRlciByYWRpdXMgaW5jbHVkaW5nIHNhZmFyaSBvdmVyZmxvdy90cmFuc2Zvcm0gZml4XG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiBzLCAkaGlkZS1vdmVyZmxvdzogdHJ1ZSkge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtI3skcmFkaXVzfSk7XG5cbiAgICBAaWYgJGhpZGUtb3ZlcmZsb3cge1xuICAgICAgICAuaXMtaW9zICYsXG4gICAgICAgIC5pcy1zYWZhcmkgJiB7XG4gICAgICAgICAgICAvLyBQcmV2ZW50IGJvcmRlci1yYWRpdXMgZ2xpdGNoIG9uIHNhZmFyaSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9heWFtZmxvdy9iNjAyYWI0MzZhYzlmMDU2NjBkOWMxNTE5MGY0ZmQ3YlxuICAgICAgICAgICAgLy8gQmV3YXJlIG9mIHRoaXMgc2V0dGluZyBiZWNhdXNlIGl0IHRyaWdnZXJzIGEgbmV3IGNvbXBvc2l0ZSBsYXllclxuICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCh3aGl0ZSwgYmxhY2spO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBNaXhpbiBmb3IgYSBjbGVhcmZpeCwgc2luY2UgZmxleGJveCB3ZSBtaWdodCBub3QgbmVlZCBpdCBhbnltb3JlXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cbn1cblxuLy8gTWl4aW4gZm9yIGFuaW1hdGlvbnMgd2l0aCBpbnRlcnNlY3Rpb24gb2JzZXJ2ZXJcbi8vIERlZmluZXMgdGhlIHN0YXR1cyBiZWZvcmUgYW5pbWF0aW5nIHRvIGRlZmF1bHRcbi8vXG4vLyBAY29udGVudFxuQG1peGluIGludGVyc2VjdCgkaW50ZXJzZWN0LWNsYXNzKSB7XG4gICAgLmludGVyc2VjdGlvbi1vYnNlcnZlciAuanMtaW50ZXJzZWN0I3skaW50ZXJzZWN0LWNsYXNzfSAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLy8gTWl4aW4gZm9yIG1vdGlvbi1kZXNpZ24gZGVjbGFyYXRpb25zXG4vLy9cbi8vIG1vdGlvbiBkZXNpZ24gZm9yIGFuaW1hdGVkIGVsZW1lbnRzXG4vLyBnbG9iYWwgZGVmaW5pdGlvbnNcbkBtaXhpbiBzdGF0ZS0taW5pdGlhbCgkaW50ZXJzZWN0LWNsYXNzOiAnaW50ZXJzZWN0LWludmlldy0tZW50ZXJlZCcpIHtcbiAgICAubm8taWUuaW50ZXJzZWN0aW9uLW9ic2VydmVyIC5qcy1pbnRlcnNlY3Q6bm90KC4jeyRpbnRlcnNlY3QtY2xhc3N9KSAmIHtcbiAgICAgICAgLy8gYW5pbWF0ZS9hbmltYXRlLWNoaWxkcmVuIG9uIGNoaWxkIGVsZW1lbnQgb2YgaW50ZXJzZWN0XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICYuanMtaW50ZXJzZWN0Om5vdCguI3skaW50ZXJzZWN0LWNsYXNzfSkge1xuICAgICAgICAvLyBpbnRlcnNlY3QgYW5kIGFuaW1hdGUvYW5pbWF0ZS1jaGlsZHJlbiBvbiBzYW1lIGVsZW1lbnRcbiAgICAgICAgLm5vLWllLmludGVyc2VjdGlvbi1vYnNlcnZlciAmIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gc3RhdGUtLWFuaW1hdGVkKCRpbnRlcnNlY3QtY2xhc3M6ICdpbnRlcnNlY3QtaW52aWV3LS1lbnRlcmVkJykge1xuICAgIC8vIC5uby1pZS5pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIgLmludGVyc2VjdC1pbnZpZXctLWJlZm9yZSAmLFxuICAgIC5uby1pZS5pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIgLiN7JGludGVyc2VjdC1jbGFzc30gJiB7XG4gICAgICAgIC8vIGFuaW1hdGUvYW5pbWF0ZS1jaGlsZHJlbiBvbiBjaGlsZCBlbGVtZW50IG9mIGludGVyc2VjdFxuICAgICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAvLyAmLmludGVyc2VjdC1pbnZpZXctLWJlZm9yZSxcbiAgICAmLiN7JGludGVyc2VjdC1jbGFzc30ge1xuICAgICAgICAvLyBpbnRlcnNlY3QgYW5kIGFuaW1hdGUvYW5pbWF0ZS1jaGlsZHJlbiBvbiBzYW1lIGVsZW1lbnRcbiAgICAgICAgLm5vLWllLmludGVyc2VjdGlvbi1vYnNlcnZlciAmIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gaGlkZSBlbGVtZW50cyB2aWEgYW5pbWF0aW9uIHRvIG9ubHkgaGlkZSBpZiBhbmltYXRpb24gaXMgcG9zc2libGVcbi8vL1xuLy8vIEBncm91cCBodW1hbnMtbWFjaGluZXNcbkBtaXhpbiBoaWRlLWJlZm9yZS1hbmltYXRpb24oKSB7XG4gICAgQHN1cHBvcnRzIChhbmltYXRpb246IHRyYW5zLXRpdGxlIDFzIDEgYmFja3dhcmRzKSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG93LWZvci1hbmltYXRpb24oKSB7XG4gICAgQHN1cHBvcnRzIChhbmltYXRpb246IHRyYW5zLXRpdGxlIDFzIDEgYmFja3dhcmRzKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuXG4vLyBOaWNlIG1peGlucyB0byBoYXZlIGEgZGVsYXkgY2FzY2FkZVxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkZGVsYXk6IDAuMXMsICRnbG9iYWwtZGVsYXk6IDBzLCAkaXRlbXM6IDIwLCAkaW52ZXJ0OiBmYWxzZSwgJGNoaWxkOiAnJykge1xuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGl0ZW1zIHtcbiAgICAgICAgQGlmICRpbnZlcnQge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pICN7JGNoaWxkfSB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAoJGkgKiAkZGVsYXkgKyAkZ2xvYmFsLWRlbGF5KSAqIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSAjeyRjaGlsZH0ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogJGkgKiAkZGVsYXkgKyAkZ2xvYmFsLWRlbGF5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gTmljZSBtaXhpbnMgdG8gaGF2ZSBhIGRlbGF5IGNhc2NhZGVcbi8vL1xuLy8vIEBncm91cCBodW1hbnMtbWFjaGluZXNcbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCRkZWxheTogMC4xcywgJGdsb2JhbC1kZWxheTogMHMsICRpdGVtczogMjAsICRpbnZlcnQ6IGZhbHNlLCAkY2hpbGQ6ICcnKSB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaXRlbXMge1xuICAgICAgICBAaWYgJGludmVydCA9PSBmYWxzZSB7XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkgI3skY2hpbGR9IHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAkaSAqICRkZWxheSAtICRkZWxheSArICRnbG9iYWwtZGVsYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pICN7JGNoaWxkfSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogKCRpdGVtcyArIDEgLSAkaSkgKiAkZGVsYXkgLSAkZGVsYXkgKyAkZ2xvYmFsLWRlbGF5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gTWl4aW4gdG8gY3JlYXRlIGN1c3RvbSBwcm9wZXJ0aWVzIGZyb20gcyBzYXNzIG1hcFxuLy8vXG4vLy8gQGdyb3VwIGh1bWFucy1tYWNoaW5lc1xuLy8vIEBjb250ZW50XG4vLy8gQHBhcmFtIHtib29sfSAkc2VsZiBbZmFsc2VdIC0gSXMgdGhlIG1hcCBtdWx0aWRpbWVuc2lvbmFsXG5AbWl4aW4gY3JlYXRlLWN1c3RvbS1wcm9wZXJ0aWVzKCRtYXAsICRyZXNwb25zaXZlOiBmYWxzZSwgJHByZWZpeDogJycpIHtcbiAgICAvLyBjcmVhdGUgcmVzcG9uc2l2ZSBhcnJheSB3aXRoIGJyZWFrcG9pbnQgc3BlY2lmaWMgdmFsdWVzXG4gICAgQGlmICRyZXNwb25zaXZlIHtcbiAgICAgICAgQGVhY2ggJHR5cGUgaW4gbWFwLWtleXMoJG1hcCkge1xuICAgICAgICAgICAgJHByb3BzOiBtYXAtZ2V0KCRtYXAsICR0eXBlKTtcblxuICAgICAgICAgICAgQGlmICR0eXBlID09IGRlZmF1bHQge1xuICAgICAgICAgICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgLS0jeyRwcmVmaXh9I3skcHJvcH06ICN7JHZhbHVlfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKCR0eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC0tI3skcHJlZml4fSN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICAgICAgIC0tI3skcHJlZml4fSN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBNaXhpbiB0byBjcmVhdGUgYSByZXNwb25zaXZlIHNlbGVjdG9yIHZlcnNpb24gZm9yIHRoZSBnaXZlbiBzZWxlY3RvclxuLy8vXG4vLy8gQGdyb3VwIGh1bWFucy1tYWNoaW5lc1xuLy8vIEBjb250ZW50XG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRwcmVmaXggLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBwcmVmaXhcbi8vLyBAcGFyYW0ge2Jvb2x9ICRzZWxmIFtmYWxzZV0gLSBJbmNsdWRlIHJ1bGVzIGluIHNlbGZcbkBtaXhpbiByZXNwb25zaXZlLXNlbGVjdG9yLXNpbmdsZSgkcHJlZml4LCAkc2VsZjogZmFsc2UpIHtcbiAgICAkYmFzZTogKCk7XG5cbiAgICBAZWFjaCAkc2VsZWN0b3IgaW4gJiB7XG4gICAgICAgICRzZWxlY3RvcjogbGlzdC5udGgoJHNlbGVjdG9yLCAxKTtcblxuICAgICAgICBAaWYgbWV0YS50eXBlLW9mKCRzZWxlY3RvcikgPT0gJ3N0cmluZycge1xuICAgICAgICAgICAgJHNlbGVjdG9yOiBzdHJpbmcuc2xpY2UoJHNlbGVjdG9yLCAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc2VsZWN0b3Ige1xuICAgICAgICAgICAgJGJhc2U6IGxpc3QuYXBwZW5kKCRiYXNlLCAkc2VsZWN0b3IsIGNvbW1hKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICRuZXctc2VsZWN0b3I6IHNlbGVjdG9yLmFwcGVuZCgnI3skcHJlZml4fVxcXFw6JywgJGJhc2UpO1xuICAgICRuZXctc2VsZWN0b3I6IHRvLWNsYXNzKCRuZXctc2VsZWN0b3IpO1xuXG4gICAgQGlmICgkc2VsZiA9PSB0cnVlKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBhdC1yb290ICN7JG5ldy1zZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKCRwcmVmaXgpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gTWl4aW4gdG8gY3JlYXRlIGEgcmVzcG9uc2l2ZSBzZWxlY3RvciB2ZXJzaW9uIGZvciB0aGUgZ2l2ZW4gc2VsZWN0b3IgYW5kIGEgbGlzdCBvZiBwcmVmaXhzXG4vLy9cbi8vLyBAZ3JvdXAgaHVtYW5zLW1hY2hpbmVzXG4vLy8gQGNvbnRlbnRcbi8vLyBAcGFyYW0ge2Jvb2x9ICRzZWxmIFt0cnVlXSAtIEluY2x1ZGUgcnVsZXMgaW4gc2VsZlxuLy8vIEBwYXJhbSB7bGlzdH0gJHByZWZpeGVzIFttZCBsZ10gLSBUaGUgdGhlIGxpc3Qgb2YgZGVmYXVsdCBicmVha3BvaW50IHByZWZpeGVzXG5AbWl4aW4gcmVzcG9uc2l2ZS1zZWxlY3Rvcigkc2VsZjogdHJ1ZSwgJHByZWZpeGVzOiBtZCBsZykge1xuICAgIEBpZiAoJHNlbGYgPT0gdHJ1ZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtc2VsZWN0b3Itc2luZ2xlKCRwcmVmaXgpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gTWl4aW4gdG8gY3JlYXRlIHV0aWxpdHkgY2xhc3NlcyBiYXNlZCBvbiBjc3MgbWFwc1xuLy8vXG4vLy8gQGdyb3VwIGh1bWFucy1tYWNoaW5lc1xuLy8vIEBjb250ZW50XG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRjbGFzcy1uYW1lIC0gVGhlIGJhc2UgbmFtZSBvZiB0aGUgY2xhc3Ncbi8vLyBAcGFyYW0ge2xpc3R9ICRwcm9wZXJ0aWVzIC0gVGhlIHByb3BlcnRpZXMgdG8gYmUgc2V0IHdpdGggdGhlIHNpemUgdmFsdWVcbi8vLyBAcGFyYW0ge2xpc3R9ICRwcmVmaXhlcyBbbWQgbGddIC0gVGhlIHRoZSBsaXN0IG9mIGRlZmF1bHQgYnJlYWtwb2ludCBwcmVmaXhlc1xuLy8vIEBwYXJhbSB7bWFwfSAkdG9rZW4tc2V0IFskc2l6ZS1zY2FsZV0gLSBBbHRlcm5hdGUgbWFwIGZvciB1dGlsaXR5IGNyZWF0aW9uXG5AbWl4aW4gdG9rZW4tdXRpbGl0aWVzKCRjbGFzcy1uYW1lLCAkcHJvcGVydGllcywgJHByZWZpeGVzOiBtZCBsZywgJHRva2VuLXNldDogJHNpemUtc2NhbGUpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggdG9rZW4gc2V0XG4gICAgQGVhY2ggJG5hbWUgaW4gbWFwLWtleXMoJHRva2VuLXNldCkge1xuICAgICAgICAvLyBDcmVhdGUgY2xhc3Mgd2l0aCBzaXplIHN1ZmZpeFxuICAgICAgICAuI3skY2xhc3MtbmFtZX0tI3skbmFtZX0ge1xuICAgICAgICAgICAgLy8gQWRkIHByb3BlcnR5IHdpdGggdmFsdWVcbiAgICAgICAgICAgIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiBtYXAtZ2V0KCR0b2tlbi1zZXQsICRuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENyZWF0ZSBwcmVmaXhlZCB2YXJpYW50cyBhcyB3ZWxsID9cbiAgICBAaWYgKCRwcmVmaXhlcyAhPSBmYWxzZSkge1xuICAgICAgICAvLyBHbyB0aHJvdWdoIGFsbCBwcmVmaXhlcyBvbmUgYnkgb25lXG4gICAgICAgIC8vIHRvIGNyZWF0ZSByZXNwb25zaXZlIHV0aWxpdHkgY2xhc3NlcyBmb3IgYWxsIGJyZWFrcG9pbnRzXG4gICAgICAgIC8vIGluIHRoZSBjb3JyZWN0IG9yZGVyXG4gICAgICAgIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oJHByZWZpeCkge1xuICAgICAgICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCB0b2tlbiBzZXRcbiAgICAgICAgICAgICAgICBAZWFjaCAkbmFtZSBpbiBtYXAta2V5cygkdG9rZW4tc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBjbGFzcyB3aXRoIHNpemUgc3VmZml4XG4gICAgICAgICAgICAgICAgICAgIC4jeyRwcmVmaXh9XFw6I3skY2xhc3MtbmFtZX0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIHByb3BlcnR5IHdpdGggdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skcHJvcGVydHl9OiBtYXAtZ2V0KCR0b2tlbi1zZXQsICRuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIE1peGluIHRvIGNyZWF0ZSB1dGlsaXR5IGNsYXNzZXMgYmFzZWQgb24gcHJvcGVydHkgbWFwXG4vLy9cbi8vLyBAZ3JvdXAgaHVtYW5zLW1hY2hpbmVzXG4vLy8gQGNvbnRlbnRcbi8vLyBAcGFyYW0ge2xpc3R9ICRwcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIHRvIGJlIHNldCB3aXRoIHRoZSBzaXplIHZhbHVlXG4vLy8gQHBhcmFtIHtsaXN0fSAkcHJlZml4ZXMgW21kIGxnXSAtIFRoZSB0aGUgbGlzdCBvZiBkZWZhdWx0IGJyZWFrcG9pbnQgcHJlZml4ZXNcbkBtaXhpbiB1dGlsaXR5LWNsYXNzZXMoJHByb3BzLCAkcHJlZml4ZXM6IG1kIGxnLCAkaW52ZXJ0OiBmYWxzZSkge1xuICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgZGVmaW5lZCBDU1MgcHJvcG9ydGllc1xuICAgIEBlYWNoICRwcm9wZXJ0eSBpbiBtYXAta2V5cygkcHJvcHMpIHtcblxuICAgICAgICAvLyBHZXQgZGVmaW5lZCBjbGFzc2VzXG4gICAgICAgICRjbGFzc2VzOiBtYXAtZ2V0KCRwcm9wcywgJHByb3BlcnR5KTtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIGNsYXNzLW5hbWUgcHJvcGVydHktdmFsdWVzIHBhaXJzXG4gICAgICAgIC8vIHRvIGNyZWF0ZSBhbGwgbm9uLXJlc3BvbnNpdmUgY2xhc3NlcyBmaXJzdFxuICAgICAgICBAZWFjaCAkY2xhc3MtbmFtZSwgJHZhbHVlIGluICRjbGFzc2VzIHtcbiAgICAgICAgICAgIC4jeyRjbGFzcy1uYW1lfSB7XG4gICAgICAgICAgICAgICAgLy8gQWRkIHByb3BlcnR5IHdpdGggdmFsdWVcbiAgICAgICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBwcmVmaXhlZCB2YXJpYW50cyBhcyB3ZWxsID9cbiAgICAgICAgQGlmICgkcHJlZml4ZXMgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIEdvIHRocm91Z2ggYWxsIHByZWZpeGVzIG9uZSBieSBvbmVcbiAgICAgICAgICAgIC8vIHRvIGNyZWF0ZSByZXNwb25zaXZlIHV0aWxpdHkgY2xhc3NlcyBmb3IgYWxsIGJyZWFrcG9pbnRzXG4gICAgICAgICAgICAvLyBpbiB0aGUgY29ycmVjdCBvcmRlclxuICAgICAgICAgICAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8oJHByZWZpeCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIGNsYXNzLW5hbWUgcHJvcGVydHktdmFsdWVzIHBhaXJzXG4gICAgICAgICAgICAgICAgICAgIEBlYWNoICRjbGFzcy1uYW1lLCAkdmFsdWUgaW4gJGNsYXNzZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgLiN7JHByZWZpeH1cXDojeyRjbGFzcy1uYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIHByb3BlcnR5IHdpdGggdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQk9YLVNJWklOR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBNb3JlIHNlbnNpYmxlIGRlZmF1bHQgYm94LXNpemluZzpcbiAqIGNzcy10cmlja3MuY29tL2luaGVyaXRpbmctYm94LXNpemluZy1wcm9iYWJseS1zbGlnaHRseS1iZXR0ZXItYmVzdC1wcmFjdGljZVxuICovXG5cbmh0bWwge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKiB7XG5cbiAgJixcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogaW5oZXJpdDtcbiAgICAgICAtbW96LWJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cblxufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjUkVTRVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKlxuICogQSBtb2Rlcm4gcmVzZXQgdGhhdCBzaXRzIG9uIHRvcCBvZiBOb3JtYWxpemUuY3NzLlxuICogSW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2hhbmtjaGl6bGphdy9tb2Rlcm4tY3NzLXJlc2V0XG4gKiBhbmQgVGFpbHdpbmQgcHJlZmxpZ2h0XG4gKi9cblxuLyogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luICovXG5ib2R5LFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCxcbmJsb2NrcXVvdGUsXG5wcmUsXG5kbCxcbmRkLFxub2wsXG51bCxcbmZvcm0sXG5maWVsZHNldCxcbmxlZ2VuZCxcbmZpZ3VyZSxcbnRhYmxlLFxudGgsXG50ZCxcbmNhcHRpb24sXG5ociB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogUmVtb3ZlIGxpc3Qgc3R5bGVzIG9uIHVsLCBvbCBlbGVtZW50cyAqL1xudWwsXG5vbCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8qIFNldCBjb3JlIHJvb3QgZGVmYXVsdHMgKi9cbmh0bWwge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLyogU2V0IGNvcmUgYm9keSBkZWZhdWx0cyAqL1xuYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4vKiBBIGVsZW1lbnRzIHRoYXQgZG9uJ3QgaGF2ZSBhIGNsYXNzIGdldCBkZWZhdWx0IHN0eWxlcyAqL1xuYTpub3QoW2NsYXNzXSkge1xuICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IGF1dG87XG59XG5cbi8qIE1ha2UgaW1hZ2VzIGVhc2llciB0byB3b3JrIHdpdGggKi9cbmltZyxcbnN2ZyxcbnZpZGVvLFxuY2FudmFzLFxuYXVkaW8sXG5pZnJhbWUsXG5lbWJlZCxcbm9iamVjdCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIEluaGVyaXQgZm9udHMgZm9yIGlucHV0cyBhbmQgYnV0dG9ucyAqL1xuaW5wdXQsXG5idXR0b24sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbi8qIFJlbW92ZSBib3JkZXIgc3R5bGVzICovXG4qLFxuOjpiZWZvcmUsXG46OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLyogU2hvdyBmb2N1cyBzdHlsZSBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiBvbmx5ICovXG5cbi8vIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vdGhlLWZvY3VzLXZpc2libGUtdHJpY2svXG4vLyBSZW1vdmUgZGVmYXVsdCBmb2N1c1xuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLy8gU2hvdyBmb2N1cyBvbmx5IHdoZW4gZm9jdXNpbmcgd2l0aCBrZXlib2FyZFxuOmZvY3VzLXZpc2libGUge1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjFyZW0gcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBSZW1vdmUgYWxsIGFuaW1hdGlvbnMgYW5kIHRyYW5zaXRpb25zIGZvciBwZW9wbGUgdGhhdCBwcmVmZXIgbm90IHRvIHNlZSB0aGVtICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICBodG1sIHtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG87XG4gIH1cbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmUgdHJhaWxpbmcgbWFyZ2lucyBmcm9tIG5lc3RlZCBsaXN0cy5cbiAqL1xubGkgPiB7XG5cbiAgdWwsXG4gIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbn1cblxuLyoqXG4gKiBSZW1vdmUgc3BhY2VzIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0ZPTlRGQUNFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vL1xuLy8gMS4gUHJldmVudCBGT0lUIC0gaHR0cHM6Ly93ZWIuZGV2L2ZvbnQtZGlzcGxheS9cbi8vIGZvbnQtZGlzcGxheTogZmFsbGJhY2s7IC0+IEFjdHMgYXMgYSBjb21wcm9taXNlIGJldHdlZW4gdGhlIGF1dG8gYW5kIHN3YXAgdmFsdWVzLlxuLy8gVGhlIGJyb3dzZXIgd2lsbCBoaWRlIHRoZSB0ZXh0IGZvciBhYm91dCAxMDBtcyBhbmQsIGlmIHRoZSBmb250IGhhcyBub3QgeWV0IGJlZW4gZG93bmxvYWRlZCxcbi8vIHdpbGwgdXNlIHRoZSBmYWxsYmFjayB0ZXh0LiBJdCB3aWxsIHN3YXAgdG8gdGhlIG5ldyBmb250IGFmdGVyIGl0IGlzIGRvd25sb2FkZWQsXG4vLyBidXQgb25seSBkdXJpbmcgYSBzaG9ydCBzd2FwIHBlcmlvZCAocHJvYmFibHkgMyBzZWNvbmRzKS5cblxuLy8gMS4gc3dhcFxuLy8gc3dhcCBnaXZlcyB0aGUgZm9udCBmYWNlIGEgemVybyBzZWNvbmQgYmxvY2sgcGVyaW9kIGFuZCBhbiBpbmZpbml0ZSBzd2FwIHBlcmlvZC5cbi8vIFRoaXMgbWVhbnMgdGhlIGJyb3dzZXIgZHJhd3MgdGV4dCBpbW1lZGlhdGVseSB3aXRoIGEgZmFsbGJhY2sgaWYgdGhlIGZvbnQgZmFjZVxuLy8gaXNu4oCZdCBsb2FkZWQsIGJ1dCBzd2FwcyB0aGUgZm9udCBmYWNlIGluIGFzIHNvb24gYXMgaXQgbG9hZHMuIFNpbWlsYXIgdG8gYmxvY2ssXG4vLyB0aGlzIHZhbHVlIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiByZW5kZXJpbmcgdGV4dCBpbiBhIHBhcnRpY3VsYXIgZm9udCBpc1xuLy8gaW1wb3J0YW50IGZvciB0aGUgcGFnZSwgYnV0IHJlbmRlcmluZyBpbiBhbnkgZm9udCB3aWxsIHN0aWxsIGdldCBhIGNvcnJlY3Rcbi8vIG1lc3NhZ2UgYWNyb3NzLiBMb2dvIHRleHQgaXMgYSBnb29kIGNhbmRpZGF0ZSBmb3Igc3dhcCBzaW5jZSBkaXNwbGF5aW5nIGFcbi8vIGNvbXBhbnnigJlzIG5hbWUgdXNpbmcgYSByZWFzb25hYmxlIGZhbGxiYWNrIHdpbGwgZ2V0IHRoZSBtZXNzYWdlIGFjcm9zcyBidXRcbi8vIHlvdeKAmWQgZXZlbnR1YWxseSB1c2UgdGhlIG9mZmljaWFsIHR5cGVmYWNlLlxuXG4vLyAxLiBibG9ja1xuLy8gYmxvY2sgZ2l2ZXMgdGhlIGZvbnQgZmFjZSBhIHNob3J0IGJsb2NrIHBlcmlvZCAoM3MgaXMgcmVjb21tZW5kZWQgaW4gbW9zdCBjYXNlcylcbi8vIGFuZCBhbiBpbmZpbml0ZSBzd2FwIHBlcmlvZC4gSW4gb3RoZXIgd29yZHMsIHRoZSBicm93c2VyIGRyYXdzIFwiaW52aXNpYmxlXCIgdGV4dFxuLy8gYXQgZmlyc3QgaWYgdGhlIGZvbnQgaXMgbm90IGxvYWRlZCwgYnV0IHN3YXBzIHRoZSBmb250IGZhY2UgaW4gYXMgc29vbiBhcyBpdCBsb2Fkcy5cbi8vIFRvIGRvIHRoaXMgdGhlIGJyb3dzZXIgY3JlYXRlcyBhbiBhbm9ueW1vdXMgZm9udCBmYWNlIHdpdGggbWV0cmljcyBzaW1pbGFyIHRvIHRoZVxuLy8gc2VsZWN0ZWQgZm9udCBidXQgd2l0aCBhbGwgZ2x5cGhzIGNvbnRhaW5pbmcgbm8gXCJpbmsuXCIgVGhpcyB2YWx1ZSBzaG91bGQgb25seSBiZVxuLy8gdXNlZCBpZiByZW5kZXJpbmcgdGV4dCBpbiBhIHBhcnRpY3VsYXIgdHlwZWZhY2UgaXMgcmVxdWlyZWQgZm9yIHRoZSBwYWdlIHRvIGJlIHVzZWFibGUuXG5cbi8vIDIuIFN1YnNldCBVbmljb2RlIHJhbmdlIHRvIGRlY3JlYXNlIGZpbGUgc2l6ZVxuLy8gaHR0cHM6Ly9tYXJrb3Nrb24uY29tL2NyZWF0aW5nLWZvbnQtc3Vic2V0cy9cblxuLy8gRmFsbGJhY2sgc3RhdGljIGZvbnRzXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0FCQ1NvY2lhbCc7XG4gICAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL0FCQ1NvY2lhbC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgIHVybCgnLi4vLi4vZm9udHMvQUJDU29jaWFsLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1kaXNwbGF5OiBibG9jazsgLy8gWzFdXG4gICAgLy8gdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjEyMiwgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRjsgLy8gWzJdXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnUmVja2xlc3NOZXVlJztcbiAgICBzcmM6IHVybCgnLi4vLi4vZm9udHMvUmVja2xlc3NOZXVlLVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgdXJsKCcuLi8uLi9mb250cy9SZWNrbGVzc05ldWUtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LWRpc3BsYXk6IGJsb2NrOyAvLyBbMV1cbiAgICAvLyB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMTIyLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGOyAvLyBbMl1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNST09UXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIERlZmF1bHQgZGVmaW5pdGlvbiBvZiBjdXN0b20gcHJvcGVydGllc1xuICovXG5cbjpyb290IHtcbiAgICAvLyBBZGQgY3VzdG9tIHByb3BlcnRpZXMgZm9yIHNpemUgc2NhbGVcbiAgICBAaW5jbHVkZSBjcmVhdGUtY3VzdG9tLXByb3BlcnRpZXMoJHNpemUtc2NhbGUsIGZhbHNlLCAnc2l6ZS0nKTtcblxuICAgIC8vIG1haW4gY29udGFpbmVyIGZvciBncmlkXG4gICAgLS1jb250YWluZXItdzogY2FsYyg4MHZ3ICsgMnJlbSk7XG5cbiAgICBAc3VwcG9ydHMgKHdpZHRoOiBtaW4oMXJlbSwgMXJlbSkpIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhsZykge1xuICAgICAgICAgICAgLS1jb250YWluZXItdzogbWluKDUwdncgKyAyMHJlbSwgNzByZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkIGN1c3RvbSBwcm9wZXJ0aWVzIGZvciB1aSBkZWZpbml0aW9uc1xuICAgIEBpbmNsdWRlIGNyZWF0ZS1jdXN0b20tcHJvcGVydGllcygkdWktcHJvcHMsIHRydWUpO1xuXG4gICAgLy8gQWRkIGN1c3RvbSBwcm9wZXJ0aWVzIGZvciBjb2xvcnNcbiAgICBAaW5jbHVkZSBjcmVhdGUtY3VzdG9tLXByb3BlcnRpZXMoJHRleHQtY29sb3JzLCBmYWxzZSwgJ3RleHQtJyk7XG4gICAgQGluY2x1ZGUgY3JlYXRlLWN1c3RvbS1wcm9wZXJ0aWVzKCRiZy1jb2xvcnMsIGZhbHNlLCAnYmctJyk7XG4gICAgQGluY2x1ZGUgY3JlYXRlLWN1c3RvbS1wcm9wZXJ0aWVzKCRib3JkZXItY29sb3JzLCBmYWxzZSwgJ2JvcmRlci0nKTtcblxuICAgIC8vIEFkZCBib3JkZXIgcmFkaXVzXG4gICAgQGluY2x1ZGUgY3JlYXRlLWN1c3RvbS1wcm9wZXJ0aWVzKCRib3JkZXItcmFkaXVzLCBmYWxzZSwgJ2JvcmRlci1yYWRpdXMtJyk7XG4gICAgQGluY2x1ZGUgY3JlYXRlLWN1c3RvbS1wcm9wZXJ0aWVzKCRzaGFkb3csIGZhbHNlLCAnYm94LXNoYWRvdy0nKTtcbn1cbiIsIi8vLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgI2JyZWFrcG9pbnRzXG4vL1xcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLy8gYnJlYWtwb2ludCBkZWZpbml0aW9uc1xuLy9cbi8vIGVtIGJhc2VkIG1lZGlhIHF1ZXJ5IGZhdm9ycyBpbiB1c2VyIHNldCBkZWZhdWx0IGZvbnQgc2l6ZVxuJGJyZWFrcG9pbnRzOiAoXG4gICAgLy8gZGVmYXVsdCBicmVha3BvaW50cyBhcmUgdHJlYXRlZCBhcyBtaW4gd2lkdGggc2NyZWVuIG1lZGlhIHF1ZXJpZXNcbiAgICBkZWZhdWx0OiAoXG4gICAgICAgIC8vICdzbSc6IDAsIC8vIDE2cHggKiAzMGVtOiA0ODBweFxuICAgICAgICAnbWQnOiAzNy41ZW0sIC8vIDE2cHggKiAzNy41ZW06IDYwMHB4XG4gICAgICAgICdsZyc6IDY0ZW0sIC8vIDE2cHggKiA2NGVtOiAxMDI0cHhcbiAgICApLFxuICAgIC8vIGN1c3RvbSBicmVha3BvaW50cyBvdXRwdXQgdGhlIHJhdyBkZWZpbml0aW9uXG4gICAgY3VzdG9tOiAoXG4gICAgICAgICdzbS1vbmx5JzogJ3NjcmVlbiBhbmQgKG1heC13aWR0aDogMzcuNDVlbSknLCAvLyAxNnB4ICogMzcuNDVlbTogNTk5LjJweCAtPiBob3BlZnVsbHkgc21hbGxlciB0aGFuICdtZCdcbiAgICAgICAgJ21kLW9ubHknOiAnc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNy41ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45NWVtKScsIC8vIDE2cHggKiA2My45NWVtOiAxMDIzLjJweCAtPiBob3BlZnVsbHkgc21hbGxlciB0aGFuICdtZCdcbiAgICAgICAgJ3NtLW1kLW9ubHknOiAnc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45NWVtKScsIC8vIDE2cHggKiA2My45NWVtOiAxMDIzLjJweCAtPiBob3BlZnVsbHkgc21hbGxlciB0aGFuICdtZCdcbiAgICAgICAgJ3BvcnRyYWl0JzogJ3NjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAgICAgICAnbGFuZHNjYXBlJzogJ3NjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgICAgICAgJ3dpZGUnOiAnc2NyZWVuIGFuZCAobWluLWFzcGVjdC1yYXRpbzogMTYvOSknLFxuICAgICAgICAndG93ZXInOiAnc2NyZWVuIGFuZCAobWF4LWFzcGVjdC1yYXRpbzogMi8zKScsXG4gICAgICAgICdwcmludCc6ICdwcmludCcsXG4gICAgKSxcbik7XG5cblxuLy8gcmVzcG9uZC10byBtaXhpblxuQG1peGluIHJlc3BvbmQtdG8oJGJyZWFrcG9pbnQpIHtcbiAgICBAZWFjaCAkdHlwZSBpbiBtYXAta2V5cygkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgJGJyZWFrcG9pbnQtZ3JvdXA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdHlwZSk7XG5cbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50LWdyb3VwLCAkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50LWdyb3VwLCAkYnJlYWtwb2ludCk7XG5cbiAgICAgICAgICAgIEBpZiAkdHlwZSA9PSBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGJyZWFrcG9pbnRzIGFyZSB0cmVhdGVkIGFzIG1pbiB3aWR0aCBzY3JlZW4gbWVkaWEgcXVlcmllc1xuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBjdXN0b20gYnJlYWtwb2ludHMgb3V0cHV0IHRoZSByYXcgZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgIEBtZWRpYSAjeyR2YWx1ZX0ge1xuICAgICAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjUEFHRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBQYWdlLWxldmVsIHN0eWxpbmcgKGUuZy4gSFRNTCBhbmQgQk9EWSBlbGVtZW50cykuXG4gKi9cblxuaHRtbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLy8gQWNjZXNzaWJsZSBmb250IHNpemUgc2NhbGluZ1xuICAgIC8vIGZvciBhbGwgcmVtIHVuaXRzXG4gICAgLy9cbiAgICAvLyBVc2luZyByZW0gc2l6ZXMgdGhyb3VnaG91dCB0aGlzIGNvZGUgYmFzZSB3aWxsIGxlYWQgdG8gYSByZWxhdGl2ZSBzY2FsZWQgdmFsdWVcbiAgICAvLyBiYXNlZCBvbiB0aGUgYmFzZSBmb250IHNpemUgY2FsY3VsYXRpb24gcHV0IGluIHBsYWNlIGhlcmVcbiAgICAvL1xuICAgIC8vIE92ZXIgdGltZSBtZSBtb3ZlZCBmb3IgYSBtb3JlIGNvbXBsZXggYnV0IGRldmVsb3BlciBmcmllbmRseSBpbXBsZW1lbnRhdGlvblxuICAgIC8vIChodHRwOi8vemVsbHdrLmNvbS9ibG9nL3ZpZXdwb3J0LWJhc2VkLXR5cG9ncmFwaHkvKSB0byBhIG1vcmUgYWNjZXNzaWJsZSBhbmQgZWFzeVxuICAgIC8vIHRvIGdldCBzb2x1dGlvbiAoaHR0cHM6Ly90d2l0dGVyLmNvbS9oZXlkb253b3Jrcy9zdGF0dXMvMTI1NTQ2Mjc4NDA4ODg5MTM5MilcbiAgICAvL1xuICAgIC8vIDEuIGVtIG9yIHJlbSBkb2VzIG5vdCBtYXR0ZXIgaGVyZVxuICAgIC8vIDIuIGVtLXNpemUgc2hvdWxkIG5vdCBnbyBtdWNoIGJlbG93IDFlbSB0byBrZWVwIGJyb3dzZXIgZGVmYXVsdCBpbiBzeW5jXG4gICAgLy8gMy4gSW5jcmVhc2Ugb3IgZGVjcmVhc2Ugem9vbSBmYWN0b3IgdG8gZGVmaW5lIHpvb20gZGlzdGluY3Rpb25cbiAgICAtLWJhc2VGb250U2l6ZTogMC44cmVtOyAvLyBbMV1bMl1cbiAgICAtLWZvbnRTaXplWm9vbUZhY3RvcjogMC41dnc7IC8vIFszXVxuICAgIC0tbWF4Rm9udFNpemU6IDNyZW07IC8vIFszXVxuICAgIGZvbnQtc2l6ZTogbWluKHZhcigtLWJhc2VGb250U2l6ZSkgKyB2YXIoLS1mb250U2l6ZVpvb21GYWN0b3IpLCB2YXIoLS1tYXhGb250U2l6ZSkpO1xuXG4gICAgLy8gRml4IGZvciBzYWZhcmkgYnVnOiBQZXJtYW5lbnQgZm9udCBzaXplIHNjYWxpbmcgZmFpbHNcbiAgICAvLyBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9mbHVpZC10eXBvZ3JhcGh5LyNjb21tZW50LTE3NTMwMTZcbiAgICAvLyAxLiBTY29wZSB0byBzYWZhcmkgaWYgY2xhc3MgaXMgYXZhaWxhYmxlXG4gICAgLy8gMi4gMHZ3IGdldHMgc3RyaXBwZWQgaW4gcHJvZHVjdGlvbiBidWlsZFxuICAgIC8vICYuaXMtc2FmYXJpIHsgLy8gWzFdXG4gICAgbWluLWhlaWdodDogMXZ3OyAvLyBbMl1cbiAgICAvLyB9XG5cbiAgICAvLyBzY2FsaW5nIGZvciBtZFxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWQpIHtcbiAgICAgICAgLy8gLS1iYXNlRm9udFNpemU6IDAuN3JlbTsgLy8gWzFdWzJdXG4gICAgICAgIC8vIC0tZm9udFNpemVab29tRmFjdG9yOiAwLjV2dzsgLy8gWzNdXG4gICAgfVxuXG4gICAgLy8gc2NhbGluZyBmb3IgbGdcbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKGxnKSB7XG4gICAgICAgIC0tYmFzZUZvbnRTaXplOiAwLjhyZW07IC8vIFsxXVsyXVxuICAgICAgICAtLWZvbnRTaXplWm9vbUZhY3RvcjogMC40dnc7IC8vIFszXVxuICAgIH1cbn1cblxuYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIEBpbmNsdWRlIHRleHQtc3R5bGUoJ2RlZmF1bHQnKTtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1kZWZhdWx0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kZWZhdWx0KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1iZy1ncmFkaWVudCk7XG59IiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0hFQURJTkdTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBSZXNldHRpbmcgbWFyZ2luIGZvciBwXG4vLyBXZSB3aWxsIGhhbmRsZSB0aGlzIGRpZmZlcmVudGx5XG5wIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbmgxLCBoMiwgaDMge1xuICAgIEBpbmNsdWRlIHRleHQtc3R5bGUoJ3NlcmlmJyk7XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKHNtLW9ubHkpIHtcbiAgICAgICAgYnIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaDQsXG5oNSxcbmg2IHtcbiAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlKCc0MDAnKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhtZCkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlKCc2MDAnKTtcbiAgICB9XG59XG5cbmgxLCBoMiB7XG4gICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnNzAwJyk7XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKG1kKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUoJzkwMCcpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obGcpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnMTAwMCcpO1xuICAgIH1cbn1cblxuaDMge1xuICAgIEBpbmNsdWRlIHRleHQtc3R5bGUoJzcwMCcpO1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhtZCkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlKCc4MDAnKTtcbiAgICB9XG59XG5cbmg0IHtcbiAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlKCc2MDAnKTtcbn1cblxuaDUge1xuICAgIEBpbmNsdWRlIHRleHQtc3R5bGUoJzQwMCcpO1xufVxuXG5lbSxcbnN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5hZGRyZXNzLFxuY2l0ZSB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0xJTktTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5hIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zLXRpbWUtLW0gJHRyYW5zLWZ1bmMtLWRlZmF1bHQ7XG5cbiAgICAmOm5vdChbY2xhc3NdKTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LWJyb3duLWRhcmspO1xuICAgIH1cbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjUVVPVEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIEJhc2ljIHN0eWxpbmcgZm9yIHF1b3RlZCB0ZXh0LlxuICovXG5cbnEge1xuICAgIC8vIHF1b3RlczogXCLigJhcIiBcIuKAmVwiO1xuICAgIHF1b3Rlczogbm9uZTtcbiAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlKCc3MDAnKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1pbmRlbnQ6IHZhcigtLXRleHQtaW5kZW50KTtcblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWQpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnMTAwMCcpO1xuICAgIH1cblxuICAgIC8qXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogb3Blbi1xdW90ZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xuICAgIH0qL1xuXG59XG5cbmJsb2NrcXVvdGUge1xuICAgIHF1b3Rlczogbm9uZTtcblxuICAgIHAgKyBwIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyZXg7XG4gICAgfVxufVxuIiwiLnNlY3Rpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zaXplLTEwMDApO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zaXplLTEyMDApO1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10bygnbWQnKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zaXplLTEyMDApO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc2l6ZS0xNDAwKTtcbiAgICB9XG59XG5cbi5zZWN0aW9uLS1mdWxsIHtcbiAgICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tbmF2LWgpKTtcbn1cblxuLnNlY3Rpb24tLW5vLWdhcCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5zZWN0aW9uLS1wYXJ0bHkge1xuICAgIGhlaWdodDogODB2aDtcbn0iLCIuZGV0YWlscyB7XG4gICAgcGFkZGluZzogLjRyZW0gMDtcblxuICAgICYgKyAmIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXRleHQtYnJvd24pO1xuICAgIH1cblxuICAgICYgKyAmLmRldGFpbHMtLWxpZ2h0IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXRleHQtbGlnaHQpO1xuICAgIH1cbn1cblxuLmRldGFpbHNfX3N1bW1hcnkge1xuICAgIHBhZGRpbmc6IHZhcigtLWJvZHktcCkgMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAmOjotd2Via2l0LWRldGFpbHMtbWFya2VyLFxuICAgICY6Om1hcmtlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7IHV0ZjgsIDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMzcnIGhlaWdodD0nMzcnIHZpZXdCb3g9JzAgMCAzNyAzNyc+IDxnIGlkPSdFbGxpcHNlXzE3NycgZGF0YS1uYW1lPSdFbGxpcHNlIDE3NycgZmlsbD0nbm9uZScgc3Ryb2tlPSdyZ2JhKDE4NiwxMDMsMzYsMSknIHN0cm9rZS13aWR0aD0nMS41Jz4gPGNpcmNsZSBjeD0nMTguNScgY3k9JzE4LjUnIHI9JzE4LjUnIHN0cm9rZT0nbm9uZScvPiA8Y2lyY2xlIGN4PScxOC41JyBjeT0nMTguNScgcj0nMTcuNzUnIGZpbGw9J25vbmUnLz4gPC9nPiA8bGluZSBpZD0nTGluaWVfMScgZGF0YS1uYW1lPSdMaW5pZSAxJyB5Mj0nMTYnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDE4LjUgMTAuNSknIGZpbGw9J25vbmUnIHN0cm9rZT0ncmdiYSgxODYsMTAzLDM2LDEpJyBzdHJva2Utd2lkdGg9JzEuNScvPiA8bGluZSBpZD0nTGluaWVfMicgZGF0YS1uYW1lPSdMaW5pZSAyJyB5Mj0nMTYnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDI2LjUgMTguNSkgcm90YXRlKDkwKScgZmlsbD0nbm9uZScgc3Ryb2tlPSdyZ2JhKDE4NiwxMDMsMzYsMSknIHN0cm9rZS13aWR0aD0nMS41Jy8+IDwvc3ZnPiBcIik7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjNyZW07XG5cbiAgICAgICAgW29wZW5dICYge1xuICAgICAgICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sOyB1dGY4LCA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzM3JyBoZWlnaHQ9JzM3JyB2aWV3Qm94PScwIDAgMzcgMzcnPiA8ZyBpZD0nRWxsaXBzZV8xNzcnIGRhdGEtbmFtZT0nRWxsaXBzZSAxNzcnIGZpbGw9J25vbmUnIHN0cm9rZT0ncmdiYSgxODYsMTAzLDM2LDEpJyBzdHJva2Utd2lkdGg9JzEuNSc+IDxjaXJjbGUgY3g9JzE4LjUnIGN5PScxOC41JyByPScxOC41JyBzdHJva2U9J25vbmUnLz4gPGNpcmNsZSBjeD0nMTguNScgY3k9JzE4LjUnIHI9JzE3Ljc1JyBmaWxsPSdub25lJy8+IDwvZz4gPGxpbmUgaWQ9J0xpbmllXzInIGRhdGEtbmFtZT0nTGluaWUgMicgeTI9JzE2JyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgyNi41IDE4LjUpIHJvdGF0ZSg5MCknIGZpbGw9J25vbmUnIHN0cm9rZT0ncmdiYSgxODYsMTAzLDM2LDEpJyBzdHJva2Utd2lkdGg9JzEuNScvPiA8L3N2Zz4gXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRldGFpbHMtLWxpZ2h0ICYge1xuICAgICAgICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sOyB1dGY4LCA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzM3JyBoZWlnaHQ9JzM3JyB2aWV3Qm94PScwIDAgMzcgMzcnPiA8ZyBpZD0nRWxsaXBzZV8xNzcnIGRhdGEtbmFtZT0nRWxsaXBzZSAxNzcnIGZpbGw9J25vbmUnIHN0cm9rZT0ncmdiYSgyNTAsMjQ3LDIzOSwxKScgc3Ryb2tlLXdpZHRoPScxLjUnPiA8Y2lyY2xlIGN4PScxOC41JyBjeT0nMTguNScgcj0nMTguNScgc3Ryb2tlPSdub25lJy8+IDxjaXJjbGUgY3g9JzE4LjUnIGN5PScxOC41JyByPScxNy43NScgZmlsbD0nbm9uZScvPiA8L2c+IDxsaW5lIGlkPSdMaW5pZV8xJyBkYXRhLW5hbWU9J0xpbmllIDEnIHkyPScxNicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMTguNSAxMC41KScgZmlsbD0nbm9uZScgc3Ryb2tlPSdyZ2JhKDI1MCwyNDcsMjM5LDEpJyBzdHJva2Utd2lkdGg9JzEuNScvPiA8bGluZSBpZD0nTGluaWVfMicgZGF0YS1uYW1lPSdMaW5pZSAyJyB5Mj0nMTYnIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDI2LjUgMTguNSkgcm90YXRlKDkwKScgZmlsbD0nbm9uZScgc3Ryb2tlPSdyZ2JhKDI1MCwyNDcsMjM5LDEpJyBzdHJva2Utd2lkdGg9JzEuNScvPiA8L3N2Zz4gXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRldGFpbHMtLWxpZ2h0W29wZW5dICYge1xuICAgICAgICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sOyB1dGY4LCA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzM3JyBoZWlnaHQ9JzM3JyB2aWV3Qm94PScwIDAgMzcgMzcnPiA8ZyBpZD0nRWxsaXBzZV8xNzcnIGRhdGEtbmFtZT0nRWxsaXBzZSAxNzcnIGZpbGw9J25vbmUnIHN0cm9rZT0ncmdiYSgyNTAsMjQ3LDIzOSwxKScgc3Ryb2tlLXdpZHRoPScxLjUnPiA8Y2lyY2xlIGN4PScxOC41JyBjeT0nMTguNScgcj0nMTguNScgc3Ryb2tlPSdub25lJy8+IDxjaXJjbGUgY3g9JzE4LjUnIGN5PScxOC41JyByPScxNy43NScgZmlsbD0nbm9uZScvPiA8L2c+IDxsaW5lIGlkPSdMaW5pZV8yJyBkYXRhLW5hbWU9J0xpbmllIDInIHkyPScxNicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMjYuNSAxOC41KSByb3RhdGUoOTApJyBmaWxsPSdub25lJyBzdHJva2U9J3JnYmEoMjUwLDI0NywyMzksMSknIHN0cm9rZS13aWR0aD0nMS41Jy8+IDwvc3ZnPiBcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKCdtZCcpIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5kZXRhaWxzX19jb250ZW50ICB7XG4gICAgW29wZW5dICYge1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogZGV0YWlscy1mb2xkLW91dCAkdHJhbnMtdGltZS0tbSAkdHJhbnMtZnVuYy0tZGVmYXVsdCAxIGZvcndhcmRzO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5zdW1tYXJ5IGg0IHtcbn0iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQ09OVEFJTkVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBDb250YWluZXIgd2lkdGggYSBmbGV4aWJsZSB3aWR0aCB0byBob2xkIHRoZSBpbm5lciBncmlkXG4vL1xuLy8gLS1jb250YWluZXItdyBpcyBkZWZpbmVkIGluIF9zZXR0aW5ncy51aS5zY3NzXG4uY29udGFpbmVyIHtcbiAgICB3aWR0aDogdmFyKC0tY29udGFpbmVyLXcpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNQQUdFLUdSSURcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIFByb3ZpZGUgYSBncmlkIGNvbnRhaW5lciB3aXRoIGEgZGVkaWNhdGVkIHNldHVwXG4vLyB0byBkZWZpbmUgdGhlIG92ZXJhbGwgcGFnZSBncmlkXG4ucGFnZS1ncmlkIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXNlbGVjdG9yKHRydWUsIG1kIGxnKSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWdyaWQtcm93cyksIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY29sdW1uLWdhcCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICB9XG59XG5cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNDTFVTVEVSXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFByb3ZpZGUgYSBmbGV4IGNvbnRhaW5lciBpbiBvcmRlciB0byBkaXNwbGF5IGl0ZW1zIHNpZGUgYnkgc2lkZVxuICpcbiAqIGh0dHBzOi8vZXZlcnktbGF5b3V0LmRldi9sYXlvdXRzL2NsdXN0ZXIvXG4gKiBQYXl3YWxsIGVudHJ5OiAoaHR0cHM6Ly9ldmVyeS1sYXlvdXQuZGV2L2xvZ2luLz9lbWFpbD1pbmZvQGh1bWFucy5hbSlcbiAqXG4gKiBDYW4gYmUgdXNlZCBmb3IgZWxlbWVudHMgd2l0aCB2YXJ5aW5nIHdpZHRoXG4gKiBvciBhZGp1c3RlZCB3aWR0aHMgdmlhIHRoZSAud2lkdGggdXRpbGl0eSBjbGFzc1xuICpcbiAqIDEuIFVzZSAtLWNvbHVtbi1nYXAgYXMgZGVmYXVsdCBmb3IgY2x1c3RlclxuICogICAgV2lsbCBhbHNvIGJlIHVzZWQgZm9yIGNoaWxkcmVuIHdpdGggLndpZHRoLXV0aWxpdHkgY2xhc3Nlc1xuICogMi4gU2V0dGxlcyB0aGUgb3V0ZXIgZ2FwIG1hcmdpbiBvZiBpbm5lciBlbGVtZW50c1xuICogMy4gTGV0cyB0aGUgY2x1c3RlciBiZSBtdWx0aWxpbmVcbiAqIDQuIENlbnRlcnMgZWFjaCByb3cuIFRvIGNoYW5nZSB0aGUgYWxpZ25tZW50IHVzZSBhIGZsZXggdXRpbGl0eSBjbGFzc1xuICogNS4gRGVmaW5lcyBhIGdhcCBmb3IgY2hpbGRyZW5cbiAqIDYuIEZpeCBmb3IgRmlyZWZveFxuICovXG5cbi5jbHVzdGVyIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXNlbGVjdG9yKHRydWUsIG1kKSB7XG4gICAgICAgIC0tY2x1c3Rlci1nYXA6IHZhcigtLWNvbHVtbi1nYXAsIDFyZW0pOyAvLyBbMV1cbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2x1c3Rlci1nYXApICogMC41ICogLTEpOyAvLyBbMl1cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNsdXN0ZXItZ2FwKSAqIDAuNSAqIC0xKTsgLy8gWzZdXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDsgLy8gWzNdXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8vIFs0XVxuICAgIH0gXG59XG5cbi5jbHVzdGVyID4gKiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2x1c3Rlci1nYXApICogMC41KTsgLy8gWzVdXG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNsdXN0ZXItZ2FwKSAqIDAuNSk7IC8vIFs1XVxufVxuXG4ubWRcXDpjbHVzdGVyID4gKiB7XG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhtZCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jbHVzdGVyLWdhcCkgKiAwLjUpOyAvLyBbNV1cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNsdXN0ZXItZ2FwKSAqIDAuNSk7IC8vIFs1XVxuICAgIH1cbn1cblxuLy8gQWRkIHZlcnRpY2FsIHNwYWNpbmdcbi5jbHVzdGVyLS15LWdhcCB7XG4gICAgLS1jbHVzdGVyLXktZ2FwOiB2YXIoLS1jb2x1bW4tZ2FwLCAxcmVtKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNsdXN0ZXIteS1nYXApICogMC41ICogLTEpO1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tY2x1c3Rlci15LWdhcCkgKiAwLjUgKiAtMSk7XG59XG5cbi5jbHVzdGVyLS15LWdhcCA+ICoge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tY2x1c3Rlci15LWdhcCkgKiAwLjUpO1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tY2x1c3Rlci15LWdhcCkgKiAwLjUpO1xufVxuXG4uY2x1c3Rlci0teC01MCB7IC0tY2x1c3Rlci1nYXA6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCI1MFwiKX07fVxuLmNsdXN0ZXItLXgtMTAwIHsgLS1jbHVzdGVyLWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjEwMFwiKX07fVxuLmNsdXN0ZXItLXgtMjAwIHsgLS1jbHVzdGVyLWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjIwMFwiKX07fVxuLmNsdXN0ZXItLXgtMzAwIHsgLS1jbHVzdGVyLWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjMwMFwiKX07fVxuLmNsdXN0ZXItLXgtNDAwIHsgLS1jbHVzdGVyLWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjQwMFwiKX07fVxuLmNsdXN0ZXItLXgtNjAwIHsgLS1jbHVzdGVyLWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjYwMFwiKX07fVxuLmNsdXN0ZXItLXgtODAwIHsgLS1jbHVzdGVyLWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjgwMFwiKX07fVxuLmNsdXN0ZXItLWNhcmRzIHtcbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKGxnKSB7XG4gICAgICAgIC0tY2x1c3Rlci1nYXA6IDQuOCU7XG4gICAgfVxufVxuXG5cbi5jbHVzdGVyLS15LTUwIHsgLS1jbHVzdGVyLXktZ2FwOiAje21hcC1nZXQoJHNpemUtc2NhbGUsIFwiNTBcIil9O31cbi5jbHVzdGVyLS15LTEwMCB7IC0tY2x1c3Rlci15LWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjEwMFwiKX07fVxuLmNsdXN0ZXItLXktMjAwIHsgLS1jbHVzdGVyLXktZ2FwOiAje21hcC1nZXQoJHNpemUtc2NhbGUsIFwiMjAwXCIpfTt9XG4uY2x1c3Rlci0teS0zMDAgeyAtLWNsdXN0ZXIteS1nYXA6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCIzMDBcIil9O31cbi5jbHVzdGVyLS15LTQwMCB7IC0tY2x1c3Rlci15LWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjQwMFwiKX07fVxuLmNsdXN0ZXItLXktNTAwIHsgLS1jbHVzdGVyLXktZ2FwOiAje21hcC1nZXQoJHNpemUtc2NhbGUsIFwiNTAwXCIpfTt9XG4uY2x1c3Rlci0teS02MDAgeyAtLWNsdXN0ZXIteS1nYXA6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCI2MDBcIil9O31cbi5jbHVzdGVyLS15LTcwMCB7IC0tY2x1c3Rlci15LWdhcDogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjcwMFwiKX07fVxuLmNsdXN0ZXItLXktODAwIHsgLS1jbHVzdGVyLXktZ2FwOiAje21hcC1nZXQoJHNpemUtc2NhbGUsIFwiODAwXCIpfTt9XG4uY2x1c3Rlci0teS0xMDAwIHsgLS1jbHVzdGVyLXktZ2FwOiAje21hcC1nZXQoJHNpemUtc2NhbGUsIFwiMTAwMFwiKX07fVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0ZMT1dcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIEdsb2JhbCBzcGFjaW5nIHV0aWxpdHlcbi8vIHdoaWNoIHJlZHVjZWQgdGhlIHBhaW4gb2Ygc3BhY2luZyBpbmRpdmlkdWFsIGVsZW1lbnRzXG4vL1xuLy8gaHR0cHM6Ly9ldmVyeS1sYXlvdXQuZGV2L2xheW91dHMvc3RhY2svXG4vLyBodHRwczovLzI0d2F5cy5vcmcvMjAxOC9tYW5hZ2luZy1mbG93LWFuZC1yaHl0aG0td2l0aC1jc3MtY3VzdG9tLXByb3BlcnRpZXMvXG4vL1xuLy8gMS4gQ2xhc3MgZm9yIHBhcmVudHMgd2l0aCBzcGFjZWQgY2hpbGRyZW5cbi8vIDIuIEZsZXggZGVjbGFyYXRpb24gbGV0cyB1cyBncm91cCBlbGVtZW50cyB0byB0aGUgdG9wIGFuZCBib3R0b21cbi8vIG9mIHRoZSB2ZXJ0aWNhbCBzcGFjZSB3aXRoIGEgbWFyZ2luLWJvdHRvbTogYXV0byBvbiBhIGNoaWxkLlxuLy8gMy4gRGVmaW5lIHNwZWNpZmljIG1hcmdpbnMgdmlhIGN1c3RvbSBwcm9wZXJ0aWVzXG4vLyA0LiBTcGFjZWQgY2hpbGRyZW46IEFsbCBidXQgdGhlIGZpcnN0IGdldCBhIHRvcCBtYXJnaW5cbi5mbG93LTI1LCAvLyBbMV1cbi5mbG93LTUwLCAvLyBbMV1cbi5mbG93LTEwMCwgLy8gWzFdXG4uZmxvdy0yMDAsXG4uZmxvdy0zMDAsXG4uZmxvdy00MDAsXG4uZmxvdy01MDAsXG4uZmxvdy02MDAsXG4uZmxvdy03MDAsXG4uZmxvdy04MDAsXG4uZmxvdy05MDAsXG4uZmxvdy0xMDAwLFxuLmZsb3ctMTEwMCxcbi5mbG93LTEyMDAsXG4uZmxvdy1zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4OyAvLyBbMl1cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvLyBbMl1cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5mbG93LTI1ID4gKiArICosIC8vIFs0XVxuLmZsb3ctNTAgPiAqICsgKiwgLy8gWzRdXG4uZmxvdy0xMDAgPiAqICsgKiwgLy8gWzRdXG4uZmxvdy0yMDAgPiAqICsgKixcbi5mbG93LTMwMCA+ICogKyAqLFxuLmZsb3ctNDAwID4gKiArICosXG4uZmxvdy01MDAgPiAqICsgKixcbi5mbG93LTYwMCA+ICogKyAqLFxuLmZsb3ctNzAwID4gKiArICosXG4uZmxvdy04MDAgPiAqICsgKixcbi5mbG93LTkwMCA+ICogKyAqLFxuLmZsb3ctMTAwMCA+ICogKyAqLFxuLmZsb3ctMTEwMCA+ICogKyAqLFxuLmZsb3ctMTIwMCA+ICogKyAqLFxuLmZsb3ctc2VjdGlvbiA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1mbG93LXNwYWNlKTtcbn1cblxuLmZsb3ctMjUgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCIyNVwiKX07fSAvLyBbM11cbi5mbG93LTUwID4gKiArICogIHsgLS1mbG93LXNwYWNlOiAje21hcC1nZXQoJHNpemUtc2NhbGUsIFwiNTBcIil9O30gLy8gWzNdXG4uZmxvdy0xMDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCIxMDBcIil9O30gLy8gWzNdXG4uZmxvdy0yMDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCIyMDBcIil9O30gLy8gWzNdXG4uZmxvdy0zMDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCIzMDBcIil9O30gLy8gWzNdXG4uZmxvdy00MDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCI0MDBcIil9O30gLy8gWzNdXG4uZmxvdy01MDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCI1MDBcIil9O30gLy8gWzNdXG4uZmxvdy02MDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCI2MDBcIil9O30gLy8gWzNdXG4uZmxvdy03MDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCI3MDBcIil9O30gLy8gWzNdXG4uZmxvdy04MDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCI4MDBcIil9O30gLy8gWzNdXG4uZmxvdy05MDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCI5MDBcIil9O30gLy8gWzNdXG4uZmxvdy0xMDAwID4gKiArICogIHsgLS1mbG93LXNwYWNlOiAje21hcC1nZXQoJHNpemUtc2NhbGUsIFwiMTAwMFwiKX07fSAvLyBbM11cbi5mbG93LTExMDAgPiAqICsgKiAgeyAtLWZsb3ctc3BhY2U6ICN7bWFwLWdldCgkc2l6ZS1zY2FsZSwgXCIxMTAwXCIpfTt9IC8vIFszXVxuLmZsb3ctMTIwMCA+ICogKyAqICB7IC0tZmxvdy1zcGFjZTogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjEyMDBcIil9O30gLy8gWzNdXG5cbi5mbG93LXNlY3Rpb24gPiAqICsgKiB7XG4gICAgLS1mbG93LXNwYWNlOiAje21hcC1nZXQoJHNpemUtc2NhbGUsIFwiMTAwMFwiKX07XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvKG1kKSB7XG4gICAgICAgIC0tZmxvdy1zcGFjZTogI3ttYXAtZ2V0KCRzaXplLXNjYWxlLCBcIjEzMDBcIil9O1xuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNRURJQS1CT1hcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKlxuICogUHJvdmlkZSBhIG1lZGlhIGNvbnRhaW5lciBpbiBvcmRlciB0byBkaXNwbGF5IG1lZGlhICh1c3VhbGx5IGltYWdlcylcbiAqIGNyb3BwZWQgdG8gY2VydGFpbiByYXRpb3MgYW5kIHByb3ZpZGUgYSBwbGFjZWhvbGRlciBib3ggd2hpbGUgaW1hZ2VzXG4gKiBhcmUgc3RpbGwgbG9hZGluZ1xuICpcbiAqIDEuIFNldCB1cCBhIHBvc2l0aW9uaW5nIGNvbnRleHQgaW4gd2hpY2ggdGhlIGltYWdlIGNhbiBzaXQuXG4gKiAyLiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQ6IHdoZXJlIHRoZSBjcm9wcGluZyBoYXBwZW5zLlxuICogMy4gU2hvdyBhIGJhY2tncm91bmQgc3R5bGUgYmVmb3JlIGxhenkgaW1hZ2VzIGFyZSBzaG93blxuICovXG5cbi8vIG1lZGlhIGJveCBjb250YWluaW5nIGltYWdlcyBvciB2aWRlb3Ncbi8vIGJ5IGRlZmF1bHQgYXNwZWN0IHJhdGlvIGlzIGRlZmluZWQgYnkgY29udGVudFxuLm1lZGlhLWJveCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBbMV1cbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvLyBbMl1cblxuICAgIGltZyxcbiAgICB2aWRlbyB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDJweCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgb2JqZWN0LXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFucy10aW1lLS14cyAkdHJhbnMtZnVuYy0tZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtICR0cmFucy10aW1lLS1tICR0cmFucy1mdW5jLS1lYXNlLW91dDtcblxuICAgICAgICAvLyBBZGQgaG92ZXIgc3R5bGUgb24gYSBncm91cCBob3ZlclxuICAgICAgICBAaW5jbHVkZSBob3ZlcignYScpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0taW1nLXNjYWxlKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tZWRpYS1ib3gtLWNvdmVyIHtcbiAgICBAaW5jbHVkZSBjb3Zlci1ib3goKTtcbn1cblxuXG4vLyBtZWRpYSBib3hlcyB3aXRoIGFzcGVjdCByYXRpb3MgaGF2ZSBhIHNwZWNpZmljIHJhdGlvXG4ubWVkaWEtYm94LS1sYW5kc2NhcGUsXG4ubWVkaWEtYm94LS1jdWJlLFxuLm1lZGlhLWJveC0tcG9ydHJhaXQge1xuICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygkcG9ydHJhaXQtcmF0aW8pO1xuXG4gICAgaW1nLFxuICAgIHZpZGVvIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgMnB4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgfVxufVxuXG4ubWVkaWEtYm94LS1sYW5kc2NhcGUge1xuICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygkbGFuZHNjYXBlLXJhdGlvKTtcbn1cblxuLm1lZGlhLWJveC0tY3ViZSB7XG4gICAgQGluY2x1ZGUgYXNwZWN0LXJhdGlvKCRjdWJlLXJhdGlvKTtcbn0iLCJAdXNlIFwic2FzczptYXRoXCI7XG5cbi8vLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgI1ZBUlNcbi8vXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIFN0YXRpYyBTQVNTIHZhcnMgZm9yIHVzZSBpbiBjb21wb25lbnRzLCBvYmplY3RzIGFuZCB1dGlsaXRpZXNcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IENPTE9SU1xuXG4kYmctZGVmYXVsdDogbWFwLWdldCgkYmctY29sb3JzLCBkZWZhdWx0KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFRSQU5TSVRJT05TXG5cbi8vIFRyYW5zaXRpb24gdGltaW5nXG4kdHJhbnMtdGltZS0teHM6IDAuMTI1cztcbiR0cmFucy10aW1lLS1zOiAwLjI1cztcbiR0cmFucy10aW1lLS1tOiAwLjVzO1xuJHRyYW5zLXRpbWUtLWw6IDFzO1xuJHRyYW5zLXRpbWUtLXhsOiAxLjVzO1xuJHRyYW5zLXRpbWUtLXh4bDogM3M7XG4kdHJhbnMtdGltZS0tbW9kYWwtaW46IDAuM3M7XG4kdHJhbnMtdGltZS0tbW9kYWwtb3V0OiAwLjI1cztcbiR0cmFucy10aW1lLS1tb2RhbC1mYWRlOiAwLjhzO1xuJHRyYW5zLXRpbWUtLXN0YXJ0b2ZmOiAxLjJzO1xuXG4vLyBUcmFuc2l0aW9uIGZ1bmNzXG4kdHJhbnMtZnVuYy0tZGVmYXVsdDogY3ViaWMtYmV6aWVyKC4xLC42LC40LDEpOyAvLy8gZWFzZSBvdXRcbiR0cmFucy1mdW5jLS1lYXNlLWluLW91dDogY3ViaWMtYmV6aWVyKC41NSwuMDgsLjIxLC45Mik7XG4kdHJhbnMtZnVuYy0tZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLC4yMywuMDcsMSk7XG4kdHJhbnMtZnVuYy0tbG9nbzogY3ViaWMtYmV6aWVyKC4zMywuMDEsLjA0LC45OSk7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBBU1BFQ1QgUkFUSU9cblxuLy8gQm94IHJhdGlvc1xuJHBvcnRyYWl0LXJhdGlvOiAobWF0aC5kaXYoMywgMikgKiAxMDAlKTsgLy8gMjozXG4kbGFuZHNjYXBlLXJhdGlvOiAobWF0aC5kaXYoMywgNCkgKiAxMDAlKTsgLy8gNDozXG4vLyAkd2lkZS1yYXRpbzogKG1hdGguZGl2KDEsIDIpICogMTAwJSk7IC8vIDI6MVxuJGN1YmUtcmF0aW86IDEwMCU7XG5cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCVVRUT05TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBEZWZhdWx0IGJ1dHRvblxuLy9cbi8vIDEuIEFsbG93IHVzIHRvIHN0eWxlIGJveCBtb2RlbCBwcm9wZXJ0aWVzLlxuLy8gMi4gTGluZSBkaWZmZXJlbnQgc2l6ZWQgYnV0dG9ucyB1cCBhIGxpdHRsZSBuaWNlci5cbi8vIDMuIE1ha2UgYnV0dG9ucyBpbmhlcml0IGZvbnQgc3R5bGVzIChvZnRlbiBuZWNlc3Nhcnkgd2hlbiBzdHlsaW5nIGBpbnB1dGBzIGFzIGJ1dHRvbnMpLlxuLy8gNC4gUmVzZXQvbm9ybWFsaXplIHNvbWUgc3R5bGVzLlxuLy8gNS4gRm9yY2UgYWxsIGJ1dHRvbi1zdHlsZWQgZWxlbWVudHMgdG8gYXBwZWFyIGNsaWNrYWJsZS5cbi8vIDYuIFJlbW92ZSBkZWZhdWx0IGFwcGVhcmFuY2UgaW4gc29tZSBuYXRpdmUgb2NjYXNpb25zXG4vLyA3LiBNYWtlIGJ1dHRvbnMgaW5oZXJpdCBmb250IGNvbG9ycyAob2Z0ZW4gbmVjZXNzYXJ5IHdoZW4gc3R5bGluZyBgYWBzIGFzIGJ1dHRvbnMpLlxuLy9cblxuJF9idG4taDogMnJlbTtcbiRfYnRuLXA6IDFyZW07XG5cbi5idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gWzFdXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gWzJdXG4gICAgZm9udDogaW5oZXJpdDsgLy8gWzNdXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyAvLyBbNF1cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8vIFs1XVxuICAgIGNvbG9yOiBpbmhlcml0OyAvLyBbNl1cbiAgICBvdXRsaW5lOiBub25lOyAvLyBbNF1cbiAgICBib3JkZXI6IG5vbmU7IC8vIFs0XVxuICAgIGJhY2tncm91bmQ6IG5vbmU7IC8vIFs0XVxuICAgIGFwcGVhcmFuY2U6IG5vbmU7IC8vIFs3XVxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8vIFs4XVxuXG4gICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnNDAwJyk7XG4gICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnc2VyaWYnKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXMpO1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwLjhyZW07XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhtZCkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlKCczMDAnKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgfVxufVxuXG4uYnRuLS1wcmltYXJ5IHtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1saWdodCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctYnJvd24pO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJHRyYW5zLXRpbWUtLW0gJHRyYW5zLWZ1bmMtLWRlZmF1bHQ7XG5cbiAgICBAaW5jbHVkZSBob3ZlcigpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmctYnJvd24tZGFyayk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhtZCkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlKCc0MDAnKTtcbiAgICB9XG59XG5cbi5idG4tLW91dGxpbmUtYnJvd24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWJyb3duKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkdHJhbnMtdGltZS0tbSAkdHJhbnMtZnVuYy0tZGVmYXVsdCxcbiAgICAgICAgICAgICAgICBjb2xvciAkdHJhbnMtdGltZS0tbSAkdHJhbnMtZnVuYy0tZGVmYXVsdDtcblxuICAgIEBpbmNsdWRlIGhvdmVyKCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kZWZhdWx0LWRhcmspO1xuICAgICAgICAvLyBjb2xvcjogdmFyKC0tdGV4dC1saWdodCk7XG4gICAgfVxufVxuXG4uYnRuLS1vdXRsaW5lLWxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1icm93bi1saWdodCk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtbGlnaHQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNjYXJkXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uY2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXMpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LWRlZmF1bHQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWRlZmF1bHQpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3ctbSk7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAkdHJhbnMtdGltZS0tbSAkdHJhbnMtZnVuYy0tZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtICR0cmFucy10aW1lLS1tICR0cmFucy1mdW5jLS1lYXNlLW91dDtcblxuICAgIGgzIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzNGV4O1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXgtd2lkdGg6IDUwZXg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93LWwpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93ICR0cmFucy10aW1lLS1tICR0cmFucy1mdW5jLS1lYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtICR0cmFucy10aW1lLS1tICR0cmFucy1mdW5jLS1lYXNlLW91dDtcbiAgICB9XG59XG5cblxuLmNhcmQtLWZ1bGwtYmxlZWQge1xuICAgIG1pbi1oZWlnaHQ6IDE2cmVtO1xufVxuXG4uY2FyZF9fYm9keSB7XG4gICAgcGFkZGluZzogdmFyKC0tYm9keS1wKTtcbiAgICBmbGV4LWdyb3c6IDE7XG59XG5cbi5jYXJkX19uYW1lIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXN0eWxlKCc0MDAnKTtcbiAgICBtaW4taGVpZ2h0OiAyLjRyZW07XG59XG5cbi5jYXJkX19jbGFpbSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnNTAwJyk7XG4gICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnc2VyaWYnKTtcbn1cblxuLmNhcmRfX3RleHQge1xuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWQpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnMzAwJyk7XG4gICAgfVxufVxuXG4uY2FyZF9fbWVkaWEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBoZWlnaHQ6IDEwcmVtO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWJyb3duKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1ib2R5LXApO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1ib3JkZXItcmFkaXVzLXMpIHZhcigtLWJvcmRlci1yYWRpdXMtcyk7XG5cbiAgICAuY2FyZC0tZnVsbC1ibGVlZCAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpOyAvLyBJbXByb3ZlIHJlbmRlcmluZ1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zLXRpbWUtLW0gJHRyYW5zLWZ1bmMtLWVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ICR0cmFucy10aW1lLS1tICR0cmFucy1mdW5jLS1lYXNlLW91dDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBob3ZlcignLmNhcmQnKSB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2FyZF9fYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiIsIi5oZXJvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWQpIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IHZhcigtLW5hdi1oKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG59XG5cbi5oZXJvX19jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10byhtZCkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5oZXJvX19pbWFnZSB7XG4gICAgQGluY2x1ZGUgY292ZXItYm94KCk7XG5cbiAgICBpbWcge1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNQUk9TRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnByb3NlIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXG4gICAgaDEsXG4gICAgaDIge1xuICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUoJzUwMCcpO1xuICAgIH1cblxuICAgIGgxLFxuICAgIGgyIHtcbiAgICAgICAgLS1mbG93LXNwYWNlOiB2YXIoLS1zaXplLTgwMCk7XG4gICAgfVxuXG4gICAgaDEsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgICBjb2xvcjogdmFyKC0tdGV4dC1icm93bik7XG5cbiAgICAgICAgJiArIHAge1xuICAgICAgICAgICAgLS1mbG93LXNwYWNlOiAwLjFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IGRpc2Mgb3V0c2lkZTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIC0tZmxvdy1zcGFjZTogdmFyKC0tc2l6ZS0xMjAwKTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXRleHQtYnJvd24pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8obWQpIHtcbiAgICAgICAgaDEsXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUoJzYwMCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgnNTAwJyk7XG4gICAgICAgIH1cblxuICAgICAgICBoNCxcbiAgICAgICAgaDUsXG4gICAgICAgIGg2IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtc3R5bGUoJzQwMCcpO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNURVhULVNUWUxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gUmVzcG9uc2l2ZSBVdGlsaXRpZXMgZm9yIHRleHQgbGF5b3V0IGZvcm1hdHNcbkBlYWNoICRuYW1lIGluIG1hcC1rZXlzKCR0ZXh0LXN0eWxlcykge1xuICAgIC50ZXh0LXN0eWxlLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1zZWxlY3Rvcih0cnVlLCBtZCBsZykge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1zdHlsZSgkbmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI2FjY2Vzc2liaWxpdHlcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIFV0aWxpdGllcyBmb3IgaW1wcm92aW5nIGFjY2Vzc2liaWxpdHkgd2l0aCBzY3JlZW4gcmVhZGVycy5cblxuLy8gVXNlIHNyLW9ubHkgdG8gaGlkZSBhbiBlbGVtZW50IHZpc3VhbGx5IHdpdGhvdXQgaGlkaW5nIGl0IGZyb20gc2NyZWVuIHJlYWRlcnM6XG4uZm9jdXMtb25seTpub3QoOmZvY3VzKSxcbi5zci1vbmx5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG59XG5cbi5mb2N1cy1vbmx5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4iLCJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNaLUlOREVYXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBBZGRpbmcgZ3JpZCB1dGlsaXR5IGNsYXNzZXNcbi8vIE5hbWluZyBjb252ZW50aW9uIGJhc2VkIG9uIHRhaWx3aW5kXG5cbi8vIFNDU1MgTWFwIFN0cnVjdHVyZVxuLy8gJG1hcC1uYW1lOiAoXG4vLyAgICAgICdwcm9wZXJ0eSc6IChcbi8vICAgICAgICAgICdjbGFzcy1uYW1lJzogdmFsdWUsXG4vLyAgICAgICksXG4vLyApO1xuXG4uei0xIHtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4uei05OTkge1xuICAgIHotaW5kZXg6IDk5OTtcbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4kX2JhY2tncm91bmQtLWdyaWQ6ICMxZGZmMDA7XG5cbi5ncmlkLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmlzLWRldmVsb3BtZW50IHtcbiAgICAuZ3JpZC10b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBib3R0b206IDZyZW07XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiBtYXAtZ2V0KCR6LWluZGV4LCBncmlkLXRvZ2dsZSk7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGlkZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRfYmFja2dyb3VuZC0tZ3JpZDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjdXJzb3I6IGhlbHA7XG4gICAgICAgICAgICBtYXJnaW46IDEuNnJlbTtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAtMjAwdnc7IC8vIGhhdmUgdGV4dCBpbnNpZGUgbGFiZWwgdG8gcGFzcyBsaWdodGhvdXNlIHRlc3RcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0OmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkbygpO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxLjZyZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkX2JhY2tncm91bmQtLWdyaWQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50b3VjaCAmIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uby10b3VjaCAmIHtcbiAgICAgICAgICAgICY6YWN0aXZlICsgLmdyaWQtb3ZlcmxheSxcbiAgICAgICAgICAgICY6Zm9jdXMgKyAuZ3JpZC1vdmVybGF5LFxuICAgICAgICAgICAgJjpob3ZlciArIC5ncmlkLW92ZXJsYXkge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdyaWQgb3ZlcmxheVxuICAgIC5ncmlkLW92ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgei1pbmRleDogbWFwLWdldCgkei1pbmRleCwgZ3JpZC1vdmVybGF5KTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zLXRpbWUtLXMgJHRyYW5zLWZ1bmMtLWRlZmF1bHQ7XG5cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JpZC1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShtYWdlbnRhLCAwLjEpO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKG1hZ2VudGEsIDAuNCk7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKG1hZ2VudGEsIDAuNCk7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JpZC0tc20ge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKHNtLW9ubHkpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JpZC0tbWQge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKG1kLW9ubHkpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZ3JpZC0tbGcge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKGxnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gYm9keSBtYXJnaW5cbiAgICAuYm9keS1tYXJnaW4ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgei1pbmRleDogbWFwLWdldCgkei1pbmRleCwgZ3JpZC1vdmVybGF5KTtcbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkICRfYmFja2dyb3VuZC0tZ3JpZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zLXRpbWUtLXMgJHRyYW5zLWZ1bmMtLWRlZmF1bHQ7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tYm9keS1wKTtcbiAgICB9XG5cbiAgICAvLyBNYWtlIGdyaWQgdmlzaWJsZVxuICAgICYuaXMtZ3JpZC12aXNpYmxlIHtcbiAgICAgICAgLmdyaWQtb3ZlcmxheSxcbiAgICAgICAgLmJvZHktbWFyZ2luIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsbnVsbF0sInNvdXJjZVJvb3QiOiIifQ==*/