@charset "UTF-8";.u-Text-highlight{color:#fb263b!important}.u-Arrow-downRight:after{content:"";font-family:icons;font-style:normal;font-weight:400;text-decoration:none;text-transform:none;position:relative;display:inline-block;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);font-size:1.8rem;margin-left:3rem;color:#fb263b}#colorbox{width:364px!important;background-color:#fff;z-index:21;font-family:Barlow,Arial,sans-serif;height:460px!important}#cboxTitle{position:relative!important;top:-60%!important;font-size:19px!important;font-weight:700}#cboxContent{width:100%!important;height:100%!important;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}#cboxContent .help-block{height:16px;color:red}#cboxLoadedContent{padding:0!important;width:100%!important;height:auto!important}#cboxWrapper{max-width:100%;padding:3rem;width:364px!important}.forgotten-password .description{font-size:14px;margin-top:3rem}.forgotten-password .form-group{margin-top:2rem}.forgotten-password .control-label{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font-weight:700;font-size:15px}.forgotten-password input{display:block;width:100%;height:32px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#19212b;background-color:#fff;background-image:none;border:1px solid #ccc;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);margin-top:1rem}.forgotten-password button[type=submit]{color:#fff;background-color:#fb263b;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;padding:0 1rem;font-size:13px;line-height:1.375;margin-top:35px;text-align:center;font-weight:700;height:5rem;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.forgotten-password button[type=submit] .Icon{color:#fff;margin-left:1rem;font-size:11px}.forgotten-password .ForgottenPwdPage-captcha{margin-top:1.5rem}.forgotten-password #g-recaptcha_incorrect{visibility:hidden}#cboxOverlay{cursor:pointer;visibility:visible;width:100%;height:100%;background-color:#000;position:fixed;top:0;left:0;z-index:20}#cboxClose{width:2rem;height:2rem;position:absolute;right:13px;top:10px;background:transparent;border:0 none;color:#797979;padding:5px;font-size:25px}#cboxClose i{display:block;margin:0}.login-page__headline{font-size:11px;padding-top:2rem;font-family:Barlow,Arial,sans-serif}.login-description{font-size:17px;font-weight:700}.login-description-already-registered{font-size:19px}.login-description-connection{color:#fb263b;font-weight:400;font-size:18px}#loginForm{margin-top:7rem}#loginForm .InputBox{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}#loginForm .InputBox-label{margin-bottom:1.7rem}#loginForm .InputBox-field{padding:0 10px;line-height:normal}#loginForm .inputContainer{margin-bottom:9px}#loginForm .inputContainer .InputBox-label{font-weight:700;font-size:15px}#loginForm .inputContainer-error{color:red;margin-top:2px;height:15px;font-family:Barlow,Arial,sans-serif}#loginForm .inputContainer:nth-child(2){margin-bottom:0}#loginForm .control-label{font-size:15px;display:block}#loginForm #j_password,#loginForm #j_username{border:1.1px solid #ababab;width:100%;height:4.8rem;font-size:large;padding:0 1rem;min-height:4.5rem}#loginForm #j_password::-webkit-input-placeholder,#loginForm #j_username::-webkit-input-placeholder{font-size:15px}#loginForm #j_password::-moz-placeholder,#loginForm #j_username::-moz-placeholder{font-size:15px}#loginForm #j_password::-ms-input-placeholder,#loginForm #j_username::-ms-input-placeholder{font-size:15px}#loginForm #j_password::placeholder,#loginForm #j_username::placeholder{font-size:15px}#loginForm .forgotten-password-login{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;font-size:11px;margin-top:4px;width:100%}#loginForm .forgotten-password-login .stay-connected span{vertical-align:top}#loginForm .forgotten-password-login .js-password-forgotten{text-decoration:underline;color:#a4a4a4;font-size:12px;cursor:pointer}#loginForm .forgotten-password-login .LoginPage-hiddenCheck{position:absolute;visibility:hidden}#loginForm .forgotten-password-login .LoginPage-hiddenCheck:checked~.LoginPage-check{visibility:visible}#loginForm .forgotten-password-login .LoginPage-check{position:relative;font-size:.8rem;color:#7d7779;top:3px;left:3px;visibility:hidden;-webkit-transition:background .25s linear;-o-transition:background .25s linear;transition:background .25s linear;margin-right:1rem}#loginForm .forgotten-password-login .LoginPage-checkBox{position:relative;border:1.1px solid #7d7779;height:14px;width:15px;top:-10px;left:0}#loginForm .forgotten-password-login .LoginPage-checkBox-stay-connected{position:relative;top:1px;font-weight:700;font-size:12px}#loginForm .submit-login{position:absolute;bottom:4rem;font-family:Barlow,Arial,sans-serif;font-weight:700}#loginForm .submit-login .button-login{background-color:#fb263b;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}#loginForm .submit-login .button-loginLabel{width:100%;text-align:center}#loginForm .submit-login .button-login .Icon{margin-left:1rem;font-size:13px}#loginForm .Nav-link--rightArrow:after{color:#fff;font-size:1rem;right:auto;margin-left:10px;position:relative;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}#loginForm .form-group:nth-child(2){margin-top:3rem}#loginForm .LoginPage-captcha{margin-top:1.5rem}#loginForm .LoginPage-captcha #g-recaptcha_incorrect{visibility:hidden}.account-container{padding:100px 0 0;width:890px;margin:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font-family:Barlow,Arial,sans-serif}.account-container .login-column{border-right:1px solid #dcdcdc}.account-container .create-account-column,.account-container .login-column{padding:0 11rem 10rem 0}.account-container .create-account-column{padding:0 0 10rem 12rem}.account-container .create-account-column .title{font-size:17px}.account-container .create-account-column .title-not-yet-registered{font-weight:700;font-size:19px}.account-container .create-account-column .title .link{color:#fb263b;font-size:18px}.account-container .create-account-column .informations{font-size:16px;margin-top:7rem}.account-container .create-account-column .informations li{margin-bottom:4rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.account-container .create-account-column .informations li hr{width:12px;height:3px;background-color:red;margin:1rem 1rem 0 0}.account-container .button-container-create-account{position:absolute;bottom:4rem;font-family:Barlow,Arial,sans-serif}.account-container .button-container-create-account .Icon{margin-left:1rem;font-size:13px}.account-container .button-create-account{background-color:#fb263b;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-weight:700}.account-container .button-create-account,.account-container .button-login{font-family:Barlow,Arial,sans-serif;color:#fff;font-weight:700;font-size:1.8rem;padding:0 4rem;height:5rem}.account-container .form-create-account .Nav-link--rightArrow:after{right:auto;margin-left:10px;color:#fff;font-size:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;height:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.without-account-container{width:890px;margin:0 auto 100px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;border-top:1px solid #dcdcdc}.without-account-container .description{font-size:17px}.without-account-container .description .no-account{color:#fb263b;font-size:18px}.without-account-container .description-continue-quotation{font-size:19px;font-weight:700}.without-account-container .begin-session{border:1.3px solid #7d7779;color:#7d7779;height:4.5rem;font-size:16px;font-weight:700;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.without-account-container .Nav-link--rightArrow:after{right:auto;margin-left:10px;font-size:1rem;position:relative;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.lato-thin{font-weight:100}.lato-light,.lato-thin{font-family:Lato,serif;font-style:normal}.lato-light{font-weight:300}.lato-regular{font-weight:400}.lato-bold,.lato-regular{font-family:Lato,serif;font-style:normal}.lato-bold{font-weight:700}.lato-black{font-family:Lato,serif;font-weight:900;font-style:normal}.lato-thin-italic{font-weight:100}.lato-light-italic,.lato-thin-italic{font-family:Lato,serif;font-style:italic}.lato-light-italic{font-weight:300}.lato-regular-italic{font-weight:400}.lato-bold-italic,.lato-regular-italic{font-family:Lato,serif;font-style:italic}.lato-bold-italic{font-weight:700}.lato-black-italic{font-family:Lato,serif;font-weight:900;font-style:italic}.page-updatePassword .updatePassword-container{width:400px;margin:5rem auto;font-family:Barlow,Arial,sans-serif}.page-updatePassword .updatePassword-header{font-size:17px;text-transform:uppercase;font-weight:700;margin-bottom:4rem}.page-updatePassword .updatePassword-content-label{font-size:14px;display:block;margin-bottom:1rem;font-weight:700}.page-updatePassword .updatePassword-content .form-group{margin-bottom:4rem}.page-updatePassword .updatePassword-content .inputContainer{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.page-updatePassword .updatePassword-content .inputContainer input{border:1.1px solid #ababab;width:100%;height:4.8rem;font-size:large;min-height:4.5rem;padding:0 5rem 0 2rem}.page-updatePassword .updatePassword-content .inputContainer .Icon-container{width:5rem;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-size:1.6rem;margin-left:-12%;cursor:pointer;z-index:1}.page-updatePassword .updatePassword-content-button{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.page-updatePassword .updatePassword-content-button-backToHome,.page-updatePassword .updatePassword-content-button-submit{white-space:nowrap;width:auto;padding:0 3rem;font-size:16px;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-weight:700;height:5rem}.page-updatePassword .updatePassword-content-button-submit{background-color:#fb263b;color:#fff;margin-left:auto}.page-updatePassword .updatePassword-content-button-submit .Icon{margin-left:1rem;font-size:13px}.page-updatePassword .updatePassword-content-button-backToHome{border:1px solid #626262}.page-updatePassword .updatePassword-content .UpdatePassword-password-requirement{margin-right:1rem}.page-updatePassword .updatePassword-content .UpdatePassword-password-requirement .Icon{color:red}.page-updatePassword .updatePassword-content .UpdatePassword-password-requirement .Icon--valid{color:green}.page-updatePassword .updatePassword-content .UpdatePassword-error{height:1.5rem;color:red;margin-top:.1rem}@media (min-width:768px){.login-page__headline{display:none}.login-description{text-align:center}#loginForm .submit-login{position:inherit;margin-top:4rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}#loginForm .submit-login .button-login{padding:0 7rem}.account-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:500px;max-width:500px}.account-container .login-column{border-right:0;padding-right:0}.account-container .create-account-column{padding-left:0}.account-container .create-account-column .title{text-align:center}.account-container .button-container-create-account{position:inherit;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-top:6rem}.account-container .button-create-account{padding:0 6rem}.without-account-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-width:500px;width:500px;text-align:center}.without-account-container .description{margin:6rem 0}.without-account-container .begin-session{padding:1rem 4rem;margin:auto;width:auto}.Header-navWrapper{border-bottom:1px solid #dbd4d6}}@media (min-width:1024px){.login-page__headline{padding-left:5rem;display:block}.login-description{text-align:start}#loginForm .form-container{height:20rem}#loginForm .submit-login{position:relative;-webkit-box-pack:start;-webkit-justify-content:start;-ms-flex-pack:start;justify-content:start;bottom:0}#loginForm .submit-login .button-login{padding:0 4rem}.account-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;width:1040px;max-width:1040px;padding-left:6rem;padding-right:6rem}.account-container .login-column{padding:0 11rem 10rem 0;border-right:1px solid #dcdcdc}.account-container .create-account-column,.account-container .login-column{width:50%}.account-container .create-account-column{padding:0 0 10rem 12rem}.account-container .create-account-column .title{text-align:start}.account-container .create-account-column .informations{height:20rem}.account-container .button-container-create-account{position:relative;-webkit-box-pack:start;-webkit-justify-content:start;-ms-flex-pack:start;justify-content:start;bottom:0;margin-top:4rem}.account-container .button-create-account{padding:0 4rem}.without-account-container{width:1040px;max-width:1040px;margin:0 auto 90px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-top:4rem;padding-left:6rem;padding-right:6rem}.without-account-container .description{margin:0;text-align:start}.without-account-container .begin-session{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:0 3rem;margin-left:auto;margin-right:0}}@media (min-width:1600px){.login-page__headline{padding-left:0}}@media (max-width:767px){#colorbox{width:85%!important;margin:0 7.5%!important;left:0!important}#cboxTitle{font-size:4.3vw!important}#cboxClose{width:3rem;height:3rem}#cboxClose i{font-size:15px;color:#797979}.login-page__headline{display:none}.login-description{text-align:center}#loginForm .forgotten-password-login{margin-top:10px}#loginForm .submit-login{position:relative;top:3rem;width:100%}#loginForm .submit-login .button-login{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0 auto;width:73%;padding:0 1.5rem}.account-container{padding:50px 0;width:89%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.account-container .login-column{padding:0;border-right:0;margin-bottom:6rem;height:494px;border-bottom:1.5px solid #dbd4d6}.account-container .create-account-column,.account-container .login-column{width:100%}.account-container .create-account-column{padding:0;border:0}.account-container .create-account-column .title{text-align:center}.account-container .button-container-create-account{width:100%;bottom:0;position:relative}.account-container .button-create-account{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0 auto;width:82%;padding:0 1.5rem}.without-account-container{width:89%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:50px auto 70px;border-top:0}.without-account-container .description{text-align:center;margin-bottom:6rem}.without-account-container .begin-session{width:100%;margin:0;padding:1rem 3rem;text-align:center}.page-updatePassword .updatePassword-container{width:90%}.page-updatePassword .updatePassword-content .inputContainer .Icon-container{margin-left:-15%}.page-updatePassword .updatePassword-content-button{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.page-updatePassword .updatePassword-content-button-backToHome,.page-updatePassword .updatePassword-content-button-submit{width:100%}.page-updatePassword .updatePassword-content-button-submit{margin-bottom:1rem}.page-updatePassword .updatePassword-content .UpdatePassword-password-requirement{display:inline-block;width:45%}}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3V0aWxzL2Nzcy9fdGV4dC5zY3NzIiwiLi4vYXNzZXRzL3N0eWxlcy9pY29ucy9faWNvbnMuc2NzcyIsIl9jb25maWcvX3ZhcmlhYmxlLnNjc3MiLCIuLi92aWV3cy9sb2dpblBhZ2UvZm9yZ290dGVuUGFzc3dvcmRNb2RhbC9faW5kZXguc2NzcyIsIi4uL3ZpZXdzL2xvZ2luUGFnZS9pbmRleC5zY3NzIiwiLi4vdmlld3MvdXBkYXRlUGFzc3dvcmQvaW5kZXguc2NzcyIsIi4uLy4uL2J1aWxkL25vZGVfbW9kdWxlcy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxpQkFKQSxBQytWQyxrQkQ5VkMsdUJBQTBCLENBQzNCLEFBRUQseUJDeVZFLFlBNUljLEFBbk1kLGtCQUFvQixBQUNwQixrQkFBa0IsQUFDbEIsZ0JBQW1CLEFBQ25CLHFCQUFxQixBQUNyQixvQkFBb0IsQURWbEIsa0JBQWtCLEFBQ2xCLHFCQUFxQixBQUNyQixnQ0FBQSxBQUF3Qiw0QkFBeEIsQUFBd0Isd0JBQUEsQUFDeEIsaUJBQWlCLEFBQ2pCLGlCQUFpQixBQUNqQixhRVhhLENENlZoQixBRWhXRCxVQUNFLHNCQUF1QixBQUN2QixzQkFBc0IsQUFDdEIsV0FBVyxBQUNYLG9DRFNrQyxBQ1JsQyxzQkFBd0IsQ0FPekIsQUFFRCxXQUNFLDRCQUE2QixBQUM3QixtQkFBb0IsQUFDcEIseUJBQTBCLEFBQzFCLGVBQWlCLENBS2xCLEFBRUQsYUFDRSxxQkFBc0IsQUFDdEIsc0JBQXVCLEFBQ3ZCLG9CQUFBLEFBQWEscUJBQWIsQUFBYSxvQkFBYixBQUFhLGFBQUEsQUFDYiw0QkFBQSxBQUE4Qiw4QkFBOUIsQUFBOEIsc0NBQTlCLEFBQThCLGtDQUE5QixBQUE4Qiw2QkFBQSxDQU0vQixBQVZELHlCQU9JLFlBQVksQUFDWixTQUFVLENBQ1gsQUFHSCxtQkFDRSxvQkFBcUIsQUFDckIscUJBQXNCLEFBQ3RCLHFC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SVhJTlMgSU1QT1JUXG5AaW1wb3J0ICcuLi8uLi9hc3NldHMvc3R5bGVzL2ljb25zL2ljb25zJztcbkBpbXBvcnQgJy4uLy4uL3RoZW1lcy9fY29uZmlnL3ZhcmlhYmxlJztcblxuLnUtVGV4dC1oaWdobGlnaHQge1xuICBjb2xvcjogJHByaW1hcnkgIWltcG9ydGFudDtcbn1cblxuLnUtQXJyb3ctZG93blJpZ2h0IHtcbiAgQGluY2x1ZGUgSWNvbigkZmlsZW5hbWU6IHJpZ2h0QXJyb3csICRpbnNlcnQ6IGFmdGVyKTtcblxuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gICAgY29sb3I6ICRwcmltYXJ5O1xuICB9XG59XG5cbkBtaXhpbiByaWdodEFycm93TGluaygkbGlua0NvbG9yOiAjZmZmKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGJhcmxvdztcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjZyZW07XG4gIGNvbG9yOiAkbGlua0NvbG9yO1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuXG4gIEBpbmNsdWRlIEljb24oJGZpbGVuYW1lOiByaWdodEFycm93LCAkaW5zZXJ0OiBhZnRlcik7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICRwcmltYXJ5O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcmVtKTtcbiAgICB0cmFuc2l0aW9uOiAkZGVmYXVsdER1cmF0aW9uO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRsaW5rQ29sb3I7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnJlbSk7XG4gICAgfVxuICB9XG59XG4iLCIkZWNoby1pY29ucy1mb250OiBmYWxzZSAhZGVmYXVsdDtcbiRlY2hvLWljb25zOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRlY2hvLWljb25zLWZvbnQgPT0gdHJ1ZSB7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcImljb25zXCI7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIHNyYzogdXJsKCcvX3VpL3Jlc3BvbnNpdmUvY29tbW9uL2Fzc2V0cy9mb250cy9pY29ucy5lb3QnKTtcbiAgICBzcmM6IHVybCgnL191aS9yZXNwb25zaXZlL2NvbW1vbi9hc3NldHMvZm9udHMvaWNvbnMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW90JyksXG4gICAgdXJsKCcvX3VpL3Jlc3BvbnNpdmUvY29tbW9uL2Fzc2V0cy9mb250cy9pY29ucy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICB1cmwoJy9fdWkvcmVzcG9uc2l2ZS9jb21tb24vYXNzZXRzL2ZvbnRzL2ljb25zLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJy9fdWkvcmVzcG9uc2l2ZS9jb21tb24vYXNzZXRzL2ZvbnRzL2ljb25zLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICB1cmwoJy9fdWkvcmVzcG9uc2l2ZS9jb21tb24vYXNzZXRzL2ZvbnRzL2ljb25zLnN2ZyNpY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIH1cbn1cblxuXG5AbWl4aW4gSWNvbi1zdHlsZXMge1xuICBmb250LWZhbWlseTogXCJpY29uc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbiVJY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIC8vIHNwZWFrOiBub25lOyAvLyBvbmx5IG5lY2Vzc2FyeSBpZiBub3QgdXNpbmcgdGhlIHByaXZhdGUgdW5pY29kZSByYW5nZSAoZmlyc3RHbHlwaCBvcHRpb24pXG5cbiAgQGluY2x1ZGUgSWNvbi1zdHlsZXM7XG59XG5cbkBmdW5jdGlvbiBJY29uLWNoYXIoJGZpbGVuYW1lKSB7XG4gICRjaGFyOiBcIlwiO1xuXG4gIEBpZiAkZmlsZW5hbWUgPT0gQmFza2V0IHtcbiAgJGNoYXI6IFwiXFxFMDAxXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gQ2xvY2sge1xuICAkY2hhcjogXCJcXEUwMDJcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBhY2NvdW50IHtcbiAgJGNoYXI6IFwiXFxFMDAzXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gYWRkIHtcbiAgJGNoYXI6IFwiXFxFMDA0XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gYWxlcnQge1xuICAkY2hhcjogXCJcXEUwMDVcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBhbGVydDIge1xuICAkY2hhcjogXCJcXEUwMDZcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBhbGdvbGlhY2xvc2Uge1xuICAkY2hhcjogXCJcXEUwMDdcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBidXJnZXIge1xuICAkY2hhcjogXCJcXEUwMDhcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBidXJnZXJNZW51IHtcbiAgJGNoYXI6IFwiXFxFMDA5XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gY2FsZW5kYXIge1xuICAkY2hhcjogXCJcXEUwMEFcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBjYWxsQ2VudGVyIHtcbiAgJGNoYXI6IFwiXFxFMDBCXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gY2FydCB7XG4gICRjaGFyOiBcIlxcRTAwQ1wiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGNhcnRDYWxlbmRhciB7XG4gICRjaGFyOiBcIlxcRTAwRFwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGNoYW5nZURhdGUge1xuICAkY2hhcjogXCJcXEUwMEVcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBjaGVja1JlZCB7XG4gICRjaGFyOiBcIlxcRTAwRlwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGNoZWNrbWFyayB7XG4gICRjaGFyOiBcIlxcRTAxMFwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGNoZWNrbWFya19maWxsZWQge1xuICAkY2hhcjogXCJcXEUwMTFcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBjaGV2cm9uLWRvd24ge1xuICAkY2hhcjogXCJcXEUwMTJcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBjaGV2cm9uZSB7XG4gICRjaGFyOiBcIlxcRTAxM1wiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGNvbXBhaXJlIHtcbiAgJGNoYXI6IFwiXFxFMDE0XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gY29uZSB7XG4gICRjaGFyOiBcIlxcRTAxNVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGNvbmVlIHtcbiAgJGNoYXI6IFwiXFxFMDE2XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gY3Jvc3Mge1xuICAkY2hhcjogXCJcXEUwMTdcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBjdXN0b21lckluZm9zIHtcbiAgJGNoYXI6IFwiXFxFMDE4XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gZGF0ZSB7XG4gICRjaGFyOiBcIlxcRTAxOVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGRhdGVwaWNrZXJpZ2h0IHtcbiAgJGNoYXI6IFwiXFxFMDFBXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gZGF0ZXBpY2tlcmxlZnQge1xuICAkY2hhcjogXCJcXEUwMUJcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBkb2Mge1xuICAkY2hhcjogXCJcXEUwMUNcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBkb3duLWFycm93IHtcbiAgJGNoYXI6IFwiXFxFMDFEXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gZG93bkFycm93IHtcbiAgJGNoYXI6IFwiXFxFMDFFXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gZW1haWwge1xuICAkY2hhcjogXCJcXEUwMUZcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBlbXBsb3llZSB7XG4gICRjaGFyOiBcIlxcRTAyMFwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGV5ZSB7XG4gICRjaGFyOiBcIlxcRTAyMVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGV5ZV8yIHtcbiAgJGNoYXI6IFwiXFxFMDIyXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gZmFjZWJvb2sge1xuICAkY2hhcjogXCJcXEUwMjNcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBmaWxlLWN1cnJlbmN5IHtcbiAgJGNoYXI6IFwiXFxFMDI0XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gZmlsZSB7XG4gICRjaGFyOiBcIlxcRTAyNVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGdlYXIge1xuICAkY2hhcjogXCJcXEUwMjZcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBpbmZvIHtcbiAgJGNoYXI6IFwiXFxFMDI3XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gaW5mb1NpZ24ge1xuICAkY2hhcjogXCJcXEUwMjhcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBpbmZvcm1hdGlvbiB7XG4gICRjaGFyOiBcIlxcRTAyOVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGxlZnRBcnJvdyB7XG4gICRjaGFyOiBcIlxcRTAyQVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGxpbmtlZGluIHtcbiAgJGNoYXI6IFwiXFxFMDJCXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gbGlzdC10aW1lZCB7XG4gICRjaGFyOiBcIlxcRTAyQ1wiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGxpc3Qge1xuICAkY2hhcjogXCJcXEUwMkRcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBtYXJrZXIge1xuICAkY2hhcjogXCJcXEUwMkVcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBtaW51cyB7XG4gICRjaGFyOiBcIlxcRTAyRlwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IG1vbmV5X2V1cm8ge1xuICAkY2hhcjogXCJcXEUwMzBcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBuZXdFbWFpbCB7XG4gICRjaGFyOiBcIlxcRTAzMVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IG5ld1Bob25lIHtcbiAgJGNoYXI6IFwiXFxFMDMyXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gbmV3UGluIHtcbiAgJGNoYXI6IFwiXFxFMDMzXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gbm9yZXN1bHQge1xuICAkY2hhcjogXCJcXEUwMzRcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBwaG9uZSB7XG4gICRjaGFyOiBcIlxcRTAzNVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHBob25lMiB7XG4gICRjaGFyOiBcIlxcRTAzNlwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHBpbiB7XG4gICRjaGFyOiBcIlxcRTAzN1wiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHBsdXMge1xuICAkY2hhcjogXCJcXEUwMzhcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBwcm9maWxlIHtcbiAgJGNoYXI6IFwiXFxFMDM5XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gcmVjZWlwdC1jaGVjayB7XG4gICRjaGFyOiBcIlxcRTAzQVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHJpZ2h0QXJyb3cge1xuICAkY2hhcjogXCJcXEUwM0JcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBzZWFyY2gge1xuICAkY2hhcjogXCJcXEUwM0NcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBzaG9wcGluZ0NhcmQge1xuICAkY2hhcjogXCJcXEUwM0RcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBzaWducyB7XG4gICRjaGFyOiBcIlxcRTAzRVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHN0ZXAge1xuICAkY2hhcjogXCJcXEUwM0ZcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBzdWJ0cmFjdCB7XG4gICRjaGFyOiBcIlxcRTA0MFwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHN1aXRjYXNlIHtcbiAgJGNoYXI6IFwiXFxFMDQxXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gc3luYyB7XG4gICRjaGFyOiBcIlxcRTA0MlwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHRpbWVyZXNlcnZhdGlvbmNhbGVuZGFyIHtcbiAgJGNoYXI6IFwiXFxFMDQzXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gdG9vbHRpcCB7XG4gICRjaGFyOiBcIlxcRTA0NFwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHR3aXR0ZXIge1xuICAkY2hhcjogXCJcXEUwNDVcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSB1c2VyLXByb2ZpbGUge1xuICAkY2hhcjogXCJcXEUwNDZcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSB1c2VyX2lkZW50aXR5IHtcbiAgJGNoYXI6IFwiXFxFMDQ3XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gdmVoaWNsZS10cnVjay1mYXN0IHtcbiAgJGNoYXI6IFwiXFxFMDQ4XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gd2FyZWhvdXNlLWxveGFtIHtcbiAgJGNoYXI6IFwiXFxFMDQ5XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gd2FybmluZyB7XG4gICRjaGFyOiBcIlxcRTA0QVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHlvdXR1YmUge1xuICAkY2hhcjogXCJcXEUwNEJcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBjbGVhbmluZ3B1bXBpbmcge1xuICAkY2hhcjogXCJcXEUwNENcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBjb25jcmV0ZXRvb2xzIHtcbiAgJGNoYXI6IFwiXFxFMDREXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gY29uY3JldGV0cmVhdG1lbnQge1xuICAkY2hhcjogXCJcXEUwNEVcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBjb25zdHJ1Y3Rpb25zaXRlaW5zdGFsbCB7XG4gICRjaGFyOiBcIlxcRTA0RlwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGRlbW9saXRpb25hbmRlYXJ0aHdvcmsge1xuICAkY2hhcjogXCJcXEUwNTBcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBkZW1vbGl0aW9udG9vbHMge1xuICAkY2hhcjogXCJcXEUwNTFcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBkcmlsbCB7XG4gICRjaGFyOiBcIlxcRTA1MlwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGVsZXZhdGlvbiB7XG4gICRjaGFyOiBcIlxcRTA1M1wiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGVuZXJneWFuZGZsdWlkbWFuYWdlbWVudCB7XG4gICRjaGFyOiBcIlxcRTA1NFwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGZpbmlzaGluZ3Mge1xuICAkY2hhcjogXCJcXEUwNTVcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBmbG9vcnRyZWF0bWVudCB7XG4gICRjaGFyOiBcIlxcRTA1NlwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGdyZWVuc3BhY2VzIHtcbiAgJGNoYXI6IFwiXFxFMDU3XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gaGVpZ2h0dG9vbHMge1xuICAkY2hhcjogXCJcXEUwNThcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBpbnN0YWxsYXRpb250b29scyB7XG4gICRjaGFyOiBcIlxcRTA1OVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IGxpZmViYXNlIHtcbiAgJGNoYXI6IFwiXFxFMDVBXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gbmV3Y29uY3JldGV0cmVhdG1lbnQge1xuICAkY2hhcjogXCJcXEUwNUJcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBuZXdkZW1vbGl0aW9udG9vbHMge1xuICAkY2hhcjogXCJcXEUwNUNcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBuZXdkcmlsbCB7XG4gICRjaGFyOiBcIlxcRTA1RFwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IG5ld2VsZXZhdGlvbiB7XG4gICRjaGFyOiBcIlxcRTA1RVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IG5ld2VuZXJneWFuZGZsdWlkbWFuYWdlbWVudCB7XG4gICRjaGFyOiBcIlxcRTA1RlwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IG5ld2dyZWVuc3BhY2VzIHtcbiAgJGNoYXI6IFwiXFxFMDYwXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gbmV3bGlmZWJhc2Uge1xuICAkY2hhcjogXCJcXEUwNjFcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSBuZXd0cnVja2NyYW5lIHtcbiAgJGNoYXI6IFwiXFxFMDYyXCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gcGx1bWJpbmd0b29scyB7XG4gICRjaGFyOiBcIlxcRTA2M1wiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHRvb2xzYW5kY29uc3VtYWJsZXMge1xuICAkY2hhcjogXCJcXEUwNjRcIjtcbn1cbiAgQGlmICRmaWxlbmFtZSA9PSB0cmFuc3BvcnRhbmRoYW5kbGluZyB7XG4gICRjaGFyOiBcIlxcRTA2NVwiO1xufVxuICBAaWYgJGZpbGVuYW1lID09IHRyYW5zcG9ydHRvb2xzIHtcbiAgJGNoYXI6IFwiXFxFMDY2XCI7XG59XG4gIEBpZiAkZmlsZW5hbWUgPT0gdHJ1Y2tjcmFuZSB7XG4gICRjaGFyOiBcIlxcRTA2N1wiO1xufVxuXG5AcmV0dXJuICRjaGFyO1xufVxuXG5AbWl4aW4gSWNvbigkZmlsZW5hbWUsICRpbnNlcnQ6IGJlZm9yZSwgJGV4dGVuZDogdHJ1ZSkge1xuJjojeyRpbnNlcnR9IHtcbiAgY29udGVudDogSWNvbi1jaGFyKCRmaWxlbmFtZSk7XG4gIEBpbmNsdWRlIEljb24tc3R5bGVzO1xufVxufVxuXG5AaWYgJGVjaG8taWNvbnMgPT0gdHJ1ZSB7XG4gIC5JY29uIHtcbiAgICBAZXh0ZW5kICVJY29uO1xuICB9XG4gIC5JY29uLS1CYXNrZXQge1xuICAgIEBpbmNsdWRlIEljb24oQmFza2V0KTtcbiAgfVxuICAuSWNvbi0tQ2xvY2sge1xuICAgIEBpbmNsdWRlIEljb24oQ2xvY2spO1xuICB9XG4gIC5JY29uLS1hY2NvdW50IHtcbiAgICBAaW5jbHVkZSBJY29uKGFjY291bnQpO1xuICB9XG4gIC5JY29uLS1hZGQge1xuICAgIEBpbmNsdWRlIEljb24oYWRkKTtcbiAgfVxuICAuSWNvbi0tYWxlcnQge1xuICAgIEBpbmNsdWRlIEljb24oYWxlcnQpO1xuICB9XG4gIC5JY29uLS1hbGVydDIge1xuICAgIEBpbmNsdWRlIEljb24oYWxlcnQyKTtcbiAgfVxuICAuSWNvbi0tYWxnb2xpYWNsb3NlIHtcbiAgICBAaW5jbHVkZSBJY29uKGFsZ29saWFjbG9zZSk7XG4gIH1cbiAgLkljb24tLWJ1cmdlciB7XG4gICAgQGluY2x1ZGUgSWNvbihidXJnZXIpO1xuICB9XG4gIC5JY29uLS1idXJnZXJNZW51IHtcbiAgICBAaW5jbHVkZSBJY29uKGJ1cmdlck1lbnUpO1xuICB9XG4gIC5JY29uLS1jYWxlbmRhciB7XG4gICAgQGluY2x1ZGUgSWNvbihjYWxlbmRhcik7XG4gIH1cbiAgLkljb24tLWNhbGxDZW50ZXIge1xuICAgIEBpbmNsdWRlIEljb24oY2FsbENlbnRlcik7XG4gIH1cbiAgLkljb24tLWNhcnQge1xuICAgIEBpbmNsdWRlIEljb24oY2FydCk7XG4gIH1cbiAgLkljb24tLWNhcnRDYWxlbmRhciB7XG4gICAgQGluY2x1ZGUgSWNvbihjYXJ0Q2FsZW5kYXIpO1xuICB9XG4gIC5JY29uLS1jaGFuZ2VEYXRlIHtcbiAgICBAaW5jbHVkZSBJY29uKGNoYW5nZURhdGUpO1xuICB9XG4gIC5JY29uLS1jaGVja1JlZCB7XG4gICAgQGluY2x1ZGUgSWNvbihjaGVja1JlZCk7XG4gIH1cbiAgLkljb24tLWNoZWNrbWFyayB7XG4gICAgQGluY2x1ZGUgSWNvbihjaGVja21hcmspO1xuICB9XG4gIC5JY29uLS1jaGVja21hcmtfZmlsbGVkIHtcbiAgICBAaW5jbHVkZSBJY29uKGNoZWNrbWFya19maWxsZWQpO1xuICB9XG4gIC5JY29uLS1jaGV2cm9uLWRvd24ge1xuICAgIEBpbmNsdWRlIEljb24oY2hldnJvbi1kb3duKTtcbiAgfVxuICAuSWNvbi0tY2hldnJvbmUge1xuICAgIEBpbmNsdWRlIEljb24oY2hldnJvbmUpO1xuICB9XG4gIC5JY29uLS1jb21wYWlyZSB7XG4gICAgQGluY2x1ZGUgSWNvbihjb21wYWlyZSk7XG4gIH1cbiAgLkljb24tLWNvbmUge1xuICAgIEBpbmNsdWRlIEljb24oY29uZSk7XG4gIH1cbiAgLkljb24tLWNvbmVlIHtcbiAgICBAaW5jbHVkZSBJY29uKGNvbmVlKTtcbiAgfVxuICAuSWNvbi0tY3Jvc3Mge1xuICAgIEBpbmNsdWRlIEljb24oY3Jvc3MpO1xuICB9XG4gIC5JY29uLS1jdXN0b21lckluZm9zIHtcbiAgICBAaW5jbHVkZSBJY29uKGN1c3RvbWVySW5mb3MpO1xuICB9XG4gIC5JY29uLS1kYXRlIHtcbiAgICBAaW5jbHVkZSBJY29uKGRhdGUpO1xuICB9XG4gIC5JY29uLS1kYXRlcGlja2VyaWdodCB7XG4gICAgQGluY2x1ZGUgSWNvbihkYXRlcGlja2VyaWdodCk7XG4gIH1cbiAgLkljb24tLWRhdGVwaWNrZXJsZWZ0IHtcbiAgICBAaW5jbHVkZSBJY29uKGRhdGVwaWNrZXJsZWZ0KTtcbiAgfVxuICAuSWNvbi0tZG9jIHtcbiAgICBAaW5jbHVkZSBJY29uKGRvYyk7XG4gIH1cbiAgLkljb24tLWRvd24tYXJyb3cge1xuICAgIEBpbmNsdWRlIEljb24oZG93bi1hcnJvdyk7XG4gIH1cbiAgLkljb24tLWRvd25BcnJvdyB7XG4gICAgQGluY2x1ZGUgSWNvbihkb3duQXJyb3cpO1xuICB9XG4gIC5JY29uLS1lbWFpbCB7XG4gICAgQGluY2x1ZGUgSWNvbihlbWFpbCk7XG4gIH1cbiAgLkljb24tLWVtcGxveWVlIHtcbiAgICBAaW5jbHVkZSBJY29uKGVtcGxveWVlKTtcbiAgfVxuICAuSWNvbi0tZXllIHtcbiAgICBAaW5jbHVkZSBJY29uKGV5ZSk7XG4gIH1cbiAgLkljb24tLWV5ZV8yIHtcbiAgICBAaW5jbHVkZSBJY29uKGV5ZV8yKTtcbiAgfVxuICAuSWNvbi0tZmFjZWJvb2sge1xuICAgIEBpbmNsdWRlIEljb24oZmFjZWJvb2spO1xuICB9XG4gIC5JY29uLS1maWxlLWN1cnJlbmN5IHtcbiAgICBAaW5jbHVkZSBJY29uKGZpbGUtY3VycmVuY3kpO1xuICB9XG4gIC5JY29uLS1maWxlIHtcbiAgICBAaW5jbHVkZSBJY29uKGZpbGUpO1xuICB9XG4gIC5JY29uLS1nZWFyIHtcbiAgICBAaW5jbHVkZSBJY29uKGdlYXIpO1xuICB9XG4gIC5JY29uLS1pbmZvIHtcbiAgICBAaW5jbHVkZSBJY29uKGluZm8pO1xuICB9XG4gIC5JY29uLS1pbmZvU2lnbiB7XG4gICAgQGluY2x1ZGUgSWNvbihpbmZvU2lnbik7XG4gIH1cbiAgLkljb24tLWluZm9ybWF0aW9uIHtcbiAgICBAaW5jbHVkZSBJY29uKGluZm9ybWF0aW9uKTtcbiAgfVxuICAuSWNvbi0tbGVmdEFycm93IHtcbiAgICBAaW5jbHVkZSBJY29uKGxlZnRBcnJvdyk7XG4gIH1cbiAgLkljb24tLWxpbmtlZGluIHtcbiAgICBAaW5jbHVkZSBJY29uKGxpbmtlZGluKTtcbiAgfVxuICAuSWNvbi0tbGlzdC10aW1lZCB7XG4gICAgQGluY2x1ZGUgSWNvbihsaXN0LXRpbWVkKTtcbiAgfVxuICAuSWNvbi0tbGlzdCB7XG4gICAgQGluY2x1ZGUgSWNvbihsaXN0KTtcbiAgfVxuICAuSWNvbi0tbWFya2VyIHtcbiAgICBAaW5jbHVkZSBJY29uKG1hcmtlcik7XG4gIH1cbiAgLkljb24tLW1pbnVzIHtcbiAgICBAaW5jbHVkZSBJY29uKG1pbnVzKTtcbiAgfVxuICAuSWNvbi0tbW9uZXlfZXVybyB7XG4gICAgQGluY2x1ZGUgSWNvbihtb25leV9ldXJvKTtcbiAgfVxuICAuSWNvbi0tbmV3RW1haWwge1xuICAgIEBpbmNsdWRlIEljb24obmV3RW1haWwpO1xuICB9XG4gIC5JY29uLS1uZXdQaG9uZSB7XG4gICAgQGluY2x1ZGUgSWNvbihuZXdQaG9uZSk7XG4gIH1cbiAgLkljb24tLW5ld1BpbiB7XG4gICAgQGluY2x1ZGUgSWNvbihuZXdQaW4pO1xuICB9XG4gIC5JY29uLS1ub3Jlc3VsdCB7XG4gICAgQGluY2x1ZGUgSWNvbihub3Jlc3VsdCk7XG4gIH1cbiAgLkljb24tLXBob25lIHtcbiAgICBAaW5jbHVkZSBJY29uKHBob25lKTtcbiAgfVxuICAuSWNvbi0tcGhvbmUyIHtcbiAgICBAaW5jbHVkZSBJY29uKHBob25lMik7XG4gIH1cbiAgLkljb24tLXBpbiB7XG4gICAgQGluY2x1ZGUgSWNvbihwaW4pO1xuICB9XG4gIC5JY29uLS1wbHVzIHtcbiAgICBAaW5jbHVkZSBJY29uKHBsdXMpO1xuICB9XG4gIC5JY29uLS1wcm9maWxlIHtcbiAgICBAaW5jbHVkZSBJY29uKHByb2ZpbGUpO1xuICB9XG4gIC5JY29uLS1yZWNlaXB0LWNoZWNrIHtcbiAgICBAaW5jbHVkZSBJY29uKHJlY2VpcHQtY2hlY2spO1xuICB9XG4gIC5JY29uLS1yaWdodEFycm93IHtcbiAgICBAaW5jbHVkZSBJY29uKHJpZ2h0QXJyb3cpO1xuICB9XG4gIC5JY29uLS1zZWFyY2gge1xuICAgIEBpbmNsdWRlIEljb24oc2VhcmNoKTtcbiAgfVxuICAuSWNvbi0tc2hvcHBpbmdDYXJkIHtcbiAgICBAaW5jbHVkZSBJY29uKHNob3BwaW5nQ2FyZCk7XG4gIH1cbiAgLkljb24tLXNpZ25zIHtcbiAgICBAaW5jbHVkZSBJY29uKHNpZ25zKTtcbiAgfVxuICAuSWNvbi0tc3RlcCB7XG4gICAgQGluY2x1ZGUgSWNvbihzdGVwKTtcbiAgfVxuICAuSWNvbi0tc3VidHJhY3Qge1xuICAgIEBpbmNsdWRlIEljb24oc3VidHJhY3QpO1xuICB9XG4gIC5JY29uLS1zdWl0Y2FzZSB7XG4gICAgQGluY2x1ZGUgSWNvbihzdWl0Y2FzZSk7XG4gIH1cbiAgLkljb24tLXN5bmMge1xuICAgIEBpbmNsdWRlIEljb24oc3luYyk7XG4gIH1cbiAgLkljb24tLXRpbWVyZXNlcnZhdGlvbmNhbGVuZGFyIHtcbiAgICBAaW5jbHVkZSBJY29uKHRpbWVyZXNlcnZhdGlvbmNhbGVuZGFyKTtcbiAgfVxuICAuSWNvbi0tdG9vbHRpcCB7XG4gICAgQGluY2x1ZGUgSWNvbih0b29sdGlwKTtcbiAgfVxuICAuSWNvbi0tdHdpdHRlciB7XG4gICAgQGluY2x1ZGUgSWNvbih0d2l0dGVyKTtcbiAgfVxuICAuSWNvbi0tdXNlci1wcm9maWxlIHtcbiAgICBAaW5jbHVkZSBJY29uKHVzZXItcHJvZmlsZSk7XG4gIH1cbiAgLkljb24tLXVzZXJfaWRlbnRpdHkge1xuICAgIEBpbmNsdWRlIEljb24odXNlcl9pZGVudGl0eSk7XG4gIH1cbiAgLkljb24tLXZlaGljbGUtdHJ1Y2stZmFzdCB7XG4gICAgQGluY2x1ZGUgSWNvbih2ZWhpY2xlLXRydWNrLWZhc3QpO1xuICB9XG4gIC5JY29uLS13YXJlaG91c2UtbG94YW0ge1xuICAgIEBpbmNsdWRlIEljb24od2FyZWhvdXNlLWxveGFtKTtcbiAgfVxuICAuSWNvbi0td2FybmluZyB7XG4gICAgQGluY2x1ZGUgSWNvbih3YXJuaW5nKTtcbiAgfVxuICAuSWNvbi0teW91dHViZSB7XG4gICAgQGluY2x1ZGUgSWNvbih5b3V0dWJlKTtcbiAgfVxuICAuSWNvbi0tY2xlYW5pbmdwdW1waW5nIHtcbiAgICBAaW5jbHVkZSBJY29uKGNsZWFuaW5ncHVtcGluZyk7XG4gIH1cbiAgLkljb24tLWNvbmNyZXRldG9vbHMge1xuICAgIEBpbmNsdWRlIEljb24oY29uY3JldGV0b29scyk7XG4gIH1cbiAgLkljb24tLWNvbmNyZXRldHJlYXRtZW50IHtcbiAgICBAaW5jbHVkZSBJY29uKGNvbmNyZXRldHJlYXRtZW50KTtcbiAgfVxuICAuSWNvbi0tY29uc3RydWN0aW9uc2l0ZWluc3RhbGwge1xuICAgIEBpbmNsdWRlIEljb24oY29uc3RydWN0aW9uc2l0ZWluc3RhbGwpO1xuICB9XG4gIC5JY29uLS1kZW1vbGl0aW9uYW5kZWFydGh3b3JrIHtcbiAgICBAaW5jbHVkZSBJY29uKGRlbW9saXRpb25hbmRlYXJ0aHdvcmspO1xuICB9XG4gIC5JY29uLS1kZW1vbGl0aW9udG9vbHMge1xuICAgIEBpbmNsdWRlIEljb24oZGVtb2xpdGlvbnRvb2xzKTtcbiAgfVxuICAuSWNvbi0tZHJpbGwge1xuICAgIEBpbmNsdWRlIEljb24oZHJpbGwpO1xuICB9XG4gIC5JY29uLS1lbGV2YXRpb24ge1xuICAgIEBpbmNsdWRlIEljb24oZWxldmF0aW9uKTtcbiAgfVxuICAuSWNvbi0tZW5lcmd5YW5kZmx1aWRtYW5hZ2VtZW50IHtcbiAgICBAaW5jbHVkZSBJY29uKGVuZXJneWFuZGZsdWlkbWFuYWdlbWVudCk7XG4gIH1cbiAgLkljb24tLWZpbmlzaGluZ3Mge1xuICAgIEBpbmNsdWRlIEljb24oZmluaXNoaW5ncyk7XG4gIH1cbiAgLkljb24tLWZsb29ydHJlYXRtZW50IHtcbiAgICBAaW5jbHVkZSBJY29uKGZsb29ydHJlYXRtZW50KTtcbiAgfVxuICAuSWNvbi0tZ3JlZW5zcGFjZXMge1xuICAgIEBpbmNsdWRlIEljb24oZ3JlZW5zcGFjZXMpO1xuICB9XG4gIC5JY29uLS1oZWlnaHR0b29scyB7XG4gICAgQGluY2x1ZGUgSWNvbihoZWlnaHR0b29scyk7XG4gIH1cbiAgLkljb24tLWluc3RhbGxhdGlvbnRvb2xzIHtcbiAgICBAaW5jbHVkZSBJY29uKGluc3RhbGxhdGlvbnRvb2xzKTtcbiAgfVxuICAuSWNvbi0tbGlmZWJhc2Uge1xuICAgIEBpbmNsdWRlIEljb24obGlmZWJhc2UpO1xuICB9XG4gIC5JY29uLS1uZXdjb25jcmV0ZXRyZWF0bWVudCB7XG4gICAgQGluY2x1ZGUgSWNvbihuZXdjb25jcmV0ZXRyZWF0bWVudCk7XG4gIH1cbiAgLkljb24tLW5ld2RlbW9saXRpb250b29scyB7XG4gICAgQGluY2x1ZGUgSWNvbihuZXdkZW1vbGl0aW9udG9vbHMpO1xuICB9XG4gIC5JY29uLS1uZXdkcmlsbCB7XG4gICAgQGluY2x1ZGUgSWNvbihuZXdkcmlsbCk7XG4gIH1cbiAgLkljb24tLW5ld2VsZXZhdGlvbiB7XG4gICAgQGluY2x1ZGUgSWNvbihuZXdlbGV2YXRpb24pO1xuICB9XG4gIC5JY29uLS1uZXdlbmVyZ3lhbmRmbHVpZG1hbmFnZW1lbnQge1xuICAgIEBpbmNsdWRlIEljb24obmV3ZW5lcmd5YW5kZmx1aWRtYW5hZ2VtZW50KTtcbiAgfVxuICAuSWNvbi0tbmV3Z3JlZW5zcGFjZXMge1xuICAgIEBpbmNsdWRlIEljb24obmV3Z3JlZW5zcGFjZXMpO1xuICB9XG4gIC5JY29uLS1uZXdsaWZlYmFzZSB7XG4gICAgQGluY2x1ZGUgSWNvbihuZXdsaWZlYmFzZSk7XG4gIH1cbiAgLkljb24tLW5ld3RydWNrY3JhbmUge1xuICAgIEBpbmNsdWRlIEljb24obmV3dHJ1Y2tjcmFuZSk7XG4gIH1cbiAgLkljb24tLXBsdW1iaW5ndG9vbHMge1xuICAgIEBpbmNsdWRlIEljb24ocGx1bWJpbmd0b29scyk7XG4gIH1cbiAgLkljb24tLXRvb2xzYW5kY29uc3VtYWJsZXMge1xuICAgIEBpbmNsdWRlIEljb24odG9vbHNhbmRjb25zdW1hYmxlcyk7XG4gIH1cbiAgLkljb24tLXRyYW5zcG9ydGFuZGhhbmRsaW5nIHtcbiAgICBAaW5jbHVkZSBJY29uKHRyYW5zcG9ydGFuZGhhbmRsaW5nKTtcbiAgfVxuICAuSWNvbi0tdHJhbnNwb3J0dG9vbHMge1xuICAgIEBpbmNsdWRlIEljb24odHJhbnNwb3J0dG9vbHMpO1xuICB9XG4gIC5JY29uLS10cnVja2NyYW5lIHtcbiAgICBAaW5jbHVkZSBJY29uKHRydWNrY3JhbmUpO1xuICB9XG4gIFxufSIsIi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLyBUaGVtZSBjb2xvclxuLy9cbi8vIENvbmZpZ3VyYWJsZSBjb2xvciBieSB0aGVtZS5cblxuLy8gU3R5bGVndWlkZSBCYXNlLmNvbG9yc1xuJHByaW1hcnk6ICNmYjI2M2IgIWRlZmF1bHQ7XG4kYmxhY2s6ICMxMjEwMTAgIWRlZmF1bHQ7XG4kZGFya0dyZXk6ICMyZDJhMmMgIWRlZmF1bHQ7XG4kZ3JleTogIzdkNzc3OSAhZGVmYXVsdDtcbiRsaWdodEdyZXk6ICNmMGVkZWUgIWRlZmF1bHQ7XG4kbG94R3JlZW46ICNiZWY5YzMgIWRlZmF1bHQ7XG4kcHJpbWFyeVJlZDogI2U3MGQyMyAhZGVmYXVsdDtcblxuLy8gVHlwb2dyYXBoeVxuJHJvYm90bzogJ1JvYm90bycsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYmFybG93OiAnQmFybG93JywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIExhdG8gRm9udFxuJGxhdG86ICdMYXRvJywgc2VyaWY7XG5cbi5sYXRvLXRoaW4ge1xuICBmb250LWZhbWlseTogJGxhdG87XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmxhdG8tbGlnaHQge1xuICBmb250LWZhbWlseTogJGxhdG87XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmxhdG8tcmVndWxhciB7XG4gIGZvbnQtZmFtaWx5OiAkbGF0bztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4ubGF0by1ib2xkIHtcbiAgZm9udC1mYW1pbHk6ICRsYXRvO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5sYXRvLWJsYWNrIHtcbiAgZm9udC1mYW1pbHk6ICRsYXRvO1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5sYXRvLXRoaW4taXRhbGljIHtcbiAgZm9udC1mYW1pbHk6ICRsYXRvO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5sYXRvLWxpZ2h0LWl0YWxpYyB7XG4gIGZvbnQtZmFtaWx5OiAkbGF0bztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubGF0by1yZWd1bGFyLWl0YWxpYyB7XG4gIGZvbnQtZmFtaWx5OiAkbGF0bztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubGF0by1ib2xkLWl0YWxpYyB7XG4gIGZvbnQtZmFtaWx5OiAkbGF0bztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubGF0by1ibGFjay1pdGFsaWMge1xuICBmb250LWZhbWlseTogJGxhdG87XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy8gRm9udC1zaXplXG4kZm9udFNpemVCYXNlUmVndWxhcjogMTBweCAhZGVmYXVsdDtcblxuLy8gRm9udC1zaXplXG4kYm9sZFdlaWdodDogNzAwICFkZWZhdWx0O1xuXG4vLyBEdXJhdGlvbnNcbiRkZWZhdWx0RHVyYXRpb246IDAuNXMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKSAhZGVmYXVsdDtcblxuLy8gQm9yZGVyc1xuJGdyZXlCb3JkZXI6ICNkYmQ0ZDY7XG4iLCJAaW1wb3J0ICcuLi8uLi8uLi91dGlscy9jc3MvbWVkaWFxdWVyaWVzJztcbkBpbXBvcnQgJy4uLy4uLy4uL3RoZW1lcy9fY29uZmlnL3ZhcmlhYmxlJztcblxuI2NvbG9yYm94IHtcbiAgd2lkdGg6IDM2NHB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHotaW5kZXg6IDIxO1xuICBmb250LWZhbWlseTogJGJhcmxvdztcbiAgaGVpZ2h0OiA0NjBweCAhaW1wb3J0YW50O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICB3aWR0aDogODUlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDcuNSUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuI2Nib3hUaXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICB0b3A6IC02MCUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxOXB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICBmb250LXNpemU6IDQuM3Z3ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuI2Nib3hDb250ZW50IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblxuICAuaGVscC1ibG9jayB7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiByZWQ7XG4gIH1cbn1cblxuI2Nib3hMb2FkZWRDb250ZW50IHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuI2Nib3hXcmFwcGVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAzcmVtO1xuICB3aWR0aDogMzY0cHggIWltcG9ydGFudDtcbn1cblxuLmZvcmdvdHRlbi1wYXNzd29yZCB7XG4gIC5kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gIH1cblxuICAuZm9ybS1ncm91cCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgfVxuXG4gIC5jb250cm9sLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICBjb2xvcjogIzE5MjEyYjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG5cbiAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmIyNjNiO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM3NTtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGhlaWdodDogNXJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIC5JY29uIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuICB9XG5cbiAgLkZvcmdvdHRlblB3ZFBhZ2UtY2FwdGNoYSB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG5cbiAgJiAjZy1yZWNhcHRjaGFfaW5jb3JyZWN0IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuI2Nib3hPdmVybGF5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDIwO1xufVxuXG4jY2JveENsb3NlIHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTNweDtcbiAgdG9wOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwIG5vbmU7XG4gIGNvbG9yOiAjNzk3OTc5O1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMjVweDtcblxuICBAaW5jbHVkZSBtZWRpYSgkYWxsTW9iaWxlKSB7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAzcmVtO1xuICB9XG5cbiAgaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGFsbE1vYmlsZSkge1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgY29sb3I6ICM3OTc5Nzk7XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIE1peGluc1xuQGltcG9ydCAnLi4vLi4vdGhlbWVzL19jb25maWcvdmFyaWFibGUnO1xuQGltcG9ydCAnLi4vLi4vdXRpbHMvY3NzL21lZGlhcXVlcmllcyc7XG5AaW1wb3J0ICcuLi8uLi91dGlscy9jc3MvY29udGFpbmVyJztcbkBpbXBvcnQgJy4uLy4uL3V0aWxzL2Nzcy90ZXh0JztcbkBpbXBvcnQgJy4uLy4uL2Fzc2V0cy9zdHlsZXMvaWNvbnMvaWNvbnMnO1xuQGltcG9ydCAnLi9mb3Jnb3R0ZW5QYXNzd29yZE1vZGFsL2luZGV4JztcblxuLmxvZ2luIHtcbiAgJi1wYWdlX19oZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIGZvbnQtZmFtaWx5OiAkYmFybG93O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGRlc2t0b3BYTCkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYWxsTW9iaWxlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGFsbE1vYmlsZSkge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWluRGVza3RvcCkge1xuICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgJi1hbHJlYWR5LXJlZ2lzdGVyZWQge1xuICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgIH1cblxuICAgICYtY29ubmVjdGlvbiB7XG4gICAgICBjb2xvcjogI2ZiMjYzYjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuICB9XG59XG5cbiNsb2dpbkZvcm0ge1xuICBtYXJnaW4tdG9wOiA3cmVtO1xuXG4gIC5JbnB1dEJveCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICYtbGFiZWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS43cmVtO1xuICAgIH1cblxuICAgICYtZmllbGQge1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXRDb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcblxuICAgIC5JbnB1dEJveC1sYWJlbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICB9XG5cbiAgICAmLWVycm9yIHtcbiAgICAgIGNvbG9yOiByZWQ7XG4gICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICBmb250LWZhbWlseTogQmFybG93LCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICB9XG4gIH1cblxuICAuZm9ybS1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCRtaW5EZXNrdG9wKSB7XG4gICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dENvbnRhaW5lcjpudGgtY2hpbGQoMikge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuY29udHJvbC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgI2pfdXNlcm5hbWUsXG4gICNqX3Bhc3N3b3JkIHtcbiAgICBib3JkZXI6IDEuMXB4IHNvbGlkICNhYmFiYWI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgLy9tYXJnaW4tdG9wOiAxNHB4O1xuICAgIGZvbnQtc2l6ZTogbGFyZ2U7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIG1pbi1oZWlnaHQ6IDQuNXJlbTtcbiAgfVxuXG4gICNqX3VzZXJuYW1lOjpwbGFjZWhvbGRlcixcbiAgI2pfcGFzc3dvcmQ6OnBsYWNlaG9sZGVyIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cblxuICAuZm9yZ290dGVuLXBhc3N3b3JkLWxvZ2luIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGFsbE1vYmlsZSkge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAuc3RheS1jb25uZWN0ZWQgc3BhbiB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5qcy1wYXNzd29yZC1mb3Jnb3R0ZW4ge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICBjb2xvcjogI2E0YTRhNDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuTG9naW5QYWdlLWhpZGRlbkNoZWNrIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuTG9naW5QYWdlLWhpZGRlbkNoZWNrOmNoZWNrZWQgfiAuTG9naW5QYWdlLWNoZWNrIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLkxvZ2luUGFnZS1jaGVjayB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgIGNvbG9yOiAjN2Q3Nzc5O1xuICAgICAgdG9wOiAzcHg7XG4gICAgICBsZWZ0OiAzcHg7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yNXMgbGluZWFyO1xuICAgICAgLW8tdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI1cyBsaW5lYXI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMjVzIGxpbmVhcjtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICAuTG9naW5QYWdlLWNoZWNrQm94IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJvcmRlcjogMS4xcHggc29saWQgIzdkNzc3OTtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgdG9wOiAtMTBweDtcbiAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICYtc3RheS1jb25uZWN0ZWQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMXB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zdWJtaXQtbG9naW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDRyZW07XG4gICAgZm9udC1mYW1pbHk6IEJhcmxvdywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYWxsTW9iaWxlKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDNyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgIG1hcmdpbi10b3A6IDRyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1pbkRlc2t0b3ApIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmJ1dHRvbi1sb2dpbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmIyNjNiO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgJkxhYmVsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLkljb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkYWxsTW9iaWxlKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogNzMlO1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgICBwYWRkaW5nOiAwIDdyZW07XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRtaW5EZXNrdG9wKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgNHJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuTmF2LWxpbmstLXJpZ2h0QXJyb3c6OmFmdGVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAuZm9ybS1ncm91cDpudGgtY2hpbGQoMikge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gIH1cblxuICAuTG9naW5QYWdlLWNhcHRjaGEge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcblxuICAgICYgI2ctcmVjYXB0Y2hhX2luY29ycmVjdCB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG59XG5cbi5hY2NvdW50LWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDEwMHB4IDAgMDtcbiAgd2lkdGg6IDg5MHB4O1xuICBtYXJnaW46IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiAkYmFybG93O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICBwYWRkaW5nOiA1MHB4IDA7XG4gICAgd2lkdGg6IDg5JTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1pbkRlc2t0b3ApIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHdpZHRoOiAxMDQwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDQwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiA2cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDZyZW07XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgfVxuXG4gIC5sb2dpbi1jb2x1bW4ge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGdhaW5zYm9ybztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2cmVtO1xuICAgICAgaGVpZ2h0OiA0OTRweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDEuNXB4IHNvbGlkICNkYmQ0ZDY7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWluRGVza3RvcCkge1xuICAgICAgcGFkZGluZzogMCAxMXJlbSAxMHJlbSAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgZ2FpbnNib3JvO1xuICAgIH1cbiAgfVxuXG4gIC5sb2dpbi1jb2x1bW4sXG4gIC5jcmVhdGUtYWNjb3VudC1jb2x1bW4ge1xuICAgIHBhZGRpbmc6IDAgMTFyZW0gMTByZW0gMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtaW5EZXNrdG9wKSB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5jcmVhdGUtYWNjb3VudC1jb2x1bW4ge1xuICAgIHBhZGRpbmc6IDAgMCAxMHJlbSAxMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHRhYmxldCkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtaW5EZXNrdG9wKSB7XG4gICAgICBwYWRkaW5nOiAwIDAgMTByZW0gMTJyZW07XG4gICAgfVxuICB9XG5cbiAgLmNyZWF0ZS1hY2NvdW50LWNvbHVtbiAudGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTdweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1pbkRlc2t0b3ApIHtcbiAgICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIH1cblxuICAgICYtbm90LXlldC1yZWdpc3RlcmVkIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgIH1cbiAgfVxuXG4gIC5jcmVhdGUtYWNjb3VudC1jb2x1bW4gLnRpdGxlIC5saW5rIHtcbiAgICBjb2xvcjogI2ZiMjYzYjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cblxuICAuY3JlYXRlLWFjY291bnQtY29sdW1uIC5pbmZvcm1hdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBtYXJnaW4tdG9wOiA3cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1pbkRlc2t0b3ApIHtcbiAgICAgIGhlaWdodDogMjByZW07XG4gICAgfVxuICB9XG5cbiAgLmNyZWF0ZS1hY2NvdW50LWNvbHVtbiAuaW5mb3JtYXRpb25zIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAuY3JlYXRlLWFjY291bnQtY29sdW1uIC5pbmZvcm1hdGlvbnMgbGkgaHIge1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgICBtYXJnaW46IDFyZW0gMXJlbSAwIDA7XG4gIH1cblxuICAuYnV0dG9uLWNvbnRhaW5lci1jcmVhdGUtYWNjb3VudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogNHJlbTtcbiAgICBmb250LWZhbWlseTogQmFybG93LCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tdG9wOiA2cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtaW5EZXNrdG9wKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgICB9XG5cbiAgICAuSWNvbiB7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uLWNyZWF0ZS1hY2NvdW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmIyNjNiO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHdpZHRoOiA4MiU7XG4gICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBwYWRkaW5nOiAwIDZyZW07XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1pbkRlc2t0b3ApIHtcbiAgICAgIHBhZGRpbmc6IDAgNHJlbTtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uLWxvZ2luLFxuICAuYnV0dG9uLWNyZWF0ZS1hY2NvdW50IHtcbiAgICBmb250LWZhbWlseTogQmFybG93LCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIHBhZGRpbmc6IDAgNHJlbTtcbiAgICBoZWlnaHQ6IDVyZW07XG4gIH1cblxuICAuZm9ybS1jcmVhdGUtYWNjb3VudCAuTmF2LWxpbmstLXJpZ2h0QXJyb3c6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuLndpdGhvdXQtYWNjb3VudC1jb250YWluZXIge1xuICB3aWR0aDogODkwcHg7XG4gIG1hcmdpbjogMCBhdXRvIDEwMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgZ2FpbnNib3JvO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICB3aWR0aDogODklO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luOiA1MHB4IGF1dG8gNzBweDtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1pbkRlc2t0b3ApIHtcbiAgICB3aWR0aDogMTA0MHB4O1xuICAgIG1heC13aWR0aDogMTA0MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDkwcHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDZyZW07XG4gICAgcGFkZGluZy1yaWdodDogNnJlbTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgd2lkdGg6IDUwMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGFsbE1vYmlsZSkge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG4gICAgICBtYXJnaW46IDZyZW0gMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbWluRGVza3RvcCkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuXG4gICAgLm5vLWFjY291bnQge1xuICAgICAgY29sb3I6ICNmYjI2M2I7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgJi1jb250aW51ZS1xdW90YXRpb24ge1xuICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICB9XG5cbiAgLmJlZ2luLXNlc3Npb24ge1xuICAgIGJvcmRlcjogMS4zcHggc29saWQgIzdkNzc3OTtcbiAgICBjb2xvcjogIzdkNzc3OTtcbiAgICBoZWlnaHQ6IDQuNXJlbTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMXJlbSAzcmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCR0YWJsZXQpIHtcbiAgICAgIHBhZGRpbmc6IDFyZW0gNHJlbTtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtaW5EZXNrdG9wKSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAwIDNyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAuTmF2LWxpbmstLXJpZ2h0QXJyb3c6OmFmdGVyIHtcbiAgICByaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuLkhlYWRlci1uYXZXcmFwcGVyIHtcbiAgQGluY2x1ZGUgbWVkaWEoJG1pblRhYmxldCkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGJkNGQ2O1xuICB9XG59XG4iLCIvLyBNaXhpbnNcbkBpbXBvcnQgJy4uLy4uL3RoZW1lcy9fY29uZmlnL3ZhcmlhYmxlJztcbkBpbXBvcnQgJy4uLy4uL3V0aWxzL2Nzcy9tZWRpYXF1ZXJpZXMnO1xuXG4ucGFnZS11cGRhdGVQYXNzd29yZCB7XG4gIC51cGRhdGVQYXNzd29yZCB7XG4gICAgJi1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgbWFyZ2luOiA1cmVtIGF1dG87XG4gICAgICBmb250LWZhbWlseTogJGJhcmxvdztcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGFsbE1vYmlsZSkge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtaGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICB9XG5cbiAgICAmLWNvbnRlbnQge1xuICAgICAgJi1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICAgIH1cblxuICAgICAgLmlucHV0Q29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGJvcmRlcjogMS4xcHggc29saWQgI2FiYWJhYjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICAgICAgICBmb250LXNpemU6IGxhcmdlO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQuNXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDVyZW0gMCAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLkljb24tY29udGFpbmVyIHtcbiAgICAgICAgICB3aWR0aDogNXJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTIlO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGFsbE1vYmlsZSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNSU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYWxsTW9iaWxlKSB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1zdWJtaXQsXG4gICAgICAgICYtYmFja1RvSG9tZSB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBwYWRkaW5nOiAwIDNyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICBoZWlnaHQ6IDVyZW07XG5cbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYWxsTW9iaWxlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXN1Ym1pdCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZiMjYzYjtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRhbGxNb2JpbGUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLkljb24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1iYWNrVG9Ib21lIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNjI2MjYyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5VcGRhdGVQYXNzd29yZCB7XG4gICAgICAgICYtcGFzc3dvcmQge1xuICAgICAgICAgICYtcmVxdWlyZW1lbnRzIHtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLXJlcXVpcmVtZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGFsbE1vYmlsZSkge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgIHdpZHRoOiA0NSU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5JY29uIHtcbiAgICAgICAgICAgICAgY29sb3I6IHJlZDtcblxuICAgICAgICAgICAgICAmLS12YWxpZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGdyZWVuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1lcnJvciB7XG4gICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwLjFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcblxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgLy8gc2Nzcy1saW50OmRpc2FibGUgU3BhY2VBcm91bmRPcGVyYXRvclxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */
