﻿h1,h2,h3,h4,h5,h6,hgroup,.hgroup,ul,ol,dl,blockquote,p,address,table,fieldset,figure,pre{margin-bottom:24px}hr{margin-bottom:22px}ul,ol,dd{margin-left:48px}html{font:.875em/1.7142857143 'Helvetica', Arial, sans-serif;min-height:100%}body{position:relative;background:#fff;color:#333;overflow-x:hidden}.micro,.micro-medium,.micro-large,.milli,.milli-medium,.milli-large,.zeta,.zeta-medium,.zeta-large,.epsilon,.epsilon-medium,.epsilon-large,.delta,.delta-medium,.delta-large,.gamma,.gamma-medium,.gamma-large,.beta,.beta-medium,.beta-large,.alpha,.alpha-medium,.alpha-large,.kilo,.kilo-medium,.kilo-large,.mega,.mega-medium,.mega-large,.giga,.giga-medium,.giga-large{line-height:1.3}false{font-size:91px}.giga{font-size:91px !important}false{font-size:70px}.mega{font-size:70px !important}false{font-size:56px}.kilo{font-size:56px !important}h1{font-size:46.6662px}.alpha{font-size:46.6662px !important}h2{font-size:37.3338px}.beta{font-size:37.3338px !important}h3{font-size:28px}.gamma{font-size:28px !important}h4{font-size:18.6662px}.delta{font-size:18.6662px !important}h5{font-size:16.3338px}.epsilon{font-size:16.3338px !important}h6{font-size:14px}.zeta{font-size:14px !important}false{font-size:11.6662px}.milli{font-size:11.6662px !important}false{font-size:10.5px}.micro{font-size:10.5px !important}hgroup .hN,.hgroup .hN{margin-bottom:0}.hN .hgroup--inline{display:inline-block}.lede,.lead{font-size:15.75px}a{color:#4374ae;text-decoration:none}a:hover{text-decoration:underline}q{quotes:"‘" "’" "“" "”"}q:before{content:"‘";content:open-quote}q:after{content:"’";content:close-quote}q q:before{content:"“";content:open-quote}q q:after{content:"”";content:close-quote}blockquote{quotes:"“" "”";text-indent:-0.41em}blockquote p{font-size:17.5px;line-height:1.5}blockquote p:before{content:"“";content:open-quote}blockquote p:after{content:"";content:no-close-quote}blockquote p:last-of-type{margin-bottom:0}blockquote p:last-of-type:after{content:"”";content:close-quote}blockquote q:before{content:"‘";content:open-quote}blockquote q:after{content:"’";content:close-quote}.blockquote--indent{padding:0 0 0 15px;border-left:5px solid hsl(0,0%,85%)}.blockquote__source{color:hsl(0,0%,75%);display:block;text-indent:0}.blockquote__source:before{content:"—"}code,pre{padding:0 3px 2px;font-family:Monaco,Consolas,“Lucida Console”,monospace;font-size:12px;color:hsl(0,0%,30%);border-radius:3px}code{padding:2px 4px;color:#00008b;background-color:hsl(0,0%,95%);border:1px solid #d6d6d6;white-space:nowrap}pre{display:block;padding:2.5px;font-size:13px;line-height:24px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:hsl(0,0%,95%);border:1px solid #d6d6d6;border-radius:4px}pre.pre__scrollable{max-height:340px;overflow-y:scroll}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:rgba(0,0,0,0);border:0}img,.img{max-width:100%;font-style:italic;vertical-align:middle}.gm-style img,img[width],img[height]{max-width:none}.img--right{float:right;margin-bottom:24px;margin-left:24px}.img--left{float:left;margin-right:24px;margin-bottom:24px}.img--center{display:block;margin-right:auto;margin-left:auto;margin-bottom:24px}.inline-img{display:inline-block;background:rgba(0,0,0,0) no-repeat center center}.inline-img:hover{text-decoration:none}li>ul,li>ol{margin-bottom:0}.list--numbered{list-style-type:decimal}.list--prune{list-style:none;margin-left:0}table{width:100%}th,td{text-align:left;padding:6px}@media print,screen and (min-width: 30.0625em){th,td{padding:12px}}[colspan]{text-align:center}[colspan="1"]{text-align:left}[rowspan]{vertical-align:middle}[rowspan="1"]{vertical-align:top}.numerical{text-align:right}.t5{width:5%}.t10{width:10%}.t12{width:12.5%}.t15{width:15%}.t20{width:20%}.t25{width:25%}.t30{width:30%}.t33{width:33.333%}.t35{width:35%}.t37{width:37.5%}.t40{width:40%}.t45{width:45%}.t50{width:50%}.t55{width:55%}.t60{width:60%}.t62{width:62.5%}.t65{width:65%}.t66{width:66.666%}.t70{width:70%}.t75{width:75%}.t80{width:80%}.t85{width:85%}.t87{width:87.5%}.t90{width:90%}.t95{width:95%}.table--bordered th,.table--bordered td{border:1px solid #d6d6d6}.table--bordered th:empty,.table--bordered td:empty{border:none}.table--bordered thead tr:last-child th{border-bottom-width:2px}.table--bordered tbody tr th:last-of-type{border-right-width:2px}.table--striped tbody tr:nth-of-type(odd){background-color:hsl(0,0%,95%)}.table--data{font:12px/1.5 sans-serif}@media screen and (min-width: 0em)and (max-width: 30em){.table--responsive thead{display:none}.table--responsive th,.table--responsive td,.table--responsive tr{display:block}.table--responsive td{text-align:left}.table--responsive td:before{content:attr(data-th);font-weight:bold}.table--responsive tr{margin-bottom:24px}}.form--inline .hN{display:inline-block;margin-bottom:0}.form--inline fieldset{display:inline-block;margin-bottom:0}label{display:block}label.is-required:before{content:"* "}input[type=checkbox]+label{display:inline-block;padding-left:12px}@media print,screen and (min-width: 30.0625em){.form--inline label{display:inline-block}}.label__additional{display:block;font-weight:normal}.form--inline .radio,.form--inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form--inline .radio input[type=radio],.form--inline .checkbox input[type=checkbox]{float:left;margin-right:12px;margin-left:0}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9 ;line-height:normal}input[type=radio]{margin-left:1px}input[type=file],input[type=image],input[type=submit],input[type=reset],input[type=button],input[type=radio],input[type=checkbox]{width:auto}label,select,input[type=button],input[type=reset],input[type=submit],input[type=radio],input[type=checkbox]{cursor:pointer}select{vertical-align:middle}select :focus{outline:none}object{pointer-events:none;width:100%}.text-input{display:inline-block;vertical-align:middle;font:inherit;margin:0;padding:.5em 1em;padding:calc(0.5em - 1px) 1em;color:#333;background:#fff;border:1px solid #d6d6d6;border-radius:4px;max-width:100%}.a11y,.accessibility{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}@media print,screen and (min-width: 30.0625em){.accessibility--medium{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}}@media print,screen and (min-width: 64em){.accessibility--large{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}}@media print,screen and (min-width: 75em){.accessibility--xlarge{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}}.align-left{text-align:left !important}.align-center{text-align:center !important}.align-right{text-align:right !important}.align-bottom{vertical-align:bottom !important}.brand{font-family:'Helvetica', Arial, sans-serif !important;color:#090 !important}.brand-face{font-family:'Helvetica', Arial, sans-serif !important}.brand-color{color:#090 !important}.uppercase{text-transform:uppercase !important}.lowercase{text-transform:lowercase !important}.clearfix:after,.cf:after{content:"";display:table;clear:both}.informative{cursor:help !important}.clickable{cursor:pointer !important}.display-inline,.inline{display:inline !important}.display-block,.block{display:block !important}.display-inline-block,.inline-block{display:inline-block !important}.float-right{float:right !important}.float-left{float:left !important}.float-none{float:none !important}.full{width:100% !important;max-width:none !important;min-width:0 !important}.gpu{transform:translateZ(0)}.visible-print,.visible-large,.visible-medium,.hidden-small,.yes-js .hidden--js,.no-js .visible--js,.hidden{position:absolute !important;left:-999% !important;top:-999% !important}@media print,screen and (min-width: 30.0625em){.hidden-medium,.visible-small{position:absolute !important;left:-999% !important;top:-999% !important}.visible-medium,.hidden-small{position:static !important;left:auto !important;top:auto !important}}@media print,screen and (min-width: 64em){.hidden-large,.visible-medium{position:absolute !important;left:-999% !important;top:-999% !important}.visible-large,.hidden-medium{position:static !important;left:auto !important;top:auto !important}}@media print{.hidden-print{position:absolute !important;left:-999% !important;top:-999% !important}.visible-print{position:static !important;left:auto !important;top:auto !important}}.line-height-half,.lh-half{line-height:.5 !important}.line-height-double,.lh-double{line-height:2 !important}.line-height-triple,.lh-triple{line-height:3 !important}.muted{opacity:.5 !important;filter:alpha(opacity=50) !important}.muted-25{opacity:.25 !important;filter:alpha(opacity=25) !important}.muted-50{opacity:.5 !important;filter:alpha(opacity=50) !important}.muted-75{opacity:.75 !important;filter:alpha(opacity=75) !important}.round{border-radius:4px !important}.round-full{border-radius:9999px !important}.ellipse{border-radius:100% !important}.scroll{overflow:scroll !important;-webkit-overflow-scrolling:touch !important}.push-none{margin:0px !important}.push-none-top{margin-top:0px !important}.push-none-right{margin-right:0px !important}.push-none-bottom{margin-bottom:0px !important}.push-none-left{margin-left:0px !important}.push-none-sides{margin-left:0px !important;margin-right:0px !important}.push-none-ends{margin-top:0px !important;margin-bottom:0px !important}.push-half{margin:12px !important}.push-half-top{margin-top:12px !important}.push-half-right{margin-right:12px !important}.push-half-bottom{margin-bottom:12px !important}.push-half-left{margin-left:12px !important}.push-half-sides{margin-left:12px !important;margin-right:12px !important}.push-half-ends{margin-top:12px !important;margin-bottom:12px !important}.push{margin:24px !important}.push-top{margin-top:24px !important}.push-right{margin-right:24px !important}.push-bottom{margin-bottom:24px !important}.push-left{margin-left:24px !important}.push-sides{margin-left:24px !important;margin-right:24px !important}.push-ends{margin-top:24px !important;margin-bottom:24px !important}.push-double{margin:48px !important}.push-double-top{margin-top:48px !important}.push-double-right{margin-right:48px !important}.push-double-bottom{margin-bottom:48px !important}.push-double-left{margin-left:48px !important}.push-double-sides{margin-left:48px !important;margin-right:48px !important}.push-double-ends{margin-top:48px !important;margin-bottom:48px !important}.push-rev-half{margin:-12px !important}.push-rev-half-top{margin-top:-12px !important}.push-rev-half-right{margin-right:-12px !important}.push-rev-half-bottom{margin-bottom:-12px !important}.push-rev-half-left{margin-left:-12px !important}.push-rev-half-sides{margin-left:-12px !important;margin-right:-12px !important}.push-rev-half-ends{margin-top:-12px !important;margin-bottom:-12px !important}.push-rev{margin:-24px !important}.push-rev-top{margin-top:-24px !important}.push-rev-right{margin-right:-24px !important}.push-rev-bottom{margin-bottom:-24px !important}.push-rev-left{margin-left:-24px !important}.push-rev-sides{margin-left:-24px !important;margin-right:-24px !important}.push-rev-ends{margin-top:-24px !important;margin-bottom:-24px !important}.push-rev-double{margin:-48px !important}.push-rev-double-top{margin-top:-48px !important}.push-rev-double-right{margin-right:-48px !important}.push-rev-double-bottom{margin-bottom:-48px !important}.push-rev-double-left{margin-left:-48px !important}.push-rev-double-sides{margin-left:-48px !important;margin-right:-48px !important}.push-rev-double-ends{margin-top:-48px !important;margin-bottom:-48px !important}.pad-none{padding:0px !important}.pad-none-top{padding-top:0px !important}.pad-none-right{padding-right:0px !important}.pad-none-bottom{padding-bottom:0px !important}.pad-none-left{padding-left:0px !important}.pad-none-sides{padding-left:0px !important;padding-right:0px !important}.pad-none-ends{padding-top:0px !important;padding-bottom:0px !important}.pad-half{padding:12px !important}.pad-half-top{padding-top:12px !important}.pad-half-right{padding-right:12px !important}.pad-half-bottom{padding-bottom:12px !important}.pad-half-left{padding-left:12px !important}.pad-half-sides{padding-left:12px !important;padding-right:12px !important}.pad-half-ends{padding-top:12px !important;padding-bottom:12px !important}.pad{padding:24px !important}.pad-top{padding-top:24px !important}.pad-right{padding-right:24px !important}.pad-bottom{padding-bottom:24px !important}.pad-left{padding-left:24px !important}.pad-sides{padding-left:24px !important;padding-right:24px !important}.pad-ends{padding-top:24px !important;padding-bottom:24px !important}.pad-double{padding:48px !important}.pad-double-top{padding-top:48px !important}.pad-double-right{padding-right:48px !important}.pad-double-bottom{padding-bottom:48px !important}.pad-double-left{padding-left:48px !important}.pad-double-sides{padding-left:48px !important;padding-right:48px !important}.pad-double-ends{padding-top:48px !important;padding-bottom:48px !important}.text-legibility{text-rendering:optimizeLegibility}.text-speed{text-rendering:optimizeSpeed}.text-smooth{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.truncate{white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important}.unselectable{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.weight-light{font-weight:300 !important}.weight-normal{font-weight:400 !important}.weight-semibold{font-weight:600 !important}.weight-bold{font-weight:700 !important}.weight-bolder{font-weight:900 !important}[class*=carousel]{position:relative}.carousel__list{position:relative;display:flex;margin:0;overflow:hidden;white-space:nowrap;list-style:none;margin-left:0;transform:translateZ(0)}.carousel__list:after{content:"";display:table;clear:both}.carousel__list>li{display:block;min-width:100%}@media print,screen and (min-width: 30.0625em){.carousel--2 .carousel__list>li{min-width:100%}}@media print,screen and (min-width: 64em){.carousel--2 .carousel__list>li{min-width:calc(100%/2 - 6px)}}.carousel--2 .carousel__list>li:not(:last-child){margin-right:12px}@media print,screen and (min-width: 30.0625em){.carousel--3 .carousel__list>li{min-width:100%}}@media print,screen and (min-width: 64em){.carousel--3 .carousel__list>li{min-width:calc(100%/3 - 8px)}}.carousel--3 .carousel__list>li:not(:last-child){margin-right:12px}@media print,screen and (min-width: 30.0625em){.carousel--4 .carousel__list>li{min-width:100%}}@media print,screen and (min-width: 64em){.carousel--4 .carousel__list>li{min-width:calc(100%/4 - 9px)}}.carousel--4 .carousel__list>li:not(:last-child){margin-right:12px}@media print,screen and (min-width: 30.0625em){.carousel--5 .carousel__list>li{min-width:100%}}@media print,screen and (min-width: 64em){.carousel--5 .carousel__list>li{min-width:calc(100%/5 - 9.6px)}}.carousel--5 .carousel__list>li:not(:last-child){margin-right:12px}.no-touch .w-tooltip{position:relative;cursor:help}a .no-touch .w-tooltip,.no-touch .w-tooltip a.no-touch .w-tooltip{cursor:pointer}.tooltip{position:absolute;z-index:11;display:inline-block;height:0;overflow:hidden;opacity:0;transform:translateZ(0);transition:opacity .25s ease}.tooltip.is-active,.tooltip.is-forced-active{height:auto;overflow:visible;opacity:1}.tooltip__tip{display:inline-block;vertical-align:middle;font:inherit;margin:0;padding:.25em .5em;padding:calc(0.25em - 1px) .5em;color:#333;background:#eee;border:1px solid #333;position:relative;white-space:nowrap}.tooltip__tip a{color:#ccc}.tooltip__tip--arrow-top{top:9.6px;position:relative}.tooltip__tip--arrow-top:before,.tooltip__tip--arrow-top:after{content:"";position:absolute;border-collapse:separate}.tooltip__tip--arrow-top:before{border:9.6px solid rgba(0,0,0,0)}.tooltip__tip--arrow-top:after{border:8.6px solid rgba(0,0,0,0)}.tooltip__tip--arrow-top:before,.tooltip__tip--arrow-top:after{bottom:100%}.tooltip__tip--arrow-top:before{border-bottom-color:#333 !important}.tooltip__tip--arrow-top:after{border-bottom-color:#eee !important}.tooltip__tip--arrow-top:before,.tooltip__tip--arrow-top:after{left:50%;margin-left:-9.6px}.tooltip__tip--arrow-top:after{margin-left:-8.6px}.tooltip__tip--arrow-bottom{top:-9.6px;position:relative}.tooltip__tip--arrow-bottom:before,.tooltip__tip--arrow-bottom:after{content:"";position:absolute;border-collapse:separate}.tooltip__tip--arrow-bottom:before{border:9.6px solid rgba(0,0,0,0)}.tooltip__tip--arrow-bottom:after{border:8.6px solid rgba(0,0,0,0)}.tooltip__tip--arrow-bottom:before,.tooltip__tip--arrow-bottom:after{top:100%}.tooltip__tip--arrow-bottom:before{border-top-color:#333 !important}.tooltip__tip--arrow-bottom:after{border-top-color:#eee !important}.tooltip__tip--arrow-bottom:before,.tooltip__tip--arrow-bottom:after{left:50%;margin-left:-9.6px}.tooltip__tip--arrow-bottom:after{margin-left:-8.6px}.tooltip__tip--arrow-left{left:9.6px;position:relative}.tooltip__tip--arrow-left:before,.tooltip__tip--arrow-left:after{content:"";position:absolute;border-collapse:separate}.tooltip__tip--arrow-left:before{border:9.6px solid rgba(0,0,0,0)}.tooltip__tip--arrow-left:after{border:8.6px solid rgba(0,0,0,0)}.tooltip__tip--arrow-left:before,.tooltip__tip--arrow-left:after{right:100%}.tooltip__tip--arrow-left:before{border-right-color:#333 !important}.tooltip__tip--arrow-left:after{border-right-color:#eee !important}.tooltip__tip--arrow-left:before,.tooltip__tip--arrow-left:after{top:50%;margin-top:-9.6px}.tooltip__tip--arrow-left:after{margin-top:-8.6px}.tooltip__tip--arrow-right{right:9.6px;position:relative}.tooltip__tip--arrow-right:before,.tooltip__tip--arrow-right:after{content:"";position:absolute;border-collapse:separate}.tooltip__tip--arrow-right:before{border:9.6px solid rgba(0,0,0,0)}.tooltip__tip--arrow-right:after{border:8.6px solid rgba(0,0,0,0)}.tooltip__tip--arrow-right:before,.tooltip__tip--arrow-right:after{left:100%}.tooltip__tip--arrow-right:before{border-left-color:#333 !important}.tooltip__tip--arrow-right:after{border-left-color:#eee !important}.tooltip__tip--arrow-right:before,.tooltip__tip--arrow-right:after{top:50%;margin-top:-9.6px}.tooltip__tip--arrow-right:after{margin-top:-8.6px}.modal{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;color:#fff;background:#000;background:rgba(0,0,0,.8)}.modal--fixed{position:fixed}.modal__content{position:relative;margin:0 auto;width:100%;max-width:1024px}.modal__close{display:none;position:fixed;text-align:right;top:12px;right:12px;padding:0 12px;border:2px solid #fff;opacity:.75;cursor:pointer}.tab{display:none}.no-js .tab,.tab.is-active{display:block}@media print{.tab{display:block}}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdlbWluaS1qcy5jc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2Jhc2UvX21hcmdpbnMuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvYmFzZS9fbWFpbi5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9iYXNlL19oZWFkaW5ncy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9iYXNlL19wYXJhZ3JhcGhzLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL21peGlucy9fZm9udC1zaXplLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2Jhc2UvX2xpbmtzLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2Jhc2UvX3F1b3Rlcy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9iYXNlL19jb2RlLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL21peGlucy9fYm9yZGVyLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2Jhc2UvX2ltYWdlcy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9iYXNlL19saXN0cy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9taXhpbnMvX2xpc3RzLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2Jhc2UvX3RhYmxlcy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9taXhpbnMvX21lZGlhLXF1ZXJpZXMuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvYmFzZS9fZm9ybXMuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvYmFzZS9fb2JqZWN0cy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9iYXNlL190ZXh0LWlucHV0cy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9vYmplY3RzL190YWdzLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2hlbHBlcnMvX2FjY2Vzc2liaWxpdHkuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvbWl4aW5zL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2hlbHBlcnMvX2FsaWduLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2hlbHBlcnMvX2JyYW5kLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2hlbHBlcnMvX2Nhc2luZy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9taXhpbnMvX2NsZWFyZml4LnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2hlbHBlcnMvX2N1cnNvcnMuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvaGVscGVycy9fZGlzcGxheS5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9oZWxwZXJzL19mbG9hdHMuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvaGVscGVycy9fZnVsbC5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9taXhpbnMvX2dwdS5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9oZWxwZXJzL19oaWRkZW4uc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvaGVscGVycy9fbGluZS1oZWlnaHQuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvaGVscGVycy9fbXV0ZS5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9oZWxwZXJzL19yYWRpdXMuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvaGVscGVycy9fc2Nyb2xsLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2hlbHBlcnMvX3NwYWNpbmcuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvaGVscGVycy9fdGV4dC1yZW5kZXJpbmcuc2NzcyIsImJ1aWxkcy9jYXJwYWdlcy9jYXJwYWdlcy5jYS93ZWIvbm9kZV9tb2R1bGVzL2dlbWluaS1jc3MvbWl4aW5zL190ZXh0LXJlbmRlcmluZy5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9oZWxwZXJzL190cnVuY2F0ZS5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9ub2RlX21vZHVsZXMvZ2VtaW5pLWNzcy9taXhpbnMvX3RydW5jYXRlLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2hlbHBlcnMvX3VzZXItc2VsZWN0LnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL2hlbHBlcnMvX3dlaWdodC5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9zcmMvanMvbW9kdWxlcy9nZW1pbmkvc2Fzcy9jYXJvdXNlbC5zY3NzIiwiYnVpbGRzL2NhcnBhZ2VzL2NhcnBhZ2VzLmNhL3dlYi9zcmMvanMvbW9kdWxlcy9nZW1pbmkvc2Fzcy90b29sdGlwLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9jb21wYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL25vZGVfbW9kdWxlcy9nZW1pbmktY3NzL21peGlucy9fYXJyb3dzLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL3NyYy9qcy9tb2R1bGVzL2dlbWluaS9zYXNzL21vZGFsLnNjc3MiLCJidWlsZHMvY2FycGFnZXMvY2FycGFnZXMuY2Evd2ViL3NyYy9qcy9tb2R1bGVzL2dlbWluaS9zYXNzL3RhYnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxDQUFBLHlGQ2dCQSxrQkFtQkUsQ0FBQSxHQVFGLGtCQUNFLENBQUEsU0FRRixnQkFHRSxDQUFBLEtDMUNGLHVEQUNFLENBQUEsZUFDQSxDQUFBLEtBR0YsaUJBQ0UsQ0FBQSxlQUNBLENBQUEsVUFDQSxDQUFBLGlCQUNBLENBQUEsNldDa0VGLGVBQ0UsQ0FBQSxNQVdBLGNBQ0UsQ0FBQSxNQUdGLHlCQUNFLENBQUEsTUFMRixjQUNFLENBQUEsTUFHRix5QkFDRSxDQUFBLE1BTEYsY0FDRSxDQUFBLE1BR0YseUJBQ0UsQ0FBQSxHQUxGLG1CQUNFLENBQUEsT0FHRiw4QkFDRSxDQUFBLEdBTEYsbUJBQ0UsQ0FBQSxNQUdGLDhCQUNFLENBQUEsR0FMRixjQUNFLENBQUEsT0FHRix5QkFDRSxDQUFBLEdBTEYsbUJBQ0UsQ0FBQSxPQUdGLDhCQUNFLENBQUEsR0FMRixtQkFDRSxDQUFBLFNBR0YsOEJBQ0UsQ0FBQSxHQUxGLGNBQ0UsQ0FBQSxNQUdGLHlCQUNFLENBQUEsTUFMRixtQkFDRSxDQUFBLE9BR0YsOEJBQ0UsQ0FBQSxNQUxGLGdCQUNFLENBQUEsT0FHRiwyQkFDRSxDQUFBLHVCQTBERixlQUVFLENBQUEsb0JBR0Ysb0JBQ0UsQ0FBQSxZQ3RKSixpQkNRRSxDQUFBLEVDZEYsYUFDRSxDQUFBLG9CQUNBLENBQUEsUUFFQSx5QkFDRSxDQUFBLEVDTEosc0JBQ0UsQ0FBQSxTQUVBLFdBQ0UsQ0FBQSxrQkFDQSxDQUFBLFFBRUYsV0FDRSxDQUFBLG1CQUNBLENBQUEsV0FHRixXQUNFLENBQUEsa0JBQ0EsQ0FBQSxVQUVGLFdBQ0UsQ0FBQSxtQkFDQSxDQUFBLFdBZUosY0FDRSxDQUFB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cCwuaGdyb3VwLHVsLG9sLGRsLGJsb2NrcXVvdGUscCxhZGRyZXNzLHRhYmxlLGZpZWxkc2V0LGZpZ3VyZSxwcmV7bWFyZ2luLWJvdHRvbToyNHB4fWhye21hcmdpbi1ib3R0b206MjJweH11bCxvbCxkZHttYXJnaW4tbGVmdDo0OHB4fWh0bWx7Zm9udDouODc1ZW0vMS43MTQyODU3MTQzICdIZWx2ZXRpY2EnLCBBcmlhbCwgc2Fucy1zZXJpZjttaW4taGVpZ2h0OjEwMCV9Ym9keXtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzMzMztvdmVyZmxvdy14OmhpZGRlbn0ubWljcm8sLm1pY3JvLW1lZGl1bSwubWljcm8tbGFyZ2UsLm1pbGxpLC5taWxsaS1tZWRpdW0sLm1pbGxpLWxhcmdlLC56ZXRhLC56ZXRhLW1lZGl1bSwuemV0YS1sYXJnZSwuZXBzaWxvbiwuZXBzaWxvbi1tZWRpdW0sLmVwc2lsb24tbGFyZ2UsLmRlbHRhLC5kZWx0YS1tZWRpdW0sLmRlbHRhLWxhcmdlLC5nYW1tYSwuZ2FtbWEtbWVkaXVtLC5nYW1tYS1sYXJnZSwuYmV0YSwuYmV0YS1tZWRpdW0sLmJldGEtbGFyZ2UsLmFscGhhLC5hbHBoYS1tZWRpdW0sLmFscGhhLWxhcmdlLC5raWxvLC5raWxvLW1lZGl1bSwua2lsby1sYXJnZSwubWVnYSwubWVnYS1tZWRpdW0sLm1lZ2EtbGFyZ2UsLmdpZ2EsLmdpZ2EtbWVkaXVtLC5naWdhLWxhcmdle2xpbmUtaGVpZ2h0OjEuM31mYWxzZXtmb250LXNpemU6OTFweH0uZ2lnYXtmb250LXNpemU6OTFweCAhaW1wb3J0YW50fWZhbHNle2ZvbnQtc2l6ZTo3MHB4fS5tZWdhe2ZvbnQtc2l6ZTo3MHB4ICFpbXBvcnRhbnR9ZmFsc2V7Zm9udC1zaXplOjU2cHh9LmtpbG97Zm9udC1zaXplOjU2cHggIWltcG9ydGFudH1oMXtmb250LXNpemU6NDYuNjY2MnB4fS5hbHBoYXtmb250LXNpemU6NDYuNjY2MnB4ICFpbXBvcnRhbnR9aDJ7Zm9udC1zaXplOjM3LjMzMzhweH0uYmV0YXtmb250LXNpemU6MzcuMzMzOHB4ICFpbXBvcnRhbnR9aDN7Zm9udC1zaXplOjI4cHh9LmdhbW1he2ZvbnQtc2l6ZToyOHB4ICFpbXBvcnRhbnR9aDR7Zm9udC1zaXplOjE4LjY2NjJweH0uZGVsdGF7Zm9udC1zaXplOjE4LjY2NjJweCAhaW1wb3J0YW50fWg1e2ZvbnQtc2l6ZToxNi4zMzM4cHh9LmVwc2lsb257Zm9udC1zaXplOjE2LjMzMzhweCAhaW1wb3J0YW50fWg2e2ZvbnQtc2l6ZToxNHB4fS56ZXRhe2ZvbnQtc2l6ZToxNHB4ICFpbXBvcnRhbnR9ZmFsc2V7Zm9udC1zaXplOjExLjY2NjJweH0ubWlsbGl7Zm9udC1zaXplOjExLjY2NjJweCAhaW1wb3J0YW50fWZhbHNle2ZvbnQtc2l6ZToxMC41cHh9Lm1pY3Jve2ZvbnQtc2l6ZToxMC41cHggIWltcG9ydGFudH1oZ3JvdXAgLmhOLC5oZ3JvdXAgLmhOe21hcmdpbi1ib3R0b206MH0uaE4gLmhncm91cC0taW5saW5le2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5sZWRlLC5sZWFke2ZvbnQtc2l6ZToxNS43NXB4fWF7Y29sb3I6IzQzNzRhZTt0ZXh0LWRlY29yYXRpb246bm9uZX1hOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9cXtxdW90ZXM6XCLigJhcIiBcIuKAmVwiIFwi4oCcXCIgXCLigJ1cIn1xOmJlZm9yZXtjb250ZW50Olwi4oCYXCI7Y29udGVudDpvcGVuLXF1b3RlfXE6YWZ0ZXJ7Y29udGVudDpcIuKAmVwiO2NvbnRlbnQ6Y2xvc2UtcXVvdGV9cSBxOmJlZm9yZXtjb250ZW50Olwi4oCcXCI7Y29udGVudDpvcGVuLXF1b3RlfXEgcTphZnRlcntjb250ZW50Olwi4oCdXCI7Y29udGVudDpjbG9zZS1xdW90ZX1ibG9ja3F1b3Rle3F1b3RlczpcIuKAnFwiIFwi4oCdXCI7dGV4dC1pbmRlbnQ6LTAuNDFlbX1ibG9ja3F1b3RlIHB7Zm9udC1zaXplOjE3LjVweDtsaW5lLWhlaWdodDoxLjV9YmxvY2txdW90ZSBwOmJlZm9yZXtjb250ZW50Olwi4oCcXCI7Y29udGVudDpvcGVuLXF1b3RlfWJsb2NrcXVvdGUgcDphZnRlcntjb250ZW50OlwiXCI7Y29udGVudDpuby1jbG9zZS1xdW90ZX1ibG9ja3F1b3RlIHA6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206MH1ibG9ja3F1b3RlIHA6bGFzdC1vZi10eXBlOmFmdGVye2NvbnRlbnQ6XCLigJ1cIjtjb250ZW50OmNsb3NlLXF1b3RlfWJsb2NrcXVvdGUgcTpiZWZvcmV7Y29udGVudDpcIuKAmFwiO2NvbnRlbnQ6b3Blbi1xdW90ZX1ibG9ja3F1b3RlIHE6YWZ0ZXJ7Y29udGVudDpcIuKAmVwiO2NvbnRlbnQ6Y2xvc2UtcXVvdGV9LmJsb2NrcXVvdGUtLWluZGVudHtwYWRkaW5nOjAgMCAwIDE1cHg7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkIGhzbCgwLDAlLDg1JSl9LmJsb2NrcXVvdGVfX3NvdXJjZXtjb2xvcjpoc2woMCwwJSw3NSUpO2Rpc3BsYXk6YmxvY2s7dGV4dC1pbmRlbnQ6MH0uYmxvY2txdW90ZV9fc291cmNlOmJlZm9yZXtjb250ZW50Olwi4oCUXCJ9Y29kZSxwcmV7cGFkZGluZzowIDNweCAycHg7Zm9udC1mYW1pbHk6TW9uYWNvLENvbnNvbGFzLOKAnEx1Y2lkYSBDb25zb2xl4oCdLG1vbm9zcGFjZTtmb250LXNpemU6MTJweDtjb2xvcjpoc2woMCwwJSwzMCUpO2JvcmRlci1yYWRpdXM6M3B4fWNvZGV7cGFkZGluZzoycHggNHB4O2NvbG9yOiMwMDAwOGI7YmFja2dyb3VuZC1jb2xvcjpoc2woMCwwJSw5NSUpO2JvcmRlcjoxcHggc29saWQgI2Q2ZDZkNjt3aGl0ZS1zcGFjZTpub3dyYXB9cHJle2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoyLjVweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoyNHB4O3dvcmQtYnJlYWs6YnJlYWstYWxsO3dvcmQtd3JhcDpicmVhay13b3JkO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtiYWNrZ3JvdW5kLWNvbG9yOmhzbCgwLDAlLDk1JSk7Ym9yZGVyOjFweCBzb2xpZCAjZDZkNmQ2O2JvcmRlci1yYWRpdXM6NHB4fXByZS5wcmVfX3Njcm9sbGFibGV7bWF4LWhlaWdodDozNDBweDtvdmVyZmxvdy15OnNjcm9sbH1wcmUgY29kZXtwYWRkaW5nOjA7Y29sb3I6aW5oZXJpdDt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlcjowfWltZywuaW1ne21heC13aWR0aDoxMDAlO2ZvbnQtc3R5bGU6aXRhbGljO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZ20tc3R5bGUgaW1nLGltZ1t3aWR0aF0saW1nW2hlaWdodF17bWF4LXdpZHRoOm5vbmV9LmltZy0tcmlnaHR7ZmxvYXQ6cmlnaHQ7bWFyZ2luLWJvdHRvbToyNHB4O21hcmdpbi1sZWZ0OjI0cHh9LmltZy0tbGVmdHtmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDoyNHB4O21hcmdpbi1ib3R0b206MjRweH0uaW1nLS1jZW50ZXJ7ZGlzcGxheTpibG9jazttYXJnaW4tcmlnaHQ6YXV0bzttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1ib3R0b206MjRweH0uaW5saW5lLWltZ3tkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCkgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXJ9LmlubGluZS1pbWc6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9bGk+dWwsbGk+b2x7bWFyZ2luLWJvdHRvbTowfS5saXN0LS1udW1iZXJlZHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0ubGlzdC0tcHJ1bmV7bGlzdC1zdHlsZTpub25lO21hcmdpbi1sZWZ0OjB9dGFibGV7d2lkdGg6MTAwJX10aCx0ZHt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzo2cHh9QG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzAuMDYyNWVtKXt0aCx0ZHtwYWRkaW5nOjEycHh9fVtjb2xzcGFuXXt0ZXh0LWFsaWduOmNlbnRlcn1bY29sc3Bhbj1cIjFcIl17dGV4dC1hbGlnbjpsZWZ0fVtyb3dzcGFuXXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9W3Jvd3NwYW49XCIxXCJde3ZlcnRpY2FsLWFsaWduOnRvcH0ubnVtZXJpY2Fse3RleHQtYWxpZ246cmlnaHR9LnQ1e3dpZHRoOjUlfS50MTB7d2lkdGg6MTAlfS50MTJ7d2lkdGg6MTIuNSV9LnQxNXt3aWR0aDoxNSV9LnQyMHt3aWR0aDoyMCV9LnQyNXt3aWR0aDoyNSV9LnQzMHt3aWR0aDozMCV9LnQzM3t3aWR0aDozMy4zMzMlfS50MzV7d2lkdGg6MzUlfS50Mzd7d2lkdGg6MzcuNSV9LnQ0MHt3aWR0aDo0MCV9LnQ0NXt3aWR0aDo0NSV9LnQ1MHt3aWR0aDo1MCV9LnQ1NXt3aWR0aDo1NSV9LnQ2MHt3aWR0aDo2MCV9LnQ2Mnt3aWR0aDo2Mi41JX0udDY1e3dpZHRoOjY1JX0udDY2e3dpZHRoOjY2LjY2NiV9LnQ3MHt3aWR0aDo3MCV9LnQ3NXt3aWR0aDo3NSV9LnQ4MHt3aWR0aDo4MCV9LnQ4NXt3aWR0aDo4NSV9LnQ4N3t3aWR0aDo4Ny41JX0udDkwe3dpZHRoOjkwJX0udDk1e3dpZHRoOjk1JX0udGFibGUtLWJvcmRlcmVkIHRoLC50YWJsZS0tYm9yZGVyZWQgdGR7Ym9yZGVyOjFweCBzb2xpZCAjZDZkNmQ2fS50YWJsZS0tYm9yZGVyZWQgdGg6ZW1wdHksLnRhYmxlLS1ib3JkZXJlZCB0ZDplbXB0eXtib3JkZXI6bm9uZX0udGFibGUtLWJvcmRlcmVkIHRoZWFkIHRyOmxhc3QtY2hpbGQgdGh7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHh9LnRhYmxlLS1ib3JkZXJlZCB0Ym9keSB0ciB0aDpsYXN0LW9mLXR5cGV7Ym9yZGVyLXJpZ2h0LXdpZHRoOjJweH0udGFibGUtLXN0cmlwZWQgdGJvZHkgdHI6bnRoLW9mLXR5cGUob2RkKXtiYWNrZ3JvdW5kLWNvbG9yOmhzbCgwLDAlLDk1JSl9LnRhYmxlLS1kYXRhe2ZvbnQ6MTJweC8xLjUgc2Fucy1zZXJpZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwZW0pYW5kIChtYXgtd2lkdGg6IDMwZW0pey50YWJsZS0tcmVzcG9uc2l2ZSB0aGVhZHtkaXNwbGF5Om5vbmV9LnRhYmxlLS1yZXNwb25zaXZlIHRoLC50YWJsZS0tcmVzcG9uc2l2ZSB0ZCwudGFibGUtLXJlc3BvbnNpdmUgdHJ7ZGlzcGxheTpibG9ja30udGFibGUtLXJlc3BvbnNpdmUgdGR7dGV4dC1hbGlnbjpsZWZ0fS50YWJsZS0tcmVzcG9uc2l2ZSB0ZDpiZWZvcmV7Y29udGVudDphdHRyKGRhdGEtdGgpO2ZvbnQtd2VpZ2h0OmJvbGR9LnRhYmxlLS1yZXNwb25zaXZlIHRye21hcmdpbi1ib3R0b206MjRweH19LmZvcm0tLWlubGluZSAuaE57ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWJvdHRvbTowfS5mb3JtLS1pbmxpbmUgZmllbGRzZXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWJvdHRvbTowfWxhYmVse2Rpc3BsYXk6YmxvY2t9bGFiZWwuaXMtcmVxdWlyZWQ6YmVmb3Jle2NvbnRlbnQ6XCIqIFwifWlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctbGVmdDoxMnB4fUBtZWRpYSBwcmludCxzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwLjA2MjVlbSl7LmZvcm0tLWlubGluZSBsYWJlbHtkaXNwbGF5OmlubGluZS1ibG9ja319LmxhYmVsX19hZGRpdGlvbmFse2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6bm9ybWFsfS5mb3JtLS1pbmxpbmUgLnJhZGlvLC5mb3JtLS1pbmxpbmUgLmNoZWNrYm94e3BhZGRpbmctbGVmdDowO21hcmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvcm0tLWlubGluZSAucmFkaW8gaW5wdXRbdHlwZT1yYWRpb10sLmZvcm0tLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF17ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MTJweDttYXJnaW4tbGVmdDowfWlucHV0W3R5cGU9cmFkaW9dLGlucHV0W3R5cGU9Y2hlY2tib3hde21hcmdpbjo0cHggMCAwO21hcmdpbi10b3A6MXB4IFxcOSA7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9cmFkaW9de21hcmdpbi1sZWZ0OjFweH1pbnB1dFt0eXBlPWZpbGVdLGlucHV0W3R5cGU9aW1hZ2VdLGlucHV0W3R5cGU9c3VibWl0XSxpbnB1dFt0eXBlPXJlc2V0XSxpbnB1dFt0eXBlPWJ1dHRvbl0saW5wdXRbdHlwZT1yYWRpb10saW5wdXRbdHlwZT1jaGVja2JveF17d2lkdGg6YXV0b31sYWJlbCxzZWxlY3QsaW5wdXRbdHlwZT1idXR0b25dLGlucHV0W3R5cGU9cmVzZXRdLGlucHV0W3R5cGU9c3VibWl0XSxpbnB1dFt0eXBlPXJhZGlvXSxpbnB1dFt0eXBlPWNoZWNrYm94XXtjdXJzb3I6cG9pbnRlcn1zZWxlY3R7dmVydGljYWwtYWxpZ246bWlkZGxlfXNlbGVjdCA6Zm9jdXN7b3V0bGluZTpub25lfW9iamVjdHtwb2ludGVyLWV2ZW50czpub25lO3dpZHRoOjEwMCV9LnRleHQtaW5wdXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQ6aW5oZXJpdDttYXJnaW46MDtwYWRkaW5nOi41ZW0gMWVtO3BhZGRpbmc6Y2FsYygwLjVlbSAtIDFweCkgMWVtO2NvbG9yOiMzMzM7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2Q2ZDZkNjtib3JkZXItcmFkaXVzOjRweDttYXgtd2lkdGg6MTAwJX0uYTExeSwuYWNjZXNzaWJpbGl0eXtib3JkZXI6MCAhaW1wb3J0YW50O2NsaXA6cmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O2hlaWdodDoxcHggIWltcG9ydGFudDttYXJnaW46LTFweCAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O3BhZGRpbmc6MCAhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7d2lkdGg6MXB4ICFpbXBvcnRhbnR9QG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzAuMDYyNWVtKXsuYWNjZXNzaWJpbGl0eS0tbWVkaXVte2JvcmRlcjowICFpbXBvcnRhbnQ7Y2xpcDpyZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7aGVpZ2h0OjFweCAhaW1wb3J0YW50O21hcmdpbjotMXB4ICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7cGFkZGluZzowICFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDt3aWR0aDoxcHggIWltcG9ydGFudH19QG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSl7LmFjY2Vzc2liaWxpdHktLWxhcmdle2JvcmRlcjowICFpbXBvcnRhbnQ7Y2xpcDpyZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7aGVpZ2h0OjFweCAhaW1wb3J0YW50O21hcmdpbjotMXB4ICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7cGFkZGluZzowICFpbXBvcnRhbnQ7cG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDt3aWR0aDoxcHggIWltcG9ydGFudH19QG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSl7LmFjY2Vzc2liaWxpdHktLXhsYXJnZXtib3JkZXI6MCAhaW1wb3J0YW50O2NsaXA6cmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50O2hlaWdodDoxcHggIWltcG9ydGFudDttYXJnaW46LTFweCAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O3BhZGRpbmc6MCAhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7d2lkdGg6MXB4ICFpbXBvcnRhbnR9fS5hbGlnbi1sZWZ0e3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fS5hbGlnbi1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudH0uYWxpZ24tcmlnaHR7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fS5hbGlnbi1ib3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tICFpbXBvcnRhbnR9LmJyYW5ke2ZvbnQtZmFtaWx5OidIZWx2ZXRpY2EnLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O2NvbG9yOiMwOTAgIWltcG9ydGFudH0uYnJhbmQtZmFjZXtmb250LWZhbWlseTonSGVsdmV0aWNhJywgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudH0uYnJhbmQtY29sb3J7Y29sb3I6IzA5MCAhaW1wb3J0YW50fS51cHBlcmNhc2V7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlICFpbXBvcnRhbnR9Lmxvd2VyY2FzZXt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2UgIWltcG9ydGFudH0uY2xlYXJmaXg6YWZ0ZXIsLmNmOmFmdGVye2NvbnRlbnQ6XCJcIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9LmluZm9ybWF0aXZle2N1cnNvcjpoZWxwICFpbXBvcnRhbnR9LmNsaWNrYWJsZXtjdXJzb3I6cG9pbnRlciAhaW1wb3J0YW50fS5kaXNwbGF5LWlubGluZSwuaW5saW5le2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9LmRpc3BsYXktYmxvY2ssLmJsb2Nre2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH0uZGlzcGxheS1pbmxpbmUtYmxvY2ssLmlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fS5mbG9hdC1yaWdodHtmbG9hdDpyaWdodCAhaW1wb3J0YW50fS5mbG9hdC1sZWZ0e2Zsb2F0OmxlZnQgIWltcG9ydGFudH0uZmxvYXQtbm9uZXtmbG9hdDpub25lICFpbXBvcnRhbnR9LmZ1bGx7d2lkdGg6MTAwJSAhaW1wb3J0YW50O21heC13aWR0aDpub25lICFpbXBvcnRhbnQ7bWluLXdpZHRoOjAgIWltcG9ydGFudH0uZ3B1ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LnZpc2libGUtcHJpbnQsLnZpc2libGUtbGFyZ2UsLnZpc2libGUtbWVkaXVtLC5oaWRkZW4tc21hbGwsLnllcy1qcyAuaGlkZGVuLS1qcywubm8tanMgLnZpc2libGUtLWpzLC5oaWRkZW57cG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDtsZWZ0Oi05OTklICFpbXBvcnRhbnQ7dG9wOi05OTklICFpbXBvcnRhbnR9QG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzAuMDYyNWVtKXsuaGlkZGVuLW1lZGl1bSwudmlzaWJsZS1zbWFsbHtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O2xlZnQ6LTk5OSUgIWltcG9ydGFudDt0b3A6LTk5OSUgIWltcG9ydGFudH0udmlzaWJsZS1tZWRpdW0sLmhpZGRlbi1zbWFsbHtwb3NpdGlvbjpzdGF0aWMgIWltcG9ydGFudDtsZWZ0OmF1dG8gIWltcG9ydGFudDt0b3A6YXV0byAhaW1wb3J0YW50fX1AbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKXsuaGlkZGVuLWxhcmdlLC52aXNpYmxlLW1lZGl1bXtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O2xlZnQ6LTk5OSUgIWltcG9ydGFudDt0b3A6LTk5OSUgIWltcG9ydGFudH0udmlzaWJsZS1sYXJnZSwuaGlkZGVuLW1lZGl1bXtwb3NpdGlvbjpzdGF0aWMgIWltcG9ydGFudDtsZWZ0OmF1dG8gIWltcG9ydGFudDt0b3A6YXV0byAhaW1wb3J0YW50fX1AbWVkaWEgcHJpbnR7LmhpZGRlbi1wcmludHtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O2xlZnQ6LTk5OSUgIWltcG9ydGFudDt0b3A6LTk5OSUgIWltcG9ydGFudH0udmlzaWJsZS1wcmludHtwb3NpdGlvbjpzdGF0aWMgIWltcG9ydGFudDtsZWZ0OmF1dG8gIWltcG9ydGFudDt0b3A6YXV0byAhaW1wb3J0YW50fX0ubGluZS1oZWlnaHQtaGFsZiwubGgtaGFsZntsaW5lLWhlaWdodDouNSAhaW1wb3J0YW50fS5saW5lLWhlaWdodC1kb3VibGUsLmxoLWRvdWJsZXtsaW5lLWhlaWdodDoyICFpbXBvcnRhbnR9LmxpbmUtaGVpZ2h0LXRyaXBsZSwubGgtdHJpcGxle2xpbmUtaGVpZ2h0OjMgIWltcG9ydGFudH0ubXV0ZWR7b3BhY2l0eTouNSAhaW1wb3J0YW50O2ZpbHRlcjphbHBoYShvcGFjaXR5PTUwKSAhaW1wb3J0YW50fS5tdXRlZC0yNXtvcGFjaXR5Oi4yNSAhaW1wb3J0YW50O2ZpbHRlcjphbHBoYShvcGFjaXR5PTI1KSAhaW1wb3J0YW50fS5tdXRlZC01MHtvcGFjaXR5Oi41ICFpbXBvcnRhbnQ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NTApICFpbXBvcnRhbnR9Lm11dGVkLTc1e29wYWNpdHk6Ljc1ICFpbXBvcnRhbnQ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NzUpICFpbXBvcnRhbnR9LnJvdW5ke2JvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnR9LnJvdW5kLWZ1bGx7Ym9yZGVyLXJhZGl1czo5OTk5cHggIWltcG9ydGFudH0uZWxsaXBzZXtib3JkZXItcmFkaXVzOjEwMCUgIWltcG9ydGFudH0uc2Nyb2xse292ZXJmbG93OnNjcm9sbCAhaW1wb3J0YW50Oy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoICFpbXBvcnRhbnR9LnB1c2gtbm9uZXttYXJnaW46MHB4ICFpbXBvcnRhbnR9LnB1c2gtbm9uZS10b3B7bWFyZ2luLXRvcDowcHggIWltcG9ydGFudH0ucHVzaC1ub25lLXJpZ2h0e21hcmdpbi1yaWdodDowcHggIWltcG9ydGFudH0ucHVzaC1ub25lLWJvdHRvbXttYXJnaW4tYm90dG9tOjBweCAhaW1wb3J0YW50fS5wdXNoLW5vbmUtbGVmdHttYXJnaW4tbGVmdDowcHggIWltcG9ydGFudH0ucHVzaC1ub25lLXNpZGVze21hcmdpbi1sZWZ0OjBweCAhaW1wb3J0YW50O21hcmdpbi1yaWdodDowcHggIWltcG9ydGFudH0ucHVzaC1ub25lLWVuZHN7bWFyZ2luLXRvcDowcHggIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjBweCAhaW1wb3J0YW50fS5wdXNoLWhhbGZ7bWFyZ2luOjEycHggIWltcG9ydGFudH0ucHVzaC1oYWxmLXRvcHttYXJnaW4tdG9wOjEycHggIWltcG9ydGFudH0ucHVzaC1oYWxmLXJpZ2h0e21hcmdpbi1yaWdodDoxMnB4ICFpbXBvcnRhbnR9LnB1c2gtaGFsZi1ib3R0b217bWFyZ2luLWJvdHRvbToxMnB4ICFpbXBvcnRhbnR9LnB1c2gtaGFsZi1sZWZ0e21hcmdpbi1sZWZ0OjEycHggIWltcG9ydGFudH0ucHVzaC1oYWxmLXNpZGVze21hcmdpbi1sZWZ0OjEycHggIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6MTJweCAhaW1wb3J0YW50fS5wdXNoLWhhbGYtZW5kc3ttYXJnaW4tdG9wOjEycHggIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjEycHggIWltcG9ydGFudH0ucHVzaHttYXJnaW46MjRweCAhaW1wb3J0YW50fS5wdXNoLXRvcHttYXJnaW4tdG9wOjI0cHggIWltcG9ydGFudH0ucHVzaC1yaWdodHttYXJnaW4tcmlnaHQ6MjRweCAhaW1wb3J0YW50fS5wdXNoLWJvdHRvbXttYXJnaW4tYm90dG9tOjI0cHggIWltcG9ydGFudH0ucHVzaC1sZWZ0e21hcmdpbi1sZWZ0OjI0cHggIWltcG9ydGFudH0ucHVzaC1zaWRlc3ttYXJnaW4tbGVmdDoyNHB4ICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OjI0cHggIWltcG9ydGFudH0ucHVzaC1lbmRze21hcmdpbi10b3A6MjRweCAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MjRweCAhaW1wb3J0YW50fS5wdXNoLWRvdWJsZXttYXJnaW46NDhweCAhaW1wb3J0YW50fS5wdXNoLWRvdWJsZS10b3B7bWFyZ2luLXRvcDo0OHB4ICFpbXBvcnRhbnR9LnB1c2gtZG91YmxlLXJpZ2h0e21hcmdpbi1yaWdodDo0OHB4ICFpbXBvcnRhbnR9LnB1c2gtZG91YmxlLWJvdHRvbXttYXJnaW4tYm90dG9tOjQ4cHggIWltcG9ydGFudH0ucHVzaC1kb3VibGUtbGVmdHttYXJnaW4tbGVmdDo0OHB4ICFpbXBvcnRhbnR9LnB1c2gtZG91YmxlLXNpZGVze21hcmdpbi1sZWZ0OjQ4cHggIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6NDhweCAhaW1wb3J0YW50fS5wdXNoLWRvdWJsZS1lbmRze21hcmdpbi10b3A6NDhweCAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206NDhweCAhaW1wb3J0YW50fS5wdXNoLXJldi1oYWxme21hcmdpbjotMTJweCAhaW1wb3J0YW50fS5wdXNoLXJldi1oYWxmLXRvcHttYXJnaW4tdG9wOi0xMnB4ICFpbXBvcnRhbnR9LnB1c2gtcmV2LWhhbGYtcmlnaHR7bWFyZ2luLXJpZ2h0Oi0xMnB4ICFpbXBvcnRhbnR9LnB1c2gtcmV2LWhhbGYtYm90dG9te21hcmdpbi1ib3R0b206LTEycHggIWltcG9ydGFudH0ucHVzaC1yZXYtaGFsZi1sZWZ0e21hcmdpbi1sZWZ0Oi0xMnB4ICFpbXBvcnRhbnR9LnB1c2gtcmV2LWhhbGYtc2lkZXN7bWFyZ2luLWxlZnQ6LTEycHggIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6LTEycHggIWltcG9ydGFudH0ucHVzaC1yZXYtaGFsZi1lbmRze21hcmdpbi10b3A6LTEycHggIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi0xMnB4ICFpbXBvcnRhbnR9LnB1c2gtcmV2e21hcmdpbjotMjRweCAhaW1wb3J0YW50fS5wdXNoLXJldi10b3B7bWFyZ2luLXRvcDotMjRweCAhaW1wb3J0YW50fS5wdXNoLXJldi1yaWdodHttYXJnaW4tcmlnaHQ6LTI0cHggIWltcG9ydGFudH0ucHVzaC1yZXYtYm90dG9te21hcmdpbi1ib3R0b206LTI0cHggIWltcG9ydGFudH0ucHVzaC1yZXYtbGVmdHttYXJnaW4tbGVmdDotMjRweCAhaW1wb3J0YW50fS5wdXNoLXJldi1zaWRlc3ttYXJnaW4tbGVmdDotMjRweCAhaW1wb3J0YW50O21hcmdpbi1yaWdodDotMjRweCAhaW1wb3J0YW50fS5wdXNoLXJldi1lbmRze21hcmdpbi10b3A6LTI0cHggIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi0yNHB4ICFpbXBvcnRhbnR9LnB1c2gtcmV2LWRvdWJsZXttYXJnaW46LTQ4cHggIWltcG9ydGFudH0ucHVzaC1yZXYtZG91YmxlLXRvcHttYXJnaW4tdG9wOi00OHB4ICFpbXBvcnRhbnR9LnB1c2gtcmV2LWRvdWJsZS1yaWdodHttYXJnaW4tcmlnaHQ6LTQ4cHggIWltcG9ydGFudH0ucHVzaC1yZXYtZG91YmxlLWJvdHRvbXttYXJnaW4tYm90dG9tOi00OHB4ICFpbXBvcnRhbnR9LnB1c2gtcmV2LWRvdWJsZS1sZWZ0e21hcmdpbi1sZWZ0Oi00OHB4ICFpbXBvcnRhbnR9LnB1c2gtcmV2LWRvdWJsZS1zaWRlc3ttYXJnaW4tbGVmdDotNDhweCAhaW1wb3J0YW50O21hcmdpbi1yaWdodDotNDhweCAhaW1wb3J0YW50fS5wdXNoLXJldi1kb3VibGUtZW5kc3ttYXJnaW4tdG9wOi00OHB4ICFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTotNDhweCAhaW1wb3J0YW50fS5wYWQtbm9uZXtwYWRkaW5nOjBweCAhaW1wb3J0YW50fS5wYWQtbm9uZS10b3B7cGFkZGluZy10b3A6MHB4ICFpbXBvcnRhbnR9LnBhZC1ub25lLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MHB4ICFpbXBvcnRhbnR9LnBhZC1ub25lLWJvdHRvbXtwYWRkaW5nLWJvdHRvbTowcHggIWltcG9ydGFudH0ucGFkLW5vbmUtbGVmdHtwYWRkaW5nLWxlZnQ6MHB4ICFpbXBvcnRhbnR9LnBhZC1ub25lLXNpZGVze3BhZGRpbmctbGVmdDowcHggIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjBweCAhaW1wb3J0YW50fS5wYWQtbm9uZS1lbmRze3BhZGRpbmctdG9wOjBweCAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjBweCAhaW1wb3J0YW50fS5wYWQtaGFsZntwYWRkaW5nOjEycHggIWltcG9ydGFudH0ucGFkLWhhbGYtdG9we3BhZGRpbmctdG9wOjEycHggIWltcG9ydGFudH0ucGFkLWhhbGYtcmlnaHR7cGFkZGluZy1yaWdodDoxMnB4ICFpbXBvcnRhbnR9LnBhZC1oYWxmLWJvdHRvbXtwYWRkaW5nLWJvdHRvbToxMnB4ICFpbXBvcnRhbnR9LnBhZC1oYWxmLWxlZnR7cGFkZGluZy1sZWZ0OjEycHggIWltcG9ydGFudH0ucGFkLWhhbGYtc2lkZXN7cGFkZGluZy1sZWZ0OjEycHggIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjEycHggIWltcG9ydGFudH0ucGFkLWhhbGYtZW5kc3twYWRkaW5nLXRvcDoxMnB4ICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MTJweCAhaW1wb3J0YW50fS5wYWR7cGFkZGluZzoyNHB4ICFpbXBvcnRhbnR9LnBhZC10b3B7cGFkZGluZy10b3A6MjRweCAhaW1wb3J0YW50fS5wYWQtcmlnaHR7cGFkZGluZy1yaWdodDoyNHB4ICFpbXBvcnRhbnR9LnBhZC1ib3R0b217cGFkZGluZy1ib3R0b206MjRweCAhaW1wb3J0YW50fS5wYWQtbGVmdHtwYWRkaW5nLWxlZnQ6MjRweCAhaW1wb3J0YW50fS5wYWQtc2lkZXN7cGFkZGluZy1sZWZ0OjI0cHggIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjI0cHggIWltcG9ydGFudH0ucGFkLWVuZHN7cGFkZGluZy10b3A6MjRweCAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjI0cHggIWltcG9ydGFudH0ucGFkLWRvdWJsZXtwYWRkaW5nOjQ4cHggIWltcG9ydGFudH0ucGFkLWRvdWJsZS10b3B7cGFkZGluZy10b3A6NDhweCAhaW1wb3J0YW50fS5wYWQtZG91YmxlLXJpZ2h0e3BhZGRpbmctcmlnaHQ6NDhweCAhaW1wb3J0YW50fS5wYWQtZG91YmxlLWJvdHRvbXtwYWRkaW5nLWJvdHRvbTo0OHB4ICFpbXBvcnRhbnR9LnBhZC1kb3VibGUtbGVmdHtwYWRkaW5nLWxlZnQ6NDhweCAhaW1wb3J0YW50fS5wYWQtZG91YmxlLXNpZGVze3BhZGRpbmctbGVmdDo0OHB4ICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDo0OHB4ICFpbXBvcnRhbnR9LnBhZC1kb3VibGUtZW5kc3twYWRkaW5nLXRvcDo0OHB4ICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206NDhweCAhaW1wb3J0YW50fS50ZXh0LWxlZ2liaWxpdHl7dGV4dC1yZW5kZXJpbmc6b3B0aW1pemVMZWdpYmlsaXR5fS50ZXh0LXNwZWVke3RleHQtcmVuZGVyaW5nOm9wdGltaXplU3BlZWR9LnRleHQtc21vb3Roey13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS50cnVuY2F0ZXt3aGl0ZS1zcGFjZTpub3dyYXAgIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzICFpbXBvcnRhbnR9LnVuc2VsZWN0YWJsZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy1vLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ud2VpZ2h0LWxpZ2h0e2ZvbnQtd2VpZ2h0OjMwMCAhaW1wb3J0YW50fS53ZWlnaHQtbm9ybWFse2ZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50fS53ZWlnaHQtc2VtaWJvbGR7Zm9udC13ZWlnaHQ6NjAwICFpbXBvcnRhbnR9LndlaWdodC1ib2xke2ZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50fS53ZWlnaHQtYm9sZGVye2ZvbnQtd2VpZ2h0OjkwMCAhaW1wb3J0YW50fVtjbGFzcyo9Y2Fyb3VzZWxde3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXJvdXNlbF9fbGlzdHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7bWFyZ2luOjA7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luLWxlZnQ6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApOy1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5jYXJvdXNlbF9fbGlzdDphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTp0YWJsZTtjbGVhcjpib3RofS5jYXJvdXNlbF9fbGlzdD5saXtkaXNwbGF5OmJsb2NrO21pbi13aWR0aDoxMDAlfUBtZWRpYSBwcmludCxzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwLjA2MjVlbSl7LmNhcm91c2VsLS0yIC5jYXJvdXNlbF9fbGlzdD5saXttaW4td2lkdGg6MTAwJX19QG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSl7LmNhcm91c2VsLS0yIC5jYXJvdXNlbF9fbGlzdD5saXttaW4td2lkdGg6Y2FsYygxMDAlLzIgLSA2cHgpfX0uY2Fyb3VzZWwtLTIgLmNhcm91c2VsX19saXN0PmxpOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjEycHh9QG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzAuMDYyNWVtKXsuY2Fyb3VzZWwtLTMgLmNhcm91c2VsX19saXN0Pmxpe21pbi13aWR0aDoxMDAlfX1AbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKXsuY2Fyb3VzZWwtLTMgLmNhcm91c2VsX19saXN0Pmxpe21pbi13aWR0aDpjYWxjKDEwMCUvMyAtIDhweCl9fS5jYXJvdXNlbC0tMyAuY2Fyb3VzZWxfX2xpc3Q+bGk6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6MTJweH1AbWVkaWEgcHJpbnQsc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMC4wNjI1ZW0pey5jYXJvdXNlbC0tNCAuY2Fyb3VzZWxfX2xpc3Q+bGl7bWluLXdpZHRoOjEwMCV9fUBtZWRpYSBwcmludCxzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pey5jYXJvdXNlbC0tNCAuY2Fyb3VzZWxfX2xpc3Q+bGl7bWluLXdpZHRoOmNhbGMoMTAwJS80IC0gOXB4KX19LmNhcm91c2VsLS00IC5jYXJvdXNlbF9fbGlzdD5saTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDoxMnB4fUBtZWRpYSBwcmludCxzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwLjA2MjVlbSl7LmNhcm91c2VsLS01IC5jYXJvdXNlbF9fbGlzdD5saXttaW4td2lkdGg6MTAwJX19QG1lZGlhIHByaW50LHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSl7LmNhcm91c2VsLS01IC5jYXJvdXNlbF9fbGlzdD5saXttaW4td2lkdGg6Y2FsYygxMDAlLzUgLSA5LjZweCl9fS5jYXJvdXNlbC0tNSAuY2Fyb3VzZWxfX2xpc3Q+bGk6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6MTJweH0ubm8tdG91Y2ggLnctdG9vbHRpcHtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6aGVscH1hIC5uby10b3VjaCAudy10b29sdGlwLC5uby10b3VjaCAudy10b29sdGlwIGEubm8tdG91Y2ggLnctdG9vbHRpcHtjdXJzb3I6cG9pbnRlcn0udG9vbHRpcHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjExO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDowO292ZXJmbG93OmhpZGRlbjtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTstbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBlYXNlOy1vLXRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZX0udG9vbHRpcC5pcy1hY3RpdmUsLnRvb2x0aXAuaXMtZm9yY2VkLWFjdGl2ZXtoZWlnaHQ6YXV0bztvdmVyZmxvdzp2aXNpYmxlO29wYWNpdHk6MX0udG9vbHRpcF9fdGlwe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250OmluaGVyaXQ7bWFyZ2luOjA7cGFkZGluZzouMjVlbSAuNWVtO3BhZGRpbmc6Y2FsYygwLjI1ZW0gLSAxcHgpIC41ZW07Y29sb3I6IzMzMztiYWNrZ3JvdW5kOiNlZWU7Ym9yZGVyOjFweCBzb2xpZCAjMzMzO3Bvc2l0aW9uOnJlbGF0aXZlO3doaXRlLXNwYWNlOm5vd3JhcH0udG9vbHRpcF9fdGlwIGF7Y29sb3I6I2NjY30udG9vbHRpcF9fdGlwLS1hcnJvdy10b3B7dG9wOjkuNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS50b29sdGlwX190aXAtLWFycm93LXRvcDpiZWZvcmUsLnRvb2x0aXBfX3RpcC0tYXJyb3ctdG9wOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXItY29sbGFwc2U6c2VwYXJhdGV9LnRvb2x0aXBfX3RpcC0tYXJyb3ctdG9wOmJlZm9yZXtib3JkZXI6OS42cHggc29saWQgcmdiYSgwLDAsMCwwKX0udG9vbHRpcF9fdGlwLS1hcnJvdy10b3A6YWZ0ZXJ7Ym9yZGVyOjguNnB4IHNvbGlkIHJnYmEoMCwwLDAsMCl9LnRvb2x0aXBfX3RpcC0tYXJyb3ctdG9wOmJlZm9yZSwudG9vbHRpcF9fdGlwLS1hcnJvdy10b3A6YWZ0ZXJ7Ym90dG9tOjEwMCV9LnRvb2x0aXBfX3RpcC0tYXJyb3ctdG9wOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOiMzMzMgIWltcG9ydGFudH0udG9vbHRpcF9fdGlwLS1hcnJvdy10b3A6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZWVlICFpbXBvcnRhbnR9LnRvb2x0aXBfX3RpcC0tYXJyb3ctdG9wOmJlZm9yZSwudG9vbHRpcF9fdGlwLS1hcnJvdy10b3A6YWZ0ZXJ7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTkuNnB4fS50b29sdGlwX190aXAtLWFycm93LXRvcDphZnRlcnttYXJnaW4tbGVmdDotOC42cHh9LnRvb2x0aXBfX3RpcC0tYXJyb3ctYm90dG9te3RvcDotOS42cHg7cG9zaXRpb246cmVsYXRpdmV9LnRvb2x0aXBfX3RpcC0tYXJyb3ctYm90dG9tOmJlZm9yZSwudG9vbHRpcF9fdGlwLS1hcnJvdy1ib3R0b206YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZX0udG9vbHRpcF9fdGlwLS1hcnJvdy1ib3R0b206YmVmb3Jle2JvcmRlcjo5LjZweCBzb2xpZCByZ2JhKDAsMCwwLDApfS50b29sdGlwX190aXAtLWFycm93LWJvdHRvbTphZnRlcntib3JkZXI6OC42cHggc29saWQgcmdiYSgwLDAsMCwwKX0udG9vbHRpcF9fdGlwLS1hcnJvdy1ib3R0b206YmVmb3JlLC50b29sdGlwX190aXAtLWFycm93LWJvdHRvbTphZnRlcnt0b3A6MTAwJX0udG9vbHRpcF9fdGlwLS1hcnJvdy1ib3R0b206YmVmb3Jle2JvcmRlci10b3AtY29sb3I6IzMzMyAhaW1wb3J0YW50fS50b29sdGlwX190aXAtLWFycm93LWJvdHRvbTphZnRlcntib3JkZXItdG9wLWNvbG9yOiNlZWUgIWltcG9ydGFudH0udG9vbHRpcF9fdGlwLS1hcnJvdy1ib3R0b206YmVmb3JlLC50b29sdGlwX190aXAtLWFycm93LWJvdHRvbTphZnRlcntsZWZ0OjUwJTttYXJnaW4tbGVmdDotOS42cHh9LnRvb2x0aXBfX3RpcC0tYXJyb3ctYm90dG9tOmFmdGVye21hcmdpbi1sZWZ0Oi04LjZweH0udG9vbHRpcF9fdGlwLS1hcnJvdy1sZWZ0e2xlZnQ6OS42cHg7cG9zaXRpb246cmVsYXRpdmV9LnRvb2x0aXBfX3RpcC0tYXJyb3ctbGVmdDpiZWZvcmUsLnRvb2x0aXBfX3RpcC0tYXJyb3ctbGVmdDphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlfS50b29sdGlwX190aXAtLWFycm93LWxlZnQ6YmVmb3Jle2JvcmRlcjo5LjZweCBzb2xpZCByZ2JhKDAsMCwwLDApfS50b29sdGlwX190aXAtLWFycm93LWxlZnQ6YWZ0ZXJ7Ym9yZGVyOjguNnB4IHNvbGlkIHJnYmEoMCwwLDAsMCl9LnRvb2x0aXBfX3RpcC0tYXJyb3ctbGVmdDpiZWZvcmUsLnRvb2x0aXBfX3RpcC0tYXJyb3ctbGVmdDphZnRlcntyaWdodDoxMDAlfS50b29sdGlwX190aXAtLWFycm93LWxlZnQ6YmVmb3Jle2JvcmRlci1yaWdodC1jb2xvcjojMzMzICFpbXBvcnRhbnR9LnRvb2x0aXBfX3RpcC0tYXJyb3ctbGVmdDphZnRlcntib3JkZXItcmlnaHQtY29sb3I6I2VlZSAhaW1wb3J0YW50fS50b29sdGlwX190aXAtLWFycm93LWxlZnQ6YmVmb3JlLC50b29sdGlwX190aXAtLWFycm93LWxlZnQ6YWZ0ZXJ7dG9wOjUwJTttYXJnaW4tdG9wOi05LjZweH0udG9vbHRpcF9fdGlwLS1hcnJvdy1sZWZ0OmFmdGVye21hcmdpbi10b3A6LTguNnB4fS50b29sdGlwX190aXAtLWFycm93LXJpZ2h0e3JpZ2h0OjkuNnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS50b29sdGlwX190aXAtLWFycm93LXJpZ2h0OmJlZm9yZSwudG9vbHRpcF9fdGlwLS1hcnJvdy1yaWdodDphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlfS50b29sdGlwX190aXAtLWFycm93LXJpZ2h0OmJlZm9yZXtib3JkZXI6OS42cHggc29saWQgcmdiYSgwLDAsMCwwKX0udG9vbHRpcF9fdGlwLS1hcnJvdy1yaWdodDphZnRlcntib3JkZXI6OC42cHggc29saWQgcmdiYSgwLDAsMCwwKX0udG9vbHRpcF9fdGlwLS1hcnJvdy1yaWdodDpiZWZvcmUsLnRvb2x0aXBfX3RpcC0tYXJyb3ctcmlnaHQ6YWZ0ZXJ7bGVmdDoxMDAlfS50b29sdGlwX190aXAtLWFycm93LXJpZ2h0OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjojMzMzICFpbXBvcnRhbnR9LnRvb2x0aXBfX3RpcC0tYXJyb3ctcmlnaHQ6YWZ0ZXJ7Ym9yZGVyLWxlZnQtY29sb3I6I2VlZSAhaW1wb3J0YW50fS50b29sdGlwX190aXAtLWFycm93LXJpZ2h0OmJlZm9yZSwudG9vbHRpcF9fdGlwLS1hcnJvdy1yaWdodDphZnRlcnt0b3A6NTAlO21hcmdpbi10b3A6LTkuNnB4fS50b29sdGlwX190aXAtLWFycm93LXJpZ2h0OmFmdGVye21hcmdpbi10b3A6LTguNnB4fS5tb2RhbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjEwMDA7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMDA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KX0ubW9kYWwtLWZpeGVke3Bvc2l0aW9uOmZpeGVkfS5tb2RhbF9fY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MCBhdXRvO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMjRweH0ubW9kYWxfX2Nsb3Nle2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjpmaXhlZDt0ZXh0LWFsaWduOnJpZ2h0O3RvcDoxMnB4O3JpZ2h0OjEycHg7cGFkZGluZzowIDEycHg7Ym9yZGVyOjJweCBzb2xpZCAjZmZmO29wYWNpdHk6Ljc1O2N1cnNvcjpwb2ludGVyfS50YWJ7ZGlzcGxheTpub25lfS5uby1qcyAudGFiLC50YWIuaXMtYWN0aXZle2Rpc3BsYXk6YmxvY2t9QG1lZGlhIHByaW50ey50YWJ7ZGlzcGxheTpibG9ja319IiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9NQVJHSU5TLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1vZHVsZSBNYXJnaW5zXG4gKiBAZGVzY3JpcHRpb24gU2V0IGFsbCB0aGUgZGVmYXVsdCBtYXJnaW5zIGZvciB0aGUgc2l0ZSBhdCBvbmNlLiBMb29rIGF0IC5wdXNoIGluIGhlbHBlci5zY3NzIGZvciBjbGFzc2VzLlxuICovXG5cbi8qKlxuICogV2hlcmUgJ21hcmdpbi1ib3R0b20nIGlzIGNvbmNlcm5lZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZVxuICogYmFzZSBsaW5lLWhlaWdodC4gVGhpcyBhbGxvd3MgdXMgdG8ga2VlcCBhIGNvbnNpc3RlbnQgdmVydGljYWwgcmh5dGhtLlxuICogQXMgcGVyOiBjc3N3aXphcmRyeS5jb20vMjAxMi8wNi9zaW5nbGUtZGlyZWN0aW9uLW1hcmdpbi1kZWNsYXJhdGlvbnNcbiAqL1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxuaGdyb3VwLFxuLmhncm91cCxcbnVsLFxub2wsXG5kbCxcbmJsb2NrcXVvdGUsXG5wLFxuYWRkcmVzcyxcbnRhYmxlLFxuZmllbGRzZXQsXG5maWd1cmUsXG5wcmVcbntcbiAgbWFyZ2luLWJvdHRvbTogZ2V0KHNwYWNpbmcpO1xufVxuXG5cbi8qKlxuICogJ2hyJyBlbGVtZW50cyBvbmx5IHRha2UgdXAgYSBmZXcgcGl4ZWxzLCBzbyB3ZSBuZWVkIHRvIGdpdmUgdGhlbSBzcGVjaWFsXG4gKiB0cmVhdG1lbnQgcmVnYXJkaW5nIHZlcnRpY2FsIHJoeXRobS5cbiAqL1xuaHIge1xuICBtYXJnaW4tYm90dG9tOiBnZXQoc3BhY2luZykgLSAycHg7XG59XG5cblxuLyoqXG4gKiBXaGVyZSAnbWFyZ2luLWxlZnQnIGlzIGNvbmNlcm5lZCB3ZSB3YW50IHRvIHRyeSBhbmQgaW5kZW50IGNlcnRhaW4gZWxlbWVudHNcbiAqIGJ5IGEgY29uc2lzdGVudCBhbW91bnQuIERlZmluZSB0aGF0IGFtb3VudCBvbmNlLCBoZXJlLlxuICovXG51bCxcbm9sLFxuZGQge1xuICBtYXJnaW4tbGVmdDogMiAqIGdldChzcGFjaW5nKTtcbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfTUFJTi5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgTWFpbiBzdHlsaW5nIFtodG1sLCBib2R5XVxuICogQGRlc2NyaXB0aW9uIEp1c3QgeW91ciBiYXNpYyBzdHlsaW5nIG9uIHRoZSBkb2N1bWVudFxuICovXG5AdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwic2FzczptYXRoXCI7XG5cbmh0bWwge1xuICBmb250OiBsaXN0LnNsYXNoKGVtKGdldChmb250LXNpemUpLCAxNnB4KSwgbWF0aC5kaXYoZW0oZ2V0KGxpbmUtaGVpZ2h0KSwgMTZweCksIGVtKGdldChmb250LXNpemUpLCAxNnB4KSkpIGdldChmb250LWZhbWlseSk7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IGdldChiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY29sb3I6IGdldChjb2xvcik7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgLy9GaXhlcyBpc3N1ZSB3aXRoIHdoaXRlIGJveCBhcm91bmQgY29udGVudFxufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9IRUFESU5HUy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBzZXR0aW5ncyAkZ2VtaW5pLWhlYWRpbmdzXG4gKiBAZGVzY3JpcHRpb24gVGhlIHNpemUgb2YgaGVhZGluZ3MgYmFzZWQgb246XG4gKiBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9tb3JlLW1lYW5pbmdmdWwtdHlwb2dyYXBoeVxuICogaHR0cDovL3R5cGVjYXN0LmNvbS9ibG9nL2NvbnRyYXN0LXRocm91Z2gtc2NhbGVcbiAqXG4gKiBAcHJvcCB7bnVtYmVyfSBbbGluZS1oZWlnaHQ9MS4zXSAgICAgICAgICBMaW5lLWhlaWdodCBmb3IgaGVhZGluZ3NcbiAqIEBwcm9wIHtib29sZWFufSBbcmVzcG9uc2l2ZT1mYWxzZV0gICAgICAgIFVzZSByZXNwb25zaXZlIGhlbHBlcnNcbiAqIEBwcm9wIHtudW1iZXJ9IFtnaWdhPWZvbnQtc2l6ZSAqIDYuNV0gICAgIEdpZ2Egc2l6ZWQgZm9udHNcbiAqIEBwcm9wIHtudW1iZXJ9IFttZWdhPWZvbnQtc2l6ZSAqIDVdICAgICAgIE1lZ2Egc2l6ZWQgZm9udHNcbiAqIEBwcm9wIHtudW1iZXJ9IFtraWxvPWZvbnQtc2l6ZSAqIDRdICAgICAgIEtpbG8gc2l6ZWQgZm9udHNcbiAqIEBwcm9wIHtudW1iZXJ9IFthbHBoYT1mb250LXNpemUgKiAzLjMzXSAgIGgxIHNpemVkIGZvbnRzXG4gKiBAcHJvcCB7bnVtYmVyfSBbYmV0YT1mb250LXNpemUgKiAyLjY2XSAgICBoMiBzaXplZCBmb250c1xuICogQHByb3Age251bWJlcn0gW2dhbW1hPWZvbnQtc2l6ZSAqIDJdICAgICAgaDMgc2l6ZWQgZm9udHNcbiAqIEBwcm9wIHtudW1iZXJ9IFtkZWx0YT1mb250LXNpemUgKiAxLjMzXSAgIGg0IHNpemVkIGZvbnRzXG4gKiBAcHJvcCB7bnVtYmVyfSBbZXBzaWxvbj1mb250LXNpemUgKiAxLjE2XSBoNSBzaXplZCBmb250c1xuICogQHByb3Age251bWJlcn0gW3pldGE9Zm9udC1zaXplICogMV0gICAgICAgR2lnYSBoNiBmb250c1xuICogQHByb3Age251bWJlcn0gW21pbGxpPWZvbnQtc2l6ZSAqIDAuODNdICAgTWlsbGkgc2l6ZWQgZm9udHNcbiAqIEBwcm9wIHtudW1iZXJ9IFttaWNybz1mb250LXNpemUgKiAwLjc1XSAgIE1pY3JvIHNpemVkIGZvbnRzXG4gKi9cbiRnZW1pbmktaGVhZGluZ3M6ICgpICFkZWZhdWx0O1xuXG4kZ2VtaW5pLWhlYWRpbmdzOiBleHRlbmQoKFxuICBnaWdhOiAgICAgICAgZ2V0KGZvbnQtc2l6ZSkgKiA2LjUsXG4gIG1lZ2E6ICAgICAgICBnZXQoZm9udC1zaXplKSAqIDUsXG4gIGtpbG86ICAgICAgICBnZXQoZm9udC1zaXplKSAqIDQsXG5cbiAgYWxwaGE6ICAgICAgIGdldChmb250LXNpemUpICogMy4zMzMzLFxuICBiZXRhOiAgICAgICAgZ2V0KGZvbnQtc2l6ZSkgKiAyLjY2NjcsXG4gIGdhbW1hOiAgICAgICBnZXQoZm9udC1zaXplKSAqIDIsXG4gIGRlbHRhOiAgICAgICBnZXQoZm9udC1zaXplKSAqIDEuMzMzMyxcbiAgZXBzaWxvbjogICAgIGdldChmb250LXNpemUpICogMS4xNjY3LFxuICB6ZXRhOiAgICAgICAgZ2V0KGZvbnQtc2l6ZSkgKiAxLFxuXG4gIG1pbGxpOiAgICAgICBnZXQoZm9udC1zaXplKSAqIDAuODMzMyxcbiAgbWljcm86ICAgICAgIGdldChmb250LXNpemUpICogMC43NSxcblxuICBsaW5lLWhlaWdodDogMS4zLFxuICByZXNwb25zaXZlOiBmYWxzZSxcbiksICRnZW1pbmktaGVhZGluZ3MpO1xuXG4vKipcbiAqIEBtb2R1bGUgSGVhZGluZ3NcbiAqIEBkZXNjcmlwdGlvbiBXaGVuIHdlIGRlZmluZSBhIGhlYWRpbmcgd2UgYWxzbyBkZWZpbmUgYSBjb3JyZXNwb25kaW5nIGNsYXNzIHRvIGdvIHdpdGggaXQuXG4gKlxuICogQG1vZGlmaWVyIFsue2hlYWRpbmd9LW1lZGl1bV0gQXBwbHkgdGhpcyBzaXplIG9uIG1lZGl1bSBzY3JlZW5zIC0gc2V0IHJlc3BvbnNpdmUgdG8gdHJ1ZVxuICogQG1vZGlmaWVyIFsue2hlYWRpbmd9LWxhcmdlXSBBcHBseSB0aGlzIHNpemUgb24gbGFyZ2Ugc2NyZWVucyAtIHNldCByZXNwb25zaXZlIHRvIHRydWVcbiAqXG4gKiBAbWFya3VwXG4gICAgPGgxPkhlYWRpbmcgMTwvaDE+XG4gICAgPGgyPkhlYWRpbmcgMjwvaDI+XG4gICAgPGgzPkhlYWRpbmcgMzwvaDM+XG4gICAgPGg0PkhlYWRpbmcgNDwvaDQ+XG4gICAgPGg1PkhlYWRpbmcgNTwvaDU+XG4gICAgPGg2PkhlYWRpbmcgNjwvaDY+XG5cbiAgICA8aDEgY2xhc3M9XCJ6ZXRhXCI+SGVhZGluZyAxPC9oMT5cbiAgICA8aDIgY2xhc3M9XCJlcHNpbG9uXCI+SGVhZGluZyAyPC9oMj5cbiAgICA8aDMgY2xhc3M9XCJkZWx0YVwiPkhlYWRpbmcgMzwvaDM+XG4gICAgPGg0IGNsYXNzPVwiZ2FtbWFcIj5IZWFkaW5nIDQ8L2g0PlxuICAgIDxoNSBjbGFzcz1cImJldGFcIj5IZWFkaW5nIDU8L2g1PlxuICAgIDxoNiBjbGFzcz1cImFscGhhXCI+SGVhZGluZyA2PC9oNj5cbiAqL1xuJG1hcHBlZC1oZWFkaW5nczogKFxuICBnaWdhOiAgICBmYWxzZSxcbiAgbWVnYTogICAgZmFsc2UsXG4gIGtpbG86ICAgIGZhbHNlLFxuXG4gIGFscGhhOiAgIGgxLFxuICBiZXRhOiAgICBoMixcbiAgZ2FtbWE6ICAgaDMsXG4gIGRlbHRhOiAgIGg0LFxuICBlcHNpbG9uOiBoNSxcbiAgemV0YTogICAgaDYsXG5cbiAgbWlsbGk6ICAgZmFsc2UsXG4gIG1pY3JvOiAgIGZhbHNlLFxuKTtcblxuLyoqXG4gKiBTZXQgbGluZS1oZWlnaHRzXG4gKi9cbiVoZWFkaW5nLWxpbmUtaGVpZ2h0IHtcbiAgbGluZS1oZWlnaHQ6IGdldChsaW5lLWhlaWdodCwgJGdlbWluaS1oZWFkaW5ncyk7XG59XG5cbkBlYWNoICRjbGFzcywgJGVsIGluICRtYXBwZWQtaGVhZGluZ3Mge1xuXG4gIC4jeyRjbGFzc30sXG4gIC4jeyRjbGFzc30tbWVkaXVtLFxuICAuI3skY2xhc3N9LWxhcmdlIHtcbiAgICBAZXh0ZW5kICVoZWFkaW5nLWxpbmUtaGVpZ2h0O1xuICB9XG5cbiAgI3skZWx9IHtcbiAgICBmb250LXNpemU6IGdldCgkY2xhc3MsICRnZW1pbmktaGVhZGluZ3MpO1xuICB9XG5cbiAgLiN7JGNsYXNzfSB7XG4gICAgZm9udC1zaXplOiBnZXQoJGNsYXNzLCAkZ2VtaW5pLWhlYWRpbmdzKSAhaW1wb3J0YW50O1xuICB9XG5cbn1cblxuLyoqXG4gKiBSZXNwb25zaXZlIGhlbHBlciBkZWNsZXJhdGlvbnNcbiAqL1xuQGlmIChnZXQocmVzcG9uc2l2ZSwgJGdlbWluaS1oZWFkaW5ncykpIHtcbiAgLy8gTWVkaXVtIHNjcmVlbnNcbiAgQGluY2x1ZGUgbWVkaWEobWVkaXVtKSB7XG5cbiAgICBAZWFjaCAkY2xhc3MsICRlbCBpbiAkbWFwcGVkLWhlYWRpbmdzIHtcblxuICAgICAgLiN7JGNsYXNzfS1tZWRpdW0ge1xuICAgICAgICBmb250LXNpemU6IGdldCgkY2xhc3MsICRnZW1pbmktaGVhZGluZ3MpICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG4gIC8vIExhcmdlIHNjcmVlbnNcbiAgQGluY2x1ZGUgbWVkaWEobGFyZ2Upe1xuXG4gICAgQGVhY2ggJGNsYXNzLCAkZWwgaW4gJG1hcHBlZC1oZWFkaW5ncyB7XG5cbiAgICAgIC4jeyRjbGFzc30tbGFyZ2Uge1xuICAgICAgICBmb250LXNpemU6IGdldCgkY2xhc3MsICRnZW1pbmktaGVhZGluZ3MpICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxufVxuXG4vKipcbiAqIEBtb2R1bGUgQW55IEhlYWRpbmcgWy5oTl1cbiAqIEBkZXNjcmlwdGlvbiBBIGdlbmVyYWwgaGVhZGluZyBjbGFzcyB0byB0YXJnZXQgYW55IGhlYWRpbmdcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgSGVhZGluZyBHcm91cCBbLmhncm91cF1cbiAqIEBkZXNjcmlwdGlvbiBBIGdyb3VwIG9mIGhlYWRpbmdzXG4gKlxuICogQG1vZGlmaWVyIFsuaGdyb3VwLS1pbmxpbmVdIERpc3BsYXlzIGFsbCBoZWFkaW5ncyB0byBiZSBpbmxpbmUtYmxvY2tcbiAqXG4gKiBAbWFya3VwXG4gICAgPGRpdiBjbGFzcz1cImhncm91cFwiPlxuICAgICAgPGgyIGNsYXNzPVwiaE5cIj5IZWFkaW5nIDE8L2gyPlxuICAgICAgPGgzIGNsYXNzPVwiaE5cIj5IZWFkaW5nIDI8L2gzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoZ3JvdXAgaGdyb3VwLS1pbmxpbmVcIj5cbiAgICAgIDxoNCBjbGFzcz1cImhOXCI+SGVhZGluZyAzPC9oND5cbiAgICAgIDxoNSBjbGFzcz1cImhOXCI+SGVhZGluZyA0PC9oNT5cbiAgICA8L2Rpdj5cbiAqL1xuLmhOIHtcbiAgaGdyb3VwICYsXG4gIC5oZ3JvdXAgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5oZ3JvdXAtLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX1BBUkFHUkFQSFMuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIFBhcmFncmFwaCBbcF1cbiAqIEBkZXNjcmlwdGlvbiBDaGVjayBlbScgcGFyYWdyYXBocyBvdXRcbiAqXG4gKiBAbW9kaWZpZXIgWy5sZWRlXSBNYWtlIHRoZSBpbnRyb2R1Y3RvcnkgdGV4dCAodXN1YWxseSBhIHBhcmFncmFwaCkgb2YgYSBkb2N1bWVudCBzbGlnaHRseSBsYXJnZXIuXG4gKlxuICogQG1hcmt1cFxuICAgPHA+UGVsbGVudGVzcXVlIGhhYml0YW50IG1vcmJpIHRyaXN0aXF1ZSBzZW5lY3R1cyBldCBuZXR1cyBldCBtYWxlc3VhZGEgZmFtZXNcbiAgIGFjIHR1cnBpcyBlZ2VzdGFzLjwvcD5cblxuICAgPHAgY2xhc3M9XCJsZWRlXCI+UGVsbGVudGVzcXVlIGhhYml0YW50IG1vcmJpIHRyaXN0aXF1ZSBzZW5lY3R1cyBldCBuZXR1cyBldCBtYWxlc3VhZGEgZmFtZXNcbiAgIGFjIHR1cnBpcyBlZ2VzdGFzLjwvcD5cbiAqL1xuLmxlZGUsXG4ubGVhZCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShnZXQoZm9udC1zaXplKSAqIDEuMTI1KTtcbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfRk9OVC1TSVpFLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1peGluIGZvbnQtc2l6ZVxuICogQGRlc2NyaXB0aW9uIEdldCBhIGZ1bGx5IGZvcm1lZCB0eXBlIGZhbHVlXG4gKlxuICogQHBhcmFtIHttZWFzdXJlbWVudH0gWyRmb250LXNpemVdIFRoZSBmb250IHNpemVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gWyRsaW5lLWhlaWdodD1mYWxzZV0gV2hldGhlciB0byBpbmNsdWRlIGEgY2FsY3VsYXRlZCBsaW5lLWhlaWdodCBiYXNlZCBvbiB0aGUgYmFzZSBsaW5lLWhlaWdodFxuICogQHBhcmFtIHtib29sZWFufSBbJHVzZS1yZW09ZmFsc2VdIEluY2x1ZGUgcmVtIHZhbHVlXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRpcG9ydGFudD0nJ10gVGhlIG9wdGlvbiB0byBhZGQgIWltcG9ydGFudFxuICpcbiAqIEBleGFtcGxlXG4gICAgLmZvbyB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG4gICAgfVxuXG4gICAgLmJhciB7XG4gICAgICBAaW5jbHVkZSBmb250LXNpemUoMTRweCwgdHJ1ZSwgZmFsc2UsICFpbXBvcnRhbnQpO1xuICAgIH1cbiAqL1xuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AbWl4aW4gZm9udC1zaXplKCRmb250LXNpemUsICRsaW5lLWhlaWdodDpmYWxzZSwgJHVzZS1yZW06ZmFsc2UsICRpbXBvcnRhbnQ6ICcnKSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZSN7JGltcG9ydGFudH07XG4gIEBpZiAkdXNlLXJlbSA9PSB0cnVlIHtcbiAgICBmb250LXNpemU6IHJlbSgkZm9udC1zaXplKSN7JGltcG9ydGFudH07XG4gIH1cbiAgQGlmICRsaW5lLWhlaWdodCA9PSB0cnVlIHtcbiAgICBsaW5lLWhlaWdodDogY2VpbChtYXRoLmRpdigkZm9udC1zaXplLCBnZXQobGluZS1oZWlnaHQpKSkgKiBtYXRoLmRpdihnZXQobGluZS1oZWlnaHQpLCAkZm9udC1zaXplKSN7JGltcG9ydGFudH07XG4gIH1cbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfTElOS1MuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIExpbmtzIFthXVxuICogQGRlc2NyaXB0aW9uIFlvdXIgYmFzaWMgbGlua1xuICpcbiAqIEBtYXJrdXBcbiAqICAgPGEgaHJlZj1cImh0dHA6Ly93d3cuY2FycGFnZXMuY2FcIj5DbGljayBtZSE8L2E+XG4gKi9cbmEge1xuICBjb2xvcjogZ2V0KGxpbmstY29sb3IpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfUVVPVEVTLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1vZHVsZSBJbmxpbmUgcXVvdGVzIFtxXVxuICogQGRlc2NyaXB0aW9uIFB1dCBzb21lIHF1b3RlcyBpbiB0aHVyXG4gKlxuICogQG1hcmt1cFxuICAgIDxwPkFuZCB3aXRoIGdyZWF0IGF1ZGFjaXR5LCBoZSB0b2xkIHRoZW0sIDxxPk15IG5hbWUgaXMgZGVycCE8L3E+PC9wPlxuICovXG5xIHtcbiAgcXVvdGVzOiBcIlxcMjAxOFwiIFwiXFwyMDE5XCIgXCJcXDIwMUNcIiBcIlxcMjAxRFwiO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAxOFwiO1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcXDIwMTlcIjtcbiAgICBjb250ZW50OiBjbG9zZS1xdW90ZTtcbiAgfVxuXG4gIHE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAxQ1wiO1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gIH1cbiAgcTphZnRlciB7XG4gICAgY29udGVudDogXCJcXDIwMURcIjtcbiAgICBjb250ZW50OiBjbG9zZS1xdW90ZTtcbiAgfVxufVxuXG4vKipcbiAqIEBtb2R1bGUgQmxvY2sgcXVvdGVzIFtibG9ja3F1b3RlXVxuICogQGRlc2NyaXB0aW9uIFB1dCBzb21lIGJsb2NreSBxdW90ZXMgaW4gdGh1clxuICpcbiAqIEBtb2RpZmllciBbLmJsb2NrcXVvdGUtLWluZGVudF0gSW5kZW50IHRoZSBxdW90ZVxuICpcbiAqIEBtYXJrdXBcbiAgICA8YmxvY2txdW90ZSBjbGFzcz1cImJsb2NrcXVvdGUtLWluZGVudFwiPlxuICAgICAgPHA+SW5zYW5pdHk6IGRvaW5nIHRoZSBzYW1lIHRoaW5nIG92ZXIgYW5kIG92ZXIgYWdhaW4gYW5kIGV4cGVjdGluZyBkaWZmZXJlbnQgcmVzdWx0cy48L3A+XG4gICAgPC9ibG9ja3F1b3RlPlxuICovXG5ibG9ja3F1b3RlIHtcbiAgcXVvdGVzOiBcIlxcMjAxQ1wiIFwiXFwyMDFEXCI7XG4gIHRleHQtaW5kZW50OiAtMC40MWVtOyAvLy40ZW0gaXMgcm91Z2hseSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIG9wZW5pbmcgXCIgdGhhdCB3ZSB3aXNoIHRvIGhhbmcuXG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiBnZXQoZm9udC1zaXplKSAqIDEuMjU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFwyMDFDXCI7XG4gICAgICBjb250ZW50OiBvcGVuLXF1b3RlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGNvbnRlbnQ6IG5vLWNsb3NlLXF1b3RlO1xuICAgIH1cblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcXDIwMURcIjtcbiAgICAgICAgY29udGVudDogY2xvc2UtcXVvdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDE4XCI7XG4gICAgY29udGVudDogb3Blbi1xdW90ZTtcbiAgfVxuICBxOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcMjAxOVwiO1xuICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlO1xuICB9XG59XG4uYmxvY2txdW90ZS0taW5kZW50IHtcbiAgcGFkZGluZzogMCAwIDAgMTVweDtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCBnZXRDb2xvcihnMTUpO1xufVxuXG4vKipcbiAqIEBzdWJtb2R1bGUgQmxvY2txdW90ZSBzb3VyY2UgWy5ibG9ja3F1b3RlX19zb3VyY2VdXG4gKiBAZGVzY3JpcHRpb24gVGhlIHNvdXJjZSBvZiBhIHF1b3RlXG4gKlxuICogQG1hcmt1cFxuICAgIDxibG9ja3F1b3RlPlxuICAgICAgICA8cD5SYXRzISE8L3A+XG4gICAgICAgIDxiIGNsYXNzPVwiYmxvY2txdW90ZV9fc291cmNlXCI+VGltPC9iPlxuICAgIDwvYmxvY2txdW90ZT5cbiAqL1xuLmJsb2NrcXVvdGVfX3NvdXJjZSB7XG4gIGNvbG9yOiBnZXRDb2xvcihnMjUpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1pbmRlbnQ6IDA7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDE0XCI7XG4gIH1cbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfQ09ERS5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5AdXNlICdzYXNzOm1hdGgnO1xuXG5jb2RlLFxucHJlIHtcbiAgcGFkZGluZzogMCAzcHggMnB4O1xuICBmb250LWZhbWlseTogTW9uYWNvLCBDb25zb2xhcywg4oCcTHVjaWRhIENvbnNvbGXigJ0sIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiBnZXQoZm9udC1zaXplKSAtIDI7XG4gIGNvbG9yOiBnZXRDb2xvcihnNzApO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi8qKlxuICogQG1vZHVsZSBJbmxpbmUgQ29kZSBbY29kZV1cbiAqIEBkZXNjcmlwdGlvbiBEaXNwbGF5IGlubGluZSBjb2RlXG4gKlxuICogQG1hcmt1cFxuICAgIDxjb2RlPmNvbnNvbGUubG9nKCdIZWxsbyBXb3JsZCEnKTs8L2NvZGU+XG4gKi9cbmNvZGUge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBjb2xvcjogZGFya2JsdWU7XG4gIGJhY2tncm91bmQtY29sb3I6IGdldENvbG9yKGc1KTtcbiAgQGluY2x1ZGUgYm9yZGVyKCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qKlxuICogQG1vZHVsZSBDb2RlIEJsb2NrIFtwcmVdXG4gKiBAZGVzY3JpcHRpb24gRGlzcGxheSBhIGJsb2NrIG9mIGNvZGVcbiAqXG4gKiBAbW9kaWZpZXIgWy5wcmVfX3Njcm9sbGFibGVdIEdpdmVzIG1heCBoZWlnaHQgc28gdGhhdCBibG9jayBpcyBzY3JvbGxhYmxlXG4gKlxuICogQG1hcmt1cFxuICAgIDxwcmU+PGNvZGU+XG4gICAgICB2YXIgZm9vID0gXCJIZWxsb1wiOzxici8+XG4gICAgICB2YXIgYmFyID0gXCIgV29ybGQhXCI7PGJyLz5cbiAgICAgIGNvbnNvbGUubG9nKGZvbyArIGJhcik7XG4gICAgPC9jb2RlPjwvcHJlPlxuICovXG5wcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogbWF0aC5kaXYobWF0aC5kaXYoZ2V0KHNwYWNpbmcpLCA0KSAtIDEsIDIpO1xuICBmb250LXNpemU6IGdldChmb250LXNpemUpIC0gMTsgLy8gMTRweCB0byAxM3B4XG4gIGxpbmUtaGVpZ2h0OiBnZXQobGluZS1oZWlnaHQpO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBnZXRDb2xvcihnNSk7XG4gIEBpbmNsdWRlIGJvcmRlcigpO1xuICBib3JkZXItcmFkaXVzOiBnZXQoYm9yZGVyLXJhZGl1cyk7XG5cbiAgLy8gRW5hYmxlIHNjcm9sbGFibGUgYmxvY2tzIG9mIGNvZGVcbiAgJi5wcmVfX3Njcm9sbGFibGUge1xuICAgIG1heC1oZWlnaHQ6IDM0MHB4O1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxuXG4gIC8vIEFjY291bnQgZm9yIHNvbWUgY29kZSBvdXRwdXRzIHRoYXQgcGxhY2UgY29kZSB0YWdzIGluIHByZSB0YWdzXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX0JPUkRFUi5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtaXhpbiBib3JkZXJcbiAqIEBkZXNjcmlwdGlvbiBBZGQgY3VzdG9tIGJvcmRlclxuICpcbiAqIEBwYXJhbSB7Y29sb3J9IFskY29sb3JdIFRoZSBjb2xvciBvZiB0aGUgYm9yZGVyLiBEZWZhdWx0cyB0byBjb2xvciBzZXQgYXMgYm9yZGVyLWNvbG9yIGluICRnZW1pbmktYmFzZS5cbiAqIEBwYXJhbSB7bWVhc3VyZW1lbnR9IFskd2lkdGhdIFRoZSBkZXNpcmVkIHdpZHRoIG9mIHRoZSBib3JkZXIuIERlZmF1bHRzIHRvIDFweC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbJHBvc2l0aW9uXSBUaGUgZGVzaXJlZCBwb3NpdGlvbiBvZiB0aGUgYm9yZGVyLiBEZWZhdWx0cyB0byBib3JkZXIgb24gYWxsIHNpZGVzLlxuICpcbiAqIEBleGFtcGxlXG4gICAgLmZvbyB7XG4gICAgICBAaW5jbHVkZSBib3JkZXIoI0Q2RDZENiwgMXB4LCBcImJvdHRvbVwiKTtcbiAgICB9XG4gKi9cblxuQG1peGluIGJvcmRlcigkY29sb3I6IGdldChib3JkZXItY29sb3IpLCAkd2lkdGg6IDFweCwgJHBvc2l0aW9uOiBcImFsbFwiKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gXCJhbGxcIiB7XG4gICAgYm9yZGVyOiAkd2lkdGggc29saWQgJGNvbG9yO1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBcImJvdHRvbVwiIHtcbiAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGNvbG9yO1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBcInRvcFwiIHtcbiAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGNvbG9yO1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBcInJpZ2h0XCIge1xuICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRjb2xvcjtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gXCJsZWZ0XCIge1xuICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICB9XG4gIEBlbHNlIHtcbiAgICBib3JkZXI6ICR3aWR0aCBzb2xpZCAkY29sb3I7XG4gIH1cbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfSU1BR0VTLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1vZHVsZSBJbWFnZXMgW2ltZ11cbiAqIEBkZXNjcmlwdGlvbiBXZSBnb3Qgc29tZSBpbWFnZXMgby1lciBoZS15YVxuICpcbiAqIEBtb2RpZmllciBbLmltZy0tcmlnaHRdIFBsYWNlIHJpZ2h0XG4gKiBAbW9kaWZpZXIgWy5pbWctLWxlZnRdIFBsYWNlIGxlZnRcbiAqIEBtb2RpZmllciBbLmltZy0tY2VudGVyXSBQbGFjZSBjZW50ZXJcbiAqXG4gKiBAbWFya3VwXG4gICAgPGltZyBzcmM9XCJodHRwOi8vd3d3LnBsYWNldGltLmNvbS8xMDAvMTAwXCIgLz5cbiAqL1xuaW1nLFxuLmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZm9udC1zdHlsZTogaXRhbGljOyAvLyBTbyB0aGF0ICdhbHQnIHRleHQgaXMgdmlzdWFsbHkgb2Zmc2V0IGlmIGltYWdlcyBkb24ndCBsb2FkLlxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBSZW1vdmUgc3BhY2UgdW5kZXIgaW1hZ2VzXG59XG5cbi8qKlxuICogTm9uLWZsdWlkIGltYWdlcyBpZiB5b3Ugc3BlY2lmeSAnd2lkdGgnIGFuZC9vciAnaGVpZ2h0JyBhdHRyaWJ1dGVzLlxuICovXG4uZ20tc3R5bGUgaW1nLCAvLyBSZW1vdmUgR29vZ2xlIE1hcHMgbWF4LXdpZHRoXG5pbWdbd2lkdGhdLFxuaW1nW2hlaWdodF0ge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cblxuLyoqXG4gKiBJbWFnZSBwbGFjZW1lbnQgdmFyaWF0aW9ucy5cbiAqL1xuLmltZy0tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IGdldChzcGFjaW5nKTtcbiAgbWFyZ2luLWxlZnQ6IGdldChzcGFjaW5nKTs7XG59XG4uaW1nLS1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogZ2V0KHNwYWNpbmcpOztcbiAgbWFyZ2luLWJvdHRvbTogZ2V0KHNwYWNpbmcpOztcbn1cbi5pbWctLWNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiBnZXQoc3BhY2luZyk7O1xufVxuXG4vKipcbiAqIEBtb2R1bGUgSW5saW5lIEltYWdlIFsuaW5saW5lLWltZ11cbiAqIEBkZXNjcmlwdGlvbiBEaXNwbGF5IGFuIGltYWdlIGlubGluZSB3aXRoIHRoZSB0ZXh0IChzbWFsbCBpbWFnZXMvIGdseXBocylcbiAqXG4gKiBAbWFya3VwXG4gICAgPGRpdiBjbGFzcz1cImlubGluZS1pbWdcIj4mbmJzcDs8L2Rpdj5cbiAqL1xuLmlubGluZS1pbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9MSVNUUy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgTGlzdHMgW3VsLCBvbF1cbiAqIEBkZXNjcmlwdGlvbiBZb3VyIGJhc2ljIGxpc3RzXG4gKlxuICogQG1vZGlmaWVyIFsubGlzdC0tbnVtYmVyZWRdIEhhdmUgYSBudW1iZXJlZCAndWwnIHdpdGhvdXQgdGhlIHNlbWFudGljcyBpbXBsaWVkIGJ5IHVzaW5nIGFuICdvbCcuXG4gKiBAbW9kaWZpZXIgWy5saXN0LS1wcnVuZV0gQ2xlYXIgYWxsIHRoZSBzdHlsZSBmcm9tIGEgbGlzdFxuICpcbiAqIEBtYXJrdXBcbiAgPHVsPlxuICAgIDxsaT5JdGVtIDE8L2xpPlxuICAgIDxsaT5JdGVtIDI8L2xpPlxuICAgIDxsaT5JdGVtIDM8L2xpPlxuICA8L3VsPlxuXG4gIDx1bCBjbGFzcz1cIm51bWJlcmVkLWxpc3RcIj5cbiAgICA8bGk+SXRlbSAxPC9saT5cbiAgICA8bGk+SXRlbSAyPC9saT5cbiAgICA8bGk+SXRlbSAzPC9saT5cbiAgPC91bD5cbiAqL1xuXG5cbi8qKlxuICogUmVtb3ZlIHZlcnRpY2FsIHNwYWNpbmcgZnJvbSBuZXN0ZWQgbGlzdHMuXG4gKi9cbmxpIHtcbiAgPiB1bCxcbiAgPiBvbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vKipcbiAqIEhhdmUgYSBudW1iZXJlZCAndWwnIHdpdGhvdXQgdGhlIHNlbWFudGljcyBpbXBsaWVkIGJ5IHVzaW5nIGFuICdvbCcuXG4gKi9cbi8qdWwqLy5saXN0LS1udW1iZXJlZCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cblxuLy8gUmVtb3ZlIGxpc3Qgc3R5bGVzXG4vKnVsKi8ubGlzdC0tcHJ1bmUge1xuICBAaW5jbHVkZSBwcnVuZS1saXN0O1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9MSVNUUy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtaXhpbiBwcnVuZS1saXN0XG4gKiBAZGVzY3JpcHRpb24gUmVtb3ZlIGFsbCBzdHlsZXMgZnJvbSBhIGxpc3RcbiAqXG4gKiBAZXhhbXBsZVxuICAgIC5saXN0LS1wcnVuZSB7XG4gICAgICBAaW5jbHVkZSBwcnVuZS1saXN0O1xuICAgIH1cbiAqL1xuQG1peGluIHBydW5lLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfVEFCTEVTLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1vZHVsZSBUYWJsZXMgW3RhYmxlXVxuICogQGRlc2NyaXB0aW9uIFdlIGhhdmUgYSBsb3QgYXQgb3VyIGRpc3Bvc2FsIGZvciBtYWtpbmcgdmVyeSBjb21wbGV4IHRhYmxlIGNvbnN0cnVjdHMsIGUuZy46XG4gKlxuICogQG1vZGlmaWVyIFsudGFibGUtLWJvcmRlcmVkXSBBZGQgYSBib3JkZXJcbiAqIEBtb2RpZmllciBbLnRhYmxlLS1zdHJpcGVkXSBBbHRlcm5hdGVzIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSByb3dzXG4gKiBAbW9kaWZpZXIgWy50YWJsZS0tZGF0YV0gU21hbGxlciB0ZXh0XG4gKiBAbW9kaWZpZXIgWy50YWJsZS0tcmVzcG9udmllXSBNYWtlcyB0aGUgdGFibGUgYnJlYWsgcm93cyBvbiBzbWFsbGVyIGRldmljZXNcbiAqXG4gKiBAbWFya3VwXG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUtLWJvcmRlcmVkICB0YWJsZS0tc3RyaXBlZCAgdGFibGUtLWRhdGEgIHRhYmxlLS1yZXNwb25zaXZlXCI+XG4gICAgICA8Y29sZ3JvdXA+XG4gICAgICAgIDxjb2wgY2xhc3M9dDEwPlxuICAgICAgICA8Y29sIGNsYXNzPXQxMD5cbiAgICAgICAgPGNvbCBjbGFzcz10MTA+XG4gICAgICAgIDxjb2w+XG4gICAgICA8L2NvbGdyb3VwPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoIGNvbHNwYW49Mz5Gb288L3RoPlxuICAgICAgICAgIDx0aD5CYXI8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoPkxvcmVtPC90aD5cbiAgICAgICAgICA8dGg+SXBzdW08L3RoPlxuICAgICAgICAgIDx0aCBjbGFzcz1udW1lcmljYWw+RG9sb3I8L3RoPlxuICAgICAgICAgIDx0aD5TaXQ8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCByb3dzcGFuPTM+U2l0PC90aD5cbiAgICAgICAgICA8dGQ+RG9sb3I8L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1udW1lcmljYWw+MDMuNzg4PC90ZD5cbiAgICAgICAgICA8dGQ+TG9yZW08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkPkRvbG9yPC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9bnVtZXJpY2FsPjMyLjIxMDwvdGQ+XG4gICAgICAgICAgPHRkPkxvcmVtPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD5Eb2xvcjwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPW51bWVyaWNhbD40Ny43OTc8L3RkPlxuICAgICAgICAgIDx0ZD5Mb3JlbTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggcm93c3Bhbj0yPlNpdDwvdGg+XG4gICAgICAgICAgPHRkPkRvbG9yPC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9bnVtZXJpY2FsPjA5LjY0MDwvdGQ+XG4gICAgICAgICAgPHRkPkxvcmVtPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD5Eb2xvcjwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPW51bWVyaWNhbD4xMi4xMTc8L3RkPlxuICAgICAgICAgIDx0ZD5Mb3JlbTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcInNhc3M6Y29sb3JcIjtcblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbnRoLFxudGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiBtYXRoLmRpdihnZXQoc3BhY2luZyksIDQpO1xuICBAaW5jbHVkZSBtZWRpYShtZWRpdW0pIHtcbiAgICBwYWRkaW5nOiBtYXRoLmRpdihnZXQoc3BhY2luZyksIDIpO1xuICB9XG59XG5cblxuLyoqXG4gKiBDZWxsIGFsaWdubWVudHNcbiAqL1xuW2NvbHNwYW5dIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuW2NvbHNwYW49XCIxXCJdIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbltyb3dzcGFuXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5bcm93c3Bhbj1cIjFcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm51bWVyaWNhbCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4vKipcbiAqIEluIHRoZSBIVE1MIGFib3ZlIHdlIHNlZSBzZXZlcmFsICdjb2wnIGVsZW1lbnRzIHdpdGggY2xhc3NlcyB3aG9zZSBudW1iZXJzXG4gKiByZXByZXNlbnQgYSBwZXJjZW50YWdlIHdpZHRoIGZvciB0aGF0IGNvbHVtbi4gV2UgbGVhdmUgb25lIGNvbHVtbiBmcmVlIG9mIGFcbiAqIGNsYXNzIHNvIHRoYXQgY29sdW1uIGNhbiBzb2FrIHVwIHRoZSBlZmZlY3RzIG9mIGFueSBhY2NpZGVudGFsIGJyZWFrYWdlIGluXG4gKiB0aGUgdGFibGUuXG4gKi9cbi50NSB7XG4gIHdpZHRoOiA1JTtcbn1cbi50MTAge1xuICB3aWR0aDogMTAlO1xufVxuLnQxMiB7XG4gIHdpZHRoOiAxMi41JTtcbn0gICAgIC8qIDEvOCAqL1xuLnQxNSB7XG4gIHdpZHRoOiAxNSU7XG59XG4udDIwIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi50MjUge1xuICB3aWR0aDogMjUlO1xufSAgICAgICAvKiAxLzQgKi9cbi50MzAge1xuICB3aWR0aDogMzAlO1xufVxuLnQzMyB7XG4gIHdpZHRoOiAzMy4zMzMlO1xufSAgIC8qIDEvMyAqL1xuLnQzNSB7XG4gIHdpZHRoOiAzNSU7XG59XG4udDM3IHtcbiAgd2lkdGg6IDM3LjUlO1xufSAgICAgLyogMy84ICovXG4udDQwIHtcbiAgd2lkdGg6IDQwJTtcbn1cbi50NDUge1xuICB3aWR0aDogNDUlO1xufVxuLnQ1MCB7XG4gIHdpZHRoOiA1MCU7XG59ICAgICAgIC8qIDEvMiAqL1xuLnQ1NSB7XG4gIHdpZHRoOiA1NSU7XG59XG4udDYwIHtcbiAgd2lkdGg6IDYwJTtcbn1cbi50NjIge1xuICB3aWR0aDogNjIuNSU7XG59ICAgICAvKiA1LzggKi9cbi50NjUge1xuICB3aWR0aDogNjUlO1xufVxuLnQ2NiB7XG4gIHdpZHRoOiA2Ni42NjYlO1xufSAgIC8qIDIvMyAqL1xuLnQ3MCB7XG4gIHdpZHRoOiA3MCU7XG59XG4udDc1IHtcbiAgd2lkdGg6IDc1JTtcbn0gICAgICAgLyogMy80Ki9cbi50ODAge1xuICB3aWR0aDogODAlO1xufVxuLnQ4NSB7XG4gIHdpZHRoOiA4NSU7XG59XG4udDg3IHtcbiAgd2lkdGg6IDg3LjUlO1xufSAgICAgLyogNy84ICovXG4udDkwIHtcbiAgd2lkdGg6IDkwJTtcbn1cbi50OTUge1xuICB3aWR0aDogOTUlO1xufVxuXG5cbi8qKlxuICogQm9yZGVyZWQgdGFibGVzXG4gKi9cbi50YWJsZS0tYm9yZGVyZWQge1xuICB0aCxcbiAgdGQge1xuICAgIEBpbmNsdWRlIGJvcmRlcigpO1xuXG4gICAgJjplbXB0eSB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQgdHI6bGFzdC1jaGlsZCB0aCB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICB9XG5cbiAgdGJvZHkgdHIgdGg6bGFzdC1vZi10eXBlIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDJweDtcbiAgfVxufVxuXG5cbi8qKlxuICogU3RyaXBlZCB0YWJsZXNcbiAqL1xuLnRhYmxlLS1zdHJpcGVkIHtcbiAgdGJvZHkgdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IuYWRqdXN0KGdldChjb2xvciksICRsaWdodG5lc3M6IDc1JSwgJHNwYWNlOiBoc2wpO1xuICB9XG59XG5cblxuLyoqXG4gKiBEYXRhIHRhYmxlXG4gKi9cbi50YWJsZS0tZGF0YSB7XG4gIGZvbnQ6IDEycHgvMS41IHNhbnMtc2VyaWY7XG59XG5cblxuLyoqXG4gKiBSZXNwb25zaXZlIHRhYmxlXG4gKiBUaGlzIGlzbid0IG1vYmlsZSBmaXJzdCBmb3IgdGhlIHNha2Ugb2YgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAqL1xuQGluY2x1ZGUgbWVkaWEodmlzaWJsZS1zbWFsbCwgZmFsc2UpIHtcbiAgLnRhYmxlLS1yZXNwb25zaXZlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBIaWRlIGhlYWRpbmdcbiAgICB9XG4gICAgdGgsXG4gICAgdGQsXG4gICAgdHIge1xuICAgICAgZGlzcGxheTogYmxvY2s7IC8vIEJsb2NrIGFsbCB0aGUgdGhpbmdzXG4gICAgfVxuICAgIHRkIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICAgIHRyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGdldChzcGFjaW5nKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfTUVESUEtUVVFUklFUy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5AdXNlIFwic2FzczptZXRhXCI7XG5cbi8qKlxuICogQG1peGluIG1lZGlhXG4gKiBAZGVzY3JpcHRpb24gSXQncyBub3QgZ3JlYXQgcHJhY3RpY2UgdG8gZGVmaW5lIHNvbGlkIGJyZWFrcG9pbnRzIHVwLWZyb250LFxuICogcHJlZmVycmluZyB0byBtb2RpZnkgeW91ciBkZXNpZ24gd2hlbiBpdCBuZWVkcyBpdCwgcmF0aGVyIHRoYW4gYXNzdW1pbmdcbiAqIHlvdSdsbCB3YW50IGEgY2hhbmdlIGF0ICdtb2JpbGUnLiBIb3dldmVyLCBhcyBpbnVpdC5jc3MgaXMgcmVxdWlyZWQgdG8gdGFrZSBhXG4gKiBoYW5kcyBvZmYgYXBwcm9hY2ggdG8gZGVzaWduIGRlY2lzaW9ucywgdGhpcyBpcyB0aGUgY2xvc2VzdCB3ZSBjYW4gZ2V0IHRvXG4gKiBiYWtlZC1pbiByZXNwb25zaXZlbmVzcy4gSXQncyBmbGV4aWJsZSBlbm91Z2ggdG8gYWxsb3cgeW91IHRvIHNldCB5b3VyIG93blxuICogYnJlYWtwb2ludHMgYnV0IHNvbGlkIGVub3VnaCB0byBiZSBmcmFtZXdvcmtpZmllZC5cbiAqXG4gKiBXZSBkZWZpbmUgc29tZSBicm9hZCBicmVha3BvaW50cyBpbiBvdXIgdmFycyBmaWxlIHRoYXQgYXJlIHBpY2tlZCB1cCBoZXJlXG4gKiBmb3IgdXNlIGluIGEgc2ltcGxlIG1lZGlhIHF1ZXJ5IG1peGluLiBPdXIgb3B0aW9ucyBhcmU6XG4gKlxuICogbWVkaXVtXG4gKiBsYXJnZVxuICogeGxhcmdlXG4gKlxuICogdmlzaWJsZS1zbWFsbFxuICogdmlzaWJsZS1tZWRpdW1cbiAqIHZpc2libGUtbGFyZ2VcbiAqXG4gKiBoaWRkZW4tc21hbGxcbiAqIGhpZGRlbi1tZWRpdW1cbiAqIGhpZGRlbi1sYXJnZVxuICpcbiAqIHJldGluYVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbJG1lZGlhLXF1ZXJ5XSBUaGUgbWVkaWEgcXVlcnkgYnJlYWtwb2ludCBrZXl3b3JkXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFskcHJpbnQ9ZmFsc2VdIFdoZXRoZXIgdG8gaW5jbHVkZSBwcmludFxuICpcbiAqIEBleGFtcGxlXG4gICAgQGluY2x1ZGUgbWVkaWEobWVkaXVtKSB7XG4gICAgICBbc3R5bGVzIGhlcmVdXG4gICAgfVxuICovXG4kc21hbGwtZW5kOiAgICAgICAgICAgICAgZ2V0KG1lZGl1bSwgJGdlbWluaS1zY3JlZW5zKSAtIDFweDtcbiRtZWRpdW0tZW5kOiAgICAgICAgICAgICBnZXQobGFyZ2UsICRnZW1pbmktc2NyZWVucykgLSAxcHg7XG5cbkBtaXhpbiBtZWRpYSgkbWVkaWEtcXVlcnksICRwcmludDogdHJ1ZSkge1xuXG4gIEBpZiAkbWVkaWEtcXVlcnkgPT0gbWVkaXVtIG9yICRtZWRpYS1xdWVyeSA9PSBoaWRkZW4tc21hbGwge1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoZ2V0KG1lZGl1bSwgJGdlbWluaS1zY3JlZW5zKSwgOTk5OTksICRwcmludCkgeyBAY29udGVudDsgfVxuXG4gIH1cblxuICBAaWYgJG1lZGlhLXF1ZXJ5ID09IGxhcmdlIG9yICRtZWRpYS1xdWVyeSA9PSB2aXNpYmxlLWxhcmdlIHtcblxuICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KGdldChsYXJnZSwgJGdlbWluaS1zY3JlZW5zKSwgOTk5OTksICRwcmludCkgeyBAY29udGVudDsgfVxuXG4gIH1cblxuICBAaWYgJG1lZGlhLXF1ZXJ5ID09IHhsYXJnZSB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShnZXQoeGxhcmdlLCAkZ2VtaW5pLXNjcmVlbnMpLCA5OTk5OSwgJHByaW50KSB7IEBjb250ZW50OyB9XG5cbiAgfVxuXG4gIEBpZiAkbWVkaWEtcXVlcnkgPT0gdmlzaWJsZS1zbWFsbCB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeSgwLCAkc21hbGwtZW5kLCAkcHJpbnQpIHsgQGNvbnRlbnQ7IH1cblxuICB9XG5cbiAgQGlmICRtZWRpYS1xdWVyeSA9PSB2aXNpYmxlLW1lZGl1bSB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShnZXQobWVkaXVtLCAkZ2VtaW5pLXNjcmVlbnMpLCAkbWVkaXVtLWVuZCwgJHByaW50KSB7IEBjb250ZW50OyB9XG5cbiAgfVxuXG4gIEBpZiAkbWVkaWEtcXVlcnkgPT0gaGlkZGVuLW1lZGl1bSB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeShnZXQobGFyZ2UsICRnZW1pbmktc2NyZWVucyksICRzbWFsbC1lbmQsICRwcmludCkgeyBAY29udGVudDsgfVxuXG4gIH1cblxuICBAaWYgJG1lZGlhLXF1ZXJ5ID09IGhpZGRlbi1sYXJnZSB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1xdWVyeSgwLCAkbWVkaXVtLWVuZCwgJHByaW50KSB7IEBjb250ZW50OyB9XG5cbiAgfVxuXG4gIEBpZiAkbWVkaWEtcXVlcnkgPT0gcmV0aW5he1xuXG4gICAgQG1lZGlhXG4gICAgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICAgIG9ubHkgc2NyZWVuIGFuZCAoICAgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMi8xKSxcbiAgICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gICAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDE5MmRwaSksXG4gICAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDJkcHB4KSB7XG5cbiAgICAgIEBjb250ZW50O1xuXG4gICAgfVxuXG4gIH1cblxuICBAaWYgJG1lZGlhLXF1ZXJ5ID09IFwiXCIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbn1cblxuLyoqXG4gKiBAbWl4aW4gbWVkaWEtcXVlcnlcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGlzIGEgc2ltcGxlIG1lZGlhIHF1ZXJ5IG1peGluIHRoYXQgc3VwcG9ydHMgbWluIGFuZCBtYXhcbiAqIHdpZHRocy5cbiAqXG4gKiBJRTggZG9lc24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMsIHNvIHNldCAkZml4ZWQtcXVlcmllcyB0byBhIHdpZHRoIHRvXG4gKiBjcmVhdGUgc3R5bGUgc2hlZXRzIGZvciB0aGF0IHBhcnRpY3VsYXIgd2lkdGguXG4gKiBJbnNwaXJlZCBieTogLy9odHRwOi8vamFrZWFyY2hpYmFsZC5naXRodWIuY29tL3Nhc3MtaWUvXG4gKlxuICogQHBhcmFtIHt1bml0fSBbJG1pbl0gVGhlIG1pbiBicmVha3BvaW50XG4gKiBAcGFyYW0ge3VuaXR9IFskbWF4PTk5OTk5XSBUaGUgbWF4IGJyZWFrcG9pbnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gWyRwcmludD1mYWxzZV0gV2hldGhlciB0byBpbmNsdWRlIGZvciBwcmludFxuICpcbiAqIEBleGFtcGxlXG4gICAgQGluY2x1ZGUgbWVkaWEtcXVlcnkoMzAwcHgpIHtcbiAgICAgIFtzdHlsZXMgaGVyZV1cbiAgICB9XG4gKi9cblxuQG1peGluIG1lZGlhLXF1ZXJ5KCRtaW4sICRtYXg6IDk5OTk5LCAkcHJpbnQ6IGZhbHNlKSB7XG5cbiAgJHByaW50LXF1ZXJ5OiBcIlwiO1xuICBAaWYgJHByaW50ID09IHRydWUgeyRwcmludC1xdWVyeTogXCJwcmludCwgXCI7fVxuXG4gIC8vIElmIHdlJ3JlIG91dHB1dHRpbmcgZm9yIGEgZml4ZWQgbWVkaWEgcXVlcnkuLi5cbiAgQGlmIG1ldGEudmFyaWFibGUtZXhpc3RzKGZpeGVkLXF1ZXJpZXMpIHtcbiAgICAvL0lmIHRoZSBmaXhlZCBxdWVyeSBpcyBpbiB0aGUgbWVkaWEgcXVlcnkgcmFuZ2VcblxuICAgIEBpZiAkZml4ZWQtcXVlcmllcyA+PSAkbWluIGFuZCAkZml4ZWQtcXVlcmllcyA8PSAkbWF4IHsgQGNvbnRlbnQgfVxuXG4gIH1cbiAgQGVsc2Uge1xuXG4gICAgQGlmICRtaW4gPj0gMCBhbmQgJG1heCA8IDk5OTk5IHtcbiAgICAgIEBtZWRpYSAjeyRwcmludC1xdWVyeX1zY3JlZW4gYW5kIChtaW4td2lkdGg6IGVtKCRtaW4sIDE2cHgpKSBhbmQgKG1heC13aWR0aDogZW0oJG1heCwgMTZweCkpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkbWluID49IDAge1xuICAgICAgQG1lZGlhICN7JHByaW50LXF1ZXJ5fXNjcmVlbiBhbmQgKG1pbi13aWR0aDogZW0oJG1pbiwgMTZweCkpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkbWF4IDwgOTk5OTkge1xuICAgICAgQG1lZGlhICN7JHByaW50LXF1ZXJ5fXNjcmVlbiBhbmQgKG1heC13aWR0aDogZW0oJG1heCwgMTZweCkpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG5cbiAgfVxufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9GT1JNUy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgRGVmYXVsdCBGb3JtcyBbZm9ybV1cbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IGZvcm0gbGF5b3V0XG4gKlxuICogQG1vZGlmaWVyIFsuZm9ybS0taW5saW5lXSBNYWtlIGFsbCBlbGVtZW50cyBpbmxpbmVcbiAqXG4gKiBAbWFya3VwXG4gICAgPGZvcm0+XG4gICAgICA8ZmllbGRzZXQ+XG4gICAgICAgIDxsZWdlbmQ+TGVnZW5kPC9sZWdlbmQ+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJ0aGluZ1wiPkxhYmVsIG5hbWU8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgaWQ9XCJ0aGluZ1wiIG5hbWU9XCJ0aGluZ1wiIGNsYXNzPVwidGV4dC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJUeXBlIHNvbWV0aGluZy4uLlwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJjaGVja2JveFwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj4gQ2hlY2sgbWUgb3V0XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uXCI+U3VibWl0PC9idXR0b24+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgIDwvZm9ybT5cbiAqL1xuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbi5mb3JtLS1pbmxpbmUge1xuICAuaE4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIGZpZWxkc2V0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vKipcbiAqIEBtb2R1bGUgTGFiZWwgW2xhYmVsXVxuICogQGRlc2NyaXB0aW9uIEEgdGFnIGZvciBsYWJlbGxpbmcgZm9ybSBlbGVtZW50cy4gTGFiZWxzIGJlY29tZSBpbmxpbmUgd2hlblxuICogdGhleSdyZSBhZnRlciBhIGNoZWNrYm94LlxuICpcbiAqIEBzdGF0ZSBbaXMtcmVxdWlyZWRdIEFkZHMgYW4gYXN0ZXJpc2tcbiAqXG4gKiBAbWFya3VwXG4gICAgPGRpdj5cbiAgICAgIDxsYWJlbD5Gb288L2xhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJ0ZXh0LWlucHV0XCI+XG4gICAgPC9kaXY+XG4gKi9cbmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgJi5pcy1yZXF1aXJlZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiKiBcIjtcbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArICYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KGdldChzcGFjaW5nKSwgMik7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShtZWRpdW0pIHtcbiAgICAuZm9ybS0taW5saW5lICYge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBzdWJtb2R1bGUgQWRkaXRpb25hbCBIZWxwIFsubGFiZWxfX2FkZGl0aW9uYWxdXG4gKiBAZGVzY3JpcHRpb24gQWRkaXRpb25hbCBoZWxwIGZvciBsYWJlbHNcbiAqXG4gKiBAbWFya3VwXG4gICAgPGxhYmVsPlxuICAgICAgRW1haWw6XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInRleHQtaW5wdXRcIiBwbGFjZWhvbGRlcj1cImVtYWlsQGZha2UuY29tXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImxhYmVsX19hZGRpdGlvbmFsXCI+Tm8gc3BhY2VzPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gKi9cbi5sYWJlbF9fYWRkaXRpb25hbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEBtb2R1bGUgUmFkaW8vQ2hlY2tib3ggaW50cHV0cyBbLmNoZWNrYm94XVxuICogQGRlc2NyaXB0aW9uIEJhc2ljIGNoZWNrYm94IGFuZCByYWRpbyBlbGVtZW50c1xuICpcbiAqIEBtYXJrdXBcbiAgICA8bGFiZWwgY2xhc3M9XCJjaGVja2JveFwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgLz4gQ2hlY2sgaXQhXG4gICAgPC9sYWJlbD5cbiAqL1xuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgLy9JbmxpbmVcbiAgLmZvcm0tLWlubGluZSAmIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgLy9JbmxpbmVcbiAgLmZvcm0tLWlubGluZSAmIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IG1hdGguZGl2KGdldChzcGFjaW5nKSwgMik7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBQb3NpdGlvbiByYWRpb3MgYW5kIGNoZWNrYm94ZXMgYmV0dGVyXG4gKi9cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbjogNHB4IDAgMDtcbiAgbWFyZ2luLXRvcDogMXB4IFxcOTsgLyogSUU4LTkgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBUaGlzIGZpeGVzIGEgYnVnIGluIHdlYmtpdCB3aGVyZSByYWRpbyBidXR0b25zIGdldCBjbGlwcGVkIDFweCB3aGVuIHRoZVxuICogY29udGFpbmVyIGlzIG92ZXJmbG93OiBoaWRkZW47XG4gKiBJJ3ZlIG9wZW5lZCBhIHRpY2tldCB3aXRoIENocm9taXVtXG4gKiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/cT1yYWRpbyUyMGJ1dHRvbiUyMG92ZXJmbG93JTIwaGlkZGVuJmNvbHNwZWM9SUQlMjBQcmklMjBNJTIwSXRlcmF0aW9uJTIwUmVsZWFzZUJsb2NrJTIwQ3IlMjBTdGF0dXMlMjBPd25lciUyMFN1bW1hcnklMjBPUyUyME1vZGlmaWVkJmlkPTM5NjcyNiZ0aGFua3M9Mzk2NzI2JnRzPTE0MDYxNDA1MTBcbiAqL1xuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgbWFyZ2luLWxlZnQ6IDFweDtcbn1cblxuLyoqXG4gKiBSZXNldCB3aWR0aCBvZiBpbnB1dCBpbWFnZXMsIGJ1dHRvbnMsIHJhZGlvcywgY2hlY2tib3hlc1xuICovXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSxcbmlucHV0W3R5cGU9XCJpbWFnZVwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgd2lkdGg6IGF1dG87IC8vIE92ZXJyaWRlIG9mIGdlbmVyaWMgaW5wdXQgc2VsZWN0b3Jcbn1cblxuXG4vKipcbiAqIENoYW5nZSB0aGUgY3Vyc29yXG4gKi9cbmxhYmVsLFxuc2VsZWN0LFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qKlxuICogTWFrZSBzZWxlY3QgYm94ZXMgbG9vayBiZXR0ZXJcbiAqL1xuc2VsZWN0IHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX09CSkVDVFMuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIE9iamVjdHMgW29iamVjdF1cbiAqIEBkZXNjcmlwdGlvbiBCYXNpYyBvYmplY3QgZWxlbWVudFxuICovXG5cbi8qKlxuICogT2JqZWN0IGVsZW1lbnQgY2FuIGJlIHVzZWQgaW4gdGhlIGNsb3duIGNhciB0ZWNobmlxdWUgKGFzIHNlZW4gb24gTkNTIGRldGFpbHMgcGFnZSlcbiAqIDEuIEFsbG93IDxvYmplY3Q+IHRvIGJlIHdyYXBwZWQgaW4gYW5jaG9yc1xuICogMi4gU29sdmVzIGJ1ZyBvbiBDaHJvbWUgd2hlcmUgdGhlIFNWRyBtZWRpYSBxdWVyaWVzIHdvbid0IGRldGVjdCBpbml0aWFsIHdpZHRoXG4gKi9cbm9iamVjdCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOy8qIDEgKi9cbiAgd2lkdGg6IDEwMCU7LyogMiAqL1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9URVhULUlOUFVUUy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBzZXR0aW5ncyAkZ2VtaW5pLXRleHQtaW5wdXRzXG4gKiBAZGVzY3JpcHRpb24gVGhlIHNldHRpbmdzIGZvciB0ZXh0LWlucHV0cy4gVGhleSBtb3N0bHkgZXh0ZW5kIGJ1dHRvbnMgZm9yXG4gKiB0aGUgc2FrZSBvZiBjb250aW51aXR5LlxuICpcbiAqIEBwcm9wIHtjb2xvcn0gW2NvbG9yPSMzMzNdIFRoZSBjb2xvciBvZiB0aGUgdGV4dFxuICogQHByb3Age2NvbG9yfSBbYmFja2dyb3VuZC1jb2xvcj0jRkZGXSBUaGUgYmFja2dyb3VuZCBjb2xvclxuICogQHByb3Age21lYXN1cmVtZW50fSBbcGFkZGluZy1lbmRzPWdldChwYWRkaW5nLWVuZHMsICRnZW1pbmktYnV0dG9ucyldIFRoZSBwYWRkaW5nIG9uIHRoZSB0b3AgYW5kIGJvdHRvbVxuICogQHByb3Age21lYXN1cmVtZW50fSBbcGFkZGluZy1zaWRlcz1nZXQocGFkZGluZy1zaWRlcywgJGdlbWluaS1idXR0b25zKV0gVGhlIHBhZGRpbmcgb24gdGhlIHNpZGVzXG4gKiBAcHJvcCB7bWVhc3VyZW1lbnR9IFtib3JkZXItd2lkdGg9MXB4XSBUaGUgYm9yZGVyIHdpZHRoXG4gKiBAcHJvcCB7Y29sb3J9IFtib3JkZXItY29sb3I9I0VFRV0gVGhlIGJvcmRlciBjb2xvclxuICogQHByb3Age21lYXN1cmVtZW50fSBbYm9yZGVyLXJhZGl1cz1nZXQoYm9yZGVyLXJhZGl1cyldIFRoZSBib3JkZXIgcmFkaXVzXG4gKi9cbiRnZW1pbmktdGV4dC1pbnB1dHM6ICgpICFkZWZhdWx0O1xuXG4kZ2VtaW5pLXRleHQtaW5wdXRzOiBleHRlbmQoKFxuICBjb2xvcjogIzMzMyxcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRixcbiAgcGFkZGluZy1lbmRzOiBnZXQocGFkZGluZy1lbmRzLCAkZ2VtaW5pLWJ1dHRvbnMpLFxuICBwYWRkaW5nLXNpZGVzOiBnZXQocGFkZGluZy1zaWRlcywgJGdlbWluaS1idXR0b25zKSxcbiAgYm9yZGVyLXdpZHRoOiAxcHgsXG4gIGJvcmRlci1jb2xvcjogZ2V0KGJvcmRlci1jb2xvciksXG4gIGJvcmRlci1yYWRpdXM6IGdldChib3JkZXItcmFkaXVzKVxuKSwgJGdlbWluaS10ZXh0LWlucHV0cyk7XG5cbi8qKlxuICogQG1vZHVsZSBUZXh0IGlucHV0cyBbLnRleHQtaW5wdXRdXG4gKiBAZGVzY3JpcHRpb24gSW5zdGVhZCBvZiBhICdbdHlwZV0nIHNlbGVjdG9yIGZvciBlYWNoIGtpbmQgb2YgZm9ybSBpbnB1dCwgd2UganVzdCB1c2UgYVxuICogY2xhc3MgdG8gdGFyZ2V0IGFueS9ldmVyeSBvbmUsIGUuZy46XG4gKlxuICogQG1hcmt1cFxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwidGV4dC1pbnB1dFwiIHBsYWNlaG9sZGVyPVwiVGV4dC4uLlwiPlxuICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cInRleHQtaW5wdXRcIiBwbGFjZWhvbGRlcj1cIkVtYWlsLi4uXCI+XG4gICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwidGV4dC1pbnB1dFwiIHBsYWNlaG9sZGVyPVwiUGFzc3dvcmQuLi5cIj5cbiAqL1xuLnRleHQtaW5wdXQge1xuICBAaW5jbHVkZSB0YWcoXG4gICAgZ2V0KGNvbG9yLCAkZ2VtaW5pLXRleHQtaW5wdXRzKSxcbiAgICBnZXQoYmFja2dyb3VuZC1jb2xvciwgJGdlbWluaS10ZXh0LWlucHV0cyksXG4gICAgZ2V0KHBhZGRpbmctZW5kcywgJGdlbWluaS10ZXh0LWlucHV0cyksXG4gICAgZ2V0KHBhZGRpbmctc2lkZXMsICRnZW1pbmktdGV4dC1pbnB1dHMpLFxuICAgIGdldChib3JkZXItd2lkdGgsICRnZW1pbmktdGV4dC1pbnB1dHMpLFxuICAgIGdldChib3JkZXItY29sb3IsICRnZW1pbmktdGV4dC1pbnB1dHMpLFxuICAgIGdldChib3JkZXItcmFkaXVzLCAkZ2VtaW5pLXRleHQtaW5wdXRzKVxuICApO1xuICAvLyBTdG9wIHRleHQtaW5wdXRzIGZyb20gb3ZlcmZsb3dpbmcuXG4gIG1heC13aWR0aDogMTAwJTtcbn1cbiIsIi8qKlxuICogQHNldHRpbmdzICRnZW1pbmktdGFnc1xuICogQGRlc2NyaXB0aW9uIFRoZSBzZXR0aW5ncyB0byBnaXZlIHRhZ3MgYSBjdXN0b20gbG9va1xuICpcbiAqIEBwcm9wIHtjb2xvcn0gW2NvbG9yPSMzMzNdIFRoZSBmb250IGNvbG9yIG9mIHRoZSBmb250XG4gKiBAcHJvcCB7Y29sb3J9IFtiYWNrZ3JvdW5kLWNvbG9yPSNFRUVdIFRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAcHJvcCB7bWVhc3VyZW1lbnR9IFtwYWRkaW5nLWVuZHM9MC41ZW1dIFRoZSBwYWRkaW5nIG9uIHRoZSB0b3AgYW5kIGJvdHRvbVxuICogQHByb3Age21lYXN1cmVtZW50fSBbcGFkZGluZy1zaWRlcz0xZW1dIFRoZSBwYWRkaW5nIG9uIHRoZSBsZWZ0IGFuZCByaWdodFxuICogQHByb3Age21lYXN1cmVtZW50fSBbYm9yZGVyLXdpZHRoPTBdIFRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyXG4gKiBAcHJvcCB7Y29sb3J9IFtib3JkZXItY29sb3I9Z2V0KGJvcmRlci1jb2xvcildIFRoZSBjb2xvciBvZiB0aGUgYm9yZGVyXG4gKiBAcHJvcCB7bWVhc3VyZW1lbnR9IFtib3JkZXItcmFkaXVzPTBdIFRoZSBib3JkZXIgb2YgdGhlIHJhZGl1c1xuICovXG4kZ2VtaW5pLXRhZ3M6IChcbiAgKSAhZGVmYXVsdDtcblxuJGdlbWluaS10YWdzOiBleHRlbmQoKGNvbG9yOiAjMzMzLFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZSxcbiAgICAgIHBhZGRpbmctZW5kczogMC4yNWVtLFxuICAgICAgcGFkZGluZy1zaWRlczogMC41ZW0sXG4gICAgICBib3JkZXItd2lkdGg6IDAsXG4gICAgICBib3JkZXItY29sb3I6IGdldChib3JkZXItY29sb3IpLFxuICAgICAgYm9yZGVyLXJhZGl1czogMCxcbiAgICApLFxuICAgICRnZW1pbmktdGFnc1xuKTtcblxuLyoqXG4gKiBUYWdzIGFyZSBhIGNvbW1vbiBDU1MgZWxlbWVudCB0aGF0IHdlIHNlZSBtdWx0aXBsZSBlbGVtZW50cyBleHRlbmQsXG4gKiBpbmNsdWRpbmcgYnV0dG9ucywgdGFicywgYW5kIHZhcmlvdXMgb3RoZXIgdGFnc1xuICovXG5AbWl4aW4gdGFnKCRjb2xvcjogZ2V0KGNvbG9yLCAkZ2VtaW5pLXRhZ3MpLFxuICAkYmFja2dyb3VuZDogZ2V0KGJhY2tncm91bmQtY29sb3IsICRnZW1pbmktdGFncyksXG4gICRlbmRzOiBnZXQocGFkZGluZy1lbmRzLCAkZ2VtaW5pLXRhZ3MpLFxuICAkc2lkZXM6IGdldChwYWRkaW5nLXNpZGVzLCAkZ2VtaW5pLXRhZ3MpLFxuICAkYm9yZGVyLXdpZHRoOiBnZXQoYm9yZGVyLXdpZHRoLCAkZ2VtaW5pLXRhZ3MpLFxuICAkYm9yZGVyLWNvbG9yOiBnZXQoYm9yZGVyLWNvbG9yLCAkZ2VtaW5pLXRhZ3MpLFxuICAkYm9yZGVyLXJhZGl1czogZ2V0KGJvcmRlci1yYWRpdXMsICRnZW1pbmktdGFncykpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6ICRlbmRzICRzaWRlcztcbiAgcGFkZGluZzogY2FsYygjeyRlbmRzfSAtICN7JGJvcmRlci13aWR0aH0pICRzaWRlcztcblxuICBjb2xvcjogJGNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcblxuICBAaWYgJGJvcmRlci1yYWRpdXMgPjAge1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICB9XG59XG5cbkBpZiBnZXQodGFncywgJGdlbWluaS11c2UpIHtcbiAgLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9UQUdTLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG4gIC8qKlxuICAgKiBAbW9kdWxlIFRhZ3MgWy50YWddXG4gICAqIEBkZXNjcmlwdGlvbiBHaXZlIHRleHQgYSBiYWNrZ3JvdW5kIHNvIGl0IGxvb2tzIGxpa2UgYSB0YWdcbiAgICpcbiAgICogQG1vZGlmaWVyIFsudGFnLS1zbWFsbF0gU21hbGwgdGFnXG4gICAqIEBtb2RpZmllciBbLnRhZy0tbGFyZ2VdIExhcmdlIHRhZ1xuICAgKiBAbW9kaWZpZXIgWy50YWctLWh1Z2VdIEh1Z2UgdGFnXG4gICAqIEBtb2RpZmllciBbLnRhZy0tbmF0dXJhbF0gVGFnIHdpdGggaW5oZXJpdGVkIHNpemUgZnJvbSBpdHMgY29udGV4dFxuICAgKlxuICAgKiBAbWFya3VwXG4gICAqIDxkaXYgY2xhc3M9XCJ0YWdcIj5UYWc8L2Rpdj5cbiAgICovXG5cbiAgLnRhZyB7XG4gICAgQGluY2x1ZGUgdGFnKCk7XG5cbiAgICAmLFxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC50YWctLW5hdHVyYWwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMTAwJSAtICN7Z2V0KGJvcmRlci13aWR0aCwgJGdlbWluaS10YWdzKSAqIDJ9KTtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuXG4gIC50YWctLXNtYWxsIHtcbiAgICBwYWRkaW5nOiBnZXQocGFkZGluZy1lbmRzLCAkZ2VtaW5pLXRhZ3MpICogMC41IGdldChwYWRkaW5nLXNpZGVzLCAkZ2VtaW5pLXRhZ3MpICogMC41O1xuICB9XG5cbiAgLnRhZy0tbGFyZ2Uge1xuICAgIHBhZGRpbmc6IGdldChwYWRkaW5nLWVuZHMsICRnZW1pbmktdGFncykgKiAxLjUgZ2V0KHBhZGRpbmctc2lkZXMsICRnZW1pbmktdGFncykgKiAxLjU7XG4gIH1cblxuICAudGFnLS1odWdlIHtcbiAgICBwYWRkaW5nOiBnZXQocGFkZGluZy1lbmRzLCAkZ2VtaW5pLXRhZ3MpICogMiBnZXQocGFkZGluZy1zaWRlcywgJGdlbWluaS10YWdzKSAqIDI7XG4gIH1cbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfQUNDRVNTSUJJTElUWS5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgQWNjZXNzaWJpbGl0eSBbLmFjY2Vzc2liaWxpdHksIC5hMTF5XVxuICogQGRlc2NyaXB0aW9uIEhpZGUgY29udGVudCBvZmYtc2NyZWVuIHdpdGhvdXQgcmVzb3J0aW5nIHRvICdkaXNwbGF5Om5vbmU7Jy5cbiAqXG4gKiBAbWFya3VwXG4gICAgPHAgY2xhc3M9XCJhY2Nlc3NpYmlsaXR5XCI+VGhpcyB0ZXh0IGlzIG9ubHkgc2VlbiBieSBzY3JlZW4gcmVhZGVycyE8L3A+XG4gKi9cbi5hMTF5LFxuLmFjY2Vzc2liaWxpdHkge1xuICBAaW5jbHVkZSBhY2Nlc3NpYmlsaXR5KCFpbXBvcnRhbnQpO1xufVxuICBAZWFjaCAkc3RhdGUgaW4gbWVkaXVtLCBsYXJnZSwgeGxhcmdlIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgjeyRzdGF0ZX0pIHtcbiAgICAgIC5hY2Nlc3NpYmlsaXR5LS0jeyRzdGF0ZX0ge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmlsaXR5KCFpbXBvcnRhbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9BQ0NFU1NJQklMSVRZLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1peGluIGFjY2Vzc2liaWxpdHlcbiAqIEBkZXNjcmlwdGlvbiBIaWRlIGNvbnRlbnQgb2ZmLXNjcmVlbiB3aXRob3V0IHJlc29ydGluZyB0byAnZGlzcGxheTpub25lOycuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFskaW1wb3J0YW50PScnXSBPcHRpb24gdG8gYXBwZW5kIHZhbHVlcyB3aXRoICFpbXBvcnRhbnRcbiAqXG4gKiBAZXhhbXBsZVxuICAgIC5mb28ge1xuICAgICAgQGluY2x1ZGUgYWNjZXNzaWJpbGl0eTtcbiAgICB9XG4gKi9cbkBtaXhpbiBhY2Nlc3NpYmlsaXR5KCRpbXBvcnRhbnQ6IFwiXCIpIHtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiAxcHggI3skaW1wb3J0YW50fTtcbiAgbWFyZ2luOiAtMXB4ICN7JGltcG9ydGFudH07XG4gIG92ZXJmbG93OiBoaWRkZW4gI3skaW1wb3J0YW50fTtcbiAgcGFkZGluZzogMCAjeyRpbXBvcnRhbnR9O1xuICBwb3NpdGlvbjogIGFic29sdXRlICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiAxcHggI3skaW1wb3J0YW50fTtcbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfQUxJR04uU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAc2V0dGluZ3MgJGdlbWluaS1hbGlnblxuICogQGRlc2NyaXB0aW9uIFNldHRpbmdzIGZvciB0aGUgYWxpZ24gaGVscGVyXG4gKlxuICogQHByb3Age2Jvb2xlYW59IFtyZXNwb25zaXZlPWZhbHNlXSBXaGV0aGVyIHlvdSB3YW50IHRvIHVzZSByZXNwb25zaXZlIGhlbHBlcnNcbiAqL1xuJGdlbWluaS1hbGlnbjogKCkgIWRlZmF1bHQ7XG5cbiRnZW1pbmktYWxpZ246IGV4dGVuZCgoXG4gIHJlc3BvbnNpdmU6IGZhbHNlLFxuKSwgJGdlbWluaS1hbGlnbik7XG5cbi8qKlxuICogQG1vZHVsZSBUZXh0IEFsaWdubWVudFxuICogQGRlc2NyaXB0aW9uIEVhc2lseSBhbGlnbiB0ZXh0XG4gKlxuICogQG1vZGlmaWVyIFsuYWxpZ24tbGVmdF0gQWxpZ24gbGVmdFxuICogQG1vZGlmaWVyIFsuYWxpZ24tY2VudGVyXSBBbGlnbiBjZW50ZXJcbiAqIEBtb2RpZmllciBbLmFsaWduLXJpZ2h0XSBBbGlnbiByaWdodFxuICogQG1vZGlmaWVyIFsuYWxpZ24tYm90dG9tXSBWZXJ0aWNhbC1hbGlnbiBib3R0b21cbiAqIEBtb2RpZmllciBbLmFsaWduLW1lZGl1bS17ZGlyZWN0aW9ufV0gQXBwbHkgb24gbWVkaXVtIHNjcmVlbnMgKHNldCByZXNwb25zaXZlIHRvIHRydWUpXG4gKiBAbW9kaWZpZXIgWy5hbGlnbi1sYXJnZS17ZGlyZWN0aW9ufV0gQXBwbHkgb24gbGFyZ2Ugc2NyZWVucyAoc2V0IHJlc3BvbnNpdmUgdG8gdHJ1ZSlcbiAqL1xuLmFsaWduLWxlZnQgICAgIHsgdGV4dC1hbGlnbjogbGVmdCAgICAgICAhaW1wb3J0YW50OyB9XG4uYWxpZ24tY2VudGVyICAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgICAgICFpbXBvcnRhbnQ7IH1cbi5hbGlnbi1yaWdodCAgICB7IHRleHQtYWxpZ246IHJpZ2h0ICAgICAgIWltcG9ydGFudDsgfVxuLmFsaWduLWJvdHRvbSAgIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICogUmVzcG9uc2l2ZSBoZWxwZXIgZGVjbGVyYXRpb25zXG4gKi9cbkBpZiAoZ2V0KHJlc3BvbnNpdmUsICRnZW1pbmktYWxpZ24pKSB7XG4gIC8vIE1lZGl1bSBzY3JlZW5zXG4gIEBpbmNsdWRlIG1lZGlhKG1lZGl1bSkge1xuXG4gICAgLmFsaWduLW1lZGl1bS1sZWZ0ICAgICB7IHRleHQtYWxpZ246IGxlZnQgICAgICAgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1tZWRpdW0tY2VudGVyICAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgICAgICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tbWVkaXVtLXJpZ2h0ICAgIHsgdGV4dC1hbGlnbjogcmlnaHQgICAgICAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLW1lZGl1bS1ib3R0b20gICB7IHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDsgfVxuXG4gIH1cblxuICAvLyBMYXJnZSBzY3JlZW5zXG4gIEBpbmNsdWRlIG1lZGlhKGxhcmdlKSB7XG5cbiAgICAuYWxpZ24tbGFyZ2UtbGVmdCAgICAgeyB0ZXh0LWFsaWduOiBsZWZ0ICAgICAgICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tbGFyZ2UtY2VudGVyICAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgICAgICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tbGFyZ2UtcmlnaHQgICAgeyB0ZXh0LWFsaWduOiByaWdodCAgICAgICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tbGFyZ2UtYm90dG9tICAgeyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7IH1cblxuICB9XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX0JSQU5ELlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1vZHVsZSBCcmFuZCBbLmJyYW5kXVxuICogQGRlc2NyaXB0aW9uICcuYnJhbmQnIGlzIGEgcXVpY2sgYW5kIHNpbXBsZSB3YXkgdG8gYXBwbHkgeW91ciBicmFuZCBmYWNlXG4gKiBhbmQvb3IgY29sb3IgdG8gYW55IGVsZW1lbnQgdXNpbmcgYSBoYW5keSBoZWxwZXIgY2xhc3MuXG4gKlxuICogQG1vZGlmaWVyIFsuYnJhbmQtZmFjZV0gSnVzdCBhcHBseSB0aGUgZm9udCBmYWNlXG4gKiBAbW9kaWZpZXIgWy5icmFuZC1jb2xvcl0gSnVzdCBhcHBseSB0aGUgY29sb3JcbiAqXG4gKiBAbWFya3VwXG4gICAgPGgyIGNsYXNzPVwiYnJhbmRcIj5JIGxpa2UgY2hlZXNlPC9oMj5cbiAqL1xuLmJyYW5kIHtcbiAgZm9udC1mYW1pbHk6IGdldChicmFuZC1mb250LWZhbWlseSkgIWltcG9ydGFudDtcbiAgY29sb3I6IGdldChicmFuZC1jb2xvcikgIWltcG9ydGFudDtcbn1cbi5icmFuZC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IGdldChicmFuZC1mb250LWZhbWlseSkgIWltcG9ydGFudDtcbn1cbi5icmFuZC1jb2xvciB7XG4gIGNvbG9yOiBnZXQoYnJhbmQtY29sb3IpICFpbXBvcnRhbnQ7XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX0NBU0lORy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgVXBwZXJjYXNlIFsudXBwZXJjYXNlXVxuICogQGRlc2NyaXB0aW9uIEFwcGx5IGNhcGl0YWwgY2FzZSB0byBhbiBlbGVtZW50ICh1c3VhbGx5IGEgJ3N0cm9uZycpLlxuICovXG4udXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIEBtb2R1bGUgTG93ZXJjYXNlIFsubG93ZXJjYXNlXVxuICogQGRlc2NyaXB0aW9uIEFwcGx5IGxvd2VyY2FzZSB0byBhbGwgdGhlIGxldHRlcnMgLlxuICovXG4ubG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50O1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9DTEVBUkZJWC5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtaXhpbiBjbGVhcmZpeFxuICogQGRlc2NyaXB0aW9uIE1ha2UgYW4gZWxlbWVudCBjbGVhciBmbG9hdGluZyBlbGVtZW50cyBhcyBwZXI6XG4gKiBodHRwOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvY3NzL2NsZWFyLWZpeC9cbiAqXG4gKiBAZXhhbXBsZVxuICAgIC5mb28ge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuICovXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX0NVUlNPUnMuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIEluZm9ybWF0aXZlIFsuaW5mb3JtYXRpdmVdXG4gKiBAZGVzY3JpcHRpb24gQWRkIGEgaGVscCBjdXJzb3IgdG8gYW55IGVsZW1lbnQgdGhhdCBnaXZlcyB0aGUgdXNlciBleHRyYSBpbmZvcm1hdGlvbiBvblxuICogJzpob3ZlcicuXG4gKlxuICogQG1hcmt1cFxuICAgIDxzcGFuIGNsYXNzPVwiaW5mb3JtYXRpdmVcIj5JbmZvcm1hdGlvbiBvbiBob3Zlcjwvc3Bhbj5cbiAqL1xuLmluZm9ybWF0aXZlIHtcbiAgY3Vyc29yOiBoZWxwICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogQG1vZHVsZSBDbGlja2FibGUgWy5jbGlja2FibGVdXG4gKiBAZGVzY3JpcHRpb24gQWRkIGEgcG9pbnRlciBjdXJzb3IgdG8gYW55IGVsZW1lbnQgdG8gc2hvdyB0aGF0IGl0J3MgY2xpY2thYmxlXG4gKlxuICogQG1hcmt1cFxuICAgIDxzcGFuIGNsYXNzPVwiY2xpY2thYmxlXCI+Q2xpY2thYmxlIG9uIGhvdmVyPC9zcGFuPlxuICovXG4uY2xpY2thYmxlIHtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX0RJU1BMQVkuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIERpc3BsYXkgSGVscGVyc1xuICogQGRlc2NyaXB0aW9uIENoYW5nZSB0aGUgZGlzcGxheSBwcm9wZXJ0aWVzIGZvciBhbiBlbGVtZW50XG4gKlxuICogQG1vZGlmaWVyIFsuZGlzcGxheS1pbmxpbmUsIC5pbmxpbmVdIGRpc3BsYXk6IGlubGluZVxuICogQG1vZGlmaWVyIFsuZGlzcGxheS1ibG9jaywgLmJsb2NrXSBkaXNwbGF5OiBibG9ja1xuICogQG1vZGlmaWVyIFsuZGlzcGxheS1pbmxpbmUtYmxvY2ssIC5pbmxpbmUtYmxvY2tdIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICovXG4uZGlzcGxheS1pbmxpbmUsXG4uaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG5cbi5kaXNwbGF5LWJsb2NrLFxuLmJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmRpc3BsYXktaW5saW5lLWJsb2NrLFxuLmlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9GTE9BVFMuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIEZsb2F0XG4gKiBAZGVzY3JpcHRpb24gQWRkL3JlbW92ZSBmbG9hdHNcbiAqXG4gKiBAbW9kaWZpZXIgWy5mbG9hdC1yaWdodF0gRmxvYXQgcmlnaHRcbiAqIEBtb2RpZmllciBbLmZsb2F0LWxlZnRdIEZsb2F0IGxlZnRcbiAqIEBtb2RpZmllciBbLmZsb2F0LW5vbmVdIENsZWFyIGZsb2F0c1xuICovXG4uZmxvYXQtcmlnaHQgICB7IGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG4uZmxvYXQtbGVmdCAgICB7IGZsb2F0OiBsZWZ0ICAhaW1wb3J0YW50OyB9XG4uZmxvYXQtbm9uZSAgICB7IGZsb2F0OiBub25lICAhaW1wb3J0YW50OyB9XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX0ZVTEwuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIEZ1bGwgV2lkdGggWy5mdWxsXVxuICogQGRlc2NyaXB0aW9uIE1ha2Ugc29tZXRoaW5nIGZ1bGwgd2lkdGggKDEwMCUpXG4gKlxuICogQG1hcmt1cFxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHZhbHVlPVwiUm91bmRlZFwiIGNsYXNzPVwiZnVsbFwiIC8+XG4gKi9cbi5mdWxsIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAvLyBNaW4td2lkdGggaXNuJ3Qgc3VwcG9ydGVkIHdlbGwgaW4gSUU4XG4gIC8vIFVzZSBkZWZhdWx0cyBhcyBhcHBvc2UgdG8gMTAwJVxuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAwICAgICFpbXBvcnRhbnQ7XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX0dQVS5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtaXhpbiBncHVcbiAqIEBkZXNjcmlwdGlvbiBGb3JjZSBhbiBlbGVtZW50IHRvIHVzZSB0aGUgZ3B1IHRvIHJlbmRlci4gQ2F1c2VzIGZvciBzbW9vdGhlclxuICogcGVyZm9ybWFuY2VcbiAqXG4gKiBAZXhhbXBsZVxuICAgIC5mb28ge1xuICAgICAgQGluY2x1ZGUgZ3B1O1xuICAgIH1cbiAqL1xuQG1peGluIGdwdSB7XG4gIEBpbmNsdWRlIHZlbmRvcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9ISURERU4uU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIFZpc2liaWxpdHkgVXRpbGl0aWVzXG4gKiBAZGVzY3JpcHRpb24gSGVscGVyIGNsYXNzZXMgdG8gcXVpY2tseSBzaG93IGFuZCBoaWRlIGVsZW1lbnRzIGJhc2VkIG9uIHNjcmVlbiBzaXplXG4gKlxuICogQG1vZGlmaWVyIFsudmlzaWJsZS1qc10gT25seSBzaG93IGlmIGphdmFzY3JpcHQgaXMgZW5hYmxlZFxuICogQG1vZGlmaWVyIFsuaGlkZGVuLWpzXSBIaWRlIGlmIGphdmFzY3JpcHQgaXMgZW5hYWJsZWRcbiAqIEBtb2RpZmllciBbLnZpc2libGUtbWVkaXVtXSBTaG93IG9uIG1lZGl1bSwgaGlkZSBvbiBzbWFsbCBhbmQgbGFyZ2VcbiAqIEBtb2RpZmllciBbLnZpc2libGUtbGFyZ2VdIFNob3cgb24gbGFyZ2UsIGhpZGUgb24gc21hbGwgYW5kIG1lZGl1bVxuICogQG1vZGlmaWVyIFsuaGlkZGVuLXNtYWxsXSBIaWRlIG9uIHNtYWxsLCBzaG93IG9uIG1lZGl1bSBhbmQgbGFyZ2VcbiAqIEBtb2RpZmllciBbLmhpZGRlbi1tZWRpdW1dIEhpZGUgb24gbWVkaXVtLCBzaG93IG9uIHNtYWxsIGFuZCBsYXJnZVxuICogQG1vZGlmaWVyIFsuaGlkZGVuLWxhcmdlXSBIaWRlIG9uIGxhcmdlLCBzaG93IG9uIHNtYWxsIGFuZCBtZWRpdW1cbiAqIEBtb2RpZmllciBbLnZpc2libGUtcHJpbnRdIFNob3cgb24gcHJpbnQsIGhpZGUgb24gcmVzdFxuICogQG1vZGlmaWVyIFsuaGlkZGVuLWxhcmdlXSBIaWRlIG9uIHByaW50LCBzaG93IG9uIHJlc3RcbiAqXG4gKiBAbWFya3VwXG4gICAgPHVsIGNsYXNzPVwiYmxvY2stbGlzdFwiPlxuICAgICAgPGxpIGNsYXNzPVwidmlzaWJsZS1zbWFsbFwiPi52aXNpYmxlLXNtYWxsPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImhpZGRlbi1zbWFsbFwiPi5oaWRkZW4tc21hbGw8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwidmlzaWJsZS1tZWRpdW1cIj4udmlzaWJsZS1tZWRpdW08L2xpPlxuICAgICAgPGxpIGNsYXNzPVwiaGlkZGVuLW1lZGl1bVwiPi5oaWRkZW4tbWVkaXVtPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cInZpc2libGUtbGFyZ2VcIj4udmlzaWJsZS1sYXJnZTwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJoaWRkZW4tbGFyZ2VcIj4uaGlkZGVuLWxhcmdlPC9saT5cbiAgICA8L3VsPlxuICovXG5cbiVoaWRlLXNtYWxsLFxuLmhpZGRlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAtOTk5JSAhaW1wb3J0YW50O1xuICB0b3A6IC05OTklICFpbXBvcnRhbnQ7XG59XG5cbi8vRm9yIEphdmFzY3JpcHRcbi5uby1qcyAudmlzaWJsZS0tanMge1xuICBAZXh0ZW5kICVoaWRlLXNtYWxsO1xufVxuLnllcy1qcyAuaGlkZGVuLS1qcyB7XG4gIEBleHRlbmQgJWhpZGUtc21hbGw7XG59XG5cbi8vIEZvciBzbWFsbCBzY3JlZW5zXG4udmlzaWJsZS1zbWFsbCAgICAgeyB9XG4uaGlkZGVuLXNtYWxsICAgICAgeyBAZXh0ZW5kICVoaWRlLXNtYWxsOyB9XG4udmlzaWJsZS1tZWRpdW0gICAgeyBAZXh0ZW5kICVoaWRlLXNtYWxsOyB9XG4uaGlkZGVuLW1lZGl1bSAgICAgeyB9XG4udmlzaWJsZS1sYXJnZSAgICAgeyBAZXh0ZW5kICVoaWRlLXNtYWxsOyB9XG4uaGlkZGVuLWxhcmdlICAgICAgeyB9XG5cbi8vIEZvciBtZWRpdW0gc2NyZWVuc1xuQGluY2x1ZGUgbWVkaWEobWVkaXVtLCB0cnVlKSB7XG4gICVoaWRlLW1lZGl1bSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogLTk5OSUgIWltcG9ydGFudDtcbiAgICB0b3A6IC05OTklICFpbXBvcnRhbnQ7XG4gIH1cbiAgJXZpc2libGUtbWVkaXVtIHtcbiAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnZpc2libGUtc21hbGwgIHsgQGV4dGVuZCAlaGlkZS1tZWRpdW07IH1cbiAgLmhpZGRlbi1zbWFsbCAgIHsgQGV4dGVuZCAldmlzaWJsZS1tZWRpdW0gfVxuICAudmlzaWJsZS1tZWRpdW0geyBAZXh0ZW5kICV2aXNpYmxlLW1lZGl1bSB9XG4gIC5oaWRkZW4tbWVkaXVtICB7IEBleHRlbmQgJWhpZGUtbWVkaXVtOyB9XG59XG5cbi8vIEZvciBsYXJnZSBzY3JlZW5zXG5AaW5jbHVkZSBtZWRpYShsYXJnZSwgdHJ1ZSkge1xuICAlaGlkZS1sYXJnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogLTk5OSUgIWltcG9ydGFudDtcbiAgICB0b3A6IC05OTklICFpbXBvcnRhbnQ7XG4gIH1cbiAgJXZpc2libGUtbGFyZ2Uge1xuICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudmlzaWJsZS1tZWRpdW0geyBAZXh0ZW5kICVoaWRlLWxhcmdlOyB9XG4gIC5oaWRkZW4tbWVkaXVtICB7IEBleHRlbmQgJXZpc2libGUtbGFyZ2U7IH1cbiAgLnZpc2libGUtbGFyZ2UgIHsgQGV4dGVuZCAldmlzaWJsZS1sYXJnZTsgfVxuICAuaGlkZGVuLWxhcmdlICAgeyBAZXh0ZW5kICVoaWRlLWxhcmdlOyB9XG59XG5cbi8vIFByaW50IHV0aWxpdGllc1xuLnZpc2libGUtcHJpbnQgICAgeyBAZXh0ZW5kICVoaWRlLXNtYWxsOyB9XG4uaGlkZGVuLXByaW50ICAgICB7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgJWhpZGUtcHJpbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IC05OTklICFpbXBvcnRhbnQ7XG4gICAgdG9wOiAtOTk5JSAhaW1wb3J0YW50O1xuICB9XG4gICV2aXNpYmxlLXByaW50IHtcbiAgICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnZpc2libGUtcHJpbnQgIHsgQGV4dGVuZCAldmlzaWJsZS1wcmludDsgfVxuICAuaGlkZGVuLXByaW50ICAgeyBAZXh0ZW5kICVoaWRlLXByaW50OyB9XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX0xJTkUtSEVJR0hULlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1vZHVsZSBMaW5lIGhlaWdodFxuICogQGRlc2NyaXB0aW9uIEhlbHBlcnMgdG8gcXVpY2tseSBhZGp1c3QgbGluZS1oZWlnaHRcbiAqXG4gKiBAbW9kaWZpZXIgWy5saW5lLWhlaWdodC1oYWxmLCAubGgtaGFsZl0gbGluZS1oZWlnaHQ6IDAuNVxuICogQG1vZGlmaWVyIFsubGluZS1oZWlnaHQtZG91YmxlLCAubGgtZG91YmxlXSBsaW5lLWhlaWdodDogMlxuICogQG1vZGlmaWVyIFsubGluZS1oZWlnaHQtdHJpcGxlLCAubGgtdHJpcGxlXSBsaW5lLWhlaWdodDogM1xuICovXG4ubGluZS1oZWlnaHQtaGFsZixcbi5saC1oYWxmIHtcbiAgbGluZS1oZWlnaHQ6IDAuNSAhaW1wb3J0YW50O1xufVxuXG4ubGluZS1oZWlnaHQtZG91YmxlLFxuLmxoLWRvdWJsZSB7XG4gIGxpbmUtaGVpZ2h0OiAyICFpbXBvcnRhbnQ7XG59XG5cbi5saW5lLWhlaWdodC10cmlwbGUsXG4ubGgtdHJpcGxlIHtcbiAgbGluZS1oZWlnaHQ6IDMgIWltcG9ydGFudDtcbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfTVVURS5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgTXV0ZWQgWy5tdXRlZF1cbiAqIEBkZXNjcmlwdGlvbiBNdXRlIGFuIG9iamVjdCBieSByZWR1Y2luZyBpdHMgb3BhY2l0eS5cbiAqXG4gKiBAbW9kaWZpZXIgWy5tdXRlZC0yNV0gT3BhY2l0eSBvZiAyNSVcbiAqIEBtb2RpZmllciBbLm11dGVkLTUwXSBPcGFjaXR5IG9mIDUwJVxuICogQG1vZGlmaWVyIFsubXV0ZWQtNzVdIE9wYWNpdHkgb2YgNzUlXG4gKlxuICogQG1hcmt1cFxuICAgIDxpbWcgY2xhc3M9XCJtdXRlZFwiIHNyYz1cImh0dHA6Ly93d3cucGxhY2V0aW0uY29tLzIwMC8yMDBcIj5cbiAgICA8aW1nIGNsYXNzPVwibXV0ZWQtMjVcIiBzcmM9XCJodHRwOi8vd3d3LnBsYWNldGltLmNvbS8yMDAvMjAwXCI+XG4gICAgPGltZyBjbGFzcz1cIm11dGVkLTUwXCIgc3JjPVwiaHR0cDovL3d3dy5wbGFjZXRpbS5jb20vMjAwLzIwMFwiPlxuICAgIDxpbWcgY2xhc3M9XCJtdXRlZC03NVwiIHNyYz1cImh0dHA6Ly93d3cucGxhY2V0aW0uY29tLzIwMC8yMDBcIj5cbiAqL1xuLm11dGVkIHtcbiAgb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eSA9IDUwKSAhaW1wb3J0YW50O1xufVxuXG5AZWFjaCAkcGVyY2VudCBpbiAyNSwgNTAsIDc1IHtcbiAgLm11dGVkLSN7JHBlcmNlbnR9IHtcbiAgICBvcGFjaXR5OiAkcGVyY2VudCAqIDAuMDEgIWltcG9ydGFudDtcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHkgPSAjeyRwZXJjZW50fSkgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9SQURJVVMuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIFJvdW5kZWQgQ29ybmVycyBbLnJvdW5kXVxuICogQGRlc2NyaXB0aW9uIFJvdW5kIHRoZSBjb3JuZXJzIGFjY29yZGluZyB0byBkZWZhdWx0IGJvcmRlci1yYWRpdXNcbiAqXG4gKiBAbWFya3VwXG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdmFsdWU9XCJSb3VuZGVkXCIgY2xhc3M9XCJyb3VuZFwiIC8+XG4gKi9cbi5yb3VuZCB7XG4gIGJvcmRlci1yYWRpdXM6IGdldChib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIEBtb2R1bGUgRnVsbHkgUm91bmRlZCBDb3JuZXJzIFsucm91bmQtZnVsbF1cbiAqIEBkZXNjcmlwdGlvbiBSb3VuZCB0aGUgY29ybmVycyBhcyBtdWNoIGFzIHBvc3NpYmxlXG4gKlxuICogQG1hcmt1cFxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHZhbHVlPVwiUm91bmRlZCBGdWxsXCIgY2xhc3M9XCJyb3VuZC1mdWxsXCIgLz5cbiAqL1xuLnJvdW5kLWZ1bGwge1xuICBib3JkZXItcmFkaXVzOiA5OTk5cHggIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBAbW9kdWxlIEVsbGlwc2UgWy5lbGxpcHNlXVxuICogQGRlc2NyaXB0aW9uIFJvdW5kIHRoZSBjb3JuZXJzIHRvIHNoYXBlIGFuIG92YWwgb3IgY2lyY2xlXG4gKlxuICogQG1hcmt1cFxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHZhbHVlPVwiRWxsaXBzZVwiIGNsYXNzPVwiZWxsaXBzZVwiIC8+XG4gKi9cbi5lbGxpcHNlIHtcbiAgYm9yZGVyLXJhZGl1czogMTAwJSAhaW1wb3J0YW50O1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9TQ1JPTEwuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIFNjcm9sbCBDb250ZW50IFsuc2Nyb2xsXVxuICogQGRlc2NyaXB0aW9uIE1ha2UgZWxlbWVudCBzY3JvbGxhYmxlIG9uIGFsbCBkZXZpY2VzXG4gKi9cbi5zY3JvbGwge1xuICBvdmVyZmxvdzogc2Nyb2xsICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCAhaW1wb3J0YW50O1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9TUEFDSU5HLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQHNldHRpbmdzICRnZW1pbmktc3BhY2luZ1xuICogQGRlc2NyaXB0aW9uIFNldHRpbmdzIGZvciB0aGUgc3BhY2luZyBoZWxwZXJcbiAqXG4gKiBAcHJvcCB7bWFwfSBbbmFtaW5nXSBZb3UgY2FuIGFkZCBjdXN0b20gbmFtaW5nIGZvciB0aGUgaGVscGVyLiBUaGlzIGlzIGNvbXBsaWNhdGVkOiBMb29rIGF0IHNvdXJjZSBjb2RlXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW21lZGl1bT1mYWxzZV0gV2hldGhlciB0byBpbmNsdWRlIG1lZGl1bSByZXNwb25zaXZlIGhlbHBlcnMuIE5PVEU6IFRoaXMgYWRkcyA0a2IgdG8gb3V0cHV0IENTU1xuICogQHByb3Age2Jvb2xlYW59IFtsYXJnZT1mYWxzZV0gV2hldGhlciB0byBpbmNsdWRlIGxhcmdlIHJlc3BvbnNpdmUgaGVscGVycy4gTk9URTogVGhpcyBhZGRzIDRrYiB0byBvdXRwdXQgQ1NTXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW3hsYXJnZT1mYWxzZV0gV2hldGhlciB0byBpbmNsdWRlIHhsYXJnZSByZXNwb25zaXZlIGhlbHBlcnMuIE5PVEU6IFRoaXMgYWRkcyA0a2IgdG8gb3V0cHV0IENTU1xuICovXG4kZ2VtaW5pLXNwYWNpbmc6ICgpICFkZWZhdWx0O1xuXG4kZ2VtaW5pLXNwYWNpbmc6IGV4dGVuZCgoXG4gIG5hbWluZzogKFxuICAgIHR5cGU6IChcbiAgICAgIFwicHVzaFwiOiAgICBcIm1hcmdpblwiLFxuICAgICAgXCJwYWRcIjogICAgIFwicGFkZGluZ1wiLFxuICAgICksXG4gICAgcmV2ZXJzZTogKFxuICAgICAgXCJcIjogICAgICAgICAxLFxuICAgICAgXCJyZXZcIjogICAgIC0xLFxuICAgICksXG4gICAgc2l6ZTogKFxuICAgICAgXCJub25lXCI6ICAgIDAsXG4gICAgICBcImhhbGZcIjogICAgMC41LFxuICAgICAgXCJcIjogICAgICAgIDEsXG4gICAgICBcImRvdWJsZVwiOiAgMixcbiAgICApLFxuICAgIGRpcmVjdGlvbjogKFxuICAgICAgXCJcIjogICAgICAgIChcIlwiKSxcbiAgICAgIFwidG9wXCI6ICAgICAodG9wKSxcbiAgICAgIFwicmlnaHRcIjogICAocmlnaHQpLFxuICAgICAgXCJib3R0b21cIjogIChib3R0b20pLFxuICAgICAgXCJsZWZ0XCI6ICAgIChsZWZ0KSxcbiAgICAgIFwic2lkZXNcIjogICAobGVmdCByaWdodCksXG4gICAgICBcImVuZHNcIjogICAgKHRvcCBib3R0b20pLFxuICAgICksXG4gICksXG4gIG1lZGl1bTogZmFsc2UsXG4gIGxhcmdlOiBmYWxzZSxcbiAgeGxhcmdlOiBmYWxzZSxcbiksICRnZW1pbmktc3BhY2luZyk7XG5cbi8qKlxuICogTm90IGRvY3VtZW50ZWQgc2luY2UgdGhpcyBzaG91bGRuJ3QgYmUgdXNlZCBvdXRzaWRlIG9mIHRoaXMgY29uZXh0XG4gKi9cbkBtaXhpbiBzcGFjaW5nLWhlbHBlcnMoJHNjcmVlbi10aXRsZTogXCJcIikge1xuXG4gIEBlYWNoICR0eXBlLXRpdGxlLCAkdHlwZSBpbiBnZXQoXCJuYW1pbmcudHlwZVwiLCAkZ2VtaW5pLXNwYWNpbmcpIHtcbiAgICBAZWFjaCAkcmV2ZXJzZS10aXRsZSwgJHJldmVyc2UgaW4gZ2V0KFwibmFtaW5nLnJldmVyc2VcIiwgJGdlbWluaS1zcGFjaW5nKSB7XG4gICAgICBAZWFjaCAkc2l6ZS10aXRsZSwgJHNpemUgaW4gZ2V0KFwibmFtaW5nLnNpemVcIiwgJGdlbWluaS1zcGFjaW5nKSB7XG4gICAgICAgIEBlYWNoICRkaXJlY3Rpb24tdGl0bGUsICRkaXJlY3Rpb24tbGlzdCBpbiBnZXQoXCJuYW1pbmcuZGlyZWN0aW9uXCIsICRnZW1pbmktc3BhY2luZykge1xuICAgICAgICAgIEBpZiAoJHR5cGUgIT0gXCJwYWRkaW5nXCIgb3IgJHJldmVyc2UgIT0gLTEpIGFuZCAoJHNpemUgIT0gMCBvciAkcmV2ZXJzZSAhPSAtMSkge1xuICAgICAgICAgICAgLiN7aW1wbG9kZSgkdHlwZS10aXRsZSAkcmV2ZXJzZS10aXRsZSAkc2l6ZS10aXRsZSAkc2NyZWVuLXRpdGxlICRkaXJlY3Rpb24tdGl0bGUsIFwiLVwiKX0ge1xuICAgICAgICAgICAgICBAZWFjaCAkZGlyZWN0aW9uIGluICRkaXJlY3Rpb24tbGlzdCB7XG4gICAgICAgICAgICAgICAgI3tpbXBsb2RlKCR0eXBlICRkaXJlY3Rpb24sIFwiLVwiKX06IGdldChzcGFjaW5nKSAqICRzaXplICogJHJldmVyc2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBtb2R1bGUgU3BhY2luZ1xuICogQGRlc2NyaXB0aW9uIEhlbHBlcnMgdG8gcXVpY2tseSBhZGQgbWFyZ2luIGFuZCBzcGFjaW5nIHRvIGFuIGVsZW1lbnQuXG4gKiAocHVzaHxwYWQpLShyZXYpLShub25lfGhhbGZ8ZG91YmxlKS0obWVkaXVtfGxhcmdlfHhsYXJnZSktKHRvcHxyaWdodHxib3R0b218bGVmdClcbiAqXG4gKiBAbW9kaWZpZXIgWy5wdXNoXSBBZGQgbWFyZ2luXG4gKiBAbW9kaWZpZXIgWy5wYWRdIEFkZCBwYWRkaW5nXG4gKiBAbW9kaWZpZXIgWyhwdXNofHBhZCktcmV2XSBHaXZlIGl0IGEgbmVnYXRpdmUgdmFsdWVcbiAqIEBtb2RpZmllciBbKHB1c2h8cGFkKS0ocmV2KS1ub25lXSBTZXQgaXQgdG8gemVyb1xuICogQG1vZGlmaWVyIFsocHVzaHxwYWQpLShyZXYpLWhhbGZdIFNldCBpdCB0byBoYWxmIHRoZSBiYXNlIHNwYWNpbmcgdmFsdWVcbiAqIEBtb2RpZmllciBbKHB1c2h8cGFkKS0ocmV2KS1kb3VibGVdIFNldCBpdCB0byBkb3VibGUgdGhlIGJhc2Ugc3BhY2luZyB2YWx1ZVxuICogQG1vZGlmaWVyIFsocHVzaHxwYWQpLShyZXYpLShub25lfGhhbGZ8ZG91YmxlKS1tZWRpdW1dIE9ubHkgb24gbWVkaXVtIHNjcmVlbnMgKHNldCByZXNwb25zaXZlIHRvIHRydWUpXG4gKiBAbW9kaWZpZXIgWyhwdXNofHBhZCktKHJldiktKG5vbmV8aGFsZnxkb3VibGUpLWxhcmdlXSBPbmx5IG9uIGxhcmdlIHNjcmVlbnMgKHNldCByZXNwb25zaXZlIHRvIHRydWUpXG4gKiBAbW9kaWZpZXIgWyhwdXNofHBhZCktKHJldiktKG5vbmV8aGFsZnxkb3VibGUpLXhsYXJnZV0gT25seSBvbiB4bGFyZ2Ugc2NyZWVucyAoc2V0IHJlc3BvbnNpdmUgdG8gdHJ1ZSlcbiAqIEBtb2RpZmllciBbKHB1c2h8cGFkKS0ocmV2KS0obm9uZXxoYWxmfGRvdWJsZSktKG1lZGl1bXxsYXJnZXx4bGFyZ2UpLXRvcF0gQXBwbHkgdG8gdG9wXG4gKiBAbW9kaWZpZXIgWyhwdXNofHBhZCktKHJldiktKG5vbmV8aGFsZnxkb3VibGUpLShtZWRpdW18bGFyZ2V8eGxhcmdlKS1yaWdodF0gQXBwbHkgdG8gcmlnaHRcbiAqIEBtb2RpZmllciBbKHB1c2h8cGFkKS0ocmV2KS0obm9uZXxoYWxmfGRvdWJsZSktKG1lZGl1bXxsYXJnZXx4bGFyZ2UpLWJvdHRvbV0gQXBwbHkgdG8gYm90dG9tXG4gKiBAbW9kaWZpZXIgWyhwdXNofHBhZCktKHJldiktKG5vbmV8aGFsZnxkb3VibGUpLShtZWRpdW18bGFyZ2V8eGxhcmdlKS1sZWZ0XSBBcHBseSB0byBsZWZ0XG4gKlxuICogQG1hcmt1cFxuICAgIDxkaXYgY2xhc3M9XCJwdXNoLWJvdHRvbVwiPlRlc3QhPC9kaXY+IC8vIEJhc2UgbWFyZ2luIHRvIGJvdHRvbVxuICAgIDxkaXYgY2xhc3M9XCJwYWQtbWVkaXVtLXRvcFwiPlRlc3QhPC9kaXY+IC8vIEFkZHMgdG8gdG9wIG9uIG1lZGl1bSBzY3JlZW5zXG4gICAgPGRpdiBjbGFzcz1cInB1c2gtcmV2LWhhbGYtbGVmdFwiPlRlc3QhPC9kaXY+IC8vIEJsZWVkcyBoYWxmIHNwYWNpbmcgdG8gdGhlIGxlZnRcbiAgICA8ZGl2IGNsYXNzPVwicHVzaC1kb3VibGUteGxhcmdlLXJpZ2h0XCI+VGVzdCE8L2Rpdj4gLy8gQWRkcyBkb3VibGUgbWFyZ2luIHRvIHJpZ2h0IG9uIHhsYXJnZSBzY3JlZW5zXG4gKi9cbkBpbmNsdWRlIHNwYWNpbmctaGVscGVycygpO1xuXG5AaWYgZ2V0KG1lZGl1bSwgJGdlbWluaS1zcGFjaW5nKSB7XG5cbiAgQGluY2x1ZGUgbWVkaWEobWVkaXVtKXtcbiAgICBAaW5jbHVkZSBzcGFjaW5nLWhlbHBlcnMobWVkaXVtKTtcbiAgfVxuXG59XG5cbkBpZiBnZXQobGFyZ2UsICRnZW1pbmktc3BhY2luZykge1xuXG4gIEBpbmNsdWRlIG1lZGlhKGxhcmdlKXtcbiAgICBAaW5jbHVkZSBzcGFjaW5nLWhlbHBlcnMobGFyZ2UpO1xuICB9XG5cbn1cblxuQGlmIGdldCh4bGFyZ2UsICRnZW1pbmktc3BhY2luZykge1xuXG4gIEBpbmNsdWRlIG1lZGlhKHhsYXJnZSl7XG4gICAgQGluY2x1ZGUgc3BhY2luZy1oZWxwZXJzKHhsYXJnZSk7XG4gIH1cblxufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9URVhULVJFTkRFUklORy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgVGV4dCBSZW5kZXJpbmdcbiAqIEBkZXNjcmlwdGlvbiBSZW5kZXIgdGV4dCBpbiBkaWZmZXJlbnQgd2F5c1xuICpcbiAqIEBtb2RpZmllciBbLnRleHQtbGVnaWJpbGl0eV0gUmVuZGVycyB0aGUgdGV4dCB0byBiZSBsZWdpYmxlLiBUaGlzIHVzZXMgdGhlIEdQVS5cbiAqIEBtb2RpZmllciBbLnRleHQtc3BlZWRdIE9wdGltaXplZCByZW5kZXJpbmcgZm9yIHNwZWVkXG4gKiBAbW9kaWZpZXIgWy50ZXh0LXNtb290aF0gTWFrZXMgZm9udCBsb29rIHNtb290aCBvbiB3ZWJraXQgYW5kIG1vemlsbGEgT1NYXG4gKlxuICogQG1hcmt1cFxuICAgIDxkaXYgY2xhc3M9XCJoZ3JvdXBcIj5cbiAgICAgIDxoMiBjbGFzcz1cImhOICB0ZXh0LWxlZ2liaWxpdHlcIj5MZWdpYmlsaXR5PC9oMj5cbiAgICAgIDxoMiBjbGFzcz1cImhOICB0ZXh0LXNwZWVkXCI+U3BlZWQ8L2gyPlxuICAgICAgPGgyIGNsYXNzPVwiaE4gIHRleHQtc21vb3RoXCI+U21vb3RoPC9oMj5cbiAgICA8L2Rpdj5cbiAqL1xuLnRleHQtbGVnaWJpbGl0eSB7XG4gIEBpbmNsdWRlIHRleHQtbGVnaWJpbGl0eTtcbn1cbi50ZXh0LXNwZWVkIHtcbiAgQGluY2x1ZGUgdGV4dC1zcGVlZDtcbn1cbi50ZXh0LXNtb290aCB7XG4gIEBpbmNsdWRlIHRleHQtc21vb3RoO1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9URVhULVJFTkRFUklORy5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtaXhpbiB0ZXh0LWxlZ2liaWxpdHlcbiAqIEBkZXNjcmlwdGlvbiBPcHRpbWl6ZXMgdGV4dCBmb3IgbGVnaWJpbGl0eVxuICpcbiAqIEBleGFtcGxlXG4gICAgLmZvbyB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LWxlZ2liaWxpdHk7XG4gICAgfVxuICovXG5AbWl4aW4gdGV4dC1sZWdpYmlsaXR5IHtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cblxuLyoqXG4gKiBAbWl4aW4gdGV4dC1zcGVlZFxuICogQGRlc2NyaXB0aW9uIE9wdGltaXplcyB0ZXh0IGZvciBzcGVlZFxuICpcbiAqIEBleGFtcGxlXG4gICAgLmZvbyB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LXNwZWVkO1xuICAgIH1cbiAqL1xuQG1peGluIHRleHQtc3BlZWQge1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVTcGVlZDtcbn1cblxuLyoqXG4gKiBAbWl4aW4gdGV4dC1zbW9vdGhcbiAqIEBkZXNjcmlwdGlvbiBPcHRpbWl6ZXMgdGV4dCB0byBiZSBzbW9vdGggb24gd2Via2l0IGFuZCBtb3ppbGxhIE9TWFxuICpcbiAqIEBleGFtcGxlXG4gICAgLmZvbyB7XG4gICAgICBAaW5jbHVkZSB0ZXh0LXNtb290aDtcbiAgICB9XG4gKi9cbkBtaXhpbiB0ZXh0LXNtb290aCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9UUlVOQ0FURS5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgVHJ1bmNhdGUgRWxsaXBzaXMgWy50cnVuY2F0ZV1cbiAqIEBkZXNjcmlwdGlvbiBUcnVuY2F0ZSBhIGZpeGVkIHdpZHRoIHN0cmluZyB3aXRoIGFuIGVsbGlwc2lzXG4gKlxuICogQG1hcmt1cFxuICAgIDxwIHN0eWxlPVwid2lkdGg6MjUwcHg7XCIgY2xhc3M9XCJ0cnVuY2F0ZVwiPlRoaXMgaXMgYSB0ZXN0IGZvciB0cnVuY2F0aW5nLjwvcD5cbiAqL1xuLnRydW5jYXRlIHtcbiAgQGluY2x1ZGUgdHJ1bmNhdGUoIWltcG9ydGFudCk7XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX1RSVU5DQVRFLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1peGluIHRydW5jYXRlXG4gKiBAZGVzY3JpcHRpb24gQWRkIGEgLi4uIHRvIHRoZSBlbmQgb2YgYW4gZWxlbWVudCdzIHRleHRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRpbXBvcnRhbnQ9JyddIE9wdGlvbiB0byBhcHBlbmQgdmFsdWVzIHdpdGggIWltcG9ydGFudFxuICpcbiAqIEBleGFtcGxlXG4gICAgLmZvbyB7XG4gICAgICBAaW5jbHVkZSB0cnVuY2F0ZSghaW1wb3J0YW50KTtcbiAgICB9XG4gKi9cbkBtaXhpbiB0cnVuY2F0ZSgkaW1wb3J0YW50OiBcIlwiKSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAjeyRpbXBvcnRhbnR9O1xufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9VU0VSLVNFTEVDVC5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgVW5zZWxlY3RhYmxlIFsudW5zZWxlY3RhYmxlXVxuICogQGRlc2NyaXB0aW9uIE1ha2UgaXQgc28gdGhhdCB5b3UgY2FuJ3QgaGlnaGxpZ2h0IHRoZSB0ZXh0XG4gKlxuICogQG1hcmt1cFxuICAgIDxzcGFuIGNsYXNzPVwidW5zZWxlY3RhYmxlXCI+Q2FuJ3Qgc2VsZWN0IG1lID46KTwvc3Bhbj5cbiAqL1xuLnVuc2VsZWN0YWJsZSB7XG4gIEBpbmNsdWRlIHZlbmRvcih1c2VyLXNlbGVjdCwgbm9uZSk7XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX1dFSUdIVC5TQ1NTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG4vKipcbiAqIEBtb2R1bGUgRm9udCBXZWlnaHRzXG4gKiBAZGVzY3JpcHRpb24gRWFzaWx5IGFkZCBmb250IHdlaWdodHNcbiAqXG4gKiBAbW9kaWZpZXIgWy53ZWlnaHQtbGlnaHRdIExpZ2h0XG4gKiBAbW9kaWZpZXIgWy53ZWlnaHQtbm9ybWFsXSBOb3JtYWxcbiAqIEBtb2RpZmllciBbLndlaWdodC1zZW1pYm9sZF0gU2VtaWJvbGRcbiAqIEBtb2RpZmllciBbLndlaWdodC1ib2xkXSBCb2xkXG4gKiBAbW9kaWZpZXIgWy53ZWlnaHQtYm9sZGVyXSBCb2xkZXJcbiAqL1xuLndlaWdodC1saWdodCAgICAgIHsgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50OyB9XG4ud2VpZ2h0LW5vcm1hbCAgICAgeyBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7IH1cbi53ZWlnaHQtc2VtaWJvbGQgICB7IGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDsgfVxuLndlaWdodC1ib2xkICAgICAgIHsgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50OyB9XG4ud2VpZ2h0LWJvbGRlciAgICAgeyBmb250LXdlaWdodDogOTAwICFpbXBvcnRhbnQ7IH1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfQ0FST1VTRUwuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIENhcm91c2VscyBbLmNhcm91c2VsXVxuICogQGRlc2NyaXB0aW9uIFJlc3BvbnNpdmUgY2Fyb3VzZWxzIGZvciB1c2Ugd2l0aCB0aGUgamF2YXNjcmlwdCBwbHVnaW5cbiAqXG4gKiBAbW9kaWZpZXIgWy5jYXJvdXNlbC0tMl0gTWFrZSB0aGUgY2Fyb3VzZWwgdHdvIHdpZGVcbiAqIEBtb2RpZmllciBbLmNhcm91c2VsLS0zXSBNYWtlIHRoZSBjYXJvdXNlbCB0aHJlZSB3aWRlXG4gKiBAbW9kaWZpZXIgWy5jYXJvdXNlbC0tNF0gTWFrZSB0aGUgY2Fyb3VzZWwgZm91ciB3aWRlXG4gKiBAbW9kaWZpZXIgWy5jYXJvdXNlbC0tNV0gTWFrZSB0aGUgY2Fyb3VzZWwgZml2ZSB3aWRlXG4gKlxuICogQG1hcmt1cCBDYXJvdXNlbFxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbFwiPlxuICAgICAgPHVsIGNsYXNzPVwiY2Fyb3VzZWxfX2xpc3RcIj5cbiAgICAgICAgPGxpPlxuICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cDovL3BsYWNldGltLmNvbS8yMDAvMTAwL1wiIC8+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8aW1nIHNyYz1cImh0dHA6Ly9wbGFjZXRpbS5jb20vMjAwLzEwMC9cIiAvPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAqL1xuQHVzZSAnc2FzczptYXRoJztcblxuW2NsYXNzKj0nY2Fyb3VzZWwnXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKipcbiAgKiBAc3VibW9kdWxlIENhcm91c2VsIExpc3QgWy5jYXJvdXNlbF9fbGlzdF1cbiAgKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2YgY29udGVudCBmb3IgdGhlIGNhcm91c2VsLiBZb3UgY2FuIGFkZCBhcyBtYW55XG4gICogaXRlbXMgdG8gdGhlIGxpc3QsIGFuZCB0aGUgY2Fyb3VzZWwgd2lsbCBhdXRvbWF0aWNhbGx5IHJlc3BvbmQgYW5kXG4gICogYWRqdXN0LlxuICAqL1xuJG1hcmdpbjogbWF0aC5kaXYoZ2V0KHNwYWNpbmcpLCAyKTtcblxuLmNhcm91c2VsX19saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIEBpbmNsdWRlIHBydW5lLWxpc3Q7XG5cbiAgICBAaW5jbHVkZSBncHU7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbkBmb3IgJGRpc3BsYXkgZnJvbSAyIHRocm91Z2ggNSB7XG4gICAgLmNhcm91c2VsLS0jeyRkaXNwbGF5fSAuY2Fyb3VzZWxfX2xpc3QgPiBsaSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKG1lZGl1bSkge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEobGFyZ2UpIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogY2FsYygxMDAlIC8gI3skZGlzcGxheX0gLSAje21hdGguZGl2KCRtYXJnaW4gKiAoJGRpc3BsYXkgLSAxKSwgJGRpc3BsYXkpfSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIF9UT09MVElQLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQHNldHRpbmdzICRnZW1pbmktdG9vbHRpcFxuICogQGRlc2NyaXB0aW9uIFRoZSBzZXR0aW5ncyB0byBnaXZlIHRvb2x0aXBzIGEgY3VzdG9tIGxvb2tcbiAqXG4gKiBAcHJvcCB7Y29sb3J9IFtjb2xvcj0jMzMzXSBUaGUgZm9udCBjb2xvclxuICogQHByb3Age2NvbG9yfSBbYmFja2dyb3VuZC1jb2xvcj0jRUVFXSBUaGUgYmFja2dyb3VuZCBjb2xvclxuICogQHByb3Age21lYXN1cmVtZW50fSBbcGFkZGluZy1lbmRzPTAuNWVtXSBUaGUgcGFkZGluZyBvbiB0aGUgdG9wIGFuZCBib3R0b21cbiAqIEBwcm9wIHttZWFzdXJlbWVudH0gW3BhZGRpbmctc2lkZXM9MWVtXSBUaGUgcGFkZGluZyBvbiB0aGUgbGVmdCBhbmQgcmlnaHRcbiAqIEBwcm9wIHttZWFzdXJlbWVudH0gW2JvcmRlci13aWR0aD0wXSBUaGUgd2lkdGggb2YgdGhlIGJvcmRlclxuICogQHByb3Age2NvbG9yfSBbYm9yZGUtY29sb3I9IzMzM10gVGhlIGNvbG9yIG9mIHRoZSBib3JkZXJcbiAqIEBwcm9wIHttZWFzdXJlbWVudH0gW2JvcmRlci1yYWRpdXM9MF0gVGhlIGJvcmRlciBvZiB0aGUgcmFkaXVzXG4gKiBAcHJvcCB7bWVhc3VyZW1lbnR9IFthcnJvdy1zaXplPWdldChzcGFjaW5nKSowLjRdIFRoZSBzaXplIG9mIHRoZSBhcnJvd1xuICovXG4kZ2VtaW5pLXRvb2x0aXA6ICgpICFkZWZhdWx0O1xuXG4kZ2VtaW5pLXRvb2x0aXA6IGV4dGVuZChcbiAgICAoXG4gICAgICAgIGNvbG9yOiAjMzMzLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlLFxuICAgICAgICBwYWRkaW5nLWVuZHM6IDAuMjVlbSxcbiAgICAgICAgcGFkZGluZy1zaWRlczogMC41ZW0sXG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4LFxuICAgICAgICBib3JkZXItY29sb3I6ICMzMzMsXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAsXG4gICAgICAgIGFycm93LXNpemU6IGdldChzcGFjaW5nKSAqIDAuNCxcbiAgICApLFxuICAgICRnZW1pbmktdG9vbHRpcFxuKTtcblxuLm5vLXRvdWNoIHtcbiAgICAudy10b29sdGlwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjdXJzb3I6IGhlbHA7XG5cbiAgICAgICAgYSAmLFxuICAgICAgICBhI3smfSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQWRkIHNsaWdodCB0cmFuc2l0aW9uXG4gICAgb3BhY2l0eTogMDtcbiAgICBAaW5jbHVkZSBncHU7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuMjVzIGVhc2UpO1xuXG4gICAgJi5pcy1hY3RpdmUsXG4gICAgJi5pcy1mb3JjZWQtYWN0aXZlIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmX190aXAge1xuICAgICAgICBAaW5jbHVkZSB0YWcoXG4gICAgICAgICAgICAkY29sb3I6IGdldChjb2xvciwgJGdlbWluaS10b29sdGlwKSxcbiAgICAgICAgICAgICRiYWNrZ3JvdW5kOiBnZXQoYmFja2dyb3VuZC1jb2xvciwgJGdlbWluaS10b29sdGlwKSxcbiAgICAgICAgICAgICRlbmRzOiBnZXQocGFkZGluZy1lbmRzLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgJHNpZGVzOiBnZXQocGFkZGluZy1zaWRlcywgJGdlbWluaS10b29sdGlwKSxcbiAgICAgICAgICAgICRib3JkZXItd2lkdGg6IGdldChib3JkZXItd2lkdGgsICRnZW1pbmktdG9vbHRpcCksXG4gICAgICAgICAgICAkYm9yZGVyLWNvbG9yOiBnZXQoYm9yZGVyLWNvbG9yLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgJGJvcmRlci1yYWRpdXM6IGdldChib3JkZXItcmFkaXVzLCAkZ2VtaW5pLXRvb2x0aXApXG4gICAgICAgICk7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IGdldENvbG9yKGcyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcnJvdy10b3Age1xuICAgICAgICAgICAgdG9wOiBnZXQoYXJyb3ctc2l6ZSwgJGdlbWluaS10b29sdGlwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYXJyb3coXG4gICAgICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgICAgIGNlbnRlcixcbiAgICAgICAgICAgICAgICBnZXQoYXJyb3ctc2l6ZSwgJGdlbWluaS10b29sdGlwKSxcbiAgICAgICAgICAgICAgICBnZXQoYmFja2dyb3VuZC1jb2xvciwgJGdlbWluaS10b29sdGlwKSxcbiAgICAgICAgICAgICAgICBnZXQoYm9yZGVyLXdpZHRoLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgICAgIGdldChib3JkZXItY29sb3IsICRnZW1pbmktdG9vbHRpcClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcnJvdy1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiAtIGdldChhcnJvdy1zaXplLCAkZ2VtaW5pLXRvb2x0aXApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBhcnJvdyhcbiAgICAgICAgICAgICAgICBib3R0b20sXG4gICAgICAgICAgICAgICAgY2VudGVyLFxuICAgICAgICAgICAgICAgIGdldChhcnJvdy1zaXplLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgICAgIGdldChiYWNrZ3JvdW5kLWNvbG9yLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgICAgIGdldChib3JkZXItd2lkdGgsICRnZW1pbmktdG9vbHRpcCksXG4gICAgICAgICAgICAgICAgZ2V0KGJvcmRlci1jb2xvciwgJGdlbWluaS10b29sdGlwKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFycm93LWxlZnQge1xuICAgICAgICAgICAgbGVmdDogZ2V0KGFycm93LXNpemUsICRnZW1pbmktdG9vbHRpcCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGFycm93KFxuICAgICAgICAgICAgICAgIGxlZnQsXG4gICAgICAgICAgICAgICAgY2VudGVyLFxuICAgICAgICAgICAgICAgIGdldChhcnJvdy1zaXplLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgICAgIGdldChiYWNrZ3JvdW5kLWNvbG9yLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgICAgIGdldChib3JkZXItd2lkdGgsICRnZW1pbmktdG9vbHRpcCksXG4gICAgICAgICAgICAgICAgZ2V0KGJvcmRlci1jb2xvciwgJGdlbWluaS10b29sdGlwKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFycm93LXJpZ2h0IHtcbiAgICAgICAgICAgIHJpZ2h0OiBnZXQoYXJyb3ctc2l6ZSwgJGdlbWluaS10b29sdGlwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYXJyb3coXG4gICAgICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICAgICAgY2VudGVyLFxuICAgICAgICAgICAgICAgIGdldChhcnJvdy1zaXplLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgICAgIGdldChiYWNrZ3JvdW5kLWNvbG9yLCAkZ2VtaW5pLXRvb2x0aXApLFxuICAgICAgICAgICAgICAgIGdldChib3JkZXItd2lkdGgsICRnZW1pbmktdG9vbHRpcCksXG4gICAgICAgICAgICAgICAgZ2V0KGJvcmRlci1jb2xvciwgJGdlbWluaS10b29sdGlwKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcblxuLy8gQ1NTIFRyYW5zaXRpb25zXG4vLyBDdXJyZW50bHkgb25seSB3b3JrcyBpbiBXZWJraXQuXG4vL1xuLy8gKiBleHBlY3RlZCBpbiBDU1MzLCBGaXJlRm94IDMuNi83IGFuZCBPcGVyYSBQcmVzdG8gMi4zXG4vLyAqIFdlJ2xsIGJlIHByZXBhcmVkLlxuLy9cbi8vIEluY2x1ZGluZyB0aGlzIHN1Ym1vZHVsZSBzZXRzIGZvbGxvd2luZyBkZWZhdWx0cyBmb3IgdGhlIG1peGluczpcbi8vXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1wcm9wZXJ0eSA6IGFsbFxuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gOiAxc1xuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb24gOiBmYWxzZVxuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXkgICAgOiBmYWxzZVxuLy9cbi8vIE92ZXJyaWRlIHRoZW0gaWYgeW91IGxpa2UuIFRpbWluZy1mdW5jdGlvbiBhbmQgZGVsYXkgYXJlIHNldCB0byBmYWxzZSBmb3IgYnJvd3NlciBkZWZhdWx0cyAoZWFzZSwgMHMpLlxuXG4kZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGwgIWRlZmF1bHQ7XG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb246IDFzICFkZWZhdWx0O1xuXG4kZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheTogZmFsc2UgIWRlZmF1bHQ7XG5cbiR0cmFuc2l0aW9uYWJsZS1wcmVmaXhlZC12YWx1ZXM6IHRyYW5zZm9ybSwgdHJhbnNmb3JtLW9yaWdpbiAhZGVmYXVsdDtcblxuLy8gT25lIG9yIG1vcmUgcHJvcGVydGllcyB0byB0cmFuc2l0aW9uXG4vL1xuLy8gKiBmb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIGFsc28gYWNjZXB0cyBcImFsbFwiIG9yIFwibm9uZVwiXG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0eS0xOiAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5LFxuICAkcHJvcGVydHktMiA6IGZhbHNlLFxuICAkcHJvcGVydHktMyA6IGZhbHNlLFxuICAkcHJvcGVydHktNCA6IGZhbHNlLFxuICAkcHJvcGVydHktNSA6IGZhbHNlLFxuICAkcHJvcGVydHktNiA6IGZhbHNlLFxuICAkcHJvcGVydHktNyA6IGZhbHNlLFxuICAkcHJvcGVydHktOCA6IGZhbHNlLFxuICAkcHJvcGVydHktOSA6IGZhbHNlLFxuICAkcHJvcGVydHktMTA6IGZhbHNlXG4pIHtcbiAgQGlmIHR5cGUtb2YoJHByb3BlcnR5LTEpID09IHN0cmluZyB7ICRwcm9wZXJ0eS0xOiB1bnF1b3RlKCRwcm9wZXJ0eS0xKTsgfVxuICAkcHJvcGVydGllczogY29tcGFjdCgkcHJvcGVydHktMSwgJHByb3BlcnR5LTIsICRwcm9wZXJ0eS0zLCAkcHJvcGVydHktNCwgJHByb3BlcnR5LTUsICRwcm9wZXJ0eS02LCAkcHJvcGVydHktNywgJHByb3BlcnR5LTgsICRwcm9wZXJ0eS05LCAkcHJvcGVydHktMTApO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHkgOiBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtd2Via2l0LCAkcHJvcGVydGllcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgICAgICAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5IDogcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oLW1veiwgICAgJHByb3BlcnRpZXMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICB7ICAgICAgICAgICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eSA6IHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC1vLCAgICAgICRwcm9wZXJ0aWVzKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHkgOiAkcHJvcGVydGllcztcbn1cblxuLy8gT25lIG9yIG1vcmUgZHVyYXRpb25zIGluIHNlY29uZHNcbi8vXG4vLyAqIGZvciBtdWx0aXBsZSwgdXNlIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Rcbi8vICogdGhlc2UgZHVyYXRpb25zIHdpbGwgYWZmZWN0IHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBzYW1lIGxpc3QgcG9zaXRpb25cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJGR1cmF0aW9uLTE6ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRkdXJhdGlvbi0yIDogZmFsc2UsXG4gICRkdXJhdGlvbi0zIDogZmFsc2UsXG4gICRkdXJhdGlvbi00IDogZmFsc2UsXG4gICRkdXJhdGlvbi01IDogZmFsc2UsXG4gICRkdXJhdGlvbi02IDogZmFsc2UsXG4gICRkdXJhdGlvbi03IDogZmFsc2UsXG4gICRkdXJhdGlvbi04IDogZmFsc2UsXG4gICRkdXJhdGlvbi05IDogZmFsc2UsXG4gICRkdXJhdGlvbi0xMDogZmFsc2Vcbikge1xuICBAaWYgdHlwZS1vZigkZHVyYXRpb24tMSkgPT0gc3RyaW5nIHsgJGR1cmF0aW9uLTE6IHVucXVvdGUoJGR1cmF0aW9uLTEpOyB9XG4gICRkdXJhdGlvbnM6IGNvbXBhY3QoJGR1cmF0aW9uLTEsICRkdXJhdGlvbi0yLCAkZHVyYXRpb24tMywgJGR1cmF0aW9uLTQsICRkdXJhdGlvbi01LCAkZHVyYXRpb24tNiwgJGR1cmF0aW9uLTcsICRkdXJhdGlvbi04LCAkZHVyYXRpb24tOSwgJGR1cmF0aW9uLTEwKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbnMsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gT25lIG9yIG1vcmUgdGltaW5nIGZ1bmN0aW9uc1xuLy9cbi8vICogWyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoeDEsIHkxLCB4MiwgeTIpXVxuLy8gKiBGb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIGVmZmVjdCB0aGUgcHJvcGVydGllcyBpbiB0aGUgc2FtZSBsaXN0IHBvc2l0aW9uXG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkZnVuY3Rpb24tMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbixcbiAgJGZ1bmN0aW9uLTIgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTMgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTQgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTUgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTYgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTcgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTggOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTkgOiBmYWxzZSxcbiAgJGZ1bmN0aW9uLTEwOiBmYWxzZVxuKSB7XG4gICRmdW5jdGlvbi0xOiB1bnF1b3RlKCRmdW5jdGlvbi0xKTtcbiAgJGZ1bmN0aW9uczogY29tcGFjdCgkZnVuY3Rpb24tMSwgJGZ1bmN0aW9uLTIsICRmdW5jdGlvbi0zLCAkZnVuY3Rpb24tNCwgJGZ1bmN0aW9uLTUsICRmdW5jdGlvbi02LCAkZnVuY3Rpb24tNywgJGZ1bmN0aW9uLTgsICRmdW5jdGlvbi05LCAkZnVuY3Rpb24tMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRmdW5jdGlvbnMsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIG5vdCgtbXMpLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gT25lIG9yIG1vcmUgdHJhbnNpdGlvbi1kZWxheXMgaW4gc2Vjb25kc1xuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiB0aGVzZSBkZWxheXMgd2lsbCBlZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkZGVsYXktMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheSxcbiAgJGRlbGF5LTIgOiBmYWxzZSxcbiAgJGRlbGF5LTMgOiBmYWxzZSxcbiAgJGRlbGF5LTQgOiBmYWxzZSxcbiAgJGRlbGF5LTUgOiBmYWxzZSxcbiAgJGRlbGF5LTYgOiBmYWxzZSxcbiAgJGRlbGF5LTcgOiBmYWxzZSxcbiAgJGRlbGF5LTggOiBmYWxzZSxcbiAgJGRlbGF5LTkgOiBmYWxzZSxcbiAgJGRlbGF5LTEwOiBmYWxzZVxuKSB7XG4gIEBpZiB0eXBlLW9mKCRkZWxheS0xKSA9PSBzdHJpbmcgeyAkZGVsYXktMTogdW5xdW90ZSgkZGVsYXktMSk7IH1cbiAgJGRlbGF5czogY29tcGFjdCgkZGVsYXktMSwgJGRlbGF5LTIsICRkZWxheS0zLCAkZGVsYXktNCwgJGRlbGF5LTUsICRkZWxheS02LCAkZGVsYXktNywgJGRlbGF5LTgsICRkZWxheS05LCAkZGVsYXktMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi1kZWxheSwgJGRlbGF5cyxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBUcmFuc2l0aW9uIGFsbC1pbi1vbmUgc2hvcnRoYW5kXG5cbkBtaXhpbiBzaW5nbGUtdHJhbnNpdGlvbihcbiAgJHByb3BlcnR5OiAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5LFxuICAkZHVyYXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICRmdW5jdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbixcbiAgJGRlbGF5OiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5XG4pIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb21wYWN0KCRwcm9wZXJ0eSAkZHVyYXRpb24gJGZ1bmN0aW9uICRkZWxheSkpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbihcbiAgJHRyYW5zaXRpb24tMSA6IGRlZmF1bHQsXG4gICR0cmFuc2l0aW9uLTIgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tMyA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi00IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTUgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tNiA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi03IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTggOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tOSA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi0xMDogZmFsc2Vcbikge1xuICBAaWYgJHRyYW5zaXRpb24tMSA9PSBkZWZhdWx0IHtcbiAgICAkdHJhbnNpdGlvbi0xIDogY29tcGFjdCgkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5KTtcbiAgfVxuICAkdHJhbnNpdGlvbnM6IGZhbHNlO1xuICBAaWYgdHlwZS1vZigkdHJhbnNpdGlvbi0xKSA9PSBsaXN0IGFuZCB0eXBlLW9mKG50aCgkdHJhbnNpdGlvbi0xLDEpKSA9PSBsaXN0IHtcbiAgICAkdHJhbnNpdGlvbnM6IGpvaW4oJHRyYW5zaXRpb24tMSwgY29tcGFjdCgkdHJhbnNpdGlvbi0yLCAkdHJhbnNpdGlvbi0zLCAkdHJhbnNpdGlvbi00LCAkdHJhbnNpdGlvbi01LCAkdHJhbnNpdGlvbi02LCAkdHJhbnNpdGlvbi03LCAkdHJhbnNpdGlvbi04LCAkdHJhbnNpdGlvbi05LCAkdHJhbnNpdGlvbi0xMCksIGNvbW1hKTtcbiAgfSBAZWxzZSB7XG4gICAgJHRyYW5zaXRpb25zIDogY29tcGFjdCgkdHJhbnNpdGlvbi0xLCAkdHJhbnNpdGlvbi0yLCAkdHJhbnNpdGlvbi0zLCAkdHJhbnNpdGlvbi00LCAkdHJhbnNpdGlvbi01LCAkdHJhbnNpdGlvbi02LCAkdHJhbnNpdGlvbi03LCAkdHJhbnNpdGlvbi04LCAkdHJhbnNpdGlvbi05LCAkdHJhbnNpdGlvbi0xMCk7XG4gIH1cbiAgJGRlbGF5czogY29tbWEtbGlzdCgpO1xuICAkaGFzLWRlbGF5czogZmFsc2U7XG4gICR3ZWJraXQtdmFsdWU6IGNvbW1hLWxpc3QoKTtcbiAgJG1vei12YWx1ZTogY29tbWEtbGlzdCgpO1xuICAkby12YWx1ZTogY29tbWEtbGlzdCgpO1xuXG4gIC8vIFRoaXMgYmxvY2sgY2FuIGJlIG1hZGUgY29uc2lkZXJhYmx5IHNpbXBsZXIgYXQgdGhlIHBvaW50IGluIHRpbWUgdGhhdFxuICAvLyB3ZSBubyBsb25nZXIgbmVlZCB0byBkZWFsIHdpdGggdGhlIGRpZmZlcmVuY2VzIGluIGhvdyBkZWxheXMgYXJlIHRyZWF0ZWQuXG4gIEBlYWNoICR0cmFuc2l0aW9uIGluICR0cmFuc2l0aW9ucyB7XG4gICAgLy8gRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIGxpc3RcbiAgICAvLyAodGhpcyB3b3VsZCBiZSBjbGVhbmVyIGlmIG50aCB0b29rIGEgM3JkIGFyZ3VtZW50IHRvIHByb3ZpZGUgYSBkZWZhdWx0IHZhbHVlKS5cbiAgICAkcHJvcGVydHk6IG50aCgkdHJhbnNpdGlvbiwgMSk7XG4gICAgJGR1cmF0aW9uOiBmYWxzZTtcbiAgICAkdGltaW5nLWZ1bmN0aW9uOiBmYWxzZTtcbiAgICAkZGVsYXk6IGZhbHNlO1xuICAgIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID4gMSB7ICRkdXJhdGlvbjogICAgICAgIG50aCgkdHJhbnNpdGlvbiwgMik7IH1cbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA+IDIgeyAkdGltaW5nLWZ1bmN0aW9uOiBudGgoJHRyYW5zaXRpb24sIDMpOyB9XG4gICAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPiAzIHsgJGRlbGF5OiAgICAgICAgICAgbnRoKCR0cmFuc2l0aW9uLCA0KTsgJGhhcy1kZWxheXM6IHRydWU7IH1cblxuICAgIC8vIElmIGEgZGVsYXkgaXMgcHJvdmlkZWQgd2l0aG91dCBhIHRpbWluZyBmdW5jdGlvblxuICAgIEBpZiBpcy10aW1lKCR0aW1pbmctZnVuY3Rpb24pIGFuZCBub3QoJGRlbGF5KSB7ICRkZWxheTogJHRpbWluZy1mdW5jdGlvbjsgJHRpbWluZy1mdW5jdGlvbjogZmFsc2U7ICRoYXMtZGVsYXlzOiB0cnVlOyB9XG5cbiAgICAvLyBLZWVwIGEgbGlzdCBvZiBkZWxheXMgaW4gY2FzZSBvbmUgaXMgc3BlY2lmaWVkXG4gICAgJGRlbGF5czogYXBwZW5kKCRkZWxheXMsIGlmKCRkZWxheSwgJGRlbGF5LCAwcykpO1xuXG4gICAgJHdlYmtpdC12YWx1ZTogYXBwZW5kKCR3ZWJraXQtdmFsdWUsIGNvbXBhY3QoKHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC13ZWJraXQsICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24pLi4uKSk7XG4gICAgICAgJG1vei12YWx1ZTogYXBwZW5kKCAgICRtb3otdmFsdWUsIGNvbXBhY3QoKHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCAgIC1tb3osICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24gJGRlbGF5KS4uLikpO1xuICAgICAgICAgJG8tdmFsdWU6IGFwcGVuZCggICAgICRvLXZhbHVlLCBjb21wYWN0KChwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbiggICAgIC1vLCAkcHJvcGVydHkpICRkdXJhdGlvbiAkdGltaW5nLWZ1bmN0aW9uICRkZWxheSkuLi4pKTtcbiAgfVxuXG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7ICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbiA6ICR3ZWJraXQtdmFsdWU7XG4gICAgLy8gb2xkIHdlYmtpdCBkb2Vzbid0IHN1cHBvcnQgdGhlIGRlbGF5IHBhcmFtZXRlciBpbiB0aGUgc2hvcnRoYW5kIHNvIHdlIHByb2dyZXNzaXZlbHkgZW5oYW5jZSBpdC5cbiAgICBAaWYgJGhhcy1kZWxheXMgICAgICAgICAgICAgICAgICAgICAgIHsgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5IDogJGRlbGF5czsgICAgICAgfSB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICAgICAgICAgIC1tb3otdHJhbnNpdGlvbiA6ICRtb3otdmFsdWU7ICAgIH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAgICAgICAtby10cmFuc2l0aW9uIDogJG8tdmFsdWU7ICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24gOiAkdHJhbnNpdGlvbnM7XG59XG5cbi8vIGNvZXJjZSBhIGxpc3QgdG8gYmUgY29tbWEgZGVsaW1pdGVkIG9yIG1ha2UgYSBuZXcsIGVtcHR5IGNvbW1hIGRlbGltaXRlZCBsaXN0LlxuQGZ1bmN0aW9uIGNvbW1hLWxpc3QoJGxpc3Q6ICgpKSB7XG4gIEByZXR1cm4gam9pbigoKSwgJGxpc3QsIGNvbW1hKTtcbn1cblxuLy8gUmV0dXJucyBgJHByb3BlcnR5YCB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaWYgaXQgaXMgZm91bmQgaW4gYCR0cmFuc2l0aW9uYWJsZS1wcmVmaXhlZC12YWx1ZXNgLlxuQGZ1bmN0aW9uIHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCRwcmVmaXgsICRwcm9wZXJ0eSkge1xuICBAaWYgdHlwZS1vZigkcHJvcGVydHkpID09IGxpc3Qge1xuICAgICRuZXctbGlzdDogY29tbWEtbGlzdCgpO1xuICAgIEBlYWNoICR2IGluICRwcm9wZXJ0eSB7XG4gICAgICAkbmV3LWxpc3Q6IGFwcGVuZCgkbmV3LWxpc3QsIHByZWZpeGVkLWZvci10cmFuc2l0aW9uKCRwcmVmaXgsICR2KSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG5ldy1saXN0O1xuICB9IEBlbHNlIHtcbiAgICBAaWYgaW5kZXgoJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlcywgJHByb3BlcnR5KSB7XG4gICAgICBAcmV0dXJuICN7JHByZWZpeH0tI3skcHJvcGVydHl9O1xuICAgIH0gQGVsc2Uge1xuICAgICAgQHJldHVybiAkcHJvcGVydHk7XG4gICAgfVxuICB9XG59XG5cbi8vIENoZWNrcyBpZiB0aGUgdmFsdWUgZ2l2ZW4gaXMgYSB1bml0IG9mIHRpbWUuXG5AZnVuY3Rpb24gaXMtdGltZSgkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBudW1iZXIge1xuICAgIEByZXR1cm4gbm90KG5vdChpbmRleChzIG1zLCB1bml0KCR2YWx1ZSkpKSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfQVJST1dTLlNDU1NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbi8qKlxuICogQG1peGluIGFycm93XG4gKiBAZGVzY3JpcHRpb24gVGhpcyBtaXhpbiBjcmVhdGVzIGEgQ1NTIGFycm93IG9uIGEgZ2l2ZW4gZWxlbWVudC4gV2UgY2FuIGhhdmVcbiAqIHRoZSBhcnJvdyBhcHBlYXIgaW4gb25lIG9mIDEyIGxvY2F0aW9ucywgdGh1czpcbiAqXG4gKiAgICAgICAwMSAgICAwMiAgICAwM1xuICogICAgKy0tLS0tLS0tLS0tLS0tLS0tLStcbiAqIDEyIHwgICAgICAgICAgICAgICAgICB8IDA0XG4gKiAgICB8ICAgICAgICAgICAgICAgICAgfFxuICogMTEgfCAgICAgICAgICAgICAgICAgIHwgMDVcbiAqICAgIHwgICAgICAgICAgICAgICAgICB8XG4gKiAxMCB8ICAgICAgICAgICAgICAgICAgfCAwNlxuICogICAgKy0tLS0tLS0tLS0tLS0tLS0tLStcbiAqICAgICAgIDA5ICAgIDA4ICAgIDA3XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFskYXJyb3ctZWRnZT1ib3R0b21dIFRoZSBlZGdlIHRoYXQgdGhlIGFycm93IGlzIG9uICh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpXG4gKiBAcGFyYW0ge3N0cmluZ30gWyRhcnJvdy1sb2NhdGlvbj1jZW50ZXJdIFRoZSBsb2NhdGlvbiBwbGFjZW1lbnQgYWxvbmcgdGhlIGVkZ2UgKHRvcCwgcmlnaHQsIGNlbnRlciwgYm90dG9tLCBsZWZ0KVxuICogQHBhcmFtIHtzdHJpbmd9IFskYXJyb3ctc2l6ZT1nZXQoc3BhY2luZykqMC40XSBUaGUgc2l6ZSBvZiB0aGUgYXJyb3dcbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGFycm93LWNvbG9yPSMzMzNdIFRoZSBjb2xvciBvZiB0aGUgYXJyb3dcbiAqIEBwYXJhbSB7c3RyaW5nfSBbJGFycm93LXNpemU9Z2V0KHNwYWNpbmcpKjAuNF0gVGhlIHNpemUgb2YgdGhlIGJvcmRlclxuICogQHBhcmFtIHtzdHJpbmd9IFskYm9yZGVyLWNvbG9yPSRhcnJvdy1jb2xvcl0gVGhlIGNvbG9yIG9mIHRoZSBib3JkZXJcbiAqXG4gKiBAZXhhbXBsZVxuICAgIC5mb28ge1xuICAgICAgQGluY2x1ZGUgYXJyb3coYm90dG9tLCBjZW50ZXIsIHJlZCwgYmxhY2spO1xuICAgIH1cbiAqL1xuXG5AbWl4aW4gYXJyb3coXG4gICRhcnJvdy1lZGdlOiBib3R0b20sXG4gICRhcnJvdy1sb2NhdGlvbjogY2VudGVyLFxuICAkYXJyb3ctc2l6ZTogZ2V0KHNwYWNpbmcpICogMC40LFxuICAkYXJyb3ctY29sb3I6ICMzMzMsXG4gICRib3JkZXItc2l6ZTogMnB4LFxuICAkYm9yZGVyLWNvbG9yOiAkYXJyb3ctY29sb3IsXG4gICRzZXQtcG9zaXRpb246IHRydWVcbiAgKSB7XG5cbiAgQGlmICRzZXQtcG9zaXRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICB9XG5cbiAgQGlmICRib3JkZXItc2l6ZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAkYXJyb3ctc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vcm1hbDtcbiAgICB9XG4gIH1cbiAgJjphZnRlciB7XG4gICAgYm9yZGVyOiAkYXJyb3ctc2l6ZSAtICRib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIEBpZiAkYXJyb3ctZWRnZSA9PSB0b3Age1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItc2l6ZSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRib3JkZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYXJyb3ctY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAkYXJyb3ctZWRnZSA9PSBib3R0b20ge1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItc2l6ZSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRib3JkZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkYXJyb3ctY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAkYXJyb3ctZWRnZSA9PSBib3R0b20gb3IgJGFycm93LWVkZ2UgPT0gdG9wIHtcblxuICAgIEBpZiAkYXJyb3ctbG9jYXRpb24gPT0gbGVmdCB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6ICRhcnJvdy1zaXplIC0gJGJvcmRlci1zaXplO1xuICAgICAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGxlZnQ6ICRhcnJvdy1zaXplO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkYXJyb3ctbG9jYXRpb24gPT0gY2VudGVyIHtcbiAgICAgICY6YmVmb3JlLFxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0gJGFycm93LXNpemU7XG4gICAgICB9XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0gJGFycm93LXNpemUgKyAkYm9yZGVyLXNpemU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRhcnJvdy1sb2NhdGlvbiA9PSByaWdodCB7XG4gICAgICBAaWYgJGJvcmRlci1zaXplIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctc2l6ZSAtICRib3JkZXItc2l6ZSArIDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICByaWdodDogJGFycm93LXNpemUgKyAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgQGlmICRhcnJvdy1lZGdlID09IHJpZ2h0IHtcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlci1zaXplIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRib3JkZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkYXJyb3ctY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAkYXJyb3ctZWRnZSA9PSBsZWZ0IHtcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItc2l6ZSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGJvcmRlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkYXJyb3ctY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAkYXJyb3ctZWRnZSA9PSBsZWZ0IG9yICRhcnJvdy1lZGdlID09IHJpZ2h0IHtcblxuICAgIEBpZiAkYXJyb3ctbG9jYXRpb24gPT0gdG9wIHtcbiAgICAgIEBpZiAkYm9yZGVyLXNpemUge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgdG9wOiAkYXJyb3ctc2l6ZSAtICRib3JkZXItc2l6ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIHRvcDogJGFycm93LXNpemU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRhcnJvdy1sb2NhdGlvbiA9PSBjZW50ZXIge1xuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0gJGFycm93LXNpemU7XG4gICAgICB9XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLSAkYXJyb3ctc2l6ZSArICRib3JkZXItc2l6ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFycm93LWxvY2F0aW9uID09IGJvdHRvbSB7XG4gICAgICBAaWYgJGJvcmRlci1zaXplIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGJvdHRvbTogJGFycm93LXNpemUgLSAkYm9yZGVyLXNpemU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBib3R0b206ICRhcnJvdy1zaXplO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbn1cbiIsIi8qKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBfTU9EQUwuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIE1vZGFsIFsubW9kYWxdXG4gKiBAZGVzY3JpcHRpb24gVGhlIENTUyBmb3IgYSBtb2RhbCB0byBwb3B1cCBvdmVyIHRoZSBwYWdlIGNvbnRlbnRcbiAqXG4gKiBAbW9kaWZpZXIgWy5tb2RhbC0tZml4ZWRdIEZpeGVzIHRoZSBtb2RhbCB0byB0aGUgc2NyZWVuXG4gKi9cbkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbi5tb2RhbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgLy8gQSBsaXR0bGUgc3R5bGUgb3V0IG9mIHRoZSBib3hcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cblxuLy9Vc2VkIGZvciBmaXhlZCBvcHRpb25cbi5tb2RhbC0tZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLyoqXG4gKiBAc3VibW9kdWxlIE1vZGFsIENvbnRlbnQgWy5tb2RhbF9fY29udGVudF1cbiAqIEBkZXNjcmlwdGlvbiBUaGUgY29udGFpbmVyIGZvciB0aGUgbW9kYWwncyBjb250ZW50XG4gKi9cbi5tb2RhbF9fY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBnZXQobGFyZ2UsICRnZW1pbmktc2NyZWVucyk7XG59XG5cbi8qKlxuICogQHN1Ym1vZHVsZSBNb2RhbCBDbG9zZSBbLm1vZGFsX19jbG9zZV1cbiAqIEBkZXNjcmlwdGlvbiBUaGUgYnV0dG9uIGZvciBjbG9zaW5nIHRoZSBtb2RhbFxuICovXG4ubW9kYWxfX2Nsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB0b3A6IG1hdGguZGl2KGdldChzcGFjaW5nKSwgMik7XG4gICAgcmlnaHQ6IG1hdGguZGl2KGdldChzcGFjaW5nKSwgMik7XG4gICAgcGFkZGluZzogMCBtYXRoLmRpdihnZXQoc3BhY2luZyksIDIpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogX1RBQlMuU0NTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIFRhYiBbLnRhYl1cbiAqIEBkZXNjcmlwdGlvbiBUaGUgQ1NTIGZvciBlYWNoIHRhYiB0byB3b3JrIHdpdGggdGhlIHRhYnMgamF2YXNjcmlwdCBtb2R1bGVcbiAqXG4gKiBAc3RhdGUgWy5pcy1hY3RpdmVdIEFjdGl2YXRlcyB0aGUgdGFiXG4gKi9cbi50YWIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAubm8tanMgJixcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= */
