.mdl-shadow--2dp,.responsive-block{box-shadow:0 2px 2px 0 rgba(0,0,0,.0466667),0 3px 1px -2px rgba(0,0,0,.0666667),0 1px 5px 0 rgba(0,0,0,.04)}.mdl-shadow--3dp{box-shadow:0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12)}.mdl-shadow--4dp{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2)}.mdl-shadow--6dp{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)}.mdl-shadow--8dp{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.2)}.mdl-shadow--16dp{box-shadow:0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)}.mdl-shadow--24dp{box-shadow:0 9px 46px 8px rgba(0,0,0,.14),0 11px 15px -7px rgba(0,0,0,.12),0 24px 38px 3px rgba(0,0,0,.2)}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#a67f59;background:rgba(255,255,255,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.f-color-chip{height:60px;width:60px;border:1px solid rgba(0,0,0,.5);border-radius:50%;margin-bottom:16px}.f-color-chip__text{text-align:center}.f-color-chip__border{text-align:center;border-width:2px;border-style:solid}.f-color-chips>div{margin-right:32px}.f-color-chip-small{height:30px;width:30px;border:1px solid rgba(0,0,0,.5);border-radius:50%;margin-bottom:10px}.f-color-chip-small__text{text-align:center}.f-color{margin-bottom:24px}.f-color-chip-text{font-size:70px;line-height:1.4;font-weight:500}.f-color-chip-shape{height:30px;width:30px;margin-bottom:24px}.f-controls{margin-right:8px}.f-controls .f-control{display:block;float:left;text-align:center;width:33.33333%;margin:0;padding:1rem 0}.f-controls .mdl-switch{margin:0 32px;width:auto}.f-controls .mdl-switch span{align-items:center;flex-direction:row;display:flex}.f-controls .mdl-switch span i{margin-left:4px}.f-control{display:inline-block;cursor:pointer;margin-left:.66rem}.f-control svg{width:.875rem;height:.875rem}.f-control svg use,.f-item-controls .f-control use{fill:color(light)}.f-control-bar{padding:1rem 0}.f-menu-toggle{cursor:pointer;vertical-align:middle}.f-menu-toggle svg{display:block;float:left;margin-bottom:-1px}.f-item-group{margin-bottom:32px;border-bottom:1px solid color(light)}.f-item-code{overflow:hidden;position:relative}.f-item-preview .ric-footer__container,.f-item-preview .ric-header__container,.f-item-preview .ric-metaheader__container{width:100%!important}.f-item-code-container{padding-top:2rem}.f-item-border-bottom{border-bottom:1px solid color(light)}.f-item-heading-group{vertical-align:middle}.f-item-controls,.f-item-heading{display:inline-block;vertical-align:middle}.f-item-heading{line-height:1}.f-item-controls{margin-left:.5rem}.f-item-controls .f-control{width:.875rem;height:.875rem;display:block;float:left}.f-item-controls .f-control:hover use{fill:color(normal)}.f-item-hidden{display:none}.f-item-notes{color:rgba(0,0,0,.54);margin-bottom:32px}.f-menu{z-index:1;flex:0 0 180px;margin-right:16px;order:0;overflow:auto}@media only screen and (max-width:960px){.f-menu{flex-direction:row;padding-top:0;overflow:none;position:static;border-bottom:solid 1px rgba(0,0,0,.15);overflow-x:scroll}}.f-menu a{display:block;padding:4px 32px;color:rgba(0,0,0,.87);font-weight:400}.f-menu a:hover,.overview-principle>div span{color:rgba(0,0,0,.54)}.f-menu a.f-active{box-shadow:inset .25rem 0 0 0 #0096d8}@media only screen and (max-width:960px){.f-menu a:not(.f-menu__heading){display:none}}.f-menu .f-menu__heading{padding-left:16px;font-weight:500}.f-menu .f-menu__heading:hover,.f-menu a{text-decoration:none}.f-menu .f-menu-section{margin:8px 0}.ricardo-icons__item{margin:20px 0}.ricardo-icons__code{margin:0 10px}.f-typo-item{margin:8px 0;padding:8px 0}.f-typo-item:hover{background-color:rgba(0,0,0,.1)}.typo-block{background-color:rgba(0,0,0,.15)}.typo-image-block{margin-top:20px;height:200px;width:400px;background-color:rgba(0,0,0,.08)}code{margin-left:1px;margin-right:1px;-webkit-font-smoothing:auto;border-radius:2px;padding:4px 0}code,pre[class*=language-]{background-color:#fff}pre[class*=language-]:hover{background-color:#fafafa}pre[class*=language-] code{background-color:transparent}.overview-principle{text-align:center;margin:16px 0}.overview-principle>div{width:120px;margin:0 16px}.overview-principle>div span:first-of-type{color:rgba(0,0,0,.87);font-size:16px;margin-top:8px}.container-typography{margin-right:32px}.header-brand{padding:16px}.page-content{position:relative;max-width:1200px;margin:auto}.page-content-container{margin:32px 0 64px}.media-queries-ui-container{margin-right:8px;margin-top:32px}.mdl-data-table tbody tr.hovered{background-color:#eee}.media-query-ui{height:20px;margin-bottom:16px;position:relative;padding:0 8px}.media-query-ui span{font-size:12px}.media-query-ui-inside{background-color:#c6ecff;border-right:4px solid #48a7f3}.media-query-ui-inside.hovered,.media-query-ui-inside:hover{background-color:#92cbf8}.media-query-ui-outside{background-color:#f2d8af}.media-query-ui-outside-1{border-right:4px solid #f37a22;margin-right:8px}.media-query-ui-outside-2{border-left:4px solid #f37a22;margin-left:8px}.media-query-ui-outside.hovered,.media-query-ui-outside:hover{background-color:#ffc16a}.media-query-ui-between{margin:0 8px;background-color:#cce9ab;border-left:4px solid #6a9e3f;border-right:4px solid #6a9e3f}.media-query-ui-between.hovered,.media-query-ui-between:hover{background-color:#b3dd82}.responsive-container{margin-top:32px}.responsive-container .mdl-radio{margin:0 8px}.responsive-block{height:600px;max-height:550px;margin:32px auto 0;width:100%;background-color:#fff;border:1px solid #d3d3d3}@media only screen and (max-width:600px){.responsive-block{margin-right:0;height:60vw}}.responsive-block>div{height:100%}.responsive-block-mobile_s{width:35%}.responsive-block-mobile_m{width:45%;height:600px;max-height:600px}.responsive-block-mobile_l{width:55%;height:650px;max-height:650px}.responsive-block-tablet{width:80%;height:800px;max-height:800px}.responsive-block-laptop{width:92%}.responsive-block-laptop .responsive-block-content,.responsive-block-laptop_4k,.responsive-block-laptop_l{width:100%}.responsive-block-laptop .responsive-block-menu{width:20%;height:100%}.responsive-block-laptop_l .responsive-block-content{width:80%;margin:auto}.responsive-block-laptop_l .responsive-block-menu{width:20%;height:100%}.responsive-block-laptop_4k .responsive-block-content{width:50%;margin:auto}.responsive-block-laptop_4k .responsive-block-menu{width:20%;height:100%}.responsive-block .center-text{display:flex;align-items:center;justify-content:center}.responsive-block .center-text span{max-width:50%}.responsive-block-metadata{background-color:#b39ddb;height:25px}.responsive-block-header{background-color:#90caf9;height:60px}.responsive-block-main{background-color:#ffcc80}.responsive-block-menu{background-color:#a5d6a7;height:40px}.responsive-block-footer{background-color:#e6ee9c;height:25px}.responsive-block-footer-meta{background-color:#ef9a9a;height:50px}.icons-container>div{margin:8px}.icons-container i.material-icons{width:48px;height:48px;line-height:48px;text-align:center}.footer-bar{background-color:#e4e4e4;padding:8px 16px}.footer-bar>div{max-width:1200px;margin:auto}.footer-bar .metaheader-footer{margin-bottom:12px}.footer-bar .metaheader-footer>div:not(:first-child){margin-top:8px}.codepen-button{z-index:1000;cursor:pointer;background-image:url(../images/codepen-logo.png);background-repeat:no-repeat;background-position:5px center;background-size:26px 26px;position:absolute;top:0;right:-140px;height:46px;display:inline-block;opacity:.6;overflow:hidden;box-sizing:border-box;white-space:nowrap;color:#000;padding:13px 15px 5px 50px;transition:right .5s,background-color .5s,opacity .5s,background-size .3s}.codepen-button::after{content:'Open in CodePen'}.codepen-button:hover{opacity:1;right:0;background-size:36px 36px;background-color:#eee;border-bottom-left-radius:10px}.docs-layout pre[class*=language-markup]{padding-right:0}.docs-layout pre[class*=language-markup].codepen-button-disabled:not code{padding-right:50px}.codepen-button-disabled .codepen-button{display:none}.layout.horizontal,.layout.horizontal-reverse,.layout.vertical,.layout.vertical-reverse{display:flex}.layout.inline{display:inline-flex}.layout.horizontal{flex-direction:row}.layout.horizontal-reverse{flex-direction:row-reverse}.layout.vertical{flex-direction:column}.layout.vertical-reverse{flex-direction:column-reverse}.layout.wrap{flex-wrap:wrap}.layout.no-wrap{flex-wrap:nowrap}.layout.wrap-reverse{flex-wrap:wrap-reverse}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex,.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-6{flex:6}.flex-7{flex:7}.flex-8{flex:8}.flex-9{flex:9}.flex-10{flex:10}.flex-11{flex:11}.flex-12{flex:12}.layout.start{align-items:flex-start}.layout.center,.layout.center-center{align-items:center}.layout.end{align-items:flex-end}.layout.start-justified{justify-content:flex-start}.center-center,.center-justified{justify-content:center}.end-justified{justify-content:flex-end}.around-justified{justify-content:space-around}.justified{justify-content:space-between}.self-start{-ms-align-self:flex-start;align-self:flex-start}.self-center{-ms-align-self:center;-ms-grid-row-align:center;align-self:center}.self-end{-ms-align-self:flex-end;align-self:flex-end}.self-stretch{-ms-align-self:stretch;-ms-grid-row-align:stretch;align-self:stretch}.block{display:block}[hidden]{display:none!important}.invisible{visibility:hidden!important}.relative{position:relative}.fit{position:absolute;top:0;right:0;bottom:0;left:0}body.fullbleed{margin:0;height:100vh}.scroll{-webkit-overflow-scrolling:touch;overflow:auto}.fixed-bottom,.fixed-left,.fixed-right,.fixed-top{position:fixed}.fixed-top{top:0;left:0;right:0}.fixed-right{top:0;right:0;bottom:0}.fixed-bottom{right:0;bottom:0;left:0}.fixed-left{top:0;bottom:0;left:0}.ric-pagination{margin-bottom:30px}@media screen and (max-width:600px){.ric-pagination{text-align:center}}pre{overflow:auto}.styleguide-fabricator-controls{display:flex;align-items:flex-end;justify-content:space-between;padding:15px 0}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9tZGwvc2hhZG93L19zaGFkb3cuc2NzcyIsIi4uLy4uLy4uL2xpYi9tZGwvX21peGlucy5zY3NzIiwicGFydGlhbHMvX2NvZGUuc2NzcyIsIm1haW4uY3NzIiwicGFydGlhbHMvX2NvbG9yLWNoaXBzLnNjc3MiLCJwYXJ0aWFscy9fY29udHJvbHMuc2NzcyIsInBhcnRpYWxzL19pdGVtLnNjc3MiLCJwYXJ0aWFscy9fbWVudS5zY3NzIiwiLi4vLi4vLi4vbGliL3JpY2FyZG8vbGF5b3V0L19taXhpbnMuc2NzcyIsImZhYnJpY2F0b3Iuc2NzcyIsInBhcnRpYWxzL19yaWNhcmRvLWljb25zLnNjc3MiLCJwYXJ0aWFscy9fdHlwby5zY3NzIiwiY29kZXBlbi5zY3NzIiwiaXJvbi1mbGV4LWxheW91dC5zY3NzIiwicGFnaW5hdGlvbi5zY3NzIiwibWFpbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CQSxnQixDQUFBLGlCLENDb05FLDJHLENEaE5GLGdCLENDcU5FLGdHLENEak5GLGdCLENDc05FLGlHLENEbE5GLGdCLENDdU5FLGtHLENEbk5GLGdCLENDd05FLHNHLENEcE5GLGlCLENDME5FLHdHLENEdE5GLGlCLENDNE5FLHlHLENDaFFGLHNCLENBQUEscUIsQ0FFQyxVLENBQ0EsYyxDQUNBLHNCLENBQ0EsaUUsQ0FDQSxlLENBQ0EsZSxDQUNBLG1CLENBQ0EsaUIsQ0FDQSxnQixDQUNBLGUsQ0FFQSxlLENBRUEsVSxDQUVBLG9CLENBRUEsZ0IsQ0FDQSxZLENDaVl3Qyx1QyxDRDlYekMsc0MsQ0FBQSxzQyxDQUFBLHFDLENBRUMsZ0IsQ0FDQSxrQixDQ2dZbUMsa0MsQ0Q3WHBDLGlDLENBQUEsaUMsQ0FBQSxnQyxDQUVDLGdCLENBQ0Esa0IsQ0FHRCxhQUNDLHNCLENBQUEscUIsQ0FFQyxnQixDQUhGLENBUUEscUIsQ0FDQyxXLENBQ0EsYSxDQUNBLGEsQ0FHRCxnQyxDQUFBLHFCLENBRUMsa0IsQ0FJRCxnQyxDQUNDLFksQ0FDQSxrQixDQUNBLGtCLENDMlhjLFksQ0R4WGYsYyxDQ3VYYyxjLENEdlhkLGEsQ0FJQyxhLENBR0Qsa0IsQ0FDQyxVLENBR0QsVSxDQUNDLFUsQ0N1WFUsYyxDQUVHLGUsQ0FFQSxjLENBSEMsYSxDRHJYZixlLENDdVhnQixhLENEdlhoQixVLENBT0MsVSxDQUdELGdCLENDcVhZLGMsQ0FERSxXLENBRUMsZSxDRHRYZixlLENDbVhpQixhLENEN1doQixVLENDc1hVLDJCLENBQ2lCLG9CLENEcFg1QixhLENBQUEsZSxDQ2tYYyxVLENEN1diLGEsQ0FDQSwrQixDQUdELGEsQ0FBQSxpQixDQ2lYa0IsYyxDRDlXakIsVSxDQUdELGUsQ0FDQyxhLENBR0QsZ0IsQ0FBQSxZLENDK1dpQixlLENENVdoQixVLENBR0QsVyxDQUFBLGdCLENBRUMsZSxDQUVELGEsQ0FDQyxpQixDQUdELGEsQ0FDQyxXLENFeElELGEsQ0FDSSxXLENBQ0EsVSxDQUNBLCtCLENBQ0EsaUIsQ0FDQSxrQixDQUVKLG1CLENBQ0ksaUIsQ0FFSixxQixDQUNJLGlCLENBQ0EsZ0IsQ0FDQSxrQixDQUVKLGtCLENBRVEsaUIsQ0FHUixtQixDQUNJLFcsQ0FDQSxVLENBQ0EsK0IsQ0FDQSxpQixDQUNBLGtCLENBRUoseUIsQ0FDSSxpQixDQUVKLFEsQ0FDSSxrQixDQUVKLGtCLENBQ0ksYyxDQUNBLGUsQ0FDQSxlLENBRUosbUIsQ0FDSSxXLENBQ0EsVSxDQUNBLGtCLENDdkNKLFcsQ0FDSSxnQixDQURKLHNCLENBSUUsYSxDQUNBLFUsQ0FDQSxpQixDQUNBLGUsQ0FDQSxRLENBQ0EsYyxDQVRGLHVCLENBYUUsYSxDQUNBLFUsQ0FkRiw0QixDQW1CRyxrQixDQUNBLGtCLENBQ0EsWSxDQXJCSCw4QixDQWlCSSxlLENBU0osVSxDQUNDLG9CLENBQ0EsYyxDQUNBLGtCLENBSEQsYyxDQU1FLGEsQ0FDQSxjLENBUEYsa0IsQ0NXQSwrQixDRERHLGlCLENBS0gsYyxDQUNDLGMsQ0FHRCxjLENBQ0MsYyxDQUNBLHFCLENBRkQsa0IsQ0FLRSxhLENBQ0EsVSxDQUNBLGtCLENDdERGLGEsQ0FDQyxrQixDQUNBLG9DLENBR0QsWSxDQUNHLGUsQ0FDQyxpQixDQU9KLHNDLENBQUEsc0MsQ0FBQSwwQyxDQUVFLG9CLENBSUYsc0IsQ0FDQyxnQixDQUdELHFCLENBQ0Msb0MsQ0FHRCxxQixDQUNDLHFCLENBVUQsZ0IsQ0FQQSxlLENBUUMsb0IsQ0FDQSxxQixDQVRELGUsQ0FHQyxhLENBSUQsZ0IsQ0FHQyxpQixDQUhELDJCLENBTUUsYSxDQUNBLGMsQ0FDQSxhLENBQ0EsVSxDQVRGLHFDLENBYUksa0IsQ0FVSixjLENBQ0MsWSxDQUdELGEsQ0FDQyxxQixDQUNBLGtCLENDL0RELE8sQ0FDQyxTLENBQ0EsYyxDQUNDLGlCLENBQ0QsTyxDQUNBLGEsQ0NrQkcseUNEdkJKLE8sQ0FRRSxrQixDQUNBLGEsQ0FDRSxhLENBQ0YsZSxDQUNDLHVDLENBQ0QsaUIsQ0NVRSxDRHZCSixTLENBaUJFLGEsQ0FDQSxnQixDQUNBLHFCLENBRUEsZSxDQXJCRixlLENFaUNBLDRCLENGVEcscUIsQ0F4Qkgsa0IsQ0E0QkcscUMsQ0NMQyx5Q0R2QkosK0IsQ0FnQ0ksWSxDQ1RBLENEdkJKLHdCLENBdUNFLGlCLENBQ0EsZSxDQXhDRiw4QixDQUFBLFMsQ0EyQ0csb0IsQ0EzQ0gsdUIsQ0FnREUsWSxDR3JERixvQixDQUVJLGEsQ0FGSixvQixDQUtJLGEsQ0NMSixZLENBQ0ksWSxDQUNBLGEsQ0FGSixrQixDQUlRLCtCLENBR1IsVyxDQUNJLGdDLENBRUosaUIsQ0FDSSxlLENBQ0EsWSxDQUNBLFcsQ0FDQSxnQyxDRkVKLEksQ0FDQyxlLENBQ0EsZ0IsQ0FDQSwyQixDQUVBLGlCLENBZUEsYSxDQXBCRCxJLENBUUEscUIsQ0FDQyxxQixDQURELDJCLENBSUUsd0IsQ0FKRiwwQixDQU9FLDRCLENBT0YsbUIsQ0FDQyxpQixDQUNBLGEsQ0FGRCx1QixDQUlFLFcsQ0FDQSxhLENBTEYsMEMsQ0FTSSxxQixDQUNBLGMsQ0FDQSxjLENBS0oscUIsQ0FDQyxpQixDQUVELGEsQ0FDSSxZLENBRUosYSxDQUNDLGlCLENBQ0EsZ0IsQ0FDQSxXLENBRUQsdUIsQ0FFQyxrQixDQUdELDJCLENBQ0MsZ0IsQ0FDQSxlLENBRUQsZ0MsQ0FDSSxxQixDQUVKLGUsQ0FDQyxXLENBQ0Esa0IsQ0FDRSxpQixDQUNGLGEsQ0FKRCxvQixDQU1FLGMsQ0FORixzQixDQVNFLHdCLENBQ0EsOEIsQ0FWRiw4QixDQUFBLDRCLENBWUcsd0IsQ0FaSCx1QixDQWdCRSx3QixDQWhCRix5QixDQWtCRyw4QixDQUNBLGdCLENBbkJILHlCLENBc0JHLDZCLENBQ0EsZSxDQXZCSCwrQixDQUFBLDZCLENBMEJHLHdCLENBMUJILHVCLENBOEJFLFksQ0FDQSx3QixDQUNBLDZCLENBQ0EsOEIsQ0FqQ0YsK0IsQ0FBQSw2QixDQW1DRyx3QixDQUtILHFCLENBQ0MsZSxDQURELGdDLENBR0UsWSxDQUlGLGlCLENBRUMsWSxDQUNBLGdCLENBQ0Esa0IsQ0FDQSxVLENBQ0EscUIsQ0FDQSx3QixDRHRIRyx5Q0MrR0osaUIsQ0FTRSxjLENBQ0EsVyxDRHpIRSxDQytHSixxQixDQWFFLFcsQ0FiRiwwQixDQWdCRSxTLENBaEJGLDBCLENBbUJFLFMsQ0FDQSxZLENBQ0EsZ0IsQ0FyQkYsMEIsQ0F3QkUsUyxDQUNBLFksQ0FDQSxnQixDQTFCRix3QixDQTZCRSxTLENBQ0EsWSxDQUNBLGdCLENBL0JGLHdCLENBa0NFLFMsQ0FsQ0Ysa0QsQ0FBQSwyQixDQUFBLDBCLENBb0NHLFUsQ0FwQ0gsK0MsQ0F1Q0csUyxDQUNBLFcsQ0F4Q0gsb0QsQ0E4Q0csUyxDQUNBLFcsQ0EvQ0gsaUQsQ0FrREcsUyxDQUNBLFcsQ0FuREgscUQsQ0F5REcsUyxDQUNBLFcsQ0ExREgsa0QsQ0E2REcsUyxDQUNBLFcsQ0E5REgsOEIsQ0FrRUksWSxDQUNGLGtCLENBQ0Esc0IsQ0FwRUYsbUMsQ0FzRUssYSxDQXRFTCwwQixDQTBFRSx3QixDQUNBLFcsQ0EzRUYsd0IsQ0E4RUUsd0IsQ0FDQSxXLENBL0VGLHNCLENBa0ZFLHdCLENBbEZGLHNCLENBcUZFLHdCLENBQ0EsVyxDQXRGRix3QixDQXlGRSx3QixDQUNBLFcsQ0ExRkYsNkIsQ0E0Rkcsd0IsQ0FDQSxXLENBSUgsb0IsQ0FFRSxVLENBRkYsaUMsQ0FLRSxVLENBQ0EsVyxDQUNBLGdCLENBQ0EsaUIsQ0FJRixXLENBQ0Msd0IsQ0FDQSxnQixDQUZELGUsQ0FLRSxnQixDQUNBLFcsQ0FORiw4QixDQVNFLGtCLENBVEYsb0QsQ0FXRyxjLENHblBILGUsQ0FDRSxZLENBQ0EsYyxDQUNBLGdELENBQ0EsMkIsQ0FDQSw4QixDQUNBLHlCLENBQ0EsaUIsQ0FDQSxLLENBQ0EsWSxDQUNBLFcsQ0FDQSxvQixDQUNBLFUsQ0FDQSxlLENBQ0EscUIsQ0FDQSxrQixDQUNBLFUsQ0FDQSwwQixDQUNBLHlFLENBRUYsc0IsQ0FDRSx5QixDQUVGLHFCLENBQ0UsUyxDQUNBLE8sQ0FDQSx5QixDQUNBLHFCLENBQ0EsOEIsQ0FFRix3QyxDQUNFLGUsQ0FFRix5RSxDQUNFLGtCLENBRUYsd0MsQ0FDRSxZLENDdENGLGtCLENBQUEsMEIsQ1Y0NEIyQixnQixDQUNWLHdCLENVdjRCYixZLENBR0osYyxDQUdJLG1CLENBR0osa0IsQ0FHSSxrQixDQUdKLDBCLENBR0ksMEIsQ0FHSixnQixDQUdJLHFCLENBR0osd0IsQ0FHSSw2QixDQUdKLFksQ0FHSSxjLENBR0osZSxDQUdJLGdCLENBR0osb0IsQ0FHSSxzQixDQUdKLFUsQ0FHSSxhLENBR0osVSxDQUdJLFMsQ0FHSixLLENBQUEsTyxDQUlJLE0sQ0FHSixPLENBR0ksTSxDQUdKLE8sQ0FHSSxNLENBR0osTyxDQUdJLE0sQ0FHSixPLENBR0ksTSxDQUdKLE8sQ0FHSSxNLENBR0osTyxDQUdJLE0sQ0FHSixPLENBR0ksTSxDQUdKLE8sQ0FHSSxNLENBR0osUSxDQUdJLE8sQ0FHSixRLENBR0ksTyxDQUdKLFEsQ0FHSSxPLENBS0osYSxDQUdJLHNCLENBR0osYyxDQUFBLHFCLENBSUksa0IsQ0FHSixXLENBR0ksb0IsQ0FLSix1QixDQUdJLDBCLENBR0osYyxDQUFBLGlCLENBSUksc0IsQ0FHSixjLENBR0ksd0IsQ0FHSixpQixDQUdJLDRCLENBR0osVSxDQUdJLDZCLENBS0osVyxDQUNJLHlCLENBRUEscUIsQ0FHSixZLENBQ0kscUIsQ0FFQSx5QixDQUFBLGlCLENBR0osUyxDQUNJLHVCLENBRUEsbUIsQ0FHSixhLENBQ0ksc0IsQ0FFQSwwQixDQUFBLGtCLENBT0osTSxDQUNJLGEsQ1Z5MkJKLFEsQ1VwMkJJLHNCLENBR0osVSxDQUNJLDJCLENBR0osUyxDQUNJLGlCLENBR0osSSxDQUNJLGlCLENBQ0EsSyxDQUNBLE8sQ0FDQSxRLENBQ0EsTSxDQUdKLGMsQ0FDSSxRLENBQ0EsWSxDQUdKLE8sQ0FDSSxnQyxDQUNBLGEsQ0FLSixhLENBQUEsVyxDVjZ4QlksWSxDQUNDLFUsQ1UxeEJULGMsQ0FHSixVLENBQ0ksSyxDQUNBLE0sQ0FDQSxPLENBR0osWSxDQUNJLEssQ0FDQSxPLENBQ0EsUSxDQUdKLGEsQ0FDSSxPLENBQ0EsUSxDQUNBLE0sQ0FHSixXLENBQ0ksSyxDQUNBLFEsQ0FDQSxNLENDblNKLGUsQ0FDRSxrQixDQUNBLG9DQUZGLGUsQ0FHSSxpQixDQURGLENDU0YsRyxDQUNFLGEsQ0FHRiwrQixDQUNFLFksQ0FDQSxvQixDQUNBLDZCLENBQ0EsYyIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLm1kbC1zaGFkb3ctLTJkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTNkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0zZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTRkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy00ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTZkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy02ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLThkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy04ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTE2ZHAge1xuICBAaW5jbHVkZSBzaGFkb3ctMTZkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tMjRkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0yNGRwKCk7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBUeXBvZ3JhcGh5ICovXG5cbkBtaXhpbiB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGlmICR1c2VQcmVmZXJyZWQge1xuICAgIGZvbnQtZmFtaWx5OiAkcHJlZmVycmVkX2ZvbnQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tZGlzcGxheS00KCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDY0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1kaXNwbGF5LTMoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1kaXNwbGF5LTIoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogNDVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWRpc3BsYXktMSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4xNztcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8taGVhZGxpbmUoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzM7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLXRpdGxlKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLXN1YmhlYWQoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tc3ViaGVhZC0yKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1ib2R5LTIoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiBmYWxzZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIEBpZiAkdXNlUHJlZmVycmVkIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9IEBlbHNlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWJvZHktMSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1jYXB0aW9uKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWJsb2NrcXVvdGUoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuXG4gICY6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTAuNWVtO1xuICAgIGNvbnRlbnQ6ICfigJwnO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJ+KAnSc7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjA1ZW07XG4gIH1cblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tbWVudSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWJ1dHRvbigkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWljb24oKSB7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbi8qIFNoYWRvd3MgKi9cblxuLy8gRm9jdXMgc2hhZG93IG1peGluLlxuQG1peGluIGZvY3VzLXNoYWRvdygpIHtcbiAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsMCwwLC4xOCksMCA4cHggMTZweCByZ2JhKDAsMCwwLC4zNik7XG59XG5cbkBtaXhpbiBzaGFkb3ctMmRwKCRmYWN0b3I6Mykge1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkgLyAkZmFjdG9yKSxcbiAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5IC8gJGZhY3RvciksXG4gICAgICAgICAgICAgIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5IC8gJGZhY3Rvcik7XG59XG5AbWl4aW4gc2hhZG93LTNkcCgpIHtcbiAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAxcHggOHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpO1xufVxuQG1peGluIHNoYWRvdy00ZHAoKSB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5AbWl4aW4gc2hhZG93LTZkcCgpIHtcbiAgYm94LXNoYWRvdzogMCA2cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMXB4IDE4cHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5AbWl4aW4gc2hhZG93LThkcCgpIHtcbiAgYm94LXNoYWRvdzogMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuXG5AbWl4aW4gc2hhZG93LTE2ZHAoKSB7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwICA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwICA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5cbkBtaXhpbiBzaGFkb3ctMjRkcCgpIHtcbiAgYm94LXNoYWRvdzogMCAgOXB4IDQ2cHggIDhweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAyNHB4IDM4cHggIDNweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpO1xufVxuXG4vKiBBbmltYXRpb25zICovXG5cbkBtaXhpbiBtYXRlcmlhbC1hbmltYXRpb24tZmFzdC1vdXQtc2xvdy1pbigkZHVyYXRpb246MC4ycykge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW47XG59XG5cbkBtaXhpbiBtYXRlcmlhbC1hbmltYXRpb24tbGluZWFyLW91dC1zbG93LWluKCRkdXJhdGlvbjowLjJzKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtbGluZWFyLW91dC1zbG93LWluO1xufVxuXG5AbWl4aW4gbWF0ZXJpYWwtYW5pbWF0aW9uLWZhc3Qtb3V0LWxpbmVhci1pbigkZHVyYXRpb246MC4ycykge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LWxpbmVhci1pbjtcbn1cblxuQG1peGluIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCRkdXJhdGlvbjowLjJzKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcbn1cblxuLyogRGlhbG9nICovXG5cbkBtaXhpbiBkaWFsb2ctd2lkdGgoJHVuaXRzOjUpIHtcbiAgQGlmKHR5cGVfb2YoJHVuaXRzKSAhPSAnbnVtYmVyJykge1xuICAgIEBlcnJvciBcIlRoZSB1bml0IGdpdmVuIHRvIGRpYWxvZy13aWR0aCBzaG91bGQgYmUgYSBudW1iZXIuXCI7XG4gIH1cbiAgLy8gNTZkcCBpcyB0aGUgYmFzZSB1bml0IHdpZHRoIGZvciBEaWFsb2dzLlxuICAvLyBXaXRoIDUgdW5pdHMgYmVpbmcgdGhlIG51bWJlciBvZiB1bml0cyBmb3IgYSBtb2JpbGUgZGV2aWNlLlxuICAvLyBodHRwczovL2dvby5nbC9zSzJPNW9cbiAgd2lkdGg6ICR1bml0cyAqIDU2cHg7XG59XG4iLCIvKiBodHRwOi8vcHJpc21qcy5jb20vZG93bmxvYWQuaHRtbD90aGVtZXM9cHJpc20mbGFuZ3VhZ2VzPW1hcmt1cCtjc3MrY2xpa2UramF2YXNjcmlwdCAqL1xuLyoqXG4gKiBwcmlzbS5qcyBkZWZhdWx0IHRoZW1lIGZvciBKYXZhU2NyaXB0LCBDU1MgYW5kIEhUTUxcbiAqIEJhc2VkIG9uIGRhYmJsZXQgKGh0dHA6Ly9kYWJibGV0LmNvbSlcbiAqIEBhdXRob3IgTGVhIFZlcm91XG4gKi9cblxuY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcblx0Y29sb3I6IGJsYWNrO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHR0ZXh0LXNoYWRvdzogMCAxcHggd2hpdGU7XG5cdGZvbnQtZmFtaWx5OiBDb25zb2xhcywgTW9uYWNvLCAnQW5kYWxlIE1vbm8nLCAnVWJ1bnR1IE1vbm8nLCBtb25vc3BhY2U7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBwcmU7XG5cdHdvcmQtc3BhY2luZzogbm9ybWFsO1xuXHR3b3JkLWJyZWFrOiBub3JtYWw7XG5cdHdvcmQtd3JhcDogbm9ybWFsO1xuXHRsaW5lLWhlaWdodDogMS41O1xuXG5cdC1tb3otdGFiLXNpemU6IDQ7XG5cdC1vLXRhYi1zaXplOiA0O1xuXHR0YWItc2l6ZTogNDtcblxuXHQtd2Via2l0LWh5cGhlbnM6IG5vbmU7XG5cdC1tb3otaHlwaGVuczogbm9uZTtcblx0LW1zLWh5cGhlbnM6IG5vbmU7XG5cdGh5cGhlbnM6IG5vbmU7XG59XG5cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06Oi1tb3otc2VsZWN0aW9uLCBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb24sXG5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6LW1vei1zZWxlY3Rpb24sIGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb24ge1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogI2IzZDRmYztcbn1cblxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6c2VsZWN0aW9uLCBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6c2VsZWN0aW9uLFxuY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06OnNlbGVjdGlvbiwgY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjpzZWxlY3Rpb24ge1xuXHR0ZXh0LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogI2IzZDRmYztcbn1cblxuQG1lZGlhIHByaW50IHtcblx0Y29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG5cdHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuXHRcdHRleHQtc2hhZG93OiBub25lO1xuXHR9XG59XG5cbi8qIENvZGUgYmxvY2tzICovXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcblx0cGFkZGluZzogMWVtO1xuXHRtYXJnaW46IC41ZW0gMDtcblx0b3ZlcmZsb3c6IGF1dG87XG59XG5cbjpub3QocHJlKSA+IGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLFxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG5cdGJhY2tncm91bmQ6ICNmNWYyZjA7XG59XG5cbi8qIElubGluZSBjb2RlICovXG46bm90KHByZSkgPiBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG5cdHBhZGRpbmc6IC4xZW07XG5cdGJvcmRlci1yYWRpdXM6IC4zZW07XG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi50b2tlbi5jb21tZW50LFxuLnRva2VuLnByb2xvZyxcbi50b2tlbi5kb2N0eXBlLFxuLnRva2VuLmNkYXRhIHtcblx0Y29sb3I6IHNsYXRlZ3JheTtcbn1cblxuLnRva2VuLnB1bmN0dWF0aW9uIHtcblx0Y29sb3I6ICM5OTk7XG59XG5cbi5uYW1lc3BhY2Uge1xuXHRvcGFjaXR5OiAuNztcbn1cblxuLnRva2VuLnByb3BlcnR5LFxuLnRva2VuLnRhZyxcbi50b2tlbi5ib29sZWFuLFxuLnRva2VuLm51bWJlcixcbi50b2tlbi5jb25zdGFudCxcbi50b2tlbi5zeW1ib2wsXG4udG9rZW4uZGVsZXRlZCB7XG5cdGNvbG9yOiAjOTA1O1xufVxuXG4udG9rZW4uc2VsZWN0b3IsXG4udG9rZW4uYXR0ci1uYW1lLFxuLnRva2VuLnN0cmluZyxcbi50b2tlbi5jaGFyLFxuLnRva2VuLmJ1aWx0aW4sXG4udG9rZW4uaW5zZXJ0ZWQge1xuXHRjb2xvcjogIzY5MDtcbn1cblxuLnRva2VuLm9wZXJhdG9yLFxuLnRva2VuLmVudGl0eSxcbi50b2tlbi51cmwsXG4ubGFuZ3VhZ2UtY3NzIC50b2tlbi5zdHJpbmcsXG4uc3R5bGUgLnRva2VuLnN0cmluZyB7XG5cdGNvbG9yOiAjYTY3ZjU5O1xuXHRiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG5cbi50b2tlbi5hdHJ1bGUsXG4udG9rZW4uYXR0ci12YWx1ZSxcbi50b2tlbi5rZXl3b3JkIHtcblx0Y29sb3I6ICMwN2E7XG59XG5cbi50b2tlbi5mdW5jdGlvbiB7XG5cdGNvbG9yOiAjREQ0QTY4O1xufVxuXG4udG9rZW4ucmVnZXgsXG4udG9rZW4uaW1wb3J0YW50LFxuLnRva2VuLnZhcmlhYmxlIHtcblx0Y29sb3I6ICNlOTA7XG59XG5cbi50b2tlbi5pbXBvcnRhbnQsXG4udG9rZW4uYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnRva2VuLml0YWxpYyB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLnRva2VuLmVudGl0eSB7XG5cdGN1cnNvcjogaGVscDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qIFJpY2FyZG8gQWRkZWQgdmFyaWFibGVzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyogUmljYXJkbyBBZGRlZCB2YXJpYWJsZXMgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtc2hhZG93LS0yZHAsIC5yZXNwb25zaXZlLWJsb2NrIHtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA0NjY2NjcpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDY2NjY2NyksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4wNCk7IH1cblxuLm1kbC1zaGFkb3ctLTNkcCB7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRsLXNoYWRvdy0tNGRwIHtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4ubWRsLXNoYWRvdy0tNmRwIHtcbiAgYm94LXNoYWRvdzogMCA2cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDE4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLThkcCB7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4ubWRsLXNoYWRvdy0tMTZkcCB7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5tZGwtc2hhZG93LS0yNGRwIHtcbiAgYm94LXNoYWRvdzogMCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi8qKlxuICogRmFicmljYXRvciBzdHlsZXNcbiAqIEBhdXRob3IgTHVrZSBBc2tld1xuICogQ2xhc3Mgc2VsZWN0b3JzIGFyZSBuYW1lc3BhY2VkIHdpdGggXCJmLVwiXG4gKi9cbi8qIGh0dHA6Ly9wcmlzbWpzLmNvbS9kb3dubG9hZC5odG1sP3RoZW1lcz1wcmlzbSZsYW5ndWFnZXM9bWFya3VwK2NzcytjbGlrZStqYXZhc2NyaXB0ICovXG4vKipcbiAqIHByaXNtLmpzIGRlZmF1bHQgdGhlbWUgZm9yIEphdmFTY3JpcHQsIENTUyBhbmQgSFRNTFxuICogQmFzZWQgb24gZGFiYmxldCAoaHR0cDovL2RhYmJsZXQuY29tKVxuICogQGF1dGhvciBMZWEgVmVyb3VcbiAqL1xuY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcbiAgY29sb3I6IGJsYWNrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggd2hpdGU7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgTW9uYWNvLCAnQW5kYWxlIE1vbm8nLCAnVWJ1bnR1IE1vbm8nLCBtb25vc3BhY2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICAtbW96LXRhYi1zaXplOiA0O1xuICAtby10YWItc2l6ZTogNDtcbiAgdGFiLXNpemU6IDQ7XG4gIC13ZWJraXQtaHlwaGVuczogbm9uZTtcbiAgLW1vei1oeXBoZW5zOiBub25lO1xuICAtbXMtaHlwaGVuczogbm9uZTtcbiAgaHlwaGVuczogbm9uZTsgfVxuXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjotbW96LXNlbGVjdGlvbiwgcHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSA6Oi1tb3otc2VsZWN0aW9uLFxuY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06Oi1tb3otc2VsZWN0aW9uLCBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSA6Oi1tb3otc2VsZWN0aW9uIHtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNiM2Q0ZmM7IH1cblxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6c2VsZWN0aW9uLCBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6c2VsZWN0aW9uLFxuY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06OnNlbGVjdGlvbiwgY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjpzZWxlY3Rpb24ge1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogI2IzZDRmYzsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSxcbiAgcHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7IH0gfVxuXG4vKiBDb2RlIGJsb2NrcyAqL1xucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgbWFyZ2luOiAuNWVtIDA7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbjpub3QocHJlKSA+IGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLFxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG4gIGJhY2tncm91bmQ6ICNmNWYyZjA7IH1cblxuLyogSW5saW5lIGNvZGUgKi9cbjpub3QocHJlKSA+IGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcbiAgcGFkZGluZzogLjFlbTtcbiAgYm9yZGVyLXJhZGl1czogLjNlbTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuXG4udG9rZW4uY29tbWVudCxcbi50b2tlbi5wcm9sb2csXG4udG9rZW4uZG9jdHlwZSxcbi50b2tlbi5jZGF0YSB7XG4gIGNvbG9yOiBzbGF0ZWdyYXk7IH1cblxuLnRva2VuLnB1bmN0dWF0aW9uIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLm5hbWVzcGFjZSB7XG4gIG9wYWNpdHk6IC43OyB9XG5cbi50b2tlbi5wcm9wZXJ0eSxcbi50b2tlbi50YWcsXG4udG9rZW4uYm9vbGVhbixcbi50b2tlbi5udW1iZXIsXG4udG9rZW4uY29uc3RhbnQsXG4udG9rZW4uc3ltYm9sLFxuLnRva2VuLmRlbGV0ZWQge1xuICBjb2xvcjogIzkwNTsgfVxuXG4udG9rZW4uc2VsZWN0b3IsXG4udG9rZW4uYXR0ci1uYW1lLFxuLnRva2VuLnN0cmluZyxcbi50b2tlbi5jaGFyLFxuLnRva2VuLmJ1aWx0aW4sXG4udG9rZW4uaW5zZXJ0ZWQge1xuICBjb2xvcjogIzY5MDsgfVxuXG4udG9rZW4ub3BlcmF0b3IsXG4udG9rZW4uZW50aXR5LFxuLnRva2VuLnVybCxcbi5sYW5ndWFnZS1jc3MgLnRva2VuLnN0cmluZyxcbi5zdHlsZSAudG9rZW4uc3RyaW5nIHtcbiAgY29sb3I6ICNhNjdmNTk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuXG4udG9rZW4uYXRydWxlLFxuLnRva2VuLmF0dHItdmFsdWUsXG4udG9rZW4ua2V5d29yZCB7XG4gIGNvbG9yOiAjMDdhOyB9XG5cbi50b2tlbi5mdW5jdGlvbiB7XG4gIGNvbG9yOiAjREQ0QTY4OyB9XG5cbi50b2tlbi5yZWdleCxcbi50b2tlbi5pbXBvcnRhbnQsXG4udG9rZW4udmFyaWFibGUge1xuICBjb2xvcjogI2U5MDsgfVxuXG4udG9rZW4uaW1wb3J0YW50LFxuLnRva2VuLmJvbGQge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4udG9rZW4uaXRhbGljIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi50b2tlbi5lbnRpdHkge1xuICBjdXJzb3I6IGhlbHA7IH1cblxuLmYtY29sb3ItY2hpcCB7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi5mLWNvbG9yLWNoaXBfX3RleHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmYtY29sb3ItY2hpcF9fYm9yZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgfVxuXG4uZi1jb2xvci1jaGlwcyA+IGRpdiB7XG4gIG1hcmdpbi1yaWdodDogMzJweDsgfVxuXG4uZi1jb2xvci1jaGlwLXNtYWxsIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLmYtY29sb3ItY2hpcC1zbWFsbF9fdGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZi1jb2xvciB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuLmYtY29sb3ItY2hpcC10ZXh0IHtcbiAgZm9udC1zaXplOiA3MHB4O1xuICBsaW5lLWhlaWdodDogMS40O1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi5mLWNvbG9yLWNoaXAtc2hhcGUge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbi5mLWNvbnRyb2xzIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cbiAgLmYtY29udHJvbHMgLmYtY29udHJvbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDFyZW0gMDsgfVxuICAuZi1jb250cm9scyAubWRsLXN3aXRjaCB7XG4gICAgbWFyZ2luOiAwIDMycHg7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgICAuZi1jb250cm9scyAubWRsLXN3aXRjaCBzcGFuIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgLmYtY29udHJvbHMgLm1kbC1zd2l0Y2ggc3BhbiBpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsgfVxuXG4uZi1jb250cm9sIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAwLjY2cmVtOyB9XG4gIC5mLWNvbnRyb2wgc3ZnIHtcbiAgICB3aWR0aDogMC44NzVyZW07XG4gICAgaGVpZ2h0OiAwLjg3NXJlbTsgfVxuICAgIC5mLWNvbnRyb2wgc3ZnIHVzZSB7XG4gICAgICBmaWxsOiBjb2xvcihsaWdodCk7IH1cblxuLmYtY29udHJvbC1iYXIge1xuICBwYWRkaW5nOiAxcmVtIDA7IH1cblxuLmYtbWVudS10b2dnbGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLmYtbWVudS10b2dnbGUgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4OyB9XG5cbi5mLWl0ZW0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IobGlnaHQpOyB9XG5cbi5mLWl0ZW0tY29kZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZi1pdGVtLXByZXZpZXcgLnJpYy1oZWFkZXJfX2NvbnRhaW5lciwgLmYtaXRlbS1wcmV2aWV3IC5yaWMtZm9vdGVyX19jb250YWluZXIsIC5mLWl0ZW0tcHJldmlldyAucmljLWZvb3Rlcl9fY29udGFpbmVyLCAuZi1pdGVtLXByZXZpZXcgLnJpYy1tZXRhaGVhZGVyX19jb250YWluZXIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi5mLWl0ZW0tY29kZS1jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuXG4uZi1pdGVtLWJvcmRlci1ib3R0b20ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IobGlnaHQpOyB9XG5cbi5mLWl0ZW0taGVhZGluZy1ncm91cCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmYtaXRlbS1oZWFkaW5nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4uZi1pdGVtLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5mLWl0ZW0tY29udHJvbHMgLmYtY29udHJvbCB7XG4gICAgd2lkdGg6IDAuODc1cmVtO1xuICAgIGhlaWdodDogMC44NzVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAuZi1pdGVtLWNvbnRyb2xzIC5mLWNvbnRyb2w6aG92ZXIgdXNlIHtcbiAgICAgIGZpbGw6IGNvbG9yKG5vcm1hbCk7IH1cbiAgICAuZi1pdGVtLWNvbnRyb2xzIC5mLWNvbnRyb2wgdXNlIHtcbiAgICAgIGZpbGw6IGNvbG9yKGxpZ2h0KTsgfVxuXG4uZi1pdGVtLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmYtaXRlbS1ub3RlcyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG5cbi5mLW1lbnUge1xuICB6LWluZGV4OiAxO1xuICBmbGV4OiAwIDAgMTgwcHg7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbiAgb3JkZXI6IDA7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgICAuZi1tZW51IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgICAgb3ZlcmZsb3c6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgICBvdmVyZmxvdy14OiBzY3JvbGw7IH0gfVxuICAuZi1tZW51IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDRweCAzMnB4O1xuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgLmYtbWVudSBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpOyB9XG4gICAgLmYtbWVudSBhLmYtYWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAuMjVyZW0gMCAwIDAgIzAwOTZEODsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgICAgIC5mLW1lbnUgYTpub3QoLmYtbWVudV9faGVhZGluZykge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmYtbWVudSAuZi1tZW51X19oZWFkaW5nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgIC5mLW1lbnUgLmYtbWVudV9faGVhZGluZzpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmYtbWVudSAuZi1tZW51LXNlY3Rpb24ge1xuICAgIG1hcmdpbjogOHB4IDA7IH1cblxuLnJpY2FyZG8taWNvbnNfX2l0ZW0ge1xuICBtYXJnaW46IDIwcHggMDsgfVxuXG4ucmljYXJkby1pY29uc19fY29kZSB7XG4gIG1hcmdpbjogMCAxMHB4OyB9XG5cbi5mLXR5cG8taXRlbSB7XG4gIG1hcmdpbjogOHB4IDA7XG4gIHBhZGRpbmc6IDhweCAwOyB9XG4gIC5mLXR5cG8taXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi50eXBvLWJsb2NrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuXG4udHlwby1pbWFnZS1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGhlaWdodDogMjAwcHg7XG4gIHdpZHRoOiA0MDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG5jb2RlIHtcbiAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG4gIHBhZGRpbmc6IDAuMTI1ZW0gMC4zNWVtO1xuICBib3JkZXItcmFkaXVzOiAycHg7IH1cblxucHJlW2NsYXNzKj1sYW5ndWFnZS1dIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgcHJlW2NsYXNzKj1sYW5ndWFnZS1dOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XG4gIHByZVtjbGFzcyo9bGFuZ3VhZ2UtXSBjb2RlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5jb2RlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDRweCAwcHg7IH1cblxuLm92ZXJ2aWV3LXByaW5jaXBsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAxNnB4IDA7IH1cbiAgLm92ZXJ2aWV3LXByaW5jaXBsZSA+IGRpdiB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIG1hcmdpbjogMCAxNnB4OyB9XG4gICAgLm92ZXJ2aWV3LXByaW5jaXBsZSA+IGRpdiBzcGFuIHtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpOyB9XG4gICAgICAub3ZlcnZpZXctcHJpbmNpcGxlID4gZGl2IHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDsgfVxuXG4uY29udGFpbmVyLXR5cG9ncmFwaHkge1xuICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cblxuLmhlYWRlci1icmFuZCB7XG4gIHBhZGRpbmc6IDE2cHg7IH1cblxuLnBhZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbjogYXV0bzsgfVxuXG4ucGFnZS1jb250ZW50LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMzJweCAwIDMycHggMDtcbiAgbWFyZ2luLWJvdHRvbTogNjRweDsgfVxuXG4ubWVkaWEtcXVlcmllcy11aS1jb250YWluZXIge1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgbWFyZ2luLXRvcDogMzJweDsgfVxuXG4ubWRsLWRhdGEtdGFibGUgdGJvZHkgdHIuaG92ZXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7IH1cblxuLm1lZGlhLXF1ZXJ5LXVpIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgOHB4OyB9XG4gIC5tZWRpYS1xdWVyeS11aSBzcGFuIHtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLm1lZGlhLXF1ZXJ5LXVpLWluc2lkZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M2ZWNmZjtcbiAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjNDhhN2YzOyB9XG4gICAgLm1lZGlhLXF1ZXJ5LXVpLWluc2lkZTpob3ZlciwgLm1lZGlhLXF1ZXJ5LXVpLWluc2lkZS5ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5MmNiZjg7IH1cbiAgLm1lZGlhLXF1ZXJ5LXVpLW91dHNpZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmQ4YWY7IH1cbiAgICAubWVkaWEtcXVlcnktdWktb3V0c2lkZS0xIHtcbiAgICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkICNmMzdhMjI7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuICAgIC5tZWRpYS1xdWVyeS11aS1vdXRzaWRlLTIge1xuICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZjM3YTIyO1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxuICAgIC5tZWRpYS1xdWVyeS11aS1vdXRzaWRlOmhvdmVyLCAubWVkaWEtcXVlcnktdWktb3V0c2lkZS5ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmMxNmE7IH1cbiAgLm1lZGlhLXF1ZXJ5LXVpLWJldHdlZW4ge1xuICAgIG1hcmdpbjogMCA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjZTlhYjtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICM2YTllM2Y7XG4gICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgIzZhOWUzZjsgfVxuICAgIC5tZWRpYS1xdWVyeS11aS1iZXR3ZWVuOmhvdmVyLCAubWVkaWEtcXVlcnktdWktYmV0d2Vlbi5ob3ZlcmVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiM2RkODI7IH1cblxuLnJlc3BvbnNpdmUtY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMzJweDsgfVxuICAucmVzcG9uc2l2ZS1jb250YWluZXIgLm1kbC1yYWRpbyB7XG4gICAgbWFyZ2luOiAwIDhweDsgfVxuXG4ucmVzcG9uc2l2ZS1ibG9jayB7XG4gIGhlaWdodDogNjAwcHg7XG4gIG1heC1oZWlnaHQ6IDU1MHB4O1xuICBtYXJnaW46IDMycHggYXV0byAwcHggYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIC5yZXNwb25zaXZlLWJsb2NrIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgaGVpZ2h0OiA2MHZ3OyB9IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2sgPiBkaXYge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1tb2JpbGVfcyB7XG4gICAgd2lkdGg6IDM1JTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1tb2JpbGVfbSB7XG4gICAgd2lkdGg6IDQ1JTtcbiAgICBoZWlnaHQ6IDYwMHB4O1xuICAgIG1heC1oZWlnaHQ6IDYwMHB4OyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLW1vYmlsZV9sIHtcbiAgICB3aWR0aDogNTUlO1xuICAgIGhlaWdodDogNjUwcHg7XG4gICAgbWF4LWhlaWdodDogNjUwcHg7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2stdGFibGV0IHtcbiAgICB3aWR0aDogODAlO1xuICAgIGhlaWdodDogODAwcHg7XG4gICAgbWF4LWhlaWdodDogODAwcHg7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wIHtcbiAgICB3aWR0aDogOTIlOyB9XG4gICAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wIC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAucmVzcG9uc2l2ZS1ibG9jay1sYXB0b3AgLnJlc3BvbnNpdmUtYmxvY2stbWVudSB7XG4gICAgICB3aWR0aDogMjAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF9sIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF9sIC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuICAgICAgd2lkdGg6IDgwJTtcbiAgICAgIG1hcmdpbjogYXV0bzsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF9sIC5yZXNwb25zaXZlLWJsb2NrLW1lbnUge1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1sYXB0b3BfNGsge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wXzRrIC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1hcmdpbjogYXV0bzsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF80ayAucmVzcG9uc2l2ZS1ibG9jay1tZW51IHtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2sgLmNlbnRlci10ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAucmVzcG9uc2l2ZS1ibG9jayAuY2VudGVyLXRleHQgc3BhbiB7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1tZXRhZGF0YSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0IzOUREQjtcbiAgICBoZWlnaHQ6IDI1cHg7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2staGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTBDQUY5O1xuICAgIGhlaWdodDogNjBweDsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1tYWluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDQzgwOyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLW1lbnUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNBNUQ2QTc7XG4gICAgaGVpZ2h0OiA0MHB4OyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLWZvb3RlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U2RUU5QztcbiAgICBoZWlnaHQ6IDI1cHg7IH1cbiAgICAucmVzcG9uc2l2ZS1ibG9jay1mb290ZXItbWV0YSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUY5QTlBO1xuICAgICAgaGVpZ2h0OiA1MHB4OyB9XG5cbi5pY29ucy1jb250YWluZXIgPiBkaXYge1xuICBtYXJnaW46IDhweDsgfVxuXG4uaWNvbnMtY29udGFpbmVyIGkubWF0ZXJpYWwtaWNvbnMge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mb290ZXItYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcbiAgcGFkZGluZzogOHB4IDE2cHg7IH1cbiAgLmZvb3Rlci1iYXIgPiBkaXYge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAuZm9vdGVyLWJhciAubWV0YWhlYWRlci1mb290ZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7IH1cbiAgICAuZm9vdGVyLWJhciAubWV0YWhlYWRlci1mb290ZXIgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXRvcDogOHB4OyB9XG5cbi8qIE9wZW4gd2l0aCBDb2RlUGVuIEJ1dHRvbiAqL1xuLmNvZGVwZW4tYnV0dG9uIHtcbiAgei1pbmRleDogMTAwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvY29kZXBlbi1sb2dvLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAyNnB4IDI2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogLTE0MHB4O1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMC42O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogYmxhY2s7XG4gIHBhZGRpbmc6IDEzcHggMTVweCA1cHggNTBweDtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC41cywgYmFja2dyb3VuZC1jb2xvciAwLjVzLCBvcGFjaXR5IDAuNXMsIGJhY2tncm91bmQtc2l6ZSAwLjNzOyB9XG5cbi5jb2RlcGVuLWJ1dHRvbjo6YWZ0ZXIge1xuICBjb250ZW50OiAnT3BlbiBpbiBDb2RlUGVuJzsgfVxuXG4uY29kZXBlbi1idXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZC1zaXplOiAzNnB4IDM2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7IH1cblxuLmRvY3MtbGF5b3V0IHByZVtjbGFzcyo9bGFuZ3VhZ2UtbWFya3VwXSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmRvY3MtbGF5b3V0IHByZVtjbGFzcyo9bGFuZ3VhZ2UtbWFya3VwXS5jb2RlcGVuLWJ1dHRvbi1kaXNhYmxlZDpub3QgY29kZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDUwcHg7IH1cblxuLmNvZGVwZW4tYnV0dG9uLWRpc2FibGVkIC5jb2RlcGVuLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmxheW91dC5ob3Jpem9udGFsLFxuLmxheW91dC5ob3Jpem9udGFsLXJldmVyc2UsXG4ubGF5b3V0LnZlcnRpY2FsLFxuLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4ubGF5b3V0LmlubGluZSB7XG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cblxuLmxheW91dC5ob3Jpem9udGFsIHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuXG4ubGF5b3V0Lmhvcml6b250YWwtcmV2ZXJzZSB7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLmxheW91dC52ZXJ0aWNhbCB7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuXG4ubGF5b3V0LndyYXAge1xuICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi5sYXlvdXQubm8td3JhcCB7XG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC13cmFwOiBub3dyYXA7IH1cblxuLmxheW91dC53cmFwLXJldmVyc2Uge1xuICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gIC13ZWJraXQtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOyB9XG5cbi5mbGV4LWF1dG8ge1xuICAtbXMtZmxleDogMSAxIGF1dG87XG4gIC13ZWJraXQtZmxleDogMSAxIGF1dG87XG4gIGZsZXg6IDEgMSBhdXRvOyB9XG5cbi5mbGV4LW5vbmUge1xuICAtbXMtZmxleDogbm9uZTtcbiAgLXdlYmtpdC1mbGV4OiBub25lO1xuICBmbGV4OiBub25lOyB9XG5cbi5mbGV4LFxuLmZsZXgtMSB7XG4gIC1tcy1mbGV4OiAxO1xuICAtd2Via2l0LWZsZXg6IDE7XG4gIGZsZXg6IDE7IH1cblxuLmZsZXgtMiB7XG4gIC1tcy1mbGV4OiAyO1xuICAtd2Via2l0LWZsZXg6IDI7XG4gIGZsZXg6IDI7IH1cblxuLmZsZXgtMyB7XG4gIC1tcy1mbGV4OiAzO1xuICAtd2Via2l0LWZsZXg6IDM7XG4gIGZsZXg6IDM7IH1cblxuLmZsZXgtNCB7XG4gIC1tcy1mbGV4OiA0O1xuICAtd2Via2l0LWZsZXg6IDQ7XG4gIGZsZXg6IDQ7IH1cblxuLmZsZXgtNSB7XG4gIC1tcy1mbGV4OiA1O1xuICAtd2Via2l0LWZsZXg6IDU7XG4gIGZsZXg6IDU7IH1cblxuLmZsZXgtNiB7XG4gIC1tcy1mbGV4OiA2O1xuICAtd2Via2l0LWZsZXg6IDY7XG4gIGZsZXg6IDY7IH1cblxuLmZsZXgtNyB7XG4gIC1tcy1mbGV4OiA3O1xuICAtd2Via2l0LWZsZXg6IDc7XG4gIGZsZXg6IDc7IH1cblxuLmZsZXgtOCB7XG4gIC1tcy1mbGV4OiA4O1xuICAtd2Via2l0LWZsZXg6IDg7XG4gIGZsZXg6IDg7IH1cblxuLmZsZXgtOSB7XG4gIC1tcy1mbGV4OiA5O1xuICAtd2Via2l0LWZsZXg6IDk7XG4gIGZsZXg6IDk7IH1cblxuLmZsZXgtMTAge1xuICAtbXMtZmxleDogMTA7XG4gIC13ZWJraXQtZmxleDogMTA7XG4gIGZsZXg6IDEwOyB9XG5cbi5mbGV4LTExIHtcbiAgLW1zLWZsZXg6IDExO1xuICAtd2Via2l0LWZsZXg6IDExO1xuICBmbGV4OiAxMTsgfVxuXG4uZmxleC0xMiB7XG4gIC1tcy1mbGV4OiAxMjtcbiAgLXdlYmtpdC1mbGV4OiAxMjtcbiAgZmxleDogMTI7IH1cblxuLyogYWxpZ25tZW50IGluIGNyb3NzIGF4aXMgKi9cbi5sYXlvdXQuc3RhcnQge1xuICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5sYXlvdXQuY2VudGVyLFxuLmxheW91dC5jZW50ZXItY2VudGVyIHtcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5sYXlvdXQuZW5kIHtcbiAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4vKiBhbGlnbm1lbnQgaW4gbWFpbiBheGlzICovXG4ubGF5b3V0LnN0YXJ0LWp1c3RpZmllZCB7XG4gIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG5cbi5jZW50ZXItanVzdGlmaWVkLFxuLmNlbnRlci1jZW50ZXIge1xuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5lbmQtanVzdGlmaWVkIHtcbiAgLW1zLWZsZXgtcGFjazogZW5kO1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFyb3VuZC1qdXN0aWZpZWQge1xuICAtbXMtZmxleC1wYWNrOiBhcm91bmQ7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi5qdXN0aWZpZWQge1xuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi8qIHNlbGYgYWxpZ25tZW50ICovXG4uc2VsZi1zdGFydCB7XG4gIC1tcy1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLnNlbGYtY2VudGVyIHtcbiAgLW1zLWFsaWduLXNlbGY6IGNlbnRlcjtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4uc2VsZi1lbmQge1xuICAtbXMtYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG5cbi5zZWxmLXN0cmV0Y2gge1xuICAtbXMtYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBzdHJldGNoO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBPdGhlciBMYXlvdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBJRSAxMCBzdXBwb3J0IGZvciBIVE1MNSBoaWRkZW4gYXR0ciAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi5yZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZml0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7IH1cblxuYm9keS5mdWxsYmxlZWQge1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMTAwdmg7IH1cblxuLnNjcm9sbCB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogZml4ZWQgcG9zaXRpb24gKi9cbi5maXhlZC1ib3R0b20sXG4uZml4ZWQtbGVmdCxcbi5maXhlZC1yaWdodCxcbi5maXhlZC10b3Age1xuICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuLmZpeGVkLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLmZpeGVkLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi5maXhlZC1ib3R0b20ge1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi5maXhlZC1sZWZ0IHtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7IH1cblxuLnJpYy1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIC5yaWMtcGFnaW5hdGlvbiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4uc3R5bGVndWlkZS1mYWJyaWNhdG9yLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDE1cHggMDsgfVxuIiwiLmYtY29sb3ItY2hpcCB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjUwKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5mLWNvbG9yLWNoaXBfX3RleHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mLWNvbG9yLWNoaXBfX2JvcmRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZi1jb2xvci1jaGlwcyB7XG4gICAgJiA+IGRpdiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgICB9XG59XG4uZi1jb2xvci1jaGlwLXNtYWxsIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNTApO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmYtY29sb3ItY2hpcC1zbWFsbF9fdGV4dCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmYtY29sb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG4uZi1jb2xvci1jaGlwLXRleHQge1xuICAgIGZvbnQtc2l6ZTogNzBweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uZi1jb2xvci1jaGlwLXNoYXBlIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cbiIsIkBpbXBvcnQgJ3BhcnRpYWxzL3ZhcmlhYmxlcyc7XG5cbi5mLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcblxuXHQuZi1jb250cm9sIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2lkdGg6IHBlcmNlbnRhZ2UoMS8zKTtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMXJlbSAwO1xuXG5cdH1cblx0Lm1kbC1zd2l0Y2gge1xuXHRcdG1hcmdpbjogMCAzMnB4O1xuXHRcdHdpZHRoOmF1dG87XG5cdFx0c3BhbiB7XG5cdFx0XHRpIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDRweDtcblx0XHRcdH1cblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHR9XG5cdH1cbn1cblxuLmYtY29udHJvbCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRtYXJnaW4tbGVmdDogMC42NnJlbTtcblxuXHRzdmcge1xuXHRcdHdpZHRoOiAwLjg3NXJlbTtcblx0XHRoZWlnaHQ6IDAuODc1cmVtO1xuXG5cdFx0dXNlIHtcblx0XHRcdGZpbGw6IGNvbG9yKGxpZ2h0KTtcblx0XHR9XG5cdH1cbn1cblxuLmYtY29udHJvbC1iYXIge1xuXHRwYWRkaW5nOiAxcmVtIDA7XG59XG5cbi5mLW1lbnUtdG9nZ2xlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdHN2ZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0fVxufVxuIiwiLmYtaXRlbS1ncm91cCB7XG5cdG1hcmdpbi1ib3R0b206IDMycHg7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihsaWdodCk7XG59XG5cbi5mLWl0ZW0tY29kZSB7XG4gIFx0b3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mLWl0ZW0tcHJldmlldyB7XG5cbn1cblxuLmYtaXRlbS1wcmV2aWV3IHtcblx0LnJpYy1oZWFkZXJfX2NvbnRhaW5lciwgLnJpYy1mb290ZXJfX2NvbnRhaW5lciwgLnJpYy1mb290ZXJfX2NvbnRhaW5lciwgLnJpYy1tZXRhaGVhZGVyX19jb250YWluZXIge1xuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmYtaXRlbS1jb2RlLWNvbnRhaW5lciB7XG5cdHBhZGRpbmctdG9wOiAycmVtO1xufVxuXG4uZi1pdGVtLWJvcmRlci1ib3R0b20ge1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IobGlnaHQpO1xufVxuXG4uZi1pdGVtLWhlYWRpbmctZ3JvdXAge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZi1pdGVtLWhlYWRpbmcge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5cbi5mLWl0ZW0tY29udHJvbHMge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cblx0LmYtY29udHJvbCB7XG5cdFx0d2lkdGg6IDAuODc1cmVtO1xuXHRcdGhlaWdodDogMC44NzVyZW07XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHVzZSB7XG5cdFx0XHRcdGZpbGw6IGNvbG9yKG5vcm1hbCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dXNlIHtcblx0XHRcdGZpbGw6IGNvbG9yKGxpZ2h0KTtcblx0XHR9XG5cdH1cbn1cblxuLmYtaXRlbS1oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZi1pdGVtLW5vdGVzIHtcblx0Y29sb3I6IHJnYmEoMCwgMCwgMCwgLjU0KTtcblx0bWFyZ2luLWJvdHRvbTogMzJweDtcbn1cbiIsIlxuQGltcG9ydCAnLi9zcmMvbGliL3JpY2FyZG8vbGF5b3V0L21peGlucyc7XG5AaW1wb3J0ICdwYXJ0aWFscy92YXJpYWJsZXMnO1xuXG4vLyBtZW51XG4uZi1tZW51IHtcblx0ei1pbmRleDogMTtcblx0ZmxleDogMCAwIDE4MHB4O1xuICBtYXJnaW4tcmlnaHQ6MTZweDtcblx0b3JkZXI6IDA7XG5cdG92ZXJmbG93OiBhdXRvO1xuXG5cdEBpbmNsdWRlIHJlc3BvbmQtdG8gKGFsbF9zbWFsbF9zY3JlZW5zKSB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRwYWRkaW5nLXRvcDogMHB4O1xuICAgIG92ZXJmbG93OiBub25lO1xuXHRcdHBvc2l0aW9uOiBzdGF0aWM7XG4gIFx0Ym9yZGVyLWJvdHRvbTogc29saWQgMXB4IHJnYmEoMCwwLDAsMC4xNSk7XG5cdFx0b3ZlcmZsb3cteDogc2Nyb2xsO1xuXHR9XG5cblx0YSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cGFkZGluZzogNHB4IDMycHg7XG5cdFx0Y29sb3I6IHJnYmEoMCwwLDAsMC44Nyk7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xuXHRcdH1cblxuXHRcdCYuZi1hY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMC4yNXJlbSAwIDAgMCAjMDA5NkQ4O1xuXHRcdH1cblx0XHRAaW5jbHVkZSByZXNwb25kLXRvIChhbGxfc21hbGxfc2NyZWVucykge1xuXHRcdFx0Jjpub3QoLmYtbWVudV9faGVhZGluZykge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblx0LmYtbWVudV9faGVhZGluZyB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxNnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cblx0fVxuXHQuZi1tZW51LXNlY3Rpb24ge1xuXHRcdG1hcmdpbjogOHB4IDA7XG5cdH1cbn1cbiIsIiRicmVha19leHRyYV9zbWFsbDogMzIwcHg7XG4kYnJlYWtfdmVyeV9zbWFsbDogNDgwcHg7XG4kYnJlYWtfc21hbGw6IDYwMHB4O1xuJGJyZWFrX21lZGl1bTogOTYwcHg7XG4kYnJlYWtfbGFyZ2U6IDEyMDBweDtcbiRicmVha19leHRyYV9sYXJnZTogMTkyMHB4O1xuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWE9PXNtYWxsX3Bob25lX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrX2V4dHJhX3NtYWxsIC0gMSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09cGhvbmVfc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtfc21hbGwpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PXNtYWxsX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrX3NtYWxsICsgMSkgYW5kIChtYXgtd2lkdGg6ICRicmVha19tZWRpdW0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWFsbF92ZXJ5X3NtYWxsX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrX3Zlcnlfc21hbGwpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWFsbF9zbWFsbF9zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha19tZWRpdW0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PW1lZGl1bV9zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha19tZWRpdW0gKyAxKSBhbmQgKG1heC13aWR0aDogJGJyZWFrX2xhcmdlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhPT1hbGxfbWVkaXVtX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrX21lZGl1bSArIDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWFsbF9sYXJnZV9zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha19sYXJnZSArIDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWxhcmdlX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrX2xhcmdlICsgMSkgYW5kIChtYXgtd2lkdGg6ICRicmVha19leHRyYV9sYXJnZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09ZXh0cmFfbGFyZ2Vfc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtfZXh0cmFfbGFyZ2UgKyAxKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogRmFicmljYXRvciBzdHlsZXNcbiAqIEBhdXRob3IgTHVrZSBBc2tld1xuICogQ2xhc3Mgc2VsZWN0b3JzIGFyZSBuYW1lc3BhY2VkIHdpdGggXCJmLVwiXG4gKi9cblxuXG5AaW1wb3J0ICdwYXJ0aWFscy92YXJpYWJsZXMnO1xuQGltcG9ydCAncGFydGlhbHMvY29kZSc7XG5AaW1wb3J0ICdwYXJ0aWFscy9jb2xvci1jaGlwcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9jb250cm9scyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9pdGVtJztcbkBpbXBvcnQgJ3BhcnRpYWxzL21lbnUnO1xuQGltcG9ydCAncGFydGlhbHMvcmljYXJkby1pY29ucyc7XG5AaW1wb3J0ICdwYXJ0aWFscy90eXBvJztcblxuY29kZSB7XG5cdG1hcmdpbi1sZWZ0OiAxcHg7XG5cdG1hcmdpbi1yaWdodDogMXB4O1xuXHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhdXRvO1xuXHRwYWRkaW5nOiAwLjEyNWVtIDAuMzVlbTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xufVxuXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV0ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuXHR9XG5cdGNvZGUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG59XG5jb2RlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdHBhZGRpbmc6IDRweCAwcHg7XG59XG4ub3ZlcnZpZXctcHJpbmNpcGxlIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRtYXJnaW46IDE2cHggMDtcblx0JiA+IGRpdiB7XG5cdFx0d2lkdGg6IDEyMHB4O1xuXHRcdG1hcmdpbjogMCAxNnB4O1xuXHRcdHNwYW4ge1xuXHRcdFx0Y29sb3I6IHJnYmEoMCwgMCwgMCwgLjU0KTtcblx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44Nyk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0bWFyZ2luLXRvcDogOHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLmNvbnRhaW5lci10eXBvZ3JhcGh5IHtcblx0bWFyZ2luLXJpZ2h0OiAzMnB4O1xufVxuLmhlYWRlci1icmFuZCB7XG4gICAgcGFkZGluZzogMTZweDtcbn1cbi5wYWdlLWNvbnRlbnQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1heC13aWR0aDogMTIwMHB4O1xuXHRtYXJnaW46IGF1dG87XG59XG4ucGFnZS1jb250ZW50LWNvbnRhaW5lciB7XG5cdG1hcmdpbjogMzJweCAwIDMycHggMDtcblx0bWFyZ2luLWJvdHRvbTogNjRweDtcbn1cblxuLm1lZGlhLXF1ZXJpZXMtdWktY29udGFpbmVyIHtcblx0bWFyZ2luLXJpZ2h0OiA4cHg7XG5cdG1hcmdpbi10b3A6IDMycHg7XG59XG4ubWRsLWRhdGEtdGFibGUgdGJvZHkgdHIuaG92ZXJlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5tZWRpYS1xdWVyeS11aSB7XG5cdGhlaWdodDogMjBweDtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcbiAgXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmc6IDAgOHB4O1xuXHRzcGFuIHtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdH1cblx0Ji1pbnNpZGUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNjNmVjZmY7XG5cdFx0Ym9yZGVyLXJpZ2h0OiA0cHggc29saWQgIzQ4YTdmMztcblx0XHQmOmhvdmVyLCAmLmhvdmVyZWQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzkyY2JmODtcblx0XHR9XG5cdH1cblx0Ji1vdXRzaWRlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkOGFmO1xuXHRcdCYtMSB7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjZjM3YTIyO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA4cHg7XG5cdFx0fVxuXHRcdCYtMiB7XG5cdFx0XHRib3JkZXItbGVmdDogNHB4IHNvbGlkICNmMzdhMjI7XG5cdFx0XHRtYXJnaW4tbGVmdDogOHB4O1xuXHRcdH1cblx0XHQmOmhvdmVyLCAmLmhvdmVyZWQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmYzE2YTtcblx0XHR9XG5cdH1cblx0Ji1iZXR3ZWVuIHtcblx0XHRtYXJnaW46IDAgOHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNjY2U5YWI7XG5cdFx0Ym9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjNmE5ZTNmO1xuXHRcdGJvcmRlci1yaWdodDogNHB4IHNvbGlkICM2YTllM2Y7XG5cdFx0Jjpob3ZlciwgJi5ob3ZlcmVkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNiM2RkODI7XG5cdFx0fVxuXHR9XG59XG5cbi5yZXNwb25zaXZlLWNvbnRhaW5lciB7XG5cdG1hcmdpbi10b3A6IDMycHg7XG5cdC5tZGwtcmFkaW8ge1xuXHRcdG1hcmdpbjogMCA4cHg7XG5cdH1cbn1cblxuLnJlc3BvbnNpdmUtYmxvY2sge1xuXHRAZXh0ZW5kIC5tZGwtc2hhZG93LS0yZHA7XG5cdGhlaWdodDogNjAwcHg7XG5cdG1heC1oZWlnaHQ6IDU1MHB4O1xuXHRtYXJnaW46IDMycHggYXV0byAwcHggYXV0bztcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG5cdEBpbmNsdWRlIHJlc3BvbmQtdG8ocGhvbmVfc2NyZWVucykge1xuXHRcdG1hcmdpbi1yaWdodDogMHB4O1xuXHRcdGhlaWdodDogNjB2dztcblx0fVxuXHQ+IGRpdiB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cdCYtbW9iaWxlX3Mge1xuXHRcdHdpZHRoOiAzNSU7XG5cdH1cblx0Ji1tb2JpbGVfbSB7XG5cdFx0d2lkdGg6IDQ1JTtcblx0XHRoZWlnaHQ6IDYwMHB4O1xuXHRcdG1heC1oZWlnaHQ6IDYwMHB4O1xuXHR9XG5cdCYtbW9iaWxlX2wge1xuXHRcdHdpZHRoOiA1NSU7XG5cdFx0aGVpZ2h0OiA2NTBweDtcblx0XHRtYXgtaGVpZ2h0OiA2NTBweDtcblx0fVxuXHQmLXRhYmxldCB7XG5cdFx0d2lkdGg6IDgwJTtcblx0XHRoZWlnaHQ6IDgwMHB4O1xuXHRcdG1heC1oZWlnaHQ6IDgwMHB4O1xuXHR9XG5cdCYtbGFwdG9wIHtcblx0XHR3aWR0aDogOTIlO1xuXHRcdC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHRcdC5yZXNwb25zaXZlLWJsb2NrLW1lbnUge1xuXHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cdH1cblx0Ji1sYXB0b3BfbCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0LnJlc3BvbnNpdmUtYmxvY2stY29udGVudCB7XG5cdFx0XHR3aWR0aDogODAlO1xuXHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdH1cblx0XHQucmVzcG9uc2l2ZS1ibG9jay1tZW51IHtcblx0XHRcdHdpZHRoOiAyMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdCYtbGFwdG9wXzRrIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHQucmVzcG9uc2l2ZS1ibG9jay1jb250ZW50IHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRtYXJnaW46IGF1dG87XG5cdFx0fVxuXHRcdC5yZXNwb25zaXZlLWJsb2NrLW1lbnUge1xuXHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cdH1cblx0LmNlbnRlci10ZXh0IHtcbiAgXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRzcGFuIHtcbiAgXHRcdFx0bWF4LXdpZHRoOiA1MCU7XG5cdFx0fVxuXHR9XG5cdCYtbWV0YWRhdGEge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNCMzlEREI7XG5cdFx0aGVpZ2h0OiAyNXB4O1xuXHR9XG5cdCYtaGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjOTBDQUY5O1xuXHRcdGhlaWdodDogNjBweDtcblx0fVxuXHQmLW1haW4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGRkNDODA7XG5cdH1cblx0Ji1tZW51IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjQTVENkE3O1xuXHRcdGhlaWdodDogNDBweDtcblx0fVxuXHQmLWZvb3RlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0U2RUU5Qztcblx0XHRoZWlnaHQ6IDI1cHg7XG5cdFx0Ji1tZXRhIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNFRjlBOUE7XG5cdFx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0fVxuXHR9XG59XG4uaWNvbnMtY29udGFpbmVyIHtcblx0JiA+IGRpdiB7XG5cdFx0bWFyZ2luOiA4cHg7XG5cdH1cblx0aS5tYXRlcmlhbC1pY29ucyB7XG5cdFx0d2lkdGg6IDQ4cHg7XG5cdFx0aGVpZ2h0OiA0OHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA0OHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuXG4uZm9vdGVyLWJhciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG5cdHBhZGRpbmc6IDhweCAxNnB4O1xuXG5cdD4gZGl2IHtcblx0XHRtYXgtd2lkdGg6IDEyMDBweDtcblx0XHRtYXJnaW46IGF1dG87XG5cdH1cblx0Lm1ldGFoZWFkZXItZm9vdGVyIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMnB4O1xuXHRcdD4gZGl2Om5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi10b3A6IDhweDtcblx0XHR9XG5cdH1cbn1cbiIsIi5yaWNhcmRvLWljb25zIHtcbiAgJl9faXRlbSB7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG4gIH1cbiAgJl9fY29kZSB7XG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIH1cbn0iLCIuZi10eXBvLWl0ZW0ge1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgLjEpO1xuICAgIH1cbn1cbi50eXBvLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTUpO1xufVxuLnR5cG8taW1hZ2UtYmxvY2sge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgaGVpZ2h0OjIwMHB4O1xuICAgIHdpZHRoOjQwMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4wOCk7XG59IiwiLyogT3BlbiB3aXRoIENvZGVQZW4gQnV0dG9uICovXG4uY29kZXBlbi1idXR0b24ge1xuICB6LWluZGV4OiAxMDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2NvZGVwZW4tbG9nby5wbmcnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAyNnB4IDI2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogLTE0MHB4O1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3BhY2l0eTogMC42O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogYmxhY2s7XG4gIHBhZGRpbmc6IDEzcHggMTVweCA1cHggNTBweDtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC41cywgYmFja2dyb3VuZC1jb2xvciAwLjVzLCBvcGFjaXR5IDAuNXMsIGJhY2tncm91bmQtc2l6ZSAwLjNzO1xufVxuLmNvZGVwZW4tYnV0dG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6ICdPcGVuIGluIENvZGVQZW4nO1xufVxuLmNvZGVwZW4tYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtc2l6ZTogMzZweCAzNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4O1xufVxuLmRvY3MtbGF5b3V0IHByZVtjbGFzcyo9bGFuZ3VhZ2UtbWFya3VwXSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uZG9jcy1sYXlvdXQgcHJlW2NsYXNzKj1sYW5ndWFnZS1tYXJrdXBdLmNvZGVwZW4tYnV0dG9uLWRpc2FibGVkOm5vdCBjb2RlIHtcbiAgcGFkZGluZy1yaWdodDogNTBweDtcbn1cbi5jb2RlcGVuLWJ1dHRvbi1kaXNhYmxlZCAuY29kZXBlbi1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufSIsIi5sYXlvdXQuaG9yaXpvbnRhbCxcbi5sYXlvdXQuaG9yaXpvbnRhbC1yZXZlcnNlLFxuLmxheW91dC52ZXJ0aWNhbCxcbi5sYXlvdXQudmVydGljYWwtcmV2ZXJzZSB7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5sYXlvdXQuaW5saW5lIHtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLmxheW91dC5ob3Jpem9udGFsIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLmxheW91dC5ob3Jpem9udGFsLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4ubGF5b3V0LnZlcnRpY2FsIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHtcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbn1cblxuLmxheW91dC53cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmxheW91dC5uby13cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cblxuLmxheW91dC53cmFwLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xufVxuXG4uZmxleC1hdXRvIHtcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XG4gICAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bztcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLmZsZXgtbm9uZSB7XG4gICAgLW1zLWZsZXg6IG5vbmU7XG4gICAgLXdlYmtpdC1mbGV4OiBub25lO1xuICAgIGZsZXg6IG5vbmU7XG59XG5cbi5mbGV4LFxuLmZsZXgtMSB7XG4gICAgLW1zLWZsZXg6IDE7XG4gICAgLXdlYmtpdC1mbGV4OiAxO1xuICAgIGZsZXg6IDE7XG59XG5cbi5mbGV4LTIge1xuICAgIC1tcy1mbGV4OiAyO1xuICAgIC13ZWJraXQtZmxleDogMjtcbiAgICBmbGV4OiAyO1xufVxuXG4uZmxleC0zIHtcbiAgICAtbXMtZmxleDogMztcbiAgICAtd2Via2l0LWZsZXg6IDM7XG4gICAgZmxleDogMztcbn1cblxuLmZsZXgtNCB7XG4gICAgLW1zLWZsZXg6IDQ7XG4gICAgLXdlYmtpdC1mbGV4OiA0O1xuICAgIGZsZXg6IDQ7XG59XG5cbi5mbGV4LTUge1xuICAgIC1tcy1mbGV4OiA1O1xuICAgIC13ZWJraXQtZmxleDogNTtcbiAgICBmbGV4OiA1O1xufVxuXG4uZmxleC02IHtcbiAgICAtbXMtZmxleDogNjtcbiAgICAtd2Via2l0LWZsZXg6IDY7XG4gICAgZmxleDogNjtcbn1cblxuLmZsZXgtNyB7XG4gICAgLW1zLWZsZXg6IDc7XG4gICAgLXdlYmtpdC1mbGV4OiA3O1xuICAgIGZsZXg6IDc7XG59XG5cbi5mbGV4LTgge1xuICAgIC1tcy1mbGV4OiA4O1xuICAgIC13ZWJraXQtZmxleDogODtcbiAgICBmbGV4OiA4O1xufVxuXG4uZmxleC05IHtcbiAgICAtbXMtZmxleDogOTtcbiAgICAtd2Via2l0LWZsZXg6IDk7XG4gICAgZmxleDogOTtcbn1cblxuLmZsZXgtMTAge1xuICAgIC1tcy1mbGV4OiAxMDtcbiAgICAtd2Via2l0LWZsZXg6IDEwO1xuICAgIGZsZXg6IDEwO1xufVxuXG4uZmxleC0xMSB7XG4gICAgLW1zLWZsZXg6IDExO1xuICAgIC13ZWJraXQtZmxleDogMTE7XG4gICAgZmxleDogMTE7XG59XG5cbi5mbGV4LTEyIHtcbiAgICAtbXMtZmxleDogMTI7XG4gICAgLXdlYmtpdC1mbGV4OiAxMjtcbiAgICBmbGV4OiAxMjtcbn1cblxuLyogYWxpZ25tZW50IGluIGNyb3NzIGF4aXMgKi9cblxuLmxheW91dC5zdGFydCB7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5sYXlvdXQuY2VudGVyLFxuLmxheW91dC5jZW50ZXItY2VudGVyIHtcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubGF5b3V0LmVuZCB7XG4gICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi8qIGFsaWdubWVudCBpbiBtYWluIGF4aXMgKi9cblxuLmxheW91dC5zdGFydC1qdXN0aWZpZWQge1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmNlbnRlci1qdXN0aWZpZWQsXG4uY2VudGVyLWNlbnRlciB7XG4gICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5lbmQtanVzdGlmaWVkIHtcbiAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5hcm91bmQtanVzdGlmaWVkIHtcbiAgICAtbXMtZmxleC1wYWNrOiBhcm91bmQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLmp1c3RpZmllZCB7XG4gICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi8qIHNlbGYgYWxpZ25tZW50ICovXG5cbi5zZWxmLXN0YXJ0IHtcbiAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLnNlbGYtY2VudGVyIHtcbiAgICAtbXMtYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuLnNlbGYtZW5kIHtcbiAgICAtbXMtYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cblxuLnNlbGYtc3RyZXRjaCB7XG4gICAgLW1zLWFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBPdGhlciBMYXlvdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIElFIDEwIHN1cHBvcnQgZm9yIEhUTUw1IGhpZGRlbiBhdHRyICovXG5baGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnJlbGF0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5maXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbmJvZHkuZnVsbGJsZWVkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbn1cblxuLnNjcm9sbCB7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKiBmaXhlZCBwb3NpdGlvbiAqL1xuXG4uZml4ZWQtYm90dG9tLFxuLmZpeGVkLWxlZnQsXG4uZml4ZWQtcmlnaHQsXG4uZml4ZWQtdG9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi5maXhlZC10b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uZml4ZWQtcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG59XG5cbi5maXhlZC1ib3R0b20ge1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xufVxuXG4uZml4ZWQtbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xufVxuIiwiLnJpYy1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn0iLCJAaW1wb3J0ICcuL3NyYy9saWIvbWRsL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuL3NyYy9saWIvbWRsL21peGlucyc7XG5AaW1wb3J0ICcuL3NyYy9saWIvbWRsL3NoYWRvdy9zaGFkb3cnO1xuQGltcG9ydCAnLi9zcmMvbGliL3JpY2FyZG8vbGF5b3V0L21peGlucyc7XG5cbkBpbXBvcnQgXCJmYWJyaWNhdG9yXCI7XG5AaW1wb3J0IFwiY29kZXBlblwiO1xuQGltcG9ydCBcImlyb24tZmxleC1sYXlvdXRcIjtcblxuQGltcG9ydCBcInBhZ2luYXRpb25cIjtcblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5zdHlsZWd1aWRlLWZhYnJpY2F0b3ItY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMTVweCAwO1xufSJdfQ== */
