.text{font-family:Open Sans,Helvetica Neue,helvetica,arial,sans-serif;font-size:18px}.text ol,.text ul{list-style:revert}.cmp-text--dark{color:#333332}.cmp-text--light{color:#fff}.cmp-text--blue{color:#0067b1}.cmp_text__body-copy--1{font-size:22px;letter-spacing:-.75px;line-height:30px}.cmp_text__body-copy--1 p{margin-bottom:22px}.cmp_text__body-copy--2{font-size:16px;letter-spacing:-.25px;line-height:1.5}.cmp_text__body-copy--2 p{margin-bottom:18px}.cmp_text__body-copy--3{font-size:14px;letter-spacing:0;line-height:22px}.cmp_text__body-copy--3 p{margin-bottom:14px}.text.cmp-style--dark-font>.cmp-text,.text>.cmp-text{color:#2f2f30}.text.cmp-style--dark-font>.cmp-text table,.text.cmp-style--dark-font>.cmp-text td,.text.cmp-style--dark-font>.cmp-text th,.text.cmp-style--dark-font>.cmp-text tr,.text>.cmp-text table,.text>.cmp-text td,.text>.cmp-text th,.text>.cmp-text tr{border:1px solid #2f2f30}.text.cmp-style--light-font>.cmp-text{color:#fff}.text.cmp-style--light-font>.cmp-text table,.text.cmp-style--light-font>.cmp-text td,.text.cmp-style--light-font>.cmp-text th,.text.cmp-style--light-font>.cmp-text tr{border:1px solid #fff}.text.cmp-style--light-font>.cmp-text p a,.text.cmp-style--light-font>.cmp-text p a:visited{border-radius:.25rem;color:#fff;font-weight:600;padding:4px;text-decoration:underline}.text.cmp-style--light-font>.cmp-text p a:hover{background:hsla(0,0%,100%,.12)}.text.cmp-style--light-font>.cmp-text p a:active{background:hsla(0,0%,100%,.24)}.text.cmp-style--light-font>.cmp-text p a:focus{border:3px solid #fff;outline:none}.text.cmp-style--black-font>.cmp-text{color:#000}.text.cmp-style--black-font>.cmp-text table,.text.cmp-style--black-font>.cmp-text td,.text.cmp-style--black-font>.cmp-text th,.text.cmp-style--black-font>.cmp-text tr{border:1px solid #000}blockquote{quotes:"“" "”" "‘" "’"}blockquote:before{content:open-quote}blockquote:after{content:close-quote}.text a:link{color:blue}.text .cmp-text .cmp_text__eyebrow{font-size:.8125rem;font-weight:700;letter-spacing:1px;line-height:15.6px;text-transform:uppercase}.text .cmp-text .cmp_text__byline{font-size:1.5rem;font-weight:600;letter-spacing:-.01em;line-height:30.24px;margin-bottom:.3125rem}.text .cmp-text blockquote{font-size:2.625rem;font-weight:400;letter-spacing:-.03em;line-height:3.07125rem;margin-bottom:4.125rem}@media(max-width:766px){.text .cmp-text .cmp_text__eyebrow{margin-bottom:1.1875rem}.text .cmp-text .cmp_text__byline{font-size:.875rem;font-weight:400;letter-spacing:-.25px;line-height:18px;margin-bottom:0}.text .cmp-text blockquote{font-size:1.875rem;line-height:2.2875rem;margin-bottom:1rem}}.text.cmp-style--dark-font>.cmp-text blockquote{color:#2f2f30}.text.cmp-style--light-font>.cmp-text blockquote{color:#fff}.text.cmp-style--black-font>.cmp-text blockquote{color:#000}.text.cmp-style--inline>.cmp-text{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media (min-width:1024px){.text.cmp-style--inline>.cmp-text{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-align:baseline;-ms-flex-align:baseline;-webkit-box-pack:end;-ms-flex-pack:end;align-items:baseline;-ms-flex-direction:row;flex-direction:row;justify-content:flex-end}}.text.cmp-style--inline>.cmp-text h1,.text.cmp-style--inline>.cmp-text h2,.text.cmp-style--inline>.cmp-text h3,.text.cmp-style--inline>.cmp-text h4,.text.cmp-style--inline>.cmp-text h5,.text.cmp-style--inline>.cmp-text h6,.text.cmp-style--inline>.cmp-text p{margin:0}@media (min-width:1024px){.text.cmp-style--inline>.cmp-text h1:not(:first-child),.text.cmp-style--inline>.cmp-text h2:not(:first-child),.text.cmp-style--inline>.cmp-text h3:not(:first-child),.text.cmp-style--inline>.cmp-text h4:not(:first-child),.text.cmp-style--inline>.cmp-text h5:not(:first-child),.text.cmp-style--inline>.cmp-text h6:not(:first-child),.text.cmp-style--inline>.cmp-text p:not(:first-child){margin-left:1.5rem}}.text .cmp-text__font--tinted{font-family:Playfair Display,serif;font-size:2.625rem;font-weight:600;letter-spacing:7px;line-height:3rem}.text .cmp-text p a,.text .cmp-text p a:visited{border-radius:.25rem;color:#2f2f30;font-weight:600;padding:4px;text-decoration:underline}.text .cmp-text p a:hover{background:rgba(0,0,0,.08)}.text .cmp-text p a:active{background:rgba(0,0,0,.16);border:none!important}.text .cmp-text p a:focus{border:3px solid #2f2f30;outline:none}.text .cmp-text a,.text .cmp-text a:visited{border-radius:.25rem;color:#2f2f30;font-weight:600;padding:4px;text-decoration:underline}.text .cmp-text a:hover{background:rgba(0,0,0,.08)}.text .cmp-text a:active{background:rgba(0,0,0,.16);border:none!important}.text .cmp-text a:focus{border:3px solid #2f2f30;outline:none}.coral-Form-field ol,.coral-Form-field ul,.text .cmp-text ol,.text .cmp-text ul{margin-left:1.25rem}.coral-Form-field ol ol,.coral-Form-field ol ul,.coral-Form-field ul ol,.coral-Form-field ul ul,.text .cmp-text ol ol,.text .cmp-text ol ul,.text .cmp-text ul ol,.text .cmp-text ul ul{margin-left:2.5rem}.coral-Form-field ol,.text .cmp-text ol{list-style-type:decimal}.coral-Form-field ul,.text .cmp-text ul{list-style-type:disc}@media not all and (-webkit-min-device-pixel-ratio:0),not all and (min-resolution:0.001dpcm){@supports(-webkit-appearance:none){.text.cmp-text--top-margin .cmp-text{margin-top:calc(20% - 65px)}}}body .icp-root-container .cmp-text p,html .icp-root-container .cmp-text p{margin-bottom:0}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50bGliLWdhdGV3YXktc3RvcmVkZXRhaWwtdGV4dC9nYXRld2F5LXN0b3JlZGV0YWlsLXRleHQuY3NzIiwibWFwcGluZ3MiOiJBQUFBLE1DWUEsK0RBRmMsZUFRWixtQkFMQSxpQkFDRSxpQkFPSixhQWpCMEIsa0JBcUIxQixVQXBCbUIsaUJBd0JuQixhQTVCYSx5QkFnQ2IsY0FDRSxDQUNBLHFCQUNBLENBRkEsZ0JBRUEsMkJBRUEsa0JBQ0UseUJBSUosY0FsQ1ksQ0NQRSxxQkQ0Q1osQ0FyQ1UsZUFxQ1YsMkJBRUEsa0JBQ0UseUJBSUosY0FDRSxDQUNBLGdCQUNBLENBRkEsZ0JBRUEsMkJBRUEsa0JBQ0Usc0RBTUYsYUVoRTRCLG1QRm1FMUIsd0JBSUUsdUNBS04sVUUzRXNCLHdLRjhFcEIscUJBSUUsNkZBVUEsb0JBQ0EsQ0FORixVRXZGb0IsQ0YwRmxCLGVDdkZZLFlEeUZaLENFNUZrQix5QkY2RmxCLGlEQUdGLDhCQUNFLGtEQUdGLDhCQUNFLGlEQUlBLHFCQUNBLENBRkYsWUFFRSx1Q0FLSixVRTdHd0Isd0tGZ0h0QixxQkFJRSxZQUlKLHNCQUNFLG1CQUdGLGtCQUNFLGtCQUdGLG1CQUNFLGNBR0YsVUFDRSxvQ0FJQSxrQkFDQSxDQUZGLGVBQ0UsQ0FFQSxrQkFDQSxDQUZBLGtCQUNBLENBQ0Esd0JBQ0EsbUNBSUEsZ0JBQ0EsQ0FGRixlQUNFLENBRUEscUJBQ0EsQ0FGQSxtQkFDQSxDQUNBLHNCQUNBLDRCQU1BLGtCQUNBLENBSkYsZUFDRSxDQUNBLHFCQUNBLENBRkEsc0JBQ0EsQ0FFQSxzQkFDQSx5Qkc0WUUsbUNIeFlGLHVCQUNFLG1DQUlBLGlCQUNBLENBRkYsZUFDRSxDQUVBLHFCQUNBLENBRkEsZ0JBQ0EsQ0FDQSxlQUNBLDRCQUlBLGtCQUNBLENBRkYscUJBQ0UsQ0FDQSxrQkFDQSxrREFJSixhRXZMOEIsa0RGMkw5QixVRTFMc0Isa0RGOEx0QixVRTVMd0IsQ0VKeEIsMjFDSjZORSxvQkFDQSxDQU5GLGFFdk44QixDRjBONUIsZUN0TmMsWUR3TmQsQ0U1TjRCLHlCRjZONUIsMkJBR0YsMEJBQ0UsNEJBR0YsMEJBQ0Usc0JBQ0EsMkJBS0Esd0JBQ0EsQ0FGRixZQUVFLDZDQVVBLG9CQUNBLENBTkYsYUVqUDhCLENGb1A1QixlQ2hQYyxZRGtQZCxDRXRQNEIseUJGdVA1Qix5QkFHRiwwQkFDRSwwQkFHRiwwQkFDRSxzQkFDQSx5QkFJQSx3QkFDQSxDQUZGLFlBRUUsaUZBTUEsbUJBQ0UseUxBRUEsa0JBQ0UseUNBSUosdUJBQ0UseUNBR0Ysb0JBQ0UsOEZBS0osbUNBQ0UscUNBQ0UsMkJBQ0UsNkVBU0YsZUFDRSxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYWVtLW1hdmVuLWFyY2hldHlwZS8uL3NyYy9nYXRld2F5LXN0b3JlZGV0YWlsL3RleHQvc2l0ZS9tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vYWVtLW1hdmVuLWFyY2hldHlwZS8uL3NyYy9nYXRld2F5LXN0b3JlZGV0YWlsL3RleHQvX3RleHQuc2NzcyIsIndlYnBhY2s6Ly9hZW0tbWF2ZW4tYXJjaGV0eXBlLy4vc3JjL2dhdGV3YXktc3RvcmVkZXRhaWwvc2l0ZS9zdHlsZXMvdmFyaWFibGVzL190eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vYWVtLW1hdmVuLWFyY2hldHlwZS8uL3NyYy9nYXRld2F5LXN0b3JlZGV0YWlsL3NpdGUvc3R5bGVzL3ZhcmlhYmxlcy9fY29sb3JzLnNjc3MiLCJ3ZWJwYWNrOi8vYWVtLW1hdmVuLWFyY2hldHlwZS8uL25vZGVfbW9kdWxlcy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly9hZW0tbWF2ZW4tYXJjaGV0eXBlLzxubyBzb3VyY2U+Il0sInNvdXJjZXNDb250ZW50IjpbIi50ZXh0e2ZvbnQtZmFtaWx5OlwiT3BlbiBTYW5zXCIsXCJIZWx2ZXRpY2EgTmV1ZVwiLGhlbHZldGljYSxhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxOHB4fS50ZXh0IG9sLC50ZXh0IHVse2xpc3Qtc3R5bGU6cmV2ZXJ0fS5jbXAtdGV4dC0tZGFya3tjb2xvcjojMzMzMzMyfS5jbXAtdGV4dC0tbGlnaHR7Y29sb3I6I2ZmZn0uY21wLXRleHQtLWJsdWV7Y29sb3I6IzAwNjdiMX0uY21wX3RleHRfX2JvZHktY29weS0tMXtmb250LXNpemU6MjJweDtsaW5lLWhlaWdodDozMHB4O2xldHRlci1zcGFjaW5nOi0wLjc1cHh9LmNtcF90ZXh0X19ib2R5LWNvcHktLTEgcHttYXJnaW4tYm90dG9tOjIycHh9LmNtcF90ZXh0X19ib2R5LWNvcHktLTJ7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS41O2xldHRlci1zcGFjaW5nOi0wLjI1cHh9LmNtcF90ZXh0X19ib2R5LWNvcHktLTIgcHttYXJnaW4tYm90dG9tOjE4cHh9LmNtcF90ZXh0X19ib2R5LWNvcHktLTN7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjJweDtsZXR0ZXItc3BhY2luZzowfS5jbXBfdGV4dF9fYm9keS1jb3B5LS0zIHB7bWFyZ2luLWJvdHRvbToxNHB4fS50ZXh0Pi5jbXAtdGV4dCwudGV4dC5jbXAtc3R5bGUtLWRhcmstZm9udD4uY21wLXRleHR7Y29sb3I6IzJmMmYzMH0udGV4dD4uY21wLXRleHQgdGFibGUsLnRleHQ+LmNtcC10ZXh0IHRoLC50ZXh0Pi5jbXAtdGV4dCB0ZCwudGV4dD4uY21wLXRleHQgdHIsLnRleHQuY21wLXN0eWxlLS1kYXJrLWZvbnQ+LmNtcC10ZXh0IHRhYmxlLC50ZXh0LmNtcC1zdHlsZS0tZGFyay1mb250Pi5jbXAtdGV4dCB0aCwudGV4dC5jbXAtc3R5bGUtLWRhcmstZm9udD4uY21wLXRleHQgdGQsLnRleHQuY21wLXN0eWxlLS1kYXJrLWZvbnQ+LmNtcC10ZXh0IHRye2JvcmRlcjoxcHggc29saWQgIzJmMmYzMH0udGV4dC5jbXAtc3R5bGUtLWxpZ2h0LWZvbnQ+LmNtcC10ZXh0e2NvbG9yOiNmZmZ9LnRleHQuY21wLXN0eWxlLS1saWdodC1mb250Pi5jbXAtdGV4dCB0YWJsZSwudGV4dC5jbXAtc3R5bGUtLWxpZ2h0LWZvbnQ+LmNtcC10ZXh0IHRoLC50ZXh0LmNtcC1zdHlsZS0tbGlnaHQtZm9udD4uY21wLXRleHQgdGQsLnRleHQuY21wLXN0eWxlLS1saWdodC1mb250Pi5jbXAtdGV4dCB0cntib3JkZXI6MXB4IHNvbGlkICNmZmZ9LnRleHQuY21wLXN0eWxlLS1saWdodC1mb250Pi5jbXAtdGV4dCBwIGEsLnRleHQuY21wLXN0eWxlLS1saWdodC1mb250Pi5jbXAtdGV4dCBwIGE6dmlzaXRlZHtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6NHB4O2JvcmRlci1yYWRpdXM6MC4yNXJlbX0udGV4dC5jbXAtc3R5bGUtLWxpZ2h0LWZvbnQ+LmNtcC10ZXh0IHAgYTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX0udGV4dC5jbXAtc3R5bGUtLWxpZ2h0LWZvbnQ+LmNtcC10ZXh0IHAgYTphY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4yNCl9LnRleHQuY21wLXN0eWxlLS1saWdodC1mb250Pi5jbXAtdGV4dCBwIGE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjozcHggc29saWQgI2ZmZn0udGV4dC5jbXAtc3R5bGUtLWJsYWNrLWZvbnQ+LmNtcC10ZXh0e2NvbG9yOiMwMDB9LnRleHQuY21wLXN0eWxlLS1ibGFjay1mb250Pi5jbXAtdGV4dCB0YWJsZSwudGV4dC5jbXAtc3R5bGUtLWJsYWNrLWZvbnQ+LmNtcC10ZXh0IHRoLC50ZXh0LmNtcC1zdHlsZS0tYmxhY2stZm9udD4uY21wLXRleHQgdGQsLnRleHQuY21wLXN0eWxlLS1ibGFjay1mb250Pi5jbXAtdGV4dCB0cntib3JkZXI6MXB4IHNvbGlkICMwMDB9YmxvY2txdW90ZXtxdW90ZXM6XCLigJxcIiBcIuKAnVwiIFwi4oCYXCIgXCLigJlcIn1ibG9ja3F1b3RlOjpiZWZvcmV7Y29udGVudDpvcGVuLXF1b3RlfWJsb2NrcXVvdGU6OmFmdGVye2NvbnRlbnQ6Y2xvc2UtcXVvdGV9LnRleHQgYTpsaW5re2NvbG9yOmJsdWV9LnRleHQgLmNtcC10ZXh0IC5jbXBfdGV4dF9fZXllYnJvd3tmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjAuODEyNXJlbTtsaW5lLWhlaWdodDoxNS42cHg7bGV0dGVyLXNwYWNpbmc6MXB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0udGV4dCAuY21wLXRleHQgLmNtcF90ZXh0X19ieWxpbmV7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MzAuMjRweDtsZXR0ZXItc3BhY2luZzotMC4wMWVtO21hcmdpbi1ib3R0b206MC4zMTI1cmVtfS50ZXh0IC5jbXAtdGV4dCBibG9ja3F1b3Rle2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDozLjA3MTI1cmVtO2xldHRlci1zcGFjaW5nOi0wLjAzZW07Zm9udC1zaXplOjIuNjI1cmVtO21hcmdpbi1ib3R0b206NC4xMjVyZW19QG1lZGlhKG1heC13aWR0aDogNzY2cHgpey50ZXh0IC5jbXAtdGV4dCAuY21wX3RleHRfX2V5ZWJyb3d7bWFyZ2luLWJvdHRvbToxLjE4NzVyZW19LnRleHQgLmNtcC10ZXh0IC5jbXBfdGV4dF9fYnlsaW5le2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MC44NzVyZW07bGluZS1oZWlnaHQ6MThweDtsZXR0ZXItc3BhY2luZzotMC4yNXB4O21hcmdpbi1ib3R0b206MH0udGV4dCAuY21wLXRleHQgYmxvY2txdW90ZXtsaW5lLWhlaWdodDoyLjI4NzVyZW07Zm9udC1zaXplOjEuODc1cmVtO21hcmdpbi1ib3R0b206MXJlbX19LnRleHQuY21wLXN0eWxlLS1kYXJrLWZvbnQ+LmNtcC10ZXh0IGJsb2NrcXVvdGV7Y29sb3I6IzJmMmYzMH0udGV4dC5jbXAtc3R5bGUtLWxpZ2h0LWZvbnQ+LmNtcC10ZXh0IGJsb2NrcXVvdGV7Y29sb3I6I2ZmZn0udGV4dC5jbXAtc3R5bGUtLWJsYWNrLWZvbnQ+LmNtcC10ZXh0IGJsb2NrcXVvdGV7Y29sb3I6IzAwMH0udGV4dC5jbXAtc3R5bGUtLWlubGluZT4uY21wLXRleHR7QGFwcGx5IHR3LWZsZXggdHctZmxleC1jb2wgbGc6dHctZmxleC1yb3cgbGc6dHctaXRlbXMtYmFzZWxpbmUgbGc6dHctanVzdGlmeS1lbmR9LnRleHQuY21wLXN0eWxlLS1pbmxpbmU+LmNtcC10ZXh0IHAsLnRleHQuY21wLXN0eWxlLS1pbmxpbmU+LmNtcC10ZXh0IGgxLC50ZXh0LmNtcC1zdHlsZS0taW5saW5lPi5jbXAtdGV4dCBoMiwudGV4dC5jbXAtc3R5bGUtLWlubGluZT4uY21wLXRleHQgaDMsLnRleHQuY21wLXN0eWxlLS1pbmxpbmU+LmNtcC10ZXh0IGg0LC50ZXh0LmNtcC1zdHlsZS0taW5saW5lPi5jbXAtdGV4dCBoNSwudGV4dC5jbXAtc3R5bGUtLWlubGluZT4uY21wLXRleHQgaDZ7QGFwcGx5IHR3LW0tMH0udGV4dC5jbXAtc3R5bGUtLWlubGluZT4uY21wLXRleHQgcDpub3QoOmZpcnN0LWNoaWxkKSwudGV4dC5jbXAtc3R5bGUtLWlubGluZT4uY21wLXRleHQgaDE6bm90KDpmaXJzdC1jaGlsZCksLnRleHQuY21wLXN0eWxlLS1pbmxpbmU+LmNtcC10ZXh0IGgyOm5vdCg6Zmlyc3QtY2hpbGQpLC50ZXh0LmNtcC1zdHlsZS0taW5saW5lPi5jbXAtdGV4dCBoMzpub3QoOmZpcnN0LWNoaWxkKSwudGV4dC5jbXAtc3R5bGUtLWlubGluZT4uY21wLXRleHQgaDQ6bm90KDpmaXJzdC1jaGlsZCksLnRleHQuY21wLXN0eWxlLS1pbmxpbmU+LmNtcC10ZXh0IGg1Om5vdCg6Zmlyc3QtY2hpbGQpLC50ZXh0LmNtcC1zdHlsZS0taW5saW5lPi5jbXAtdGV4dCBoNjpub3QoOmZpcnN0LWNoaWxkKXtAYXBwbHkgbGc6dHctbWwtNn0udGV4dCAuY21wLXRleHRfX2ZvbnQtLXRpbnRlZHtAYXBwbHkgdHctZm9udC10aW50ZWQgdHctdGV4dC10aW50ZWQgdHctZm9udC1zZW1pYm9sZH0udGV4dCAuY21wLXRleHQgcCBhLC50ZXh0IC5jbXAtdGV4dCBwIGE6dmlzaXRlZHtjb2xvcjojMmYyZjMwO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6NHB4O2JvcmRlci1yYWRpdXM6MC4yNXJlbX0udGV4dCAuY21wLXRleHQgcCBhOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDgpfS50ZXh0IC5jbXAtdGV4dCBwIGE6YWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTYpO2JvcmRlcjpub25lICFpbXBvcnRhbnR9LnRleHQgLmNtcC10ZXh0IHAgYTpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyOjNweCBzb2xpZCAjMmYyZjMwfS50ZXh0IC5jbXAtdGV4dCBhLC50ZXh0IC5jbXAtdGV4dCBhOnZpc2l0ZWR7Y29sb3I6IzJmMmYzMDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjRweDtib3JkZXItcmFkaXVzOjAuMjVyZW19LnRleHQgLmNtcC10ZXh0IGE6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wOCl9LnRleHQgLmNtcC10ZXh0IGE6YWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMTYpO2JvcmRlcjpub25lICFpbXBvcnRhbnR9LnRleHQgLmNtcC10ZXh0IGE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjozcHggc29saWQgIzJmMmYzMH0udGV4dCAuY21wLXRleHQgb2wsLnRleHQgLmNtcC10ZXh0IHVsLC5jb3JhbC1Gb3JtLWZpZWxkIG9sLC5jb3JhbC1Gb3JtLWZpZWxkIHVse21hcmdpbi1sZWZ0OjEuMjVyZW19LnRleHQgLmNtcC10ZXh0IG9sIG9sLC50ZXh0IC5jbXAtdGV4dCBvbCB1bCwudGV4dCAuY21wLXRleHQgdWwgb2wsLnRleHQgLmNtcC10ZXh0IHVsIHVsLC5jb3JhbC1Gb3JtLWZpZWxkIG9sIG9sLC5jb3JhbC1Gb3JtLWZpZWxkIG9sIHVsLC5jb3JhbC1Gb3JtLWZpZWxkIHVsIG9sLC5jb3JhbC1Gb3JtLWZpZWxkIHVsIHVse21hcmdpbi1sZWZ0OjIuNXJlbX0udGV4dCAuY21wLXRleHQgb2wsLmNvcmFsLUZvcm0tZmllbGQgb2x7bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9LnRleHQgLmNtcC10ZXh0IHVsLC5jb3JhbC1Gb3JtLWZpZWxkIHVse2xpc3Qtc3R5bGUtdHlwZTpkaXNjfUBtZWRpYSBub3QgYWxsIGFuZCAobWluLXJlc29sdXRpb246IDAuMDAxZHBjbSl7QHN1cHBvcnRzKC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZSl7LnRleHQuY21wLXRleHQtLXRvcC1tYXJnaW4gLmNtcC10ZXh0e21hcmdpbi10b3A6Y2FsYygyMCUgLSA2NXB4KX19fWJvZHkgLmljcC1yb290LWNvbnRhaW5lciAuY21wLXRleHQgcCxodG1sIC5pY3Atcm9vdC1jb250YWluZXIgLmNtcC10ZXh0IHB7bWFyZ2luLWJvdHRvbTowfSIsIi8vPT0gQ29sb3JcbiRsaWdodC1ibHVlOiAjMDA2N2IxO1xuXG4vLyBGb250IENvbG9yc1xuJGNvbG9yLWZvbnQtZGVmYXVsdC1kYXJrOiAjMzMzMzMyO1xuJGNvbG9yLWZvbnQtbGlnaHQ6ICNmZmY7XG4kY29sb3ItZm9udC1ibHVlOiAkbGlnaHQtYmx1ZTtcblxuLy8gRm9udCBTdHlsZXNcbiRmb250LXNpemU6IDE2cHg7XG4kZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBoZWx2ZXRpY2EsIGFyaWFsLCBzYW5zLXNlcmlmO1xuXG4udGV4dCB7XG4gIG9sLCB1bCB7XG4gICAgbGlzdC1zdHlsZTogcmV2ZXJ0O1xuICB9XG4gIFxuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jbXAtdGV4dC0tZGFyayB7XG4gIGNvbG9yOiAkY29sb3ItZm9udC1kZWZhdWx0LWRhcms7XG59XG5cbi5jbXAtdGV4dC0tbGlnaHQge1xuICBjb2xvcjogJGNvbG9yLWZvbnQtbGlnaHQ7XG59XG5cbi5jbXAtdGV4dC0tYmx1ZSB7XG4gIGNvbG9yOiAkY29sb3ItZm9udC1ibHVlO1xufVxuXG4uY21wX3RleHRfX2JvZHktY29weS0tMSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAtMC43NXB4O1xuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDIycHg7XG4gIH1cbn1cblxuLmNtcF90ZXh0X19ib2R5LWNvcHktLTIge1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkZm9udC1oZWlnaHQ7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4yNXB4O1xuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gIH1cbn1cblxuLmNtcF90ZXh0X19ib2R5LWNvcHktLTMge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICB9XG59XG5cbi50ZXh0LFxuLnRleHQuY21wLXN0eWxlLS1kYXJrLWZvbnQge1xuICA+IC5jbXAtdGV4dCB7XG4gICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LXRyaWNvcm4tYmxhY2s7XG5cbiAgICB0YWJsZSxcbiAgICB0aCxcbiAgICB0ZCxcbiAgICB0ciB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItcHJpbWFyeS10cmljb3JuLWJsYWNrO1xuICAgIH1cbiAgfVxufVxuXG4udGV4dC5jbXAtc3R5bGUtLWxpZ2h0LWZvbnQgPiAuY21wLXRleHQge1xuICBjb2xvcjogJGNvbG9yLXByaW1hcnktd2hpdGU7XG5cbiAgdGFibGUsXG4gIHRoLFxuICB0ZCxcbiAgdHIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1wcmltYXJ5LXdoaXRlO1xuICB9XG5cbiAgLy9JQ1AgZGFyayB0ZXh0IHN0eWxlcyBhcHBsaWVkIHZpYSBzdHlsZSBzeXN0ZW1zXG5cbiAgcCBhLFxuICBwIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRjb2xvci1wcmltYXJ5LXdoaXRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1zZW1pYm9sZDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogcmVtKDRweCk7XG4gIH1cblxuICBwIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIH1cblxuICBwIGE6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpO1xuICB9XG5cbiAgcCBhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci1wcmltYXJ5LXdoaXRlO1xuICB9XG5cbn1cblxuLnRleHQuY21wLXN0eWxlLS1ibGFjay1mb250ID4gLmNtcC10ZXh0IHtcbiAgY29sb3I6ICRjb2xvci1zZWNvbmRhcnktYmxhY2s7XG5cbiAgdGFibGUsXG4gIHRoLFxuICB0ZCxcbiAgdHIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1zZWNvbmRhcnktYmxhY2s7XG4gIH1cbn1cblxuYmxvY2txdW90ZSB7XG4gIHF1b3RlczogJ+KAnCcgJ+KAnScgJ+KAmCcgJ+KAmSc7XG59XG5cbmJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG59XG5cbmJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgY29udGVudDogY2xvc2UtcXVvdGU7XG59XG5cbi50ZXh0IGE6bGluayB7XG4gIGNvbG9yOiAjMDBmO1xufVxuXG4udGV4dCAuY21wLXRleHQgLmNtcF90ZXh0X19leWVicm93IHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiByZW0oMTNweCk7XG4gIGxpbmUtaGVpZ2h0OiAxNS42cHg7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi50ZXh0IC5jbXAtdGV4dCAuY21wX3RleHRfX2J5bGluZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogcmVtKDI0cHgpO1xuICBsaW5lLWhlaWdodDogMzAuMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG4gIG1hcmdpbi1ib3R0b206IHJlbSg1cHgpO1xufVxuXG4udGV4dCAuY21wLXRleHQgYmxvY2txdW90ZSB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiByZW0oNDkuMTRweCk7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wM2VtO1xuICBmb250LXNpemU6IHJlbSg0MnB4KTtcbiAgbWFyZ2luLWJvdHRvbTogcmVtKDY2cHgpO1xufVxuXG5AaW5jbHVkZSBtZWRpYSgnPHNtJykge1xuICAudGV4dCAuY21wLXRleHQgLmNtcF90ZXh0X19leWVicm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMTlweCk7XG4gIH1cblxuICAudGV4dCAuY21wLXRleHQgLmNtcF90ZXh0X19ieWxpbmUge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjI1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC50ZXh0IC5jbXAtdGV4dCBibG9ja3F1b3RlIHtcbiAgICBsaW5lLWhlaWdodDogcmVtKDM2LjZweCk7XG4gICAgZm9udC1zaXplOiByZW0oMzBweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDE2cHgpO1xuICB9XG59XG5cbi50ZXh0LmNtcC1zdHlsZS0tZGFyay1mb250ID4gLmNtcC10ZXh0IGJsb2NrcXVvdGUge1xuICBjb2xvcjogJGNvbG9yLXByaW1hcnktdHJpY29ybi1ibGFjaztcbn1cblxuLnRleHQuY21wLXN0eWxlLS1saWdodC1mb250ID4gLmNtcC10ZXh0IGJsb2NrcXVvdGUge1xuICBjb2xvcjogJGNvbG9yLXByaW1hcnktd2hpdGU7XG59XG5cbi50ZXh0LmNtcC1zdHlsZS0tYmxhY2stZm9udCA+IC5jbXAtdGV4dCBibG9ja3F1b3RlIHtcbiAgY29sb3I6ICRjb2xvci1zZWNvbmRhcnktYmxhY2s7XG59XG5cbi8vIElubGluZSBUZXh0IFN0eWxlXG4udGV4dC5jbXAtc3R5bGUtLWlubGluZSA+IC5jbXAtdGV4dCB7XG4gIEBhcHBseSB0dy1mbGV4IHR3LWZsZXgtY29sIGxnOnR3LWZsZXgtcm93IGxnOnR3LWl0ZW1zLWJhc2VsaW5lIGxnOnR3LWp1c3RpZnktZW5kO1xuXG4gIHAsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIEBhcHBseSB0dy1tLTA7XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIEBhcHBseSBsZzp0dy1tbC02O1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaW50ZWQgZm9udCBzdHlsaW5nXG4udGV4dCAuY21wLXRleHRfX2ZvbnQtLXRpbnRlZCB7XG4gIEBhcHBseSB0dy1mb250LXRpbnRlZCB0dy10ZXh0LXRpbnRlZCB0dy1mb250LXNlbWlib2xkO1xufVxuXG4vL0lDUCB0ZXh0IHN0eWxlc1xuXG4udGV4dCAuY21wLXRleHQgcCBhLFxuLnRleHQgLmNtcC10ZXh0IHAgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICRjb2xvci1wcmltYXJ5LXRyaWNvcm4tYmxhY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBmb250LXdlaWdodDogJGZvbnQtc2VtaWJvbGQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogcmVtKDRweCk7XG59XG5cbi50ZXh0IC5jbXAtdGV4dCBwIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4udGV4dCAuY21wLXRleHQgcCBhOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNik7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgdGFpbHdpbmRcblxufVxuXG4udGV4dCAuY21wLXRleHQgcCBhOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiAzcHggc29saWQgJGNvbG9yLXByaW1hcnktdHJpY29ybi1ibGFjaztcbn1cblxuLy8gc3R5bGVzIGZvciBUQU0tNTMwXG5cbi50ZXh0IC5jbXAtdGV4dCBhLFxuLnRleHQgLmNtcC10ZXh0IGE6dmlzaXRlZHtcbiAgY29sb3I6ICRjb2xvci1wcmltYXJ5LXRyaWNvcm4tYmxhY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBmb250LXdlaWdodDogJGZvbnQtc2VtaWJvbGQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogcmVtKDRweCk7XG59XG5cbi50ZXh0IC5jbXAtdGV4dCBhOmhvdmVye1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4udGV4dCAuY21wLXRleHQgYTphY3RpdmV7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNik7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyAvLyBOZWVkZWQgdG8gb3ZlcnJpZGUgdGFpbHdpbmRcbn1cblxuLnRleHQgLmNtcC10ZXh0IGE6Zm9jdXN7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvci1wcmltYXJ5LXRyaWNvcm4tYmxhY2s7XG59XG5cbi8vIGVuZCBvZiBzdHlsZXMgZm9yIFRBTS01MzAgXG5cbi50ZXh0IC5jbXAtdGV4dCwgLmNvcmFsLUZvcm0tZmllbGQge1xuICBvbCwgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiByZW0oMjBweCk7XG5cbiAgICBvbCwgdWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IHJlbSg0MHB4KTtcbiAgICB9XG4gIH1cblxuICBvbCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICB9XG5cbiAgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgfVxufVxuXG4vKiBGaXggZm9yIHRleHQgdG9wIG1hcmdpbiBUQU0tMjExIFNhZmFyaSBvbmx5ICoqL1xuQG1lZGlhIG5vdCBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjogLjAwMWRwY20pIHtcbiAgQHN1cHBvcnRzICgtd2Via2l0LWFwcGVhcmFuY2U6bm9uZSkge1xuICAgIC50ZXh0LmNtcC10ZXh0LS10b3AtbWFyZ2luIC5jbXAtdGV4dCB7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKDIwJSAtIDY1cHgpO1xuICAgIH1cbiAgfVxufVxuXG4vLyAgb3ZlcndyaXRlcyBkZWZhdWx0IG1hcmdpblxuYm9keSAuaWNwLXJvb3QtY29udGFpbmVyLFxuaHRtbCAuaWNwLXJvb3QtY29udGFpbmVyIHtcbiAgLmNtcC10ZXh0IHtcbiAgICBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59IiwiJGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgaGVsdmV0aWNhLCBhcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LXNpemU6IDE2cHg7XG4kZm9udC1oZWlnaHQ6IDEuNTtcbiRmb250LWxpZ2h0OiAzMDA7XG4kZm9udC1ub3JtYWw6IDQwMDtcbiRmb250LXNlbWlib2xkOiA2MDA7XG4kZm9udC1ib2xkOiA3MDA7XG4kZm9udC13ZWlnaHQtYm9sZDogNzAwO1xuXG4vLyBUZWFzZXJcbiR0ZWFzZXItZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiR0ZWFzZXItdGl0bGUtZm9udC1zaXplOiByZW0oMjRweCk7XG4kdGVhc2VyLWRlc2MtZm9udC1zaXplOiByZW0oMTZweCk7XG4kdGVhc2VyLWRlc2MtbGluZS1oZWlnaHQ6IHJlbSgyOHB4KTtcblxuLy8gR2xvYmFsIEdhdGV3YXlcbiRmb250LWZhbWlseS1vcGVuc2FuczogJ09wZW4gU2FucycsIHNhbnMtc2VyaWY7XG5cbi8vIFBhcmFncmFwaCBtaXhpbnNcbkBtaXhpbiB0ZXh0LXhzIHtcbiAgZm9udC1zaXplOiByZW0oMTBweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMTVweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oMTVweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ib2xkO1xufVxuXG5AbWl4aW4gdGV4dC1zbSB7XG4gIGZvbnQtc2l6ZTogcmVtKDEycHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDE0cHgpO1xuICBsZXR0ZXItc3BhY2luZzogLS4wMDI1cmVtO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuXG4gIEBpbmNsdWRlIGZvci1kZXNrdG9wLXVwIHtcbiAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDE2cHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiAtLjAwMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbiAgfVxufVxuXG5AbWl4aW4gdGV4dC1iYXNlIHtcbiAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMjBweCk7XG4gIGxldHRlci1zcGFjaW5nOiAtLjI1cHg7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG5cbiAgQGluY2x1ZGUgZm9yLWRlc2t0b3AtdXAge1xuICAgIGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjRweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0uMjVweDtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuICB9XG59XG5cbkBtaXhpbiB0ZXh0LWxnIHtcbiAgZm9udC1zaXplOiByZW0oMjVweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMzJweCk7XG4gIGxldHRlci1zcGFjaW5nOiAtLjc1cHg7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG59XG5cbkBtaXhpbiB0ZXh0LXhsIHtcbiAgZm9udC1zaXplOiByZW0oMjFweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMjhweCk7XG59XG5cbi8vIEhlYWRlcnMgYW5kIHRpdGxlcyBtaXhpbnNcbkBtaXhpbiBwcmUtdGl0bGUge1xuICBmb250LXNpemU6IHJlbSgxMnB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgxNnB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHJlbSgycHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cblxuQG1peGluIGhlYWRpbmcxIHtcbiAgZm9udC1zaXplOiByZW0oMzlweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMzZweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLTJweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG5cbiAgQGluY2x1ZGUgZm9yLXhsLWRlc2t0b3AtdXAge1xuICAgIGZvbnQtc2l6ZTogcmVtKDUxcHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oNDhweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMi41cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1saWdodDtcbiAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzIge1xuICBmb250LXNpemU6IHJlbSgzOXB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgzNnB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMnB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcblxuICBAaW5jbHVkZSBmb3ItdGFibGV0LXBvcnRyYWl0LXVwIHtcbiAgICBmb250LXNpemU6IHJlbSg1MXB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDQ4cHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTIuNXB4KTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbGlnaHQ7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogMTQ0MXB4KSB7XG4gICAgJi5oZWFkaW5nLWxnIHtcbiAgICAgIGZvbnQtc2l6ZTogcmVtKDcycHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IHJlbSg3MnB4KTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTRweCk7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdWktaGVhZGluZzEge1xuICBmb250LXNpemU6IHJlbSgxMnB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgxNHB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG59XG5cbkBtaXhpbiB1aS1oZWFkaW5nMiB7XG4gIGZvbnQtc2l6ZTogcmVtKDE0cHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDE2cHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKC0uMjVweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG59XG5cbkBtaXhpbiB1aS1oZWFkaW5nMyB7XG4gIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDE4cHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKC0uMjVweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG59XG5cbkBtaXhpbiB1aS1oZWFkaW5nNCB7XG4gIGZvbnQtc2l6ZTogcmVtKDIwcHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDI0cHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKC0uNXB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbn1cblxuQG1peGluIHVpLWRpc3BsYXkxIHtcbiAgZm9udC1zaXplOiByZW0oMThweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMjRweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLS4yNXB4KTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LW5vcm1hbDtcbn1cblxuQG1peGluIHVpLW92ZXJsaW5lMSB7XG4gIGZvbnQtc2l6ZTogcmVtKDEwcHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDE1cHgpO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LWJvbGQ7XG59XG5cbkBtaXhpbiB1aS1vdmVybGluZTIge1xuICBmb250LXNpemU6IHJlbSgxM3B4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgxNnB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6IHJlbSgycHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtYm9sZDtcbn1cbi8vIFRoZXNlIGhlYWRpbmdzIGJlbG93IGFyZSBkZXByZWNhdGVkLCBsZWZ0IGhlcmUgdG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlcy5cbi8vIEluaXRpYWxseSBjcmVhdGVkIGFzc3VtaW5nIEZpZ21hIHdhcyB1c2luZyBoMSwgaDIsIGgzLi4uXG4vLyBidXQgdGhvc2Ugd2VyZSBqdXN0IGdlbmVyaWMgZm9udCBzaXplcyBmb3IgKmFueXRoaW5nKi5cbkBtaXhpbiBoZWFkaW5nMyB7XG4gIGZvbnQtc2l6ZTogcmVtKDMxcHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDMwcHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKC0xLjVweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1saWdodDtcblxuICBAaW5jbHVkZSBmb3ItZGVza3RvcC11cCB7XG4gICAgZm9udC1zaXplOiByZW0oNTFweCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSg0OHB4KTtcbiAgICBsZXR0ZXItc3BhY2luZzogcmVtKC0yLjVweCk7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LWxpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nNCB7XG4gIGZvbnQtc2l6ZTogcmVtKDI1cHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDI4cHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKC0xcHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtc2VtaWJvbGQ7XG5cbiAgQGluY2x1ZGUgZm9yLWRlc2t0b3AtdXAge1xuICAgIGZvbnQtc2l6ZTogcmVtKDM2cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oNDBweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMS4yNXB4KTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtc2VtaWJvbGQ7XG4gIH1cbn1cblxuQG1peGluIGhlYWRpbmc1IHtcbiAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMjRweCk7XG4gIGxldHRlci1zcGFjaW5nOiByZW0oLS41cHgpO1xuICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuXG4gIEBpbmNsdWRlIGZvci1kZXNrdG9wLXVwIHtcbiAgICBmb250LXNpemU6IHJlbSgyNXB4KTtcbiAgICBsaW5lLWhlaWdodDogcmVtKDMycHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiByZW0oLS43NXB4KTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtbm9ybWFsO1xuICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nNiB7XG4gIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDIwcHgpO1xuICBsZXR0ZXItc3BhY2luZzogcmVtKC0uMjVweCk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG5cbiAgQGluY2x1ZGUgZm9yLWRlc2t0b3AtdXAge1xuICAgIGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oMjRweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtLjI1cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC1ub3JtYWw7XG4gIH1cbn1cbiIsIi8vIFByaW1hcnlcbiRjb2xvci1wcmltYXJ5LXRyaWNvcm4tYmxhY2s6ICMyZjJmMzA7IC8vZGVmYXVsdCBjb2xvclxuJGNvbG9yLXByaW1hcnktd2hpdGU6ICNmZmY7XG5cbiRjb2xvci1zZWNvbmRhcnktYmxhY2s6ICMwMDA7XG4kY29sb3Itc2Vjb25kYXJ5LW1pZHBvaW50LWdyYXk6ICM3Njc2NzY7XG4kY29sb3Itc2Vjb25kYXJ5LXNpdGUtd2hpdGU6ICNkY2RlZGM7XG4kY29sb3Itc2Vjb25kYXJ5LXB1cmUtd2hpdGUtaGFsZi10aW50OiAjZmFmYWY5O1xuXG4vLz09IENvbG9yXG4kY29sb3Itd2hpdGU6IHdoaXRlO1xuJGNvbG9yLWJsYWNrOiAjMDAwO1xuJGxpZ2h0LWJsdWU6ICMwMDY3YjE7XG5cbi8vIFRlYXNlclxuJGNvbG9yLXRlYXNlci10aXRsZTogIzIyMjtcbiRjb2xvci10ZWFzZXItYWN0aW9uLWxpbms6ICMwNzFjNTE7XG5cbi8vIE5vcm1hbCBtb2RlXG4kY29sb3ItZm9yZWdyb3VuZDogIzIwMjAyMDtcbiRjb2xvci1iYWNrZ3JvdW5kOiAjZTVlNWU1O1xuJGNvbG9yLWJhY2tncm91bmQtc2VjdGlvbjogI2VkZWNlNjtcbiRjb2xvci1saW5rOiAjMjAyMGUwO1xuXG4vLyBDb2xvcnNcbiRjb2xvci1kYXJrLWdyYXk6ICMyZjJmMzA7XG4kY29sb3ItY2FyYXJyYTogI2VlZWZlYTtcbiRjb2xvci1tZWRpdW0td2hpdGU6ICNkNmQ2ZDY7XG5cbi8vIFN0b3JlIERldGFpbFxuJGNvbG9yLWxpbmstYmx1ZTogIzA3MWM1MTtcblxuLy8gR2xvYmFsIEdhdGV3YXlcbiRjb2xvci1tZWdhbWVudS1saW5rLWJsdWU6ICMwMDY4YjM7XG4kY29sb3ItbWVnYW1lbnUtZGFyazogIzJmMmYzMDtcblxuJGNvbG9yLWZvY3VzOiAjMDA2OGIzO1xuXG4vLyBGb250IENvbG9yc1xuJGNvbG9yLWZvbnQtZGVmYXVsdC1kYXJrOiAjMzMzMzMyO1xuJGNvbG9yLWZvbnQtbGlnaHQ6ICNmZmY7XG4kY29sb3ItZm9udC1ibHVlOiAkbGlnaHQtYmx1ZTtcbiRjb2xvci1mb250LWJyZWFkY3J1bWI6ICRjb2xvci1saW5rLWJsdWU7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/