diff --git a/.travis.yml b/.travis.yml index ed0474ae..7989fd61 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,8 +2,9 @@ language: node_js node_js: - "5.6.0" before_install: - - "export DISPLAY=:99.0" - - "sh -e /etc/init.d/xvfb start" + - export CHROME_BIN=/usr/bin/google-chrome + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start before_script: # - npm install -g gulp - node_modules/.bin/bower install -f @@ -11,4 +12,8 @@ script: - node_modules/.bin/gulp build:dist - node_modules/.bin/gulp test addons: - chrome: stable + apt: + sources: + - google-chrome + packages: + - google-chrome-stable diff --git a/Changelog.md b/Changelog.md index 661bd315..b6d7f357 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,33 @@ # Impac! Frontend Changelog +### v1.6.9 | 2018 - Week 6 + +#### Adds +- [IMPAC-757] Radio mode for "organizations" setting +- [IMPAC-772] Added logic to include Customer name in query data and display in UI + +#### Fixes +- [IMPAC-751] Fixed Multi-Company Ordering +- [IMPAC-758] Fixes current and debt service ratio widgets by removing chartjs x Axis labels +- [IMPAC-750] Fix list of widgets in widget panel does not always have the same layout +- [IMPAC-759] Scroll hides the graph for large number of accounts in Cash balance +- [IMPAC-758] Fix hidden date in X-axis for current ratio and debt service widget +- [IMPAC-763] Fix accounts-class-comparison histParams setting not configured properly + +------------------------------------------------------------- + +### v1.6.8 | 2018 - Week 3 + +#### Adds +- [IMPAC-734] Update generator EJS dep to latest +- [IMPAC-665] Improve sync status messaging +- Ability to differentiate bolt widgets from legacy widgets when black/whitelisting (required for Finance Bolt >= 1.5.0) + +#### Fixes +- [EMERALDSUP-69] hide x axis labels from custom calc chart + +------------------------------------------------------------- + ### v1.6.8 | 2018 - Week 3 #### Adds diff --git a/README.md b/README.md index 9992ce19..037a9923 100644 --- a/README.md +++ b/README.md @@ -407,6 +407,11 @@ angular widgetSelectorConfig: # path to a custom html template. path: null + # Whitelist / Blacklist widget templates + # - whitelist takes precedence over blacklist + # - when both are empty, all templates are displayed + whitelist: [] + blacklist: [] widgetSettings: histModeChoser: currentLabels: diff --git a/bower.json b/bower.json index 374dc6cf..30c810b8 100755 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "impac-angular", "description": "Impac! Front-End Library", - "version": "1.6.8", + "version": "1.6.9", "license": "Copyright 2017 Maestrano Pty Ltd", "repository": { "type": "git", @@ -54,7 +54,6 @@ }, "devDependencies": { "angular-mocks": "~1.6.0", - "angular-scenario": "~1.6.0", "angular-cookies": "~1.6.0", "AngularDevise": "angular-devise#~1.3.0", "angular-ui-router": "~0.3.1", diff --git a/dist/impac-angular.css b/dist/impac-angular.css index edfca180..e9d26df1 100644 --- a/dist/impac-angular.css +++ b/dist/impac-angular.css @@ -1054,7 +1054,6 @@ img { background-color: #fff; border: 1px solid #ddd; border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; display: inline-block; max-width: 100%; @@ -2475,7 +2474,6 @@ output { border: 1px solid #ccc; border-radius: 4px; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; } .form-control:focus { @@ -3370,7 +3368,6 @@ input[type="button"].btn-block { } .fade { opacity: 0; - -webkit-transition: opacity 0.15s linear; transition: opacity 0.15s linear; } .fade.in { @@ -3392,11 +3389,8 @@ tbody.collapse.in { position: relative; height: 0; overflow: hidden; - -webkit-transition-property: height, visibility; transition-property: height, visibility; - -webkit-transition-duration: 0.35s; transition-duration: 0.35s; - -webkit-transition-timing-function: ease; transition-timing-function: ease; } .caret { @@ -4897,7 +4891,6 @@ a.badge:focus { background-color: #fff; border: 1px solid #ddd; border-radius: 4px; - -webkit-transition: border 0.2s ease-in-out; transition: border 0.2s ease-in-out; } .thumbnail > img, @@ -4989,14 +4982,6 @@ a.thumbnail.active { .alert-danger .alert-link { color: #843534; } -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} @keyframes progress-bar-stripes { from { background-position: 40px 0; @@ -5023,46 +5008,39 @@ a.thumbnail.active { text-align: center; background-color: #00e5f0; box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; transition: width 0.6s ease; } .progress-striped .progress-bar, .progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-size: 40px 40px; } .progress.active .progress-bar, .progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; animation: progress-bar-stripes 2s linear infinite; } .progress-bar-success { background-color: #00e5f0; } .progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-info { background-color: #00e5f0; } .progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-warning { background-color: #977bf0; } .progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-danger { background-color: #e01f74; } .progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .media { @@ -5749,15 +5727,10 @@ button.close { outline: 0; } .modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - transition: -webkit-transform 0.3s ease-out; transition: transform 0.3s ease-out; - transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; } .modal.in .modal-dialog { - -webkit-transform: translate(0, 0); transform: translate(0, 0); } .modal-open .modal { @@ -6105,7 +6078,6 @@ button.close { .carousel-inner > .item { display: none; position: relative; - -webkit-transition: 0.6s ease-in-out left; transition: 0.6s ease-in-out left; } .carousel-inner > .item > img, @@ -6114,31 +6086,24 @@ button.close { } @media all and (transform-3d), (-webkit-transform-3d) { .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - transition: -webkit-transform 0.6s ease-in-out; transition: transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; -webkit-backface-visibility: hidden; backface-visibility: hidden; - -webkit-perspective: 1000px; perspective: 1000px; } .carousel-inner > .item.next, .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); left: 0; } .carousel-inner > .item.prev, .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); left: 0; } .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); left: 0; } @@ -6188,7 +6153,6 @@ button.close { background-color: rgba(0, 0, 0, 0); } .carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); @@ -6196,7 +6160,6 @@ button.close { .carousel-control.right { left: auto; right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); @@ -6828,15 +6791,12 @@ body { } .analytics .loader { height: 100%; - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; } .analytics .loader i { color: #67BBE9; @@ -7001,7 +6961,6 @@ body { height: 80% !important; } * { - -webkit-transition: none !important; transition: none !important; } } @@ -7071,7 +7030,6 @@ body { padding-top: 20px; } .analytics.show-dhb { - -webkit-transition: opacity 1s; transition: opacity 1s; opacity: 1; } @@ -7131,17 +7089,14 @@ body { .analytics #widget-selector .title { padding: 15px 0px; border-bottom: solid 1px #2d4859; - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + -ms-flex-align: center; + align-items: center; } .analytics #widget-selector .title p.instruction { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; margin: 0; } @media screen and (max-width: 768px) { @@ -7172,12 +7127,10 @@ body { padding: 10px 20px; font-weight: bold; min-height: 40px; - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + -ms-flex-align: center; + align-items: center; } .analytics #widget-selector .section-lines { overflow-x: hidden; @@ -7261,7 +7214,6 @@ body { } .analytics #widget-selector .widgets-section > .section-lines > .line-items-grid { width: 100%; - display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; @@ -7270,26 +7222,22 @@ body { } .analytics #widget-selector .widgets-section > .section-lines > .line-items-grid > .grid-item { padding: 0 13px; - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; -ms-flex: 0 31.33%; flex: 0 31.33%; margin: 0 1%; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + -ms-flex-align: center; + align-items: center; border-bottom: solid 1px #233845; min-height: 0px; } @media screen and (max-width: 992px) { .analytics #widget-selector .widgets-section > .section-lines > .line-items-grid > .grid-item { - -webkit-box-flex: 0; - -ms-flex: 0 100%; - flex: 0 100%; + -ms-flex: 0 100%; + flex: 0 100%; } } .analytics #widget-selector .widgets-section > .section-lines > .line-items-grid > .grid-item:hover { @@ -7297,9 +7245,8 @@ body { font-weight: normal; } .analytics #widget-selector .widgets-section > .section-lines > .line-items-grid > .grid-item p.line-item { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; } .analytics #widget-selector .bottom { height: 20px; @@ -7322,12 +7269,10 @@ body { margin-top: 5px; } .analytics #dashboard-settings-panel > div { - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; } .analytics #dashboard-settings-panel > div > * { margin: 0px 3px; @@ -7555,20 +7500,16 @@ body { color: black; } dashboard-templates-selector .templates-header { - display: -webkit-box; display: -ms-flexbox; display: flex; } dashboard-templates-selector .templates-header .templates-toggle { - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-pack: end; + justify-content: flex-end; font-size: 20px; } dashboard-templates-selector .templates-header .templates-toggle i.fa { @@ -7604,7 +7545,6 @@ dashboard-templates-selector .templates .template.selected { background-color: white; margin: 10px 0 10px 0; border-bottom: 1px solid white; - -webkit-transition: all 0.2s ease-in; transition: all 0.2s ease-in; } @media screen and (max-width: 768px) { @@ -7657,16 +7597,12 @@ dashboard-templates-selector .templates .template.selected { border-bottom: none; min-height: 7px; box-shadow: none; - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; margin-bottom: 5px; background-color: grey; - -webkit-transition: background 0.2s ease-in; transition: background 0.2s ease-in; } .analytics .impac-kpi .kpi .top-line.triggered { @@ -7705,7 +7641,6 @@ dashboard-templates-selector .templates .template.selected { .analytics .impac-kpi .kpi .kpi-show .kpi-text { padding: 7px 0; color: grey; - -webkit-transition: color 0.2s ease-in; transition: color 0.2s ease-in; } .analytics .impac-kpi .kpi .kpi-show .kpi-text > span { @@ -7730,7 +7665,6 @@ dashboard-templates-selector .templates .template.selected { font-size: 16px; padding: 10px 0; color: grey; - -webkit-transition: color 0.2s ease-in; transition: color 0.2s ease-in; } .analytics .impac-kpi .kpi .kpi-show .kpi-icon.triggered { @@ -7894,21 +7828,17 @@ dashboard-templates-selector .templates .template.selected { } .analytics .impac-kpi .kpi .kpi-edit .im-form-inline, .analytics .impac-kpi .kpi .kpi-no-data .im-form-inline { - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; box-sizing: border-box; } .analytics .impac-kpi .kpi .kpi-edit .im-form-inline > .im-form-group, .analytics .impac-kpi .kpi .kpi-no-data .im-form-inline > .im-form-group { display: block; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; + -ms-flex: 1; + flex: 1; position: relative; vertical-align: middle; margin-left: 0.175rem; @@ -7948,7 +7878,6 @@ dashboard-templates-selector .templates .template.selected { color: #b3b3b3; font-size: 1.25rem; font-weight: normal; - -webkit-transition: all 0.28s ease; transition: all 0.28s ease; } .analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar, @@ -7966,7 +7895,6 @@ dashboard-templates-selector .templates .template.selected { bottom: -0.078125rem; position: absolute; background: #358fdc; - -webkit-transition: left 0.28s ease, width 0.28s ease; transition: left 0.28s ease, width 0.28s ease; z-index: 2; } @@ -7983,7 +7911,6 @@ dashboard-templates-selector .templates .template.selected { line-height: 1.9; width: 100%; color: transparent; - -webkit-transition: all 0.28s ease; transition: all 0.28s ease; box-shadow: none; } @@ -8112,17 +8039,13 @@ dashboard-templates-selector .templates .template.selected { margin: 0.3125rem; width: 1.25rem; height: 1.25rem; - -webkit-transition: -webkit-transform 0.28s ease; - transition: -webkit-transform 0.28s ease; transition: transform 0.28s ease; - transition: transform 0.28s ease, -webkit-transform 0.28s ease; border-radius: 50%; border: 0.15625rem solid currentColor; } .analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after, .analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after { - -webkit-transform: scale(0); - transform: scale(0); + transform: scale(0); background-color: #358fdc; border-color: #358fdc; } @@ -8132,8 +8055,7 @@ dashboard-templates-selector .templates .template.selected { } .analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked ~ .im-helper::after, .analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked ~ .im-helper::after { - -webkit-transform: scale(0.5); - transform: scale(0.5); + transform: scale(0.5); } .analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked ~ .im-helper::before, .analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked ~ .im-helper::before { @@ -8155,7 +8077,6 @@ dashboard-templates-selector .templates .template.selected { z-index: 0; border: 0.15625rem solid currentColor; border-radius: 0.078125rem; - -webkit-transition: border-color 0.28s ease; transition: border-color 0.28s ease; } .analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before, @@ -8167,11 +8088,9 @@ dashboard-templates-selector .templates .template.selected { width: 0.25rem; background-color: #358fdc; display: block; - -webkit-transform-origin: left top; - transform-origin: left top; + transform-origin: left top; border-radius: 0.3125rem; content: ''; - -webkit-transition: opacity 0.28s ease, height 0s linear 0.28s; transition: opacity 0.28s ease, height 0s linear 0.28s; opacity: 0; } @@ -8179,16 +8098,14 @@ dashboard-templates-selector .templates .template.selected { .analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before { top: 0.8125rem; left: 0.475rem; - -webkit-transform: rotate(-135deg); - transform: rotate(-135deg); + transform: rotate(-135deg); box-shadow: 0 0 0 0.078125rem #fff; } .analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after, .analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after { top: 0.375rem; left: 0; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); + transform: rotate(-45deg); } .analytics .impac-kpi .kpi .kpi-edit .im-checkbox label:hover .im-helper, .analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label:hover .im-helper { @@ -8203,7 +8120,6 @@ dashboard-templates-selector .templates .template.selected { .analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked ~ .im-helper::before, .analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked ~ .im-helper::before { opacity: 1; - -webkit-transition: height 0.28s ease; transition: height 0.28s ease; } .analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked ~ .im-helper::after, @@ -8213,8 +8129,7 @@ dashboard-templates-selector .templates .template.selected { .analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked ~ .im-helper::before, .analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked ~ .im-helper::before { height: 1.5rem; - -webkit-transition-delay: 0.28s; - transition-delay: 0.28s; + transition-delay: 0.28s; } .analytics .impac-kpi .kpi .kpi-edit .im-radio + .im-radio, .analytics .impac-kpi .kpi .kpi-no-data .im-radio + .im-radio, @@ -8227,7 +8142,6 @@ dashboard-templates-selector .templates .template.selected { font-size: 1.04166667rem; color: #e01f74; overflow: hidden; - -webkit-transition: all 0.28s cubic-bezier(0.55, 0, 0.55, 0.2); transition: all 0.28s cubic-bezier(0.55, 0, 0.55, 0.2); opacity: 0; margin-top: 0; @@ -8286,7 +8200,6 @@ dashboard-templates-selector .templates .template.selected { } .analytics .impac-kpi .kpi .kpi-edit .im-button:hover, .analytics .impac-kpi .kpi .kpi-no-data .im-button:hover { - -webkit-transition: background 0.1s ease-in; transition: background 0.1s ease-in; background: #2583d3; } @@ -8306,9 +8219,8 @@ dashboard-templates-selector .templates .template.selected { position: relative; height: 46px; width: 46px; - -webkit-box-flex: 0; - -ms-flex: 0 0 56px; - flex: 0 0 56px; + -ms-flex: 0 0 56px; + flex: 0 0 56px; display: inline-block; padding: 0; margin: 4px; @@ -8333,7 +8245,6 @@ dashboard-templates-selector .templates .template.selected { } .analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary:hover, .analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary:hover { - -webkit-transition: background 0.1s ease-in; transition: background 0.1s ease-in; background: #2583d3; } @@ -8343,7 +8254,6 @@ dashboard-templates-selector .templates .template.selected { } .analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn:hover, .analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn:hover { - -webkit-transition: background 0.1s ease-in; transition: background 0.1s ease-in; background: #ca1c68; } @@ -8451,20 +8361,16 @@ dashboard-templates-selector .templates .template.selected { margin-bottom: 1.3125rem; } .analytics kpis-bar > .kpis .actions .im-form-inline { - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; box-sizing: border-box; } .analytics kpis-bar > .kpis .actions .im-form-inline > .im-form-group { display: block; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; + -ms-flex: 1; + flex: 1; position: relative; vertical-align: middle; margin-left: 0.175rem; @@ -8499,7 +8405,6 @@ dashboard-templates-selector .templates .template.selected { color: #b3b3b3; font-size: 1.25rem; font-weight: normal; - -webkit-transition: all 0.28s ease; transition: all 0.28s ease; } .analytics kpis-bar > .kpis .actions .im-form-group .im-bar { @@ -8515,7 +8420,6 @@ dashboard-templates-selector .templates .template.selected { bottom: -0.078125rem; position: absolute; background: #358fdc; - -webkit-transition: left 0.28s ease, width 0.28s ease; transition: left 0.28s ease, width 0.28s ease; z-index: 2; } @@ -8530,7 +8434,6 @@ dashboard-templates-selector .templates .template.selected { line-height: 1.9; width: 100%; color: transparent; - -webkit-transition: all 0.28s ease; transition: all 0.28s ease; box-shadow: none; } @@ -8622,16 +8525,12 @@ dashboard-templates-selector .templates .template.selected { margin: 0.3125rem; width: 1.25rem; height: 1.25rem; - -webkit-transition: -webkit-transform 0.28s ease; - transition: -webkit-transform 0.28s ease; transition: transform 0.28s ease; - transition: transform 0.28s ease, -webkit-transform 0.28s ease; border-radius: 50%; border: 0.15625rem solid currentColor; } .analytics kpis-bar > .kpis .actions .im-radio .im-helper::after { - -webkit-transform: scale(0); - transform: scale(0); + transform: scale(0); background-color: #358fdc; border-color: #358fdc; } @@ -8639,8 +8538,7 @@ dashboard-templates-selector .templates .template.selected { color: #358fdc; } .analytics kpis-bar > .kpis .actions .im-radio input:checked ~ .im-helper::after { - -webkit-transform: scale(0.5); - transform: scale(0.5); + transform: scale(0.5); } .analytics kpis-bar > .kpis .actions .im-radio input:checked ~ .im-helper::before { color: #358fdc; @@ -8659,7 +8557,6 @@ dashboard-templates-selector .templates .template.selected { z-index: 0; border: 0.15625rem solid currentColor; border-radius: 0.078125rem; - -webkit-transition: border-color 0.28s ease; transition: border-color 0.28s ease; } .analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::before, @@ -8669,26 +8566,22 @@ dashboard-templates-selector .templates .template.selected { width: 0.25rem; background-color: #358fdc; display: block; - -webkit-transform-origin: left top; - transform-origin: left top; + transform-origin: left top; border-radius: 0.3125rem; content: ''; - -webkit-transition: opacity 0.28s ease, height 0s linear 0.28s; transition: opacity 0.28s ease, height 0s linear 0.28s; opacity: 0; } .analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::before { top: 0.8125rem; left: 0.475rem; - -webkit-transform: rotate(-135deg); - transform: rotate(-135deg); + transform: rotate(-135deg); box-shadow: 0 0 0 0.078125rem #fff; } .analytics kpis-bar > .kpis .actions .im-checkbox .im-helper::after { top: 0.375rem; left: 0; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); + transform: rotate(-45deg); } .analytics kpis-bar > .kpis .actions .im-checkbox label:hover .im-helper { color: #358fdc; @@ -8699,7 +8592,6 @@ dashboard-templates-selector .templates .template.selected { .analytics kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::after, .analytics kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::before { opacity: 1; - -webkit-transition: height 0.28s ease; transition: height 0.28s ease; } .analytics kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::after { @@ -8707,8 +8599,7 @@ dashboard-templates-selector .templates .template.selected { } .analytics kpis-bar > .kpis .actions .im-checkbox input:checked ~ .im-helper::before { height: 1.5rem; - -webkit-transition-delay: 0.28s; - transition-delay: 0.28s; + transition-delay: 0.28s; } .analytics kpis-bar > .kpis .actions .im-radio + .im-radio, .analytics kpis-bar > .kpis .actions .im-checkbox + .im-checkbox { @@ -8718,7 +8609,6 @@ dashboard-templates-selector .templates .template.selected { font-size: 1.04166667rem; color: #e01f74; overflow: hidden; - -webkit-transition: all 0.28s cubic-bezier(0.55, 0, 0.55, 0.2); transition: all 0.28s cubic-bezier(0.55, 0, 0.55, 0.2); opacity: 0; margin-top: 0; @@ -8763,7 +8653,6 @@ dashboard-templates-selector .templates .template.selected { z-index: 1; } .analytics kpis-bar > .kpis .actions .im-button:hover { - -webkit-transition: background 0.1s ease-in; transition: background 0.1s ease-in; background: #2583d3; } @@ -8779,9 +8668,8 @@ dashboard-templates-selector .templates .template.selected { position: relative; height: 46px; width: 46px; - -webkit-box-flex: 0; - -ms-flex: 0 0 56px; - flex: 0 0 56px; + -ms-flex: 0 0 56px; + flex: 0 0 56px; display: inline-block; padding: 0; margin: 4px; @@ -8802,7 +8690,6 @@ dashboard-templates-selector .templates .template.selected { background: #358fdc; } .analytics kpis-bar > .kpis .actions button.im-fab.im-primary:hover { - -webkit-transition: background 0.1s ease-in; transition: background 0.1s ease-in; background: #2583d3; } @@ -8810,7 +8697,6 @@ dashboard-templates-selector .templates .template.selected { background: #e01f74; } .analytics kpis-bar > .kpis .actions button.im-fab.im-warn:hover { - -webkit-transition: background 0.1s ease-in; transition: background 0.1s ease-in; background: #ca1c68; } @@ -8824,7 +8710,6 @@ dashboard-templates-selector .templates .template.selected { width: 40px; height: 40px; font-size: 18px; - -webkit-transition: all 0.28s ease-in; transition: all 0.28s ease-in; } .analytics kpis-bar > .kpis .actions button.im-fab.add-kpis.im-primary, @@ -8944,15 +8829,12 @@ dashboard-templates-selector .templates .template.selected { border-bottom: dashed 1px; } .analytics kpis-bar > .kpis .content .kpi-loader { - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: center; + justify-content: center; min-height: 115px; } .analytics kpis-bar > .kpis .content .dates-picker-container { @@ -8975,7 +8857,6 @@ dashboard-templates-selector .templates .template.selected { display: none; } .widget-item { - -webkit-transition: width 0.3s; transition: width 0.3s; padding: 12px; } @@ -8993,13 +8874,10 @@ dashboard-templates-selector .templates .template.selected { border-bottom: none; min-height: 41px; box-shadow: 0px 1px 8px -4px; - display: -webkit-box; display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; z-index: 4; } .widget-item .content { @@ -9146,7 +9024,6 @@ dashboard-templates-selector .templates .template.selected { padding: 9px; top: 0; right: 0; - -webkit-transition: all ease .5s; transition: all ease .5s; z-index: 1; } @@ -9180,8 +9057,7 @@ dashboard-templates-selector .templates .template.selected { top: 125px; left: 50%; padding-bottom: 10px; - -webkit-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); + transform: translate(-50%, -50%); width: 85%; background-color: #f4f8f9; border-radius: 4px; @@ -9572,872 +9448,839 @@ dashboard-templates-selector .templates .template.selected { #sync-apps-modal .fa.success { color: #47ff00; } -.currency-conversions img { - width: 15px; - cursor: pointer; +.analytics .widget-item .content.accounts-assets-liability-summary .param-selector { + text-align: center; } -.currency-conversions.popover .popover-title { - background-color: black; - color: white; +.analytics .widget-item .content.accounts-assets-liability-summary .legend { + text-align: left; + max-height: 90px; } -chart-threshold .attach-panel { - padding: 5px 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: rgba(20, 132, 228, 0.16); +.analytics .widget-item .content.accounts-assets-liability-summary .legend .title { + text-align: center; + border-bottom: dashed 1px #dfe2e2; } -chart-threshold .attach-panel > .attach-panel-text { - display: inline-block; +.analytics .widget-item .content.accounts-assets-summary .legend { + text-align: left; + max-height: 115px; } -chart-threshold .attach-panel > .attach-panel-text > * { - display: inline-block; +.analytics .widget-item .content.accounts-assets-summary .legend .title { + text-align: center; + border-bottom: dashed 1px #dfe2e2; } -chart-threshold .attach-panel .panel-text-label { - text-transform: uppercase; - font-weight: bold; - color: #5B6667; - font-size: 13px; +.analytics .widget-item .content.accounts-assets-vs-liabilities .legend > .title span { + margin-left: 3px; } -chart-threshold .attach-panel .panel-text-input { - border-radius: 3px; - border: 1px white; - padding: 3px; +.analytics .widget-item .content.accounts-balance h3 { + font-weight: 300; + font-size: 14px; + color: #5B6667; + text-align: left; + margin-top: 30px; + text-align: center; } -chart-threshold .attach-panel .panel-text-currency { - font-weight: bold; - color: #000; +.analytics .widget-item .content.accounts-balance .price { + font-weight: 900; + font-size: 22px; + color: #5B6667; + text-align: center; + margin-top: 0px; } -chart-threshold .action-buttons { - display: inline-block; - padding: 0 10px; +.analytics .widget-item .content.accounts-balance-sheet { + min-height: 565px; } -chart-threshold .action-buttons button { - padding: 3px 6px; - display: inline-block; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-balance-sheet { + height: 565px; + } + .analytics .widget-item .content.accounts-balance-sheet .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -chart-threshold .action-buttons button.loading { - padding: 3px 20px; +.analytics .widget-item .content.accounts-balance-sheet .edit { + max-height: 545px; } -.analytics .widget-item .editable-title { - width: 100%; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - overflow: hidden; - height: 22px; +.analytics .widget-item .content.accounts-balance-sheet .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .editable-title .title { - text-transform: uppercase; - font-weight: 600; - font-size: 12px; - color: #4f5959; - cursor: text; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 1.9; +.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container { + overflow-y: scroll; + overflow-x: hidden; + max-height: 490px; } -.analytics .widget-item .editable-title .editable-wrap { - position: relative; - height: 20px; - min-width: 100%; - white-space: nowrap; +@media (max-width: 767px) { + .analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line:not(:last-child) { + border-bottom: dashed 1px #dfe2e2; + } } -.analytics .widget-item .editable-title .editable-wrap .editable-controls { - min-width: 100%; +.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line.header > [class*='col-'] { + position: static; } -.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-input { - height: 20px; - font-size: 12px; - text-transform: uppercase; - width: calc(100% - 65px); - padding: 0px 3px; +.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container.no-scroll { + overflow: visible; } -.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons { - background-color: white; +.analytics .widget-item .content.accounts-balance-sheet .no-data-block { + font-weight: 300; + font-size: 16px; + color: #5B6667; + text-align: center; + margin: 15px 0px; } -.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons button { - margin: 0px 0px 0px 5px; - height: 20px; - padding: 0px 5px; +.analytics .widget-item .content.accounts-cash-projection { + min-height: 565px; } -.analytics .widget-item .info-panel { - position: absolute; - top: 15px; - left: 15px; - width: calc(100% - 30px); - max-height: calc(100% - 30px); - height: 100%; - z-index: 100; - background-color: white; - border: dotted 1px #B7CDCE; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - font-family: "Lato Semibold", "Lato"; - z-index: 4; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-cash-projection { + height: 565px; + } + .analytics .widget-item .content.accounts-cash-projection .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .widget-item .info-panel:hover { - opacity: 1; +.analytics .widget-item .content.accounts-cash-projection .edit { + max-height: 545px; } -.analytics .widget-item .info-panel .i-header { - background-color: #FFC928; - color: #1E303B; - padding: 8px; - text-transform: uppercase; - font-family: "Lato Medium", "Lato"; - font-size: 12px; +.analytics .widget-item .content.accounts-cash-projection .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .info-panel .i-header .fa { - font-size: 18px; +.analytics .widget-item .content.accounts-cash-projection .cash-projection-chart { + height: calc(565px - 50px); } -.analytics .widget-item .info-panel .i-header .fa-info-circle { - float: left; +.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point { + display: none; } -.analytics .widget-item .info-panel .i-header .fa-times-circle { - cursor: pointer; - float: right; +.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span { + width: 110px; + text-align: center; } -.analytics .widget-item .info-panel .i-content { - overflow-y: auto; - overflow-x: hidden; - padding: 5px; - text-align: justify; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; +.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span img { + text-align: center; + width: 55px; + height: 25px; } -.analytics .widget-item .info-panel .i-content .row { - margin-bottom: 6px; - padding-bottom: 6px; - border-bottom: solid 1px #abc4c6; +.analytics .widget-item .content.accounts-cash-projection .dates-picker { + display: inline-block; + float: right; + font-size: 12px; } -.analytics .widget-item .info-panel .i-content .row:last-child { - margin-bottom: 0; - padding-bottom: 0; - border-bottom: none; +.analytics .widget-item .content.accounts-cash-projection transactions-list { + font-size: 12px; } -.analytics .widget-item .info-panel .i-content .row .key { - text-align: right; - font-variant: small-caps; +.analytics .widget-item .content.accounts-cash-balance { + min-height: 565px; } -@media (max-width: 991px) { - .analytics .widget-item .info-panel .i-content .row .key { - text-align: center; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-cash-balance { + height: 565px; + } + .analytics .widget-item .content.accounts-cash-balance .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; } } -.analytics .widget-item .info-panel .i-content .row .value { - text-align: justify; +.analytics .widget-item .content.accounts-cash-balance .edit { + max-height: 545px; } -.analytics .time-period-info { - font-size: 11px; - color: #ABC4C6; - text-transform: uppercase; +.analytics .widget-item .content.accounts-cash-balance .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .top-line .top-buttons { - text-align: right; - margin-top: -1px; - white-space: nowrap; - padding-left: 10px; +.analytics .widget-item .content.accounts-cash-balance .data-container { + height: calc(565px - 50px); + width: 100%; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button { - background: transparent; - border: none; - color: #c4caca; - padding: 0; - outline: none; - width: 17px; +.analytics .widget-item .content.accounts-cash-balance .left-panel { + width: 180px; + display: inline-block; + overflow: auto; + max-height: 100%; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:active, -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:focus { - box-shadow: none; +.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + min-height: 45px; + margin: 3px; + font-size: 13px; + padding: 3px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info { - font-size: 17px; +.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item:hover { + background-color: #ececec; +} +.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item i { + font-size: 19px; + padding: 4px; margin-top: 1px; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info:hover { - color: #FFC928; +.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item span { + color: #5B6667; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh { - font-size: 17px; - margin-top: 1px; +.analytics .widget-item .content.accounts-cash-balance .legend-item-icon { + width: 16px; + height: 16px; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh:hover { - color: #358fdc; +.analytics .widget-item .content.accounts-cash-balance .right-panel { + width: calc(100% - 180px); + float: right; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit { - font-size: 13px; +.analytics .widget-item .content.accounts-cash-balance .right-panel .cash-balance-chart { + height: calc(565px - 50px); } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit:hover, -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit.edit-mode { - color: #cfd849; +.analytics .widget-item .content.accounts-cash-balance .dates-picker { + display: inline-block; + float: right; + font-size: 12px; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close { - font-size: 13px; +.analytics .widget-item .content.accounts-cash-summary { + min-height: 565px; } -.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close:hover { - color: #ed1e79; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-cash-summary { + height: 565px; + } + .analytics .widget-item .content.accounts-cash-summary .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .settings.accounting-behaviour .btn.btn-primary { - background-color: #bba9f5; - border: solid 1px #977bf0; +.analytics .widget-item .content.accounts-cash-summary .edit { + max-height: 545px; } -.analytics .settings.accounting-behaviour .btn.btn-primary.focus, -.analytics .settings.accounting-behaviour .btn.btn-primary.active { - background-color: #977bf0; +.analytics .widget-item .content.accounts-cash-summary .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .content .settings.select-account { - padding: 0px 5px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container { + max-height: 540px; } -.analytics .settings.attach-kpis .attach-kpi { - padding: 8px 5px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line { + cursor: pointer; + border: solid 1px white; } -.analytics .settings.attach-kpis .attach-kpi form .row { - padding-bottom: 5px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; } -.analytics .settings.attach-kpis .attach-kpi .attach-kpi-form { - background-color: white; - border: 1px solid #ddd; - padding: 5px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover { + background-color: #e6e0fb; } -.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description { - padding: 10px 2px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select { + cursor: auto; } -.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description span { - display: block; - font-weight: bold; - font-size: 13px; +.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select:hover { + color: #626d6d; } -.analytics .settings.attach-kpis .attach-kpi form.attach-kpi-form input.attach-target { - background-color: white; - height: inherit; +.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container { + overflow-y: auto; + overflow-x: hidden; + max-height: 235px; } -.analytics .settings.attach-kpis .attach-kpi .error-messages { - color: #e01f74; - width: 120px; +.analytics .widget-item .content.accounts-cash-summary .no-element { + font-weight: 300; + font-size: 16px; + color: #5B6667; + text-align: center; } -.analytics .settings.attach-kpis .attached-kpis { - padding: 5px; +.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container { + max-height: 215px; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi { - padding: 5px 10px; +.analytics .widget-item .content.accounts-cash-summary .row.lines-group.cash { + border-top: solid 1px; + border-bottom: double; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .attached-kpi-name { - overflow: hidden; - width: 75%; - display: inline-block; - white-space: nowrap; - text-overflow: ellipsis; - margin-top: 3px; - font-size: 13px; - font-weight: bold; +.analytics .widget-item .content.accounts-class-comparison .param-selector { + text-align: center; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions { - padding-top: 2px; +.analytics .widget-item .content.accounts-class-comparison .widget-lines-container { + max-height: 94px; + color: #626d6d; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config { - display: inline-block; - text-align: left; - padding-left: 4px; - height: 20px; - border-radius: 40px; - width: 21px; - color: #358fdc; - background-color: white; - border: solid 1px #358fdc; +.analytics .widget-item .content.accounts-comparison { + min-height: 565px; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config:hover { - cursor: pointer; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-comparison { + height: 565px; + } + .analytics .widget-item .content.accounts-comparison .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi { - display: inline-block; +.analytics .widget-item .content.accounts-comparison .edit { + max-height: 545px; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i { - border-radius: 10px; - width: 21px; - color: #358fdc; - background-color: white; - height: 20px; - padding: 3px 5px 5px 5px; - border: solid 1px #358fdc; +.analytics .widget-item .content.accounts-comparison .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i:hover { +@media print { + .analytics .widget-item .content.accounts-comparison .chart-container { + max-width: 80% !important; + } +} +.analytics .widget-item .content.accounts-comparison .add-account { + position: absolute; + right: 40px; + bottom: 30px; + width: 160px; +} +.analytics .widget-item .content.accounts-comparison .add-account select { + font-size: 13px; + background-color: #977bf0; + color: white; + outline: none; + border: none; cursor: pointer; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi { - display: inline-block; +.analytics .widget-item .content.accounts-comparison .add-account select[disabled] { + cursor: not-allowed; + background-color: #bba9f5; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i { - border-radius: 10px; - width: 21px; - color: #e01f74; +.analytics .widget-item .content.accounts-comparison .add-account select[disabled]:hover { + background-color: #bba9f5; +} +.analytics .widget-item .content.accounts-comparison .add-account select:hover { + background-color: #734deb; +} +.analytics .widget-item .content.accounts-comparison .add-account select option { background-color: white; - height: 20px; - padding: 3px 5px 5px 5px; - border: solid 1px #e01f74; + color: #c4caca; } -.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i:hover { - cursor: pointer; +.analytics .widget-item .content.accounts-comparison .add-account select option[disabled] { + color: white; } -.analytics .widget-item .content .settings.chart-filters .row { - margin: 0px; +.analytics .widget-item .content.accounts-comparison button.close { + font-size: 15px; } -.analytics .widget-item .content .settings.chart-filters input[type="radio"] { +.analytics .widget-item .content.accounts-comparison .legend { + text-align: left; + max-height: 103px; +} +.analytics .widget-item .content.accounts-comparison .row { margin: 0; - margin-right: 3px; - padding: 0; - width: 13px; - height: 13px; - vertical-align: middle; - position: relative; - top: -1px; - outline: none; } -.analytics .widget-item .content .settings.chart-filters input[type="range"] { - height: auto; - width: 100%; +.analytics .widget-item .content.accounts-comparison .widget-lines-container { + font-size: 11px; + max-height: 220px; + margin-bottom: 65px; + overflow: auto; } -.analytics .settings.dates-picker h5 { - display: none; +.analytics .widget-item .content.accounts-comparison .settings.params-checkboxes { + margin-left: 13px; } -.analytics .settings.dates-picker button.btn.btn-sm { - line-height: 1; +.analytics .widget-item .content.accounts-comparison .comparable-error h5 { + margin-left: 13px; + color: #ed1e79; } -.analytics .settings.dates-picker button.btn.btn-sm.date-button { - margin: 0px 5px; +.analytics .widget-item .content.accounts-custom-calculation h3 { + margin-top: 85px; + text-align: center; + font-weight: bold; } -.analytics .settings.dates-picker button.btn.btn-sm.btn-danger { - display: none; +.analytics .widget-item .content.accounts-custom-calculation .legend { + max-height: 125px; } -.analytics .settings.dates-picker button.btn.btn-sm.btn-info { - border-radius: 3px; +.analytics.modal-custom-calculation { + margin: 0px; + padding: 0px; } -.analytics .settings.dates-picker .tooltip-inner { - text-transform: none; +.analytics.modal-custom-calculation .modal-body .edit { + overflow-y: auto; + overflow-x: hidden; + color: #5B6667; + padding: 2px; + font-size: 12px; + padding: 5px; + overflow: visible; } -.analytics .settings.dates-picker .dropdown-menu > li > div > table { - outline: none; +.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn { + border-radius: 2px; + margin-right: 5px; + padding: 3px 13px; + text-transform: uppercase; + font-size: 12px; } -.analytics .widget-item .content .settings.hist-mode-choser { - max-height: 70px; +.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default { + background-color: #c2c4c4; + border: solid 1px #a8abab; + color: white; } -.analytics .widget-item .content .settings.hist-mode-choser [common-time-period-info] { - padding-bottom: 8px; +.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default:hover { + border: solid 1px #8e9292; + background-color: #a8abab; } -.analytics .widget-item .content .settings.hist-mode-choser .options { - width: 150px; - margin: auto; - padding-bottom: 8px; - border-bottom: solid 1px #e6e6e6; - font-weight: 500; +.analytics.modal-custom-calculation .modal-body .edit h4 { + margin: 0; + margin-bottom: 8px; + text-align: left; + font-weight: normal; font-size: 12px; color: #c4caca; } -.analytics .widget-item .content .settings.hist-mode-choser .options a { - font-weight: 500; +.analytics.modal-custom-calculation .modal-body .edit .part { + margin-bottom: 8px; + padding: 10px 0px; + background-color: #fcfcfc; + border: solid 1px #dfe2e2; +} +.analytics.modal-custom-calculation .modal-body .edit .part h5 { + display: block; + margin: 0; + margin-bottom: 10px; + padding: 0px 15px; + text-transform: uppercase; + font-weight: normal; font-size: 12px; color: #c4caca; - text-transform: uppercase; } -.analytics .widget-item .content .settings.hist-mode-choser .options a.active { - color: #977bf0; +.analytics.modal-custom-calculation .modal-body .edit .part label { + font-weight: normal; } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container { - width: 28px; - height: 28px; - position: relative; - top: -14px; - margin: auto; +.analytics.modal-custom-calculation .modal-body .edit .part select.form-control { + margin: 0px; + border: solid 1px #acb0b1; + outline: none; + -webkit-box-shadow: none; + font-size: 13px; + color: #72728b; } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.right { - left: 46px; +.analytics .widget-item .content.accounts-detailed-classifications { + min-height: 565px; } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.left { - left: -30px; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-detailed-classifications { + height: 565px; + } + .analytics .widget-item .content.accounts-detailed-classifications .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow-border { - border-top: 14px solid #e6e6e6; - border-left: 14px solid transparent; - border-right: 14px solid transparent; - width: 0px; - height: 0px; +.analytics .widget-item .content.accounts-detailed-classifications .edit { + max-height: 545px; } -.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow { - border-top: 14px solid white; - border-left: 14px solid transparent; - border-right: 14px solid transparent; - position: relative; - top: 12px; - width: 0px; - height: 0px; +.analytics .widget-item .content.accounts-detailed-classifications .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .settings.limit-entries { - color: #1E303B; - text-transform: uppercase; +.analytics .widget-item .content.accounts-detailed-classifications .widget-lines-container { + overflow-y: scroll; + overflow-x: hidden; + max-height: 540px; +} +.analytics .widget-item .content.accounts-detailed-classifications .account-class-title { + margin-bottom: 8px; + margin-left: 11px; +} +.analytics .widget-item .content.accounts-detailed-classifications .time-period-info { + text-align: right; +} +.analytics .widget-item .content.accounts-detailed-classifications .widget-line.header.sorting { + border-bottom: 1px solid #ccc; +} +.analytics .widget-item .content.accounts-expense-weight .legend { + text-align: left; + max-height: 115px; +} +.analytics .widget-item .content.accounts-expense-weight .legend .title { text-align: center; - border-bottom: dashed 1px #E6E6E6; - padding-bottom: 8px; } -.analytics .settings.limit-entries a.option.badge { - color: white; - background-color: #1E303B; +.analytics .widget-item .content.accounts-expenses-revenue .legend { + font-weight: bold; +} +.analytics .widget-item .content.accounts-expenses-revenue .settings.params-checkboxes { + font-size: 12px; + margin-left: 0px; + text-align: center; +} +.analytics .widget-item .content.accounts-live-balance h3 { + font-weight: 900; + font-size: 22px; + color: #5B6667; + margin-top: 0px; + font-size: 18px; + text-align: center; + text-shadow: 1px; } -.analytics .settings.offsets .offset-value { - font-style: italic; +.analytics .widget-item .content.accounts-live-balance .statement-title { font-size: 13px; + font-weight: 400; } -.analytics .settings.offsets .offset-value .fa-trash-o { - margin-left: 10px; -} -.analytics .settings.offsets .offset-value .fa-trash-o:hover { - color: #e01f74; - cursor: pointer; +.analytics .widget-item .content.accounts-live-balance .balance-title { + font-size: 12px; } -.analytics .settings.offsets input { - width: 75%; +.analytics .widget-item .content.accounts-live-balance .currency-centered { + font-weight: 300; + font-size: 12px; + color: #5B6667; + text-align: center; } -.analytics .settings.offsets button { - width: 30px; +.analytics .widget-item .content.accounts-live-balance .headers { + text-align: center; } -.analytics .settings.organizations .widget-lines-container .widget-line { - padding: 5px 10px 5px 18px; +.analytics .widget-item .content.accounts-live-balance .spacer { + min-height: 30px; } -.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(even) { - background-color: #f3f4f4; +.analytics .widget-item .content.accounts-live-balance .price { + font-weight: 900; + font-size: 22px; + color: #5B6667; + text-align: center; + margin-top: 0px; } -.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; +.analytics .widget-item .content.accounts-live-balance .negative2 { + font-size: 14px; } -.analytics .settings.organizations .widget-lines-container .widget-line .fa { - float: right; - font-size: 20px; - cursor: pointer; +.analytics .widget-item .content.accounts-payable-receivable h3 { + text-align: center; } -.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-on { - color: #977bf0; +.analytics .widget-item .content.accounts-payable-receivable .legend { + font-weight: bold; } -.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-off { - color: #9ba6a7; +.analytics .widget-item .content.accounts-payable-receivable .payable { + margin-top: 15px; } -.analytics .widget-item .content .settings.param-selector { - display: inline-block; +.analytics .widget-item .content.accounts-payable-receivable .price { + font-weight: 900; + font-size: 22px; + color: #5B6667; + text-align: center; + margin-top: 0px; } -.analytics .widget-item .content .settings.param-selector.classic { - width: 100%; +.analytics .widget-item .content.accounts-profit-and-loss { + min-height: 565px; } -.analytics .widget-item .content .settings.param-selector.classic select { - width: 100%; - height: 25px; - border: 1px solid #ccc; - text-transform: uppercase; - margin: 0px 0px 5px 0px; +@media (min-width: 992px) { + .analytics .widget-item .content.accounts-profit-and-loss { + height: 565px; + } + .analytics .widget-item .content.accounts-profit-and-loss .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .widget-item .content .settings.param-selector a { - font-weight: normal; - color: #977bf0; - white-space: nowrap; +.analytics .widget-item .content.accounts-profit-and-loss .edit { + max-height: 545px; } -.analytics .widget-item .content .settings.param-selector .options-container { - position: absolute; - background-color: white; - text-align: left; - min-width: 150px; - max-height: 200px; - z-index: 999; - overflow-y: auto; +.analytics .widget-item .content.accounts-profit-and-loss .edit .widget-lines-container { + overflow-y: hidden; overflow-x: hidden; - box-shadow: #000000 0px 3px 15px -3px; } -.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label { - padding: 3px 5px; - font-weight: 500; - font-size: inherit; - color: black; - cursor: text; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 1.9; +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container { + max-height: 540px; } -.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label:hover { +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line { cursor: pointer; - background-color: #977bf0; - color: white; -} -.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar { - width: 8px; - background-color: #d7e2e4; -} -.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb { - background-color: #977bf0; -} -.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb:hover { - background-color: #a992f3; + border: solid 1px white; } -.analytics .settings.params-checkboxes { - padding: 2px 0px; +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; } -.analytics .settings.params-checkboxes input { - margin: 0; - height: inherit; +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover { + background-color: #e6e0fb; } -.analytics .settings.params-checkboxes span { - margin-left: 5px; +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select { + cursor: auto; } -.analytics .settings.params-checkboxes label { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - line-height: 14px; +.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select:hover { + color: #626d6d; } -.analytics .settings.tag-filter { - padding: 0px 5px; +.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container { + overflow-y: auto; + overflow-x: hidden; + max-height: 235px; } -.analytics .settings.tag-filter .btn.btn-default { - height: 32px; - width: 30px; +.analytics .widget-item .content.accounts-profit-and-loss .no-element { + font-weight: 300; + font-size: 16px; + color: #5B6667; + text-align: center; } -.analytics .settings.tag-filter .tag-lines-container { - padding: 0px 10px; +.analytics .widget-item .content.accounts-profit-and-loss .row.lines-group.profit { + border-top: solid 1px; + border-bottom: double; } -.analytics .settings.tag-filter .tag-lines-container .tag-line { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; +.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container { + max-height: 215px; } -.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col { +.analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header > [class*='col-'] { position: static; } -.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - border-radius: 4px; - border: solid 1px #ccc; -} -.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags .tag-item { - background: #79a2bb; - border-radius: 4px; - color: white; +.analytics .widget-item .content.accounts-ratios .left-panel { + max-height: 230px; + overflow-y: auto; } -.analytics .settings.tag-filter .tag-lines-container .tag-line .host { - position: static; +.analytics .widget-item .content.accounts-ratios .left-panel .separator { + border-bottom: solid 1px #5B6667; + width: 75%; } -.analytics .widget-item .content .settings.params-picker { - padding: 0px 10px; +.analytics .widget-item .content.accounts-ratios .left-panel .member { + padding-top: 20px; + padding-bottom: 20px; } -.analytics .widget-item .content .settings.params-picker .parameter { - margin: 0px 3px 3px 0px; - padding: 3px 5px; - background-color: #1E303B; - color: white; - border: solid 1px #1E303B; - border-radius: 4px; - cursor: move; - font-weight: bold; - white-space: nowrap; - float: left; +.analytics .widget-item .content.accounts-ratios .left-panel .member .price { + margin-top: 0px; + font-size: 18px; } -.analytics .widget-item .content .settings.params-picker .parameter input[type="checkbox"] { - margin: 0px -3px 0px 3px; - vertical-align: middle; - height: inherit; +.analytics .widget-item .content.accounts-ratios .left-panel button { outline: none; - cursor: pointer; -} -.analytics .widget-item .content .settings.params-picker .parameter .badge { - margin-right: 3px; - font-size: 10px; - background-color: #f2f2f2; - color: #1E303B; - padding: 2px 6px; } -.analytics .widget-item .content .settings.params-picker .parameter.unchecked { - background-color: inherit; - font-weight: normal; - color: inherit; - border-color: #c2c4c4; +.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member { + padding-top: 5px; } -.analytics .widget-item .content .settings.params-picker .parameter.unchecked .badge { - background-color: #c2c4c4; - color: white; +.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .legend { + display: none; } -.analytics .settings.time-period { - padding: 0px 5px; +.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .price { + text-align: right; } -.analytics .settings.time-period select { - height: 22px; +.analytics .widget-item .content.accounts-ratios .left-panel.simulation .separator { width: 100%; } -.analytics .settings.time-period > .row { - margin: 0px -5px 7px -5px; -} -.analytics .settings.time-period > .row > div { - padding: 0px 5px; - position: static; -} -.analytics .settings.time-period > .row .sub-setting { - padding: 5px; +.analytics .widget-item .content.hr-employee-details { + font-size: 12px; } -.analytics .widget-item .content .settings.width { - float: right; - font-size: 14px; +.analytics .widget-item .content.hr-employee-details .details-container { + padding: 0px; + max-height: none; + overflow-y: auto; + overflow-x: hidden; } -.analytics .widget-item .content .settings.width i { - color: silver; - cursor: pointer; +@media (min-width: 992px) { + .analytics .widget-item .content.hr-employee-details .details-container { + max-height: 200px; + } } -.analytics .widget-item .content .settings.width i.reduce { - margin-right: -10px; +@media (min-width: 992px) { + .analytics .widget-item .content.hr-employee-details .right-panel .details-container { + max-height: 220px; + } } -.analytics .widget-item .content .settings.width i.expand { - margin-right: -3px; +.analytics .widget-item .content.hr-employee-details .right-panel .legend { + margin-bottom: 5px; } -.analytics .widget-item .content.accounts-assets-liability-summary .param-selector { +.analytics .widget-item .content.hr-employee-details .title { text-align: center; + margin-bottom: 10px; + font-size: 14px; } -.analytics .widget-item .content.accounts-assets-liability-summary .legend { - text-align: left; - max-height: 90px; +.analytics .widget-item .content.hr-employees-list .legend { + margin-bottom: 9px; } -.analytics .widget-item .content.accounts-assets-liability-summary .legend .title { +.analytics .widget-item .content.hr-employees-list .widget-lines-container { text-align: center; - border-bottom: dashed 1px #dfe2e2; -} -.analytics .widget-item .content.accounts-assets-summary .legend { - text-align: left; - max-height: 115px; } -.analytics .widget-item .content.accounts-assets-summary .legend .title { - text-align: center; - border-bottom: dashed 1px #dfe2e2; +.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(even) { + background-color: #f0f0f0; } -.analytics .widget-item .content.accounts-assets-vs-liabilities .legend > .title span { - margin-left: 3px; +.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; } -.analytics .widget-item .content.accounts-balance h3 { - font-weight: 300; - font-size: 14px; - color: #5B6667; +.analytics .widget-item .content.hr-employees-list .edit .widget-lines-container { text-align: left; - margin-top: 30px; +} +.analytics .widget-item .content.hr-leaves-balance .employee-name { text-align: center; } -.analytics .widget-item .content.accounts-balance .price { +.analytics .widget-item .content.hr-leaves-balance .balance { font-weight: 900; font-size: 22px; color: #5B6667; text-align: center; margin-top: 0px; } -.analytics .widget-item .content.accounts-balance-sheet { - min-height: 565px; -} -@media (min-width: 992px) { - .analytics .widget-item .content.accounts-balance-sheet { - height: 565px; - } - .analytics .widget-item .content.accounts-balance-sheet .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } -} -.analytics .widget-item .content.accounts-balance-sheet .edit { - max-height: 545px; -} -.analytics .widget-item .content.accounts-balance-sheet .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; -} -.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container { - overflow-y: scroll; - overflow-x: hidden; - max-height: 490px; +.analytics .widget-item .content.hr-leaves-balance h3 { + margin-top: 33px; + text-align: center; } -@media (max-width: 767px) { - .analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line:not(:last-child) { - border-bottom: dashed 1px #dfe2e2; - } +.analytics .widget-item .content.hr-leaves-schedule .fc-button { + height: 22px; + font-size: 12px; + color: #977bf0; + background: white; + outline: none; } -.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line.header > [class*='col-'] { - position: static; +.analytics .widget-item .content.hr-leaves-schedule .fc-button:hover { + color: white; + background: #977bf0; } -.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container.no-scroll { - overflow: visible; +.analytics .widget-item .content.hr-leaves-schedule .fc-toolbar { + margin-bottom: 5px; } -.analytics .widget-item .content.accounts-balance-sheet .no-data-block { - font-weight: 300; - font-size: 16px; +.analytics .widget-item .content.hr-leaves-schedule .fc-day-grid, +.analytics .widget-item .content.hr-leaves-schedule .fc-widget-header { + font-size: 12px; color: #5B6667; - text-align: center; - margin: 15px 0px; } -.analytics .widget-item .content.accounts-cash-balance { +.analytics .widget-item .content.hr-payroll-summary { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-cash-balance { + .analytics .widget-item .content.hr-payroll-summary { height: 565px; } - .analytics .widget-item .content.accounts-cash-balance .chart-container { + .analytics .widget-item .content.hr-payroll-summary .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-cash-balance .edit { +.analytics .widget-item .content.hr-payroll-summary .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-cash-balance .edit .widget-lines-container { +.analytics .widget-item .content.hr-payroll-summary .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-cash-balance .data-container { - height: calc(565px - 50px); - width: 100%; -} -.analytics .widget-item .content.accounts-cash-balance .left-panel { - width: 180px; - display: inline-block; - overflow: auto; +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container { + max-height: 540px; } -.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - min-height: 45px; - margin: 3px; - font-size: 13px; - padding: 3px; +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line { cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + border: solid 1px white; } -.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item:hover { - background-color: #ececec; +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; } -.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item i { - font-size: 19px; - padding: 4px; - margin-top: 1px; +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line:hover { + background-color: #e6e0fb; } -.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item span { - color: #5B6667; +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select { + cursor: auto; } -.analytics .widget-item .content.accounts-cash-balance .legend-item-icon { - width: 16px; - height: 16px; +.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover { + color: #626d6d; } -.analytics .widget-item .content.accounts-cash-balance .right-panel { - width: calc(100% - 180px); - float: right; +.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container { + overflow-y: auto; + overflow-x: hidden; + max-height: 235px; } -.analytics .widget-item .content.accounts-cash-balance .right-panel .cash-balance-chart { - height: calc(565px - 50px); +.analytics .widget-item .content.hr-payroll-summary .no-element { + font-weight: 300; + font-size: 16px; + color: #5B6667; + text-align: center; } -.analytics .widget-item .content.accounts-cash-balance .dates-picker { - display: inline-block; - float: right; - font-size: 12px; +.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container { + max-height: 145px; } -.analytics .widget-item .content.accounts-cash-projection { - min-height: 565px; +.analytics .widget-item .content.hr-salaries-summary h3.left { + text-align: center; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-cash-projection { - height: 565px; + .analytics .widget-item .content.hr-salaries-summary h3.left { + margin-top: 69px; } - .analytics .widget-item .content.accounts-cash-projection .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; +} +.analytics .widget-item .content.hr-salaries-summary h3.reduced-left { + text-align: center; +} +@media (min-width: 992px) { + .analytics .widget-item .content.hr-salaries-summary h3.reduced-left { + margin-top: 10px; } } -.analytics .widget-item .content.accounts-cash-projection .edit { - max-height: 545px; +.analytics .widget-item .content.hr-salaries-summary h3.right { + margin-bottom: 10px; + text-align: center; } -.analytics .widget-item .content.accounts-cash-projection .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .widget-item .content.hr-salaries-summary .price { + margin-top: 0; } -.analytics .widget-item .content.accounts-cash-projection .cash-projection-chart { - height: calc(565px - 50px); +.analytics .widget-item .content.hr-salaries-summary .widget-lines-container { + max-height: 75px; } -.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point { - display: none; +.analytics .widget-item .content.hr-salaries-summary .widget-lines-container .widget-line { + font-size: 11px; } -.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span { - width: 110px; +@media (min-width: 480px) and (max-width: 991px) { + .analytics .widget-item .content.hr-salaries-summary .right-panel .chart-container { + max-width: 320px; + } +} +.analytics .widget-item .content.hr-superannuation-accruals h3 { + margin-top: 63px; text-align: center; } -.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span img { +.analytics .widget-item .content.hr-superannuation-accruals .legend { + margin-top: 23px; +} +.analytics .widget-item .content.hr-superannuation-accruals .currency { + font-size: 14px; +} +.analytics .widget-item .content.hr-superannuation-accruals .price { + font-weight: 900; + font-size: 22px; + color: #5B6667; text-align: center; - width: 55px; - height: 25px; + margin-top: 0px; } -.analytics .widget-item .content.accounts-cash-projection .dates-picker { - display: inline-block; - float: right; - font-size: 12px; +.analytics .widget-item .content.hr-timesheets .currency { + font-size: 14px; } -.analytics .widget-item .content.accounts-cash-projection transactions-list { - font-size: 12px; +.analytics .widget-item .content.hr-timesheets .widget-lines-container { + max-height: 210px; } -.analytics .widget-item .content.accounts-cash-summary { +.analytics .widget-item .content.invoices-aged-payables-receivables { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-cash-summary { + .analytics .widget-item .content.invoices-aged-payables-receivables { height: 565px; } - .analytics .widget-item .content.accounts-cash-summary .chart-container { + .analytics .widget-item .content.invoices-aged-payables-receivables .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-cash-summary .edit { +.analytics .widget-item .content.invoices-aged-payables-receivables .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-cash-summary .edit .widget-lines-container { +.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container { +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container { max-height: 540px; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line { +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line { cursor: pointer; border: solid 1px white; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line .selection-tag { +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line .selection-tag { display: block; right: 0px; margin-top: -6px; @@ -10445,285 +10288,200 @@ chart-threshold .action-buttons button.loading { height: 29px; position: absolute; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover { +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line:hover { background-color: #e6e0fb; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select { +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select { cursor: auto; } -.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select:hover { +.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover { color: #626d6d; } -.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container { +.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container { overflow-y: auto; overflow-x: hidden; max-height: 235px; } -.analytics .widget-item .content.accounts-cash-summary .no-element { +.analytics .widget-item .content.invoices-aged-payables-receivables .no-element { font-weight: 300; font-size: 16px; color: #5B6667; text-align: center; } -.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container { +.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container { max-height: 215px; } -.analytics .widget-item .content.accounts-cash-summary .row.lines-group.cash { - border-top: solid 1px; - border-bottom: double; -} -.analytics .widget-item .content.accounts-class-comparison .param-selector { - text-align: center; +.analytics .widget-item .content.invoices-aged-payables-receivables .row.astericks-info { + margin-top: 15px; } -.analytics .widget-item .content.accounts-class-comparison .widget-lines-container { - max-height: 94px; - color: #626d6d; +.analytics .widget-item .content.invoices-aged-payables-receivables .currency-conversions { + float: right; + margin-left: 3px; } -.analytics .widget-item .content.accounts-comparison { - min-height: 565px; +.analytics .widget-item .content.hr-workforce-summary h3.left { + text-align: center; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-comparison { - height: 565px; - } - .analytics .widget-item .content.accounts-comparison .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; + .analytics .widget-item .content.hr-workforce-summary h3.left { + margin-top: 69px; } } -.analytics .widget-item .content.accounts-comparison .edit { - max-height: 545px; -} -.analytics .widget-item .content.accounts-comparison .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .widget-item .content.hr-workforce-summary h3.reduced-left { + text-align: center; } -@media print { - .analytics .widget-item .content.accounts-comparison .chart-container { - max-width: 80% !important; +@media (min-width: 992px) { + .analytics .widget-item .content.hr-workforce-summary h3.reduced-left { + margin-top: 10px; } } -.analytics .widget-item .content.accounts-comparison .add-account { - position: absolute; - right: 40px; - bottom: 30px; - width: 160px; -} -.analytics .widget-item .content.accounts-comparison .add-account select { - font-size: 13px; - background-color: #977bf0; - color: white; - outline: none; - border: none; - cursor: pointer; -} -.analytics .widget-item .content.accounts-comparison .add-account select[disabled] { - cursor: not-allowed; - background-color: #bba9f5; -} -.analytics .widget-item .content.accounts-comparison .add-account select[disabled]:hover { - background-color: #bba9f5; -} -.analytics .widget-item .content.accounts-comparison .add-account select:hover { - background-color: #734deb; -} -.analytics .widget-item .content.accounts-comparison .add-account select option { - background-color: white; - color: #c4caca; -} -.analytics .widget-item .content.accounts-comparison .add-account select option[disabled] { - color: white; -} -.analytics .widget-item .content.accounts-comparison button.close { - font-size: 15px; +.analytics .widget-item .content.hr-workforce-summary h3.right { + margin-bottom: 10px; + text-align: center; } -.analytics .widget-item .content.accounts-comparison .legend { - text-align: left; - max-height: 103px; +.analytics .widget-item .content.hr-workforce-summary .price { + margin-top: 0; } -.analytics .widget-item .content.accounts-comparison .row { - margin: 0; +.analytics .widget-item .content.hr-workforce-summary .widget-lines-container { + max-height: 75px; } -.analytics .widget-item .content.accounts-comparison .widget-lines-container { +.analytics .widget-item .content.hr-workforce-summary .widget-lines-container .widget-line { font-size: 11px; - max-height: 220px; - margin-bottom: 65px; - overflow: auto; -} -.analytics .widget-item .content.accounts-comparison .settings.params-checkboxes { - margin-left: 13px; -} -.analytics .widget-item .content.accounts-comparison .comparable-error h5 { - margin-left: 13px; - color: #ed1e79; -} -.analytics .widget-item .content.accounts-custom-calculation h3 { - margin-top: 85px; - text-align: center; - font-weight: bold; } -.analytics .widget-item .content.accounts-custom-calculation .legend { - max-height: 125px; -} -.analytics.modal-custom-calculation { - margin: 0px; - padding: 0px; +@media (min-width: 480px) and (max-width: 991px) { + .analytics .widget-item .content.hr-workforce-summary .right-panel .chart-container { + max-width: 320px; + } } -.analytics.modal-custom-calculation .modal-body .edit { - overflow-y: auto; - overflow-x: hidden; - color: #5B6667; - padding: 2px; - font-size: 12px; - padding: 5px; - overflow: visible; +.analytics .widget-item .content.invoices-summary .chart-container { + max-width: 410px; } -.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn { - border-radius: 2px; - margin-right: 5px; - padding: 3px 13px; - text-transform: uppercase; - font-size: 12px; +.analytics .widget-item .content.invoices-summary .legend { + max-height: 28px; } -.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default { - background-color: #c2c4c4; - border: solid 1px #a8abab; - color: white; +.analytics .widget-item .content.invoices-list .widget-lines-container { + max-height: 230px; } -.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default:hover { - border: solid 1px #8e9292; - background-color: #a8abab; +.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(even) { + background-color: #f0f0f0; } -.analytics.modal-custom-calculation .modal-body .edit h4 { - margin: 0; - margin-bottom: 8px; - text-align: left; - font-weight: normal; - font-size: 12px; - color: #c4caca; +.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; } -.analytics.modal-custom-calculation .modal-body .edit .part { - margin-bottom: 8px; - padding: 10px 0px; - background-color: #fcfcfc; - border: solid 1px #dfe2e2; +.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line.header { + background-color: white; } -.analytics.modal-custom-calculation .modal-body .edit .part h5 { - display: block; - margin: 0; - margin-bottom: 10px; - padding: 0px 15px; - text-transform: uppercase; - font-weight: normal; - font-size: 12px; - color: #c4caca; +.analytics .widget-item .content.invoices-list .currency-conversions { + float: right; + margin-right: 3px; + margin-top: -2px; } -.analytics.modal-custom-calculation .modal-body .edit .part label { - font-weight: normal; +.analytics .widget-item .content.invoices-list .fa.fa-info-circle { + float: right; + font-size: 15px; } -.analytics.modal-custom-calculation .modal-body .edit .part select.form-control { - margin: 0px; - border: solid 1px #acb0b1; - outline: none; - -webkit-box-shadow: none; - font-size: 13px; - color: #72728b; +.analytics .widget-item .content.invoices-list .right-column { + padding-left: 0px; + padding-right: 0px; } -.analytics .widget-item .content.accounts-detailed-classifications { +.analytics .widget-item .content.sales-aged { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-detailed-classifications { + .analytics .widget-item .content.sales-aged { height: 565px; } - .analytics .widget-item .content.accounts-detailed-classifications .chart-container { + .analytics .widget-item .content.sales-aged .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-detailed-classifications .edit { +.analytics .widget-item .content.sales-aged .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-detailed-classifications .edit .widget-lines-container { +.analytics .widget-item .content.sales-aged .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-detailed-classifications .widget-lines-container { - overflow-y: scroll; - overflow-x: hidden; - max-height: 540px; -} -.analytics .widget-item .content.accounts-detailed-classifications .account-class-title { - margin-bottom: 8px; - margin-left: 11px; -} -.analytics .widget-item .content.accounts-detailed-classifications .time-period-info { - text-align: right; -} -.analytics .widget-item .content.accounts-detailed-classifications .widget-line.header.sorting { - border-bottom: 1px solid #ccc; -} -.analytics .widget-item .content.accounts-expense-weight .legend { - text-align: left; - max-height: 115px; +.analytics .widget-item .content.sales-aged .widget-lines-container { + max-height: 238px; } -.analytics .widget-item .content.accounts-expense-weight .legend .title { +.analytics .widget-item .content.sales-break-even .price { + font-weight: 900; + font-size: 22px; + color: #5B6667; text-align: center; + margin-top: 0px; } -.analytics .widget-item .content.accounts-expenses-revenue .legend { - font-weight: bold; -} -.analytics .widget-item .content.accounts-expenses-revenue .settings.params-checkboxes { +.analytics .widget-item .content.sales-break-even .block { + margin: 5px; + padding: 0px 10px 5px 10px; + text-align: left; + box-shadow: 0px 7px 10px -7px #17262d; font-size: 12px; - margin-left: 0px; - text-align: center; } -.analytics .widget-item .content.accounts-payable-receivable h3 { - text-align: center; +.analytics .widget-item .content.sales-break-even .block form.editable-wrap .editable-controls input { + margin-top: 5px; + width: 100px; } -.analytics .widget-item .content.accounts-payable-receivable .legend { - font-weight: bold; +.analytics .widget-item .content.sales-break-even .block.to-date { + background-color: #f0f0f0; + color: #5B6667; } -.analytics .widget-item .content.accounts-payable-receivable .payable { - margin-top: 15px; +.analytics .widget-item .content.sales-break-even .block.to-breakeven { + margin-top: 10px; + background-color: #192831; + color: #1de9b6; } -.analytics .widget-item .content.accounts-payable-receivable .price { - font-weight: 900; - font-size: 22px; +.analytics .widget-item .content.sales-break-even .block.to-breakeven .title { + border-bottom: solid 1px #2a4453; +} +.analytics .widget-item .content.sales-break-even .block.to-breakeven .define-text { + font-weight: 300; + font-size: 16px; color: #5B6667; text-align: center; - margin-top: 0px; + padding-top: 5px; + color: #1de9b6; } -.analytics .widget-item .content.accounts-profit-and-loss { +.analytics .widget-item .content.sales-break-even .block.to-breakeven .price { + color: #1de9b6; +} +.analytics .widget-item .content.sales-break-even .block .title { + font-size: 13px; + text-align: center; + font-variant: small-caps; + border-bottom: solid 1px #e6edee; + font-weight: 300; +} +.analytics .widget-item .content.sales-comparison { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.accounts-profit-and-loss { + .analytics .widget-item .content.sales-comparison { height: 565px; } - .analytics .widget-item .content.accounts-profit-and-loss .chart-container { + .analytics .widget-item .content.sales-comparison .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.accounts-profit-and-loss .edit { +.analytics .widget-item .content.sales-comparison .edit { max-height: 545px; } -.analytics .widget-item .content.accounts-profit-and-loss .edit .widget-lines-container { +.analytics .widget-item .content.sales-comparison .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container { +.analytics .widget-item .content.sales-comparison .widget-lines-container { max-height: 540px; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line { cursor: pointer; border: solid 1px white; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line .selection-tag { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line .selection-tag { display: block; right: 0px; margin-top: -6px; @@ -10731,319 +10489,343 @@ chart-threshold .action-buttons button.loading { height: 29px; position: absolute; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line:hover { background-color: #e6e0fb; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select { cursor: auto; } -.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select:hover { +.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select:hover { color: #626d6d; } -.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container { +.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container { overflow-y: auto; overflow-x: hidden; max-height: 235px; } -.analytics .widget-item .content.accounts-profit-and-loss .no-element { +.analytics .widget-item .content.sales-comparison .no-element { font-weight: 300; font-size: 16px; color: #5B6667; text-align: center; } -.analytics .widget-item .content.accounts-profit-and-loss .row.lines-group.profit { - border-top: solid 1px; - border-bottom: double; -} -.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container { - max-height: 215px; -} -.analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header > [class*='col-'] { - position: static; -} -.analytics .widget-item .content.accounts-ratios .left-panel { - max-height: 230px; - overflow-y: auto; -} -.analytics .widget-item .content.accounts-ratios .left-panel .separator { - border-bottom: solid 1px #5B6667; - width: 75%; -} -.analytics .widget-item .content.accounts-ratios .left-panel .member { - padding-top: 20px; - padding-bottom: 20px; -} -.analytics .widget-item .content.accounts-ratios .left-panel .member .price { - margin-top: 0px; - font-size: 18px; -} -.analytics .widget-item .content.accounts-ratios .left-panel button { - outline: none; -} -.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member { - padding-top: 5px; -} -.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .legend { - display: none; +.analytics .widget-item .content.sales-comparison .widget-lines-container { + max-height: 530px; } -.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .price { - text-align: right; +.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container { + max-height: 250px; } -.analytics .widget-item .content.accounts-ratios .left-panel.simulation .separator { - width: 100%; +.analytics .widget-item .content.sales-comparison .currency-conversions img { + margin-top: -2px; } -.analytics .widget-item .content.hr-employee-details { +.analytics .widget-item .content.sales-customer-details { font-size: 12px; } -.analytics .widget-item .content.hr-employee-details .details-container { +.analytics .widget-item .content.sales-customer-details .loader { + font-size: 14px; +} +.analytics .widget-item .content.sales-customer-details .details-container { padding: 0px; - max-height: none; overflow-y: auto; overflow-x: hidden; } @media (min-width: 992px) { - .analytics .widget-item .content.hr-employee-details .details-container { - max-height: 200px; + .analytics .widget-item .content.sales-customer-details .details-container { + max-height: 194px; } } @media (min-width: 992px) { - .analytics .widget-item .content.hr-employee-details .right-panel .details-container { - max-height: 220px; + .analytics .widget-item .content.sales-customer-details .right-panel .details-container { + max-height: 230px; } } -.analytics .widget-item .content.hr-employee-details .right-panel .legend { +.analytics .widget-item .content.sales-customer-details .right-panel .legend { margin-bottom: 5px; } -.analytics .widget-item .content.hr-employee-details .title { +.analytics .widget-item .content.sales-customer-details .row.title { text-align: center; margin-bottom: 10px; font-size: 14px; } -.analytics .widget-item .content.hr-employees-list .legend { - margin-bottom: 9px; +.analytics .widget-item .content.sales-customer-details .currency-conversions { + float: left; + margin-right: 3px; } -.analytics .widget-item .content.hr-employees-list .widget-lines-container { - text-align: center; +.analytics .widget-item .content.sales-cycle .chart-container { + max-width: 410px; } -.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(even) { - background-color: #f0f0f0; +.analytics .widget-item .content.sales-cycle .legend { + max-height: 28px; } -.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; +.analytics .widget-item .content.sales-forecast { + min-height: 565px; } -.analytics .widget-item .content.hr-employees-list .edit .widget-lines-container { - text-align: left; +@media (min-width: 992px) { + .analytics .widget-item .content.sales-forecast { + height: 565px; + } + .analytics .widget-item .content.sales-forecast .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; + } } -.analytics .widget-item .content.hr-leaves-balance .employee-name { - text-align: center; +.analytics .widget-item .content.sales-forecast .edit { + max-height: 545px; } -.analytics .widget-item .content.hr-leaves-balance .balance { - font-weight: 900; - font-size: 22px; - color: #5B6667; - text-align: center; - margin-top: 0px; +.analytics .widget-item .content.sales-forecast .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .content.hr-leaves-balance h3 { - margin-top: 33px; - text-align: center; +.analytics .widget-item .content.sales-forecast .widget-lines-container { + max-height: 275px; } -.analytics .widget-item .content.hr-leaves-schedule .fc-button { - height: 22px; - font-size: 12px; - color: #977bf0; - background: white; - outline: none; +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main { + cursor: pointer; + border: solid 1px white; } -.analytics .widget-item .content.hr-leaves-schedule .fc-button:hover { - color: white; - background: #977bf0; +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; } -.analytics .widget-item .content.hr-leaves-schedule .fc-toolbar { - margin-bottom: 5px; +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main:hover { + background-color: #e6e0fb; } -.analytics .widget-item .content.hr-leaves-schedule .fc-day-grid, -.analytics .widget-item .content.hr-leaves-schedule .fc-widget-header { - font-size: 12px; +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select { + cursor: auto; +} +.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select:hover { + color: #626d6d; +} +.analytics .widget-item .content.sales-growth .price { + font-weight: 900; + font-size: 22px; color: #5B6667; + text-align: center; + margin-top: 0px; } -.analytics .widget-item .content.hr-payroll-summary { +.analytics .widget-item .content.sales-growth .legend { + max-height: 49px; + font-size: 14px; + text-overflow: ellipsis; + white-space: nowrap; +} +.analytics .widget-item .content.sales-leads-funnel { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.hr-payroll-summary { + .analytics .widget-item .content.sales-leads-funnel { height: 565px; } - .analytics .widget-item .content.hr-payroll-summary .chart-container { + .analytics .widget-item .content.sales-leads-funnel .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.hr-payroll-summary .edit { +.analytics .widget-item .content.sales-leads-funnel .edit { + max-height: 545px; +} +.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; +} +.analytics .widget-item .content.sales-leads-funnel .funnel-container { + width: 95%; + margin: auto; + margin-top: 15px; + padding-right: 10px; + max-height: 505px; + overflow: auto; +} +.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container { max-height: 545px; + margin-right: 10px; +} +.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container .widget-line { + cursor: default; +} +.analytics .widget-item .content.sales-leads-list .widget-lines-container { + max-height: 230px; +} +.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(even) { + background-color: #f0f0f0; +} +.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; +} +.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line.header { + background-color: white; } -.analytics .widget-item .content.hr-payroll-summary .edit .widget-lines-container { - overflow-y: hidden; +.analytics .widget-item .content.sales-leads-list .widget-lines-container { + overflow-y: scroll; overflow-x: hidden; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container { - max-height: 540px; +.analytics .widget-item .content.sales-list .widget-lines-container { + max-height: 230px; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line { - cursor: pointer; - border: solid 1px white; +.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(even) { + background-color: #f0f0f0; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; +.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line:hover { - background-color: #e6e0fb; +.analytics .widget-item .content.sales-list .widget-lines-container .widget-line.header { + background-color: white; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select { - cursor: auto; +.analytics .widget-item .content.sales-list .widget-lines-container { + overflow-y: scroll; + overflow-x: hidden; + max-height: 170px; } -.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover { - color: #626d6d; +.analytics .widget-item .content.sales-list .widget-lines-container.no-scroll { + overflow: visible; } -.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container { - overflow-y: auto; - overflow-x: hidden; - max-height: 235px; +.analytics .widget-item .content.sales-list .selector { + margin-bottom: 4px; } -.analytics .widget-item .content.hr-payroll-summary .no-element { - font-weight: 300; - font-size: 16px; - color: #5B6667; - text-align: center; +.analytics .widget-item .content.sales-list .currency-conversions img { + margin-top: -2px; } -.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container { - max-height: 145px; +.analytics .widget-item .content.sales-net-sales .value-container, +.analytics .widget-item .content.sales-net-sales .operator { + line-height: 85px; } -.analytics .widget-item .content.hr-salaries-summary h3.left { - text-align: center; +.analytics .widget-item .content.sales-net-sales .value-container .title { + line-height: 20px; + font-size: 1.2em; + padding: 10px 0px; } -@media (min-width: 992px) { - .analytics .widget-item .content.hr-salaries-summary h3.left { - margin-top: 69px; - } +.analytics .widget-item .content.sales-net-sales .value-container .value-box { + font-size: 1.3em; + border-radius: 10px; + border-top: solid 1px #C4CACA; + border-bottom: solid 1px #C4CACA; + white-space: nowrap; } -.analytics .widget-item .content.hr-salaries-summary h3.reduced-left { - text-align: center; +.analytics .widget-item .content.sales-net-sales .operator { + padding-top: 38px; + font-size: 1.3em; } @media (min-width: 992px) { - .analytics .widget-item .content.hr-salaries-summary h3.reduced-left { - margin-top: 10px; + .analytics .widget-item .content.sales-net-sales .values { + margin-top: 25px; } } -.analytics .widget-item .content.hr-salaries-summary h3.right { - margin-bottom: 10px; - text-align: center; -} -.analytics .widget-item .content.hr-salaries-summary .price { - margin-top: 0; -} -.analytics .widget-item .content.hr-salaries-summary .widget-lines-container { - max-height: 75px; +.analytics .widget-item .content.sales-new-vs-existing-customers .selector .selector-wrap { + display: inline-block; + margin: 0 5px; } -.analytics .widget-item .content.hr-salaries-summary .widget-lines-container .widget-line { - font-size: 11px; +.analytics .widget-item .content.sales-new-vs-existing-customers .chart-container { + margin-top: 15px; } -@media (min-width: 480px) and (max-width: 991px) { - .analytics .widget-item .content.hr-salaries-summary .right-panel .chart-container { - max-width: 320px; - } +.analytics .widget-item .content.sales-new-vs-existing-customers .legend { + margin-top: 5px; + font-weight: bold; + max-height: 77px !important; } -.analytics .widget-item .content.hr-superannuation-accruals h3 { - margin-top: 63px; - text-align: center; +.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row { + margin: 0px -5px; } -.analytics .widget-item .content.hr-superannuation-accruals .legend { - margin-top: 23px; +.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row > div { + padding: 0px 5px; } -.analytics .widget-item .content.hr-superannuation-accruals .currency { +.analytics .widget-item .content.sales-new-vs-existing-customers .legend .total { + color: #5B6667; font-size: 14px; } -.analytics .widget-item .content.hr-superannuation-accruals .price { - font-weight: 900; - font-size: 22px; - color: #5B6667; - text-align: center; - margin-top: 0px; +.analytics .widget-item .content.sales-number-of-leads .stats { + margin-top: 35px; + font-size: 18px; } -.analytics .widget-item .content.hr-timesheets .currency { - font-size: 14px; +.analytics .widget-item .content.sales-number-of-leads .stats .stat { + margin: 15px 0px 10px 0px; + border-bottom: solid 1px #e6edee; } -.analytics .widget-item .content.hr-timesheets .widget-lines-container { - max-height: 210px; +.analytics .widget-item .content.sales-number-of-leads .stats .stat span.title { + font-weight: bold; } -.analytics .widget-item .content.hr-workforce-summary h3.left { - text-align: center; +.analytics .widget-item .content.sales-number-of-leads .stats .stat span.nominal { + float: right; + text-align: right; + font-weight: 300; } -@media (min-width: 992px) { - .analytics .widget-item .content.hr-workforce-summary h3.left { - margin-top: 69px; - } +.analytics .widget-item .content.sales-number-of-leads .stats .stat span.variation { + float: right; + width: 50px; + text-align: right; + font-style: italic; + font-size: 14px; + font-weight: 300; + margin-top: 2px; } -.analytics .widget-item .content.hr-workforce-summary h3.reduced-left { - text-align: center; +.analytics .widget-item .content.sales-opportunities-funnel { + min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.hr-workforce-summary h3.reduced-left { - margin-top: 10px; + .analytics .widget-item .content.sales-opportunities-funnel { + height: 565px; + } + .analytics .widget-item .content.sales-opportunities-funnel .chart-container { + max-width: 585px; + max-height: 440px; + margin: auto; } } -.analytics .widget-item .content.hr-workforce-summary h3.right { - margin-bottom: 10px; - text-align: center; +.analytics .widget-item .content.sales-opportunities-funnel .edit { + max-height: 545px; } -.analytics .widget-item .content.hr-workforce-summary .price { - margin-top: 0; +.analytics .widget-item .content.sales-opportunities-funnel .edit .widget-lines-container { + overflow-y: hidden; + overflow-x: hidden; } -.analytics .widget-item .content.hr-workforce-summary .widget-lines-container { - max-height: 75px; +.analytics .widget-item .content.sales-opportunities-funnel .funnel-container { + width: 95%; + margin: auto; + margin-top: 15px; + padding-right: 10px; + max-height: 505px; + overflow: auto; } -.analytics .widget-item .content.hr-workforce-summary .widget-lines-container .widget-line { - font-size: 11px; +.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container { + max-height: 545px; + margin-right: 10px; } -@media (min-width: 480px) and (max-width: 991px) { - .analytics .widget-item .content.hr-workforce-summary .right-panel .chart-container { - max-width: 320px; - } +.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line { + cursor: default; } -.analytics .widget-item .content.invoices-aged-payables-receivables { +.analytics .widget-item .content.sales-performance { min-height: 565px; } @media (min-width: 992px) { - .analytics .widget-item .content.invoices-aged-payables-receivables { + .analytics .widget-item .content.sales-performance { height: 565px; } - .analytics .widget-item .content.invoices-aged-payables-receivables .chart-container { + .analytics .widget-item .content.sales-performance .chart-container { max-width: 585px; max-height: 440px; margin: auto; } } -.analytics .widget-item .content.invoices-aged-payables-receivables .edit { +.analytics .widget-item .content.sales-performance .edit { max-height: 545px; } -.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container { +.analytics .widget-item .content.sales-performance .edit .widget-lines-container { overflow-y: hidden; overflow-x: hidden; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container { +.analytics .widget-item .content.sales-performance .widget-lines-container { max-height: 540px; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line { cursor: pointer; border: solid 1px white; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line .selection-tag { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line .selection-tag { display: block; right: 0px; margin-top: -6px; @@ -11051,666 +10833,788 @@ chart-threshold .action-buttons button.loading { height: 29px; position: absolute; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line:hover { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line:hover { background-color: #e6e0fb; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select { cursor: auto; } -.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover { +.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover { color: #626d6d; } -.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container { +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container { overflow-y: auto; overflow-x: hidden; max-height: 235px; } -.analytics .widget-item .content.invoices-aged-payables-receivables .no-element { +.analytics .widget-item .content.sales-performance .no-element { font-weight: 300; font-size: 16px; color: #5B6667; text-align: center; } -.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container { - max-height: 215px; -} -.analytics .widget-item .content.invoices-aged-payables-receivables .row.astericks-info { - margin-top: 15px; +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container { + max-height: 215px; +} +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header { + cursor: pointer; + border: solid 1px white; +} +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header .selection-tag { + display: block; + right: 0px; + margin-top: -6px; + width: 10px; + height: 29px; + position: absolute; +} +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header:hover { + background-color: #e6e0fb; +} +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select { + cursor: auto; +} +.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover { + color: #626d6d; +} +.analytics .widget-item .content.sales-segmented-turnover h3.right { + margin-top: 55px; + text-align: center; +} +.analytics .widget-item .content.sales-segmented-turnover .selector { + margin-bottom: 10px; +} +.analytics .widget-item .content.sales-segmented-turnover .analysis { + font-weight: 900; + font-size: 22px; + color: #5B6667; + text-align: center; + margin-top: 0px; +} +.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container { + max-height: 75px; } -.analytics .widget-item .content.invoices-aged-payables-receivables .currency-conversions { - float: right; - margin-left: 3px; +.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container .widget-line { + font-size: 11px; } -.analytics .widget-item .content.invoices-list .widget-lines-container { - max-height: 230px; +.analytics .widget-item .content.sales-segmented-turnover .right-panel h3 { + margin: 15px 10px 5px 10px; + text-align: center; } -.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(even) { - background-color: #f0f0f0; +.analytics .widget-item .content.sales-segmented-turnover .right-panel .fa.fa-info-circle { + float: left; } -.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; +.analytics .widget-item .content.sales-summary .chart-container { + max-width: 410px; } -.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line.header { - background-color: white; +.analytics .widget-item .content.sales-summary .legend { + max-height: 28px; } -.analytics .widget-item .content.invoices-list .currency-conversions { - float: right; - margin-right: 3px; - margin-top: -2px; +.analytics .widget-item .content.sales-summary .selector { + margin-bottom: 5px; } -.analytics .widget-item .content.invoices-list .fa.fa-info-circle { - float: right; - font-size: 15px; +.analytics .widget-item .content.sales-top-customers .selector { + border-bottom: dashed 1px #E6E6E6; + padding-bottom: 3px; } -.analytics .widget-item .content.invoices-list .right-column { - padding-left: 0px; - padding-right: 0px; +.analytics .widget-item .content.sales-top-customers .selector a { + font-weight: normal; } -.analytics .widget-item .content.invoices-summary .chart-container { - max-width: 410px; +.analytics .widget-item .content.sales-top-customers .selector .param-selector { + display: inline-block; } -.analytics .widget-item .content.invoices-summary .legend { - max-height: 28px; +.analytics .widget-item .content.sales-top-customers .widget-lines-container { + max-height: 235px; } -.analytics .widget-item .content.sales-aged { - min-height: 565px; +.analytics .widget-item .content.sales-top-customers .widget-lines-container .widget-line.sub-line { + background-color: #f0f0f0; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-aged { - height: 565px; - } - .analytics .widget-item .content.sales-aged .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .widget-item .content.sales-top-customers .widget-lines-container .row > [class*='col-'] { + position: static; } -.analytics .widget-item .content.sales-aged .edit { - max-height: 545px; +.analytics .widget-item .content.sales-top-customers .currency-conversions img { + margin-top: -2px; } -.analytics .widget-item .content.sales-aged .edit .widget-lines-container { - overflow-y: hidden; +.analytics .widget-item .content.sales-top-opportunities .opps-container { + max-height: 195px; + margin-top: 10px; + padding-right: 10px; + overflow-y: auto; overflow-x: hidden; } -.analytics .widget-item .content.sales-aged .widget-lines-container { - max-height: 238px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile { + height: 40px; + font-size: 13px; + font-weight: 300; } -.analytics .widget-item .content.sales-break-even .price { - font-weight: 900; - font-size: 22px; - color: #5B6667; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .colored-area { + width: 10%; text-align: center; - margin-top: 0px; + font-size: 20px; } -.analytics .widget-item .content.sales-break-even .block { - margin: 5px; - padding: 0px 10px 5px 10px; - text-align: left; - box-shadow: 0px 7px 10px -7px #17262d; - font-size: 12px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .main-text { + color: #5B6667; + padding: 3px 0px 0px 10px; } -.analytics .widget-item .content.sales-break-even .block form.editable-wrap .editable-controls input { - margin-top: 5px; - width: 100px; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first { + height: 55px; + font-size: 15px; + font-weight: bold; } -.analytics .widget-item .content.sales-break-even .block.to-date { - background-color: #f0f0f0; - color: #5B6667; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .colored-area { + font-size: 26px; + padding-top: 10px; + background-color: #ff6e41; } -.analytics .widget-item .content.sales-break-even .block.to-breakeven { - margin-top: 10px; - background-color: #192831; - color: #1de9b6; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .main-text { + padding-top: 8px; } -.analytics .widget-item .content.sales-break-even .block.to-breakeven .title { - border-bottom: solid 1px #2a4453; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second { + height: 55px; + font-size: 15px; + font-weight: 500; } -.analytics .widget-item .content.sales-break-even .block.to-breakeven .define-text { - font-weight: 300; - font-size: 16px; - color: #5B6667; - text-align: center; - padding-top: 5px; - color: #1de9b6; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .colored-area { + font-size: 26px; + padding-top: 10px; + background-color: #1de9b6; } -.analytics .widget-item .content.sales-break-even .block.to-breakeven .price { - color: #1de9b6; +.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .main-text { + padding-top: 8px; } -.analytics .widget-item .content.sales-break-even .block .title { +chart-threshold .attach-panel { + padding: 5px 0; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; + -ms-flex-align: center; + align-items: center; + background-color: rgba(20, 132, 228, 0.16); +} +chart-threshold .attach-panel > .attach-panel-text { + display: inline-block; +} +chart-threshold .attach-panel > .attach-panel-text > * { + display: inline-block; +} +chart-threshold .attach-panel .panel-text-label { + text-transform: uppercase; + font-weight: bold; + color: #5B6667; font-size: 13px; - text-align: center; - font-variant: small-caps; - border-bottom: solid 1px #e6edee; - font-weight: 300; } -.analytics .widget-item .content.sales-comparison { - min-height: 565px; +chart-threshold .attach-panel .panel-text-input { + border-radius: 3px; + border: 1px white; + padding: 3px; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-comparison { - height: 565px; - } - .analytics .widget-item .content.sales-comparison .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +chart-threshold .attach-panel .panel-text-currency { + font-weight: bold; + color: #000; } -.analytics .widget-item .content.sales-comparison .edit { - max-height: 545px; +chart-threshold .action-buttons { + display: inline-block; + padding: 0 10px; } -.analytics .widget-item .content.sales-comparison .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +chart-threshold .action-buttons button { + padding: 3px 6px; + display: inline-block; } -.analytics .widget-item .content.sales-comparison .widget-lines-container { - max-height: 540px; +chart-threshold .action-buttons button.loading { + padding: 3px 20px; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line { - cursor: pointer; - border: solid 1px white; +.analytics .widget-item .editable-title { + width: 100%; + -ms-flex: 1; + flex: 1; + overflow: hidden; + height: 22px; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; +.analytics .widget-item .editable-title .title { + text-transform: uppercase; + font-weight: 600; + font-size: 12px; + color: #4f5959; + cursor: text; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 1.9; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line:hover { - background-color: #e6e0fb; +.analytics .widget-item .editable-title .editable-wrap { + position: relative; + height: 20px; + min-width: 100%; + white-space: nowrap; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select { - cursor: auto; +.analytics .widget-item .editable-title .editable-wrap .editable-controls { + min-width: 100%; } -.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select:hover { - color: #626d6d; +.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-input { + height: 20px; + font-size: 12px; + text-transform: uppercase; + width: calc(100% - 65px); + padding: 0px 3px; } -.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container { - overflow-y: auto; - overflow-x: hidden; - max-height: 235px; +.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons { + background-color: white; +} +.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons button { + margin: 0px 0px 0px 5px; + height: 20px; + padding: 0px 5px; } -.analytics .widget-item .content.sales-comparison .no-element { - font-weight: 300; - font-size: 16px; - color: #5B6667; - text-align: center; +.currency-conversions img { + width: 15px; + cursor: pointer; } -.analytics .widget-item .content.sales-comparison .widget-lines-container { - max-height: 530px; +.currency-conversions.popover .popover-title { + background-color: black; + color: white; } -.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container { - max-height: 250px; +.analytics .widget-item .info-panel { + position: absolute; + top: 15px; + left: 15px; + width: calc(100% - 30px); + max-height: calc(100% - 30px); + height: 100%; + z-index: 100; + background-color: white; + border: dotted 1px #B7CDCE; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + font-family: "Lato Semibold", "Lato"; + z-index: 4; } -.analytics .widget-item .content.sales-comparison .currency-conversions img { - margin-top: -2px; +.analytics .widget-item .info-panel:hover { + opacity: 1; } -.analytics .widget-item .content.sales-customer-details { +.analytics .widget-item .info-panel .i-header { + background-color: #FFC928; + color: #1E303B; + padding: 8px; + text-transform: uppercase; + font-family: "Lato Medium", "Lato"; font-size: 12px; } -.analytics .widget-item .content.sales-customer-details .loader { - font-size: 14px; +.analytics .widget-item .info-panel .i-header .fa { + font-size: 18px; } -.analytics .widget-item .content.sales-customer-details .details-container { - padding: 0px; +.analytics .widget-item .info-panel .i-header .fa-info-circle { + float: left; +} +.analytics .widget-item .info-panel .i-header .fa-times-circle { + cursor: pointer; + float: right; +} +.analytics .widget-item .info-panel .i-content { overflow-y: auto; overflow-x: hidden; + padding: 5px; + text-align: justify; + -ms-flex: 1; + flex: 1; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-customer-details .details-container { - max-height: 194px; - } +.analytics .widget-item .info-panel .i-content .row { + margin-bottom: 6px; + padding-bottom: 6px; + border-bottom: solid 1px #abc4c6; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-customer-details .right-panel .details-container { - max-height: 230px; +.analytics .widget-item .info-panel .i-content .row:last-child { + margin-bottom: 0; + padding-bottom: 0; + border-bottom: none; +} +.analytics .widget-item .info-panel .i-content .row .key { + text-align: right; + font-variant: small-caps; +} +@media (max-width: 991px) { + .analytics .widget-item .info-panel .i-content .row .key { + text-align: center; } } -.analytics .widget-item .content.sales-customer-details .right-panel .legend { - margin-bottom: 5px; +.analytics .widget-item .info-panel .i-content .row .value { + text-align: justify; } -.analytics .widget-item .content.sales-customer-details .row.title { - text-align: center; - margin-bottom: 10px; - font-size: 14px; +.analytics .time-period-info { + font-size: 11px; + color: #ABC4C6; + text-transform: uppercase; } -.analytics .widget-item .content.sales-customer-details .currency-conversions { - float: left; - margin-right: 3px; +.analytics .widget-item .top-line .top-buttons { + text-align: right; + margin-top: -1px; + white-space: nowrap; + padding-left: 10px; } -.analytics .widget-item .content.sales-cycle .chart-container { - max-width: 410px; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button { + background: transparent; + border: none; + color: #c4caca; + padding: 0; + outline: none; + width: 17px; } -.analytics .widget-item .content.sales-cycle .legend { - max-height: 28px; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:active, +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:focus { + box-shadow: none; } -.analytics .widget-item .content.sales-forecast { - min-height: 565px; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info { + font-size: 17px; + margin-top: 1px; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-forecast { - height: 565px; - } - .analytics .widget-item .content.sales-forecast .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info:hover { + color: #FFC928; } -.analytics .widget-item .content.sales-forecast .edit { - max-height: 545px; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh { + font-size: 17px; + margin-top: 1px; } -.analytics .widget-item .content.sales-forecast .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh:hover { + color: #358fdc; } -.analytics .widget-item .content.sales-forecast .widget-lines-container { - max-height: 275px; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit { + font-size: 13px; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main { - cursor: pointer; - border: solid 1px white; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit:hover, +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit.edit-mode { + color: #cfd849; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close { + font-size: 13px; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main:hover { - background-color: #e6e0fb; +.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close:hover { + color: #ed1e79; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select { - cursor: auto; +.analytics .widget-item .content .settings.select-account { + padding: 0px 5px; } -.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select:hover { - color: #626d6d; +.analytics .settings.accounting-behaviour .btn.btn-primary { + background-color: #bba9f5; + border: solid 1px #977bf0; } -.analytics .widget-item .content.sales-growth .price { - font-weight: 900; - font-size: 22px; - color: #5B6667; - text-align: center; - margin-top: 0px; +.analytics .settings.accounting-behaviour .btn.btn-primary.focus, +.analytics .settings.accounting-behaviour .btn.btn-primary.active { + background-color: #977bf0; } -.analytics .widget-item .content.sales-growth .legend { - max-height: 49px; - font-size: 14px; - text-overflow: ellipsis; - white-space: nowrap; +.analytics .settings.attach-kpis .attach-kpi { + padding: 8px 5px; } -.analytics .widget-item .content.sales-leads-funnel { - min-height: 565px; +.analytics .settings.attach-kpis .attach-kpi form .row { + padding-bottom: 5px; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-leads-funnel { - height: 565px; - } - .analytics .widget-item .content.sales-leads-funnel .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .settings.attach-kpis .attach-kpi .attach-kpi-form { + background-color: white; + border: 1px solid #ddd; + padding: 5px; } -.analytics .widget-item .content.sales-leads-funnel .edit { - max-height: 545px; +.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description { + padding: 10px 2px; } -.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description span { + display: block; + font-weight: bold; + font-size: 13px; } -.analytics .widget-item .content.sales-leads-funnel .funnel-container { - width: 95%; - margin: auto; - margin-top: 15px; - padding-right: 10px; - max-height: 505px; - overflow: auto; +.analytics .settings.attach-kpis .attach-kpi form.attach-kpi-form input.attach-target { + background-color: white; + height: inherit; } -.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container { - max-height: 545px; - margin-right: 10px; +.analytics .settings.attach-kpis .attach-kpi .error-messages { + color: #e01f74; + width: 120px; } -.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container .widget-line { - cursor: default; +.analytics .settings.attach-kpis .attached-kpis { + padding: 5px; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container { - max-height: 230px; +.analytics .settings.attach-kpis .list-group-item.attached-kpi { + padding: 5px 10px; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(even) { - background-color: #f0f0f0; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .attached-kpi-name { + overflow: hidden; + width: 75%; + display: inline-block; + white-space: nowrap; + text-overflow: ellipsis; + margin-top: 3px; + font-size: 13px; + font-weight: bold; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(odd) { +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions { + padding-top: 2px; +} +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config { + display: inline-block; + text-align: left; + padding-left: 4px; + height: 20px; + border-radius: 40px; + width: 21px; + color: #358fdc; background-color: white; + border: solid 1px #358fdc; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line.header { - background-color: white; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config:hover { + cursor: pointer; } -.analytics .widget-item .content.sales-leads-list .widget-lines-container { - overflow-y: scroll; - overflow-x: hidden; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi { + display: inline-block; } -.analytics .widget-item .content.sales-list .widget-lines-container { - max-height: 230px; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i { + border-radius: 10px; + width: 21px; + color: #358fdc; + background-color: white; + height: 20px; + padding: 3px 5px 5px 5px; + border: solid 1px #358fdc; } -.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(even) { - background-color: #f0f0f0; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i:hover { + cursor: pointer; } -.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(odd) { - background-color: white; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi { + display: inline-block; } -.analytics .widget-item .content.sales-list .widget-lines-container .widget-line.header { +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i { + border-radius: 10px; + width: 21px; + color: #e01f74; background-color: white; + height: 20px; + padding: 3px 5px 5px 5px; + border: solid 1px #e01f74; } -.analytics .widget-item .content.sales-list .widget-lines-container { - overflow-y: scroll; - overflow-x: hidden; - max-height: 170px; +.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i:hover { + cursor: pointer; } -.analytics .widget-item .content.sales-list .widget-lines-container.no-scroll { - overflow: visible; +.analytics .widget-item .content .settings.select-account { + padding: 0px 5px; } -.analytics .widget-item .content.sales-list .selector { - margin-bottom: 4px; +.analytics .settings.dates-picker h5 { + display: none; } -.analytics .widget-item .content.sales-list .currency-conversions img { - margin-top: -2px; +.analytics .settings.dates-picker button.btn.btn-sm { + line-height: 1; } -.analytics .widget-item .content.sales-net-sales .value-container, -.analytics .widget-item .content.sales-net-sales .operator { - line-height: 85px; +.analytics .settings.dates-picker button.btn.btn-sm.date-button { + margin: 0px 5px; } -.analytics .widget-item .content.sales-net-sales .value-container .title { - line-height: 20px; - font-size: 1.2em; - padding: 10px 0px; +.analytics .settings.dates-picker button.btn.btn-sm.btn-danger { + display: none; } -.analytics .widget-item .content.sales-net-sales .value-container .value-box { - font-size: 1.3em; - border-radius: 10px; - border-top: solid 1px #C4CACA; - border-bottom: solid 1px #C4CACA; - white-space: nowrap; +.analytics .settings.dates-picker button.btn.btn-sm.btn-info { + border-radius: 3px; } -.analytics .widget-item .content.sales-net-sales .operator { - padding-top: 38px; - font-size: 1.3em; +.analytics .settings.dates-picker .tooltip-inner { + text-transform: none; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-net-sales .values { - margin-top: 25px; - } +.analytics .settings.dates-picker .dropdown-menu > li > div > table { + outline: none; } -.analytics .widget-item .content.sales-number-of-leads .stats { - margin-top: 35px; - font-size: 18px; +.analytics .widget-item .content .settings.chart-filters .row { + margin: 0px; } -.analytics .widget-item .content.sales-number-of-leads .stats .stat { - margin: 15px 0px 10px 0px; - border-bottom: solid 1px #e6edee; +.analytics .widget-item .content .settings.chart-filters input[type="radio"] { + margin: 0; + margin-right: 3px; + padding: 0; + width: 13px; + height: 13px; + vertical-align: middle; + position: relative; + top: -1px; + outline: none; } -.analytics .widget-item .content.sales-number-of-leads .stats .stat span.title { - font-weight: bold; +.analytics .widget-item .content .settings.chart-filters input[type="range"] { + height: auto; + width: 100%; } -.analytics .widget-item .content.sales-number-of-leads .stats .stat span.nominal { - float: right; - text-align: right; - font-weight: 300; +.analytics .widget-item .content .settings.hist-mode-choser { + max-height: 70px; } -.analytics .widget-item .content.sales-number-of-leads .stats .stat span.variation { - float: right; - width: 50px; - text-align: right; - font-style: italic; - font-size: 14px; - font-weight: 300; - margin-top: 2px; +.analytics .widget-item .content .settings.hist-mode-choser [common-time-period-info] { + padding-bottom: 8px; } -.analytics .widget-item .content.sales-new-vs-existing-customers .selector .selector-wrap { - display: inline-block; - margin: 0 5px; +.analytics .widget-item .content .settings.hist-mode-choser .options { + width: 150px; + margin: auto; + padding-bottom: 8px; + border-bottom: solid 1px #e6e6e6; + font-weight: 500; + font-size: 12px; + color: #c4caca; } -.analytics .widget-item .content.sales-new-vs-existing-customers .chart-container { - margin-top: 15px; +.analytics .widget-item .content .settings.hist-mode-choser .options a { + font-weight: 500; + font-size: 12px; + color: #c4caca; + text-transform: uppercase; } -.analytics .widget-item .content.sales-new-vs-existing-customers .legend { - margin-top: 5px; - font-weight: bold; - max-height: 77px !important; +.analytics .widget-item .content .settings.hist-mode-choser .options a.active { + color: #977bf0; } -.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row { - margin: 0px -5px; +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container { + width: 28px; + height: 28px; + position: relative; + top: -14px; + margin: auto; } -.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row > div { - padding: 0px 5px; +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.right { + left: 46px; } -.analytics .widget-item .content.sales-new-vs-existing-customers .legend .total { - color: #5B6667; - font-size: 14px; +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.left { + left: -30px; } -.analytics .widget-item .content.sales-opportunities-funnel { - min-height: 565px; +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow-border { + border-top: 14px solid #e6e6e6; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + width: 0px; + height: 0px; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-opportunities-funnel { - height: 565px; - } - .analytics .widget-item .content.sales-opportunities-funnel .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow { + border-top: 14px solid white; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + position: relative; + top: 12px; + width: 0px; + height: 0px; } -.analytics .widget-item .content.sales-opportunities-funnel .edit { - max-height: 545px; +.analytics .settings.limit-entries { + color: #1E303B; + text-transform: uppercase; + text-align: center; + border-bottom: dashed 1px #E6E6E6; + padding-bottom: 8px; } -.analytics .widget-item .content.sales-opportunities-funnel .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .settings.limit-entries a.option.badge { + color: white; + background-color: #1E303B; } -.analytics .widget-item .content.sales-opportunities-funnel .funnel-container { - width: 95%; - margin: auto; - margin-top: 15px; - padding-right: 10px; - max-height: 505px; - overflow: auto; +.analytics .settings.offsets .offset-value { + font-style: italic; + font-size: 13px; } -.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container { - max-height: 545px; - margin-right: 10px; +.analytics .settings.offsets .offset-value .fa-trash-o { + margin-left: 10px; } -.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line { - cursor: default; +.analytics .settings.offsets .offset-value .fa-trash-o:hover { + color: #e01f74; + cursor: pointer; } -.analytics .widget-item .content.sales-performance { - min-height: 565px; +.analytics .settings.offsets input { + width: 75%; } -@media (min-width: 992px) { - .analytics .widget-item .content.sales-performance { - height: 565px; - } - .analytics .widget-item .content.sales-performance .chart-container { - max-width: 585px; - max-height: 440px; - margin: auto; - } +.analytics .settings.offsets button { + width: 30px; } -.analytics .widget-item .content.sales-performance .edit { - max-height: 545px; +.analytics .settings.organizations .widget-lines-container .widget-line { + padding: 5px 10px 5px 18px; } -.analytics .widget-item .content.sales-performance .edit .widget-lines-container { - overflow-y: hidden; - overflow-x: hidden; +.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(even) { + background-color: #f3f4f4; } -.analytics .widget-item .content.sales-performance .widget-lines-container { - max-height: 540px; +.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(odd) { + background-color: white; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line { +.analytics .settings.organizations .widget-lines-container .widget-line .fa { + float: right; + font-size: 20px; cursor: pointer; - border: solid 1px white; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; +.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-on, +.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-check-circle { + color: #977bf0; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line:hover { - background-color: #e6e0fb; +.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-off, +.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-circle-thin { + color: #9ba6a7; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select { - cursor: auto; +.analytics .widget-item .content .settings.param-selector { + display: inline-block; } -.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover { - color: #626d6d; +.analytics .widget-item .content .settings.param-selector.classic { + width: 100%; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container { +.analytics .widget-item .content .settings.param-selector.classic select { + width: 100%; + height: 25px; + border: 1px solid #ccc; + text-transform: uppercase; + margin: 0px 0px 5px 0px; +} +.analytics .widget-item .content .settings.param-selector a { + font-weight: normal; + color: #977bf0; + white-space: nowrap; +} +.analytics .widget-item .content .settings.param-selector .options-container { + position: absolute; + background-color: white; + text-align: left; + min-width: 150px; + max-height: 200px; + z-index: 999; overflow-y: auto; overflow-x: hidden; - max-height: 235px; -} -.analytics .widget-item .content.sales-performance .no-element { - font-weight: 300; - font-size: 16px; - color: #5B6667; - text-align: center; + box-shadow: #000000 0px 3px 15px -3px; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container { - max-height: 215px; +.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label { + padding: 3px 5px; + font-weight: 500; + font-size: inherit; + color: black; + cursor: text; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 1.9; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header { +.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label:hover { cursor: pointer; - border: solid 1px white; -} -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header .selection-tag { - display: block; - right: 0px; - margin-top: -6px; - width: 10px; - height: 29px; - position: absolute; -} -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header:hover { - background-color: #e6e0fb; + background-color: #977bf0; + color: white; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select { - cursor: auto; +.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar { + width: 8px; + background-color: #d7e2e4; } -.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover { - color: #626d6d; +.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb { + background-color: #977bf0; } -.analytics .widget-item .content.sales-segmented-turnover h3.right { - margin-top: 55px; - text-align: center; +.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb:hover { + background-color: #a992f3; } -.analytics .widget-item .content.sales-segmented-turnover .selector { - margin-bottom: 10px; +.analytics .settings.params-checkboxes { + padding: 2px 0px; } -.analytics .widget-item .content.sales-segmented-turnover .analysis { - font-weight: 900; - font-size: 22px; - color: #5B6667; - text-align: center; - margin-top: 0px; +.analytics .settings.params-checkboxes input { + margin: 0; + height: inherit; } -.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container { - max-height: 75px; +.analytics .settings.params-checkboxes span { + margin-left: 5px; } -.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container .widget-line { - font-size: 11px; +.analytics .settings.params-checkboxes label { + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; + line-height: 14px; } -.analytics .widget-item .content.sales-segmented-turnover .right-panel h3 { - margin: 15px 10px 5px 10px; - text-align: center; +.analytics .widget-item .content .settings.params-picker { + padding: 0px 10px; } -.analytics .widget-item .content.sales-segmented-turnover .right-panel .fa.fa-info-circle { +.analytics .widget-item .content .settings.params-picker .parameter { + margin: 0px 3px 3px 0px; + padding: 3px 5px; + background-color: #1E303B; + color: white; + border: solid 1px #1E303B; + border-radius: 4px; + cursor: move; + font-weight: bold; + white-space: nowrap; float: left; } -.analytics .widget-item .content.sales-summary .chart-container { - max-width: 410px; +.analytics .widget-item .content .settings.params-picker .parameter input[type="checkbox"] { + margin: 0px -3px 0px 3px; + vertical-align: middle; + height: inherit; + outline: none; + cursor: pointer; } -.analytics .widget-item .content.sales-summary .legend { - max-height: 28px; +.analytics .widget-item .content .settings.params-picker .parameter .badge { + margin-right: 3px; + font-size: 10px; + background-color: #f2f2f2; + color: #1E303B; + padding: 2px 6px; } -.analytics .widget-item .content.sales-summary .selector { - margin-bottom: 5px; +.analytics .widget-item .content .settings.params-picker .parameter.unchecked { + background-color: inherit; + font-weight: normal; + color: inherit; + border-color: #c2c4c4; } -.analytics .widget-item .content.sales-top-customers .selector { - border-bottom: dashed 1px #E6E6E6; - padding-bottom: 3px; +.analytics .widget-item .content .settings.params-picker .parameter.unchecked .badge { + background-color: #c2c4c4; + color: white; } -.analytics .widget-item .content.sales-top-customers .selector a { - font-weight: normal; +.analytics .settings.tag-filter { + padding: 0px 5px; } -.analytics .widget-item .content.sales-top-customers .selector .param-selector { - display: inline-block; +.analytics .settings.tag-filter .btn.btn-default { + height: 32px; + width: 30px; } -.analytics .widget-item .content.sales-top-customers .widget-lines-container { - max-height: 235px; +.analytics .settings.tag-filter .tag-lines-container { + padding: 0px 10px; } -.analytics .widget-item .content.sales-top-customers .widget-lines-container .widget-line.sub-line { - background-color: #f0f0f0; +.analytics .settings.tag-filter .tag-lines-container .tag-line { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: end; + justify-content: flex-end; } -.analytics .widget-item .content.sales-top-customers .widget-lines-container .row > [class*='col-'] { +.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col { position: static; } -.analytics .widget-item .content.sales-top-customers .currency-conversions img { - margin-top: -2px; +.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags { + display: -ms-flexbox; + display: flex; + border-radius: 4px; + border: solid 1px #ccc; } -.analytics .widget-item .content.sales-top-opportunities .opps-container { - max-height: 195px; - margin-top: 10px; - padding-right: 10px; - overflow-y: auto; - overflow-x: hidden; +.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags .tag-item { + background: #79a2bb; + border-radius: 4px; + color: white; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile { - height: 40px; - font-size: 13px; - font-weight: 300; +.analytics .settings.tag-filter .tag-lines-container .tag-line .host { + position: static; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .colored-area { - width: 10%; - text-align: center; - font-size: 20px; +.analytics .settings.time-period { + padding: 0px 5px; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .main-text { - color: #5B6667; - padding: 3px 0px 0px 10px; +.analytics .settings.time-period select { + height: 22px; + width: 100%; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first { - height: 55px; - font-size: 15px; - font-weight: bold; +.analytics .settings.time-period > .row { + margin: 0px -5px 7px -5px; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .colored-area { - font-size: 26px; - padding-top: 10px; - background-color: #ff6e41; +.analytics .settings.time-period > .row > div { + padding: 0px 5px; + position: static; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .main-text { - padding-top: 8px; +.analytics .settings.time-period > .row .sub-setting { + padding: 5px; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second { - height: 55px; - font-size: 15px; - font-weight: 500; +.analytics .widget-item .content .settings.width { + float: right; + font-size: 14px; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .colored-area { - font-size: 26px; - padding-top: 10px; - background-color: #1de9b6; +.analytics .widget-item .content .settings.width i { + color: silver; + cursor: pointer; } -.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .main-text { - padding-top: 8px; +.analytics .widget-item .content .settings.width i.reduce { + margin-right: -10px; +} +.analytics .widget-item .content .settings.width i.expand { + margin-right: -3px; } /* endinject */ -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcGFjLWFuZ3VsYXIuY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9ub3JtYWxpemUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvZ2x5cGhpY29ucy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9zY2FmZm9sZGluZy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdmVuZG9yLXByZWZpeGVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy90YWItZm9jdXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2ltYWdlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3R5cGUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3RleHQtZW1waGFzaXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2JhY2tncm91bmQtdmFyaWFudC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGV4dC1vdmVyZmxvdy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9jb2RlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQtZnJhbWV3b3JrLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3RhYmxlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGFibGUtcm93Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Zvcm1zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9mb3Jtcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9vcGFjaXR5Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2NvbXBvbmVudC1hbmltYXRpb25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Ryb3Bkb3ducy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LWRpdmlkZXIubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LWZpbHRlci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b24tZ3JvdXBzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ib3JkZXItcmFkaXVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2lucHV0LWdyb3Vwcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9uYXZzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL25hdmJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LXZlcnRpY2FsLWFsaWduLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3V0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9icmVhZGNydW1icy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhZ2VyLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2xhYmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbGFiZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2JhZGdlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9qdW1ib3Ryb24ubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvdGh1bWJuYWlscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9hbGVydHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2FsZXJ0cy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wcm9ncmVzcy1iYXJzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ncmFkaWVudHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Byb2dyZXNzLWJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9tZWRpYS5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhbmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcGFuZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Jlc3BvbnNpdmUtZW1iZWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3Mvd2VsbHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2xvc2UubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbW9kYWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Rvb2x0aXAubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LXRleHQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvcG9wb3ZlcnMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2Fyb3VzZWwubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2NsZWFyZml4Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9jZW50ZXItYmxvY2subGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2hpZGUtdGV4dC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9yZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcmVzcG9uc2l2ZS12aXNpYmlsaXR5Lmxlc3MiLCJzdHlsZXNoZWV0cy92YXJpYWJsZXMubGVzcyIsInN0eWxlc2hlZXRzL2dsb2JhbHMubGVzcyIsInN0eWxlc2hlZXRzL21peGlucy5sZXNzIiwic3R5bGVzaGVldHMvcHJpbnQubGVzcyIsImNvbXBvbmVudHMvYWxlcnRzLWNvbmZpZy9hbGVydHMtY29uZmlnLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLXNlbGVjdG9yL2Rhc2hib2FyZC1zZWxlY3Rvci5sZXNzIiwiY29tcG9uZW50cy9kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yL2Rhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMva3BpL2twaS5sZXNzIiwic3R5bGVzaGVldHMvaW1wYWMtbWF0ZXJpYWwubGVzcyIsImNvbXBvbmVudHMva3Bpcy1iYXIva3Bpcy1iYXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0L3dpZGdldC5sZXNzIiwiY29tcG9uZW50cy9jb21tb24vZGF0YS1ub3QtZm91bmQvZGF0YS1ub3QtZm91bmQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL2RlbGV0ZS13aWRnZXQvZGVsZXRlLXdpZGdldC5sZXNzIiwiY29tcG9uZW50cy9jb21tb24vdHJhbnNhY3Rpb25zLWFkZC90cmFuc2FjdGlvbnMtYWRkLmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmFuc2FjdGlvbnMtbGlzdC90cmFuc2FjdGlvbnMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy9kYXNoYm9hcmQtc2V0dGluZ3MvY3VycmVuY3kvY3VycmVuY3kubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLXNldHRpbmdzL3N5bmMtYXBwcy9zeW5jLWFwcHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vY3VycmVuY3ktY29udmVyc2lvbnMvY3VycmVuY3ktY29udmVyc2lvbnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vY2hhcnQtdGhyZXNob2xkL2NoYXJ0LXRocmVzaG9sZC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9lZGl0YWJsZS10aXRsZS9lZGl0YWJsZS10aXRsZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9pbmZvLXBhbmVsL2luZm8tcGFuZWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vdGltZS1wZXJpb2QtaW5mby90aW1lLXBlcmlvZC1pbmZvLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL3RvcC1idXR0b25zL3RvcC1idXR0b25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvYWNjb3VudGluZy1iZWhhdmlvdXIvYWNjb3VudGluZy1iZWhhdmlvdXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9hY2NvdW50L2FjY291bnQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9hdHRhY2gta3Bpcy9hdHRhY2gta3Bpcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2NoYXJ0LWZpbHRlcnMvY2hhcnQtZmlsdGVycy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2RhdGVzLXBpY2tlci9kYXRlcy1waWNrZXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9oaXN0LW1vZGUvaGlzdC1tb2RlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvbGltaXQtZW50cmllcy9saW1pdC1lbnRyaWVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvb2Zmc2V0cy9vZmZzZXRzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvb3JnYW5pemF0aW9ucy9vcmdhbml6YXRpb25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvcGFyYW0tc2VsZWN0b3IvcGFyYW0tc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9wYXJhbXMtY2hlY2tib3hlcy9wYXJhbXMtY2hlY2tib3hlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RhZy1maWx0ZXIvdGFnLWZpbHRlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3BhcmFtcy1waWNrZXIvcGFyYW1zLXBpY2tlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RpbWUtcGVyaW9kL3RpbWUtcGVyaW9kLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvd2lkdGgvd2lkdGgubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkvYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkvYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1hc3NldHMtdnMtbGlhYmlsaXRpZXMvYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYmFsYW5jZS9hY2NvdW50cy1iYWxhbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYmFsYW5jZS1zaGVldC9hY2NvdW50cy1iYWxhbmNlLXNoZWV0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtY2FzaC1iYWxhbmNlL2FjY291bnRzLWNhc2gtYmFsYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNhc2gtcHJvamVjdGlvbi9hY2NvdW50cy1jYXNoLXByb2plY3Rpb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jYXNoLXN1bW1hcnkvYWNjb3VudHMtY2FzaC1zdW1tYXJ5Lmxlc3MiLCJzdHlsZXNoZWV0cy93aWRnZXQtbWFzdGVyLXN0eWxlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNsYXNzLWNvbXBhcmlzb24vYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNvbXBhcmlzb24vYWNjb3VudHMtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbi9hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMvYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQvYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlL2FjY291bnRzLWV4cGVuc2VzLXJldmVudWUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUvYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzL2FjY291bnRzLXByb2ZpdC1hbmQtbG9zcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLXJhdGlvcy9hY2NvdW50cy1yYXRpb3MubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1lbXBsb3llZS1kZXRhaWxzL2hyLWVtcGxveWVlLWRldGFpbHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1lbXBsb3llZXMtbGlzdC9oci1lbXBsb3llZXMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLWxlYXZlcy1iYWxhbmNlL2hyLWxlYXZlcy1iYWxhbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItbGVhdmVzLXNjaGVkdWxlL2hyLWxlYXZlcy1zY2hlZHVsZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXBheXJvbGwtc3VtbWFyeS9oci1wYXlyb2xsLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1zYWxhcmllcy1zdW1tYXJ5L2hyLXNhbGFyaWVzLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscy9oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXRpbWVzaGVldHMvaHItdGltZXNoZWV0cy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLXdvcmtmb3JjZS1zdW1tYXJ5L2hyLXdvcmtmb3JjZS1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcy9pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaW52b2ljZXMtbGlzdC9pbnZvaWNlcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaW52b2ljZXMtc3VtbWFyeS9pbnZvaWNlcy1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtYWdlZC9zYWxlcy1hZ2VkLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtYnJlYWstZXZlbi9zYWxlcy1icmVhay1ldmVuLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtY29tcGFyaXNvbi9zYWxlcy1jb21wYXJpc29uLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtY3VzdG9tZXItZGV0YWlscy9zYWxlcy1jdXN0b21lci1kZXRhaWxzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtY3ljbGUvc2FsZXMtY3ljbGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1mb3JlY2FzdC9zYWxlcy1mb3JlY2FzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWdyb3d0aC9zYWxlcy1ncm93dGgubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1sZWFkcy1mdW5uZWwvc2FsZXMtbGVhZHMtZnVubmVsLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbGVhZHMtbGlzdC9zYWxlcy1sZWFkcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbGlzdC9zYWxlcy1saXN0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbmV0LXNhbGVzL3NhbGVzLW5ldC1zYWxlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLW51bWJlci1vZi1sZWFkcy9zYWxlcy1udW1iZXItb2YtbGVhZHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzL3NhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbC9zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLXBlcmZvcm1hbmNlL3NhbGVzLXBlcmZvcm1hbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyL3NhbGVzLXNlZ21lbnRlZC10dXJub3Zlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLXN1bW1hcnkvc2FsZXMtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLXRvcC1jdXN0b21lcnMvc2FsZXMtdG9wLWN1c3RvbWVycy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLXRvcC1vcHBvcnR1bml0aWVzL3NhbGVzLXRvcC1vcHBvcnR1bml0aWVzLmxlc3MiXSwibmFt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O0FFN01tQztFQUFXLGlCQUFBO0NGZ045QztBRS9NbUM7RUFBVyxpQkFBQTtDRmtOOUM7QUVqTm1DO0VBQVcsaUJBQUE7Q0ZvTjlDO0FFbk5tQztFQUFXLGlCQUFBO0NGc045QztBRXJObUM7RUFBVyxpQkFBQTtDRndOOUM7QUV2Tm1DO0VBQVcsaUJBQUE7Q0YwTjlDO0FFek5tQztFQUFXLGlCQUFBO0NGNE45QztBRTNObUM7RUFBVyxpQkFBQTtDRjhOOUM7QUU3Tm1DO0VBQVcsaUJBQUE7Q0ZnTzlDO0FFL05tQztFQUFXLGlCQUFBO0NGa085QztBRWpPbUM7RUFBVyxpQkFBQTtDRm9POUM7QUVuT21DO0VBQVcsaUJBQUE7Q0ZzTzlDO0FFck9tQztFQUFXLGlCQUFBO0NGd085QztBRXZPbUM7RUFBVyxpQkFBQTtDRjBPOUM7QUV6T21DO0VBQVcsaUJBQUE7Q0Y0TzlDO0FFM09tQztFQUFXLGlCQUFBO0NGOE85QztBRTdPbUM7RUFBVyxpQkFBQTtDRmdQOUM7QUUvT21DO0VBQVcsaUJBQUE7Q0ZrUDlDO0FFalBtQztFQUFXLGlCQUFBO0NGb1A5QztBRW5QbUM7RUFBVyxpQkFBQTtDRnNQOUM7QUVyUG1DO0VBQVcsaUJBQUE7Q0Z3UDlDO0FFdlBtQztFQUFXLGlCQUFBO0NGMFA5QztBRXpQbUM7RUFBVyxpQkFBQTtDRjRQOUM7QUUzUG1DO0VBQVcsaUJBQUE7Q0Y4UDlDO0FFN1BtQztFQUFXLGlCQUFBO0NGZ1E5QztBRS9QbUM7RUFBVyxpQkFBQTtDRmtROUM7QUVqUW1DO0VBQVcsaUJBQUE7Q0ZvUTlDO0FFblFtQztFQUFXLGlCQUFBO0NGc1E5QztBRXJRbUM7RUFBVyxpQkFBQTtDRndROUM7QUV2UW1DO0VBQVcsaUJBQUE7Q0YwUTlDO0FFelFtQztFQUFXLGlCQUFBO0NGNFE5QztBRTNRbUM7RUFBVyxpQkFBQTtDRjhROUM7QUU3UW1DO0VBQVcsaUJBQUE7Q0ZnUjlDO0FFL1FtQztFQUFXLGlCQUFBO0NGa1I5QztBRWpSbUM7RUFBVyxpQkFBQTtDRm9SOUM7QUVuUm1DO0VBQVcsaUJBQUE7Q0ZzUjlDO0FFclJtQztFQUFXLGlCQUFBO0NGd1I5QztBRXZSbUM7RUFBVyxpQkFBQTtDRjBSOUM7QUV6Um1DO0VBQVcsaUJBQUE7Q0Y0UjlDO0FFM1JtQztFQUFXLGlCQUFBO0NGOFI5QztBRTdSbUM7RUFBVyxpQkFBQTtDRmdTOUM7QUUvUm1DO0VBQVcsaUJBQUE7Q0ZrUzlDO0FFalNtQztFQUFXLGlCQUFBO0NGb1M5QztBRW5TbUM7RUFBVyxpQkFBQTtDRnNTOUM7QUVyU21DO0VBQVcsaUJBQUE7Q0Z3UzlDO0FFdlNtQztFQUFXLGlCQUFBO0NGMFM5QztBRXpTbUM7RUFBVyxpQkFBQTtDRjRTOUM7QUUzU21DO0VBQVcsaUJBQUE7Q0Y4UzlDO0FFN1NtQztFQUFXLGlCQUFBO0NGZ1Q5QztBRS9TbUM7RUFBVyxpQkFBQTtDRmtUOUM7QUVqVG1DO0VBQVcsaUJBQUE7Q0ZvVDlDO0FFblRtQztFQUFXLGlCQUFBO0NGc1Q5QztBRXJUbUM7RUFBVyxpQkFBQTtDRndUOUM7QUV2VG1DO0VBQVcsaUJBQUE7Q0YwVDlDO0FFelRtQztFQUFXLGlCQUFBO0NGNFQ5QztBRTNUbUM7RUFBVyxpQkFBQTtDRjhUOUM7QUU3VG1DO0VBQVcsaUJBQUE7Q0ZnVTlDO0FFL1RtQztFQUFXLGlCQUFBO0NGa1U5QztBRWpVbUM7RUFBVyxpQkFBQTtDRm9VOUM7QUVuVW1DO0VBQVcsaUJBQUE7Q0ZzVTlDO0FFclVtQztFQUFXLGlCQUFBO0NGd1U5QztBRXZVbUM7RUFBVyxpQkFBQTtDRjBVOUM7QUV6VW1DO0VBQVcsaUJBQUE7Q0Y0VTlDO0FFM1VtQztFQUFXLGlCQUFBO0NGOFU5QztBRTdVbUM7RUFBVyxpQkFBQTtDRmdWOUM7QUUvVW1DO0VBQVcsaUJBQUE7Q0ZrVjlDO0FFalZtQztFQUFXLGlCQUFBO0NGb1Y5QztBRW5WbUM7RUFBVyxpQkFBQTtDRnNWOUM7QUVyVm1DO0VBQVcsaUJBQUE7Q0Z3VjlDO0FFdlZtQztFQUFXLGlCQUFBO0NGMFY5QztBRXpWbUM7RUFBVyxpQkFBQTtDRjRWOUM7QUUzVm1DO0VBQVcsaUJBQUE7Q0Y4VjlDO0FFN1ZtQztFQUFXLGlCQUFBO0NGZ1c5QztBRS9WbUM7RUFBVyxpQkFBQTtDRmtXOUM7QUVqV21DO0VBQVcsaUJBQUE7Q0ZvVzlDO0FFbldtQztFQUFXLGlCQUFBO0NGc1c5QztBRXJXbUM7RUFBVyxpQkFBQTtDRndXOUM7QUV2V21DO0VBQVcsaUJBQUE7Q0YwVzlDO0FFeldtQztFQUFXLGlCQUFBO0NGNFc5QztBRTNXbUM7RUFBVyxpQkFBQTtDRjhXOUM7QUU3V21DO0VBQVcsaUJBQUE7Q0ZnWDlDO0FFL1dtQztFQUFXLGlCQUFBO0NGa1g5QztBRWpYbUM7RUFBVyxpQkFBQTtDRm9YOUM7QUVuWG1DO0VBQVcsaUJBQUE7Q0ZzWDlDO0FFclhtQztFQUFXLGlCQUFBO0NGd1g5QztBRXZYbUM7RUFBVyxpQkFBQTtDRjBYOUM7QUV6WG1DO0VBQVcsaUJBQUE7Q0Y0WDlDO0FFM1htQztFQUFXLGlCQUFBO0NGOFg5QztBRTdYbUM7RUFBVyxpQkFBQTtDRmdZOUM7QUUvWG1DO0VBQVcsaUJBQUE7Q0ZrWTlDO0FFalltQztFQUFXLGlCQUFBO0NGb1k5QztBRW5ZbUM7RUFBVyxpQkFBQTtDRnNZOUM7QUVyWW1DO0VBQVcsaUJBQUE7Q0Z3WTlDO0FFdlltQztFQUFXLGlCQUFBO0NGMFk5QztBRXpZbUM7RUFBVyxpQkFBQTtDRjRZOUM7QUUzWW1DO0VBQVcsaUJBQUE7Q0Y4WTlDO0FFN1ltQztFQUFXLGlCQUFBO0NGZ1o5QztBRS9ZbUM7RUFBVyxpQkFBQTtDRmtaOUM7QUVqWm1DO0VBQVcsaUJBQUE7Q0ZvWjlDO0FFblptQztFQUFXLGlCQUFBO0NGc1o5QztBRXJabUM7RUFBVyxpQkFBQTtDRndaOUM7QUV2Wm1DO0VBQVcsaUJBQUE7Q0YwWjlDO0FFelptQztFQUFXLGlCQUFBO0NGNFo5QztBRTNabUM7RUFBVyxpQkFBQTtDRjhaOUM7QUU3Wm1DO0VBQVcsaUJBQUE7Q0ZnYTlDO0FFL1ptQztFQUFXLGlCQUFBO0NGa2E5QztBRWphbUM7RUFBVyxpQkFBQTtDRm9hOUM7QUVuYW1DO0VBQVcsaUJBQUE7Q0ZzYTlDO0FFcmFtQztFQUFXLGlCQUFBO0NGd2E5QztBRXZhbUM7RUFBVyxpQkFBQTtDRjBhOUM7QUV6YW1DO0VBQVcsaUJBQUE7Q0Y0YTlDO0FFM2FtQztFQUFXLGlCQUFBO0NGOGE5QztBRTdhbUM7RUFBVyxpQkFBQTtDRmdiOUM7QUUvYW1DO0VBQVcsaUJBQUE7Q0ZrYjlDO0FFamJtQztFQUFXLGlCQUFBO0NGb2I5QztBRW5ibUM7RUFBVyxpQkFBQTtDRnNiOUM7QUVyYm1DO0VBQVcsaUJBQUE7Q0Z3YjlDO0FFdmJtQztFQUFXLGlCQUFBO0NGMGI5QztBRXpibUM7RUFBVyxpQkFBQTtDRjRiOUM7QUUzYm1DO0VBQVcsaUJBQUE7Q0Y4YjlDO0FFN2JtQztFQUFXLGlCQUFBO0NGZ2M5QztBRS9ibUM7RUFBVyxpQkFBQTtDRmtjOUM7QUVqY21DO0VBQVcsaUJBQUE7Q0ZvYzlDO0FFbmNtQztFQUFXLGlCQUFBO0NGc2M5QztBRXJjbUM7RUFBVyxpQkFBQTtDRndjOUM7QUV2Y21DO0VBQVcsaUJBQUE7Q0YwYzlDO0FFemNtQztFQUFXLGlCQUFBO0NGNGM5QztBRTNjbUM7RUFBVyxpQkFBQTtDRjhjOUM7QUU3Y21DO0VBQVcsaUJBQUE7Q0ZnZDlDO0FFL2NtQztFQUFXLGlCQUFBO0NGa2Q5QztBRWpkbUM7RUFBVyxpQkFBQTtDRm9kOUM7QUVuZG1DO0VBQVcsaUJBQUE7Q0ZzZDlDO0FFcmRtQztFQUFXLGlCQUFBO0NGd2Q5QztBRXZkbUM7RUFBVyxpQkFBQTtDRjBkOUM7QUV6ZG1DO0VBQVcsaUJBQUE7Q0Y0ZDlDO0FFM2RtQztFQUFXLGlCQUFBO0NGOGQ5QztBRTdkbUM7RUFBVyxpQkFBQTtDRmdlOUM7QUUvZG1DO0VBQVcsaUJBQUE7Q0ZrZTlDO0FFamVtQztFQUFXLGlCQUFBO0NGb2U5QztBRW5lbUM7RUFBVyxpQkFBQTtDRnNlOUM7QUVyZW1DO0VBQVcsaUJBQUE7Q0Z3ZTlDO0FFdmVtQztFQUFXLGlCQUFBO0NGMGU5QztBRXplbUM7RUFBVyxpQkFBQTtDRjRlOUM7QUUzZW1DO0VBQVcsaUJBQUE7Q0Y4ZTlDO0FFN2VtQztFQUFXLGlCQUFBO0NGZ2Y5QztBRS9lbUM7RUFBVyxpQkFBQTtDRmtmOUM7QUVqZm1DO0VBQVcsaUJBQUE7Q0ZvZjlDO0FFbmZtQztFQUFXLGlCQUFBO0NGc2Y5QztBRXJmbUM7RUFBVyxpQkFBQTtDRndmOUM7QUV2Zm1DO0VBQVcsaUJBQUE7Q0YwZjlDO0FFemZtQztFQUFXLGlCQUFBO0NGNGY5QztBRTNmbUM7RUFBVyxpQkFBQTtDRjhmOUM7QUU3Zm1DO0VBQVcsaUJBQUE7Q0ZnZ0I5QztBRS9mbUM7RUFBVyxpQkFBQTtDRmtnQjlDO0FFamdCbUM7RUFBVyxpQkFBQTtDRm9nQjlDO0FFbmdCbUM7RUFBVyxpQkFBQTtDRnNnQjlDO0FFcmdCbUM7RUFBVyxpQkFBQTtDRndnQjlDO0FFdmdCbUM7RUFBVyxpQkFBQTtDRjBnQjlDO0FFemdCbUM7RUFBVyxpQkFBQTtDRjRnQjlDO0FFM2dCbUM7RUFBVyxpQkFBQTtDRjhnQjlDO0FFN2dCbUM7RUFBVyxpQkFBQTtDRmdoQjlDO0FFL2dCbUM7RUFBVyxpQkFBQTtDRmtoQjlDO0FFamhCbUM7RUFBVyxpQkFBQTtDRm9oQjlDO0FFbmhCbUM7RUFBVyxpQkFBQTtDRnNoQjlDO0FFcmhCbUM7RUFBVyxpQkFBQTtDRndoQjlDO0FFdmhCbUM7RUFBVyxpQkFBQTtDRjBoQjlDO0FFemhCbUM7RUFBVyxpQkFBQTtDRjRoQjlDO0FFM2hCbUM7RUFBVyxpQkFBQTtDRjhoQjlDO0FFN2hCbUM7RUFBVyxpQkFBQTtDRmdpQjlDO0FFL2hCbUM7RUFBVyxpQkFBQTtDRmtpQjlDO0FFamlCbUM7RUFBVyxpQkFBQTtDRm9pQjlDO0FFbmlCbUM7RUFBVyxpQkFBQTtDRnNpQjlDO0FFcmlCbUM7RUFBVyxpQkFBQTtDRndpQjlDO0FFdmlCbUM7RUFBVyxpQkFBQTtDRjBpQjlDO0FFemlCbUM7RUFBVyxpQkFBQTtDRjRpQjlDO0FFM2lCbUM7RUFBVyxpQkFBQTtDRjhpQjlDO0FFN2lCbUM7RUFBVyxpQkFBQTtDRmdqQjlDO0FFL2lCbUM7RUFBVyxpQkFBQTtDRmtqQjlDO0FFampCbUM7RUFBVyxpQkFBQTtDRm9qQjlDO0FFbmpCbUM7RUFBVyxpQkFBQTtDRnNqQjlDO0FFcmpCbUM7RUFBVyxpQkFBQTtDRndqQjlDO0FFdmpCbUM7RUFBVyxpQkFBQTtDRjBqQjlDO0FFempCbUM7RUFBVyxpQkFBQTtDRjRqQjlDO0FFM2pCbUM7RUFBVyxpQkFBQTtDRjhqQjlDO0FFN2pCbUM7RUFBVyxpQkFBQTtDRmdrQjlDO0FFL2pCbUM7RUFBVyxpQkFBQTtDRmtrQjlDO0FFamtCbUM7RUFBVyxpQkFBQTtDRm9rQjlDO0FFbmtCbUM7RUFBVyxpQkFBQTtDRnNrQjlDO0FFcmtCbUM7RUFBVyxpQkFBQTtDRndrQjlDO0FFL2pCbUM7RUFBVyxpQkFBQTtDRmtrQjlDO0FFamtCbUM7RUFBVyxpQkFBQTtDRm9rQjlDO0FFbmtCbUM7RUFBVyxpQkFBQTtDRnNrQjlDO0FFcmtCbUM7RUFBVyxpQkFBQTtDRndrQjlDO0FFdmtCbUM7RUFBVyxpQkFBQTtDRjBrQjlDO0FFemtCbUM7RUFBVyxpQkFBQTtDRjRrQjlDO0FFM2tCbUM7RUFBVyxpQkFBQTtDRjhrQjlDO0FFN2tCbUM7RUFBVyxpQkFBQTtDRmdsQjlDO0FFL2tCbUM7RUFBVyxpQkFBQTtDRmtsQjlDO0FFamxCbUM7RUFBVyxpQkFBQTtDRm9sQjlDO0FFbmxCbUM7RUFBVyxpQkFBQTtDRnNsQjlDO0FFcmxCbUM7RUFBVyxpQkFBQTtDRndsQjlDO0FFdmxCbUM7RUFBVyxpQkFBQTtDRjBsQjlDO0FFemxCbUM7RUFBVyxpQkFBQTtDRjRsQjlDO0FFM2xCbUM7RUFBVyxpQkFBQTtDRjhsQjlDO0FFN2xCbUM7RUFBVyxpQkFBQTtDRmdtQjlDO0FFL2xCbUM7RUFBVyxpQkFBQTtDRmttQjlDO0FFam1CbUM7RUFBVyxpQkFBQTtDRm9tQjlDO0FFbm1CbUM7RUFBVyxpQkFBQTtDRnNtQjlDO0FFcm1CbUM7RUFBVyxpQkFBQTtDRndtQjlDO0FFdm1CbUM7RUFBVyxpQkFBQTtDRjBtQjlDO0FFem1CbUM7RUFBVyxpQkFBQTtDRjRtQjlDO0FFM21CbUM7RUFBVyxpQkFBQTtDRjhtQjlDO0FFN21CbUM7RUFBVyxpQkFBQTtDRmduQjlDO0FFL21CbUM7RUFBVyxpQkFBQTtDRmtuQjlDO0FFam5CbUM7RUFBVyxpQkFBQTtDRm9uQjlDO0FFbm5CbUM7RUFBVyxpQkFBQTtDRnNuQjlDO0FFcm5CbUM7RUFBVyxpQkFBQTtDRnduQjlDO0FFdm5CbUM7RUFBVyxpQkFBQTtDRjBuQjlDO0FFem5CbUM7RUFBVyxpQkFBQTtDRjRuQjlDO0FFM25CbUM7RUFBVyxpQkFBQTtDRjhuQjlDO0FFN25CbUM7RUFBVyxpQkFBQTtDRmdvQjlDO0FFL25CbUM7RUFBVyxpQkFBQTtDRmtvQjlDO0FFam9CbUM7RUFBVyxpQkFBQTtDRm9vQjlDO0FFbm9CbUM7RUFBVyxpQkFBQTtDRnNvQjlDO0FFcm9CbUM7RUFBVyxpQkFBQTtDRndvQjlDO0FFdm9CbUM7RUFBVyxpQkFBQTtDRjBvQjlDO0FFem9CbUM7RUFBVyxpQkFBQTtDRjRvQjlDO0FFM29CbUM7RUFBVyxpQkFBQTtDRjhvQjlDO0FFN29CbUM7RUFBVyxpQkFBQTtDRmdwQjlDO0FFL29CbUM7RUFBVyxpQkFBQTtDRmtwQjlDO0FFanBCbUM7RUFBVyxpQkFBQTtDRm9wQjlDO0FFbnBCbUM7RUFBVyxpQkFBQTtDRnNwQjlDO0FFcnBCbUM7RUFBVyxpQkFBQTtDRndwQjlDO0FFdnBCbUM7RUFBVyxpQkFBQTtDRjBwQjlDO0FFenBCbUM7RUFBVyxpQkFBQTtDRjRwQjlDO0FFM3BCbUM7RUFBVyxpQkFBQTtDRjhwQjlDO0FFN3BCbUM7RUFBVyxpQkFBQTtDRmdxQjlDO0FFL3BCbUM7RUFBVyxpQkFBQTtDRmtxQjlDO0FFanFCbUM7RUFBVyxpQkFBQTtDRm9xQjlDO0FFbnFCbUM7RUFBVyxpQkFBQTtDRnNxQjlDO0FFcnFCbUM7RUFBVyxpQkFBQTtDRndxQjlDO0FFdnFCbUM7RUFBVyxpQkFBQTtDRjBxQjlDO0FFenFCbUM7RUFBVyxpQkFBQTtDRjRxQjlDO0FFM3FCbUM7RUFBVyxpQkFBQTtDRjhxQjlDO0FFN3FCbUM7RUFBVyxpQkFBQTtDRmdyQjlDO0FHdDlCRDtFQ2tFVSx1QkFBQTtDSnk1QlQ7QUd4OUJEOztFQytEVSx1QkFBQTtDSis1QlQ7QUd0OUJEO0VBQ0UsZ0JBQUE7RUFDQSw4Q0FBQTtDSHc5QkQ7QUdyOUJEO0VBQ0UsNERBQUE7RUFDQSxnQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZUFBQTtFQUNBLHVCQUFBO0NIdTlCRDtBR245QkQ7Ozs7RUFJRSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0EscUJBQUE7Q0hxOUJEO0FHLzhCRDtFQUNFLGVBQUE7RUFDQSxzQkFBQTtDSGk5QkQ7QUcvOEJDOztFQUVFLGVBQUE7RUFDQSwyQkFBQTtDSGk5Qkg7QUc5OEJDO0VFbkRBLDJDQUFBO0VBQ0EscUJBQUE7Q0xvZ0NEO0FHdjhCRDtFQUNFLFVBQUE7Q0h5OEJEO0FHbjhCRDtFQUNFLHVCQUFBO0NIcThCRDtBR2o4QkQ7Ozs7O0VHdkVFLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7Q04rZ0NEO0FHcjhCRDtFQUNFLG1CQUFBO0NIdThCRDtBR2o4QkQ7RUFDRSxhQUFBO0VBQ0Esd0JBQUE7RUFDQSx1QkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUM2RkEseUNBQUE7RUFFUSxpQ0FBQTtFRXZMUixzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtDTitoQ0Q7QUdqOEJEO0VBQ0UsbUJBQUE7Q0htOEJEO0FHNzdCRDtFQUNFLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxVQUFBO0VBQ0EsOEJBQUE7Q0grN0JEO0FHdjdCRDtFQUNFLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxVQUFBO0NIeTdCRDtBR2o3QkM7O0VBRUUsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7Q0htN0JIO0FHeDZCRDtFQUNFLGdCQUFBO0NIMDZCRDtBT2prQ0Q7Ozs7Ozs7Ozs7OztFQUVFLHFCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7Q1A2a0NEO0FPbGxDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBU0ksb0JBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtDUG1tQ0g7QU8vbENEOzs7Ozs7RUFHRSxpQkFBQTtFQUNBLG9CQUFBO0NQb21DRDtBT3htQ0Q7Ozs7Ozs7Ozs7OztFQVFJLGVBQUE7Q1A4bUNIO0FPM21DRDs7Ozs7O0VBR0UsaUJBQUE7RUFDQSxvQkFBQTtDUGduQ0Q7QU9wbkNEOzs7Ozs7Ozs7Ozs7RUFRSSxlQUFBO0NQMG5DSDtBT3RuQ0Q7O0VBQVUsZ0JBQUE7Q1AwbkNUO0FPem5DRDs7RUFBVSxnQkFBQTtDUDZuQ1Q7QU81bkNEOztFQUFVLGdCQUFBO0NQZ29DVDtBTy9uQ0Q7O0VBQVUsZ0JBQUE7Q1Btb0NUO0FPbG9DRDs7RUFBVSxnQkFBQTtDUHNvQ1Q7QU9yb0NEOztFQUFVLGdCQUFBO0NQeW9DVDtBT25vQ0Q7RUFDRSxpQkFBQTtDUHFvQ0Q7QU9sb0NEO0VBQ0Usb0JBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7Q1Bvb0NEO0FPbG9DQztFQTJPRjtJQTFPSSxnQkFBQTtHUHFvQ0Q7Q0FDRjtBTzduQ0Q7O0VBRUUsZUFBQTtDUCtuQ0Q7QU81bkNEOztFQUVFLDBCQUFBO0VBQ0EsY0FBQTtDUDhuQ0Q7QU8xbkNEO0VBQXVCLGlCQUFBO0NQNm5DdEI7QU81bkNEO0VBQXVCLGtCQUFBO0NQK25DdEI7QU85bkNEO0VBQXVCLG1CQUFBO0NQaW9DdEI7QU9ob0NEO0VBQXVCLG9CQUFBO0NQbW9DdEI7QU9sb0NEO0VBQXVCLG9CQUFBO0NQcW9DdEI7QU9sb0NEO0VBQXVCLDBCQUFBO0NQcW9DdEI7QU9wb0NEO0VBQXVCLDBCQUFBO0NQdW9DdEI7QU90b0NEO0VBQXVCLDJCQUFBO0NQeW9DdEI7QU90b0NEO0VBQ0UsZUFBQTtDUHdvQ0Q7QU90b0NEO0VDckdFLGVBQUE7Q1I4dUNEO0FRN3VDQzs7RUFFRSxlQUFBO0NSK3VDSDtBTzFvQ0Q7RUN4R0UsZUFBQTtDUnF2Q0Q7QVFwdkNDOztFQUVFLGVBQUE7Q1JzdkNIO0FPOW9DRDtFQzNHRSxlQUFBO0NSNHZDRDtBUTN2Q0M7O0VBRUUsZUFBQTtDUjZ2Q0g7QU9scENEO0VDOUdFLGVBQUE7Q1Jtd0NEO0FRbHdDQzs7RUFFRSxlQUFBO0NSb3dDSDtBT3RwQ0Q7RUNqSEUsZUFBQTtDUjB3Q0Q7QVF6d0NDOztFQUVFLGVBQUE7Q1Iyd0NIO0FPdHBDRDtFQUdFLFlBQUE7RUUzSEEsMEJBQUE7Q1RreENEO0FTanhDQzs7RUFFRSwwQkFBQTtDVG14Q0g7QU94cENEO0VFOUhFLDBCQUFBO0NUeXhDRDtBU3h4Q0M7O0VBRUUsMEJBQUE7Q1QweENIO0FPNXBDRDtFRWpJRSwwQkFBQTtDVGd5Q0Q7QVMveENDOztFQUVFLDBCQUFBO0NUaXlDSDtBT2hxQ0Q7RUVwSUUsMEJBQUE7Q1R1eUNEO0FTdHlDQzs7RUFFRSwwQkFBQTtDVHd5Q0g7QU9wcUNEO0VFdklFLDBCQUFBO0NUOHlDRDtBUzd5Q0M7O0VBRUUsMEJBQUE7Q1QreUNIO0FPbnFDRDtFQUNFLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQ0FBQTtDUHFxQ0Q7QU83cENEOztFQUVFLGNBQUE7RUFDQSxvQkFBQTtDUCtwQ0Q7QU9scUNEOzs7O0VBTUksaUJBQUE7Q1BrcUNIO0FPM3BDRDtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7Q1A2cENEO0FPenBDRDtFQUxFLGdCQUFBO0VBQ0EsaUJBQUE7RUFNQSxrQkFBQTtDUDRwQ0Q7QU85cENEO0VBS0ksc0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0NQNHBDSDtBT3ZwQ0Q7RUFDRSxjQUFBO0VBQ0Esb0JBQUE7Q1B5cENEO0FPdnBDRDs7RUFFRSx3QkFBQTtDUHlwQ0Q7QU92cENEO0VBQ0Usa0JBQUE7Q1B5cENEO0FPdnBDRDtFQUNFLGVBQUE7Q1B5cENEO0FPNW9DQztFQXlGRjtJQXZGTSxZQUFBO0lBQ0EsYUFBQTtJQUNBLFlBQUE7SUFDQSxrQkFBQTtJR3ROSixpQkFBQTtJQUNBLHdCQUFBO0lBQ0Esb0JBQUE7R1ZxMkNDO0VPN2pDSDtJQWhGTSxtQkFBQTtHUGdwQ0g7Q0FDRjtBT3ZvQ0Q7O0VBR0UsYUFBQTtFQUNBLGtDQUFBO0NQd29DRDtBT3RvQ0Q7RUFDRSxlQUFBO0VBOUlxQiwwQkFBQTtDUHV4Q3RCO0FPcG9DRDtFQUNFLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLCtCQUFBO0NQc29DRDtBT2pvQ0c7OztFQUNFLGlCQUFBO0NQcW9DTDtBTy9vQ0Q7OztFQW1CSSxlQUFBO0VBQ0EsZUFBQTtFQUNBLHdCQUFBO0VBQ0EsZUFBQTtDUGlvQ0g7QU8vbkNHOzs7RUFDRSx1QkFBQTtDUG1vQ0w7QU8zbkNEOztFQUVFLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQ0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtDUDZuQ0Q7QU92bkNHOzs7Ozs7RUFBVyxZQUFBO0NQK25DZDtBTzluQ0c7Ozs7OztFQUNFLHVCQUFBO0NQcW9DTDtBTy9uQ0Q7RUFDRSxvQkFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7Q1Bpb0NEO0FXdjZDRDs7OztFQUlFLCtEQUFBO0NYeTZDRDtBV3I2Q0Q7RUFDRSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsMEJBQUE7RUFDQSxtQkFBQTtDWHU2Q0Q7QVduNkNEO0VBQ0UsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSwrQ0FBQTtDWHE2Q0Q7QVczNkNEO0VBU0ksV0FBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtDWHE2Q0g7QVdoNkNEO0VBQ0UsZUFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0Esd0JBQUE7RUFDQSxzQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLDBCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtDWGs2Q0Q7QVc3NkNEO0VBZUksV0FBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLHNCQUFBO0VBQ0EsOEJBQUE7RUFDQSxpQkFBQTtDWGk2Q0g7QVc1NUNEO0VBQ0Usa0JBQUE7RUFDQSxtQkFBQTtDWDg1Q0Q7QVl4OUNEO0VDSEUsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7Q2I4OUNEO0FZMzlDQztFQXdFRjtJQXZFSSxhQUFBO0daODlDRDtDQUNGO0FZNzlDQztFQXFFRjtJQXBFSSxhQUFBO0daZytDRDtDQUNGO0FZLzlDQztFQWtFRjtJQWpFSSxjQUFBO0daaytDRDtDQUNGO0FZejlDRDtFQ3ZCRSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtDYm0vQ0Q7QVl0OUNEO0VDdkJFLG1CQUFBO0VBQ0Esb0JBQUE7Q2JnL0NEO0FjaC9DRztFQUNFLG1CQUFBO0VBRUEsZ0JBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0NkZy9DTDtBY2grQ0c7RUFDRSxZQUFBO0NkaytDTDtBYzM5Q0M7RUFDRSxZQUFBO0NkNjlDSDtBYzk5Q0M7RUFDRSxvQkFBQTtDZGcrQ0g7QWNqK0NDO0VBQ0Usb0JBQUE7Q2RtK0NIO0FjcCtDQztFQUNFLFdBQUE7Q2RzK0NIO0FjditDQztFQUNFLG9CQUFBO0NkeStDSDtBYzErQ0M7RUFDRSxvQkFBQTtDZDQrQ0g7QWM3K0NDO0VBQ0UsV0FBQTtDZCsrQ0g7QWNoL0NDO0VBQ0Usb0JBQUE7Q2RrL0NIO0Fjbi9DQztFQUNFLG9CQUFBO0NkcS9DSDtBY3QvQ0M7RUFDRSxXQUFBO0Nkdy9DSDtBY3ovQ0M7RUFDRSxvQkFBQTtDZDIvQ0g7QWM1L0NDO0VBQ0UsbUJBQUE7Q2Q4L0NIO0FjaC9DQztFQUNFLFlBQUE7Q2RrL0NIO0Fjbi9DQztFQUNFLG9CQUFBO0NkcS9DSDtBY3QvQ0M7RUFDRSxvQkFBQTtDZHcvQ0g7QWN6L0NDO0VBQ0UsV0FBQTtDZDIvQ0g7QWM1L0NDO0VBQ0Usb0JBQUE7Q2Q4L0NIO0FjLy9DQztFQUNFLG9CQUFBO0NkaWdESDtBY2xnREM7RUFDRSxXQUFBO0Nkb2dESDtBY3JnREM7RUFDRSxvQkFBQTtDZHVnREg7QWN4Z0RDO0VBQ0Usb0JBQUE7Q2QwZ0RIO0FjM2dEQztFQUNFLFdBQUE7Q2Q2Z0RIO0FjOWdEQztFQUNFLG9CQUFBO0NkZ2hESDtBY2poREM7RUFDRSxtQkFBQTtDZG1oREg7QWMvZ0RDO0VBQ0UsWUFBQTtDZGloREg7QWNqaURDO0VBQ0UsV0FBQTtDZG1pREg7QWNwaURDO0VBQ0UsbUJBQUE7Q2RzaURIO0FjdmlEQztFQUNFLG1CQUFBO0NkeWlESDtBYzFpREM7RUFDRSxVQUFBO0NkNGlESDtBYzdpREM7RUFDRSxtQkFBQTtDZCtpREg7QWNoakRDO0VBQ0UsbUJBQUE7Q2RrakRIO0FjbmpEQztFQUNFLFVBQUE7Q2RxakRIO0FjdGpEQztFQUNFLG1CQUFBO0Nkd2pESDtBY3pqREM7RUFDRSxtQkFBQTtDZDJqREg7QWM1akRDO0VBQ0UsVUFBQTtDZDhqREg7QWMvakRDO0VBQ0UsbUJBQUE7Q2Rpa0RIO0FjbGtEQztFQUNFLGtCQUFBO0Nkb2tESDtBY2hrREM7RUFDRSxXQUFBO0Nka2tESDtBY3BqREM7RUFDRSxrQkFBQTtDZHNqREg7QWN2akRDO0VBQ0UsMEJBQUE7Q2R5akRIO0FjMWpEQztFQUNFLDBCQUFBO0NkNGpESDtBYzdqREM7RUFDRSxpQkFBQTtDZCtqREg7QWNoa0RDO0VBQ0UsMEJBQUE7Q2Rra0RIO0FjbmtEQztFQUNFLDBCQUFBO0NkcWtESDtBY3RrREM7RUFDRSxpQkFBQTtDZHdrREg7QWN6a0RDO0VBQ0UsMEJBQUE7Q2Qya0RIO0FjNWtEQztFQUNFLDBCQUFBO0NkOGtESDtBYy9rREM7RUFDRSxpQkFBQTtDZGlsREg7QWNsbERDO0VBQ0UsMEJBQUE7Q2RvbERIO0FjcmxEQztFQUNFLHlCQUFBO0NkdWxESDtBY3hsREM7RUFDRSxnQkFBQTtDZDBsREg7QVlubUREO0VFekJJO0lBQ0UsWUFBQTtHZCtuREg7RWN4bkREO0lBQ0UsWUFBQTtHZDBuREQ7RWMzbkREO0lBQ0Usb0JBQUE7R2Q2bkREO0VjOW5ERDtJQUNFLG9CQUFBO0dkZ29ERDtFY2pvREQ7SUFDRSxXQUFBO0dkbW9ERDtFY3BvREQ7SUFDRSxvQkFBQTtHZHNvREQ7RWN2b0REO0lBQ0Usb0JBQUE7R2R5b0REO0VjMW9ERDtJQUNFLFdBQUE7R2Q0b0REO0VjN29ERDtJQUNFLG9CQUFBO0dkK29ERDtFY2hwREQ7SUFDRSxvQkFBQTtHZGtwREQ7RWNucEREO0lBQ0UsV0FBQTtHZHFwREQ7RWN0cEREO0lBQ0Usb0JBQUE7R2R3cEREO0VjenBERDtJQUNFLG1CQUFBO0dkMnBERDtFYzdvREQ7SUFDRSxZQUFBO0dkK29ERDtFY2hwREQ7SUFDRSxvQkFBQTtHZGtwREQ7RWNucEREO0lBQ0Usb0JBQUE7R2RxcEREO0VjdHBERDtJQUNFLFdBQUE7R2R3cEREO0VjenBERDtJQUNFLG9CQUFBO0dkMnBERDtFYzVwREQ7SUFDRSxvQkFBQTtHZDhwREQ7RWMvcEREO0lBQ0UsV0FBQTtHZGlxREQ7RWNscUREO0lBQ0Usb0JBQUE7R2RvcUREO0VjcnFERDtJQUNFLG9CQUFBO0dkdXFERDtFY3hxREQ7SUFDRSxXQUFBO0dkMHFERDtFYzNxREQ7SUFDRSxvQkFBQTtHZDZxREQ7RWM5cUREO0lBQ0UsbUJBQUE7R2RnckREO0VjNXFERDtJQUNFLFlBQUE7R2Q4cUREO0VjOXJERDtJQUNFLFdBQUE7R2Rnc0REO0VjanNERDtJQUNFLG1CQUFBO0dkbXNERDtFY3BzREQ7SUFDRSxtQkFBQTtHZHNzREQ7RWN2c0REO0lBQ0UsVUFBQTtHZHlzREQ7RWMxc0REO0lBQ0UsbUJBQUE7R2Q0c0REO0VjN3NERDtJQUNFLG1CQUFBO0dkK3NERDtFY2h0REQ7SUFDRSxVQUFBO0dka3RERDtFY250REQ7SUFDRSxtQkFBQTtHZHF0REQ7RWN0dEREO0lBQ0UsbUJBQUE7R2R3dEREO0VjenRERDtJQUNFLFVBQUE7R2QydEREO0VjNXRERDtJQUNFLG1CQUFBO0dkOHRERDtFYy90REQ7SUFDRSxrQkFBQTtHZGl1REQ7RWM3dEREO0lBQ0UsV0FBQTtHZCt0REQ7RWNqdEREO0lBQ0Usa0JBQUE7R2RtdEREO0VjcHRERDtJQUNFLDBCQUFBO0dkc3RERDtFY3Z0REQ7SUFDRSwwQkFBQTtHZHl0REQ7RWMxdEREO0lBQ0UsaUJBQUE7R2Q0dEREO0VjN3RERDtJQUNFLDBCQUFBO0dkK3RERDtFY2h1REQ7SUFDRSwwQkFBQTtHZGt1REQ7RWNudUREO0lBQ0UsaUJBQUE7R2RxdUREO0VjdHVERDtJQUNFLDBCQUFBO0dkd3VERDtFY3p1REQ7SUFDRSwwQkFBQTtHZDJ1REQ7RWM1dUREO0lBQ0UsaUJBQUE7R2Q4dUREO0VjL3VERDtJQUNFLDBCQUFBO0dkaXZERDtFY2x2REQ7SUFDRSx5QkFBQTtHZG92REQ7RWNydkREO0lBQ0UsZ0JBQUE7R2R1dkREO0NBQ0Y7QVl4dkREO0VFbENJO0lBQ0UsWUFBQTtHZDZ4REg7RWN0eEREO0lBQ0UsWUFBQTtHZHd4REQ7RWN6eEREO0lBQ0Usb0JBQUE7R2QyeEREO0VjNXhERDtJQUNFLG9CQUFBO0dkOHhERDtFYy94REQ7SUFDRSxXQUFBO0dkaXlERDtFY2x5REQ7SUFDRSxvQkFBQTtHZG95REQ7RWNyeUREO0lBQ0Usb0JBQUE7R2R1eUREO0VjeHlERDtJQUNFLFdBQUE7R2QweUREO0VjM3lERDtJQUNFLG9CQUFBO0dkNnlERDtFYzl5REQ7SUFDRSxvQkFBQTtHZGd6REQ7RWNqekREO0lBQ0UsV0FBQTtHZG16REQ7RWNwekREO0lBQ0Usb0JBQUE7R2RzekREO0VjdnpERDtJQUNFLG1CQUFBO0dkeXpERDtFYzN5REQ7SUFDRSxZQUFBO0dkNnlERDtFYzl5REQ7SUFDRSxvQkFBQTtHZGd6REQ7RWNqekREO0lBQ0Usb0JBQUE7R2RtekREO0VjcHpERDtJQUNFLFdBQUE7R2RzekREO0VjdnpERDtJQUNFLG9CQUFBO0dkeXpERDtFYzF6REQ7SUFDRSxvQkFBQTtHZDR6REQ7RWM3ekREO0lBQ0UsV0FBQTtHZCt6REQ7RWNoMEREO0lBQ0Usb0JBQUE7R2RrMEREO0VjbjBERDtJQUNFLG9CQUFBO0dkcTBERDtFY3QwREQ7SUFDRSxXQUFBO0dkdzBERDtFY3owREQ7SUFDRSxvQkFBQTtHZDIwREQ7RWM1MEREO0lBQ0UsbUJBQUE7R2Q4MEREO0VjMTBERDtJQUNFLFlBQUE7R2Q0MEREO0VjNTFERDtJQUNFLFdBQUE7R2Q4MUREO0VjLzFERDtJQUNFLG1CQUFBO0dkaTJERDtFY2wyREQ7SUFDRSxtQkFBQTtHZG8yREQ7RWNyMkREO0lBQ0UsVUFBQTtHZHUyREQ7RWN4MkREO0lBQ0UsbUJBQUE7R2QwMkREO0VjMzJERDtJQUNFLG1CQUFBO0dkNjJERDtFYzkyREQ7SUFDRSxVQUFBO0dkZzNERDtFY2ozREQ7SUFDRSxtQkFBQTtHZG0zREQ7RWNwM0REO0lBQ0UsbUJBQUE7R2RzM0REO0VjdjNERDtJQUNFLFVBQUE7R2R5M0REO0VjMTNERDtJQUNFLG1CQUFBO0dkNDNERDtFYzczREQ7SUFDRSxrQkFBQTtHZCszREQ7RWMzM0REO0lBQ0UsV0FBQTtHZDYzREQ7RWMvMkREO0lBQ0Usa0JBQUE7R2RpM0REO0VjbDNERDtJQUNFLDBCQUFBO0dkbzNERDtFY3IzREQ7SUFDRSwwQkFBQTtHZHUzREQ7RWN4M0REO0lBQ0UsaUJBQUE7R2QwM0REO0VjMzNERDtJQUNFLDBCQUFBO0dkNjNERDtFYzkzREQ7SUFDRSwwQkFBQTtHZGc0REQ7RWNqNEREO0lBQ0UsaUJBQUE7R2RtNEREO0VjcDRERDtJQUNFLDBCQUFBO0dkczRERDtFY3Y0REQ7SUFDRSwwQkFBQTtHZHk0REQ7RWMxNEREO0lBQ0UsaUJBQUE7R2Q0NEREO0VjNzRERDtJQUNFLDBCQUFBO0dkKzRERDtFY2g1REQ7SUFDRSx5QkFBQTtHZGs1REQ7RWNuNUREO0lBQ0UsZ0JBQUE7R2RxNUREO0NBQ0Y7QVk3NEREO0VFM0NJO0lBQ0UsWUFBQTtHZDI3REg7RWNwN0REO0lBQ0UsWUFBQTtHZHM3REQ7RWN2N0REO0lBQ0Usb0JBQUE7R2R5N0REO0VjMTdERDtJQUNFLG9CQUFBO0dkNDdERDtFYzc3REQ7SUFDRSxXQUFBO0dkKzdERDtFY2g4REQ7SUFDRSxvQkFBQTtHZGs4REQ7RWNuOEREO0lBQ0Usb0JBQUE7R2RxOEREO0VjdDhERDtJQUNFLFdBQUE7R2R3OEREO0VjejhERDtJQUNFLG9CQUFBO0dkMjhERDtFYzU4REQ7SUFDRSxvQkFBQTtHZDg4REQ7RWMvOEREO0lBQ0UsV0FBQTtHZGk5REQ7RWNsOUREO0lBQ0Usb0JBQUE7R2RvOUREO0VjcjlERDtJQUNFLG1CQUFBO0dkdTlERDtFY3o4REQ7SUFDRSxZQUFBO0dkMjhERDtFYzU4REQ7SUFDRSxvQkFBQTtHZDg4REQ7RWMvOEREO0lBQ0Usb0JBQUE7R2RpOUREO0VjbDlERDtJQUNFLFdBQUE7R2RvOUREO0VjcjlERDtJQUNFLG9CQUFBO0dkdTlERDtFY3g5REQ7SUFDRSxvQkFBQTtHZDA5REQ7RWMzOUREO0lBQ0UsV0FBQTtHZDY5REQ7RWM5OUREO0lBQ0Usb0JBQUE7R2RnK0REO0VjaitERDtJQUNFLG9CQUFBO0dkbStERDtFY3ArREQ7SUFDRSxXQUFBO0dkcytERDtFY3YrREQ7SUFDRSxvQkFBQTtHZHkrREQ7RWMxK0REO0lBQ0UsbUJBQUE7R2Q0K0REO0VjeCtERDtJQUNFLFlBQUE7R2QwK0REO0VjMS9ERDtJQUNFLFdBQUE7R2Q0L0REO0VjNy9ERDtJQUNFLG1CQUFBO0dkKy9ERDtFY2hnRUQ7SUFDRSxtQkFBQTtHZGtnRUQ7RWNuZ0VEO0lBQ0UsVUFBQTtHZHFnRUQ7RWN0Z0VEO0lBQ0UsbUJBQUE7R2R3Z0VEO0VjemdFRDtJQUNFLG1CQUFBO0dkMmdFRDtFYzVnRUQ7SUFDRSxVQUFBO0dkOGdFRDtFYy9nRUQ7SUFDRSxtQkFBQTtHZGloRUQ7RWNsaEVEO0lBQ0UsbUJBQUE7R2RvaEVEO0VjcmhFRDtJQUNFLFVBQUE7R2R1aEVEO0VjeGhFRDtJQUNFLG1CQUFBO0dkMGhFRDtFYzNoRUQ7SUFDRSxrQkFBQTtHZDZoRUQ7RWN6aEVEO0lBQ0UsV0FBQTtHZDJoRUQ7RWM3Z0VEO0lBQ0Usa0JBQUE7R2QrZ0VEO0VjaGhFRDtJQUNFLDBCQUFBO0dka2hFRDtFY25oRUQ7SUFDRSwwQkFBQTtHZHFoRUQ7RWN0aEVEO0lBQ0UsaUJBQUE7R2R3aEVEO0VjemhFRDtJQUNFLDBCQUFBO0dkMmhFRDtFYzVoRUQ7SUFDRSwwQkFBQTtHZDhoRUQ7RWMvaEVEO0lBQ0UsaUJBQUE7R2RpaUVEO0VjbGlFRDtJQUNFLDBCQUFBO0dkb2lFRDtFY3JpRUQ7SUFDRSwwQkFBQTtHZHVpRUQ7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ckp5dld4QjtBc0pqeFdEO0V0QzRCSSxpQkFBQTtDaEh3dldIO0FzSnB4V0Q7RXRDK0JJLGlCQUFBO0NoSHd2V0g7QXNKdnhXRDtFQUdJLG1CQUFBO0N0SnV4V0g7QXVKMXhXRDtFQUVJLGtDQUFBO0VBQ0Esb0JBQUE7Q3ZKMnhXSDtBdUo5eFdEO0VBSVEsb0JBQUE7Q3ZKNnhXUDtBdUpqeVdEO0VBS3NCLHNCQUFBO0N2Sit4V3JCO0F1SnB5V0Q7RUFRSSxrQkFBQTtDdkoreFdIO0F1SnZ5V0Q7RUFTNEIsMEJBQUE7Q3ZKaXlXM0I7QXVKMXlXRDtFQVk2QixpQkFBQTtDdkppeVc1QjtBdUo3eVdEO0VBZVUsaUJBQUE7Q3ZKaXlXVDtBd0poeldEO0VBRUksa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VyRnNERixpQkFBQTtFQUNBLG1CQUFBO0NuRTR2V0Q7QXdKdnpXRDtFQU9NLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0N4Sm16V0w7QXdKNXpXRDtFQVdRLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0N4Sm96V1A7QXdKajBXRDtFQWdCUSxlQUFBO0VBQ0EsMEJBQUE7Q3hKb3pXUDtBd0pseldLO0VBQ0UsYUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7Q3hKb3pXUDtBd0p2eldLO0VBS0ksZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLDBCQUFBO0N4SnF6V1Q7QXdKNXpXSztFQVVJLGlCQUFBO0N4SnF6V1Q7QXdKbHpXSztFQUNFLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0N4Sm96V1A7QXdKdnpXSztFQUtJLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSwwQkFBQTtDeEpxeldUO0F3SjV6V0s7RUFVSSxpQkFBQTtDeEpxeldUO0FBQ0QsZUFBZSIsImZpbGUiOiJpbXBhYy1hbmd1bGFyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4qKiBBbGwgQGltcG9ydCdzIHNob3VsZCBsaXZlIGluIHRoaXMgZmlsZSFcbiovXG4vKipcbiAqICBEbyBub3QgcmVtb3ZlIHRoaXMgY29tbWVudHMgYmVsbG93LiBJdCdzIHRoZSBtYXJrZXJzIHVzZWQgYnkgd2lyZWRlcCB0byBpbmplY3RcbiAqICBsZXNzIGRlcGVuZGVuY2llcyB3aGVuIGRlZmluZWQgaW4gdGhlIGJvd2VyLmpzb24gb2YgeW91ciBkZXBlbmRlbmNpZXNcbiAqL1xuLyohXG4gKiBCb290c3RyYXAgdjMuMy43IChodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbSlcbiAqIENvcHlyaWdodCAyMDExLTIwMTYgVHdpdHRlciwgSW5jLlxuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAqL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG59XG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIHNyYzogdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdCcpO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcjZ2x5cGhpY29uc19oYWxmbGluZ3NyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbn1cbi5nbHlwaGljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5nbHlwaGljb24tYXN0ZXJpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwMmFcIjtcbn1cbi5nbHlwaGljb24tcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDAyYlwiO1xufVxuLmdseXBoaWNvbi1ldXJvOmJlZm9yZSxcbi5nbHlwaGljb24tZXVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGFjXCI7XG59XG4uZ2x5cGhpY29uLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMjEyXCI7XG59XG4uZ2x5cGhpY29uLWNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNjAxXCI7XG59XG4uZ2x5cGhpY29uLWVudmVsb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNzA5XCI7XG59XG4uZ2x5cGhpY29uLXBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjcwZlwiO1xufVxuLmdseXBoaWNvbi1nbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMVwiO1xufVxuLmdseXBoaWNvbi1tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMlwiO1xufVxuLmdseXBoaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDNcIjtcbn1cbi5nbHlwaGljb24taGVhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDVcIjtcbn1cbi5nbHlwaGljb24tc3RhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwNlwiO1xufVxuLmdseXBoaWNvbi1zdGFyLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA3XCI7XG59XG4uZ2x5cGhpY29uLXVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDhcIjtcbn1cbi5nbHlwaGljb24tZmlsbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwOVwiO1xufVxuLmdseXBoaWNvbi10aC1sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMFwiO1xufVxuLmdseXBoaWNvbi10aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMVwiO1xufVxuLmdseXBoaWNvbi10aC1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEyXCI7XG59XG4uZ2x5cGhpY29uLW9rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEzXCI7XG59XG4uZ2x5cGhpY29uLXJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxNFwiO1xufVxuLmdseXBoaWNvbi16b29tLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE1XCI7XG59XG4uZ2x5cGhpY29uLXpvb20tb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE2XCI7XG59XG4uZ2x5cGhpY29uLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxN1wiO1xufVxuLmdseXBoaWNvbi1zaWduYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMThcIjtcbn1cbi5nbHlwaGljb24tY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE5XCI7XG59XG4uZ2x5cGhpY29uLXRyYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIwXCI7XG59XG4uZ2x5cGhpY29uLWhvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjFcIjtcbn1cbi5nbHlwaGljb24tZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyMlwiO1xufVxuLmdseXBoaWNvbi10aW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIzXCI7XG59XG4uZ2x5cGhpY29uLXJvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjRcIjtcbn1cbi5nbHlwaGljb24tZG93bmxvYWQtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI1XCI7XG59XG4uZ2x5cGhpY29uLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI2XCI7XG59XG4uZ2x5cGhpY29uLXVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyN1wiO1xufVxuLmdseXBoaWNvbi1pbmJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyOFwiO1xufVxuLmdseXBoaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyOVwiO1xufVxuLmdseXBoaWNvbi1yZXBlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzBcIjtcbn1cbi5nbHlwaGljb24tcmVmcmVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMVwiO1xufVxuLmdseXBoaWNvbi1saXN0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMlwiO1xufVxuLmdseXBoaWNvbi1sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMzXCI7XG59XG4uZ2x5cGhpY29uLWZsYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzRcIjtcbn1cbi5nbHlwaGljb24taGVhZHBob25lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNVwiO1xufVxuLmdseXBoaWNvbi12b2x1bWUtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM2XCI7XG59XG4uZ2x5cGhpY29uLXZvbHVtZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM3XCI7XG59XG4uZ2x5cGhpY29uLXZvbHVtZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzOFwiO1xufVxuLmdseXBoaWNvbi1xcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzlcIjtcbn1cbi5nbHlwaGljb24tYmFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MFwiO1xufVxuLmdseXBoaWNvbi10YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDFcIjtcbn1cbi5nbHlwaGljb24tdGFnczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MlwiO1xufVxuLmdseXBoaWNvbi1ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQzXCI7XG59XG4uZ2x5cGhpY29uLWJvb2ttYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ0XCI7XG59XG4uZ2x5cGhpY29uLXByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ1XCI7XG59XG4uZ2x5cGhpY29uLWNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0NlwiO1xufVxuLmdseXBoaWNvbi1mb250OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ3XCI7XG59XG4uZ2x5cGhpY29uLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDhcIjtcbn1cbi5nbHlwaGljb24taXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ5XCI7XG59XG4uZ2x5cGhpY29uLXRleHQtaGVpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUwXCI7XG59XG4uZ2x5cGhpY29uLXRleHQtd2lkdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTFcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1MlwiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1jZW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTNcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTRcIjtcbn1cbi5nbHlwaGljb24tYWxpZ24tanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1NVwiO1xufVxuLmdseXBoaWNvbi1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU2XCI7XG59XG4uZ2x5cGhpY29uLWluZGVudC1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU3XCI7XG59XG4uZ2x5cGhpY29uLWluZGVudC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1OFwiO1xufVxuLmdseXBoaWNvbi1mYWNldGltZS12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1OVwiO1xufVxuLmdseXBoaWNvbi1waWN0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDYwXCI7XG59XG4uZ2x5cGhpY29uLW1hcC1tYXJrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjJcIjtcbn1cbi5nbHlwaGljb24tYWRqdXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDYzXCI7XG59XG4uZ2x5cGhpY29uLXRpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjRcIjtcbn1cbi5nbHlwaGljb24tZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NVwiO1xufVxuLmdseXBoaWNvbi1zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NlwiO1xufVxuLmdseXBoaWNvbi1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2N1wiO1xufVxuLmdseXBoaWNvbi1tb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY4XCI7XG59XG4uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjlcIjtcbn1cbi5nbHlwaGljb24tZmFzdC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3MFwiO1xufVxuLmdseXBoaWNvbi1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3MVwiO1xufVxuLmdseXBoaWNvbi1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcyXCI7XG59XG4uZ2x5cGhpY29uLXBhdXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDczXCI7XG59XG4uZ2x5cGhpY29uLXN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzRcIjtcbn1cbi5nbHlwaGljb24tZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NVwiO1xufVxuLmdseXBoaWNvbi1mYXN0LWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzZcIjtcbn1cbi5nbHlwaGljb24tc3RlcC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc3XCI7XG59XG4uZ2x5cGhpY29uLWVqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc4XCI7XG59XG4uZ2x5cGhpY29uLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3OVwiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgwXCI7XG59XG4uZ2x5cGhpY29uLXBsdXMtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4MVwiO1xufVxuLmdseXBoaWNvbi1taW51cy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgyXCI7XG59XG4uZ2x5cGhpY29uLXJlbW92ZS1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgzXCI7XG59XG4uZ2x5cGhpY29uLW9rLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODRcIjtcbn1cbi5nbHlwaGljb24tcXVlc3Rpb24tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NVwiO1xufVxuLmdseXBoaWNvbi1pbmZvLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODZcIjtcbn1cbi5nbHlwaGljb24tc2NyZWVuc2hvdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4N1wiO1xufVxuLmdseXBoaWNvbi1yZW1vdmUtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg4XCI7XG59XG4uZ2x5cGhpY29uLW9rLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4OVwiO1xufVxuLmdseXBoaWNvbi1iYW4tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkwXCI7XG59XG4uZ2x5cGhpY29uLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTFcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTJcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTNcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NFwiO1xufVxuLmdseXBoaWNvbi1zaGFyZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTVcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTZcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLXNtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk3XCI7XG59XG4uZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDFcIjtcbn1cbi5nbHlwaGljb24tZ2lmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwMlwiO1xufVxuLmdseXBoaWNvbi1sZWFmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTAzXCI7XG59XG4uZ2x5cGhpY29uLWZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDRcIjtcbn1cbi5nbHlwaGljb24tZXllLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDVcIjtcbn1cbi5nbHlwaGljb24tZXllLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA2XCI7XG59XG4uZ2x5cGhpY29uLXdhcm5pbmctc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwN1wiO1xufVxuLmdseXBoaWNvbi1wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwOFwiO1xufVxuLmdseXBoaWNvbi1jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwOVwiO1xufVxuLmdseXBoaWNvbi1yYW5kb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTBcIjtcbn1cbi5nbHlwaGljb24tY29tbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMVwiO1xufVxuLmdseXBoaWNvbi1tYWduZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTJcIjtcbn1cbi5nbHlwaGljb24tY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExM1wiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTRcIjtcbn1cbi5nbHlwaGljb24tcmV0d2VldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNVwiO1xufVxuLmdseXBoaWNvbi1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE2XCI7XG59XG4uZ2x5cGhpY29uLWZvbGRlci1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExN1wiO1xufVxuLmdseXBoaWNvbi1mb2xkZXItb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExOFwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTlcIjtcbn1cbi5nbHlwaGljb24tcmVzaXplLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjBcIjtcbn1cbi5nbHlwaGljb24taGRkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIxXCI7XG59XG4uZ2x5cGhpY29uLWJ1bGxob3JuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIyXCI7XG59XG4uZ2x5cGhpY29uLWJlbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjNcIjtcbn1cbi5nbHlwaGljb24tY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjRcIjtcbn1cbi5nbHlwaGljb24tdGh1bWJzLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI1XCI7XG59XG4uZ2x5cGhpY29uLXRodW1icy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI2XCI7XG59XG4uZ2x5cGhpY29uLWhhbmQtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjdcIjtcbn1cbi5nbHlwaGljb24taGFuZC1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI4XCI7XG59XG4uZ2x5cGhpY29uLWhhbmQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjlcIjtcbn1cbi5nbHlwaGljb24taGFuZC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMwXCI7XG59XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMVwiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMlwiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzNcIjtcbn1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzRcIjtcbn1cbi5nbHlwaGljb24tZ2xvYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzVcIjtcbn1cbi5nbHlwaGljb24td3JlbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM2XCI7XG59XG4uZ2x5cGhpY29uLXRhc2tzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM3XCI7XG59XG4uZ2x5cGhpY29uLWZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzOFwiO1xufVxuLmdseXBoaWNvbi1icmllZmNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzlcIjtcbn1cbi5nbHlwaGljb24tZnVsbHNjcmVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MFwiO1xufVxuLmdseXBoaWNvbi1kYXNoYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDFcIjtcbn1cbi5nbHlwaGljb24tcGFwZXJjbGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQyXCI7XG59XG4uZ2x5cGhpY29uLWhlYXJ0LWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQzXCI7XG59XG4uZ2x5cGhpY29uLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDRcIjtcbn1cbi5nbHlwaGljb24tcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDVcIjtcbn1cbi5nbHlwaGljb24tcHVzaHBpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NlwiO1xufVxuLmdseXBoaWNvbi11c2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDhcIjtcbn1cbi5nbHlwaGljb24tZ2JwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ5XCI7XG59XG4uZ2x5cGhpY29uLXNvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTBcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MVwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MlwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUzXCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU0XCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1NVwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU2XCI7XG59XG4uZ2x5cGhpY29uLXVuY2hlY2tlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1N1wiO1xufVxuLmdseXBoaWNvbi1leHBhbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNThcIjtcbn1cbi5nbHlwaGljb24tY29sbGFwc2UtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1OVwiO1xufVxuLmdseXBoaWNvbi1jb2xsYXBzZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MFwiO1xufVxuLmdseXBoaWNvbi1sb2ctaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjFcIjtcbn1cbi5nbHlwaGljb24tZmxhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjJcIjtcbn1cbi5nbHlwaGljb24tbG9nLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2M1wiO1xufVxuLmdseXBoaWNvbi1uZXctd2luZG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY0XCI7XG59XG4uZ2x5cGhpY29uLXJlY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2NVwiO1xufVxuLmdseXBoaWNvbi1zYXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY2XCI7XG59XG4uZ2x5cGhpY29uLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjdcIjtcbn1cbi5nbHlwaGljb24tc2F2ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjhcIjtcbn1cbi5nbHlwaGljb24taW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY5XCI7XG59XG4uZ2x5cGhpY29uLWV4cG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3MFwiO1xufVxuLmdseXBoaWNvbi1zZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcxXCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1kaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcyXCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3M1wiO1xufVxuLmdseXBoaWNvbi1mbG9wcHktcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc0XCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc1XCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc2XCI7XG59XG4uZ2x5cGhpY29uLWNyZWRpdC1jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc3XCI7XG59XG4uZ2x5cGhpY29uLXRyYW5zZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc4XCI7XG59XG4uZ2x5cGhpY29uLWN1dGxlcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzlcIjtcbn1cbi5nbHlwaGljb24taGVhZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgwXCI7XG59XG4uZ2x5cGhpY29uLWNvbXByZXNzZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODFcIjtcbn1cbi5nbHlwaGljb24tZWFycGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODJcIjtcbn1cbi5nbHlwaGljb24tcGhvbmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgzXCI7XG59XG4uZ2x5cGhpY29uLXRvd2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg0XCI7XG59XG4uZ2x5cGhpY29uLXN0YXRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg1XCI7XG59XG4uZ2x5cGhpY29uLXNkLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg2XCI7XG59XG4uZ2x5cGhpY29uLWhkLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg3XCI7XG59XG4uZ2x5cGhpY29uLXN1YnRpdGxlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4OFwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC1zdGVyZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODlcIjtcbn1cbi5nbHlwaGljb24tc291bmQtZG9sYnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTBcIjtcbn1cbi5nbHlwaGljb24tc291bmQtNS0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTkxXCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLTYtMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MlwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC03LTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTNcIjtcbn1cbi5nbHlwaGljb24tY29weXJpZ2h0LW1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTRcIjtcbn1cbi5nbHlwaGljb24tcmVnaXN0cmF0aW9uLW1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTVcIjtcbn1cbi5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTdcIjtcbn1cbi5nbHlwaGljb24tY2xvdWQtdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk4XCI7XG59XG4uZ2x5cGhpY29uLXRyZWUtY29uaWZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5OVwiO1xufVxuLmdseXBoaWNvbi10cmVlLWRlY2lkdW91czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMFwiO1xufVxuLmdseXBoaWNvbi1jZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMVwiO1xufVxuLmdseXBoaWNvbi1zYXZlLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDJcIjtcbn1cbi5nbHlwaGljb24tb3Blbi1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAzXCI7XG59XG4uZ2x5cGhpY29uLWxldmVsLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjA0XCI7XG59XG4uZ2x5cGhpY29uLWNvcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDVcIjtcbn1cbi5nbHlwaGljb24tcGFzdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDZcIjtcbn1cbi5nbHlwaGljb24tYWxlcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDlcIjtcbn1cbi5nbHlwaGljb24tZXF1YWxpemVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEwXCI7XG59XG4uZ2x5cGhpY29uLWtpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTFcIjtcbn1cbi5nbHlwaGljb24tcXVlZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTJcIjtcbn1cbi5nbHlwaGljb24tcGF3bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxM1wiO1xufVxuLmdseXBoaWNvbi1iaXNob3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTRcIjtcbn1cbi5nbHlwaGljb24ta25pZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE1XCI7XG59XG4uZ2x5cGhpY29uLWJhYnktZm9ybXVsYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNlwiO1xufVxuLmdseXBoaWNvbi10ZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNmZhXCI7XG59XG4uZ2x5cGhpY29uLWJsYWNrYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMThcIjtcbn1cbi5nbHlwaGljb24tYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE5XCI7XG59XG4uZ2x5cGhpY29uLWFwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGZmXCI7XG59XG4uZ2x5cGhpY29uLWVyYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjIxXCI7XG59XG4uZ2x5cGhpY29uLWhvdXJnbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjMxYlwiO1xufVxuLmdseXBoaWNvbi1sYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjIzXCI7XG59XG4uZ2x5cGhpY29uLWR1cGxpY2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyNFwiO1xufVxuLmdseXBoaWNvbi1waWdneS1iYW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI1XCI7XG59XG4uZ2x5cGhpY29uLXNjaXNzb3JzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI2XCI7XG59XG4uZ2x5cGhpY29uLWJpdGNvaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjdcIjtcbn1cbi5nbHlwaGljb24tYnRjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG4uZ2x5cGhpY29uLXhidDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyN1wiO1xufVxuLmdseXBoaWNvbi15ZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwYTVcIjtcbn1cbi5nbHlwaGljb24tanB5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMGE1XCI7XG59XG4uZ2x5cGhpY29uLXJ1YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGJkXCI7XG59XG4uZ2x5cGhpY29uLXJ1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjBiZFwiO1xufVxuLmdseXBoaWNvbi1zY2FsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMFwiO1xufVxuLmdseXBoaWNvbi1pY2UtbG9sbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzFcIjtcbn1cbi5nbHlwaGljb24taWNlLWxvbGx5LXRhc3RlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMlwiO1xufVxuLmdseXBoaWNvbi1lZHVjYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzNcIjtcbn1cbi5nbHlwaGljb24tb3B0aW9uLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzRcIjtcbn1cbi5nbHlwaGljb24tb3B0aW9uLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM1XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtaGFtYnVyZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM2XCI7XG59XG4uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzN1wiO1xufVxuLmdseXBoaWNvbi1vaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzhcIjtcbn1cbi5nbHlwaGljb24tZ3JhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzlcIjtcbn1cbi5nbHlwaGljb24tc3VuZ2xhc3NlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MFwiO1xufVxuLmdseXBoaWNvbi10ZXh0LXNpemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDFcIjtcbn1cbi5nbHlwaGljb24tdGV4dC1jb2xvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MlwiO1xufVxuLmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDNcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0NFwiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tYm90dG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ1XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ2XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ3XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0OFwiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDlcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTBcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MVwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTJcIjtcbn1cbi5nbHlwaGljb24tdHJpYW5nbGUtdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUzXCI7XG59XG4uZ2x5cGhpY29uLWNvbnNvbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTRcIjtcbn1cbi5nbHlwaGljb24tc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTVcIjtcbn1cbi5nbHlwaGljb24tc3Vic2NyaXB0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU2XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1N1wiO1xufVxuLmdseXBoaWNvbi1tZW51LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU4XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1OVwiO1xufVxuLmdseXBoaWNvbi1tZW51LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjYwXCI7XG59XG4qIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cbmEge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYTpob3ZlcixcbmE6Zm9jdXMge1xuICBjb2xvcjogIzAwOWNhMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5hOmZvY3VzIHtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uaW1nLXJlc3BvbnNpdmUsXG4udGh1bWJuYWlsID4gaW1nLFxuLnRodW1ibmFpbCBhID4gaW1nLFxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBpbWcsXG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGEgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW1nLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uaW1nLXRodW1ibmFpbCB7XG4gIHBhZGRpbmc6IDRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmltZy1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5ociB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWVlZWU7XG59XG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgYm9yZGVyOiAwO1xufVxuLnNyLW9ubHktZm9jdXNhYmxlOmFjdGl2ZSxcbi5zci1vbmx5LWZvY3VzYWJsZTpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbi5oMSxcbi5oMixcbi5oMyxcbi5oNCxcbi5oNSxcbi5oNiB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmgxIHNtYWxsLFxuaDIgc21hbGwsXG5oMyBzbWFsbCxcbmg0IHNtYWxsLFxuaDUgc21hbGwsXG5oNiBzbWFsbCxcbi5oMSBzbWFsbCxcbi5oMiBzbWFsbCxcbi5oMyBzbWFsbCxcbi5oNCBzbWFsbCxcbi5oNSBzbWFsbCxcbi5oNiBzbWFsbCxcbmgxIC5zbWFsbCxcbmgyIC5zbWFsbCxcbmgzIC5zbWFsbCxcbmg0IC5zbWFsbCxcbmg1IC5zbWFsbCxcbmg2IC5zbWFsbCxcbi5oMSAuc21hbGwsXG4uaDIgLnNtYWxsLFxuLmgzIC5zbWFsbCxcbi5oNCAuc21hbGwsXG4uaDUgLnNtYWxsLFxuLmg2IC5zbWFsbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbmgxLFxuLmgxLFxuaDIsXG4uaDIsXG5oMyxcbi5oMyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5oMSBzbWFsbCxcbi5oMSBzbWFsbCxcbmgyIHNtYWxsLFxuLmgyIHNtYWxsLFxuaDMgc21hbGwsXG4uaDMgc21hbGwsXG5oMSAuc21hbGwsXG4uaDEgLnNtYWxsLFxuaDIgLnNtYWxsLFxuLmgyIC5zbWFsbCxcbmgzIC5zbWFsbCxcbi5oMyAuc21hbGwge1xuICBmb250LXNpemU6IDY1JTtcbn1cbmg0LFxuLmg0LFxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5oNCBzbWFsbCxcbi5oNCBzbWFsbCxcbmg1IHNtYWxsLFxuLmg1IHNtYWxsLFxuaDYgc21hbGwsXG4uaDYgc21hbGwsXG5oNCAuc21hbGwsXG4uaDQgLnNtYWxsLFxuaDUgLnNtYWxsLFxuLmg1IC5zbWFsbCxcbmg2IC5zbWFsbCxcbi5oNiAuc21hbGwge1xuICBmb250LXNpemU6IDc1JTtcbn1cbmgxLFxuLmgxIHtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuaDIsXG4uaDIge1xuICBmb250LXNpemU6IDMwcHg7XG59XG5oMyxcbi5oMyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbmg0LFxuLmg0IHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuaDUsXG4uaDUge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5oNixcbi5oNiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbnAge1xuICBtYXJnaW46IDAgMCAxMHB4O1xufVxuLmxlYWQge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgfVxufVxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IDg1JTtcbn1cbm1hcmssXG4ubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG4gIHBhZGRpbmc6IC4yZW07XG59XG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi50ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udGV4dC1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuLnRleHQtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi50ZXh0LWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4udGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICMwMGU1ZjA7XG59XG5hLnRleHQtcHJpbWFyeTpob3ZlcixcbmEudGV4dC1wcmltYXJ5OmZvY3VzIHtcbiAgY29sb3I6ICMwMGI0YmQ7XG59XG4udGV4dC1zdWNjZXNzIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG5hLnRleHQtc3VjY2Vzczpob3ZlcixcbmEudGV4dC1zdWNjZXNzOmZvY3VzIHtcbiAgY29sb3I6ICMyYjU0MmM7XG59XG4udGV4dC1pbmZvIHtcbiAgY29sb3I6ICMzMTcwOGY7XG59XG5hLnRleHQtaW5mbzpob3ZlcixcbmEudGV4dC1pbmZvOmZvY3VzIHtcbiAgY29sb3I6ICMyNDUyNjk7XG59XG4udGV4dC13YXJuaW5nIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG5hLnRleHQtd2FybmluZzpob3ZlcixcbmEudGV4dC13YXJuaW5nOmZvY3VzIHtcbiAgY29sb3I6ICM2NjUxMmM7XG59XG4udGV4dC1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbmEudGV4dC1kYW5nZXI6aG92ZXIsXG5hLnRleHQtZGFuZ2VyOmZvY3VzIHtcbiAgY29sb3I6ICM4NDM1MzQ7XG59XG4uYmctcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuYS5iZy1wcmltYXJ5OmhvdmVyLFxuYS5iZy1wcmltYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5iZy1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbmEuYmctc3VjY2Vzczpob3ZlcixcbmEuYmctc3VjY2Vzczpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWUyYjM7XG59XG4uYmctaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG59XG5hLmJnLWluZm86aG92ZXIsXG5hLmJnLWluZm86Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWZkOWVlO1xufVxuLmJnLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xufVxuYS5iZy13YXJuaW5nOmhvdmVyLFxuYS5iZy13YXJuaW5nOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZWNiNTtcbn1cbi5iZy1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuYS5iZy1kYW5nZXI6aG92ZXIsXG5hLmJnLWRhbmdlcjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGI5Yjk7XG59XG4ucGFnZS1oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogOXB4O1xuICBtYXJnaW46IDQwcHggMCAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZWVlZTtcbn1cbnVsLFxub2wge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxudWwgdWwsXG5vbCB1bCxcbnVsIG9sLFxub2wgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubGlzdC1pbmxpbmUge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xufVxuLmxpc3QtaW5saW5lID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5kdCxcbmRkIHtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG59XG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZGwtaG9yaXpvbnRhbCBkdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAuZGwtaG9yaXpvbnRhbCBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE4MHB4O1xuICB9XG59XG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzc3Nzc3Nztcbn1cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW46IDAgMCAyMHB4O1xuICBmb250LXNpemU6IDE3LjVweDtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZWVlZWVlO1xufVxuYmxvY2txdW90ZSBwOmxhc3QtY2hpbGQsXG5ibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGQsXG5ibG9ja3F1b3RlIG9sOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuYmxvY2txdW90ZSBmb290ZXIsXG5ibG9ja3F1b3RlIHNtYWxsLFxuYmxvY2txdW90ZSAuc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbmJsb2NrcXVvdGUgZm9vdGVyOmJlZm9yZSxcbmJsb2NrcXVvdGUgc21hbGw6YmVmb3JlLFxuYmxvY2txdW90ZSAuc21hbGw6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMjAxNCBcXDAwQTAnO1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgI2VlZWVlZTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YmVmb3JlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjpiZWZvcmUsXG4uYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBzbWFsbDpiZWZvcmUsXG4uYmxvY2txdW90ZS1yZXZlcnNlIC5zbWFsbDpiZWZvcmUsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgLnNtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xufVxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YWZ0ZXIsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgZm9vdGVyOmFmdGVyLFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBzbWFsbDphZnRlcixcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBzbWFsbDphZnRlcixcbi5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmFmdGVyLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IC5zbWFsbDphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXDAwQTAgXFwyMDE0Jztcbn1cbmFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xufVxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xufVxuY29kZSB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogI2M3MjU0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjJmNDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxua2JkIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5rYmQga2JkIHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA5LjVweDtcbiAgbWFyZ2luOiAwIDAgMTBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5wcmUgY29kZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ucHJlLXNjcm9sbGFibGUge1xuICBtYXgtaGVpZ2h0OiAzNDBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogNzUwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTcwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDExNzBweDtcbiAgfVxufVxuLmNvbnRhaW5lci1mbHVpZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5yb3cge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG4uY29sLXhzLTEsIC5jb2wtc20tMSwgLmNvbC1tZC0xLCAuY29sLWxnLTEsIC5jb2wteHMtMiwgLmNvbC1zbS0yLCAuY29sLW1kLTIsIC5jb2wtbGctMiwgLmNvbC14cy0zLCAuY29sLXNtLTMsIC5jb2wtbWQtMywgLmNvbC1sZy0zLCAuY29sLXhzLTQsIC5jb2wtc20tNCwgLmNvbC1tZC00LCAuY29sLWxnLTQsIC5jb2wteHMtNSwgLmNvbC1zbS01LCAuY29sLW1kLTUsIC5jb2wtbGctNSwgLmNvbC14cy02LCAuY29sLXNtLTYsIC5jb2wtbWQtNiwgLmNvbC1sZy02LCAuY29sLXhzLTcsIC5jb2wtc20tNywgLmNvbC1tZC03LCAuY29sLWxnLTcsIC5jb2wteHMtOCwgLmNvbC1zbS04LCAuY29sLW1kLTgsIC5jb2wtbGctOCwgLmNvbC14cy05LCAuY29sLXNtLTksIC5jb2wtbWQtOSwgLmNvbC1sZy05LCAuY29sLXhzLTEwLCAuY29sLXNtLTEwLCAuY29sLW1kLTEwLCAuY29sLWxnLTEwLCAuY29sLXhzLTExLCAuY29sLXNtLTExLCAuY29sLW1kLTExLCAuY29sLWxnLTExLCAuY29sLXhzLTEyLCAuY29sLXNtLTEyLCAuY29sLW1kLTEyLCAuY29sLWxnLTEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbi5jb2wteHMtMSwgLmNvbC14cy0yLCAuY29sLXhzLTMsIC5jb2wteHMtNCwgLmNvbC14cy01LCAuY29sLXhzLTYsIC5jb2wteHMtNywgLmNvbC14cy04LCAuY29sLXhzLTksIC5jb2wteHMtMTAsIC5jb2wteHMtMTEsIC5jb2wteHMtMTIge1xuICBmbG9hdDogbGVmdDtcbn1cbi5jb2wteHMtMTIge1xuICB3aWR0aDogMTAwJTtcbn1cbi5jb2wteHMtMTEge1xuICB3aWR0aDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy0xMCB7XG4gIHdpZHRoOiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTkge1xuICB3aWR0aDogNzUlO1xufVxuLmNvbC14cy04IHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTYge1xuICB3aWR0aDogNTAlO1xufVxuLmNvbC14cy01IHtcbiAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLTMge1xuICB3aWR0aDogMjUlO1xufVxuLmNvbC14cy0yIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtMSB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC0xMiB7XG4gIHJpZ2h0OiAxMDAlO1xufVxuLmNvbC14cy1wdWxsLTExIHtcbiAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC0xMCB7XG4gIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtOSB7XG4gIHJpZ2h0OiA3NSU7XG59XG4uY29sLXhzLXB1bGwtOCB7XG4gIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtNyB7XG4gIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtNiB7XG4gIHJpZ2h0OiA1MCU7XG59XG4uY29sLXhzLXB1bGwtNSB7XG4gIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtNCB7XG4gIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1bGwtMyB7XG4gIHJpZ2h0OiAyNSU7XG59XG4uY29sLXhzLXB1bGwtMiB7XG4gIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1bGwtMSB7XG4gIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC0wIHtcbiAgcmlnaHQ6IGF1dG87XG59XG4uY29sLXhzLXB1c2gtMTIge1xuICBsZWZ0OiAxMDAlO1xufVxuLmNvbC14cy1wdXNoLTExIHtcbiAgbGVmdDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTEwIHtcbiAgbGVmdDogODMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTkge1xuICBsZWZ0OiA3NSU7XG59XG4uY29sLXhzLXB1c2gtOCB7XG4gIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC03IHtcbiAgbGVmdDogNTguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTYge1xuICBsZWZ0OiA1MCU7XG59XG4uY29sLXhzLXB1c2gtNSB7XG4gIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC00IHtcbiAgbGVmdDogMzMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdXNoLTMge1xuICBsZWZ0OiAyNSU7XG59XG4uY29sLXhzLXB1c2gtMiB7XG4gIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVzaC0xIHtcbiAgbGVmdDogOC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtMCB7XG4gIGxlZnQ6IGF1dG87XG59XG4uY29sLXhzLW9mZnNldC0xMiB7XG4gIG1hcmdpbi1sZWZ0OiAxMDAlO1xufVxuLmNvbC14cy1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7XG59XG4uY29sLXhzLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7XG59XG4uY29sLXhzLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xufVxuLmNvbC14cy1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7XG59XG4uY29sLXhzLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEsIC5jb2wtc20tMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtc20tMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtc20tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1zbS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1zbS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1zbS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLXNtLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29sLW1kLTEsIC5jb2wtbWQtMiwgLmNvbC1tZC0zLCAuY29sLW1kLTQsIC5jb2wtbWQtNSwgLmNvbC1tZC02LCAuY29sLW1kLTcsIC5jb2wtbWQtOCwgLmNvbC1tZC05LCAuY29sLW1kLTEwLCAuY29sLW1kLTExLCAuY29sLW1kLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAuY29sLW1kLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLW1kLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5jb2wtbWQtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtbWQtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5jb2wtbWQtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb2wtbGctMSwgLmNvbC1sZy0yLCAuY29sLWxnLTMsIC5jb2wtbGctNCwgLmNvbC1sZy01LCAuY29sLWxnLTYsIC5jb2wtbGctNywgLmNvbC1sZy04LCAuY29sLWxnLTksIC5jb2wtbGctMTAsIC5jb2wtbGctMTEsIC5jb2wtbGctMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtbGctMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbGctMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1sZy04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1sZy01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1sZy0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLWxnLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbn1cbnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgcGFkZGluZzogOHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGgge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2RkZDtcbn1cbi50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4udGFibGUgPiBjb2xncm91cCArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4udGFibGUgPiBjb2xncm91cCArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi50YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG4udGFibGUgPiB0Ym9keSArIHRib2R5IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUgLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi50YWJsZS1jb25kZW5zZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtY29uZGVuc2VkID4gdGJvZHkgPiB0ciA+IHRoLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRmb290ID4gdHIgPiB0aCxcbi50YWJsZS1jb25kZW5zZWQgPiB0aGVhZCA+IHRyID4gdGQsXG4udGFibGUtY29uZGVuc2VkID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRmb290ID4gdHIgPiB0ZCB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQsXG4udGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQsXG4udGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xufVxuLnRhYmxlLXN0cmlwZWQgPiB0Ym9keSA+IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jb2x1bW47XG59XG50YWJsZSB0ZFtjbGFzcyo9XCJjb2wtXCJdLFxudGFibGUgdGhbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLmFjdGl2ZSxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5hY3RpdmUsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQuYWN0aXZlLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLmFjdGl2ZSxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5hY3RpdmUsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguYWN0aXZlLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5hY3RpdmUgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuYWN0aXZlID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmFjdGl2ZSA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5hY3RpdmUgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuYWN0aXZlID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmFjdGl2ZSA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5hY3RpdmU6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguYWN0aXZlOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5hY3RpdmU6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuYWN0aXZlLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5hY3RpdmU6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuc3VjY2Vzcyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5zdWNjZXNzLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLnN1Y2Nlc3MsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguc3VjY2Vzcyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5zdWNjZXNzLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLnN1Y2Nlc3MsXG4udGFibGUgPiB0aGVhZCA+IHRyLnN1Y2Nlc3MgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuc3VjY2VzcyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5zdWNjZXNzID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLnN1Y2Nlc3MgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuc3VjY2VzcyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5zdWNjZXNzID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLnN1Y2Nlc3M6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguc3VjY2Vzczpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuc3VjY2Vzczpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5zdWNjZXNzLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5zdWNjZXNzOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlOWM2O1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLmluZm8sXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuaW5mbyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5pbmZvLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLmluZm8sXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGguaW5mbyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5pbmZvLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5pbmZvID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmluZm8gPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuaW5mbyA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5pbmZvID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLmluZm8gPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuaW5mbyA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5pbmZvOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLmluZm86aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmluZm86aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuaW5mbyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuaW5mbzpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0ZTNmMztcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC53YXJuaW5nLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLndhcm5pbmcsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQud2FybmluZyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC53YXJuaW5nLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLndhcm5pbmcsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGgud2FybmluZyxcbi50YWJsZSA+IHRoZWFkID4gdHIud2FybmluZyA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci53YXJuaW5nID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLndhcm5pbmcgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIud2FybmluZyA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci53YXJuaW5nID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLndhcm5pbmcgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQud2FybmluZzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC53YXJuaW5nOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci53YXJuaW5nOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLndhcm5pbmcsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLndhcm5pbmc6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWYyY2M7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuZGFuZ2VyLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmRhbmdlcixcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5kYW5nZXIsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguZGFuZ2VyLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmRhbmdlcixcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5kYW5nZXIsXG4udGFibGUgPiB0aGVhZCA+IHRyLmRhbmdlciA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5kYW5nZXIgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuZGFuZ2VyID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmRhbmdlciA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5kYW5nZXIgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuZGFuZ2VyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmRhbmdlcjpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5kYW5nZXI6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmRhbmdlcjpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5kYW5nZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmRhbmdlcjpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2NjYztcbn1cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWluLWhlaWdodDogMC4wMSU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRoZWFkID4gdHIgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Ym9keSA+IHRyID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Ym9keSA+IHRyID4gdGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gIH1cbn1cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbmlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cbnNlbGVjdFttdWx0aXBsZV0sXG5zZWxlY3Rbc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5pbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cyB7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5vdXRwdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IDdweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM1NTU1NTU7XG59XG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7XG59XG4uZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjZhZmU5O1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggcmdiYSgxMDIsIDE3NSwgMjMzLCAwLjYpO1xufVxuLmZvcm0tY29udHJvbDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBvcGFjaXR5OiAxO1xufVxuLmZvcm0tY29udHJvbDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbn1cbi5mb3JtLWNvbnRyb2w6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTtcbn1cbi5mb3JtLWNvbnRyb2w6Oi1tcy1leHBhbmQge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmZvcm0tY29udHJvbFtkaXNhYmxlZF0sXG4uZm9ybS1jb250cm9sW3JlYWRvbmx5XSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuZm9ybS1jb250cm9sIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgb3BhY2l0eTogMTtcbn1cbi5mb3JtLWNvbnRyb2xbZGlzYWJsZWRdLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uZm9ybS1jb250cm9sLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5mb3JtLWNvbnRyb2wge1xuICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlucHV0LXNtLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5pbnB1dC1zbSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlucHV0LXNtLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaW5wdXQtc20sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbiAgLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgfVxuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pbnB1dC1sZyxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaW5wdXQtbGcsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pbnB1dC1sZyxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlucHV0LWxnLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPVwidGltZVwiXSxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgbGluZS1oZWlnaHQ6IDQ2cHg7XG4gIH1cbn1cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucmFkaW8gbGFiZWwsXG4uY2hlY2tib3ggbGFiZWwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4ucmFkaW8taW5saW5lIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4uY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBtYXJnaW4tdG9wOiA0cHggXFw5O1xufVxuLnJhZGlvICsgLnJhZGlvLFxuLmNoZWNrYm94ICsgLmNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogLTVweDtcbn1cbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdW2Rpc2FibGVkXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXVtkaXNhYmxlZF0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0uZGlzYWJsZWQsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0uZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF0gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucmFkaW8taW5saW5lLmRpc2FibGVkLFxuLmNoZWNrYm94LWlubGluZS5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucmFkaW8taW5saW5lLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveC1pbmxpbmUge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnJhZGlvLmRpc2FibGVkIGxhYmVsLFxuLmNoZWNrYm94LmRpc2FibGVkIGxhYmVsLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpbyBsYWJlbCxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuY2hlY2tib3ggbGFiZWwge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBwYWRkaW5nLWJvdHRvbTogN3B4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAzNHB4O1xufVxuLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtbGcsXG4uZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1zbSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5pbnB1dC1zbSB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuc2VsZWN0LmlucHV0LXNtIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbnRleHRhcmVhLmlucHV0LXNtLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1zbSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5mb3JtLWdyb3VwLXNtIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuLmZvcm0tZ3JvdXAtc20gdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuLmZvcm0tZ3JvdXAtc20gc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIGhlaWdodDogMzBweDtcbiAgbWluLWhlaWdodDogMzJweDtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5pbnB1dC1sZyB7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbnNlbGVjdC5pbnB1dC1sZyB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG50ZXh0YXJlYS5pbnB1dC1sZyxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtbGcge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmZvcm0tZ3JvdXAtbGcgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG4uZm9ybS1ncm91cC1sZyB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4uZm9ybS1ncm91cC1sZyBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBtaW4taGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbn1cbi5oYXMtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wge1xuICBwYWRkaW5nLXJpZ2h0OiA0Mi41cHg7XG59XG4uZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMzRweDtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaW5wdXQtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IDQ2cHg7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG4uaW5wdXQtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG4uaGFzLXN1Y2Nlc3MgLmhlbHAtYmxvY2ssXG4uaGFzLXN1Y2Nlc3MgLmNvbnRyb2wtbGFiZWwsXG4uaGFzLXN1Y2Nlc3MgLnJhZGlvLFxuLmhhcy1zdWNjZXNzIC5jaGVja2JveCxcbi5oYXMtc3VjY2VzcyAucmFkaW8taW5saW5lLFxuLmhhcy1zdWNjZXNzIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLXN1Y2Nlc3MucmFkaW8gbGFiZWwsXG4uaGFzLXN1Y2Nlc3MuY2hlY2tib3ggbGFiZWwsXG4uaGFzLXN1Y2Nlc3MucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy1zdWNjZXNzLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjM2M3NjNkO1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICMzYzc2M2Q7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzJiNTQyYztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggIzY3YjE2ODtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICM2N2IxNjg7XG59XG4uaGFzLXN1Y2Nlc3MgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG4gIGJvcmRlci1jb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG4uaGFzLXdhcm5pbmcgLmhlbHAtYmxvY2ssXG4uaGFzLXdhcm5pbmcgLmNvbnRyb2wtbGFiZWwsXG4uaGFzLXdhcm5pbmcgLnJhZGlvLFxuLmhhcy13YXJuaW5nIC5jaGVja2JveCxcbi5oYXMtd2FybmluZyAucmFkaW8taW5saW5lLFxuLmhhcy13YXJuaW5nIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLXdhcm5pbmcucmFkaW8gbGFiZWwsXG4uaGFzLXdhcm5pbmcuY2hlY2tib3ggbGFiZWwsXG4uaGFzLXdhcm5pbmcucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy13YXJuaW5nLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICM4YTZkM2I7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzY2NTEyYztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2MwYTE2YjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjMGExNmI7XG59XG4uaGFzLXdhcm5pbmcgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICM4YTZkM2I7XG4gIGJvcmRlci1jb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG4uaGFzLWVycm9yIC5oZWxwLWJsb2NrLFxuLmhhcy1lcnJvciAuY29udHJvbC1sYWJlbCxcbi5oYXMtZXJyb3IgLnJhZGlvLFxuLmhhcy1lcnJvciAuY2hlY2tib3gsXG4uaGFzLWVycm9yIC5yYWRpby1pbmxpbmUsXG4uaGFzLWVycm9yIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLWVycm9yLnJhZGlvIGxhYmVsLFxuLmhhcy1lcnJvci5jaGVja2JveCBsYWJlbCxcbi5oYXMtZXJyb3IucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy1lcnJvci5jaGVja2JveC1pbmxpbmUgbGFiZWwge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogI2E5NDQ0MjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzg0MzUzNDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2NlODQ4MztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjZTg0ODM7XG59XG4uaGFzLWVycm9yIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5oYXMtZmVlZGJhY2sgbGFiZWwgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgdG9wOiAyNXB4O1xufVxuLmhhcy1mZWVkYmFjayBsYWJlbC5zci1vbmx5IH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHRvcDogMDtcbn1cbi5oZWxwLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICM3MzczNzM7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taW5saW5lIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRuLFxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmNvbnRyb2wtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLnJhZGlvLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5yYWRpbyBsYWJlbCxcbiAgLmZvcm0taW5saW5lIC5jaGVja2JveCBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogMDtcbiAgfVxufVxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8sXG4uZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveCxcbi5mb3JtLWhvcml6b250YWwgLnJhZGlvLWlubGluZSxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG59XG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpbyxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMjdweDtcbn1cbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuY29udHJvbC1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xuICB9XG59XG4uZm9ybS1ob3Jpem9udGFsIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHJpZ2h0OiAxNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtbGcgLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiAxMXB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtc20gLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmJ0bjpmb2N1cyxcbi5idG46YWN0aXZlOmZvY3VzLFxuLmJ0bi5hY3RpdmU6Zm9jdXMsXG4uYnRuLmZvY3VzLFxuLmJ0bjphY3RpdmUuZm9jdXMsXG4uYnRuLmFjdGl2ZS5mb2N1cyB7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG4uYnRuOmhvdmVyLFxuLmJ0bjpmb2N1cyxcbi5idG4uZm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJ0bjphY3RpdmUsXG4uYnRuLmFjdGl2ZSB7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG4uYnRuLmRpc2FibGVkLFxuLmJ0bltkaXNhYmxlZF0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0biB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT02NSk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbmEuYnRuLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdIGEuYnRuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uYnRuLWRlZmF1bHQge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuLmJ0bi1kZWZhdWx0OmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGJvcmRlci1jb2xvcjogIzhjOGM4Yztcbn1cbi5idG4tZGVmYXVsdDpob3ZlciB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XG59XG4uYnRuLWRlZmF1bHQ6YWN0aXZlLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdCB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XG59XG4uYnRuLWRlZmF1bHQ6YWN0aXZlOmhvdmVyLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdDpob3Zlcixcbi5idG4tZGVmYXVsdDphY3RpdmU6Zm9jdXMsXG4uYnRuLWRlZmF1bHQuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0OmZvY3VzLFxuLmJ0bi1kZWZhdWx0OmFjdGl2ZS5mb2N1cyxcbi5idG4tZGVmYXVsdC5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQuZm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgYm9yZGVyLWNvbG9yOiAjOGM4YzhjO1xufVxuLmJ0bi1kZWZhdWx0OmFjdGl2ZSxcbi5idG4tZGVmYXVsdC5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQ6aG92ZXIsXG4uYnRuLWRlZmF1bHQuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpmb2N1cyxcbi5idG4tZGVmYXVsdC5kaXNhYmxlZC5mb2N1cyxcbi5idG4tZGVmYXVsdFtkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuLmJ0bi1kZWZhdWx0IC5iYWRnZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuLmJ0bi1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeS5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXByaW1hcnk6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZSxcbi5idG4tcHJpbWFyeS5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZTpob3Zlcixcbi5idG4tcHJpbWFyeS5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnk6aG92ZXIsXG4uYnRuLXByaW1hcnk6YWN0aXZlOmZvY3VzLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeTphY3RpdmUuZm9jdXMsXG4uYnRuLXByaW1hcnkuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDkyOTk7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4tcHJpbWFyeTphY3RpdmUsXG4uYnRuLXByaW1hcnkuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tcHJpbWFyeS5kaXNhYmxlZDpob3Zlcixcbi5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5OmhvdmVyLFxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6Zm9jdXMsXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLXByaW1hcnlbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeS5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tcHJpbWFyeSAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4tc3VjY2VzcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1zdWNjZXNzOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4tc3VjY2VzczphY3RpdmUsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4tc3VjY2VzczphY3RpdmU6aG92ZXIsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzOmhvdmVyLFxuLmJ0bi1zdWNjZXNzOmFjdGl2ZTpmb2N1cyxcbi5idG4tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzcy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Mjk5O1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpob3Zlcixcbi5idG4tc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cyxcbi5idG4tc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLXN1Y2Nlc3MgLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLWluZm8ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1pbmZvOmZvY3VzLFxuLmJ0bi1pbmZvLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4taW5mbzpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLWluZm86YWN0aXZlLFxuLmJ0bi1pbmZvLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLWluZm86YWN0aXZlOmhvdmVyLFxuLmJ0bi1pbmZvLmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbzpob3Zlcixcbi5idG4taW5mbzphY3RpdmU6Zm9jdXMsXG4uYnRuLWluZm8uYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvOmZvY3VzLFxuLmJ0bi1pbmZvOmFjdGl2ZS5mb2N1cyxcbi5idG4taW5mby5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8uZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTI5OTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1pbmZvOmFjdGl2ZSxcbi5idG4taW5mby5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1pbmZvLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1pbmZvW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86aG92ZXIsXG4uYnRuLWluZm8uZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWluZm9bZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzpmb2N1cyxcbi5idG4taW5mby5kaXNhYmxlZC5mb2N1cyxcbi5idG4taW5mb1tkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1pbmZvIC5iYWRnZSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGJvcmRlci1jb2xvcjogIzg1NjRlZDtcbn1cbi5idG4td2FybmluZzpmb2N1cyxcbi5idG4td2FybmluZy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xuICBib3JkZXItY29sb3I6ICMzZDE1YmQ7XG59XG4uYnRuLXdhcm5pbmc6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbiAgYm9yZGVyLWNvbG9yOiAjNWEyZGU3O1xufVxuLmJ0bi13YXJuaW5nOmFjdGl2ZSxcbi5idG4td2FybmluZy5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbiAgYm9yZGVyLWNvbG9yOiAjNWEyZGU3O1xufVxuLmJ0bi13YXJuaW5nOmFjdGl2ZTpob3Zlcixcbi5idG4td2FybmluZy5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmc6aG92ZXIsXG4uYnRuLXdhcm5pbmc6YWN0aXZlOmZvY3VzLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpmb2N1cyxcbi5idG4td2FybmluZzphY3RpdmUuZm9jdXMsXG4uYnRuLXdhcm5pbmcuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YTJkZTc7XG4gIGJvcmRlci1jb2xvcjogIzNkMTViZDtcbn1cbi5idG4td2FybmluZzphY3RpdmUsXG4uYnRuLXdhcm5pbmcuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4td2FybmluZy5kaXNhYmxlZDpob3Zlcixcbi5idG4td2FybmluZ1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nOmhvdmVyLFxuLmJ0bi13YXJuaW5nLmRpc2FibGVkOmZvY3VzLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6Zm9jdXMsXG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLXdhcm5pbmdbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZy5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGJvcmRlci1jb2xvcjogIzg1NjRlZDtcbn1cbi5idG4td2FybmluZyAuYmFkZ2Uge1xuICBjb2xvcjogIzk3N2JmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4tZGFuZ2VyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDFmNzQ7XG4gIGJvcmRlci1jb2xvcjogI2NhMWM2ODtcbn1cbi5idG4tZGFuZ2VyOmZvY3VzLFxuLmJ0bi1kYW5nZXIuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNWEwYzJlO1xufVxuLmJ0bi1kYW5nZXI6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjOTQxNDRkO1xufVxuLmJ0bi1kYW5nZXI6YWN0aXZlLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbiAgYm9yZGVyLWNvbG9yOiAjOTQxNDRkO1xufVxuLmJ0bi1kYW5nZXI6YWN0aXZlOmhvdmVyLFxuLmJ0bi1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXI6aG92ZXIsXG4uYnRuLWRhbmdlcjphY3RpdmU6Zm9jdXMsXG4uYnRuLWRhbmdlci5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpmb2N1cyxcbi5idG4tZGFuZ2VyOmFjdGl2ZS5mb2N1cyxcbi5idG4tZGFuZ2VyLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NDE0NGQ7XG4gIGJvcmRlci1jb2xvcjogIzVhMGMyZTtcbn1cbi5idG4tZGFuZ2VyOmFjdGl2ZSxcbi5idG4tZGFuZ2VyLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tZGFuZ2VyLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1kYW5nZXJbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmhvdmVyLFxuLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWRhbmdlcltkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6Zm9jdXMsXG4uYnRuLWRhbmdlci5kaXNhYmxlZC5mb2N1cyxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlci5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDFmNzQ7XG4gIGJvcmRlci1jb2xvcjogI2NhMWM2ODtcbn1cbi5idG4tZGFuZ2VyIC5iYWRnZSB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi1saW5rIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWxpbmssXG4uYnRuLWxpbms6YWN0aXZlLFxuLmJ0bi1saW5rLmFjdGl2ZSxcbi5idG4tbGlua1tkaXNhYmxlZF0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5idG4tbGluayxcbi5idG4tbGluazpob3Zlcixcbi5idG4tbGluazpmb2N1cyxcbi5idG4tbGluazphY3RpdmUge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJ0bi1saW5rOmhvdmVyLFxuLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICMwMDljYTM7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rOmhvdmVyLFxuLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJ0bi1sZyxcbi5idG4tZ3JvdXAtbGcgPiAuYnRuIHtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5idG4tc20sXG4uYnRuLWdyb3VwLXNtID4gLmJ0biB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5idG4teHMsXG4uYnRuLWdyb3VwLXhzID4gLmJ0biB7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cbi5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5idG4tYmxvY2ssXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0uYnRuLWJsb2NrLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXS5idG4tYmxvY2sge1xuICB3aWR0aDogMTAwJTtcbn1cbi5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xufVxuLmZhZGUuaW4ge1xuICBvcGFjaXR5OiAxO1xufVxuLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudHIuY29sbGFwc2UuaW4ge1xuICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG50Ym9keS5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDtcbn1cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQsIHZpc2liaWxpdHk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zNXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMzVzO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cbi5jYXJldCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXRvcDogNHB4IGRhc2hlZDtcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIFxcOTtcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uZHJvcHVwLFxuLmRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uZHJvcGRvd24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIG1hcmdpbjogMnB4IDAgMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cbi5kcm9wZG93bi1tZW51LnB1bGwtcmlnaHQge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cbi5kcm9wZG93bi1tZW51IC5kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogOXB4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG59XG4uZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzMzMzMzMztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMjYyNjI2O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSxcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5vcGVuID4gLmRyb3Bkb3duLW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5vcGVuID4gYSB7XG4gIG91dGxpbmU6IDA7XG59XG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xufVxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZHJvcGRvd24tYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTkwO1xufVxuLnB1bGwtcmlnaHQgPiAuZHJvcGRvd24tbWVudSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuLmRyb3B1cCAuY2FyZXQsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmNhcmV0IHtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IGRhc2hlZDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIFxcOTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5kcm9wdXAgLmRyb3Bkb3duLW1lbnUsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItcmlnaHQgLmRyb3Bkb3duLW1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4uYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJ0bi1ncm91cCA+IC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpob3Zlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmhvdmVyLFxuLmJ0bi1ncm91cCA+IC5idG46Zm9jdXMsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmb2N1cyxcbi5idG4tZ3JvdXAgPiAuYnRuOmFjdGl2ZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmFjdGl2ZSxcbi5idG4tZ3JvdXAgPiAuYnRuLmFjdGl2ZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLmFjdGl2ZSB7XG4gIHotaW5kZXg6IDI7XG59XG4uYnRuLWdyb3VwIC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cCAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4sXG4uYnRuLWdyb3VwIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4uYnRuLXRvb2xiYXIge1xuICBtYXJnaW4tbGVmdDogLTVweDtcbn1cbi5idG4tdG9vbGJhciAuYnRuLFxuLmJ0bi10b29sYmFyIC5idG4tZ3JvdXAsXG4uYnRuLXRvb2xiYXIgLmlucHV0LWdyb3VwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLXRvb2xiYXIgPiAuYnRuLFxuLmJ0bi10b29sYmFyID4gLmJ0bi1ncm91cCxcbi5idG4tdG9vbGJhciA+IC5pbnB1dC1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuOmxhc3QtY2hpbGQsXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIG91dGxpbmU6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0biArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xufVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUuYnRuLWxpbmsge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYnRuIC5jYXJldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cbi5kcm9wdXAgLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBmbG9hdDogbm9uZTtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4sXG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgd2lkdGg6IDElO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIC5idG4ge1xuICB3aWR0aDogMTAwJTtcbn1cbi5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSB7XG4gIGxlZnQ6IGF1dG87XG59XG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuLmlucHV0LWdyb3VwW2NsYXNzKj1cImNvbC1cIl0ge1xuICBmbG9hdDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgei1pbmRleDogMztcbn1cbi5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbnNlbGVjdC5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG5zZWxlY3QuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3QuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG50ZXh0YXJlYS5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG50ZXh0YXJlYS5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnRleHRhcmVhLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbnNlbGVjdC5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG5zZWxlY3QuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3QuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG50ZXh0YXJlYS5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG50ZXh0YXJlYS5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnRleHRhcmVhLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuLFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4ge1xuICB3aWR0aDogMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LXNtIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LWxnIHtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4uaW5wdXQtZ3JvdXAtYWRkb24gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG46aG92ZXIsXG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjpmb2N1cyxcbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmFjdGl2ZSB7XG4gIHotaW5kZXg6IDI7XG59XG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xufVxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAge1xuICB6LWluZGV4OiAyO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5uYXYge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubmF2ID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm5hdiA+IGxpID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbn1cbi5uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLm5hdiA+IGxpLmRpc2FibGVkID4gYSB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLm5hdiA+IGxpLmRpc2FibGVkID4gYTpob3Zlcixcbi5uYXYgPiBsaS5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5uYXYgLm9wZW4gPiBhLFxuLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4ubmF2IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5uYXYgLm5hdi1kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogOXB4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7XG59XG4ubmF2ID4gbGkgPiBhID4gaW1nIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG4ubmF2LXRhYnMgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xufVxuLm5hdi10YWJzID4gbGkgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubmF2LXRhYnMgPiBsaSA+IGE6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNlZWVlZWUgI2VlZWVlZSAjZGRkO1xufVxuLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYSxcbi5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXRhYnMgPiBsaS5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM1NTU1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDElO1xuICB9XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gIH1cbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbiAgfVxufVxuLm5hdi1waWxscyA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4ubmF2LXBpbGxzID4gbGkgPiBhIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdi1waWxscyA+IGxpICsgbGkge1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGEsXG4ubmF2LXBpbGxzID4gbGkuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubmF2LXN0YWNrZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi1zdGFja2VkID4gbGkgKyBsaSB7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4ubmF2LWp1c3RpZmllZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5uYXYtanVzdGlmaWVkID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtanVzdGlmaWVkID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDElO1xuICB9XG4gIC5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4ubmF2LXRhYnMtanVzdGlmaWVkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5uYXYtdGFicy1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSxcbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gIH1cbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuICAubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbiAgfVxufVxuLnRhYi1jb250ZW50ID4gLnRhYi1wYW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50YWItY29udGVudCA+IC5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5uYXYtdGFicyAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLm5hdmJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogNTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1oZWFkZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG4ubmF2YmFyLWNvbGxhcHNlIHtcbiAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4ubmF2YmFyLWNvbGxhcHNlLmluIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIC5uYXZiYXItY29sbGFwc2UuaW4ge1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gIH1cbiAgLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1zdGF0aWMtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xufVxuQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiA0ODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5uYXZiYXItZml4ZWQtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB9XG59XG4uY29udGFpbmVyID4gLm5hdmJhci1oZWFkZXIsXG4uY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1oZWFkZXIsXG4uY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbi5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWNvbGxhcHNlIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXIgPiAubmF2YmFyLWhlYWRlcixcbiAgLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItaGVhZGVyLFxuICAuY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbiAgLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuLm5hdmJhci1zdGF0aWMtdG9wIHtcbiAgei1pbmRleDogMTAwMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItc3RhdGljLXRvcCB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMzA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1maXhlZC10b3AsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCB7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci13aWR0aDogMXB4IDAgMDtcbn1cbi5uYXZiYXItYnJhbmQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMTVweCAxNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBoZWlnaHQ6IDUwcHg7XG59XG4ubmF2YmFyLWJyYW5kOmhvdmVyLFxuLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5uYXZiYXItYnJhbmQgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyID4gLmNvbnRhaW5lciAubmF2YmFyLWJyYW5kLFxuICAubmF2YmFyID4gLmNvbnRhaW5lci1mbHVpZCAubmF2YmFyLWJyYW5kIHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIH1cbn1cbi5uYXZiYXItdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgcGFkZGluZzogOXB4IDEwcHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5uYXZiYXItdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cbi5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciArIC5pY29uLWJhciB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLm5hdmJhci1uYXYge1xuICBtYXJnaW46IDcuNXB4IC0xNXB4O1xufVxuLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEsXG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNXB4O1xuICB9XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLW5hdiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5uYXZiYXItbmF2ID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgfVxufVxuLm5hdmJhci1mb3JtIHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWNvbnRyb2wge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWFkZG9uLFxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG4sXG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuY29udHJvbC1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAucmFkaW8sXG4gIC5uYXZiYXItZm9ybSAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLnJhZGlvIGxhYmVsLFxuICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IGxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIC5uYXZiYXItZm9ybSAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWZvcm0ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5uYXZiYXItYnRuIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4ubmF2YmFyLWJ0bi5idG4tc20ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLm5hdmJhci1idG4uYnRuLXhzIHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cbi5uYXZiYXItdGV4dCB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci10ZXh0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhci1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgfVxuICAubmF2YmFyLXJpZ2h0IH4gLm5hdmJhci1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG4ubmF2YmFyLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBib3JkZXItY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItYnJhbmQ6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIGNvbG9yOiAjNWU1ZTVlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRleHQge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGUge1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGU6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1jb2xsYXBzZSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWZvcm0ge1xuICBib3JkZXItY29sb3I6ICNlN2U3ZTc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xuICBjb2xvcjogIzU1NTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjNzc3O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjY2NjO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogI2NjYztcbn1cbi5uYXZiYXItaW52ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJvcmRlci1jb2xvcjogIzA4MDgwODtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGEsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNDQ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSB7XG4gIGJvcmRlci1jb2xvcjogIzMzMztcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItZm9ybSB7XG4gIGJvcmRlci1jb2xvcjogIzEwMTAxMDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwODA4MDg7XG4gIGNvbG9yOiAjZmZmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzA4MDgwODtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwODA4MDg7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogIzlkOWQ5ZDtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzQ0NDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluayB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluazpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGluayB7XG4gIGNvbG9yOiAjOWQ5ZDlkO1xufVxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG59XG4uYnJlYWRjcnVtYiB7XG4gIHBhZGRpbmc6IDhweCAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uYnJlYWRjcnVtYiA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmJyZWFkY3J1bWIgPiBsaSArIGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiL1xcMDBhMFwiO1xuICBwYWRkaW5nOiAwIDVweDtcbiAgY29sb3I6ICNjY2M7XG59XG4uYnJlYWRjcnVtYiA+IC5hY3RpdmUge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogMjBweCAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLnBhZ2luYXRpb24gPiBsaSA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xufVxuLnBhZ2luYXRpb24gPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLnBhZ2luYXRpb24gPiBsaSA+IGE6aG92ZXIsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3Bhbjpob3Zlcixcbi5wYWdpbmF0aW9uID4gbGkgPiBhOmZvY3VzLFxuLnBhZ2luYXRpb24gPiBsaSA+IHNwYW46Zm9jdXMge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogIzAwOWNhMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gYSxcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW4sXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gc3Bhbjpob3Zlcixcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGE6Zm9jdXMsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBzcGFuOmZvY3VzIHtcbiAgei1pbmRleDogMztcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmZvY3VzLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGkgPiBhLFxuLnBhZ2luYXRpb24tbGcgPiBsaSA+IHNwYW4ge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tbGcgPiBsaTpmaXJzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbn1cbi5wYWdpbmF0aW9uLWxnID4gbGk6bGFzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpOmxhc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbn1cbi5wYWdpbmF0aW9uLXNtID4gbGkgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaSA+IHNwYW4ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLnBhZ2luYXRpb24tc20gPiBsaTpmaXJzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1zbSA+IGxpOmZpcnN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhZ2luYXRpb24tc20gPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLXNtID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDIwcHggMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnBhZ2VyIGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLnBhZ2VyIGxpID4gYSxcbi5wYWdlciBsaSA+IHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDVweCAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xufVxuLnBhZ2VyIGxpID4gYTpob3Zlcixcbi5wYWdlciBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4ucGFnZXIgLm5leHQgPiBhLFxuLnBhZ2VyIC5uZXh0ID4gc3BhbiB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5wYWdlciAucHJldmlvdXMgPiBhLFxuLnBhZ2VyIC5wcmV2aW91cyA+IHNwYW4ge1xuICBmbG9hdDogbGVmdDtcbn1cbi5wYWdlciAuZGlzYWJsZWQgPiBhLFxuLnBhZ2VyIC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ucGFnZXIgLmRpc2FibGVkID4gYTpmb2N1cyxcbi5wYWdlciAuZGlzYWJsZWQgPiBzcGFuIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IC4yZW0gLjZlbSAuM2VtO1xuICBmb250LXNpemU6IDc1JTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xufVxuYS5sYWJlbDpob3ZlcixcbmEubGFiZWw6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubGFiZWw6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ0biAubGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbn1cbi5sYWJlbC1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3Nzc3Nztcbn1cbi5sYWJlbC1kZWZhdWx0W2hyZWZdOmhvdmVyLFxuLmxhYmVsLWRlZmF1bHRbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWU1ZTVlO1xufVxuLmxhYmVsLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLmxhYmVsLXByaW1hcnlbaHJlZl06aG92ZXIsXG4ubGFiZWwtcHJpbWFyeVtocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG59XG4ubGFiZWwtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubGFiZWwtc3VjY2Vzc1tocmVmXTpob3Zlcixcbi5sYWJlbC1zdWNjZXNzW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5sYWJlbC1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5sYWJlbC1pbmZvW2hyZWZdOmhvdmVyLFxuLmxhYmVsLWluZm9baHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xufVxuLmxhYmVsLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmxhYmVsLXdhcm5pbmdbaHJlZl06aG92ZXIsXG4ubGFiZWwtd2FybmluZ1tocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG59XG4ubGFiZWwtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbn1cbi5sYWJlbC1kYW5nZXJbaHJlZl06aG92ZXIsXG4ubGFiZWwtZGFuZ2VyW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IzMTk1ZDtcbn1cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc3Nzc3NztcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5iYWRnZTplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYnRuIC5iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuLmJ0bi14cyAuYmFkZ2UsXG4uYnRuLWdyb3VwLXhzID4gLmJ0biAuYmFkZ2Uge1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG59XG5hLmJhZGdlOmhvdmVyLFxuYS5iYWRnZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlID4gLmJhZGdlLFxuLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhID4gLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ubGlzdC1ncm91cC1pdGVtID4gLmJhZGdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbSA+IC5iYWRnZSArIC5iYWRnZSB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLm5hdi1waWxscyA+IGxpID4gYSA+IC5iYWRnZSB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uanVtYm90cm9uIHtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5qdW1ib3Ryb24gaDEsXG4uanVtYm90cm9uIC5oMSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmp1bWJvdHJvbiBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogMjAwO1xufVxuLmp1bWJvdHJvbiA+IGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Q1ZDVkNTtcbn1cbi5jb250YWluZXIgLmp1bWJvdHJvbixcbi5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLmp1bWJvdHJvbiAuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmp1bWJvdHJvbiB7XG4gICAgcGFkZGluZy10b3A6IDQ4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQ4cHg7XG4gIH1cbiAgLmNvbnRhaW5lciAuanVtYm90cm9uLFxuICAuY29udGFpbmVyLWZsdWlkIC5qdW1ib3Ryb24ge1xuICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICB9XG4gIC5qdW1ib3Ryb24gaDEsXG4gIC5qdW1ib3Ryb24gLmgxIHtcbiAgICBmb250LXNpemU6IDYzcHg7XG4gIH1cbn1cbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG4udGh1bWJuYWlsID4gaW1nLFxuLnRodW1ibmFpbCBhID4gaW1nIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbmEudGh1bWJuYWlsOmhvdmVyLFxuYS50aHVtYm5haWw6Zm9jdXMsXG5hLnRodW1ibmFpbC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4udGh1bWJuYWlsIC5jYXB0aW9uIHtcbiAgcGFkZGluZzogOXB4O1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi5hbGVydCB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uYWxlcnQgaDQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5hbGVydCAuYWxlcnQtbGluayB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFsZXJ0ID4gcCxcbi5hbGVydCA+IHVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbGVydCA+IHAgKyBwIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLmFsZXJ0LWRpc21pc3NhYmxlLFxuLmFsZXJ0LWRpc21pc3NpYmxlIHtcbiAgcGFkZGluZy1yaWdodDogMzVweDtcbn1cbi5hbGVydC1kaXNtaXNzYWJsZSAuY2xvc2UsXG4uYWxlcnQtZGlzbWlzc2libGUgLmNsb3NlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIHJpZ2h0OiAtMjFweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG4gIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG4uYWxlcnQtc3VjY2VzcyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNjOWUyYjM7XG59XG4uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMmI1NDJjO1xufVxuLmFsZXJ0LWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuICBib3JkZXItY29sb3I6ICNiY2U4ZjE7XG4gIGNvbG9yOiAjMzE3MDhmO1xufVxuLmFsZXJ0LWluZm8gaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYTZlMWVjO1xufVxuLmFsZXJ0LWluZm8gLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzI0NTI2OTtcbn1cbi5hbGVydC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgYm9yZGVyLWNvbG9yOiAjZmFlYmNjO1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbi5hbGVydC13YXJuaW5nIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Y3ZTFiNTtcbn1cbi5hbGVydC13YXJuaW5nIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICM2NjUxMmM7XG59XG4uYWxlcnQtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxO1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbi5hbGVydC1kYW5nZXIgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZTRiOWMwO1xufVxuLmFsZXJ0LWRhbmdlciAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjODQzNTM0O1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xuICB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuLnByb2dyZXNzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5wcm9ncmVzcy1iYXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXItc3RyaXBlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MHB4IDQwcHg7XG59XG4ucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XG4gIC1vLWFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cbi5wcm9ncmVzcy1iYXItc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4ucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbi5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLm1lZGlhIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5tZWRpYTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4ubWVkaWEsXG4ubWVkaWEtYm9keSB7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubWVkaWEtYm9keSB7XG4gIHdpZHRoOiAxMDAwMHB4O1xufVxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1lZGlhLW9iamVjdC5pbWctdGh1bWJuYWlsIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhID4gLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4ubWVkaWEtbGVmdCxcbi5tZWRpYSA+IC5wdWxsLWxlZnQge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuLm1lZGlhLWxlZnQsXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEtYm9keSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubWVkaWEtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5tZWRpYS1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLm1lZGlhLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubWVkaWEtbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5saXN0LWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG59XG4ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBjb2xvcjogIzU1NTtcbn1cbmEubGlzdC1ncm91cC1pdGVtIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6ICMzMzM7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbTpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjNTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3Zlcixcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIHtcbiAgei1pbmRleDogMjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgY29sb3I6ICNiZGZjZmY7XG59XG4ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZTljNjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M3NjNkO1xuICBib3JkZXItY29sb3I6ICMzYzc2M2Q7XG59XG4ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzMxNzA4Zjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0ZTNmMztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzE3MDhmO1xuICBib3JkZXItY29sb3I6ICMzMTcwOGY7XG59XG4ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjJjYztcbn1cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGE2ZDNiO1xuICBib3JkZXItY29sb3I6ICM4YTZkM2I7XG59XG4ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2NjYztcbn1cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk0NDQyO1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG59XG4ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4ubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4ucGFuZWwtYm9keSB7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG4ucGFuZWwtaGVhZGluZyB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwtaGVhZGluZyA+IC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucGFuZWwtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnBhbmVsLXRpdGxlID4gYSxcbi5wYW5lbC10aXRsZSA+IHNtYWxsLFxuLnBhbmVsLXRpdGxlID4gLnNtYWxsLFxuLnBhbmVsLXRpdGxlID4gc21hbGwgPiBhLFxuLnBhbmVsLXRpdGxlID4gLnNtYWxsID4gYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnBhbmVsLWZvb3RlciB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC5saXN0LWdyb3VwLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbSxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW0ge1xuICBib3JkZXItd2lkdGg6IDFweCAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAubGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4ucGFuZWwtaGVhZGluZyArIC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuLmxpc3QtZ3JvdXAgKyAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbn1cbi5wYW5lbCA+IC50YWJsZSxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5wYW5lbCA+IC50YWJsZSBjYXB0aW9uLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgY2FwdGlvbixcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC50YWJsZSBjYXB0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnBhbmVsLWJvZHkgKyAudGFibGUsXG4ucGFuZWwgPiAucGFuZWwtYm9keSArIC50YWJsZS1yZXNwb25zaXZlLFxuLnBhbmVsID4gLnRhYmxlICsgLnBhbmVsLWJvZHksXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSArIC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG4ucGFuZWwgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoLFxuLnBhbmVsID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGgge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnBhbmVsLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsICsgLnBhbmVsIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5LFxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlIC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG4ucGFuZWwtZGVmYXVsdCB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNmNWY1ZjU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG59XG4ucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNkZGQ7XG59XG4ucGFuZWwtcHJpbWFyeSB7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMGU1ZjA7XG59XG4ucGFuZWwtc3VjY2VzcyB7XG4gIGJvcmRlci1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbiAgYm9yZGVyLWNvbG9yOiAjZDZlOWM2O1xufVxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNkZmYwZDg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzc2M2Q7XG59XG4ucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNkNmU5YzY7XG59XG4ucGFuZWwtaW5mbyB7XG4gIGJvcmRlci1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbiAgYm9yZGVyLWNvbG9yOiAjYmNlOGYxO1xufVxuLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNkOWVkZjc7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTcwOGY7XG59XG4ucGFuZWwtaW5mbyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNiY2U4ZjE7XG59XG4ucGFuZWwtd2FybmluZyB7XG4gIGJvcmRlci1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgYm9yZGVyLWNvbG9yOiAjZmFlYmNjO1xufVxuLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNmY2Y4ZTM7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTZkM2I7XG59XG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmYWViY2M7XG59XG4ucGFuZWwtZGFuZ2VyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG4gIGJvcmRlci1jb2xvcjogI2ViY2NkMTtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ViY2NkMTtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2YyZGVkZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E5NDQ0Mjtcbn1cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZWJjY2QxO1xufVxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLFxuLmVtYmVkLXJlc3BvbnNpdmUgaWZyYW1lLFxuLmVtYmVkLXJlc3BvbnNpdmUgZW1iZWQsXG4uZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsXG4uZW1iZWQtcmVzcG9uc2l2ZSB2aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMDtcbn1cbi5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5IHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbn1cbi5lbWJlZC1yZXNwb25zaXZlLTRieTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuLndlbGwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAxOXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTNlM2UzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLndlbGwgYmxvY2txdW90ZSB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLndlbGwtbGcge1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4ud2VsbC1zbSB7XG4gIHBhZGRpbmc6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICNmZmY7XG4gIG9wYWNpdHk6IDAuMjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTIwKTtcbn1cbi5jbG9zZTpob3Zlcixcbi5jbG9zZTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xufVxuYnV0dG9uLmNsb3NlIHtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA1MDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBvdXRsaW5lOiAwO1xufVxuLm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xufVxuLm1vZGFsLmluIC5tb2RhbC1kaWFsb2cge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cbi5tb2RhbC1vcGVuIC5tb2RhbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDEwcHg7XG59XG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm94LXNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgb3V0bGluZTogMDtcbn1cbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuLm1vZGFsLWJhY2tkcm9wLmZhZGUge1xuICBvcGFjaXR5OiAwO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG4ubW9kYWwtYmFja2Ryb3AuaW4ge1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xufVxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xufVxuLm1vZGFsLWZvb3RlciAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubW9kYWwtZm9vdGVyIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5tb2RhbC1mb290ZXIgLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBtYXJnaW46IDMwcHggYXV0bztcbiAgfVxuICAubW9kYWwtY29udGVudCB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBib3gtc2hhZG93OiAwIDVweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgfVxuICAubW9kYWwtc20ge1xuICAgIHdpZHRoOiAzMDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5tb2RhbC1sZyB7XG4gICAgd2lkdGg6IDkwMHB4O1xuICB9XG59XG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA3MDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xufVxuLnRvb2x0aXAuaW4ge1xuICBvcGFjaXR5OiAwLjk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7XG59XG4udG9vbHRpcC50b3Age1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICBwYWRkaW5nOiA1cHggMDtcbn1cbi50b29sdGlwLnJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgcGFkZGluZzogMCA1cHg7XG59XG4udG9vbHRpcC5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuLnRvb2x0aXAubGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICBwYWRkaW5nOiAwIDVweDtcbn1cbi50b29sdGlwLWlubmVyIHtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLnRvb2x0aXAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4udG9vbHRpcC50b3AgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAudG9wLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAudG9wLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAucmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDVweCAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCAwIDVweCA1cHg7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAuYm90dG9tIC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmJvdHRvbS1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmJvdHRvbS1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogMDtcbiAgbGVmdDogNXB4O1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cbi5wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNjA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMjc2cHg7XG4gIHBhZGRpbmc6IDFweDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG4ucG9wb3Zlci50b3Age1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbn1cbi5wb3BvdmVyLnJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4ucG9wb3Zlci5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLnBvcG92ZXIubGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbn1cbi5wb3BvdmVyLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG59XG4ucG9wb3Zlci1jb250ZW50IHtcbiAgcGFkZGluZzogOXB4IDE0cHg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdyxcbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi5wb3BvdmVyID4gLmFycm93IHtcbiAgYm9yZGVyLXdpZHRoOiAxMXB4O1xufVxuLnBvcG92ZXIgPiAuYXJyb3c6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDEwcHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG4ucG9wb3Zlci50b3AgPiAuYXJyb3cge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYm90dG9tOiAtMTFweDtcbn1cbi5wb3BvdmVyLnRvcCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBib3R0b206IDFweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xufVxuLnBvcG92ZXIucmlnaHQgPiAuYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogLTExcHg7XG4gIG1hcmdpbi10b3A6IC0xMXB4O1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4ucG9wb3Zlci5yaWdodCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBsZWZ0OiAxcHg7XG4gIGJvdHRvbTogLTEwcHg7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICNmZmY7XG59XG4ucG9wb3Zlci5ib3R0b20gPiAuYXJyb3cge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgdG9wOiAtMTFweDtcbn1cbi5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICB0b3A6IDFweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xufVxuLnBvcG92ZXIubGVmdCA+IC5hcnJvdyB7XG4gIHRvcDogNTAlO1xuICByaWdodDogLTExcHg7XG4gIG1hcmdpbi10b3A6IC0xMXB4O1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbi5wb3BvdmVyLmxlZnQgPiAuYXJyb3c6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgcmlnaHQ6IDFweDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcbiAgYm90dG9tOiAtMTBweDtcbn1cbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjZzIGVhc2UtaW4tb3V0IGxlZnQ7XG4gIC1vLXRyYW5zaXRpb246IDAuNnMgZWFzZS1pbi1vdXQgbGVmdDtcbiAgdHJhbnNpdGlvbjogMC42cyBlYXNlLWluLW91dCBsZWZ0O1xufVxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBpbWcsXG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGEgPiBpbWcge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbkBtZWRpYSBhbGwgYW5kICh0cmFuc2Zvcm0tM2QpLCAoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHtcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgICAtbW96LXBlcnNwZWN0aXZlOiAxMDAwcHg7XG4gICAgcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5uZXh0LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5hY3RpdmUucmlnaHQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIGxlZnQ6IDA7XG4gIH1cbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ucHJldixcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0uYWN0aXZlLmxlZnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5uZXh0LmxlZnQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLnByZXYucmlnaHQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLmFjdGl2ZSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZSxcbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0LFxuLmNhcm91c2VsLWlubmVyID4gLnByZXYge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUge1xuICBsZWZ0OiAwO1xufVxuLmNhcm91c2VsLWlubmVyID4gLm5leHQsXG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0IHtcbiAgbGVmdDogMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgbGVmdDogLTEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dC5sZWZ0LFxuLmNhcm91c2VsLWlubmVyID4gLnByZXYucmlnaHQge1xuICBsZWZ0OiAwO1xufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZS5sZWZ0IHtcbiAgbGVmdDogLTEwMCU7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLnJpZ2h0IHtcbiAgbGVmdDogMTAwJTtcbn1cbi5jYXJvdXNlbC1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDE1JTtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmNhcm91c2VsLWNvbnRyb2wubGVmdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzgwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyMwMDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sLnJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyM4MDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sOmhvdmVyLFxuLmNhcm91c2VsLWNvbnRyb2w6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAwLjk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCxcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIHotaW5kZXg6IDU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCxcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gIHJpZ2h0OiA1MCU7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogc2VyaWY7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwMzknO1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dDpiZWZvcmUge1xuICBjb250ZW50OiAnXFwyMDNhJztcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogMTU7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IDFweDtcbiAgdGV4dC1pbmRlbnQ6IC05OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwIFxcOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmUge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uY2Fyb3VzZWwtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTUlO1xuICByaWdodDogMTUlO1xuICBib3R0b206IDIwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmNhcm91c2VsLWNhcHRpb24gLmJ0biB7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgfVxuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldiB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgfVxuICAuY2Fyb3VzZWwtY2FwdGlvbiB7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWluZGljYXRvcnMge1xuICAgIGJvdHRvbTogMjBweDtcbiAgfVxufVxuLmNsZWFyZml4OmJlZm9yZSxcbi5jbGVhcmZpeDphZnRlcixcbi5kbC1ob3Jpem9udGFsIGRkOmJlZm9yZSxcbi5kbC1ob3Jpem9udGFsIGRkOmFmdGVyLFxuLmNvbnRhaW5lcjpiZWZvcmUsXG4uY29udGFpbmVyOmFmdGVyLFxuLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsXG4uY29udGFpbmVyLWZsdWlkOmFmdGVyLFxuLnJvdzpiZWZvcmUsXG4ucm93OmFmdGVyLFxuLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDpiZWZvcmUsXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmFmdGVyLFxuLmJ0bi10b29sYmFyOmJlZm9yZSxcbi5idG4tdG9vbGJhcjphZnRlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmJlZm9yZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmFmdGVyLFxuLm5hdjpiZWZvcmUsXG4ubmF2OmFmdGVyLFxuLm5hdmJhcjpiZWZvcmUsXG4ubmF2YmFyOmFmdGVyLFxuLm5hdmJhci1oZWFkZXI6YmVmb3JlLFxuLm5hdmJhci1oZWFkZXI6YWZ0ZXIsXG4ubmF2YmFyLWNvbGxhcHNlOmJlZm9yZSxcbi5uYXZiYXItY29sbGFwc2U6YWZ0ZXIsXG4ucGFnZXI6YmVmb3JlLFxuLnBhZ2VyOmFmdGVyLFxuLnBhbmVsLWJvZHk6YmVmb3JlLFxuLnBhbmVsLWJvZHk6YWZ0ZXIsXG4ubW9kYWwtaGVhZGVyOmJlZm9yZSxcbi5tb2RhbC1oZWFkZXI6YWZ0ZXIsXG4ubW9kYWwtZm9vdGVyOmJlZm9yZSxcbi5tb2RhbC1mb290ZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG4uY2xlYXJmaXg6YWZ0ZXIsXG4uZGwtaG9yaXpvbnRhbCBkZDphZnRlcixcbi5jb250YWluZXI6YWZ0ZXIsXG4uY29udGFpbmVyLWZsdWlkOmFmdGVyLFxuLnJvdzphZnRlcixcbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIsXG4uYnRuLXRvb2xiYXI6YWZ0ZXIsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDphZnRlcixcbi5uYXY6YWZ0ZXIsXG4ubmF2YmFyOmFmdGVyLFxuLm5hdmJhci1oZWFkZXI6YWZ0ZXIsXG4ubmF2YmFyLWNvbGxhcHNlOmFmdGVyLFxuLnBhZ2VyOmFmdGVyLFxuLnBhbmVsLWJvZHk6YWZ0ZXIsXG4ubW9kYWwtaGVhZGVyOmFmdGVyLFxuLm1vZGFsLWZvb3RlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLmNlbnRlci1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnB1bGwtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5wdWxsLWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnRleHQtaGlkZSB7XG4gIGZvbnQ6IDAvMCBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5hZmZpeCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuLnZpc2libGUteHMsXG4udmlzaWJsZS1zbSxcbi52aXNpYmxlLW1kLFxuLnZpc2libGUtbGcge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4udmlzaWJsZS14cy1ibG9jayxcbi52aXNpYmxlLXhzLWlubGluZSxcbi52aXNpYmxlLXhzLWlubGluZS1ibG9jayxcbi52aXNpYmxlLXNtLWJsb2NrLFxuLnZpc2libGUtc20taW5saW5lLFxuLnZpc2libGUtc20taW5saW5lLWJsb2NrLFxuLnZpc2libGUtbWQtYmxvY2ssXG4udmlzaWJsZS1tZC1pbmxpbmUsXG4udmlzaWJsZS1tZC1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1sZy1ibG9jayxcbi52aXNpYmxlLWxnLWlubGluZSxcbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUteHMsXG4gIHRkLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1zbSxcbiAgdGQudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbS1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1tZCxcbiAgdGQudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtbGcsXG4gIHRkLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZy1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZy1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGlkZGVuLXhzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5oaWRkZW4tc20ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC5oaWRkZW4tbWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuaGlkZGVuLWxnIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLXByaW50LFxuICB0ZC52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC52aXNpYmxlLXByaW50LWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5oaWRkZW4tcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVTUyBWQVJJQUJMRVNcbioqICAgICAgICAgICAgICAgIFRoaXMgc3R5bGVzaGVldCBzaG91bGQgb25seSBjb250YWluIHZhcmlhYmxlcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgcGFsZXR0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnRvcC1idWZmZXItMSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4udG9wLWJ1ZmZlci0yIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi50b3AtYnVmZmVyLTMge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuLnRvcC1idWZmZXItNCB7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG59XG4udG9wLWJ1ZmZlci01IHtcbiAgbWFyZ2luLXRvcDogNzVweDtcbn1cbi50b3AtYnVmZmVyLTYge1xuICBtYXJnaW4tdG9wOiA5MHB4O1xufVxuLnRvcC1idWZmZXItNyB7XG4gIG1hcmdpbi10b3A6IDEwNXB4O1xufVxuLnRvcC1idWZmZXItOCB7XG4gIG1hcmdpbi10b3A6IDEyMHB4O1xufVxuLnRvcC1idWZmZXItOSB7XG4gIG1hcmdpbi10b3A6IDEzNXB4O1xufVxuLnRvcC1idWZmZXItMTAge1xuICBtYXJnaW4tdG9wOiAxNTBweDtcbn1cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNUEFDIE1BVEVSSUFMXG4vKiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiogTWl4aW4gbWF0ZXJpYWwgc3R5bGVkIGZvcm0gaW5wdXRzLCBvdmVycmlkaW5nIGJvb3RzdHJhcCdzIHVuZ29kbHkgcm91bmQtbmVzcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogREVNTyBIVE1MIC0gdXNlIHRoaXMgaHRtbCB0byB0ZXN0IGFsbCBpbXBhYyBtYXRlcmlhbCBmZWF0dXJlcy5cbjxmb3JtPlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxzZWxlY3Q+XG4gICAgICA8b3B0aW9uPlZhbHVlIDE8L29wdGlvbj5cbiAgICAgIDxvcHRpb24+VmFsdWUgMjwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5TZWxlY3Rib3g8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgPGxhYmVsIGZvcj1cImlucHV0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+VGV4dGZpZWxkPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tbWVzc2FnZXNcIj5cbiAgICAgIDxwPlRoaXMgaXMgYW4gZXJyb3IgbWVzc2FnZTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWlubGluZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5JbmxpbmU8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5JbmxpbmU8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8dGV4dGFyZWEgcmVxdWlyZWQ+PC90ZXh0YXJlYT5cbiAgICA8bGFiZWwgZm9yPVwidGV4dGFyZWFcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5UZXh0YXJlYTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZD1cImNoZWNrZWRcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1yYWRpb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1yYWRpb1wiPlxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvXCIgY2hlY2tlZD1cImNoZWNrZWRcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgcmFkaW8gYnV0dG9uXG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbS1yYWRpb1wiPlxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvXCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIHJhZGlvIGJ1dHRvblxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0tcHJpbWFyeVwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0td2FyblwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbjwvZm9ybT5cbiovXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CQUwgU1RZTEVTXG4qKiAgICAgICAgVGhpcyBzdHlsZXNoZWV0IHNob3VsZCBvbmx5IGNvbnRhaW4gc3R5bGVzIGFwcGxpZWQgZ2xvYmFsIG9yIGluXG4qKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyIG9yIG1vcmUgY29tcG9uZW50cy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuYm9keSB7XG4gIGhlaWdodDogMTAxJSAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyBoMiB7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgaDMge1xuICBtYXJnaW46IDBweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyBoNCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uYW5hbHl0aWNzIC5wb3NpdGl2ZSxcbi5hbmFseXRpY3MgLmdyZWVuIHtcbiAgY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5uZWdhdGl2ZSxcbi5hbmFseXRpY3MgLnJlZCB7XG4gIGNvbG9yOiAjZWQxZTc5ICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5wb3NpdGl2ZTIge1xuICBjb2xvcjogIzNmYzRmZiAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAubmVnYXRpdmUyIHtcbiAgY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzk3N2JmMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuaW5wdXQtZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3Mgc2VsZWN0IHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuLmFuYWx5dGljcyBwcmUge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWFyZ2luOiAxcHggMHB4IDhweCAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCA6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLmFuYWx5dGljcyBrcGlzLWJhciAua3BpIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyIC5rcGkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ODk2YjI7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciAua3BpIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzlhMmJiO1xufVxuLmFuYWx5dGljcyAubm9wYWRkaW5nIHtcbiAgcGFkZGluZzogMDtcbn1cbi5hbmFseXRpY3MgLm5vbWFyZ2luIHtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyAuYnRuLmJ0bi1zaGFkZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcyNjJkO1xuICBib3JkZXI6IHNvbGlkIDFweCAjMGUxODFjO1xuICBjb2xvcjogIzYyNmQ2ZDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3MgLmJ0bi5idG4tc2hhZGVkOmhvdmVyIHtcbiAgY29sb3I6ICM2ZTdhN2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMDM0M2U7XG59XG4uYW5hbHl0aWNzIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi5hbmFseXRpY3MgLmN1cnJlbmN5IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MgLmxvYWRlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC5sb2FkZXIgaSB7XG4gIGNvbG9yOiAjNjdCQkU5O1xufVxuLmFuYWx5dGljcyAubG9hZGVyIHAge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLmFuYWx5dGljcyAucmlnaHQtcGFuZWwge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4ICNlNmU2ZTY7XG59XG4uYW5hbHl0aWNzIC5zZWxlY3RvciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM2MjZkNmQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLnRpbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICBoZWlnaHQ6IDQ1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnRpbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJmMmZmO1xufVxuLmFuYWx5dGljcyAudGlsZSAuY29sb3JlZC1hcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNGQzRGRjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBtaW4td2lkdGg6IDglO1xufVxuLmFuYWx5dGljcyAudGlsZSAuY29sb3JlZC1hcmVhLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnRpbGUgLm1haW4tdGV4dCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAyMHB4IDBweCAwcHggNXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSB7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzliYTZhNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUge1xuICAgIG1hcmdpbjogaW5oZXJpdDtcbiAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgcGFkZGluZzogMnB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cud2lkZ2V0LWxpbmUgaS5mYSB7XG4gIG1pbi13aWR0aDogMTJweDtcbiAgbWluLWhlaWdodDogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdyAuZGFzaGVkIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cubGluZXMtZ3JvdXAge1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggI2U2ZWRlZTtcbn1cbi52ZXJ0aWNhbC1zY3JvbGwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uaG9yaXpvbnRhbC1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG4udG9vbHRpcC5pbXBhYy13aWRnZXRzLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIubmctYmluZGluZyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzI1Mjg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50b29sdGlwLmltcGFjLXdpZGdldHMtdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHN0cm9uZyB7XG4gIGNvbG9yOiAjZGFlMTczO1xufVxuLnNvcnRhYmxlLXRpdGxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNvcnRhYmxlLXRpdGxlIGRpdiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogI2UwMWY3NDtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogI2UwMWY3NDtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4ucm93Lm5vLWd1dHRlcnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuW2NsYXNzXj1cImNvbC1cIl0ubm8tZ3V0dGVycyxcbltjbGFzcyo9XCIgY29sLVwiXS5uby1ndXR0ZXJzIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuQG1lZGlhIHByaW50IHtcbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgfVxuICAuYW5hbHl0aWNzIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFuYWx5dGljcyAjbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLnRpdGxlLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMjcwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5jaGFydC1jb250YWluZXIgY2FudmFzIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5yaWdodC1wYW5lbCB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciBjYW52YXMge1xuICAgIHdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDgwJSAhaW1wb3J0YW50O1xuICB9XG4gICoge1xuICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqXG4gKiAgRG8gbm90IHJlbW92ZSB0aGlzIGNvbW1lbnRzIGJlbGxvdy4gSXQncyB0aGUgbWFya2VycyB1c2VkIGJ5IGd1bHAtaW5qZWN0IHRvIGluamVjdFxuICogIGFsbCB5b3VyIGxlc3MgZmlsZXMgYXV0b21hdGljYWxseVxuICovXG4vKiBpbmplY3Q6aW1wb3J0cyAqL1xuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDI7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDZweCAxNXB4O1xuICBjb2xvcjogIzliYTZhNztcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSAuYWxlcnQtdG9nZ2xlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwgPiBsaS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcbiAgY29sb3I6ICMzNThmZGM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiAjYzRjYWNhO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgLmZhLmZhLXRvZ2dsZS1vbixcbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IC5mYS5mYS10b2dnbGUtb2ZmIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsLnJlY2lwaWVudHMtbGlzdCB7XG4gIGhlaWdodDogNzVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzRjYWNhO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwucmVjaXBpZW50cy1saXN0IGxpIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgaW5wdXQucmVjaXBpZW50LXNlYXJjaCB7XG4gIGNvbG9yOiBibGFjaztcbiAgd2lkdGg6IDEwMCU7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bC5hdmFpbGFibGUge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIHtcbiAgcGFkZGluZy10b3A6IDUwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3Mge1xuICAgIHBhZGRpbmctdG9wOiAxNTBweDtcbiAgfVxufVxuLmFuYWx5dGljcy5wZGYtbW9kZSB7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xufVxuLmFuYWx5dGljcy5zaG93LWRoYiB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzLmhpZGUtZGhiIHtcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1oZWFkaW5nIGltZyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIG1heC1oZWlnaHQ6IDE1MHB4O1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLWhlYWRpbmcgaW1nLnBkZi1tb2RlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLWhlYWRpbmcgLmNhcHRpb24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbjogNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IGgzIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzIzMzg0NTtcbn1cbi5hbmFseXRpY3MgI3N1Yi1tZW51IC5mYS5mYS10aW1lcyB7XG4gIG1hcmdpbjogNnB4O1xuICBjb2xvcjogIzNkNjE3ODtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMzODQ1O1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDBweCA0NXB4IDEwcHggNDVweDtcbiAgbWFyZ2luOiAxMHB4IC00NXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIENocm9tZS9TYWZhcmkgKi9cbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogRmlyZWZveCAqL1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIElFMTArICovXG4gIC8qIFJ1bGVzIGJlbG93IG5vdCBpbXBsZW1lbnRlZCBpbiBicm93c2VycyB5ZXQgKi9cbiAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciB7XG4gICAgcGFkZGluZzogMCAxNXB4IDEwcHggMTVweDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUge1xuICBwYWRkaW5nOiAxNXB4IDBweDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMyZDQ4NTk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIHAuaW5zdHJ1Y3Rpb24ge1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgcC5pbnN0cnVjdGlvbiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgLndpZGdldC1hZGRlZC5iYWRnZSB7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgLmZhLmNsb3NlLXNlbGVjdG9yIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgcGFkZGluZzogNnB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSAuZmEuY2xvc2Utc2VsZWN0b3I6aG92ZXIge1xuICBjb2xvcjogIzk5OTk5OTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudG9wLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMTVweCAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24taGVhZGVyIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgaGVpZ2h0OiAyMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyBwIHtcbiAgcGFkZGluZzogNXB4O1xuICBtYXJnaW46IDBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzIHA6aG92ZXIsXG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXMgcC5zZWxlY3RlZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjg0MDRmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZDQ4NTk7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IFtjbGFzcyo9J2NvbC0nXTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IDNweCAxMnB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyAubGluZS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMzAzYjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgLmxpbmUtaXRlbS5zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IC0ycHggMnB4IDEwcHggLTRweCBibGFjaztcbiAgYm94LXNoYWRvdzogLTJweCAycHggMTBweCAtNHB4IGJsYWNrO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gLmFycm93LWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzNweDtcbiAgcmlnaHQ6IC0xMXB4O1xuICB6LWluZGV4OiAxO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gLmFycm93LWljb24gLnNxdWFyZSB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMHB4O1xuICByaWdodDogMTdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uIC5hcnJvdy1pY29uIGkuZmEuZmEtY2FyZXQtcmlnaHQge1xuICBmb250LXNpemU6IDUycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMS41cHg7XG4gIHJpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZTMwM2I7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1oZWFkZXIge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyB7XG4gIHBhZGRpbmc6IDNweCAwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzIC5mYS5mYS1wbHVzLWNpcmNsZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBoZWlnaHQ6IDAlO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtIHtcbiAgcGFkZGluZzogMCAxM3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXg6IDAgMzEuMzMlO1xuICBtYXJnaW46IDAgMSU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMjMzODQ1O1xuICBtaW4taGVpZ2h0OiAwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCA+IC5ncmlkLWl0ZW0ge1xuICAgIGZsZXg6IDAgMTAwJTtcbiAgfVxufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiAubGluZS1pdGVtcy1ncmlkID4gLmdyaWQtaXRlbSBwLmxpbmUtaXRlbSB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuYm90dG9tIHtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgb3BhY2l0eTogMC43O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20gPiAuc3VnZ2VzdGlvbiBhOmhvdmVyIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsID4gZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCA+IGRpdiA+ICoge1xuICBtYXJnaW46IDBweCAzcHg7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwgc2VsZWN0IHtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmctdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMTUwcHg7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciBpbWcuYmcge1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIC5pbXBhYy1pbmZvLW1lc3NhZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzICNuby13aWRnZXRzLWNvbnRhaW5lciAuaW1wYWMtaW5mby1tZXNzYWdlIC5pbmZvLXRleHQge1xuICBmb250LXNpemU6IDI1cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG1pbi1oZWlnaHQ6IDExNXB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjMsIDM4LCA0NSwgMC43KTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldHMtc2VjdGlvbiAjd2lkZ2V0cy1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiA3MDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldHMtc2VjdGlvbiAucGxhY2VIb2xkZXJCb3gge1xuICBtYXJnaW46IDEycHg7XG4gIGhlaWdodDogMjY3cHg7XG4gIHdpZHRoOiAzMDBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCAjYWJjNGM2O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmFuYWx5dGljcy5sb2FkLWZhaWxlZCBwIHtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuLmFuYWx5dGljcy5sb2FkLWZhaWxlZCAuc2Vjb25kLW1zZyBwIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi50b29sdGlwLmltcGFjLXdpZGdldC1zZWxlY3Rvci10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGhiLWNyZWF0ZS1tb2RhbCAuZGFzaGJvYXJkLWZvcm0gLmNvbC1zbS0yLmNvbnRyb2wtbGFiZWwge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IGlucHV0LFxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IHRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSB0ZXh0YXJlYSB7XG4gIGhlaWdodDogMTUwcHg7XG59XG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgLnRoYW5rcy1tZXNzYWdlIHtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4ubW9kYWwtZm9vdGVyIC5sb2FkZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FiYzRjNjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXItcm93IHtcbiAgbWFyZ2luLXRvcDogNTRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXItcm93LnBkZi1tb2RlIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciB7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmJ0biB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLnRpdGxlLWNvbnRhaW5lciBoMSB7XG4gIG1hcmdpbjogMHB4O1xuICBjb2xvcjogYmxhY2s7XG4gIGN1cnNvcjogYXV0bztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGU6aG92ZXIge1xuICBjb2xvcjogIzczNGRlYjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIGkuZmEuZmEtcGVuY2lsIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXRpdGxlIGkuZmEuZmEtcGVuY2lsOmhvdmVyIHtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3Qge1xuICBtYXJnaW46IDVweCAwcHggMTBweCAzMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzk3N2JmMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5NzdiZjA7XG4gIHdpZHRoOiAzMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZWRlZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24ge1xuICBjb2xvcjogIzE3MjYyZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbi5jcmVhdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xuICBjb2xvcjogd2hpdGU7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbi5jcmVhdGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24gaS5mYS5mYS1wZW5jaWwge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDE1JTtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24gaS5mYS5mYS1wZW5jaWw6aG92ZXIge1xuICBjb2xvcjogIzczNGRlYjtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uIHNwYW4ubmFtZSB7XG4gIHdpZHRoOiA4NSU7XG4gIGhlaWdodDogMzBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuY2hhbmdlLW5hbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzBweDtcbiAgbGVmdDogMjBweDtcbiAgd2lkdGg6IDYwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MjYyZDtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDI1cHggNHB4IGJsYWNrO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggNHB4IGJsYWNrO1xuICB6LWluZGV4OiA1MDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmNoYW5nZS1uYW1lIC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDI1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhdGEtc291cmNlLWxhYmVsIHtcbiAgY29sb3I6ICMxNzI2MmQ7XG4gIHBhZGRpbmctbGVmdDogM3B4O1xuICBtYXJnaW46IDBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmxvYWRlci1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5sb2FkZXItY29udGFpbmVyIC5sb2FkaW5nLXNwaW5uZXIge1xuICBjb2xvcjogIzY3QkJFOTtcbiAgZm9udC1zaXplOiA0MHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaTpsYXN0LWNoaWxkID4gYSxcbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkID4gYSB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaTpsYXN0LWNoaWxkID4gYSB0YWItaGVhZGluZyBhLFxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpOmxhc3QtY2hpbGQgPiBhIHRhYi1oZWFkaW5nIGEge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGkgPiBhIHtcbiAgcGFkZGluZzogMTBweCA4cHggMTBweCAxNXB4O1xuICBtYXJnaW46IDAgMnB4IDAgMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYmM0YzY7XG4gIGNvbG9yOiBibGFjaztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpID4gYSB7XG4gIG1pbi13aWR0aDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGk6bGFzdC1jaGlsZCB0YWItaGVhZGluZyBhIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIHRhYi1oZWFkaW5nIGEuY2xvc2UtbGluayB7XG4gIGJvcmRlci1ib3R0b206IDBweCBzb2xpZDtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtOXB4O1xuICByaWdodDogMXB4O1xuICBjb2xvcjogYmxhY2s7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUgaS5mYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIgLnRlbXBsYXRlcy10b2dnbGUgaS5mYS5mYS10b2dnbGUtb24ge1xuICBjb2xvcjogIzk3N2JmMDtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMXB4IDBweCAjY2NjO1xuICBoZWlnaHQ6IDEzMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzIC50ZW1wbGF0ZSB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZWM7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMgLnRlbXBsYXRlOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDk2LCAyMzIsIDExOSwgMC42Mik7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMgLnRlbXBsYXRlLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyOSwgMTk3LCA1NywgMC42Mik7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgbWluLWhlaWdodDogOTVweDtcbiAgbWF4LWhlaWdodDogOTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogMTBweCAwIDEwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkudHJpZ2dlcmVkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIHtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAudG9wLWxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAua3BpLXRleHQge1xuICBjb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS1pY29uIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC5rcGktaWNvbiAuZmEtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwY1wiO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuZWRpdGluZyB7XG4gIG1pbi1oZWlnaHQ6IDE4NXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGk6aG92ZXIge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5zdGF0aWMgLmtwaS12YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAudG9wLWxpbmUge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IG1vdmU7XG4gIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDdweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAudG9wLWxpbmUudHJpZ2dlcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA5MHB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1jb250ZW50LmVkaXRpbmcge1xuICBtaW4taGVpZ2h0OiAxODBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgcGFkZGluZzogMTBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM4MHB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyB7XG4gICAgcGFkZGluZzogMTBweCAzcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuZW1waGFzaXMge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuZW1waGFzaXMgLnJlYWwtdmFsdWUge1xuICBjb2xvcjogIzY3Njc2Nztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCB7XG4gIHBhZGRpbmc6IDdweCAwO1xuICBjb2xvcjogZ3JleTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlLWluO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCA+IHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQudHJpZ2dlcmVkIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCAuY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQgLmNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuICAuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0IC5lbXBoYXNpcyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS1pY29uIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGNvbG9yOiBncmV5O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS1pY29uLnRyaWdnZXJlZCB7XG4gIGNvbG9yOiBibGFjaztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDA7XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBhIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktbmFtZSBoNiB7XG4gIG1hcmdpbjogMCAwIDVweCAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5yZWFsLXZhbHVlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmFsZXJ0LWNhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYmFja2dyb3VuZDogI2ZmOTk5OTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHBhZGRpbmc6IDJweDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXdhdGNoYWJsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAua3BpLXRhcmdldC11bml0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXdhdGNoYWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAjOGQ4ZDhkO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXVuaXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNnB4O1xuICByaWdodDogMDtcbiAgY29sb3I6ICM5YTlhOWE7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnBhcmFtLW5hbWUge1xuICBmb250LXNpemU6IDg1JTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB7XG4gIC8qIEZsYXR0ZW4gZGVyIEJvb3RzdHJhcCAqL1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC53ZWxsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC53ZWxsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5uYXZiYXItaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLm5hdmJhci1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAucG9wb3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAucG9wb3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYnRuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5idG4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnRvb2x0aXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRvb2x0aXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBwcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgcHJlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5wcm9ncmVzcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAucHJvZ3Jlc3MsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLm1vZGFsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5tb2RhbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYWRkLW9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5hZGQtb24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmFsZXJ0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5hbGVydCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAudGFibGUtYm9yZGVyZWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRhYmxlLWJvcmRlcmVkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5uYXYgPiAuYWN0aXZlID4gYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAubmF2ID4gLmFjdGl2ZSA+IGEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmRyb3Bkb3duLW1lbnUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmRyb3Bkb3duLW1lbnUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnRvb2x0aXAtaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLnRvb2x0aXAtaW5uZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmJhZGdlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5iYWRnZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAubGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbWctcG9sYXJvaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltZy1wb2xhcm9pZCB7XG4gIC1tb3otYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYm9keSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBib2R5LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgdGV4dGFyZWEge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJvZHk6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJvZHk6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3Q6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHRleHRhcmVhOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYm9keTo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJvZHk6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dDo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWE6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYTo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBhOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgZmllbGRzZXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgZmllbGRzZXQge1xuICBtYXJnaW46IDAgMCAxLjc1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDEuMzEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMTI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1pbmxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSA+IC5pbS1mb3JtLWdyb3VwLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWlubGluZSA+IC5pbS1mb3JtLWdyb3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLWxlZnQ6IDAuMTc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMTc1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWlubGluZSA+IC5idG4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0taW5saW5lID4gLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dCB7XG4gIGhlaWdodDogMi4zNzVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgcGFkZGluZzogMC4xNTYyNXJlbSAwLjE1NjI1cmVtIDAuMDc4MTI1cmVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC4zMTI1cmVtO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwLjE1NjI1cmVtO1xuICB6LWluZGV4OiAxO1xuICBjb2xvcjogI2IzYjNiMztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCAuaW0tYmFyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDAuMDc4MTI1cmVtIHNvbGlkICM5OTk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCAuaW0tYmFyOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiAwLjE1NjI1cmVtO1xuICB3aWR0aDogMDtcbiAgbGVmdDogNTAlO1xuICBib3R0b206IC0wLjA3ODEyNXJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuMjhzIGVhc2UsIHdpZHRoIDAuMjhzIGVhc2U7XG4gIHotaW5kZXg6IDI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMC4xNTYyNXJlbSAwLjE1NjI1cmVtIDAuMDc4MTI1cmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGJvcmRlci13aWR0aDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDEuOTtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2U7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB+IC5pbS1iYXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0gfiAuaW0tYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUge1xuICBjb2xvcjogIzMzMztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3QgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3QgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjODA4MDgwO1xuICB0b3A6IC0xLjI1cmVtO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBsYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1yYWRpbyBsYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1yYWRpbyBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICMzMzM7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tcmFkaW8gaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tcmFkaW8gaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgb3BhY2l0eTogMC4wMDAwMDAwMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8ge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyAuaW0taGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0wLjMxMjVyZW07XG4gIGxlZnQ6IC0wLjMxMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDAuMzEyNXJlbTtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjhzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1OGZkYztcbiAgYm9yZGVyLWNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyBsYWJlbDpob3ZlciAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IDEuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzk5OTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIHotaW5kZXg6IDA7XG4gIGJvcmRlcjogMC4xNTYyNXJlbSBzb2xpZCBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDAuMDc4MTI1cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1OGZkYztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICBib3JkZXItcmFkaXVzOiAwLjMxMjVyZW07XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjhzIGVhc2UsIGhlaWdodCAwcyBsaW5lYXIgMC4yOHM7XG4gIG9wYWNpdHk6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgdG9wOiAwLjgxMjVyZW07XG4gIGxlZnQ6IDAuNDc1cmVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4wNzgxMjVyZW0gI2ZmZjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdG9wOiAwLjM3NXJlbTtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggbGFiZWw6aG92ZXIgLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4yOHMgZWFzZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBoZWlnaHQ6IDAuNjI1cmVtO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjhzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gKyAuaW0tcmFkaW8sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94ICsgLmltLWNoZWNrYm94LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCArIC5pbS1jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1tZXNzYWdlcyB7XG4gIGZvbnQtc2l6ZTogMS4wNDE2NjY2N3JlbTtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yIC5sZWdlbmQubGVnZW5kLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IgLmxlZ2VuZC5sZWdlbmQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogI2UwMWY3NDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IgLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IgLmltLWJhcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2UwMWY3NDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjNjBhN2U0O1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIGNvbG9yOiAjMzMzO1xuICBtYXJnaW46IDAuN3JlbSAwO1xuICBwYWRkaW5nOiAwLjQzNzVyZW0gMS43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uIHNwYW4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b246aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogIzI1ODNkMztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmFjdGl2ZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWJ1dHRvbiBhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b24gYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiA0NnB4O1xuICBmbGV4OiAwIDAgNTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDRweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWI6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWI6YWN0aXZlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWI6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXByaW1hcnksXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXByaW1hcnk6aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5OmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICMyNTgzZDM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYi5pbS13YXJuLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIuaW0td2FybiB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYi5pbS13YXJuOmhvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIuaW0td2Fybjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjY2ExYzY4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgYnV0dG9uLmtwaS1hbGVydHMuaW0tZmFiLmltLXByaW1hcnkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEycHg7XG4gIHJpZ2h0OiAxNXB4O1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSBidXR0b24ua3BpLWFsZXJ0cy5pbS1mYWIuaW0tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91ZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktcmVtb3ZlLmltLWZhYi5pbS13YXJuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMnB4O1xuICByaWdodDogLTExcHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZDogIzRjNDc0OTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktcmVtb3ZlLmltLWZhYi5pbS13YXJuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2NhMWM2ODtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZGF0YS1sb2FkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogOTVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIC5rcGkge1xuICBtaW4taGVpZ2h0OiA4MHB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgLyogRmxhdHRlbiBkZXIgQm9vdHN0cmFwICovXG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC53ZWxsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5uYXZiYXItaW5uZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLnBvcG92ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmJ0bixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAudG9vbHRpcCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3QsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgdGV4dGFyZWEsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgcHJlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5wcm9ncmVzcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAubW9kYWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmFkZC1vbixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYWxlcnQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLnRhYmxlLWJvcmRlcmVkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5uYXYgPiAuYWN0aXZlID4gYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuZHJvcGRvd24tbWVudSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAudG9vbHRpcC1pbm5lcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYmFkZ2UsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbWctcG9sYXJvaWQge1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJvZHksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHRleHRhcmVhIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBib2R5OjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0OjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB0ZXh0YXJlYTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYm9keTo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgc2VsZWN0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgdGV4dGFyZWE6OmJlZm9yZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgZmllbGRzZXQge1xuICBtYXJnaW46IDAgMCAxLjc1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tcmFkaW8sXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDEuMzEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMTI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWlubGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0taW5saW5lID4gLmltLWZvcm0tZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMC4xNzVyZW07XG4gIG1hcmdpbi1yaWdodDogMC4xNzVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0taW5saW5lID4gLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dCB7XG4gIGhlaWdodDogMi4zNzVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjMxMjVyZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDAuMTU2MjVyZW07XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiAjYjNiM2IzO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDAuMDc4MTI1cmVtIHNvbGlkICM5OTk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDAuMTU2MjVyZW07XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogLTAuMDc4MTI1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICMzNThmZGM7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4yOHMgZWFzZSwgd2lkdGggMC4yOHMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMS45O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIH4gLmltLWJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjODA4MDgwO1xuICB0b3A6IC0xLjI1cmVtO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWJhcjo6YmVmb3JlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLXJhZGlvIGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLXJhZGlvIGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG9wYWNpdHk6IDAuMDAwMDAwMDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8ge1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyAuaW0taGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0wLjMxMjVyZW07XG4gIGxlZnQ6IC0wLjMxMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDAuMzEyNXJlbTtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjhzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBib3JkZXItY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgei1pbmRleDogMDtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMC4wNzgxMjVyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbiAgY29udGVudDogJyc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yOHMgZWFzZSwgaGVpZ2h0IDBzIGxpbmVhciAwLjI4cztcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgdG9wOiAwLjgxMjVyZW07XG4gIGxlZnQ6IDAuNDc1cmVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4wNzgxMjVyZW0gI2ZmZjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0b3A6IDAuMzc1cmVtO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBoZWlnaHQ6IDAuNjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMjhzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggKyAuaW0tY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1tZXNzYWdlcyB7XG4gIGZvbnQtc2l6ZTogMS4wNDE2NjY2N3JlbTtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKTtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yIC5sZWdlbmQubGVnZW5kLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbC5pbS1jb250cm9sLWxhYmVsIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLXJhZGlvIC5pbS1oZWxwZXIge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICM2MGE3ZTQ7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIG1hcmdpbjogMC43cmVtIDA7XG4gIHBhZGRpbmc6IDAuNDM3NXJlbSAxLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b24gc3BhbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjMjU4M2QzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tYnV0dG9uIGE6Zm9jdXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHdpZHRoOiA0NnB4O1xuICBmbGV4OiAwIDAgNTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDRweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5pbS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmltLXByaW1hcnk6aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogIzI1ODNkMztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmltLXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuaW0td2Fybjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjY2ExYzY4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGEge1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcy5pbS1wcmltYXJ5LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNGM0NzQ5O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMuaW0tcHJpbWFyeS5kaXNhYmxlZCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcy5pbS1wcmltYXJ5LmRpc2FibGVkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudC5pbS1wcmltYXJ5LmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogI2IyYjVjMTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLmltLXByaW1hcnkuZGlzYWJsZWQgYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmVkaXQta3Bpcy5pbS1wcmltYXJ5LmRpc2FibGVkIGEsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnkuZGlzYWJsZWQgYSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcy5pbS1wcmltYXJ5OmhvdmVyOm5vdCguZGlzYWJsZWQpLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnk6aG92ZXI6bm90KC5kaXNhYmxlZCksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnk6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICB0b3A6IC0xNXB4O1xuICByaWdodDogLTE1cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gICAgdG9wOiAtMzBweDtcbiAgICByaWdodDogLTE0cHg7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3BpcyB7XG4gIHRvcDogMzBweDtcbiAgcmlnaHQ6IC0xNXB4O1xuICB6LWluZGV4OiAxMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzIHtcbiAgICB0b3A6IC0zMHB4O1xuICAgIHJpZ2h0OiAzM3B4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgdG9wOiA3NXB4O1xuICByaWdodDogLTE1cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmVkaXRpbmcge1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmVkaXRpbmc6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiAjNzZiM2U3O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgICB0b3A6IC0zMHB4O1xuICAgIHJpZ2h0OiA3OXB4O1xuICAgIGJvdHRvbTogMDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50LWJ1dHRvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQge1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcyNXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCB7XG4gICAgcGFkZGluZzogMCA2MHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gIH1cbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuaW1wYWMta3BpIHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLmltcGFjLWtwaSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuaW1wYWMta3BpIC5rcGkuYWRkIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC50aXRsZSAudGV4dC1jZW50ZXIge1xuICBsaW5lLWhlaWdodDogMztcbiAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICBmb250LXNpemU6IGxhcmdlcjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAudGl0bGUgLmJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgbGVmdDogLTEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG4gIGNvbG9yOiAjNGY1OTU5O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAtMXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC50aXRsZSAubm8ta3BpLXRlbXBsYXRlcyB7XG4gIGNvbG9yOiAjYWZhZGI1O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5hZGQtYmFyIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAua3BpLWxvYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMTVweDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA0MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5kYXRlcy1waWNrZXItY29udGFpbmVyIC5zZHAtZnJvbS1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciAuc2RwLXRvLWxhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzLnBkZi1tb2RlIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuLndpZGdldC1pdGVtIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcbiAgcGFkZGluZzogMTJweDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMnB4IDBweDtcbn1cbi53aWRnZXQtaXRlbSAudG9wLWxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMHB4IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2M4ZDdkOTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgbWluLWhlaWdodDogNDFweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB6LWluZGV4OiA0O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwcHggNXB4IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2M4ZDdkOTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTRweDtcbiAgbWluLWhlaWdodDogMjUwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLndpZGdldC1pdGVtIC5jb250ZW50IHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG4gIC53aWRnZXQtaXRlbSAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDI3MHB4O1xuICAgIG1heC1oZWlnaHQ6IDEyNXB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIHBhZGRpbmc6IDNweCAxM3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEycHg7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYThhYmFiO1xuICBjb2xvcjogd2hpdGU7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQ6aG92ZXIge1xuICBib3JkZXI6IHNvbGlkIDFweCAjOGU5MjkyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThhYmFiO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IGg0IHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xuICBib3JkZXI6IHNvbGlkIDFweCAjZGZlMmUyO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5wYXJ0IGg1IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMHB4IDE1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQgbGFiZWwge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5wYXJ0IHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBtYXJnaW46IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNzI3MjhiO1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50LmFjY2Vzc2libGUge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5jb250ZW50LXRlbXBsYXRlLXdyYXBwZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IGluaGVyaXQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmZhLXBsdXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDdcIjtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBub25lO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBpbmhlcml0O1xuICB3aWR0aDogMTAwJTtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYudGl0bGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyKjEycHggKTtcbiAgei1pbmRleDogMztcbiAgcGFkZGluZy1yaWdodDogMXB4O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZi50aXRsZSBoNiB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkM5Mjg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZi50aWNrIGkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMzUlO1xuICBsZWZ0OiA0NiU7XG4gIGZvbnQtc2l6ZTogMTAwcHg7XG4gIG9wYWNpdHk6IC41O1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogYmxhY2s7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmIC53aWRnZXQtaG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDlweDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gIHotaW5kZXg6IDE7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmIC53aWRnZXQtaG92ZXI6aG92ZXIge1xuICBvcGFjaXR5OiAuNTtcbiAgYmFja2dyb3VuZDogI0NDQ0ZEMDtcbn1cbi53aWRnZXQtaXRlbSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAub3ZlcmxheSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEyNXB4O1xuICBsZWZ0OiA1MCU7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDg1JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjhmOTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xuICB6LWluZGV4OiA0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIC50aXRsZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLnRpdGxlIHtcbiAgcGFkZGluZzogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLmJ0bixcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLmJ0biB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLmV4YW1wbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIHBhZGRpbmc6IDNweDtcbiAgei1pbmRleDogNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSBhLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgd2lkdGg6IDkwJTtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggc2lsdmVyO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSBwIHtcbiAgbWFyZ2luOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5vdmVybGF5LFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAudGl0bGUsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5idG4sXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgY29tbW9uLWRlbGV0ZS13aWRnZXQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIGNvbW1vbi1kZWxldGUtd2lkZ2V0IC5vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNHB4KTtcbiAgdG9wOiAycHg7XG4gIGxlZnQ6IDJweDtcbiAgb3BhY2l0eTogMC42O1xuICB6LWluZGV4OiA1O1xufVxuLmFuYWx5dGljcyBjb21tb24tZGVsZXRlLXdpZGdldCAubWVzc2FnZSB7XG4gIHotaW5kZXg6IDY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWluLWhlaWdodDogMTYwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB0b3A6IDQ1cHg7XG4gIGxlZnQ6IDclO1xuICB3aWR0aDogODYlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGY5O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG59XG4uYW5hbHl0aWNzIGNvbW1vbi1kZWxldGUtd2lkZ2V0IC5tZXNzYWdlIC50aXRsZSB7XG4gIHBhZGRpbmc6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uYW5hbHl0aWNzIGNvbW1vbi1kZWxldGUtd2lkZ2V0IC5tZXNzYWdlIC5sb2FkZXIgaS5mYS5mYS1zcGlubmVyIHtcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuLmFuYWx5dGljcyBjb21tb24tZGVsZXRlLXdpZGdldCAubWVzc2FnZSBwIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIGNvbW1vbi1kZWxldGUtd2lkZ2V0IC5tZXNzYWdlIGJ1dHRvbi5idG4ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAub3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgei1pbmRleDogNTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIHtcbiAgei1pbmRleDogNjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHRvcDogNDVweDtcbiAgbGVmdDogNyU7XG4gIHdpZHRoOiA4NiU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY4Zjk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC50aXRsZSB7XG4gIHBhZGRpbmc6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSB7XG4gIHRvcDogMzBweDtcbiAgbGVmdDogMzUlO1xuICB3aWR0aDogMzAlO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0ge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtID4gbGFiZWwsXG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuY29taW5nLXNvb24gPiBsYWJlbCB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSBpbnB1dC5mb3JtLWNvbnRyb2wge1xuICB3aWR0aDogOTAlO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGhlaWdodDogMjhweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmJ0bi1ncm91cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtaW4taGVpZ2h0OiAyMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmJ0bi1ncm91cCBzZWxlY3Qge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGhlaWdodDogMjhweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmNvbWluZy1zb29uIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXI6IHNvbGlkIDFweCBzaWx2ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogIzg4ODg4ODtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmNvbWluZy1zb29uIC5iYWRnZSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODg4ODg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuY29taW5nLXNvb24gLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmNvbWluZy1zb29uIC5idG4tZ3JvdXAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmNvbWluZy1zb29uIC5idG4tZ3JvdXAgc2VsZWN0IHtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gLmNvbWluZy1zb29uIC5idG4tZ3JvdXAgLmJ0biB7XG4gIGZsb2F0OiBub25lO1xuICBib3JkZXItY29sb3I6ICM4ODg4ODg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudG9wIHtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgYS5iYWNrLWxpbmsge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3AgLnBhZ2luYXRpb24ge1xuICBtYXJnaW46IDBweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogY2FsYyg1NjVweCAtIDYwcHgpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIGlucHV0LmJ0bi5idG4teHMge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgYnV0dG9uLmJ0bi5yZXNldC1kYXRlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIC5mYS5mYS10aW1lcyB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdHIudG90YWwuaW52b2ljZXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzFkMWIxO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgdHIudG90YWwuYmlsbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJhZWI5O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLmN1cnJlbmN5IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3MuY3VycmVuY3kgc2VsZWN0IHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc2hvdy1zdGF0dXMge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgY29sb3I6ICM5YmE2YTc7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zaG93LXN0YXR1czpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zaG93LXN0YXR1cyAuZmEuZmEtaW5mbyB7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA1cHggN3B4IDVweCAwcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdGF0dXMtYnRuIGkge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdGF0dXMtYnRuIGkuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUge1xuICBjb2xvcjogI2ZmNzMwMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN0YXR1cy1idG4gaS5mYS1jaGVjayB7XG4gIGNvbG9yOiAjZDFlNTVjO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciB7XG4gIG1heC13aWR0aDogNTUwcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5jb25uZWN0b3Ige1xuICBwYWRkaW5nOiA0cHggMTNweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLmNvbm5lY3Rvci5hZGQtc2VwZXJhdG9yIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5wb3BvdmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1mb290ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgcGFkZGluZzogNHB4IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5wb3BvdmVyLWZvb3RlciBwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLnBvcG92ZXItZm9vdGVyLnJlbW92ZS1zZXBlcmF0b3Ige1xuICBib3JkZXI6IDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5iYWRnZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN1Y2Nlc3MgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZTU1Yztcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBlbmRpbmcgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzMwMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnJ1bm5pbmcgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzMwMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLmVycm9yIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5mYWlsZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnVua25vd24gLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLmRpc2Nvbm5lY3RlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IDBweCAycHggM3B4IDBweCAjY2NjO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdCB7XG4gIG1heC1oZWlnaHQ6IDI4MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0gLmJhZGdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnN1Y2Nlc3MgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZTU1Yztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5wZW5kaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucnVubmluZyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3MzAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmVycm9yIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uZmFpbGVkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0udW5rbm93biAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmRpc2Nvbm5lY3RlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtIC5tZXNzYWdlIHtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbi1sZWZ0OiAzMXB4O1xuICBtYXJnaW4tdG9wOiA5cHg7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0gLm1lc3NhZ2UgcCB7XG4gIG1hcmdpbjogMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5zdWNjZXNzIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNTUsIDU1LCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5wZW5kaW5nIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDExOCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ucnVubmluZyAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmVycm9yIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmZhaWxlZCAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS51bmtub3duIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLmRpc2Nvbm5lY3RlZCAubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS53aXRoLW1lc3NhZ2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ud2l0aC1tZXNzYWdlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlcjogMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5mYS5lcnJvciB7XG4gIGNvbG9yOiAjRkYwMDAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAuZmEud2FybiB7XG4gIGNvbG9yOiAjZmY3MzAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAuZmEuc3VjY2VzcyB7XG4gIGNvbG9yOiAjNDdmZjAwO1xufVxuLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIHdpZHRoOiAxNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY3VycmVuY3ktY29udmVyc2lvbnMucG9wb3ZlciAucG9wb3Zlci10aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCB7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMCwgMTMyLCAyMjgsIDAuMTYpO1xufVxuY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwgPiAuYXR0YWNoLXBhbmVsLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCA+IC5hdHRhY2gtcGFuZWwtdGV4dCA+ICoge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAucGFuZWwtdGV4dC1sYWJlbCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzVCNjY2NztcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwgLnBhbmVsLXRleHQtaW5wdXQge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHdoaXRlO1xuICBwYWRkaW5nOiAzcHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAucGFuZWwtdGV4dC1jdXJyZW5jeSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzAwMDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYWN0aW9uLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYWN0aW9uLWJ1dHRvbnMgYnV0dG9uIHtcbiAgcGFkZGluZzogM3B4IDZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuY2hhcnQtdGhyZXNob2xkIC5hY3Rpb24tYnV0dG9ucyBidXR0b24ubG9hZGluZyB7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMjJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAudGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNGY1OTU5O1xuICBjdXJzb3I6IHRleHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBsaW5lLWhlaWdodDogMS45O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC5lZGl0YWJsZS13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMge1xuICBtaW4td2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1pbnB1dCB7XG4gIGhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNjVweCk7XG4gIHBhZGRpbmc6IDBweCAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1idXR0b25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1idXR0b25zIGJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggNXB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNXB4O1xuICBsZWZ0OiAxNXB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogZG90dGVkIDFweCAjQjdDRENFO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LWZhbWlseTogXCJMYXRvIFNlbWlib2xkXCIsIFwiTGF0b1wiO1xuICB6LWluZGV4OiA0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWw6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgY29sb3I6ICMxRTMwM0I7XG4gIHBhZGRpbmc6IDhweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwiTGF0byBNZWRpdW1cIiwgXCJMYXRvXCI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEge1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIgLmZhLWluZm8tY2lyY2xlIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIgLmZhLXRpbWVzLWNpcmNsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogNXB4O1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICBmbGV4OiAxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2FiYzRjNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWNvbnRlbnQgLnJvdzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLmtleSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IC5rZXkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93IC52YWx1ZSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG4uYW5hbHl0aWNzIC50aW1lLXBlcmlvZC1pbmZvIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI0FCQzRDNjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjYzRjYWNhO1xuICBwYWRkaW5nOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICB3aWR0aDogMTdweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b246YWN0aXZlLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1pbmZvIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1pbmZvOmhvdmVyIHtcbiAgY29sb3I6ICNGRkM5Mjg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1yZWZyZXNoIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1yZWZyZXNoOmhvdmVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1lZGl0IHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZWRpdDpob3Zlcixcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWVkaXQuZWRpdC1tb2RlIHtcbiAgY29sb3I6ICNjZmQ4NDk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1jbG9zZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6ICNlZDFlNzk7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hY2NvdW50aW5nLWJlaGF2aW91ciAuYnRuLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYTlmNTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmFjY291bnRpbmctYmVoYXZpb3VyIC5idG4uYnRuLXByaW1hcnkuZm9jdXMsXG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hY2NvdW50aW5nLWJlaGF2aW91ciAuYnRuLmJ0bi1wcmltYXJ5LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Muc2VsZWN0LWFjY291bnQge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkge1xuICBwYWRkaW5nOiA4cHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93IHtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIC5hdHRhY2gta3BpLWZvcm0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93LmtwaS1kZXNjcmlwdGlvbiB7XG4gIHBhZGRpbmc6IDEwcHggMnB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgZm9ybSAucm93LmtwaS1kZXNjcmlwdGlvbiBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSBmb3JtLmF0dGFjaC1rcGktZm9ybSBpbnB1dC5hdHRhY2gtdGFyZ2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGhlaWdodDogaW5oZXJpdDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIC5lcnJvci1tZXNzYWdlcyB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICB3aWR0aDogMTIwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoZWQta3BpcyB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYXR0YWNoZWQta3BpLW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogNzUlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyB7XG4gIHBhZGRpbmctdG9wOiAycHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuYWxlcnRzLWNvbmZpZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGNvbG9yOiAjMzU4ZmRjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5hbGVydHMtY29uZmlnOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmVkaXQtYXR0YWNoZWQta3BpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmVkaXQtYXR0YWNoZWQta3BpIGkge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB3aWR0aDogMjFweDtcbiAgY29sb3I6ICMzNThmZGM7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDNweCA1cHggNXB4IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5lZGl0LWF0dGFjaGVkLWtwaSBpOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLnJlbW92ZS1hdHRhY2hlZC1rcGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAucmVtb3ZlLWF0dGFjaGVkLWtwaSBpIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDIxcHg7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAucmVtb3ZlLWF0dGFjaGVkLWtwaSBpOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmNoYXJ0LWZpbHRlcnMgLnJvdyB7XG4gIG1hcmdpbjogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmNoYXJ0LWZpbHRlcnMgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuY2hhcnQtZmlsdGVycyBpbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGg1IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBidXR0b24uYnRuLmJ0bi1zbSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGJ1dHRvbi5idG4uYnRuLXNtLmRhdGUtYnV0dG9uIHtcbiAgbWFyZ2luOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGJ1dHRvbi5idG4uYnRuLXNtLmJ0bi1kYW5nZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGJ1dHRvbi5idG4uYnRuLXNtLmJ0bi1pbmZvIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIC50b29sdGlwLWlubmVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGRpdiA+IHRhYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIHtcbiAgbWF4LWhlaWdodDogNzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIFtjb21tb24tdGltZS1wZXJpb2QtaW5mb10ge1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLm9wdGlvbnMge1xuICB3aWR0aDogMTUwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmU2ZTY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAub3B0aW9ucyBhIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5vcHRpb25zIGEuYWN0aXZlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xNHB4O1xuICBtYXJnaW46IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyLnJpZ2h0IHtcbiAgbGVmdDogNDZweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIubGVmdCB7XG4gIGxlZnQ6IC0zMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lciAuYXJyb3ctYm9yZGVyIHtcbiAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIgLmFycm93IHtcbiAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLWxlZnQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEycHg7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MubGltaXQtZW50cmllcyB7XG4gIGNvbG9yOiAjMUUzMDNCO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmxpbWl0LWVudHJpZXMgYS5vcHRpb24uYmFkZ2Uge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxRTMwM0I7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIC5vZmZzZXQtdmFsdWUge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgLm9mZnNldC12YWx1ZSAuZmEtdHJhc2gtbyB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyAub2Zmc2V0LXZhbHVlIC5mYS10cmFzaC1vOmhvdmVyIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgaW5wdXQge1xuICB3aWR0aDogNzUlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyBidXR0b24ge1xuICB3aWR0aDogMzBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE4cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmNGY0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9uIHtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9mZiB7XG4gIGNvbG9yOiAjOWJhNmE3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yLmNsYXNzaWMge1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3Rvci5jbGFzc2ljIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbjogMHB4IDBweCA1cHggMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzk3N2JmMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgei1pbmRleDogOTk5O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC13ZWJraXQtYm94LXNoYWRvdzogIzAwMDAwMCAwcHggM3B4IDE1cHggLTNweDtcbiAgYm94LXNoYWRvdzogIzAwMDAwMCAwcHggM3B4IDE1cHggLTNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXIgLnBhcmFtLXNlbGVjdG9yLWxhYmVsIHtcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBjb2xvcjogYmxhY2s7XG4gIGN1cnNvcjogdGV4dDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGxpbmUtaGVpZ2h0OiAxLjk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyIC5wYXJhbS1zZWxlY3Rvci1sYWJlbDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDdlMmU0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk5MmYzO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICBwYWRkaW5nOiAycHggMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMgaW5wdXQge1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogaW5oZXJpdDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHNwYW4ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLmJ0bi5idG4tZGVmYXVsdCB7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDMwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMHB4IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSAudGFncy1jb2wge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciAudGFnLWxpbmUgdGFncy1pbnB1dCAudGFncyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIHRhZ3MtaW5wdXQgLnRhZ3MgLnRhZy1pdGVtIHtcbiAgYmFja2dyb3VuZDogIzc5YTJiYjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSAuaG9zdCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlciB7XG4gIG1hcmdpbjogMHB4IDNweCAzcHggMHB4O1xuICBwYWRkaW5nOiAzcHggNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUUzMDNCO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogc29saWQgMXB4ICMxRTMwM0I7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBtb3ZlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbjogMHB4IC0zcHggMHB4IDNweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciAucGFyYW1ldGVyIC5iYWRnZSB7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG4gIGNvbG9yOiAjMUUzMDNCO1xuICBwYWRkaW5nOiAycHggNnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlci51bmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLWNvbG9yOiAjYzJjNGM0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlci51bmNoZWNrZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2Qge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2Qgc2VsZWN0IHtcbiAgaGVpZ2h0OiAyMnB4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kID4gLnJvdyB7XG4gIG1hcmdpbjogMHB4IC01cHggN3B4IC01cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCA+IC5yb3cgPiBkaXYge1xuICBwYWRkaW5nOiAwcHggNXB4O1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2QgPiAucm93IC5zdWItc2V0dGluZyB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIGkge1xuICBjb2xvcjogc2lsdmVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGggaS5yZWR1Y2Uge1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIGkuZXhwYW5kIHtcbiAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IC5wYXJhbS1zZWxlY3RvciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeSAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogOTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeSAubGVnZW5kIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkgLmxlZ2VuZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1heC1oZWlnaHQ6IDExNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkgLmxlZ2VuZCAudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI2RmZTJlMjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy12cy1saWFiaWxpdGllcyAubGVnZW5kID4gLnRpdGxlIHNwYW4ge1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2UgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDQ5MHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNkZmUyZTI7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lci5uby1zY3JvbGwge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLm5vLWRhdGEtYmxvY2sge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMTVweCAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2Uge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2Uge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5kYXRhLWNvbnRhaW5lciB7XG4gIGhlaWdodDogY2FsYyg1NjVweCAtIDUwcHgpO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAubGVmdC1wYW5lbCB7XG4gIHdpZHRoOiAxODBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogNDVweDtcbiAgbWFyZ2luOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcGFkZGluZzogM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlICNjYXNoLWJhbGFuY2UtbGVnZW5kIC5oZWFkZXIgLmdyb3VwLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlICNjYXNoLWJhbGFuY2UtbGVnZW5kIC5oZWFkZXIgLmdyb3VwLWl0ZW0gaSB7XG4gIGZvbnQtc2l6ZTogMTlweDtcbiAgcGFkZGluZzogNHB4O1xuICBtYXJnaW4tdG9wOiAxcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgI2Nhc2gtYmFsYW5jZS1sZWdlbmQgLmhlYWRlciAuZ3JvdXAtaXRlbSBzcGFuIHtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmxlZ2VuZC1pdGVtLWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5yaWdodC1wYW5lbCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxODBweCk7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAucmlnaHQtcGFuZWwgLmNhc2gtYmFsYW5jZS1jaGFydCB7XG4gIGhlaWdodDogY2FsYyg1NjVweCAtIDUwcHgpO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5kYXRlcy1waWNrZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuY2FzaC1wcm9qZWN0aW9uLWNoYXJ0IHtcbiAgaGVpZ2h0OiBjYWxjKDU2NXB4IC0gNTBweCk7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmhpZ2hjaGFydHMtbGVnZW5kLWl0ZW0gcmVjdC5oaWdoY2hhcnRzLXBvaW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuaGlnaGNoYXJ0cy1sZWdlbmQtaXRlbSBzcGFuIHtcbiAgd2lkdGg6IDExMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmhpZ2hjaGFydHMtbGVnZW5kLWl0ZW0gc3BhbiBpbWcge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA1NXB4O1xuICBoZWlnaHQ6IDI1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmRhdGVzLXBpY2tlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gdHJhbnNhY3Rpb25zLWxpc3Qge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5yb3cubGluZXMtZ3JvdXAuY2FzaCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweDtcbiAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbiAucGFyYW0tc2VsZWN0b3Ige1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jbGFzcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogOTRweDtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5AbWVkaWEgcHJpbnQge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogODAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNDBweDtcbiAgYm90dG9tOiAzMHB4O1xuICB3aWR0aDogMTYwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Qge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3RbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYTlmNTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdFtkaXNhYmxlZF06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJhOWY1O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdCBvcHRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Qgb3B0aW9uW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gYnV0dG9uLmNsb3NlIHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogMTAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5yb3cge1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogNjVweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIG1hcmdpbi1sZWZ0OiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuY29tcGFyYWJsZS1lcnJvciBoNSB7XG4gIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICBjb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbiBoMyB7XG4gIG1hcmdpbi10b3A6IDg1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24gLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IDEyNXB4O1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24ge1xuICBtYXJnaW46IDBweDtcbiAgcGFkZGluZzogMHB4O1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogNXB4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgcGFkZGluZzogM3B4IDEzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuLmJ0bi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2E4YWJhYjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQ6aG92ZXIge1xuICBib3JkZXI6IHNvbGlkIDFweCAjOGU5MjkyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThhYmFiO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgaDQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZmNmYztcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2RmZTJlMjtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IGg1IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMHB4IDE1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAucGFydCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAucGFydCBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGJvcmRlcjogc29saWQgMXB4ICNhY2IwYjE7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzcyNzI4Yjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLmFjY291bnQtY2xhc3MtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiAxMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC50aW1lLXBlcmlvZC1pbmZvIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLndpZGdldC1saW5lLmhlYWRlci5zb3J0aW5nIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlLXdlaWdodCAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogMTE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlLXdlaWdodCAubGVnZW5kIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2VzLXJldmVudWUgLmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZXMtcmV2ZW51ZSAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSBoMyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSAubGVnZW5kIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUgLnBheWFibGUge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAucm93LmxpbmVzLWdyb3VwLnByb2ZpdCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweDtcbiAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyID4gW2NsYXNzKj0nY29sLSddIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5zZXBhcmF0b3Ige1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzVCNjY2NztcbiAgd2lkdGg6IDc1JTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCAubWVtYmVyIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5tZW1iZXIgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgYnV0dG9uIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5tZW1iZXIge1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciAubGVnZW5kIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5tZW1iZXIgLnByaWNlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiAuc2VwYXJhdG9yIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWUtZGV0YWlscyAuZGV0YWlscy1jb250YWluZXIge1xuICBwYWRkaW5nOiAwcHg7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5yaWdodC1wYW5lbCAuZGV0YWlscy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5yaWdodC1wYW5lbCAubGVnZW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWUtZGV0YWlscyAudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA5cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZSAuZW1wbG95ZWUtbmFtZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIC5iYWxhbmNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZSBoMyB7XG4gIG1hcmdpbi10b3A6IDMzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtYnV0dG9uIHtcbiAgaGVpZ2h0OiAyMnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy10b29sYmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1kYXktZ3JpZCxcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1zY2hlZHVsZSAuZmMtd2lkZ2V0LWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDE0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5sZWZ0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgaDMubGVmdCB7XG4gICAgbWFyZ2luLXRvcDogNjlweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgaDMucmlnaHQge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC5wcmljZSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSAucmlnaHQtcGFuZWwgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgaDMge1xuICBtYXJnaW4tdG9wOiA2M3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyAubGVnZW5kIHtcbiAgbWFyZ2luLXRvcDogMjNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5jdXJyZW5jeSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItdGltZXNoZWV0cyAuY3VycmVuY3kge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5sZWZ0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLmxlZnQge1xuICAgIG1hcmdpbi10b3A6IDY5cHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSBoMy5yZWR1Y2VkLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLnJpZ2h0IHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5yb3cuYXN0ZXJpY2tzLWluZm8ge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAuZmEuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLnJpZ2h0LWNvbHVtbiB7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1zdW1tYXJ5IC5jaGFydC1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDQxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtc3VtbWFyeSAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMjhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1hZ2VkIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jayB7XG4gIG1hcmdpbjogNXB4O1xuICBwYWRkaW5nOiAwcHggMTBweCA1cHggMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sgZm9ybS5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyBpbnB1dCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgd2lkdGg6IDEwMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tZGF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tYnJlYWtldmVuIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgY29sb3I6ICMxZGU5YjY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4gLnRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMyYTQ0NTM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4gLmRlZmluZS10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBjb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWJyZWFrZXZlbiAucHJpY2Uge1xuICBjb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrIC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlZGVlO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24ge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAyMzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDI1MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5sb2FkZXIge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAxOTRweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIC5yb3cudGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3ljbGUgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jeWNsZSAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMjhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3Qge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyNzVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5tYWluLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZ3Jvd3RoIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZ3Jvd3RoIC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiA0OXB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuZnVubmVsLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogNTA1cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiAxNzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIubm8tc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLnZhbHVlLWNvbnRhaW5lcixcbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAub3BlcmF0b3Ige1xuICBsaW5lLWhlaWdodDogODVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyIC50aXRsZSB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDEuMmVtO1xuICBwYWRkaW5nOiAxMHB4IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyIC52YWx1ZS1ib3gge1xuICBmb250LXNpemU6IDEuM2VtO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNDNENBQ0E7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLm9wZXJhdG9yIHtcbiAgcGFkZGluZy10b3A6IDM4cHg7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZXMge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyAuc3RhdHMge1xuICBtYXJnaW4tdG9wOiAzNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIC5zdGF0IHtcbiAgbWFyZ2luOiAxNXB4IDBweCAxMHB4IDBweDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmVkZWU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIC5zdGF0IHNwYW4udGl0bGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyAuc3RhdHMgLnN0YXQgc3Bhbi5ub21pbmFsIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyAuc3RhdHMgLnN0YXQgc3Bhbi52YXJpYXRpb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIHdpZHRoOiA1MHB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLnNlbGVjdG9yIC5zZWxlY3Rvci13cmFwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1heC1oZWlnaHQ6IDc3cHggIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAucm93IHtcbiAgbWFyZ2luOiAwcHggLTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAucm93ID4gZGl2IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMgLmxlZ2VuZCAudG90YWwge1xuICBjb2xvcjogIzVCNjY2NztcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuZnVubmVsLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgbWF4LWhlaWdodDogNTA1cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIGgzLnJpZ2h0IHtcbiAgbWFyZ2luLXRvcDogNTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLmFuYWx5c2lzIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAucmlnaHQtcGFuZWwgaDMge1xuICBtYXJnaW46IDE1cHggMTBweCA1cHggMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5yaWdodC1wYW5lbCAuZmEuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSAuc2VsZWN0b3Ige1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC5zZWxlY3RvciB7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLnNlbGVjdG9yIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuc2VsZWN0b3IgLnBhcmFtLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuc3ViLWxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93ID4gW2NsYXNzKj0nY29sLSddIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLmN1cnJlbmN5LWNvbnZlcnNpb25zIGltZyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAxOTVweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlIHtcbiAgaGVpZ2h0OiA0MHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUgLmNvbG9yZWQtYXJlYSB7XG4gIHdpZHRoOiAxMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlIC5tYWluLXRleHQge1xuICBjb2xvcjogIzVCNjY2NztcbiAgcGFkZGluZzogM3B4IDBweCAwcHggMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCB7XG4gIGhlaWdodDogNTVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCAuY29sb3JlZC1hcmVhIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNmU0MTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5maXJzdCAubWFpbi10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDhweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQge1xuICBoZWlnaHQ6IDU1cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQgLmNvbG9yZWQtYXJlYSB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZGU5YjY7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUuc2Vjb25kIC5tYWluLXRleHQge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuLyogZW5kaW5qZWN0ICovXG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8vXG4vLyAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuLy8gMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbi8vICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbi8vXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLy8gMVxuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbn1cblxuLy9cbi8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbi8vXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8vIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbi8vIGFuZCBGaXJlZm94LlxuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbi8vXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbi8vIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbi8vXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gMVxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIDJcbn1cblxuLy9cbi8vIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4vLyBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuLy9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuLy8gSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuLy9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIExpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4vL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8vXG4vLyBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4vLyBhY3RpdmUvaG92ZXIgc3RhdGUuXG4vL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vLyBUZXh0LWxldmVsIHNlbWFudGljc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy9cbi8vIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbi8vIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuLy9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vL1xuLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLy8gRW1iZWRkZWQgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuLy9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vL1xuLy8gQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4vL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIEdyb3VwaW5nIGNvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbi8vXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4vL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vXG4vLyBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vLyBGb3Jtc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4vLyBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4vL1xuXG4vL1xuLy8gMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4vLyAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLy8gMVxuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xufVxuXG4vL1xuLy8gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4vL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLy9cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbi8vIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4vLyBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuLy8gQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuLy9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vXG4vLyAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuLy8gICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4vLyAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4vLyAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuLy8gICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuLy9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvLyAxXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDJcbiAgY3Vyc29yOiBwb2ludGVyOyAvLyAzXG59XG5cbi8vXG4vLyBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuLy9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vL1xuLy8gUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuLy9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4vLyB0aGUgVUEgc3R5bGVzaGVldC5cbi8vXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLy9cbi8vIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbi8vIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4vL1xuLy8gMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbi8vIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4vL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvLyAxXG4gIHBhZGRpbmc6IDA7IC8vIDJcbn1cblxuLy9cbi8vIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4vLyBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuLy8gZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuLy9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vXG4vLyAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4vLyBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4vLyBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4vL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy9cbi8vIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbi8vXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuLy8gMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuLy9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvLyAxXG4gIHBhZGRpbmc6IDA7IC8vIDJcbn1cblxuLy9cbi8vIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4vL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vL1xuLy8gRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuLy8gTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4vL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vLyBUYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4vL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIi8vXG4vLyBHbHlwaGljb25zIGZvciBCb290c3RyYXBcbi8vXG4vLyBTaW5jZSBpY29ucyBhcmUgZm9udHMsIHRoZXkgY2FuIGJlIHBsYWNlZCBhbnl3aGVyZSB0ZXh0IGlzIHBsYWNlZCBhbmQgYXJlXG4vLyB0aHVzIGF1dG9tYXRpY2FsbHkgc2l6ZWQgdG8gbWF0Y2ggdGhlIHN1cnJvdW5kaW5nIGNoaWxkLiBUbyB1c2UsIGNyZWF0ZSBhblxuLy8gaW5saW5lIGVsZW1lbnQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgY2xhc3NlcywgbGlrZSBzbzpcbi8vXG4vLyA8YSBocmVmPVwiI1wiPjxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1zdGFyXCI+PC9zcGFuPiBTdGFyPC9hPlxuXG4vLyBJbXBvcnQgdGhlIGZvbnRzXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIHNyYzogdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LmVvdCcpO1xuICBzcmM6IHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgIHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0ud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgIHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LnN2ZyNAe2ljb24tZm9udC1zdmctaWR9JykgZm9ybWF0KCdzdmcnKTtcbn1cblxuLy8gQ2F0Y2hhbGwgYmFzZWNsYXNzXG4uZ2x5cGhpY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDFweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8vIEluZGl2aWR1YWwgaWNvbnNcbi5nbHlwaGljb24tYXN0ZXJpc2sgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwMmFcIjsgfSB9XG4uZ2x5cGhpY29uLXBsdXMgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMDJiXCI7IH0gfVxuLmdseXBoaWNvbi1ldXJvLFxuLmdseXBoaWNvbi1ldXIgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjBhY1wiOyB9IH1cbi5nbHlwaGljb24tbWludXMgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIyMTJcIjsgfSB9XG4uZ2x5cGhpY29uLWNsb3VkICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNjAxXCI7IH0gfVxuLmdseXBoaWNvbi1lbnZlbG9wZSAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjcwOVwiOyB9IH1cbi5nbHlwaGljb24tcGVuY2lsICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI3MGZcIjsgfSB9XG4uZ2x5cGhpY29uLWdsYXNzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDAxXCI7IH0gfVxuLmdseXBoaWNvbi1tdXNpYyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwMlwiOyB9IH1cbi5nbHlwaGljb24tc2VhcmNoICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDNcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYXJ0ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA1XCI7IH0gfVxuLmdseXBoaWNvbi1zdGFyICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwNlwiOyB9IH1cbi5nbHlwaGljb24tc3Rhci1lbXB0eSAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDdcIjsgfSB9XG4uZ2x5cGhpY29uLXVzZXIgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA4XCI7IH0gfVxuLmdseXBoaWNvbi1maWxtICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwOVwiOyB9IH1cbi5nbHlwaGljb24tdGgtbGFyZ2UgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTBcIjsgfSB9XG4uZ2x5cGhpY29uLXRoICAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDExXCI7IH0gfVxuLmdseXBoaWNvbi10aC1saXN0ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxMlwiOyB9IH1cbi5nbHlwaGljb24tb2sgICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTNcIjsgfSB9XG4uZ2x5cGhpY29uLXJlbW92ZSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE0XCI7IH0gfVxuLmdseXBoaWNvbi16b29tLWluICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxNVwiOyB9IH1cbi5nbHlwaGljb24tem9vbS1vdXQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTZcIjsgfSB9XG4uZ2x5cGhpY29uLW9mZiAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE3XCI7IH0gfVxuLmdseXBoaWNvbi1zaWduYWwgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxOFwiOyB9IH1cbi5nbHlwaGljb24tY29nICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTlcIjsgfSB9XG4uZ2x5cGhpY29uLXRyYXNoICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIwXCI7IH0gfVxuLmdseXBoaWNvbi1ob21lICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyMVwiOyB9IH1cbi5nbHlwaGljb24tZmlsZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjJcIjsgfSB9XG4uZ2x5cGhpY29uLXRpbWUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIzXCI7IH0gfVxuLmdseXBoaWNvbi1yb2FkICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyNFwiOyB9IH1cbi5nbHlwaGljb24tZG93bmxvYWQtYWx0ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjVcIjsgfSB9XG4uZ2x5cGhpY29uLWRvd25sb2FkICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI2XCI7IH0gfVxuLmdseXBoaWNvbi11cGxvYWQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyN1wiOyB9IH1cbi5nbHlwaGljb24taW5ib3ggICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjhcIjsgfSB9XG4uZ2x5cGhpY29uLXBsYXktY2lyY2xlICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI5XCI7IH0gfVxuLmdseXBoaWNvbi1yZXBlYXQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzMFwiOyB9IH1cbi5nbHlwaGljb24tcmVmcmVzaCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzFcIjsgfSB9XG4uZ2x5cGhpY29uLWxpc3QtYWx0ICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMyXCI7IH0gfVxuLmdseXBoaWNvbi1sb2NrICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzM1wiOyB9IH1cbi5nbHlwaGljb24tZmxhZyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzRcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYWRwaG9uZXMgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM1XCI7IH0gfVxuLmdseXBoaWNvbi12b2x1bWUtb2ZmICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzNlwiOyB9IH1cbi5nbHlwaGljb24tdm9sdW1lLWRvd24gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzdcIjsgfSB9XG4uZ2x5cGhpY29uLXZvbHVtZS11cCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM4XCI7IH0gfVxuLmdseXBoaWNvbi1xcmNvZGUgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzOVwiOyB9IH1cbi5nbHlwaGljb24tYmFyY29kZSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDBcIjsgfSB9XG4uZ2x5cGhpY29uLXRhZyAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQxXCI7IH0gfVxuLmdseXBoaWNvbi10YWdzICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0MlwiOyB9IH1cbi5nbHlwaGljb24tYm9vayAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDNcIjsgfSB9XG4uZ2x5cGhpY29uLWJvb2ttYXJrICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ0XCI7IH0gfVxuLmdseXBoaWNvbi1wcmludCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0NVwiOyB9IH1cbi5nbHlwaGljb24tY2FtZXJhICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDZcIjsgfSB9XG4uZ2x5cGhpY29uLWZvbnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ3XCI7IH0gfVxuLmdseXBoaWNvbi1ib2xkICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0OFwiOyB9IH1cbi5nbHlwaGljb24taXRhbGljICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDlcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtaGVpZ2h0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUwXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LXdpZHRoICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1MVwiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tbGVmdCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTJcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLWNlbnRlciAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUzXCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1yaWdodCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1NFwiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tanVzdGlmeSAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTVcIjsgfSB9XG4uZ2x5cGhpY29uLWxpc3QgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU2XCI7IH0gfVxuLmdseXBoaWNvbi1pbmRlbnQtbGVmdCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1N1wiOyB9IH1cbi5nbHlwaGljb24taW5kZW50LXJpZ2h0ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNThcIjsgfSB9XG4uZ2x5cGhpY29uLWZhY2V0aW1lLXZpZGVvICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU5XCI7IH0gfVxuLmdseXBoaWNvbi1waWN0dXJlICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2MFwiOyB9IH1cbi5nbHlwaGljb24tbWFwLW1hcmtlciAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjJcIjsgfSB9XG4uZ2x5cGhpY29uLWFkanVzdCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDYzXCI7IH0gfVxuLmdseXBoaWNvbi10aW50ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2NFwiOyB9IH1cbi5nbHlwaGljb24tZWRpdCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjVcIjsgfSB9XG4uZ2x5cGhpY29uLXNoYXJlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY2XCI7IH0gfVxuLmdseXBoaWNvbi1jaGVjayAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2N1wiOyB9IH1cbi5nbHlwaGljb24tbW92ZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjhcIjsgfSB9XG4uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY5XCI7IH0gfVxuLmdseXBoaWNvbi1mYXN0LWJhY2t3YXJkICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3MFwiOyB9IH1cbi5nbHlwaGljb24tYmFja3dhcmQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzFcIjsgfSB9XG4uZ2x5cGhpY29uLXBsYXkgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDcyXCI7IH0gfVxuLmdseXBoaWNvbi1wYXVzZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3M1wiOyB9IH1cbi5nbHlwaGljb24tc3RvcCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzRcIjsgfSB9XG4uZ2x5cGhpY29uLWZvcndhcmQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc1XCI7IH0gfVxuLmdseXBoaWNvbi1mYXN0LWZvcndhcmQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3NlwiOyB9IH1cbi5nbHlwaGljb24tc3RlcC1mb3J3YXJkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzdcIjsgfSB9XG4uZ2x5cGhpY29uLWVqZWN0ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc4XCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3OVwiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi1yaWdodCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODBcIjsgfSB9XG4uZ2x5cGhpY29uLXBsdXMtc2lnbiAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgxXCI7IH0gfVxuLmdseXBoaWNvbi1taW51cy1zaWduICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4MlwiOyB9IH1cbi5nbHlwaGljb24tcmVtb3ZlLXNpZ24gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODNcIjsgfSB9XG4uZ2x5cGhpY29uLW9rLXNpZ24gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg0XCI7IH0gfVxuLmdseXBoaWNvbi1xdWVzdGlvbi1zaWduICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4NVwiOyB9IH1cbi5nbHlwaGljb24taW5mby1zaWduICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODZcIjsgfSB9XG4uZ2x5cGhpY29uLXNjcmVlbnNob3QgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg3XCI7IH0gfVxuLmdseXBoaWNvbi1yZW1vdmUtY2lyY2xlICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4OFwiOyB9IH1cbi5nbHlwaGljb24tb2stY2lyY2xlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODlcIjsgfSB9XG4uZ2x5cGhpY29uLWJhbi1jaXJjbGUgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkwXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy1sZWZ0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5MVwiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctcmlnaHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTJcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LXVwICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkzXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy1kb3duICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5NFwiOyB9IH1cbi5nbHlwaGljb24tc2hhcmUtYWx0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTVcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS1mdWxsICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk2XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtc21hbGwgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5N1wiOyB9IH1cbi5nbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbiAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDFcIjsgfSB9XG4uZ2x5cGhpY29uLWdpZnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTAyXCI7IH0gfVxuLmdseXBoaWNvbi1sZWFmICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwM1wiOyB9IH1cbi5nbHlwaGljb24tZmlyZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDRcIjsgfSB9XG4uZ2x5cGhpY29uLWV5ZS1vcGVuICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA1XCI7IH0gfVxuLmdseXBoaWNvbi1leWUtY2xvc2UgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwNlwiOyB9IH1cbi5nbHlwaGljb24td2FybmluZy1zaWduICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDdcIjsgfSB9XG4uZ2x5cGhpY29uLXBsYW5lICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA4XCI7IH0gfVxuLmdseXBoaWNvbi1jYWxlbmRhciAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwOVwiOyB9IH1cbi5nbHlwaGljb24tcmFuZG9tICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTBcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbW1lbnQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTExXCI7IH0gfVxuLmdseXBoaWNvbi1tYWduZXQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExMlwiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi11cCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTNcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tZG93biAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE0XCI7IH0gfVxuLmdseXBoaWNvbi1yZXR3ZWV0ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExNVwiOyB9IH1cbi5nbHlwaGljb24tc2hvcHBpbmctY2FydCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTZcIjsgfSB9XG4uZ2x5cGhpY29uLWZvbGRlci1jbG9zZSAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE3XCI7IH0gfVxuLmdseXBoaWNvbi1mb2xkZXItb3BlbiAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExOFwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLXZlcnRpY2FsICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTlcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS1ob3Jpem9udGFsICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIwXCI7IH0gfVxuLmdseXBoaWNvbi1oZGQgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyMVwiOyB9IH1cbi5nbHlwaGljb24tYnVsbGhvcm4gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjJcIjsgfSB9XG4uZ2x5cGhpY29uLWJlbGwgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIzXCI7IH0gfVxuLmdseXBoaWNvbi1jZXJ0aWZpY2F0ZSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyNFwiOyB9IH1cbi5nbHlwaGljb24tdGh1bWJzLXVwICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjVcIjsgfSB9XG4uZ2x5cGhpY29uLXRodW1icy1kb3duICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI2XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLXJpZ2h0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyN1wiOyB9IH1cbi5nbHlwaGljb24taGFuZC1sZWZ0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjhcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtdXAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI5XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLWRvd24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzMFwiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXJpZ2h0ICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzFcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1sZWZ0ICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMyXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctdXAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzM1wiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWRvd24gICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzRcIjsgfSB9XG4uZ2x5cGhpY29uLWdsb2JlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM1XCI7IH0gfVxuLmdseXBoaWNvbi13cmVuY2ggICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzNlwiOyB9IH1cbi5nbHlwaGljb24tdGFza3MgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzdcIjsgfSB9XG4uZ2x5cGhpY29uLWZpbHRlciAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM4XCI7IH0gfVxuLmdseXBoaWNvbi1icmllZmNhc2UgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzOVwiOyB9IH1cbi5nbHlwaGljb24tZnVsbHNjcmVlbiAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDBcIjsgfSB9XG4uZ2x5cGhpY29uLWRhc2hib2FyZCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQxXCI7IH0gfVxuLmdseXBoaWNvbi1wYXBlcmNsaXAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0MlwiOyB9IH1cbi5nbHlwaGljb24taGVhcnQtZW1wdHkgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDNcIjsgfSB9XG4uZ2x5cGhpY29uLWxpbmsgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ0XCI7IH0gfVxuLmdseXBoaWNvbi1waG9uZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0NVwiOyB9IH1cbi5nbHlwaGljb24tcHVzaHBpbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDZcIjsgfSB9XG4uZ2x5cGhpY29uLXVzZCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ4XCI7IH0gfVxuLmdseXBoaWNvbi1nYnAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0OVwiOyB9IH1cbi5nbHlwaGljb24tc29ydCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTBcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUxXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0LWFsdCAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1MlwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlciAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTNcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0ICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU0XCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1NVwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzLWFsdCB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTZcIjsgfSB9XG4uZ2x5cGhpY29uLXVuY2hlY2tlZCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU3XCI7IH0gfVxuLmdseXBoaWNvbi1leHBhbmQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1OFwiOyB9IH1cbi5nbHlwaGljb24tY29sbGFwc2UtZG93biAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTlcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbGxhcHNlLXVwICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYwXCI7IH0gfVxuLmdseXBoaWNvbi1sb2ctaW4gICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2MVwiOyB9IH1cbi5nbHlwaGljb24tZmxhc2ggICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjJcIjsgfSB9XG4uZ2x5cGhpY29uLWxvZy1vdXQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYzXCI7IH0gfVxuLmdseXBoaWNvbi1uZXctd2luZG93ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2NFwiOyB9IH1cbi5nbHlwaGljb24tcmVjb3JkICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjVcIjsgfSB9XG4uZ2x5cGhpY29uLXNhdmUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY2XCI7IH0gfVxuLmdseXBoaWNvbi1vcGVuICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2N1wiOyB9IH1cbi5nbHlwaGljb24tc2F2ZWQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjhcIjsgfSB9XG4uZ2x5cGhpY29uLWltcG9ydCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY5XCI7IH0gfVxuLmdseXBoaWNvbi1leHBvcnQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3MFwiOyB9IH1cbi5nbHlwaGljb24tc2VuZCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzFcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1kaXNrICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTcyXCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZWQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3M1wiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LXJlbW92ZSAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzRcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc1XCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktb3BlbiAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3NlwiOyB9IH1cbi5nbHlwaGljb24tY3JlZGl0LWNhcmQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzdcIjsgfSB9XG4uZ2x5cGhpY29uLXRyYW5zZmVyICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc4XCI7IH0gfVxuLmdseXBoaWNvbi1jdXRsZXJ5ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3OVwiOyB9IH1cbi5nbHlwaGljb24taGVhZGVyICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODBcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbXByZXNzZWQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgxXCI7IH0gfVxuLmdseXBoaWNvbi1lYXJwaG9uZSAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4MlwiOyB9IH1cbi5nbHlwaGljb24tcGhvbmUtYWx0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODNcIjsgfSB9XG4uZ2x5cGhpY29uLXRvd2VyICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg0XCI7IH0gfVxuLmdseXBoaWNvbi1zdGF0cyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4NVwiOyB9IH1cbi5nbHlwaGljb24tc2QtdmlkZW8gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODZcIjsgfSB9XG4uZ2x5cGhpY29uLWhkLXZpZGVvICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg3XCI7IH0gfVxuLmdseXBoaWNvbi1zdWJ0aXRsZXMgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4OFwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtc3RlcmVvICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODlcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLWRvbGJ5ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkwXCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC01LTEgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5MVwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtNi0xICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTJcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLTctMSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkzXCI7IH0gfVxuLmdseXBoaWNvbi1jb3B5cmlnaHQtbWFyayAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5NFwiOyB9IH1cbi5nbHlwaGljb24tcmVnaXN0cmF0aW9uLW1hcmsgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTVcIjsgfSB9XG4uZ2x5cGhpY29uLWNsb3VkLWRvd25sb2FkICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk3XCI7IH0gfVxuLmdseXBoaWNvbi1jbG91ZC11cGxvYWQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5OFwiOyB9IH1cbi5nbHlwaGljb24tdHJlZS1jb25pZmVyICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTlcIjsgfSB9XG4uZ2x5cGhpY29uLXRyZWUtZGVjaWR1b3VzICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAwXCI7IH0gfVxuLmdseXBoaWNvbi1jZCAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwMVwiOyB9IH1cbi5nbHlwaGljb24tc2F2ZS1maWxlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDJcIjsgfSB9XG4uZ2x5cGhpY29uLW9wZW4tZmlsZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAzXCI7IH0gfVxuLmdseXBoaWNvbi1sZXZlbC11cCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwNFwiOyB9IH1cbi5nbHlwaGljb24tY29weSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDVcIjsgfSB9XG4uZ2x5cGhpY29uLXBhc3RlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA2XCI7IH0gfVxuLy8gVGhlIGZvbGxvd2luZyAyIEdseXBoaWNvbnMgYXJlIG9taXR0ZWQgZm9yIHRoZSB0aW1lIGJlaW5nIGJlY2F1c2Vcbi8vIHRoZXkgY3VycmVudGx5IHVzZSBVbmljb2RlIGNvZGVwb2ludHMgdGhhdCBhcmUgb3V0c2lkZSB0aGVcbi8vIEJhc2ljIE11bHRpbGluZ3VhbCBQbGFuZSAoQk1QKS4gT2xkZXIgYnVnZ3kgdmVyc2lvbnMgb2YgV2ViS2l0IGNhbid0IGhhbmRsZVxuLy8gbm9uLUJNUCBjb2RlcG9pbnRzIGluIENTUyBzdHJpbmcgZXNjYXBlcywgYW5kIHRodXMgY2FuJ3QgZGlzcGxheSB0aGVzZSB0d28gaWNvbnMuXG4vLyBOb3RhYmx5LCB0aGUgYnVnIGFmZmVjdHMgc29tZSBvbGRlciB2ZXJzaW9ucyBvZiB0aGUgQW5kcm9pZCBCcm93c2VyLlxuLy8gTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEwMTA2XG4vLyAuZ2x5cGhpY29uLWRvb3IgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwxZjZhYVwiOyB9IH1cbi8vIC5nbHlwaGljb24ta2V5ICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDFmNTExXCI7IH0gfVxuLmdseXBoaWNvbi1hbGVydCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwOVwiOyB9IH1cbi5nbHlwaGljb24tZXF1YWxpemVyICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTBcIjsgfSB9XG4uZ2x5cGhpY29uLWtpbmcgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjExXCI7IH0gfVxuLmdseXBoaWNvbi1xdWVlbiAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxMlwiOyB9IH1cbi5nbHlwaGljb24tcGF3biAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTNcIjsgfSB9XG4uZ2x5cGhpY29uLWJpc2hvcCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE0XCI7IH0gfVxuLmdseXBoaWNvbi1rbmlnaHQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxNVwiOyB9IH1cbi5nbHlwaGljb24tYmFieS1mb3JtdWxhICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTZcIjsgfSB9XG4uZ2x5cGhpY29uLXRlbnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNmZhXCI7IH0gfVxuLmdseXBoaWNvbi1ibGFja2JvYXJkICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxOFwiOyB9IH1cbi5nbHlwaGljb24tYmVkICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTlcIjsgfSB9XG4uZ2x5cGhpY29uLWFwcGxlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmOGZmXCI7IH0gfVxuLmdseXBoaWNvbi1lcmFzZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyMVwiOyB9IH1cbi5nbHlwaGljb24taG91cmdsYXNzICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIzMWJcIjsgfSB9XG4uZ2x5cGhpY29uLWxhbXAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjIzXCI7IH0gfVxuLmdseXBoaWNvbi1kdXBsaWNhdGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyNFwiOyB9IH1cbi5nbHlwaGljb24tcGlnZ3ktYmFuayAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjVcIjsgfSB9XG4uZ2x5cGhpY29uLXNjaXNzb3JzICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI2XCI7IH0gfVxuLmdseXBoaWNvbi1iaXRjb2luICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyN1wiOyB9IH1cbi5nbHlwaGljb24tYnRjICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjdcIjsgfSB9XG4uZ2x5cGhpY29uLXhidCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH0gfVxuLmdseXBoaWNvbi15ZW4gICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDBhNVwiOyB9IH1cbi5nbHlwaGljb24tanB5ICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwYTVcIjsgfSB9XG4uZ2x5cGhpY29uLXJ1YmxlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMGJkXCI7IH0gfVxuLmdseXBoaWNvbi1ydWIgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjBiZFwiOyB9IH1cbi5nbHlwaGljb24tc2NhbGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzBcIjsgfSB9XG4uZ2x5cGhpY29uLWljZS1sb2xseSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMxXCI7IH0gfVxuLmdseXBoaWNvbi1pY2UtbG9sbHktdGFzdGVkICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzMlwiOyB9IH1cbi5nbHlwaGljb24tZWR1Y2F0aW9uICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzNcIjsgfSB9XG4uZ2x5cGhpY29uLW9wdGlvbi1ob3Jpem9udGFsICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM0XCI7IH0gfVxuLmdseXBoaWNvbi1vcHRpb24tdmVydGljYWwgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzNVwiOyB9IH1cbi5nbHlwaGljb24tbWVudS1oYW1idXJnZXIgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzZcIjsgfSB9XG4uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdyAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM3XCI7IH0gfVxuLmdseXBoaWNvbi1vaWwgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzOFwiOyB9IH1cbi5nbHlwaGljb24tZ3JhaW4gICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzlcIjsgfSB9XG4uZ2x5cGhpY29uLXN1bmdsYXNzZXMgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQwXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LXNpemUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0MVwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1jb2xvciAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDJcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtYmFja2dyb3VuZCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQzXCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdG9wICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0NFwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWJvdHRvbSAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDVcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ob3Jpem9udGFseyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ2XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tbGVmdCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0N1wiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXZlcnRpY2FsICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDhcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1yaWdodCAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ5XCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS1yaWdodCAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1MFwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtbGVmdCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTFcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWJvdHRvbSAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUyXCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS10b3AgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1M1wiOyB9IH1cbi5nbHlwaGljb24tY29uc29sZSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTRcIjsgfSB9XG4uZ2x5cGhpY29uLXN1cGVyc2NyaXB0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU1XCI7IH0gfVxuLmdseXBoaWNvbi1zdWJzY3JpcHQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1NlwiOyB9IH1cbi5nbHlwaGljb24tbWVudS1sZWZ0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTdcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtcmlnaHQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU4XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LWRvd24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1OVwiOyB9IH1cbi5nbHlwaGljb24tbWVudS11cCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNjBcIjsgfSB9XG4iLCIvL1xuLy8gU2NhZmZvbGRpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gUmVzZXQgdGhlIGJveC1zaXppbmdcbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyByZXNldCBtYXkgY2F1c2UgY29uZmxpY3RzIHdpdGggc29tZSB0aGlyZC1wYXJ0eSB3aWRnZXRzLlxuLy8gRm9yIHJlY29tbWVuZGF0aW9ucyBvbiByZXNvbHZpbmcgc3VjaCBjb25mbGljdHMsIHNlZVxuLy8gaHR0cDovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyN0aGlyZC1ib3gtc2l6aW5nXG4qIHtcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XG59XG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICAuYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cblxuXG4vLyBCb2R5IHJlc2V0XG5cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHktYmFzZTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYm9keS1iZztcbn1cblxuLy8gUmVzZXQgZm9udHMgZm9yIHJlbGV2YW50IGVsZW1lbnRzXG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cblxuLy8gTGlua3NcblxuYSB7XG4gIGNvbG9yOiBAbGluay1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICAudGFiLWZvY3VzKCk7XG4gIH1cbn1cblxuXG4vLyBGaWd1cmVzXG4vL1xuLy8gV2UgcmVzZXQgdGhpcyBoZXJlIGJlY2F1c2UgcHJldmlvdXNseSBOb3JtYWxpemUgaGFkIG5vIGBmaWd1cmVgIG1hcmdpbnMuIFRoaXNcbi8vIGVuc3VyZXMgd2UgZG9uJ3QgYnJlYWsgYW55b25lJ3MgdXNlIG9mIHRoZSBlbGVtZW50LlxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cblxuLy8gSW1hZ2VzXG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2VzIChlbnN1cmUgaW1hZ2VzIGRvbid0IHNjYWxlIGJleW9uZCB0aGVpciBwYXJlbnRzKVxuLmltZy1yZXNwb25zaXZlIHtcbiAgLmltZy1yZXNwb25zaXZlKCk7XG59XG5cbi8vIFJvdW5kZWQgY29ybmVyc1xuLmltZy1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XG59XG5cbi8vIEltYWdlIHRodW1ibmFpbHNcbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyBpcyBtaXhpbi1lZCBpbnRvIHRodW1ibmFpbHMubGVzcyBmb3IgYC50aHVtYm5haWxgLlxuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiBAdGh1bWJuYWlsLXBhZGRpbmc7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRodW1ibmFpbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEB0aHVtYm5haWwtYm9yZGVyLXJhZGl1cztcbiAgLnRyYW5zaXRpb24oYWxsIC4ycyBlYXNlLWluLW91dCk7XG5cbiAgLy8gS2VlcCB0aGVtIGF0IG1vc3QgMTAwJSB3aWRlXG4gIC5pbWctcmVzcG9uc2l2ZShpbmxpbmUtYmxvY2spO1xufVxuXG4vLyBQZXJmZWN0IGNpcmNsZVxuLmltZy1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7IC8vIHNldCByYWRpdXMgaW4gcGVyY2VudHNcbn1cblxuXG4vLyBIb3Jpem9udGFsIHJ1bGVzXG5cbmhyIHtcbiAgbWFyZ2luLXRvcDogICAgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBoci1ib3JkZXI7XG59XG5cblxuLy8gT25seSBkaXNwbGF5IGNvbnRlbnQgdG8gc2NyZWVuIHJlYWRlcnNcbi8vXG4vLyBTZWU6IGh0dHA6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudFxuXG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCAuc3Itb25seSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZC5cbi8vIFVzZWZ1bCBmb3IgXCJTa2lwIHRvIG1haW4gY29udGVudFwiIGxpbmtzOyBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMy9OT1RFLVdDQUcyMC1URUNIUy0yMDEzMDkwNS9HMVxuLy8gQ3JlZGl0OiBIVE1MNSBCb2lsZXJwbGF0ZVxuXG4uc3Itb25seS1mb2N1c2FibGUge1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGNsaXA6IGF1dG87XG4gIH1cbn1cblxuXG4vLyBpT1MgXCJjbGlja2FibGUgZWxlbWVudHNcIiBmaXggZm9yIHJvbGU9XCJidXR0b25cIlxuLy9cbi8vIEZpeGVzIFwiY2xpY2thYmlsaXR5XCIgaXNzdWUgKGFuZCBtb3JlIGdlbmVyYWxseSwgdGhlIGZpcmluZyBvZiBldmVudHMgc3VjaCBhcyBmb2N1cyBhcyB3ZWxsKVxuLy8gZm9yIHRyYWRpdGlvbmFsbHkgbm9uLWZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIHJvbGU9XCJidXR0b25cIlxuLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9jbGljayNTYWZhcmlfTW9iaWxlXG5cbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLy8gVmVuZG9yIFByZWZpeGVzXG4vL1xuLy8gQWxsIHZlbmRvciBtaXhpbnMgYXJlIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGR1ZSB0byB0aGUgaW50cm9kdWN0aW9uIG9mXG4vLyBBdXRvcHJlZml4ZXIgaW4gb3VyIEdydW50ZmlsZS4gVGhleSBoYXZlIGJlZW4gcmVtb3ZlZCBpbiB2NC5cblxuLy8gLSBBbmltYXRpb25zXG4vLyAtIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIC0gQm94IHNoYWRvd1xuLy8gLSBCb3ggc2l6aW5nXG4vLyAtIENvbnRlbnQgY29sdW1uc1xuLy8gLSBIeXBoZW5zXG4vLyAtIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0gVHJhbnNmb3JtYXRpb25zXG4vLyAtIFRyYW5zaXRpb25zXG4vLyAtIFVzZXIgU2VsZWN0XG5cblxuLy8gQW5pbWF0aW9uc1xuLmFuaW1hdGlvbihAYW5pbWF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBAYW5pbWF0aW9uO1xuICAgICAgIC1vLWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcbiAgICAgICAgICBhbmltYXRpb246IEBhbmltYXRpb247XG59XG4uYW5pbWF0aW9uLW5hbWUoQG5hbWUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogQG5hbWU7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IEBuYW1lO1xufVxuLmFuaW1hdGlvbi1kdXJhdGlvbihAZHVyYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcbn1cbi5hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKEB0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG59XG4uYW5pbWF0aW9uLWRlbGF5KEBkZWxheSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogQGRlbGF5O1xuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogQGRlbGF5O1xufVxuLmFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoQGl0ZXJhdGlvbi1jb3VudCkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBpdGVyYXRpb24tY291bnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbi1jb3VudDtcbn1cbi5hbmltYXRpb24tZGlyZWN0aW9uKEBkaXJlY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IEBkaXJlY3Rpb247XG59XG4uYW5pbWF0aW9uLWZpbGwtbW9kZShAZmlsbC1tb2RlKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xufVxuXG4vLyBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxuLy8gRGVmYXVsdCB2YWx1ZSBpcyBgdmlzaWJsZWAsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBgaGlkZGVuYFxuXG4uYmFja2ZhY2UtdmlzaWJpbGl0eShAdmlzaWJpbGl0eSkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xuICAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xufVxuXG4vLyBEcm9wIHNoYWRvd3Ncbi8vXG4vLyBOb3RlOiBEZXByZWNhdGVkIGAuYm94LXNoYWRvdygpYCBhcyBvZiB2My4xLjAgc2luY2UgYWxsIG9mIEJvb3RzdHJhcCdzXG4vLyBzdXBwb3J0ZWQgYnJvd3NlcnMgdGhhdCBoYXZlIGJveCBzaGFkb3cgY2FwYWJpbGl0aWVzIG5vdyBzdXBwb3J0IGl0LlxuXG4uYm94LXNoYWRvdyhAc2hhZG93KSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogQHNoYWRvdzsgLy8gaU9TIDw0LjMgJiBBbmRyb2lkIDw0LjFcbiAgICAgICAgICBib3gtc2hhZG93OiBAc2hhZG93O1xufVxuXG4vLyBCb3ggc2l6aW5nXG4uYm94LXNpemluZyhAYm94bW9kZWwpIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgIC1tb3otYm94LXNpemluZzogQGJveG1vZGVsO1xuICAgICAgICAgIGJveC1zaXppbmc6IEBib3htb2RlbDtcbn1cblxuLy8gQ1NTMyBDb250ZW50IENvbHVtbnNcbi5jb250ZW50LWNvbHVtbnMoQGNvbHVtbi1jb3VudDsgQGNvbHVtbi1nYXA6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogQGNvbHVtbi1jb3VudDtcbiAgICAgLW1vei1jb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XG4gICAgICAgICAgY29sdW1uLWNvdW50OiBAY29sdW1uLWNvdW50O1xuICAtd2Via2l0LWNvbHVtbi1nYXA6IEBjb2x1bW4tZ2FwO1xuICAgICAtbW96LWNvbHVtbi1nYXA6IEBjb2x1bW4tZ2FwO1xuICAgICAgICAgIGNvbHVtbi1nYXA6IEBjb2x1bW4tZ2FwO1xufVxuXG4vLyBPcHRpb25hbCBoeXBoZW5hdGlvblxuLmh5cGhlbnMoQG1vZGU6IGF1dG8pIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LWh5cGhlbnM6IEBtb2RlO1xuICAgICAtbW96LWh5cGhlbnM6IEBtb2RlO1xuICAgICAgLW1zLWh5cGhlbnM6IEBtb2RlOyAvLyBJRTEwK1xuICAgICAgIC1vLWh5cGhlbnM6IEBtb2RlO1xuICAgICAgICAgIGh5cGhlbnM6IEBtb2RlO1xufVxuXG4vLyBQbGFjZWhvbGRlciB0ZXh0XG4ucGxhY2Vob2xkZXIoQGNvbG9yOiBAaW5wdXQtY29sb3ItcGxhY2Vob2xkZXIpIHtcbiAgLy8gRmlyZWZveFxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIG9wYWNpdHk6IDE7IC8vIE92ZXJyaWRlIEZpcmVmb3gncyB1bnVzdWFsIGRlZmF1bHQgb3BhY2l0eTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzExNTI2XG4gIH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogQGNvbG9yOyB9IC8vIEludGVybmV0IEV4cGxvcmVyIDEwK1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyICB7IGNvbG9yOiBAY29sb3I7IH0gLy8gU2FmYXJpIGFuZCBDaHJvbWVcbn1cblxuLy8gVHJhbnNmb3JtYXRpb25zXG4uc2NhbGUoQHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xufVxuLnNjYWxlKEByYXRpb1g7IEByYXRpb1kpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xufVxuLnNjYWxlWChAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xufVxuLnNjYWxlWShAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xufVxuLnNrZXcoQHg7IEB5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTsgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvNDg4NTsgSUU5K1xuICAgICAgIC1vLXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XG59XG4udHJhbnNsYXRlKEB4OyBAeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG59XG4udHJhbnNsYXRlM2QoQHg7IEB5OyBAeikge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHgsIEB5LCBAeik7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcbn1cbi5yb3RhdGUoQGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG59XG4ucm90YXRlWChAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XG59XG4ucm90YXRlWShAZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XG59XG4ucGVyc3BlY3RpdmUoQHBlcnNwZWN0aXZlKSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcbiAgICAgLW1vei1wZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xuICAgICAgICAgIHBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XG59XG4ucGVyc3BlY3RpdmUtb3JpZ2luKEBwZXJzcGVjdGl2ZSkge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbjogQHBlcnNwZWN0aXZlO1xuICAgICAtbW96LXBlcnNwZWN0aXZlLW9yaWdpbjogQHBlcnNwZWN0aXZlO1xuICAgICAgICAgIHBlcnNwZWN0aXZlLW9yaWdpbjogQHBlcnNwZWN0aXZlO1xufVxuLnRyYW5zZm9ybS1vcmlnaW4oQG9yaWdpbikge1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47XG4gICAgIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcbiAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luOyAvLyBJRTkgb25seVxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47XG59XG5cblxuLy8gVHJhbnNpdGlvbnNcblxuLnRyYW5zaXRpb24oQHRyYW5zaXRpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgICAtby10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cbi50cmFuc2l0aW9uLXByb3BlcnR5KEB0cmFuc2l0aW9uLXByb3BlcnR5KSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogQHRyYW5zaXRpb24tcHJvcGVydHk7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogQHRyYW5zaXRpb24tcHJvcGVydHk7XG59XG4udHJhbnNpdGlvbi1kZWxheShAdHJhbnNpdGlvbi1kZWxheSkge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IEB0cmFuc2l0aW9uLWRlbGF5O1xuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IEB0cmFuc2l0aW9uLWRlbGF5O1xufVxuLnRyYW5zaXRpb24tZHVyYXRpb24oQHRyYW5zaXRpb24tZHVyYXRpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiBAdHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBAdHJhbnNpdGlvbi1kdXJhdGlvbjtcbn1cbi50cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihAdGltaW5nLWZ1bmN0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEB0aW1pbmctZnVuY3Rpb247XG59XG4udHJhbnNpdGlvbi10cmFuc2Zvcm0oQHRyYW5zaXRpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbiAgICAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbiAgICAgICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gQHRyYW5zaXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xufVxuXG5cbi8vIFVzZXIgc2VsZWN0XG4vLyBGb3Igc2VsZWN0aW5nIHRleHQgb24gdGhlIHBhZ2VcblxuLnVzZXItc2VsZWN0KEBzZWxlY3QpIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogQHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogQHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogQHNlbGVjdDsgLy8gSUUxMCtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogQHNlbGVjdDtcbn1cbiIsIi8vIFdlYktpdC1zdHlsZSBmb2N1c1xuXG4udGFiLWZvY3VzKCkge1xuICAvLyBXZWJLaXQtc3BlY2lmaWMuIE90aGVyIGJyb3dzZXJzIHdpbGwga2VlcCB0aGVpciBkZWZhdWx0IG91dGxpbmUgc3R5bGUuXG4gIC8vIChJbml0aWFsbHkgdHJpZWQgdG8gYWxzbyBmb3JjZSBkZWZhdWx0IHZpYSBgb3V0bGluZTogaW5pdGlhbGAsXG4gIC8vIGJ1dCB0aGF0IHNlZW1zIHRvIGVycm9uZW91c2x5IHJlbW92ZSB0aGUgb3V0bGluZSBpbiBGaXJlZm94IGFsdG9nZXRoZXIuKVxuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuIiwiLy8gSW1hZ2UgTWl4aW5zXG4vLyAtIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vIC0gUmV0aW5hIGltYWdlXG5cblxuLy8gUmVzcG9uc2l2ZSBpbWFnZVxuLy9cbi8vIEtlZXAgaW1hZ2VzIGZyb20gc2NhbGluZyBiZXlvbmQgdGhlIHdpZHRoIG9mIHRoZWlyIHBhcmVudHMuXG4uaW1nLXJlc3BvbnNpdmUoQGRpc3BsYXk6IGJsb2NrKSB7XG4gIGRpc3BsYXk6IEBkaXNwbGF5O1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIFBhcnQgMTogU2V0IGEgbWF4aW11bSByZWxhdGl2ZSB0byB0aGUgcGFyZW50XG4gIGhlaWdodDogYXV0bzsgLy8gUGFydCAyOiBTY2FsZSB0aGUgaGVpZ2h0IGFjY29yZGluZyB0byB0aGUgd2lkdGgsIG90aGVyd2lzZSB5b3UgZ2V0IHN0cmV0Y2hpbmdcbn1cblxuXG4vLyBSZXRpbmEgaW1hZ2Vcbi8vXG4vLyBTaG9ydCByZXRpbmEgbWl4aW4gZm9yIHNldHRpbmcgYmFja2dyb3VuZC1pbWFnZSBhbmQgLXNpemUuIE5vdGUgdGhhdCB0aGVcbi8vIHNwZWxsaW5nIG9mIGBtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW9gIGlzIGludGVudGlvbmFsLlxuLmltZy1yZXRpbmEoQGZpbGUtMXg7IEBmaWxlLTJ4OyBAd2lkdGgtMXg7IEBoZWlnaHQtMXgpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiQHtmaWxlLTF4fVwiKTtcblxuICBAbWVkaWFcbiAgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgIG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAe2ZpbGUtMnh9XCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogQHdpZHRoLTF4IEBoZWlnaHQtMXg7XG4gIH1cbn1cbiIsIi8vXG4vLyBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEhlYWRpbmdzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG4uaDEsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IEBoZWFkaW5ncy1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6IEBoZWFkaW5ncy1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IEBoZWFkaW5ncy1saW5lLWhlaWdodDtcbiAgY29sb3I6IEBoZWFkaW5ncy1jb2xvcjtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiBAaGVhZGluZ3Mtc21hbGwtY29sb3I7XG4gIH1cbn1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzIHtcbiAgbWFyZ2luLXRvcDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA2NSU7XG4gIH1cbn1cbmg0LCAuaDQsXG5oNSwgLmg1LFxuaDYsIC5oNiB7XG4gIG1hcmdpbi10b3A6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICB9XG59XG5cbmgxLCAuaDEgeyBmb250LXNpemU6IEBmb250LXNpemUtaDE7IH1cbmgyLCAuaDIgeyBmb250LXNpemU6IEBmb250LXNpemUtaDI7IH1cbmgzLCAuaDMgeyBmb250LXNpemU6IEBmb250LXNpemUtaDM7IH1cbmg0LCAuaDQgeyBmb250LXNpemU6IEBmb250LXNpemUtaDQ7IH1cbmg1LCAuaDUgeyBmb250LXNpemU6IEBmb250LXNpemUtaDU7IH1cbmg2LCAuaDYgeyBmb250LXNpemU6IEBmb250LXNpemUtaDY7IH1cblxuXG4vLyBCb2R5IHRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxucCB7XG4gIG1hcmdpbjogMCAwIChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbn1cblxuLmxlYWQge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogZmxvb3IoKEBmb250LXNpemUtYmFzZSAqIDEuMTUpKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICB9XG59XG5cblxuLy8gRW1waGFzaXMgJiBtaXNjXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEV4OiAoMTJweCBzbWFsbCBmb250IC8gMTRweCBiYXNlIGZvbnQpICogMTAwJSA9IGFib3V0IDg1JVxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IGZsb29yKCgxMDAlICogQGZvbnQtc2l6ZS1zbWFsbCAvIEBmb250LXNpemUtYmFzZSkpO1xufVxuXG5tYXJrLFxuLm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc3RhdGUtd2FybmluZy1iZztcbiAgcGFkZGluZzogLjJlbTtcbn1cblxuLy8gQWxpZ25tZW50XG4udGV4dC1sZWZ0ICAgICAgICAgICB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbi50ZXh0LXJpZ2h0ICAgICAgICAgIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi50ZXh0LWNlbnRlciAgICAgICAgIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4udGV4dC1qdXN0aWZ5ICAgICAgICB7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbi50ZXh0LW5vd3JhcCAgICAgICAgIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vLyBUcmFuc2Zvcm1hdGlvblxuLnRleHQtbG93ZXJjYXNlICAgICAgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOyB9XG4udGV4dC11cHBlcmNhc2UgICAgICB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbi50ZXh0LWNhcGl0YWxpemUgICAgIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuLy8gQ29udGV4dHVhbCBjb2xvcnNcbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6IEB0ZXh0LW11dGVkO1xufVxuLnRleHQtcHJpbWFyeSB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQGJyYW5kLXByaW1hcnkpO1xufVxuLnRleHQtc3VjY2VzcyB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLXN1Y2Nlc3MtdGV4dCk7XG59XG4udGV4dC1pbmZvIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtaW5mby10ZXh0KTtcbn1cbi50ZXh0LXdhcm5pbmcge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS13YXJuaW5nLXRleHQpO1xufVxuLnRleHQtZGFuZ2VyIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtZGFuZ2VyLXRleHQpO1xufVxuXG4vLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG4vLyBGb3Igbm93IHdlJ2xsIGxlYXZlIHRoZXNlIGFsb25nc2lkZSB0aGUgdGV4dCBjbGFzc2VzIHVudGlsIHY0IHdoZW4gd2UgY2FuXG4vLyBzYWZlbHkgc2hpZnQgdGhpbmdzIGFyb3VuZCAocGVyIFNlbVZlciBydWxlcykuXG4uYmctcHJpbWFyeSB7XG4gIC8vIEdpdmVuIHRoZSBjb250cmFzdCBoZXJlLCB0aGlzIGlzIHRoZSBvbmx5IGNsYXNzIHRvIGhhdmUgaXRzIGNvbG9yIGludmVydGVkXG4gIC8vIGF1dG9tYXRpY2FsbHkuXG4gIGNvbG9yOiAjZmZmO1xuICAuYmctdmFyaWFudChAYnJhbmQtcHJpbWFyeSk7XG59XG4uYmctc3VjY2VzcyB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS1zdWNjZXNzLWJnKTtcbn1cbi5iZy1pbmZvIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLWluZm8tYmcpO1xufVxuLmJnLXdhcm5pbmcge1xuICAuYmctdmFyaWFudChAc3RhdGUtd2FybmluZy1iZyk7XG59XG4uYmctZGFuZ2VyIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLWRhbmdlci1iZyk7XG59XG5cblxuLy8gUGFnZSBoZWFkZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBhZ2UtaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206ICgoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgLSAxKTtcbiAgbWFyZ2luOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICogMikgMCBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAcGFnZS1oZWFkZXItYm9yZGVyLWNvbG9yO1xufVxuXG5cbi8vIExpc3RzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFVub3JkZXJlZCBhbmQgT3JkZXJlZCBsaXN0c1xudWwsXG5vbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgdWwsXG4gIG9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vIExpc3Qgb3B0aW9uc1xuXG4vLyBVbnN0eWxlZCBrZWVwcyBsaXN0IGl0ZW1zIGJsb2NrIGxldmVsLCBqdXN0IHJlbW92ZXMgZGVmYXVsdCBicm93c2VyIHBhZGRpbmcgYW5kIGxpc3Qtc3R5bGVcbi5saXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vLyBJbmxpbmUgdHVybnMgbGlzdCBpdGVtcyBpbnRvIGlubGluZS1ibG9ja1xuLmxpc3QtaW5saW5lIHtcbiAgLmxpc3QtdW5zdHlsZWQoKTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgfVxufVxuXG4vLyBEZXNjcmlwdGlvbiBMaXN0c1xuZGwge1xuICBtYXJnaW4tdG9wOiAwOyAvLyBSZW1vdmUgYnJvd3NlciBkZWZhdWx0XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbn1cbmR0LFxuZGQge1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG59XG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogMDsgLy8gVW5kbyBicm93c2VyIGRlZmF1bHRcbn1cblxuLy8gSG9yaXpvbnRhbCBkZXNjcmlwdGlvbiBsaXN0c1xuLy9cbi8vIERlZmF1bHRzIHRvIGJlaW5nIHN0YWNrZWQgd2l0aG91dCBhbnkgb2YgdGhlIGJlbG93IHN0eWxlcyBhcHBsaWVkLCB1bnRpbCB0aGVcbi8vIGdyaWQgYnJlYWtwb2ludCBpcyByZWFjaGVkIChkZWZhdWx0IG9mIH43NjhweCkuXG5cbi5kbC1ob3Jpem9udGFsIHtcbiAgZGQge1xuICAgICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpOyAvLyBDbGVhciB0aGUgZmxvYXRlZCBgZHRgIGlmIGFuIGVtcHR5IGBkZGAgaXMgcHJlc2VudFxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBkbC1ob3Jpem9udGFsLWJyZWFrcG9pbnQpIHtcbiAgICBkdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAoQGRsLWhvcml6b250YWwtb2Zmc2V0IC0gMjApO1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIC50ZXh0LW92ZXJmbG93KCk7XG4gICAgfVxuICAgIGRkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBAZGwtaG9yaXpvbnRhbC1vZmZzZXQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBYmJyZXZpYXRpb25zIGFuZCBhY3Jvbnltc1xuYWJiclt0aXRsZV0sXG4vLyBBZGQgZGF0YS0qIGF0dHJpYnV0ZSB0byBoZWxwIG91dCBvdXIgdG9vbHRpcCBwbHVnaW4sIHBlciBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzUyNTdcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgQGFiYnItYm9yZGVyLWNvbG9yO1xufVxuLmluaXRpYWxpc20ge1xuICBmb250LXNpemU6IDkwJTtcbiAgLnRleHQtdXBwZXJjYXNlKCk7XG59XG5cbi8vIEJsb2NrcXVvdGVzXG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpIEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luOiAwIDAgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXNpemU6IEBibG9ja3F1b3RlLWZvbnQtc2l6ZTtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCBAYmxvY2txdW90ZS1ib3JkZXItY29sb3I7XG5cbiAgcCxcbiAgdWwsXG4gIG9sIHtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBOb3RlOiBEZXByZWNhdGVkIHNtYWxsIGFuZCAuc21hbGwgYXMgb2YgdjMuMS4wXG4gIC8vIENvbnRleHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2NjBcbiAgZm9vdGVyLFxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDgwJTsgLy8gYmFjayB0byBkZWZhdWx0IGZvbnQtc2l6ZVxuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICBjb2xvcjogQGJsb2NrcXVvdGUtc21hbGwtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDBBMCc7IC8vIGVtIGRhc2gsIG5ic3BcbiAgICB9XG4gIH1cbn1cblxuLy8gT3Bwb3NpdGUgYWxpZ25tZW50IG9mIGJsb2NrcXVvdGVcbi8vXG4vLyBIZWFkcyB1cDogYGJsb2NrcXVvdGUucHVsbC1yaWdodGAgaGFzIGJlZW4gZGVwcmVjYXRlZCBhcyBvZiB2My4xLjAuXG4uYmxvY2txdW90ZS1yZXZlcnNlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCBAYmxvY2txdW90ZS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAvLyBBY2NvdW50IGZvciBjaXRhdGlvblxuICBmb290ZXIsXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgICY6YmVmb3JlIHsgY29udGVudDogJyc7IH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwQTAgXFwyMDE0JzsgLy8gbmJzcCwgZW0gZGFzaFxuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRyZXNzZXNcbmFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xufVxuIiwiLy8gVHlwb2dyYXBoeVxuXG4udGV4dC1lbXBoYXNpcy12YXJpYW50KEBjb2xvcikge1xuICBjb2xvcjogQGNvbG9yO1xuICBhJjpob3ZlcixcbiAgYSY6Zm9jdXMge1xuICAgIGNvbG9yOiBkYXJrZW4oQGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG5cbi5iZy12YXJpYW50KEBjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG4gIGEmOmhvdmVyLFxuICBhJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gVGV4dCBvdmVyZmxvd1xuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xuXG4udGV4dC1vdmVyZmxvdygpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvL1xuLy8gQ29kZSAoaW5saW5lIGFuZCBibG9jaylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSW5saW5lIGFuZCBibG9jayBjb2RlIHN0eWxlc1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbn1cblxuLy8gSW5saW5lIGNvZGVcbmNvZGUge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6IEBjb2RlLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29kZS1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbn1cblxuLy8gVXNlciBpbnB1dCB0eXBpY2FsbHkgZW50ZXJlZCB2aWEga2V5Ym9hcmRcbmtiZCB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogQGtiZC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGtiZC1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtc21hbGw7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIHJnYmEoMCwwLDAsLjI1KTtcblxuICBrYmQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuLy8gQmxvY2tzIG9mIGNvZGVcbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAoKEBsaW5lLWhlaWdodC1jb21wdXRlZCAtIDEpIC8gMik7XG4gIG1hcmdpbjogMCAwIChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcbiAgZm9udC1zaXplOiAoQGZvbnQtc2l6ZS1iYXNlIC0gMSk7IC8vIDE0cHggdG8gMTNweFxuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBjb2xvcjogQHByZS1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHByZS1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQHByZS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgLy8gQWNjb3VudCBmb3Igc29tZSBjb2RlIG91dHB1dHMgdGhhdCBwbGFjZSBjb2RlIHRhZ3MgaW4gcHJlIHRhZ3NcbiAgY29kZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuLy8gRW5hYmxlIHNjcm9sbGFibGUgYmxvY2tzIG9mIGNvZGVcbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6IEBwcmUtc2Nyb2xsYWJsZS1tYXgtaGVpZ2h0O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4iLCIvL1xuLy8gR3JpZCBzeXN0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQ29udGFpbmVyIHdpZHRoc1xuLy9cbi8vIFNldCB0aGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgZm9yIGZpeGVkIG5hdmJhcnMgaW4gbWVkaWEgcXVlcmllcy5cblxuLmNvbnRhaW5lciB7XG4gIC5jb250YWluZXItZml4ZWQoKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICB3aWR0aDogQGNvbnRhaW5lci1zbTtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICB3aWR0aDogQGNvbnRhaW5lci1tZDtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICB3aWR0aDogQGNvbnRhaW5lci1sZztcbiAgfVxufVxuXG5cbi8vIEZsdWlkIGNvbnRhaW5lclxuLy9cbi8vIFV0aWxpemVzIHRoZSBtaXhpbiBtZWFudCBmb3IgZml4ZWQgd2lkdGggY29udGFpbmVycywgYnV0IHdpdGhvdXQgYW55IGRlZmluZWRcbi8vIHdpZHRoIGZvciBmbHVpZCwgZnVsbCB3aWR0aCBsYXlvdXRzLlxuXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgLmNvbnRhaW5lci1maXhlZCgpO1xufVxuXG5cbi8vIFJvd1xuLy9cbi8vIFJvd3MgY29udGFpbiBhbmQgY2xlYXIgdGhlIGZsb2F0cyBvZiB5b3VyIGNvbHVtbnMuXG5cbi5yb3cge1xuICAubWFrZS1yb3coKTtcbn1cblxuXG4vLyBDb2x1bW5zXG4vL1xuLy8gQ29tbW9uIHN0eWxlcyBmb3Igc21hbGwgYW5kIGxhcmdlIGdyaWQgY29sdW1uc1xuXG4ubWFrZS1ncmlkLWNvbHVtbnMoKTtcblxuXG4vLyBFeHRyYSBzbWFsbCBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIGV4dHJhIHNtYWxsIGRldmljZXMgbGlrZVxuLy8gc21hcnRwaG9uZXMuXG5cbi5tYWtlLWdyaWQoeHMpO1xuXG5cbi8vIFNtYWxsIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIHNtYWxsIGRldmljZSByYW5nZSwgZnJvbSBwaG9uZXNcbi8vIHRvIHRhYmxldHMuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAubWFrZS1ncmlkKHNtKTtcbn1cblxuXG4vLyBNZWRpdW0gZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAubWFrZS1ncmlkKG1kKTtcbn1cblxuXG4vLyBMYXJnZSBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBsYXJnZSBkZXNrdG9wIGRldmljZSByYW5nZS5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gIC5tYWtlLWdyaWQobGcpO1xufVxuIiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG4uY29udGFpbmVyLWZpeGVkKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6ICBmbG9vcigoQGd1dHRlciAvIDIpKTtcbiAgcGFkZGluZy1yaWdodDogY2VpbCgoQGd1dHRlciAvIDIpKTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG5cbi8vIENyZWF0ZXMgYSB3cmFwcGVyIGZvciBhIHNlcmllcyBvZiBjb2x1bW5zXG4ubWFrZS1yb3coQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIG1hcmdpbi1sZWZ0OiAgY2VpbCgoQGd1dHRlciAvIC0yKSk7XG4gIG1hcmdpbi1yaWdodDogZmxvb3IoKEBndXR0ZXIgLyAtMikpO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cblxuLy8gR2VuZXJhdGUgdGhlIGV4dHJhIHNtYWxsIGNvbHVtbnNcbi5tYWtlLXhzLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xufVxuLm1ha2UteHMtY29sdW1uLW9mZnNldChAY29sdW1ucykge1xuICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG4ubWFrZS14cy1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbn1cbi5tYWtlLXhzLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbn1cblxuLy8gR2VuZXJhdGUgdGhlIHNtYWxsIGNvbHVtbnNcbi5tYWtlLXNtLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2Utc20tY29sdW1uLW9mZnNldChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLXNtLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1zbS1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgdGhlIG1lZGl1bSBjb2x1bW5zXG4ubWFrZS1tZC1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLW1kLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1tZC1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbWQtY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBsYXJnZSBjb2x1bW5zXG4ubWFrZS1sZy1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLWxnLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1sZy1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbGctY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4iLCIvLyBGcmFtZXdvcmsgZ3JpZCBnZW5lcmF0aW9uXG4vL1xuLy8gVXNlZCBvbmx5IGJ5IEJvb3RzdHJhcCB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgZ3JpZCBjbGFzc2VzIGdpdmVuXG4vLyBhbnkgdmFsdWUgb2YgYEBncmlkLWNvbHVtbnNgLlxuXG4ubWFrZS1ncmlkLWNvbHVtbnMoKSB7XG4gIC8vIENvbW1vbiBzdHlsZXMgZm9yIGFsbCBzaXplcyBvZiBncmlkIGNvbHVtbnMsIHdpZHRocyAxLTEyXG4gIC5jb2woQGluZGV4KSB7IC8vIGluaXRpYWxcbiAgICBAaXRlbTogflwiLmNvbC14cy1Ae2luZGV4fSwgLmNvbC1zbS1Ae2luZGV4fSwgLmNvbC1tZC1Ae2luZGV4fSwgLmNvbC1sZy1Ae2luZGV4fVwiO1xuICAgIC5jb2woKEBpbmRleCArIDEpLCBAaXRlbSk7XG4gIH1cbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPTwgQGdyaWQtY29sdW1ucykgeyAvLyBnZW5lcmFsOyBcIj08XCIgaXNuJ3QgYSB0eXBvXG4gICAgQGl0ZW06IH5cIi5jb2wteHMtQHtpbmRleH0sIC5jb2wtc20tQHtpbmRleH0sIC5jb2wtbWQtQHtpbmRleH0sIC5jb2wtbGctQHtpbmRleH1cIjtcbiAgICAuY29sKChAaW5kZXggKyAxKSwgflwiQHtsaXN0fSwgQHtpdGVtfVwiKTtcbiAgfVxuICAuY29sKEBpbmRleCwgQGxpc3QpIHdoZW4gKEBpbmRleCA+IEBncmlkLWNvbHVtbnMpIHsgLy8gdGVybWluYWxcbiAgICBAe2xpc3R9IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGNvbGxhcHNpbmcgd2hlbiBlbXB0eVxuICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgLy8gSW5uZXIgZ3V0dGVyIHZpYSBwYWRkaW5nXG4gICAgICBwYWRkaW5nLWxlZnQ6ICBjZWlsKChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBmbG9vcigoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICAgIH1cbiAgfVxuICAuY29sKDEpOyAvLyBraWNrc3RhcnQgaXRcbn1cblxuLmZsb2F0LWdyaWQtY29sdW1ucyhAY2xhc3MpIHtcbiAgLmNvbChAaW5kZXgpIHsgLy8gaW5pdGlhbFxuICAgIEBpdGVtOiB+XCIuY29sLUB7Y2xhc3N9LUB7aW5kZXh9XCI7XG4gICAgLmNvbCgoQGluZGV4ICsgMSksIEBpdGVtKTtcbiAgfVxuICAuY29sKEBpbmRleCwgQGxpc3QpIHdoZW4gKEBpbmRleCA9PCBAZ3JpZC1jb2x1bW5zKSB7IC8vIGdlbmVyYWxcbiAgICBAaXRlbTogflwiLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fVwiO1xuICAgIC5jb2woKEBpbmRleCArIDEpLCB+XCJAe2xpc3R9LCBAe2l0ZW19XCIpO1xuICB9XG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID4gQGdyaWQtY29sdW1ucykgeyAvLyB0ZXJtaW5hbFxuICAgIEB7bGlzdH0ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG4gIC5jb2woMSk7IC8vIGtpY2tzdGFydCBpdFxufVxuXG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gd2lkdGgpIGFuZCAoQGluZGV4ID4gMCkge1xuICAuY29sLUB7Y2xhc3N9LUB7aW5kZXh9IHtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVzaCkgYW5kIChAaW5kZXggPiAwKSB7XG4gIC5jb2wtQHtjbGFzc30tcHVzaC1Ae2luZGV4fSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVzaCkgYW5kIChAaW5kZXggPSAwKSB7XG4gIC5jb2wtQHtjbGFzc30tcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVsbCkgYW5kIChAaW5kZXggPiAwKSB7XG4gIC5jb2wtQHtjbGFzc30tcHVsbC1Ae2luZGV4fSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBpbmRleCAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1bGwpIGFuZCAoQGluZGV4ID0gMCkge1xuICAuY29sLUB7Y2xhc3N9LXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBvZmZzZXQpIHtcbiAgLmNvbC1Ae2NsYXNzfS1vZmZzZXQtQHtpbmRleH0ge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gQmFzaWMgbG9vcGluZyBpbiBMRVNTXG4ubG9vcC1ncmlkLWNvbHVtbnMoQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAaW5kZXggPj0gMCkge1xuICAuY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpO1xuICAvLyBuZXh0IGl0ZXJhdGlvblxuICAubG9vcC1ncmlkLWNvbHVtbnMoKEBpbmRleCAtIDEpLCBAY2xhc3MsIEB0eXBlKTtcbn1cblxuLy8gQ3JlYXRlIGdyaWQgZm9yIHNwZWNpZmljIGNsYXNzXG4ubWFrZS1ncmlkKEBjbGFzcykge1xuICAuZmxvYXQtZ3JpZC1jb2x1bW5zKEBjbGFzcyk7XG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHdpZHRoKTtcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgcHVsbCk7XG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHB1c2gpO1xuICAubG9vcC1ncmlkLWNvbHVtbnMoQGdyaWQtY29sdW1ucywgQGNsYXNzLCBvZmZzZXQpO1xufVxuIiwiLy9cbi8vIFRhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZS1iZztcbn1cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogQHRhYmxlLWNlbGwtcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206IEB0YWJsZS1jZWxsLXBhZGRpbmc7XG4gIGNvbG9yOiBAdGV4dC1tdXRlZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuXG4vLyBCYXNlbGluZSBzdHlsZXNcblxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICAvLyBDZWxsc1xuICA+IHRoZWFkLFxuICA+IHRib2R5LFxuICA+IHRmb290IHtcbiAgICA+IHRyIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogQHRhYmxlLWNlbGwtcGFkZGluZztcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQm90dG9tIGFsaWduIGZvciBjb2x1bW4gaGVhZGluZ3NcbiAgPiB0aGVhZCA+IHRyID4gdGgge1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cbiAgLy8gUmVtb3ZlIHRvcCBib3JkZXIgZnJvbSB0aGVhZCBieSBkZWZhdWx0XG4gID4gY2FwdGlvbiArIHRoZWFkLFxuICA+IGNvbGdyb3VwICsgdGhlYWQsXG4gID4gdGhlYWQ6Zmlyc3QtY2hpbGQge1xuICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBBY2NvdW50IGZvciBtdWx0aXBsZSB0Ym9keSBpbnN0YW5jZXNcbiAgPiB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIE5lc3RpbmdcbiAgLnRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYm9keS1iZztcbiAgfVxufVxuXG5cbi8vIENvbmRlbnNlZCB0YWJsZSB3LyBoYWxmIHBhZGRpbmdcblxuLnRhYmxlLWNvbmRlbnNlZCB7XG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBwYWRkaW5nOiBAdGFibGUtY29uZGVuc2VkLWNlbGwtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBCb3JkZXJlZCB2ZXJzaW9uXG4vL1xuLy8gQWRkIGJvcmRlcnMgYWxsIGFyb3VuZCB0aGUgdGFibGUgYW5kIGJldHdlZW4gYWxsIHRoZSBjb2x1bW5zLlxuXG4udGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICA+IHRoZWFkLFxuICA+IHRib2R5LFxuICA+IHRmb290IHtcbiAgICA+IHRyIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiB0aGVhZCA+IHRyIHtcbiAgICA+IHRoLFxuICAgID4gdGQge1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFplYnJhLXN0cmlwaW5nXG4vL1xuLy8gRGVmYXVsdCB6ZWJyYS1zdHJpcGUgc3R5bGVzIChhbHRlcm5hdGluZyBncmF5IGFuZCB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcylcblxuLnRhYmxlLXN0cmlwZWQge1xuICA+IHRib2R5ID4gdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRhYmxlLWJnLWFjY2VudDtcbiAgfVxufVxuXG5cbi8vIEhvdmVyIGVmZmVjdFxuLy9cbi8vIFBsYWNlZCBoZXJlIHNpbmNlIGl0IGhhcyB0byBjb21lIGFmdGVyIHRoZSBwb3RlbnRpYWwgemVicmEgc3RyaXBpbmdcblxuLnRhYmxlLWhvdmVyIHtcbiAgPiB0Ym9keSA+IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGFibGUtYmctaG92ZXI7XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBjZWxsIHNpemluZ1xuLy9cbi8vIFJlc2V0IGRlZmF1bHQgdGFibGUgYmVoYXZpb3JcblxudGFibGUgY29sW2NsYXNzKj1cImNvbC1cIl0ge1xuICBwb3NpdGlvbjogc3RhdGljOyAvLyBQcmV2ZW50IGJvcmRlciBoaWRpbmcgaW4gRmlyZWZveCBhbmQgSUU5LTExIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTYyMylcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNvbHVtbjtcbn1cbnRhYmxlIHtcbiAgdGQsXG4gIHRoIHtcbiAgICAmW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgICAgcG9zaXRpb246IHN0YXRpYzsgLy8gUHJldmVudCBib3JkZXIgaGlkaW5nIGluIEZpcmVmb3ggYW5kIElFOS0xMSAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2MjMpXG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVGFibGUgYmFja2dyb3VuZHNcbi8vXG4vLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuLy8gaW5oZXJpdGFuY2UgdG8gbmVzdGVkIHRhYmxlcy5cblxuLy8gR2VuZXJhdGUgdGhlIGNvbnRleHR1YWwgdmFyaWFudHNcbi50YWJsZS1yb3ctdmFyaWFudChhY3RpdmU7IEB0YWJsZS1iZy1hY3RpdmUpO1xuLnRhYmxlLXJvdy12YXJpYW50KHN1Y2Nlc3M7IEBzdGF0ZS1zdWNjZXNzLWJnKTtcbi50YWJsZS1yb3ctdmFyaWFudChpbmZvOyBAc3RhdGUtaW5mby1iZyk7XG4udGFibGUtcm93LXZhcmlhbnQod2FybmluZzsgQHN0YXRlLXdhcm5pbmctYmcpO1xuLnRhYmxlLXJvdy12YXJpYW50KGRhbmdlcjsgQHN0YXRlLWRhbmdlci1iZyk7XG5cblxuLy8gUmVzcG9uc2l2ZSB0YWJsZXNcbi8vXG4vLyBXcmFwIHlvdXIgdGFibGVzIGluIGAudGFibGUtcmVzcG9uc2l2ZWAgYW5kIHdlJ2xsIG1ha2UgdGhlbSBtb2JpbGUgZnJpZW5kbHlcbi8vIGJ5IGVuYWJsaW5nIGhvcml6b250YWwgc2Nyb2xsaW5nLiBPbmx5IGFwcGxpZXMgPDc2OHB4LiBFdmVyeXRoaW5nIGFib3ZlIHRoYXRcbi8vIHdpbGwgZGlzcGxheSBub3JtYWxseS5cblxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAwLjAxJTsgLy8gV29ya2Fyb3VuZCBmb3IgSUU5IGJ1ZyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTQ4MzcpXG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICogMC43NSk7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG5cbiAgICAvLyBUaWdodGVuIHVwIHNwYWNpbmdcbiAgICA+IC50YWJsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGNvbnRlbnQgZG9lc24ndCB3cmFwXG4gICAgICA+IHRoZWFkLFxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyIHtcbiAgICAgICAgICA+IHRoLFxuICAgICAgICAgID4gdGQge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTcGVjaWFsIG92ZXJyaWRlcyBmb3IgdGhlIGJvcmRlcmVkIHRhYmxlc1xuICAgID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICAgIGJvcmRlcjogMDtcblxuICAgICAgLy8gTnVrZSB0aGUgYXBwcm9wcmlhdGUgYm9yZGVycyBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGhhbmRsZSB0aGVtXG4gICAgICA+IHRoZWFkLFxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyIHtcbiAgICAgICAgICA+IHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICAgID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgID4gdGg6bGFzdC1jaGlsZCxcbiAgICAgICAgICA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPbmx5IG51a2UgdGhlIGxhc3Qgcm93J3MgYm90dG9tLWJvcmRlciBpbiBgdGJvZHlgIGFuZCBgdGZvb3RgIHNpbmNlXG4gICAgICAvLyBjaGFuY2VzIGFyZSB0aGVyZSB3aWxsIGJlIG9ubHkgb25lIGB0cmAgaW4gYSBgdGhlYWRgIGFuZCB0aGF0IHdvdWxkXG4gICAgICAvLyByZW1vdmUgdGhlIGJvcmRlciBhbHRvZ2V0aGVyLlxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyOmxhc3QtY2hpbGQge1xuICAgICAgICAgID4gdGgsXG4gICAgICAgICAgPiB0ZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG4iLCIvLyBUYWJsZXNcblxuLnRhYmxlLXJvdy12YXJpYW50KEBzdGF0ZTsgQGJhY2tncm91bmQpIHtcbiAgLy8gRXhhY3Qgc2VsZWN0b3JzIGJlbG93IHJlcXVpcmVkIHRvIG92ZXJyaWRlIGAudGFibGUtc3RyaXBlZGAgYW5kIHByZXZlbnRcbiAgLy8gaW5oZXJpdGFuY2UgdG8gbmVzdGVkIHRhYmxlcy5cbiAgLnRhYmxlID4gdGhlYWQgPiB0cixcbiAgLnRhYmxlID4gdGJvZHkgPiB0cixcbiAgLnRhYmxlID4gdGZvb3QgPiB0ciB7XG4gICAgPiB0ZC5Ae3N0YXRlfSxcbiAgICA+IHRoLkB7c3RhdGV9LFxuICAgICYuQHtzdGF0ZX0gPiB0ZCxcbiAgICAmLkB7c3RhdGV9ID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVzIGZvciBgLnRhYmxlLWhvdmVyYFxuICAvLyBOb3RlOiB0aGlzIGlzIG5vdCBhdmFpbGFibGUgZm9yIGNlbGxzIG9yIHJvd3Mgd2l0aGluIGB0aGVhZGAgb3IgYHRmb290YC5cbiAgLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciB7XG4gICAgPiB0ZC5Ae3N0YXRlfTpob3ZlcixcbiAgICA+IHRoLkB7c3RhdGV9OmhvdmVyLFxuICAgICYuQHtzdGF0ZX06aG92ZXIgPiB0ZCxcbiAgICAmOmhvdmVyID4gLkB7c3RhdGV9LFxuICAgICYuQHtzdGF0ZX06aG92ZXIgPiB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDUlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBGb3Jtc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBOb3JtYWxpemUgbm9uLWNvbnRyb2xzXG4vL1xuLy8gUmVzdHlsZSBhbmQgYmFzZWxpbmUgbm9uLWNvbnRyb2wgZm9ybSBlbGVtZW50cy5cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgLy8gQ2hyb21lIGFuZCBGaXJlZm94IHNldCBhIGBtaW4td2lkdGg6IG1pbi1jb250ZW50O2Agb24gZmllbGRzZXRzLFxuICAvLyBzbyB3ZSByZXNldCB0aGF0IHRvIGVuc3VyZSBpdCBiZWhhdmVzIG1vcmUgbGlrZSBhIHN0YW5kYXJkIGJsb2NrIGVsZW1lbnQuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEyMzU5LlxuICBtaW4td2lkdGg6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IEBsZWdlbmQtY29sb3I7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBsZWdlbmQtYm9yZGVyLWNvbG9yO1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBGb3JjZSBJRTggdG8gd3JhcCBsb25nIGNvbnRlbnQgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzEzMTQxKVxuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5cbi8vIE5vcm1hbGl6ZSBmb3JtIGNvbnRyb2xzXG4vL1xuLy8gV2hpbGUgbW9zdCBvZiBvdXIgZm9ybSBzdHlsZXMgcmVxdWlyZSBleHRyYSBjbGFzc2VzLCBzb21lIGJhc2ljIG5vcm1hbGl6YXRpb25cbi8vIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBvcHRpbXVtIGRpc3BsYXkgd2l0aCBvciB3aXRob3V0IHRob3NlIGNsYXNzZXMgdG8gYmV0dGVyXG4vLyBhZGRyZXNzIGJyb3dzZXIgaW5jb25zaXN0ZW5jaWVzLlxuXG4vLyBPdmVycmlkZSBjb250ZW50LWJveCBpbiBOb3JtYWxpemUgKCogaXNuJ3Qgc3BlY2lmaWMgZW5vdWdoKVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuXG4vLyBQb3NpdGlvbiByYWRpb3MgYW5kIGNoZWNrYm94ZXMgYmV0dGVyXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW46IDRweCAwIDA7XG4gIG1hcmdpbi10b3A6IDFweCBcXDk7IC8vIElFOC05XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIE1ha2UgcmFuZ2UgaW5wdXRzIGJlaGF2ZSBsaWtlIHRleHR1YWwgZm9ybSBjb250cm9sc1xuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBNYWtlIG11bHRpcGxlIHNlbGVjdCBlbGVtZW50cyBoZWlnaHQgbm90IGZpeGVkXG5zZWxlY3RbbXVsdGlwbGVdLFxuc2VsZWN0W3NpemVdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vLyBGb2N1cyBmb3IgZmlsZSwgcmFkaW8sIGFuZCBjaGVja2JveFxuaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMge1xuICAudGFiLWZvY3VzKCk7XG59XG5cbi8vIEFkanVzdCBvdXRwdXQgZWxlbWVudFxub3V0cHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogQGlucHV0LWNvbG9yO1xufVxuXG5cbi8vIENvbW1vbiBmb3JtIGNvbnRyb2xzXG4vL1xuLy8gU2hhcmVkIHNpemUgYW5kIHR5cGUgcmVzZXRzIGZvciBmb3JtIGNvbnRyb2xzLiBBcHBseSBgLmZvcm0tY29udHJvbGAgdG8gYW55XG4vLyBvZiB0aGUgZm9sbG93aW5nIGZvcm0gY29udHJvbHM6XG4vL1xuLy8gc2VsZWN0XG4vLyB0ZXh0YXJlYVxuLy8gaW5wdXRbdHlwZT1cInRleHRcIl1cbi8vIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXVxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl1cbi8vIGlucHV0W3R5cGU9XCJkYXRlXCJdXG4vLyBpbnB1dFt0eXBlPVwibW9udGhcIl1cbi8vIGlucHV0W3R5cGU9XCJ0aW1lXCJdXG4vLyBpbnB1dFt0eXBlPVwid2Vla1wiXVxuLy8gaW5wdXRbdHlwZT1cIm51bWJlclwiXVxuLy8gaW5wdXRbdHlwZT1cImVtYWlsXCJdXG4vLyBpbnB1dFt0eXBlPVwidXJsXCJdXG4vLyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdXG4vLyBpbnB1dFt0eXBlPVwidGVsXCJdXG4vLyBpbnB1dFt0eXBlPVwiY29sb3JcIl1cblxuLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7IC8vIE1ha2UgaW5wdXRzIGF0IGxlYXN0IHRoZSBoZWlnaHQgb2YgdGhlaXIgYnV0dG9uIGNvdW50ZXJwYXJ0IChiYXNlIGxpbmUtaGVpZ2h0ICsgcGFkZGluZyArIGJvcmRlcilcbiAgcGFkZGluZzogQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiBAaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dC1iZztcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCBAaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1czsgLy8gTm90ZTogVGhpcyBoYXMgbm8gZWZmZWN0IG9uIDxzZWxlY3Q+cyBpbiBzb21lIGJyb3dzZXJzLCBkdWUgdG8gdGhlIGxpbWl0ZWQgc3R5bGFiaWxpdHkgb2YgPHNlbGVjdD5zIGluIENTUy5cbiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSkpO1xuICAudHJhbnNpdGlvbih+XCJib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzXCIpO1xuXG4gIC8vIEN1c3RvbWl6ZSB0aGUgYDpmb2N1c2Agc3RhdGUgdG8gaW1pdGF0ZSBuYXRpdmUgV2ViS2l0IHN0eWxlcy5cbiAgLmZvcm0tY29udHJvbC1mb2N1cygpO1xuXG4gIC8vIFBsYWNlaG9sZGVyXG4gIC5wbGFjZWhvbGRlcigpO1xuXG4gIC8vIFVuc3R5bGUgdGhlIGNhcmV0IG9uIGA8c2VsZWN0PmBzIGluIElFMTArLlxuICAmOjotbXMtZXhwYW5kIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBhbmQgcmVhZC1vbmx5IGlucHV0c1xuICAvL1xuICAvLyBIVE1MNSBzYXlzIHRoYXQgY29udHJvbHMgdW5kZXIgYSBmaWVsZHNldCA+IGxlZ2VuZDpmaXJzdC1jaGlsZCB3b24ndCBiZVxuICAvLyBkaXNhYmxlZCBpZiB0aGUgZmllbGRzZXQgaXMgZGlzYWJsZWQuIER1ZSB0byBpbXBsZW1lbnRhdGlvbiBkaWZmaWN1bHR5LCB3ZVxuICAvLyBkb24ndCBob25vciB0aGF0IGVkZ2UgY2FzZTsgd2Ugc3R5bGUgdGhlbSBhcyBkaXNhYmxlZCBhbnl3YXkuXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dC1iZy1kaXNhYmxlZDtcbiAgICBvcGFjaXR5OiAxOyAvLyBpT1MgZml4IGZvciB1bnJlYWRhYmxlIGRpc2FibGVkIGNvbnRlbnQ7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjU1XG4gIH1cblxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFJlc2V0IGhlaWdodCBmb3IgYHRleHRhcmVhYHNcbiAgdGV4dGFyZWEmIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuXG4vLyBTZWFyY2ggaW5wdXRzIGluIGlPU1xuLy9cbi8vIFRoaXMgb3ZlcnJpZGVzIHRoZSBleHRyYSByb3VuZGVkIGNvcm5lcnMgb24gc2VhcmNoIGlucHV0cyBpbiBpT1Mgc28gdGhhdCBvdXJcbi8vIGAuZm9ybS1jb250cm9sYCBjbGFzcyBjYW4gcHJvcGVybHkgc3R5bGUgdGhlbS4gTm90ZSB0aGF0IHRoaXMgY2Fubm90IHNpbXBseVxuLy8gYmUgYWRkZWQgdG8gYC5mb3JtLWNvbnRyb2xgIGFzIGl0J3Mgbm90IHNwZWNpZmljIGVub3VnaC4gRm9yIGRldGFpbHMsIHNlZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTU4Ni5cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuXG4vLyBTcGVjaWFsIHN0eWxlcyBmb3IgaU9TIHRlbXBvcmFsIGlucHV0c1xuLy9cbi8vIEluIE1vYmlsZSBTYWZhcmksIHNldHRpbmcgYGRpc3BsYXk6IGJsb2NrYCBvbiB0ZW1wb3JhbCBpbnB1dHMgY2F1c2VzIHRoZVxuLy8gdGV4dCB3aXRoaW4gdGhlIGlucHV0IHRvIGJlY29tZSB2ZXJ0aWNhbGx5IG1pc2FsaWduZWQuIEFzIGEgd29ya2Fyb3VuZCwgd2Vcbi8vIHNldCBhIHBpeGVsIGxpbmUtaGVpZ2h0IHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaGVpZ2h0IG9mIHRoZSBpbnB1dCwgYnV0IG9ubHlcbi8vIGZvciBTYWZhcmkuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5ODQ4XG4vL1xuLy8gTm90ZSB0aGF0IGFzIG9mIDkuMywgaU9TIGRvZXNuJ3Qgc3VwcG9ydCBgd2Vla2AuXG5cbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgJi5mb3JtLWNvbnRyb2wge1xuICAgICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgICB9XG5cbiAgICAmLmlucHV0LXNtLFxuICAgIC5pbnB1dC1ncm91cC1zbSAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIH1cblxuICAgICYuaW5wdXQtbGcsXG4gICAgLmlucHV0LWdyb3VwLWxnICYge1xuICAgICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgfVxuICB9XG59XG5cblxuLy8gRm9ybSBncm91cHNcbi8vXG4vLyBEZXNpZ25lZCB0byBoZWxwIHdpdGggdGhlIG9yZ2FuaXphdGlvbiBhbmQgc3BhY2luZyBvZiB2ZXJ0aWNhbCBmb3Jtcy4gRm9yXG4vLyBob3Jpem9udGFsIGZvcm1zLCB1c2UgdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLlxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IEBmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b207XG59XG5cblxuLy8gQ2hlY2tib3hlcyBhbmQgcmFkaW9zXG4vL1xuLy8gSW5kZW50IHRoZSBsYWJlbHMgdG8gcG9zaXRpb24gcmFkaW9zL2NoZWNrYm94ZXMgYXMgaGFuZ2luZyBjb250cm9scy5cblxuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICBsYWJlbCB7XG4gICAgbWluLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkOyAvLyBFbnN1cmUgdGhlIGlucHV0IGRvZXNuJ3QganVtcCB3aGVuIHRoZXJlIGlzIG5vIHRleHRcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG59XG5cbi5yYWRpbyArIC5yYWRpbyxcbi5jaGVja2JveCArIC5jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IC01cHg7IC8vIE1vdmUgdXAgc2libGluZyByYWRpb3Mgb3IgY2hlY2tib3hlcyBmb3IgdGlnaHRlciBzcGFjaW5nXG59XG5cbi8vIFJhZGlvcyBhbmQgY2hlY2tib3hlcyBvbiBzYW1lIGxpbmVcbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyAvLyBzcGFjZSBvdXQgY29uc2VjdXRpdmUgaW5saW5lIGNvbnRyb2xzXG59XG5cbi8vIEFwcGx5IHNhbWUgZGlzYWJsZWQgY3Vyc29yIHR3ZWFrIGFzIGZvciBpbnB1dHNcbi8vIFNvbWUgc3BlY2lhbCBjYXJlIGlzIG5lZWRlZCBiZWNhdXNlIDxsYWJlbD5zIGRvbid0IGluaGVyaXQgdGhlaXIgcGFyZW50J3MgYGN1cnNvcmAuXG4vL1xuLy8gTm90ZTogTmVpdGhlciByYWRpb3Mgbm9yIGNoZWNrYm94ZXMgY2FuIGJlIHJlYWRvbmx5LlxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cbi8vIFRoZXNlIGNsYXNzZXMgYXJlIHVzZWQgZGlyZWN0bHkgb24gPGxhYmVsPnNcbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgfVxufVxuLy8gVGhlc2UgY2xhc3NlcyBhcmUgdXNlZCBvbiBlbGVtZW50cyB3aXRoIDxsYWJlbD4gZGVzY2VuZGFudHNcbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBsYWJlbCB7XG4gICAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3RhdGljIGZvcm0gY29udHJvbCB0ZXh0XG4vL1xuLy8gQXBwbHkgY2xhc3MgdG8gYSBgcGAgZWxlbWVudCB0byBtYWtlIGFueSBzdHJpbmcgb2YgdGV4dCBhbGlnbiB3aXRoIGxhYmVscyBpblxuLy8gYSBob3Jpem9udGFsIGZvcm0gbGF5b3V0LlxuXG4uZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIC8vIFNpemUgaXQgYXBwcm9wcmlhdGVseSBuZXh0IHRvIHJlYWwgZm9ybSBjb250cm9sc1xuICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgcGFkZGluZy1ib3R0b206IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7XG4gIC8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbiBmcm9tIGBwYFxuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgQGZvbnQtc2l6ZS1iYXNlKTtcblxuICAmLmlucHV0LWxnLFxuICAmLmlucHV0LXNtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBzaXppbmdcbi8vXG4vLyBCdWlsZCBvbiBgLmZvcm0tY29udHJvbGAgd2l0aCBtb2RpZmllciBjbGFzc2VzIHRvIGRlY3JlYXNlIG9yIGluY3JlYXNlIHRoZVxuLy8gaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgZm9ybSBjb250cm9scy5cbi8vXG4vLyBUaGUgYC5mb3JtLWdyb3VwLSogZm9ybS1jb250cm9sYCB2YXJpYXRpb25zIGFyZSBzYWRseSBkdXBsaWNhdGVkIHRvIGF2b2lkIHRoZVxuLy8gaXNzdWUgZG9jdW1lbnRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE1MDc0LlxuXG4uaW5wdXQtc20ge1xuICAuaW5wdXQtc2l6ZShAaW5wdXQtaGVpZ2h0LXNtYWxsOyBAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDsgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1zbWFsbDsgQGxpbmUtaGVpZ2h0LXNtYWxsOyBAaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG4uZm9ybS1ncm91cC1zbSB7XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LXNtYWxsO1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsO1xuICB9XG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgfVxuICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgQGZvbnQtc2l6ZS1zbWFsbCk7XG4gICAgcGFkZGluZzogKEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsICsgMSkgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1zbWFsbDtcbiAgfVxufVxuXG4uaW5wdXQtbGcge1xuICAuaW5wdXQtc2l6ZShAaW5wdXQtaGVpZ2h0LWxhcmdlOyBAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDsgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1sYXJnZTsgQGxpbmUtaGVpZ2h0LWxhcmdlOyBAaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG59XG4uZm9ybS1ncm91cC1sZyB7XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWxhcmdlO1xuICAgIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlO1xuICB9XG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgfVxuICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgQGZvbnQtc2l6ZS1sYXJnZSk7XG4gICAgcGFkZGluZzogKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICsgMSkgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1sYXJnZTtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBmZWVkYmFjayBzdGF0ZXNcbi8vXG4vLyBBcHBseSBjb250ZXh0dWFsIGFuZCBzZW1hbnRpYyBzdGF0ZXMgdG8gaW5kaXZpZHVhbCBmb3JtIGNvbnRyb2xzLlxuXG4uaGFzLWZlZWRiYWNrIHtcbiAgLy8gRW5hYmxlIGFic29sdXRlIHBvc2l0aW9uaW5nXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBFbnN1cmUgaWNvbnMgZG9uJ3Qgb3ZlcmxhcCB0ZXh0XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIHBhZGRpbmctcmlnaHQ6IChAaW5wdXQtaGVpZ2h0LWJhc2UgKiAxLjI1KTtcbiAgfVxufVxuLy8gRmVlZGJhY2sgaWNvbiAocmVxdWlyZXMgLmdseXBoaWNvbiBjbGFzc2VzKVxuLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMjsgLy8gRW5zdXJlIGljb24gaXMgYWJvdmUgaW5wdXQgZ3JvdXBzXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogQGlucHV0LWhlaWdodC1iYXNlO1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5pbnB1dC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbn1cbi5pbnB1dC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbn1cblxuLy8gRmVlZGJhY2sgc3RhdGVzXG4uaGFzLXN1Y2Nlc3Mge1xuICAuZm9ybS1jb250cm9sLXZhbGlkYXRpb24oQHN0YXRlLXN1Y2Nlc3MtdGV4dDsgQHN0YXRlLXN1Y2Nlc3MtdGV4dDsgQHN0YXRlLXN1Y2Nlc3MtYmcpO1xufVxuLmhhcy13YXJuaW5nIHtcbiAgLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEBzdGF0ZS13YXJuaW5nLXRleHQ7IEBzdGF0ZS13YXJuaW5nLXRleHQ7IEBzdGF0ZS13YXJuaW5nLWJnKTtcbn1cbi5oYXMtZXJyb3Ige1xuICAuZm9ybS1jb250cm9sLXZhbGlkYXRpb24oQHN0YXRlLWRhbmdlci10ZXh0OyBAc3RhdGUtZGFuZ2VyLXRleHQ7IEBzdGF0ZS1kYW5nZXItYmcpO1xufVxuXG4vLyBSZXBvc2l0aW9uIGZlZWRiYWNrIGljb24gaWYgaW5wdXQgaGFzIHZpc2libGUgbGFiZWwgYWJvdmVcbi5oYXMtZmVlZGJhY2sgbGFiZWwge1xuXG4gICYgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyA1KTsgLy8gSGVpZ2h0IG9mIHRoZSBgbGFiZWxgIGFuZCBpdHMgbWFyZ2luXG4gIH1cbiAgJi5zci1vbmx5IH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAwO1xuICB9XG59XG5cblxuLy8gSGVscCB0ZXh0XG4vL1xuLy8gQXBwbHkgdG8gYW55IGVsZW1lbnQgeW91IHdpc2ggdG8gY3JlYXRlIGxpZ2h0IHRleHQgZm9yIHBsYWNlbWVudCBpbW1lZGlhdGVseVxuLy8gYmVsb3cgYSBmb3JtIGNvbnRyb2wuIFVzZSBmb3IgZ2VuZXJhbCBoZWxwLCBmb3JtYXR0aW5nLCBvciBpbnN0cnVjdGlvbmFsIHRleHQuXG5cbi5oZWxwLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7IC8vIGFjY291bnQgZm9yIGFueSBlbGVtZW50IHVzaW5nIGhlbHAtYmxvY2tcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogbGlnaHRlbihAdGV4dC1jb2xvciwgMjUlKTsgLy8gbGlnaHRlbiB0aGUgdGV4dCBzb21lIGZvciBjb250cmFzdFxufVxuXG5cbi8vIElubGluZSBmb3Jtc1xuLy9cbi8vIE1ha2UgZm9ybXMgYXBwZWFyIGlubGluZSgtYmxvY2spIGJ5IGFkZGluZyB0aGUgYC5mb3JtLWlubGluZWAgY2xhc3MuIElubGluZVxuLy8gZm9ybXMgYmVnaW4gc3RhY2tlZCBvbiBleHRyYSBzbWFsbCAobW9iaWxlKSBkZXZpY2VzIGFuZCB0aGVuIGdvIGlubGluZSB3aGVuXG4vLyB2aWV3cG9ydHMgcmVhY2ggPDc2OHB4LlxuLy9cbi8vIFJlcXVpcmVzIHdyYXBwaW5nIGlucHV0cyBhbmQgbGFiZWxzIHdpdGggYC5mb3JtLWdyb3VwYCBmb3IgcHJvcGVyIGRpc3BsYXkgb2Zcbi8vIGRlZmF1bHQgSFRNTCBmb3JtIGNvbnRyb2xzIGFuZCBvdXIgY3VzdG9tIGZvcm0gY29udHJvbHMgKGUuZy4sIGlucHV0IGdyb3VwcykuXG4vL1xuLy8gSGVhZHMgdXAhIFRoaXMgaXMgbWl4aW4tZWQgaW50byBgLm5hdmJhci1mb3JtYCBpbiBuYXZiYXJzLmxlc3MuXG5cbi5mb3JtLWlubGluZSB7XG5cbiAgLy8gS2ljayBpbiB0aGUgaW5saW5lXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIC8vIElubGluZS1ibG9jayBhbGwgdGhlIHRoaW5ncyBmb3IgXCJpbmxpbmVcIlxuICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIEluIG5hdmJhci1mb3JtLCBhbGxvdyBmb2xrcyB0byAqbm90KiB1c2UgYC5mb3JtLWdyb3VwYFxuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87IC8vIFByZXZlbnQgbGFiZWxzIGZyb20gc3RhY2tpbmcgYWJvdmUgaW5wdXRzIGluIGAuZm9ybS1ncm91cGBcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdGF0aWMgY29udHJvbHMgYmVoYXZlIGxpa2UgcmVndWxhciBvbmVzXG4gICAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gICAgICAuaW5wdXQtZ3JvdXAtYnRuLFxuICAgICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElucHV0IGdyb3VwcyBuZWVkIHRoYXQgMTAwJSB3aWR0aCB0aG91Z2hcbiAgICAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbiBvbiByYWRpb3MvY2hlY2tib3hlcyB0aGF0IHdlcmUgdXNlZCBmb3Igc3RhY2tpbmcsIGFuZFxuICAgIC8vIHRoZW4gdW5kbyB0aGUgZmxvYXRpbmcgb2YgcmFkaW9zIGFuZCBjaGVja2JveGVzIHRvIG1hdGNoLlxuICAgIC5yYWRpbyxcbiAgICAuY2hlY2tib3gge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC8vIFJlLW92ZXJyaWRlIHRoZSBmZWVkYmFjayBpY29uLlxuICAgIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG59XG5cblxuLy8gSG9yaXpvbnRhbCBmb3Jtc1xuLy9cbi8vIEhvcml6b250YWwgZm9ybXMgYXJlIGJ1aWx0IG9uIGdyaWQgY2xhc3NlcyBhbmQgYWxsb3cgeW91IHRvIGNyZWF0ZSBmb3JtcyB3aXRoXG4vLyBsYWJlbHMgb24gdGhlIGxlZnQgYW5kIGlucHV0cyBvbiB0aGUgcmlnaHQuXG5cbi5mb3JtLWhvcml6b250YWwge1xuXG4gIC8vIENvbnNpc3RlbnQgdmVydGljYWwgYWxpZ25tZW50IG9mIHJhZGlvcyBhbmQgY2hlY2tib3hlc1xuICAvL1xuICAvLyBMYWJlbHMgYWxzbyBnZXQgc29tZSByZXNldCBzdHlsZXMsIGJ1dCB0aGF0IGlzIHNjb3BlZCB0byBhIG1lZGlhIHF1ZXJ5IGJlbG93LlxuICAucmFkaW8sXG4gIC5jaGVja2JveCxcbiAgLnJhZGlvLWlubGluZSxcbiAgLmNoZWNrYm94LWlubGluZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpOyAvLyBEZWZhdWx0IHBhZGRpbmcgcGx1cyBhIGJvcmRlclxuICB9XG4gIC8vIEFjY291bnQgZm9yIHBhZGRpbmcgd2UncmUgYWRkaW5nIHRvIGVuc3VyZSB0aGUgYWxpZ25tZW50IGFuZCBvZiBoZWxwIHRleHRcbiAgLy8gYW5kIG90aGVyIGNvbnRlbnQgYmVsb3cgaXRlbXNcbiAgLnJhZGlvLFxuICAuY2hlY2tib3gge1xuICAgIG1pbi1oZWlnaHQ6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgKyAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpKTtcbiAgfVxuXG4gIC8vIE1ha2UgZm9ybSBncm91cHMgYmVoYXZlIGxpa2Ugcm93c1xuICAuZm9ybS1ncm91cCB7XG4gICAgLm1ha2Utcm93KCk7XG4gIH1cblxuICAvLyBSZXNldCBzcGFjaW5nIGFuZCByaWdodCBhbGlnbiBsYWJlbHMsIGJ1dCBzY29wZSB0byBtZWRpYSBxdWVyaWVzIHNvIHRoYXRcbiAgLy8gbGFiZWxzIG9uIG5hcnJvdyB2aWV3cG9ydHMgc3RhY2sgdGhlIHNhbWUgYXMgYSBkZWZhdWx0IGZvcm0gZXhhbXBsZS5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7IC8vIERlZmF1bHQgcGFkZGluZyBwbHVzIGEgYm9yZGVyXG4gICAgfVxuICB9XG5cbiAgLy8gVmFsaWRhdGlvbiBzdGF0ZXNcbiAgLy9cbiAgLy8gUmVwb3NpdGlvbiB0aGUgaWNvbiBiZWNhdXNlIGl0J3Mgbm93IHdpdGhpbiBhIGdyaWQgY29sdW1uIGFuZCBjb2x1bW5zIGhhdmVcbiAgLy8gYHBvc2l0aW9uOiByZWxhdGl2ZTtgIG9uIHRoZW0uIEFsc28gYWNjb3VudHMgZm9yIHRoZSBncmlkIGd1dHRlciBwYWRkaW5nLlxuICAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHJpZ2h0OiBmbG9vcigoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICB9XG5cbiAgLy8gRm9ybSBncm91cCBzaXplc1xuICAvL1xuICAvLyBRdWljayB1dGlsaXR5IGNsYXNzIGZvciBhcHBseWluZyBgLmlucHV0LWxnYCBhbmQgYC5pbnB1dC1zbWAgc3R5bGVzIHRvIHRoZVxuICAvLyBpbnB1dHMgYW5kIGxhYmVscyB3aXRoaW4gYSBgLmZvcm0tZ3JvdXBgLlxuICAuZm9ybS1ncm91cC1sZyB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgKyAxKTtcbiAgICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZm9ybS1ncm91cC1zbSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctc21hbGwtdmVydGljYWwgKyAxKTtcbiAgICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm9ybSB2YWxpZGF0aW9uIHN0YXRlc1xuLy9cbi8vIFVzZWQgaW4gZm9ybXMubGVzcyB0byBnZW5lcmF0ZSB0aGUgZm9ybSB2YWxpZGF0aW9uIENTUyBmb3Igd2FybmluZ3MsIGVycm9ycyxcbi8vIGFuZCBzdWNjZXNzZXMuXG5cbi5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAdGV4dC1jb2xvcjogIzU1NTsgQGJvcmRlci1jb2xvcjogI2NjYzsgQGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjUpIHtcbiAgLy8gQ29sb3IgdGhlIGxhYmVsIGFuZCBoZWxwIHRleHRcbiAgLmhlbHAtYmxvY2ssXG4gIC5jb250cm9sLWxhYmVsLFxuICAucmFkaW8sXG4gIC5jaGVja2JveCxcbiAgLnJhZGlvLWlubGluZSxcbiAgLmNoZWNrYm94LWlubGluZSxcbiAgJi5yYWRpbyBsYWJlbCxcbiAgJi5jaGVja2JveCBsYWJlbCxcbiAgJi5yYWRpby1pbmxpbmUgbGFiZWwsXG4gICYuY2hlY2tib3gtaW5saW5lIGxhYmVsICB7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICB9XG4gIC8vIFNldCB0aGUgYm9yZGVyIGFuZCBib3ggc2hhZG93IG9uIHNwZWNpZmljIGlucHV0cyB0byBtYXRjaFxuICAuZm9ybS1jb250cm9sIHtcbiAgICBib3JkZXItY29sb3I6IEBib3JkZXItY29sb3I7XG4gICAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSkpOyAvLyBSZWRlY2xhcmUgc28gdHJhbnNpdGlvbnMgd29ya1xuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlci1jb2xvciwgMTAlKTtcbiAgICAgIEBzaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgNnB4IGxpZ2h0ZW4oQGJvcmRlci1jb2xvciwgMjAlKTtcbiAgICAgIC5ib3gtc2hhZG93KEBzaGFkb3cpO1xuICAgIH1cbiAgfVxuICAvLyBTZXQgdmFsaWRhdGlvbiBzdGF0ZXMgYWxzbyBmb3IgYWRkb25zXG4gIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gICAgY29sb3I6IEB0ZXh0LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogQGJvcmRlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxuICAvLyBPcHRpb25hbCBmZWVkYmFjayBpY29uXG4gIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBmb2N1cyBzdGF0ZVxuLy9cbi8vIEdlbmVyYXRlIGEgY3VzdG9taXplZCBmb2N1cyBzdGF0ZSBhbmQgZm9yIGFueSBpbnB1dCB3aXRoIHRoZSBzcGVjaWZpZWQgY29sb3IsXG4vLyB3aGljaCBkZWZhdWx0cyB0byB0aGUgYEBpbnB1dC1ib3JkZXItZm9jdXNgIHZhcmlhYmxlLlxuLy9cbi8vIFdlIGhpZ2hseSBlbmNvdXJhZ2UgeW91IHRvIG5vdCBjdXN0b21pemUgdGhlIGRlZmF1bHQgdmFsdWUsIGJ1dCBpbnN0ZWFkIHVzZVxuLy8gdGhpcyB0byB0d2VhayBjb2xvcnMgb24gYW4gYXMtbmVlZGVkIGJhc2lzLiBUaGlzIGFlc3RoZXRpYyBjaGFuZ2UgaXMgYmFzZWQgb25cbi8vIFdlYktpdCdzIGRlZmF1bHQgc3R5bGVzLCBidXQgYXBwbGljYWJsZSB0byBhIHdpZGVyIHJhbmdlIG9mIGJyb3dzZXJzLiBJdHNcbi8vIHVzYWJpbGl0eSBhbmQgYWNjZXNzaWJpbGl0eSBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IHdpdGggYW55IGNoYW5nZS5cbi8vXG4vLyBFeGFtcGxlIHVzYWdlOiBjaGFuZ2UgdGhlIGRlZmF1bHQgYmx1ZSBib3JkZXIgYW5kIHNoYWRvdyB0byB3aGl0ZSBmb3IgYmV0dGVyXG4vLyBjb250cmFzdCBhZ2FpbnN0IGEgZGFyayBncmF5IGJhY2tncm91bmQuXG4uZm9ybS1jb250cm9sLWZvY3VzKEBjb2xvcjogQGlucHV0LWJvcmRlci1mb2N1cykge1xuICBAY29sb3ItcmdiYTogcmdiYShyZWQoQGNvbG9yKSwgZ3JlZW4oQGNvbG9yKSwgYmx1ZShAY29sb3IpLCAuNik7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogQGNvbG9yO1xuICAgIG91dGxpbmU6IDA7XG4gICAgLmJveC1zaGFkb3coflwiaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggQHtjb2xvci1yZ2JhfVwiKTtcbiAgfVxufVxuXG4vLyBGb3JtIGNvbnRyb2wgc2l6aW5nXG4vL1xuLy8gUmVsYXRpdmUgdGV4dCBzaXplLCBwYWRkaW5nLCBhbmQgYm9yZGVyLXJhZGlpIGNoYW5nZXMgZm9yIGZvcm0gY29udHJvbHMuIEZvclxuLy8gaG9yaXpvbnRhbCBzaXppbmcsIHdyYXAgY29udHJvbHMgaW4gdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLiBgPHNlbGVjdD5gXG4vLyBlbGVtZW50IGdldHMgc3BlY2lhbCBsb3ZlIGJlY2F1c2UgaXQncyBzcGVjaWFsLCBhbmQgdGhhdCdzIGEgZmFjdCFcbi5pbnB1dC1zaXplKEBpbnB1dC1oZWlnaHQ7IEBwYWRkaW5nLXZlcnRpY2FsOyBAcGFkZGluZy1ob3Jpem9udGFsOyBAZm9udC1zaXplOyBAbGluZS1oZWlnaHQ7IEBib3JkZXItcmFkaXVzKSB7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodDtcbiAgcGFkZGluZzogQHBhZGRpbmctdmVydGljYWwgQHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcblxuICBzZWxlY3QmIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQ7XG4gIH1cblxuICB0ZXh0YXJlYSYsXG4gIHNlbGVjdFttdWx0aXBsZV0mIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIi8vXG4vLyBCdXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBGb3IgaW5wdXQuYnRuXG4gIGZvbnQtd2VpZ2h0OiBAYnRuLWZvbnQtd2VpZ2h0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC5idXR0b24tc2l6ZShAcGFkZGluZy1iYXNlLXZlcnRpY2FsOyBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7IEBmb250LXNpemUtYmFzZTsgQGxpbmUtaGVpZ2h0LWJhc2U7IEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgLnVzZXItc2VsZWN0KG5vbmUpO1xuXG4gICYsXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIC50YWItZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBjb2xvcjogQGJ0bi1kZWZhdWx0LWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIC5ib3gtc2hhZG93KGluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpKTtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgIC5vcGFjaXR5KC42NSk7XG4gICAgLmJveC1zaGFkb3cobm9uZSk7XG4gIH1cblxuICBhJiB7XG4gICAgJi5kaXNhYmxlZCxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gRnV0dXJlLXByb29mIGRpc2FibGluZyBvZiBjbGlja3Mgb24gYDxhPmAgZWxlbWVudHNcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBBbHRlcm5hdGUgYnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1kZWZhdWx0IHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4tZGVmYXVsdC1jb2xvcjsgQGJ0bi1kZWZhdWx0LWJnOyBAYnRuLWRlZmF1bHQtYm9yZGVyKTtcbn1cbi5idG4tcHJpbWFyeSB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLXByaW1hcnktY29sb3I7IEBidG4tcHJpbWFyeS1iZzsgQGJ0bi1wcmltYXJ5LWJvcmRlcik7XG59XG4vLyBTdWNjZXNzIGFwcGVhcnMgYXMgZ3JlZW5cbi5idG4tc3VjY2VzcyB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLXN1Y2Nlc3MtY29sb3I7IEBidG4tc3VjY2Vzcy1iZzsgQGJ0bi1zdWNjZXNzLWJvcmRlcik7XG59XG4vLyBJbmZvIGFwcGVhcnMgYXMgYmx1ZS1ncmVlblxuLmJ0bi1pbmZvIHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4taW5mby1jb2xvcjsgQGJ0bi1pbmZvLWJnOyBAYnRuLWluZm8tYm9yZGVyKTtcbn1cbi8vIFdhcm5pbmcgYXBwZWFycyBhcyBvcmFuZ2Vcbi5idG4td2FybmluZyB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLXdhcm5pbmctY29sb3I7IEBidG4td2FybmluZy1iZzsgQGJ0bi13YXJuaW5nLWJvcmRlcik7XG59XG4vLyBEYW5nZXIgYW5kIGVycm9yIGFwcGVhciBhcyByZWRcbi5idG4tZGFuZ2VyIHtcbiAgLmJ1dHRvbi12YXJpYW50KEBidG4tZGFuZ2VyLWNvbG9yOyBAYnRuLWRhbmdlci1iZzsgQGJ0bi1kYW5nZXItYm9yZGVyKTtcbn1cblxuXG4vLyBMaW5rIGJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWFrZSBhIGJ1dHRvbiBsb29rIGFuZCBiZWhhdmUgbGlrZSBhIGxpbmtcbi5idG4tbGluayB7XG4gIGNvbG9yOiBAbGluay1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcblxuICAmLFxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLmJveC1zaGFkb3cobm9uZSk7XG4gIH1cbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBsaW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogQGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQGJ0bi1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJ1dHRvbiBTaXplc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1sZyB7XG4gIC8vIGxpbmUtaGVpZ2h0OiBlbnN1cmUgZXZlbi1udW1iZXJlZCBoZWlnaHQgb2YgYnV0dG9uIG5leHQgdG8gbGFyZ2UgaW5wdXRcbiAgLmJ1dHRvbi1zaXplKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOyBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOyBAZm9udC1zaXplLWxhcmdlOyBAbGluZS1oZWlnaHQtbGFyZ2U7IEBidG4tYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG59XG4uYnRuLXNtIHtcbiAgLy8gbGluZS1oZWlnaHQ6IGVuc3VyZSBwcm9wZXIgaGVpZ2h0IG9mIGJ1dHRvbiBuZXh0IHRvIHNtYWxsIGlucHV0XG4gIC5idXR0b24tc2l6ZShAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDsgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1zbWFsbDsgQGxpbmUtaGVpZ2h0LXNtYWxsOyBAYnRuLWJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuLmJ0bi14cyB7XG4gIC5idXR0b24tc2l6ZShAcGFkZGluZy14cy12ZXJ0aWNhbDsgQHBhZGRpbmcteHMtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1zbWFsbDsgQGxpbmUtaGVpZ2h0LXNtYWxsOyBAYnRuLWJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuXG5cbi8vIEJsb2NrIGJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gVmVydGljYWxseSBzcGFjZSBvdXQgbXVsdGlwbGUgYmxvY2sgYnV0dG9uc1xuLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi8vIFNwZWNpZmljaXR5IG92ZXJyaWRlc1xuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0ge1xuICAmLmJ0bi1ibG9jayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEJ1dHRvbiB2YXJpYW50c1xuLy9cbi8vIEVhc2lseSBwdW1wIG91dCBkZWZhdWx0IHN0eWxlcywgYXMgd2VsbCBhcyA6aG92ZXIsIDpmb2N1cywgOmFjdGl2ZSxcbi8vIGFuZCBkaXNhYmxlZCBvcHRpb25zIGZvciBhbGwgYnV0dG9uc1xuXG4uYnV0dG9uLXZhcmlhbnQoQGNvbG9yOyBAYmFja2dyb3VuZDsgQGJvcmRlcikge1xuICBjb2xvcjogQGNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCAxMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLCAyNSUpO1xuICB9XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCAxMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLCAxMiUpO1xuICB9XG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSxcbiAgLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlJiB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXIsIDEyJSk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBjb2xvcjogQGNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCAxNyUpO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXIsIDI1JSk7XG4gICAgfVxuICB9XG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSxcbiAgLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlJiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogQGJvcmRlcjtcbiAgICB9XG4gIH1cblxuICAuYmFkZ2Uge1xuICAgIGNvbG9yOiBAYmFja2dyb3VuZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG4gIH1cbn1cblxuLy8gQnV0dG9uIHNpemVzXG4uYnV0dG9uLXNpemUoQHBhZGRpbmctdmVydGljYWw7IEBwYWRkaW5nLWhvcml6b250YWw7IEBmb250LXNpemU7IEBsaW5lLWhlaWdodDsgQGJvcmRlci1yYWRpdXMpIHtcbiAgcGFkZGluZzogQHBhZGRpbmctdmVydGljYWwgQHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcbn1cbiIsIi8vIE9wYWNpdHlcblxuLm9wYWNpdHkoQG9wYWNpdHkpIHtcbiAgb3BhY2l0eTogQG9wYWNpdHk7XG4gIC8vIElFOCBmaWx0ZXJcbiAgQG9wYWNpdHktaWU6IChAb3BhY2l0eSAqIDEwMCk7XG4gIGZpbHRlcjogflwiYWxwaGEob3BhY2l0eT1Ae29wYWNpdHktaWV9KVwiO1xufVxuIiwiLy9cbi8vIENvbXBvbmVudCBhbmltYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIZWFkcyB1cCFcbi8vXG4vLyBXZSBkb24ndCB1c2UgdGhlIGAub3BhY2l0eSgpYCBtaXhpbiBoZXJlIHNpbmNlIGl0IGNhdXNlcyBhIGJ1ZyB3aXRoIHRleHRcbi8vIGZpZWxkcyBpbiBJRTctOC4gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8zNTUyLlxuXG4uZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG4gIC50cmFuc2l0aW9uKG9wYWNpdHkgLjE1cyBsaW5lYXIpO1xuICAmLmluIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJi5pbiAgICAgIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgdHImLmluICAgIHsgZGlzcGxheTogdGFibGUtcm93OyB9XG4gIHRib2R5Ji5pbiB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDsgfVxufVxuXG4uY29sbGFwc2luZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAudHJhbnNpdGlvbi1wcm9wZXJ0eSh+XCJoZWlnaHQsIHZpc2liaWxpdHlcIik7XG4gIC50cmFuc2l0aW9uLWR1cmF0aW9uKC4zNXMpO1xuICAudHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oZWFzZSk7XG59XG4iLCIvL1xuLy8gRHJvcGRvd24gbWVudXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gRHJvcGRvd24gYXJyb3cvY2FyZXRcbi5jYXJldCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXRvcDogICBAY2FyZXQtd2lkdGgtYmFzZSBkYXNoZWQ7XG4gIGJvcmRlci10b3A6ICAgQGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgflwiXFw5XCI7IC8vIElFOFxuICBib3JkZXItcmlnaHQ6IEBjYXJldC13aWR0aC1iYXNlIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogIEBjYXJldC13aWR0aC1iYXNlIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4vLyBUaGUgZHJvcGRvd24gd3JhcHBlciAoZGl2KVxuLmRyb3B1cCxcbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gUHJldmVudCB0aGUgZm9jdXMgb24gdGhlIGRyb3Bkb3duIHRvZ2dsZSB3aGVuIGNsb3NpbmcgZHJvcGRvd25zXG4uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gVGhlIGRyb3Bkb3duIG1lbnUgKHVsKVxuLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1kcm9wZG93bjtcbiAgZGlzcGxheTogbm9uZTsgLy8gbm9uZSBieSBkZWZhdWx0LCBidXQgYmxvY2sgb24gXCJvcGVuXCIgb2YgdGhlIG1lbnVcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBtYXJnaW46IDJweCAwIDA7IC8vIG92ZXJyaWRlIGRlZmF1bHQgdWxcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEVuc3VyZXMgcHJvcGVyIGFsaWdubWVudCBpZiBwYXJlbnQgaGFzIGl0IGNoYW5nZWQgKGUuZy4sIG1vZGFsIGZvb3RlcilcbiAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAZHJvcGRvd24tZmFsbGJhY2stYm9yZGVyOyAvLyBJRTggZmFsbGJhY2tcbiAgYm9yZGVyOiAxcHggc29saWQgQGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgLmJveC1zaGFkb3coMCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAvLyBBbGlnbnMgdGhlIGRyb3Bkb3duIG1lbnUgdG8gcmlnaHRcbiAgLy9cbiAgLy8gRGVwcmVjYXRlZCBhcyBvZiAzLjEuMCBpbiBmYXZvciBvZiBgLmRyb3Bkb3duLW1lbnUtW2Rpcl1gXG4gICYucHVsbC1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIC8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhpbiB0aGUgZHJvcGRvd25cbiAgLmRpdmlkZXIge1xuICAgIC5uYXYtZGl2aWRlcihAZHJvcGRvd24tZGl2aWRlci1iZyk7XG4gIH1cblxuICAvLyBMaW5rcyB3aXRoaW4gdGhlIGRyb3Bkb3duIG1lbnVcbiAgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDNweCAyMHB4O1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbGluay1jb2xvcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvLyBwcmV2ZW50IGxpbmtzIGZyb20gcmFuZG9tbHkgYnJlYWtpbmcgb250byBuZXcgbGluZXNcbiAgfVxufVxuXG4vLyBIb3Zlci9Gb2N1cyBzdGF0ZVxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IEBkcm9wZG93bi1saW5rLWhvdmVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bi1saW5rLWhvdmVyLWJnO1xuICB9XG59XG5cbi8vIEFjdGl2ZSBzdGF0ZVxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbGluay1hY3RpdmUtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duLWxpbmstYWN0aXZlLWJnO1xuICB9XG59XG5cbi8vIERpc2FibGVkIHN0YXRlXG4vL1xuLy8gR3JheSBvdXQgdGV4dCBhbmQgZW5zdXJlIHRoZSBob3Zlci9mb2N1cyBzdGF0ZSByZW1haW5zIGdyYXlcblxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhIHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IEBkcm9wZG93bi1saW5rLWRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLy8gTnVrZSBob3Zlci9mb2N1cyBlZmZlY3RzXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZW1vdmUgQ1NTIGdyYWRpZW50XG4gICAgLnJlc2V0LWZpbHRlcigpO1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgfVxufVxuXG4vLyBPcGVuIHN0YXRlIGZvciB0aGUgZHJvcGRvd25cbi5vcGVuIHtcbiAgLy8gU2hvdyB0aGUgbWVudVxuICA+IC5kcm9wZG93bi1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgb3V0bGluZSB3aGVuIDpmb2N1cyBpcyB0cmlnZ2VyZWRcbiAgPiBhIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vIE1lbnUgcG9zaXRpb25pbmdcbi8vXG4vLyBBZGQgZXh0cmEgY2xhc3MgdG8gYC5kcm9wZG93bi1tZW51YCB0byBmbGlwIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGRyb3Bkb3duXG4vLyBtZW51IHdpdGggdGhlIHBhcmVudC5cbi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgbGVmdDogYXV0bzsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgZnJvbSBgLmRyb3Bkb3duLW1lbnVgXG4gIHJpZ2h0OiAwO1xufVxuLy8gV2l0aCB2Mywgd2UgZW5hYmxlZCBhdXRvLWZsaXBwaW5nIGlmIHlvdSBoYXZlIGEgZHJvcGRvd24gd2l0aGluIGEgcmlnaHRcbi8vIGFsaWduZWQgbmF2IGNvbXBvbmVudC4gVG8gZW5hYmxlIHRoZSB1bmRvaW5nIG9mIHRoYXQsIHdlIHByb3ZpZGUgYW4gb3ZlcnJpZGVcbi8vIHRvIHJlc3RvcmUgdGhlIGRlZmF1bHQgZHJvcGRvd24gbWVudSBhbGlnbm1lbnQuXG4vL1xuLy8gVGhpcyBpcyBvbmx5IGZvciBsZWZ0LWFsaWduaW5nIGEgZHJvcGRvd24gbWVudSB3aXRoaW4gYSBgLm5hdmJhci1yaWdodGAgb3Jcbi8vIGAucHVsbC1yaWdodGAgbmF2IGNvbXBvbmVudC5cbi5kcm9wZG93bi1tZW51LWxlZnQge1xuICBsZWZ0OiAwO1xuICByaWdodDogYXV0bztcbn1cblxuLy8gRHJvcGRvd24gc2VjdGlvbiBoZWFkZXJzXG4uZHJvcGRvd24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xuICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6IEBkcm9wZG93bi1oZWFkZXItY29sb3I7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8vIGFzIHdpdGggPiBsaSA+IGFcbn1cblxuLy8gQmFja2Ryb3AgdG8gY2F0Y2ggYm9keSBjbGlja3Mgb24gbW9iaWxlLCBldGMuXG4uZHJvcGRvd24tYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogKEB6aW5kZXgtZHJvcGRvd24gLSAxMCk7XG59XG5cbi8vIFJpZ2h0IGFsaWduZWQgZHJvcGRvd25zXG4ucHVsbC1yaWdodCA+IC5kcm9wZG93bi1tZW51IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi8vIEFsbG93IGZvciBkcm9wZG93bnMgdG8gZ28gYm90dG9tIHVwIChha2EsIGRyb3B1cC1tZW51KVxuLy9cbi8vIEp1c3QgYWRkIC5kcm9wdXAgYWZ0ZXIgdGhlIHN0YW5kYXJkIC5kcm9wZG93biBjbGFzcyBhbmQgeW91J3JlIHNldCwgYnJvLlxuLy8gVE9ETzogYWJzdHJhY3QgdGhpcyBzbyB0aGF0IHRoZSBuYXZiYXIgZml4ZWQgc3R5bGVzIGFyZSBub3QgcGxhY2VkIGhlcmU/XG5cbi5kcm9wdXAsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24ge1xuICAvLyBSZXZlcnNlIHRoZSBjYXJldFxuICAuY2FyZXQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogQGNhcmV0LXdpZHRoLWJhc2UgZGFzaGVkO1xuICAgIGJvcmRlci1ib3R0b206IEBjYXJldC13aWR0aC1iYXNlIHNvbGlkIH5cIlxcOVwiOyAvLyBJRThcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gIC8vIERpZmZlcmVudCBwb3NpdGlvbmluZyBmb3IgYm90dG9tIHVwIG1lbnVcbiAgLmRyb3Bkb3duLW1lbnUge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICB9XG59XG5cblxuLy8gQ29tcG9uZW50IGFsaWdubWVudFxuLy9cbi8vIFJlaXRlcmF0ZSBwZXIgbmF2YmFyLmxlc3MgYW5kIHRoZSBtb2RpZmllZCBjb21wb25lbnQgYWxpZ25tZW50IHRoZXJlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAubmF2YmFyLXJpZ2h0IHtcbiAgICAuZHJvcGRvd24tbWVudSB7XG4gICAgICAuZHJvcGRvd24tbWVudS1yaWdodCgpO1xuICAgIH1cbiAgICAvLyBOZWNlc3NhcnkgZm9yIG92ZXJyaWRlcyBvZiB0aGUgZGVmYXVsdCByaWdodCBhbGlnbmVkIG1lbnUuXG4gICAgLy8gV2lsbCByZW1vdmUgY29tZSB2NCBpbiBhbGwgbGlrZWxpaG9vZC5cbiAgICAuZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgICAgIC5kcm9wZG93bi1tZW51LWxlZnQoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEhvcml6b250YWwgZGl2aWRlcnNcbi8vXG4vLyBEaXZpZGVycyAoYmFzaWNhbGx5IGFuIGhyKSB3aXRoaW4gZHJvcGRvd25zIGFuZCBuYXYgbGlzdHNcblxuLm5hdi1kaXZpZGVyKEBjb2xvcjogI2U1ZTVlNSkge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAoKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpIC0gMSkgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xufVxuIiwiLy8gUmVzZXQgZmlsdGVycyBmb3IgSUVcbi8vXG4vLyBXaGVuIHlvdSBuZWVkIHRvIHJlbW92ZSBhIGdyYWRpZW50IGJhY2tncm91bmQsIGRvIG5vdCBmb3JnZXQgdG8gdXNlIHRoaXMgdG8gcmVzZXRcbi8vIHRoZSBJRSBmaWx0ZXIgZm9yIElFOSBhbmQgYmVsb3cuXG5cbi5yZXNldC1maWx0ZXIoKSB7XG4gIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQgPSBmYWxzZSlcIikpO1xufVxuIiwiLy9cbi8vIEJ1dHRvbiBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1ha2UgdGhlIGRpdiBiZWhhdmUgbGlrZSBhIGJ1dHRvblxuLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gbWF0Y2ggLmJ0biBhbGlnbm1lbnQgZ2l2ZW4gZm9udC1zaXplIGhhY2sgYWJvdmVcbiAgPiAuYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgLy8gQnJpbmcgdGhlIFwiYWN0aXZlXCIgYnV0dG9uIHRvIHRoZSBmcm9udFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAmLmFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQcmV2ZW50IGRvdWJsZSBib3JkZXJzIHdoZW4gYnV0dG9ucyBhcmUgbmV4dCB0byBlYWNoIG90aGVyXG4uYnRuLWdyb3VwIHtcbiAgLmJ0biArIC5idG4sXG4gIC5idG4gKyAuYnRuLWdyb3VwLFxuICAuYnRuLWdyb3VwICsgLmJ0bixcbiAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICB9XG59XG5cbi8vIE9wdGlvbmFsOiBHcm91cCBtdWx0aXBsZSBidXR0b24gZ3JvdXBzIHRvZ2V0aGVyIGZvciBhIHRvb2xiYXJcbi5idG4tdG9vbGJhciB7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4OyAvLyBPZmZzZXQgdGhlIGZpcnN0IGNoaWxkJ3MgbWFyZ2luXG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuXG4gIC5idG4sXG4gIC5idG4tZ3JvdXAsXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAsXG4gID4gLmlucHV0LWdyb3VwIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICB9XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLy8gU2V0IGNvcm5lcnMgaW5kaXZpZHVhbCBiZWNhdXNlIHNvbWV0aW1lcyBhIHNpbmdsZSBidXR0b24gY2FuIGJlIGluIGEgLmJ0bi1ncm91cCBhbmQgd2UgbmVlZCA6Zmlyc3QtY2hpbGQgYW5kIDpsYXN0LWNoaWxkIHRvIGJvdGggbWF0Y2hcbi5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gICY6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICAgIC5ib3JkZXItcmlnaHQtcmFkaXVzKDApO1xuICB9XG59XG4vLyBOZWVkIC5kcm9wZG93bi10b2dnbGUgc2luY2UgOmxhc3QtY2hpbGQgZG9lc24ndCBhcHBseSwgZ2l2ZW4gdGhhdCBhIC5kcm9wZG93bi1tZW51IGlzIHVzZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgaXRcbi5idG4tZ3JvdXAgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksXG4uYnRuLWdyb3VwID4gLmRyb3Bkb3duLXRvZ2dsZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIC5ib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG5cbi8vIEN1c3RvbSBlZGl0cyBmb3IgaW5jbHVkaW5nIGJ0bi1ncm91cHMgd2l0aGluIGJ0bi1ncm91cHMgKHVzZWZ1bCBmb3IgaW5jbHVkaW5nIGRyb3Bkb3duIGJ1dHRvbnMgd2l0aGluIGEgYnRuLWdyb3VwKVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICA+IC5idG46bGFzdC1jaGlsZCxcbiAgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAuYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbiAgfVxufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xuICAuYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xufVxuXG4vLyBPbiBhY3RpdmUgYW5kIG9wZW4sIGRvbid0IHNob3cgb3V0bGluZVxuLmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSxcbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgb3V0bGluZTogMDtcbn1cblxuXG4vLyBTaXppbmdcbi8vXG4vLyBSZW1peCB0aGUgZGVmYXVsdCBidXR0b24gc2l6aW5nIGNsYXNzZXMgaW50byBuZXcgb25lcyBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbi5cblxuLmJ0bi1ncm91cC14cyA+IC5idG4geyAmOmV4dGVuZCguYnRuLXhzKTsgfVxuLmJ0bi1ncm91cC1zbSA+IC5idG4geyAmOmV4dGVuZCguYnRuLXNtKTsgfVxuLmJ0bi1ncm91cC1sZyA+IC5idG4geyAmOmV4dGVuZCguYnRuLWxnKTsgfVxuXG5cbi8vIFNwbGl0IGJ1dHRvbiBkcm9wZG93bnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gR2l2ZSB0aGUgbGluZSBiZXR3ZWVuIGJ1dHRvbnMgc29tZSBkZXB0aFxuLmJ0bi1ncm91cCA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWxnICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcbn1cblxuLy8gVGhlIGNsaWNrYWJsZSBidXR0b24gZm9yIHRvZ2dsaW5nIHRoZSBtZW51XG4vLyBSZW1vdmUgdGhlIGdyYWRpZW50IGFuZCBzZXQgdGhlIHNhbWUgaW5zZXQgc2hhZG93IGFzIHRoZSA6YWN0aXZlIHN0YXRlXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpKTtcblxuICAvLyBTaG93IG5vIHNoYWRvdyBmb3IgYC5idG4tbGlua2Agc2luY2UgaXQgaGFzIG5vIG90aGVyIGJ1dHRvbiBzdHlsZXMuXG4gICYuYnRuLWxpbmsge1xuICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICB9XG59XG5cblxuLy8gUmVwb3NpdGlvbiB0aGUgY2FyZXRcbi5idG4gLmNhcmV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4vLyBDYXJldHMgaW4gb3RoZXIgYnV0dG9uIHNpemVzXG4uYnRuLWxnIC5jYXJldCB7XG4gIGJvcmRlci13aWR0aDogQGNhcmV0LXdpZHRoLWxhcmdlIEBjYXJldC13aWR0aC1sYXJnZSAwO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xufVxuLy8gVXBzaWRlIGRvd24gY2FyZXRzIGZvciAuZHJvcHVwXG4uZHJvcHVwIC5idG4tbGcgLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiAwIEBjYXJldC13aWR0aC1sYXJnZSBAY2FyZXQtd2lkdGgtbGFyZ2U7XG59XG5cblxuLy8gVmVydGljYWwgYnV0dG9uIGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAsXG4gID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIENsZWFyIGZsb2F0cyBzbyBkcm9wZG93biBtZW51cyBjYW4gYmUgcHJvcGVybHkgcGxhY2VkXG4gID4gLmJ0bi1ncm91cCB7XG4gICAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG4gICAgPiAuYnRuIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cbiAgfVxuXG4gID4gLmJ0biArIC5idG4sXG4gID4gLmJ0biArIC5idG4tZ3JvdXAsXG4gID4gLmJ0bi1ncm91cCArIC5idG4sXG4gID4gLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4ge1xuICAmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbiAgJjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAuYm9yZGVyLXRvcC1yYWRpdXMoQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbiAgfVxuICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoQGJ0bi1ib3JkZXItcmFkaXVzLWJhc2UpO1xuICB9XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgPiAuYnRuOmxhc3QtY2hpbGQsXG4gID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKDApO1xuICB9XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbn1cblxuXG4vLyBKdXN0aWZpZWQgYnV0dG9uIGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWdyb3VwLWp1c3RpZmllZCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDElO1xuICB9XG4gID4gLmJ0bi1ncm91cCAuYnRuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gID4gLmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxufVxuXG5cbi8vIENoZWNrYm94IGFuZCByYWRpbyBvcHRpb25zXG4vL1xuLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCB0aGUgYnJvd3NlcidzIGZvcm0gdmFsaWRhdGlvbiBmZWVkYmFjaywgcG93ZXJlZCBieSB0aGVcbi8vIGByZXF1aXJlZGAgYXR0cmlidXRlLCB3ZSBoYXZlIHRvIFwiaGlkZVwiIHRoZSBpbnB1dHMgdmlhIGBjbGlwYC4gV2UgY2Fubm90IHVzZVxuLy8gYGRpc3BsYXk6IG5vbmU7YCBvciBgdmlzaWJpbGl0eTogaGlkZGVuO2AgYXMgdGhhdCBhbHNvIGhpZGVzIHRoZSBwb3BvdmVyLlxuLy8gU2ltcGx5IHZpc3VhbGx5IGhpZGluZyB0aGUgaW5wdXRzIHZpYSBgb3BhY2l0eWAgd291bGQgbGVhdmUgdGhlbSBjbGlja2FibGUgaW5cbi8vIGNlcnRhaW4gY2FzZXMgd2hpY2ggaXMgcHJldmVudGVkIGJ5IHVzaW5nIGBjbGlwYCBhbmQgYHBvaW50ZXItZXZlbnRzYC5cbi8vIFRoaXMgd2F5LCB3ZSBlbnN1cmUgYSBET00gZWxlbWVudCBpcyB2aXNpYmxlIHRvIHBvc2l0aW9uIHRoZSBwb3BvdmVyIGZyb20uXG4vL1xuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzEyNzk0IGFuZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTQ1NTkgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG5cbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0ge1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuXG4uYm9yZGVyLXRvcC1yYWRpdXMoQHJhZGl1cykge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcbiAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEByYWRpdXM7XG59XG4uYm9yZGVyLXJpZ2h0LXJhZGl1cyhAcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xuICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcbn1cbi5ib3JkZXItYm90dG9tLXJhZGl1cyhAcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xuICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogQHJhZGl1cztcbn1cbi5ib3JkZXItbGVmdC1yYWRpdXMoQHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBAcmFkaXVzO1xuICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAcmFkaXVzO1xufVxuIiwiLy9cbi8vIElucHV0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gRm9yIGRyb3Bkb3duc1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgLy8gcHJldmVudCBpbnB1dCBncm91cHMgZnJvbSBpbmhlcml0aW5nIGJvcmRlciBzdHlsZXMgZnJvbSB0YWJsZSBjZWxscyB3aGVuIHBsYWNlZCB3aXRoaW4gYSB0YWJsZVxuXG4gIC8vIFVuZG8gcGFkZGluZyBhbmQgZmxvYXQgb2YgZ3JpZCBjbGFzc2VzXG4gICZbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAuZm9ybS1jb250cm9sIHtcbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgaW5wdXQgaXMgYWx3YXlzIGFib3ZlIHRoZSAqYXBwZW5kZWQqIGFkZG9uIGJ1dHRvbiBmb3JcbiAgICAvLyBwcm9wZXIgYm9yZGVyIGNvbG9ycy5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcblxuICAgIC8vIElFOSBmdWJhcnMgdGhlIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZSBpbiB0ZXh0IGlucHV0cyBhbmQgdGhlIGFycm93cyBvblxuICAgIC8vIHNlbGVjdCBlbGVtZW50cyBpbiBpbnB1dCBncm91cHMuIFRvIGZpeCBpdCwgd2UgZmxvYXQgdGhlIGlucHV0LiBEZXRhaWxzOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE1NjEjaXNzdWVjb21tZW50LTI4OTM2ODU1XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAzO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTaXppbmcgb3B0aW9uc1xuLy9cbi8vIFJlbWl4IHRoZSBkZWZhdWx0IGZvcm0gY29udHJvbCBzaXppbmcgY2xhc3NlcyBpbnRvIG5ldyBvbmVzIGZvciBlYXNpZXJcbi8vIG1hbmlwdWxhdGlvbi5cblxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgLmlucHV0LWxnKCk7XG59XG4uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICAuaW5wdXQtc20oKTtcbn1cblxuXG4vLyBEaXNwbGF5IGFzIHRhYmxlLWNlbGxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4sXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgJjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4vLyBBZGRvbiBhbmQgYWRkb24gd3JhcHBlciBmb3IgYnV0dG9uc1xuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0biB7XG4gIHdpZHRoOiAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gTWF0Y2ggdGhlIGlucHV0c1xufVxuXG4vLyBUZXh0IGlucHV0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgcGFkZGluZzogQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCBAcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IEBpbnB1dC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5wdXQtZ3JvdXAtYWRkb24tYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBpbnB1dC1ncm91cC1hZGRvbi1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBpbnB1dC1ib3JkZXItcmFkaXVzO1xuXG4gIC8vIFNpemluZ1xuICAmLmlucHV0LXNtIHtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbDtcbiAgfVxuICAmLmlucHV0LWxnIHtcbiAgICBwYWRkaW5nOiBAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgfVxuXG4gIC8vIE51a2UgZGVmYXVsdCBtYXJnaW5zIGZyb20gY2hlY2tib3hlcyBhbmQgcmFkaW9zIHRvIHZlcnRpY2FsbHkgY2VudGVyIHdpdGhpbi5cbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLy8gUmVzZXQgcm91bmRlZCBjb3JuZXJzXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIC5ib3JkZXItcmlnaHQtcmFkaXVzKDApO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuIHtcbiAgLmJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi8vIEJ1dHRvbiBpbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIEphbmtpbHkgcHJldmVudCBpbnB1dCBidXR0b24gZ3JvdXBzIGZyb20gd3JhcHBpbmcgd2l0aCBgd2hpdGUtc3BhY2VgIGFuZFxuICAvLyBgZm9udC1zaXplYCBpbiBjb21iaW5hdGlvbiB3aXRoIGBpbmxpbmUtYmxvY2tgIG9uIGJ1dHRvbnMuXG4gIGZvbnQtc2l6ZTogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIHNwYWNpbmcsIHBvc2l0aW9uIGZvciBicmluZ2luZyBob3ZlcmVkL2ZvY3VzZWQvYWN0aXZlZFxuICAvLyBlbGVtZW50IGFib3ZlIHRoZSBzaWJsaW5ncy5cbiAgPiAuYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgKyAuYnRuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgICAvLyBCcmluZyB0aGUgXCJhY3RpdmVcIiBidXR0b24gdG8gdGhlIGZyb250XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICB9XG5cbiAgLy8gTmVnYXRpdmUgbWFyZ2luIHRvIG9ubHkgaGF2ZSBhIDFweCBib3JkZXIgYmV0d2VlbiB0aGUgdHdvXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgID4gLmJ0bixcbiAgICA+IC5idG4tZ3JvdXAge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgIH1cbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgID4gLmJ0bixcbiAgICA+IC5idG4tZ3JvdXAge1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIE5hdnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCB1bC9vbFxuICBsaXN0LXN0eWxlOiBub25lO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcblxuICA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiBAbmF2LWxpbmstcGFkZGluZztcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGUgc2V0cyB0ZXh0IHRvIGdyYXkgYW5kIG51a2VzIGhvdmVyL3RhYiBlZmZlY3RzXG4gICAgJi5kaXNhYmxlZCA+IGEge1xuICAgICAgY29sb3I6IEBuYXYtZGlzYWJsZWQtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdi1kaXNhYmxlZC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT3BlbiBkcm9wZG93bnNcbiAgLm9wZW4gPiBhIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICBib3JkZXItY29sb3I6IEBsaW5rLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5hdiBkaXZpZGVycyAoZGVwcmVjYXRlZCB3aXRoIHYzLjAuMSlcbiAgLy9cbiAgLy8gVGhpcyBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgaW4gdjMgd2l0aCB0aGUgZHJvcHBpbmcgb2YgYC5uYXYtbGlzdGAsIGJ1dFxuICAvLyB3ZSBtaXNzZWQgaXQuIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IHRoaXMgYW55d2hlcmUsIGJ1dCBpbiB0aGUgaW50ZXJlc3RcbiAgLy8gb2YgbWFpbnRhaW5pbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpbiBjYXNlIHlvdSB1c2UgaXQsIGl0J3MgZGVwcmVjYXRlZC5cbiAgLm5hdi1kaXZpZGVyIHtcbiAgICAubmF2LWRpdmlkZXIoKTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgSUU4IGZyb20gbWlzcGxhY2luZyBpbWdzXG4gIC8vXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvOTg0I2lzc3VlY29tbWVudC0zOTg1OTg5XG4gID4gbGkgPiBhID4gaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBUYWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIHRhYnMgc29tZXRoaW5nIHRvIHNpdCBvblxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vIE1ha2UgdGhlIGxpc3QtaXRlbXMgb3ZlcmxheSB0aGUgYm90dG9tIGJvcmRlclxuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG5cbiAgICAvLyBBY3R1YWwgdGFicyAoYXMgbGlua3MpXG4gICAgPiBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlIEBib3JkZXItcmFkaXVzLWJhc2UgMCAwO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yIEBuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvciBAbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZSwgYW5kIGl0cyA6aG92ZXIgdG8gb3ZlcnJpZGUgbm9ybWFsIDpob3ZlclxuICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEBuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHB1bGxpbmcgdGhpcyBpbiBtYWlubHkgZm9yIGxlc3Mgc2hvcnRoYW5kXG4gICYubmF2LWp1c3RpZmllZCB7XG4gICAgLm5hdi1qdXN0aWZpZWQoKTtcbiAgICAubmF2LXRhYnMtanVzdGlmaWVkKCk7XG4gIH1cbn1cblxuXG4vLyBQaWxsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLm5hdi1waWxscyB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLy8gTGlua3MgcmVuZGVyZWQgYXMgcGlsbHNcbiAgICA+IGEge1xuICAgICAgYm9yZGVyLXJhZGl1czogQG5hdi1waWxscy1ib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgICArIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgJi5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN0YWNrZWQgcGlsbHNcbi5uYXYtc3RhY2tlZCB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IC8vIG5vIG5lZWQgZm9yIHRoaXMgZ2FwIGJldHdlZW4gbmF2IGl0ZW1zXG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2IHZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEp1c3RpZmllZCBuYXYgbGlua3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdi1qdXN0aWZpZWQge1xuICB3aWR0aDogMTAwJTtcblxuICA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICA+IGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuXG4gID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgID4gYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1vdmUgYm9yZGVycyB0byBhbmNob3JzIGluc3RlYWQgb2YgYm90dG9tIG9mIGxpc3Rcbi8vXG4vLyBNaXhpbiBmb3IgYWRkaW5nIG9uIHRvcCB0aGUgc2hhcmVkIGAubmF2LWp1c3RpZmllZGAgc3R5bGVzIGZvciBvdXIgdGFic1xuLm5hdi10YWJzLWp1c3RpZmllZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgPiBsaSA+IGEge1xuICAgIC8vIE92ZXJyaWRlIG1hcmdpbiBmcm9tIC5uYXYtdGFic1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICB9XG5cbiAgPiAuYWN0aXZlID4gYSxcbiAgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgQG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZSBAYm9yZGVyLXJhZGl1cy1iYXNlIDAgMDtcbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSxcbiAgICA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAgID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVGFiYmFibGUgdGFic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIHRhYmJhYmxlIHBhbmVzIHRvIHN0YXJ0LCBzaG93IHRoZW0gd2hlbiBgLmFjdGl2ZWBcbi50YWItY29udGVudCB7XG4gID4gLnRhYi1wYW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gID4gLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuXG4vLyBEcm9wZG93bnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gU3BlY2lmaWMgZHJvcGRvd25zXG4ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnUge1xuICAvLyBtYWtlIGRyb3Bkb3duIGJvcmRlciBvdmVybGFwIHRhYiBib3JkZXJcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgLy8gUmVtb3ZlIHRoZSB0b3Agcm91bmRlZCBjb3JuZXJzIGhlcmUgc2luY2UgdGhlcmUgaXMgYSBoYXJkIGVkZ2UgYWJvdmUgdGhlIG1lbnVcbiAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xufVxuIiwiLy9cbi8vIE5hdmJhcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gV3JhcHBlciBhbmQgYmFzZSBjbGFzc1xuLy9cbi8vIFByb3ZpZGUgYSBzdGF0aWMgbmF2YmFyIGZyb20gd2hpY2ggd2UgZXhwYW5kIHRvIGNyZWF0ZSBmdWxsLXdpZHRoLCBmaXhlZCwgYW5kXG4vLyBvdGhlciBuYXZiYXIgdmFyaWF0aW9ucy5cblxuLm5hdmJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogQG5hdmJhci1oZWlnaHQ7IC8vIEVuc3VyZSBhIG5hdmJhciBhbHdheXMgc2hvd3MgKGUuZy4sIHdpdGhvdXQgYSAubmF2YmFyLWJyYW5kIGluIGNvbGxhcHNlZCBtb2RlKVxuICBtYXJnaW4tYm90dG9tOiBAbmF2YmFyLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gIC8vIFByZXZlbnQgZmxvYXRzIGZyb20gYnJlYWtpbmcgdGhlIG5hdmJhclxuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGJvcmRlci1yYWRpdXM6IEBuYXZiYXItYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBoZWFkaW5nXG4vL1xuLy8gR3JvdXBzIGAubmF2YmFyLWJyYW5kYCBhbmQgYC5uYXZiYXItdG9nZ2xlYCBpbnRvIGEgc2luZ2xlIGNvbXBvbmVudCBmb3IgZWFzeVxuLy8gc3R5bGluZyBvZiByZXNwb25zaXZlIGFzcGVjdHMuXG5cbi5uYXZiYXItaGVhZGVyIHtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBjb2xsYXBzZSAoYm9keSlcbi8vXG4vLyBHcm91cCB5b3VyIG5hdmJhciBjb250ZW50IGludG8gdGhpcyBmb3IgZWFzeSBjb2xsYXBzaW5nIGFuZCBleHBhbmRpbmcgYWNyb3NzXG4vLyB2YXJpb3VzIGRldmljZSBzaXplcy4gQnkgZGVmYXVsdCwgdGhpcyBjb250ZW50IGlzIGNvbGxhcHNlZCB3aGVuIDw3NjhweCwgYnV0XG4vLyB3aWxsIGV4cGFuZCBwYXN0IHRoYXQgZm9yIGEgaG9yaXpvbnRhbCBkaXNwbGF5LlxuLy9cbi8vIFRvIHN0YXJ0IChvbiBtb2JpbGUgZGV2aWNlcykgdGhlIG5hdmJhciBsaW5rcywgZm9ybXMsIGFuZCBidXR0b25zIGFyZSBzdGFja2VkXG4vLyB2ZXJ0aWNhbGx5IGFuZCBpbmNsdWRlIGEgYG1heC1oZWlnaHRgIHRvIG92ZXJmbG93IGluIGNhc2UgeW91IGhhdmUgdG9vIG11Y2hcbi8vIGNvbnRlbnQgZm9yIHRoZSB1c2VyJ3Mgdmlld3BvcnQuXG5cbi5uYXZiYXItY29sbGFwc2Uge1xuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICBwYWRkaW5nLXJpZ2h0OiBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZy1sZWZ0OiAgQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAmLmluIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyAvLyBPdmVycmlkZSBkZWZhdWx0IHNldHRpbmdcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5pbiB7XG4gICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8vIFVuZG8gdGhlIGNvbGxhcHNlIHNpZGUgcGFkZGluZyBmb3IgbmF2YmFycyB3aXRoIGNvbnRhaW5lcnMgdG8gZW5zdXJlXG4gICAgLy8gYWxpZ25tZW50IG9mIHJpZ2h0LWFsaWduZWQgY29udGVudHMuXG4gICAgLm5hdmJhci1maXhlZC10b3AgJixcbiAgICAubmF2YmFyLXN0YXRpYy10b3AgJixcbiAgICAubmF2YmFyLWZpeGVkLWJvdHRvbSAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi5uYXZiYXItZml4ZWQtdG9wLFxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBtYXgtaGVpZ2h0OiBAbmF2YmFyLWNvbGxhcHNlLW1heC1oZWlnaHQ7XG5cbiAgICBAbWVkaWEgKG1heC1kZXZpY2Utd2lkdGg6IEBzY3JlZW4teHMtbWluKSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJvdGggbmF2YmFyIGhlYWRlciBhbmQgY29sbGFwc2Vcbi8vXG4vLyBXaGVuIGEgY29udGFpbmVyIGlzIHByZXNlbnQsIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGhlYWRlciBhbmQgY29sbGFwc2UuXG5cbi5jb250YWluZXIsXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgPiAubmF2YmFyLWhlYWRlcixcbiAgPiAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBtYXJnaW4tbGVmdDogIC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogIDA7XG4gICAgfVxuICB9XG59XG5cblxuLy9cbi8vIE5hdmJhciBhbGlnbm1lbnQgb3B0aW9uc1xuLy9cbi8vIERpc3BsYXkgdGhlIG5hdmJhciBhY3Jvc3MgdGhlIGVudGlyZXR5IG9mIHRoZSBwYWdlIG9yIGZpeGVkIGl0IHRvIHRoZSB0b3Agb3Jcbi8vIGJvdHRvbSBvZiB0aGUgcGFnZS5cblxuLy8gU3RhdGljIHRvcCAodW5maXhlZCwgYnV0IDEwMCUgd2lkZSkgbmF2YmFyXG4ubmF2YmFyLXN0YXRpYy10b3Age1xuICB6LWluZGV4OiBAemluZGV4LW5hdmJhcjtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4vLyBGaXggdGhlIHRvcC9ib3R0b20gbmF2YmFycyB3aGVuIHNjcmVlbiByZWFsIGVzdGF0ZSBzdXBwb3J0cyBpdFxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtbmF2YmFyLWZpeGVkO1xuXG4gIC8vIFVuZG8gdGhlIHJvdW5kZWQgY29ybmVyc1xuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi5uYXZiYXItZml4ZWQtdG9wIHtcbiAgdG9wOiAwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG59XG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gb3ZlcnJpZGUgLm5hdmJhciBkZWZhdWx0c1xuICBib3JkZXItd2lkdGg6IDFweCAwIDA7XG59XG5cblxuLy8gQnJhbmQvcHJvamVjdCBuYW1lXG5cbi5uYXZiYXItYnJhbmQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsIEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGhlaWdodDogQG5hdmJhci1oZWlnaHQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgPiBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICAubmF2YmFyID4gLmNvbnRhaW5lciAmLFxuICAgIC5uYXZiYXIgPiAuY29udGFpbmVyLWZsdWlkICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgdG9nZ2xlXG4vL1xuLy8gQ3VzdG9tIGJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIGAubmF2YmFyLWNvbGxhcHNlYCwgcG93ZXJlZCBieSB0aGUgY29sbGFwc2Vcbi8vIEphdmFTY3JpcHQgcGx1Z2luLlxuXG4ubmF2YmFyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBwYWRkaW5nOiA5cHggMTBweDtcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigzNHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgLy8gV2UgcmVtb3ZlIHRoZSBgb3V0bGluZWAgaGVyZSwgYnV0IGxhdGVyIGNvbXBlbnNhdGUgYnkgYXR0YWNoaW5nIGA6aG92ZXJgXG4gIC8vIHN0eWxlcyB0byBgOmZvY3VzYC5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8vIEJhcnNcbiAgLmljb24tYmFyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gIH1cbiAgLmljb24tYmFyICsgLmljb24tYmFyIHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgbmF2IGxpbmtzXG4vL1xuLy8gQnVpbGRzIG9uIHRvcCBvZiB0aGUgYC5uYXZgIGNvbXBvbmVudHMgd2l0aCBpdHMgb3duIG1vZGlmaWVyIGNsYXNzIHRvIG1ha2Vcbi8vIHRoZSBuYXYgdGhlIGZ1bGwgaGVpZ2h0IG9mIHRoZSBob3Jpem9udGFsIG5hdiAoYWJvdmUgNzY4cHgpLlxuXG4ubmF2YmFyLW5hdiB7XG4gIG1hcmdpbjogKEBuYXZiYXItcGFkZGluZy12ZXJ0aWNhbCAvIDIpIC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICA+IGxpID4gYSB7XG4gICAgcGFkZGluZy10b3A6ICAgIDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgIC8vIERyb3Bkb3ducyBnZXQgY3VzdG9tIGRpc3BsYXkgd2hlbiBjb2xsYXBzZWRcbiAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICA+IGxpID4gYSxcbiAgICAgIC5kcm9wZG93bi1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiA1cHggMTVweCA1cHggMjVweDtcbiAgICAgIH1cbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFVuY29sbGFwc2UgdGhlIG5hdlxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDtcblxuICAgID4gbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICA+IGEge1xuICAgICAgICBwYWRkaW5nLXRvcDogICAgQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogQG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIE5hdmJhciBmb3JtXG4vL1xuLy8gRXh0ZW5zaW9uIG9mIHRoZSBgLmZvcm0taW5saW5lYCB3aXRoIHNvbWUgZXh0cmEgZmxhdm9yIGZvciBvcHRpbXVtIGRpc3BsYXkgaW5cbi8vIG91ciBuYXZiYXJzLlxuXG4ubmF2YmFyLWZvcm0ge1xuICBtYXJnaW4tbGVmdDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZzogMTBweCBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBzaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSksIDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7XG4gIC5ib3gtc2hhZG93KEBzaGFkb3cpO1xuXG4gIC8vIE1peGluIGJlaGF2aW9yIGZvciBvcHRpbXVtIGRpc3BsYXlcbiAgLmZvcm0taW5saW5lKCk7XG5cbiAgLmZvcm0tZ3JvdXAge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsbHkgY2VudGVyIGluIGV4cGFuZGVkLCBob3Jpem9udGFsIG5hdmJhclxuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBpbnB1dC1oZWlnaHQtYmFzZSk7XG5cbiAgLy8gVW5kbyAxMDAlIHdpZHRoIGZvciBwdWxsIGNsYXNzZXNcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICB9XG59XG5cblxuLy8gRHJvcGRvd24gbWVudXNcblxuLy8gTWVudSBwb3NpdGlvbiBhbmQgbWVudSBjYXJldHNcbi5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbn1cbi8vIE1lbnUgcG9zaXRpb24gYW5kIG1lbnUgY2FyZXQgc3VwcG9ydCBmb3IgZHJvcHVwcyB2aWEgZXh0cmEgZHJvcHVwIGNsYXNzXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICAuYm9yZGVyLXRvcC1yYWRpdXMoQG5hdmJhci1ib3JkZXItcmFkaXVzKTtcbiAgLmJvcmRlci1ib3R0b20tcmFkaXVzKDApO1xufVxuXG5cbi8vIEJ1dHRvbnMgaW4gbmF2YmFyc1xuLy9cbi8vIFZlcnRpY2FsbHkgY2VudGVyIGEgYnV0dG9uIHdpdGhpbiBhIG5hdmJhciAod2hlbiAqbm90KiBpbiBhIGZvcm0pLlxuXG4ubmF2YmFyLWJ0biB7XG4gIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGlucHV0LWhlaWdodC1iYXNlKTtcblxuICAmLmJ0bi1zbSB7XG4gICAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAaW5wdXQtaGVpZ2h0LXNtYWxsKTtcbiAgfVxuICAmLmJ0bi14cyB7XG4gICAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigyMik7XG4gIH1cbn1cblxuXG4vLyBUZXh0IGluIG5hdmJhcnNcbi8vXG4vLyBBZGQgYSBjbGFzcyB0byBtYWtlIGFueSBlbGVtZW50IHByb3Blcmx5IGFsaWduIGl0c2VsZiB2ZXJ0aWNhbGx5IHdpdGhpbiB0aGUgbmF2YmFycy5cblxuLm5hdmJhci10ZXh0IHtcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAbGluZS1oZWlnaHQtY29tcHV0ZWQpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIG1hcmdpbi1yaWdodDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIH1cbn1cblxuXG4vLyBDb21wb25lbnQgYWxpZ25tZW50XG4vL1xuLy8gUmVwdXJwb3NlIHRoZSBwdWxsIHV0aWxpdGllcyBhcyB0aGVpciBvd24gbmF2YmFyIHV0aWxpdGllcyB0byBhdm9pZCBzcGVjaWZpY2l0eVxuLy8gaXNzdWVzIHdpdGggcGFyZW50cyBhbmQgY2hhaW5pbmcuIE9ubHkgZG8gdGhpcyB3aGVuIHRoZSBuYXZiYXIgaXMgdW5jb2xsYXBzZWRcbi8vIHRob3VnaCBzbyB0aGF0IG5hdmJhciBjb250ZW50cyBwcm9wZXJseSBzdGFjayBhbmQgYWxpZ24gaW4gbW9iaWxlLlxuLy9cbi8vIERlY2xhcmVkIGFmdGVyIHRoZSBuYXZiYXIgY29tcG9uZW50cyB0byBlbnN1cmUgbW9yZSBzcGVjaWZpY2l0eSBvbiB0aGUgbWFyZ2lucy5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgLm5hdmJhci1sZWZ0ICB7IC5wdWxsLWxlZnQoKTsgfVxuICAubmF2YmFyLXJpZ2h0IHtcbiAgICAucHVsbC1yaWdodCgpO1xuICAgIG1hcmdpbi1yaWdodDogLUBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuXG4gICAgfiAubmF2YmFyLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBBbHRlcm5hdGUgbmF2YmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRGVmYXVsdCBuYXZiYXJcbi5uYXZiYXItZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1iZztcbiAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYm9yZGVyO1xuXG4gIC5uYXZiYXItYnJhbmQge1xuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYnJhbmQtY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci10ZXh0IHtcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWNvbG9yO1xuICB9XG5cbiAgLm5hdmJhci1uYXYge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci10b2dnbGUge1xuICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1ib3JkZXItY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC10b2dnbGUtaG92ZXItYmc7XG4gICAgfVxuICAgIC5pY29uLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWljb24tYmFyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZm9ybSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYm9yZGVyO1xuICB9XG5cbiAgLy8gRHJvcGRvd24gbWVudSBpdGVtc1xuICAubmF2YmFyLW5hdiB7XG4gICAgLy8gUmVtb3ZlIGJhY2tncm91bmQgY29sb3IgZnJvbSBvcGVuIGRyb3Bkb3duXG4gICAgPiAub3BlbiA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgLy8gRHJvcGRvd25zIGdldCBjdXN0b20gZGlzcGxheSB3aGVuIGNvbGxhcHNlZFxuICAgICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICA+IGxpID4gYSB7XG4gICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC8vIExpbmtzIGluIG5hdmJhcnNcbiAgLy9cbiAgLy8gQWRkIGEgY2xhc3MgdG8gZW5zdXJlIGxpbmtzIG91dHNpZGUgdGhlIG5hdmJhciBuYXYgYXJlIGNvbG9yZWQgY29ycmVjdGx5LlxuXG4gIC5uYXZiYXItbGluayB7XG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5idG4tbGluayB7XG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICAgICZbZGlzYWJsZWRdLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBJbnZlcnNlIG5hdmJhclxuXG4ubmF2YmFyLWludmVyc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYmc7XG4gIGJvcmRlci1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcblxuICAubmF2YmFyLWJyYW5kIHtcbiAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWJyYW5kLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1jb2xvcjtcbiAgfVxuXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIERhcmtlbiB0aGUgcmVzcG9uc2l2ZSBuYXYgdG9nZ2xlXG4gIC5uYXZiYXItdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6IEBuYXZiYXItaW52ZXJzZS10b2dnbGUtYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtdG9nZ2xlLWhvdmVyLWJnO1xuICAgIH1cbiAgICAuaWNvbi1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1pY29uLWJhci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWZvcm0ge1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBuYXZiYXItaW52ZXJzZS1iZywgNyUpO1xuICB9XG5cbiAgLy8gRHJvcGRvd25zXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IC5vcGVuID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5XG4gICAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgID4gLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgIC5kaXZpZGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItbGluayB7XG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5idG4tbGluayB7XG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICAgICZbZGlzYWJsZWRdLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gTmF2YmFyIHZlcnRpY2FsIGFsaWduXG4vL1xuLy8gVmVydGljYWxseSBjZW50ZXIgZWxlbWVudHMgaW4gdGhlIG5hdmJhci5cbi8vIEV4YW1wbGU6IGFuIGVsZW1lbnQgaGFzIGEgaGVpZ2h0IG9mIDMwcHgsIHNvIHdyaXRlIG91dCBgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigzMHB4KTtgIHRvIGNhbGN1bGF0ZSB0aGUgYXBwcm9wcmlhdGUgdG9wIG1hcmdpbi5cblxuLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAZWxlbWVudC1oZWlnaHQpIHtcbiAgbWFyZ2luLXRvcDogKChAbmF2YmFyLWhlaWdodCAtIEBlbGVtZW50LWhlaWdodCkgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogKChAbmF2YmFyLWhlaWdodCAtIEBlbGVtZW50LWhlaWdodCkgLyAyKTtcbn1cbiIsIi8vXG4vLyBVdGlsaXR5IGNsYXNzZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gRmxvYXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jbGVhcmZpeCB7XG4gIC5jbGVhcmZpeCgpO1xufVxuLmNlbnRlci1ibG9jayB7XG4gIC5jZW50ZXItYmxvY2soKTtcbn1cbi5wdWxsLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG4ucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuXG4vLyBUb2dnbGluZyBjb250ZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE5vdGU6IERlcHJlY2F0ZWQgLmhpZGUgaW4gZmF2b3Igb2YgLmhpZGRlbiBvciAuc3Itb25seSAoYXMgYXBwcm9wcmlhdGUpIGluIHYzLjAuMVxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnRleHQtaGlkZSB7XG4gIC50ZXh0LWhpZGUoKTtcbn1cblxuXG4vLyBIaWRlIGZyb20gc2NyZWVucmVhZGVycyBhbmQgYnJvd3NlcnNcbi8vXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gRm9yIEFmZml4IHBsdWdpblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYWZmaXgge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4iLCIvL1xuLy8gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmJyZWFkY3J1bWIge1xuICBwYWRkaW5nOiBAYnJlYWRjcnVtYi1wYWRkaW5nLXZlcnRpY2FsIEBicmVhZGNydW1iLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJlYWRjcnVtYi1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICArIGxpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIkB7YnJlYWRjcnVtYi1zZXBhcmF0b3J9XFwwMGEwXCI7IC8vIFVuaWNvZGUgc3BhY2UgYWRkZWQgc2luY2UgaW5saW5lLWJsb2NrIG1lYW5zIG5vbi1jb2xsYXBzaW5nIHdoaXRlLXNwYWNlXG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIGNvbG9yOiBAYnJlYWRjcnVtYi1jb2xvcjtcbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUge1xuICAgIGNvbG9yOiBAYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I7XG4gIH1cbn1cbiIsIi8vXG4vLyBQYWdpbmF0aW9uIChtdWx0aXBsZSBwYWdlcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IEBsaW5lLWhlaWdodC1jb21wdXRlZCAwO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTsgLy8gUmVtb3ZlIGxpc3Qtc3R5bGUgYW5kIGJsb2NrLWxldmVsIGRlZmF1bHRzXG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbG9hdDogbGVmdDsgLy8gQ29sbGFwc2Ugd2hpdGUtc3BhY2VcbiAgICAgIHBhZGRpbmc6IEBwYWRkaW5nLWJhc2UtdmVydGljYWwgQHBhZGRpbmctYmFzZS1ob3Jpem9udGFsO1xuICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6IEBwYWdpbmF0aW9uLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24tYmc7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBAcGFnaW5hdGlvbi1ib3JkZXI7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB9XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgLmJvcmRlci1sZWZ0LXJhZGl1cyhAYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIC5ib3JkZXItcmlnaHQtcmFkaXVzKEBib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gbGkgPiBhLFxuICA+IGxpID4gc3BhbiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBjb2xvcjogQHBhZ2luYXRpb24taG92ZXItY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnaW5hdGlvbi1ob3Zlci1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQHBhZ2luYXRpb24taG92ZXItYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gID4gLmFjdGl2ZSA+IGEsXG4gID4gLmFjdGl2ZSA+IHNwYW4ge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgICBjb2xvcjogQHBhZ2luYXRpb24tYWN0aXZlLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24tYWN0aXZlLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuXG4gID4gLmRpc2FibGVkIHtcbiAgICA+IHNwYW4sXG4gICAgPiBzcGFuOmhvdmVyLFxuICAgID4gc3Bhbjpmb2N1cyxcbiAgICA+IGEsXG4gICAgPiBhOmhvdmVyLFxuICAgID4gYTpmb2N1cyB7XG4gICAgICBjb2xvcjogQHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnaW5hdGlvbi1kaXNhYmxlZC1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIExhcmdlXG4ucGFnaW5hdGlvbi1sZyB7XG4gIC5wYWdpbmF0aW9uLXNpemUoQHBhZGRpbmctbGFyZ2UtdmVydGljYWw7IEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7IEBmb250LXNpemUtbGFyZ2U7IEBsaW5lLWhlaWdodC1sYXJnZTsgQGJvcmRlci1yYWRpdXMtbGFyZ2UpO1xufVxuXG4vLyBTbWFsbFxuLnBhZ2luYXRpb24tc20ge1xuICAucGFnaW5hdGlvbi1zaXplKEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOyBAcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOyBAZm9udC1zaXplLXNtYWxsOyBAbGluZS1oZWlnaHQtc21hbGw7IEBib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cbiIsIi8vIFBhZ2luYXRpb25cblxuLnBhZ2luYXRpb24tc2l6ZShAcGFkZGluZy12ZXJ0aWNhbDsgQHBhZGRpbmctaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZTsgQGxpbmUtaGVpZ2h0OyBAYm9yZGVyLXJhZGl1cykge1xuICA+IGxpIHtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIHBhZGRpbmc6IEBwYWRkaW5nLXZlcnRpY2FsIEBwYWRkaW5nLWhvcml6b250YWw7XG4gICAgICBmb250LXNpemU6IEBmb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0O1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIC5ib3JkZXItbGVmdC1yYWRpdXMoQGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgLmJvcmRlci1yaWdodC1yYWRpdXMoQGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFBhZ2VyIHBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLnBhZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IEBsaW5lLWhlaWdodC1jb21wdXRlZCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogNXB4IDE0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnZXItYmc7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCBAcGFnZXItYm9yZGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogQHBhZ2VyLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgPiBhOmhvdmVyLFxuICAgID4gYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFnZXItaG92ZXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5leHQge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5wcmV2aW91cyB7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cblxuICAuZGlzYWJsZWQge1xuICAgID4gYSxcbiAgICA+IGE6aG92ZXIsXG4gICAgPiBhOmZvY3VzLFxuICAgID4gc3BhbiB7XG4gICAgICBjb2xvcjogQHBhZ2VyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2VyLWJnO1xuICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIExhYmVsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAuMmVtIC42ZW0gLjNlbTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IEBsYWJlbC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xuXG4gIC8vIEFkZCBob3ZlciBlZmZlY3RzLCBidXQgb25seSBmb3IgbGlua3NcbiAgYSYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQGxhYmVsLWxpbmstaG92ZXItY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gRW1wdHkgbGFiZWxzIGNvbGxhcHNlIGF1dG9tYXRpY2FsbHkgKG5vdCBhdmFpbGFibGUgaW4gSUU4KVxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUXVpY2sgZml4IGZvciBsYWJlbHMgaW4gYnV0dG9uc1xuICAuYnRuICYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cbn1cblxuLy8gQ29sb3JzXG4vLyBDb250ZXh0dWFsIHZhcmlhdGlvbnMgKGxpbmtlZCBsYWJlbHMgZ2V0IGRhcmtlciBvbiA6aG92ZXIpXG5cbi5sYWJlbC1kZWZhdWx0IHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLWRlZmF1bHQtYmcpO1xufVxuXG4ubGFiZWwtcHJpbWFyeSB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1wcmltYXJ5LWJnKTtcbn1cblxuLmxhYmVsLXN1Y2Nlc3Mge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtc3VjY2Vzcy1iZyk7XG59XG5cbi5sYWJlbC1pbmZvIHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLWluZm8tYmcpO1xufVxuXG4ubGFiZWwtd2FybmluZyB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC13YXJuaW5nLWJnKTtcbn1cblxuLmxhYmVsLWRhbmdlciB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1kYW5nZXItYmcpO1xufVxuIiwiLy8gTGFiZWxzXG5cbi5sYWJlbC12YXJpYW50KEBjb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG5cbiAgJltocmVmXSB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAY29sb3IsIDEwJSk7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQmFkZ2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiBAYmFkZ2UtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiBAYmFkZ2UtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBAYmFkZ2UtbGluZS1oZWlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJhZGdlLWJnO1xuICBib3JkZXItcmFkaXVzOiBAYmFkZ2UtYm9yZGVyLXJhZGl1cztcblxuICAvLyBFbXB0eSBiYWRnZXMgY29sbGFwc2UgYXV0b21hdGljYWxseSAobm90IGF2YWlsYWJsZSBpbiBJRTgpXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBRdWljayBmaXggZm9yIGJhZGdlcyBpbiBidXR0b25zXG4gIC5idG4gJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgfVxuXG4gIC5idG4teHMgJixcbiAgLmJ0bi1ncm91cC14cyA+IC5idG4gJiB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZSwgYnV0IG9ubHkgZm9yIGxpbmtzXG4gIGEmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBiYWRnZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFjY291bnQgZm9yIGJhZGdlcyBpbiBuYXZzXG4gIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlID4gJixcbiAgLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhID4gJiB7XG4gICAgY29sb3I6IEBiYWRnZS1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJhZGdlLWFjdGl2ZS1iZztcbiAgfVxuXG4gIC5saXN0LWdyb3VwLWl0ZW0gPiAmIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICAubGlzdC1ncm91cC1pdGVtID4gJiArICYge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG5cbiAgLm5hdi1waWxscyA+IGxpID4gYSA+ICYge1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIH1cbn1cbiIsIi8vXG4vLyBKdW1ib3Ryb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmp1bWJvdHJvbiB7XG4gIHBhZGRpbmctdG9wOiAgICBAanVtYm90cm9uLXBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiBAanVtYm90cm9uLXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206IEBqdW1ib3Ryb24tcGFkZGluZztcbiAgY29sb3I6IEBqdW1ib3Ryb24tY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBqdW1ib3Ryb24tYmc7XG5cbiAgaDEsXG4gIC5oMSB7XG4gICAgY29sb3I6IEBqdW1ib3Ryb24taGVhZGluZy1jb2xvcjtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IChAanVtYm90cm9uLXBhZGRpbmcgLyAyKTtcbiAgICBmb250LXNpemU6IEBqdW1ib3Ryb24tZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIH1cblxuICA+IGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBkYXJrZW4oQGp1bWJvdHJvbi1iZywgMTAlKTtcbiAgfVxuXG4gIC5jb250YWluZXIgJixcbiAgLmNvbnRhaW5lci1mbHVpZCAmIHtcbiAgICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1sYXJnZTsgLy8gT25seSByb3VuZCBjb3JuZXJzIGF0IGhpZ2hlciByZXNvbHV0aW9ucyBpZiBjb250YWluZWQgaW4gYSBjb250YWluZXJcbiAgICBwYWRkaW5nLWxlZnQ6ICAoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKEBncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICB9XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBwYWRkaW5nLXRvcDogICAgKEBqdW1ib3Ryb24tcGFkZGluZyAqIDEuNik7XG4gICAgcGFkZGluZy1ib3R0b206IChAanVtYm90cm9uLXBhZGRpbmcgKiAxLjYpO1xuXG4gICAgLmNvbnRhaW5lciAmLFxuICAgIC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICAoQGp1bWJvdHJvbi1wYWRkaW5nICogMik7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAoQGp1bWJvdHJvbi1wYWRkaW5nICogMik7XG4gICAgfVxuXG4gICAgaDEsXG4gICAgLmgxIHtcbiAgICAgIGZvbnQtc2l6ZTogQGp1bWJvdHJvbi1oZWFkaW5nLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBUaHVtYm5haWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIE1peGluIGFuZCBhZGp1c3QgdGhlIHJlZ3VsYXIgaW1hZ2UgY2xhc3Ncbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogQHRodW1ibmFpbC1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRodW1ibmFpbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEB0aHVtYm5haWwtYm9yZGVyLXJhZGl1cztcbiAgLnRyYW5zaXRpb24oYm9yZGVyIC4ycyBlYXNlLWluLW91dCk7XG5cbiAgPiBpbWcsXG4gIGEgPiBpbWcge1xuICAgICY6ZXh0ZW5kKC5pbWctcmVzcG9uc2l2ZSk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gQWRkIGEgaG92ZXIgc3RhdGUgZm9yIGxpbmtlZCB2ZXJzaW9ucyBvbmx5XG4gIGEmOmhvdmVyLFxuICBhJjpmb2N1cyxcbiAgYSYuYWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6IEBsaW5rLWNvbG9yO1xuICB9XG5cbiAgLy8gSW1hZ2UgY2FwdGlvbnNcbiAgLmNhcHRpb24ge1xuICAgIHBhZGRpbmc6IEB0aHVtYm5haWwtY2FwdGlvbi1wYWRkaW5nO1xuICAgIGNvbG9yOiBAdGh1bWJuYWlsLWNhcHRpb24tY29sb3I7XG4gIH1cbn1cbiIsIi8vXG4vLyBBbGVydHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmFsZXJ0IHtcbiAgcGFkZGluZzogQGFsZXJ0LXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IEBhbGVydC1ib3JkZXItcmFkaXVzO1xuXG4gIC8vIEhlYWRpbmdzIGZvciBsYXJnZXIgYWxlcnRzXG4gIGg0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIC8vIFNwZWNpZmllZCBmb3IgdGhlIGg0IHRvIHByZXZlbnQgY29uZmxpY3RzIG9mIGNoYW5naW5nIEBoZWFkaW5ncy1jb2xvclxuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gUHJvdmlkZSBjbGFzcyBmb3IgbGlua3MgdGhhdCBtYXRjaCBhbGVydHNcbiAgLmFsZXJ0LWxpbmsge1xuICAgIGZvbnQtd2VpZ2h0OiBAYWxlcnQtbGluay1mb250LXdlaWdodDtcbiAgfVxuXG4gIC8vIEltcHJvdmUgYWxpZ25tZW50IGFuZCBzcGFjaW5nIG9mIGlubmVyIGNvbnRlbnRcbiAgPiBwLFxuICA+IHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgPiBwICsgcCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICB9XG59XG5cbi8vIERpc21pc3NpYmxlIGFsZXJ0c1xuLy9cbi8vIEV4cGFuZCB0aGUgcmlnaHQgcGFkZGluZyBhbmQgYWNjb3VudCBmb3IgdGhlIGNsb3NlIGJ1dHRvbidzIHBvc2l0aW9uaW5nLlxuXG4uYWxlcnQtZGlzbWlzc2FibGUsIC8vIFRoZSBtaXNzcGVsbGVkIC5hbGVydC1kaXNtaXNzYWJsZSB3YXMgZGVwcmVjYXRlZCBpbiAzLjIuMC5cbi5hbGVydC1kaXNtaXNzaWJsZSB7XG4gIHBhZGRpbmctcmlnaHQ6IChAYWxlcnQtcGFkZGluZyArIDIwKTtcblxuICAvLyBBZGp1c3QgY2xvc2UgbGluayBwb3NpdGlvblxuICAuY2xvc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgcmlnaHQ6IC0yMXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIEFsdGVybmF0ZSBzdHlsZXNcbi8vXG4vLyBHZW5lcmF0ZSBjb250ZXh0dWFsIG1vZGlmaWVyIGNsYXNzZXMgZm9yIGNvbG9yaXppbmcgdGhlIGFsZXJ0LlxuXG4uYWxlcnQtc3VjY2VzcyB7XG4gIC5hbGVydC12YXJpYW50KEBhbGVydC1zdWNjZXNzLWJnOyBAYWxlcnQtc3VjY2Vzcy1ib3JkZXI7IEBhbGVydC1zdWNjZXNzLXRleHQpO1xufVxuXG4uYWxlcnQtaW5mbyB7XG4gIC5hbGVydC12YXJpYW50KEBhbGVydC1pbmZvLWJnOyBAYWxlcnQtaW5mby1ib3JkZXI7IEBhbGVydC1pbmZvLXRleHQpO1xufVxuXG4uYWxlcnQtd2FybmluZyB7XG4gIC5hbGVydC12YXJpYW50KEBhbGVydC13YXJuaW5nLWJnOyBAYWxlcnQtd2FybmluZy1ib3JkZXI7IEBhbGVydC13YXJuaW5nLXRleHQpO1xufVxuXG4uYWxlcnQtZGFuZ2VyIHtcbiAgLmFsZXJ0LXZhcmlhbnQoQGFsZXJ0LWRhbmdlci1iZzsgQGFsZXJ0LWRhbmdlci1ib3JkZXI7IEBhbGVydC1kYW5nZXItdGV4dCk7XG59XG4iLCIvLyBBbGVydHNcblxuLmFsZXJ0LXZhcmlhbnQoQGJhY2tncm91bmQ7IEBib3JkZXI7IEB0ZXh0LWNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6IEBib3JkZXI7XG4gIGNvbG9yOiBAdGV4dC1jb2xvcjtcblxuICBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKEBib3JkZXIsIDUlKTtcbiAgfVxuICAuYWxlcnQtbGluayB7XG4gICAgY29sb3I6IGRhcmtlbihAdGV4dC1jb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy9cbi8vIFByb2dyZXNzIGJhcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFyIGFuaW1hdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gV2ViS2l0XG5ALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tICB7IGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDsgfVxuICB0byAgICB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxufVxuXG4vLyBTcGVjIGFuZCBJRTEwK1xuQGtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20gIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwOyB9XG4gIHRvICAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG59XG5cblxuLy8gQmFyIGl0c2VsZlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBPdXRlciBjb250YWluZXJcbi5wcm9ncmVzcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcm9ncmVzcy1iZztcbiAgYm9yZGVyLXJhZGl1czogQHByb2dyZXNzLWJvcmRlci1yYWRpdXM7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKSk7XG59XG5cbi8vIEJhciBvZiBwcm9ncmVzc1xuLnByb2dyZXNzLWJhciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBjb2xvcjogQHByb2dyZXNzLWJhci1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHJvZ3Jlc3MtYmFyLWJnO1xuICAuYm94LXNoYWRvdyhpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4xNSkpO1xuICAudHJhbnNpdGlvbih3aWR0aCAuNnMgZWFzZSk7XG59XG5cbi8vIFN0cmlwZWQgYmFyc1xuLy9cbi8vIGAucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyYCBpcyBkZXByZWNhdGVkIGFzIG9mIHYzLjIuMCBpbiBmYXZvciBvZiB0aGVcbi8vIGAucHJvZ3Jlc3MtYmFyLXN0cmlwZWRgIGNsYXNzLCB3aGljaCB5b3UganVzdCBhZGQgdG8gYW4gZXhpc3Rpbmdcbi8vIGAucHJvZ3Jlc3MtYmFyYC5cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xuICAjZ3JhZGllbnQgPiAuc3RyaXBlZCgpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggNDBweDtcbn1cblxuLy8gQ2FsbCBhbmltYXRpb24gZm9yIHRoZSBhY3RpdmUgb25lXG4vL1xuLy8gYC5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhcmAgaXMgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgaW4gZmF2b3Igb2YgdGhlXG4vLyBgLnByb2dyZXNzLWJhci5hY3RpdmVgIGFwcHJvYWNoLlxuLnByb2dyZXNzLmFjdGl2ZSAucHJvZ3Jlc3MtYmFyLFxuLnByb2dyZXNzLWJhci5hY3RpdmUge1xuICAuYW5pbWF0aW9uKHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZSk7XG59XG5cblxuLy8gVmFyaWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3Mge1xuICAucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQHByb2dyZXNzLWJhci1zdWNjZXNzLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgLnByb2dyZXNzLWJhci12YXJpYW50KEBwcm9ncmVzcy1iYXItaW5mby1iZyk7XG59XG5cbi5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIC5wcm9ncmVzcy1iYXItdmFyaWFudChAcHJvZ3Jlc3MtYmFyLXdhcm5pbmctYmcpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLWRhbmdlciB7XG4gIC5wcm9ncmVzcy1iYXItdmFyaWFudChAcHJvZ3Jlc3MtYmFyLWRhbmdlci1iZyk7XG59XG4iLCIvLyBHcmFkaWVudHNcblxuI2dyYWRpZW50IHtcblxuICAvLyBIb3Jpem9udGFsIGdyYWRpZW50LCBmcm9tIGxlZnQgdG8gcmlnaHRcbiAgLy9cbiAgLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbiAgLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbiAgLmhvcml6b250YWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAc3RhcnQtcGVyY2VudDogMCU7IEBlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0xKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG5cbiAgLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuICAvL1xuICAvLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuICAvLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuICAudmVydGljYWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAc3RhcnQtcGVyY2VudDogMCU7IEBlbmQtcGVyY2VudDogMTAwJSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7ICAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgIC8vIE9wZXJhIDEyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MClcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd25cbiAgfVxuXG4gIC5kaXJlY3Rpb25hbChAc3RhcnQtY29sb3I6ICM1NTU7IEBlbmQtY29sb3I6ICMzMzM7IEBkZWc6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydC1jb2xvciwgQGVuZC1jb2xvcik7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBPcGVyYSAxMlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gIH1cbiAgLmhvcml6b250YWwtdGhyZWUtY29sb3JzKEBzdGFydC1jb2xvcjogIzAwYjNlZTsgQG1pZC1jb2xvcjogIzdhNDNiNjsgQGNvbG9yLXN0b3A6IDUwJTsgQGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MSlcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xuICB9XG4gIC52ZXJ0aWNhbC10aHJlZS1jb2xvcnMoQHN0YXJ0LWNvbG9yOiAjMDBiM2VlOyBAbWlkLWNvbG9yOiAjN2E0M2I2OyBAY29sb3Itc3RvcDogNTAlOyBAZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbiAgfVxuICAucmFkaWFsKEBpbm5lci1jb2xvcjogIzU1NTsgQG91dGVyLWNvbG9yOiAjMzMzKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBAaW5uZXItY29sb3IsIEBvdXRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyLWNvbG9yLCBAb3V0ZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIH1cbiAgLnN0cmlwZWQoQGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4xNSk7IEBhbmdsZTogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAYW5nbGUsIEBjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCBAY29sb3IgNTAlLCBAY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCBAY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgQGNvbG9yIDUwJSwgQGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgQGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIEBjb2xvciA1MCUsIEBjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICB9XG59XG4iLCIvLyBQcm9ncmVzcyBiYXJzXG5cbi5wcm9ncmVzcy1iYXItdmFyaWFudChAY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuXG4gIC8vIERlcHJlY2F0ZWQgcGFyZW50IGNsYXNzIHJlcXVpcmVtZW50IGFzIG9mIHYzLjIuMFxuICAucHJvZ3Jlc3Mtc3RyaXBlZCAmIHtcbiAgICAjZ3JhZGllbnQgPiAuc3RyaXBlZCgpO1xuICB9XG59XG4iLCIubWVkaWEge1xuICAvLyBQcm9wZXIgc3BhY2luZyBiZXR3ZWVuIGluc3RhbmNlcyBvZiAubWVkaWFcbiAgbWFyZ2luLXRvcDogMTVweDtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5tZWRpYSxcbi5tZWRpYS1ib2R5IHtcbiAgem9vbTogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1lZGlhLWJvZHkge1xuICB3aWR0aDogMTAwMDBweDtcbn1cblxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC8vIEZpeCBjb2xsYXBzZSBpbiB3ZWJraXQgZnJvbSBtYXgtd2lkdGg6IDEwMCUgYW5kIGRpc3BsYXk6IHRhYmxlLWNlbGwuXG4gICYuaW1nLXRodW1ibmFpbCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG59XG5cbi5tZWRpYS1yaWdodCxcbi5tZWRpYSA+IC5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xufVxuXG4ubWVkaWEtbGVmdCxcbi5tZWRpYSA+IC5wdWxsLWxlZnQge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG4ubWVkaWEtbGVmdCxcbi5tZWRpYS1yaWdodCxcbi5tZWRpYS1ib2R5IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLm1lZGlhLW1pZGRsZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tZWRpYS1ib3R0b20ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuXG4vLyBSZXNldCBtYXJnaW5zIG9uIGhlYWRpbmdzIGZvciB0aWdodGVyIGRlZmF1bHQgc3BhY2luZ1xuLm1lZGlhLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi8vIE1lZGlhIGxpc3QgdmFyaWF0aW9uXG4vL1xuLy8gVW5kbyBkZWZhdWx0IHVsL29sIHN0eWxlc1xuLm1lZGlhLWxpc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCIvL1xuLy8gTGlzdCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLy9cbi8vIEVhc2lseSB1c2FibGUgb24gPHVsPiwgPG9sPiwgb3IgPGRpdj4uXG5cbi5saXN0LWdyb3VwIHtcbiAgLy8gTm8gbmVlZCB0byBzZXQgbGlzdC1zdHlsZTogbm9uZTsgc2luY2UgLmxpc3QtZ3JvdXAtaXRlbSBpcyBibG9jayBsZXZlbFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIHJlc2V0IHBhZGRpbmcgYmVjYXVzZSB1bCBhbmQgb2xcbn1cblxuXG4vLyBJbmRpdmlkdWFsIGxpc3QgaXRlbXNcbi8vXG4vLyBVc2Ugb24gYGxpYHMgb3IgYGRpdmBzIHdpdGhpbiB0aGUgYC5saXN0LWdyb3VwYCBwYXJlbnQuXG5cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIC8vIFBsYWNlIHRoZSBib3JkZXIgb24gdGhlIGxpc3QgaXRlbXMgYW5kIG5lZ2F0aXZlIG1hcmdpbiB1cCBmb3IgYmV0dGVyIHN0eWxpbmdcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGxpc3QtZ3JvdXAtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBsaXN0LWdyb3VwLWJvcmRlcjtcblxuICAvLyBSb3VuZCB0aGUgZmlyc3QgYW5kIGxhc3QgaXRlbXNcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgLmJvcmRlci10b3AtcmFkaXVzKEBsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICB9XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoQGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cbn1cblxuXG4vLyBJbnRlcmFjdGl2ZSBsaXN0IGl0ZW1zXG4vL1xuLy8gVXNlIGFuY2hvciBvciBidXR0b24gZWxlbWVudHMgaW5zdGVhZCBvZiBgbGlgcyBvciBgZGl2YHMgdG8gY3JlYXRlIGludGVyYWN0aXZlIGl0ZW1zLlxuLy8gSW5jbHVkZXMgYW4gZXh0cmEgYC5hY3RpdmVgIG1vZGlmaWVyIGNsYXNzIGZvciBzaG93aW5nIHNlbGVjdGVkIGl0ZW1zLlxuXG5hLmxpc3QtZ3JvdXAtaXRlbSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBjb2xvcjogQGxpc3QtZ3JvdXAtbGluay1jb2xvcjtcblxuICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgIGNvbG9yOiBAbGlzdC1ncm91cC1saW5rLWhlYWRpbmctY29sb3I7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IEBsaXN0LWdyb3VwLWxpbmstaG92ZXItY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGxpc3QtZ3JvdXAtaG92ZXItYmc7XG4gIH1cbn1cblxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJi5kaXNhYmxlZCxcbiAgJi5kaXNhYmxlZDpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc7XG4gICAgY29sb3I6IEBsaXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yO1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcblxuICAgIC8vIEZvcmNlIGNvbG9yIHRvIGluaGVyaXQgZm9yIGN1c3RvbSBjb250ZW50XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgICAubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICAgICAgY29sb3I6IEBsaXN0LWdyb3VwLWRpc2FibGVkLXRleHQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gQWN0aXZlIGNsYXNzIG9uIGl0ZW0gaXRzZWxmLCBub3QgcGFyZW50XG4gICYuYWN0aXZlLFxuICAmLmFjdGl2ZTpob3ZlcixcbiAgJi5hY3RpdmU6Zm9jdXMge1xuICAgIHotaW5kZXg6IDI7IC8vIFBsYWNlIGFjdGl2ZSBpdGVtcyBhYm92ZSB0aGVpciBzaWJsaW5ncyBmb3IgcHJvcGVyIGJvcmRlciBzdHlsaW5nXG4gICAgY29sb3I6IEBsaXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlzdC1ncm91cC1hY3RpdmUtYmc7XG4gICAgYm9yZGVyLWNvbG9yOiBAbGlzdC1ncm91cC1hY3RpdmUtYm9yZGVyO1xuXG4gICAgLy8gRm9yY2UgY29sb3IgdG8gaW5oZXJpdCBmb3IgY3VzdG9tIGNvbnRlbnRcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgICAubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICAgICAgY29sb3I6IEBsaXN0LWdyb3VwLWFjdGl2ZS10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIENvbnRleHR1YWwgdmFyaWFudHNcbi8vXG4vLyBBZGQgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGV4dCBhbmQgYmFja2dyb3VuZCBjb2xvciBvbiBpbmRpdmlkdWFsIGl0ZW1zLlxuLy8gT3JnYW5pemF0aW9uYWxseSwgdGhpcyBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGA6aG92ZXJgIHN0YXRlcy5cblxuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KHN1Y2Nlc3M7IEBzdGF0ZS1zdWNjZXNzLWJnOyBAc3RhdGUtc3VjY2Vzcy10ZXh0KTtcbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudChpbmZvOyBAc3RhdGUtaW5mby1iZzsgQHN0YXRlLWluZm8tdGV4dCk7XG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQod2FybmluZzsgQHN0YXRlLXdhcm5pbmctYmc7IEBzdGF0ZS13YXJuaW5nLXRleHQpO1xuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KGRhbmdlcjsgQHN0YXRlLWRhbmdlci1iZzsgQHN0YXRlLWRhbmdlci10ZXh0KTtcblxuXG4vLyBDdXN0b20gY29udGVudCBvcHRpb25zXG4vL1xuLy8gRXh0cmEgY2xhc3NlcyBmb3IgY3JlYXRpbmcgd2VsbC1mb3JtYXR0ZWQgY29udGVudCB3aXRoaW4gYC5saXN0LWdyb3VwLWl0ZW1gcy5cblxuLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbiIsIi8vIExpc3QgR3JvdXBzXG5cbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudChAc3RhdGU7IEBiYWNrZ3JvdW5kOyBAY29sb3IpIHtcbiAgLmxpc3QtZ3JvdXAtaXRlbS1Ae3N0YXRlfSB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcblxuICAgIGEmLFxuICAgIGJ1dHRvbiYge1xuICAgICAgY29sb3I6IEBjb2xvcjtcblxuICAgICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBjb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCA1JSk7XG4gICAgICB9XG4gICAgICAmLmFjdGl2ZSxcbiAgICAgICYuYWN0aXZlOmhvdmVyLFxuICAgICAgJi5hY3RpdmU6Zm9jdXMge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuICAgICAgICBib3JkZXItY29sb3I6IEBjb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBQYW5lbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFuZWwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiBAcGFuZWwtYm9yZGVyLXJhZGl1cztcbiAgLmJveC1zaGFkb3coMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA1KSk7XG59XG5cbi8vIFBhbmVsIGNvbnRlbnRzXG4ucGFuZWwtYm9keSB7XG4gIHBhZGRpbmc6IEBwYW5lbC1ib2R5LXBhZGRpbmc7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xufVxuXG4vLyBPcHRpb25hbCBoZWFkaW5nXG4ucGFuZWwtaGVhZGluZyB7XG4gIHBhZGRpbmc6IEBwYW5lbC1oZWFkaW5nLXBhZGRpbmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgLmJvcmRlci10b3AtcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcblxuICA+IC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBXaXRoaW4gaGVhZGluZywgc3RyaXAgYW55IGBoKmAgdGFnIG9mIGl0cyBkZWZhdWx0IG1hcmdpbnMgZm9yIHNwYWNpbmcuXG4ucGFuZWwtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IGNlaWwoKEBmb250LXNpemUtYmFzZSAqIDEuMTI1KSk7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gID4gYSxcbiAgPiBzbWFsbCxcbiAgPiAuc21hbGwsXG4gID4gc21hbGwgPiBhLFxuICA+IC5zbWFsbCA+IGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIE9wdGlvbmFsIGZvb3RlciAoc3RheXMgZ3JheSBpbiBldmVyeSBtb2RpZmllciBjbGFzcylcbi5wYW5lbC1mb290ZXIge1xuICBwYWRkaW5nOiBAcGFuZWwtZm9vdGVyLXBhZGRpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwYW5lbC1mb290ZXItYmc7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAcGFuZWwtaW5uZXItYm9yZGVyO1xuICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xufVxuXG5cbi8vIExpc3QgZ3JvdXBzIGluIHBhbmVsc1xuLy9cbi8vIEJ5IGRlZmF1bHQsIHNwYWNlIG91dCBsaXN0IGdyb3VwIGNvbnRlbnQgZnJvbSBwYW5lbCBoZWFkaW5ncyB0byBhY2NvdW50IGZvclxuLy8gYW55IGtpbmQgb2YgY3VzdG9tIGNvbnRlbnQgYmV0d2VlbiB0aGUgdHdvLlxuXG4ucGFuZWwge1xuICA+IC5saXN0LWdyb3VwLFxuICA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgICBib3JkZXItd2lkdGg6IDFweCAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAvLyBBZGQgYm9yZGVyIHRvcCByYWRpdXMgZm9yIGZpcnN0IG9uZVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIC5ib3JkZXItdG9wLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkIGJvcmRlciBib3R0b20gcmFkaXVzIGZvciBsYXN0IG9uZVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgLmJvcmRlci10b3AtcmFkaXVzKDApO1xuICAgIH1cbiAgfVxufVxuLy8gQ29sbGFwc2Ugc3BhY2UgYmV0d2VlbiB3aGVuIHRoZXJlJ3Mgbm8gYWRkaXRpb25hbCBjb250ZW50LlxuLnBhbmVsLWhlYWRpbmcgKyAubGlzdC1ncm91cCB7XG4gIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbn1cbi5saXN0LWdyb3VwICsgLnBhbmVsLWZvb3RlciB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG59XG5cbi8vIFRhYmxlcyBpbiBwYW5lbHNcbi8vXG4vLyBQbGFjZSBhIG5vbi1ib3JkZXJlZCBgLnRhYmxlYCB3aXRoaW4gYSBwYW5lbCAobm90IHdpdGhpbiBhIGAucGFuZWwtYm9keWApIGFuZFxuLy8gd2F0Y2ggaXQgZ28gZnVsbCB3aWR0aC5cblxuLnBhbmVsIHtcbiAgPiAudGFibGUsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUsXG4gID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgY2FwdGlvbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBwYW5lbC1ib2R5LXBhZGRpbmc7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBAcGFuZWwtYm9keS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuICAvLyBBZGQgYm9yZGVyIHRvcCByYWRpdXMgZm9yIGZpcnN0IG9uZVxuICA+IC50YWJsZTpmaXJzdC1jaGlsZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCB7XG4gICAgLmJvcmRlci10b3AtcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcblxuICAgID4gdGhlYWQ6Zmlyc3QtY2hpbGQsXG4gICAgPiB0Ym9keTpmaXJzdC1jaGlsZCB7XG4gICAgICA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcblxuICAgICAgICB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIHRoOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBBZGQgYm9yZGVyIGJvdHRvbSByYWRpdXMgZm9yIGxhc3Qgb25lXG4gID4gLnRhYmxlOmxhc3QtY2hpbGQsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkIHtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuXG4gICAgPiB0Ym9keTpsYXN0LWNoaWxkLFxuICAgID4gdGZvb3Q6bGFzdC1jaGlsZCB7XG4gICAgICA+IHRyOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGQ6bGFzdC1jaGlsZCxcbiAgICAgICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gLnBhbmVsLWJvZHkgKyAudGFibGUsXG4gID4gLnBhbmVsLWJvZHkgKyAudGFibGUtcmVzcG9uc2l2ZSxcbiAgPiAudGFibGUgKyAucGFuZWwtYm9keSxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSArIC5wYW5lbC1ib2R5IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuICA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGgsXG4gID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuICA+IC50YWJsZS1ib3JkZXJlZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgID4gdGhlYWQsXG4gICAgPiB0Ym9keSxcbiAgICA+IHRmb290IHtcbiAgICAgID4gdHIge1xuICAgICAgICA+IHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgID4gdGhlYWQsXG4gICAgPiB0Ym9keSB7XG4gICAgICA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+IHRib2R5LFxuICAgID4gdGZvb3Qge1xuICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5cbi8vIENvbGxhcHNpYmxlIHBhbmVscyAoYWthLCBhY2NvcmRpb24pXG4vL1xuLy8gV3JhcCBhIHNlcmllcyBvZiBwYW5lbHMgaW4gYC5wYW5lbC1ncm91cGAgdG8gdHVybiB0aGVtIGludG8gYW4gYWNjb3JkaW9uIHdpdGhcbi8vIHRoZSBoZWxwIG9mIG91ciBjb2xsYXBzZSBKYXZhU2NyaXB0IHBsdWdpbi5cblxuLnBhbmVsLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuXG4gIC8vIFRpZ2h0ZW4gdXAgbWFyZ2luIHNvIGl0J3Mgb25seSBiZXR3ZWVuIHBhbmVsc1xuICAucGFuZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm9yZGVyLXJhZGl1czogQHBhbmVsLWJvcmRlci1yYWRpdXM7XG5cbiAgICArIC5wYW5lbCB7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLnBhbmVsLWhlYWRpbmcge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG5cbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5LFxuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBwYW5lbC1pbm5lci1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLnBhbmVsLWZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICArIC5wYW5lbC1jb2xsYXBzZSAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQHBhbmVsLWlubmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb250ZXh0dWFsIHZhcmlhdGlvbnNcbi5wYW5lbC1kZWZhdWx0IHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLWRlZmF1bHQtYm9yZGVyOyBAcGFuZWwtZGVmYXVsdC10ZXh0OyBAcGFuZWwtZGVmYXVsdC1oZWFkaW5nLWJnOyBAcGFuZWwtZGVmYXVsdC1ib3JkZXIpO1xufVxuLnBhbmVsLXByaW1hcnkge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtcHJpbWFyeS1ib3JkZXI7IEBwYW5lbC1wcmltYXJ5LXRleHQ7IEBwYW5lbC1wcmltYXJ5LWhlYWRpbmctYmc7IEBwYW5lbC1wcmltYXJ5LWJvcmRlcik7XG59XG4ucGFuZWwtc3VjY2VzcyB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1zdWNjZXNzLWJvcmRlcjsgQHBhbmVsLXN1Y2Nlc3MtdGV4dDsgQHBhbmVsLXN1Y2Nlc3MtaGVhZGluZy1iZzsgQHBhbmVsLXN1Y2Nlc3MtYm9yZGVyKTtcbn1cbi5wYW5lbC1pbmZvIHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLWluZm8tYm9yZGVyOyBAcGFuZWwtaW5mby10ZXh0OyBAcGFuZWwtaW5mby1oZWFkaW5nLWJnOyBAcGFuZWwtaW5mby1ib3JkZXIpO1xufVxuLnBhbmVsLXdhcm5pbmcge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtd2FybmluZy1ib3JkZXI7IEBwYW5lbC13YXJuaW5nLXRleHQ7IEBwYW5lbC13YXJuaW5nLWhlYWRpbmctYmc7IEBwYW5lbC13YXJuaW5nLWJvcmRlcik7XG59XG4ucGFuZWwtZGFuZ2VyIHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLWRhbmdlci1ib3JkZXI7IEBwYW5lbC1kYW5nZXItdGV4dDsgQHBhbmVsLWRhbmdlci1oZWFkaW5nLWJnOyBAcGFuZWwtZGFuZ2VyLWJvcmRlcik7XG59XG4iLCIvLyBQYW5lbHNcblxuLnBhbmVsLXZhcmlhbnQoQGJvcmRlcjsgQGhlYWRpbmctdGV4dC1jb2xvcjsgQGhlYWRpbmctYmctY29sb3I7IEBoZWFkaW5nLWJvcmRlcikge1xuICBib3JkZXItY29sb3I6IEBib3JkZXI7XG5cbiAgJiA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgICBjb2xvcjogQGhlYWRpbmctdGV4dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaGVhZGluZy1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6IEBoZWFkaW5nLWJvcmRlcjtcblxuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQGJvcmRlcjtcbiAgICB9XG4gICAgLmJhZGdlIHtcbiAgICAgIGNvbG9yOiBAaGVhZGluZy1iZy1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBoZWFkaW5nLXRleHQtY29sb3I7XG4gICAgfVxuICB9XG4gICYgPiAucGFuZWwtZm9vdGVyIHtcbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBib3JkZXI7XG4gICAgfVxuICB9XG59XG4iLCIvLyBFbWJlZHMgcmVzcG9uc2l2ZVxuLy9cbi8vIENyZWRpdDogTmljb2xhcyBHYWxsYWdoZXIgYW5kIFNVSVQgQ1NTLlxuXG4uZW1iZWQtcmVzcG9uc2l2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLFxuICBpZnJhbWUsXG4gIGVtYmVkLFxuICBvYmplY3QsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuLy8gTW9kaWZpZXIgY2xhc3MgZm9yIDE2OjkgYXNwZWN0IHJhdGlvXG4uZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OSB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG5cbi8vIE1vZGlmaWVyIGNsYXNzIGZvciA0OjMgYXNwZWN0IHJhdGlvXG4uZW1iZWQtcmVzcG9uc2l2ZS00YnkzIHtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbn1cbiIsIi8vXG4vLyBXZWxsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4ud2VsbCB7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDE5cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IEB3ZWxsLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAd2VsbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSkpO1xuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4xNSk7XG4gIH1cbn1cblxuLy8gU2l6ZXNcbi53ZWxsLWxnIHtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XG59XG4ud2VsbC1zbSB7XG4gIHBhZGRpbmc6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtc21hbGw7XG59XG4iLCIvL1xuLy8gQ2xvc2UgaWNvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IChAZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICBmb250LXdlaWdodDogQGNsb3NlLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IEBjbG9zZS1jb2xvcjtcbiAgdGV4dC1zaGFkb3c6IEBjbG9zZS10ZXh0LXNoYWRvdztcbiAgLm9wYWNpdHkoLjIpO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAY2xvc2UtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAub3BhY2l0eSguNSk7XG4gIH1cblxuICAvLyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIGJ1dHRvbiB2ZXJzaW9uXG4gIC8vIGlPUyByZXF1aXJlcyB0aGUgYnV0dG9uIGVsZW1lbnQgaW5zdGVhZCBvZiBhbiBhbmNob3IgdGFnLlxuICAvLyBJZiB5b3Ugd2FudCB0aGUgYW5jaG9yIHZlcnNpb24sIGl0IHJlcXVpcmVzIGBocmVmPVwiI1wiYC5cbiAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9jbGljayNTYWZhcmlfTW9iaWxlXG4gIGJ1dHRvbiYge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cbn1cbiIsIi8vXG4vLyBNb2RhbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIC5tb2RhbC1vcGVuICAgICAgLSBib2R5IGNsYXNzIGZvciBraWxsaW5nIHRoZSBzY3JvbGxcbi8vIC5tb2RhbCAgICAgICAgICAgLSBjb250YWluZXIgdG8gc2Nyb2xsIHdpdGhpblxuLy8gLm1vZGFsLWRpYWxvZyAgICAtIHBvc2l0aW9uaW5nIHNoZWxsIGZvciB0aGUgYWN0dWFsIG1vZGFsXG4vLyAubW9kYWwtY29udGVudCAgIC0gYWN0dWFsIG1vZGFsIHcvIGJnIGFuZCBjb3JuZXJzIGFuZCBzaGl0XG5cbi8vIEtpbGwgdGhlIHNjcm9sbCBvbiB0aGUgYm9keVxuLm1vZGFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBDb250YWluZXIgdGhhdCB0aGUgbW9kYWwgc2Nyb2xscyB3aXRoaW5cbi5tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LW1vZGFsO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgLy8gUHJldmVudCBDaHJvbWUgb24gV2luZG93cyBmcm9tIGFkZGluZyBhIGZvY3VzIG91dGxpbmUuIEZvciBkZXRhaWxzLCBzZWVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTA5NTEuXG4gIG91dGxpbmU6IDA7XG5cbiAgLy8gV2hlbiBmYWRpbmcgaW4gdGhlIG1vZGFsLCBhbmltYXRlIGl0IHRvIHNsaWRlIGRvd25cbiAgJi5mYWRlIC5tb2RhbC1kaWFsb2cge1xuICAgIC50cmFuc2xhdGUoMCwgLTI1JSk7XG4gICAgLnRyYW5zaXRpb24tdHJhbnNmb3JtKH5cIjAuM3MgZWFzZS1vdXRcIik7XG4gIH1cbiAgJi5pbiAubW9kYWwtZGlhbG9nIHsgLnRyYW5zbGF0ZSgwLCAwKSB9XG59XG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8vIFNoZWxsIGRpdiB0byBwb3NpdGlvbiB0aGUgbW9kYWwgd2l0aCBib3R0b20gcGFkZGluZ1xuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLy8gQWN0dWFsIG1vZGFsXG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG1vZGFsLWNvbnRlbnQtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBtb2RhbC1jb250ZW50LWZhbGxiYWNrLWJvcmRlci1jb2xvcjsgLy9vbGQgYnJvd3NlcnMgZmFsbGJhY2sgKGllOCBldGMpXG4gIGJvcmRlcjogMXB4IHNvbGlkIEBtb2RhbC1jb250ZW50LWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIC5ib3gtc2hhZG93KDAgM3B4IDlweCByZ2JhKDAsMCwwLC41KSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIC8vIFJlbW92ZSBmb2N1cyBvdXRsaW5lIGZyb20gb3BlbmVkIG1vZGFsXG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIE1vZGFsIGJhY2tncm91bmRcbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LW1vZGFsLWJhY2tncm91bmQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBtb2RhbC1iYWNrZHJvcC1iZztcbiAgLy8gRmFkZSBmb3IgYmFja2Ryb3BcbiAgJi5mYWRlIHsgLm9wYWNpdHkoMCk7IH1cbiAgJi5pbiB7IC5vcGFjaXR5KEBtb2RhbC1iYWNrZHJvcC1vcGFjaXR5KTsgfVxufVxuXG4vLyBNb2RhbCBoZWFkZXJcbi8vIFRvcCBzZWN0aW9uIG9mIHRoZSBtb2RhbCB3LyB0aXRsZSBhbmQgZGlzbWlzc1xuLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IEBtb2RhbC10aXRsZS1wYWRkaW5nO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xufVxuLy8gQ2xvc2UgaWNvblxuLm1vZGFsLWhlYWRlciAuY2xvc2Uge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuXG4vLyBUaXRsZSB0ZXh0IHdpdGhpbiBoZWFkZXJcbi5tb2RhbC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IEBtb2RhbC10aXRsZS1saW5lLWhlaWdodDtcbn1cblxuLy8gTW9kYWwgYm9keVxuLy8gV2hlcmUgYWxsIG1vZGFsIGNvbnRlbnQgcmVzaWRlcyAoc2libGluZyBvZiAubW9kYWwtaGVhZGVyIGFuZCAubW9kYWwtZm9vdGVyKVxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IEBtb2RhbC1pbm5lci1wYWRkaW5nO1xufVxuXG4vLyBGb290ZXIgKGZvciBhY3Rpb25zKVxuLm1vZGFsLWZvb3RlciB7XG4gIHBhZGRpbmc6IEBtb2RhbC1pbm5lci1wYWRkaW5nO1xuICB0ZXh0LWFsaWduOiByaWdodDsgLy8gcmlnaHQgYWxpZ24gYnV0dG9uc1xuICBib3JkZXItdG9wOiAxcHggc29saWQgQG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpOyAvLyBjbGVhciBpdCBpbiBjYXNlIGZvbGtzIHVzZSAucHVsbC0qIGNsYXNzZXMgb24gYnV0dG9uc1xuXG4gIC8vIFByb3Blcmx5IHNwYWNlIG91dCBidXR0b25zXG4gIC5idG4gKyAuYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IC8vIGFjY291bnQgZm9yIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0gd2hpY2ggZ2V0cyB0aGUgYm90dG9tIG1hcmdpbiBsaWtlIGFsbCBvdGhlciBpbnB1dHNcbiAgfVxuICAvLyBidXQgb3ZlcnJpZGUgdGhhdCBmb3IgYnV0dG9uIGdyb3Vwc1xuICAuYnRuLWdyb3VwIC5idG4gKyAuYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgfVxuICAvLyBhbmQgb3ZlcnJpZGUgaXQgZm9yIGJsb2NrIGJ1dHRvbnMgYXMgd2VsbFxuICAuYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLy8gTWVhc3VyZSBzY3JvbGxiYXIgd2lkdGggZm9yIHBhZGRpbmcgYm9keSBkdXJpbmcgbW9kYWwgc2hvdy9oaWRlXG4ubW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cblxuLy8gU2NhbGUgdXAgdGhlIG1vZGFsXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgLy8gQXV0b21hdGljYWxseSBzZXQgbW9kYWwncyB3aWR0aCBmb3IgbGFyZ2VyIHZpZXdwb3J0c1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICB3aWR0aDogQG1vZGFsLW1kO1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICB9XG4gIC5tb2RhbC1jb250ZW50IHtcbiAgICAuYm94LXNoYWRvdygwIDVweCAxNXB4IHJnYmEoMCwwLDAsLjUpKTtcbiAgfVxuXG4gIC8vIE1vZGFsIHNpemVzXG4gIC5tb2RhbC1zbSB7IHdpZHRoOiBAbW9kYWwtc207IH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gIC5tb2RhbC1sZyB7IHdpZHRoOiBAbW9kYWwtbGc7IH1cbn1cbiIsIi8vXG4vLyBUb29sdGlwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogQHppbmRleC10b29sdGlwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLy8gT3VyIHBhcmVudCBlbGVtZW50IGNhbiBiZSBhcmJpdHJhcnkgc2luY2UgdG9vbHRpcHMgYXJlIGJ5IGRlZmF1bHQgaW5zZXJ0ZWQgYXMgYSBzaWJsaW5nIG9mIHRoZWlyIHRhcmdldCBlbGVtZW50LlxuICAvLyBTbyByZXNldCBvdXIgZm9udCBhbmQgdGV4dCBwcm9wZXJ0aWVzIHRvIGF2b2lkIGluaGVyaXRpbmcgd2VpcmQgdmFsdWVzLlxuICAucmVzZXQtdGV4dCgpO1xuICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG5cbiAgLm9wYWNpdHkoMCk7XG5cbiAgJi5pbiAgICAgeyAub3BhY2l0eShAdG9vbHRpcC1vcGFjaXR5KTsgfVxuICAmLnRvcCAgICB7IG1hcmdpbi10b3A6ICAtM3B4OyBwYWRkaW5nOiBAdG9vbHRpcC1hcnJvdy13aWR0aCAwOyB9XG4gICYucmlnaHQgIHsgbWFyZ2luLWxlZnQ6ICAzcHg7IHBhZGRpbmc6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGg7IH1cbiAgJi5ib3R0b20geyBtYXJnaW4tdG9wOiAgIDNweDsgcGFkZGluZzogQHRvb2x0aXAtYXJyb3ctd2lkdGggMDsgfVxuICAmLmxlZnQgICB7IG1hcmdpbi1sZWZ0OiAtM3B4OyBwYWRkaW5nOiAwIEB0b29sdGlwLWFycm93LXdpZHRoOyB9XG59XG5cbi8vIFdyYXBwZXIgZm9yIHRoZSB0b29sdGlwIGNvbnRlbnRcbi50b29sdGlwLWlubmVyIHtcbiAgbWF4LXdpZHRoOiBAdG9vbHRpcC1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGNvbG9yOiBAdG9vbHRpcC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdG9vbHRpcC1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbn1cblxuLy8gQXJyb3dzXG4udG9vbHRpcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi8vIE5vdGU6IERlcHJlY2F0ZWQgLnRvcC1sZWZ0LCAudG9wLXJpZ2h0LCAuYm90dG9tLWxlZnQsIGFuZCAuYm90dG9tLXJpZ2h0IGFzIG9mIHYzLjMuMVxuLnRvb2x0aXAge1xuICAmLnRvcCAudG9vbHRpcC1hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLnRvcC1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi1ib3R0b206IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi50b3AtcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tYm90dG9tOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYucmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYubGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggMCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5ib3R0b20gLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5ib3R0b20tbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAwIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYuYm90dG9tLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogMCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxufVxuIiwiLnJlc2V0LXRleHQoKSB7XG4gIGZvbnQtZmFtaWx5OiBAZm9udC1mYW1pbHktYmFzZTtcbiAgLy8gV2UgZGVsaWJlcmF0ZWx5IGRvIE5PVCByZXNldCBmb250LXNpemUuXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyBGYWxsYmFjayBmb3Igd2hlcmUgYHN0YXJ0YCBpcyBub3Qgc3VwcG9ydGVkXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCIvL1xuLy8gUG9wb3ZlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLnBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1wb3BvdmVyO1xuICBkaXNwbGF5OiBub25lO1xuICBtYXgtd2lkdGg6IEBwb3BvdmVyLW1heC13aWR0aDtcbiAgcGFkZGluZzogMXB4O1xuICAvLyBPdXIgcGFyZW50IGVsZW1lbnQgY2FuIGJlIGFyYml0cmFyeSBzaW5jZSBwb3BvdmVycyBhcmUgYnkgZGVmYXVsdCBpbnNlcnRlZCBhcyBhIHNpYmxpbmcgb2YgdGhlaXIgdGFyZ2V0IGVsZW1lbnQuXG4gIC8vIFNvIHJlc2V0IG91ciBmb250IGFuZCB0ZXh0IHByb3BlcnRpZXMgdG8gYXZvaWQgaW5oZXJpdGluZyB3ZWlyZCB2YWx1ZXMuXG4gIC5yZXNldC10ZXh0KCk7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IEBwb3BvdmVyLWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCBAcG9wb3Zlci1mYWxsYmFjay1ib3JkZXItY29sb3I7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBwb3BvdmVyLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIC5ib3gtc2hhZG93KDAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMikpO1xuXG4gIC8vIE9mZnNldCB0aGUgcG9wb3ZlciB0byBhY2NvdW50IGZvciB0aGUgcG9wb3ZlciBhcnJvd1xuICAmLnRvcCAgICAgeyBtYXJnaW4tdG9wOiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7IH1cbiAgJi5yaWdodCAgIHsgbWFyZ2luLWxlZnQ6IEBwb3BvdmVyLWFycm93LXdpZHRoOyB9XG4gICYuYm90dG9tICB7IG1hcmdpbi10b3A6IEBwb3BvdmVyLWFycm93LXdpZHRoOyB9XG4gICYubGVmdCAgICB7IG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7IH1cbn1cblxuLnBvcG92ZXItdGl0bGUge1xuICBtYXJnaW46IDA7IC8vIHJlc2V0IGhlYWRpbmcgbWFyZ2luXG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBvcG92ZXItdGl0bGUtYmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oQHBvcG92ZXItdGl0bGUtYmcsIDUlKTtcbiAgYm9yZGVyLXJhZGl1czogKEBib3JkZXItcmFkaXVzLWxhcmdlIC0gMSkgKEBib3JkZXItcmFkaXVzLWxhcmdlIC0gMSkgMCAwO1xufVxuXG4ucG9wb3Zlci1jb250ZW50IHtcbiAgcGFkZGluZzogOXB4IDE0cHg7XG59XG5cbi8vIEFycm93c1xuLy9cbi8vIC5hcnJvdyBpcyBvdXRlciwgLmFycm93OmFmdGVyIGlzIGlubmVyXG5cbi5wb3BvdmVyID4gLmFycm93IHtcbiAgJixcbiAgJjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIH1cbn1cbi5wb3BvdmVyID4gLmFycm93IHtcbiAgYm9yZGVyLXdpZHRoOiBAcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbn1cbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiBAcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLnBvcG92ZXIge1xuICAmLnRvcCA+IC5hcnJvdyB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgYm90dG9tOiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGJvdHRvbTogMXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cbiAgJi5yaWdodCA+IC5hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBsZWZ0OiAxcHg7XG4gICAgICBib3R0b206IC1AcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cbiAgJi5ib3R0b20gPiAuYXJyb3cge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgIHRvcDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICB0b3A6IDFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG5cbiAgJi5sZWZ0ID4gLmFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHJpZ2h0OiAxcHg7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogQHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgICBib3R0b206IC1AcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDYXJvdXNlbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBXcmFwcGVyIGZvciB0aGUgc2xpZGUgY29udGFpbmVyIGFuZCBpbmRpY2F0b3JzXG4uY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgPiAuaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLnRyYW5zaXRpb24oLjZzIGVhc2UtaW4tb3V0IGxlZnQpO1xuXG4gICAgLy8gQWNjb3VudCBmb3IgamFua2l0dWRlIG9uIGltYWdlc1xuICAgID4gaW1nLFxuICAgID4gYSA+IGltZyB7XG4gICAgICAmOmV4dGVuZCguaW1nLXJlc3BvbnNpdmUpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLy8gV2ViS2l0IENTUzMgdHJhbnNmb3JtcyBmb3Igc3VwcG9ydGVkIGRldmljZXNcbiAgICBAbWVkaWEgYWxsIGFuZCAodHJhbnNmb3JtLTNkKSwgKC13ZWJraXQtdHJhbnNmb3JtLTNkKSB7XG4gICAgICAudHJhbnNpdGlvbi10cmFuc2Zvcm0oficwLjZzIGVhc2UtaW4tb3V0Jyk7XG4gICAgICAuYmFja2ZhY2UtdmlzaWJpbGl0eSh+J2hpZGRlbicpO1xuICAgICAgLnBlcnNwZWN0aXZlKDEwMDBweCk7XG5cbiAgICAgICYubmV4dCxcbiAgICAgICYuYWN0aXZlLnJpZ2h0IHtcbiAgICAgICAgLnRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgICAgJi5wcmV2LFxuICAgICAgJi5hY3RpdmUubGVmdCB7XG4gICAgICAgIC50cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgICAmLm5leHQubGVmdCxcbiAgICAgICYucHJldi5yaWdodCxcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgLnRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gLmFjdGl2ZSxcbiAgPiAubmV4dCxcbiAgPiAucHJldiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICA+IC5hY3RpdmUge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICA+IC5uZXh0LFxuICA+IC5wcmV2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgPiAubmV4dCB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICA+IC5wcmV2IHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxuICA+IC5uZXh0LmxlZnQsXG4gID4gLnByZXYucmlnaHQge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICA+IC5hY3RpdmUubGVmdCB7XG4gICAgbGVmdDogLTEwMCU7XG4gIH1cbiAgPiAuYWN0aXZlLnJpZ2h0IHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG5cbn1cblxuLy8gTGVmdC9yaWdodCBjb250cm9scyBmb3IgbmF2XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmNhcm91c2VsLWNvbnRyb2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogQGNhcm91c2VsLWNvbnRyb2wtd2lkdGg7XG4gIC5vcGFjaXR5KEBjYXJvdXNlbC1jb250cm9sLW9wYWNpdHkpO1xuICBmb250LXNpemU6IEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZTtcbiAgY29sb3I6IEBjYXJvdXNlbC1jb250cm9sLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiBAY2Fyb3VzZWwtdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IC8vIEZpeCBJRTkgY2xpY2stdGhydSBidWdcbiAgLy8gV2UgY2FuJ3QgaGF2ZSB0aGlzIHRyYW5zaXRpb24gaGVyZSBiZWNhdXNlIFdlYktpdCBjYW5jZWxzIHRoZSBjYXJvdXNlbFxuICAvLyBhbmltYXRpb24gaWYgeW91IHRyaXAgdGhpcyB3aGlsZSBpbiB0aGUgbWlkZGxlIG9mIGFub3RoZXIgYW5pbWF0aW9uLlxuXG4gIC8vIFNldCBncmFkaWVudHMgZm9yIGJhY2tncm91bmRzXG4gICYubGVmdCB7XG4gICAgI2dyYWRpZW50ID4gLmhvcml6b250YWwoQHN0YXJ0LWNvbG9yOiByZ2JhKDAsMCwwLC41KTsgQGVuZC1jb2xvcjogcmdiYSgwLDAsMCwuMDAwMSkpO1xuICB9XG4gICYucmlnaHQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gICAgI2dyYWRpZW50ID4gLmhvcml6b250YWwoQHN0YXJ0LWNvbG9yOiByZ2JhKDAsMCwwLC4wMDAxKTsgQGVuZC1jb2xvcjogcmdiYSgwLDAsMCwuNSkpO1xuICB9XG5cbiAgLy8gSG92ZXIvZm9jdXMgc3RhdGVcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBjb2xvcjogQGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC5vcGFjaXR5KC45KTtcbiAgfVxuXG4gIC8vIFRvZ2dsZXNcbiAgLmljb24tcHJldixcbiAgLmljb24tbmV4dCxcbiAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5pY29uLXByZXYsXG4gIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICB9XG4gIC5pY29uLW5leHQsXG4gIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICB9XG4gIC5pY29uLXByZXYsXG4gIC5pY29uLW5leHQge1xuICAgIHdpZHRoOiAgMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICB9XG5cblxuICAuaWNvbi1wcmV2IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDM5JzsvLyBTSU5HTEUgTEVGVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyAoVSsyMDM5KVxuICAgIH1cbiAgfVxuICAuaWNvbi1uZXh0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDNhJzsvLyBTSU5HTEUgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksgKFUrMjAzQSlcbiAgICB9XG4gIH1cbn1cblxuLy8gT3B0aW9uYWwgaW5kaWNhdG9yIHBpcHNcbi8vXG4vLyBBZGQgYW4gdW5vcmRlcmVkIGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGNsYXNzIGFuZCBhZGQgYSBsaXN0IGl0ZW0gZm9yIGVhY2hcbi8vIHNsaWRlIHlvdXIgY2Fyb3VzZWwgaG9sZHMuXG5cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgei1pbmRleDogMTU7XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMzAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAgMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiAxcHg7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBAY2Fyb3VzZWwtaW5kaWNhdG9yLWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIElFOC05IGhhY2sgZm9yIGV2ZW50IGhhbmRsaW5nXG4gICAgLy9cbiAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciA4LTkgZG9lcyBub3Qgc3VwcG9ydCBjbGlja3Mgb24gZWxlbWVudHMgd2l0aG91dCBhIHNldFxuICAgIC8vIGBiYWNrZ3JvdW5kLWNvbG9yYC4gV2UgY2Fubm90IHVzZSBgZmlsdGVyYCBzaW5jZSB0aGF0J3Mgbm90IHZpZXdlZCBhcyBhXG4gICAgLy8gYmFja2dyb3VuZCBjb2xvciBieSB0aGUgYnJvd3Nlci4gVGh1cywgYSBoYWNrIGlzIG5lZWRlZC5cbiAgICAvLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI0ludGVybmV0X0V4cGxvcmVyXG4gICAgLy9cbiAgICAvLyBGb3IgSUU4LCB3ZSBzZXQgc29saWQgYmxhY2sgYXMgaXQgZG9lc24ndCBzdXBwb3J0IGByZ2JhKClgLiBGb3IgSUU5LCB3ZVxuICAgIC8vIHNldCBhbHBoYSB0cmFuc3BhcmVuY3kgZm9yIHRoZSBiZXN0IHJlc3VsdHMgcG9zc2libGUuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMCBcXDk7IC8vIElFOFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7IC8vIElFOVxuICB9XG4gIC5hY3RpdmUge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogIDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBjYXJvdXNlbC1pbmRpY2F0b3ItYWN0aXZlLWJnO1xuICB9XG59XG5cbi8vIE9wdGlvbmFsIGNhcHRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSGlkZGVuIGJ5IGRlZmF1bHQgZm9yIHNtYWxsZXIgdmlld3BvcnRzXG4uY2Fyb3VzZWwtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTUlO1xuICByaWdodDogMTUlO1xuICBib3R0b206IDIwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiBAY2Fyb3VzZWwtY2FwdGlvbi1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogQGNhcm91c2VsLXRleHQtc2hhZG93O1xuICAmIC5idG4ge1xuICAgIHRleHQtc2hhZG93OiBub25lOyAvLyBObyBzaGFkb3cgZm9yIGJ1dHRvbiBlbGVtZW50cyBpbiBjYXJvdXNlbC1jYXB0aW9uXG4gIH1cbn1cblxuXG4vLyBTY2FsZSB1cCBjb250cm9scyBmb3IgdGFibGV0cyBhbmQgdXBcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG5cbiAgLy8gU2NhbGUgdXAgdGhlIGNvbnRyb2xzIGEgc21pZGdlXG4gIC5jYXJvdXNlbC1jb250cm9sIHtcbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsXG4gICAgLmljb24tcHJldixcbiAgICAuaWNvbi1uZXh0IHtcbiAgICAgIHdpZHRoOiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplICogMS41KTtcbiAgICAgIGhlaWdodDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAqIDEuNSk7XG4gICAgICBtYXJnaW4tdG9wOiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplIC8gLTIpO1xuICAgICAgZm9udC1zaXplOiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplICogMS41KTtcbiAgICB9XG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gICAgLmljb24tcHJldiB7XG4gICAgICBtYXJnaW4tbGVmdDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAvIC0yKTtcbiAgICB9XG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAgIC5pY29uLW5leHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAoQGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplIC8gLTIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNob3cgYW5kIGxlZnQgYWxpZ24gdGhlIGNhcHRpb25zXG4gIC5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgICBsZWZ0OiAyMCU7XG4gICAgcmlnaHQ6IDIwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgfVxuXG4gIC8vIE1vdmUgdXAgdGhlIGluZGljYXRvcnNcbiAgLmNhcm91c2VsLWluZGljYXRvcnMge1xuICAgIGJvdHRvbTogMjBweDtcbiAgfVxufVxuIiwiLy8gQ2xlYXJmaXhcbi8vXG4vLyBGb3IgbW9kZXJuIGJyb3dzZXJzXG4vLyAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuLy8gICAgY29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbi8vICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuLy8gICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cbi8vIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4vLyAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4vL1xuLy8gU291cmNlOiBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay9cblxuLmNsZWFyZml4KCkge1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8vIDFcbiAgICBkaXNwbGF5OiB0YWJsZTsgLy8gMlxuICB9XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG4iLCIvLyBDZW50ZXItYWxpZ24gYSBibG9jayBsZXZlbCBlbGVtZW50XG5cbi5jZW50ZXItYmxvY2soKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG4vL1xuLy8gSGVhZHMgdXAhIHYzIGxhdW5jaGVkIHdpdGggb25seSBgLmhpZGUtdGV4dCgpYCwgYnV0IHBlciBvdXIgcGF0dGVybiBmb3Jcbi8vIG1peGlucyBiZWluZyByZXVzZWQgYXMgY2xhc3NlcyB3aXRoIHRoZSBzYW1lIG5hbWUsIHRoaXMgZG9lc24ndCBob2xkIHVwLiBBc1xuLy8gb2YgdjMuMC4xIHdlIGhhdmUgYWRkZWQgYC50ZXh0LWhpZGUoKWAgYW5kIGRlcHJlY2F0ZWQgYC5oaWRlLXRleHQoKWAuXG4vL1xuLy8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9jb21taXQvYWEwMzk2ZWFlNzU3XG5cbi8vIERlcHJlY2F0ZWQgYXMgb2YgdjMuMC4xIChoYXMgYmVlbiByZW1vdmVkIGluIHY0KVxuLmhpZGUtdGV4dCgpIHtcbiAgZm9udDogflwiMC8wXCIgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gTmV3IG1peGluIHRvIHVzZSBhcyBvZiB2My4wLjFcbi50ZXh0LWhpZGUoKSB7XG4gIC5oaWRlLXRleHQoKTtcbn1cbiIsIi8vXG4vLyBSZXNwb25zaXZlOiBVdGlsaXR5IGNsYXNzZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSUUxMCBpbiBXaW5kb3dzIChQaG9uZSkgOFxuLy9cbi8vIFN1cHBvcnQgZm9yIHJlc3BvbnNpdmUgdmlld3MgdmlhIG1lZGlhIHF1ZXJpZXMgaXMga2luZCBvZiBib3JrZWQgaW4gSUUxMCwgZm9yXG4vLyBTdXJmYWNlL2Rlc2t0b3AgaW4gc3BsaXQgdmlldyBhbmQgZm9yIFdpbmRvd3MgUGhvbmUgOC4gVGhpcyBwYXJ0aWN1bGFyIGZpeFxuLy8gbXVzdCBiZSBhY2NvbXBhbmllZCBieSBhIHNuaXBwZXQgb2YgSmF2YVNjcmlwdCB0byBzbmlmZiB0aGUgdXNlciBhZ2VudCBhbmRcbi8vIGFwcGx5IHNvbWUgY29uZGl0aW9uYWwgQ1NTIHRvICpvbmx5KiB0aGUgU3VyZmFjZS9kZXNrdG9wIFdpbmRvd3MgOC4gTG9vayBhdFxuLy8gb3VyIEdldHRpbmcgU3RhcnRlZCBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgYnVnLlxuLy9cbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGZvbGxvd2luZzpcbi8vXG4vLyBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMDQ5N1xuLy8gRG9jczogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyNzdXBwb3J0LWllMTAtd2lkdGhcbi8vIFNvdXJjZTogaHR0cDovL3RpbWthZGxlYy5jb20vMjAxMy8wMS93aW5kb3dzLXBob25lLTgtYW5kLWRldmljZS13aWR0aC9cbi8vIFNvdXJjZTogaHR0cDovL3RpbWthZGxlYy5jb20vMjAxMi8xMC9pZTEwLXNuYXAtbW9kZS1hbmQtcmVzcG9uc2l2ZS1kZXNpZ24vXG5cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuXG5cbi8vIFZpc2liaWxpdHkgdXRpbGl0aWVzXG4vLyBOb3RlOiBEZXByZWNhdGVkIC52aXNpYmxlLXhzLCAudmlzaWJsZS1zbSwgLnZpc2libGUtbWQsIGFuZCAudmlzaWJsZS1sZyBhcyBvZiB2My4yLjBcbi52aXNpYmxlLXhzLFxuLnZpc2libGUtc20sXG4udmlzaWJsZS1tZCxcbi52aXNpYmxlLWxnIHtcbiAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG59XG5cbi52aXNpYmxlLXhzLWJsb2NrLFxuLnZpc2libGUteHMtaW5saW5lLFxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtc20tYmxvY2ssXG4udmlzaWJsZS1zbS1pbmxpbmUsXG4udmlzaWJsZS1zbS1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1tZC1ibG9jayxcbi52aXNpYmxlLW1kLWlubGluZSxcbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayxcbi52aXNpYmxlLWxnLWJsb2NrLFxuLnZpc2libGUtbGctaW5saW5lLFxuLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udmlzaWJsZS14cyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUteHMtYmxvY2sge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS14cy1pbmxpbmUge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnZpc2libGUtc20ge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUtc20tYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnZpc2libGUtbWQge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIC5yZXNwb25zaXZlLXZpc2liaWxpdHkoKTtcbiAgfVxufVxuLnZpc2libGUtbWQtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnZpc2libGUtbGcge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLWxnLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbGctaW5saW5lIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5oaWRkZW4teHMge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuLmhpZGRlbi1zbSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi5oaWRkZW4tbWQge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG4uaGlkZGVuLWxnIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cblxuXG4vLyBQcmludCB1dGlsaXRpZXNcbi8vXG4vLyBNZWRpYSBxdWVyaWVzIGFyZSBwbGFjZWQgb24gdGhlIGluc2lkZSB0byBiZSBtaXhpbi1mcmllbmRseS5cblxuLy8gTm90ZTogRGVwcmVjYXRlZCAudmlzaWJsZS1wcmludCBhcyBvZiB2My4yLjBcbi52aXNpYmxlLXByaW50IHtcbiAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5oaWRkZW4tcHJpbnQge1xuICBAbWVkaWEgcHJpbnQge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG4iLCIvLyBSZXNwb25zaXZlIHV0aWxpdGllc1xuXG4vL1xuLy8gTW9yZSBlYXNpbHkgaW5jbHVkZSBhbGwgdGhlIHN0YXRlcyBmb3IgcmVzcG9uc2l2ZS11dGlsaXRpZXMubGVzcy5cbi5yZXNwb25zaXZlLXZpc2liaWxpdHkoKSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHRhYmxlJiAgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRyJiAgICAgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0aCYsXG4gIHRkJiAgICAgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbn1cblxuLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCkge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVNTIFZBUklBQkxFU1xuKiogICAgICAgICAgICAgICAgVGhpcyBzdHlsZXNoZWV0IHNob3VsZCBvbmx5IGNvbnRhaW4gdmFyaWFibGVzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHBhbGV0dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICAgICAjZGFlMTczO1xuQG1vcmFuZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICNkNjc4MmI7XG5AbWRhcmtibHVlOiAgICAgICAgICAgICAgICAgICAgICAgIzIzMjUyODtcbkBtZ3JleTogICAgICAgICAgICAgICAgICAgICAgICAgICAjY2NjY2NjO1xuQG1saWdodGdyZXk6ICAgICAgICAgICAgICAgICAgICAgICM5OTk5OTk7XG5AbWRhcmtiZzogICAgICAgICAgICAgICAgICAgICAgICAgIzE2MTYxQjtcbkBtYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAjMzU4ZmRjO1xuQGRhcmtlcmJsdWU6ICAgICAgICAgICAgICAgICAgICAgICMxNjI1MmM7XG5AZGFya2JsdWU6ICAgICAgICAgICAgICAgICAgICAgICAgIzE3MjYyZDtcbkBkYXJrZXJibHVlOiAgICAgICAgICAgICAgICAgICAgICBkYXJrZW4oQGRhcmtibHVlLDQlKTtcbkBkYXJrYmx1ZTI6ICAgICAgICAgICAgICAgICAgICAgICAjMjUzMzNhO1xuQG1lZGl1bWJsdWU6ICAgICAgICAgICAgICAgICAgICAgICM2MjZkNmQ7XG5AbGlnaHRibHVlOiAgICAgICAgICAgICAgICAgICAgICAgI2FiYzRjNjtcbkBwaW5rOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZWQxZTc5O1xuQHJlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICNGRjAwMDA7XG5cbkBmbHVyb2JsdWU6ICAgICAgICAgICAgICAgICAgICAgICAjMDBlNWYwO1xuQGZsdXJvb3JhbmdlOiAgICAgICAgICAgICAgICAgICAgICNmZjczMDA7XG5AZmx1cmVveWVsbG93OiAgICAgICAgICAgICAgICAgICAgI2ZiZDkyNTtcbkBmbHVyb2dyZWVuOiAgICAgICAgICAgICAgICAgICAgICAjNDdmZjAwO1xuQGZsdXJvcGluazogICAgICAgICAgICAgICAgICAgICAgICNlMDFmNzQ7XG5cbkBkYXJrZ3JlZW46ICAgICAgICAgICAgICAgICAgICAgICAjMzNkMzc1O1xuQGdyZWVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICNkMWU1NWM7XG5AcHVycGxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIzk3N2JmMDtcbkBsaWdodGdyYXk6ICAgICAgICAgICAgICAgICAgICAgICAjZTZlZGVlO1xuQGJsdWVncmF5OiAgICAgICAgICAgICAgICAgICAgICAgICNhYmM0YzY7XG5AYmx1ZWdyYXkyOiAgICAgICAgICAgICAgICAgICAgICAgIzM1NDY0YztcblxuQGJyYW5kLXN1Y2Nlc3M6ICAgICAgICAgICAgICAgICAgQGZsdXJvYmx1ZTtcbkBicmFuZC13YXJuaW5nOiAgICAgICAgICAgICAgICAgIEBwdXJwbGU7XG5AYnJhbmQtaW5mbzogICAgICAgICAgICAgICAgICAgICBAZmx1cm9ibHVlO1xuQGJyYW5kLWRhbmdlcjogICAgICAgICAgICAgICAgICAgQGZsdXJvcGluaztcbkBicmFuZC1wcmltYXJ5OiAgICAgICAgICAgICAgICAgIEBmbHVyb2JsdWU7XG5cbkBpbXBhYy1wb3NpdGl2ZTogICAgICAgICAgICAgICAgIGdyZWVuO1xuQGltcGFjLW5lZ2F0aXZlOiAgICAgICAgICAgICAgICAgQHBpbms7XG5AaW1wYWMtcG9zaXRpdmUyOiAgICAgICAgICAgICAgICAjM2ZjNGZmOyAgICAgLy8gbGlnaHRlciBjb2xvcnMgdXNlZCBmb3IgcGF5YWJsZXMtcmVjZWl2YWJsZXNcbkBpbXBhYy1uZWdhdGl2ZTI6ICAgICAgICAgICAgICAgICMxZGU5YjY7ICAgICAvLyBsaWdodGVyIGNvbG9yc3VzZWQgZm9yIHBheWFibGVzLXJlY2VpdmFibGVzXG5cbi8vIFNwYWNlcnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQHRvcC1idWZmZXItaGVpZ2h0OiBAZ3JpZC1ndXR0ZXItd2lkdGgvMjsgLy8gYm9vdHN0cmFwIHZhcmlhYmxlXG4udG9wLWJ1ZmZlci0xIHsgbWFyZ2luLXRvcDogQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci0yIHsgbWFyZ2luLXRvcDogMipAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTMgeyBtYXJnaW4tdG9wOiAzKkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItNCB7IG1hcmdpbi10b3A6IDQqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci01IHsgbWFyZ2luLXRvcDogNSpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTYgeyBtYXJnaW4tdG9wOiA2KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItNyB7IG1hcmdpbi10b3A6IDcqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci04IHsgbWFyZ2luLXRvcDogOCpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTkgeyBtYXJnaW4tdG9wOiA5KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItMTAgeyBtYXJnaW4tdG9wOiAxMCpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cblxuLy8gRGFzaGJvYXJkXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wYWMtZGFzaGJvYXJkLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICAgICA1MHB4O1xuQGltcGFjLWRhc2hib2FyZC1zbS1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgQGltcGFjLWRhc2hib2FyZC1wYWRkaW5nLXRvcCAqIDM7XG5AaW1wYWMtZGFzaGJvYXJkLW1hcmdpbi1sZWZ0OiAgICAgICAgICAgICAgICAgICAxMDBweDtcbkBpbXBhYy1kYXNoYm9hcmQtYm9yZGVycy1jb2xvcjogICAgICAgICAgICAgICAgIEBsaWdodGJsdWU7XG5cbi8vIFRpdGxlXG5AaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICBAcHVycGxlO1xuQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jb2xvcjogICAgICAgICAgICAgQGRhcmtibHVlO1xuQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jcmVhdGUtY29sb3I6ICAgICAgd2hpdGU7XG5AaW1wYWMtZGFzaGJvYXJkLXNvdXJjZS1jb2xvcjogICAgICAgICAgICAgICAgICBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWxhYmVsLWNvbG9yO1xuQGltcGFjLWRhc2hib2FyZC1idXR0b25zLWJvcmRlci1yYWRpdXM6ICAgICAgICAgNHB4O1xuXG4vL0luZm8tdGV4dFxuQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgd2hpdGU7XG5AaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1iYWNrZ3JvdW5kLWNvbG9yOiAgICByZ2JhKDIzLDM4LDQ1LCAwLjcpO1xuQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC1zaXplOiAgICAgICAgICAgMjVweDtcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtd2VpZ2h0OiAgICAgICAgIDMwMDtcblxuLy8gRGFzaGJvYXJkIFNlbGVjdG9yXG4gIC8vIFRhYnNcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItYm9yZGVyOiAgICAgICAgICAgICAgIDFweCBzb2xpZCBAaW1wYWMtZGFzaGJvYXJkLWJvcmRlcnMtY29sb3I7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtbWFyZ2luOiAgICAgICAgICAwIDJweCAwIDA7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtcGFkZGluZzogICAgICAgICAxMHB4IDhweCAxMHB4IDE1cHg7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtY29sb3I6ICAgICAgICAgICBibGFjaztcbkBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1hY3RpdmUtY29sb3I6ICAgIEBwdXJwbGU7XG5cbi8vIFdpZGdldCBzZWxlY3RvclxuQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmc6ICAgICAgICAgICAgIzIzMzg0NTtcbkBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXRleHQtY29sb3I6ICAgIHdoaXRlO1xuQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3Itd2lkZ2V0LWl0ZW0tbWluLWhlaWdodDogMHB4O1xuXG4vLyBXaWRnZXRzIGNvbnRhaW5lclxuQGltcGFjLXBsYWNlaG9sZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgMnB4IGRhc2hlZCBAaW1wYWMtZGFzaGJvYXJkLWJvcmRlcnMtY29sb3I7XG5AaW1wYWMtd2lkZ2V0cy1jb250YWluZXItc2lkZS1wYWRkaW5nOiAgICAgICAgICAwcHg7XG5AaW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHM6ICAgICAgICAgICAgICAgICAxMnB4O1xuQGltcGFjLW1pbmltdW0td2lkZ2V0LXNpemU6ICAgICAgICAgICAgICAgICAgICAgMjUwcHg7XG5AaW1wYWMtYmlnLXdpZGdldC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICA1NjVweDtcblxuLy8gQnV0dG9uc1xuQGltcGFjLWJ0bi1zaGFkZGVkLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICBAZGFya2JsdWU7XG5AaW1wYWMtYnRuLXNoYWRkZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBtZWRpdW1ibHVlO1xuXG4vLyBEYXNoYm9hcmQgTW9kYWxzXG5AaW1wYWMtZGFzaGJvYXJkLWxvYWRpbmctc3Bpbm5lcjogICAgICAgICAgICAgICB3aGl0ZTtcbkBpbXBhYy1kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I6IHJnYmEoMjksIDE5NywgNTcsIDAuNjIpO1xuXG4vLyBXaWRnZXRzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHbG9iYWxcbkBpbXBhYy13aWRnZXQtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQHB1cnBsZTtcbkBpbXBhYy13aWRnZXQtYnV0dG9ucy1jb2xvcjogICAgICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuQGltcGFjLXdpZGdldC10aWxlLXNlbGVjdGVkLWNvbG9yOiAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG5AaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgIHdoaXRlO1xuQGltcGFjLXdpZGdldC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICBzb2xpZCAxcHggZGFya2VuKEBsaWdodGdyYXksMTAlKTtcbkBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIzVCNjY2NztcbkBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW06ICAgICAgICAgICAgICAgbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IsMjUlKTtcbkBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDogICAgICAgICAgICAgICAgbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IsNDAlKTsgLy8jYWNiMGIxXG5AaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I6ICAgICAgICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0LDEwJSk7IC8vI2YzZjRmNFxuQGltcGFjLXdpZGdldC1zY3JvbGxiYXItY29sb3I6ICAgICAgICAgICAgICAgICAjMjMzODQ1O1xuQGltcGFjLXdpZGdldC1sb2FkaW5nLXNwaW5uZXI6ICAgICAgICAgICAgICAgICAjNjdCQkU5O1xuQGltcGFjLXdpZGdldC1yZXZlcnNlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAjMUUzMDNCO1xuQGltcGFjLXdpZGdldC1tZW51cy1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAjZWNlY2VjO1xuXG4vLyBUaXRsZVxuQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICBkYXJrZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDUlKTtcbkBpbXBhYy13aWRnZXQtdGl0bGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuQGltcGFjLXdpZGdldC10aXRsZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICB1cHBlcmNhc2U7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtc2l6ZTogICAgICAgICAgICAgICAgIDEycHg7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgIDVweCA1cHggMHB4IDBweDtcbkBpbXBhYy13aWRnZXQtdG9wLWJ1dHRvbnMtY29sb3I6ICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0O1xuXG4vLyBDb250ZW50XG5AaW1wYWMtd2lkZ2V0LWNvbnRlbnQtYm9yZGVyLXJhZGl1czogICAgICAgICAgIDBweCAwcHggNXB4IDVweDtcbkBpbXBhYy13aWRnZXQtbGluZXMtY29udGFpbmVyLW1heC1oZWlnaHQ6ICAgICAgMjAwcHg7XG5cbi8vIFNldHRpbmdzXG4vLyBQYXJhbSBzZWxlY3RvclxuQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjogICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4vLyBIaXN0IE1vZGUgQ2hvc2VyXG5AaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgIHVwcGVyY2FzZTtcbkBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAgMTJweDtcbkBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLWxpZ2h0O1xuLy8gUGFyYW1zIHBpY2tlclxuQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLWJnOiAgICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LXJldmVyc2UtY29sb3I7XG5AaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItdW5jaGVja2VkLWJnOiAgICAgICNjMmM0YzQ7XG4vLyBMaW1pdCBlbnRyaWVzXG5AaW1wYWMtd2lkZ2V0LWxpbWl0LWVudHJpZXMtY29sb3I6ICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtcmV2ZXJzZS1jb2xvcjtcblxuLy8gR2xvYmFscyBhbmQgTWl4aW5zXG5AaW1wYWMtd2lkZ2V0LXNlbGVjdGFibGUtY29sb3I6ICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcblxuLy8gRWRpdCBzZXR0aW5nc1xuQGltcGFjLXdpZGdldC1zdWItYmctY29sb3I6ICAgICAgICAgICAgICAgICAgICBkYXJrZW4oQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yLDYlKTtcbkBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yLWxpZ2h0OiAgICAgICAgICAgICAgbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvciw1JSk7IC8vZjNmNGY0XG5cbi8vIEFjY291bnRzIENvbXBhcmlzb25cbkBpbXBhYy13aWRnZXQtYWNjb3VudHMtY29tcGFyaXNvbi1saW5lcy1jb250YWluZXItbWF4LWhlaWdodDogMjIwcHg7XG5cbi8vIFNhbGVzIGJyZWFrLWV2ZW5cbkBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi1iZzogICAgICAgICAgICAgcmdiKDI1LDQwLDQ5KTtcbkBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi10ZXh0LWNvbG9yOiAgICAgIzFkZTliNjtcblxuLy8gS1BJc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gS3BpIGJhclxuQGtwaXMtYmFyLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICB3aGl0ZTtcbkBrcGlzLWJhci1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgMHB4IDFweCA4cHggLTRweDtcbi8vIEtwaVxuQGtwaS1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZTtcbkBrcGktdHJpZ2dlcmVkLWJvcmRlci1ib3R0b206ICAgICAgICAgICAgICAgICAgNHB4IHNvbGlkIEBicmFuZC1kYW5nZXI7XG5Aa3BpLW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk1cHg7XG5Aa3BpLWVkaXRpbmctbWF4LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDkwcHg7IC8vIGhlaWdodCB0byBiZSBhZGRlZCB0byB0aGUgQGtwaS1tYXgtaGVpZ2h0IHdoZW4gaW4gZWRpdGluZyBtb2RlLlxuQGtwaS1jb250ZW50LWVkaXRpbmctaGVpZ2h0LWJ1ZmZlcjogICAgICAgICAgICA1cHg7IC8vIGhlaWdodCB0byBiZSBtaW51c2VkIGZyb20gdGhlIEBrcGktZWRpdGluZy1tYXgtaGVpZ2h0IHRvIGV2ZW4gdGhlIGtwaSBoZWlnaHQgYW5kIHRoZSBrcGkgY29udGVudCBoZWlnaHQuXG4vLyBLcGkgdG9wLWxpbmVcbkBrcGktdG9wLWxpbmUtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgZ3JleTtcbkBrcGktdG9wLWxpbmUtdHJpZ2dlcmVkLWJhY2tncm91bmQtY29sb3I6ICAgICAgYmxhY2s7XG5Aa3BpLXRvcC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIDdweDtcbkBrcGktdG9wLWxpbmUtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgbm9uZTtcbi8vIGtwaSBjb250ZW50XG5Aa3BpLXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZXk7XG5Aa3BpLXRleHQtdHJpZ2dlcmVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIGJsYWNrO1xuQGtwaS1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmV5O1xuQGtwaS1pY29uLXRyaWdnZXJlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICBibGFjaztcbi8vIGtwaSBzZXR0aW5nc1xuQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvcjogICAgICAgICAgICAgICAgICAgICBAbWJsdWU7XG5Aa3BpLXNldHRpbmdzLWVycm9yLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBicmFuZC1kYW5nZXI7XG5Aa3BpLXNldHRpbmdzLXJlbW92ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICM0YzQ3NDk7XG5Aa3BpLXNldHRpbmdzLXJlbW92ZS1iYWNrZ3JvdW5kLWhvdmVyOiAgICAgICAgIGRhcmtlbihAYnJhbmQtZGFuZ2VyLCA1JSk7XG5Aa3BpLXNldHRpbmdzLWFsZXJ0LWNvbmZpZy1iYWNrZ3JvdW5kOiAgICAgICAgICM0YzQ3NDk7XG5Aa3BpLXNldHRpbmdzLWFsZXJ0LWNvbmZpZy1iYWNrZ3JvdW5kLWhvdmVyOiAgIEBtYmx1ZTtcbkBrcGktbmVnYXRpdmUtYWxlcnQtbGFiZWwtYmFja2dyb3VuZC1jb2xvcjogICAgbGlnaHRlbigjZmYwMDAwLCAzMCUpO1xuXG4vLyBXaWRnZXRzIHBvcC11cHNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjogICAgIzE5MjgzMTtcbkBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yOiAgcmdiKDI0NCwgMjQ4LCAyNDkpO1xuQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS10ZXh0LWNvbG9yOiAgICAgICAgICB3aGl0ZTtcbkBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS10ZXh0LWNvbG9yOiAgICAgICAgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuXG4vLyBEZW1vIGRhdGEgbW9kZVxuQGltcGFjLXdpZGdldC1kZW1vLWRhdGEtbGluay1jb2xvcjogICAgICAgICAgICBAbWdyZWVuO1xuIiwiLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQkFMIFNUWUxFU1xuKiogICAgICAgIFRoaXMgc3R5bGVzaGVldCBzaG91bGQgb25seSBjb250YWluIHN0eWxlcyBhcHBsaWVkIGdsb2JhbCBvciBpblxuKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgMiBvciBtb3JlIGNvbXBvbmVudHMuXG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cblxuLy8gTm90IGlkZWFsOiBpbnRlbmRzIHRvIGZvcmNlIGEgc2Nyb2xsYmFyIG9uIHRoZSB3aW5kb3cgKG5vdCBvbiB0aGUgYm9keSksXG4vLyBzbyB0aGF0IHRoZSB0b29sdGlwcyBhcHBlbmRlZCB0byBib2R5IGFyZSBub3QgbWFraW5nIHRoZSBzY3JlZW4gZmxpY2tlcmluZy5cbi8vIChzZWUgd2hlbiB0aGVyZSBpcyBvbmx5IDEgaW52b2ljZXMgbGlzdCB3aWRnZXQgb24gdGhlIGRhc2hib2FyZClcbi8vIEl0IGlzIGJldHRlciBpZiB0aGUgdG9vbHRpcHMgY2FuIGJlIGFwcGVuZGVkIHRvIGJvZHkgYmVjYXVzZSBvdGhlcndpc2UgaXQnc1xuLy8gbWVzc2luZyB0aGUgYWx0ZXJuYXRlLWJnKCkgbWl4aW5nIChieSBhZGRpbmcgYSBjaGlsZCB0byB0aGUgcGFyZW50IGVsZW1lbnQpXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDElICFpbXBvcnRhbnQ7XG59XG5cbi5hbmFseXRpY3Mge1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gVGl0bGVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gIH1cblxuICBoMyB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgLmxlZnQtdGhpbigpO1xuICB9XG5cbiAgaDQge1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBDb2xvcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLnBvc2l0aXZlLC5ncmVlbiB7XG4gICAgY29sb3I6IEBpbXBhYy1wb3NpdGl2ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm5lZ2F0aXZlLC5yZWQge1xuICAgIGNvbG9yOiBAaW1wYWMtbmVnYXRpdmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wb3NpdGl2ZTIge1xuICAgIGNvbG9yOiBAaW1wYWMtcG9zaXRpdmUyICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubmVnYXRpdmUyIHtcbiAgICBjb2xvcjogQGltcGFjLW5lZ2F0aXZlMiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBCYXNlIGVsZW1lbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICBwcmUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luOiAxcHggMHB4IDhweCAwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC53aWRnZXQtaXRlbSAuY29udGVudCwga3Bpcy1iYXIgLmtwaSB7XG4gICAgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICB3aWR0aDogNnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2Nyb2xsYmFyLWNvbG9yLDM1JSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1zY3JvbGxiYXItY29sb3IsNDAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tIENvbW1vbiBhZGp1c3RtZW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLm5vcGFkZGluZyB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5ub21hcmdpbiB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBDdXN0b20gZWxlbWVudHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLmJ0bi5idG4tc2hhZGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtYnRuLXNoYWRkZWQtYmc7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKEBpbXBhYy1idG4tc2hhZGRlZC1iZyw1JSk7XG4gICAgY29sb3I6IEBpbXBhYy1idG4tc2hhZGRlZC1jb2xvcjtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogbGlnaHRlbihAaW1wYWMtYnRuLXNoYWRkZWQtY29sb3IsNSUpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtYnRuLXNoYWRkZWQtYmcsNSUpO1xuICAgIH1cbiAgfVxuXG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKCk7XG4gIH1cblxuICAuY3VycmVuY3kge1xuICAgIC5jZW50ZXItdGhpbigpO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtO1xuICB9XG5cbiAgLmxlZ2VuZCB7XG4gICAgLmNlbnRlci1zbWFsbCgpO1xuICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDtcbiAgfVxuXG4gIC5sb2FkZXIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaSB7XG4gICAgICAubG9hZGVyLXN0eWxlKCk7XG4gICAgfVxuICAgIHAge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG4gIH1cblxuICAucmlnaHQtcGFuZWwge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI2U2ZTZlNjtcbiAgfVxuXG4gIC5zZWxlY3RvciB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IEBtZWRpdW1ibHVlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlclxuICB9XG5cbiAgLnRpbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDcsMjQ3LDI0Nyk7XG4gICAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjRjFGOUZGLCAzJSk7XG4gICAgfVxuICAgIC5jb2xvcmVkLWFyZWEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNGQzRGRjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICBtaW4td2lkdGg6IDglO1xuICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtdGlsZS1zZWxlY3RlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgLm1haW4tdGV4dCB7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgcGFkZGluZzogMjBweCAwcHggMHB4IDVweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgfVxuXG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy13aWRnZXQtbGluZXMtY29udGFpbmVyLW1heC1oZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMHB4IDE1cHg7XG5cbiAgICAucm93LndpZGdldC1saW5lIHtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIGNvbG9yOiBAbWVkaXVtYmx1ZTtcblxuICAgICAgJi5oZWFkZXIge1xuICAgICAgICAuZm9udCgxMnB4LDUwMCxAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtKTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgICAgICBtYXJnaW46IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcblxuICAgICAgICAmID4gW2NsYXNzKj0nY29sLSddIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaS5mYSB7XG4gICAgICAgIG1pbi13aWR0aDogMTJweDtcbiAgICAgICAgbWluLWhlaWdodDogMTJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucm93IC5kYXNoZWQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgIH1cblxuICAgIC5yb3cubGluZXMtZ3JvdXAge1xuICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4IEBsaWdodGdyYXk7XG4gICAgfVxuICB9XG59XG5cbi52ZXJ0aWNhbC1zY3JvbGwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi5ob3Jpem9udGFsLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cblxuLy8gVGhlIHRvb2x0aXBzIHNob3VsZCBiZSBhcHBlbmQgdG8gYm9keVxuLnRvb2x0aXAuaW1wYWMtd2lkZ2V0cy10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbWRhcmtibHVlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHN0cm9uZyB7XG4gICAgY29sb3I6IEBtZ3JlZW47XG4gIH1cbn1cblxuLnNvcnRhYmxlLXRpdGxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLSBCb290c3RyYXAgb3ZlcnJpZGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAmOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiBAYnJhbmQtZGFuZ2VyIH1cbn1cblxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6IEBicmFuZC1zdWNjZXNzO1xuICAmOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiBAYnJhbmQtc3VjY2VzcyB9XG59XG5cbi8vIHJlbW92ZSBndXR0ZXJzIGZyb20gQm9vc3RyYXAgcm93XG4ucm93Lm5vLWd1dHRlcnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLyByZW1vdmUgZ3V0dGVycyBmcm9tIEJvb3N0cmFwIGNvbHVtblxuW2NsYXNzXj1cImNvbC1cIl0ubm8tZ3V0dGVycyxcbltjbGFzcyo9XCIgY29sLVwiXS5uby1ndXR0ZXJzIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuIiwiLmZvbnQoQHNpemUsQHdlaWdodCxAY29sb3IpIHtcbiAgZm9udC13ZWlnaHQ6QHdlaWdodDtcbiAgZm9udC1zaXplOkBzaXplO1xuICBjb2xvcjpAY29sb3I7XG59XG5cbi5jZW50ZXItYm9sZCAoQG1hcmdpbi10b3A6IDMwcHgpIHtcbiAgLmZvbnQoMjJweCwgOTAwLCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IEBtYXJnaW4tdG9wO1xufVxuXG4uY2VudGVyLXRoaW4gKCkge1xuICAuZm9udCgxNnB4LCAzMDAsIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNlbnRlci1zbWFsbCAoKSB7XG4gIC5mb250KDEycHgsIDMwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubGVmdC10aGluIChAbWFyZ2luLXRvcDogMHB4KSB7XG4gIC5mb250KDE0cHgsIDMwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogQG1hcmdpbi10b3A7XG59XG5cbi53aWRnZXQtaGVpZ2h0IChAaGVpZ2h0OiBAaW1wYWMtbWluaW11bS13aWRnZXQtc2l6ZSkge1xuICBtaW4taGVpZ2h0OiBAaGVpZ2h0O1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICBoZWlnaHQ6IEBoZWlnaHQ7XG4gICAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICBtYXgtd2lkdGg6IEBoZWlnaHQgKyAyMHB4O1xuICAgICAgbWF4LWhlaWdodDogQGhlaWdodCAtIDEyNXB4O1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4uc2hvcnQtd2lkZ2V0ICgpIHtcbiAgLndpZGdldC1oZWlnaHQoKTtcbiAgLmVkaXQge1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1taW5pbXVtLXdpZGdldC1zaXplIC0gMjBweDtcbiAgfVxufVxuXG4udGFsbC13aWRnZXQgKCkge1xuICAud2lkZ2V0LWhlaWdodChAaW1wYWMtYmlnLXdpZGdldC1zaXplKTtcbiAgLmVkaXQge1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1iaWctd2lkZ2V0LXNpemUgLSAyMHB4O1xuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIC5zY3JvbGxhYmxlKGhpZGRlbik7XG4gICAgfVxuICB9XG59XG5cbi5zY3JvbGxhYmxlIChAc2Nyb2xsLW1vZGU6IGF1dG8pIHtcbiAgb3ZlcmZsb3cteTogQHNjcm9sbC1tb2RlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbi5zZWxlY3RhYmxlICgpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gIC5zZWxlY3Rpb24tdGFnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICByaWdodDogMHB4O1xuICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAyOXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2VsZWN0YWJsZS1jb2xvciwgMjIlKTtcbiAgfVxuICAmLm5vLXNlbGVjdCB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgICY6aG92ZXIgeyBjb2xvcjogQG1lZGl1bWJsdWU7IH1cbiAgfVxufVxuXG4uYWx0ZXJuYXRlLWJnIChAZXZlbi1jb2xvcjogQGltcGFjLXdpZGdldC1zdWItYmctY29sb3IpIHtcbiAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBldmVuLWNvbG9yO1xuICB9XG4gICY6bnRoLWNoaWxkKG9kZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuXG4uZWRpdC1wYW5lbC1zdHlsZSgpIHtcbiAgLnNjcm9sbGFibGUoKTtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgcGFkZGluZzogMnB4O1xuICBmb250LXNpemU6IDEycHg7XG5cbiAgLmJvdHRvbS1idXR0b25zIHtcbiAgICAuYnRuIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgcGFkZGluZzogM3B4IDEzcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuXG4gICAgICAmLmJ0bi1kZWZhdWx0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MyYzRjNDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCNjMmM0YzQsMTAlKTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBkYXJrZW4oI2MyYzRjNCwyMCUpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigjYzJjNGM0LDEwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoNCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIC5mb250KDEycHgsbm9ybWFsLEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCk7XG4gIH1cblxuICAucGFydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yLWxpZ2h0O1xuICAgIC8vIGNvbG9yOiAjNjI2ZDZkO1xuICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcblxuICAgIGg1IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIHBhZGRpbmc6IDBweCAxNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIC5mb250KDEycHgsbm9ybWFsLEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCk7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBjb2xvcjogIzcyNzI4YjtcbiAgICB9XG4gIH1cbn1cblxuLmxvYWRlci1zdHlsZShAY29sb3I6IEBpbXBhYy13aWRnZXQtbG9hZGluZy1zcGlubmVyKSB7XG4gIGNvbG9yOiBAY29sb3I7XG59XG5cbi5jb2x1bW4tZ3V0dGVyKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwYWRkaW5nLWxlZnQ6IEBndXR0ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IEBndXR0ZXI7XG59XG5cbi53aWRnZXQtcG9wdXAoKSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLXRleHQtY29sb3I7XG4gIFxuICAub3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSA0cHgpXCI7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogMnB4O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB6LWluZGV4OiA1O1xuICB9XG5cbiAgLm1lc3NhZ2Uge1xuICAgIHotaW5kZXg6IDY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHRvcDogNDVweDtcbiAgICBsZWZ0OiA3JTtcbiAgICB3aWR0aDogODYlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLXRleHQtY29sb3I7XG4gICAgICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxufVxuIiwiQG1lZGlhIHByaW50IHtcbiAgYm9keSB7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7IH1cbiAgLmFuYWx5dGljcyB7XG4gICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICAgICNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAudGl0bGUtY29udGFpbmVyIHsgbWFyZ2luLXRvcDogMjBweDsgfVxuICAgIC53aWRnZXQtaXRlbSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAuY29udGVudCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNzBweDtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBjYW52YXMge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5yaWdodC1wYW5lbCB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgICAgIG1heC13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIGNhbnZhcyB7XG4gICAgICAgICAgICB3aWR0aDogODAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDgwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAqIHsgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG59XG4iLCIvLyBOT1RFOiBEbyBub3QgYWRkIHN0eWxlcyBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uIG9yIGN1c3RvbSBpbmplY3RlZCBidXR0b25IdG1sIGhlcmUuXG4vLyAgICAgICB0aGUgcGFyZW50IHN0eWxlc2hlZXQgb2Ygd2hpY2ggdGhpcyBkaXJlY3RpdmUgaXMgZW1iZWRkZWQgd2l0aGluIHNob3VsZFxuLy8gICAgICAgY29udGFpbiB0aGUgc3R5bGVzLlxuXG4vLyBNb2RhbCBrcGlzIGFsZXJ0cyBzZXR0aW5nc1xuLmtwaS1hbGVydHMtc2V0dGluZ3Mge1xuICAubW9kYWwtaGVhZGVyIHsgZm9udC1zaXplOiAyMHB4OyB9XG5cbiAgLm1vZGFsLWJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuXG4gICAgdWwgeyBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbiAgICB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgcGFkZGluZzogNnB4IDE1cHg7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAuYWxlcnQtdG9nZ2xlIHtcbiAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBAbWJsdWU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzRjYWNhO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mYS5mYS10b2dnbGUtb24sIC5mYS5mYS10b2dnbGUtb2ZmIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIHVsLnJlY2lwaWVudHMtbGlzdCB7XG4gICAgICBoZWlnaHQ6IDc1cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2M0Y2FjYTtcblxuICAgICAgbGkge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBpbnB1dC5yZWNpcGllbnQtc2VhcmNoIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHVsLmF2YWlsYWJsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIHtcbiAgcGFkZGluZy10b3A6IEBpbXBhYy1kYXNoYm9hcmQtcGFkZGluZy10b3A7XG4gIG1hcmdpbi1sZWZ0OiBAaW1wYWMtZGFzaGJvYXJkLW1hcmdpbi1sZWZ0O1xuXG4gIC8vIERlZmF1bHQgc21hbGwgc2NyZWVuIGJlaGF2aW91ciB0byBhbGxvdyBmb3IgdGhlIGNvbW1vbiB1c2Ugb2YgdG9wLWJhcnNcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgICBwYWRkaW5nLXRvcDogQGltcGFjLWRhc2hib2FyZC1zbS1wYWRkaW5nLXRvcDtcbiAgfVxuXG4gICYucGRmLW1vZGUgeyBwYWRkaW5nLXRvcDogMjBweDsgfVxuXG4gICYuc2hvdy1kaGIge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICAmLmhpZGUtZGhiIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLy8gY29udGFpbnMgY3VzdG9taXNhYmxlIGltcGFjIGxvZ28sIGFuZCBoZWFkaW5nIHRleHQuXG4gICNkYXNoYm9hcmQtaGVhZGluZyB7XG4gICAgaW1nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDE1MHB4O1xuICAgICAgJi5wZGYtbW9kZTpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIH1cbiAgICAuY2FwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBtYXJnaW46IDVweCAwcHg7XG4gICAgfVxuICB9XG5cbiAgI3N1Yi1tZW51IHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgY29sb3I6ICMyMzM4NDU7XG4gICAgfVxuXG4gICAgLmZhLmZhLXRpbWVzIHtcbiAgICAgIG1hcmdpbjogNnB4O1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oIzIzMzg0NSwgMTUlKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAjd2lkZ2V0LXNlbGVjdG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZztcbiAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItdGV4dC1jb2xvcjtcbiAgICBwYWRkaW5nOiAwcHggNDVweCAxMHB4IDQ1cHg7XG4gICAgbWFyZ2luOiAxMHB4IC00NXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIENocm9tZS9TYWZhcmkgKi9cbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOyAvKiBGaXJlZm94ICovXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAvKiBJRTEwKyAqL1xuICAgIC8qIFJ1bGVzIGJlbG93IG5vdCBpbXBsZW1lbnRlZCBpbiBicm93c2VycyB5ZXQgKi9cbiAgICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgICAgcGFkZGluZzogMCAxNXB4IDEwcHggMTVweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAudGl0bGUge1xuICAgICAgcGFkZGluZzogMTVweCAwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZyw2JSk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgcC5pbnN0cnVjdGlvbiB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC53aWRnZXQtYWRkZWQuYmFkZ2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgIC5mYS5jbG9zZS1zZWxlY3RvciB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IEBtbGlnaHRncmV5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRvcC1jb250YWluZXIge1xuICAgICAgbWFyZ2luOiAxNXB4IDBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cblxuICAgIC5zZWN0aW9uLWhlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi1saW5lcyB7XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMHB4O1xuXG4gICAgICBwIHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsICYuc2VsZWN0ZWQge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci10ZXh0LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZywzJSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhdGVnb3JpZXMtc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG5cbiAgICAgICYgPiAuc2VjdGlvbi1saW5lcyB7XG5cbiAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGluZS1pdGVtOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsMyUpO1xuICAgICAgICB9XG4gICAgICAgIC5saW5lLWl0ZW0uc2VsZWN0ZWQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAuYm94LXNoYWRvdygtMnB4IDJweCAxMHB4IC00cHggYmxhY2spO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5hcnJvdy1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDMzcHg7XG4gICAgICAgIHJpZ2h0OiAtMTFweDtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAuc3F1YXJlIHtcbiAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICByaWdodDogMTdweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpLmZhLmZhLWNhcmV0LXJpZ2h0IHtcbiAgICAgICAgICBmb250LXNpemU6IDUycHg7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogLTEuNXB4O1xuICAgICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAud2lkZ2V0cy1zZWN0aW9uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci1iZywzJSk7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcblxuICAgICAgJiA+IC5zZWN0aW9uLWhlYWRlciB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJiA+IC5zZWN0aW9uLWxpbmVzIHtcbiAgICAgICAgcGFkZGluZzogM3B4IDBweDtcblxuICAgICAgICAuZmEuZmEtcGx1cy1jaXJjbGUge1xuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gLmxpbmUtaXRlbXMtZ3JpZCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgaGVpZ2h0OiAwJTtcblxuICAgICAgICAgICYgPiAuZ3JpZC1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTNweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAvLyBBcHBsaWVzIGEgZmxleC1iYXNpcyBvZiAxLzMgZm9yIGVhY2ggZ3JpZCBpdGVtICgzIGNvbHVtbnMgcGVyIHJvdylcbiAgICAgICAgICAgIGZsZXg6IDAgMzEuMzMlO1xuICAgICAgICAgICAgLy8gQ3JlYXRlcyBhIHNtYWxsIGd1dHRlciBhcm91bmQgZWFjaCBncmlkIGl0ZW1cbiAgICAgICAgICAgIG1hcmdpbjogMCAxJTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmc7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiBAaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci13aWRnZXQtaXRlbS1taW4taGVpZ2h0O1xuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgICAgICAgICAgICBmbGV4OiAwIDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwLmxpbmUtaXRlbSB7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYm90dG9tIHtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICYgPiAuc3VnZ2VzdGlvbiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICBhIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogQGZsdXJvYmx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgJiA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICYgPiAqIHsgbWFyZ2luOiAwcHggM3B4OyB9XG4gICAgfVxuICAgIHNlbGVjdCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIG5vIHdpZGdldHMgLSBlbXB0eSBkYXNoYm9hcmQuXG4gICNuby13aWRnZXRzLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuXG4gICAgLy8gYmFja2dyb3VuZCBpbWFnZSBhc3NldFxuICAgIGltZy5iZyB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBubyB3aWRnZXRzIG1lc3NhZ2UgdGhhdCBzaXRzIGFib3ZlIGltYWdlIGFzc2V0XG4gICAgLmltcGFjLWluZm8tbWVzc2FnZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgLmluZm8tdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtZm9udC13ZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6MjBweDtcbiAgICAgICAgbWluLWhlaWdodDogMTE1cHg7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC8vIHBhcmVudCBkaXYgc2VjdGlvbiBmb3Igd2lkZ2V0cyB0byBiZSBob3VzZWQuXG4gICN3aWRnZXRzLXNlY3Rpb24ge1xuICAgIC8vIGNvbnRhaW5lciBmb3Igd2lkZ2V0c1xuICAgICN3aWRnZXRzLWNvbnRhaW5lciB7XG4gICAgICAvLyBRdWljay1maXggdG8gYXZvaWQgc2NyZWVuIGZsb2NrZXJpbmcgd2hlbiB0b29sdGlwcyBhcmUgYXBwZW5kZWQgdG8gYm9keTpcbiAgICAgIC8vIG1pbi1oZWlnaHQgd2lsbCBmb3JjZSBhIHNjcm9sbGJhciB0byBhcHBlYXIuLi5cbiAgICAgIG1pbi1oZWlnaHQ6IDcwMHB4O1xuICAgIH1cblxuICAgIC5wbGFjZUhvbGRlckJveCB7XG4gICAgICBtYXJnaW46IEBpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0cztcbiAgICAgIGhlaWdodDogMjY3cHg7XG4gICAgICB3aWR0aDogMzAwcHg7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGJvcmRlcjogQGltcGFjLXBsYWNlaG9sZGVyLWJvcmRlcjtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIGRhc2hib2FyZCBmYWlsZWQgdG8gbG9hZCBtZXNzYWdlLlxuLmFuYWx5dGljcy5sb2FkLWZhaWxlZCB7XG5cbiAgcCB7IGZvbnQtc2l6ZTogMjJweDsgfVxuXG4gIC5zZWNvbmQtbXNnIHtcbiAgICBwIHtcbiAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cbiAgfVxufVxuXG4vLyBUb29sdGlwcyBhcmUgYXBwZW5kIHRvIGJvZHlcbi50b29sdGlwLmltcGFjLXdpZGdldC1zZWxlY3Rvci10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5kaGItY3JlYXRlLW1vZGFsIC5kYXNoYm9hcmQtZm9ybSB7XG5cbiAgLy8gQmV0dGVyIGFsaWducyBmb3JtIGxhYmVscyB3aXRoIHRlbXBsYXRlcyBzZWN0aW9uIGxhYmVsXG4gIC5jb2wtc20tMi5jb250cm9sLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG59XG5cbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSB7XG4gIGlucHV0LHRleHRhcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogYmxhY2s7XG4gIH1cbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogMTUwcHg7XG4gIH1cbiAgLnRoYW5rcy1tZXNzYWdlIHtcbiAgICBjb2xvcjogQG1ncmVlbjtcbiAgfVxufVxuXG4vLyBUaGlzIHN0eWxlIGFwcGxpZXMgdG8gZGFzaGJvYXJkIG1vZGFscywgYW5kIGFsc28gdGhlXG4vLyBgYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uL2Zvcm11bGEubW9kYWwuaHRtbGAgbW9kYWwuXG4ubW9kYWwtZm9vdGVyIC5sb2FkZXIge1xuICAubG9hZGVyLXN0eWxlKEBpbXBhYy1kYXNoYm9hcmQtbG9hZGluZy1zcGlubmVyKVxufVxuXG4iLCIjbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3Ige1xuICBhIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG4gIC8vIGRhc2hib2FyZCBzZWxlY3RvciB0ZW1wbGF0ZSB3cmFwcGVyIGRpdlxuICAmID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLWJvcmRlcjtcbiAgfVxuXG4gIC5idXR0b25zLWJhci1yb3cge1xuICAgIG1hcmdpbi10b3A6IDU0cHg7XG4gICAgJi5wZGYtbW9kZSB7IG1hcmdpbi10b3A6IDBweDsgfVxuICB9XG5cbiAgLy8gY29udGFpbmVyIGZvciBkYXNoYm9hcmQgc2VsZWN0b3IgJ2Ryb3Bkb3duJyB0ZW1wbGF0ZVxuICAuYnV0dG9ucy1iYXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmJ0biB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBtYXJnaW46IDNweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBpbXBhYy1kYXNoYm9hcmQtYnV0dG9ucy1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgIC50aXRsZS1jb250YWluZXIge1xuICAgICAgaDEge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRyb3Bkb3duLWNvbnRhaW5lciB7XG4gICAgICAuZGFzaGJvYXJkLXRpdGxlIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3IsMTAlKTtcbiAgICAgICAgfVxuICAgICAgICBpLmZhLmZhLXBlbmNpbCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IEBtZ3JlZW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGFzaGJvYXJkLXNlbGVjdCB7XG4gICAgICAgIG1hcmdpbjogNXB4IDBweCAxMHB4IDMwcHg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjtcbiAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGlnaHRncmF5O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIC5vcHRpb24ge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWxhYmVsLWNvbG9yO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuY3JlYXRlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jcmVhdGUtY29sb3I7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvciwxMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpLmZhLmZhLXBlbmNpbCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogN3B4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDE1JTtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3IsMTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgc3Bhbi5uYW1lIHtcbiAgICAgICAgICAgIHdpZHRoOiA4NSU7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jaGFuZ2UtbmFtZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMsIDM4LCA0NSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC5ib3gtc2hhZG93KDBweCAwcHggMjVweCA0cHggYmxhY2spO1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGF0YS1zb3VyY2UtbGFiZWwge1xuICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1zb3VyY2UtY29sb3I7XG4gICAgICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubG9hZGVyLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAubG9hZGluZy1zcGlubmVyIHtcbiAgICAgICAgLmxvYWRlci1zdHlsZSgpO1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gYW5ndWxhciBib290c3RyYXAgdGFicyAmIHBpbGxzXG4gIC5uYXYtdGFicyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxuICAubmF2Lm5hdi10YWJzLFxuICAubmF2Lm5hdi1waWxscyB7XG5cbiAgICAvLyBhZGQgbmV3IHRhYlxuICAgIGxpOmxhc3QtY2hpbGQgPiBhIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICB0YWItaGVhZGluZyBhIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUQUJTXG4gIC5uYXYubmF2LXRhYnMge1xuICAgIC8vIHRhYlxuICAgIGxpID4gYSB7XG4gICAgICBwYWRkaW5nOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtcGFkZGluZztcbiAgICAgIG1hcmdpbjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLW1hcmdpbjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLWJvcmRlcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtY29sb3I7XG4gICAgfVxuICAgIC8vIGFjdGl2ZSB0YWJcbiAgICBsaS5hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWNvbG9yO1xuICAgIH1cbiAgICAvLyBhZGQgbmV3IHRhYlxuICAgIGxpOmxhc3QtY2hpbGQgPiBhIHtcbiAgICAgIC8vIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIH1cbiAgICBsaTpsYXN0LWNoaWxkLmFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gUElMTFNcbiAgLy8gVE9ETzogQWRkIGxlc3MgdmFyaWFibGVzIGZvciBjdXN0b21pc2F0aW9uLlxuICAubmF2Lm5hdi1waWxscyB7XG4gICAgLy8gdGFiXG4gICAgbGkgPiBhIHtcbiAgICAgIG1pbi13aWR0aDogMHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIH1cbiAgICAvLyBhZGQgYSBuZXcgdGFiXG4gICAgbGk6bGFzdC1jaGlsZCB0YWItaGVhZGluZyBhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgfVxuICAgIC8vIGFkZCBhIG5ldyB0YWJcbiAgICBsaTpsYXN0LWNoaWxkLmFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgICB9XG4gIH1cbiAgLy8gdGFiIGljb25zXG4gIHRhYi1oZWFkaW5nIGEuY2xvc2UtbGluayB7XG4gICAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkO1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC05cHg7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWNvbG9yO1xuICB9XG4gIC8vLy8vLy8vXG59XG4iLCJkYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIHtcbiAgLnRlbXBsYXRlcy1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLnRlbXBsYXRlcy10b2dnbGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBpLmZhIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmLmZhLXRvZ2dsZS1vbiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAudGVtcGxhdGVzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMXB4IDBweCAjY2NjO1xuICAgIGhlaWdodDogMTMwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuXG4gICAgLnRlbXBsYXRlIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlY2VjO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yLCAyMCUpO1xuICAgICAgfVxuICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0O1xuICBtYXgtaGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6IEBrcGktYmFja2dyb3VuZC1jb2xvcjtcbiAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGtwaS1iYWNrZ3JvdW5kLWNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW47XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIH1cblxuICAmLnRyaWdnZXJlZCwgJi5hZGQ6aG92ZXIge1xuICAgIGJvcmRlci1ib3R0b206IEBrcGktdHJpZ2dlcmVkLWJvcmRlci1ib3R0b207XG4gIH1cblxuICAmLmFkZCB7XG4gICAgLmtwaS10ZXh0IHtcbiAgICAgIC5lbXBoYXNpcyB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIH1cbiAgfVxuXG4gICYuYWRkOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLnRvcC1saW5lIHsgYmFja2dyb3VuZC1jb2xvcjogQGtwaS10b3AtbGluZS10cmlnZ2VyZWQtYmFja2dyb3VuZC1jb2xvcjsgfVxuICAgIC5rcGktdGV4dCB7XG4gICAgICBjb2xvcjogQGtwaS10ZXh0LXRyaWdnZXJlZC1jb2xvcjtcbiAgICAgIC5lbXBoYXNpcyB7IHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICB9XG4gICAgLmtwaS1pY29uIHtcbiAgICAgIGNvbG9yOiBAa3BpLWljb24tdHJpZ2dlcmVkLWNvbG9yO1xuICAgICAgLmZhLXBsdXM6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGYwMGNcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmVkaXRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodCArIEBrcGktZWRpdGluZy1tYXgtaGVpZ2h0O1xuICB9XG5cbiAgJjpob3ZlciB7IGN1cnNvcjogZGVmYXVsdDsgfVxuXG4gICYuc3RhdGljIHtcbiAgICAua3BpLXZhbHVlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG4gIH1cblxuICAudG9wLWxpbmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgcGFkZGluZzogOXB4IDlweCAwcHggMTJweDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIG1pbi1oZWlnaHQ6IEBrcGktdG9wLWxpbmUtaGVpZ2h0O1xuICAgIGJveC1zaGFkb3c6IEBrcGktdG9wLWxpbmUtYm94LXNoYWRvdztcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBrcGktdG9wLWxpbmUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAmLnRyaWdnZXJlZCB7IGJhY2tncm91bmQtY29sb3I6IEBrcGktdG9wLWxpbmUtdHJpZ2dlcmVkLWJhY2tncm91bmQtY29sb3I7IH1cbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycyBlYXNlLWluO1xuICB9XG5cbiAgLmtwaS1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQgLSA1cHg7XG4gICAgJi5lZGl0aW5nIHtcbiAgICAgIG1pbi1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodCArIEBrcGktZWRpdGluZy1tYXgtaGVpZ2h0IC0gQGtwaS1jb250ZW50LWVkaXRpbmctaGVpZ2h0LWJ1ZmZlcjtcbiAgICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLmtwaS1zaG93IHtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgLy8gc21hbGwgZml4IGZvciBpcGhvbmUgNiBhbmQgc21hbGxlclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM4MHB4KSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDNweDtcbiAgICB9XG5cbiAgICAuZW1waGFzaXMge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgICAgLnJlYWwtdmFsdWUgeyBjb2xvcjogIzY3Njc2NzsgfVxuICAgIH1cblxuICAgIC5jYXB0aW9uIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgLmtwaS10ZXh0IHtcbiAgICAgICYgPiBzcGFuIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIHBhZGRpbmc6IDdweCAwO1xuICAgICAgY29sb3I6IEBrcGktdGV4dC1jb2xvcjtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIC4ycyBlYXNlLWluO1xuICAgICAgJi50cmlnZ2VyZWQgeyBjb2xvcjogQGtwaS10ZXh0LXRyaWdnZXJlZC1jb2xvcjsgfVxuXG4gICAgICAuY2FwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDY1cHgpIHtcbiAgICAgICAgLmNhcHRpb24geyBmb250LXNpemU6IDEwcHg7IH1cbiAgICAgICAgLmVtcGhhc2lzIHsgZm9udC1zaXplOiAxMXB4OyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmtwaS1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgIGNvbG9yOiBAa3BpLWljb24tY29sb3I7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZS1pbjtcbiAgICAgICYudHJpZ2dlcmVkIHsgY29sb3I6IEBrcGktaWNvbi10cmlnZ2VyZWQtY29sb3I7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5rcGktZWRpdCB7XG5cbiAgICBhIHsgY29sb3I6IHdoaXRlOyB9XG5cbiAgICAua3BpLW5hbWUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgaDYge1xuICAgICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucmVhbC12YWx1ZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5hbGVydC1jYXB0aW9uIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGJhY2tncm91bmQ6IEBrcGktbmVnYXRpdmUtYWxlcnQtbGFiZWwtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuXG4gICAgLmtwaS10YXJnZXQtd2F0Y2hhYmxlLFxuICAgIC5rcGktdGFyZ2V0LXVuaXQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLmtwaS10YXJnZXQtd2F0Y2hhYmxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBjb2xvcjogbGlnaHRlbihAa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3IsIDUlKTtcbiAgICB9XG5cbiAgICAua3BpLXRhcmdldC11bml0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNnB4O1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBjb2xvcjogbGlnaHRlbihAa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3IsIDEwJSk7XG4gICAgfVxuXG4gICAgLnBhcmFtLW5hbWUge1xuICAgICAgLnNtYWxsKCk7XG4gICAgfVxuXG4gICAgLmJ0bi5idG4teHMge1xuICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5rcGktZWRpdCxcbiAgLmtwaS1uby1kYXRhIHtcbiAgICAuaW1wYWMtbWF0ZXJpYWwoQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvciwgQGtwaS1zZXR0aW5ncy1lcnJvci1jb2xvcik7XG4gIH1cblxuICBidXR0b24ua3BpLWFsZXJ0cy5pbS1mYWIuaW0tcHJpbWFyeSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEycHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBiYWNrZ3JvdW5kOiBAa3BpLXNldHRpbmdzLWFsZXJ0LWNvbmZpZy1iYWNrZ3JvdW5kO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VkOiBAa3BpLXNldHRpbmdzLWFsZXJ0LWNvbmZpZy1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIGJ1dHRvbi5rcGktcmVtb3ZlLmltLWZhYi5pbS13YXJuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTJweDtcbiAgICByaWdodDogLTExcHg7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBiYWNrZ3JvdW5kOiBAa3BpLXNldHRpbmdzLXJlbW92ZS1iYWNrZ3JvdW5kO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAua3BpLWRhdGEtbG9hZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA5NXB4O1xuICB9XG59XG5cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIC5rcGkge1xuICBtaW4taGVpZ2h0OiA4MHB4O1xufVxuIiwiLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU1QQUMgTUFURVJJQUxcbi8qICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qKiBNaXhpbiBtYXRlcmlhbCBzdHlsZWQgZm9ybSBpbnB1dHMsIG92ZXJyaWRpbmcgYm9vdHN0cmFwJ3MgdW5nb2RseSByb3VuZC1uZXNzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiBERU1PIEhUTUwgLSB1c2UgdGhpcyBodG1sIHRvIHRlc3QgYWxsIGltcGFjIG1hdGVyaWFsIGZlYXR1cmVzLlxuPGZvcm0+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgPHNlbGVjdD5cbiAgICAgIDxvcHRpb24+VmFsdWUgMTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbj5WYWx1ZSAyPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gICAgPGxhYmVsIGZvcj1cInNlbGVjdFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPlNlbGVjdGJveDwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5UZXh0ZmllbGQ8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1tZXNzYWdlc1wiPlxuICAgICAgPHA+VGhpcyBpcyBhbiBlcnJvciBtZXNzYWdlPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0taW5saW5lXCI+XG4gICAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPklubGluZTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPklubGluZTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDx0ZXh0YXJlYSByZXF1aXJlZD48L3RleHRhcmVhPlxuICAgIDxsYWJlbCBmb3I9XCJ0ZXh0YXJlYVwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPlRleHRhcmVhPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjaGVja2VkPVwiY2hlY2tlZFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIGNoZWNrYm94XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLXJhZGlvXCI+XG4gICAgPGRpdiBjbGFzcz1cImltLXJhZGlvXCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicmFkaW9cIiBjaGVja2VkPVwiY2hlY2tlZFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSByYWRpbyBidXR0b25cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImltLXJhZGlvXCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicmFkaW9cIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgcmFkaW8gYnV0dG9uXG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImltLWZhYiBpbS1wcmltYXJ5XCI+PGk+4pmlPC9pPjwvYnV0dG9uPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImltLWZhYiBpbS13YXJuXCI+PGk+4pmlPC9pPjwvYnV0dG9uPlxuPC9mb3JtPlxuKi9cblxuQGJvZHktYmc6ICNmZmY7XG5cbi8vIFNoYWRvd3NcbkBzaGFkb3ctaW5zZXQ6IGluc2V0IDAgMnB4IDJweCAwIHJnYmEoMCwwLDAsLjE0KTtcbkBzaGFkb3ctMDogMCAwIDFweCByZ2JhKDAsIDAsIDAsIDApO1xuQHNoYWRvdy0yOiAwIDJweCAycHggMCByZ2JhKDAsMCwwLC4xNCksMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAxcHggNXB4IDAgcmdiYSgwLDAsMCwuMTIpO1xuQHNoYWRvdy0zOiAwIDNweCA0cHggMCByZ2JhKDAsMCwwLC4xNCksMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAxcHggOHB4IDAgcmdiYSgwLDAsMCwuMTIpO1xuQHNoYWRvdy00OiAwIDRweCA1cHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKSwwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKTtcbkBzaGFkb3ctNjogMCA2cHggMTBweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxOHB4IDAgcmdiYSgwLDAsMCwuMTIpLDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsLjIpO1xuQHNoYWRvdy04OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLC4xNCksMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwuMTIpLDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsLjIpO1xuXG4vLyBGb250IFNpemVzXG5AaW0tZm9udC1zaXplOiAxLjI1cmVtO1xuQGltLWFjdGl2ZS1mb250LXNpemU6IEBpbS1mb250LXNpemUgKiAwLjg7XG5AaW0tYWN0aXZlLXRvcDogLUBpbS1mb250LXNpemU7XG5cbi8vIE1hcmdpbiAmIFBhZGRpbmdzXG5AaW0tZ2FwOiBAaW0tZm9udC1zaXplICogLjc7XG5AaW0tc3BhY2VyOiBAaW0tZm9udC1zaXplIC8gODtcbkBpbS1maWVsZHNldC1tYXJnaW46IDAgMCBAaW0tZ2FwICogMjtcbkBpbS1jaGVja2JveC1nYXA6IEBpbS1mb250LXNpemUgKiAyO1xuQGltLWNoZWNrYm94LXRvcDogMDtcbkBpbS1yYWRpby1tYXJnaW46IEBpbS1mb250LXNpemUgLyAtNDtcblxuLy8gQ29sb3JzXG5AaW0tYm9yZGVyLWNvbG9yOiAjOTk5O1xuQGltLWxhYmVsLWNvbG9yOiBsaWdodGVuKEBpbS1ib3JkZXItY29sb3IsIDEwJSk7XG5AaW0tYWN0aXZlLWNvbG9yOiBkYXJrZW4oQGltLWJvcmRlci1jb2xvciwgMTAlKTtcblxuLy8gQW5pbWF0aW9uXG5AaW0tdHJhbnNpdGlvbi1zcGVlZDogMC4yOHM7XG5cbi5pbXBhYy1tYXRlcmlhbCAoQGltLWZvY3VzLWNvbG9yOiAjMzM3YWI3LCBAaW0tZXJyb3ItY29sb3I6ICNkOTUzNGYsIEBpbS1pbnB1dC1jb2xvcjogIzMzMykge1xuICAvKiBGbGF0dGVuIGRlciBCb290c3RyYXAgKi9cbiAgLndlbGwsIC5uYXZiYXItaW5uZXIsIC5wb3BvdmVyLCAuYnRuLCAudG9vbHRpcCwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIHByZSwgLnByb2dyZXNzLCAubW9kYWwsIC5hZGQtb24sIC5hbGVydCwgLnRhYmxlLWJvcmRlcmVkLCAubmF2Pi5hY3RpdmU+YSwgLmRyb3Bkb3duLW1lbnUsIC50b29sdGlwLWlubmVyLCAuYmFkZ2UsIC5sYWJlbCwgLmltZy1wb2xhcm9pZCB7XG4gICAgLW1vei1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgYm9keSxcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmOjphZnRlcixcbiAgICAmOjpiZWZvcmUge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cblxuICBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBTdHlsZXMgZm9yIHRoZSBmb3JtXG4gIGZpZWxkc2V0IHtcbiAgICBtYXJnaW46IEBpbS1maWVsZHNldC1tYXJnaW47XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxuICAuaW0tZm9ybS1yYWRpbyxcbiAgLmltLWZvcm0tZ3JvdXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAoQGltLWdhcCAqIDEuNSk7XG4gICAgbWFyZ2luLWJvdHRvbTogKEBpbS1nYXAgKiAxLjUpO1xuICB9XG5cbiAgLmltLWZvcm0taW5saW5lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgID4gLmltLWZvcm0tZ3JvdXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbGV4OiAxO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAoQGltLWdhcCAqIC4yKTtcbiAgICAgIG1hcmdpbi1yaWdodDogKEBpbS1nYXAgKiAuMik7XG4gICAgfVxuXG4gICAgPiAuYnRuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLmltLWZvcm0tZ3JvdXAge1xuICAgIGlucHV0IHtcbiAgICAgIGhlaWdodDogKEBpbS1mb250LXNpemUgKiAxLjkpO1xuICAgIH1cblxuICAgIHRleHRhcmVhIHtcbiAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250LXNpemU6IEBpbS1mb250LXNpemU7XG4gICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplICogMS42KTtcbiAgICAgIHBhZGRpbmc6IEBpbS1zcGFjZXIgQGltLXNwYWNlciAoQGltLXNwYWNlciAvIDIpO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5pbS1jb250cm9sLWxhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogKEBpbS1mb250LXNpemUgLyA0KTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiBAaW0tc3BhY2VyO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGNvbG9yOiBAaW0tbGFiZWwtY29sb3I7XG4gICAgICBmb250LXNpemU6IEBpbS1mb250LXNpemU7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgfVxuXG4gICAgLmltLWJhciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3JkZXItYm90dG9tOiAoQGltLWZvbnQtc2l6ZSAvIDE2KSBzb2xpZCBAaW0tYm9yZGVyLWNvbG9yO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplIC8gOCk7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGJvdHRvbTogKEBpbS1mb250LXNpemUgLyAtMTYpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJhY2tncm91bmQ6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlLCB3aWR0aCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IEBpbS1zcGFjZXIgQGltLXNwYWNlciAoQGltLXNwYWNlciAvIDIpO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgfiAuaW0tYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3QsXG4gICAgaW5wdXQ6Zm9jdXMsXG4gICAgaW5wdXQ6dmFsaWQsXG4gICAgaW5wdXQuZm9ybS1maWxlLFxuICAgIGlucHV0Lmhhcy12YWx1ZSxcbiAgICB0ZXh0YXJlYTpmb2N1cyxcbiAgICB0ZXh0YXJlYTp2YWxpZCxcbiAgICB0ZXh0YXJlYS5mb3JtLWZpbGUsXG4gICAgdGV4dGFyZWEuaGFzLXZhbHVlIHtcbiAgICAgIGNvbG9yOiBAaW0taW5wdXQtY29sb3I7XG5cbiAgICAgIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IEBpbS1hY3RpdmUtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogQGltLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgdG9wOiBAaW0tYWN0aXZlLXRvcDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3QsXG4gICAgaW5wdXQsXG4gICAgdGV4dGFyZWEge1xuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIH4gLmltLWJhciB7XG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSYWRpbyAmIENoZWNrYm94XG4gIC5pbS1jaGVja2JveCxcbiAgLmltLWZvcm0tcmFkaW8ge1xuICAgIGxhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogQGltLWNoZWNrYm94LWdhcDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjb2xvcjogQGltLWlucHV0LWNvbG9yO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBvcGFjaXR5OiAwLjAwMDAwMDAxO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAuaW0tcmFkaW8ge1xuICAgIG1hcmdpbi1ib3R0b206IEBpbS1mb250LXNpemU7XG5cbiAgICAuaW0taGVscGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogQGltLXJhZGlvLW1hcmdpbjtcbiAgICAgIGxlZnQ6IEBpbS1yYWRpby1tYXJnaW47XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZTtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgY29sb3I6IEBpbS1ib3JkZXItY29sb3I7XG5cbiAgICAgIC8vIFRPRE86IGltcHJvdmUgcmFkaW8gdHJhbnNpdGlvbiAtIHJpcHBsZSBlZmZlY3QgbGlrZSBhbmd1bGFyIG1kIHdvdWxkIGJlIGNvb2wgOilcbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBtYXJnaW46IChAaW0tc3BhY2VyICogMik7XG4gICAgICAgIHdpZHRoOiBAaW0tZm9udC1zaXplO1xuICAgICAgICBoZWlnaHQ6IEBpbS1mb250LXNpemU7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogKEBpbS1mb250LXNpemUgLyA4KSBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICBib3JkZXItY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCB7XG4gICAgICB+IC5pbS1oZWxwZXIge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmltLWNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiAoQGltLWdhcCAqIDIpO1xuICAgIG1hcmdpbi1ib3R0b206IEBpbS1mb250LXNpemU7XG5cbiAgICAuaW0taGVscGVyIHtcbiAgICAgIGNvbG9yOiBAaW0tYm9yZGVyLWNvbG9yO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBAaW0tY2hlY2tib3gtdG9wO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiBAaW0tZm9udC1zaXplO1xuICAgICAgaGVpZ2h0OiBAaW0tZm9udC1zaXplO1xuICAgICAgei1pbmRleDogMDtcbiAgICAgIGJvcmRlcjogKEBpbS1mb250LXNpemUgLyA4KSBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiAoQGltLWZvbnQtc2l6ZSAvIDE2KTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogKEBpbS1mb250LXNpemUgKiAwLjIpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogKEBpbS1mb250LXNpemUgLyA0KTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZSwgaGVpZ2h0IDBzIGxpbmVhciBAaW0tdHJhbnNpdGlvbi1zcGVlZDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAoQGltLWZvbnQtc2l6ZSAqIDAuNjUpO1xuICAgICAgICBsZWZ0OiAoQGltLWZvbnQtc2l6ZSAqIDAuMzgpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgKEBpbS1mb250LXNpemUgLyAxNikgQGJvZHktYmc7XG4gICAgICB9XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdG9wOiAoQGltLWZvbnQtc2l6ZSAqIDAuMyk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQge1xuICAgICAgfiAuaW0taGVscGVyIHtcbiAgICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcblxuICAgICAgICAvLyBUT0RPOiBpbXByb3ZlIGNoZWNrZWQgdHJhbnNpdGlvbi5cbiAgICAgICAgJjo6YWZ0ZXIsXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplIC8gMik7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGhlaWdodDogKEBpbS1mb250LXNpemUgKiAxLjIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IEBpbS10cmFuc2l0aW9uLXNwZWVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmltLXJhZGlvICsgLmltLXJhZGlvLFxuICAuaW0tY2hlY2tib3ggKyAuaW0tY2hlY2tib3gge1xuICAgIG1hcmdpbi10b3A6IEBpbS1mb250LXNpemU7XG4gIH1cblxuICAvLyBBZGQgY2xhc3Mgb250byBuZy1tZXNzYWdlcyBkaXZcbiAgLmltLW1lc3NhZ2VzIHtcbiAgICBmb250LXNpemU6IEBpbS1mb250LXNpemUgLyAxLjI7XG4gICAgY29sb3I6IEBpbS1lcnJvci1jb2xvcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGFsbCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBjdWJpYy1iZXppZXIoLjU1LDAsLjU1LC4yKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgfVxuXG4gIC5oYXMtZXJyb3Ige1xuICAgIC5sZWdlbmQubGVnZW5kLFxuICAgICYuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbC5pbS1jb250cm9sLWxhYmVsIHtcbiAgICAgIGNvbG9yOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgfVxuXG4gICAgJi5pbS1mb3JtLWdyb3VwLFxuICAgICYuaW0tY2hlY2tib3gsXG4gICAgJi5pbS1yYWRpbyxcbiAgICAmLmltLWZvcm0tcmFkaW8ge1xuICAgICAgLmltLW1lc3NhZ2VzLFxuICAgICAgLmltLWhlbHBlciB7XG4gICAgICAgIGNvbG9yOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmltLWJhciB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbS1idXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKEBpbS1mb2N1cy1jb2xvciwgMTAlKTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAoQGltLWZvbnQtc2l6ZSAqIDEuMSk7XG4gICAgY29sb3I6IEBpbS1pbnB1dC1jb2xvcjtcbiAgICBtYXJnaW46IChAaW0tZ2FwICogLjgpIDA7XG4gICAgcGFkZGluZzogKEBpbS1nYXAgLyAyKSAoQGltLWdhcCAqIDIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiBAc2hhZG93LTI7XG5cbiAgICBzcGFuIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjFzIGVhc2UtaW47XG4gICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oQGltLWZvY3VzLWNvbG9yLCA1JSk7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogQHNoYWRvdy1pbnNldDtcbiAgICB9XG5cbiAgICBhOmZvY3VzLFxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICBidXR0b24uaW0tZmFiIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0NnB4O1xuICAgIHdpZHRoOiA0NnB4O1xuICAgIGZsZXg6IDAgMCA1NnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogNHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctNDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBib3gtc2hhZG93OiBAc2hhZG93LWluc2V0O1xuICAgIH1cbiAgICAmLmltLXByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZDogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjFzIGVhc2UtaW47XG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbihAaW0tZm9jdXMtY29sb3IsIDUlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5pbS13YXJuIHtcbiAgICAgIGJhY2tncm91bmQ6IEBpbS1lcnJvci1jb2xvcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlLWluO1xuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oQGltLWVycm9yLWNvbG9yLCA1JSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLmFjdGlvbnMge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuaW1wYWMtbWF0ZXJpYWwoQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvciwgQGtwaS1zZXR0aW5ncy1lcnJvci1jb2xvcik7XG5cbiAgICBhIHsgY29sb3I6IHdoaXRlOyB9XG5cbiAgICBidXR0b24uaW0tZmFiLmFkZC1rcGlzLFxuICAgIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLFxuICAgIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlLWluO1xuICAgICAgJi5pbS1wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogIzRjNDc0OTtcbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2IyYjVjMTtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgIGEgeyBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICAgICAgdG9wOiAtMTVweDtcbiAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgICAgdG9wOiAtMzBweDtcbiAgICAgICAgcmlnaHQ6IC0xNHB4O1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uLmltLWZhYi5hZGQta3BpcyB7XG4gICAgICB0b3A6IDMwcHg7XG4gICAgICByaWdodDogLTE1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICAgIHRvcDogLTMwcHg7XG4gICAgICAgIHJpZ2h0OiAzM3B4O1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMge1xuICAgICAgdG9wOiA3NXB4O1xuICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICAmLmVkaXRpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiBAa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yO1xuICAgICAgICAmOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKEBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3IsIDE1JSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICAgIHRvcDogLTMwcHg7XG4gICAgICAgIHJpZ2h0OiA3OXB4O1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNvbnRlbnQtYnV0dG9ucyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgfVxuXG4gIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBrcGlzLWJhci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IEBrcGlzLWJhci1ib3gtc2hhZG93O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzI1cHgpIHtcbiAgICAgIHBhZGRpbmc6IDAgNjBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICB9XG5cbiAgICAuaW1wYWMta3BpIHtcbiAgICAgIC5jb2x1bW4tZ3V0dGVyKDVweCk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICB9XG5cbiAgICAgIC5rcGkuYWRkIHtcbiAgICAgICAgLmtwaS1zaG93IC5jYXB0aW9uIHtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuXG4gICAgLnRpdGxlIHtcbiAgICAgIC50ZXh0LWNlbnRlciB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzO1xuICAgICAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gICAgICAgIGZvbnQtc2l6ZTogbGFyZ2VyO1xuICAgICAgfVxuICAgICAgLmJhZGdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDhweDtcbiAgICAgICAgbGVmdDogLTEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkMWU1NWM7XG4gICAgICAgIGNvbG9yOiAjNGY1OTU5O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAtMXB4O1xuICAgICAgfVxuICAgICAgLm5vLWtwaS10ZW1wbGF0ZXMge1xuICAgICAgICBjb2xvcjogI2FmYWRiNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYWRkLWJhciB7XG4gICAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4O1xuICAgIH1cblxuICAgIC5rcGktbG9hZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtaW4taGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQgKyAyMHB4O1xuICAgIH1cblxuICAgIC5kYXRlcy1waWNrZXItY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiA0MCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgLnNkcC1mcm9tLWxhYmVsLFxuICAgICAgLnNkcC10by1sYWJlbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5hbmFseXRpY3Mga3Bpcy1iYXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rZXktc3RhdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogNXB4IDBweDtcbn1cblxuLmFuYWx5dGljcy5wZGYtbW9kZSBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHsgZGlzcGxheTogbm9uZTsgfVxuIiwiLndpZGdldC1pdGVtIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcbiAgcGFkZGluZzogQGltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzO1xuICAmLnBkZi1tb2RlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiB+XCJAe2ltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzfSAwcHhcIjtcbiAgfVxufVxuXG4ud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IG1vdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtdGl0bGUtYmc7XG4gIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IEBpbXBhYy13aWRnZXQtdGl0bGUtYm9yZGVyLXJhZGl1cztcbiAgYm9yZGVyOiBAaW1wYWMtd2lkZ2V0LWJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgbWluLWhlaWdodDogNDFweDtcbiAgLmJveC1zaGFkb3coMHB4IDFweCA4cHggLTRweCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICB6LWluZGV4OiA0O1xufVxuXG4ud2lkZ2V0LWl0ZW0ge1xuICAuY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBib3JkZXItcmFkaXVzOiBAaW1wYWMtd2lkZ2V0LWNvbnRlbnQtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXI6IEBpbXBhYy13aWRnZXQtYm9yZGVyO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAuYm94LXNoYWRvdygwcHggMXB4IDhweCAtNHB4KTtcbiAgICAuc2hvcnQtd2lkZ2V0KCk7XG5cbiAgICAuZWRpdCB7XG4gICAgICAuZWRpdC1wYW5lbC1zdHlsZSgpO1xuICAgIH1cblxuICAgICYuYWNjZXNzaWJsZSB7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG1pbi1oZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLy8gQXZvaWQgY29udGVudCB0byBsZWFrIG91dCBvZiB3aWRnZXQncyBib3hcbiAgICAuY29udGVudC10ZW1wbGF0ZS13cmFwcGVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gICYucGRmLW1vZGUgLmNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC5jb2xsYXBzZSB7XG4gICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgIH1cbiAgICAuZmEtcGx1cy1zcXVhcmUtbzpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXGYxNDdcIjtcbiAgICB9XG4gICAgLmxlZ2VuZCB7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2Uge1xuICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZntcbiAgJi50aXRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSAyKkB7aW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHN9IClcIjtcbiAgICB6LWluZGV4OiAzO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcbiAgICBoNiB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbiAgJi50aWNrIHtcbiAgICBpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMzUlO1xuICAgICAgbGVmdDogNDYlO1xuICAgICAgZm9udC1zaXplOiAxMDBweDtcbiAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICB9XG4gIH1cbiAgLndpZGdldC1ob3ZlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIGVhc2UgLjVzO1xuICAgIHRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgICB6LWluZGV4OiAxO1xuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogLjU7XG4gICAgICBiYWNrZ3JvdW5kOiAjQ0NDRkQwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBGaXggb3ZlcmZsb3cgZm9yIGxhcmdlIHN1bXMvdGV4dCBpbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB0YWJsZXNcbi53aWRnZXQtaXRlbSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLXRleHQtY29sb3I7XG5cbiAgLm92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IH5cImNhbGMoMTAwJSAtIDRweClcIjtcbiAgICB3aWR0aDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDJweDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgei1pbmRleDogMztcbiAgfVxuXG4gIC5tZXNzYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMjVweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgd2lkdGg6IDg1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcbiAgICB6LWluZGV4OiA0O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLXRleHQtY29sb3I7XG4gICAgICBtYXJnaW46IC0xcHggLTFweCAxMHB4IC0xcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuICAgIC5idG4geyBtYXJnaW4tdG9wOiA1cHg7IH1cbiAgfVxuXG4gIC5leGFtcGxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgICB6LWluZGV4OiA2O1xuXG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtZGVtby1kYXRhLWxpbmstY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQge1xuICAubWVzc2FnZSB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgIGJvcmRlcjogc29saWQgMXB4IHNpbHZlcjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHAgeyBtYXJnaW46IDVweDsgfVxuICB9XG4gIC5vdmVybGF5LCAudGl0bGUsIC5idG4sIC5leGFtcGxlIHsgZGlzcGxheTogbm9uZTsgfVxufVxuIiwiLmFuYWx5dGljcyBjb21tb24tZGVsZXRlLXdpZGdldCB7XG4gIC53aWRnZXQtcG9wdXAoKTtcbiAgLm1lc3NhZ2Uge1xuICAgIC5sb2FkZXIgaS5mYS5mYS1zcGlubmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICB9XG4gICAgcCB7IHBhZGRpbmc6IDBweCAxMHB4OyB9XG4gICAgYnV0dG9uLmJ0biB7IG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgfVxufVxuIiwiI3RyYW5zYWN0aW9ucy1hZGQge1xuICAud2lkZ2V0LXBvcHVwKCk7XG4gIC5tZXNzYWdlIHtcbiAgICB0b3A6IDMwcHg7XG4gICAgbGVmdDogMzUlO1xuICAgIHdpZHRoOiAzMCU7XG4gICAgLmZvcm0ge1xuICAgICAgcGFkZGluZzogMHB4IDEwcHg7XG4gICAgICA+IGxhYmVsLCAuY29taW5nLXNvb24gPiBsYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICB9XG4gICAgICBpbnB1dC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgICAgLmJ0bi1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY29taW5nLXNvb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IHNpbHZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGNvbG9yOiAjODg4ODg4O1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIC5iYWRnZSB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4ODg4O1xuICAgICAgICB9XG4gICAgICAgIC5idG4tZ3JvdXAge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7IG1hcmdpbi10b3A6IDVweDsgfVxuICAgICAgICAgIHNlbGVjdCB7IGhlaWdodDogMjJweDsgfVxuICAgICAgICAgIC5idG4ge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICM4ODg4ODg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5ib3R0b20ge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIiN0cmFuc2FjdGlvbnMtbGlzdCB7XG4gIC50b3Age1xuICAgIGhlaWdodDogNDBweDtcbiAgICBhLmJhY2stbGluayB7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAucGFnaW5hdGlvbiB7IG1hcmdpbjogMHB4OyB9XG4gIH1cblxuICAudGFibGUtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDYwcHgpXCI7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgXG4gICAgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICBpbnB1dC5idG4uYnRuLXhzIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICAgIGJ1dHRvbi5idG4ucmVzZXQtZGF0ZSB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgICAuZmEuZmEtdGltZXMge1xuICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgdHIudG90YWwge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAmLmludm9pY2VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjOGVhYjcxLCAyMCUpO1xuICAgICAgfVxuICAgICAgJi5iaWxscyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oI2M3NjM3OSwgMjAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5jdXJyZW5jeSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBzZWxlY3Qge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyB7XG4gIC5zaG93LXN0YXR1cyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gICAgLmZhLmZhLWluZm8geyBtYXJnaW4tcmlnaHQ6IDJweDsgfVxuICB9XG4gIC5zdGF0dXMtYnRuIHtcbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICYuZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUgeyBjb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgICAmLmZhLWNoZWNrIHsgY29sb3I6IEBncmVlbjsgfVxuICAgIH1cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDVweCA3cHggNXB4IDBweDtcbiAgfVxuXG4gIC5wb3BvdmVyIHtcbiAgICBtYXgtd2lkdGg6IDU1MHB4O1xuICAgIC5jb25uZWN0b3Ige1xuICAgICAgcGFkZGluZzogNHB4IDEzcHg7XG4gICAgICAmLmFkZC1zZXBlcmF0b3IgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgfVxuICAgIH1cbiAgICAucG9wb3Zlci1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5wb3BvdmVyLWZvb3RlciB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICAgIHBhZGRpbmc6IDRweCAxM3B4O1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgICAmLnJlbW92ZS1zZXBlcmF0b3IgeyBib3JkZXI6IDA7IH1cbiAgICB9XG4gIH1cblxuICAuYmFkZ2UgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1sZWZ0OiA4cHg7IH1cbiAgLnN1Y2Nlc3MgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGdyZWVuOyB9XG4gIC5wZW5kaW5nIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAucnVubmluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgLmVycm9yIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gIC5mYWlsZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgLnVua25vd24gLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgLmRpc2Nvbm5lY3RlZCAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxufVxuXG4jc3luYy1hcHBzLW1vZGFsIHtcbiAgLm1vZGFsLWhlYWRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggI2NjYztcbiAgfVxuICAubW9kYWwtbGlzdCB7XG4gICAgbWF4LWhlaWdodDogMjgwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuICAubW9kYWwtbGlzdC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgLmJhZGdlIHsgZmxvYXQ6IHJpZ2h0OyB9XG4gICAgJi5zdWNjZXNzIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBncmVlbjsgfVxuICAgICYucGVuZGluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgICAmLnJ1bm5pbmcgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgJi5lcnJvciAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAgICYuZmFpbGVkIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gICAgJi51bmtub3duIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gICAgJi5kaXNjb25uZWN0ZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cblxuICAgIC5tZXNzYWdlIHtcbiAgICAgIHAgeyBtYXJnaW46IDA7IH1cbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMXB4O1xuICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgIH1cblxuICAgICYuc3VjY2VzcyAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCA1NSwgMC4wOCk7IH1cbiAgICAmLnBlbmRpbmcgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTsgfVxuICAgICYucnVubmluZyAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDAsIDAuMDgpOyB9XG4gICAgJi5lcnJvciAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTsgfVxuICAgICYuZmFpbGVkIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG4gICAgJi51bmtub3duIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG4gICAgJi5kaXNjb25uZWN0ZWQgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7IH1cblxuICAgICYud2l0aC1tZXNzYWdlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubW9kYWwtZm9vdGVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbiAgLmZhIHsgcGFkZGluZzogMHB4IDEwcHg7IH1cbiAgLmZhLmVycm9yIHsgY29sb3I6IEByZWQ7IH1cbiAgLmZhLndhcm4geyBjb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gIC5mYS5zdWNjZXNzIHsgY29sb3I6IEBmbHVyb2dyZWVuOyB9XG59XG4iLCIuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBpbWcge1xuICAgIHdpZHRoOiAxNXB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICYucG9wb3ZlciAucG9wb3Zlci10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG4iLCJjaGFydC10aHJlc2hvbGQge1xuXG4gIC5hdHRhY2gtcGFuZWwge1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwLCAxMzIsIDIyOCwgMC4xNik7XG5cbiAgICA+IC5hdHRhY2gtcGFuZWwtdGV4dCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAmID4gKiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucGFuZWwtdGV4dC1sYWJlbCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cbiAgICAucGFuZWwtdGV4dC1pbnB1dCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXI6IDFweCB3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDNweDtcbiAgICB9XG4gICAgLnBhbmVsLXRleHQtY3VycmVuY3kge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG4gIH1cblxuICAuYWN0aW9uLWJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgYnV0dG9uIHtcbiAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAmLmxvYWRpbmcge1xuICAgICAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDIycHg7XG5cbiAgLnRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAuZm9udChAaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtc2l6ZSw2MDAsQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LWNvbG9yKTtcbiAgICBjdXJzb3I6IHRleHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gIH1cblxuICAuZWRpdGFibGUtd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMjBweDtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgLy8gb3RoZXJ3aXNlLCB3aGl0ZS1zcGFjZSBpcyBvdmVycmlkZW4gaW4gbW5vLWVudGVycHJpc2VcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLmVkaXRhYmxlLWNvbnRyb2xzIHtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgLmVkaXRhYmxlLWlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAvLyA2NXB4IGlzIC5lZGl0YWJsZS1idXR0b25zIHdpZHRoXG4gICAgICAgIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSA2NXB4KVwiO1xuICAgICAgICBwYWRkaW5nOiAwcHggM3B4O1xuICAgICAgfVxuXG4gICAgICAuZWRpdGFibGUtYnV0dG9ucyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtdGl0bGUtYmc7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgbWFyZ2luOiAwcHggMHB4IDBweCA1cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDBweCA1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDE1cHg7XG4gIHdpZHRoOiB+XCJjYWxjKDEwMCUgLSAzMHB4KVwiO1xuICBtYXgtaGVpZ2h0OiB+XCJjYWxjKDEwMCUgLSAzMHB4KVwiO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBkb3R0ZWQgMXB4ICNCN0NEQ0U7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZm9udC1mYW1pbHk6IFwiTGF0byBTZW1pYm9sZFwiLCBcIkxhdG9cIjtcblxuICB6LWluZGV4OiA0O1xuXG4gICY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG5cbiAgLmktaGVhZGVyIHtcbiAgICAuZmEgeyBmb250LXNpemU6IDE4cHg7IH1cbiAgICAuZmEtaW5mby1jaXJjbGUgeyBmbG9hdDogbGVmdDsgfVxuICAgIC5mYS10aW1lcy1jaXJjbGUgeyBjdXJzb3I6IHBvaW50ZXI7IGZsb2F0OiByaWdodDsgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1yZXZlcnNlLWNvbG9yO1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiBcIkxhdG8gTWVkaXVtXCIsIFwiTGF0b1wiO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIC5pLWNvbnRlbnQge1xuICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgZmxleDogMTtcblxuICAgIC5yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAaW1wYWMtZGFzaGJvYXJkLWJvcmRlcnMtY29sb3I7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuXG4gICAgICAua2V5IHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICAgICAgfVxuXG4gICAgICAudmFsdWUgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC50aW1lLXBlcmlvZC1pbmZvIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI0FCQzRDNjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuXG4gIC50b3AtYnV0dG9ucy13cmFwcGVyIHtcbiAgICAudG9wLWJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRvcC1idXR0b25zLWNvbG9yO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB3aWR0aDogMTdweDtcblxuICAgICAgJjphY3RpdmUsICY6Zm9jdXMgeyBib3gtc2hhZG93OiBub25lOyB9XG5cbiAgICAgICYuYnRuLWluZm8ge1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiAjRkZDOTI4OyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1yZWZyZXNoIHtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogQG1ibHVlOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1lZGl0IHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAmOmhvdmVyLCAmLmVkaXQtbW9kZSB7IGNvbG9yOiBkYXJrZW4oQG1ncmVlbiwxMCUpOyB9XG4gICAgICB9XG4gICAgICAmLmJ0bi1jbG9zZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiBAcGluazsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuYWNjb3VudGluZy1iZWhhdmlvdXIge1xuXG4gIC5idG4uYnRuLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLCAxMCUpO1xuICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAmLmZvY3VzLCAmLmFjdGl2ZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjsgfVxuICB9XG5cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5zZWxlY3QtYWNjb3VudCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59IiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMge1xuICAuYXR0YWNoLWtwaSB7XG4gICAgcGFkZGluZzogOHB4IDVweDtcblxuICAgIGZvcm0gLnJvdyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuICAgIH1cblxuICAgIC5hdHRhY2gta3BpLWZvcm0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgIH1cblxuICAgIGZvcm0gLnJvdy5rcGktZGVzY3JpcHRpb24ge1xuICAgICAgcGFkZGluZzogMTBweCAycHg7XG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybS5hdHRhY2gta3BpLWZvcm0ge1xuICAgICAgaW5wdXQuYXR0YWNoLXRhcmdldCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmVycm9yLW1lc3NhZ2VzIHtcbiAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5hdHRhY2hlZC1rcGlzIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gIH1cblxuICAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG5cbiAgICAuYXR0YWNoZWQta3BpLW5hbWUge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgICAgLmFsZXJ0cy1jb25maWcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgIHdpZHRoOiAyMXB4O1xuICAgICAgICBjb2xvcjogQG1ibHVlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggQG1ibHVlO1xuXG4gICAgICAgICY6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIH1cbiAgICAgIC5lZGl0LWF0dGFjaGVkLWtwaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICB3aWR0aDogMjFweDtcbiAgICAgICAgICBjb2xvcjogQG1ibHVlO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nOiAzcHggNXB4IDVweCA1cHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggQG1ibHVlO1xuICAgICAgICAgICY6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnJlbW92ZS1hdHRhY2hlZC1rcGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGkge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgd2lkdGg6IDIxcHg7XG4gICAgICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDNweCA1cHggNXB4IDVweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBAYnJhbmQtZGFuZ2VyO1xuICAgICAgICAgICY6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmNoYXJ0LWZpbHRlcnMge1xuICAucm93IHtcbiAgICBtYXJnaW46IDBweDtcbiAgfVxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMTNweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICBpbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIHtcbiAgaDUgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgYnV0dG9uLmJ0bi5idG4tc20ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICYuZGF0ZS1idXR0b24geyBtYXJnaW46IDBweCA1cHg7IH1cbiAgICAmLmJ0bi1kYW5nZXIgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgJi5idG4taW5mbyB7IGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICB9XG5cbiAgLnRvb2x0aXAtaW5uZXIgeyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4gIC5kcm9wZG93bi1tZW51ID4gbGkgPiBkaXYgPiB0YWJsZSB7IG91dGxpbmU6IG5vbmU7IH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIHtcbiAgbWF4LWhlaWdodDogNzBweDtcblxuICBbY29tbW9uLXRpbWUtcGVyaW9kLWluZm9dIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICB9XG5cbiAgLm9wdGlvbnMge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2U2ZTZlNjtcbiAgICAuZm9udChAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplLDUwMCxAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcik7XG4gICAgYSB7XG4gICAgICAuZm9udChAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplLDUwMCxAaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcik7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogQGltcGFjLXdpZGdldC1oaXN0LXRleHQtdHJhbnNmb3JtO1xuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuYXJyb3ctY29udGFpbmVyIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTE0cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgICYucmlnaHQge1xuICAgICAgbGVmdDogNDZweDtcbiAgICB9XG4gICAgJi5sZWZ0IHtcbiAgICAgIGxlZnQ6IC0zMHB4O1xuICAgIH1cbiAgICAuYXJyb3ctYm9yZGVyIHtcbiAgICAgIGJvcmRlci10b3A6IDE0cHggc29saWQgI2U2ZTZlNjtcbiAgICAgIGJvcmRlci1sZWZ0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgd2lkdGg6IDBweDtcbiAgICAgIGhlaWdodDogMHB4O1xuICAgIH1cbiAgICAuYXJyb3cge1xuICAgICAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMTJweDtcbiAgICAgIHdpZHRoOiAwcHg7XG4gICAgICBoZWlnaHQ6IDBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmxpbWl0LWVudHJpZXMge1xuICBjb2xvcjogQGltcGFjLXdpZGdldC1saW1pdC1lbnRyaWVzLWNvbG9yO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcblxuICBhLm9wdGlvbiB7XG4gICAgJi5iYWRnZSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbWl0LWVudHJpZXMtY29sb3I7XG4gICAgfVxuICB9XG5cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMge1xuICAub2Zmc2V0LXZhbHVlIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICB9XG5cbiAgLm9mZnNldC12YWx1ZSAuZmEtdHJhc2gtbyB7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cblxuICBpbnB1dCB7IHdpZHRoOiA3NSU7IH1cbiAgYnV0dG9uIHsgd2lkdGg6IDMwcHg7IH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMge1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxOHB4O1xuICAgICAgLmFsdGVybmF0ZS1iZygjZjNmNGY0KTtcbiAgICAgIC5mYSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICYuZmEtdG9nZ2xlLW9uIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgICYuZmEtdG9nZ2xlLW9mZiB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgJi5jbGFzc2ljIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luOiAwcHggMHB4IDVweCAwcHg7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5vcHRpb25zLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgLmJveC1zaGFkb3cocmdiKDAsIDAsIDApIDBweCAzcHggMTVweCAtM3B4KTtcblxuICAgIC5wYXJhbS1zZWxlY3Rvci1sYWJlbCB7XG4gICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgLmZvbnQoaW5oZXJpdCw1MDAsYmxhY2spO1xuICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjk7XG4gICAgfVxuICAgIC5wYXJhbS1zZWxlY3Rvci1sYWJlbDpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtLXNlbGVjdG9yLWNvbG9yO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIHdpZHRoOiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGxpZ2h0Z3JheSw1JSk7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3IsNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICBwYWRkaW5nOiAycHggMHB4O1xuICBpbnB1dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgfVxuICBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICB9XG4gIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIHtcbiAgcGFkZGluZzogMHB4IDVweDtcblxuICAuYnRuLmJ0bi1kZWZhdWx0IHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gIH1cblxuICAudGFnLWxpbmVzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4IDEwcHg7XG5cbiAgICAudGFnLWxpbmUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAudGFncy1jb2wgeyBwb3NpdGlvbjogc3RhdGljOyB9XG5cbiAgICAgIHRhZ3MtaW5wdXQge1xuICAgICAgICAudGFncyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcbiAgICAgICAgICAudGFnLWl0ZW0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzc5YTJiYjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmhvc3QgeyBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW1zLXBpY2tlciB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xuICAucGFyYW1ldGVyIHtcbiAgICBtYXJnaW46IDBweCAzcHggM3B4IDBweDtcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZztcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgbWFyZ2luOiAwcHggLTNweCAwcHggM3B4O1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3IsIDUlKTtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItYmc7XG4gICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIH1cblxuICAgICYudW5jaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBib3JkZXItY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci11bmNoZWNrZWQtYmc7XG4gICAgICAuYmFkZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItdW5jaGVja2VkLWJnO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2Qge1xuICBwYWRkaW5nOiAwcHggNXB4O1xuXG4gIHNlbGVjdCB7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIFxuICAmID4gLnJvdyB7XG4gICAgbWFyZ2luOiAwcHggLTVweCA3cHggLTVweDtcbiAgICAmID4gZGl2IHtcbiAgICAgIHBhZGRpbmc6IDBweCA1cHg7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cblxuICAgIC5zdWItc2V0dGluZyB7IHBhZGRpbmc6IDVweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGgge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgaSB7XG4gICAgY29sb3I6IHNpbHZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJi5yZWR1Y2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICB9XG4gICAgJi5leHBhbmQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1saWFiaWxpdHktc3VtbWFyeSB7XG4gIC5wYXJhbS1zZWxlY3RvciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogOTBweDtcblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy1zdW1tYXJ5IHtcbiAgLmxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtaGVpZ2h0OiAxMTVweDtcblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWFzc2V0cy12cy1saWFiaWxpdGllcyB7XG4gIC5sZWdlbmQgPiAudGl0bGUgc3BhbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZSB7XG4gIGgzIHtcbiAgICAubGVmdC10aGluKDMwcHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC5zY3JvbGxhYmxlKHNjcm9sbCk7XG4gICAgbWF4LWhlaWdodDogNDkwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgICAucm93LndpZGdldC1saW5lIHtcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHsgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIgPiBbY2xhc3MqPSdjb2wtJ10geyBwb3NpdGlvbjogc3RhdGljOyB9XG5cbiAgICAmLm5vLXNjcm9sbCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICAubm8tZGF0YS1ibG9jayB7XG4gICAgLmNlbnRlci10aGluKCk7XG4gICAgbWFyZ2luOiAxNXB4IDBweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLmRhdGEtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNTBweClcIjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5sZWZ0LXBhbmVsIHtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgI2Nhc2gtYmFsYW5jZS1sZWdlbmQge1xuICAgIC5oZWFkZXIge1xuICAgICAgLmdyb3VwLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICBtYXJnaW46IDNweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbWVudXMtaG92ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDFweFxuICAgICAgICB9XG4gICAgICAgIHNwYW4geyBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmxlZ2VuZC1pdGVtLWljb24ge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDE4MHB4KVwiO1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgIC8vIEhpZ2hjaGFydCBjb250YWluZXJcbiAgICAuY2FzaC1iYWxhbmNlLWNoYXJ0IHtcbiAgICAgIGhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA1MHB4KVwiO1xuICAgIH1cbiAgfVxuXG4gIC5kYXRlcy1waWNrZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24ge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuY2FzaC1wcm9qZWN0aW9uLWNoYXJ0IHtcbiAgICBoZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNTBweClcIjtcbiAgfVxuXG4gIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHtcbiAgICByZWN0LmhpZ2hjaGFydHMtcG9pbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIHdpZHRoOiAxMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGltZyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDU1cHg7XG4gICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGF0ZXMtcGlja2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuICAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIxNXB4O1xuICB9XG5cbiAgLnJvdy5saW5lcy1ncm91cC5jYXNoIHtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xuICB9XG59XG4iLCIvLyAtLS0gUmV1c2FibGUgd2lkZ2V0IHN0eWxlIG1peGluc1xuXG4vLyBQYXlyb2xsLVN1bW1hcnkgLSBQcm9maXQtYW5kLUxvc3Ncbi5kcmlsbC1kb3duLXdpZGdldCAoKSB7XG4gIC50YWxsLXdpZGdldCgpO1xuXG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA1NDBweDtcbiAgICAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgICAgIC5zZWxlY3RhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICAuc2Nyb2xsYWJsZShhdXRvKTtcbiAgICAgIG1heC1oZWlnaHQ6IDIzNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5uby1lbGVtZW50IHtcbiAgICAuY2VudGVyLXRoaW4oKTtcbiAgfVxufVxuXG4vLyBUb3AgY3VzdG9tZXJzIHN1bW1hcnkgLSBTYWxlcyBjeWNsZS4uLlxuLnNpbXBsZS1zdW1tYXJ5LXdpZGdldCgpIHtcbiAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA0MTBweDtcbiAgfVxuICAubGVnZW5kIHtcbiAgICBtYXgtaGVpZ2h0OiAyOHB4O1xuICB9XG59XG5cbi8vIEludm9pY2VzIGxpc3QgLSBzYWxlcyBsaXN0XG4uc2ltcGxlLWxpc3Qtd2lkZ2V0KCkge1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIC5hbHRlcm5hdGUtYmcoKTtcbiAgICAgICYuaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBXb3JrZm9yY2UtU3VtbWFyeSAtIFNhbGFyaWVzLVN1bW1hcnlcbi5leHBhbmRhYmxlLWZpbHRlcmFibGUtd2lkZ2V0KCkge1xuICBoMy5sZWZ0IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWFyZ2luLXRvcDogNjlweDsgfVxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBoMy5yZWR1Y2VkLWxlZnQge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIGgzLnJpZ2h0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAucHJpY2Uge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDc1cHg7XG4gICAgLndpZGdldC1saW5lIHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXhzLW1pbikgYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4tc20tbWF4KSB7IG1heC13aWR0aDogMzIwcHg7IH1cbiAgfVxufVxuXG4vLyBMZWFkcyBmdW5uZWwgLSBPcHBvcnR1bml0aWVzIGZ1bm5lbFxuLmZ1bm5lbC13aWRnZXQoKSB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAuZnVubmVsLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1iaWctd2lkZ2V0LXNpemUgLSA2MHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG4gIC5yaWdodC1wYW5lbCB7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgbWF4LWhlaWdodDogQGltcGFjLWJpZy13aWRnZXQtc2l6ZSAtIDIwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jbGFzcy1jb21wYXJpc29uIHtcbiAgLnBhcmFtLXNlbGVjdG9yIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDk0cHg7XG4gICAgY29sb3I6ICM2MjZkNmQ7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24ge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBAbWVkaWEgcHJpbnQgeyBtYXgtd2lkdGg6IDgwJSAhaW1wb3J0YW50OyB9XG4gIH1cblxuICAuYWRkLWFjY291bnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNDBweDtcbiAgICBib3R0b206IDMwcHg7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIHNlbGVjdCB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3IsMTAlKTtcbiAgICAgIH1cbiAgICAgIG9wdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDQwJSk7XG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGJ1dHRvbi5jbG9zZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG4gIC5sZWdlbmQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LWhlaWdodDogMTAzcHg7XG4gIH1cbiAgLnJvdyB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbWF4LWhlaWdodDogQGltcGFjLXdpZGdldC1hY2NvdW50cy1jb21wYXJpc29uLWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDY1cHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICAgIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICB9XG5cbiAgLmNvbXBhcmFibGUtZXJyb3IgaDUge1xuICAgIG1hcmdpbi1sZWZ0OiAxM3B4O1xuICAgIGNvbG9yOiBAaW1wYWMtbmVnYXRpdmU7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbiB7XG4gIGgzIHtcbiAgICBtYXJnaW4tdG9wOiA4NXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAubGVnZW5kIHsgbWF4LWhlaWdodDogMTI1cHg7IH1cbn1cblxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24ge1xuICBtYXJnaW46IDBweDtcbiAgcGFkZGluZzogMHB4O1xufVxuXG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSB7XG4gIC5lZGl0IHtcbiAgICAuZWRpdC1wYW5lbC1zdHlsZSgpO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICAgIG1heC1oZWlnaHQ6IDU0MHB4O1xuICB9XG5cbiAgLmFjY291bnQtY2xhc3MtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMTFweDtcbiAgfVxuXG4gIC50aW1lLXBlcmlvZC1pbmZvIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC53aWRnZXQtbGluZS5oZWFkZXIuc29ydGluZyAge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG59XG5cblxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQge1xuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDExNXB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2VzLXJldmVudWUge1xuICAubGVnZW5kIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUge1xuICBoMyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC5wYXlhYmxlIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICB9XG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcblxuICAucm93LmxpbmVzLWdyb3VwLnByb2ZpdCB7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICAgIGJvcmRlci1ib3R0b206IGRvdWJsZTtcbiAgfVxuXG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjE1cHg7XG4gIH1cblxuICAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyB7XG4gIFxuICAubGVmdC1wYW5lbCB7XG4gICAgbWF4LWhlaWdodDogMjMwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bzsgXG5cbiAgICAuc2VwYXJhdG9yIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICB3aWR0aDogNzUlO1xuICAgIH1cbiAgICAubWVtYmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgfVxuICAgIC5tZW1iZXIgLnByaWNlIHtcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG4gICAgYnV0dG9uIHsgb3V0bGluZTogbm9uZTsgfVxuICB9XG5cbiAgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiB7XG4gICAgLm1lbWJlciB7XG4gICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgLmxlZ2VuZCB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5wcmljZSB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgfVxuICAgIC5zZXBhcmF0b3IgeyB3aWR0aDogMTAwJTsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICAuZGV0YWlscy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAyMDBweDsgfVxuICAgIC5zY3JvbGxhYmxlKCk7XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICAuZGV0YWlscy1jb250YWluZXIge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDIyMHB4OyB9XG4gICAgfVxuICAgIC5sZWdlbmQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuICAudGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3Qge1xuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgLmFsdGVybmF0ZS1iZygpO1xuICAgIH1cbiAgfVxuICAuZWRpdCB7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtYmFsYW5jZXtcbiAgLmVtcGxveWVlLW5hbWUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYmFsYW5jZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDMzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxle1xuICAuZmMtYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJ1dHRvbnMtY29sb3I7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQ6IEBpbXBhYy13aWRnZXQtYnV0dG9ucy1jb2xvcjtcbiAgICB9XG4gIH1cbiAgLmZjLXRvb2xiYXIge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAuZmMtZGF5LWdyaWQsLmZjLXdpZGdldC1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICBtYXgtaGVpZ2h0OiAxNDVweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0ge1xuICAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IHtcbiAgICAuZXhwYW5kYWJsZS1maWx0ZXJhYmxlLXdpZGdldCgpO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyB7XG4gIGgzIHtcbiAgICBtYXJnaW4tdG9wOiA2M3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiAyM3B4O1xuICB9XG4gIC5jdXJyZW5jeSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIHtcbiAgLmN1cnJlbmN5IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIxMHB4O1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gIHtcbiAgLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkge1xuICAgIC5leHBhbmRhYmxlLWZpbHRlcmFibGUtd2lkZ2V0KCk7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcblxuICAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIxNXB4O1xuICB9XG5cbiAgLnJvdy5hc3Rlcmlja3MtaW5mbyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgfVxuXG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG5cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgfVxuXG4gIC5mYS5mYS1pbmZvLWNpcmNsZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuXG4gIC5yaWdodC1jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtc3VtbWFyeSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1hZ2VkIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIzOHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIHtcbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICAuYmxvY2sge1xuICAgIG1hcmdpbjogNXB4O1xuICAgIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm94LXNoYWRvdzogMHB4IDdweCAxMHB4IC03cHggIzE3MjYyZDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9ybS5lZGl0YWJsZS13cmFwIC5lZGl0YWJsZS1jb250cm9scyBpbnB1dCB7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuICAgICYudG8tZGF0ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvcjtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgfVxuICAgICYudG8tYnJlYWtldmVuIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmc7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICAudGl0bGUge1xuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmcsIDEwJSk7XG4gICAgICB9XG4gICAgICAuZGVmaW5lLXRleHQge1xuICAgICAgICAuY2VudGVyLXRoaW4oKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi10ZXh0LWNvbG9yO1xuICAgICAgfVxuICAgICAgLnByaWNlIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi10ZXh0LWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggQGxpZ2h0Z3JheTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNTMwcHg7XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweDtcbiAgfVxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGltZyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyB7XG4gIC5sb2FkZXIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICBmb250LXNpemU6IDEycHg7XG4gIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAxOTRweDsgfVxuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG4gIC5yaWdodC1wYW5lbCB7XG4gICAgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikgeyBtYXgtaGVpZ2h0OiAyMzBweDsgfVxuICAgIH1cbiAgICAubGVnZW5kIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gIH1cbiAgLnJvdy50aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3ljbGUge1xuICAuc2ltcGxlLXN1bW1hcnktd2lkZ2V0KCk7XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3Qge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDI3NXB4O1xuICAgIC53aWRnZXQtbGluZS5tYWluIHtcbiAgICAgIC5zZWxlY3RhYmxlKCk7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1ncm93dGgge1xuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIG1heC1oZWlnaHQ6IDQ5cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCB7XG4gIC5mdW5uZWwtd2lkZ2V0KCk7XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IHtcbiAgLnNpbXBsZS1saXN0LXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICAgIG1heC1oZWlnaHQ6IDE3MHB4O1xuICAgICYubm8tc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGltZyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIHtcbiAgLnZhbHVlLWNvbnRhaW5lciwgLm9wZXJhdG9yIHtcbiAgICAvLyBmbG9hdDogbGVmdDtcbiAgICAvLyB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDg1cHg7XG4gIH1cblxuICAvLyAudmFsdWUtY29udGFpbmVyIHtcbiAgLy8gICB3aWR0aDogMjYlO1xuICAvLyB9XG5cbiAgLnZhbHVlLWNvbnRhaW5lciAudGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgcGFkZGluZzogMTBweCAwcHg7XG4gIH1cblxuICAudmFsdWUtY29udGFpbmVyIC52YWx1ZS1ib3gge1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAvLyBib3JkZXI6IHNvbGlkIDFweCAjRTRFNEU0O1xuICAgIC8vIGJveC1zaGFkb3c6IDFweCAxcHggMXB4ICNDNUM1QzU7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICNDNENBQ0E7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNDNENBQ0E7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC5vcGVyYXRvciB7XG4gICAgLy8gQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IHBhZGRpbmctdG9wOiAzOHB4OyB9XG4gICAgcGFkZGluZy10b3A6IDM4cHg7XG4gICAgLy8gd2lkdGg6IDEwJTtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICB9XG5cbiAgLnZhbHVlcyB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1hcmdpbi10b3A6IDI1cHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIHtcbiAgLnN0YXRzIHtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAuc3RhdCB7XG4gICAgICBtYXJnaW46IDE1cHggMHB4IDEwcHggMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IEBsaWdodGdyYXk7XG4gICAgICBzcGFuLnRpdGxlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgICBzcGFuLm5vbWluYWwge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgfVxuICAgICAgc3Bhbi52YXJpYXRpb24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzIHtcblxuICAuc2VsZWN0b3IgLnNlbGVjdG9yLXdyYXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNXB4O1xuICB9XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cblxuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWF4LWhlaWdodDogNzdweCAhaW1wb3J0YW50O1xuXG4gICAgLnJvdyB7IG1hcmdpbjogMHB4IC01cHg7ICY+ZGl2IHsgcGFkZGluZzogMHB4IDVweDsgfX1cblxuICAgIC50b3RhbCB7XG4gICAgICBjb2xvcjogIzVCNjY2NztcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIHtcbiAgLmZ1bm5lbC13aWRnZXQoKTtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIFx0IG1heC1oZWlnaHQ6IDIxNXB4O1xuICAgIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICAgICAgLnNlbGVjdGFibGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciB7XG4gIGgzLnJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiA1NXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbiAgLmFuYWx5c2lzIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNzVweDtcbiAgICAud2lkZ2V0LWxpbmUge1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgaDMge1xuICAgICAgbWFyZ2luOiAxNXB4IDEwcHggNXB4IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmZhLmZhLWluZm8tY2lyY2xlIHsgZmxvYXQ6IGxlZnQ7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbiAgLnNlbGVjdG9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIHtcbiAgLnNlbGVjdG9yIHtcbiAgICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNFNkU2RTY7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICBhIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5wYXJhbS1zZWxlY3RvciB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICAud2lkZ2V0LWxpbmUuc3ViLWxpbmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvcjsgfVxuXG4gICAgLy8gV2lsbCBhbGxvdyB0aGUgcGFyYW1zIHNlbGVjdG9ycyB0byBiZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSBjb250YWluZXIgKHdpdGhvdXQgYmVpbmcgY3V0IG9uIHRoZSByaWdodClcbiAgICAucm93ID4gW2NsYXNzKj0nY29sLSddIHsgcG9zaXRpb246IHN0YXRpYzsgfVxuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyB7XG4gIC5vcHBzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMTk1cHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIC5zY3JvbGxhYmxlKCk7XG4gICAgLnRpbGUge1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIC5jb2xvcmVkLWFyZWEge1xuICAgICAgICB3aWR0aDogMTAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIH1cbiAgICAgIC5tYWluLXRleHQge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAzcHggMHB4IDBweCAxMHB4O1xuICAgICAgfVxuICAgICAgJi5maXJzdCB7XG4gICAgICAgIGhlaWdodDogNTVweDtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDExMCwgNjUpO1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLXRleHQge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc2Vjb25kIHtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIC5jb2xvcmVkLWFyZWEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWRlOWI2O1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLXRleHQge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iXX0= */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcGFjLWFuZ3VsYXIuY3NzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9ub3JtYWxpemUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvZ2x5cGhpY29ucy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9zY2FmZm9sZGluZy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdmVuZG9yLXByZWZpeGVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy90YWItZm9jdXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2ltYWdlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3R5cGUubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3RleHQtZW1waGFzaXMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2JhY2tncm91bmQtdmFyaWFudC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGV4dC1vdmVyZmxvdy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9jb2RlLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2dyaWQtZnJhbWV3b3JrLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3RhYmxlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvdGFibGUtcm93Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Zvcm1zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9mb3Jtcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9idXR0b25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9vcGFjaXR5Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2NvbXBvbmVudC1hbmltYXRpb25zLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2Ryb3Bkb3ducy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LWRpdmlkZXIubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LWZpbHRlci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9idXR0b24tZ3JvdXBzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ib3JkZXItcmFkaXVzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2lucHV0LWdyb3Vwcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9uYXZzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL25hdmJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbmF2LXZlcnRpY2FsLWFsaWduLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3V0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9icmVhZGNydW1icy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9wYWdpbmF0aW9uLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhZ2VyLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2xhYmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvbGFiZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL2JhZGdlcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9qdW1ib3Ryb24ubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvdGh1bWJuYWlscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9hbGVydHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2FsZXJ0cy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9wcm9ncmVzcy1iYXJzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9ncmFkaWVudHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Byb2dyZXNzLWJhci5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9tZWRpYS5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9saXN0LWdyb3VwLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3BhbmVscy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcGFuZWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Jlc3BvbnNpdmUtZW1iZWQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3Mvd2VsbHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2xvc2UubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbW9kYWxzLmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL3Rvb2x0aXAubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL3Jlc2V0LXRleHQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvcG9wb3ZlcnMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvY2Fyb3VzZWwubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2NsZWFyZml4Lmxlc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9sZXNzL21peGlucy9jZW50ZXItYmxvY2subGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2xlc3MvbWl4aW5zL2hpZGUtdGV4dC5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9yZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzIiwiLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAvbGVzcy9taXhpbnMvcmVzcG9uc2l2ZS12aXNpYmlsaXR5Lmxlc3MiLCJzdHlsZXNoZWV0cy92YXJpYWJsZXMubGVzcyIsInN0eWxlc2hlZXRzL2dsb2JhbHMubGVzcyIsInN0eWxlc2hlZXRzL21peGlucy5sZXNzIiwic3R5bGVzaGVldHMvcHJpbnQubGVzcyIsImNvbXBvbmVudHMvYWxlcnRzLWNvbmZpZy9hbGVydHMtY29uZmlnLmxlc3MiLCJjb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLXNlbGVjdG9yL2Rhc2hib2FyZC1zZWxlY3Rvci5sZXNzIiwiY29tcG9uZW50cy9kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yL2Rhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMva3BpL2twaS5sZXNzIiwic3R5bGVzaGVldHMvaW1wYWMtbWF0ZXJpYWwubGVzcyIsImNvbXBvbmVudHMva3Bpcy1iYXIva3Bpcy1iYXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0L3dpZGdldC5sZXNzIiwiY29tcG9uZW50cy9jb21tb24vZGF0YS1ub3QtZm91bmQvZGF0YS1ub3QtZm91bmQubGVzcyIsImNvbXBvbmVudHMvY29tbW9uL2RlbGV0ZS13aWRnZXQvZGVsZXRlLXdpZGdldC5sZXNzIiwiY29tcG9uZW50cy9jb21tb24vdHJhbnNhY3Rpb25zLWFkZC90cmFuc2FjdGlvbnMtYWRkLmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi90cmFuc2FjdGlvbnMtbGlzdC90cmFuc2FjdGlvbnMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy9kYXNoYm9hcmQtc2V0dGluZ3MvY3VycmVuY3kvY3VycmVuY3kubGVzcyIsImNvbXBvbmVudHMvZGFzaGJvYXJkLXNldHRpbmdzL3N5bmMtYXBwcy9zeW5jLWFwcHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkvYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkvYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1hc3NldHMtdnMtbGlhYmlsaXRpZXMvYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYmFsYW5jZS9hY2NvdW50cy1iYWxhbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtYmFsYW5jZS1zaGVldC9hY2NvdW50cy1iYWxhbmNlLXNoZWV0Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uL2FjY291bnRzLWNhc2gtcHJvamVjdGlvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNhc2gtYmFsYW5jZS9hY2NvdW50cy1jYXNoLWJhbGFuY2UubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1jYXNoLXN1bW1hcnkvYWNjb3VudHMtY2FzaC1zdW1tYXJ5Lmxlc3MiLCJzdHlsZXNoZWV0cy93aWRnZXQtbWFzdGVyLXN0eWxlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNsYXNzLWNvbXBhcmlzb24vYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWNvbXBhcmlzb24vYWNjb3VudHMtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbi9hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMvYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQvYWNjb3VudHMtZXhwZW5zZS13ZWlnaHQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlL2FjY291bnRzLWV4cGVuc2VzLXJldmVudWUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1saXZlLWJhbGFuY2UvYWNjb3VudHMtbGl2ZS1iYWxhbmNlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlL2FjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2FjY291bnRzLXByb2ZpdC1hbmQtbG9zcy9hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9hY2NvdW50cy1yYXRpb3MvYWNjb3VudHMtcmF0aW9zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItZW1wbG95ZWUtZGV0YWlscy9oci1lbXBsb3llZS1kZXRhaWxzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItZW1wbG95ZWVzLWxpc3QvaHItZW1wbG95ZWVzLWxpc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1sZWF2ZXMtYmFsYW5jZS9oci1sZWF2ZXMtYmFsYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2hyLWxlYXZlcy1zY2hlZHVsZS9oci1sZWF2ZXMtc2NoZWR1bGUubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci1wYXlyb2xsLXN1bW1hcnkvaHItcGF5cm9sbC1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItc2FsYXJpZXMtc3VtbWFyeS9oci1zYWxhcmllcy1zdW1tYXJ5Lmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMvaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci10aW1lc2hlZXRzL2hyLXRpbWVzaGVldHMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzL2ludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9oci13b3JrZm9yY2Utc3VtbWFyeS9oci13b3JrZm9yY2Utc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2ludm9pY2VzLXN1bW1hcnkvaW52b2ljZXMtc3VtbWFyeS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL2ludm9pY2VzLWxpc3QvaW52b2ljZXMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWFnZWQvc2FsZXMtYWdlZC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWJyZWFrLWV2ZW4vc2FsZXMtYnJlYWstZXZlbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWNvbXBhcmlzb24vc2FsZXMtY29tcGFyaXNvbi5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWN1c3RvbWVyLWRldGFpbHMvc2FsZXMtY3VzdG9tZXItZGV0YWlscy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWN5Y2xlL3NhbGVzLWN5Y2xlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtZm9yZWNhc3Qvc2FsZXMtZm9yZWNhc3QubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1ncm93dGgvc2FsZXMtZ3Jvd3RoLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtbGVhZHMtZnVubmVsL3NhbGVzLWxlYWRzLWZ1bm5lbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWxlYWRzLWxpc3Qvc2FsZXMtbGVhZHMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLWxpc3Qvc2FsZXMtbGlzdC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLW5ldC1zYWxlcy9zYWxlcy1uZXQtc2FsZXMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzL3NhbGVzLW5ldy12cy1leGlzdGluZy1jdXN0b21lcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1udW1iZXItb2YtbGVhZHMvc2FsZXMtbnVtYmVyLW9mLWxlYWRzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMvc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwvc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1wZXJmb3JtYW5jZS9zYWxlcy1wZXJmb3JtYW5jZS5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzL3NhbGVzLXNlZ21lbnRlZC10dXJub3Zlci9zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy1zdW1tYXJ5L3NhbGVzLXN1bW1hcnkubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy10b3AtY3VzdG9tZXJzL3NhbGVzLXRvcC1jdXN0b21lcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy9zYWxlcy10b3Atb3Bwb3J0dW5pdGllcy9zYWxlcy10b3Atb3Bwb3J0dW5pdGllcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi9jaGFydC10aHJlc2hvbGQvY2hhcnQtdGhyZXNob2xkLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL2VkaXRhYmxlLXRpdGxlL2VkaXRhYmxlLXRpdGxlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL2N1cnJlbmN5LWNvbnZlcnNpb25zL2N1cnJlbmN5LWNvbnZlcnNpb25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtY29tbW9uL2luZm8tcGFuZWwvaW5mby1wYW5lbC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLWNvbW1vbi90aW1lLXBlcmlvZC1pbmZvL3RpbWUtcGVyaW9kLWluZm8ubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1jb21tb24vdG9wLWJ1dHRvbnMvdG9wLWJ1dHRvbnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9hY2NvdW50L2FjY291bnQubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9hY2NvdW50aW5nLWJlaGF2aW91ci9hY2NvdW50aW5nLWJlaGF2aW91ci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2F0dGFjaC1rcGlzL2F0dGFjaC1rcGlzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvYm9sdC1hY2NvdW50L2JvbHQtYWNjb3VudC5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL2RhdGVzLXBpY2tlci9kYXRlcy1waWNrZXIubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9jaGFydC1maWx0ZXJzL2NoYXJ0LWZpbHRlcnMubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9oaXN0LW1vZGUvaGlzdC1tb2RlLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvbGltaXQtZW50cmllcy9saW1pdC1lbnRyaWVzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvb2Zmc2V0cy9vZmZzZXRzLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvb3JnYW5pemF0aW9ucy9vcmdhbml6YXRpb25zLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3MvcGFyYW0tc2VsZWN0b3IvcGFyYW0tc2VsZWN0b3IubGVzcyIsImNvbXBvbmVudHMvd2lkZ2V0cy1zZXR0aW5ncy9wYXJhbXMtY2hlY2tib3hlcy9wYXJhbXMtY2hlY2tib3hlcy5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3BhcmFtcy1waWNrZXIvcGFyYW1zLXBpY2tlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RhZy1maWx0ZXIvdGFnLWZpbHRlci5sZXNzIiwiY29tcG9uZW50cy93aWRnZXRzLXNldHRpbmdzL3RpbWUtcGVyaW9kL3RpbWUtcGVyaW9kLmxlc3MiLCJjb21wb25lbnRzL3dpZGdldHMtc2V0dGluZ3Mvd2lkdGgvd2lkdGgubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFFRTtBQUNGOzs7R0FHRztBQUNIOzs7O0dBSUc7QUFDSCw0RUFBNEU7QUNKNUU7RUFDRSx3QkFBQTtFQUNBLDJCQUFBO0VBQ0EsK0JBQUE7Q0RNRDtBQ0NEO0VBQ0UsVUFBQTtDRENEO0FDWUQ7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFBO0NEVkQ7QUNrQkQ7Ozs7RUFJRSxzQkFBQTtFQUNBLHlCQUFBO0NEaEJEO0FDd0JEO0VBQ0UsY0FBQTtFQUNBLFVBQUE7Q0R0QkQ7QUM4QkQ7O0VBRUUsY0FBQTtDRDVCRDtBQ3NDRDtFQUNFLDhCQUFBO0NEcENEO0FDNENEOztFQUVFLFdBQUE7Q0QxQ0Q7QUNvREQ7RUFDRSwwQkFBQTtDRGxERDtBQ3lERDs7RUFFRSxrQkFBQTtDRHZERDtBQzhERDtFQUNFLG1CQUFBO0NENUREO0FDb0VEO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0NEbEVEO0FDeUVEO0VBQ0UsaUJBQUE7RUFDQSxZQUFBO0NEdkVEO0FDOEVEO0VBQ0UsZUFBQTtDRDVFRDtBQ21GRDs7RUFFRSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7Q0RqRkQ7QUNvRkQ7RUFDRSxZQUFBO0NEbEZEO0FDcUZEO0VBQ0UsZ0JBQUE7Q0RuRkQ7QUM2RkQ7RUFDRSxVQUFBO0NEM0ZEO0FDa0dEO0VBQ0UsaUJBQUE7Q0RoR0Q7QUMwR0Q7RUFDRSxpQkFBQTtDRHhHRDtBQytHRDtFQUNFLHdCQUFBO0VBQ0EsVUFBQTtDRDdHRDtBQ29IRDtFQUNFLGVBQUE7Q0RsSEQ7QUN5SEQ7Ozs7RUFJRSxrQ0FBQTtFQUNBLGVBQUE7Q0R2SEQ7QUN5SUQ7Ozs7O0VBS0UsZUFBQTtFQUNBLGNBQUE7RUFDQSxVQUFBO0NEdklEO0FDOElEO0VBQ0Usa0JBQUE7Q0Q1SUQ7QUNzSkQ7O0VBRUUscUJBQUE7Q0RwSkQ7QUMrSkQ7Ozs7RUFJRSwyQkFBQTtFQUNBLGdCQUFBO0NEN0pEO0FDb0tEOztFQUVFLGdCQUFBO0NEbEtEO0FDeUtEOztFQUVFLFVBQUE7RUFDQSxXQUFBO0NEdktEO0FDK0tEO0VBQ0Usb0JBQUE7Q0Q3S0Q7QUN3TEQ7O0VBRUUsdUJBQUE7RUFDQSxXQUFBO0NEdExEO0FDK0xEOztFQUVFLGFBQUE7Q0Q3TEQ7QUNxTUQ7RUFDRSw4QkFBQTtFQUNBLHdCQUFBO0NEbk1EO0FDNE1EOztFQUVFLHlCQUFBO0NEMU1EO0FDaU5EO0VBQ0UsMEJBQUE7RUFDQSxjQUFBO0VBQ0EsK0JBQUE7Q0QvTUQ7QUN1TkQ7RUFDRSxVQUFBO0VBQ0EsV0FBQTtDRHJORDtBQzRORDtFQUNFLGVBQUE7Q0QxTkQ7QUNrT0Q7RUFDRSxrQkFBQTtDRGhPRDtBQzBPRDtFQUNFLDBCQUFBO0VBQ0Esa0JBQUE7Q0R4T0Q7QUMyT0Q7O0VBRUUsV0FBQTtDRHpPRDtBRW5MRDtFQUNFLG9DQUFBO0VBQ0Esc0RBQUE7RUFDQSxnWUFBQTtDRnFMRDtBRTdLRDtFQUNFLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBQ0Esb0NBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG9DQUFBO0VBQ0EsbUNBQUE7Q0YrS0Q7QUUzS21DO0VBQVcsaUJBQUE7Q0Y4SzlDO0FFN0ttQztFQUFXLGlCQUFBO0NGZ0w5QztBRTlLbUM7O0VBQVcsaUJBQUE7Q0ZrTDlDO0FFakxtQztFQUFXLGlCQUFBO0NGb0w5QztBRW5MbUM7RUFBVyxpQkFBQTtDRnNMOUM7QUVyTG1DO0VBQVcsaUJBQUE7Q0Z3TDlDO0FFdkxtQztFQUFXLGlCQUFBO0NGMEw5QztBRXpMbUM7RUFBVyxpQkFBQTtDRjRMOUM7QUUzTG1DO0VBQVcsaUJBQUE7Q0Y4TDlDO0FFN0xtQztFQUFXLGlCQUFBO0NGZ005QztBRS9MbUM7RUFBVyxpQkFBQTtDRmtNOUM7QUVqTW1DO0VBQVcsaUJBQUE7Q0ZvTTlDO0FFbk1tQztFQUFXLGlCQUFBO0NGc005QztBRXJNbUM7RUFBVyxpQkFBQTtDRndNOUM7QUV2TW1DO0VBQVcsaUJBQUE7Q0YwTTlDO0FFek1tQztFQUFXLGlCQUFBO0NGNE05QztBRTNNbUM7RUFBVyxpQkFBQTtDRjhNOUM7QUU3TW1DO0VBQVcsaUJBQUE7Q0ZnTjlDO0FFL01tQztFQUFXLGlCQUFBO0NGa045QztBRWpObUM7RUFBVyxpQkFBQTtDRm9OOUM7QUVuTm1DO0VBQVcsaUJBQUE7Q0ZzTjlDO0FFck5tQztFQUFXLGlCQUFBO0NGd045QztBRXZObUM7RUFBVyxpQkFBQTtDRjBOOUM7QUV6Tm1DO0VBQVcsaUJBQUE7Q0Y0TjlDO0FFM05tQztFQUFXLGlCQUFBO0NGOE45QztBRTdObUM7RUFBVyxpQkFBQTtDRmdPOUM7QUUvTm1DO0VBQVcsaUJBQUE7Q0ZrTzlDO0FFak9tQztFQUFXLGlCQUFBO0NGb085QztBRW5PbUM7RUFBVyxpQkFBQTtDRnNPOUM7QUVyT21DO0VBQVcsaUJBQUE7Q0Z3TzlDO0FFdk9tQztFQUFXLGlCQUFBO0NGME85QztBRXpPbUM7RUFBVyxpQkFBQTtDRjRPOUM7QUUzT21DO0VBQVcsaUJBQUE7Q0Y4TzlDO0FFN09tQztFQUFXLGlCQUFBO0NGZ1A5QztBRS9PbUM7RUFBVyxpQkFBQTtDRmtQOUM7QUVqUG1DO0VBQVcsaUJBQUE7Q0ZvUDlDO0FFblBtQztFQUFXLGlCQUFBO0NGc1A5QztBRXJQbUM7RUFBVyxpQkFBQTtDRndQOUM7QUV2UG1DO0VBQVcsaUJBQUE7Q0YwUDlDO0FFelBtQztFQUFXLGlCQUFBO0NGNFA5QztBRTNQbUM7RUFBVyxpQkFBQTtDRjhQOUM7QUU3UG1DO0VBQVcsaUJBQUE7Q0ZnUTlDO0FFL1BtQztFQUFXLGlCQUFBO0NGa1E5QztBRWpRbUM7RUFBVyxpQkFBQTtDRm9ROUM7QUVuUW1DO0VBQVcsaUJBQUE7Q0ZzUTlDO0FFclFtQztFQUFXLGlCQUFBO0NGd1E5QztBRXZRbUM7RUFBVyxpQkFBQTtDRjBROUM7QUV6UW1DO0VBQVcsaUJBQUE7Q0Y0UTlDO0FFM1FtQztFQUFXLGlCQUFBO0NGOFE5QztBRTdRbUM7RUFBVyxpQkFBQTtDRmdSOUM7QUUvUW1DO0VBQVcsaUJBQUE7Q0ZrUjlDO0FFalJtQztFQUFXLGlCQUFBO0NGb1I5QztBRW5SbUM7RUFBVyxpQkFBQTtDRnNSOUM7QUVyUm1DO0VBQVcsaUJBQUE7Q0Z3UjlDO0FFdlJtQztFQUFXLGlCQUFBO0NGMFI5QztBRXpSbUM7RUFBVyxpQkFBQTtDRjRSOUM7QUUzUm1DO0VBQVcsaUJBQUE7Q0Y4UjlDO0FFN1JtQztFQUFXLGlCQUFBO0NGZ1M5QztBRS9SbUM7RUFBVyxpQkFBQTtDRmtTOUM7QUVqU21DO0VBQVcsaUJBQUE7Q0ZvUzlDO0FFblNtQztFQUFXLGlCQUFBO0NGc1M5QztBRXJTbUM7RUFBVyxpQkFBQTtDRndTOUM7QUV2U21DO0VBQVcsaUJBQUE7Q0YwUzlDO0FFelNtQztFQUFXLGlCQUFBO0NGNFM5QztBRTNTbUM7RUFBVyxpQkFBQTtDRjhTOUM7QUU3U21DO0VBQVcsaUJBQUE7Q0ZnVDlDO0FFL1NtQztFQUFXLGlCQUFBO0NGa1Q5QztBRWpUbUM7RUFBVyxpQkFBQTtDRm9UOUM7QUVuVG1DO0VBQVcsaUJBQUE7Q0ZzVDlDO0FFclRtQztFQUFXLGlCQUFBO0NGd1Q5QztBRXZUbUM7RUFBVyxpQkFBQTtDRjBUOUM7QUV6VG1DO0VBQVcsaUJBQUE7Q0Y0VDlDO0FFM1RtQztFQUFXLGlCQUFBO0NGOFQ5QztBRTdUbUM7RUFBVyxpQkFBQTtDRmdVOUM7QUUvVG1DO0VBQVcsaUJBQUE7Q0ZrVTlDO0FFalVtQztFQUFXLGlCQUFBO0NGb1U5QztBRW5VbUM7RUFBVyxpQkFBQTtDRnNVOUM7QUVyVW1DO0VBQVcsaUJBQUE7Q0Z3VTlDO0FFdlVtQztFQUFXLGlCQUFBO0NGMFU5QztBRXpVbUM7RUFBVyxpQkFBQTtDRjRVOUM7QUUzVW1DO0VBQVcsaUJBQUE7Q0Y4VTlDO0FFN1VtQztFQUFXLGlCQUFBO0NGZ1Y5QztBRS9VbUM7RUFBVyxpQkFBQTtDRmtWOUM7QUVqVm1DO0VBQVcsaUJBQUE7Q0ZvVjlDO0FFblZtQztFQUFXLGlCQUFBO0NGc1Y5QztBRXJWbUM7RUFBVyxpQkFBQTtDRndWOUM7QUV2Vm1DO0VBQVcsaUJBQUE7Q0YwVjlDO0FFelZtQztFQUFXLGlCQUFBO0NGNFY5QztBRTNWbUM7RUFBVyxpQkFBQTtDRjhWOUM7QUU3Vm1DO0VBQVcsaUJBQUE7Q0ZnVzlDO0FFL1ZtQztFQUFXLGlCQUFBO0NGa1c5QztBRWpXbUM7RUFBVyxpQkFBQTtDRm9XOUM7QUVuV21DO0VBQVcsaUJBQUE7Q0ZzVzlDO0FFcldtQztFQUFXLGlCQUFBO0NGd1c5QztBRXZXbUM7RUFBVyxpQkFBQTtDRjBXOUM7QUV6V21DO0VBQVcsaUJBQUE7Q0Y0VzlDO0FFM1dtQztFQUFXLGlCQUFBO0NGOFc5QztBRTdXbUM7RUFBVyxpQkFBQTtDRmdYOUM7QUUvV21DO0VBQVcsaUJBQUE7Q0ZrWDlDO0FFalhtQztFQUFXLGlCQUFBO0NGb1g5QztBRW5YbUM7RUFBVyxpQkFBQTtDRnNYOUM7QUVyWG1DO0VBQVcsaUJBQUE7Q0Z3WDlDO0FFdlhtQztFQUFXLGlCQUFBO0NGMFg5QztBRXpYbUM7RUFBVyxpQkFBQTtDRjRYOUM7QUUzWG1DO0VBQVcsaUJBQUE7Q0Y4WDlDO0FFN1htQztFQUFXLGlCQUFBO0NGZ1k5QztBRS9YbUM7RUFBVyxpQkFBQTtDRmtZOUM7QUVqWW1DO0VBQVcsaUJBQUE7Q0ZvWTlDO0FFblltQztFQUFXLGlCQUFBO0NGc1k5QztBRXJZbUM7RUFBVyxpQkFBQTtDRndZOUM7QUV2WW1DO0VBQVcsaUJBQUE7Q0YwWTlDO0FFelltQztFQUFXLGlCQUFBO0NGNFk5QztBRTNZbUM7RUFBVyxpQkFBQTtDRjhZOUM7QUU3WW1DO0VBQVcsaUJBQUE7Q0ZnWjlDO0FFL1ltQztFQUFXLGlCQUFBO0NGa1o5QztBRWpabUM7RUFBVyxpQkFBQTtDRm9aOUM7QUVuWm1DO0VBQVcsaUJBQUE7Q0ZzWjlDO0FFclptQztFQUFXLGlCQUFBO0NGd1o5QztBRXZabUM7RUFBVyxpQkFBQTtDRjBaOUM7QUV6Wm1DO0VBQVcsaUJBQUE7Q0Y0WjlDO0FFM1ptQztFQUFXLGlCQUFBO0NGOFo5QztBRTdabUM7RUFBVyxpQkFBQTtDRmdhOUM7QUUvWm1DO0VBQVcsaUJBQUE7Q0ZrYTlDO0FFamFtQztFQUFXLGlCQUFBO0NGb2E5QztBRW5hbUM7RUFBVyxpQkFBQTtDRnNhOUM7QUVyYW1DO0VBQVcsaUJBQUE7Q0Z3YTlDO0FFdmFtQztFQUFXLGlCQUFBO0NGMGE5QztBRXphbUM7RUFBVyxpQkFBQTtDRjRhOUM7QUUzYW1DO0VBQVcsaUJBQUE7Q0Y4YTlDO0FFN2FtQztFQUFXLGlCQUFBO0NGZ2I5QztBRS9hbUM7RUFBVyxpQkFBQTtDRmtiOUM7QUVqYm1DO0VBQVcsaUJBQUE7Q0ZvYjlDO0FFbmJtQztFQUFXLGlCQUFBO0NGc2I5QztBRXJibUM7RUFBVyxpQkFBQTtDRndiOUM7QUV2Ym1DO0VBQVcsaUJBQUE7Q0YwYjlDO0FFemJtQztFQUFXLGlCQUFBO0NGNGI5QztBRTNibUM7RUFBVyxpQkFBQTtDRjhiOUM7QUU3Ym1DO0VBQVcsaUJBQUE7Q0ZnYzlDO0FFL2JtQztFQUFXLGlCQUFBO0NGa2M5QztBRWpjbUM7RUFBVyxpQkFBQTtDRm9jOUM7QUVuY21DO0VBQVcsaUJBQUE7Q0ZzYzlDO0FFcmNtQztFQUFXLGlCQUFBO0NGd2M5QztBRXZjbUM7RUFBVyxpQkFBQTtDRjBjOUM7QUV6Y21DO0VBQVcsaUJBQUE7Q0Y0YzlDO0FFM2NtQztFQUFXLGlCQUFBO0NGOGM5QztBRTdjbUM7RUFBVyxpQkFBQTtDRmdkOUM7QUUvY21DO0VBQVcsaUJBQUE7Q0ZrZDlDO0FFamRtQztFQUFXLGlCQUFBO0NGb2Q5QztBRW5kbUM7RUFBVyxpQkFBQTtDRnNkOUM7QUVyZG1DO0VBQVcsaUJBQUE7Q0Z3ZDlDO0FFdmRtQztFQUFXLGlCQUFBO0NGMGQ5QztBRXpkbUM7RUFBVyxpQkFBQTtDRjRkOUM7QUUzZG1DO0VBQVcsaUJBQUE7Q0Y4ZDlDO0FFN2RtQztFQUFXLGlCQUFBO0NGZ2U5QztBRS9kbUM7RUFBVyxpQkFBQTtDRmtlOUM7QUVqZW1DO0VBQVcsaUJBQUE7Q0ZvZTlDO0FFbmVtQztFQUFXLGlCQUFBO0NGc2U5QztBRXJlbUM7RUFBVyxpQkFBQTtDRndlOUM7QUV2ZW1DO0VBQVcsaUJBQUE7Q0YwZTlDO0FFemVtQztFQUFXLGlCQUFBO0NGNGU5QztBRTNlbUM7RUFBVyxpQkFBQTtDRjhlOUM7QUU3ZW1DO0VBQVcsaUJBQUE7Q0ZnZjlDO0FFL2VtQztFQUFXLGlCQUFBO0NGa2Y5QztBRWpmbUM7RUFBVyxpQkFBQTtDRm9mOUM7QUVuZm1DO0VBQVcsaUJBQUE7Q0ZzZjlDO0FFcmZtQztFQUFXLGlCQUFBO0NGd2Y5QztBRXZmbUM7RUFBVyxpQkFBQTtDRjBmOUM7QUV6Zm1DO0VBQVcsaUJBQUE7Q0Y0ZjlDO0FFM2ZtQztFQUFXLGlCQUFBO0NGOGY5QztBRTdmbUM7RUFBVyxpQkFBQTtDRmdnQjlDO0FFL2ZtQztFQUFXLGlCQUFBO0NGa2dCOUM7QUVqZ0JtQztFQUFXLGlCQUFBO0NGb2dCOUM7QUVuZ0JtQztFQUFXLGlCQUFBO0NGc2dCOUM7QUVyZ0JtQztFQUFXLGlCQUFBO0NGd2dCOUM7QUV2Z0JtQztFQUFXLGlCQUFBO0NGMGdCOUM7QUV6Z0JtQztFQUFXLGlCQUFBO0NGNGdCOUM7QUUzZ0JtQztFQUFXLGlCQUFBO0NGOGdCOUM7QUU3Z0JtQztFQUFXLGlCQUFBO0NGZ2hCOUM7QUUvZ0JtQztFQUFXLGlCQUFBO0NGa2hCOUM7QUVqaEJtQztFQUFXLGlCQUFBO0NGb2hCOUM7QUVuaEJtQztFQUFXLGlCQUFBO0NGc2hCOUM7QUVyaEJtQztFQUFXLGlCQUFBO0NGd2hCOUM7QUV2aEJtQztFQUFXLGlCQUFBO0NGMGhCOUM7QUV6aEJtQztFQUFXLGlCQUFBO0NGNGhCOUM7QUUzaEJtQztFQUFXLGlCQUFBO0NGOGhCOUM7QUU3aEJtQztFQUFXLGlCQUFBO0NGZ2lCOUM7QUUvaEJtQztFQUFXLGlCQUFBO0NGa2lCOUM7QUVqaUJtQztFQUFXLGlCQUFBO0NGb2lCOUM7QUVuaUJtQztFQUFXLGlCQUFBO0NGc2lCOUM7QUVyaUJtQztFQUFXLGlCQUFBO0NGd2lCOUM7QUV2aUJtQztFQUFXLGlCQUFBO0NGMGlCOUM7QUV6aUJtQztFQUFXLGlCQUFBO0NGNGlCOUM7QUUzaUJtQztFQUFXLGlCQUFBO0NGOGlCOUM7QUU3aUJtQztFQUFXLGlCQUFBO0NGZ2pCOUM7QUUvaUJtQztFQUFXLGlCQUFBO0NGa2pCOUM7QUVqakJtQztFQUFXLGlCQUFBO0NGb2pCOUM7QUVuakJtQztFQUFXLGlCQUFBO0NGc2pCOUM7QUVyakJtQztFQUFXLGlCQUFBO0NGd2pCOUM7QUV2akJtQztFQUFXLGlCQUFBO0NGMGpCOUM7QUV6akJtQztFQUFXLGlCQUFBO0NGNGpCOUM7QUUzakJtQztFQUFXLGlCQUFBO0NGOGpCOUM7QUU3akJtQztFQUFXLGlCQUFBO0NGZ2tCOUM7QUUvakJtQztFQUFXLGlCQUFBO0NGa2tCOUM7QUVqa0JtQztFQUFXLGlCQUFBO0NGb2tCOUM7QUVua0JtQztFQUFXLGlCQUFBO0NGc2tCOUM7QUVya0JtQztFQUFXLGlCQUFBO0NGd2tCOUM7QUUvakJtQztFQUFXLGlCQUFBO0NGa2tCOUM7QUVqa0JtQztFQUFXLGlCQUFBO0NGb2tCOUM7QUVua0JtQztFQUFXLGlCQUFBO0NGc2tCOUM7QUVya0JtQztFQUFXLGlCQUFBO0NGd2tCOUM7QUV2a0JtQztFQUFXLGlCQUFBO0NGMGtCOUM7QUV6a0JtQztFQUFXLGlCQUFBO0NGNGtCOUM7QUUza0JtQztFQUFXLGlCQUFBO0NGOGtCOUM7QUU3a0JtQztFQUFXLGlCQUFBO0NGZ2xCOUM7QUUva0JtQztFQUFXLGlCQUFBO0NGa2xCOUM7QUVqbEJtQztFQUFXLGlCQUFBO0NGb2xCOUM7QUVubEJtQztFQUFXLGlCQUFBO0NGc2xCOUM7QUVybEJtQztFQUFXLGlCQUFBO0NGd2xCOUM7QUV2bEJtQztFQUFXLGlCQUFBO0NGMGxCOUM7QUV6bEJtQztFQUFXLGlCQUFBO0NGNGxCOUM7QUUzbEJtQztFQUFXLGlCQUFBO0NGOGxCOUM7QUU3bEJtQztFQUFXLGlCQUFBO0NGZ21COUM7QUUvbEJtQztFQUFXLGlCQUFBO0NGa21COUM7QUVqbUJtQztFQUFXLGlCQUFBO0NGb21COUM7QUVubUJtQztFQUFXLGlCQUFBO0NGc21COUM7QUVybUJtQztFQUFXLGlCQUFBO0NGd21COUM7QUV2bUJtQztFQUFXLGlCQUFBO0NGMG1COUM7QUV6bUJtQztFQUFXLGlCQUFBO0NGNG1COUM7QUUzbUJtQztFQUFXLGlCQUFBO0NGOG1COUM7QUU3bUJtQztFQUFXLGlCQUFBO0NGZ25COUM7QUUvbUJtQztFQUFXLGlCQUFBO0NGa25COUM7QUVqbkJtQztFQUFXLGlCQUFBO0NGb25COUM7QUVubkJtQztFQUFXLGlCQUFBO0NGc25COUM7QUVybkJtQztFQUFXLGlCQUFBO0NGd25COUM7QUV2bkJtQztFQUFXLGlCQUFBO0NGMG5COUM7QUV6bkJtQztFQUFXLGlCQUFBO0NGNG5COUM7QUUzbkJtQztFQUFXLGlCQUFBO0NGOG5COUM7QUU3bkJtQztFQUFXLGlCQUFBO0NGZ29COUM7QUUvbkJtQztFQUFXLGlCQUFBO0NGa29COUM7QUVqb0JtQztFQUFXLGlCQUFBO0NGb29COUM7QUVub0JtQztFQUFXLGlCQUFBO0NGc29COUM7QUVyb0JtQztFQUFXLGlCQUFBO0NGd29COUM7QUV2b0JtQztFQUFXLGlCQUFBO0NGMG9COUM7QUV6b0JtQztFQUFXLGlCQUFBO0NGNG9COUM7QUUzb0JtQztFQUFXLGlCQUFBO0NGOG9COUM7QUU3b0JtQztFQUFXLGlCQUFBO0NGZ3BCOUM7QUUvb0JtQztFQUFXLGlCQUFBO0NGa3BCOUM7QUVqcEJtQztFQUFXLGlCQUFBO0NGb3BCOUM7QUVucEJtQztFQUFXLGlCQUFBO0NGc3BCOUM7QUVycEJtQztFQUFXLGlCQUFBO0NGd3BCOUM7QUV2cEJtQztFQUFXLGlCQUFBO0NGMHBCOUM7QUV6cEJtQztFQUFXLGlCQUFBO0NGNHBCOUM7QUUzcEJtQztFQUFXLGlCQUFBO0NGOHBCOUM7QUU3cEJtQztFQUFXLGlCQUFBO0NGZ3FCOUM7QUUvcEJtQztFQUFXLGlCQUFBO0NGa3FCOUM7QUVqcUJtQztFQUFXLGlCQUFBO0NGb3FCOUM7QUVucUJtQztFQUFXLGlCQUFBO0NG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LDJCQUFBO0NQeW9DdEI7QU90b0NEO0VBQ0UsZUFBQTtDUHdvQ0Q7QU90b0NEO0VDckdFLGVBQUE7Q1I4dUNEO0FRN3VDQzs7RUFFRSxlQUFBO0NSK3VDSDtBTzFvQ0Q7RUN4R0UsZUFBQTtDUnF2Q0Q7QVFwdkNDOztFQUVFLGVBQUE7Q1JzdkNIO0FPOW9DRDtFQzNHRSxlQUFBO0NSNHZDRDtBUTN2Q0M7O0VBRUUsZUFBQTtDUjZ2Q0g7QU9scENEO0VDOUdFLGVBQUE7Q1Jtd0NEO0FRbHdDQzs7RUFFRSxlQUFBO0NSb3dDSDtBT3RwQ0Q7RUNqSEUsZUFBQTtDUjB3Q0Q7QVF6d0NDOztFQUVFLGVBQUE7Q1Iyd0NIO0FPdHBDRDtFQUdFLFlBQUE7RUUzSEEsMEJBQUE7Q1RreENEO0FTanhDQzs7RUFFRSwwQkFBQTtDVG14Q0g7QU94cENEO0VFOUhFLDBCQUFBO0NUeXhDRDtBU3h4Q0M7O0VBRUUsMEJBQUE7Q1QweENIO0FPNXBDRDtFRWpJRSwwQkFBQTtDVGd5Q0Q7QVMveENDOztFQUVFLDBCQUFBO0NUaXlDSDtBT2hxQ0Q7RUVwSUUsMEJBQUE7Q1R1eUNEO0FTdHlDQzs7RUFFRSwwQkFBQTtDVHd5Q0g7QU9wcUNEO0VFdklFLDBCQUFBO0NUOHlDRDtBUzd5Q0M7O0VBRUUsMEJBQUE7Q1QreUNIO0FPbnFDRDtFQUNFLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQ0FBQTtDUHFxQ0Q7QU83cENEOztFQUVFLGNBQUE7RUFDQSxvQkFBQTtDUCtwQ0Q7QU9scUNEOzs7O0VBTUksaUJBQUE7Q1BrcUNIO0FPM3BDRDtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7Q1A2cENEO0FPenBDRDtFQUxFLGdCQUFBO0VBQ0EsaUJBQUE7RUFNQSxrQkFBQTtDUDRwQ0Q7QU85cENEO0VBS0ksc0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0NQNHBDSDtBT3ZwQ0Q7RUFDRSxjQUFBO0VBQ0Esb0JBQUE7Q1B5cENEO0FPdnBDRDs7RUFFRSx3QkFBQTtDUHlwQ0Q7QU92cENEO0VBQ0Usa0JBQUE7Q1B5cENEO0FPdnBDRDtFQUNFLGVB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QztFQUNFLG9CQUFBO0NkaWdESDtBY2xnREM7RUFDRSxXQUFBO0Nkb2dESDtBY3JnREM7RUFDRSxvQkFBQTtDZHVnREg7QWN4Z0RDO0VBQ0Usb0JBQUE7Q2QwZ0RIO0FjM2dEQztFQUNFLFdBQUE7Q2Q2Z0RIO0FjOWdEQztFQUNFLG9CQUFBO0NkZ2hESDtBY2poREM7RUFDRSxtQkFBQTtDZG1oREg7QWMvZ0RDO0VBQ0UsWUFBQTtDZGloREg7QWNqaURDO0VBQ0UsV0FBQTtDZG1pREg7QWNwaURDO0VBQ0UsbUJBQUE7Q2RzaURIO0FjdmlEQztFQUNFLG1CQUFBO0NkeWlESDtBYzFpREM7RUFDRSxVQUFBO0NkNGlESDtBYzdpREM7RUFDRSxtQkFBQTtDZCtpREg7QWNoakRDO0VBQ0UsbUJBQUE7Q2RrakRIO0FjbmpEQztFQUNFLFVBQUE7Q2RxakRIO0FjdGpEQztFQUNFLG1CQUFBO0Nkd2pESDtBY3pqREM7RUFDRSxtQkFBQTtDZDJqREg7QWM1akRDO0VBQ0UsVUFBQTtDZDhqREg7QWMvakRDO0VBQ0UsbUJBQUE7Q2Rpa0RIO0FjbGtEQztFQUNFLGtCQUFBO0Nkb2tESDtBY2hrREM7RUFDRSxXQUFBO0Nka2tESDtBY3BqREM7RUFDRSxrQkFBQTtDZHNqREg7QWN2akRDO0VBQ0UsMEJBQUE7Q2R5akRIO0FjMWpEQztFQUNFLDBCQUFBO0NkNGpESDtBYzdqREM7RUFDRSxpQkFBQTtDZCtqREg7QWNoa0RDO0VBQ0UsMEJBQUE7Q2Rra0RIO0FjbmtEQztFQUNFLDBCQUFBO0NkcWtESDtBY3RrREM7RUFDRSxpQkFBQTtDZHdrREg7QWN6a0RDO0VBQ0UsMEJBQUE7Q2Qya0RIO0FjNWtEQztFQUNFLDBCQUFBO0NkOGtESDtBYy9rREM7RUFDRSxpQkFBQTtDZGlsREg7QWNsbERDO0VBQ0UsMEJBQUE7Q2RvbERIO0FjcmxEQztFQUNFLHlCQUFBO0NkdWxESDtBY3hsREM7RUFDRSxnQkFBQTtDZDBsREg7QVlubUREO0VFekJJO0lBQ0UsWUFBQTtHZCtuREg7RWN4bkREO0lBQ0UsWUFBQTtHZDBuREQ7RWMzbkREO0lBQ0Usb0JBQUE7R2Q2bkREO0VjOW5ERDtJQUNFLG9CQUFBO0dkZ29ERDtFY2pvREQ7SUFDRSxXQUFBO0dkbW9ERDtFY3BvREQ7SUFDRSxvQkFBQTtHZHNvREQ7RWN2b0REO0lBQ0Usb0JBQUE7R2R5b0REO0VjMW9ERDtJQUNFLFdBQUE7R2Q0b0REO0VjN29ERDtJQUNFLG9CQUFBO0dkK29ERDtFY2hwREQ7SUFDRSxvQkFBQTtHZGtwREQ7RWNucEREO0lBQ0UsV0FBQTtHZHFwREQ7RWN0cEREO0lBQ0Usb0JBQUE7R2R3cEREO0VjenBERDtJQUNFLG1CQUFBO0dkMnBERDtFYzdvREQ7SUFDRSxZQUFBO0dkK29ERDtFY2hwREQ7SUFDRSxvQkFBQTtHZGtwREQ7RWNucEREO0lBQ0Usb0JBQUE7R2RxcEREO0VjdHBERDtJQUNFLFdBQUE7R2R3cEREO0VjenBERDtJQUNFLG9CQUFBO0dkMnBERDtFYzVwREQ7SUFDRSxvQkFBQTtHZDhwREQ7RWMvcEREO0lBQ0UsV0FBQTtHZGlxREQ7RWNscUREO0lBQ0Usb0JBQUE7R2RvcUREO0VjcnFERDtJQUNFLG9CQUFBO0dkdXFERDtFY3hxREQ7SUFDRSxXQUFBO0dkMHFERDtFYzNxREQ7SUFDRSxvQkFBQTtHZDZxREQ7RWM5cUREO0lBQ0UsbUJBQUE7R2RnckREO0VjNXFERDtJQUNFLFlBQUE7R2Q4cUREO0VjOXJERDtJQUNFLFdBQUE7R2Rnc0REO0VjanNERDtJQUNFLG1CQUFBO0dkbXNERDtFY3BzREQ7SUFDRSxtQkFBQTtHZHNzREQ7RWN2c0REO0lBQ0UsVUFBQTtHZHlzREQ7RWMxc0REO0lBQ0UsbUJBQUE7R2Q0c0REO0VjN3NERDtJQUNFLG1CQUFBO0dkK3NERDtFY2h0REQ7SUFDRSxVQUFBO0dka3RERDtFY250REQ7SUFDRSxtQkFBQTtHZHF0REQ7RWN0dEREO0lBQ0UsbUJBQUE7R2R3dEREO0VjenRERDtJQUNFLFVBQUE7R2QydEREO0VjNXRERDtJQUNFLG1CQUFBO0dkOHRERDtFYy90REQ7SUFDRSxrQkFBQTtHZGl1REQ7RWM3dEREO0lBQ0UsV0FBQTtHZCt0REQ7RWNqdEREO0lBQ0Usa0JBQUE7R2RtdEREO0VjcHRERDtJQUNFLDBCQUFBO0dkc3RERDtFY3Z0REQ7SUFDRSwwQkFBQTtHZHl0REQ7RWMxdEREO0lBQ0UsaUJBQUE7R2Q0dEREO0VjN3RERDtJQUNFLDBCQUFBO0dkK3RERDtFY2h1REQ7SUFDRSwwQkFBQTtHZGt1REQ7RWNudUREO0lBQ0UsaUJBQUE7R2RxdUREO0VjdHVERDtJQUNFLDBCQUFBO0dkd3VERDtFY3p1REQ7SUFDRSwwQkFBQTtHZDJ1REQ7RWM1dUREO0lBQ0UsaUJBQUE7R2Q4dUREO0VjL3VERDtJQUNFLDBCQUFBO0dkaXZERDtFY2x2REQ7SUFDRSx5QkFBQTtHZG92REQ7RWNydkREO0lBQ0UsZ0JBQUE7R2R1dkREO0NBQ0Y7QVl4dkREO0VFbENJO0lBQ0UsWUFBQTtHZDZ4REg7RWN0eEREO0lBQ0UsWUFBQTtHZHd4REQ7RWN6eEREO0lBQ0Usb0JBQUE7R2QyeEREO0VjNXhERDtJQUNFLG9CQUFBO0dkOHhERDtFYy94REQ7SUFDRSxXQUFBO0dkaXlERDtFY2x5REQ7SUFDRSxvQkFBQTtHZG95REQ7RWNyeUREO0lBQ0Usb0JBQUE7R2R1eUREO0VjeHlERDtJQUNFLFdBQUE7R2QweUREO0VjM3lERDtJQUNFLG9CQUFBO0dkNnlERDtFYzl5REQ7SUFDRSxvQkFBQTtHZGd6REQ7RWNqekREO0lBQ0UsV0FBQTtHZG16REQ7RWNwekREO0lBQ0Usb0JBQUE7R2RzekREO0VjdnpERDtJQUNFLG1CQUFBO0dkeXpERDtFYzN5REQ7SUFDRSxZQUFBO0dkNnlERDtFYzl5REQ7SUFDRSxvQkFBQTtHZGd6REQ7RWNqekREO0lBQ0Usb0JBQUE7R2RtekREO0VjcHpERDtJQUNFLFdBQUE7R2RzekREO0VjdnpERDtJQUNFLG9CQUFBO0dkeXpERDtFYzF6REQ7SUFDRSxvQkFBQTtHZDR6REQ7RWM3ekREO0lBQ0UsV0FBQTtHZCt6REQ7RWNoMEREO0lBQ0Usb0JBQUE7R2RrMEREO0VjbjBERDtJQUNFLG9CQUFBO0dkcTBERDtFY3QwREQ7SUFDRSxXQUFBO0dkdzBERDtFY3owREQ7SUFDRSxvQkFBQTtHZDIwREQ7RWM1MEREO0lBQ0UsbUJBQUE7R2Q4MEREO0VjMTBERDtJQUNFLFlBQUE7R2Q0MEREO0VjNTFERDtJQUNFLFdBQUE7R2Q4MUREO0VjLzFERDtJQUNFLG1CQUFBO0dkaTJERDtFY2wyREQ7SUFDRSxtQkFBQTtHZG8yREQ7RWNyMkREO0lBQ0UsVUFBQTtHZHUyREQ7RWN4MkREO0lBQ0UsbUJBQUE7R2QwMkREO0VjMzJERDtJQUNFLG1CQUFBO0dkNjJERDtFYzkyREQ7SUFDRSxVQUFBO0dkZzNERDtFY2ozREQ7SUFDRSxtQkFBQTtHZG0zREQ7RWNwM0REO0lBQ0UsbUJBQUE7R2RzM0REO0VjdjNERDtJQUNFLFVBQUE7R2R5M0REO0VjMTNERDtJQUNFLG1CQUFBO0dkNDNERDtFYzczREQ7SUFDRSxrQkFBQTtHZCszREQ7RWMzM0REO0lBQ0UsV0FBQTtHZDYzREQ7RWMvMkREO0lBQ0Usa0JBQUE7R2RpM0REO0VjbDNERDtJQUNFLDBCQUFBO0dkbzNERDtFY3IzREQ7SUFDRSwwQkFBQTtHZHUzREQ7RWN4M0REO0lBQ0UsaUJBQUE7R2QwM0REO0VjMzNERDtJQUNFLDBCQUFBO0dkNjNERDtFYzkzREQ7SUFDRSwwQkFBQTtHZGc0REQ7RWNqNEREO0lBQ0UsaUJBQUE7R2RtNEREO0VjcDRERDtJQUNFLDBCQUFBO0dkczRERDtFY3Y0REQ7SUFDRSwwQkFBQTtHZHk0REQ7RWMxNEREO0lBQ0UsaUJBQUE7R2Q0NEREO0VjNzRERDtJQUNFLDBCQUFBO0dkKzRERDtFY2g1REQ7SUFDRSx5QkFBQTtHZGs1REQ7RWNuNUREO0lBQ0UsZ0JBQUE7R2RxNUREO0NBQ0Y7QVk3NEREO0VFM0NJO0lBQ0UsWUFBQTtHZDI3REg7RWNwN0REO0lBQ0UsWUFBQTtHZHM3REQ7RWN2N0REO0lBQ0Usb0JBQUE7R2R5N0REO0VjMTdERDtJQUNFLG9CQUFBO0dkNDdERDtFYzc3REQ7SUFDRSxXQUFBO0dkKzdERDtFY2g4REQ7SUFDRSxvQkFBQTtHZGs4REQ7RWNuOEREO0lBQ0Usb0JBQUE7R2RxOEREO0VjdDhERDtJQUNFLFdBQUE7R2R3OEREO0VjejhERDtJQUNFLG9CQUFBO0dkMjhERDtFYzU4REQ7SUFDRSxvQkFBQTtHZDg4REQ7RWMvOEREO0lBQ0UsV0FBQTtHZGk5REQ7RWNsOUREO0lBQ0Usb0JBQUE7R2RvOUREO0VjcjlERDtJQUNFLG1CQUFBO0dkdTlERDtFY3o4REQ7SUFDRSxZQUFBO0dkMjhERDtFYzU4REQ7SUFDRSxvQkFBQTtHZDg4REQ7RWMvOEREO0lBQ0Usb0JBQUE7R2RpOUREO0VjbDlERDtJQUNFLFdBQUE7R2RvOUREO0VjcjlERDtJQUNFLG9CQUFBO0dkdTlERDtFY3g5REQ7SUFDRSxvQkFBQTtHZDA5REQ7RWMzOUREO0lBQ0UsV0FBQTtHZDY5REQ7RWM5OUREO0lBQ0Usb0JBQUE7R2RnK0REO0VjaitERDtJQUNFLG9CQUFBO0dkbStERDtFY3ArREQ7SUFDRSxXQUFBO0dkcytERDtFY3YrREQ7SUFDRSxvQkFBQTtHZHkrREQ7RWMxK0REO0lBQ0UsbUJBQUE7R2Q0K0REO0VjeCtERDtJQUNFLFlBQUE7R2QwK0REO0VjMS9ERDtJQUNFLFdBQUE7R2Q0L0REO0VjNy9ERDtJQUNFLG1CQUFBO0dkKy9ERDtFY2hnRUQ7SUFDRSxtQkFBQTtHZGtnRUQ7RWNuZ0VEO0lBQ0UsVUFBQTtHZHFnRUQ7RWN0Z0VEO0lBQ0UsbUJBQUE7R2R3Z0VEO0VjemdFRDtJQUNFLG1CQUFBO0dkMmdFRDtFYzVnRUQ7SUFDRSxVQUFBO0dkOGdFRDtFYy9nRUQ7SUFDRSxtQkFBQTtHZGloRUQ7RWNsaEVEO0lBQ0UsbUJBQUE7R2RvaEVEO0VjcmhFRDtJQUNFLFVBQUE7R2R1aEVEO0VjeGhFRDtJQUNFLG1CQUFBO0dkMGhFRDtFYzNoRUQ7SUFDRSxrQkFBQTtHZDZoRUQ7RWN6aEVEO0lBQ0UsV0FBQTtHZDJoRUQ7RWM3Z0VEO0lBQ0Usa0JBQUE7R2QrZ0VEO0VjaGhFRDtJQUNFLDBCQUFBO0dka2hFRDtFY25oRUQ7SUFDRSwwQkFBQTtHZHFoRUQ7RWN0aEVEO0lBQ0UsaUJBQUE7R2R3aEVEO0VjemhF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QTtFQUNBLGVBQUE7RUFDQSxzQkFBQTtDdkp5eVdMO0F1Sjd5V0c7RUFNSSwwQkFBQTtFQUNBLGFBQUE7Q3ZKMHlXUDtBd0o3MFdEO0VBQ0UsaUJBQUE7Q3hKKzBXRDtBd0poMVdEO0VBSUksYUFBQTtFQUNBLFlBQUE7Q3hKKzBXSDtBd0pwMVdEO0VBU0ksa0JBQUE7Q3hKODBXSDtBd0p2MVdEO0VBWU0scUJBQUE7RUFBQSxjQUFBO0VBQ0EsdUJBQUE7TUFBQSxvQkFBQTtFQUNBLG1CQUFBO01BQUEsMEJBQUE7Q3hKODBXTDtBd0o1MVdEO0VBZ0JrQixpQkFBQTtDeEorMFdqQjtBd0ovMVdEO0VBb0JVLHFCQUFBO0VBQUEsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsdUJBQUE7Q3hKODBXVDtBd0pwMldEO0VBd0JZLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0N4SiswV1g7QXdKejJXRDtFQStCYyxpQkFBQTtDeEo2MFdiO0F5SjUyV0Q7RUFDRSxpQkFBQTtDeko4MldEO0F5Si8yV0Q7RUFJSSxhQUFBO0VBQ0EsWUFBQTtDeko4MldIO0F5SjMyV0M7RUFDRSwwQkFBQTtDeko2MldIO0F5SjUyV0c7RUFDRSxpQkFBQTtFQUNBLGlCQUFBO0N6SjgyV0w7QXlKbDNXQztFQU9pQixhQUFBO0N6SjgyV2xCO0EwSjczV0Q7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7QzFKKzNXRDtBMEpqNFdEO0VBSUksY0FBQTtFQUNBLGdCQUFBO0MxSmc0V0g7QTBKLzNXRztFQUNFLG9CQUFBO0MxSmk0V0w7QTBKLzNXRztFQUNFLG1CQUFBO0MxSmk0V0w7QUFDRCxlQUFlIiwiZmlsZSI6ImltcGFjLWFuZ3VsYXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbioqIEFsbCBAaW1wb3J0J3Mgc2hvdWxkIGxpdmUgaW4gdGhpcyBmaWxlIVxuKi9cbi8qKlxuICogIERvIG5vdCByZW1vdmUgdGhpcyBjb21tZW50cyBiZWxsb3cuIEl0J3MgdGhlIG1hcmtlcnMgdXNlZCBieSB3aXJlZGVwIHRvIGluamVjdFxuICogIGxlc3MgZGVwZW5kZW5jaWVzIHdoZW4gZGVmaW5lZCBpbiB0aGUgYm93ZXIuanNvbiBvZiB5b3VyIGRlcGVuZGVuY2llc1xuICovXG4vKiFcbiAqIEJvb3RzdHJhcCB2My4zLjcgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKVxuICogQ29weXJpZ2h0IDIwMTEtMjAxNiBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbn1cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuZW90Jyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCcuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnN2ZyNnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXInKSBmb3JtYXQoJ3N2ZycpO1xufVxuLmdseXBoaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuLmdseXBoaWNvbi1hc3RlcmlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDAyYVwiO1xufVxuLmdseXBoaWNvbi1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMDJiXCI7XG59XG4uZ2x5cGhpY29uLWV1cm86YmVmb3JlLFxuLmdseXBoaWNvbi1ldXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwYWNcIjtcbn1cbi5nbHlwaGljb24tbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIyMTJcIjtcbn1cbi5nbHlwaGljb24tY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI2MDFcIjtcbn1cbi5nbHlwaGljb24tZW52ZWxvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI3MDlcIjtcbn1cbi5nbHlwaGljb24tcGVuY2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNzBmXCI7XG59XG4uZ2x5cGhpY29uLWdsYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDAxXCI7XG59XG4uZ2x5cGhpY29uLW11c2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDAyXCI7XG59XG4uZ2x5cGhpY29uLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwM1wiO1xufVxuLmdseXBoaWNvbi1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwNVwiO1xufVxuLmdseXBoaWNvbi1zdGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA2XCI7XG59XG4uZ2x5cGhpY29uLXN0YXItZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDdcIjtcbn1cbi5nbHlwaGljb24tdXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwOFwiO1xufVxuLmdseXBoaWNvbi1maWxtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA5XCI7XG59XG4uZ2x5cGhpY29uLXRoLWxhcmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEwXCI7XG59XG4uZ2x5cGhpY29uLXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDExXCI7XG59XG4uZ2x5cGhpY29uLXRoLWxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTJcIjtcbn1cbi5nbHlwaGljb24tb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTNcIjtcbn1cbi5nbHlwaGljb24tcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE0XCI7XG59XG4uZ2x5cGhpY29uLXpvb20taW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTVcIjtcbn1cbi5nbHlwaGljb24tem9vbS1vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTZcIjtcbn1cbi5nbHlwaGljb24tb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE3XCI7XG59XG4uZ2x5cGhpY29uLXNpZ25hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxOFwiO1xufVxuLmdseXBoaWNvbi1jb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTlcIjtcbn1cbi5nbHlwaGljb24tdHJhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjBcIjtcbn1cbi5nbHlwaGljb24taG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyMVwiO1xufVxuLmdseXBoaWNvbi1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIyXCI7XG59XG4uZ2x5cGhpY29uLXRpbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjNcIjtcbn1cbi5nbHlwaGljb24tcm9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyNFwiO1xufVxuLmdseXBoaWNvbi1kb3dubG9hZC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjVcIjtcbn1cbi5nbHlwaGljb24tZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjZcIjtcbn1cbi5nbHlwaGljb24tdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI3XCI7XG59XG4uZ2x5cGhpY29uLWluYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI4XCI7XG59XG4uZ2x5cGhpY29uLXBsYXktY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI5XCI7XG59XG4uZ2x5cGhpY29uLXJlcGVhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMFwiO1xufVxuLmdseXBoaWNvbi1yZWZyZXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMxXCI7XG59XG4uZ2x5cGhpY29uLWxpc3QtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMyXCI7XG59XG4uZ2x5cGhpY29uLWxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzNcIjtcbn1cbi5nbHlwaGljb24tZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNFwiO1xufVxuLmdseXBoaWNvbi1oZWFkcGhvbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM1XCI7XG59XG4uZ2x5cGhpY29uLXZvbHVtZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzZcIjtcbn1cbi5nbHlwaGljb24tdm9sdW1lLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzdcIjtcbn1cbi5nbHlwaGljb24tdm9sdW1lLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM4XCI7XG59XG4uZ2x5cGhpY29uLXFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzOVwiO1xufVxuLmdseXBoaWNvbi1iYXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQwXCI7XG59XG4uZ2x5cGhpY29uLXRhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MVwiO1xufVxuLmdseXBoaWNvbi10YWdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQyXCI7XG59XG4uZ2x5cGhpY29uLWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDNcIjtcbn1cbi5nbHlwaGljb24tYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDRcIjtcbn1cbi5nbHlwaGljb24tcHJpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDVcIjtcbn1cbi5nbHlwaGljb24tY2FtZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ2XCI7XG59XG4uZ2x5cGhpY29uLWZvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDdcIjtcbn1cbi5nbHlwaGljb24tYm9sZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0OFwiO1xufVxuLmdseXBoaWNvbi1pdGFsaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDlcIjtcbn1cbi5nbHlwaGljb24tdGV4dC1oZWlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTBcIjtcbn1cbi5nbHlwaGljb24tdGV4dC13aWR0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1MVwiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUyXCI7XG59XG4uZ2x5cGhpY29uLWFsaWduLWNlbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1M1wiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1NFwiO1xufVxuLmdseXBoaWNvbi1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU1XCI7XG59XG4uZ2x5cGhpY29uLWxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTZcIjtcbn1cbi5nbHlwaGljb24taW5kZW50LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTdcIjtcbn1cbi5nbHlwaGljb24taW5kZW50LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU4XCI7XG59XG4uZ2x5cGhpY29uLWZhY2V0aW1lLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU5XCI7XG59XG4uZ2x5cGhpY29uLXBpY3R1cmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjBcIjtcbn1cbi5nbHlwaGljb24tbWFwLW1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2MlwiO1xufVxuLmdseXBoaWNvbi1hZGp1c3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjNcIjtcbn1cbi5nbHlwaGljb24tdGludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NFwiO1xufVxuLmdseXBoaWNvbi1lZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY1XCI7XG59XG4uZ2x5cGhpY29uLXNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY2XCI7XG59XG4uZ2x5cGhpY29uLWNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY3XCI7XG59XG4uZ2x5cGhpY29uLW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjhcIjtcbn1cbi5nbHlwaGljb24tc3RlcC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2OVwiO1xufVxuLmdseXBoaWNvbi1mYXN0LWJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcwXCI7XG59XG4uZ2x5cGhpY29uLWJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcxXCI7XG59XG4uZ2x5cGhpY29uLXBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzJcIjtcbn1cbi5nbHlwaGljb24tcGF1c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzNcIjtcbn1cbi5nbHlwaGljb24tc3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NFwiO1xufVxuLmdseXBoaWNvbi1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc1XCI7XG59XG4uZ2x5cGhpY29uLWZhc3QtZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NlwiO1xufVxuLmdseXBoaWNvbi1zdGVwLWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzdcIjtcbn1cbi5nbHlwaGljb24tZWplY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzhcIjtcbn1cbi5nbHlwaGljb24tY2hldnJvbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc5XCI7XG59XG4uZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODBcIjtcbn1cbi5nbHlwaGljb24tcGx1cy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgxXCI7XG59XG4uZ2x5cGhpY29uLW1pbnVzLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODJcIjtcbn1cbi5nbHlwaGljb24tcmVtb3ZlLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODNcIjtcbn1cbi5nbHlwaGljb24tb2stc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NFwiO1xufVxuLmdseXBoaWNvbi1xdWVzdGlvbi1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg1XCI7XG59XG4uZ2x5cGhpY29uLWluZm8tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NlwiO1xufVxuLmdseXBoaWNvbi1zY3JlZW5zaG90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg3XCI7XG59XG4uZ2x5cGhpY29uLXJlbW92ZS1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODhcIjtcbn1cbi5nbHlwaGljb24tb2stY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg5XCI7XG59XG4uZ2x5cGhpY29uLWJhbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTBcIjtcbn1cbi5nbHlwaGljb24tYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5MVwiO1xufVxuLmdseXBoaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5MlwiO1xufVxuLmdseXBoaWNvbi1hcnJvdy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5M1wiO1xufVxuLmdseXBoaWNvbi1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDk0XCI7XG59XG4uZ2x5cGhpY29uLXNoYXJlLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NVwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NlwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtc21hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTdcIjtcbn1cbi5nbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwMVwiO1xufVxuLmdseXBoaWNvbi1naWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTAyXCI7XG59XG4uZ2x5cGhpY29uLWxlYWY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDNcIjtcbn1cbi5nbHlwaGljb24tZmlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNFwiO1xufVxuLmdseXBoaWNvbi1leWUtb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNVwiO1xufVxuLmdseXBoaWNvbi1leWUtY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDZcIjtcbn1cbi5nbHlwaGljb24td2FybmluZy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA3XCI7XG59XG4uZ2x5cGhpY29uLXBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA4XCI7XG59XG4uZ2x5cGhpY29uLWNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA5XCI7XG59XG4uZ2x5cGhpY29uLXJhbmRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMFwiO1xufVxuLmdseXBoaWNvbi1jb21tZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTExXCI7XG59XG4uZ2x5cGhpY29uLW1hZ25ldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMlwiO1xufVxuLmdseXBoaWNvbi1jaGV2cm9uLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTEzXCI7XG59XG4uZ2x5cGhpY29uLWNoZXZyb24tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNFwiO1xufVxuLmdseXBoaWNvbi1yZXR3ZWV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE1XCI7XG59XG4uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTZcIjtcbn1cbi5nbHlwaGljb24tZm9sZGVyLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE3XCI7XG59XG4uZ2x5cGhpY29uLWZvbGRlci1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE4XCI7XG59XG4uZ2x5cGhpY29uLXJlc2l6ZS12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExOVwiO1xufVxuLmdseXBoaWNvbi1yZXNpemUtaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyMFwiO1xufVxuLmdseXBoaWNvbi1oZGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjFcIjtcbn1cbi5nbHlwaGljb24tYnVsbGhvcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjJcIjtcbn1cbi5nbHlwaGljb24tYmVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyM1wiO1xufVxuLmdseXBoaWNvbi1jZXJ0aWZpY2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyNFwiO1xufVxuLmdseXBoaWNvbi10aHVtYnMtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjVcIjtcbn1cbi5nbHlwaGljb24tdGh1bWJzLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjZcIjtcbn1cbi5nbHlwaGljb24taGFuZC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyN1wiO1xufVxuLmdseXBoaWNvbi1oYW5kLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjhcIjtcbn1cbi5nbHlwaGljb24taGFuZC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyOVwiO1xufVxuLmdseXBoaWNvbi1oYW5kLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzBcIjtcbn1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMxXCI7XG59XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMyXCI7XG59XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzM1wiO1xufVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNFwiO1xufVxuLmdseXBoaWNvbi1nbG9iZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNVwiO1xufVxuLmdseXBoaWNvbi13cmVuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzZcIjtcbn1cbi5nbHlwaGljb24tdGFza3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzdcIjtcbn1cbi5nbHlwaGljb24tZmlsdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM4XCI7XG59XG4uZ2x5cGhpY29uLWJyaWVmY2FzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzOVwiO1xufVxuLmdseXBoaWNvbi1mdWxsc2NyZWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQwXCI7XG59XG4uZ2x5cGhpY29uLWRhc2hib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MVwiO1xufVxuLmdseXBoaWNvbi1wYXBlcmNsaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDJcIjtcbn1cbi5nbHlwaGljb24taGVhcnQtZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDNcIjtcbn1cbi5nbHlwaGljb24tbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NFwiO1xufVxuLmdseXBoaWNvbi1waG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NVwiO1xufVxuLmdseXBoaWNvbi1wdXNocGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ2XCI7XG59XG4uZ2x5cGhpY29uLXVzZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0OFwiO1xufVxuLmdseXBoaWNvbi1nYnA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDlcIjtcbn1cbi5nbHlwaGljb24tc29ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MFwiO1xufVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUxXCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUyXCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTNcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlci1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTRcIjtcbn1cbi5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU1XCI7XG59XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTZcIjtcbn1cbi5nbHlwaGljb24tdW5jaGVja2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU3XCI7XG59XG4uZ2x5cGhpY29uLWV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1OFwiO1xufVxuLmdseXBoaWNvbi1jb2xsYXBzZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU5XCI7XG59XG4uZ2x5cGhpY29uLWNvbGxhcHNlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYwXCI7XG59XG4uZ2x5cGhpY29uLWxvZy1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MVwiO1xufVxuLmdseXBoaWNvbi1mbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MlwiO1xufVxuLmdseXBoaWNvbi1sb2ctb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYzXCI7XG59XG4uZ2x5cGhpY29uLW5ldy13aW5kb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjRcIjtcbn1cbi5nbHlwaGljb24tcmVjb3JkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY1XCI7XG59XG4uZ2x5cGhpY29uLXNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjZcIjtcbn1cbi5nbHlwaGljb24tb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2N1wiO1xufVxuLmdseXBoaWNvbi1zYXZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2OFwiO1xufVxuLmdseXBoaWNvbi1pbXBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjlcIjtcbn1cbi5nbHlwaGljb24tZXhwb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcwXCI7XG59XG4uZ2x5cGhpY29uLXNlbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzFcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LWRpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzJcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTczXCI7XG59XG4uZ2x5cGhpY29uLWZsb3BweS1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzRcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzVcIjtcbn1cbi5nbHlwaGljb24tZmxvcHB5LW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzZcIjtcbn1cbi5nbHlwaGljb24tY3JlZGl0LWNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzdcIjtcbn1cbi5nbHlwaGljb24tdHJhbnNmZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzhcIjtcbn1cbi5nbHlwaGljb24tY3V0bGVyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3OVwiO1xufVxuLmdseXBoaWNvbi1oZWFkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODBcIjtcbn1cbi5nbHlwaGljb24tY29tcHJlc3NlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4MVwiO1xufVxuLmdseXBoaWNvbi1lYXJwaG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4MlwiO1xufVxuLmdseXBoaWNvbi1waG9uZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODNcIjtcbn1cbi5nbHlwaGljb24tdG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODRcIjtcbn1cbi5nbHlwaGljb24tc3RhdHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODVcIjtcbn1cbi5nbHlwaGljb24tc2QtdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODZcIjtcbn1cbi5nbHlwaGljb24taGQtdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODdcIjtcbn1cbi5nbHlwaGljb24tc3VidGl0bGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg4XCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4OVwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC1kb2xieTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MFwiO1xufVxuLmdseXBoaWNvbi1zb3VuZC01LTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTFcIjtcbn1cbi5nbHlwaGljb24tc291bmQtNi0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTkyXCI7XG59XG4uZ2x5cGhpY29uLXNvdW5kLTctMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5M1wiO1xufVxuLmdseXBoaWNvbi1jb3B5cmlnaHQtbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5NFwiO1xufVxuLmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5NVwiO1xufVxuLmdseXBoaWNvbi1jbG91ZC1kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5N1wiO1xufVxuLmdseXBoaWNvbi1jbG91ZC11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOThcIjtcbn1cbi5nbHlwaGljb24tdHJlZS1jb25pZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk5XCI7XG59XG4uZ2x5cGhpY29uLXRyZWUtZGVjaWR1b3VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAwXCI7XG59XG4uZ2x5cGhpY29uLWNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAxXCI7XG59XG4uZ2x5cGhpY29uLXNhdmUtZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMlwiO1xufVxuLmdseXBoaWNvbi1vcGVuLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDNcIjtcbn1cbi5nbHlwaGljb24tbGV2ZWwtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDRcIjtcbn1cbi5nbHlwaGljb24tY29weTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNVwiO1xufVxuLmdseXBoaWNvbi1wYXN0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNlwiO1xufVxuLmdseXBoaWNvbi1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwOVwiO1xufVxuLmdseXBoaWNvbi1lcXVhbGl6ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTBcIjtcbn1cbi5nbHlwaGljb24ta2luZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxMVwiO1xufVxuLmdseXBoaWNvbi1xdWVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxMlwiO1xufVxuLmdseXBoaWNvbi1wYXduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEzXCI7XG59XG4uZ2x5cGhpY29uLWJpc2hvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNFwiO1xufVxuLmdseXBoaWNvbi1rbmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTVcIjtcbn1cbi5nbHlwaGljb24tYmFieS1mb3JtdWxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE2XCI7XG59XG4uZ2x5cGhpY29uLXRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI2ZmFcIjtcbn1cbi5nbHlwaGljb24tYmxhY2tib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxOFwiO1xufVxuLmdseXBoaWNvbi1iZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTlcIjtcbn1cbi5nbHlwaGljb24tYXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZmZcIjtcbn1cbi5nbHlwaGljb24tZXJhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjFcIjtcbn1cbi5nbHlwaGljb24taG91cmdsYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMzFiXCI7XG59XG4uZ2x5cGhpY29uLWxhbXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjNcIjtcbn1cbi5nbHlwaGljb24tZHVwbGljYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI0XCI7XG59XG4uZ2x5cGhpY29uLXBpZ2d5LWJhbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjVcIjtcbn1cbi5nbHlwaGljb24tc2Npc3NvcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjZcIjtcbn1cbi5nbHlwaGljb24tYml0Y29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyN1wiO1xufVxuLmdseXBoaWNvbi1idGM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjdcIjtcbn1cbi5nbHlwaGljb24teGJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG4uZ2x5cGhpY29uLXllbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDBhNVwiO1xufVxuLmdseXBoaWNvbi1qcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwYTVcIjtcbn1cbi5nbHlwaGljb24tcnVibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwYmRcIjtcbn1cbi5nbHlwaGljb24tcnViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGJkXCI7XG59XG4uZ2x5cGhpY29uLXNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjMwXCI7XG59XG4uZ2x5cGhpY29uLWljZS1sb2xseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMVwiO1xufVxuLmdseXBoaWNvbi1pY2UtbG9sbHktdGFzdGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjMyXCI7XG59XG4uZ2x5cGhpY29uLWVkdWNhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzM1wiO1xufVxuLmdseXBoaWNvbi1vcHRpb24taG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzNFwiO1xufVxuLmdseXBoaWNvbi1vcHRpb24tdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzVcIjtcbn1cbi5nbHlwaGljb24tbWVudS1oYW1idXJnZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzZcIjtcbn1cbi5nbHlwaGljb24tbW9kYWwtd2luZG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM3XCI7XG59XG4uZ2x5cGhpY29uLW9pbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzOFwiO1xufVxuLmdseXBoaWNvbi1ncmFpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzOVwiO1xufVxuLmdseXBoaWNvbi1zdW5nbGFzc2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQwXCI7XG59XG4uZ2x5cGhpY29uLXRleHQtc2l6ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MVwiO1xufVxuLmdseXBoaWNvbi10ZXh0LWNvbG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQyXCI7XG59XG4uZ2x5cGhpY29uLXRleHQtYmFja2dyb3VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0M1wiO1xufVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ0XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDVcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDZcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDdcIjtcbn1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ4XCI7XG59XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0OVwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MFwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUxXCI7XG59XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWJvdHRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MlwiO1xufVxuLmdseXBoaWNvbi10cmlhbmdsZS10b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTNcIjtcbn1cbi5nbHlwaGljb24tY29uc29sZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NFwiO1xufVxuLmdseXBoaWNvbi1zdXBlcnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NVwiO1xufVxuLmdseXBoaWNvbi1zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTZcIjtcbn1cbi5nbHlwaGljb24tbWVudS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU3XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNThcIjtcbn1cbi5nbHlwaGljb24tbWVudS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU5XCI7XG59XG4uZ2x5cGhpY29uLW1lbnUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNjBcIjtcbn1cbioge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuYSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5hOmhvdmVyLFxuYTpmb2N1cyB7XG4gIGNvbG9yOiAjMDA5Y2EzO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5pbWctcmVzcG9uc2l2ZSxcbi50aHVtYm5haWwgPiBpbWcsXG4udGh1bWJuYWlsIGEgPiBpbWcsXG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGltZyxcbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtID4gYSA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5pbWctcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4uaW1nLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbmhyIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZWVlZTtcbn1cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG4uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLFxuLnNyLW9ubHktZm9jdXNhYmxlOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxuLmgxLFxuLmgyLFxuLmgzLFxuLmg0LFxuLmg1LFxuLmg2IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuaDEgc21hbGwsXG5oMiBzbWFsbCxcbmgzIHNtYWxsLFxuaDQgc21hbGwsXG5oNSBzbWFsbCxcbmg2IHNtYWxsLFxuLmgxIHNtYWxsLFxuLmgyIHNtYWxsLFxuLmgzIHNtYWxsLFxuLmg0IHNtYWxsLFxuLmg1IHNtYWxsLFxuLmg2IHNtYWxsLFxuaDEgLnNtYWxsLFxuaDIgLnNtYWxsLFxuaDMgLnNtYWxsLFxuaDQgLnNtYWxsLFxuaDUgLnNtYWxsLFxuaDYgLnNtYWxsLFxuLmgxIC5zbWFsbCxcbi5oMiAuc21hbGwsXG4uaDMgLnNtYWxsLFxuLmg0IC5zbWFsbCxcbi5oNSAuc21hbGwsXG4uaDYgLnNtYWxsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuaDEsXG4uaDEsXG5oMixcbi5oMixcbmgzLFxuLmgzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbmgxIHNtYWxsLFxuLmgxIHNtYWxsLFxuaDIgc21hbGwsXG4uaDIgc21hbGwsXG5oMyBzbWFsbCxcbi5oMyBzbWFsbCxcbmgxIC5zbWFsbCxcbi5oMSAuc21hbGwsXG5oMiAuc21hbGwsXG4uaDIgLnNtYWxsLFxuaDMgLnNtYWxsLFxuLmgzIC5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogNjUlO1xufVxuaDQsXG4uaDQsXG5oNSxcbi5oNSxcbmg2LFxuLmg2IHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbmg0IHNtYWxsLFxuLmg0IHNtYWxsLFxuaDUgc21hbGwsXG4uaDUgc21hbGwsXG5oNiBzbWFsbCxcbi5oNiBzbWFsbCxcbmg0IC5zbWFsbCxcbi5oNCAuc21hbGwsXG5oNSAuc21hbGwsXG4uaDUgLnNtYWxsLFxuaDYgLnNtYWxsLFxuLmg2IC5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xufVxuaDEsXG4uaDEge1xuICBmb250LXNpemU6IDM2cHg7XG59XG5oMixcbi5oMiB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbn1cbmgzLFxuLmgzIHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuaDQsXG4uaDQge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5oNSxcbi5oNSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbmg2LFxuLmg2IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxucCB7XG4gIG1hcmdpbjogMCAwIDEwcHg7XG59XG4ubGVhZCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICB9XG59XG5zbWFsbCxcbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODUlO1xufVxubWFyayxcbi5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgcGFkZGluZzogLjJlbTtcbn1cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50ZXh0LWp1c3RpZnkge1xuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuLnRleHQtbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG59XG4udGV4dC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLnRleHQtY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogIzAwZTVmMDtcbn1cbmEudGV4dC1wcmltYXJ5OmhvdmVyLFxuYS50ZXh0LXByaW1hcnk6Zm9jdXMge1xuICBjb2xvcjogIzAwYjRiZDtcbn1cbi50ZXh0LXN1Y2Nlc3Mge1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbmEudGV4dC1zdWNjZXNzOmhvdmVyLFxuYS50ZXh0LXN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzJiNTQyYztcbn1cbi50ZXh0LWluZm8ge1xuICBjb2xvcjogIzMxNzA4Zjtcbn1cbmEudGV4dC1pbmZvOmhvdmVyLFxuYS50ZXh0LWluZm86Zm9jdXMge1xuICBjb2xvcjogIzI0NTI2OTtcbn1cbi50ZXh0LXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbmEudGV4dC13YXJuaW5nOmhvdmVyLFxuYS50ZXh0LXdhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogIzY2NTEyYztcbn1cbi50ZXh0LWRhbmdlciB7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuYS50ZXh0LWRhbmdlcjpob3ZlcixcbmEudGV4dC1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogIzg0MzUzNDtcbn1cbi5iZy1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG5hLmJnLXByaW1hcnk6aG92ZXIsXG5hLmJnLXByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xufVxuLmJnLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuYS5iZy1zdWNjZXNzOmhvdmVyLFxuYS5iZy1zdWNjZXNzOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxZTJiMztcbn1cbi5iZy1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cbmEuYmctaW5mbzpob3ZlcixcbmEuYmctaW5mbzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhZmQ5ZWU7XG59XG4uYmctd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG59XG5hLmJnLXdhcm5pbmc6aG92ZXIsXG5hLmJnLXdhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdlY2I1O1xufVxuLmJnLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG5hLmJnLWRhbmdlcjpob3ZlcixcbmEuYmctZGFuZ2VyOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0YjliOTtcbn1cbi5wYWdlLWhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiA5cHg7XG4gIG1hcmdpbjogNDBweCAwIDIwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlZWVlO1xufVxudWwsXG5vbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG51bCB1bCxcbm9sIHVsLFxudWwgb2wsXG5vbCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ubGlzdC11bnN0eWxlZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5saXN0LWlubGluZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG59XG4ubGlzdC1pbmxpbmUgPiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbn1cbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbmR0LFxuZGQge1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mztcbn1cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5kZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5kbC1ob3Jpem9udGFsIGR0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5kbC1ob3Jpem9udGFsIGRkIHtcbiAgICBtYXJnaW4tbGVmdDogMTgwcHg7XG4gIH1cbn1cbmFiYnJbdGl0bGVdLFxuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNzc3Nzc3O1xufVxuLmluaXRpYWxpc20ge1xuICBmb250LXNpemU6IDkwJTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG4gIGZvbnQtc2l6ZTogMTcuNXB4O1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNlZWVlZWU7XG59XG5ibG9ja3F1b3RlIHA6bGFzdC1jaGlsZCxcbmJsb2NrcXVvdGUgdWw6bGFzdC1jaGlsZCxcbmJsb2NrcXVvdGUgb2w6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5ibG9ja3F1b3RlIGZvb3RlcixcbmJsb2NrcXVvdGUgc21hbGwsXG5ibG9ja3F1b3RlIC5zbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuYmxvY2txdW90ZSBmb290ZXI6YmVmb3JlLFxuYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUsXG5ibG9ja3F1b3RlIC5zbWFsbDpiZWZvcmUge1xuICBjb250ZW50OiAnXFwyMDE0IFxcMDBBMCc7XG59XG4uYmxvY2txdW90ZS1yZXZlcnNlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAjZWVlZWVlO1xuICBib3JkZXItbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYmxvY2txdW90ZS1yZXZlcnNlIGZvb3RlcjpiZWZvcmUsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgZm9vdGVyOmJlZm9yZSxcbi5ibG9ja3F1b3RlLXJldmVyc2Ugc21hbGw6YmVmb3JlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHNtYWxsOmJlZm9yZSxcbi5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCAuc21hbGw6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG59XG4uYmxvY2txdW90ZS1yZXZlcnNlIGZvb3RlcjphZnRlcixcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBmb290ZXI6YWZ0ZXIsXG4uYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmFmdGVyLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHNtYWxsOmFmdGVyLFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSAuc21hbGw6YWZ0ZXIsXG5ibG9ja3F1b3RlLnB1bGwtcmlnaHQgLnNtYWxsOmFmdGVyIHtcbiAgY29udGVudDogJ1xcMDBBMCBcXDIwMTQnO1xufVxuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG59XG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG59XG5jb2RlIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjYzcyNTRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmMmY0O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5rYmQge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbmtiZCBrYmQge1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3gtc2hhZG93OiBub25lO1xufVxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDkuNXB4O1xuICBtYXJnaW46IDAgMCAxMHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbnByZSBjb2RlIHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uY29udGFpbmVyIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA3NTBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA5NzBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTE3MHB4O1xuICB9XG59XG4uY29udGFpbmVyLWZsdWlkIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLnJvdyB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbn1cbi5jb2wteHMtMSwgLmNvbC1zbS0xLCAuY29sLW1kLTEsIC5jb2wtbGctMSwgLmNvbC14cy0yLCAuY29sLXNtLTIsIC5jb2wtbWQtMiwgLmNvbC1sZy0yLCAuY29sLXhzLTMsIC5jb2wtc20tMywgLmNvbC1tZC0zLCAuY29sLWxnLTMsIC5jb2wteHMtNCwgLmNvbC1zbS00LCAuY29sLW1kLTQsIC5jb2wtbGctNCwgLmNvbC14cy01LCAuY29sLXNtLTUsIC5jb2wtbWQtNSwgLmNvbC1sZy01LCAuY29sLXhzLTYsIC5jb2wtc20tNiwgLmNvbC1tZC02LCAuY29sLWxnLTYsIC5jb2wteHMtNywgLmNvbC1zbS03LCAuY29sLW1kLTcsIC5jb2wtbGctNywgLmNvbC14cy04LCAuY29sLXNtLTgsIC5jb2wtbWQtOCwgLmNvbC1sZy04LCAuY29sLXhzLTksIC5jb2wtc20tOSwgLmNvbC1tZC05LCAuY29sLWxnLTksIC5jb2wteHMtMTAsIC5jb2wtc20tMTAsIC5jb2wtbWQtMTAsIC5jb2wtbGctMTAsIC5jb2wteHMtMTEsIC5jb2wtc20tMTEsIC5jb2wtbWQtMTEsIC5jb2wtbGctMTEsIC5jb2wteHMtMTIsIC5jb2wtc20tMTIsIC5jb2wtbWQtMTIsIC5jb2wtbGctMTIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuLmNvbC14cy0xLCAuY29sLXhzLTIsIC5jb2wteHMtMywgLmNvbC14cy00LCAuY29sLXhzLTUsIC5jb2wteHMtNiwgLmNvbC14cy03LCAuY29sLXhzLTgsIC5jb2wteHMtOSwgLmNvbC14cy0xMCwgLmNvbC14cy0xMSwgLmNvbC14cy0xMiB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmNvbC14cy0xMiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNvbC14cy0xMSB7XG4gIHdpZHRoOiA5MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtOSB7XG4gIHdpZHRoOiA3NSU7XG59XG4uY29sLXhzLTgge1xuICB3aWR0aDogNjYuNjY2NjY2NjclO1xufVxuLmNvbC14cy03IHtcbiAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtNiB7XG4gIHdpZHRoOiA1MCU7XG59XG4uY29sLXhzLTUge1xuICB3aWR0aDogNDEuNjY2NjY2NjclO1xufVxuLmNvbC14cy00IHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtMyB7XG4gIHdpZHRoOiAyNSU7XG59XG4uY29sLXhzLTIge1xuICB3aWR0aDogMTYuNjY2NjY2NjclO1xufVxuLmNvbC14cy0xIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdWxsLTEyIHtcbiAgcmlnaHQ6IDEwMCU7XG59XG4uY29sLXhzLXB1bGwtMTEge1xuICByaWdodDogOTEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdWxsLTEwIHtcbiAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC05IHtcbiAgcmlnaHQ6IDc1JTtcbn1cbi5jb2wteHMtcHVsbC04IHtcbiAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC03IHtcbiAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC02IHtcbiAgcmlnaHQ6IDUwJTtcbn1cbi5jb2wteHMtcHVsbC01IHtcbiAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC00IHtcbiAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVsbC0zIHtcbiAgcmlnaHQ6IDI1JTtcbn1cbi5jb2wteHMtcHVsbC0yIHtcbiAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbn1cbi5jb2wteHMtcHVsbC0xIHtcbiAgcmlnaHQ6IDguMzMzMzMzMzMlO1xufVxuLmNvbC14cy1wdWxsLTAge1xuICByaWdodDogYXV0bztcbn1cbi5jb2wteHMtcHVzaC0xMiB7XG4gIGxlZnQ6IDEwMCU7XG59XG4uY29sLXhzLXB1c2gtMTEge1xuICBsZWZ0OiA5MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLXB1c2gtMTAge1xuICBsZWZ0OiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtOSB7XG4gIGxlZnQ6IDc1JTtcbn1cbi5jb2wteHMtcHVzaC04IHtcbiAgbGVmdDogNjYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTcge1xuICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtNiB7XG4gIGxlZnQ6IDUwJTtcbn1cbi5jb2wteHMtcHVzaC01IHtcbiAgbGVmdDogNDEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTQge1xuICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLXB1c2gtMyB7XG4gIGxlZnQ6IDI1JTtcbn1cbi5jb2wteHMtcHVzaC0yIHtcbiAgbGVmdDogMTYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1wdXNoLTEge1xuICBsZWZ0OiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtcHVzaC0wIHtcbiAgbGVmdDogYXV0bztcbn1cbi5jb2wteHMtb2Zmc2V0LTEyIHtcbiAgbWFyZ2luLWxlZnQ6IDEwMCU7XG59XG4uY29sLXhzLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG59XG4uY29sLXhzLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbn1cbi5jb2wteHMtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG59XG4uY29sLXhzLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTtcbn1cbi5jb2wteHMtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xufVxuLmNvbC14cy1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbn1cbi5jb2wteHMtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmNvbC1zbS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLXNtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLXNtLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLXNtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTEyIHtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTEwIHtcbiAgICByaWdodDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5jb2wtc20tcHVsbC04IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC03IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC02IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5jb2wtc20tcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC00IHtcbiAgICByaWdodDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0zIHtcbiAgICByaWdodDogMjUlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC0xIHtcbiAgICByaWdodDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtOSB7XG4gICAgbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtc20tcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtc20tcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtc20tcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb2wtbWQtMSwgLmNvbC1tZC0yLCAuY29sLW1kLTMsIC5jb2wtbWQtNCwgLmNvbC1tZC01LCAuY29sLW1kLTYsIC5jb2wtbWQtNywgLmNvbC1tZC04LCAuY29sLW1kLTksIC5jb2wtbWQtMTAsIC5jb2wtbWQtMTEsIC5jb2wtbWQtMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtbWQtMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1tZC04IHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTYge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmNvbC1tZC01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1tZC0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLW1kLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmNvbC1sZy0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLWxnLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLWxnLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuY29sLWxnLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTEyIHtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTEwIHtcbiAgICByaWdodDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5jb2wtbGctcHVsbC04IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC03IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC02IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5jb2wtbGctcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC00IHtcbiAgICByaWdodDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0zIHtcbiAgICByaWdodDogMjUlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xIHtcbiAgICByaWdodDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5jb2wtbGctcHVzaC0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtOSB7XG4gICAgbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbGctcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbGctcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtbGctcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxufVxudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICBjb2xvcjogIzc3Nzc3NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGgsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQge1xuICBwYWRkaW5nOiA4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aCB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGRkO1xufVxuLnRhYmxlID4gY2FwdGlvbiArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IGNvbGdyb3VwICsgdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnRhYmxlID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnRhYmxlID4gY2FwdGlvbiArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi50YWJsZSA+IGNvbGdyb3VwICsgdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnRhYmxlID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi50YWJsZSA+IHRib2R5ICsgdGJvZHkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2RkZDtcbn1cbi50YWJsZSAudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnRhYmxlLWNvbmRlbnNlZCA+IHRoZWFkID4gdHIgPiB0aCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Ym9keSA+IHRyID4gdGgsXG4udGFibGUtY29uZGVuc2VkID4gdGZvb3QgPiB0ciA+IHRoLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRoZWFkID4gdHIgPiB0ZCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Ym9keSA+IHRyID4gdGQsXG4udGFibGUtY29uZGVuc2VkID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgcGFkZGluZzogNXB4O1xufVxuLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbi50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aCxcbi50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aCxcbi50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aCxcbi50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZCxcbi50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZCxcbi50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4udGFibGUtc3RyaXBlZCA+IHRib2R5ID4gdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cbnRhYmxlIGNvbFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNvbHVtbjtcbn1cbnRhYmxlIHRkW2NsYXNzKj1cImNvbC1cIl0sXG50YWJsZSB0aFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuYWN0aXZlLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmFjdGl2ZSxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5hY3RpdmUsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguYWN0aXZlLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmFjdGl2ZSxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5hY3RpdmUsXG4udGFibGUgPiB0aGVhZCA+IHRyLmFjdGl2ZSA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5hY3RpdmUgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuYWN0aXZlID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmFjdGl2ZSA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5hY3RpdmUgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIuYWN0aXZlID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmFjdGl2ZTpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5hY3RpdmU6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmFjdGl2ZTpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5hY3RpdmUsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmFjdGl2ZTpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5zdWNjZXNzLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLnN1Y2Nlc3MsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQuc3VjY2Vzcyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC5zdWNjZXNzLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLnN1Y2Nlc3MsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguc3VjY2Vzcyxcbi50YWJsZSA+IHRoZWFkID4gdHIuc3VjY2VzcyA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5zdWNjZXNzID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLnN1Y2Nlc3MgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuc3VjY2VzcyA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5zdWNjZXNzID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyLnN1Y2Nlc3MgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQuc3VjY2Vzczpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5zdWNjZXNzOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5zdWNjZXNzOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLnN1Y2Nlc3MsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLnN1Y2Nlc3M6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGU5YzY7XG59XG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuaW5mbyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5pbmZvLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmluZm8sXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguaW5mbyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5pbmZvLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLmluZm8sXG4udGFibGUgPiB0aGVhZCA+IHRyLmluZm8gPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuaW5mbyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5pbmZvID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmluZm8gPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIuaW5mbyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5pbmZvID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xufVxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmluZm86aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguaW5mbzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuaW5mbzpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5pbmZvLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5pbmZvOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzO1xufVxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLndhcm5pbmcsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQud2FybmluZyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC53YXJuaW5nLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLndhcm5pbmcsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGgud2FybmluZyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC53YXJuaW5nLFxuLnRhYmxlID4gdGhlYWQgPiB0ci53YXJuaW5nID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLndhcm5pbmcgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIud2FybmluZyA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci53YXJuaW5nID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLndhcm5pbmcgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIud2FybmluZyA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbn1cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC53YXJuaW5nOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLndhcm5pbmc6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLndhcm5pbmc6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAud2FybmluZyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIud2FybmluZzpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjJjYztcbn1cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5kYW5nZXIsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuZGFuZ2VyLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmRhbmdlcixcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC5kYW5nZXIsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGguZGFuZ2VyLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLmRhbmdlcixcbi50YWJsZSA+IHRoZWFkID4gdHIuZGFuZ2VyID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmRhbmdlciA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5kYW5nZXIgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuZGFuZ2VyID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyLmRhbmdlciA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5kYW5nZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQuZGFuZ2VyOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLmRhbmdlcjpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuZGFuZ2VyOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLmRhbmdlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuZGFuZ2VyOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjY2NjO1xufVxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAwLjAxJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRib2R5ID4gdHIgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Zm9vdCA+IHRyID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Zm9vdCA+IHRyID4gdGQge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxufVxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgbWluLXdpZHRoOiAwO1xufVxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTtcbn1cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW46IDRweCAwIDA7XG4gIG1hcmdpbi10b3A6IDFweCBcXDk7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuc2VsZWN0W211bHRpcGxlXSxcbnNlbGVjdFtzaXplXSB7XG4gIGhlaWdodDogYXV0bztcbn1cbmlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmZvY3VzIHtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbm91dHB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzU1NTU1NTtcbn1cbi5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzRweDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjNTU1NTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcbn1cbi5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM2NmFmZTk7XG4gIG91dGxpbmU6IDA7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggcmdiYSgxMDIsIDE3NSwgMjMzLCAwLjYpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDhweCByZ2JhKDEwMiwgMTc1LCAyMzMsIDAuNik7XG59XG4uZm9ybS1jb250cm9sOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7XG4gIG9wYWNpdHk6IDE7XG59XG4uZm9ybS1jb250cm9sOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmZvcm0tY29udHJvbDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmZvcm0tY29udHJvbDo6LW1zLWV4cGFuZCB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxcbi5mb3JtLWNvbnRyb2xbcmVhZG9ubHldLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBvcGFjaXR5OiAxO1xufVxuLmZvcm0tY29udHJvbFtkaXNhYmxlZF0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tY29udHJvbCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmZvcm0tY29udHJvbCxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmZvcm0tY29udHJvbCxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmZvcm0tY29udHJvbCB7XG4gICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIH1cbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uaW5wdXQtc20sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmlucHV0LXNtLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0uaW5wdXQtc20sXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5pbnB1dC1zbSxcbiAgLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwibW9udGhcIl0ge1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlucHV0LWxnLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5pbnB1dC1sZyxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlucHV0LWxnLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaW5wdXQtbGcsXG4gIC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICBsaW5lLWhlaWdodDogNDZweDtcbiAgfVxufVxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5yYWRpbyBsYWJlbCxcbi5jaGVja2JveCBsYWJlbCB7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG59XG4ucmFkaW8gKyAucmFkaW8sXG4uY2hlY2tib3ggKyAuY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAtNXB4O1xufVxuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmFkaW8taW5saW5lICsgLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUgKyAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5pbnB1dFt0eXBlPVwicmFkaW9cIl1bZGlzYWJsZWRdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW2Rpc2FibGVkXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXS5kaXNhYmxlZCxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXS5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5maWVsZHNldFtkaXNhYmxlZF0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5yYWRpby1pbmxpbmUuZGlzYWJsZWQsXG4uY2hlY2tib3gtaW5saW5lLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpby1pbmxpbmUsXG5maWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94LWlubGluZSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4ucmFkaW8uZGlzYWJsZWQgbGFiZWwsXG4uY2hlY2tib3guZGlzYWJsZWQgbGFiZWwsXG5maWVsZHNldFtkaXNhYmxlZF0gLnJhZGlvIGxhYmVsLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIHBhZGRpbmctdG9wOiA3cHg7XG4gIHBhZGRpbmctYm90dG9tOiA3cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1pbi1oZWlnaHQ6IDM0cHg7XG59XG4uZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1sZyxcbi5mb3JtLWNvbnRyb2wtc3RhdGljLmlucHV0LXNtIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLmlucHV0LXNtIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5zZWxlY3QuaW5wdXQtc20ge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxudGV4dGFyZWEuaW5wdXQtc20sXG5zZWxlY3RbbXVsdGlwbGVdLmlucHV0LXNtIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmZvcm0tZ3JvdXAtc20gc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG4uZm9ybS1ncm91cC1zbSB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4uZm9ybS1ncm91cC1zbSBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLmlucHV0LWxnIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuc2VsZWN0LmlucHV0LWxnIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cbnRleHRhcmVhLmlucHV0LWxnLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1sZyB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uZm9ybS1ncm91cC1sZyBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cbi5mb3JtLWdyb3VwLWxnIHRleHRhcmVhLmZvcm0tY29udHJvbCxcbi5mb3JtLWdyb3VwLWxnIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIG1pbi1oZWlnaHQ6IDM4cHg7XG4gIHBhZGRpbmc6IDExcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xufVxuLmhhcy1mZWVkYmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDQyLjVweDtcbn1cbi5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5pbnB1dC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogNDZweDtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cbi5pbnB1dC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbi5oYXMtc3VjY2VzcyAuaGVscC1ibG9jayxcbi5oYXMtc3VjY2VzcyAuY29udHJvbC1sYWJlbCxcbi5oYXMtc3VjY2VzcyAucmFkaW8sXG4uaGFzLXN1Y2Nlc3MgLmNoZWNrYm94LFxuLmhhcy1zdWNjZXNzIC5yYWRpby1pbmxpbmUsXG4uaGFzLXN1Y2Nlc3MgLmNoZWNrYm94LWlubGluZSxcbi5oYXMtc3VjY2Vzcy5yYWRpbyBsYWJlbCxcbi5oYXMtc3VjY2Vzcy5jaGVja2JveCBsYWJlbCxcbi5oYXMtc3VjY2Vzcy5yYWRpby1pbmxpbmUgbGFiZWwsXG4uaGFzLXN1Y2Nlc3MuY2hlY2tib3gtaW5saW5lIGxhYmVsIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogIzNjNzYzZDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMmI1NDJjO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjNjdiMTY4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggIzY3YjE2ODtcbn1cbi5oYXMtc3VjY2VzcyAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYm9yZGVyLWNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbi5oYXMtd2FybmluZyAuaGVscC1ibG9jayxcbi5oYXMtd2FybmluZyAuY29udHJvbC1sYWJlbCxcbi5oYXMtd2FybmluZyAucmFkaW8sXG4uaGFzLXdhcm5pbmcgLmNoZWNrYm94LFxuLmhhcy13YXJuaW5nIC5yYWRpby1pbmxpbmUsXG4uaGFzLXdhcm5pbmcgLmNoZWNrYm94LWlubGluZSxcbi5oYXMtd2FybmluZy5yYWRpbyBsYWJlbCxcbi5oYXMtd2FybmluZy5jaGVja2JveCBsYWJlbCxcbi5oYXMtd2FybmluZy5yYWRpby1pbmxpbmUgbGFiZWwsXG4uaGFzLXdhcm5pbmcuY2hlY2tib3gtaW5saW5lIGxhYmVsIHtcbiAgY29sb3I6ICM4YTZkM2I7XG59XG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogIzhhNmQzYjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjY1MTJjO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjYzBhMTZiO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2MwYTE2Yjtcbn1cbi5oYXMtd2FybmluZyAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBjb2xvcjogIzhhNmQzYjtcbiAgYm9yZGVyLWNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xufVxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogIzhhNmQzYjtcbn1cbi5oYXMtZXJyb3IgLmhlbHAtYmxvY2ssXG4uaGFzLWVycm9yIC5jb250cm9sLWxhYmVsLFxuLmhhcy1lcnJvciAucmFkaW8sXG4uaGFzLWVycm9yIC5jaGVja2JveCxcbi5oYXMtZXJyb3IgLnJhZGlvLWlubGluZSxcbi5oYXMtZXJyb3IgLmNoZWNrYm94LWlubGluZSxcbi5oYXMtZXJyb3IucmFkaW8gbGFiZWwsXG4uaGFzLWVycm9yLmNoZWNrYm94IGxhYmVsLFxuLmhhcy1lcnJvci5yYWRpby1pbmxpbmUgbGFiZWwsXG4uaGFzLWVycm9yLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjYTk0NDQyO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjODQzNTM0O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjY2U4NDgzO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2NlODQ4Mztcbn1cbi5oYXMtZXJyb3IgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG4gIGJvcmRlci1jb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbn1cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuLmhhcy1mZWVkYmFjayBsYWJlbCB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB0b3A6IDI1cHg7XG59XG4uaGFzLWZlZWRiYWNrIGxhYmVsLnNyLW9ubHkgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgdG9wOiAwO1xufVxuLmhlbHAtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzczNzM3Mztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9ybS1pbmxpbmUgLmZvcm0tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5mb3JtLWNvbnRyb2wge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWFkZG9uLFxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG4sXG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuY29udHJvbC1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAucmFkaW8sXG4gIC5mb3JtLWlubGluZSAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLnJhZGlvIGxhYmVsLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIC5mb3JtLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAwO1xuICB9XG59XG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpbyxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LFxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8taW5saW5lLFxuLmZvcm0taG9yaXpvbnRhbCAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy10b3A6IDdweDtcbn1cbi5mb3JtLWhvcml6b250YWwgLnJhZGlvLFxuLmZvcm0taG9yaXpvbnRhbCAuY2hlY2tib3gge1xuICBtaW4taGVpZ2h0OiAyN3B4O1xufVxuLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9ybS1ob3Jpem9udGFsIC5jb250cm9sLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiA3cHg7XG4gIH1cbn1cbi5mb3JtLWhvcml6b250YWwgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcmlnaHQ6IDE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1sZyAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDExcHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1zbSAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cbi5idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uYnRuOmZvY3VzLFxuLmJ0bjphY3RpdmU6Zm9jdXMsXG4uYnRuLmFjdGl2ZTpmb2N1cyxcbi5idG4uZm9jdXMsXG4uYnRuOmFjdGl2ZS5mb2N1cyxcbi5idG4uYWN0aXZlLmZvY3VzIHtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbi5idG46aG92ZXIsXG4uYnRuOmZvY3VzLFxuLmJ0bi5mb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnRuOmFjdGl2ZSxcbi5idG4uYWN0aXZlIHtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbn1cbi5idG4uZGlzYWJsZWQsXG4uYnRuW2Rpc2FibGVkXSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMC42NTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuYS5idG4uZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF0gYS5idG4ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5idG4tZGVmYXVsdCB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNjY2M7XG59XG4uYnRuLWRlZmF1bHQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHQuZm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLWNvbG9yOiAjOGM4YzhjO1xufVxuLmJ0bi1kZWZhdWx0OmhvdmVyIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGJvcmRlci1jb2xvcjogI2FkYWRhZDtcbn1cbi5idG4tZGVmYXVsdDphY3RpdmUsXG4uYnRuLWRlZmF1bHQuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0IHtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gIGJvcmRlci1jb2xvcjogI2FkYWRhZDtcbn1cbi5idG4tZGVmYXVsdDphY3RpdmU6aG92ZXIsXG4uYnRuLWRlZmF1bHQuYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kZWZhdWx0OmhvdmVyLFxuLmJ0bi1kZWZhdWx0OmFjdGl2ZTpmb2N1cyxcbi5idG4tZGVmYXVsdC5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHQ6YWN0aXZlLmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdC5mb2N1cyB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNGQ0O1xuICBib3JkZXItY29sb3I6ICM4YzhjOGM7XG59XG4uYnRuLWRlZmF1bHQ6YWN0aXZlLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLWRlZmF1bHQuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpob3Zlcixcbi5idG4tZGVmYXVsdC5kaXNhYmxlZDpmb2N1cyxcbi5idG4tZGVmYXVsdFtkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQuZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNjY2M7XG59XG4uYnRuLWRlZmF1bHQgLmJhZGdlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG4uYnRuLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1wcmltYXJ5OmZvY3VzLFxuLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4tcHJpbWFyeTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLXByaW1hcnk6YWN0aXZlLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDkyOTk7XG59XG4uYnRuLXByaW1hcnk6YWN0aXZlOmhvdmVyLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpob3Zlcixcbi5idG4tcHJpbWFyeTphY3RpdmU6Zm9jdXMsXG4uYnRuLXByaW1hcnkuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5OmZvY3VzLFxuLmJ0bi1wcmltYXJ5OmFjdGl2ZS5mb2N1cyxcbi5idG4tcHJpbWFyeS5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOTI5OTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZSxcbi5idG4tcHJpbWFyeS5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6aG92ZXIsXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLXByaW1hcnlbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeS5kaXNhYmxlZC5mb2N1cyxcbi5idG4tcHJpbWFyeVtkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBjZGQ3O1xufVxuLmJ0bi1wcmltYXJ5IC5iYWRnZSB7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tc3VjY2Vzczpmb2N1cyxcbi5idG4tc3VjY2Vzcy5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLXN1Y2Nlc3M6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1zdWNjZXNzOmFjdGl2ZSxcbi5idG4tc3VjY2Vzcy5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Mjk5O1xufVxuLmJ0bi1zdWNjZXNzOmFjdGl2ZTpob3Zlcixcbi5idG4tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6aG92ZXIsXG4uYnRuLXN1Y2Nlc3M6YWN0aXZlOmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzczpmb2N1cyxcbi5idG4tc3VjY2VzczphY3RpdmUuZm9jdXMsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDkyOTk7XG4gIGJvcmRlci1jb2xvcjogIzAwNTM1Nztcbn1cbi5idG4tc3VjY2VzczphY3RpdmUsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5idG4tc3VjY2Vzcy5kaXNhYmxlZDpob3Zlcixcbi5idG4tc3VjY2Vzc1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmhvdmVyLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQuZm9jdXMsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzcy5mb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG4gIGJvcmRlci1jb2xvcjogIzAwY2RkNztcbn1cbi5idG4tc3VjY2VzcyAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5idG4taW5mbyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLWluZm86Zm9jdXMsXG4uYnRuLWluZm8uZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1MzU3O1xufVxuLmJ0bi1pbmZvOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4taW5mbzphY3RpdmUsXG4uYnRuLWluZm8uYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG4gIGJvcmRlci1jb2xvcjogIzAwOTI5OTtcbn1cbi5idG4taW5mbzphY3RpdmU6aG92ZXIsXG4uYnRuLWluZm8uYWN0aXZlOmhvdmVyLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvOmhvdmVyLFxuLmJ0bi1pbmZvOmFjdGl2ZTpmb2N1cyxcbi5idG4taW5mby5hY3RpdmU6Zm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWluZm86Zm9jdXMsXG4uYnRuLWluZm86YWN0aXZlLmZvY3VzLFxuLmJ0bi1pbmZvLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mby5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Mjk5O1xuICBib3JkZXItY29sb3I6ICMwMDUzNTc7XG59XG4uYnRuLWluZm86YWN0aXZlLFxuLmJ0bi1pbmZvLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uYnRuLWluZm8uZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWluZm9bZGlzYWJsZWRdOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzpob3Zlcixcbi5idG4taW5mby5kaXNhYmxlZDpmb2N1cyxcbi5idG4taW5mb1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmZvY3VzLFxuLmJ0bi1pbmZvLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1pbmZvW2Rpc2FibGVkXS5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm8uZm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGNkZDc7XG59XG4uYnRuLWluZm8gLmJhZGdlIHtcbiAgY29sb3I6ICMwMGU1ZjA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLXdhcm5pbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgYm9yZGVyLWNvbG9yOiAjODU2NGVkO1xufVxuLmJ0bi13YXJuaW5nOmZvY3VzLFxuLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG4gIGJvcmRlci1jb2xvcjogIzNkMTViZDtcbn1cbi5idG4td2FybmluZzpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xuICBib3JkZXItY29sb3I6ICM1YTJkZTc7XG59XG4uYnRuLXdhcm5pbmc6YWN0aXZlLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZSxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xuICBib3JkZXItY29sb3I6ICM1YTJkZTc7XG59XG4uYnRuLXdhcm5pbmc6YWN0aXZlOmhvdmVyLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZTpob3Zlcixcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpob3Zlcixcbi5idG4td2FybmluZzphY3RpdmU6Zm9jdXMsXG4uYnRuLXdhcm5pbmcuYWN0aXZlOmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5nOmZvY3VzLFxuLmJ0bi13YXJuaW5nOmFjdGl2ZS5mb2N1cyxcbi5idG4td2FybmluZy5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVhMmRlNztcbiAgYm9yZGVyLWNvbG9yOiAjM2QxNWJkO1xufVxuLmJ0bi13YXJuaW5nOmFjdGl2ZSxcbi5idG4td2FybmluZy5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi13YXJuaW5nLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6aG92ZXIsXG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpmb2N1cyxcbi5idG4td2FybmluZy5kaXNhYmxlZC5mb2N1cyxcbi5idG4td2FybmluZ1tkaXNhYmxlZF0uZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgYm9yZGVyLWNvbG9yOiAjODU2NGVkO1xufVxuLmJ0bi13YXJuaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmJ0bi1kYW5nZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbiAgYm9yZGVyLWNvbG9yOiAjY2ExYzY4O1xufVxuLmJ0bi1kYW5nZXI6Zm9jdXMsXG4uYnRuLWRhbmdlci5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxOTVkO1xuICBib3JkZXItY29sb3I6ICM1YTBjMmU7XG59XG4uYnRuLWRhbmdlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxOTVkO1xuICBib3JkZXItY29sb3I6ICM5NDE0NGQ7XG59XG4uYnRuLWRhbmdlcjphY3RpdmUsXG4uYnRuLWRhbmdlci5hY3RpdmUsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxOTVkO1xuICBib3JkZXItY29sb3I6ICM5NDE0NGQ7XG59XG4uYnRuLWRhbmdlcjphY3RpdmU6aG92ZXIsXG4uYnRuLWRhbmdlci5hY3RpdmU6aG92ZXIsXG4ub3BlbiA+IC5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpob3Zlcixcbi5idG4tZGFuZ2VyOmFjdGl2ZTpmb2N1cyxcbi5idG4tZGFuZ2VyLmFjdGl2ZTpmb2N1cyxcbi5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tZGFuZ2VyOmZvY3VzLFxuLmJ0bi1kYW5nZXI6YWN0aXZlLmZvY3VzLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk0MTQ0ZDtcbiAgYm9yZGVyLWNvbG9yOiAjNWEwYzJlO1xufVxuLmJ0bi1kYW5nZXI6YWN0aXZlLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLFxuLm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWRhbmdlcltkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6aG92ZXIsXG4uYnRuLWRhbmdlci5kaXNhYmxlZDpmb2N1cyxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlcjpmb2N1cyxcbi5idG4tZGFuZ2VyLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1kYW5nZXJbZGlzYWJsZWRdLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyLmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMWY3NDtcbiAgYm9yZGVyLWNvbG9yOiAjY2ExYzY4O1xufVxuLmJ0bi1kYW5nZXIgLmJhZGdlIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uYnRuLWxpbmsge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tbGluayxcbi5idG4tbGluazphY3RpdmUsXG4uYnRuLWxpbmsuYWN0aXZlLFxuLmJ0bi1saW5rW2Rpc2FibGVkXSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmJ0bi1saW5rLFxuLmJ0bi1saW5rOmhvdmVyLFxuLmJ0bi1saW5rOmZvY3VzLFxuLmJ0bi1saW5rOmFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYnRuLWxpbms6aG92ZXIsXG4uYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzAwOWNhMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6aG92ZXIsXG4uYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnRuLWxnLFxuLmJ0bi1ncm91cC1sZyA+IC5idG4ge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmJ0bi1zbSxcbi5idG4tZ3JvdXAtc20gPiAuYnRuIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmJ0bi14cyxcbi5idG4tZ3JvdXAteHMgPiAuYnRuIHtcbiAgcGFkZGluZzogMXB4IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYnRuLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ0bi1ibG9jayxcbmlucHV0W3R5cGU9XCJyZXNldFwiXS5idG4tYmxvY2ssXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLmJ0bi1ibG9jayB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmZhZGUge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG59XG4uZmFkZS5pbiB7XG4gIG9wYWNpdHk6IDE7XG59XG4uY29sbGFwc2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNvbGxhcHNlLmluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG50ci5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cbnRib2R5LmNvbGxhcHNlLmluIHtcbiAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwO1xufVxuLmNvbGxhcHNpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQsIHZpc2liaWxpdHk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgdmlzaWJpbGl0eTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjM1cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zNXM7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xufVxuLmNhcmV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiA0cHggZGFzaGVkO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgXFw5O1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5kcm9wdXAsXG4uZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBwYWRkaW5nOiA1cHggMDtcbiAgbWFyZ2luOiAycHggMCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuLmRyb3Bkb3duLW1lbnUucHVsbC1yaWdodCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiA5cHggMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbn1cbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xuICBjbGVhcjogYm90aDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMyNjI2MjY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhLFxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvdXRsaW5lOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhLFxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLm9wZW4gPiAuZHJvcGRvd24tbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm9wZW4gPiBhIHtcbiAgb3V0bGluZTogMDtcbn1cbi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG59XG4uZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG59XG4uZHJvcGRvd24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBjb2xvcjogIzc3Nzc3NztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kcm9wZG93bi1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5OTA7XG59XG4ucHVsbC1yaWdodCA+IC5kcm9wZG93bi1tZW51IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG4uZHJvcHVwIC5jYXJldCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuY2FyZXQge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItYm90dG9tOiA0cHggZGFzaGVkO1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgXFw5O1xuICBjb250ZW50OiBcIlwiO1xufVxuLmRyb3B1cCAuZHJvcGRvd24tbWVudSxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbiAgfVxuICAubmF2YmFyLXJpZ2h0IC5kcm9wZG93bi1tZW51LWxlZnQge1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbi5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uYnRuLWdyb3VwID4gLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOmhvdmVyLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46aG92ZXIsXG4uYnRuLWdyb3VwID4gLmJ0bjpmb2N1cyxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZvY3VzLFxuLmJ0bi1ncm91cCA+IC5idG46YWN0aXZlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46YWN0aXZlLFxuLmJ0bi1ncm91cCA+IC5idG4uYWN0aXZlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4uYWN0aXZlIHtcbiAgei1pbmRleDogMjtcbn1cbi5idG4tZ3JvdXAgLmJ0biArIC5idG4sXG4uYnRuLWdyb3VwIC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5idG4tdG9vbGJhciB7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xufVxuLmJ0bi10b29sYmFyIC5idG4sXG4uYnRuLXRvb2xiYXIgLmJ0bi1ncm91cCxcbi5idG4tdG9vbGJhciAuaW5wdXQtZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tdG9vbGJhciA+IC5idG4sXG4uYnRuLXRvb2xiYXIgPiAuYnRuLWdyb3VwLFxuLmJ0bi10b29sYmFyID4gLmlucHV0LWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksXG4uYnRuLWdyb3VwID4gLmRyb3Bkb3duLXRvZ2dsZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCxcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSxcbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgb3V0bGluZTogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tbGluayB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5idG4gLmNhcmV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uYnRuLWxnIC5jYXJldCB7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xufVxuLmRyb3B1cCAuYnRuLWxnIC5jYXJldCB7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gIGZsb2F0OiBub25lO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bjpsYXN0LWNoaWxkLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5kcm9wZG93bi10b2dnbGUge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLWp1c3RpZmllZCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbn1cbi5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bixcbi5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bi1ncm91cCB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB3aWR0aDogMSU7XG59XG4uYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4tZ3JvdXAgLmJ0biB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IHtcbiAgbGVmdDogYXV0bztcbn1cbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0gPiAuYnRuIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0gPiAuYnRuLWdyb3VwID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5pbnB1dC1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogdGFibGU7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uaW5wdXQtZ3JvdXBbY2xhc3MqPVwiY29sLVwiXSB7XG4gIGZsb2F0OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICB6LWluZGV4OiAzO1xufVxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuc2VsZWN0LmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnNlbGVjdC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cbnRleHRhcmVhLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbnRleHRhcmVhLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxudGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuc2VsZWN0LmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbnNlbGVjdC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnNlbGVjdC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbnRleHRhcmVhLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbnRleHRhcmVhLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxudGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4sXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0biB7XG4gIHdpZHRoOiAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24uaW5wdXQtc20ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb24uaW5wdXQtbGcge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5pbnB1dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6Zmlyc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMDtcbn1cbi5pbnB1dC1ncm91cC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG4gKyAuYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjpob3Zlcixcbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmZvY3VzLFxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG46YWN0aXZlIHtcbiAgei1pbmRleDogMjtcbn1cbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXAge1xuICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG59XG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cCB7XG4gIHotaW5kZXg6IDI7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLm5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5uYXYgPiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubmF2ID4gbGkgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAxNXB4O1xufVxuLm5hdiA+IGxpID4gYTpob3Zlcixcbi5uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4ubmF2ID4gbGkuZGlzYWJsZWQgPiBhIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4ubmF2ID4gbGkuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLm5hdiA+IGxpLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLm5hdiAub3BlbiA+IGEsXG4ubmF2IC5vcGVuID4gYTpob3Zlcixcbi5uYXYgLm9wZW4gPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLm5hdiAubmF2LWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiA5cHggMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbn1cbi5uYXYgPiBsaSA+IGEgPiBpbWcge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4ubmF2LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cbi5uYXYtdGFicyA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG59XG4ubmF2LXRhYnMgPiBsaSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbn1cbi5uYXYtdGFicyA+IGxpID4gYTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2VlZWVlZSAjZWVlZWVlICNkZGQ7XG59XG4ubmF2LXRhYnMgPiBsaS5hY3RpdmUgPiBhLFxuLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7XG4gIH1cbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3Zlcixcbi5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgfVxuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xuICB9XG59XG4ubmF2LXBpbGxzID4gbGkge1xuICBmbG9hdDogbGVmdDtcbn1cbi5uYXYtcGlsbHMgPiBsaSA+IGEge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubmF2LXBpbGxzID4gbGkgKyBsaSB7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG4ubmF2LXBpbGxzID4gbGkuYWN0aXZlID4gYSxcbi5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5uYXYtc3RhY2tlZCA+IGxpIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4ubmF2LXN0YWNrZWQgPiBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi5uYXYtanVzdGlmaWVkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubmF2LWp1c3RpZmllZCA+IGxpIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4ubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLm5hdi1qdXN0aWZpZWQgPiAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7XG4gIH1cbiAgLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbi5uYXYtdGFicy1qdXN0aWZpZWQge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLm5hdi10YWJzLWp1c3RpZmllZCA+IGxpID4gYSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2LXRhYnMtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgfVxuICAubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGEsXG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xuICB9XG59XG4udGFiLWNvbnRlbnQgPiAudGFiLXBhbmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYi1jb250ZW50ID4gLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm5hdi10YWJzIC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4ubmF2YmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWhlYWRlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cbi5uYXZiYXItY29sbGFwc2Uge1xuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbi5uYXZiYXItY29sbGFwc2UuaW4ge1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAubmF2YmFyLWNvbGxhcHNlLmNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhci1jb2xsYXBzZS5pbiB7XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgfVxuICAubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLXN0YXRpYy10b3AgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cbi5uYXZiYXItZml4ZWQtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLWNvbGxhcHNlIHtcbiAgbWF4LWhlaWdodDogMzQwcHg7XG59XG5AbWVkaWEgKG1heC1kZXZpY2Utd2lkdGg6IDQ4MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gIH1cbn1cbi5jb250YWluZXIgPiAubmF2YmFyLWhlYWRlcixcbi5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWhlYWRlcixcbi5jb250YWluZXIgPiAubmF2YmFyLWNvbGxhcHNlLFxuLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhaW5lciA+IC5uYXZiYXItaGVhZGVyLFxuICAuY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1oZWFkZXIsXG4gIC5jb250YWluZXIgPiAubmF2YmFyLWNvbGxhcHNlLFxuICAuY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG4ubmF2YmFyLXN0YXRpYy10b3Age1xuICB6LWluZGV4OiAxMDAwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1zdGF0aWMtdG9wIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAzMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLWZpeGVkLXRvcCxcbiAgLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi5uYXZiYXItZml4ZWQtdG9wIHtcbiAgdG9wOiAwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG59XG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAwO1xufVxuLm5hdmJhci1icmFuZCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAxNXB4IDE1cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGhlaWdodDogNTBweDtcbn1cbi5uYXZiYXItYnJhbmQ6aG92ZXIsXG4ubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLm5hdmJhci1icmFuZCA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXIgPiAuY29udGFpbmVyIC5uYXZiYXItYnJhbmQsXG4gIC5uYXZiYXIgPiAuY29udGFpbmVyLWZsdWlkIC5uYXZiYXItYnJhbmQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgfVxufVxuLm5hdmJhci10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nOiA5cHggMTBweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuLm5hdmJhci10b2dnbGUgLmljb24tYmFyICsgLmljb24tYmFyIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ubmF2YmFyLW5hdiB7XG4gIG1hcmdpbjogNy41cHggLTE1cHg7XG59XG4ubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYSxcbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgcGFkZGluZzogNXB4IDE1cHggNXB4IDI1cHg7XG4gIH1cbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB9XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLFxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItbmF2IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLm5hdmJhci1uYXYgPiBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICB9XG59XG4ubmF2YmFyLWZvcm0ge1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmZvcm0tY29udHJvbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWJ0bixcbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5jb250cm9sLWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5yYWRpbyxcbiAgLm5hdmJhci1mb3JtIC5jaGVja2JveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAucmFkaW8gbGFiZWwsXG4gIC5uYXZiYXItZm9ybSAuY2hlY2tib3ggbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAubmF2YmFyLWZvcm0gLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgLm5hdmJhci1mb3JtIC5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmZvcm0tZ3JvdXA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItZm9ybSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLm5hdmJhci1idG4ge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5uYXZiYXItYnRuLmJ0bi1zbSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ubmF2YmFyLWJ0bi5idG4teHMge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuLm5hdmJhci10ZXh0IHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubmF2YmFyLXRleHQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuICAubmF2YmFyLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICB9XG4gIC5uYXZiYXItcmlnaHQgfiAubmF2YmFyLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbi5uYXZiYXItZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIGJvcmRlci1jb2xvcjogI2U3ZTdlNztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6ICM1ZTVlNWU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjNzc3O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM3Nzc7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZTdlNztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGEsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZSB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODtcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItZm9ybSB7XG4gIGJvcmRlci1jb2xvcjogI2U3ZTdlNztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5vcGVuID4gYSxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7XG4gIGNvbG9yOiAjNTU1O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gICAgY29sb3I6ICM3Nzc7XG4gIH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLFxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhLFxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNTU1O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7XG4gIH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSxcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3ZlcixcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWxpbmsge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWxpbms6aG92ZXIge1xuICBjb2xvcjogIzMzMztcbn1cbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmsge1xuICBjb2xvcjogIzc3Nztcbn1cbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG59XG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjY2NjO1xufVxuLm5hdmJhci1pbnZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjtcbiAgYm9yZGVyLWNvbG9yOiAjMDgwODA4O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQge1xuICBjb2xvcjogIzlkOWQ5ZDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQ6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10ZXh0IHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogIzlkOWQ5ZDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IGxpID4gYTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IGxpID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzMzO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbn1cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItY29sbGFwc2UsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1mb3JtIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTAxMDEwO1xufVxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbiAgY29sb3I6ICNmZmY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDgwODA4O1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSAuZGl2aWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA4MDgwODtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjOWQ5ZDlkO1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4O1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1saW5rIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1saW5rOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rIHtcbiAgY29sb3I6ICM5ZDlkOWQ7XG59XG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzQ0NDtcbn1cbi5icmVhZGNydW1iIHtcbiAgcGFkZGluZzogOHB4IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5icmVhZGNydW1iID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYnJlYWRjcnVtYiA+IGxpICsgbGk6YmVmb3JlIHtcbiAgY29udGVudDogXCIvXFwwMGEwXCI7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBjb2xvcjogI2NjYztcbn1cbi5icmVhZGNydW1iID4gLmFjdGl2ZSB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLnBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiAyMHB4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5wYWdpbmF0aW9uID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4ucGFnaW5hdGlvbiA+IGxpID4gYSxcbi5wYWdpbmF0aW9uID4gbGkgPiBzcGFuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMDBlNWYwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi5wYWdpbmF0aW9uID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24gPiBsaTpmaXJzdC1jaGlsZCA+IHNwYW4ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpOmxhc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24gPiBsaTpsYXN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ucGFnaW5hdGlvbiA+IGxpID4gYTpob3Zlcixcbi5wYWdpbmF0aW9uID4gbGkgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiBsaSA+IGE6Zm9jdXMsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3Bhbjpmb2N1cyB7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiAjMDA5Y2EzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBhLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gc3Bhbixcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gYTpmb2N1cyxcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW46Zm9jdXMge1xuICB6LWluZGV4OiAzO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IHNwYW4sXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IHNwYW46aG92ZXIsXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IHNwYW46Zm9jdXMsXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IGEsXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnBhZ2luYXRpb24tbGcgPiBsaSA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpID4gc3BhbiB7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xufVxuLnBhZ2luYXRpb24tbGcgPiBsaTpmaXJzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpOmZpcnN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4O1xufVxuLnBhZ2luYXRpb24tbGcgPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLWxnID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xufVxuLnBhZ2luYXRpb24tc20gPiBsaSA+IGEsXG4ucGFnaW5hdGlvbi1zbSA+IGxpID4gc3BhbiB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4ucGFnaW5hdGlvbi1zbSA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLXNtID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFnaW5hdGlvbi1zbSA+IGxpOmxhc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaTpsYXN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogMjBweCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucGFnZXIgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4ucGFnZXIgbGkgPiBhLFxuLnBhZ2VyIGxpID4gc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNXB4IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG59XG4ucGFnZXIgbGkgPiBhOmhvdmVyLFxuLnBhZ2VyIGxpID4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5wYWdlciAubmV4dCA+IGEsXG4ucGFnZXIgLm5leHQgPiBzcGFuIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnBhZ2VyIC5wcmV2aW91cyA+IGEsXG4ucGFnZXIgLnByZXZpb3VzID4gc3BhbiB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnBhZ2VyIC5kaXNhYmxlZCA+IGEsXG4ucGFnZXIgLmRpc2FibGVkID4gYTpob3Zlcixcbi5wYWdlciAuZGlzYWJsZWQgPiBhOmZvY3VzLFxuLnBhZ2VyIC5kaXNhYmxlZCA+IHNwYW4ge1xuICBjb2xvcjogIzc3Nzc3NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogLjJlbSAuNmVtIC4zZW07XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm9yZGVyLXJhZGl1czogLjI1ZW07XG59XG5hLmxhYmVsOmhvdmVyLFxuYS5sYWJlbDpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5sYWJlbDplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYnRuIC5sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xufVxuLmxhYmVsLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3Nzc3O1xufVxuLmxhYmVsLWRlZmF1bHRbaHJlZl06aG92ZXIsXG4ubGFiZWwtZGVmYXVsdFtocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ZTVlNWU7XG59XG4ubGFiZWwtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ubGFiZWwtcHJpbWFyeVtocmVmXTpob3Zlcixcbi5sYWJlbC1wcmltYXJ5W2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjRiZDtcbn1cbi5sYWJlbC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5sYWJlbC1zdWNjZXNzW2hyZWZdOmhvdmVyLFxuLmxhYmVsLXN1Y2Nlc3NbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNGJkO1xufVxuLmxhYmVsLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xufVxuLmxhYmVsLWluZm9baHJlZl06aG92ZXIsXG4ubGFiZWwtaW5mb1tocmVmXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI0YmQ7XG59XG4ubGFiZWwtd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4ubGFiZWwtd2FybmluZ1tocmVmXTpob3Zlcixcbi5sYWJlbC13YXJuaW5nW2hyZWZdOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczNGRlYjtcbn1cbi5sYWJlbC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAxZjc0O1xufVxuLmxhYmVsLWRhbmdlcltocmVmXTpob3Zlcixcbi5sYWJlbC1kYW5nZXJbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxOTVkO1xufVxuLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDEwcHg7XG4gIHBhZGRpbmc6IDNweCA3cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3Nzc3O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmJhZGdlOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5idG4gLmJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG59XG4uYnRuLXhzIC5iYWRnZSxcbi5idG4tZ3JvdXAteHMgPiAuYnRuIC5iYWRnZSB7XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMXB4IDVweDtcbn1cbmEuYmFkZ2U6aG92ZXIsXG5hLmJhZGdlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgPiAuYmFkZ2UsXG4ubmF2LXBpbGxzID4gLmFjdGl2ZSA+IGEgPiAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0gPiAuYmFkZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG59XG4ubGlzdC1ncm91cC1pdGVtID4gLmJhZGdlICsgLmJhZGdlIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4ubmF2LXBpbGxzID4gbGkgPiBhID4gLmJhZGdlIHtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5qdW1ib3Ryb24ge1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLmp1bWJvdHJvbiBoMSxcbi5qdW1ib3Ryb24gLmgxIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uanVtYm90cm9uIHAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG4uanVtYm90cm9uID4gaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZDVkNWQ1O1xufVxuLmNvbnRhaW5lciAuanVtYm90cm9uLFxuLmNvbnRhaW5lci1mbHVpZCAuanVtYm90cm9uIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4uanVtYm90cm9uIC5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAuanVtYm90cm9uIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbiAgfVxuICAuY29udGFpbmVyIC5qdW1ib3Ryb24sXG4gIC5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbiAgLmp1bWJvdHJvbiBoMSxcbiAgLmp1bWJvdHJvbiAuaDEge1xuICAgIGZvbnQtc2l6ZTogNjNweDtcbiAgfVxufVxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluLW91dDtcbn1cbi50aHVtYm5haWwgPiBpbWcsXG4udGh1bWJuYWlsIGEgPiBpbWcge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuYS50aHVtYm5haWw6aG92ZXIsXG5hLnRodW1ibmFpbDpmb2N1cyxcbmEudGh1bWJuYWlsLmFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi50aHVtYm5haWwgLmNhcHRpb24ge1xuICBwYWRkaW5nOiA5cHg7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLmFsZXJ0IHtcbiAgcGFkZGluZzogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5hbGVydCBoNCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmFsZXJ0IC5hbGVydC1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYWxlcnQgPiBwLFxuLmFsZXJ0ID4gdWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFsZXJ0ID4gcCArIHAge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4uYWxlcnQtZGlzbWlzc2FibGUsXG4uYWxlcnQtZGlzbWlzc2libGUge1xuICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xufVxuLmFsZXJ0LWRpc21pc3NhYmxlIC5jbG9zZSxcbi5hbGVydC1kaXNtaXNzaWJsZSAuY2xvc2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTJweDtcbiAgcmlnaHQ6IC0yMXB4O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5hbGVydC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbiAgYm9yZGVyLWNvbG9yOiAjZDZlOWM2O1xuICBjb2xvcjogIzNjNzYzZDtcbn1cbi5hbGVydC1zdWNjZXNzIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2M5ZTJiMztcbn1cbi5hbGVydC1zdWNjZXNzIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICMyYjU0MmM7XG59XG4uYWxlcnQtaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG4gIGJvcmRlci1jb2xvcjogI2JjZThmMTtcbiAgY29sb3I6ICMzMTcwOGY7XG59XG4uYWxlcnQtaW5mbyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNhNmUxZWM7XG59XG4uYWxlcnQtaW5mbyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjMjQ1MjY5O1xufVxuLmFsZXJ0LXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xuICBib3JkZXItY29sb3I6ICNmYWViY2M7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuLmFsZXJ0LXdhcm5pbmcgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZjdlMWI1O1xufVxuLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzY2NTEyYztcbn1cbi5hbGVydC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xuICBib3JkZXItY29sb3I6ICNlYmNjZDE7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuLmFsZXJ0LWRhbmdlciBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNlNGI5YzA7XG59XG4uYWxlcnQtZGFuZ2VyIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICM4NDM1MzQ7XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuQGtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcbiAgfVxuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICB9XG59XG4ucHJvZ3Jlc3Mge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnByb2dyZXNzLWJhciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLFxuLnByb2dyZXNzLWJhci1zdHJpcGVkIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggNDBweDtcbn1cbi5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXIuYWN0aXZlIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgLW8tYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xufVxuLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbn1cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cbi5wcm9ncmVzcy1iYXItaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGU1ZjA7XG59XG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4ucHJvZ3Jlc3MtYmFyLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAxZjc0O1xufVxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4ubWVkaWEge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLm1lZGlhOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5tZWRpYSxcbi5tZWRpYS1ib2R5IHtcbiAgem9vbTogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tZWRpYS1ib2R5IHtcbiAgd2lkdGg6IDEwMDAwcHg7XG59XG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubWVkaWEtb2JqZWN0LmltZy10aHVtYm5haWwge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEgPiAucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhID4gLnB1bGwtbGVmdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG4ubWVkaWEtbGVmdCxcbi5tZWRpYS1yaWdodCxcbi5tZWRpYS1ib2R5IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5tZWRpYS1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm1lZGlhLWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4ubWVkaWEtaGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5tZWRpYS1saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuLmxpc3QtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbn1cbi5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbn1cbmEubGlzdC1ncm91cC1pdGVtLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGNvbG9yOiAjNTU1O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogIzMzMztcbn1cbmEubGlzdC1ncm91cC1pdGVtOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3Zlcixcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBjb2xvcjogIzc3Nzc3NztcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMge1xuICB6LWluZGV4OiAyO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwZTVmMDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLXRleHQsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBjb2xvcjogI2JkZmNmZjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpmb2N1cyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlOWM2O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzc2M2Q7XG4gIGJvcmRlci1jb2xvcjogIzNjNzYzZDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0taW5mbyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlLFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTcwOGY7XG4gIGJvcmRlci1jb2xvcjogIzMxNzA4Zjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmMmNjO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlLFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YTZkM2I7XG4gIGJvcmRlci1jb2xvcjogIzhhNmQzYjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG59XG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiAjYTk0NDQyO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1cyB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjY2NjO1xufVxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmU6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOTQ0NDI7XG4gIGJvcmRlci1jb2xvcjogI2E5NDQ0Mjtcbn1cbi5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4ucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi5wYW5lbC1ib2R5IHtcbiAgcGFkZGluZzogMTVweDtcbn1cbi5wYW5lbC1oZWFkaW5nIHtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbC1oZWFkaW5nID4gLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5wYW5lbC10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucGFuZWwtdGl0bGUgPiBhLFxuLnBhbmVsLXRpdGxlID4gc21hbGwsXG4ucGFuZWwtdGl0bGUgPiAuc21hbGwsXG4ucGFuZWwtdGl0bGUgPiBzbWFsbCA+IGEsXG4ucGFuZWwtdGl0bGUgPiAuc21hbGwgPiBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ucGFuZWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLmxpc3QtZ3JvdXAsXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ucGFuZWwgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGJvcmRlci13aWR0aDogMXB4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ucGFuZWwgPiAubGlzdC1ncm91cDpmaXJzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cbi5wYW5lbC1oZWFkaW5nICsgLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG59XG4ubGlzdC1ncm91cCArIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUsXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAudGFibGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlIGNhcHRpb24sXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSBjYXB0aW9uLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIGNhcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbn1cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xufVxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4ucGFuZWwgPiAucGFuZWwtYm9keSArIC50YWJsZSxcbi5wYW5lbCA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLXJlc3BvbnNpdmUsXG4ucGFuZWwgPiAudGFibGUgKyAucGFuZWwtYm9keSxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlICsgLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5wYW5lbCA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGgsXG4ucGFuZWwgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ucGFuZWwtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5wYW5lbC1ncm91cCAucGFuZWwgKyAucGFuZWwge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4ucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcge1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHksXG4ucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wOiAwO1xufVxuLnBhbmVsLWdyb3VwIC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cbi5wYW5lbC1kZWZhdWx0IHtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xufVxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4ucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZGRkO1xufVxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2Y1ZjVmNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMztcbn1cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2RkZDtcbn1cbi5wYW5lbC1wcmltYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiAjMDBlNWYwO1xufVxuLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBlNWYwO1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDBlNWYwO1xufVxuLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogIzAwZTVmMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwZTVmMDtcbn1cbi5wYW5lbC1zdWNjZXNzIHtcbiAgYm9yZGVyLWNvbG9yOiAjZDZlOWM2O1xufVxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xuICBib3JkZXItY29sb3I6ICNkNmU5YzY7XG59XG4ucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZDZlOWM2O1xufVxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2RmZjBkODtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjNzYzZDtcbn1cbi5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2Q2ZTljNjtcbn1cbi5wYW5lbC1pbmZvIHtcbiAgYm9yZGVyLWNvbG9yOiAjYmNlOGYxO1xufVxuLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjMzE3MDhmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuICBib3JkZXItY29sb3I6ICNiY2U4ZjE7XG59XG4ucGFuZWwtaW5mbyA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYmNlOGYxO1xufVxuLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2Q5ZWRmNztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMxNzA4Zjtcbn1cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2JjZThmMTtcbn1cbi5wYW5lbC13YXJuaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmFlYmNjO1xufVxuLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzO1xuICBib3JkZXItY29sb3I6ICNmYWViY2M7XG59XG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmFlYmNjO1xufVxuLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2ZjZjhlMztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhhNmQzYjtcbn1cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZhZWJjYztcbn1cbi5wYW5lbC1kYW5nZXIge1xuICBib3JkZXItY29sb3I6ICNlYmNjZDE7XG59XG4ucGFuZWwtZGFuZ2VyID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZWJjY2QxO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZjJkZWRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk0NDQyO1xufVxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNlYmNjZDE7XG59XG4uZW1iZWQtcmVzcG9uc2l2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5lbWJlZC1yZXNwb25zaXZlIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sXG4uZW1iZWQtcmVzcG9uc2l2ZSBpZnJhbWUsXG4uZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZCxcbi5lbWJlZC1yZXNwb25zaXZlIG9iamVjdCxcbi5lbWJlZC1yZXNwb25zaXZlIHZpZGVvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xufVxuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5MyB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4ud2VsbCB7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDE5cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlM2UzZTM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4ud2VsbCBibG9ja3F1b3RlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4ud2VsbC1sZyB7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi53ZWxsLXNtIHtcbiAgcGFkZGluZzogOXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uY2xvc2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgb3BhY2l0eTogMC4yO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MjApO1xufVxuLmNsb3NlOmhvdmVyLFxuLmNsb3NlOmZvY3VzIHtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5idXR0b24uY2xvc2Uge1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbi5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDUwO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG91dGxpbmU6IDA7XG59XG4ubW9kYWwuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG59XG4ubW9kYWwuaW4gLm1vZGFsLWRpYWxvZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuLm1vZGFsLW9wZW4gLm1vZGFsIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMTBweDtcbn1cbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3gtc2hhZG93OiAwIDNweCA5cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBvdXRsaW5lOiAwO1xufVxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG4ubW9kYWwtYmFja2Ryb3AuZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cbi5tb2RhbC1iYWNrZHJvcC5pbiB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbn1cbi5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTtcbn1cbi5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5tb2RhbC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XG59XG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTVweDtcbn1cbi5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAxNXB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG4ubW9kYWwtZm9vdGVyIC5idG4gKyAuYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5tb2RhbC1mb290ZXIgLmJ0bi1ncm91cCAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLm1vZGFsLWZvb3RlciAuYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1vZGFsLWRpYWxvZyB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICB9XG4gIC5tb2RhbC1jb250ZW50IHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB9XG4gIC5tb2RhbC1zbSB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1vZGFsLWxnIHtcbiAgICB3aWR0aDogOTAwcHg7XG4gIH1cbn1cbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDcwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBvcGFjaXR5OiAwO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG4udG9vbHRpcC5pbiB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTtcbn1cbi50b29sdGlwLnRvcCB7XG4gIG1hcmdpbi10b3A6IC0zcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuLnRvb2x0aXAucmlnaHQge1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICBwYWRkaW5nOiAwIDVweDtcbn1cbi50b29sdGlwLmJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgcGFkZGluZzogNXB4IDA7XG59XG4udG9vbHRpcC5sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4udG9vbHRpcC1hcnJvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi50b29sdGlwLnRvcCAudG9vbHRpcC1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC50b3AtbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC50b3AtcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggNXB4IDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzAwMDtcbn1cbi50b29sdGlwLmxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDAgNXB4IDVweDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMDA7XG59XG4udG9vbHRpcC5ib3R0b20gLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAuYm90dG9tLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwO1xufVxuLnRvb2x0aXAuYm90dG9tLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwO1xufVxuLnBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA2MDtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWF4LXdpZHRoOiAyNzZweDtcbiAgcGFkZGluZzogMXB4O1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi5wb3BvdmVyLnRvcCB7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xufVxuLnBvcG92ZXIucmlnaHQge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5wb3BvdmVyLmJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4ucG9wb3Zlci5sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xufVxuLnBvcG92ZXItdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViO1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMDtcbn1cbi5wb3BvdmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiA5cHggMTRweDtcbn1cbi5wb3BvdmVyID4gLmFycm93LFxuLnBvcG92ZXIgPiAuYXJyb3c6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLnBvcG92ZXIgPiAuYXJyb3cge1xuICBib3JkZXItd2lkdGg6IDExcHg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XG4gIGJvcmRlci13aWR0aDogMTBweDtcbiAgY29udGVudDogXCJcIjtcbn1cbi5wb3BvdmVyLnRvcCA+IC5hcnJvdyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBib3R0b206IC0xMXB4O1xufVxuLnBvcG92ZXIudG9wID4gLmFycm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGJvdHRvbTogMXB4O1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmY7XG59XG4ucG9wb3Zlci5yaWdodCA+IC5hcnJvdyB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMTFweDtcbiAgbWFyZ2luLXRvcDogLTExcHg7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM5OTk5OTk7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cbi5wb3BvdmVyLnJpZ2h0ID4gLmFycm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGxlZnQ6IDFweDtcbiAgYm90dG9tOiAtMTBweDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2ZmZjtcbn1cbi5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB0b3A6IC0xMXB4O1xufVxuLnBvcG92ZXIuYm90dG9tID4gLmFycm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIHRvcDogMXB4O1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7XG59XG4ucG9wb3Zlci5sZWZ0ID4gLmFycm93IHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAtMTFweDtcbiAgbWFyZ2luLXRvcDogLTExcHg7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM5OTk5OTk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuLnBvcG92ZXIubGVmdCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICByaWdodDogMXB4O1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xuICBib3R0b206IC0xMHB4O1xufVxuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNhcm91c2VsLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNnMgZWFzZS1pbi1vdXQgbGVmdDtcbiAgLW8tdHJhbnNpdGlvbjogMC42cyBlYXNlLWluLW91dCBsZWZ0O1xuICB0cmFuc2l0aW9uOiAwLjZzIGVhc2UtaW4tb3V0IGxlZnQ7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGltZyxcbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtID4gYSA+IGltZyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuQG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksICgtd2Via2l0LXRyYW5zZm9ybS0zZCkge1xuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwMHB4O1xuICAgIC1tb3otcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLm5leHQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLmFjdGl2ZS5yaWdodCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5wcmV2LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5hY3RpdmUubGVmdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLm5leHQubGVmdCxcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ucHJldi5yaWdodCxcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0uYWN0aXZlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLFxuLmNhcm91c2VsLWlubmVyID4gLm5leHQsXG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZSB7XG4gIGxlZnQ6IDA7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dCxcbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNhcm91c2VsLWlubmVyID4gLm5leHQge1xuICBsZWZ0OiAxMDAlO1xufVxuLmNhcm91c2VsLWlubmVyID4gLnByZXYge1xuICBsZWZ0OiAtMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0LmxlZnQsXG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldi5yaWdodCB7XG4gIGxlZnQ6IDA7XG59XG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLmxlZnQge1xuICBsZWZ0OiAtMTAwJTtcbn1cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUucmlnaHQge1xuICBsZWZ0OiAxMDAlO1xufVxuLmNhcm91c2VsLWNvbnRyb2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTUlO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4uY2Fyb3VzZWwtY29udHJvbC5sZWZ0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpIDAlLCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAxMDAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjODAwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMDAwJywgR3JhZGllbnRUeXBlPTEpO1xufVxuLmNhcm91c2VsLWNvbnRyb2wucmlnaHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC41KSAxMDAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC41KSAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjMDAwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzgwMDAwMDAwJywgR3JhZGllbnRUeXBlPTEpO1xufVxuLmNhcm91c2VsLWNvbnRyb2w6aG92ZXIsXG4uY2Fyb3VzZWwtY29udHJvbDpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDAuOTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTtcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgei1pbmRleDogNTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0IHtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgcmlnaHQ6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0IHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBzZXJpZjtcbn1cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXY6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMjAzOSc7XG59XG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwM2EnO1xufVxuLmNhcm91c2VsLWluZGljYXRvcnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTBweDtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAxNTtcbiAgd2lkdGg6IDYwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMCU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNhcm91c2VsLWluZGljYXRvcnMgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbjogMXB4O1xuICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAgXFw5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZSB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNSU7XG4gIHJpZ2h0OiAxNSU7XG4gIGJvdHRvbTogMjBweDtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uY2Fyb3VzZWwtY2FwdGlvbiAuYnRuIHtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0IHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2IHtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgICBsZWZ0OiAyMCU7XG4gICAgcmlnaHQ6IDIwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgYm90dG9tOiAyMHB4O1xuICB9XG59XG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyLFxuLmRsLWhvcml6b250YWwgZGQ6YmVmb3JlLFxuLmRsLWhvcml6b250YWwgZGQ6YWZ0ZXIsXG4uY29udGFpbmVyOmJlZm9yZSxcbi5jb250YWluZXI6YWZ0ZXIsXG4uY29udGFpbmVyLWZsdWlkOmJlZm9yZSxcbi5jb250YWluZXItZmx1aWQ6YWZ0ZXIsXG4ucm93OmJlZm9yZSxcbi5yb3c6YWZ0ZXIsXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmJlZm9yZSxcbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIsXG4uYnRuLXRvb2xiYXI6YmVmb3JlLFxuLmJ0bi10b29sYmFyOmFmdGVyLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6YmVmb3JlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6YWZ0ZXIsXG4ubmF2OmJlZm9yZSxcbi5uYXY6YWZ0ZXIsXG4ubmF2YmFyOmJlZm9yZSxcbi5uYXZiYXI6YWZ0ZXIsXG4ubmF2YmFyLWhlYWRlcjpiZWZvcmUsXG4ubmF2YmFyLWhlYWRlcjphZnRlcixcbi5uYXZiYXItY29sbGFwc2U6YmVmb3JlLFxuLm5hdmJhci1jb2xsYXBzZTphZnRlcixcbi5wYWdlcjpiZWZvcmUsXG4ucGFnZXI6YWZ0ZXIsXG4ucGFuZWwtYm9keTpiZWZvcmUsXG4ucGFuZWwtYm9keTphZnRlcixcbi5tb2RhbC1oZWFkZXI6YmVmb3JlLFxuLm1vZGFsLWhlYWRlcjphZnRlcixcbi5tb2RhbC1mb290ZXI6YmVmb3JlLFxuLm1vZGFsLWZvb3RlcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbi5jbGVhcmZpeDphZnRlcixcbi5kbC1ob3Jpem9udGFsIGRkOmFmdGVyLFxuLmNvbnRhaW5lcjphZnRlcixcbi5jb250YWluZXItZmx1aWQ6YWZ0ZXIsXG4ucm93OmFmdGVyLFxuLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDphZnRlcixcbi5idG4tdG9vbGJhcjphZnRlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmFmdGVyLFxuLm5hdjphZnRlcixcbi5uYXZiYXI6YWZ0ZXIsXG4ubmF2YmFyLWhlYWRlcjphZnRlcixcbi5uYXZiYXItY29sbGFwc2U6YWZ0ZXIsXG4ucGFnZXI6YWZ0ZXIsXG4ucGFuZWwtYm9keTphZnRlcixcbi5tb2RhbC1oZWFkZXI6YWZ0ZXIsXG4ubW9kYWwtZm9vdGVyOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4uY2VudGVyLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuLnB1bGwtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmFmZml4IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuQC1tcy12aWV3cG9ydCB7XG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7XG59XG4udmlzaWJsZS14cyxcbi52aXNpYmxlLXNtLFxuLnZpc2libGUtbWQsXG4udmlzaWJsZS1sZyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi52aXNpYmxlLXhzLWJsb2NrLFxuLnZpc2libGUteHMtaW5saW5lLFxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtc20tYmxvY2ssXG4udmlzaWJsZS1zbS1pbmxpbmUsXG4udmlzaWJsZS1zbS1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1tZC1ibG9jayxcbi52aXNpYmxlLW1kLWlubGluZSxcbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayxcbi52aXNpYmxlLWxnLWJsb2NrLFxuLnZpc2libGUtbGctaW5saW5lLFxuLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS14cyxcbiAgdGQudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudmlzaWJsZS14cy1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLXNtLFxuICB0ZC52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXNtLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbS1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLW1kLFxuICB0ZC52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLW1kLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1sZyxcbiAgdGQudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5oaWRkZW4teHMge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmhpZGRlbi1zbSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmhpZGRlbi1tZCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oaWRkZW4tbGcge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtcHJpbnQsXG4gIHRkLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIHByaW50IHtcbiAgLmhpZGRlbi1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVNTIFZBUklBQkxFU1xuKiogICAgICAgICAgICAgICAgVGhpcyBzdHlsZXNoZWV0IHNob3VsZCBvbmx5IGNvbnRhaW4gdmFyaWFibGVzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBwYWxldHRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udG9wLWJ1ZmZlci0xIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi50b3AtYnVmZmVyLTIge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuLnRvcC1idWZmZXItMyB7XG4gIG1hcmdpbi10b3A6IDQ1cHg7XG59XG4udG9wLWJ1ZmZlci00IHtcbiAgbWFyZ2luLXRvcDogNjBweDtcbn1cbi50b3AtYnVmZmVyLTUge1xuICBtYXJnaW4tdG9wOiA3NXB4O1xufVxuLnRvcC1idWZmZXItNiB7XG4gIG1hcmdpbi10b3A6IDkwcHg7XG59XG4udG9wLWJ1ZmZlci03IHtcbiAgbWFyZ2luLXRvcDogMTA1cHg7XG59XG4udG9wLWJ1ZmZlci04IHtcbiAgbWFyZ2luLXRvcDogMTIwcHg7XG59XG4udG9wLWJ1ZmZlci05IHtcbiAgbWFyZ2luLXRvcDogMTM1cHg7XG59XG4udG9wLWJ1ZmZlci0xMCB7XG4gIG1hcmdpbi10b3A6IDE1MHB4O1xufVxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU1QQUMgTUFURVJJQUxcbi8qICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qKiBNaXhpbiBtYXRlcmlhbCBzdHlsZWQgZm9ybSBpbnB1dHMsIG92ZXJyaWRpbmcgYm9vdHN0cmFwJ3MgdW5nb2RseSByb3VuZC1uZXNzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiBERU1PIEhUTUwgLSB1c2UgdGhpcyBodG1sIHRvIHRlc3QgYWxsIGltcGFjIG1hdGVyaWFsIGZlYXR1cmVzLlxuPGZvcm0+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgPHNlbGVjdD5cbiAgICAgIDxvcHRpb24+VmFsdWUgMTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbj5WYWx1ZSAyPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gICAgPGxhYmVsIGZvcj1cInNlbGVjdFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPlNlbGVjdGJveDwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5UZXh0ZmllbGQ8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1tZXNzYWdlc1wiPlxuICAgICAgPHA+VGhpcyBpcyBhbiBlcnJvciBtZXNzYWdlPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0taW5saW5lXCI+XG4gICAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPklubGluZTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlcXVpcmVkLz5cbiAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dFwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPklubGluZTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDx0ZXh0YXJlYSByZXF1aXJlZD48L3RleHRhcmVhPlxuICAgIDxsYWJlbCBmb3I9XCJ0ZXh0YXJlYVwiIGNsYXNzPVwiaW0tY29udHJvbC1sYWJlbFwiPlRleHRhcmVhPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjaGVja2VkPVwiY2hlY2tlZFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIGNoZWNrYm94XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLXJhZGlvXCI+XG4gICAgPGRpdiBjbGFzcz1cImltLXJhZGlvXCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicmFkaW9cIiBjaGVja2VkPVwiY2hlY2tlZFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSByYWRpbyBidXR0b25cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImltLXJhZGlvXCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwicmFkaW9cIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgcmFkaW8gYnV0dG9uXG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImltLWZhYiBpbS1wcmltYXJ5XCI+PGk+4pmlPC9pPjwvYnV0dG9uPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImltLWZhYiBpbS13YXJuXCI+PGk+4pmlPC9pPjwvYnV0dG9uPlxuPC9mb3JtPlxuKi9cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JBTCBTVFlMRVNcbioqICAgICAgICBUaGlzIHN0eWxlc2hlZXQgc2hvdWxkIG9ubHkgY29udGFpbiBzdHlsZXMgYXBwbGllZCBnbG9iYWwgb3IgaW5cbioqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgb3IgbW9yZSBjb21wb25lbnRzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDElICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIGgyIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyBoMyB7XG4gIG1hcmdpbjogMHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIGg0IHtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5hbmFseXRpY3MgLnBvc2l0aXZlLFxuLmFuYWx5dGljcyAuZ3JlZW4ge1xuICBjb2xvcjogZ3JlZW4gIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLm5lZ2F0aXZlLFxuLmFuYWx5dGljcyAucmVkIHtcbiAgY29sb3I6ICNlZDFlNzkgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLnBvc2l0aXZlMiB7XG4gIGNvbG9yOiAjM2ZjNGZmICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIC5uZWdhdGl2ZTIge1xuICBjb2xvcjogIzFkZTliNiAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyBhIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjOTc3YmYwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5pbnB1dC1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFuYWx5dGljcyBzZWxlY3Qge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDMycHg7XG59XG4uYW5hbHl0aWNzIHByZSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMHB4O1xuICBtYXJnaW46IDFweCAwcHggOHB4IDBweDtcbiAgYm9yZGVyOiBub25lO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IDo6LXdlYmtpdC1zY3JvbGxiYXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyIC5rcGkgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgLmtwaSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4OTZiMjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyIC5rcGkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OWEyYmI7XG59XG4uYW5hbHl0aWNzIC5ub3BhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuLmFuYWx5dGljcyAubm9tYXJnaW4ge1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIC5idG4uYnRuLXNoYWRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzI2MmQ7XG4gIGJvcmRlcjogc29saWQgMXB4ICMwZTE4MWM7XG4gIGNvbG9yOiAjNjI2ZDZkO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmFuYWx5dGljcyAuYnRuLmJ0bi1zaGFkZWQ6aG92ZXIge1xuICBjb2xvcjogIzZlN2E3YTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIwMzQzZTtcbn1cbi5hbmFseXRpY3MgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuLmFuYWx5dGljcyAuY3VycmVuY3kge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjOWJhNmE3O1xufVxuLmFuYWx5dGljcyAubGVnZW5kIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcyAubG9hZGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLmxvYWRlciBpIHtcbiAgY29sb3I6ICM2N0JCRTk7XG59XG4uYW5hbHl0aWNzIC5sb2FkZXIgcCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC5yaWdodC1wYW5lbCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI2U2ZTZlNjtcbn1cbi5hbmFseXRpY3MgLnNlbGVjdG9yIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzYyNmQ2ZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAudGlsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggMTBweCAtN3B4ICMxNzI2MmQ7XG4gIGhlaWdodDogNDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAudGlsZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMmYyZmY7XG59XG4uYW5hbHl0aWNzIC50aWxlIC5jb2xvcmVkLWFyZWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0ZDNEZGO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZsb2F0OiByaWdodDtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIG1pbi13aWR0aDogOCU7XG59XG4uYW5hbHl0aWNzIC50aWxlIC5jb2xvcmVkLWFyZWEuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAudGlsZSAubWFpbi10ZXh0IHtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHBhZGRpbmc6IDIwcHggMHB4IDBweCA1cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDBweCAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lIHtcbiAgcGFkZGluZzogNXB4O1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIge1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjOWJhNmE3O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSB7XG4gICAgbWFyZ2luOiBpbmhlcml0O1xuICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lID4gW2NsYXNzKj0nY29sLSddIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy53aWRnZXQtbGluZSBpLmZhIHtcbiAgbWluLXdpZHRoOiAxMnB4O1xuICBtaW4taGVpZ2h0OiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93IC5kYXNoZWQge1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNkZmUyZTI7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLnJvdy5saW5lcy1ncm91cCB7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCAjZTZlZGVlO1xufVxuLnZlcnRpY2FsLXNjcm9sbCB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbi5ob3Jpem9udGFsLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cbi50b29sdGlwLmltcGFjLXdpZGdldHMtdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzMjUyODtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnRvb2x0aXAuaW1wYWMtd2lkZ2V0cy10b29sdGlwIC50b29sdGlwLWlubmVyLm5nLWJpbmRpbmcgc3Ryb25nIHtcbiAgY29sb3I6ICNkYWUxNzM7XG59XG4uc29ydGFibGUtdGl0bGUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc29ydGFibGUtdGl0bGUgZGl2IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTAxZjc0O1xufVxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTAxZjc0O1xufVxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICMwMGU1ZjA7XG59XG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzAwZTVmMDtcbn1cbi5yb3cubm8tZ3V0dGVycyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5bY2xhc3NePVwiY29sLVwiXS5uby1ndXR0ZXJzLFxuW2NsYXNzKj1cIiBjb2wtXCJdLm5vLWd1dHRlcnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5AbWVkaWEgcHJpbnQge1xuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbmFseXRpY3Mge1xuICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAuYW5hbHl0aWNzICNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAudGl0bGUtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAyNzBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciBjYW52YXMge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnJpZ2h0LXBhbmVsIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnJpZ2h0LXBhbmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogaW5oZXJpdDtcbiAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIGNhbnZhcyB7XG4gICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogODAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgKiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKipcbiAqICBEbyBub3QgcmVtb3ZlIHRoaXMgY29tbWVudHMgYmVsbG93LiBJdCdzIHRoZSBtYXJrZXJzIHVzZWQgYnkgZ3VscC1pbmplY3QgdG8gaW5qZWN0XG4gKiAgYWxsIHlvdXIgbGVzcyBmaWxlcyBhdXRvbWF0aWNhbGx5XG4gKi9cbi8qIGluamVjdDppbXBvcnRzICovXG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkge1xuICBsaW5lLWhlaWdodDogMjtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsID4gbGkubGlzdC1ncm91cC1pdGVtIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogNnB4IDE1cHg7XG4gIGNvbG9yOiAjOWJhNmE3O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsID4gbGkubGlzdC1ncm91cC1pdGVtIC5hbGVydC10b2dnbGU6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bCA+IGxpLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUge1xuICBjb2xvcjogIzM1OGZkYztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6ICNjNGNhY2E7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSAuZmEuZmEtdG9nZ2xlLW9uLFxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgLmZhLmZhLXRvZ2dsZS1vZmYge1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLmtwaS1hbGVydHMtc2V0dGluZ3MgLm1vZGFsLWJvZHkgdWwucmVjaXBpZW50cy1saXN0IHtcbiAgaGVpZ2h0OiA3NXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjNGNhY2E7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSB1bC5yZWNpcGllbnRzLWxpc3QgbGkge1xuICBib3JkZXI6IG5vbmU7XG59XG4ua3BpLWFsZXJ0cy1zZXR0aW5ncyAubW9kYWwtYm9keSBpbnB1dC5yZWNpcGllbnQtc2VhcmNoIHtcbiAgY29sb3I6IGJsYWNrO1xuICB3aWR0aDogMTAwJTtcbn1cbi5rcGktYWxlcnRzLXNldHRpbmdzIC5tb2RhbC1ib2R5IHVsLmF2YWlsYWJsZSB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3Mge1xuICBwYWRkaW5nLXRvcDogNTBweDtcbiAgbWFyZ2luLWxlZnQ6IDEwMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyB7XG4gICAgcGFkZGluZy10b3A6IDE1MHB4O1xuICB9XG59XG4uYW5hbHl0aWNzLnBkZi1tb2RlIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59XG4uYW5hbHl0aWNzLnNob3ctZGhiIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcztcbiAgb3BhY2l0eTogMTtcbn1cbi5hbmFseXRpY3MuaGlkZS1kaGIge1xuICBvcGFjaXR5OiAwO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLWhlYWRpbmcgaW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgbWF4LXdpZHRoOiAyMDBweDtcbiAgbWF4LWhlaWdodDogMTUwcHg7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtaGVhZGluZyBpbWcucGRmLW1vZGU6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtaGVhZGluZyAuY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luOiA1cHggMHB4O1xufVxuLmFuYWx5dGljcyAjc3ViLW1lbnUge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAjc3ViLW1lbnUgaDMge1xuICBmb250LXNpemU6IDI2cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjMjMzODQ1O1xufVxuLmFuYWx5dGljcyAjc3ViLW1lbnUgLmZhLmZhLXRpbWVzIHtcbiAgbWFyZ2luOiA2cHg7XG4gIGNvbG9yOiAjM2Q2MTc4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMzM4NDU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMHB4IDQ1cHggMTBweCA0NXB4O1xuICBtYXJnaW46IDEwcHggLTQ1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogQ2hyb21lL1NhZmFyaSAqL1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBGaXJlZm94ICovXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogSUUxMCsgKi9cbiAgLyogUnVsZXMgYmVsb3cgbm90IGltcGxlbWVudGVkIGluIGJyb3dzZXJzIHlldCAqL1xuICAtby11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIHtcbiAgICBwYWRkaW5nOiAwIDE1cHggMTBweCAxNXB4O1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSB7XG4gIHBhZGRpbmc6IDE1cHggMHB4O1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzJkNDg1OTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAudGl0bGUgcC5pbnN0cnVjdGlvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luOiAwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSBwLmluc3RydWN0aW9uIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSAud2lkZ2V0LWFkZGVkLmJhZGdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBvcGFjaXR5OiAwO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50aXRsZSAuZmEuY2xvc2Utc2VsZWN0b3Ige1xuICBmbG9hdDogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwYWRkaW5nOiA2cHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnRpdGxlIC5mYS5jbG9zZS1zZWxlY3Rvcjpob3ZlciB7XG4gIGNvbG9yOiAjOTk5OTk5O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC50b3AtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAxNXB4IDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1oZWFkZXIge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBoZWlnaHQ6IDIwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICBtYXJnaW4tbGVmdDogMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzIHAge1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbjogMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXMgcDpob3Zlcixcbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuc2VjdGlvbi1saW5lcyBwLnNlbGVjdGVkIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5zZWN0aW9uLWxpbmVzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODQwNGY7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLnNlY3Rpb24tbGluZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJkNDg1OTtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuY2F0ZWdvcmllcy1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gW2NsYXNzKj0nY29sLSddOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogM3B4IDEycHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzIC5saW5lLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWUzMDNiO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyAubGluZS1pdGVtLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTJweCAycHggMTBweCAtNHB4IGJsYWNrO1xuICBib3gtc2hhZG93OiAtMnB4IDJweCAxMHB4IC00cHggYmxhY2s7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiAuYXJyb3ctaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzM3B4O1xuICByaWdodDogLTExcHg7XG4gIHotaW5kZXg6IDE7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmNhdGVnb3JpZXMtc2VjdGlvbiAuYXJyb3ctaWNvbiAuc3F1YXJlIHtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxN3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5jYXRlZ29yaWVzLXNlY3Rpb24gLmFycm93LWljb24gaS5mYS5mYS1jYXJldC1yaWdodCB7XG4gIGZvbnQtc2l6ZTogNTJweDtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGZsb2F0OiByaWdodDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xLjVweDtcbiAgcmlnaHQ6IDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlMzAzYjtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWhlYWRlciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzIHtcbiAgcGFkZGluZzogM3B4IDBweDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgLmZhLmZhLXBsdXMtY2lyY2xlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAzcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGhlaWdodDogMCU7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCA+IC5ncmlkLWl0ZW0ge1xuICBwYWRkaW5nOiAwIDEzcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleDogMCAzMS4zMyU7XG4gIG1hcmdpbjogMCAxJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMyMzM4NDU7XG4gIG1pbi1oZWlnaHQ6IDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAud2lkZ2V0cy1zZWN0aW9uID4gLnNlY3Rpb24tbGluZXMgPiAubGluZS1pdGVtcy1ncmlkID4gLmdyaWQtaXRlbSB7XG4gICAgZmxleDogMCAxMDAlO1xuICB9XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLndpZGdldHMtc2VjdGlvbiA+IC5zZWN0aW9uLWxpbmVzID4gLmxpbmUtaXRlbXMtZ3JpZCA+IC5ncmlkLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC53aWRnZXRzLXNlY3Rpb24gPiAuc2VjdGlvbi1saW5lcyA+IC5saW5lLWl0ZW1zLWdyaWQgPiAuZ3JpZC1pdGVtIHAubGluZS1pdGVtIHtcbiAgZmxleC1ncm93OiAxO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0LXNlbGVjdG9yIC5ib3R0b20ge1xuICBoZWlnaHQ6IDIwcHg7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBvcGFjaXR5OiAwLjc7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzICN3aWRnZXQtc2VsZWN0b3IgLmJvdHRvbSA+IC5zdWdnZXN0aW9uIGE6aG92ZXIge1xuICBjb2xvcjogIzAwZTVmMDtcbn1cbi5hbmFseXRpY3MgI3dpZGdldC1zZWxlY3RvciAuYm90dG9tID4gLnN1Z2dlc3Rpb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4uYW5hbHl0aWNzICNkYXNoYm9hcmQtc2V0dGluZ3MtcGFuZWwgPiBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmFuYWx5dGljcyAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsID4gZGl2ID4gKiB7XG4gIG1hcmdpbjogMHB4IDNweDtcbn1cbi5hbmFseXRpY3MgI2Rhc2hib2FyZC1zZXR0aW5ncy1wYW5lbCBzZWxlY3Qge1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMzRweDtcbiAgcGFkZGluZy10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIGltZy5iZyB7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuLmFuYWx5dGljcyAjbm8td2lkZ2V0cy1jb250YWluZXIgLmltcGFjLWluZm8tbWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgI25vLXdpZGdldHMtY29udGFpbmVyIC5pbXBhYy1pbmZvLW1lc3NhZ2UgLmluZm8tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMjVweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgcGFkZGluZzogMjBweDtcbiAgbWluLWhlaWdodDogMTE1cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMywgMzgsIDQ1LCAwLjcpO1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0cy1zZWN0aW9uICN3aWRnZXRzLWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDcwMHB4O1xufVxuLmFuYWx5dGljcyAjd2lkZ2V0cy1zZWN0aW9uIC5wbGFjZUhvbGRlckJveCB7XG4gIG1hcmdpbjogMTJweDtcbiAgaGVpZ2h0OiAyNjdweDtcbiAgd2lkdGg6IDMwMHB4O1xuICBmbG9hdDogbGVmdDtcbiAgYm9yZGVyOiAycHggZGFzaGVkICNhYmM0YzY7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4uYW5hbHl0aWNzLmxvYWQtZmFpbGVkIHAge1xuICBmb250LXNpemU6IDIycHg7XG59XG4uYW5hbHl0aWNzLmxvYWQtZmFpbGVkIC5zZWNvbmQtbXNnIHAge1xuICBjb2xvcjogI2UwMWY3NDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLnRvb2x0aXAuaW1wYWMtd2lkZ2V0LXNlbGVjdG9yLXRvb2x0aXAgLnRvb2x0aXAtaW5uZXIubmctYmluZGluZyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kaGItY3JlYXRlLW1vZGFsIC5kYXNoYm9hcmQtZm9ybSAuY29sLXNtLTIuY29udHJvbC1sYWJlbCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgaW5wdXQsXG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkgdGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IGJsYWNrO1xufVxuLmltcGFjLXdpZGdldC1zdWdnZXN0aW9uIC5tb2RhbC1ib2R5IHRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxNTBweDtcbn1cbi5pbXBhYy13aWRnZXQtc3VnZ2VzdGlvbiAubW9kYWwtYm9keSAudGhhbmtzLW1lc3NhZ2Uge1xuICBjb2xvcjogI2RhZTE3Mztcbn1cbi5tb2RhbC1mb290ZXIgLmxvYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWJjNGM2O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhci1yb3cge1xuICBtYXJnaW4tdG9wOiA1NHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhci1yb3cucGRmLW1vZGUge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIHtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuYnRuIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDNweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAudGl0bGUtY29udGFpbmVyIGgxIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGNvbG9yOiBibGFjaztcbiAgY3Vyc29yOiBhdXRvO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGUge1xuICBjb2xvcjogIzk3N2JmMDtcbiAgZGlzcGxheTogaW5saW5lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC10aXRsZTpob3ZlciB7XG4gIGNvbG9yOiAjNzM0ZGViO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGUgaS5mYS5mYS1wZW5jaWwge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtdGl0bGUgaS5mYS5mYS1wZW5jaWw6aG92ZXIge1xuICBjb2xvcjogI2RhZTE3Mztcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCB7XG4gIG1hcmdpbjogNXB4IDBweCAxMHB4IDMwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOTc3YmYwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk3N2JmMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlZGVlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbiB7XG4gIGNvbG9yOiAjMTcyNjJkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uLmNyZWF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGFzaGJvYXJkLXNlbGVjdCAub3B0aW9uLmNyZWF0ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MzRkZWI7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbiBpLmZhLmZhLXBlbmNpbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZy10b3A6IDdweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTUlO1xuICBoZWlnaHQ6IDMwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLmJ1dHRvbnMtYmFyIC5kcm9wZG93bi1jb250YWluZXIgLmRhc2hib2FyZC1zZWxlY3QgLm9wdGlvbiBpLmZhLmZhLXBlbmNpbDpob3ZlciB7XG4gIGNvbG9yOiAjNzM0ZGViO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5kYXNoYm9hcmQtc2VsZWN0IC5vcHRpb24gc3Bhbi5uYW1lIHtcbiAgd2lkdGg6IDg1JTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAuZHJvcGRvd24tY29udGFpbmVyIC5jaGFuZ2UtbmFtZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzMHB4O1xuICBsZWZ0OiAyMHB4O1xuICB3aWR0aDogNjAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcyNjJkO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggMjVweCA0cHggYmxhY2s7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCA0cHggYmxhY2s7XG4gIHotaW5kZXg6IDUwO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuY2hhbmdlLW5hbWUgLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMjVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmRyb3Bkb3duLWNvbnRhaW5lciAuZGF0YS1zb3VyY2UtbGFiZWwge1xuICBjb2xvcjogIzE3MjYyZDtcbiAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gIG1hcmdpbjogMHB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5idXR0b25zLWJhciAubG9hZGVyLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAuYnV0dG9ucy1iYXIgLmxvYWRlci1jb250YWluZXIgLmxvYWRpbmctc3Bpbm5lciB7XG4gIGNvbG9yOiAjNjdCQkU5O1xuICBmb250LXNpemU6IDQwcHg7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpOmxhc3QtY2hpbGQgPiBhLFxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpOmxhc3QtY2hpbGQgPiBhIHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi10YWJzIGxpOmxhc3QtY2hpbGQgPiBhIHRhYi1oZWFkaW5nIGEsXG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGk6bGFzdC1jaGlsZCA+IGEgdGFiLWhlYWRpbmcgYSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtdGFicyBsaSA+IGEge1xuICBwYWRkaW5nOiAxMHB4IDhweCAxMHB4IDE1cHg7XG4gIG1hcmdpbjogMCAycHggMCAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FiYzRjNjtcbiAgY29sb3I6IGJsYWNrO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGkuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXRhYnMgbGk6bGFzdC1jaGlsZC5hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLm5hdi5uYXYtcGlsbHMgbGkgPiBhIHtcbiAgbWluLXdpZHRoOiAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbiNtb2R1bGVfX2Rhc2hib2FyZC1zZWxlY3RvciAubmF2Lm5hdi1waWxscyBsaTpsYXN0LWNoaWxkIHRhYi1oZWFkaW5nIGEge1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIC5uYXYubmF2LXBpbGxzIGxpOmxhc3QtY2hpbGQuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG59XG4jbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgdGFiLWhlYWRpbmcgYS5jbG9zZS1saW5rIHtcbiAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkO1xuICBtYXJnaW4tbGVmdDogMTJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC05cHg7XG4gIHJpZ2h0OiAxcHg7XG4gIGNvbG9yOiBibGFjaztcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzLWhlYWRlciAudGVtcGxhdGVzLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZ3JvdzogMTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzLWhlYWRlciAudGVtcGxhdGVzLXRvZ2dsZSBpLmZhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzLWhlYWRlciAudGVtcGxhdGVzLXRvZ2dsZSBpLmZhLmZhLXRvZ2dsZS1vbiB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciAudGVtcGxhdGVzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAxcHggMHB4ICNjY2M7XG4gIGhlaWdodDogMTMwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5kYXNoYm9hcmQtdGVtcGxhdGVzLXNlbGVjdG9yIC50ZW1wbGF0ZXMgLnRlbXBsYXRlIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWNlYztcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcyAudGVtcGxhdGU6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDIzMiwgMTE5LCAwLjYyKTtcbn1cbmRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0b3IgLnRlbXBsYXRlcyAudGVtcGxhdGUuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI5LCAxOTcsIDU3LCAwLjYyKTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDIyMHB4O1xuICBtaW4taGVpZ2h0OiA5NXB4O1xuICBtYXgtaGVpZ2h0OiA5NXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAxMHB4IDAgMTBweCAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS50cmlnZ2VyZWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIge1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2UwMWY3NDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZCAua3BpLXRleHQgLmVtcGhhc2lzIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC50b3AtbGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkuYWRkOmhvdmVyIC5rcGktdGV4dCB7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAua3BpLXRleHQgLmVtcGhhc2lzIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLmFkZDpob3ZlciAua3BpLWljb24ge1xuICBjb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5hZGQ6aG92ZXIgLmtwaS1pY29uIC5mYS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaS5lZGl0aW5nIHtcbiAgbWluLWhlaWdodDogMTg1cHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaTpob3ZlciB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpLnN0YXRpYyAua3BpLXZhbHVlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC50b3AtbGluZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogbW92ZTtcbiAgcGFkZGluZzogOXB4IDlweCAwcHggMTJweDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgbWluLWhlaWdodDogN3B4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1pbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC50b3AtbGluZS50cmlnZ2VyZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDkwcHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWNvbnRlbnQuZWRpdGluZyB7XG4gIG1pbi1oZWlnaHQ6IDE4MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzgwcHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IHtcbiAgICBwYWRkaW5nOiAxMHB4IDNweDtcbiAgfVxufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5lbXBoYXNpcyB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5lbXBoYXNpcyAucmVhbC12YWx1ZSB7XG4gIGNvbG9yOiAjNjc2NzY3O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5jYXB0aW9uIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0IHtcbiAgcGFkZGluZzogN3B4IDA7XG4gIGNvbG9yOiBncmV5O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2UtaW47XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0ID4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dC50cmlnZ2VyZWQge1xuICBjb2xvcjogYmxhY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLXNob3cgLmtwaS10ZXh0IC5jYXB0aW9uIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDY1cHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktdGV4dCAuY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICB9XG4gIC5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLXRleHQgLmVtcGhhc2lzIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLWljb24ge1xuICBmb250LXNpemU6IDE2cHg7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgY29sb3I6IGdyZXk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZS1pbjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktc2hvdyAua3BpLWljb24udHJpZ2dlcmVkIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDY1cHgpIHtcbiAgLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1zaG93IC5rcGktaWNvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgfVxufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGEge1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS1uYW1lIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS1uYW1lIGg2IHtcbiAgbWFyZ2luOiAwIDAgNXB4IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnJlYWwtdmFsdWUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYWxlcnQtY2FwdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBiYWNrZ3JvdW5kOiAjZmY5OTk5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0byA1cHggYXV0bztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZzogMnB4O1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS10YXJnZXQtd2F0Y2hhYmxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5rcGktdGFyZ2V0LXVuaXQge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDExcHg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS10YXJnZXQtd2F0Y2hhYmxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICM4ZDhkOGQ7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmtwaS10YXJnZXQtdW5pdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2cHg7XG4gIHJpZ2h0OiAwO1xuICBjb2xvcjogIzlhOWE5YTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAucGFyYW0tbmFtZSB7XG4gIGZvbnQtc2l6ZTogODUlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5idG4uYnRuLXhzIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHtcbiAgLyogRmxhdHRlbiBkZXIgQm9vdHN0cmFwICovXG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLndlbGwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLndlbGwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLm5hdmJhci1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAubmF2YmFyLWlubmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5wb3BvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5wb3BvdmVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5idG4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmJ0bixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAudG9vbHRpcCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAudG9vbHRpcCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHRleHRhcmVhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHRleHRhcmVhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IHByZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBwcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLnByb2dyZXNzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5wcm9ncmVzcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAubW9kYWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLm1vZGFsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5hZGQtb24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmFkZC1vbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYWxlcnQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmFsZXJ0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC50YWJsZS1ib3JkZXJlZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAudGFibGUtYm9yZGVyZWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLm5hdiA+IC5hY3RpdmUgPiBhLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5uYXYgPiAuYWN0aXZlID4gYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuZHJvcGRvd24tbWVudSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuZHJvcGRvd24tbWVudSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAudG9vbHRpcC1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAudG9vbHRpcC1pbm5lcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuYmFkZ2UsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmJhZGdlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAubGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltZy1wb2xhcm9pZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW1nLXBvbGFyb2lkIHtcbiAgLW1vei1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBib2R5LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJvZHksXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgc2VsZWN0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSB0ZXh0YXJlYSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYm9keTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYm9keTo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXQ6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0OjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBzZWxlY3Q6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHNlbGVjdDo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgdGV4dGFyZWE6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHRleHRhcmVhOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBib2R5OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYm9keTo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0OjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgaW5wdXQ6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBzZWxlY3Q6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBzZWxlY3Q6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCB0ZXh0YXJlYTo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIHRleHRhcmVhOjpiZWZvcmUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGE6aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBmaWVsZHNldCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBmaWVsZHNldCB7XG4gIG1hcmdpbjogMCAwIDEuNzVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMS4zMTI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjMxMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0taW5saW5lLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWlubGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0taW5saW5lID4gLmltLWZvcm0tZ3JvdXAsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0taW5saW5lID4gLmltLWZvcm0tZ3JvdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMC4xNzVyZW07XG4gIG1hcmdpbi1yaWdodDogMC4xNzVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0taW5saW5lID4gLmJ0bixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1pbmxpbmUgPiAuYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0IHtcbiAgaGVpZ2h0OiAyLjM3NXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIHJlc2l6ZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCAuaW0tY29udHJvbC1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjMxMjVyZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDAuMTU2MjVyZW07XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiAjYjNiM2IzO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIC5pbS1iYXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgLmltLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogMC4wNzgxMjVyZW0gc29saWQgIzk5OTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgLmltLWJhcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIC5pbS1iYXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDAuMTU2MjVyZW07XG4gIHdpZHRoOiAwO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogLTAuMDc4MTI1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICMzNThmZGM7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4yOHMgZWFzZSwgd2lkdGggMC4yOHMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjE1NjI1cmVtIDAuMTU2MjVyZW0gMC4wNzgxMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBsaW5lLWhlaWdodDogMS45O1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIH4gLmltLWJhcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dFt0eXBlPVwiZmlsZVwiXSB+IC5pbS1iYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dC5oYXMtdmFsdWUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmZvcm0tZmlsZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhLmhhcy12YWx1ZSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIGlucHV0OnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQuaGFzLXZhbHVlIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOnZhbGlkIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHRvcDogLTEuMjVyZW07XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cyB+IC5pbS1iYXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUge1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggbGFiZWwsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1mb3JtLXJhZGlvIGxhYmVsLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1mb3JtLXJhZGlvIGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0LFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tZm9ybS1yYWRpbyBpbnB1dCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tZm9ybS1yYWRpbyBpbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICBvcGFjaXR5OiAwLjAwMDAwMDAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIC5pbS1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTAuMzEyNXJlbTtcbiAgbGVmdDogLTAuMzEyNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICM5OTk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMC4zMTI1cmVtO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yOHMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDAuMTU2MjVyZW0gc29saWQgY3VycmVudENvbG9yO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1yYWRpbyAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBib3JkZXItY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tcmFkaW8gaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3gsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgei1pbmRleDogMDtcbiAgYm9yZGVyOiAwLjE1NjI1cmVtIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMC4wNzgxMjVyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4ZmRjO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNXJlbTtcbiAgY29udGVudDogJyc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yOHMgZWFzZSwgaGVpZ2h0IDBzIGxpbmVhciAwLjI4cztcbiAgb3BhY2l0eTogMDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YmVmb3JlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUge1xuICB0b3A6IDAuODEyNXJlbTtcbiAgbGVmdDogMC40NzVyZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjA3ODEyNXJlbSAjZmZmO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0b3A6IDAuMzc1cmVtO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBsYWJlbDpob3ZlciAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBsYWJlbDpob3ZlciAuaW0taGVscGVyIHtcbiAgY29sb3I6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjI4cyBlYXNlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlciB7XG4gIGhlaWdodDogMC42MjVyZW07XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4yOHM7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmltLXJhZGlvICsgLmltLXJhZGlvLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tY2hlY2tib3ggKyAuaW0tY2hlY2tib3gsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWNoZWNrYm94ICsgLmltLWNoZWNrYm94IHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLW1lc3NhZ2VzIHtcbiAgZm9udC1zaXplOiAxLjA0MTY2NjY3cmVtO1xuICBjb2xvcjogI2UwMWY3NDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IgLmxlZ2VuZC5sZWdlbmQsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvciAubGVnZW5kLmxlZ2VuZCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwuaW0tY29udHJvbC1sYWJlbCB7XG4gIGNvbG9yOiAjZTAxZjc0O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1ncm91cCAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLWNoZWNrYm94IC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1tZXNzYWdlcyxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLWhlbHBlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaGFzLWVycm9yLmltLXJhZGlvIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvci5pbS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0taGVscGVyLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0taGVscGVyIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgLmhhcy1lcnJvciAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmhhcy1lcnJvciAuaW0tYmFyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjZTAxZjc0O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICM2MGE3ZTQ7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgY29sb3I6ICMzMzM7XG4gIG1hcmdpbjogMC43cmVtIDA7XG4gIHBhZGRpbmc6IDAuNDM3NXJlbSAxLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b24gc3Bhbixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSAuaW0tYnV0dG9uIHNwYW4ge1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b246aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbjpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjMjU4M2QzO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b246YWN0aXZlLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIC5pbS1idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCAuaW0tYnV0dG9uIGE6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbiBhOmZvY3VzLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IC5pbS1idXR0b246Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgLmltLWJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLFxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1uby1kYXRhIGJ1dHRvbi5pbS1mYWIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDZweDtcbiAgd2lkdGg6IDQ2cHg7XG4gIGZsZXg6IDAgMCA1NnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogNHB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWI6Zm9jdXMsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYjpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLWVkaXQgYnV0dG9uLmltLWZhYjphY3RpdmUsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYjphY3RpdmUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWIuaW0tcHJpbWFyeSxcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiLmltLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1lZGl0IGJ1dHRvbi5pbS1mYWIuaW0tcHJpbWFyeTpob3Zlcixcbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktbm8tZGF0YSBidXR0b24uaW0tZmFiLmltLXByaW1hcnk6aG92ZXIge1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZS1pbjtcbiAgYmFja2dyb3VuZDogIzI1ODNkMztcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXdhcm4sXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS13YXJuIHtcbiAgYmFja2dyb3VuZDogI2UwMWY3NDtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIC5rcGktZWRpdCBidXR0b24uaW0tZmFiLmltLXdhcm46aG92ZXIsXG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSAua3BpLW5vLWRhdGEgYnV0dG9uLmltLWZhYi5pbS13YXJuOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICNjYTFjNjg7XG59XG4uYW5hbHl0aWNzIC5pbXBhYy1rcGkgLmtwaSBidXR0b24ua3BpLWFsZXJ0cy5pbS1mYWIuaW0tcHJpbWFyeSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTJweDtcbiAgcmlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZDogIzRjNDc0OTtcbn1cbi5hbmFseXRpY3MgLmltcGFjLWtwaSAua3BpIGJ1dHRvbi5rcGktYWxlcnRzLmltLWZhYi5pbS1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VkOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgYnV0dG9uLmtwaS1yZW1vdmUuaW0tZmFiLmltLXdhcm4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEycHg7XG4gIHJpZ2h0OiAtMTFweDtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBiYWNrZ3JvdW5kOiAjNGM0NzQ5O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgYnV0dG9uLmtwaS1yZW1vdmUuaW0tZmFiLmltLXdhcm46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjY2ExYzY4O1xufVxuLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkgLmtwaS1kYXRhLWxvYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA5NXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rZXktc3RhdHMgLmtwaSB7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAvKiBGbGF0dGVuIGRlciBCb290c3RyYXAgKi9cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLndlbGwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLm5hdmJhci1pbm5lcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAucG9wb3Zlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYnRuLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC50b29sdGlwLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHNlbGVjdCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB0ZXh0YXJlYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBwcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLnByb2dyZXNzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5tb2RhbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuYWRkLW9uLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5hbGVydCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAudGFibGUtYm9yZGVyZWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLm5hdiA+IC5hY3RpdmUgPiBhLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5kcm9wZG93bi1tZW51LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC50b29sdGlwLWlubmVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5iYWRnZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAubGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltZy1wb2xhcm9pZCB7XG4gIC1tb3otYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYm9keSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3QsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgdGV4dGFyZWEge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJvZHk6OmFmdGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGlucHV0OjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3Q6OmFmdGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIHRleHRhcmVhOjphZnRlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBib2R5OjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXQ6OmJlZm9yZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBzZWxlY3Q6OmJlZm9yZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB0ZXh0YXJlYTo6YmVmb3JlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBmaWVsZHNldCB7XG4gIG1hcmdpbjogMCAwIDEuNzVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1yYWRpbyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMS4zMTI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjMxMjVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0taW5saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1pbmxpbmUgPiAuaW0tZm9ybS1ncm91cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAwLjE3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjE3NXJlbTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1pbmxpbmUgPiAuYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0IHtcbiAgaGVpZ2h0OiAyLjM3NXJlbTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYSB7XG4gIHJlc2l6ZTogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIHBhZGRpbmc6IDAuMTU2MjVyZW0gMC4xNTYyNXJlbSAwLjA3ODEyNXJlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuMzEyNXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMC4xNTYyNXJlbTtcbiAgei1pbmRleDogMTtcbiAgY29sb3I6ICNiM2IzYjM7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgLmltLWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogMC4wNzgxMjVyZW0gc29saWQgIzk5OTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgLmltLWJhcjo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMC4xNTYyNXJlbTtcbiAgd2lkdGg6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAtMC4wNzgxMjVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogIzM1OGZkYztcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjI4cyBlYXNlLCB3aWR0aCAwLjI4cyBlYXNlO1xuICB6LWluZGV4OiAyO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0LFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IDAuMTU2MjVyZW0gMC4xNTYyNXJlbSAwLjA3ODEyNXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBib3JkZXItd2lkdGg6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjk7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI4cyBlYXNlO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXRbdHlwZT1cImZpbGVcIl0gfiAuaW0tYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBzZWxlY3QsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6dmFsaWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQuZm9ybS1maWxlLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYTp2YWxpZCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWEuaGFzLXZhbHVlIHtcbiAgY29sb3I6ICMzMzM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0IH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dDp2YWxpZCB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0LmZvcm0tZmlsZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0Lmhhcy12YWx1ZSB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6dmFsaWQgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5mb3JtLWZpbGUgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCB0ZXh0YXJlYS5oYXMtdmFsdWUgfiAuaW0tY29udHJvbC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHRvcDogLTEuMjVyZW07XG4gIGxlZnQ6IDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIGlucHV0OmZvY3VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tY29udHJvbC1sYWJlbCxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBpbnB1dDpmb2N1cyB+IC5pbS1jb250cm9sLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgaW5wdXQ6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgfiAuaW0tYmFyOjpiZWZvcmUge1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggbGFiZWwsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tcmFkaW8gbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWZvcm0tcmFkaW8gaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgb3BhY2l0eTogMC4wMDAwMDAwMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIC5pbS1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTAuMzEyNXJlbTtcbiAgbGVmdDogLTAuMzEyNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICM5OTk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMC4zMTI1cmVtO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yOHMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDAuMTU2MjVyZW0gc29saWQgY3VycmVudENvbG9yO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyAuaW0taGVscGVyOjphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNThmZGM7XG4gIGJvcmRlci1jb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tcmFkaW8gbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvIGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAxLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyIHtcbiAgY29sb3I6ICM5OTk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB6LWluZGV4OiAwO1xuICBib3JkZXI6IDAuMTU2MjVyZW0gc29saWQgY3VycmVudENvbG9yO1xuICBib3JkZXItcmFkaXVzOiAwLjA3ODEyNXJlbTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IC5pbS1oZWxwZXI6OmJlZm9yZSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggLmltLWhlbHBlcjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDAuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNThmZGM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgYm9yZGVyLXJhZGl1czogMC4zMTI1cmVtO1xuICBjb250ZW50OiAnJztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI4cyBlYXNlLCBoZWlnaHQgMHMgbGluZWFyIDAuMjhzO1xuICBvcGFjaXR5OiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjpiZWZvcmUge1xuICB0b3A6IDAuODEyNXJlbTtcbiAgbGVmdDogMC40NzVyZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjA3ODEyNXJlbSAjZmZmO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCAuaW0taGVscGVyOjphZnRlciB7XG4gIHRvcDogMC4zNzVyZW07XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5pbS1oZWxwZXI6OmFmdGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmltLWhlbHBlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMjhzIGVhc2U7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjphZnRlciB7XG4gIGhlaWdodDogMC42MjVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuaW0taGVscGVyOjpiZWZvcmUge1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4yOHM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLXJhZGlvICsgLmltLXJhZGlvLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1jaGVja2JveCArIC5pbS1jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLW1lc3NhZ2VzIHtcbiAgZm9udC1zaXplOiAxLjA0MTY2NjY3cmVtO1xuICBjb2xvcjogI2UwMWY3NDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjhzIGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IgLmxlZ2VuZC5sZWdlbmQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1jb250cm9sLWxhYmVsLmltLWNvbnRyb2wtbGFiZWwge1xuICBjb2xvcjogI2UwMWY3NDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWZvcm0tZ3JvdXAgLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tY2hlY2tib3ggLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLW1lc3NhZ2VzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tZm9ybS1yYWRpbyAuaW0tbWVzc2FnZXMsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1mb3JtLWdyb3VwIC5pbS1oZWxwZXIsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmhhcy1lcnJvci5pbS1jaGVja2JveCAuaW0taGVscGVyLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IuaW0tcmFkaW8gLmltLWhlbHBlcixcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaGFzLWVycm9yLmltLWZvcm0tcmFkaW8gLmltLWhlbHBlciB7XG4gIGNvbG9yOiAjZTAxZjc0O1xuICBvcGFjaXR5OiAxO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5oYXMtZXJyb3IgLmltLWJhcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2UwMWY3NDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzYwYTdlNDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBjb2xvcjogIzMzMztcbiAgbWFyZ2luOiAwLjdyZW0gMDtcbiAgcGFkZGluZzogMC40Mzc1cmVtIDEuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tYnV0dG9uOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICMyNTgzZDM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgLmltLWJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIC5pbS1idXR0b24gYTpmb2N1cyxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyAuaW0tYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDZweDtcbiAgd2lkdGg6IDQ2cHg7XG4gIGZsZXg6IDAgMCA1NnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogNHB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWI6Zm9jdXMge1xuICBvdXRsaW5lOiAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWI6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmltLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuaW0tcHJpbWFyeTpob3ZlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLWluO1xuICBiYWNrZ3JvdW5kOiAjMjU4M2QzO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuaW0td2FybiB7XG4gIGJhY2tncm91bmQ6ICNlMDFmNzQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5pbS13YXJuOmhvdmVyIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2UtaW47XG4gIGJhY2tncm91bmQ6ICNjYTFjNjg7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZS1pbjtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLmltLXByaW1hcnksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMuaW0tcHJpbWFyeSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQuaW0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5hZGQta3Bpcy5pbS1wcmltYXJ5LmRpc2FibGVkLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnkuZGlzYWJsZWQsXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50LmltLXByaW1hcnkuZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjJiNWMxO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMuaW0tcHJpbWFyeS5kaXNhYmxlZCBhLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzLmltLXByaW1hcnkuZGlzYWJsZWQgYSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQuaW0tcHJpbWFyeS5kaXNhYmxlZCBhIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzLmltLXByaW1hcnk6aG92ZXI6bm90KC5kaXNhYmxlZCksXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMuaW0tcHJpbWFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSxcbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQuaW0tcHJpbWFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIudG9nZ2xlLXNob3ctY29udGVudCB7XG4gIHRvcDogLTE1cHg7XG4gIHJpZ2h0OiAtMTVweDtcbiAgei1pbmRleDogMTA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50IHtcbiAgICB0b3A6IC0zMHB4O1xuICAgIHJpZ2h0OiAtMTRweDtcbiAgICBib3R0b206IDA7XG4gIH1cbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyBidXR0b24uaW0tZmFiLmFkZC1rcGlzIHtcbiAgdG9wOiAzMHB4O1xuICByaWdodDogLTE1cHg7XG4gIHotaW5kZXg6IDEwO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5hY3Rpb25zIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMge1xuICAgIHRvcDogLTMwcHg7XG4gICAgcmlnaHQ6IDMzcHg7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMge1xuICB0b3A6IDc1cHg7XG4gIHJpZ2h0OiAtMTVweDtcbiAgei1pbmRleDogMTA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMuZWRpdGluZyB7XG4gIGJhY2tncm91bmQ6ICMzNThmZGM7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMuZWRpdGluZzpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6ICM3NmIzZTc7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmFjdGlvbnMgYnV0dG9uLmltLWZhYi5lZGl0LWtwaXMge1xuICAgIHRvcDogLTMwcHg7XG4gICAgcmlnaHQ6IDc5cHg7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQtYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbn1cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzI1cHgpIHtcbiAgLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDYwcHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5pbXBhYy1rcGkge1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua3BpcyAuY29udGVudCAuaW1wYWMta3BpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgfVxufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5pbXBhYy1rcGkgLmtwaS5hZGQgLmtwaS1zaG93IC5jYXB0aW9uIHtcbiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLnRpdGxlIC50ZXh0LWNlbnRlciB7XG4gIGxpbmUtaGVpZ2h0OiAzO1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIGZvbnQtc2l6ZTogbGFyZ2VyO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC50aXRsZSAuYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOHB4O1xuICBsZWZ0OiAtMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZTU1YztcbiAgY29sb3I6ICM0ZjU5NTk7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IC0xcHg7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLnRpdGxlIC5uby1rcGktdGVtcGxhdGVzIHtcbiAgY29sb3I6ICNhZmFkYjU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLmFkZC1iYXIge1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5rcGktbG9hZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDExNXB4O1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5kYXRlcy1waWNrZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDQwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMgLmNvbnRlbnQgLmRhdGVzLXBpY2tlci1jb250YWluZXIgLnNkcC1mcm9tLWxhYmVsLFxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rcGlzIC5jb250ZW50IC5kYXRlcy1waWNrZXItY29udGFpbmVyIC5zZHAtdG8tbGFiZWwge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFuYWx5dGljcyBrcGlzLWJhciA+IC5rZXktc3RhdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogNXB4IDBweDtcbn1cbi5hbmFseXRpY3MucGRmLW1vZGUga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ud2lkZ2V0LWl0ZW0ge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzO1xuICBwYWRkaW5nOiAxMnB4O1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEycHggMHB4O1xufVxuLndpZGdldC1pdGVtIC50b3AtbGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBtb3ZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogOXB4IDlweCAwcHggMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwcHggMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYzhkN2Q5O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBtaW4taGVpZ2h0OiA0MXB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAxcHggOHB4IC00cHg7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggOHB4IC00cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHotaW5kZXg6IDQ7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA1cHggNXB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYzhkN2Q5O1xuICBib3JkZXItdG9wOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtNHB4O1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQge1xuICAgIGhlaWdodDogMjUwcHg7XG4gIH1cbiAgLndpZGdldC1pdGVtIC5jb250ZW50IC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMjcwcHg7XG4gICAgbWF4LWhlaWdodDogMTI1cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHBhZGRpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLndpZGdldC1pdGVtIC5jb250ZW50IC5lZGl0IC5ib3R0b20tYnV0dG9ucyAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgcGFkZGluZzogM3B4IDEzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0bi5idG4tZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMmM0YzQ7XG4gIGJvcmRlcjogc29saWQgMXB4ICNhOGFiYWI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0bi5idG4tZGVmYXVsdDpob3ZlciB7XG4gIGJvcmRlcjogc29saWQgMXB4ICM4ZTkyOTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGFiYWI7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgaDQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAucGFydCB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgcGFkZGluZzogMTBweCAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7XG4gIGJvcmRlcjogc29saWQgMXB4ICNkZmUyZTI7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQgaDUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi53aWRnZXQtaXRlbSAuY29udGVudCAuZWRpdCAucGFydCBsYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmVkaXQgLnBhcnQgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIG1hcmdpbjogMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYWNiMGIxO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM3MjcyOGI7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjZXNzaWJsZSB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmNvbnRlbnQtdGVtcGxhdGUtd3JhcHBlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCB7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogaW5oZXJpdDtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuY29udGVudCAuZmEtcGx1cy1zcXVhcmUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0N1wiO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5jb250ZW50IC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgcG9zaXRpb246IGluaGVyaXQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLndpZGdldC1pdGVtLnBkZi1tb2RlIC5pbmNsdWRlLXRvLXBkZi50aXRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIqMTJweCApO1xuICB6LWluZGV4OiAzO1xuICBwYWRkaW5nLXJpZ2h0OiAxcHg7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmLnRpdGxlIGg2IHtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQzkyODtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDA7XG59XG4ud2lkZ2V0LWl0ZW0ucGRmLW1vZGUgLmluY2x1ZGUtdG8tcGRmLnRpY2sgaSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzNSU7XG4gIGxlZnQ6IDQ2JTtcbiAgZm9udC1zaXplOiAxMDBweDtcbiAgb3BhY2l0eTogLjU7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiBibGFjaztcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYgLndpZGdldC1ob3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogOXB4O1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gIHRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgei1pbmRleDogMTtcbn1cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGYgLndpZGdldC1ob3Zlcjpob3ZlciB7XG4gIG9wYWNpdHk6IC41O1xuICBiYWNrZ3JvdW5kOiAjQ0NDRkQwO1xufVxuLndpZGdldC1pdGVtIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5vdmVybGF5LFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAub3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHRvcDogMnB4O1xuICBsZWZ0OiAycHg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgei1pbmRleDogMztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTI1cHg7XG4gIGxlZnQ6IDUwJTtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogODUlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmOGY5O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG4gIHotaW5kZXg6IDQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2UgLnRpdGxlLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSAudGl0bGUge1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTI4MzE7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHAsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHAge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSAuYnRuLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAubWVzc2FnZSAuYnRuIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlLFxuLmFuYWx5dGljcyAua3BpIC5kYXRhLW5vdC1mb3VuZCAuZXhhbXBsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5MjgzMTtcbiAgcGFkZGluZzogM3B4O1xuICB6LWluZGV4OiA2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlIGEsXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5leGFtcGxlIGEge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogI2RhZTE3Mztcbn1cbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm1lc3NhZ2Uge1xuICB3aWR0aDogOTAlO1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCBzaWx2ZXI7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHAge1xuICBtYXJnaW46IDVweDtcbn1cbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLm92ZXJsYXksXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIC50aXRsZSxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLmJ0bixcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQgLmV4YW1wbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyBjb21tb24tZGVsZXRlLXdpZGdldCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgY29tbW9uLWRlbGV0ZS13aWRnZXQgLm92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDRweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICBvcGFjaXR5OiAwLjY7XG4gIHotaW5kZXg6IDU7XG59XG4uYW5hbHl0aWNzIGNvbW1vbi1kZWxldGUtd2lkZ2V0IC5tZXNzYWdlIHtcbiAgei1pbmRleDogNjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHRvcDogNDVweDtcbiAgbGVmdDogNyU7XG4gIHdpZHRoOiA4NiU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY4Zjk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgY29tbW9uLWRlbGV0ZS13aWRnZXQgLm1lc3NhZ2UgLnRpdGxlIHtcbiAgcGFkZGluZzogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5hbmFseXRpY3MgY29tbW9uLWRlbGV0ZS13aWRnZXQgLm1lc3NhZ2UgLmxvYWRlciBpLmZhLmZhLXNwaW5uZXIge1xuICBmb250LXNpemU6IDI2cHg7XG59XG4uYW5hbHl0aWNzIGNvbW1vbi1kZWxldGUtd2lkZ2V0IC5tZXNzYWdlIHAge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbi5hbmFseXRpY3MgY29tbW9uLWRlbGV0ZS13aWRnZXQgLm1lc3NhZ2UgYnV0dG9uLmJ0biB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNHB4KTtcbiAgdG9wOiAycHg7XG4gIGxlZnQ6IDJweDtcbiAgb3BhY2l0eTogMC42O1xuICB6LWluZGV4OiA1O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2Uge1xuICB6LWluZGV4OiA2O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgdG9wOiA0NXB4O1xuICBsZWZ0OiA3JTtcbiAgd2lkdGg6IDg2JTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjhmOTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDI1cHggMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLnRpdGxlIHtcbiAgcGFkZGluZzogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogLTFweCAtMXB4IDEwcHggLTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIHtcbiAgdG9wOiAzMHB4O1xuICBsZWZ0OiAzNSU7XG4gIHdpZHRoOiAzMCU7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSB7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1hZGQgLm1lc3NhZ2UgLmZvcm0gPiBsYWJlbCxcbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5jb21pbmctc29vbiA+IGxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIGlucHV0LmZvcm0tY29udHJvbCB7XG4gIHdpZHRoOiA5MCU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBmb250LXNpemU6IDEzcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IDIycHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuYnRuLWdyb3VwIHNlbGVjdCB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuY29taW5nLXNvb24ge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4IHNpbHZlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjODg4ODg4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuY29taW5nLXNvb24gLmJhZGdlIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5mb3JtIC5jb21pbmctc29vbiAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuY29taW5nLXNvb24gLmJ0bi1ncm91cCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuY29taW5nLXNvb24gLmJ0bi1ncm91cCBzZWxlY3Qge1xuICBoZWlnaHQ6IDIycHg7XG59XG4jdHJhbnNhY3Rpb25zLWFkZCAubWVzc2FnZSAuZm9ybSAuY29taW5nLXNvb24gLmJ0bi1ncm91cCAuYnRuIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzg4ODg4ODtcbn1cbiN0cmFuc2FjdGlvbnMtYWRkIC5tZXNzYWdlIC5ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50b3Age1xuICBoZWlnaHQ6IDQwcHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCBhLmJhY2stbGluayB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRvcCAucGFnaW5hdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiBjYWxjKDU2NXB4IC0gNjBweCk7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgZGl2W3VpYi1kYXRlcGlja2VyLXBvcHVwLXdyYXBdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgaW5wdXQuYnRuLmJ0bi14cyB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciBidXR0b24uYnRuLnJlc2V0LWRhdGUge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuI3RyYW5zYWN0aW9ucy1saXN0IC50YWJsZS1jb250YWluZXIgLmZhLmZhLXRpbWVzIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiN0cmFuc2FjdGlvbnMtbGlzdCAudGFibGUtY29udGFpbmVyIHRyLnRvdGFsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5pbnZvaWNlcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWQxYjE7XG59XG4jdHJhbnNhY3Rpb25zLWxpc3QgLnRhYmxlLWNvbnRhaW5lciB0ci50b3RhbC5iaWxscyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMmFlYjk7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3MuY3VycmVuY3kge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5jdXJyZW5jeSBzZWxlY3Qge1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zaG93LXN0YXR1cyB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnNob3ctc3RhdHVzOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnNob3ctc3RhdHVzIC5mYS5mYS1pbmZvIHtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5zdGF0dXMtYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDVweCA3cHggNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN0YXR1cy1idG4gaSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnN0YXR1cy1idG4gaS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZSB7XG4gIGNvbG9yOiAjZmY3MzAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3RhdHVzLWJ0biBpLmZhLWNoZWNrIHtcbiAgY29sb3I6ICNkMWU1NWM7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIHtcbiAgbWF4LXdpZHRoOiA1NTBweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLmNvbm5lY3RvciB7XG4gIHBhZGRpbmc6IDRweCAxM3B4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAuY29ubmVjdG9yLmFkZC1zZXBlcmF0b3Ige1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLnBvcG92ZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDA7XG59XG4uYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3Muc3luYy1hcHBzIC5wb3BvdmVyIC5wb3BvdmVyLWZvb3RlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiA0cHggMTNweDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLnBvcG92ZXIgLnBvcG92ZXItZm9vdGVyIHAge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luOiAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucG9wb3ZlciAucG9wb3Zlci1mb290ZXIucmVtb3ZlLXNlcGVyYXRvciB7XG4gIGJvcmRlcjogMDtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLmJhZGdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuc3VjY2VzcyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlNTVjO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucGVuZGluZyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3MzAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAucnVubmluZyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3MzAwO1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuZXJyb3IgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMgLmZhaWxlZCAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAudW5rbm93biAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWQxZTc5O1xufVxuLmFuYWx5dGljcyAuZGFzaGJvYXJkLXNldHRpbmdzLnN5bmMtYXBwcyAuZGlzY29ubmVjdGVkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4ICNjY2M7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0IHtcbiAgbWF4LWhlaWdodDogMjgwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgcGFkZGluZzogMTBweDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbSAuYmFkZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uc3VjY2VzcyAuYmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlNTVjO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnBlbmRpbmcgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzMwMDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5ydW5uaW5nIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjczMDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uZXJyb3IgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5mYWlsZWQgLmJhZGdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkMWU3OTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS51bmtub3duIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uZGlzY29ubmVjdGVkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZDFlNzk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbWFyZ2luLWxlZnQ6IDMxcHg7XG4gIG1hcmdpbi10b3A6IDlweDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbSAubWVzc2FnZSBwIHtcbiAgbWFyZ2luOiAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnN1Y2Nlc3MgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI1NSwgNTUsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnBlbmRpbmcgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS5ydW5uaW5nIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDExOCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uZXJyb3IgLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uZmFpbGVkIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLnVua25vd24gLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5tb2RhbC1saXN0LWl0ZW0uZGlzY29ubmVjdGVkIC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtbGlzdC1pdGVtLndpdGgtbWVzc2FnZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLm1vZGFsLWxpc3QtaXRlbS53aXRoLW1lc3NhZ2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAubW9kYWwtZm9vdGVyIHtcbiAgYm9yZGVyOiAwO1xufVxuI3N5bmMtYXBwcy1tb2RhbCAuZmEge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbiNzeW5jLWFwcHMtbW9kYWwgLmZhLmVycm9yIHtcbiAgY29sb3I6ICNGRjAwMDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5mYS53YXJuIHtcbiAgY29sb3I6ICNmZjczMDA7XG59XG4jc3luYy1hcHBzLW1vZGFsIC5mYS5zdWNjZXNzIHtcbiAgY29sb3I6ICM0N2ZmMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtbGlhYmlsaXR5LXN1bW1hcnkgLnBhcmFtLXNlbGVjdG9yIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiA5MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IC5sZWdlbmQgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNkZmUyZTI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtc3VtbWFyeSAubGVnZW5kIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LWhlaWdodDogMTE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1hc3NldHMtc3VtbWFyeSAubGVnZW5kIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjZGZlMmUyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzIC5sZWdlbmQgPiAudGl0bGUgc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWJhbGFuY2Utc2hlZXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogNDkwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI2RmZTJlMjtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlLXNoZWV0IC53aWRnZXQtbGluZXMtY29udGFpbmVyLm5vLXNjcm9sbCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCAubm8tZGF0YS1ibG9jayB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAxNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtcHJvamVjdGlvbiAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmNhc2gtcHJvamVjdGlvbi1jaGFydCB7XG4gIGhlaWdodDogY2FsYyg1NjVweCAtIDUwcHgpO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHJlY3QuaGlnaGNoYXJ0cy1wb2ludCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24gLmhpZ2hjaGFydHMtbGVnZW5kLWl0ZW0gc3BhbiB7XG4gIHdpZHRoOiAxMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHNwYW4gaW1nIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNTVweDtcbiAgaGVpZ2h0OiAyNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIC5kYXRlcy1waWNrZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1wcm9qZWN0aW9uIHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZGF0YS1jb250YWluZXIge1xuICBoZWlnaHQ6IGNhbGMoNTY1cHggLSA1MHB4KTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLmxlZnQtcGFuZWwge1xuICB3aWR0aDogMTgwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgI2Nhc2gtYmFsYW5jZS1sZWdlbmQgLmhlYWRlciAuZ3JvdXAtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gIG1hcmdpbjogM3B4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAjY2FzaC1iYWxhbmNlLWxlZ2VuZCAuaGVhZGVyIC5ncm91cC1pdGVtIGkge1xuICBmb250LXNpemU6IDE5cHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlICNjYXNoLWJhbGFuY2UtbGVnZW5kIC5oZWFkZXIgLmdyb3VwLWl0ZW0gc3BhbiB7XG4gIGNvbG9yOiAjNUI2NjY3O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1iYWxhbmNlIC5sZWdlbmQtaXRlbS1pY29uIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAucmlnaHQtcGFuZWwge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTgwcHgpO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLWJhbGFuY2UgLnJpZ2h0LXBhbmVsIC5jYXNoLWJhbGFuY2UtY2hhcnQge1xuICBoZWlnaHQ6IGNhbGMoNTY1cHggLSA1MHB4KTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSAuZGF0ZXMtcGlja2VyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2FzaC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkgLnJvdy5saW5lcy1ncm91cC5jYXNoIHtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICBib3JkZXItYm90dG9tOiBkb3VibGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jbGFzcy1jb21wYXJpc29uIC5wYXJhbS1zZWxlY3RvciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNsYXNzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA5NHB4O1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24ge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA0MHB4O1xuICBib3R0b206IDMwcHg7XG4gIHdpZHRoOiAxNjBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbiAgY29sb3I6IHdoaXRlO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJhOWY1O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0W2Rpc2FibGVkXTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmE5ZjU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5hZGQtYWNjb3VudCBzZWxlY3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM0ZGViO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiAuYWRkLWFjY291bnQgc2VsZWN0IG9wdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLmFkZC1hY2NvdW50IHNlbGVjdCBvcHRpb25bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY29tcGFyaXNvbiBidXR0b24uY2xvc2Uge1xuICBmb250LXNpemU6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiAxMDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLnJvdyB7XG4gIG1hcmdpbjogMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBmb250LXNpemU6IDExcHg7XG4gIG1heC1oZWlnaHQ6IDIyMHB4O1xuICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNvbXBhcmlzb24gLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgbWFyZ2luLWxlZnQ6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIC5jb21wYXJhYmxlLWVycm9yIGg1IHtcbiAgbWFyZ2luLWxlZnQ6IDEzcHg7XG4gIGNvbG9yOiAjZWQxZTc5O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY3VzdG9tLWNhbGN1bGF0aW9uIGgzIHtcbiAgbWFyZ2luLXRvcDogODVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbiAubGVnZW5kIHtcbiAgbWF4LWhlaWdodDogMTI1cHg7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHBhZGRpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBwYWRkaW5nOiAzcHggMTNweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLmJvdHRvbS1idXR0b25zIC5idG4uYnRuLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJjNGM0O1xuICBib3JkZXI6IHNvbGlkIDFweCAjYThhYmFiO1xuICBjb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCAuYm90dG9tLWJ1dHRvbnMgLmJ0bi5idG4tZGVmYXVsdDpob3ZlciB7XG4gIGJvcmRlcjogc29saWQgMXB4ICM4ZTkyOTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGFiYWI7XG59XG4uYW5hbHl0aWNzLm1vZGFsLWN1c3RvbS1jYWxjdWxhdGlvbiAubW9kYWwtYm9keSAuZWRpdCBoNCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjYzRjYWNhO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLnBhcnQge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xuICBib3JkZXI6IHNvbGlkIDFweCAjZGZlMmUyO1xufVxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkgLmVkaXQgLnBhcnQgaDUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIC5tb2RhbC1ib2R5IC5lZGl0IC5wYXJ0IHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBtYXJnaW46IDBweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2FjYjBiMTtcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNzI3MjhiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZGV0YWlsZWQtY2xhc3NpZmljYXRpb25zIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAuYWNjb3VudC1jbGFzcy10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgbWFyZ2luLWxlZnQ6IDExcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1kZXRhaWxlZC1jbGFzc2lmaWNhdGlvbnMgLnRpbWUtcGVyaW9kLWluZm8ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyAud2lkZ2V0LWxpbmUuaGVhZGVyLnNvcnRpbmcge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IC5sZWdlbmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXgtaGVpZ2h0OiAxMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IC5sZWdlbmQgLnRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtZXhwZW5zZXMtcmV2ZW51ZSAubGVnZW5kIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuc3RhdGVtZW50LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIC5iYWxhbmNlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIC5jdXJyZW5jeS1jZW50ZXJlZCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuaGVhZGVycyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAuc3BhY2VyIHtcbiAgbWluLWhlaWdodDogMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWxpdmUtYmFsYW5jZSAubmVnYXRpdmUyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcGF5YWJsZS1yZWNlaXZhYmxlIC5sZWdlbmQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSAucGF5YWJsZSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wYXlhYmxlLXJlY2VpdmFibGUgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3Mge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcHJvZml0LWFuZC1sb3NzIC5yb3cubGluZXMtZ3JvdXAucHJvZml0IHtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICBib3JkZXItYm90dG9tOiBkb3VibGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1wcm9maXQtYW5kLWxvc3MgLnJvdy53aWRnZXQtbGluZS5oZWFkZXIgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIHtcbiAgbWF4LWhlaWdodDogMjMwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgLnNlcGFyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjNUI2NjY3O1xuICB3aWR0aDogNzUlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsIC5tZW1iZXIge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwgLm1lbWJlciAucHJpY2Uge1xuICBtYXJnaW4tdG9wOiAwcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbCBidXR0b24ge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1yYXRpb3MgLmxlZnQtcGFuZWwuc2ltdWxhdGlvbiAubWVtYmVyIC5sZWdlbmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIC5sZWZ0LXBhbmVsLnNpbXVsYXRpb24gLm1lbWJlciAucHJpY2Uge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXJhdGlvcyAubGVmdC1wYW5lbC5zaW11bGF0aW9uIC5zZXBhcmF0b3Ige1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMgLnJpZ2h0LXBhbmVsIC5sZWdlbmQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZS1kZXRhaWxzIC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLmxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDlweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItZW1wbG95ZWVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlcy1saXN0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIC5lbXBsb3llZS1uYW1lIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLWJhbGFuY2UgLmJhbGFuY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNlIGgzIHtcbiAgbWFyZ2luLXRvcDogMzNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1idXR0b24ge1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy1idXR0b246aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGUgLmZjLXRvb2xiYXIge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGUgLmZjLWRheS1ncmlkLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItbGVhdmVzLXNjaGVkdWxlIC5mYy13aWRnZXQtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzVCNjY2Nztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdCB7XG4gIGN1cnNvcjogYXV0bztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXBheXJvbGwtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItcGF5cm9sbC1zdW1tYXJ5IC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLm5vLWVsZW1lbnQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLmxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5sZWZ0IHtcbiAgICBtYXJnaW4tdG9wOiA2OXB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSBoMy5yaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLnByaWNlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc2FsYXJpZXMtc3VtbWFyeSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUge1xuICBmb250LXNpemU6IDExcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zYWxhcmllcy1zdW1tYXJ5IC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1zdXBlcmFubnVhdGlvbi1hY2NydWFscyBoMyB7XG4gIG1hcmdpbi10b3A6IDYzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIC5sZWdlbmQge1xuICBtYXJnaW4tdG9wOiAyM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgLmN1cnJlbmN5IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItc3VwZXJhbm51YXRpb24tYWNjcnVhbHMgLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci10aW1lc2hlZXRzIC5jdXJyZW5jeSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXRpbWVzaGVldHMgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Qge1xuICBjdXJzb3I6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5uby1lbGVtZW50IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtYWdlZC1wYXlhYmxlcy1yZWNlaXZhYmxlcyAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMTVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWFnZWQtcGF5YWJsZXMtcmVjZWl2YWJsZXMgLnJvdy5hc3Rlcmlja3MtaW5mbyB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLmxlZnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgaDMubGVmdCB7XG4gICAgbWFyZ2luLXRvcDogNjlweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgaDMucmVkdWNlZC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXdvcmtmb3JjZS1zdW1tYXJ5IGgzLnJlZHVjZWQtbGVmdCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgaDMucmlnaHQge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSAucHJpY2Uge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaHItd29ya2ZvcmNlLXN1bW1hcnkgLnJpZ2h0LXBhbmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMzIwcHg7XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLXN1bW1hcnkgLmNoYXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1zdW1tYXJ5IC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50Lmludm9pY2VzLWxpc3QgLmZhLmZhLWluZm8tY2lyY2xlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IC5yaWdodC1jb2x1bW4ge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYWdlZCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAucHJpY2Uge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrIHtcbiAgbWFyZ2luOiA1cHg7XG4gIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jayBmb3JtLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIGlucHV0IHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICB3aWR0aDogMTAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1kYXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgY29sb3I6ICM1QjY2Njc7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1icmVhay1ldmVuIC5ibG9jay50by1icmVha2V2ZW4ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTkyODMxO1xuICBjb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWJyZWFrZXZlbiAudGl0bGUge1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzJhNDQ1Mztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4gLmJsb2NrLnRvLWJyZWFrZXZlbiAuZGVmaW5lLXRleHQge1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIGNvbG9yOiAjMWRlOWI2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sudG8tYnJlYWtldmVuIC5wcmljZSB7XG4gIGNvbG9yOiAjMWRlOWI2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtYnJlYWstZXZlbiAuYmxvY2sgLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmVkZWU7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lIC5zZWxlY3Rpb24tdGFnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHJpZ2h0OiAwcHg7XG4gIG1hcmdpbi10b3A6IC02cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmUwZmI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lLm5vLXNlbGVjdDpob3ZlciB7XG4gIGNvbG9yOiAjNjI2ZDZkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDIzNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY29tcGFyaXNvbiAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1MzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWNvbXBhcmlzb24gLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjUwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIC5jdXJyZW5jeS1jb252ZXJzaW9ucyBpbWcge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmxvYWRlciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAuZGV0YWlscy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDE5NHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAucmlnaHQtcGFuZWwgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAucmlnaHQtcGFuZWwgLmxlZ2VuZCB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN1c3RvbWVyLWRldGFpbHMgLnJvdy50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtY3VzdG9tZXItZGV0YWlscyAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jeWNsZSAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWN5Y2xlIC5sZWdlbmQge1xuICBtYXgtaGVpZ2h0OiAyOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3Qge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCB7XG4gICAgaGVpZ2h0OiA1NjVweDtcbiAgfVxuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDU4NXB4O1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWZvcmVjYXN0IC5lZGl0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDI3NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW4ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW4gLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW4ubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtZm9yZWNhc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lLm1haW4ubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1ncm93dGggLnByaWNlIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBjb2xvcjogIzVCNjY2NztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1ncm93dGggLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IDQ5cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwge1xuICBtaW4taGVpZ2h0OiA1NjVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLmVkaXQge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIC5mdW5uZWwtY29udGFpbmVyIHtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBtYXgtaGVpZ2h0OiA1MDVweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWZ1bm5lbCAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1sZWFkcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAyMzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1saXN0IC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1heC1oZWlnaHQ6IDE3MHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lci5uby1zY3JvbGwge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxpc3QgLnNlbGVjdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAudmFsdWUtY29udGFpbmVyLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC5vcGVyYXRvciB7XG4gIGxpbmUtaGVpZ2h0OiA4NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZS1jb250YWluZXIgLnRpdGxlIHtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIHBhZGRpbmc6IDEwcHggMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV0LXNhbGVzIC52YWx1ZS1jb250YWluZXIgLnZhbHVlLWJveCB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCAjQzRDQUNBO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW5ldC1zYWxlcyAub3BlcmF0b3Ige1xuICBwYWRkaW5nLXRvcDogMzhweDtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMgLnZhbHVlcyB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgfVxufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAuc2VsZWN0b3IgLnNlbGVjdG9yLXdyYXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzIC5jaGFydC1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWF4LWhlaWdodDogNzdweCAhaW1wb3J0YW50O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC5yb3cge1xuICBtYXJnaW46IDBweCAtNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC5yb3cgPiBkaXYge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbmV3LXZzLWV4aXN0aW5nLWN1c3RvbWVycyAubGVnZW5kIC50b3RhbCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIHtcbiAgbWFyZ2luLXRvcDogMzVweDtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCB7XG4gIG1hcmdpbjogMTVweCAwcHggMTBweCAwcHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZTZlZGVlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbnVtYmVyLW9mLWxlYWRzIC5zdGF0cyAuc3RhdCBzcGFuLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIC5zdGF0IHNwYW4ubm9taW5hbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1udW1iZXItb2YtbGVhZHMgLnN0YXRzIC5zdGF0IHNwYW4udmFyaWF0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogNTBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCB7XG4gIG1pbi1oZWlnaHQ6IDU2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIHtcbiAgICBoZWlnaHQ6IDU2NXB4O1xuICB9XG4gIC5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNTg1cHg7XG4gICAgbWF4LWhlaWdodDogNDQwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAuZWRpdCB7XG4gIG1heC1oZWlnaHQ6IDU0NXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLmVkaXQgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW9wcG9ydHVuaXRpZXMtZnVubmVsIC5mdW5uZWwtY29udGFpbmVyIHtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBtYXgtaGVpZ2h0OiA1MDVweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1vcHBvcnR1bml0aWVzLWZ1bm5lbCAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDVweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIHtcbiAgbWluLWhlaWdodDogNTY1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2Uge1xuICAgIGhlaWdodDogNTY1cHg7XG4gIH1cbiAgLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA1ODVweDtcbiAgICBtYXgtaGVpZ2h0OiA0NDBweDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5lZGl0IHtcbiAgbWF4LWhlaWdodDogNTQ1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAuZWRpdCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiA1NDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSAuc2VsZWN0aW9uLXRhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICByaWdodDogMHB4O1xuICBtYXJnaW4tdG9wOiAtNnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAyOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAubGluZXMtZ3JvdXAgLndpZGdldC1saW5lOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTBmYjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5saW5lcy1ncm91cCAud2lkZ2V0LWxpbmUubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLndpZGdldC1saW5lcy1jb250YWluZXIgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZS5uby1zZWxlY3Q6aG92ZXIge1xuICBjb2xvcjogIzYyNmQ2ZDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1wZXJmb3JtYW5jZSAubm8tZWxlbWVudCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM1QjY2Njc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXBlcmZvcm1hbmNlIC5yaWdodC1wYW5lbCAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDIxNXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogc29saWQgMXB4IHdoaXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIgLnNlbGVjdGlvbi10YWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMjlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlMGZiO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIubm8tc2VsZWN0IHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2UgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5oZWFkZXIubm8tc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6ICM2MjZkNmQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgaDMucmlnaHQge1xuICBtYXJnaW4tdG9wOiA1NXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLnNlbGVjdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAuYW5hbHlzaXMge1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXNlZ21lbnRlZC10dXJub3ZlciAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDc1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIC5yaWdodC1wYW5lbCBoMyB7XG4gIG1hcmdpbjogMTVweCAxMHB4IDVweCAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zZWdtZW50ZWQtdHVybm92ZXIgLnJpZ2h0LXBhbmVsIC5mYS5mYS1pbmZvLWNpcmNsZSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc3VtbWFyeSAuY2hhcnQtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXN1bW1hcnkgLmxlZ2VuZCB7XG4gIG1heC1oZWlnaHQ6IDI4cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IC5zZWxlY3RvciB7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMgLnNlbGVjdG9yIHtcbiAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweCAjRTZFNkU2O1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuc2VsZWN0b3IgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC5zZWxlY3RvciAucGFyYW0tc2VsZWN0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMjM1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZS5zdWItbGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3AtY3VzdG9tZXJzIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC5yb3cgPiBbY2xhc3MqPSdjb2wtJ10ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLWN1c3RvbWVycyAuY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDE5NXB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUge1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZSAuY29sb3JlZC1hcmVhIHtcbiAgd2lkdGg6IDEwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDIwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy10b3Atb3Bwb3J0dW5pdGllcyAub3Bwcy1jb250YWluZXIgLnRpbGUgLm1haW4tdGV4dCB7XG4gIGNvbG9yOiAjNUI2NjY3O1xuICBwYWRkaW5nOiAzcHggMHB4IDBweCAxMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IHtcbiAgaGVpZ2h0OiA1NXB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IC5jb2xvcmVkLWFyZWEge1xuICBmb250LXNpemU6IDI2cHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZTQxO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLmZpcnN0IC5tYWluLXRleHQge1xuICBwYWRkaW5nLXRvcDogOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLnNlY29uZCB7XG4gIGhlaWdodDogNTVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtdG9wLW9wcG9ydHVuaXRpZXMgLm9wcHMtY29udGFpbmVyIC50aWxlLnNlY29uZCAuY29sb3JlZC1hcmVhIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkZTliNjtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIC5vcHBzLWNvbnRhaW5lciAudGlsZS5zZWNvbmQgLm1haW4tdGV4dCB7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCB7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMCwgMTMyLCAyMjgsIDAuMTYpO1xufVxuY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwgPiAuYXR0YWNoLXBhbmVsLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCA+IC5hdHRhY2gtcGFuZWwtdGV4dCA+ICoge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAucGFuZWwtdGV4dC1sYWJlbCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzVCNjY2NztcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuY2hhcnQtdGhyZXNob2xkIC5hdHRhY2gtcGFuZWwgLnBhbmVsLXRleHQtaW5wdXQge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHdoaXRlO1xuICBwYWRkaW5nOiAzcHg7XG59XG5jaGFydC10aHJlc2hvbGQgLmF0dGFjaC1wYW5lbCAucGFuZWwtdGV4dC1jdXJyZW5jeSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzAwMDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYWN0aW9uLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cbmNoYXJ0LXRocmVzaG9sZCAuYWN0aW9uLWJ1dHRvbnMgYnV0dG9uIHtcbiAgcGFkZGluZzogM3B4IDZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuY2hhcnQtdGhyZXNob2xkIC5hY3Rpb24tYnV0dG9ucyBidXR0b24ubG9hZGluZyB7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMjJweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAudGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNGY1OTU5O1xuICBjdXJzb3I6IHRleHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBsaW5lLWhlaWdodDogMS45O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIC5lZGl0YWJsZS13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5lZGl0YWJsZS10aXRsZSAuZWRpdGFibGUtd3JhcCAuZWRpdGFibGUtY29udHJvbHMge1xuICBtaW4td2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1pbnB1dCB7XG4gIGhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNjVweCk7XG4gIHBhZGRpbmc6IDBweCAzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1idXR0b25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuZWRpdGFibGUtdGl0bGUgLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIC5lZGl0YWJsZS1idXR0b25zIGJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggNXB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uY3VycmVuY3ktY29udmVyc2lvbnMgaW1nIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jdXJyZW5jeS1jb252ZXJzaW9ucy5wb3BvdmVyIC5wb3BvdmVyLXRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDE1cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMzBweCk7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiBkb3R0ZWQgMXB4ICNCN0NEQ0U7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG8gU2VtaWJvbGRcIiwgXCJMYXRvXCI7XG4gIHotaW5kZXg6IDQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTI4O1xuICBjb2xvcjogIzFFMzAzQjtcbiAgcGFkZGluZzogOHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJMYXRvIE1lZGl1bVwiLCBcIkxhdG9cIjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktaGVhZGVyIC5mYSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEtaW5mby1jaXJjbGUge1xuICBmbG9hdDogbGVmdDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWhlYWRlciAuZmEtdGltZXMtY2lyY2xlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbG9hdDogcmlnaHQ7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiA1cHg7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIGZsZXg6IDE7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cge1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjYWJjNGM2O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwgLmktY29udGVudCAucm93Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5pbmZvLXBhbmVsIC5pLWNvbnRlbnQgLnJvdyAua2V5IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtdmFyaWFudDogc21hbGwtY2Fwcztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLmtleSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuaW5mby1wYW5lbCAuaS1jb250ZW50IC5yb3cgLnZhbHVlIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi5hbmFseXRpY3MgLnRpbWUtcGVyaW9kLWluZm8ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjQUJDNEM2O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICNjNGNhY2E7XG4gIHBhZGRpbmc6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHdpZHRoOiAxN3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbjphY3RpdmUsXG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWluZm8ge1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWluZm86aG92ZXIge1xuICBjb2xvcjogI0ZGQzkyODtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLXJlZnJlc2gge1xuICBmb250LXNpemU6IDE3cHg7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLXJlZnJlc2g6aG92ZXIge1xuICBjb2xvcjogIzM1OGZkYztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWVkaXQge1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAudG9wLWxpbmUgLnRvcC1idXR0b25zIC50b3AtYnV0dG9ucy13cmFwcGVyIC50b3AtYnV0dG9uLmJ0bi1lZGl0OmhvdmVyLFxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tZWRpdC5lZGl0LW1vZGUge1xuICBjb2xvcjogI2NmZDg0OTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC50b3AtbGluZSAudG9wLWJ1dHRvbnMgLnRvcC1idXR0b25zLXdyYXBwZXIgLnRvcC1idXR0b24uYnRuLWNsb3NlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyAudG9wLWJ1dHRvbnMtd3JhcHBlciAudG9wLWJ1dHRvbi5idG4tY2xvc2U6aG92ZXIge1xuICBjb2xvcjogI2VkMWU3OTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5zZWxlY3QtYWNjb3VudCB7XG4gIHBhZGRpbmc6IDBweCA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hY2NvdW50aW5nLWJlaGF2aW91ciAuYnRuLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiYTlmNTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmFjY291bnRpbmctYmVoYXZpb3VyIC5idG4uYnRuLXByaW1hcnkuZm9jdXMsXG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hY2NvdW50aW5nLWJlaGF2aW91ciAuYnRuLmJ0bi1wcmltYXJ5LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSB7XG4gIHBhZGRpbmc6IDhweCA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSBmb3JtIC5yb3cge1xuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgLmF0dGFjaC1rcGktZm9ybSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiA1cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSBmb3JtIC5yb3cua3BpLWRlc2NyaXB0aW9uIHtcbiAgcGFkZGluZzogMTBweCAycHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAuYXR0YWNoLWtwaSBmb3JtIC5yb3cua3BpLWRlc2NyaXB0aW9uIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2gta3BpIGZvcm0uYXR0YWNoLWtwaS1mb3JtIGlucHV0LmF0dGFjaC10YXJnZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiBpbmhlcml0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmF0dGFjaC1rcGkgLmVycm9yLW1lc3NhZ2VzIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIHdpZHRoOiAxMjBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5hdHRhY2hlZC1rcGlzIHtcbiAgcGFkZGluZzogNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hdHRhY2hlZC1rcGktbmFtZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiA3NSU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIHtcbiAgcGFkZGluZy10b3A6IDJweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5hbGVydHMtY29uZmlnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICB3aWR0aDogMjFweDtcbiAgY29sb3I6ICMzNThmZGM7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IHNvbGlkIDFweCAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmFsZXJ0cy1jb25maWc6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuZWRpdC1hdHRhY2hlZC1rcGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAuZWRpdC1hdHRhY2hlZC1rcGkgaSB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHdpZHRoOiAyMXB4O1xuICBjb2xvcjogIzM1OGZkYztcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogM3B4IDVweCA1cHggNXB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjMzU4ZmRjO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuYXR0YWNoLWtwaXMgLmxpc3QtZ3JvdXAtaXRlbS5hdHRhY2hlZC1rcGkgLmFjdGlvbnMgLmVkaXQtYXR0YWNoZWQta3BpIGk6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyAubGlzdC1ncm91cC1pdGVtLmF0dGFjaGVkLWtwaSAuYWN0aW9ucyAucmVtb3ZlLWF0dGFjaGVkLWtwaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5yZW1vdmUtYXR0YWNoZWQta3BpIGkge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB3aWR0aDogMjFweDtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDNweCA1cHggNXB4IDVweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2UwMWY3NDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmF0dGFjaC1rcGlzIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIC5hY3Rpb25zIC5yZW1vdmUtYXR0YWNoZWQta3BpIGk6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Muc2VsZWN0LWFjY291bnQge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGg1IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciBidXR0b24uYnRuLmJ0bi1zbSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGJ1dHRvbi5idG4uYnRuLXNtLmRhdGUtYnV0dG9uIHtcbiAgbWFyZ2luOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGJ1dHRvbi5idG4uYnRuLXNtLmJ0bi1kYW5nZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIGJ1dHRvbi5idG4uYnRuLXNtLmJ0bi1pbmZvIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MuZGF0ZXMtcGlja2VyIC50b29sdGlwLWlubmVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5kYXRlcy1waWNrZXIgLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGRpdiA+IHRhYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIC5yb3cge1xuICBtYXJnaW46IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5jaGFydC1maWx0ZXJzIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtMXB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmNoYXJ0LWZpbHRlcnMgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIHtcbiAgbWF4LWhlaWdodDogNzBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIFtjb21tb24tdGltZS1wZXJpb2QtaW5mb10ge1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLm9wdGlvbnMge1xuICB3aWR0aDogMTUwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmU2ZTY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNjNGNhY2E7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAub3B0aW9ucyBhIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2M0Y2FjYTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5vcHRpb25zIGEuYWN0aXZlIHtcbiAgY29sb3I6ICM5NzdiZjA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xNHB4O1xuICBtYXJnaW46IGF1dG87XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciAuYXJyb3ctY29udGFpbmVyLnJpZ2h0IHtcbiAgbGVmdDogNDZweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIubGVmdCB7XG4gIGxlZnQ6IC0zMHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLmhpc3QtbW9kZS1jaG9zZXIgLmFycm93LWNvbnRhaW5lciAuYXJyb3ctYm9yZGVyIHtcbiAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5oaXN0LW1vZGUtY2hvc2VyIC5hcnJvdy1jb250YWluZXIgLmFycm93IHtcbiAgYm9yZGVyLXRvcDogMTRweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLWxlZnQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEycHg7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MubGltaXQtZW50cmllcyB7XG4gIGNvbG9yOiAjMUUzMDNCO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLmxpbWl0LWVudHJpZXMgYS5vcHRpb24uYmFkZ2Uge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxRTMwM0I7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIC5vZmZzZXQtdmFsdWUge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgLm9mZnNldC12YWx1ZSAuZmEtdHJhc2gtbyB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyAub2Zmc2V0LXZhbHVlIC5mYS10cmFzaC1vOmhvdmVyIHtcbiAgY29sb3I6ICNlMDFmNzQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9mZnNldHMgaW5wdXQge1xuICB3aWR0aDogNzUlO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub2Zmc2V0cyBidXR0b24ge1xuICB3aWR0aDogMzBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIHtcbiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE4cHg7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmNGY0O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmU6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLm9yZ2FuaXphdGlvbnMgLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lIC5mYSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtdG9nZ2xlLW9uLFxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLWNoZWNrLWNpcmNsZSB7XG4gIGNvbG9yOiAjOTc3YmYwO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3Mub3JnYW5pemF0aW9ucyAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciAud2lkZ2V0LWxpbmUgLmZhLmZhLXRvZ2dsZS1vZmYsXG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIC53aWRnZXQtbGluZXMtY29udGFpbmVyIC53aWRnZXQtbGluZSAuZmEuZmEtY2lyY2xlLXRoaW4ge1xuICBjb2xvcjogIzliYTZhNztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3Rvci5jbGFzc2ljIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IuY2xhc3NpYyBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDBweCAwcHggNXB4IDBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciBhIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICM5NzdiZjA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIHotaW5kZXg6IDk5OTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICMwMDAwMDAgMHB4IDNweCAxNXB4IC0zcHg7XG4gIGJveC1zaGFkb3c6ICMwMDAwMDAgMHB4IDNweCAxNXB4IC0zcHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MucGFyYW0tc2VsZWN0b3IgLm9wdGlvbnMtY29udGFpbmVyIC5wYXJhbS1zZWxlY3Rvci1sYWJlbCB7XG4gIHBhZGRpbmc6IDNweCA1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IGJsYWNrO1xuICBjdXJzb3I6IHRleHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBsaW5lLWhlaWdodDogMS45O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIC5vcHRpb25zLWNvbnRhaW5lciAucGFyYW0tc2VsZWN0b3ItbGFiZWw6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzdiZjA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q3ZTJlNDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3N2JmMDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbS1zZWxlY3RvciAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E5OTJmMztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgcGFkZGluZzogMnB4IDBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIGlucHV0IHtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy5wYXJhbXMtY2hlY2tib3hlcyBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIGxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIge1xuICBtYXJnaW46IDBweCAzcHggM3B4IDBweDtcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFFMzAzQjtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IHNvbGlkIDFweCAjMUUzMDNCO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbW92ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlciBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW46IDBweCAtM3B4IDBweCAzcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGhlaWdodDogaW5oZXJpdDtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIgLnBhcmFtZXRlciAuYmFkZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuICBjb2xvcjogIzFFMzAzQjtcbiAgcGFkZGluZzogMnB4IDZweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIudW5jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1jb2xvcjogI2MyYzRjNDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy5wYXJhbXMtcGlja2VyIC5wYXJhbWV0ZXIudW5jaGVja2VkIC5iYWRnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMmM0YzQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAuYnRuLmJ0bi1kZWZhdWx0IHtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIC50YWdzLWNvbCB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50YWctZmlsdGVyIC50YWctbGluZXMtY29udGFpbmVyIC50YWctbGluZSB0YWdzLWlucHV0IC50YWdzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCAjY2NjO1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGFnLWZpbHRlciAudGFnLWxpbmVzLWNvbnRhaW5lciAudGFnLWxpbmUgdGFncy1pbnB1dCAudGFncyAudGFnLWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjNzlhMmJiO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIgLnRhZy1saW5lcy1jb250YWluZXIgLnRhZy1saW5lIC5ob3N0IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kIHtcbiAgcGFkZGluZzogMHB4IDVweDtcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kIHNlbGVjdCB7XG4gIGhlaWdodDogMjJweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYW5hbHl0aWNzIC5zZXR0aW5ncy50aW1lLXBlcmlvZCA+IC5yb3cge1xuICBtYXJnaW46IDBweCAtNXB4IDdweCAtNXB4O1xufVxuLmFuYWx5dGljcyAuc2V0dGluZ3MudGltZS1wZXJpb2QgPiAucm93ID4gZGl2IHtcbiAgcGFkZGluZzogMHB4IDVweDtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kID4gLnJvdyAuc3ViLXNldHRpbmcge1xuICBwYWRkaW5nOiA1cHg7XG59XG4uYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Mud2lkdGgge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCBpIHtcbiAgY29sb3I6IHNpbHZlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIGkucmVkdWNlIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbn1cbi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5zZXR0aW5ncy53aWR0aCBpLmV4cGFuZCB7XG4gIG1hcmdpbi1yaWdodDogLTNweDtcbn1cbi8qIGVuZGluamVjdCAqL1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vL1xuLy8gMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbi8vIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4vLyAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4vL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8vIDFcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG59XG5cbi8vXG4vLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4vL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLyBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4vLyBhbmQgRmlyZWZveC5cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4vL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy9cbi8vIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4vLyAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4vL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIDFcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvLyAyXG59XG5cbi8vXG4vLyBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuLy8gUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbi8vXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbi8vIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbi8vXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuLy9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vL1xuLy8gSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuLy8gYWN0aXZlL2hvdmVyIHN0YXRlLlxuLy9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4vLyBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbi8vXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLy9cbi8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8vIEVtYmVkZGVkIGNvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbi8vXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLy9cbi8vIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuLy9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBHcm91cGluZyBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4vL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vL1xuLy8gQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuLy9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vL1xuLy8gQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy9cbi8vIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLy8gRm9ybXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuLy8gc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuLy9cblxuLy9cbi8vIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbi8vICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuLy8gMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbi8vIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8vIDFcbiAgZm9udDogaW5oZXJpdDsgLy8gMlxuICBtYXJnaW46IDA7IC8vIDNcbn1cblxuLy9cbi8vIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuLy9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4vLyBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuLy8gQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbi8vIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbi8vXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vL1xuLy8gMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2Bcbi8vICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuLy8gMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuLy8gMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbi8vICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbi8vXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLy8gMVxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAyXG4gIGN1cnNvcjogcG9pbnRlcjsgLy8gM1xufVxuXG4vL1xuLy8gUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbi8vXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy9cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbi8vXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuLy8gdGhlIFVBIHN0eWxlc2hlZXQuXG4vL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8vXG4vLyBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4vLyBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuLy9cbi8vIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4vLyAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuLy9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG59XG5cbi8vXG4vLyBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuLy8gYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbi8vIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbi8vXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vL1xuLy8gMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vLyAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyAxXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLzJcbn1cblxuLy9cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuLy8gU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuLy8gcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuLy9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vXG4vLyBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4vL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLy9cbi8vIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbi8vIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbi8vXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG59XG5cbi8vXG4vLyBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuLy9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy9cbi8vIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbi8vIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuLy9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLy8gVGFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuLy9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvL1xuLy8gR2x5cGhpY29ucyBmb3IgQm9vdHN0cmFwXG4vL1xuLy8gU2luY2UgaWNvbnMgYXJlIGZvbnRzLCB0aGV5IGNhbiBiZSBwbGFjZWQgYW55d2hlcmUgdGV4dCBpcyBwbGFjZWQgYW5kIGFyZVxuLy8gdGh1cyBhdXRvbWF0aWNhbGx5IHNpemVkIHRvIG1hdGNoIHRoZSBzdXJyb3VuZGluZyBjaGlsZC4gVG8gdXNlLCBjcmVhdGUgYW5cbi8vIGlubGluZSBlbGVtZW50IHdpdGggdGhlIGFwcHJvcHJpYXRlIGNsYXNzZXMsIGxpa2Ugc286XG4vL1xuLy8gPGEgaHJlZj1cIiNcIj48c3BhbiBjbGFzcz1cImdseXBoaWNvbiBnbHlwaGljb24tc3RhclwiPjwvc3Bhbj4gU3RhcjwvYT5cblxuLy8gSW1wb3J0IHRoZSBmb250c1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICBzcmM6IHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS5lb3QnKTtcbiAgc3JjOiB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgdXJsKCdAe2ljb24tZm9udC1wYXRofUB7aWNvbi1mb250LW5hbWV9LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICB1cmwoJ0B7aWNvbi1mb250LXBhdGh9QHtpY29uLWZvbnQtbmFtZX0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgIHVybCgnQHtpY29uLWZvbnQtcGF0aH1Ae2ljb24tZm9udC1uYW1lfS5zdmcjQHtpY29uLWZvbnQtc3ZnLWlkfScpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbi8vIENhdGNoYWxsIGJhc2VjbGFzc1xuLmdseXBoaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLyBJbmRpdmlkdWFsIGljb25zXG4uZ2x5cGhpY29uLWFzdGVyaXNrICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMDJhXCI7IH0gfVxuLmdseXBoaWNvbi1wbHVzICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDAyYlwiOyB9IH1cbi5nbHlwaGljb24tZXVybyxcbi5nbHlwaGljb24tZXVyICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYWNcIjsgfSB9XG4uZ2x5cGhpY29uLW1pbnVzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMjEyXCI7IH0gfVxuLmdseXBoaWNvbi1jbG91ZCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjYwMVwiOyB9IH1cbi5nbHlwaGljb24tZW52ZWxvcGUgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI3MDlcIjsgfSB9XG4uZ2x5cGhpY29uLXBlbmNpbCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNzBmXCI7IH0gfVxuLmdseXBoaWNvbi1nbGFzcyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwMVwiOyB9IH1cbi5nbHlwaGljb24tbXVzaWMgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDJcIjsgfSB9XG4uZ2x5cGhpY29uLXNlYXJjaCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDAzXCI7IH0gfVxuLmdseXBoaWNvbi1oZWFydCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwNVwiOyB9IH1cbi5nbHlwaGljb24tc3RhciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDZcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXItZW1wdHkgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA3XCI7IH0gfVxuLmdseXBoaWNvbi11c2VyICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwOFwiOyB9IH1cbi5nbHlwaGljb24tZmlsbSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDlcIjsgfSB9XG4uZ2x5cGhpY29uLXRoLWxhcmdlICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEwXCI7IH0gfVxuLmdseXBoaWNvbi10aCAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxMVwiOyB9IH1cbi5nbHlwaGljb24tdGgtbGlzdCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTJcIjsgfSB9XG4uZ2x5cGhpY29uLW9rICAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEzXCI7IH0gfVxuLmdseXBoaWNvbi1yZW1vdmUgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxNFwiOyB9IH1cbi5nbHlwaGljb24tem9vbS1pbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTVcIjsgfSB9XG4uZ2x5cGhpY29uLXpvb20tb3V0ICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE2XCI7IH0gfVxuLmdseXBoaWNvbi1vZmYgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxN1wiOyB9IH1cbi5nbHlwaGljb24tc2lnbmFsICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMThcIjsgfSB9XG4uZ2x5cGhpY29uLWNvZyAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE5XCI7IH0gfVxuLmdseXBoaWNvbi10cmFzaCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyMFwiOyB9IH1cbi5nbHlwaGljb24taG9tZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWZpbGUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIyXCI7IH0gfVxuLmdseXBoaWNvbi10aW1lICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyM1wiOyB9IH1cbi5nbHlwaGljb24tcm9hZCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjRcIjsgfSB9XG4uZ2x5cGhpY29uLWRvd25sb2FkLWFsdCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI1XCI7IH0gfVxuLmdseXBoaWNvbi1kb3dubG9hZCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyNlwiOyB9IH1cbi5nbHlwaGljb24tdXBsb2FkICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWluYm94ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI4XCI7IH0gfVxuLmdseXBoaWNvbi1wbGF5LWNpcmNsZSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyOVwiOyB9IH1cbi5nbHlwaGljb24tcmVwZWF0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzBcIjsgfSB9XG4uZ2x5cGhpY29uLXJlZnJlc2ggICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMxXCI7IH0gfVxuLmdseXBoaWNvbi1saXN0LWFsdCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzMlwiOyB9IH1cbi5nbHlwaGljb24tbG9jayAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzNcIjsgfSB9XG4uZ2x5cGhpY29uLWZsYWcgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM0XCI7IH0gfVxuLmdseXBoaWNvbi1oZWFkcGhvbmVzICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzNVwiOyB9IH1cbi5nbHlwaGljb24tdm9sdW1lLW9mZiAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzZcIjsgfSB9XG4uZ2x5cGhpY29uLXZvbHVtZS1kb3duICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM3XCI7IH0gfVxuLmdseXBoaWNvbi12b2x1bWUtdXAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzOFwiOyB9IH1cbi5nbHlwaGljb24tcXJjb2RlICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzlcIjsgfSB9XG4uZ2x5cGhpY29uLWJhcmNvZGUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQwXCI7IH0gfVxuLmdseXBoaWNvbi10YWcgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0MVwiOyB9IH1cbi5nbHlwaGljb24tdGFncyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDJcIjsgfSB9XG4uZ2x5cGhpY29uLWJvb2sgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQzXCI7IH0gfVxuLmdseXBoaWNvbi1ib29rbWFyayAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0NFwiOyB9IH1cbi5nbHlwaGljb24tcHJpbnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDVcIjsgfSB9XG4uZ2x5cGhpY29uLWNhbWVyYSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ2XCI7IH0gfVxuLmdseXBoaWNvbi1mb250ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0N1wiOyB9IH1cbi5nbHlwaGljb24tYm9sZCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDhcIjsgfSB9XG4uZ2x5cGhpY29uLWl0YWxpYyAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ5XCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWhlaWdodCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1MFwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC13aWR0aCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLWxlZnQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUyXCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1jZW50ZXIgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1M1wiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tcmlnaHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTRcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLWp1c3RpZnkgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU1XCI7IH0gfVxuLmdseXBoaWNvbi1saXN0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1NlwiOyB9IH1cbi5nbHlwaGljb24taW5kZW50LWxlZnQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTdcIjsgfSB9XG4uZ2x5cGhpY29uLWluZGVudC1yaWdodCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU4XCI7IH0gfVxuLmdseXBoaWNvbi1mYWNldGltZS12aWRlbyAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1OVwiOyB9IH1cbi5nbHlwaGljb24tcGljdHVyZSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjBcIjsgfSB9XG4uZ2x5cGhpY29uLW1hcC1tYXJrZXIgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDYyXCI7IH0gfVxuLmdseXBoaWNvbi1hZGp1c3QgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2M1wiOyB9IH1cbi5nbHlwaGljb24tdGludCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjRcIjsgfSB9XG4uZ2x5cGhpY29uLWVkaXQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY1XCI7IH0gfVxuLmdseXBoaWNvbi1zaGFyZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2NlwiOyB9IH1cbi5nbHlwaGljb24tY2hlY2sgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjdcIjsgfSB9XG4uZ2x5cGhpY29uLW1vdmUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY4XCI7IH0gfVxuLmdseXBoaWNvbi1zdGVwLWJhY2t3YXJkICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2OVwiOyB9IH1cbi5nbHlwaGljb24tZmFzdC1iYWNrd2FyZCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzBcIjsgfSB9XG4uZ2x5cGhpY29uLWJhY2t3YXJkICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDcxXCI7IH0gfVxuLmdseXBoaWNvbi1wbGF5ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3MlwiOyB9IH1cbi5nbHlwaGljb24tcGF1c2UgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzNcIjsgfSB9XG4uZ2x5cGhpY29uLXN0b3AgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc0XCI7IH0gfVxuLmdseXBoaWNvbi1mb3J3YXJkICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3NVwiOyB9IH1cbi5nbHlwaGljb24tZmFzdC1mb3J3YXJkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzZcIjsgfSB9XG4uZ2x5cGhpY29uLXN0ZXAtZm9yd2FyZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc3XCI7IH0gfVxuLmdseXBoaWNvbi1lamVjdCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3OFwiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi1sZWZ0ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzlcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgwXCI7IH0gfVxuLmdseXBoaWNvbi1wbHVzLXNpZ24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4MVwiOyB9IH1cbi5nbHlwaGljb24tbWludXMtc2lnbiAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODJcIjsgfSB9XG4uZ2x5cGhpY29uLXJlbW92ZS1zaWduICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgzXCI7IH0gfVxuLmdseXBoaWNvbi1vay1zaWduICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4NFwiOyB9IH1cbi5nbHlwaGljb24tcXVlc3Rpb24tc2lnbiAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODVcIjsgfSB9XG4uZ2x5cGhpY29uLWluZm8tc2lnbiAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg2XCI7IH0gfVxuLmdseXBoaWNvbi1zY3JlZW5zaG90ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4N1wiOyB9IH1cbi5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZSAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODhcIjsgfSB9XG4uZ2x5cGhpY29uLW9rLWNpcmNsZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg5XCI7IH0gfVxuLmdseXBoaWNvbi1iYW4tY2lyY2xlICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5MFwiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctbGVmdCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LXJpZ2h0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkyXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy11cCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5M1wiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctZG93biAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTRcIjsgfSB9XG4uZ2x5cGhpY29uLXNoYXJlLWFsdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk1XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtZnVsbCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5NlwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLXNtYWxsICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTdcIjsgfSB9XG4uZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24gICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTAxXCI7IH0gfVxuLmdseXBoaWNvbi1naWZ0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwMlwiOyB9IH1cbi5nbHlwaGljb24tbGVhZiAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDNcIjsgfSB9XG4uZ2x5cGhpY29uLWZpcmUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA0XCI7IH0gfVxuLmdseXBoaWNvbi1leWUtb3BlbiAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwNVwiOyB9IH1cbi5nbHlwaGljb24tZXllLWNsb3NlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDZcIjsgfSB9XG4uZ2x5cGhpY29uLXdhcm5pbmctc2lnbiAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA3XCI7IH0gfVxuLmdseXBoaWNvbi1wbGFuZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwOFwiOyB9IH1cbi5nbHlwaGljb24tY2FsZW5kYXIgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDlcIjsgfSB9XG4uZ2x5cGhpY29uLXJhbmRvbSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEwXCI7IH0gfVxuLmdseXBoaWNvbi1jb21tZW50ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExMVwiOyB9IH1cbi5nbHlwaGljb24tbWFnbmV0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTJcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tdXAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEzXCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLWRvd24gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExNFwiOyB9IH1cbi5nbHlwaGljb24tcmV0d2VldCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTVcIjsgfSB9XG4uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE2XCI7IH0gfVxuLmdseXBoaWNvbi1mb2xkZXItY2xvc2UgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExN1wiOyB9IH1cbi5nbHlwaGljb24tZm9sZGVyLW9wZW4gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMThcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS12ZXJ0aWNhbCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE5XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtaG9yaXpvbnRhbCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyMFwiOyB9IH1cbi5nbHlwaGljb24taGRkICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWJ1bGxob3JuICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIyXCI7IH0gfVxuLmdseXBoaWNvbi1iZWxsICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyM1wiOyB9IH1cbi5nbHlwaGljb24tY2VydGlmaWNhdGUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjRcIjsgfSB9XG4uZ2x5cGhpY29uLXRodW1icy11cCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI1XCI7IH0gfVxuLmdseXBoaWNvbi10aHVtYnMtZG93biAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyNlwiOyB9IH1cbi5nbHlwaGljb24taGFuZC1yaWdodCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtbGVmdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI4XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLXVwICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyOVwiOyB9IH1cbi5nbHlwaGljb24taGFuZC1kb3duICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzBcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1yaWdodCAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMxXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzMlwiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzNcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1kb3duICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM0XCI7IH0gfVxuLmdseXBoaWNvbi1nbG9iZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzNVwiOyB9IH1cbi5nbHlwaGljb24td3JlbmNoICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzZcIjsgfSB9XG4uZ2x5cGhpY29uLXRhc2tzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM3XCI7IH0gfVxuLmdseXBoaWNvbi1maWx0ZXIgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzOFwiOyB9IH1cbi5nbHlwaGljb24tYnJpZWZjYXNlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzlcIjsgfSB9XG4uZ2x5cGhpY29uLWZ1bGxzY3JlZW4gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQwXCI7IH0gfVxuLmdseXBoaWNvbi1kYXNoYm9hcmQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0MVwiOyB9IH1cbi5nbHlwaGljb24tcGFwZXJjbGlwICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDJcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYXJ0LWVtcHR5ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQzXCI7IH0gfVxuLmdseXBoaWNvbi1saW5rICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0NFwiOyB9IH1cbi5nbHlwaGljb24tcGhvbmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDVcIjsgfSB9XG4uZ2x5cGhpY29uLXB1c2hwaW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ2XCI7IH0gfVxuLmdseXBoaWNvbi11c2QgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0OFwiOyB9IH1cbi5nbHlwaGljb24tZ2JwICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDlcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUwXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0ICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1MVwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldC1hbHQgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTJcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXIgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUzXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyLWFsdCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1NFwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTVcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU2XCI7IH0gfVxuLmdseXBoaWNvbi11bmNoZWNrZWQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1N1wiOyB9IH1cbi5nbHlwaGljb24tZXhwYW5kICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNThcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbGxhcHNlLWRvd24gICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU5XCI7IH0gfVxuLmdseXBoaWNvbi1jb2xsYXBzZS11cCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2MFwiOyB9IH1cbi5nbHlwaGljb24tbG9nLWluICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjFcIjsgfSB9XG4uZ2x5cGhpY29uLWZsYXNoICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYyXCI7IH0gfVxuLmdseXBoaWNvbi1sb2ctb3V0ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2M1wiOyB9IH1cbi5nbHlwaGljb24tbmV3LXdpbmRvdyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjRcIjsgfSB9XG4uZ2x5cGhpY29uLXJlY29yZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY1XCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2NlwiOyB9IH1cbi5nbHlwaGljb24tb3BlbiAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjdcIjsgfSB9XG4uZ2x5cGhpY29uLXNhdmVkICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY4XCI7IH0gfVxuLmdseXBoaWNvbi1pbXBvcnQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2OVwiOyB9IH1cbi5nbHlwaGljb24tZXhwb3J0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzBcIjsgfSB9XG4uZ2x5cGhpY29uLXNlbmQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTcxXCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktZGlzayAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3MlwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmVkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzNcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1yZW1vdmUgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc0XCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3NVwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LW9wZW4gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzZcIjsgfSB9XG4uZ2x5cGhpY29uLWNyZWRpdC1jYXJkICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc3XCI7IH0gfVxuLmdseXBoaWNvbi10cmFuc2ZlciAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3OFwiOyB9IH1cbi5nbHlwaGljb24tY3V0bGVyeSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzlcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYWRlciAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgwXCI7IH0gfVxuLmdseXBoaWNvbi1jb21wcmVzc2VkICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4MVwiOyB9IH1cbi5nbHlwaGljb24tZWFycGhvbmUgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODJcIjsgfSB9XG4uZ2x5cGhpY29uLXBob25lLWFsdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgzXCI7IH0gfVxuLmdseXBoaWNvbi10b3dlciAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4NFwiOyB9IH1cbi5nbHlwaGljb24tc3RhdHMgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODVcIjsgfSB9XG4uZ2x5cGhpY29uLXNkLXZpZGVvICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg2XCI7IH0gfVxuLmdseXBoaWNvbi1oZC12aWRlbyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4N1wiOyB9IH1cbi5nbHlwaGljb24tc3VidGl0bGVzICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODhcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbyAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg5XCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC1kb2xieSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5MFwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtNS0xICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTFcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLTYtMSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkyXCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC03LTEgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5M1wiOyB9IH1cbi5nbHlwaGljb24tY29weXJpZ2h0LW1hcmsgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTRcIjsgfSB9XG4uZ2x5cGhpY29uLXJlZ2lzdHJhdGlvbi1tYXJrICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk1XCI7IH0gfVxuLmdseXBoaWNvbi1jbG91ZC1kb3dubG9hZCAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5N1wiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQtdXBsb2FkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOThcIjsgfSB9XG4uZ2x5cGhpY29uLXRyZWUtY29uaWZlciAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk5XCI7IH0gfVxuLmdseXBoaWNvbi10cmVlLWRlY2lkdW91cyAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwMFwiOyB9IH1cbi5nbHlwaGljb24tY2QgICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDFcIjsgfSB9XG4uZ2x5cGhpY29uLXNhdmUtZmlsZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAyXCI7IH0gfVxuLmdseXBoaWNvbi1vcGVuLWZpbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwM1wiOyB9IH1cbi5nbHlwaGljb24tbGV2ZWwtdXAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDRcIjsgfSB9XG4uZ2x5cGhpY29uLWNvcHkgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA1XCI7IH0gfVxuLmdseXBoaWNvbi1wYXN0ZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwNlwiOyB9IH1cbi8vIFRoZSBmb2xsb3dpbmcgMiBHbHlwaGljb25zIGFyZSBvbWl0dGVkIGZvciB0aGUgdGltZSBiZWluZyBiZWNhdXNlXG4vLyB0aGV5IGN1cnJlbnRseSB1c2UgVW5pY29kZSBjb2RlcG9pbnRzIHRoYXQgYXJlIG91dHNpZGUgdGhlXG4vLyBCYXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUgKEJNUCkuIE9sZGVyIGJ1Z2d5IHZlcnNpb25zIG9mIFdlYktpdCBjYW4ndCBoYW5kbGVcbi8vIG5vbi1CTVAgY29kZXBvaW50cyBpbiBDU1Mgc3RyaW5nIGVzY2FwZXMsIGFuZCB0aHVzIGNhbid0IGRpc3BsYXkgdGhlc2UgdHdvIGljb25zLlxuLy8gTm90YWJseSwgdGhlIGJ1ZyBhZmZlY3RzIHNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgdGhlIEFuZHJvaWQgQnJvd3Nlci5cbi8vIE1vcmUgaW5mbzogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMDEwNlxuLy8gLmdseXBoaWNvbi1kb29yICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMWY2YWFcIjsgfSB9XG4vLyAuZ2x5cGhpY29uLWtleSAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwxZjUxMVwiOyB9IH1cbi5nbHlwaGljb24tYWxlcnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDlcIjsgfSB9XG4uZ2x5cGhpY29uLWVxdWFsaXplciAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEwXCI7IH0gfVxuLmdseXBoaWNvbi1raW5nICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxMVwiOyB9IH1cbi5nbHlwaGljb24tcXVlZW4gICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTJcIjsgfSB9XG4uZ2x5cGhpY29uLXBhd24gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEzXCI7IH0gfVxuLmdseXBoaWNvbi1iaXNob3AgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxNFwiOyB9IH1cbi5nbHlwaGljb24ta25pZ2h0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTVcIjsgfSB9XG4uZ2x5cGhpY29uLWJhYnktZm9ybXVsYSAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE2XCI7IH0gfVxuLmdseXBoaWNvbi10ZW50ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjZmYVwiOyB9IH1cbi5nbHlwaGljb24tYmxhY2tib2FyZCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMThcIjsgfSB9XG4uZ2x5cGhpY29uLWJlZCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE5XCI7IH0gfVxuLmdseXBoaWNvbi1hcHBsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjhmZlwiOyB9IH1cbi5nbHlwaGljb24tZXJhc2UgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWhvdXJnbGFzcyAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMzFiXCI7IH0gfVxuLmdseXBoaWNvbi1sYW1wICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyM1wiOyB9IH1cbi5nbHlwaGljb24tZHVwbGljYXRlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjRcIjsgfSB9XG4uZ2x5cGhpY29uLXBpZ2d5LWJhbmsgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI1XCI7IH0gfVxuLmdseXBoaWNvbi1zY2lzc29ycyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyNlwiOyB9IH1cbi5nbHlwaGljb24tYml0Y29pbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWJ0YyAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH0gfVxuLmdseXBoaWNvbi14YnQgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyN1wiOyB9IH1cbi5nbHlwaGljb24teWVuICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwYTVcIjsgfSB9XG4uZ2x5cGhpY29uLWpweSAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMGE1XCI7IH0gfVxuLmdseXBoaWNvbi1ydWJsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjBiZFwiOyB9IH1cbi5nbHlwaGljb24tcnViICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYmRcIjsgfSB9XG4uZ2x5cGhpY29uLXNjYWxlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMwXCI7IH0gfVxuLmdseXBoaWNvbi1pY2UtbG9sbHkgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzMVwiOyB9IH1cbi5nbHlwaGljb24taWNlLWxvbGx5LXRhc3RlZCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWVkdWNhdGlvbiAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMzXCI7IH0gfVxuLmdseXBoaWNvbi1vcHRpb24taG9yaXpvbnRhbCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzNFwiOyB9IH1cbi5nbHlwaGljb24tb3B0aW9uLXZlcnRpY2FsICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzVcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtaGFtYnVyZ2VyICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM2XCI7IH0gfVxuLmdseXBoaWNvbi1tb2RhbC13aW5kb3cgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzN1wiOyB9IH1cbi5nbHlwaGljb24tb2lsICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzhcIjsgfSB9XG4uZ2x5cGhpY29uLWdyYWluICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM5XCI7IH0gfVxuLmdseXBoaWNvbi1zdW5nbGFzc2VzICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0MFwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1zaXplICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtY29sb3IgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQyXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0M1wiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXRvcCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDRcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ib3R0b20gICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ1XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24taG9yaXpvbnRhbHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0NlwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWxlZnQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDdcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi12ZXJ0aWNhbCAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ4XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tcmlnaHQgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0OVwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtcmlnaHQgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTBcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWxlZnQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUxXCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b20gICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1MlwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtdG9wICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTNcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbnNvbGUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU0XCI7IH0gfVxuLmdseXBoaWNvbi1zdXBlcnNjcmlwdCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1NVwiOyB9IH1cbi5nbHlwaGljb24tc3Vic2NyaXB0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTZcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtbGVmdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU3XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LXJpZ2h0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1OFwiOyB9IH1cbi5nbHlwaGljb24tbWVudS1kb3duICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTlcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtdXAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjYwXCI7IH0gfVxuIiwiLy9cbi8vIFNjYWZmb2xkaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFJlc2V0IHRoZSBib3gtc2l6aW5nXG4vL1xuLy8gSGVhZHMgdXAhIFRoaXMgcmVzZXQgbWF5IGNhdXNlIGNvbmZsaWN0cyB3aXRoIHNvbWUgdGhpcmQtcGFydHkgd2lkZ2V0cy5cbi8vIEZvciByZWNvbW1lbmRhdGlvbnMgb24gcmVzb2x2aW5nIHN1Y2ggY29uZmxpY3RzLCBzZWVcbi8vIGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2dldHRpbmctc3RhcnRlZC8jdGhpcmQtYm94LXNpemluZ1xuKiB7XG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XG59XG5cblxuLy8gQm9keSByZXNldFxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LWJhc2U7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJvZHktYmc7XG59XG5cbi8vIFJlc2V0IGZvbnRzIGZvciByZWxldmFudCBlbGVtZW50c1xuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5cbi8vIExpbmtzXG5cbmEge1xuICBjb2xvcjogQGxpbmstY29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBAbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgLnRhYi1mb2N1cygpO1xuICB9XG59XG5cblxuLy8gRmlndXJlc1xuLy9cbi8vIFdlIHJlc2V0IHRoaXMgaGVyZSBiZWNhdXNlIHByZXZpb3VzbHkgTm9ybWFsaXplIGhhZCBubyBgZmlndXJlYCBtYXJnaW5zLiBUaGlzXG4vLyBlbnN1cmVzIHdlIGRvbid0IGJyZWFrIGFueW9uZSdzIHVzZSBvZiB0aGUgZWxlbWVudC5cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5cbi8vIEltYWdlc1xuXG5pbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vLyBSZXNwb25zaXZlIGltYWdlcyAoZW5zdXJlIGltYWdlcyBkb24ndCBzY2FsZSBiZXlvbmQgdGhlaXIgcGFyZW50cylcbi5pbWctcmVzcG9uc2l2ZSB7XG4gIC5pbWctcmVzcG9uc2l2ZSgpO1xufVxuXG4vLyBSb3VuZGVkIGNvcm5lcnNcbi5pbWctcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlO1xufVxuXG4vLyBJbWFnZSB0aHVtYm5haWxzXG4vL1xuLy8gSGVhZHMgdXAhIFRoaXMgaXMgbWl4aW4tZWQgaW50byB0aHVtYm5haWxzLmxlc3MgZm9yIGAudGh1bWJuYWlsYC5cbi5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogQHRodW1ibmFpbC1wYWRkaW5nO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0aHVtYm5haWwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEB0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM7XG4gIC50cmFuc2l0aW9uKGFsbCAuMnMgZWFzZS1pbi1vdXQpO1xuXG4gIC8vIEtlZXAgdGhlbSBhdCBtb3N0IDEwMCUgd2lkZVxuICAuaW1nLXJlc3BvbnNpdmUoaW5saW5lLWJsb2NrKTtcbn1cblxuLy8gUGVyZmVjdCBjaXJjbGVcbi5pbWctY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlOyAvLyBzZXQgcmFkaXVzIGluIHBlcmNlbnRzXG59XG5cblxuLy8gSG9yaXpvbnRhbCBydWxlc1xuXG5ociB7XG4gIG1hcmdpbi10b3A6ICAgIEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAaHItYm9yZGVyO1xufVxuXG5cbi8vIE9ubHkgZGlzcGxheSBjb250ZW50IHRvIHNjcmVlbiByZWFkZXJzXG4vL1xuLy8gU2VlOiBodHRwOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnRcblxuLnNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXG4vLyBVc2VmdWwgZm9yIFwiU2tpcCB0byBtYWluIGNvbnRlbnRcIiBsaW5rczsgc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvTk9URS1XQ0FHMjAtVEVDSFMtMjAxMzA5MDUvRzFcbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuLnNyLW9ubHktZm9jdXNhYmxlIHtcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjbGlwOiBhdXRvO1xuICB9XG59XG5cblxuLy8gaU9TIFwiY2xpY2thYmxlIGVsZW1lbnRzXCIgZml4IGZvciByb2xlPVwiYnV0dG9uXCJcbi8vXG4vLyBGaXhlcyBcImNsaWNrYWJpbGl0eVwiIGlzc3VlIChhbmQgbW9yZSBnZW5lcmFsbHksIHRoZSBmaXJpbmcgb2YgZXZlbnRzIHN1Y2ggYXMgZm9jdXMgYXMgd2VsbClcbi8vIGZvciB0cmFkaXRpb25hbGx5IG5vbi1mb2N1c2FibGUgZWxlbWVudHMgd2l0aCByb2xlPVwiYnV0dG9uXCJcbi8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjU2FmYXJpX01vYmlsZVxuXG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiIsIi8vIFZlbmRvciBQcmVmaXhlc1xuLy9cbi8vIEFsbCB2ZW5kb3IgbWl4aW5zIGFyZSBkZXByZWNhdGVkIGFzIG9mIHYzLjIuMCBkdWUgdG8gdGhlIGludHJvZHVjdGlvbiBvZlxuLy8gQXV0b3ByZWZpeGVyIGluIG91ciBHcnVudGZpbGUuIFRoZXkgaGF2ZSBiZWVuIHJlbW92ZWQgaW4gdjQuXG5cbi8vIC0gQW5pbWF0aW9uc1xuLy8gLSBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyAtIEJveCBzaGFkb3dcbi8vIC0gQm94IHNpemluZ1xuLy8gLSBDb250ZW50IGNvbHVtbnNcbi8vIC0gSHlwaGVuc1xuLy8gLSBQbGFjZWhvbGRlciB0ZXh0XG4vLyAtIFRyYW5zZm9ybWF0aW9uc1xuLy8gLSBUcmFuc2l0aW9uc1xuLy8gLSBVc2VyIFNlbGVjdFxuXG5cbi8vIEFuaW1hdGlvbnNcbi5hbmltYXRpb24oQGFuaW1hdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcbiAgICAgICAtby1hbmltYXRpb246IEBhbmltYXRpb247XG4gICAgICAgICAgYW5pbWF0aW9uOiBAYW5pbWF0aW9uO1xufVxuLmFuaW1hdGlvbi1uYW1lKEBuYW1lKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IEBuYW1lO1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcbn1cbi5hbmltYXRpb24tZHVyYXRpb24oQGR1cmF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XG59XG4uYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbihAdGltaW5nLWZ1bmN0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xufVxuLmFuaW1hdGlvbi1kZWxheShAZGVsYXkpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IEBkZWxheTtcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IEBkZWxheTtcbn1cbi5hbmltYXRpb24taXRlcmF0aW9uLWNvdW50KEBpdGVyYXRpb24tY291bnQpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAaXRlcmF0aW9uLWNvdW50O1xuICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBpdGVyYXRpb24tY291bnQ7XG59XG4uYW5pbWF0aW9uLWRpcmVjdGlvbihAZGlyZWN0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogQGRpcmVjdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xufVxuLmFuaW1hdGlvbi1maWxsLW1vZGUoQGZpbGwtbW9kZSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IEBmaWxsLW1vZGU7XG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcbn1cblxuLy8gQmFja2ZhY2UgdmlzaWJpbGl0eVxuLy8gUHJldmVudCBicm93c2VycyBmcm9tIGZsaWNrZXJpbmcgd2hlbiB1c2luZyBDU1MgM0QgdHJhbnNmb3Jtcy5cbi8vIERlZmF1bHQgdmFsdWUgaXMgYHZpc2libGVgLCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYGhpZGRlbmBcblxuLmJhY2tmYWNlLXZpc2liaWxpdHkoQHZpc2liaWxpdHkpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbiAgICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcbn1cblxuLy8gRHJvcCBzaGFkb3dzXG4vL1xuLy8gTm90ZTogRGVwcmVjYXRlZCBgLmJveC1zaGFkb3coKWAgYXMgb2YgdjMuMS4wIHNpbmNlIGFsbCBvZiBCb290c3RyYXAnc1xuLy8gc3VwcG9ydGVkIGJyb3dzZXJzIHRoYXQgaGF2ZSBib3ggc2hhZG93IGNhcGFiaWxpdGllcyBub3cgc3VwcG9ydCBpdC5cblxuLmJveC1zaGFkb3coQHNoYWRvdykge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IEBzaGFkb3c7IC8vIGlPUyA8NC4zICYgQW5kcm9pZCA8NC4xXG4gICAgICAgICAgYm94LXNoYWRvdzogQHNoYWRvdztcbn1cblxuLy8gQm94IHNpemluZ1xuLmJveC1zaXppbmcoQGJveG1vZGVsKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogQGJveG1vZGVsO1xuICAgICAtbW96LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBAYm94bW9kZWw7XG59XG5cbi8vIENTUzMgQ29udGVudCBDb2x1bW5zXG4uY29udGVudC1jb2x1bW5zKEBjb2x1bW4tY291bnQ7IEBjb2x1bW4tZ2FwOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XG4gICAgIC1tb3otY29sdW1uLWNvdW50OiBAY29sdW1uLWNvdW50O1xuICAgICAgICAgIGNvbHVtbi1jb3VudDogQGNvbHVtbi1jb3VudDtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiBAY29sdW1uLWdhcDtcbiAgICAgLW1vei1jb2x1bW4tZ2FwOiBAY29sdW1uLWdhcDtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiBAY29sdW1uLWdhcDtcbn1cblxuLy8gT3B0aW9uYWwgaHlwaGVuYXRpb25cbi5oeXBoZW5zKEBtb2RlOiBhdXRvKSB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgLXdlYmtpdC1oeXBoZW5zOiBAbW9kZTtcbiAgICAgLW1vei1oeXBoZW5zOiBAbW9kZTtcbiAgICAgIC1tcy1oeXBoZW5zOiBAbW9kZTsgLy8gSUUxMCtcbiAgICAgICAtby1oeXBoZW5zOiBAbW9kZTtcbiAgICAgICAgICBoeXBoZW5zOiBAbW9kZTtcbn1cblxuLy8gUGxhY2Vob2xkZXIgdGV4dFxuLnBsYWNlaG9sZGVyKEBjb2xvcjogQGlucHV0LWNvbG9yLXBsYWNlaG9sZGVyKSB7XG4gIC8vIEZpcmVmb3hcbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IEBjb2xvcjtcbiAgICBvcGFjaXR5OiAxOyAvLyBPdmVycmlkZSBGaXJlZm94J3MgdW51c3VhbCBkZWZhdWx0IG9wYWNpdHk7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMTUyNlxuICB9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBJbnRlcm5ldCBFeHBsb3JlciAxMCtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciAgeyBjb2xvcjogQGNvbG9yOyB9IC8vIFNhZmFyaSBhbmQgQ2hyb21lXG59XG5cbi8vIFRyYW5zZm9ybWF0aW9uc1xuLnNjYWxlKEByYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbn1cbi5zY2FsZShAcmF0aW9YOyBAcmF0aW9ZKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcbn1cbi5zY2FsZVgoQHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcbn1cbi5zY2FsZVkoQHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcbn1cbi5za2V3KEB4OyBAeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7IC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzQ4ODU7IElFOStcbiAgICAgICAtby10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xufVxuLnRyYW5zbGF0ZShAeDsgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xufVxuLnRyYW5zbGF0ZTNkKEB4OyBAeTsgQHopIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHgsIEB5LCBAeik7XG59XG4ucm90YXRlKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xufVxuLnJvdGF0ZVgoQGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpO1xufVxuLnJvdGF0ZVkoQGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpO1xufVxuLnBlcnNwZWN0aXZlKEBwZXJzcGVjdGl2ZSkge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcbiAgICAgICAgICBwZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xufVxuLnBlcnNwZWN0aXZlLW9yaWdpbihAcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46IEBwZXJzcGVjdGl2ZTtcbiAgICAgLW1vei1wZXJzcGVjdGl2ZS1vcmlnaW46IEBwZXJzcGVjdGl2ZTtcbiAgICAgICAgICBwZXJzcGVjdGl2ZS1vcmlnaW46IEBwZXJzcGVjdGl2ZTtcbn1cbi50cmFuc2Zvcm0tb3JpZ2luKEBvcmlnaW4pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luO1xuICAgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47XG4gICAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjsgLy8gSUU5IG9ubHlcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luO1xufVxuXG5cbi8vIFRyYW5zaXRpb25zXG5cbi50cmFuc2l0aW9uKEB0cmFuc2l0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XG59XG4udHJhbnNpdGlvbi1wcm9wZXJ0eShAdHJhbnNpdGlvbi1wcm9wZXJ0eSkge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IEB0cmFuc2l0aW9uLXByb3BlcnR5O1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IEB0cmFuc2l0aW9uLXByb3BlcnR5O1xufVxuLnRyYW5zaXRpb24tZGVsYXkoQHRyYW5zaXRpb24tZGVsYXkpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiBAdHJhbnNpdGlvbi1kZWxheTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiBAdHJhbnNpdGlvbi1kZWxheTtcbn1cbi50cmFuc2l0aW9uLWR1cmF0aW9uKEB0cmFuc2l0aW9uLWR1cmF0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogQHRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogQHRyYW5zaXRpb24tZHVyYXRpb247XG59XG4udHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oQHRpbWluZy1mdW5jdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xufVxuLnRyYW5zaXRpb24tdHJhbnNmb3JtKEB0cmFuc2l0aW9uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gQHRyYW5zaXRpb247XG4gICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gQHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIEB0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcbn1cblxuXG4vLyBVc2VyIHNlbGVjdFxuLy8gRm9yIHNlbGVjdGluZyB0ZXh0IG9uIHRoZSBwYWdlXG5cbi51c2VyLXNlbGVjdChAc2VsZWN0KSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IEBzZWxlY3Q7IC8vIElFMTArXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XG59XG4iLCIvLyBXZWJLaXQtc3R5bGUgZm9jdXNcblxuLnRhYi1mb2N1cygpIHtcbiAgLy8gV2ViS2l0LXNwZWNpZmljLiBPdGhlciBicm93c2VycyB3aWxsIGtlZXAgdGhlaXIgZGVmYXVsdCBvdXRsaW5lIHN0eWxlLlxuICAvLyAoSW5pdGlhbGx5IHRyaWVkIHRvIGFsc28gZm9yY2UgZGVmYXVsdCB2aWEgYG91dGxpbmU6IGluaXRpYWxgLFxuICAvLyBidXQgdGhhdCBzZWVtcyB0byBlcnJvbmVvdXNseSByZW1vdmUgdGhlIG91dGxpbmUgaW4gRmlyZWZveCBhbHRvZ2V0aGVyLilcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbiIsIi8vIEltYWdlIE1peGluc1xuLy8gLSBSZXNwb25zaXZlIGltYWdlXG4vLyAtIFJldGluYSBpbWFnZVxuXG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vXG4vLyBLZWVwIGltYWdlcyBmcm9tIHNjYWxpbmcgYmV5b25kIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnRzLlxuLmltZy1yZXNwb25zaXZlKEBkaXNwbGF5OiBibG9jaykge1xuICBkaXNwbGF5OiBAZGlzcGxheTtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBQYXJ0IDE6IFNldCBhIG1heGltdW0gcmVsYXRpdmUgdG8gdGhlIHBhcmVudFxuICBoZWlnaHQ6IGF1dG87IC8vIFBhcnQgMjogU2NhbGUgdGhlIGhlaWdodCBhY2NvcmRpbmcgdG8gdGhlIHdpZHRoLCBvdGhlcndpc2UgeW91IGdldCBzdHJldGNoaW5nXG59XG5cblxuLy8gUmV0aW5hIGltYWdlXG4vL1xuLy8gU2hvcnQgcmV0aW5hIG1peGluIGZvciBzZXR0aW5nIGJhY2tncm91bmQtaW1hZ2UgYW5kIC1zaXplLiBOb3RlIHRoYXQgdGhlXG4vLyBzcGVsbGluZyBvZiBgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvYCBpcyBpbnRlbnRpb25hbC5cbi5pbWctcmV0aW5hKEBmaWxlLTF4OyBAZmlsZS0yeDsgQHdpZHRoLTF4OyBAaGVpZ2h0LTF4KSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB7ZmlsZS0xeH1cIik7XG5cbiAgQG1lZGlhXG4gIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICBtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMi8xKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgIG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiQHtmaWxlLTJ4fVwiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IEB3aWR0aC0xeCBAaGVpZ2h0LTF4O1xuICB9XG59XG4iLCIvL1xuLy8gVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBIZWFkaW5nc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XG4gIGZvbnQtZmFtaWx5OiBAaGVhZGluZ3MtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiBAaGVhZGluZ3MtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiBAaGVhZGluZ3MtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiBAaGVhZGluZ3MtY29sb3I7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogQGhlYWRpbmdzLXNtYWxsLWNvbG9yO1xuICB9XG59XG5cbmgxLCAuaDEsXG5oMiwgLmgyLFxuaDMsIC5oMyB7XG4gIG1hcmdpbi10b3A6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNjUlO1xuICB9XG59XG5oNCwgLmg0LFxuaDUsIC5oNSxcbmg2LCAuaDYge1xuICBtYXJnaW4tdG9wOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIG1hcmdpbi1ib3R0b206IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgfVxufVxuXG5oMSwgLmgxIHsgZm9udC1zaXplOiBAZm9udC1zaXplLWgxOyB9XG5oMiwgLmgyIHsgZm9udC1zaXplOiBAZm9udC1zaXplLWgyOyB9XG5oMywgLmgzIHsgZm9udC1zaXplOiBAZm9udC1zaXplLWgzOyB9XG5oNCwgLmg0IHsgZm9udC1zaXplOiBAZm9udC1zaXplLWg0OyB9XG5oNSwgLmg1IHsgZm9udC1zaXplOiBAZm9udC1zaXplLWg1OyB9XG5oNiwgLmg2IHsgZm9udC1zaXplOiBAZm9udC1zaXplLWg2OyB9XG5cblxuLy8gQm9keSB0ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnAge1xuICBtYXJnaW46IDAgMCAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG59XG5cbi5sZWFkIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXNpemU6IGZsb29yKChAZm9udC1zaXplLWJhc2UgKiAxLjE1KSk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgZm9udC1zaXplOiAoQGZvbnQtc2l6ZS1iYXNlICogMS41KTtcbiAgfVxufVxuXG5cbi8vIEVtcGhhc2lzICYgbWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBFeDogKDEycHggc21hbGwgZm9udCAvIDE0cHggYmFzZSBmb250KSAqIDEwMCUgPSBhYm91dCA4NSVcbnNtYWxsLFxuLnNtYWxsIHtcbiAgZm9udC1zaXplOiBmbG9vcigoMTAwJSAqIEBmb250LXNpemUtc21hbGwgLyBAZm9udC1zaXplLWJhc2UpKTtcbn1cblxubWFyayxcbi5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHN0YXRlLXdhcm5pbmctYmc7XG4gIHBhZGRpbmc6IC4yZW07XG59XG5cbi8vIEFsaWdubWVudFxuLnRleHQtbGVmdCAgICAgICAgICAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4udGV4dC1yaWdodCAgICAgICAgICB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4udGV4dC1jZW50ZXIgICAgICAgICB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLnRleHQtanVzdGlmeSAgICAgICAgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4udGV4dC1ub3dyYXAgICAgICAgICB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLy8gVHJhbnNmb3JtYXRpb25cbi50ZXh0LWxvd2VyY2FzZSAgICAgIHsgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuLnRleHQtdXBwZXJjYXNlICAgICAgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4udGV4dC1jYXBpdGFsaXplICAgICB7IHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi8vIENvbnRleHR1YWwgY29sb3JzXG4udGV4dC1tdXRlZCB7XG4gIGNvbG9yOiBAdGV4dC1tdXRlZDtcbn1cbi50ZXh0LXByaW1hcnkge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBicmFuZC1wcmltYXJ5KTtcbn1cbi50ZXh0LXN1Y2Nlc3Mge1xuICAudGV4dC1lbXBoYXNpcy12YXJpYW50KEBzdGF0ZS1zdWNjZXNzLXRleHQpO1xufVxuLnRleHQtaW5mbyB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLWluZm8tdGV4dCk7XG59XG4udGV4dC13YXJuaW5nIHtcbiAgLnRleHQtZW1waGFzaXMtdmFyaWFudChAc3RhdGUtd2FybmluZy10ZXh0KTtcbn1cbi50ZXh0LWRhbmdlciB7XG4gIC50ZXh0LWVtcGhhc2lzLXZhcmlhbnQoQHN0YXRlLWRhbmdlci10ZXh0KTtcbn1cblxuLy8gQ29udGV4dHVhbCBiYWNrZ3JvdW5kc1xuLy8gRm9yIG5vdyB3ZSdsbCBsZWF2ZSB0aGVzZSBhbG9uZ3NpZGUgdGhlIHRleHQgY2xhc3NlcyB1bnRpbCB2NCB3aGVuIHdlIGNhblxuLy8gc2FmZWx5IHNoaWZ0IHRoaW5ncyBhcm91bmQgKHBlciBTZW1WZXIgcnVsZXMpLlxuLmJnLXByaW1hcnkge1xuICAvLyBHaXZlbiB0aGUgY29udHJhc3QgaGVyZSwgdGhpcyBpcyB0aGUgb25seSBjbGFzcyB0byBoYXZlIGl0cyBjb2xvciBpbnZlcnRlZFxuICAvLyBhdXRvbWF0aWNhbGx5LlxuICBjb2xvcjogI2ZmZjtcbiAgLmJnLXZhcmlhbnQoQGJyYW5kLXByaW1hcnkpO1xufVxuLmJnLXN1Y2Nlc3Mge1xuICAuYmctdmFyaWFudChAc3RhdGUtc3VjY2Vzcy1iZyk7XG59XG4uYmctaW5mbyB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS1pbmZvLWJnKTtcbn1cbi5iZy13YXJuaW5nIHtcbiAgLmJnLXZhcmlhbnQoQHN0YXRlLXdhcm5pbmctYmcpO1xufVxuLmJnLWRhbmdlciB7XG4gIC5iZy12YXJpYW50KEBzdGF0ZS1kYW5nZXItYmcpO1xufVxuXG5cbi8vIFBhZ2UgaGVhZGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wYWdlLWhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAoKEBsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpIC0gMSk7XG4gIG1hcmdpbjogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAqIDIpIDAgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQHBhZ2UtaGVhZGVyLWJvcmRlci1jb2xvcjtcbn1cblxuXG4vLyBMaXN0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBVbm9yZGVyZWQgYW5kIE9yZGVyZWQgbGlzdHNcbnVsLFxub2wge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIHVsLFxuICBvbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLyBMaXN0IG9wdGlvbnNcblxuLy8gVW5zdHlsZWQga2VlcHMgbGlzdCBpdGVtcyBibG9jayBsZXZlbCwganVzdCByZW1vdmVzIGRlZmF1bHQgYnJvd3NlciBwYWRkaW5nIGFuZCBsaXN0LXN0eWxlXG4ubGlzdC11bnN0eWxlZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLy8gSW5saW5lIHR1cm5zIGxpc3QgaXRlbXMgaW50byBpbmxpbmUtYmxvY2tcbi5saXN0LWlubGluZSB7XG4gIC5saXN0LXVuc3R5bGVkKCk7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIH1cbn1cblxuLy8gRGVzY3JpcHRpb24gTGlzdHNcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDsgLy8gUmVtb3ZlIGJyb3dzZXIgZGVmYXVsdFxuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG59XG5kdCxcbmRkIHtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xufVxuZHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IC8vIFVuZG8gYnJvd3NlciBkZWZhdWx0XG59XG5cbi8vIEhvcml6b250YWwgZGVzY3JpcHRpb24gbGlzdHNcbi8vXG4vLyBEZWZhdWx0cyB0byBiZWluZyBzdGFja2VkIHdpdGhvdXQgYW55IG9mIHRoZSBiZWxvdyBzdHlsZXMgYXBwbGllZCwgdW50aWwgdGhlXG4vLyBncmlkIGJyZWFrcG9pbnQgaXMgcmVhY2hlZCAoZGVmYXVsdCBvZiB+NzY4cHgpLlxuXG4uZGwtaG9yaXpvbnRhbCB7XG4gIGRkIHtcbiAgICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTsgLy8gQ2xlYXIgdGhlIGZsb2F0ZWQgYGR0YCBpZiBhbiBlbXB0eSBgZGRgIGlzIHByZXNlbnRcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZGwtaG9yaXpvbnRhbC1icmVha3BvaW50KSB7XG4gICAgZHQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogKEBkbC1ob3Jpem9udGFsLW9mZnNldCAtIDIwKTtcbiAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAudGV4dC1vdmVyZmxvdygpO1xuICAgIH1cbiAgICBkZCB7XG4gICAgICBtYXJnaW4tbGVmdDogQGRsLWhvcml6b250YWwtb2Zmc2V0O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIE1pc2Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQWJicmV2aWF0aW9ucyBhbmQgYWNyb255bXNcbmFiYnJbdGl0bGVdLFxuLy8gQWRkIGRhdGEtKiBhdHRyaWJ1dGUgdG8gaGVscCBvdXQgb3VyIHRvb2x0aXAgcGx1Z2luLCBwZXIgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy81MjU3XG5hYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdIHtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIEBhYmJyLWJvcmRlci1jb2xvcjtcbn1cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIC50ZXh0LXVwcGVyY2FzZSgpO1xufVxuXG4vLyBCbG9ja3F1b3Rlc1xuYmxvY2txdW90ZSB7XG4gIHBhZGRpbmc6IChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbjogMCAwIEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiBAYmxvY2txdW90ZS1mb250LXNpemU7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgQGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yO1xuXG4gIHAsXG4gIHVsLFxuICBvbCB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gTm90ZTogRGVwcmVjYXRlZCBzbWFsbCBhbmQgLnNtYWxsIGFzIG9mIHYzLjEuMFxuICAvLyBDb250ZXh0OiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjYwXG4gIGZvb3RlcixcbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiA4MCU7IC8vIGJhY2sgdG8gZGVmYXVsdCBmb250LXNpemVcbiAgICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgY29sb3I6IEBibG9ja3F1b3RlLXNtYWxsLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxNCBcXDAwQTAnOyAvLyBlbSBkYXNoLCBuYnNwXG4gICAgfVxuICB9XG59XG5cbi8vIE9wcG9zaXRlIGFsaWdubWVudCBvZiBibG9ja3F1b3RlXG4vL1xuLy8gSGVhZHMgdXA6IGBibG9ja3F1b3RlLnB1bGwtcmlnaHRgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMS4wLlxuLmJsb2NrcXVvdGUtcmV2ZXJzZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgQGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgLy8gQWNjb3VudCBmb3IgY2l0YXRpb25cbiAgZm9vdGVyLFxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICAmOmJlZm9yZSB7IGNvbnRlbnQ6ICcnOyB9XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwwMEEwIFxcMjAxNCc7IC8vIG5ic3AsIGVtIGRhc2hcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcmVzc2VzXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbn1cbiIsIi8vIFR5cG9ncmFwaHlcblxuLnRleHQtZW1waGFzaXMtdmFyaWFudChAY29sb3IpIHtcbiAgY29sb3I6IEBjb2xvcjtcbiAgYSY6aG92ZXIsXG4gIGEmOmZvY3VzIHtcbiAgICBjb2xvcjogZGFya2VuKEBjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gQ29udGV4dHVhbCBiYWNrZ3JvdW5kc1xuXG4uYmctdmFyaWFudChAY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuICBhJjpob3ZlcixcbiAgYSY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8vIFRleHQgb3ZlcmZsb3dcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcblxuLnRleHQtb3ZlcmZsb3coKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLy9cbi8vIENvZGUgKGlubGluZSBhbmQgYmxvY2spXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIElubGluZSBhbmQgYmxvY2sgY29kZSBzdHlsZXNcbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1tb25vc3BhY2U7XG59XG5cbi8vIElubGluZSBjb2RlXG5jb2RlIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiBAY29kZS1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvZGUtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG59XG5cbi8vIFVzZXIgaW5wdXQgdHlwaWNhbGx5IGVudGVyZWQgdmlhIGtleWJvYXJkXG5rYmQge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6IEBrYmQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBrYmQtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLXNtYWxsO1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSk7XG5cbiAga2JkIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbi8vIEJsb2NrcyBvZiBjb2RlXG5wcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogKChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLSAxKSAvIDIpO1xuICBtYXJnaW46IDAgMCAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIGZvbnQtc2l6ZTogKEBmb250LXNpemUtYmFzZSAtIDEpOyAvLyAxNHB4IHRvIDEzcHhcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgY29sb3I6IEBwcmUtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcmUtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBwcmUtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gIC8vIEFjY291bnQgZm9yIHNvbWUgY29kZSBvdXRwdXRzIHRoYXQgcGxhY2UgY29kZSB0YWdzIGluIHByZSB0YWdzXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi8vIEVuYWJsZSBzY3JvbGxhYmxlIGJsb2NrcyBvZiBjb2RlXG4ucHJlLXNjcm9sbGFibGUge1xuICBtYXgtaGVpZ2h0OiBAcHJlLXNjcm9sbGFibGUtbWF4LWhlaWdodDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuIiwiLy9cbi8vIEdyaWQgc3lzdGVtXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIENvbnRhaW5lciB3aWR0aHNcbi8vXG4vLyBTZXQgdGhlIGNvbnRhaW5lciB3aWR0aCwgYW5kIG92ZXJyaWRlIGl0IGZvciBmaXhlZCBuYXZiYXJzIGluIG1lZGlhIHF1ZXJpZXMuXG5cbi5jb250YWluZXIge1xuICAuY29udGFpbmVyLWZpeGVkKCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgd2lkdGg6IEBjb250YWluZXItc207XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgd2lkdGg6IEBjb250YWluZXItbWQ7XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgd2lkdGg6IEBjb250YWluZXItbGc7XG4gIH1cbn1cblxuXG4vLyBGbHVpZCBjb250YWluZXJcbi8vXG4vLyBVdGlsaXplcyB0aGUgbWl4aW4gbWVhbnQgZm9yIGZpeGVkIHdpZHRoIGNvbnRhaW5lcnMsIGJ1dCB3aXRob3V0IGFueSBkZWZpbmVkXG4vLyB3aWR0aCBmb3IgZmx1aWQsIGZ1bGwgd2lkdGggbGF5b3V0cy5cblxuLmNvbnRhaW5lci1mbHVpZCB7XG4gIC5jb250YWluZXItZml4ZWQoKTtcbn1cblxuXG4vLyBSb3dcbi8vXG4vLyBSb3dzIGNvbnRhaW4gYW5kIGNsZWFyIHRoZSBmbG9hdHMgb2YgeW91ciBjb2x1bW5zLlxuXG4ucm93IHtcbiAgLm1ha2Utcm93KCk7XG59XG5cblxuLy8gQ29sdW1uc1xuLy9cbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcblxuLm1ha2UtZ3JpZC1jb2x1bW5zKCk7XG5cblxuLy8gRXh0cmEgc21hbGwgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciBleHRyYSBzbWFsbCBkZXZpY2VzIGxpa2Vcbi8vIHNtYXJ0cGhvbmVzLlxuXG4ubWFrZS1ncmlkKHhzKTtcblxuXG4vLyBTbWFsbCBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBzbWFsbCBkZXZpY2UgcmFuZ2UsIGZyb20gcGhvbmVzXG4vLyB0byB0YWJsZXRzLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgLm1ha2UtZ3JpZChzbSk7XG59XG5cblxuLy8gTWVkaXVtIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIGRlc2t0b3AgZGV2aWNlIHJhbmdlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgLm1ha2UtZ3JpZChtZCk7XG59XG5cblxuLy8gTGFyZ2UgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgbGFyZ2UgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAubWFrZS1ncmlkKGxnKTtcbn1cbiIsIi8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG4vLyBDZW50ZXJlZCBjb250YWluZXIgZWxlbWVudFxuLmNvbnRhaW5lci1maXhlZChAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAgZmxvb3IoKEBndXR0ZXIgLyAyKSk7XG4gIHBhZGRpbmctcmlnaHQ6IGNlaWwoKEBndXR0ZXIgLyAyKSk7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xufVxuXG4vLyBDcmVhdGVzIGEgd3JhcHBlciBmb3IgYSBzZXJpZXMgb2YgY29sdW1uc1xuLm1ha2Utcm93KEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tbGVmdDogIGNlaWwoKEBndXR0ZXIgLyAtMikpO1xuICBtYXJnaW4tcmlnaHQ6IGZsb29yKChAZ3V0dGVyIC8gLTIpKTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBleHRyYSBzbWFsbCBjb2x1bW5zXG4ubWFrZS14cy1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcbn1cbi5tYWtlLXhzLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xufVxuLm1ha2UteHMtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG4ubWFrZS14cy1jb2x1bW4tcHVsbChAY29sdW1ucykge1xuICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBzbWFsbCBjb2x1bW5zXG4ubWFrZS1zbS1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLXNtLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1zbS1jb2x1bW4tcHVzaChAY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2Utc20tY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBtZWRpdW0gY29sdW1uc1xuLm1ha2UtbWQtY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1tZC1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbWQtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLW1kLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbGFyZ2UgY29sdW1uc1xuLm1ha2UtbGctY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG4ubWFrZS1sZy1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLm1ha2UtbGctY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5tYWtlLWxnLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuIiwiLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGBAZ3JpZC1jb2x1bW5zYC5cblxuLm1ha2UtZ3JpZC1jb2x1bW5zKCkge1xuICAvLyBDb21tb24gc3R5bGVzIGZvciBhbGwgc2l6ZXMgb2YgZ3JpZCBjb2x1bW5zLCB3aWR0aHMgMS0xMlxuICAuY29sKEBpbmRleCkgeyAvLyBpbml0aWFsXG4gICAgQGl0ZW06IH5cIi5jb2wteHMtQHtpbmRleH0sIC5jb2wtc20tQHtpbmRleH0sIC5jb2wtbWQtQHtpbmRleH0sIC5jb2wtbGctQHtpbmRleH1cIjtcbiAgICAuY29sKChAaW5kZXggKyAxKSwgQGl0ZW0pO1xuICB9XG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID08IEBncmlkLWNvbHVtbnMpIHsgLy8gZ2VuZXJhbDsgXCI9PFwiIGlzbid0IGEgdHlwb1xuICAgIEBpdGVtOiB+XCIuY29sLXhzLUB7aW5kZXh9LCAuY29sLXNtLUB7aW5kZXh9LCAuY29sLW1kLUB7aW5kZXh9LCAuY29sLWxnLUB7aW5kZXh9XCI7XG4gICAgLmNvbCgoQGluZGV4ICsgMSksIH5cIkB7bGlzdH0sIEB7aXRlbX1cIik7XG4gIH1cbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPiBAZ3JpZC1jb2x1bW5zKSB7IC8vIHRlcm1pbmFsXG4gICAgQHtsaXN0fSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBjb2xsYXBzaW5nIHdoZW4gZW1wdHlcbiAgICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICAgIC8vIElubmVyIGd1dHRlciB2aWEgcGFkZGluZ1xuICAgICAgcGFkZGluZy1sZWZ0OiAgY2VpbCgoQGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICAgICAgcGFkZGluZy1yaWdodDogZmxvb3IoKEBncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgICB9XG4gIH1cbiAgLmNvbCgxKTsgLy8ga2lja3N0YXJ0IGl0XG59XG5cbi5mbG9hdC1ncmlkLWNvbHVtbnMoQGNsYXNzKSB7XG4gIC5jb2woQGluZGV4KSB7IC8vIGluaXRpYWxcbiAgICBAaXRlbTogflwiLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fVwiO1xuICAgIC5jb2woKEBpbmRleCArIDEpLCBAaXRlbSk7XG4gIH1cbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPTwgQGdyaWQtY29sdW1ucykgeyAvLyBnZW5lcmFsXG4gICAgQGl0ZW06IH5cIi5jb2wtQHtjbGFzc30tQHtpbmRleH1cIjtcbiAgICAuY29sKChAaW5kZXggKyAxKSwgflwiQHtsaXN0fSwgQHtpdGVtfVwiKTtcbiAgfVxuICAuY29sKEBpbmRleCwgQGxpc3QpIHdoZW4gKEBpbmRleCA+IEBncmlkLWNvbHVtbnMpIHsgLy8gdGVybWluYWxcbiAgICBAe2xpc3R9IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuICAuY29sKDEpOyAvLyBraWNrc3RhcnQgaXRcbn1cblxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHdpZHRoKSBhbmQgKEBpbmRleCA+IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fSB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBpbmRleCAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1c2gpIGFuZCAoQGluZGV4ID4gMCkge1xuICAuY29sLUB7Y2xhc3N9LXB1c2gtQHtpbmRleH0ge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKEBpbmRleCAvIEBncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1c2gpIGFuZCAoQGluZGV4ID0gMCkge1xuICAuY29sLUB7Y2xhc3N9LXB1c2gtMCB7XG4gICAgbGVmdDogYXV0bztcbiAgfVxufVxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1bGwpIGFuZCAoQGluZGV4ID4gMCkge1xuICAuY29sLUB7Y2xhc3N9LXB1bGwtQHtpbmRleH0ge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdWxsKSBhbmQgKEBpbmRleCA9IDApIHtcbiAgLmNvbC1Ae2NsYXNzfS1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gb2Zmc2V0KSB7XG4gIC5jb2wtQHtjbGFzc30tb2Zmc2V0LUB7aW5kZXh9IHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEJhc2ljIGxvb3BpbmcgaW4gTEVTU1xuLmxvb3AtZ3JpZC1jb2x1bW5zKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQGluZGV4ID49IDApIHtcbiAgLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKTtcbiAgLy8gbmV4dCBpdGVyYXRpb25cbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKChAaW5kZXggLSAxKSwgQGNsYXNzLCBAdHlwZSk7XG59XG5cbi8vIENyZWF0ZSBncmlkIGZvciBzcGVjaWZpYyBjbGFzc1xuLm1ha2UtZ3JpZChAY2xhc3MpIHtcbiAgLmZsb2F0LWdyaWQtY29sdW1ucyhAY2xhc3MpO1xuICAubG9vcC1ncmlkLWNvbHVtbnMoQGdyaWQtY29sdW1ucywgQGNsYXNzLCB3aWR0aCk7XG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHB1bGwpO1xuICAubG9vcC1ncmlkLWNvbHVtbnMoQGdyaWQtY29sdW1ucywgQGNsYXNzLCBwdXNoKTtcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgb2Zmc2V0KTtcbn1cbiIsIi8vXG4vLyBUYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGFibGUtYmc7XG59XG5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IEB0YWJsZS1jZWxsLXBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiBAdGFibGUtY2VsbC1wYWRkaW5nO1xuICBjb2xvcjogQHRleHQtbXV0ZWQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cblxuLy8gQmFzZWxpbmUgc3R5bGVzXG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgLy8gQ2VsbHNcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSxcbiAgPiB0Zm9vdCB7XG4gICAgPiB0ciB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IEB0YWJsZS1jZWxsLXBhZGRpbmc7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEJvdHRvbSBhbGlnbiBmb3IgY29sdW1uIGhlYWRpbmdzXG4gID4gdGhlYWQgPiB0ciA+IHRoIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG4gIC8vIFJlbW92ZSB0b3AgYm9yZGVyIGZyb20gdGhlYWQgYnkgZGVmYXVsdFxuICA+IGNhcHRpb24gKyB0aGVhZCxcbiAgPiBjb2xncm91cCArIHRoZWFkLFxuICA+IHRoZWFkOmZpcnN0LWNoaWxkIHtcbiAgICA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQWNjb3VudCBmb3IgbXVsdGlwbGUgdGJvZHkgaW5zdGFuY2VzXG4gID4gdGJvZHkgKyB0Ym9keSB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICAvLyBOZXN0aW5nXG4gIC50YWJsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJvZHktYmc7XG4gIH1cbn1cblxuXG4vLyBDb25kZW5zZWQgdGFibGUgdy8gaGFsZiBwYWRkaW5nXG5cbi50YWJsZS1jb25kZW5zZWQge1xuICA+IHRoZWFkLFxuICA+IHRib2R5LFxuICA+IHRmb290IHtcbiAgICA+IHRyIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogQHRhYmxlLWNvbmRlbnNlZC1jZWxsLXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gQm9yZGVyZWQgdmVyc2lvblxuLy9cbi8vIEFkZCBib3JkZXJzIGFsbCBhcm91bmQgdGhlIHRhYmxlIGFuZCBiZXR3ZWVuIGFsbCB0aGUgY29sdW1ucy5cblxuLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgQHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSxcbiAgPiB0Zm9vdCB7XG4gICAgPiB0ciB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gdGhlYWQgPiB0ciB7XG4gICAgPiB0aCxcbiAgICA+IHRkIHtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBaZWJyYS1zdHJpcGluZ1xuLy9cbi8vIERlZmF1bHQgemVicmEtc3RyaXBlIHN0eWxlcyAoYWx0ZXJuYXRpbmcgZ3JheSBhbmQgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMpXG5cbi50YWJsZS1zdHJpcGVkIHtcbiAgPiB0Ym9keSA+IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZS1iZy1hY2NlbnQ7XG4gIH1cbn1cblxuXG4vLyBIb3ZlciBlZmZlY3Rcbi8vXG4vLyBQbGFjZWQgaGVyZSBzaW5jZSBpdCBoYXMgdG8gY29tZSBhZnRlciB0aGUgcG90ZW50aWFsIHplYnJhIHN0cmlwaW5nXG5cbi50YWJsZS1ob3ZlciB7XG4gID4gdGJvZHkgPiB0cjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRhYmxlLWJnLWhvdmVyO1xuICB9XG59XG5cblxuLy8gVGFibGUgY2VsbCBzaXppbmdcbi8vXG4vLyBSZXNldCBkZWZhdWx0IHRhYmxlIGJlaGF2aW9yXG5cbnRhYmxlIGNvbFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcG9zaXRpb246IHN0YXRpYzsgLy8gUHJldmVudCBib3JkZXIgaGlkaW5nIGluIEZpcmVmb3ggYW5kIElFOS0xMSAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2MjMpXG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jb2x1bW47XG59XG50YWJsZSB7XG4gIHRkLFxuICB0aCB7XG4gICAgJltjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IC8vIFByZXZlbnQgYm9yZGVyIGhpZGluZyBpbiBGaXJlZm94IGFuZCBJRTktMTEgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjIzKVxuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFRhYmxlIGJhY2tncm91bmRzXG4vL1xuLy8gRXhhY3Qgc2VsZWN0b3JzIGJlbG93IHJlcXVpcmVkIHRvIG92ZXJyaWRlIGAudGFibGUtc3RyaXBlZGAgYW5kIHByZXZlbnRcbi8vIGluaGVyaXRhbmNlIHRvIG5lc3RlZCB0YWJsZXMuXG5cbi8vIEdlbmVyYXRlIHRoZSBjb250ZXh0dWFsIHZhcmlhbnRzXG4udGFibGUtcm93LXZhcmlhbnQoYWN0aXZlOyBAdGFibGUtYmctYWN0aXZlKTtcbi50YWJsZS1yb3ctdmFyaWFudChzdWNjZXNzOyBAc3RhdGUtc3VjY2Vzcy1iZyk7XG4udGFibGUtcm93LXZhcmlhbnQoaW5mbzsgQHN0YXRlLWluZm8tYmcpO1xuLnRhYmxlLXJvdy12YXJpYW50KHdhcm5pbmc7IEBzdGF0ZS13YXJuaW5nLWJnKTtcbi50YWJsZS1yb3ctdmFyaWFudChkYW5nZXI7IEBzdGF0ZS1kYW5nZXItYmcpO1xuXG5cbi8vIFJlc3BvbnNpdmUgdGFibGVzXG4vL1xuLy8gV3JhcCB5b3VyIHRhYmxlcyBpbiBgLnRhYmxlLXJlc3BvbnNpdmVgIGFuZCB3ZSdsbCBtYWtlIHRoZW0gbW9iaWxlIGZyaWVuZGx5XG4vLyBieSBlbmFibGluZyBob3Jpem9udGFsIHNjcm9sbGluZy4gT25seSBhcHBsaWVzIDw3NjhweC4gRXZlcnl0aGluZyBhYm92ZSB0aGF0XG4vLyB3aWxsIGRpc3BsYXkgbm9ybWFsbHkuXG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWluLWhlaWdodDogMC4wMSU7IC8vIFdvcmthcm91bmQgZm9yIElFOSBidWcgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE0ODM3KVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogKEBsaW5lLWhlaWdodC1jb21wdXRlZCAqIDAuNzUpO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGUtYm9yZGVyLWNvbG9yO1xuXG4gICAgLy8gVGlnaHRlbiB1cCBzcGFjaW5nXG4gICAgPiAudGFibGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgLy8gRW5zdXJlIHRoZSBjb250ZW50IGRvZXNuJ3Qgd3JhcFxuICAgICAgPiB0aGVhZCxcbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgPiB0aCxcbiAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBvdmVycmlkZXMgZm9yIHRoZSBib3JkZXJlZCB0YWJsZXNcbiAgICA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgICBib3JkZXI6IDA7XG5cbiAgICAgIC8vIE51a2UgdGhlIGFwcHJvcHJpYXRlIGJvcmRlcnMgc28gdGhhdCB0aGUgcGFyZW50IGNhbiBoYW5kbGUgdGhlbVxuICAgICAgPiB0aGVhZCxcbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgICAgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT25seSBudWtlIHRoZSBsYXN0IHJvdydzIGJvdHRvbS1ib3JkZXIgaW4gYHRib2R5YCBhbmQgYHRmb290YCBzaW5jZVxuICAgICAgLy8gY2hhbmNlcyBhcmUgdGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBgdHJgIGluIGEgYHRoZWFkYCBhbmQgdGhhdCB3b3VsZFxuICAgICAgLy8gcmVtb3ZlIHRoZSBib3JkZXIgYWx0b2dldGhlci5cbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICA+IHRoLFxuICAgICAgICAgID4gdGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGFibGVzXG5cbi50YWJsZS1yb3ctdmFyaWFudChAc3RhdGU7IEBiYWNrZ3JvdW5kKSB7XG4gIC8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4gIC8vIGluaGVyaXRhbmNlIHRvIG5lc3RlZCB0YWJsZXMuXG4gIC50YWJsZSA+IHRoZWFkID4gdHIsXG4gIC50YWJsZSA+IHRib2R5ID4gdHIsXG4gIC50YWJsZSA+IHRmb290ID4gdHIge1xuICAgID4gdGQuQHtzdGF0ZX0sXG4gICAgPiB0aC5Ae3N0YXRlfSxcbiAgICAmLkB7c3RhdGV9ID4gdGQsXG4gICAgJi5Ae3N0YXRlfSA+IHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlcyBmb3IgYC50YWJsZS1ob3ZlcmBcbiAgLy8gTm90ZTogdGhpcyBpcyBub3QgYXZhaWxhYmxlIGZvciBjZWxscyBvciByb3dzIHdpdGhpbiBgdGhlYWRgIG9yIGB0Zm9vdGAuXG4gIC50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIge1xuICAgID4gdGQuQHtzdGF0ZX06aG92ZXIsXG4gICAgPiB0aC5Ae3N0YXRlfTpob3ZlcixcbiAgICAmLkB7c3RhdGV9OmhvdmVyID4gdGQsXG4gICAgJjpob3ZlciA+IC5Ae3N0YXRlfSxcbiAgICAmLkB7c3RhdGV9OmhvdmVyID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCA1JSk7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gRm9ybXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gTm9ybWFsaXplIG5vbi1jb250cm9sc1xuLy9cbi8vIFJlc3R5bGUgYW5kIGJhc2VsaW5lIG5vbi1jb250cm9sIGZvcm0gZWxlbWVudHMuXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIC8vIENocm9tZSBhbmQgRmlyZWZveCBzZXQgYSBgbWluLXdpZHRoOiBtaW4tY29udGVudDtgIG9uIGZpZWxkc2V0cyxcbiAgLy8gc28gd2UgcmVzZXQgdGhhdCB0byBlbnN1cmUgaXQgYmVoYXZlcyBtb3JlIGxpa2UgYSBzdGFuZGFyZCBibG9jayBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMjM1OS5cbiAgbWluLXdpZHRoOiAwO1xufVxuXG5sZWdlbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiAoQGZvbnQtc2l6ZS1iYXNlICogMS41KTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBAbGVnZW5kLWNvbG9yO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAbGVnZW5kLWJvcmRlci1jb2xvcjtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gRm9yY2UgSUU4IHRvIHdyYXAgbG9uZyBjb250ZW50IChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMzE0MSlcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuXG4vLyBOb3JtYWxpemUgZm9ybSBjb250cm9sc1xuLy9cbi8vIFdoaWxlIG1vc3Qgb2Ygb3VyIGZvcm0gc3R5bGVzIHJlcXVpcmUgZXh0cmEgY2xhc3Nlcywgc29tZSBiYXNpYyBub3JtYWxpemF0aW9uXG4vLyBpcyByZXF1aXJlZCB0byBlbnN1cmUgb3B0aW11bSBkaXNwbGF5IHdpdGggb3Igd2l0aG91dCB0aG9zZSBjbGFzc2VzIHRvIGJldHRlclxuLy8gYWRkcmVzcyBicm93c2VyIGluY29uc2lzdGVuY2llcy5cblxuLy8gT3ZlcnJpZGUgY29udGVudC1ib3ggaW4gTm9ybWFsaXplICgqIGlzbid0IHNwZWNpZmljIGVub3VnaClcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAuYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cblxuLy8gUG9zaXRpb24gcmFkaW9zIGFuZCBjaGVja2JveGVzIGJldHRlclxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5OyAvLyBJRTgtOVxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBNYWtlIHJhbmdlIGlucHV0cyBiZWhhdmUgbGlrZSB0ZXh0dWFsIGZvcm0gY29udHJvbHNcbmlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gTWFrZSBtdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMgaGVpZ2h0IG5vdCBmaXhlZFxuc2VsZWN0W211bHRpcGxlXSxcbnNlbGVjdFtzaXplXSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy8gRm9jdXMgZm9yIGZpbGUsIHJhZGlvLCBhbmQgY2hlY2tib3hcbmlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmZvY3VzIHtcbiAgLnRhYi1mb2N1cygpO1xufVxuXG4vLyBBZGp1c3Qgb3V0cHV0IGVsZW1lbnRcbm91dHB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6IEBpbnB1dC1jb2xvcjtcbn1cblxuXG4vLyBDb21tb24gZm9ybSBjb250cm9sc1xuLy9cbi8vIFNoYXJlZCBzaXplIGFuZCB0eXBlIHJlc2V0cyBmb3IgZm9ybSBjb250cm9scy4gQXBwbHkgYC5mb3JtLWNvbnRyb2xgIHRvIGFueVxuLy8gb2YgdGhlIGZvbGxvd2luZyBmb3JtIGNvbnRyb2xzOlxuLy9cbi8vIHNlbGVjdFxuLy8gdGV4dGFyZWFcbi8vIGlucHV0W3R5cGU9XCJ0ZXh0XCJdXG4vLyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1cbi8vIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXVxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZVwiXVxuLy8gaW5wdXRbdHlwZT1cIm1vbnRoXCJdXG4vLyBpbnB1dFt0eXBlPVwidGltZVwiXVxuLy8gaW5wdXRbdHlwZT1cIndlZWtcIl1cbi8vIGlucHV0W3R5cGU9XCJudW1iZXJcIl1cbi8vIGlucHV0W3R5cGU9XCJlbWFpbFwiXVxuLy8gaW5wdXRbdHlwZT1cInVybFwiXVxuLy8gaW5wdXRbdHlwZT1cInNlYXJjaFwiXVxuLy8gaW5wdXRbdHlwZT1cInRlbFwiXVxuLy8gaW5wdXRbdHlwZT1cImNvbG9yXCJdXG5cbi5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1iYXNlOyAvLyBNYWtlIGlucHV0cyBhdCBsZWFzdCB0aGUgaGVpZ2h0IG9mIHRoZWlyIGJ1dHRvbiBjb3VudGVycGFydCAoYmFzZSBsaW5lLWhlaWdodCArIHBhZGRpbmcgKyBib3JkZXIpXG4gIHBhZGRpbmc6IEBwYWRkaW5nLWJhc2UtdmVydGljYWwgQHBhZGRpbmctYmFzZS1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogQGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5wdXQtYmc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcbiAgYm9yZGVyOiAxcHggc29saWQgQGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXM7IC8vIE5vdGU6IFRoaXMgaGFzIG5vIGVmZmVjdCBvbiA8c2VsZWN0PnMgaW4gc29tZSBicm93c2VycywgZHVlIHRvIHRoZSBsaW1pdGVkIHN0eWxhYmlsaXR5IG9mIDxzZWxlY3Q+cyBpbiBDU1MuXG4gIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpKTtcbiAgLnRyYW5zaXRpb24oflwiYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1c1wiKTtcblxuICAvLyBDdXN0b21pemUgdGhlIGA6Zm9jdXNgIHN0YXRlIHRvIGltaXRhdGUgbmF0aXZlIFdlYktpdCBzdHlsZXMuXG4gIC5mb3JtLWNvbnRyb2wtZm9jdXMoKTtcblxuICAvLyBQbGFjZWhvbGRlclxuICAucGxhY2Vob2xkZXIoKTtcblxuICAvLyBVbnN0eWxlIHRoZSBjYXJldCBvbiBgPHNlbGVjdD5gcyBpbiBJRTEwKy5cbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYW5kIHJlYWQtb25seSBpbnB1dHNcbiAgLy9cbiAgLy8gSFRNTDUgc2F5cyB0aGF0IGNvbnRyb2xzIHVuZGVyIGEgZmllbGRzZXQgPiBsZWdlbmQ6Zmlyc3QtY2hpbGQgd29uJ3QgYmVcbiAgLy8gZGlzYWJsZWQgaWYgdGhlIGZpZWxkc2V0IGlzIGRpc2FibGVkLiBEdWUgdG8gaW1wbGVtZW50YXRpb24gZGlmZmljdWx0eSwgd2VcbiAgLy8gZG9uJ3QgaG9ub3IgdGhhdCBlZGdlIGNhc2U7IHdlIHN0eWxlIHRoZW0gYXMgZGlzYWJsZWQgYW55d2F5LlxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5wdXQtYmctZGlzYWJsZWQ7XG4gICAgb3BhY2l0eTogMTsgLy8gaU9TIGZpeCBmb3IgdW5yZWFkYWJsZSBkaXNhYmxlZCBjb250ZW50OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY1NVxuICB9XG5cbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBSZXNldCBoZWlnaHQgZm9yIGB0ZXh0YXJlYWBzXG4gIHRleHRhcmVhJiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cblxuLy8gU2VhcmNoIGlucHV0cyBpbiBpT1Ncbi8vXG4vLyBUaGlzIG92ZXJyaWRlcyB0aGUgZXh0cmEgcm91bmRlZCBjb3JuZXJzIG9uIHNlYXJjaCBpbnB1dHMgaW4gaU9TIHNvIHRoYXQgb3VyXG4vLyBgLmZvcm0tY29udHJvbGAgY2xhc3MgY2FuIHByb3Blcmx5IHN0eWxlIHRoZW0uIE5vdGUgdGhhdCB0aGlzIGNhbm5vdCBzaW1wbHlcbi8vIGJlIGFkZGVkIHRvIGAuZm9ybS1jb250cm9sYCBhcyBpdCdzIG5vdCBzcGVjaWZpYyBlbm91Z2guIEZvciBkZXRhaWxzLCBzZWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE1ODYuXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblxuLy8gU3BlY2lhbCBzdHlsZXMgZm9yIGlPUyB0ZW1wb3JhbCBpbnB1dHNcbi8vXG4vLyBJbiBNb2JpbGUgU2FmYXJpLCBzZXR0aW5nIGBkaXNwbGF5OiBibG9ja2Agb24gdGVtcG9yYWwgaW5wdXRzIGNhdXNlcyB0aGVcbi8vIHRleHQgd2l0aGluIHRoZSBpbnB1dCB0byBiZWNvbWUgdmVydGljYWxseSBtaXNhbGlnbmVkLiBBcyBhIHdvcmthcm91bmQsIHdlXG4vLyBzZXQgYSBwaXhlbCBsaW5lLWhlaWdodCB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuIGhlaWdodCBvZiB0aGUgaW5wdXQsIGJ1dCBvbmx5XG4vLyBmb3IgU2FmYXJpLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTg0OFxuLy9cbi8vIE5vdGUgdGhhdCBhcyBvZiA5LjMsIGlPUyBkb2Vzbid0IHN1cHBvcnQgYHdlZWtgLlxuXG5AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0ge1xuICAgICYuZm9ybS1jb250cm9sIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gICAgfVxuXG4gICAgJi5pbnB1dC1zbSxcbiAgICAuaW5wdXQtZ3JvdXAtc20gJiB7XG4gICAgICBsaW5lLWhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICB9XG5cbiAgICAmLmlucHV0LWxnLFxuICAgIC5pbnB1dC1ncm91cC1sZyAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEZvcm0gZ3JvdXBzXG4vL1xuLy8gRGVzaWduZWQgdG8gaGVscCB3aXRoIHRoZSBvcmdhbml6YXRpb24gYW5kIHNwYWNpbmcgb2YgdmVydGljYWwgZm9ybXMuIEZvclxuLy8gaG9yaXpvbnRhbCBmb3JtcywgdXNlIHRoZSBwcmVkZWZpbmVkIGdyaWQgY2xhc3Nlcy5cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiBAZm9ybS1ncm91cC1tYXJnaW4tYm90dG9tO1xufVxuXG5cbi8vIENoZWNrYm94ZXMgYW5kIHJhZGlvc1xuLy9cbi8vIEluZGVudCB0aGUgbGFiZWxzIHRvIHBvc2l0aW9uIHJhZGlvcy9jaGVja2JveGVzIGFzIGhhbmdpbmcgY29udHJvbHMuXG5cbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgbGFiZWwge1xuICAgIG1pbi1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDsgLy8gRW5zdXJlIHRoZSBpbnB1dCBkb2Vzbid0IGp1bXAgd2hlbiB0aGVyZSBpcyBubyB0ZXh0XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cbi5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4ucmFkaW8taW5saW5lIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4uY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBtYXJnaW4tdG9wOiA0cHggXFw5O1xufVxuXG4ucmFkaW8gKyAucmFkaW8sXG4uY2hlY2tib3ggKyAuY2hlY2tib3gge1xuICBtYXJnaW4tdG9wOiAtNXB4OyAvLyBNb3ZlIHVwIHNpYmxpbmcgcmFkaW9zIG9yIGNoZWNrYm94ZXMgZm9yIHRpZ2h0ZXIgc3BhY2luZ1xufVxuXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgb24gc2FtZSBsaW5lXG4ucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yYWRpby1pbmxpbmUgKyAucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSArIC5jaGVja2JveC1pbmxpbmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tbGVmdDogMTBweDsgLy8gc3BhY2Ugb3V0IGNvbnNlY3V0aXZlIGlubGluZSBjb250cm9sc1xufVxuXG4vLyBBcHBseSBzYW1lIGRpc2FibGVkIGN1cnNvciB0d2VhayBhcyBmb3IgaW5wdXRzXG4vLyBTb21lIHNwZWNpYWwgY2FyZSBpcyBuZWVkZWQgYmVjYXVzZSA8bGFiZWw+cyBkb24ndCBpbmhlcml0IHRoZWlyIHBhcmVudCdzIGBjdXJzb3JgLlxuLy9cbi8vIE5vdGU6IE5laXRoZXIgcmFkaW9zIG5vciBjaGVja2JveGVzIGNhbiBiZSByZWFkb25seS5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICB9XG59XG4vLyBUaGVzZSBjbGFzc2VzIGFyZSB1c2VkIGRpcmVjdGx5IG9uIDxsYWJlbD5zXG4ucmFkaW8taW5saW5lLFxuLmNoZWNrYm94LWlubGluZSB7XG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cbi8vIFRoZXNlIGNsYXNzZXMgYXJlIHVzZWQgb24gZWxlbWVudHMgd2l0aCA8bGFiZWw+IGRlc2NlbmRhbnRzXG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICAmLmRpc2FibGVkLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgbGFiZWwge1xuICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN0YXRpYyBmb3JtIGNvbnRyb2wgdGV4dFxuLy9cbi8vIEFwcGx5IGNsYXNzIHRvIGEgYHBgIGVsZW1lbnQgdG8gbWFrZSBhbnkgc3RyaW5nIG9mIHRleHQgYWxpZ24gd2l0aCBsYWJlbHMgaW5cbi8vIGEgaG9yaXpvbnRhbCBmb3JtIGxheW91dC5cblxuLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAvLyBTaXplIGl0IGFwcHJvcHJpYXRlbHkgbmV4dCB0byByZWFsIGZvcm0gY29udHJvbHNcbiAgcGFkZGluZy10b3A6IChAcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7XG4gIHBhZGRpbmctYm90dG9tOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpO1xuICAvLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4gZnJvbSBgcGBcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIEBmb250LXNpemUtYmFzZSk7XG5cbiAgJi5pbnB1dC1sZyxcbiAgJi5pbnB1dC1zbSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuXG4vLyBGb3JtIGNvbnRyb2wgc2l6aW5nXG4vL1xuLy8gQnVpbGQgb24gYC5mb3JtLWNvbnRyb2xgIHdpdGggbW9kaWZpZXIgY2xhc3NlcyB0byBkZWNyZWFzZSBvciBpbmNyZWFzZSB0aGVcbi8vIGhlaWdodCBhbmQgZm9udC1zaXplIG9mIGZvcm0gY29udHJvbHMuXG4vL1xuLy8gVGhlIGAuZm9ybS1ncm91cC0qIGZvcm0tY29udHJvbGAgdmFyaWF0aW9ucyBhcmUgc2FkbHkgZHVwbGljYXRlZCB0byBhdm9pZCB0aGVcbi8vIGlzc3VlIGRvY3VtZW50ZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xNTA3NC5cblxuLmlucHV0LXNtIHtcbiAgLmlucHV0LXNpemUoQGlucHV0LWhlaWdodC1zbWFsbDsgQHBhZGRpbmctc21hbGwtdmVydGljYWw7IEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGlucHV0LWJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuLmZvcm0tZ3JvdXAtc20ge1xuICAuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gICAgcGFkZGluZzogQHBhZGRpbmctc21hbGwtdmVydGljYWwgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1zbWFsbDtcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbDtcbiAgfVxuICBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gIH1cbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuICBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gICAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIEBmb250LXNpemUtc21hbGwpO1xuICAgIHBhZGRpbmc6IChAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCArIDEpIEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtc21hbGw7XG4gIH1cbn1cblxuLmlucHV0LWxnIHtcbiAgLmlucHV0LXNpemUoQGlucHV0LWhlaWdodC1sYXJnZTsgQHBhZGRpbmctbGFyZ2UtdmVydGljYWw7IEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7IEBmb250LXNpemUtbGFyZ2U7IEBsaW5lLWhlaWdodC1sYXJnZTsgQGlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2UpO1xufVxuLmZvcm0tZ3JvdXAtbGcge1xuICAuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgcGFkZGluZzogQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1sYXJnZTtcbiAgICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgfVxuICBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gIH1cbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuICBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgbWluLWhlaWdodDogKEBsaW5lLWhlaWdodC1jb21wdXRlZCArIEBmb250LXNpemUtbGFyZ2UpO1xuICAgIHBhZGRpbmc6IChAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCArIDEpIEBwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtbGFyZ2U7XG4gIH1cbn1cblxuXG4vLyBGb3JtIGNvbnRyb2wgZmVlZGJhY2sgc3RhdGVzXG4vL1xuLy8gQXBwbHkgY29udGV4dHVhbCBhbmQgc2VtYW50aWMgc3RhdGVzIHRvIGluZGl2aWR1YWwgZm9ybSBjb250cm9scy5cblxuLmhhcy1mZWVkYmFjayB7XG4gIC8vIEVuYWJsZSBhYnNvbHV0ZSBwb3NpdGlvbmluZ1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gRW5zdXJlIGljb25zIGRvbid0IG92ZXJsYXAgdGV4dFxuICAuZm9ybS1jb250cm9sIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoQGlucHV0LWhlaWdodC1iYXNlICogMS4yNSk7XG4gIH1cbn1cbi8vIEZlZWRiYWNrIGljb24gKHJlcXVpcmVzIC5nbHlwaGljb24gY2xhc3Nlcylcbi5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDI7IC8vIEVuc3VyZSBpY29uIGlzIGFib3ZlIGlucHV0IGdyb3Vwc1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IEBpbnB1dC1oZWlnaHQtYmFzZTtcbiAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0LWJhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaW5wdXQtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtbGFyZ2U7XG59XG4uaW5wdXQtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG4gIGhlaWdodDogQGlucHV0LWhlaWdodC1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6IEBpbnB1dC1oZWlnaHQtc21hbGw7XG59XG5cbi8vIEZlZWRiYWNrIHN0YXRlc1xuLmhhcy1zdWNjZXNzIHtcbiAgLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEBzdGF0ZS1zdWNjZXNzLXRleHQ7IEBzdGF0ZS1zdWNjZXNzLXRleHQ7IEBzdGF0ZS1zdWNjZXNzLWJnKTtcbn1cbi5oYXMtd2FybmluZyB7XG4gIC5mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbihAc3RhdGUtd2FybmluZy10ZXh0OyBAc3RhdGUtd2FybmluZy10ZXh0OyBAc3RhdGUtd2FybmluZy1iZyk7XG59XG4uaGFzLWVycm9yIHtcbiAgLmZvcm0tY29udHJvbC12YWxpZGF0aW9uKEBzdGF0ZS1kYW5nZXItdGV4dDsgQHN0YXRlLWRhbmdlci10ZXh0OyBAc3RhdGUtZGFuZ2VyLWJnKTtcbn1cblxuLy8gUmVwb3NpdGlvbiBmZWVkYmFjayBpY29uIGlmIGlucHV0IGhhcyB2aXNpYmxlIGxhYmVsIGFib3ZlXG4uaGFzLWZlZWRiYWNrIGxhYmVsIHtcblxuICAmIH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgNSk7IC8vIEhlaWdodCBvZiB0aGUgYGxhYmVsYCBhbmQgaXRzIG1hcmdpblxuICB9XG4gICYuc3Itb25seSB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogMDtcbiAgfVxufVxuXG5cbi8vIEhlbHAgdGV4dFxuLy9cbi8vIEFwcGx5IHRvIGFueSBlbGVtZW50IHlvdSB3aXNoIHRvIGNyZWF0ZSBsaWdodCB0ZXh0IGZvciBwbGFjZW1lbnQgaW1tZWRpYXRlbHlcbi8vIGJlbG93IGEgZm9ybSBjb250cm9sLiBVc2UgZm9yIGdlbmVyYWwgaGVscCwgZm9ybWF0dGluZywgb3IgaW5zdHJ1Y3Rpb25hbCB0ZXh0LlxuXG4uaGVscC1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvLyBhY2NvdW50IGZvciBhbnkgZWxlbWVudCB1c2luZyBoZWxwLWJsb2NrXG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgY29sb3I6IGxpZ2h0ZW4oQHRleHQtY29sb3IsIDI1JSk7IC8vIGxpZ2h0ZW4gdGhlIHRleHQgc29tZSBmb3IgY29udHJhc3Rcbn1cblxuXG4vLyBJbmxpbmUgZm9ybXNcbi8vXG4vLyBNYWtlIGZvcm1zIGFwcGVhciBpbmxpbmUoLWJsb2NrKSBieSBhZGRpbmcgdGhlIGAuZm9ybS1pbmxpbmVgIGNsYXNzLiBJbmxpbmVcbi8vIGZvcm1zIGJlZ2luIHN0YWNrZWQgb24gZXh0cmEgc21hbGwgKG1vYmlsZSkgZGV2aWNlcyBhbmQgdGhlbiBnbyBpbmxpbmUgd2hlblxuLy8gdmlld3BvcnRzIHJlYWNoIDw3NjhweC5cbi8vXG4vLyBSZXF1aXJlcyB3cmFwcGluZyBpbnB1dHMgYW5kIGxhYmVscyB3aXRoIGAuZm9ybS1ncm91cGAgZm9yIHByb3BlciBkaXNwbGF5IG9mXG4vLyBkZWZhdWx0IEhUTUwgZm9ybSBjb250cm9scyBhbmQgb3VyIGN1c3RvbSBmb3JtIGNvbnRyb2xzIChlLmcuLCBpbnB1dCBncm91cHMpLlxuLy9cbi8vIEhlYWRzIHVwISBUaGlzIGlzIG1peGluLWVkIGludG8gYC5uYXZiYXItZm9ybWAgaW4gbmF2YmFycy5sZXNzLlxuXG4uZm9ybS1pbmxpbmUge1xuXG4gIC8vIEtpY2sgaW4gdGhlIGlubGluZVxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAvLyBJbmxpbmUtYmxvY2sgYWxsIHRoZSB0aGluZ3MgZm9yIFwiaW5saW5lXCJcbiAgICAuZm9ybS1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvLyBJbiBuYXZiYXItZm9ybSwgYWxsb3cgZm9sa3MgdG8gKm5vdCogdXNlIGAuZm9ybS1ncm91cGBcbiAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBhdXRvOyAvLyBQcmV2ZW50IGxhYmVscyBmcm9tIHN0YWNraW5nIGFib3ZlIGlucHV0cyBpbiBgLmZvcm0tZ3JvdXBgXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3RhdGljIGNvbnRyb2xzIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgb25lc1xuICAgIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAuaW5wdXQtZ3JvdXAge1xuICAgICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgLmlucHV0LWdyb3VwLWFkZG9uLFxuICAgICAgLmlucHV0LWdyb3VwLWJ0bixcbiAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbnB1dCBncm91cHMgbmVlZCB0aGF0IDEwMCUgd2lkdGggdGhvdWdoXG4gICAgLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4gb24gcmFkaW9zL2NoZWNrYm94ZXMgdGhhdCB3ZXJlIHVzZWQgZm9yIHN0YWNraW5nLCBhbmRcbiAgICAvLyB0aGVuIHVuZG8gdGhlIGZsb2F0aW5nIG9mIHJhZGlvcyBhbmQgY2hlY2tib3hlcyB0byBtYXRjaC5cbiAgICAucmFkaW8sXG4gICAgLmNoZWNrYm94IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgbGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAvLyBSZS1vdmVycmlkZSB0aGUgZmVlZGJhY2sgaWNvbi5cbiAgICAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEhvcml6b250YWwgZm9ybXNcbi8vXG4vLyBIb3Jpem9udGFsIGZvcm1zIGFyZSBidWlsdCBvbiBncmlkIGNsYXNzZXMgYW5kIGFsbG93IHlvdSB0byBjcmVhdGUgZm9ybXMgd2l0aFxuLy8gbGFiZWxzIG9uIHRoZSBsZWZ0IGFuZCBpbnB1dHMgb24gdGhlIHJpZ2h0LlxuXG4uZm9ybS1ob3Jpem9udGFsIHtcblxuICAvLyBDb25zaXN0ZW50IHZlcnRpY2FsIGFsaWdubWVudCBvZiByYWRpb3MgYW5kIGNoZWNrYm94ZXNcbiAgLy9cbiAgLy8gTGFiZWxzIGFsc28gZ2V0IHNvbWUgcmVzZXQgc3R5bGVzLCBidXQgdGhhdCBpcyBzY29wZWQgdG8gYSBtZWRpYSBxdWVyeSBiZWxvdy5cbiAgLnJhZGlvLFxuICAuY2hlY2tib3gsXG4gIC5yYWRpby1pbmxpbmUsXG4gIC5jaGVja2JveC1pbmxpbmUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTsgLy8gRGVmYXVsdCBwYWRkaW5nIHBsdXMgYSBib3JkZXJcbiAgfVxuICAvLyBBY2NvdW50IGZvciBwYWRkaW5nIHdlJ3JlIGFkZGluZyB0byBlbnN1cmUgdGhlIGFsaWdubWVudCBhbmQgb2YgaGVscCB0ZXh0XG4gIC8vIGFuZCBvdGhlciBjb250ZW50IGJlbG93IGl0ZW1zXG4gIC5yYWRpbyxcbiAgLmNoZWNrYm94IHtcbiAgICBtaW4taGVpZ2h0OiAoQGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgKEBwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKSk7XG4gIH1cblxuICAvLyBNYWtlIGZvcm0gZ3JvdXBzIGJlaGF2ZSBsaWtlIHJvd3NcbiAgLmZvcm0tZ3JvdXAge1xuICAgIC5tYWtlLXJvdygpO1xuICB9XG5cbiAgLy8gUmVzZXQgc3BhY2luZyBhbmQgcmlnaHQgYWxpZ24gbGFiZWxzLCBidXQgc2NvcGUgdG8gbWVkaWEgcXVlcmllcyBzbyB0aGF0XG4gIC8vIGxhYmVscyBvbiBuYXJyb3cgdmlld3BvcnRzIHN0YWNrIHRoZSBzYW1lIGFzIGEgZGVmYXVsdCBmb3JtIGV4YW1wbGUuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpOyAvLyBEZWZhdWx0IHBhZGRpbmcgcGx1cyBhIGJvcmRlclxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRpb24gc3RhdGVzXG4gIC8vXG4gIC8vIFJlcG9zaXRpb24gdGhlIGljb24gYmVjYXVzZSBpdCdzIG5vdyB3aXRoaW4gYSBncmlkIGNvbHVtbiBhbmQgY29sdW1ucyBoYXZlXG4gIC8vIGBwb3NpdGlvbjogcmVsYXRpdmU7YCBvbiB0aGVtLiBBbHNvIGFjY291bnRzIGZvciB0aGUgZ3JpZCBndXR0ZXIgcGFkZGluZy5cbiAgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICByaWdodDogZmxvb3IoKEBncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgfVxuXG4gIC8vIEZvcm0gZ3JvdXAgc2l6ZXNcbiAgLy9cbiAgLy8gUXVpY2sgdXRpbGl0eSBjbGFzcyBmb3IgYXBwbHlpbmcgYC5pbnB1dC1sZ2AgYW5kIGAuaW5wdXQtc21gIHN0eWxlcyB0byB0aGVcbiAgLy8gaW5wdXRzIGFuZCBsYWJlbHMgd2l0aGluIGEgYC5mb3JtLWdyb3VwYC5cbiAgLmZvcm0tZ3JvdXAtbGcge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICsgMSk7XG4gICAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1sYXJnZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmZvcm0tZ3JvdXAtc20ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuICAgICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogKEBwYWRkaW5nLXNtYWxsLXZlcnRpY2FsICsgMSk7XG4gICAgICAgIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvcm0gdmFsaWRhdGlvbiBzdGF0ZXNcbi8vXG4vLyBVc2VkIGluIGZvcm1zLmxlc3MgdG8gZ2VuZXJhdGUgdGhlIGZvcm0gdmFsaWRhdGlvbiBDU1MgZm9yIHdhcm5pbmdzLCBlcnJvcnMsXG4vLyBhbmQgc3VjY2Vzc2VzLlxuXG4uZm9ybS1jb250cm9sLXZhbGlkYXRpb24oQHRleHQtY29sb3I6ICM1NTU7IEBib3JkZXItY29sb3I6ICNjY2M7IEBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1KSB7XG4gIC8vIENvbG9yIHRoZSBsYWJlbCBhbmQgaGVscCB0ZXh0XG4gIC5oZWxwLWJsb2NrLFxuICAuY29udHJvbC1sYWJlbCxcbiAgLnJhZGlvLFxuICAuY2hlY2tib3gsXG4gIC5yYWRpby1pbmxpbmUsXG4gIC5jaGVja2JveC1pbmxpbmUsXG4gICYucmFkaW8gbGFiZWwsXG4gICYuY2hlY2tib3ggbGFiZWwsXG4gICYucmFkaW8taW5saW5lIGxhYmVsLFxuICAmLmNoZWNrYm94LWlubGluZSBsYWJlbCAge1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgfVxuICAvLyBTZXQgdGhlIGJvcmRlciBhbmQgYm94IHNoYWRvdyBvbiBzcGVjaWZpYyBpbnB1dHMgdG8gbWF0Y2hcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyLWNvbG9yO1xuICAgIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpKTsgLy8gUmVkZWNsYXJlIHNvIHRyYW5zaXRpb25zIHdvcmtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKEBib3JkZXItY29sb3IsIDEwJSk7XG4gICAgICBAc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDZweCBsaWdodGVuKEBib3JkZXItY29sb3IsIDIwJSk7XG4gICAgICAuYm94LXNoYWRvdyhAc2hhZG93KTtcbiAgICB9XG4gIH1cbiAgLy8gU2V0IHZhbGlkYXRpb24gc3RhdGVzIGFsc28gZm9yIGFkZG9uc1xuICAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICAgIGNvbG9yOiBAdGV4dC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6IEBib3JkZXItY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQtY29sb3I7XG4gIH1cbiAgLy8gT3B0aW9uYWwgZmVlZGJhY2sgaWNvblxuICAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICBjb2xvcjogQHRleHQtY29sb3I7XG4gIH1cbn1cblxuXG4vLyBGb3JtIGNvbnRyb2wgZm9jdXMgc3RhdGVcbi8vXG4vLyBHZW5lcmF0ZSBhIGN1c3RvbWl6ZWQgZm9jdXMgc3RhdGUgYW5kIGZvciBhbnkgaW5wdXQgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbG9yLFxuLy8gd2hpY2ggZGVmYXVsdHMgdG8gdGhlIGBAaW5wdXQtYm9yZGVyLWZvY3VzYCB2YXJpYWJsZS5cbi8vXG4vLyBXZSBoaWdobHkgZW5jb3VyYWdlIHlvdSB0byBub3QgY3VzdG9taXplIHRoZSBkZWZhdWx0IHZhbHVlLCBidXQgaW5zdGVhZCB1c2Vcbi8vIHRoaXMgdG8gdHdlYWsgY29sb3JzIG9uIGFuIGFzLW5lZWRlZCBiYXNpcy4gVGhpcyBhZXN0aGV0aWMgY2hhbmdlIGlzIGJhc2VkIG9uXG4vLyBXZWJLaXQncyBkZWZhdWx0IHN0eWxlcywgYnV0IGFwcGxpY2FibGUgdG8gYSB3aWRlciByYW5nZSBvZiBicm93c2Vycy4gSXRzXG4vLyB1c2FiaWxpdHkgYW5kIGFjY2Vzc2liaWxpdHkgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCB3aXRoIGFueSBjaGFuZ2UuXG4vL1xuLy8gRXhhbXBsZSB1c2FnZTogY2hhbmdlIHRoZSBkZWZhdWx0IGJsdWUgYm9yZGVyIGFuZCBzaGFkb3cgdG8gd2hpdGUgZm9yIGJldHRlclxuLy8gY29udHJhc3QgYWdhaW5zdCBhIGRhcmsgZ3JheSBiYWNrZ3JvdW5kLlxuLmZvcm0tY29udHJvbC1mb2N1cyhAY29sb3I6IEBpbnB1dC1ib3JkZXItZm9jdXMpIHtcbiAgQGNvbG9yLXJnYmE6IHJnYmEocmVkKEBjb2xvciksIGdyZWVuKEBjb2xvciksIGJsdWUoQGNvbG9yKSwgLjYpO1xuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IEBjb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIC5ib3gtc2hhZG93KH5cImluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgOHB4IEB7Y29sb3ItcmdiYX1cIik7XG4gIH1cbn1cblxuLy8gRm9ybSBjb250cm9sIHNpemluZ1xuLy9cbi8vIFJlbGF0aXZlIHRleHQgc2l6ZSwgcGFkZGluZywgYW5kIGJvcmRlci1yYWRpaSBjaGFuZ2VzIGZvciBmb3JtIGNvbnRyb2xzLiBGb3Jcbi8vIGhvcml6b250YWwgc2l6aW5nLCB3cmFwIGNvbnRyb2xzIGluIHRoZSBwcmVkZWZpbmVkIGdyaWQgY2xhc3Nlcy4gYDxzZWxlY3Q+YFxuLy8gZWxlbWVudCBnZXRzIHNwZWNpYWwgbG92ZSBiZWNhdXNlIGl0J3Mgc3BlY2lhbCwgYW5kIHRoYXQncyBhIGZhY3QhXG4uaW5wdXQtc2l6ZShAaW5wdXQtaGVpZ2h0OyBAcGFkZGluZy12ZXJ0aWNhbDsgQHBhZGRpbmctaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZTsgQGxpbmUtaGVpZ2h0OyBAYm9yZGVyLXJhZGl1cykge1xuICBoZWlnaHQ6IEBpbnB1dC1oZWlnaHQ7XG4gIHBhZGRpbmc6IEBwYWRkaW5nLXZlcnRpY2FsIEBwYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cbiAgc2VsZWN0JiB7XG4gICAgaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBAaW5wdXQtaGVpZ2h0O1xuICB9XG5cbiAgdGV4dGFyZWEmLFxuICBzZWxlY3RbbXVsdGlwbGVdJiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCIvL1xuLy8gQnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gRm9yIGlucHV0LmJ0blxuICBmb250LXdlaWdodDogQGJ0bi1mb250LXdlaWdodDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZXNldCB1bnVzdWFsIEZpcmVmb3gtb24tQW5kcm9pZCBkZWZhdWx0IHN0eWxlOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9pc3N1ZXMvMjE0XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAuYnV0dG9uLXNpemUoQHBhZGRpbmctYmFzZS12ZXJ0aWNhbDsgQHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOyBAZm9udC1zaXplLWJhc2U7IEBsaW5lLWhlaWdodC1iYXNlOyBAYnRuLWJvcmRlci1yYWRpdXMtYmFzZSk7XG4gIC51c2VyLXNlbGVjdChub25lKTtcblxuICAmLFxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICAudGFiLWZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgY29sb3I6IEBidG4tZGVmYXVsdC1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAuYm94LXNoYWRvdyhpbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KSk7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICAub3BhY2l0eSguNjUpO1xuICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICB9XG5cbiAgYSYge1xuICAgICYuZGlzYWJsZWQsXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIEZ1dHVyZS1wcm9vZiBkaXNhYmxpbmcgb2YgY2xpY2tzIG9uIGA8YT5gIGVsZW1lbnRzXG4gICAgfVxuICB9XG59XG5cblxuLy8gQWx0ZXJuYXRlIGJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZGVmYXVsdCB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLWRlZmF1bHQtY29sb3I7IEBidG4tZGVmYXVsdC1iZzsgQGJ0bi1kZWZhdWx0LWJvcmRlcik7XG59XG4uYnRuLXByaW1hcnkge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1wcmltYXJ5LWNvbG9yOyBAYnRuLXByaW1hcnktYmc7IEBidG4tcHJpbWFyeS1ib3JkZXIpO1xufVxuLy8gU3VjY2VzcyBhcHBlYXJzIGFzIGdyZWVuXG4uYnRuLXN1Y2Nlc3Mge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi1zdWNjZXNzLWNvbG9yOyBAYnRuLXN1Y2Nlc3MtYmc7IEBidG4tc3VjY2Vzcy1ib3JkZXIpO1xufVxuLy8gSW5mbyBhcHBlYXJzIGFzIGJsdWUtZ3JlZW5cbi5idG4taW5mbyB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLWluZm8tY29sb3I7IEBidG4taW5mby1iZzsgQGJ0bi1pbmZvLWJvcmRlcik7XG59XG4vLyBXYXJuaW5nIGFwcGVhcnMgYXMgb3JhbmdlXG4uYnRuLXdhcm5pbmcge1xuICAuYnV0dG9uLXZhcmlhbnQoQGJ0bi13YXJuaW5nLWNvbG9yOyBAYnRuLXdhcm5pbmctYmc7IEBidG4td2FybmluZy1ib3JkZXIpO1xufVxuLy8gRGFuZ2VyIGFuZCBlcnJvciBhcHBlYXIgYXMgcmVkXG4uYnRuLWRhbmdlciB7XG4gIC5idXR0b24tdmFyaWFudChAYnRuLWRhbmdlci1jb2xvcjsgQGJ0bi1kYW5nZXItYmc7IEBidG4tZGFuZ2VyLWJvcmRlcik7XG59XG5cblxuLy8gTGluayBidXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1ha2UgYSBidXR0b24gbG9vayBhbmQgYmVoYXZlIGxpa2UgYSBsaW5rXG4uYnRuLWxpbmsge1xuICBjb2xvcjogQGxpbmstY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgJixcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICB9XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBidG4tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBCdXR0b24gU2l6ZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tbGcge1xuICAvLyBsaW5lLWhlaWdodDogZW5zdXJlIGV2ZW4tbnVtYmVyZWQgaGVpZ2h0IG9mIGJ1dHRvbiBuZXh0IHRvIGxhcmdlIGlucHV0XG4gIC5idXR0b24tc2l6ZShAcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDsgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1sYXJnZTsgQGxpbmUtaGVpZ2h0LWxhcmdlOyBAYnRuLWJvcmRlci1yYWRpdXMtbGFyZ2UpO1xufVxuLmJ0bi1zbSB7XG4gIC8vIGxpbmUtaGVpZ2h0OiBlbnN1cmUgcHJvcGVyIGhlaWdodCBvZiBidXR0b24gbmV4dCB0byBzbWFsbCBpbnB1dFxuICAuYnV0dG9uLXNpemUoQHBhZGRpbmctc21hbGwtdmVydGljYWw7IEBwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGJ0bi1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cbi5idG4teHMge1xuICAuYnV0dG9uLXNpemUoQHBhZGRpbmcteHMtdmVydGljYWw7IEBwYWRkaW5nLXhzLWhvcml6b250YWw7IEBmb250LXNpemUtc21hbGw7IEBsaW5lLWhlaWdodC1zbWFsbDsgQGJ0bi1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cblxuXG4vLyBCbG9jayBidXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIFZlcnRpY2FsbHkgc3BhY2Ugb3V0IG11bHRpcGxlIGJsb2NrIGJ1dHRvbnNcbi5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4vLyBTcGVjaWZpY2l0eSBvdmVycmlkZXNcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcbiAgJi5idG4tYmxvY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBCdXR0b24gdmFyaWFudHNcbi8vXG4vLyBFYXNpbHkgcHVtcCBvdXQgZGVmYXVsdCBzdHlsZXMsIGFzIHdlbGwgYXMgOmhvdmVyLCA6Zm9jdXMsIDphY3RpdmUsXG4vLyBhbmQgZGlzYWJsZWQgb3B0aW9ucyBmb3IgYWxsIGJ1dHRvbnNcblxuLmJ1dHRvbi12YXJpYW50KEBjb2xvcjsgQGJhY2tncm91bmQ7IEBib3JkZXIpIHtcbiAgY29sb3I6IEBjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogQGJvcmRlcjtcblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgMjUlKTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlciwgMTIlKTtcbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gIC5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZSYge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYWNrZ3JvdW5kLCAxMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLCAxMiUpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgY29sb3I6IEBjb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgMTclKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbihAYm9yZGVyLCAyNSUpO1xuICAgIH1cbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gIC5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZSYge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgICAgICAgICBib3JkZXItY29sb3I6IEBib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLmJhZGdlIHtcbiAgICBjb2xvcjogQGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuICB9XG59XG5cbi8vIEJ1dHRvbiBzaXplc1xuLmJ1dHRvbi1zaXplKEBwYWRkaW5nLXZlcnRpY2FsOyBAcGFkZGluZy1ob3Jpem9udGFsOyBAZm9udC1zaXplOyBAbGluZS1oZWlnaHQ7IEBib3JkZXItcmFkaXVzKSB7XG4gIHBhZGRpbmc6IEBwYWRkaW5nLXZlcnRpY2FsIEBwYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG59XG4iLCIvLyBPcGFjaXR5XG5cbi5vcGFjaXR5KEBvcGFjaXR5KSB7XG4gIG9wYWNpdHk6IEBvcGFjaXR5O1xuICAvLyBJRTggZmlsdGVyXG4gIEBvcGFjaXR5LWllOiAoQG9wYWNpdHkgKiAxMDApO1xuICBmaWx0ZXI6IH5cImFscGhhKG9wYWNpdHk9QHtvcGFjaXR5LWllfSlcIjtcbn1cbiIsIi8vXG4vLyBDb21wb25lbnQgYW5pbWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gSGVhZHMgdXAhXG4vL1xuLy8gV2UgZG9uJ3QgdXNlIHRoZSBgLm9wYWNpdHkoKWAgbWl4aW4gaGVyZSBzaW5jZSBpdCBjYXVzZXMgYSBidWcgd2l0aCB0ZXh0XG4vLyBmaWVsZHMgaW4gSUU3LTguIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMzU1Mi5cblxuLmZhZGUge1xuICBvcGFjaXR5OiAwO1xuICAudHJhbnNpdGlvbihvcGFjaXR5IC4xNXMgbGluZWFyKTtcbiAgJi5pbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uY29sbGFwc2Uge1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuaW4gICAgICB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gIHRyJi5pbiAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdzsgfVxuICB0Ym9keSYuaW4geyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7IH1cbn1cblxuLmNvbGxhcHNpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLnRyYW5zaXRpb24tcHJvcGVydHkoflwiaGVpZ2h0LCB2aXNpYmlsaXR5XCIpO1xuICAudHJhbnNpdGlvbi1kdXJhdGlvbiguMzVzKTtcbiAgLnRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKGVhc2UpO1xufVxuIiwiLy9cbi8vIERyb3Bkb3duIG1lbnVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIERyb3Bkb3duIGFycm93L2NhcmV0XG4uY2FyZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci10b3A6ICAgQGNhcmV0LXdpZHRoLWJhc2UgZGFzaGVkO1xuICBib3JkZXItdG9wOiAgIEBjYXJldC13aWR0aC1iYXNlIHNvbGlkIH5cIlxcOVwiOyAvLyBJRThcbiAgYm9yZGVyLXJpZ2h0OiBAY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6ICBAY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLy8gVGhlIGRyb3Bkb3duIHdyYXBwZXIgKGRpdilcbi5kcm9wdXAsXG4uZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIFByZXZlbnQgdGhlIGZvY3VzIG9uIHRoZSBkcm9wZG93biB0b2dnbGUgd2hlbiBjbG9zaW5nIGRyb3Bkb3duc1xuLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIFRoZSBkcm9wZG93biBtZW51ICh1bClcbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtZHJvcGRvd247XG4gIGRpc3BsYXk6IG5vbmU7IC8vIG5vbmUgYnkgZGVmYXVsdCwgYnV0IGJsb2NrIG9uIFwib3BlblwiIG9mIHRoZSBtZW51XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBwYWRkaW5nOiA1cHggMDtcbiAgbWFyZ2luOiAycHggMCAwOyAvLyBvdmVycmlkZSBkZWZhdWx0IHVsXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyBFbnN1cmVzIHByb3BlciBhbGlnbm1lbnQgaWYgcGFyZW50IGhhcyBpdCBjaGFuZ2VkIChlLmcuLCBtb2RhbCBmb290ZXIpXG4gIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bi1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQGRyb3Bkb3duLWZhbGxiYWNrLWJvcmRlcjsgLy8gSUU4IGZhbGxiYWNrXG4gIGJvcmRlcjogMXB4IHNvbGlkIEBkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG4gIC5ib3gtc2hhZG93KDAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgLy8gQWxpZ25zIHRoZSBkcm9wZG93biBtZW51IHRvIHJpZ2h0XG4gIC8vXG4gIC8vIERlcHJlY2F0ZWQgYXMgb2YgMy4xLjAgaW4gZmF2b3Igb2YgYC5kcm9wZG93bi1tZW51LVtkaXJdYFxuICAmLnB1bGwtcmlnaHQge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAvLyBEaXZpZGVycyAoYmFzaWNhbGx5IGFuIGhyKSB3aXRoaW4gdGhlIGRyb3Bkb3duXG4gIC5kaXZpZGVyIHtcbiAgICAubmF2LWRpdmlkZXIoQGRyb3Bkb3duLWRpdmlkZXItYmcpO1xuICB9XG5cbiAgLy8gTGlua3Mgd2l0aGluIHRoZSBkcm9wZG93biBtZW51XG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gcHJldmVudCBsaW5rcyBmcm9tIHJhbmRvbWx5IGJyZWFraW5nIG9udG8gbmV3IGxpbmVzXG4gIH1cbn1cblxuLy8gSG92ZXIvRm9jdXMgc3RhdGVcbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd24tbGluay1ob3Zlci1iZztcbiAgfVxufVxuXG4vLyBBY3RpdmUgc3RhdGVcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bi1saW5rLWFjdGl2ZS1iZztcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBzdGF0ZVxuLy9cbi8vIEdyYXkgb3V0IHRleHQgYW5kIGVuc3VyZSB0aGUgaG92ZXIvZm9jdXMgc3RhdGUgcmVtYWlucyBncmF5XG5cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC8vIE51a2UgaG92ZXIvZm9jdXMgZWZmZWN0c1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVtb3ZlIENTUyBncmFkaWVudFxuICAgIC5yZXNldC1maWx0ZXIoKTtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cblxuLy8gT3BlbiBzdGF0ZSBmb3IgdGhlIGRyb3Bkb3duXG4ub3BlbiB7XG4gIC8vIFNob3cgdGhlIG1lbnVcbiAgPiAuZHJvcGRvd24tbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIG91dGxpbmUgd2hlbiA6Zm9jdXMgaXMgdHJpZ2dlcmVkXG4gID4gYSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLyBNZW51IHBvc2l0aW9uaW5nXG4vL1xuLy8gQWRkIGV4dHJhIGNsYXNzIHRvIGAuZHJvcGRvd24tbWVudWAgdG8gZmxpcCB0aGUgYWxpZ25tZW50IG9mIHRoZSBkcm9wZG93blxuLy8gbWVudSB3aXRoIHRoZSBwYXJlbnQuXG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87IC8vIFJlc2V0IHRoZSBkZWZhdWx0IGZyb20gYC5kcm9wZG93bi1tZW51YFxuICByaWdodDogMDtcbn1cbi8vIFdpdGggdjMsIHdlIGVuYWJsZWQgYXV0by1mbGlwcGluZyBpZiB5b3UgaGF2ZSBhIGRyb3Bkb3duIHdpdGhpbiBhIHJpZ2h0XG4vLyBhbGlnbmVkIG5hdiBjb21wb25lbnQuIFRvIGVuYWJsZSB0aGUgdW5kb2luZyBvZiB0aGF0LCB3ZSBwcm92aWRlIGFuIG92ZXJyaWRlXG4vLyB0byByZXN0b3JlIHRoZSBkZWZhdWx0IGRyb3Bkb3duIG1lbnUgYWxpZ25tZW50LlxuLy9cbi8vIFRoaXMgaXMgb25seSBmb3IgbGVmdC1hbGlnbmluZyBhIGRyb3Bkb3duIG1lbnUgd2l0aGluIGEgYC5uYXZiYXItcmlnaHRgIG9yXG4vLyBgLnB1bGwtcmlnaHRgIG5hdiBjb21wb25lbnQuXG4uZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi8vIERyb3Bkb3duIHNlY3Rpb24gaGVhZGVyc1xuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiBAZHJvcGRvd24taGVhZGVyLWNvbG9yO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvLyBhcyB3aXRoID4gbGkgPiBhXG59XG5cbi8vIEJhY2tkcm9wIHRvIGNhdGNoIGJvZHkgY2xpY2tzIG9uIG1vYmlsZSwgZXRjLlxuLmRyb3Bkb3duLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IChAemluZGV4LWRyb3Bkb3duIC0gMTApO1xufVxuXG4vLyBSaWdodCBhbGlnbmVkIGRyb3Bkb3duc1xuLnB1bGwtcmlnaHQgPiAuZHJvcGRvd24tbWVudSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4vLyBBbGxvdyBmb3IgZHJvcGRvd25zIHRvIGdvIGJvdHRvbSB1cCAoYWthLCBkcm9wdXAtbWVudSlcbi8vXG4vLyBKdXN0IGFkZCAuZHJvcHVwIGFmdGVyIHRoZSBzdGFuZGFyZCAuZHJvcGRvd24gY2xhc3MgYW5kIHlvdSdyZSBzZXQsIGJyby5cbi8vIFRPRE86IGFic3RyYWN0IHRoaXMgc28gdGhhdCB0aGUgbmF2YmFyIGZpeGVkIHN0eWxlcyBhcmUgbm90IHBsYWNlZCBoZXJlP1xuXG4uZHJvcHVwLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIHtcbiAgLy8gUmV2ZXJzZSB0aGUgY2FyZXRcbiAgLmNhcmV0IHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206IEBjYXJldC13aWR0aC1iYXNlIGRhc2hlZDtcbiAgICBib3JkZXItYm90dG9tOiBAY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCB+XCJcXDlcIjsgLy8gSUU4XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICAvLyBEaWZmZXJlbnQgcG9zaXRpb25pbmcgZm9yIGJvdHRvbSB1cCBtZW51XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgfVxufVxuXG5cbi8vIENvbXBvbmVudCBhbGlnbm1lbnRcbi8vXG4vLyBSZWl0ZXJhdGUgcGVyIG5hdmJhci5sZXNzIGFuZCB0aGUgbW9kaWZpZWQgY29tcG9uZW50IGFsaWdubWVudCB0aGVyZS5cblxuQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgLm5hdmJhci1yaWdodCB7XG4gICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgLmRyb3Bkb3duLW1lbnUtcmlnaHQoKTtcbiAgICB9XG4gICAgLy8gTmVjZXNzYXJ5IGZvciBvdmVycmlkZXMgb2YgdGhlIGRlZmF1bHQgcmlnaHQgYWxpZ25lZCBtZW51LlxuICAgIC8vIFdpbGwgcmVtb3ZlIGNvbWUgdjQgaW4gYWxsIGxpa2VsaWhvb2QuXG4gICAgLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gICAgICAuZHJvcGRvd24tbWVudS1sZWZ0KCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBIb3Jpem9udGFsIGRpdmlkZXJzXG4vL1xuLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIGRyb3Bkb3ducyBhbmQgbmF2IGxpc3RzXG5cbi5uYXYtZGl2aWRlcihAY29sb3I6ICNlNWU1ZTUpIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogKChAbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSAtIDEpIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbn1cbiIsIi8vIFJlc2V0IGZpbHRlcnMgZm9yIElFXG4vL1xuLy8gV2hlbiB5b3UgbmVlZCB0byByZW1vdmUgYSBncmFkaWVudCBiYWNrZ3JvdW5kLCBkbyBub3QgZm9yZ2V0IHRvIHVzZSB0aGlzIHRvIHJlc2V0XG4vLyB0aGUgSUUgZmlsdGVyIGZvciBJRTkgYW5kIGJlbG93LlxuXG4ucmVzZXQtZmlsdGVyKCkge1xuICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpXCIpKTtcbn1cbiIsIi8vXG4vLyBCdXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNYWtlIHRoZSBkaXYgYmVoYXZlIGxpa2UgYSBidXR0b25cbi5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8vIG1hdGNoIC5idG4gYWxpZ25tZW50IGdpdmVuIGZvbnQtc2l6ZSBoYWNrIGFib3ZlXG4gID4gLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vIEJyaW5nIHRoZSBcImFjdGl2ZVwiIGJ1dHRvbiB0byB0aGUgZnJvbnRcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgJi5hY3RpdmUge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gIH1cbn1cblxuLy8gUHJldmVudCBkb3VibGUgYm9yZGVycyB3aGVuIGJ1dHRvbnMgYXJlIG5leHQgdG8gZWFjaCBvdGhlclxuLmJ0bi1ncm91cCB7XG4gIC5idG4gKyAuYnRuLFxuICAuYnRuICsgLmJ0bi1ncm91cCxcbiAgLmJ0bi1ncm91cCArIC5idG4sXG4gIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgfVxufVxuXG4vLyBPcHRpb25hbDogR3JvdXAgbXVsdGlwbGUgYnV0dG9uIGdyb3VwcyB0b2dldGhlciBmb3IgYSB0b29sYmFyXG4uYnRuLXRvb2xiYXIge1xuICBtYXJnaW4tbGVmdDogLTVweDsgLy8gT2Zmc2V0IHRoZSBmaXJzdCBjaGlsZCdzIG1hcmdpblxuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcblxuICAuYnRuLFxuICAuYnRuLWdyb3VwLFxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwLFxuICA+IC5pbnB1dC1ncm91cCB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgfVxufVxuXG4uYnRuLWdyb3VwID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8vIFNldCBjb3JuZXJzIGluZGl2aWR1YWwgYmVjYXVzZSBzb21ldGltZXMgYSBzaW5nbGUgYnV0dG9uIGNhbiBiZSBpbiBhIC5idG4tZ3JvdXAgYW5kIHdlIG5lZWQgOmZpcnN0LWNoaWxkIGFuZCA6bGFzdC1jaGlsZCB0byBib3RoIG1hdGNoXG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAmOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcbiAgICAuYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbiAgfVxufVxuLy8gTmVlZCAuZHJvcGRvd24tdG9nZ2xlIHNpbmNlIDpsYXN0LWNoaWxkIGRvZXNuJ3QgYXBwbHksIGdpdmVuIHRoYXQgYSAuZHJvcGRvd24tbWVudSBpcyB1c2VkIGltbWVkaWF0ZWx5IGFmdGVyIGl0XG4uYnRuLWdyb3VwID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICAuYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xufVxuXG4vLyBDdXN0b20gZWRpdHMgZm9yIGluY2x1ZGluZyBidG4tZ3JvdXBzIHdpdGhpbiBidG4tZ3JvdXBzICh1c2VmdWwgZm9yIGluY2x1ZGluZyBkcm9wZG93biBidXR0b25zIHdpdGhpbiBhIGJ0bi1ncm91cClcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgPiAuYnRuOmxhc3QtY2hpbGQsXG4gID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgLmJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG4gIH1cbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgLmJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cblxuLy8gT24gYWN0aXZlIGFuZCBvcGVuLCBkb24ndCBzaG93IG91dGxpbmVcbi5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cblxuLy8gU2l6aW5nXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgYnV0dG9uIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llciBtYW5pcHVsYXRpb24uXG5cbi5idG4tZ3JvdXAteHMgPiAuYnRuIHsgJjpleHRlbmQoLmJ0bi14cyk7IH1cbi5idG4tZ3JvdXAtc20gPiAuYnRuIHsgJjpleHRlbmQoLmJ0bi1zbSk7IH1cbi5idG4tZ3JvdXAtbGcgPiAuYnRuIHsgJjpleHRlbmQoLmJ0bi1sZyk7IH1cblxuXG4vLyBTcGxpdCBidXR0b24gZHJvcGRvd25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIGxpbmUgYmV0d2VlbiBidXR0b25zIHNvbWUgZGVwdGhcbi5idG4tZ3JvdXAgPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG5cbi8vIFRoZSBjbGlja2FibGUgYnV0dG9uIGZvciB0b2dnbGluZyB0aGUgbWVudVxuLy8gUmVtb3ZlIHRoZSBncmFkaWVudCBhbmQgc2V0IHRoZSBzYW1lIGluc2V0IHNoYWRvdyBhcyB0aGUgOmFjdGl2ZSBzdGF0ZVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICAuYm94LXNoYWRvdyhpbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KSk7XG5cbiAgLy8gU2hvdyBubyBzaGFkb3cgZm9yIGAuYnRuLWxpbmtgIHNpbmNlIGl0IGhhcyBubyBvdGhlciBidXR0b24gc3R5bGVzLlxuICAmLmJ0bi1saW5rIHtcbiAgICAuYm94LXNoYWRvdyhub25lKTtcbiAgfVxufVxuXG5cbi8vIFJlcG9zaXRpb24gdGhlIGNhcmV0XG4uYnRuIC5jYXJldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLy8gQ2FyZXRzIGluIG90aGVyIGJ1dHRvbiBzaXplc1xuLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IEBjYXJldC13aWR0aC1sYXJnZSBAY2FyZXQtd2lkdGgtbGFyZ2UgMDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cbi8vIFVwc2lkZSBkb3duIGNhcmV0cyBmb3IgLmRyb3B1cFxuLmRyb3B1cCAuYnRuLWxnIC5jYXJldCB7XG4gIGJvcmRlci13aWR0aDogMCBAY2FyZXQtd2lkdGgtbGFyZ2UgQGNhcmV0LXdpZHRoLWxhcmdlO1xufVxuXG5cbi8vIFZlcnRpY2FsIGJ1dHRvbiBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwLFxuICA+IC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBDbGVhciBmbG9hdHMgc28gZHJvcGRvd24gbWVudXMgY2FuIGJlIHByb3Blcmx5IHBsYWNlZFxuICA+IC5idG4tZ3JvdXAge1xuICAgICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuICAgID4gLmJ0biB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICB9XG4gIH1cblxuICA+IC5idG4gKyAuYnRuLFxuICA+IC5idG4gKyAuYnRuLWdyb3VwLFxuICA+IC5idG4tZ3JvdXAgKyAuYnRuLFxuICA+IC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuIHtcbiAgJjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG4gICY6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgLmJvcmRlci10b3AtcmFkaXVzKEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAuYm9yZGVyLWJvdHRvbS1yYWRpdXMoMCk7XG4gIH1cbiAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKEBidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgfVxufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gID4gLmJ0bjpsYXN0LWNoaWxkLFxuICA+IC5kcm9wZG93bi10b2dnbGUge1xuICAgIC5ib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbiAgfVxufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xuICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG5cblxuLy8gSnVzdGlmaWVkIGJ1dHRvbiBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1ncm91cC1qdXN0aWZpZWQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiAxJTtcbiAgfVxuICA+IC5idG4tZ3JvdXAgLmJ0biB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICA+IC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cblxuXG4vLyBDaGVja2JveCBhbmQgcmFkaW8gb3B0aW9uc1xuLy9cbi8vIEluIG9yZGVyIHRvIHN1cHBvcnQgdGhlIGJyb3dzZXIncyBmb3JtIHZhbGlkYXRpb24gZmVlZGJhY2ssIHBvd2VyZWQgYnkgdGhlXG4vLyBgcmVxdWlyZWRgIGF0dHJpYnV0ZSwgd2UgaGF2ZSB0byBcImhpZGVcIiB0aGUgaW5wdXRzIHZpYSBgY2xpcGAuIFdlIGNhbm5vdCB1c2Vcbi8vIGBkaXNwbGF5OiBub25lO2Agb3IgYHZpc2liaWxpdHk6IGhpZGRlbjtgIGFzIHRoYXQgYWxzbyBoaWRlcyB0aGUgcG9wb3Zlci5cbi8vIFNpbXBseSB2aXN1YWxseSBoaWRpbmcgdGhlIGlucHV0cyB2aWEgYG9wYWNpdHlgIHdvdWxkIGxlYXZlIHRoZW0gY2xpY2thYmxlIGluXG4vLyBjZXJ0YWluIGNhc2VzIHdoaWNoIGlzIHByZXZlbnRlZCBieSB1c2luZyBgY2xpcGAgYW5kIGBwb2ludGVyLWV2ZW50c2AuXG4vLyBUaGlzIHdheSwgd2UgZW5zdXJlIGEgRE9NIGVsZW1lbnQgaXMgdmlzaWJsZSB0byBwb3NpdGlvbiB0aGUgcG9wb3ZlciBmcm9tLlxuLy9cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMjc5NCBhbmRcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzE0NTU5IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdIHtcbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNpbmdsZSBzaWRlIGJvcmRlci1yYWRpdXNcblxuLmJvcmRlci10b3AtcmFkaXVzKEByYWRpdXMpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IEByYWRpdXM7XG4gICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBAcmFkaXVzO1xufVxuLmJvcmRlci1yaWdodC1yYWRpdXMoQHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcbiAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IEByYWRpdXM7XG59XG4uYm9yZGVyLWJvdHRvbS1yYWRpdXMoQHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcbiAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEByYWRpdXM7XG59XG4uYm9yZGVyLWxlZnQtcmFkaXVzKEByYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogQHJhZGl1cztcbiAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogQHJhZGl1cztcbn1cbiIsIi8vXG4vLyBJbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIEZvciBkcm9wZG93bnNcbiAgZGlzcGxheTogdGFibGU7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8vIHByZXZlbnQgaW5wdXQgZ3JvdXBzIGZyb20gaW5oZXJpdGluZyBib3JkZXIgc3R5bGVzIGZyb20gdGFibGUgY2VsbHMgd2hlbiBwbGFjZWQgd2l0aGluIGEgdGFibGVcblxuICAvLyBVbmRvIHBhZGRpbmcgYW5kIGZsb2F0IG9mIGdyaWQgY2xhc3Nlc1xuICAmW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLmZvcm0tY29udHJvbCB7XG4gICAgLy8gRW5zdXJlIHRoYXQgdGhlIGlucHV0IGlzIGFsd2F5cyBhYm92ZSB0aGUgKmFwcGVuZGVkKiBhZGRvbiBidXR0b24gZm9yXG4gICAgLy8gcHJvcGVyIGJvcmRlciBjb2xvcnMuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAvLyBJRTkgZnViYXJzIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgaW4gdGV4dCBpbnB1dHMgYW5kIHRoZSBhcnJvd3Mgb25cbiAgICAvLyBzZWxlY3QgZWxlbWVudHMgaW4gaW5wdXQgZ3JvdXBzLiBUbyBmaXggaXQsIHdlIGZsb2F0IHRoZSBpbnB1dC4gRGV0YWlsczpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTYxI2lzc3VlY29tbWVudC0yODkzNjg1NVxuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgei1pbmRleDogMztcbiAgICB9XG4gIH1cbn1cblxuLy8gU2l6aW5nIG9wdGlvbnNcbi8vXG4vLyBSZW1peCB0aGUgZGVmYXVsdCBmb3JtIGNvbnRyb2wgc2l6aW5nIGNsYXNzZXMgaW50byBuZXcgb25lcyBmb3IgZWFzaWVyXG4vLyBtYW5pcHVsYXRpb24uXG5cbi5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIC5pbnB1dC1sZygpO1xufVxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgLmlucHV0LXNtKCk7XG59XG5cblxuLy8gRGlzcGxheSBhcyB0YWJsZS1jZWxsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuLFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXG4gICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLy8gQWRkb24gYW5kIGFkZG9uIHdyYXBwZXIgZm9yIGJ1dHRvbnNcbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4ge1xuICB3aWR0aDogMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8vIE1hdGNoIHRoZSBpbnB1dHNcbn1cblxuLy8gVGV4dCBpbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIHBhZGRpbmc6IEBwYWRkaW5nLWJhc2UtdmVydGljYWwgQHBhZGRpbmctYmFzZS1ob3Jpem9udGFsO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBAaW5wdXQtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0LWdyb3VwLWFkZG9uLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAaW5wdXQtZ3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiBAaW5wdXQtYm9yZGVyLXJhZGl1cztcblxuICAvLyBTaXppbmdcbiAgJi5pbnB1dC1zbSB7XG4gICAgcGFkZGluZzogQHBhZGRpbmctc21hbGwtdmVydGljYWwgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtc21hbGw7XG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtc21hbGw7XG4gIH1cbiAgJi5pbnB1dC1sZyB7XG4gICAgcGFkZGluZzogQHBhZGRpbmctbGFyZ2UtdmVydGljYWwgQHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6IEBmb250LXNpemUtbGFyZ2U7XG4gICAgYm9yZGVyLXJhZGl1czogQGlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIH1cblxuICAvLyBOdWtlIGRlZmF1bHQgbWFyZ2lucyBmcm9tIGNoZWNrYm94ZXMgYW5kIHJhZGlvcyB0byB2ZXJ0aWNhbGx5IGNlbnRlciB3aXRoaW4uXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi8vIFJlc2V0IHJvdW5kZWQgY29ybmVyc1xuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6Zmlyc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICAuYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gIC5ib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4vLyBCdXR0b24gaW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBKYW5raWx5IHByZXZlbnQgaW5wdXQgYnV0dG9uIGdyb3VwcyBmcm9tIHdyYXBwaW5nIHdpdGggYHdoaXRlLXNwYWNlYCBhbmRcbiAgLy8gYGZvbnQtc2l6ZWAgaW4gY29tYmluYXRpb24gd2l0aCBgaW5saW5lLWJsb2NrYCBvbiBidXR0b25zLlxuICBmb250LXNpemU6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBzcGFjaW5nLCBwb3NpdGlvbiBmb3IgYnJpbmdpbmcgaG92ZXJlZC9mb2N1c2VkL2FjdGl2ZWRcbiAgLy8gZWxlbWVudCBhYm92ZSB0aGUgc2libGluZ3MuXG4gID4gLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICsgLmJ0biB7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB9XG4gICAgLy8gQnJpbmcgdGhlIFwiYWN0aXZlXCIgYnV0dG9uIHRvIHRoZSBmcm9udFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5lZ2F0aXZlIG1hcmdpbiB0byBvbmx5IGhhdmUgYSAxcHggYm9yZGVyIGJldHdlZW4gdGhlIHR3b1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICA+IC5idG4sXG4gICAgPiAuYnRuLWdyb3VwIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICB9XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICA+IC5idG4sXG4gICAgPiAuYnRuLWdyb3VwIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBOYXZzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5uYXYge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIE92ZXJyaWRlIGRlZmF1bHQgdWwvb2xcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG5cbiAgPiBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogQG5hdi1saW5rLXBhZGRpbmc7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdi1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0YXRlIHNldHMgdGV4dCB0byBncmF5IGFuZCBudWtlcyBob3Zlci90YWIgZWZmZWN0c1xuICAgICYuZGlzYWJsZWQgPiBhIHtcbiAgICAgIGNvbG9yOiBAbmF2LWRpc2FibGVkLWxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXYtZGlzYWJsZWQtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBAY3Vyc29yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE9wZW4gZHJvcGRvd25zXG4gIC5vcGVuID4gYSB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdi1saW5rLWhvdmVyLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiBAbGluay1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBOYXYgZGl2aWRlcnMgKGRlcHJlY2F0ZWQgd2l0aCB2My4wLjEpXG4gIC8vXG4gIC8vIFRoaXMgc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGluIHYzIHdpdGggdGhlIGRyb3BwaW5nIG9mIGAubmF2LWxpc3RgLCBidXRcbiAgLy8gd2UgbWlzc2VkIGl0LiBXZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGFueXdoZXJlLCBidXQgaW4gdGhlIGludGVyZXN0XG4gIC8vIG9mIG1haW50YWluaW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaW4gY2FzZSB5b3UgdXNlIGl0LCBpdCdzIGRlcHJlY2F0ZWQuXG4gIC5uYXYtZGl2aWRlciB7XG4gICAgLm5hdi1kaXZpZGVyKCk7XG4gIH1cblxuICAvLyBQcmV2ZW50IElFOCBmcm9tIG1pc3BsYWNpbmcgaW1nc1xuICAvL1xuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzk4NCNpc3N1ZWNvbW1lbnQtMzk4NTk4OVxuICA+IGxpID4gYSA+IGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG59XG5cblxuLy8gVGFic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBHaXZlIHRoZSB0YWJzIHNvbWV0aGluZyB0byBzaXQgb25cbi5uYXYtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAvLyBNYWtlIHRoZSBsaXN0LWl0ZW1zIG92ZXJsYXkgdGhlIGJvdHRvbSBib3JkZXJcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuXG4gICAgLy8gQWN0dWFsIHRhYnMgKGFzIGxpbmtzKVxuICAgID4gYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZSBAYm9yZGVyLXJhZGl1cy1iYXNlIDAgMDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IEBuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvciBAbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3IgQG5hdi10YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBY3RpdmUgc3RhdGUsIGFuZCBpdHMgOmhvdmVyIHRvIG92ZXJyaWRlIG5vcm1hbCA6aG92ZXJcbiAgICAmLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWJnO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBAbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBwdWxsaW5nIHRoaXMgaW4gbWFpbmx5IGZvciBsZXNzIHNob3J0aGFuZFxuICAmLm5hdi1qdXN0aWZpZWQge1xuICAgIC5uYXYtanVzdGlmaWVkKCk7XG4gICAgLm5hdi10YWJzLWp1c3RpZmllZCgpO1xuICB9XG59XG5cblxuLy8gUGlsbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5uYXYtcGlsbHMge1xuICA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIC8vIExpbmtzIHJlbmRlcmVkIGFzIHBpbGxzXG4gICAgPiBhIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBuYXYtcGlsbHMtYm9yZGVyLXJhZGl1cztcbiAgICB9XG4gICAgKyBsaSB7XG4gICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTdGFja2VkIHBpbGxzXG4ubmF2LXN0YWNrZWQge1xuICA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICArIGxpIHtcbiAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyAvLyBubyBuZWVkIGZvciB0aGlzIGdhcCBiZXR3ZWVuIG5hdiBpdGVtc1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIE5hdiB2YXJpYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBKdXN0aWZpZWQgbmF2IGxpbmtzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5uYXYtanVzdGlmaWVkIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgPiBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgPiBhIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gIH1cblxuICA+IC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICA+IGEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBNb3ZlIGJvcmRlcnMgdG8gYW5jaG9ycyBpbnN0ZWFkIG9mIGJvdHRvbSBvZiBsaXN0XG4vL1xuLy8gTWl4aW4gZm9yIGFkZGluZyBvbiB0b3AgdGhlIHNoYXJlZCBgLm5hdi1qdXN0aWZpZWRgIHN0eWxlcyBmb3Igb3VyIHRhYnNcbi5uYXYtdGFicy1qdXN0aWZpZWQge1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gID4gbGkgPiBhIHtcbiAgICAvLyBPdmVycmlkZSBtYXJnaW4gZnJvbSAubmF2LXRhYnNcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgfVxuXG4gID4gLmFjdGl2ZSA+IGEsXG4gID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIEBuYXYtdGFicy1qdXN0aWZpZWQtbGluay1ib3JkZXItY29sb3I7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2UgQGJvcmRlci1yYWRpdXMtYmFzZSAwIDA7XG4gICAgfVxuICAgID4gLmFjdGl2ZSA+IGEsXG4gICAgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgICA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBuYXYtdGFicy1qdXN0aWZpZWQtYWN0aXZlLWxpbmstYm9yZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFRhYmJhYmxlIHRhYnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gSGlkZSB0YWJiYWJsZSBwYW5lcyB0byBzdGFydCwgc2hvdyB0aGVtIHdoZW4gYC5hY3RpdmVgXG4udGFiLWNvbnRlbnQge1xuICA+IC50YWItcGFuZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICA+IC5hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cblxuLy8gRHJvcGRvd25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFNwZWNpZmljIGRyb3Bkb3duc1xuLm5hdi10YWJzIC5kcm9wZG93bi1tZW51IHtcbiAgLy8gbWFrZSBkcm9wZG93biBib3JkZXIgb3ZlcmxhcCB0YWIgYm9yZGVyXG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIC8vIFJlbW92ZSB0aGUgdG9wIHJvdW5kZWQgY29ybmVycyBoZXJlIHNpbmNlIHRoZXJlIGlzIGEgaGFyZCBlZGdlIGFib3ZlIHRoZSBtZW51XG4gIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbn1cbiIsIi8vXG4vLyBOYXZiYXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFdyYXBwZXIgYW5kIGJhc2UgY2xhc3Ncbi8vXG4vLyBQcm92aWRlIGEgc3RhdGljIG5hdmJhciBmcm9tIHdoaWNoIHdlIGV4cGFuZCB0byBjcmVhdGUgZnVsbC13aWR0aCwgZml4ZWQsIGFuZFxuLy8gb3RoZXIgbmF2YmFyIHZhcmlhdGlvbnMuXG5cbi5uYXZiYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IEBuYXZiYXItaGVpZ2h0OyAvLyBFbnN1cmUgYSBuYXZiYXIgYWx3YXlzIHNob3dzIChlLmcuLCB3aXRob3V0IGEgLm5hdmJhci1icmFuZCBpbiBjb2xsYXBzZWQgbW9kZSlcbiAgbWFyZ2luLWJvdHRvbTogQG5hdmJhci1tYXJnaW4tYm90dG9tO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAvLyBQcmV2ZW50IGZsb2F0cyBmcm9tIGJyZWFraW5nIHRoZSBuYXZiYXJcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBib3JkZXItcmFkaXVzOiBAbmF2YmFyLWJvcmRlci1yYWRpdXM7XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgaGVhZGluZ1xuLy9cbi8vIEdyb3VwcyBgLm5hdmJhci1icmFuZGAgYW5kIGAubmF2YmFyLXRvZ2dsZWAgaW50byBhIHNpbmdsZSBjb21wb25lbnQgZm9yIGVhc3lcbi8vIHN0eWxpbmcgb2YgcmVzcG9uc2l2ZSBhc3BlY3RzLlxuXG4ubmF2YmFyLWhlYWRlciB7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgY29sbGFwc2UgKGJvZHkpXG4vL1xuLy8gR3JvdXAgeW91ciBuYXZiYXIgY29udGVudCBpbnRvIHRoaXMgZm9yIGVhc3kgY29sbGFwc2luZyBhbmQgZXhwYW5kaW5nIGFjcm9zc1xuLy8gdmFyaW91cyBkZXZpY2Ugc2l6ZXMuIEJ5IGRlZmF1bHQsIHRoaXMgY29udGVudCBpcyBjb2xsYXBzZWQgd2hlbiA8NzY4cHgsIGJ1dFxuLy8gd2lsbCBleHBhbmQgcGFzdCB0aGF0IGZvciBhIGhvcml6b250YWwgZGlzcGxheS5cbi8vXG4vLyBUbyBzdGFydCAob24gbW9iaWxlIGRldmljZXMpIHRoZSBuYXZiYXIgbGlua3MsIGZvcm1zLCBhbmQgYnV0dG9ucyBhcmUgc3RhY2tlZFxuLy8gdmVydGljYWxseSBhbmQgaW5jbHVkZSBhIGBtYXgtaGVpZ2h0YCB0byBvdmVyZmxvdyBpbiBjYXNlIHlvdSBoYXZlIHRvbyBtdWNoXG4vLyBjb250ZW50IGZvciB0aGUgdXNlcidzIHZpZXdwb3J0LlxuXG4ubmF2YmFyLWNvbGxhcHNlIHtcbiAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgcGFkZGluZy1yaWdodDogQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIHBhZGRpbmctbGVmdDogIEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7XG4gICY6ZXh0ZW5kKC5jbGVhcmZpeCBhbGwpO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgJi5pbiB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCBzZXR0aW5nXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYuaW4ge1xuICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvLyBVbmRvIHRoZSBjb2xsYXBzZSBzaWRlIHBhZGRpbmcgZm9yIG5hdmJhcnMgd2l0aCBjb250YWluZXJzIHRvIGVuc3VyZVxuICAgIC8vIGFsaWdubWVudCBvZiByaWdodC1hbGlnbmVkIGNvbnRlbnRzLlxuICAgIC5uYXZiYXItZml4ZWQtdG9wICYsXG4gICAgLm5hdmJhci1zdGF0aWMtdG9wICYsXG4gICAgLm5hdmJhci1maXhlZC1ib3R0b20gJiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWF4LWhlaWdodDogQG5hdmJhci1jb2xsYXBzZS1tYXgtaGVpZ2h0O1xuXG4gICAgQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiBAc2NyZWVuLXhzLW1pbikgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBCb3RoIG5hdmJhciBoZWFkZXIgYW5kIGNvbGxhcHNlXG4vL1xuLy8gV2hlbiBhIGNvbnRhaW5lciBpcyBwcmVzZW50LCBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRoZSBoZWFkZXIgYW5kIGNvbGxhcHNlLlxuXG4uY29udGFpbmVyLFxuLmNvbnRhaW5lci1mbHVpZCB7XG4gID4gLm5hdmJhci1oZWFkZXIsXG4gID4gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgbWFyZ2luLWxlZnQ6ICAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6ICAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vXG4vLyBOYXZiYXIgYWxpZ25tZW50IG9wdGlvbnNcbi8vXG4vLyBEaXNwbGF5IHRoZSBuYXZiYXIgYWNyb3NzIHRoZSBlbnRpcmV0eSBvZiB0aGUgcGFnZSBvciBmaXhlZCBpdCB0byB0aGUgdG9wIG9yXG4vLyBib3R0b20gb2YgdGhlIHBhZ2UuXG5cbi8vIFN0YXRpYyB0b3AgKHVuZml4ZWQsIGJ1dCAxMDAlIHdpZGUpIG5hdmJhclxuLm5hdmJhci1zdGF0aWMtdG9wIHtcbiAgei1pbmRleDogQHppbmRleC1uYXZiYXI7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuLy8gRml4IHRoZSB0b3AvYm90dG9tIG5hdmJhcnMgd2hlbiBzY3JlZW4gcmVhbCBlc3RhdGUgc3VwcG9ydHMgaXRcbi5uYXZiYXItZml4ZWQtdG9wLFxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiBAemluZGV4LW5hdmJhci1maXhlZDtcblxuICAvLyBVbmRvIHRoZSByb3VuZGVkIGNvcm5lcnNcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4ubmF2YmFyLWZpeGVkLXRvcCB7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICBib3R0b206IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIG92ZXJyaWRlIC5uYXZiYXIgZGVmYXVsdHNcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAwO1xufVxuXG5cbi8vIEJyYW5kL3Byb2plY3QgbmFtZVxuXG4ubmF2YmFyLWJyYW5kIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IEBuYXZiYXItcGFkZGluZy12ZXJ0aWNhbCBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWxhcmdlO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBoZWlnaHQ6IEBuYXZiYXItaGVpZ2h0O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gID4gaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgLm5hdmJhciA+IC5jb250YWluZXIgJixcbiAgICAubmF2YmFyID4gLmNvbnRhaW5lci1mbHVpZCAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2YmFyIHRvZ2dsZVxuLy9cbi8vIEN1c3RvbSBidXR0b24gZm9yIHRvZ2dsaW5nIHRoZSBgLm5hdmJhci1jb2xsYXBzZWAsIHBvd2VyZWQgYnkgdGhlIGNvbGxhcHNlXG4vLyBKYXZhU2NyaXB0IHBsdWdpbi5cblxuLm5hdmJhci10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZzogOXB4IDEwcHg7XG4gIC5uYXZiYXItdmVydGljYWwtYWxpZ24oMzRweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZXNldCB1bnVzdWFsIEZpcmVmb3gtb24tQW5kcm9pZCBkZWZhdWx0IHN0eWxlOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9pc3N1ZXMvMjE0XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gIC8vIFdlIHJlbW92ZSB0aGUgYG91dGxpbmVgIGhlcmUsIGJ1dCBsYXRlciBjb21wZW5zYXRlIGJ5IGF0dGFjaGluZyBgOmhvdmVyYFxuICAvLyBzdHlsZXMgdG8gYDpmb2N1c2AuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAvLyBCYXJzXG4gIC5pY29uLWJhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICB9XG4gIC5pY29uLWJhciArIC5pY29uLWJhciB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIG5hdiBsaW5rc1xuLy9cbi8vIEJ1aWxkcyBvbiB0b3Agb2YgdGhlIGAubmF2YCBjb21wb25lbnRzIHdpdGggaXRzIG93biBtb2RpZmllciBjbGFzcyB0byBtYWtlXG4vLyB0aGUgbmF2IHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBuYXYgKGFib3ZlIDc2OHB4KS5cblxuLm5hdmJhci1uYXYge1xuICBtYXJnaW46IChAbmF2YmFyLXBhZGRpbmctdmVydGljYWwgLyAyKSAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG5cbiAgPiBsaSA+IGEge1xuICAgIHBhZGRpbmctdG9wOiAgICAxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5IHdoZW4gY29sbGFwc2VkXG4gICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgPiBsaSA+IGEsXG4gICAgICAuZHJvcGRvd24taGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHggNXB4IDI1cHg7XG4gICAgICB9XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBVbmNvbGxhcHNlIHRoZSBuYXZcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICA+IGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgPiBhIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICAgIEBuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IEBuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgZm9ybVxuLy9cbi8vIEV4dGVuc2lvbiBvZiB0aGUgYC5mb3JtLWlubGluZWAgd2l0aCBzb21lIGV4dHJhIGZsYXZvciBmb3Igb3B0aW11bSBkaXNwbGF5IGluXG4vLyBvdXIgbmF2YmFycy5cblxuLm5hdmJhci1mb3JtIHtcbiAgbWFyZ2luLWxlZnQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgbWFyZ2luLXJpZ2h0OiAtQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIHBhZGRpbmc6IDEwcHggQG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBAc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpLCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpO1xuICAuYm94LXNoYWRvdyhAc2hhZG93KTtcblxuICAvLyBNaXhpbiBiZWhhdmlvciBmb3Igb3B0aW11bSBkaXNwbGF5XG4gIC5mb3JtLWlubGluZSgpO1xuXG4gIC5mb3JtLWdyb3VwIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWZXJ0aWNhbGx5IGNlbnRlciBpbiBleHBhbmRlZCwgaG9yaXpvbnRhbCBuYXZiYXJcbiAgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbihAaW5wdXQtaGVpZ2h0LWJhc2UpO1xuXG4gIC8vIFVuZG8gMTAwJSB3aWR0aCBmb3IgcHVsbCBjbGFzc2VzXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAuYm94LXNoYWRvdyhub25lKTtcbiAgfVxufVxuXG5cbi8vIERyb3Bkb3duIG1lbnVzXG5cbi8vIE1lbnUgcG9zaXRpb24gYW5kIG1lbnUgY2FyZXRzXG4ubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiAwO1xuICAuYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG4vLyBNZW51IHBvc2l0aW9uIGFuZCBtZW51IGNhcmV0IHN1cHBvcnQgZm9yIGRyb3B1cHMgdmlhIGV4dHJhIGRyb3B1cCBjbGFzc1xuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgLmJvcmRlci10b3AtcmFkaXVzKEBuYXZiYXItYm9yZGVyLXJhZGl1cyk7XG4gIC5ib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbn1cblxuXG4vLyBCdXR0b25zIGluIG5hdmJhcnNcbi8vXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBhIGJ1dHRvbiB3aXRoaW4gYSBuYXZiYXIgKHdoZW4gKm5vdCogaW4gYSBmb3JtKS5cblxuLm5hdmJhci1idG4ge1xuICAubmF2YmFyLXZlcnRpY2FsLWFsaWduKEBpbnB1dC1oZWlnaHQtYmFzZSk7XG5cbiAgJi5idG4tc20ge1xuICAgIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGlucHV0LWhlaWdodC1zbWFsbCk7XG4gIH1cbiAgJi5idG4teHMge1xuICAgIC5uYXZiYXItdmVydGljYWwtYWxpZ24oMjIpO1xuICB9XG59XG5cblxuLy8gVGV4dCBpbiBuYXZiYXJzXG4vL1xuLy8gQWRkIGEgY2xhc3MgdG8gbWFrZSBhbnkgZWxlbWVudCBwcm9wZXJseSBhbGlnbiBpdHNlbGYgdmVydGljYWxseSB3aXRoaW4gdGhlIG5hdmJhcnMuXG5cbi5uYXZiYXItdGV4dCB7XG4gIC5uYXZiYXItdmVydGljYWwtYWxpZ24oQGxpbmUtaGVpZ2h0LWNvbXB1dGVkKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiBAbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBtYXJnaW4tcmlnaHQ6IEBuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICB9XG59XG5cblxuLy8gQ29tcG9uZW50IGFsaWdubWVudFxuLy9cbi8vIFJlcHVycG9zZSB0aGUgcHVsbCB1dGlsaXRpZXMgYXMgdGhlaXIgb3duIG5hdmJhciB1dGlsaXRpZXMgdG8gYXZvaWQgc3BlY2lmaWNpdHlcbi8vIGlzc3VlcyB3aXRoIHBhcmVudHMgYW5kIGNoYWluaW5nLiBPbmx5IGRvIHRoaXMgd2hlbiB0aGUgbmF2YmFyIGlzIHVuY29sbGFwc2VkXG4vLyB0aG91Z2ggc28gdGhhdCBuYXZiYXIgY29udGVudHMgcHJvcGVybHkgc3RhY2sgYW5kIGFsaWduIGluIG1vYmlsZS5cbi8vXG4vLyBEZWNsYXJlZCBhZnRlciB0aGUgbmF2YmFyIGNvbXBvbmVudHMgdG8gZW5zdXJlIG1vcmUgc3BlY2lmaWNpdHkgb24gdGhlIG1hcmdpbnMuXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gIC5uYXZiYXItbGVmdCAgeyAucHVsbC1sZWZ0KCk7IH1cbiAgLm5hdmJhci1yaWdodCB7XG4gICAgLnB1bGwtcmlnaHQoKTtcbiAgICBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICAgIH4gLm5hdmJhci1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQWx0ZXJuYXRlIG5hdmJhcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIERlZmF1bHQgbmF2YmFyXG4ubmF2YmFyLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtYmc7XG4gIGJvcmRlci1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJvcmRlcjtcblxuICAubmF2YmFyLWJyYW5kIHtcbiAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWJyYW5kLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1jb2xvcjtcbiAgfVxuXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6IEBuYXZiYXItZGVmYXVsdC10b2dnbGUtYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWhvdmVyLWJnO1xuICAgIH1cbiAgICAuaWNvbi1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1pY29uLWJhci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWZvcm0ge1xuICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWJvcmRlcjtcbiAgfVxuXG4gIC8vIERyb3Bkb3duIG1lbnUgaXRlbXNcbiAgLm5hdmJhci1uYXYge1xuICAgIC8vIFJlbW92ZSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gb3BlbiBkcm9wZG93blxuICAgID4gLm9wZW4gPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogQGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAgIC8vIERyb3Bkb3ducyBnZXQgY3VzdG9tIGRpc3BsYXkgd2hlbiBjb2xsYXBzZWRcbiAgICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgPiBsaSA+IGEge1xuICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvLyBMaW5rcyBpbiBuYXZiYXJzXG4gIC8vXG4gIC8vIEFkZCBhIGNsYXNzIHRvIGVuc3VyZSBsaW5rcyBvdXRzaWRlIHRoZSBuYXZiYXIgbmF2IGFyZSBjb2xvcmVkIGNvcnJlY3RseS5cblxuICAubmF2YmFyLWxpbmsge1xuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAuYnRuLWxpbmsge1xuICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgICAmW2Rpc2FibGVkXSxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gSW52ZXJzZSBuYXZiYXJcblxuLm5hdmJhci1pbnZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJnO1xuICBib3JkZXItY29sb3I6IEBuYXZiYXItaW52ZXJzZS1ib3JkZXI7XG5cbiAgLm5hdmJhci1icmFuZCB7XG4gICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1icmFuZC1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRleHQge1xuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtY29sb3I7XG4gIH1cblxuICAubmF2YmFyLW5hdiB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBEYXJrZW4gdGhlIHJlc3BvbnNpdmUgbmF2IHRvZ2dsZVxuICAubmF2YmFyLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtdG9nZ2xlLWJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1ob3Zlci1iZztcbiAgICB9XG4gICAgLmljb24tYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS10b2dnbGUtaWNvbi1iYXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1mb3JtIHtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbihAbmF2YmFyLWludmVyc2UtYmcsIDclKTtcbiAgfVxuXG4gIC8vIERyb3Bkb3duc1xuICAubmF2YmFyLW5hdiB7XG4gICAgPiAub3BlbiA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBAZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgLy8gRHJvcGRvd25zIGdldCBjdXN0b20gZGlzcGxheVxuICAgICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICA+IC5kcm9wZG93bi1oZWFkZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICAuZGl2aWRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICA+IGxpID4gYSB7XG4gICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogQG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWxpbmsge1xuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAuYnRuLWxpbmsge1xuICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgICAmW2Rpc2FibGVkXSxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIE5hdmJhciB2ZXJ0aWNhbCBhbGlnblxuLy9cbi8vIFZlcnRpY2FsbHkgY2VudGVyIGVsZW1lbnRzIGluIHRoZSBuYXZiYXIuXG4vLyBFeGFtcGxlOiBhbiBlbGVtZW50IGhhcyBhIGhlaWdodCBvZiAzMHB4LCBzbyB3cml0ZSBvdXQgYC5uYXZiYXItdmVydGljYWwtYWxpZ24oMzBweCk7YCB0byBjYWxjdWxhdGUgdGhlIGFwcHJvcHJpYXRlIHRvcCBtYXJnaW4uXG5cbi5uYXZiYXItdmVydGljYWwtYWxpZ24oQGVsZW1lbnQtaGVpZ2h0KSB7XG4gIG1hcmdpbi10b3A6ICgoQG5hdmJhci1oZWlnaHQgLSBAZWxlbWVudC1oZWlnaHQpIC8gMik7XG4gIG1hcmdpbi1ib3R0b206ICgoQG5hdmJhci1oZWlnaHQgLSBAZWxlbWVudC1oZWlnaHQpIC8gMik7XG59XG4iLCIvL1xuLy8gVXRpbGl0eSBjbGFzc2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEZsb2F0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uY2xlYXJmaXgge1xuICAuY2xlYXJmaXgoKTtcbn1cbi5jZW50ZXItYmxvY2sge1xuICAuY2VudGVyLWJsb2NrKCk7XG59XG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuLnB1bGwtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gVG9nZ2xpbmcgY29udGVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBOb3RlOiBEZXByZWNhdGVkIC5oaWRlIGluIGZhdm9yIG9mIC5oaWRkZW4gb3IgLnNyLW9ubHkgKGFzIGFwcHJvcHJpYXRlKSBpbiB2My4wLjFcbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLnNob3cge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi50ZXh0LWhpZGUge1xuICAudGV4dC1oaWRlKCk7XG59XG5cblxuLy8gSGlkZSBmcm9tIHNjcmVlbnJlYWRlcnMgYW5kIGJyb3dzZXJzXG4vL1xuLy8gQ3JlZGl0OiBIVE1MNSBCb2lsZXJwbGF0ZVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi8vIEZvciBBZmZpeCBwbHVnaW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmFmZml4IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuIiwiLy9cbi8vIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5icmVhZGNydW1iIHtcbiAgcGFkZGluZzogQGJyZWFkY3J1bWItcGFkZGluZy12ZXJ0aWNhbCBAYnJlYWRjcnVtYi1wYWRkaW5nLWhvcml6b250YWw7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJyZWFkY3J1bWItYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgKyBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJAe2JyZWFkY3J1bWItc2VwYXJhdG9yfVxcMDBhMFwiOyAvLyBVbmljb2RlIHNwYWNlIGFkZGVkIHNpbmNlIGlubGluZS1ibG9jayBtZWFucyBub24tY29sbGFwc2luZyB3aGl0ZS1zcGFjZVxuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICBjb2xvcjogQGJyZWFkY3J1bWItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgPiAuYWN0aXZlIHtcbiAgICBjb2xvcjogQGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yO1xuICB9XG59XG4iLCIvL1xuLy8gUGFnaW5hdGlvbiAobXVsdGlwbGUgcGFnZXMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQgMDtcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICA+IGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IC8vIFJlbW92ZSBsaXN0LXN0eWxlIGFuZCBibG9jay1sZXZlbCBkZWZhdWx0c1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxvYXQ6IGxlZnQ7IC8vIENvbGxhcHNlIHdoaXRlLXNwYWNlXG4gICAgICBwYWRkaW5nOiBAcGFkZGluZy1iYXNlLXZlcnRpY2FsIEBwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiBAcGFnaW5hdGlvbi1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWJnO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgQHBhZ2luYXRpb24tYm9yZGVyO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIC5ib3JkZXItbGVmdC1yYWRpdXMoQGJvcmRlci1yYWRpdXMtYmFzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICAuYm9yZGVyLXJpZ2h0LXJhZGl1cyhAYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IGxpID4gYSxcbiAgPiBsaSA+IHNwYW4ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgY29sb3I6IEBwYWdpbmF0aW9uLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24taG92ZXItYmc7XG4gICAgICBib3JkZXItY29sb3I6IEBwYWdpbmF0aW9uLWhvdmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUgPiBhLFxuICA+IC5hY3RpdmUgPiBzcGFuIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgY29sb3I6IEBwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWFjdGl2ZS1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogQHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlcjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cblxuICA+IC5kaXNhYmxlZCB7XG4gICAgPiBzcGFuLFxuICAgID4gc3Bhbjpob3ZlcixcbiAgICA+IHNwYW46Zm9jdXMsXG4gICAgPiBhLFxuICAgID4gYTpob3ZlcixcbiAgICA+IGE6Zm9jdXMge1xuICAgICAgY29sb3I6IEBwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24tZGlzYWJsZWQtYmc7XG4gICAgICBib3JkZXItY29sb3I6IEBwYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlcjtcbiAgICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBMYXJnZVxuLnBhZ2luYXRpb24tbGcge1xuICAucGFnaW5hdGlvbi1zaXplKEBwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOyBAcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOyBAZm9udC1zaXplLWxhcmdlOyBAbGluZS1oZWlnaHQtbGFyZ2U7IEBib3JkZXItcmFkaXVzLWxhcmdlKTtcbn1cblxuLy8gU21hbGxcbi5wYWdpbmF0aW9uLXNtIHtcbiAgLnBhZ2luYXRpb24tc2l6ZShAcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDsgQHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDsgQGZvbnQtc2l6ZS1zbWFsbDsgQGxpbmUtaGVpZ2h0LXNtYWxsOyBAYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG4iLCIvLyBQYWdpbmF0aW9uXG5cbi5wYWdpbmF0aW9uLXNpemUoQHBhZGRpbmctdmVydGljYWw7IEBwYWRkaW5nLWhvcml6b250YWw7IEBmb250LXNpemU7IEBsaW5lLWhlaWdodDsgQGJvcmRlci1yYWRpdXMpIHtcbiAgPiBsaSB7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBwYWRkaW5nOiBAcGFkZGluZy12ZXJ0aWNhbCBAcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgZm9udC1zaXplOiBAZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodDtcbiAgICB9XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICAuYm9yZGVyLWxlZnQtcmFkaXVzKEBib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIC5ib3JkZXItcmlnaHQtcmFkaXVzKEBib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBQYWdlciBwYWdpbmF0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5wYWdlciB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQgMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDVweCAxNHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2VyLWJnO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgQHBhZ2VyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IEBwYWdlci1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgID4gYTpob3ZlcixcbiAgICA+IGE6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2VyLWhvdmVyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uZXh0IHtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAucHJldmlvdXMge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICB9XG5cbiAgLmRpc2FibGVkIHtcbiAgICA+IGEsXG4gICAgPiBhOmhvdmVyLFxuICAgID4gYTpmb2N1cyxcbiAgICA+IHNwYW4ge1xuICAgICAgY29sb3I6IEBwYWdlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdlci1iZztcbiAgICAgIGN1cnNvcjogQGN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBMYWJlbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogLjJlbSAuNmVtIC4zZW07XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBAbGFiZWwtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3JkZXItcmFkaXVzOiAuMjVlbTtcblxuICAvLyBBZGQgaG92ZXIgZWZmZWN0cywgYnV0IG9ubHkgZm9yIGxpbmtzXG4gIGEmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6IEBsYWJlbC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVtcHR5IGxhYmVscyBjb2xsYXBzZSBhdXRvbWF0aWNhbGx5IChub3QgYXZhaWxhYmxlIGluIElFOClcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFF1aWNrIGZpeCBmb3IgbGFiZWxzIGluIGJ1dHRvbnNcbiAgLmJ0biAmIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICB9XG59XG5cbi8vIENvbG9yc1xuLy8gQ29udGV4dHVhbCB2YXJpYXRpb25zIChsaW5rZWQgbGFiZWxzIGdldCBkYXJrZXIgb24gOmhvdmVyKVxuXG4ubGFiZWwtZGVmYXVsdCB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1kZWZhdWx0LWJnKTtcbn1cblxuLmxhYmVsLXByaW1hcnkge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtcHJpbWFyeS1iZyk7XG59XG5cbi5sYWJlbC1zdWNjZXNzIHtcbiAgLmxhYmVsLXZhcmlhbnQoQGxhYmVsLXN1Y2Nlc3MtYmcpO1xufVxuXG4ubGFiZWwtaW5mbyB7XG4gIC5sYWJlbC12YXJpYW50KEBsYWJlbC1pbmZvLWJnKTtcbn1cblxuLmxhYmVsLXdhcm5pbmcge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtd2FybmluZy1iZyk7XG59XG5cbi5sYWJlbC1kYW5nZXIge1xuICAubGFiZWwtdmFyaWFudChAbGFiZWwtZGFuZ2VyLWJnKTtcbn1cbiIsIi8vIExhYmVsc1xuXG4ubGFiZWwtdmFyaWFudChAY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yO1xuXG4gICZbaHJlZl0ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGNvbG9yLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIEJhZGdlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuICBmb250LXdlaWdodDogQGJhZGdlLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogQGJhZGdlLWNvbG9yO1xuICBsaW5lLWhlaWdodDogQGJhZGdlLWxpbmUtaGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEBiYWRnZS1iZztcbiAgYm9yZGVyLXJhZGl1czogQGJhZGdlLWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gRW1wdHkgYmFkZ2VzIGNvbGxhcHNlIGF1dG9tYXRpY2FsbHkgKG5vdCBhdmFpbGFibGUgaW4gSUU4KVxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUXVpY2sgZml4IGZvciBiYWRnZXMgaW4gYnV0dG9uc1xuICAuYnRuICYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cblxuICAuYnRuLXhzICYsXG4gIC5idG4tZ3JvdXAteHMgPiAuYnRuICYge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nOiAxcHggNXB4O1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGUsIGJ1dCBvbmx5IGZvciBsaW5rc1xuICBhJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBAYmFkZ2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBBY2NvdW50IGZvciBiYWRnZXMgaW4gbmF2c1xuICAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSA+ICYsXG4gIC5uYXYtcGlsbHMgPiAuYWN0aXZlID4gYSA+ICYge1xuICAgIGNvbG9yOiBAYmFkZ2UtYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBiYWRnZS1hY3RpdmUtYmc7XG4gIH1cblxuICAubGlzdC1ncm91cC1pdGVtID4gJiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbSA+ICYgKyAmIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuXG4gIC5uYXYtcGlsbHMgPiBsaSA+IGEgPiAmIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICB9XG59XG4iLCIvL1xuLy8gSnVtYm90cm9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5qdW1ib3Ryb24ge1xuICBwYWRkaW5nLXRvcDogICAgQGp1bWJvdHJvbi1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogQGp1bWJvdHJvbi1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiBAanVtYm90cm9uLXBhZGRpbmc7XG4gIGNvbG9yOiBAanVtYm90cm9uLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAanVtYm90cm9uLWJnO1xuXG4gIGgxLFxuICAuaDEge1xuICAgIGNvbG9yOiBAanVtYm90cm9uLWhlYWRpbmctY29sb3I7XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAoQGp1bWJvdHJvbi1wYWRkaW5nIC8gMik7XG4gICAgZm9udC1zaXplOiBAanVtYm90cm9uLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICB9XG5cbiAgPiBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKEBqdW1ib3Ryb24tYmcsIDEwJSk7XG4gIH1cblxuICAuY29udGFpbmVyICYsXG4gIC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7IC8vIE9ubHkgcm91bmQgY29ybmVycyBhdCBoaWdoZXIgcmVzb2x1dGlvbnMgaWYgY29udGFpbmVkIGluIGEgY29udGFpbmVyXG4gICAgcGFkZGluZy1sZWZ0OiAgKEBncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gICAgcGFkZGluZy10b3A6ICAgIChAanVtYm90cm9uLXBhZGRpbmcgKiAxLjYpO1xuICAgIHBhZGRpbmctYm90dG9tOiAoQGp1bWJvdHJvbi1wYWRkaW5nICogMS42KTtcblxuICAgIC5jb250YWluZXIgJixcbiAgICAuY29udGFpbmVyLWZsdWlkICYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAgKEBqdW1ib3Ryb24tcGFkZGluZyAqIDIpO1xuICAgICAgcGFkZGluZy1yaWdodDogKEBqdW1ib3Ryb24tcGFkZGluZyAqIDIpO1xuICAgIH1cblxuICAgIGgxLFxuICAgIC5oMSB7XG4gICAgICBmb250LXNpemU6IEBqdW1ib3Ryb24taGVhZGluZy1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVGh1bWJuYWlsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBNaXhpbiBhbmQgYWRqdXN0IHRoZSByZWd1bGFyIGltYWdlIGNsYXNzXG4udGh1bWJuYWlsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IEB0aHVtYm5haWwtcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0aHVtYm5haWwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEB0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM7XG4gIC50cmFuc2l0aW9uKGJvcmRlciAuMnMgZWFzZS1pbi1vdXQpO1xuXG4gID4gaW1nLFxuICBhID4gaW1nIHtcbiAgICAmOmV4dGVuZCguaW1nLXJlc3BvbnNpdmUpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIEFkZCBhIGhvdmVyIHN0YXRlIGZvciBsaW5rZWQgdmVyc2lvbnMgb25seVxuICBhJjpob3ZlcixcbiAgYSY6Zm9jdXMsXG4gIGEmLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAbGluay1jb2xvcjtcbiAgfVxuXG4gIC8vIEltYWdlIGNhcHRpb25zXG4gIC5jYXB0aW9uIHtcbiAgICBwYWRkaW5nOiBAdGh1bWJuYWlsLWNhcHRpb24tcGFkZGluZztcbiAgICBjb2xvcjogQHRodW1ibmFpbC1jYXB0aW9uLWNvbG9yO1xuICB9XG59XG4iLCIvL1xuLy8gQWxlcnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5hbGVydCB7XG4gIHBhZGRpbmc6IEBhbGVydC1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiBAbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiBAYWxlcnQtYm9yZGVyLXJhZGl1cztcblxuICAvLyBIZWFkaW5ncyBmb3IgbGFyZ2VyIGFsZXJ0c1xuICBoNCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICAvLyBTcGVjaWZpZWQgZm9yIHRoZSBoNCB0byBwcmV2ZW50IGNvbmZsaWN0cyBvZiBjaGFuZ2luZyBAaGVhZGluZ3MtY29sb3JcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFByb3ZpZGUgY2xhc3MgZm9yIGxpbmtzIHRoYXQgbWF0Y2ggYWxlcnRzXG4gIC5hbGVydC1saW5rIHtcbiAgICBmb250LXdlaWdodDogQGFsZXJ0LWxpbmstZm9udC13ZWlnaHQ7XG4gIH1cblxuICAvLyBJbXByb3ZlIGFsaWdubWVudCBhbmQgc3BhY2luZyBvZiBpbm5lciBjb250ZW50XG4gID4gcCxcbiAgPiB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gID4gcCArIHAge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgfVxufVxuXG4vLyBEaXNtaXNzaWJsZSBhbGVydHNcbi8vXG4vLyBFeHBhbmQgdGhlIHJpZ2h0IHBhZGRpbmcgYW5kIGFjY291bnQgZm9yIHRoZSBjbG9zZSBidXR0b24ncyBwb3NpdGlvbmluZy5cblxuLmFsZXJ0LWRpc21pc3NhYmxlLCAvLyBUaGUgbWlzc3BlbGxlZCAuYWxlcnQtZGlzbWlzc2FibGUgd2FzIGRlcHJlY2F0ZWQgaW4gMy4yLjAuXG4uYWxlcnQtZGlzbWlzc2libGUge1xuICBwYWRkaW5nLXJpZ2h0OiAoQGFsZXJ0LXBhZGRpbmcgKyAyMCk7XG5cbiAgLy8gQWRqdXN0IGNsb3NlIGxpbmsgcG9zaXRpb25cbiAgLmNsb3NlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xuICAgIHJpZ2h0OiAtMjFweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBBbHRlcm5hdGUgc3R5bGVzXG4vL1xuLy8gR2VuZXJhdGUgY29udGV4dHVhbCBtb2RpZmllciBjbGFzc2VzIGZvciBjb2xvcml6aW5nIHRoZSBhbGVydC5cblxuLmFsZXJ0LXN1Y2Nlc3Mge1xuICAuYWxlcnQtdmFyaWFudChAYWxlcnQtc3VjY2Vzcy1iZzsgQGFsZXJ0LXN1Y2Nlc3MtYm9yZGVyOyBAYWxlcnQtc3VjY2Vzcy10ZXh0KTtcbn1cblxuLmFsZXJ0LWluZm8ge1xuICAuYWxlcnQtdmFyaWFudChAYWxlcnQtaW5mby1iZzsgQGFsZXJ0LWluZm8tYm9yZGVyOyBAYWxlcnQtaW5mby10ZXh0KTtcbn1cblxuLmFsZXJ0LXdhcm5pbmcge1xuICAuYWxlcnQtdmFyaWFudChAYWxlcnQtd2FybmluZy1iZzsgQGFsZXJ0LXdhcm5pbmctYm9yZGVyOyBAYWxlcnQtd2FybmluZy10ZXh0KTtcbn1cblxuLmFsZXJ0LWRhbmdlciB7XG4gIC5hbGVydC12YXJpYW50KEBhbGVydC1kYW5nZXItYmc7IEBhbGVydC1kYW5nZXItYm9yZGVyOyBAYWxlcnQtZGFuZ2VyLXRleHQpO1xufVxuIiwiLy8gQWxlcnRzXG5cbi5hbGVydC12YXJpYW50KEBiYWNrZ3JvdW5kOyBAYm9yZGVyOyBAdGV4dC1jb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuICBjb2xvcjogQHRleHQtY29sb3I7XG5cbiAgaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IGRhcmtlbihAYm9yZGVyLCA1JSk7XG4gIH1cbiAgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiBkYXJrZW4oQHRleHQtY29sb3IsIDEwJSk7XG4gIH1cbn1cbiIsIi8vXG4vLyBQcm9ncmVzcyBiYXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhciBhbmltYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFdlYktpdFxuQC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7IH1cbiAgdG8gICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbn1cblxuLy8gU3BlYyBhbmQgSUUxMCtcbkBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tICB7IGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDsgfVxuICB0byAgICB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxufVxuXG5cbi8vIEJhciBpdHNlbGZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gT3V0ZXIgY29udGFpbmVyXG4ucHJvZ3Jlc3Mge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHJvZ3Jlc3MtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBwcm9ncmVzcy1ib3JkZXItcmFkaXVzO1xuICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSkpO1xufVxuXG4vLyBCYXIgb2YgcHJvZ3Jlc3Ncbi5wcm9ncmVzcy1iYXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgY29sb3I6IEBwcm9ncmVzcy1iYXItY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHByb2dyZXNzLWJhci1iZztcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMTUpKTtcbiAgLnRyYW5zaXRpb24od2lkdGggLjZzIGVhc2UpO1xufVxuXG4vLyBTdHJpcGVkIGJhcnNcbi8vXG4vLyBgLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcmAgaXMgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgaW4gZmF2b3Igb2YgdGhlXG4vLyBgLnByb2dyZXNzLWJhci1zdHJpcGVkYCBjbGFzcywgd2hpY2ggeW91IGp1c3QgYWRkIHRvIGFuIGV4aXN0aW5nXG4vLyBgLnByb2dyZXNzLWJhcmAuXG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLFxuLnByb2dyZXNzLWJhci1zdHJpcGVkIHtcbiAgI2dyYWRpZW50ID4gLnN0cmlwZWQoKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MHB4IDQwcHg7XG59XG5cbi8vIENhbGwgYW5pbWF0aW9uIGZvciB0aGUgYWN0aXZlIG9uZVxuLy9cbi8vIGAucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXJgIGlzIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGluIGZhdm9yIG9mIHRoZVxuLy8gYC5wcm9ncmVzcy1iYXIuYWN0aXZlYCBhcHByb2FjaC5cbi5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXIuYWN0aXZlIHtcbiAgLmFuaW1hdGlvbihwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGUpO1xufVxuXG5cbi8vIFZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgLnByb2dyZXNzLWJhci12YXJpYW50KEBwcm9ncmVzcy1iYXItc3VjY2Vzcy1iZyk7XG59XG5cbi5wcm9ncmVzcy1iYXItaW5mbyB7XG4gIC5wcm9ncmVzcy1iYXItdmFyaWFudChAcHJvZ3Jlc3MtYmFyLWluZm8tYmcpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLXdhcm5pbmcge1xuICAucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQHByb2dyZXNzLWJhci13YXJuaW5nLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICAucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQHByb2dyZXNzLWJhci1kYW5nZXItYmcpO1xufVxuIiwiLy8gR3JhZGllbnRzXG5cbiNncmFkaWVudCB7XG5cbiAgLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4gIC8vXG4gIC8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4gIC8vIENvbG9yIHN0b3BzIGFyZSBub3QgYXZhaWxhYmxlIGluIElFOSBhbmQgYmVsb3cuXG4gIC5ob3Jpem9udGFsKEBzdGFydC1jb2xvcjogIzU1NTsgQGVuZC1jb2xvcjogIzMzMzsgQHN0YXJ0LXBlcmNlbnQ6IDAlOyBAZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnQtY29sb3IgQHN0YXJ0LXBlcmNlbnQsIEBlbmQtY29sb3IgQGVuZC1wZXJjZW50KTsgLy8gU2FmYXJpIDUuMS02LCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBPcGVyYSAxMlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MSlcIixhcmdiKEBzdGFydC1jb2xvciksYXJnYihAZW5kLWNvbG9yKSkpOyAvLyBJRTkgYW5kIGRvd25cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cbiAgLy9cbiAgLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbiAgLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbiAgLnZlcnRpY2FsKEBzdGFydC1jb2xvcjogIzU1NTsgQGVuZC1jb2xvcjogIzMzMzsgQHN0YXJ0LXBlcmNlbnQ6IDAlOyBAZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAgLy8gU2FmYXJpIDUuMS02LCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgQHN0YXJ0LWNvbG9yIEBzdGFydC1wZXJjZW50LCBAZW5kLWNvbG9yIEBlbmQtcGVyY2VudCk7ICAvLyBPcGVyYSAxMlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIEBzdGFydC1jb2xvciBAc3RhcnQtcGVyY2VudCwgQGVuZC1jb2xvciBAZW5kLXBlcmNlbnQpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duXG4gIH1cblxuICAuZGlyZWN0aW9uYWwoQHN0YXJ0LWNvbG9yOiAjNTU1OyBAZW5kLWNvbG9yOiAjMzMzOyBAZGVnOiA0NWRlZykge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnQtY29sb3IsIEBlbmQtY29sb3IpOyAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0LWNvbG9yLCBAZW5kLWNvbG9yKTsgLy8gT3BlcmEgMTJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0LWNvbG9yLCBAZW5kLWNvbG9yKTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICB9XG4gIC5ob3Jpem9udGFsLXRocmVlLWNvbG9ycyhAc3RhcnQtY29sb3I6ICMwMGIzZWU7IEBtaWQtY29sb3I6ICM3YTQzYjY7IEBjb2xvci1zdG9wOiA1MCU7IEBlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnQtY29sb3IsIEBtaWQtY29sb3IgQGNvbG9yLXN0b3AsIEBlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgQHN0YXJ0LWNvbG9yLCBAbWlkLWNvbG9yIEBjb2xvci1zdG9wLCBAZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTEpXCIsYXJnYihAc3RhcnQtY29sb3IpLGFyZ2IoQGVuZC1jb2xvcikpKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbiAgfVxuICAudmVydGljYWwtdGhyZWUtY29sb3JzKEBzdGFydC1jb2xvcjogIzAwYjNlZTsgQG1pZC1jb2xvcjogIzdhNDNiNjsgQGNvbG9yLXN0b3A6IDUwJTsgQGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KEBzdGFydC1jb2xvciwgQG1pZC1jb2xvciBAY29sb3Itc3RvcCwgQGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0wKVwiLGFyZ2IoQHN0YXJ0LWNvbG9yKSxhcmdiKEBlbmQtY29sb3IpKSk7IC8vIElFOSBhbmQgZG93biwgZ2V0cyBubyBjb2xvci1zdG9wIGF0IGFsbCBmb3IgcHJvcGVyIGZhbGxiYWNrXG4gIH1cbiAgLnJhZGlhbChAaW5uZXItY29sb3I6ICM1NTU7IEBvdXRlci1jb2xvcjogIzMzMykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyLWNvbG9yLCBAb3V0ZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lci1jb2xvciwgQG91dGVyLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG4gIC5zdHJpcGVkKEBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMTUpOyBAYW5nbGU6IDQ1ZGVnKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQGFuZ2xlLCBAY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgQGNvbG9yIDUwJSwgQGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgQGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIEBjb2xvciA1MCUsIEBjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAYW5nbGUsIEBjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCBAY29sb3IgNTAlLCBAY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuIiwiLy8gUHJvZ3Jlc3MgYmFyc1xuXG4ucHJvZ3Jlc3MtYmFyLXZhcmlhbnQoQGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcblxuICAvLyBEZXByZWNhdGVkIHBhcmVudCBjbGFzcyByZXF1aXJlbWVudCBhcyBvZiB2My4yLjBcbiAgLnByb2dyZXNzLXN0cmlwZWQgJiB7XG4gICAgI2dyYWRpZW50ID4gLnN0cmlwZWQoKTtcbiAgfVxufVxuIiwiLm1lZGlhIHtcbiAgLy8gUHJvcGVyIHNwYWNpbmcgYmV0d2VlbiBpbnN0YW5jZXMgb2YgLm1lZGlhXG4gIG1hcmdpbi10b3A6IDE1cHg7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ubWVkaWEsXG4ubWVkaWEtYm9keSB7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZWRpYS1ib2R5IHtcbiAgd2lkdGg6IDEwMDAwcHg7XG59XG5cbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBGaXggY29sbGFwc2UgaW4gd2Via2l0IGZyb20gbWF4LXdpZHRoOiAxMDAlIGFuZCBkaXNwbGF5OiB0YWJsZS1jZWxsLlxuICAmLmltZy10aHVtYm5haWwge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEgPiAucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEgPiAucHVsbC1sZWZ0IHtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEtYm9keSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5tZWRpYS1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubWVkaWEtYm90dG9tIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLy8gUmVzZXQgbWFyZ2lucyBvbiBoZWFkaW5ncyBmb3IgdGlnaHRlciBkZWZhdWx0IHNwYWNpbmdcbi5tZWRpYS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4vLyBNZWRpYSBsaXN0IHZhcmlhdGlvblxuLy9cbi8vIFVuZG8gZGVmYXVsdCB1bC9vbCBzdHlsZXNcbi5tZWRpYS1saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiLy9cbi8vIExpc3QgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi8vXG4vLyBFYXNpbHkgdXNhYmxlIG9uIDx1bD4sIDxvbD4sIG9yIDxkaXY+LlxuXG4ubGlzdC1ncm91cCB7XG4gIC8vIE5vIG5lZWQgdG8gc2V0IGxpc3Qtc3R5bGU6IG5vbmU7IHNpbmNlIC5saXN0LWdyb3VwLWl0ZW0gaXMgYmxvY2sgbGV2ZWxcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAwOyAvLyByZXNldCBwYWRkaW5nIGJlY2F1c2UgdWwgYW5kIG9sXG59XG5cblxuLy8gSW5kaXZpZHVhbCBsaXN0IGl0ZW1zXG4vL1xuLy8gVXNlIG9uIGBsaWBzIG9yIGBkaXZgcyB3aXRoaW4gdGhlIGAubGlzdC1ncm91cGAgcGFyZW50LlxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICAvLyBQbGFjZSB0aGUgYm9yZGVyIG9uIHRoZSBsaXN0IGl0ZW1zIGFuZCBuZWdhdGl2ZSBtYXJnaW4gdXAgZm9yIGJldHRlciBzdHlsaW5nXG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaXN0LWdyb3VwLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAbGlzdC1ncm91cC1ib3JkZXI7XG5cbiAgLy8gUm91bmQgdGhlIGZpcnN0IGFuZCBsYXN0IGl0ZW1zXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIC5ib3JkZXItdG9wLXJhZGl1cyhAbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKEBsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICB9XG59XG5cblxuLy8gSW50ZXJhY3RpdmUgbGlzdCBpdGVtc1xuLy9cbi8vIFVzZSBhbmNob3Igb3IgYnV0dG9uIGVsZW1lbnRzIGluc3RlYWQgb2YgYGxpYHMgb3IgYGRpdmBzIHRvIGNyZWF0ZSBpbnRlcmFjdGl2ZSBpdGVtcy5cbi8vIEluY2x1ZGVzIGFuIGV4dHJhIGAuYWN0aXZlYCBtb2RpZmllciBjbGFzcyBmb3Igc2hvd2luZyBzZWxlY3RlZCBpdGVtcy5cblxuYS5saXN0LWdyb3VwLWl0ZW0sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgY29sb3I6IEBsaXN0LWdyb3VwLWxpbmstY29sb3I7XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICBjb2xvcjogQGxpc3QtZ3JvdXAtbGluay1oZWFkaW5nLWNvbG9yO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBAbGlzdC1ncm91cC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBsaXN0LWdyb3VwLWhvdmVyLWJnO1xuICB9XG59XG5cbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICYuZGlzYWJsZWQsXG4gICYuZGlzYWJsZWQ6aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBsaXN0LWdyb3VwLWRpc2FibGVkLWJnO1xuICAgIGNvbG9yOiBAbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvcjtcbiAgICBjdXJzb3I6IEBjdXJzb3ItZGlzYWJsZWQ7XG5cbiAgICAvLyBGb3JjZSBjb2xvciB0byBpbmhlcml0IGZvciBjdXN0b20gY29udGVudFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgICAgIGNvbG9yOiBAbGlzdC1ncm91cC1kaXNhYmxlZC10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFjdGl2ZSBjbGFzcyBvbiBpdGVtIGl0c2VsZiwgbm90IHBhcmVudFxuICAmLmFjdGl2ZSxcbiAgJi5hY3RpdmU6aG92ZXIsXG4gICYuYWN0aXZlOmZvY3VzIHtcbiAgICB6LWluZGV4OiAyOyAvLyBQbGFjZSBhY3RpdmUgaXRlbXMgYWJvdmUgdGhlaXIgc2libGluZ3MgZm9yIHByb3BlciBib3JkZXIgc3R5bGluZ1xuICAgIGNvbG9yOiBAbGlzdC1ncm91cC1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGxpc3QtZ3JvdXAtYWN0aXZlLWJnO1xuICAgIGJvcmRlci1jb2xvcjogQGxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlcjtcblxuICAgIC8vIEZvcmNlIGNvbG9yIHRvIGluaGVyaXQgZm9yIGN1c3RvbSBjb250ZW50XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgICAgIGNvbG9yOiBAbGlzdC1ncm91cC1hY3RpdmUtdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb250ZXh0dWFsIHZhcmlhbnRzXG4vL1xuLy8gQWRkIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRleHQgYW5kIGJhY2tncm91bmQgY29sb3Igb24gaW5kaXZpZHVhbCBpdGVtcy5cbi8vIE9yZ2FuaXphdGlvbmFsbHksIHRoaXMgbXVzdCBjb21lIGFmdGVyIHRoZSBgOmhvdmVyYCBzdGF0ZXMuXG5cbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudChzdWNjZXNzOyBAc3RhdGUtc3VjY2Vzcy1iZzsgQHN0YXRlLXN1Y2Nlc3MtdGV4dCk7XG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoaW5mbzsgQHN0YXRlLWluZm8tYmc7IEBzdGF0ZS1pbmZvLXRleHQpO1xuLmxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KHdhcm5pbmc7IEBzdGF0ZS13YXJuaW5nLWJnOyBAc3RhdGUtd2FybmluZy10ZXh0KTtcbi5saXN0LWdyb3VwLWl0ZW0tdmFyaWFudChkYW5nZXI7IEBzdGF0ZS1kYW5nZXItYmc7IEBzdGF0ZS1kYW5nZXItdGV4dCk7XG5cblxuLy8gQ3VzdG9tIGNvbnRlbnQgb3B0aW9uc1xuLy9cbi8vIEV4dHJhIGNsYXNzZXMgZm9yIGNyZWF0aW5nIHdlbGwtZm9ybWF0dGVkIGNvbnRlbnQgd2l0aGluIGAubGlzdC1ncm91cC1pdGVtYHMuXG5cbi5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4iLCIvLyBMaXN0IEdyb3Vwc1xuXG4ubGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoQHN0YXRlOyBAYmFja2dyb3VuZDsgQGNvbG9yKSB7XG4gIC5saXN0LWdyb3VwLWl0ZW0tQHtzdGF0ZX0ge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQ7XG5cbiAgICBhJixcbiAgICBidXR0b24mIHtcbiAgICAgIGNvbG9yOiBAY29sb3I7XG5cbiAgICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBAY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgNSUpO1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUsXG4gICAgICAmLmFjdGl2ZTpob3ZlcixcbiAgICAgICYuYWN0aXZlOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBjb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gUGFuZWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi5wYW5lbCB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHBhbmVsLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogQHBhbmVsLWJvcmRlci1yYWRpdXM7XG4gIC5ib3gtc2hhZG93KDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSkpO1xufVxuXG4vLyBQYW5lbCBjb250ZW50c1xuLnBhbmVsLWJvZHkge1xuICBwYWRkaW5nOiBAcGFuZWwtYm9keS1wYWRkaW5nO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cblxuLy8gT3B0aW9uYWwgaGVhZGluZ1xuLnBhbmVsLWhlYWRpbmcge1xuICBwYWRkaW5nOiBAcGFuZWwtaGVhZGluZy1wYWRkaW5nO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIC5ib3JkZXItdG9wLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG5cbiAgPiAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gV2l0aGluIGhlYWRpbmcsIHN0cmlwIGFueSBgaCpgIHRhZyBvZiBpdHMgZGVmYXVsdCBtYXJnaW5zIGZvciBzcGFjaW5nLlxuLnBhbmVsLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiBjZWlsKChAZm9udC1zaXplLWJhc2UgKiAxLjEyNSkpO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICA+IGEsXG4gID4gc21hbGwsXG4gID4gLnNtYWxsLFxuICA+IHNtYWxsID4gYSxcbiAgPiAuc21hbGwgPiBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBPcHRpb25hbCBmb290ZXIgKHN0YXlzIGdyYXkgaW4gZXZlcnkgbW9kaWZpZXIgY2xhc3MpXG4ucGFuZWwtZm9vdGVyIHtcbiAgcGFkZGluZzogQHBhbmVsLWZvb3Rlci1wYWRkaW5nO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcGFuZWwtZm9vdGVyLWJnO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgQHBhbmVsLWlubmVyLWJvcmRlcjtcbiAgLmJvcmRlci1ib3R0b20tcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcbn1cblxuXG4vLyBMaXN0IGdyb3VwcyBpbiBwYW5lbHNcbi8vXG4vLyBCeSBkZWZhdWx0LCBzcGFjZSBvdXQgbGlzdCBncm91cCBjb250ZW50IGZyb20gcGFuZWwgaGVhZGluZ3MgdG8gYWNjb3VudCBmb3Jcbi8vIGFueSBraW5kIG9mIGN1c3RvbSBjb250ZW50IGJldHdlZW4gdGhlIHR3by5cblxuLnBhbmVsIHtcbiAgPiAubGlzdC1ncm91cCxcbiAgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIC5saXN0LWdyb3VwLWl0ZW0ge1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLy8gQWRkIGJvcmRlciB0b3AgcmFkaXVzIGZvciBmaXJzdCBvbmVcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICAuYm9yZGVyLXRvcC1yYWRpdXMoKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBib3JkZXIgYm90dG9tIHJhZGl1cyBmb3IgbGFzdCBvbmVcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgIC5ib3JkZXItdG9wLXJhZGl1cygwKTtcbiAgICB9XG4gIH1cbn1cbi8vIENvbGxhcHNlIHNwYWNlIGJldHdlZW4gd2hlbiB0aGVyZSdzIG5vIGFkZGl0aW9uYWwgY29udGVudC5cbi5wYW5lbC1oZWFkaW5nICsgLmxpc3QtZ3JvdXAge1xuICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICB9XG59XG4ubGlzdC1ncm91cCArIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuXG4vLyBUYWJsZXMgaW4gcGFuZWxzXG4vL1xuLy8gUGxhY2UgYSBub24tYm9yZGVyZWQgYC50YWJsZWAgd2l0aGluIGEgcGFuZWwgKG5vdCB3aXRoaW4gYSBgLnBhbmVsLWJvZHlgKSBhbmRcbi8vIHdhdGNoIGl0IGdvIGZ1bGwgd2lkdGguXG5cbi5wYW5lbCB7XG4gID4gLnRhYmxlLFxuICA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLFxuICA+IC5wYW5lbC1jb2xsYXBzZSA+IC50YWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIGNhcHRpb24ge1xuICAgICAgcGFkZGluZy1sZWZ0OiBAcGFuZWwtYm9keS1wYWRkaW5nO1xuICAgICAgcGFkZGluZy1yaWdodDogQHBhbmVsLWJvZHktcGFkZGluZztcbiAgICB9XG4gIH1cbiAgLy8gQWRkIGJvcmRlciB0b3AgcmFkaXVzIGZvciBmaXJzdCBvbmVcbiAgPiAudGFibGU6Zmlyc3QtY2hpbGQsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQge1xuICAgIC5ib3JkZXItdG9wLXJhZGl1cygoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG5cbiAgICA+IHRoZWFkOmZpcnN0LWNoaWxkLFxuICAgID4gdGJvZHk6Zmlyc3QtY2hpbGQge1xuICAgICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG5cbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0ZDpsYXN0LWNoaWxkLFxuICAgICAgICB0aDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQWRkIGJvcmRlciBib3R0b20gcmFkaXVzIGZvciBsYXN0IG9uZVxuICA+IC50YWJsZTpsYXN0LWNoaWxkLFxuICA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCB7XG4gICAgLmJvcmRlci1ib3R0b20tcmFkaXVzKChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcblxuICAgID4gdGJvZHk6bGFzdC1jaGlsZCxcbiAgICA+IHRmb290Omxhc3QtY2hpbGQge1xuICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogKEBwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcblxuICAgICAgICB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IChAcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIHRoOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAoQHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLFxuICA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLXJlc3BvbnNpdmUsXG4gID4gLnRhYmxlICsgLnBhbmVsLWJvZHksXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgKyAucGFuZWwtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEB0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cbiAgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoLFxuICA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbiAgPiAudGFibGUtYm9yZGVyZWQsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgICA+IHRoZWFkLFxuICAgID4gdGJvZHksXG4gICAgPiB0Zm9vdCB7XG4gICAgICA+IHRyIHtcbiAgICAgICAgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgPiB0aDpsYXN0LWNoaWxkLFxuICAgICAgICA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+IHRoZWFkLFxuICAgID4gdGJvZHkge1xuICAgICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiB0Ym9keSxcbiAgICA+IHRmb290IHtcbiAgICAgID4gdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuXG4vLyBDb2xsYXBzaWJsZSBwYW5lbHMgKGFrYSwgYWNjb3JkaW9uKVxuLy9cbi8vIFdyYXAgYSBzZXJpZXMgb2YgcGFuZWxzIGluIGAucGFuZWwtZ3JvdXBgIHRvIHR1cm4gdGhlbSBpbnRvIGFuIGFjY29yZGlvbiB3aXRoXG4vLyB0aGUgaGVscCBvZiBvdXIgY29sbGFwc2UgSmF2YVNjcmlwdCBwbHVnaW4uXG5cbi5wYW5lbC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcblxuICAvLyBUaWdodGVuIHVwIG1hcmdpbiBzbyBpdCdzIG9ubHkgYmV0d2VlbiBwYW5lbHNcbiAgLnBhbmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IEBwYW5lbC1ib3JkZXItcmFkaXVzO1xuXG4gICAgKyAucGFuZWwge1xuICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5wYW5lbC1oZWFkaW5nIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuXG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSxcbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBAcGFuZWwtaW5uZXItYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5wYW5lbC1mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgKyAucGFuZWwtY29sbGFwc2UgLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBwYW5lbC1pbm5lci1ib3JkZXI7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29udGV4dHVhbCB2YXJpYXRpb25zXG4ucGFuZWwtZGVmYXVsdCB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1kZWZhdWx0LWJvcmRlcjsgQHBhbmVsLWRlZmF1bHQtdGV4dDsgQHBhbmVsLWRlZmF1bHQtaGVhZGluZy1iZzsgQHBhbmVsLWRlZmF1bHQtYm9yZGVyKTtcbn1cbi5wYW5lbC1wcmltYXJ5IHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLXByaW1hcnktYm9yZGVyOyBAcGFuZWwtcHJpbWFyeS10ZXh0OyBAcGFuZWwtcHJpbWFyeS1oZWFkaW5nLWJnOyBAcGFuZWwtcHJpbWFyeS1ib3JkZXIpO1xufVxuLnBhbmVsLXN1Y2Nlc3Mge1xuICAucGFuZWwtdmFyaWFudChAcGFuZWwtc3VjY2Vzcy1ib3JkZXI7IEBwYW5lbC1zdWNjZXNzLXRleHQ7IEBwYW5lbC1zdWNjZXNzLWhlYWRpbmctYmc7IEBwYW5lbC1zdWNjZXNzLWJvcmRlcik7XG59XG4ucGFuZWwtaW5mbyB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1pbmZvLWJvcmRlcjsgQHBhbmVsLWluZm8tdGV4dDsgQHBhbmVsLWluZm8taGVhZGluZy1iZzsgQHBhbmVsLWluZm8tYm9yZGVyKTtcbn1cbi5wYW5lbC13YXJuaW5nIHtcbiAgLnBhbmVsLXZhcmlhbnQoQHBhbmVsLXdhcm5pbmctYm9yZGVyOyBAcGFuZWwtd2FybmluZy10ZXh0OyBAcGFuZWwtd2FybmluZy1oZWFkaW5nLWJnOyBAcGFuZWwtd2FybmluZy1ib3JkZXIpO1xufVxuLnBhbmVsLWRhbmdlciB7XG4gIC5wYW5lbC12YXJpYW50KEBwYW5lbC1kYW5nZXItYm9yZGVyOyBAcGFuZWwtZGFuZ2VyLXRleHQ7IEBwYW5lbC1kYW5nZXItaGVhZGluZy1iZzsgQHBhbmVsLWRhbmdlci1ib3JkZXIpO1xufVxuIiwiLy8gUGFuZWxzXG5cbi5wYW5lbC12YXJpYW50KEBib3JkZXI7IEBoZWFkaW5nLXRleHQtY29sb3I7IEBoZWFkaW5nLWJnLWNvbG9yOyBAaGVhZGluZy1ib3JkZXIpIHtcbiAgYm9yZGVyLWNvbG9yOiBAYm9yZGVyO1xuXG4gICYgPiAucGFuZWwtaGVhZGluZyB7XG4gICAgY29sb3I6IEBoZWFkaW5nLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGhlYWRpbmctYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBAaGVhZGluZy1ib3JkZXI7XG5cbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6IEBib3JkZXI7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBjb2xvcjogQGhlYWRpbmctYmctY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaGVhZGluZy10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuICAmID4gLnBhbmVsLWZvb3RlciB7XG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAYm9yZGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRW1iZWRzIHJlc3BvbnNpdmVcbi8vXG4vLyBDcmVkaXQ6IE5pY29sYXMgR2FsbGFnaGVyIGFuZCBTVUlUIENTUy5cblxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLmVtYmVkLXJlc3BvbnNpdmUtaXRlbSxcbiAgaWZyYW1lLFxuICBlbWJlZCxcbiAgb2JqZWN0LFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi8vIE1vZGlmaWVyIGNsYXNzIGZvciAxNjo5IGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG4vLyBNb2RpZmllciBjbGFzcyBmb3IgNDozIGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5MyB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4iLCIvL1xuLy8gV2VsbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLndlbGwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAxOXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2VsbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgQHdlbGwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAuYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpKTtcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMTUpO1xuICB9XG59XG5cbi8vIFNpemVzXG4ud2VsbC1sZyB7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlO1xufVxuLndlbGwtc20ge1xuICBwYWRkaW5nOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLXNtYWxsO1xufVxuIiwiLy9cbi8vIENsb3NlIGljb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5jbG9zZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAoQGZvbnQtc2l6ZS1iYXNlICogMS41KTtcbiAgZm9udC13ZWlnaHQ6IEBjbG9zZS1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBAY2xvc2UtY29sb3I7XG4gIHRleHQtc2hhZG93OiBAY2xvc2UtdGV4dC1zaGFkb3c7XG4gIC5vcGFjaXR5KC4yKTtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogQGNsb3NlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLm9wYWNpdHkoLjUpO1xuICB9XG5cbiAgLy8gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciBidXR0b24gdmVyc2lvblxuICAvLyBpT1MgcmVxdWlyZXMgdGhlIGJ1dHRvbiBlbGVtZW50IGluc3RlYWQgb2YgYW4gYW5jaG9yIHRhZy5cbiAgLy8gSWYgeW91IHdhbnQgdGhlIGFuY2hvciB2ZXJzaW9uLCBpdCByZXF1aXJlcyBgaHJlZj1cIiNcImAuXG4gIC8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjU2FmYXJpX01vYmlsZVxuICBidXR0b24mIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG4iLCIvL1xuLy8gTW9kYWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAubW9kYWwtb3BlbiAgICAgIC0gYm9keSBjbGFzcyBmb3Iga2lsbGluZyB0aGUgc2Nyb2xsXG4vLyAubW9kYWwgICAgICAgICAgIC0gY29udGFpbmVyIHRvIHNjcm9sbCB3aXRoaW5cbi8vIC5tb2RhbC1kaWFsb2cgICAgLSBwb3NpdGlvbmluZyBzaGVsbCBmb3IgdGhlIGFjdHVhbCBtb2RhbFxuLy8gLm1vZGFsLWNvbnRlbnQgICAtIGFjdHVhbCBtb2RhbCB3LyBiZyBhbmQgY29ybmVycyBhbmQgc2hpdFxuXG4vLyBLaWxsIHRoZSBzY3JvbGwgb24gdGhlIGJvZHlcbi5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gQ29udGFpbmVyIHRoYXQgdGhlIG1vZGFsIHNjcm9sbHMgd2l0aGluXG4ubW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1tb2RhbDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gIC8vIFByZXZlbnQgQ2hyb21lIG9uIFdpbmRvd3MgZnJvbSBhZGRpbmcgYSBmb2N1cyBvdXRsaW5lLiBGb3IgZGV0YWlscywgc2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzEwOTUxLlxuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFdoZW4gZmFkaW5nIGluIHRoZSBtb2RhbCwgYW5pbWF0ZSBpdCB0byBzbGlkZSBkb3duXG4gICYuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgICAudHJhbnNsYXRlKDAsIC0yNSUpO1xuICAgIC50cmFuc2l0aW9uLXRyYW5zZm9ybSh+XCIwLjNzIGVhc2Utb3V0XCIpO1xuICB9XG4gICYuaW4gLm1vZGFsLWRpYWxvZyB7IC50cmFuc2xhdGUoMCwgMCkgfVxufVxuLm1vZGFsLW9wZW4gLm1vZGFsIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4vLyBTaGVsbCBkaXYgdG8gcG9zaXRpb24gdGhlIG1vZGFsIHdpdGggYm90dG9tIHBhZGRpbmdcbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi8vIEFjdHVhbCBtb2RhbFxuLm1vZGFsLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IEBtb2RhbC1jb250ZW50LWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCBAbW9kYWwtY29udGVudC1mYWxsYmFjay1ib3JkZXItY29sb3I7IC8vb2xkIGJyb3dzZXJzIGZhbGxiYWNrIChpZTggZXRjKVxuICBib3JkZXI6IDFweCBzb2xpZCBAbW9kYWwtY29udGVudC1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlO1xuICAuYm94LXNoYWRvdygwIDNweCA5cHggcmdiYSgwLDAsMCwuNSkpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAvLyBSZW1vdmUgZm9jdXMgb3V0bGluZSBmcm9tIG9wZW5lZCBtb2RhbFxuICBvdXRsaW5lOiAwO1xufVxuXG4vLyBNb2RhbCBiYWNrZ3JvdW5kXG4ubW9kYWwtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleC1tb2RhbC1iYWNrZ3JvdW5kO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAbW9kYWwtYmFja2Ryb3AtYmc7XG4gIC8vIEZhZGUgZm9yIGJhY2tkcm9wXG4gICYuZmFkZSB7IC5vcGFjaXR5KDApOyB9XG4gICYuaW4geyAub3BhY2l0eShAbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSk7IH1cbn1cblxuLy8gTW9kYWwgaGVhZGVyXG4vLyBUb3Agc2VjdGlvbiBvZiB0aGUgbW9kYWwgdy8gdGl0bGUgYW5kIGRpc21pc3Ncbi5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiBAbW9kYWwtdGl0bGUtcGFkZGluZztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTtcbn1cbi8vIENsb3NlIGljb25cbi5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cblxuLy8gVGl0bGUgdGV4dCB3aXRoaW4gaGVhZGVyXG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiBAbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ7XG59XG5cbi8vIE1vZGFsIGJvZHlcbi8vIFdoZXJlIGFsbCBtb2RhbCBjb250ZW50IHJlc2lkZXMgKHNpYmxpbmcgb2YgLm1vZGFsLWhlYWRlciBhbmQgLm1vZGFsLWZvb3Rlcilcbi5tb2RhbC1ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiBAbW9kYWwtaW5uZXItcGFkZGluZztcbn1cblxuLy8gRm9vdGVyIChmb3IgYWN0aW9ucylcbi5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiBAbW9kYWwtaW5uZXItcGFkZGluZztcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IC8vIHJpZ2h0IGFsaWduIGJ1dHRvbnNcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBtb2RhbC1mb290ZXItYm9yZGVyLWNvbG9yO1xuICAmOmV4dGVuZCguY2xlYXJmaXggYWxsKTsgLy8gY2xlYXIgaXQgaW4gY2FzZSBmb2xrcyB1c2UgLnB1bGwtKiBjbGFzc2VzIG9uIGJ1dHRvbnNcblxuICAvLyBQcm9wZXJseSBzcGFjZSBvdXQgYnV0dG9uc1xuICAuYnRuICsgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAvLyBhY2NvdW50IGZvciBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHdoaWNoIGdldHMgdGhlIGJvdHRvbSBtYXJnaW4gbGlrZSBhbGwgb3RoZXIgaW5wdXRzXG4gIH1cbiAgLy8gYnV0IG92ZXJyaWRlIHRoYXQgZm9yIGJ1dHRvbiBncm91cHNcbiAgLmJ0bi1ncm91cCAuYnRuICsgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIH1cbiAgLy8gYW5kIG92ZXJyaWRlIGl0IGZvciBibG9jayBidXR0b25zIGFzIHdlbGxcbiAgLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi8vIE1lYXN1cmUgc2Nyb2xsYmFyIHdpZHRoIGZvciBwYWRkaW5nIGJvZHkgZHVyaW5nIG1vZGFsIHNob3cvaGlkZVxuLm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbi8vIFNjYWxlIHVwIHRoZSBtb2RhbFxuQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XG4gIC8vIEF1dG9tYXRpY2FsbHkgc2V0IG1vZGFsJ3Mgd2lkdGggZm9yIGxhcmdlciB2aWV3cG9ydHNcbiAgLm1vZGFsLWRpYWxvZyB7XG4gICAgd2lkdGg6IEBtb2RhbC1tZDtcbiAgICBtYXJnaW46IDMwcHggYXV0bztcbiAgfVxuICAubW9kYWwtY29udGVudCB7XG4gICAgLmJveC1zaGFkb3coMCA1cHggMTVweCByZ2JhKDAsMCwwLC41KSk7XG4gIH1cblxuICAvLyBNb2RhbCBzaXplc1xuICAubW9kYWwtc20geyB3aWR0aDogQG1vZGFsLXNtOyB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xuICAubW9kYWwtbGcgeyB3aWR0aDogQG1vZGFsLWxnOyB9XG59XG4iLCIvL1xuLy8gVG9vbHRpcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IEB6aW5kZXgtdG9vbHRpcDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8vIE91ciBwYXJlbnQgZWxlbWVudCBjYW4gYmUgYXJiaXRyYXJ5IHNpbmNlIHRvb2x0aXBzIGFyZSBieSBkZWZhdWx0IGluc2VydGVkIGFzIGEgc2libGluZyBvZiB0aGVpciB0YXJnZXQgZWxlbWVudC5cbiAgLy8gU28gcmVzZXQgb3VyIGZvbnQgYW5kIHRleHQgcHJvcGVydGllcyB0byBhdm9pZCBpbmhlcml0aW5nIHdlaXJkIHZhbHVlcy5cbiAgLnJlc2V0LXRleHQoKTtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLXNtYWxsO1xuXG4gIC5vcGFjaXR5KDApO1xuXG4gICYuaW4gICAgIHsgLm9wYWNpdHkoQHRvb2x0aXAtb3BhY2l0eSk7IH1cbiAgJi50b3AgICAgeyBtYXJnaW4tdG9wOiAgLTNweDsgcGFkZGluZzogQHRvb2x0aXAtYXJyb3ctd2lkdGggMDsgfVxuICAmLnJpZ2h0ICB7IG1hcmdpbi1sZWZ0OiAgM3B4OyBwYWRkaW5nOiAwIEB0b29sdGlwLWFycm93LXdpZHRoOyB9XG4gICYuYm90dG9tIHsgbWFyZ2luLXRvcDogICAzcHg7IHBhZGRpbmc6IEB0b29sdGlwLWFycm93LXdpZHRoIDA7IH1cbiAgJi5sZWZ0ICAgeyBtYXJnaW4tbGVmdDogLTNweDsgcGFkZGluZzogMCBAdG9vbHRpcC1hcnJvdy13aWR0aDsgfVxufVxuXG4vLyBXcmFwcGVyIGZvciB0aGUgdG9vbHRpcCBjb250ZW50XG4udG9vbHRpcC1pbm5lciB7XG4gIG1heC13aWR0aDogQHRvb2x0aXAtbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBjb2xvcjogQHRvb2x0aXAtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRvb2x0aXAtYmc7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWJhc2U7XG59XG5cbi8vIEFycm93c1xuLnRvb2x0aXAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4vLyBOb3RlOiBEZXByZWNhdGVkIC50b3AtbGVmdCwgLnRvcC1yaWdodCwgLmJvdHRvbS1sZWZ0LCBhbmQgLmJvdHRvbS1yaWdodCBhcyBvZiB2My4zLjFcbi50b29sdGlwIHtcbiAgJi50b3AgLnRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi50b3AtbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tYm90dG9tOiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYudG9wLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLnJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IEB0b29sdGlwLWFycm93LXdpZHRoIDAgQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYuYm90dG9tIC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAwIEB0b29sdGlwLWFycm93LXdpZHRoIEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEB0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYuYm90dG9tLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogLUB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogMCBAdG9vbHRpcC1hcnJvdy13aWR0aCBAdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbS1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IEB0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC1AdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IDAgQHRvb2x0aXAtYXJyb3ctd2lkdGggQHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbn1cbiIsIi5yZXNldC10ZXh0KCkge1xuICBmb250LWZhbWlseTogQGZvbnQtZmFtaWx5LWJhc2U7XG4gIC8vIFdlIGRlbGliZXJhdGVseSBkbyBOT1QgcmVzZXQgZm9udC1zaXplLlxuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRmFsbGJhY2sgZm9yIHdoZXJlIGBzdGFydGAgaXMgbm90IHN1cHBvcnRlZFxuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiLy9cbi8vIFBvcG92ZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXgtcG9wb3ZlcjtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWF4LXdpZHRoOiBAcG9wb3Zlci1tYXgtd2lkdGg7XG4gIHBhZGRpbmc6IDFweDtcbiAgLy8gT3VyIHBhcmVudCBlbGVtZW50IGNhbiBiZSBhcmJpdHJhcnkgc2luY2UgcG9wb3ZlcnMgYXJlIGJ5IGRlZmF1bHQgaW5zZXJ0ZWQgYXMgYSBzaWJsaW5nIG9mIHRoZWlyIHRhcmdldCBlbGVtZW50LlxuICAvLyBTbyByZXNldCBvdXIgZm9udCBhbmQgdGV4dCBwcm9wZXJ0aWVzIHRvIGF2b2lkIGluaGVyaXRpbmcgd2VpcmQgdmFsdWVzLlxuICAucmVzZXQtdGV4dCgpO1xuICBmb250LXNpemU6IEBmb250LXNpemUtYmFzZTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcG9wb3Zlci1iZztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgQHBvcG92ZXItZmFsbGJhY2stYm9yZGVyLWNvbG9yO1xuICBib3JkZXI6IDFweCBzb2xpZCBAcG9wb3Zlci1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzLWxhcmdlO1xuICAuYm94LXNoYWRvdygwIDVweCAxMHB4IHJnYmEoMCwwLDAsLjIpKTtcblxuICAvLyBPZmZzZXQgdGhlIHBvcG92ZXIgdG8gYWNjb3VudCBmb3IgdGhlIHBvcG92ZXIgYXJyb3dcbiAgJi50b3AgICAgIHsgbWFyZ2luLXRvcDogLUBwb3BvdmVyLWFycm93LXdpZHRoOyB9XG4gICYucmlnaHQgICB7IG1hcmdpbi1sZWZ0OiBAcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLmJvdHRvbSAgeyBtYXJnaW4tdG9wOiBAcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLmxlZnQgICAgeyBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LXdpZHRoOyB9XG59XG5cbi5wb3BvdmVyLXRpdGxlIHtcbiAgbWFyZ2luOiAwOyAvLyByZXNldCBoZWFkaW5nIG1hcmdpblxuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC1zaXplOiBAZm9udC1zaXplLWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwb3BvdmVyLXRpdGxlLWJnO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKEBwb3BvdmVyLXRpdGxlLWJnLCA1JSk7XG4gIGJvcmRlci1yYWRpdXM6IChAYm9yZGVyLXJhZGl1cy1sYXJnZSAtIDEpIChAYm9yZGVyLXJhZGl1cy1sYXJnZSAtIDEpIDAgMDtcbn1cblxuLnBvcG92ZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xufVxuXG4vLyBBcnJvd3Ncbi8vXG4vLyAuYXJyb3cgaXMgb3V0ZXIsIC5hcnJvdzphZnRlciBpcyBpbm5lclxuXG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gICYsXG4gICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG59XG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gIGJvcmRlci13aWR0aDogQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XG4gIGJvcmRlci13aWR0aDogQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5wb3BvdmVyIHtcbiAgJi50b3AgPiAuYXJyb3cge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci10b3AtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgIGJvdHRvbTogLUBwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBib3R0b206IDFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG4gICYucmlnaHQgPiAuYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgbGVmdDogMXB4O1xuICAgICAgYm90dG9tOiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogQHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG4gICYuYm90dG9tID4gLmFycm93IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICB0b3A6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLUBwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gICYubGVmdCA+IC5hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IC1AcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtQHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IEBwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICByaWdodDogMXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IEBwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgICAgYm90dG9tOiAtQHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ2Fyb3VzZWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gV3JhcHBlciBmb3IgdGhlIHNsaWRlIGNvbnRhaW5lciBhbmQgaW5kaWNhdG9yc1xuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2Fyb3VzZWwtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gLml0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC50cmFuc2l0aW9uKC42cyBlYXNlLWluLW91dCBsZWZ0KTtcblxuICAgIC8vIEFjY291bnQgZm9yIGphbmtpdHVkZSBvbiBpbWFnZXNcbiAgICA+IGltZyxcbiAgICA+IGEgPiBpbWcge1xuICAgICAgJjpleHRlbmQoLmltZy1yZXNwb25zaXZlKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgIC8vIFdlYktpdCBDU1MzIHRyYW5zZm9ybXMgZm9yIHN1cHBvcnRlZCBkZXZpY2VzXG4gICAgQG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksICgtd2Via2l0LXRyYW5zZm9ybS0zZCkge1xuICAgICAgLnRyYW5zaXRpb24tdHJhbnNmb3JtKH4nMC42cyBlYXNlLWluLW91dCcpO1xuICAgICAgLmJhY2tmYWNlLXZpc2liaWxpdHkofidoaWRkZW4nKTtcbiAgICAgIC5wZXJzcGVjdGl2ZSgxMDAwcHgpO1xuXG4gICAgICAmLm5leHQsXG4gICAgICAmLmFjdGl2ZS5yaWdodCB7XG4gICAgICAgIC50cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICAgICYucHJldixcbiAgICAgICYuYWN0aXZlLmxlZnQge1xuICAgICAgICAudHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgICAgJi5uZXh0LmxlZnQsXG4gICAgICAmLnByZXYucmlnaHQsXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIC50cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUsXG4gID4gLm5leHQsXG4gID4gLnByZXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgPiAuYWN0aXZlIHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgPiAubmV4dCxcbiAgPiAucHJldiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gID4gLm5leHQge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgPiAucHJldiB7XG4gICAgbGVmdDogLTEwMCU7XG4gIH1cbiAgPiAubmV4dC5sZWZ0LFxuICA+IC5wcmV2LnJpZ2h0IHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgPiAuYWN0aXZlLmxlZnQge1xuICAgIGxlZnQ6IC0xMDAlO1xuICB9XG4gID4gLmFjdGl2ZS5yaWdodCB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuXG59XG5cbi8vIExlZnQvcmlnaHQgY29udHJvbHMgZm9yIG5hdlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jYXJvdXNlbC1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IEBjYXJvdXNlbC1jb250cm9sLXdpZHRoO1xuICAub3BhY2l0eShAY2Fyb3VzZWwtY29udHJvbC1vcGFjaXR5KTtcbiAgZm9udC1zaXplOiBAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemU7XG4gIGNvbG9yOiBAY2Fyb3VzZWwtY29udHJvbC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogQGNhcm91c2VsLXRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyAvLyBGaXggSUU5IGNsaWNrLXRocnUgYnVnXG4gIC8vIFdlIGNhbid0IGhhdmUgdGhpcyB0cmFuc2l0aW9uIGhlcmUgYmVjYXVzZSBXZWJLaXQgY2FuY2VscyB0aGUgY2Fyb3VzZWxcbiAgLy8gYW5pbWF0aW9uIGlmIHlvdSB0cmlwIHRoaXMgd2hpbGUgaW4gdGhlIG1pZGRsZSBvZiBhbm90aGVyIGFuaW1hdGlvbi5cblxuICAvLyBTZXQgZ3JhZGllbnRzIGZvciBiYWNrZ3JvdW5kc1xuICAmLmxlZnQge1xuICAgICNncmFkaWVudCA+IC5ob3Jpem9udGFsKEBzdGFydC1jb2xvcjogcmdiYSgwLDAsMCwuNSk7IEBlbmQtY29sb3I6IHJnYmEoMCwwLDAsLjAwMDEpKTtcbiAgfVxuICAmLnJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgICNncmFkaWVudCA+IC5ob3Jpem9udGFsKEBzdGFydC1jb2xvcjogcmdiYSgwLDAsMCwuMDAwMSk7IEBlbmQtY29sb3I6IHJnYmEoMCwwLDAsLjUpKTtcbiAgfVxuXG4gIC8vIEhvdmVyL2ZvY3VzIHN0YXRlXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgY29sb3I6IEBjYXJvdXNlbC1jb250cm9sLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAub3BhY2l0eSguOSk7XG4gIH1cblxuICAvLyBUb2dnbGVzXG4gIC5pY29uLXByZXYsXG4gIC5pY29uLW5leHQsXG4gIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuaWNvbi1wcmV2LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgfVxuICAuaWNvbi1uZXh0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgfVxuICAuaWNvbi1wcmV2LFxuICAuaWNvbi1uZXh0IHtcbiAgICB3aWR0aDogIDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgfVxuXG5cbiAgLmljb24tcHJldiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAzOSc7Ly8gU0lOR0xFIExFRlQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksgKFUrMjAzOSlcbiAgICB9XG4gIH1cbiAgLmljb24tbmV4dCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAzYSc7Ly8gU0lOR0xFIFJJR0hULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIChVKzIwM0EpXG4gICAgfVxuICB9XG59XG5cbi8vIE9wdGlvbmFsIGluZGljYXRvciBwaXBzXG4vL1xuLy8gQWRkIGFuIHVub3JkZXJlZCBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBjbGFzcyBhbmQgYWRkIGEgbGlzdCBpdGVtIGZvciBlYWNoXG4vLyBzbGlkZSB5b3VyIGNhcm91c2VsIGhvbGRzLlxuXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDE1O1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogLTMwJTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogIDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbjogMXB4O1xuICAgIHRleHQtaW5kZW50OiAtOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgQGNhcm91c2VsLWluZGljYXRvci1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyBJRTgtOSBoYWNrIGZvciBldmVudCBoYW5kbGluZ1xuICAgIC8vXG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgOC05IGRvZXMgbm90IHN1cHBvcnQgY2xpY2tzIG9uIGVsZW1lbnRzIHdpdGhvdXQgYSBzZXRcbiAgICAvLyBgYmFja2dyb3VuZC1jb2xvcmAuIFdlIGNhbm5vdCB1c2UgYGZpbHRlcmAgc2luY2UgdGhhdCdzIG5vdCB2aWV3ZWQgYXMgYVxuICAgIC8vIGJhY2tncm91bmQgY29sb3IgYnkgdGhlIGJyb3dzZXIuIFRodXMsIGEgaGFjayBpcyBuZWVkZWQuXG4gICAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9jbGljayNJbnRlcm5ldF9FeHBsb3JlclxuICAgIC8vXG4gICAgLy8gRm9yIElFOCwgd2Ugc2V0IHNvbGlkIGJsYWNrIGFzIGl0IGRvZXNuJ3Qgc3VwcG9ydCBgcmdiYSgpYC4gRm9yIElFOSwgd2VcbiAgICAvLyBzZXQgYWxwaGEgdHJhbnNwYXJlbmN5IGZvciB0aGUgYmVzdCByZXN1bHRzIHBvc3NpYmxlLlxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAgXFw5OyAvLyBJRThcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApOyAvLyBJRTlcbiAgfVxuICAuYWN0aXZlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6ICAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY2Fyb3VzZWwtaW5kaWNhdG9yLWFjdGl2ZS1iZztcbiAgfVxufVxuXG4vLyBPcHRpb25hbCBjYXB0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhpZGRlbiBieSBkZWZhdWx0IGZvciBzbWFsbGVyIHZpZXdwb3J0c1xuLmNhcm91c2VsLWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDE1JTtcbiAgcmlnaHQ6IDE1JTtcbiAgYm90dG9tOiAyMHB4O1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBjb2xvcjogQGNhcm91c2VsLWNhcHRpb24tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IEBjYXJvdXNlbC10ZXh0LXNoYWRvdztcbiAgJiAuYnRuIHtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTsgLy8gTm8gc2hhZG93IGZvciBidXR0b24gZWxlbWVudHMgaW4gY2Fyb3VzZWwtY2FwdGlvblxuICB9XG59XG5cblxuLy8gU2NhbGUgdXAgY29udHJvbHMgZm9yIHRhYmxldHMgYW5kIHVwXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xuXG4gIC8vIFNjYWxlIHVwIHRoZSBjb250cm9scyBhIHNtaWRnZVxuICAuY2Fyb3VzZWwtY29udHJvbCB7XG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAgIC5pY29uLXByZXYsXG4gICAgLmljb24tbmV4dCB7XG4gICAgICB3aWR0aDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAqIDEuNSk7XG4gICAgICBoZWlnaHQ6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgKiAxLjUpO1xuICAgICAgbWFyZ2luLXRvcDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAvIC0yKTtcbiAgICAgIGZvbnQtc2l6ZTogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAqIDEuNSk7XG4gICAgfVxuICAgIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAgIC5pY29uLXByZXYge1xuICAgICAgbWFyZ2luLWxlZnQ6IChAY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgLyAtMik7XG4gICAgfVxuICAgIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgICAuaWNvbi1uZXh0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogKEBjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZSAvIC0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBTaG93IGFuZCBsZWZ0IGFsaWduIHRoZSBjYXB0aW9uc1xuICAuY2Fyb3VzZWwtY2FwdGlvbiB7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cblxuICAvLyBNb3ZlIHVwIHRoZSBpbmRpY2F0b3JzXG4gIC5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgICBib3R0b206IDIwcHg7XG4gIH1cbn1cbiIsIi8vIENsZWFyZml4XG4vL1xuLy8gRm9yIG1vZGVybiBicm93c2Vyc1xuLy8gMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbi8vICAgIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4vLyAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbi8vICAgIHRoYXQgYXJlIGNsZWFyZml4ZWQuXG4vLyAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuLy8gICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxuLy9cbi8vIFNvdXJjZTogaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svXG5cbi5jbGVhcmZpeCgpIHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiOyAvLyAxXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDJcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuIiwiLy8gQ2VudGVyLWFsaWduIGEgYmxvY2sgbGV2ZWwgZWxlbWVudFxuXG4uY2VudGVyLWJsb2NrKCkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbiIsIi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxuLy9cbi8vIEhlYWRzIHVwISB2MyBsYXVuY2hlZCB3aXRoIG9ubHkgYC5oaWRlLXRleHQoKWAsIGJ1dCBwZXIgb3VyIHBhdHRlcm4gZm9yXG4vLyBtaXhpbnMgYmVpbmcgcmV1c2VkIGFzIGNsYXNzZXMgd2l0aCB0aGUgc2FtZSBuYW1lLCB0aGlzIGRvZXNuJ3QgaG9sZCB1cC4gQXNcbi8vIG9mIHYzLjAuMSB3ZSBoYXZlIGFkZGVkIGAudGV4dC1oaWRlKClgIGFuZCBkZXByZWNhdGVkIGAuaGlkZS10ZXh0KClgLlxuLy9cbi8vIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvY29tbWl0L2FhMDM5NmVhZTc1N1xuXG4vLyBEZXByZWNhdGVkIGFzIG9mIHYzLjAuMSAoaGFzIGJlZW4gcmVtb3ZlZCBpbiB2NClcbi5oaWRlLXRleHQoKSB7XG4gIGZvbnQ6IH5cIjAvMFwiIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG5cbi8vIE5ldyBtaXhpbiB0byB1c2UgYXMgb2YgdjMuMC4xXG4udGV4dC1oaWRlKCkge1xuICAuaGlkZS10ZXh0KCk7XG59XG4iLCIvL1xuLy8gUmVzcG9uc2l2ZTogVXRpbGl0eSBjbGFzc2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIElFMTAgaW4gV2luZG93cyAoUGhvbmUpIDhcbi8vXG4vLyBTdXBwb3J0IGZvciByZXNwb25zaXZlIHZpZXdzIHZpYSBtZWRpYSBxdWVyaWVzIGlzIGtpbmQgb2YgYm9ya2VkIGluIElFMTAsIGZvclxuLy8gU3VyZmFjZS9kZXNrdG9wIGluIHNwbGl0IHZpZXcgYW5kIGZvciBXaW5kb3dzIFBob25lIDguIFRoaXMgcGFydGljdWxhciBmaXhcbi8vIG11c3QgYmUgYWNjb21wYW5pZWQgYnkgYSBzbmlwcGV0IG9mIEphdmFTY3JpcHQgdG8gc25pZmYgdGhlIHVzZXIgYWdlbnQgYW5kXG4vLyBhcHBseSBzb21lIGNvbmRpdGlvbmFsIENTUyB0byAqb25seSogdGhlIFN1cmZhY2UvZGVza3RvcCBXaW5kb3dzIDguIExvb2sgYXRcbi8vIG91ciBHZXR0aW5nIFN0YXJ0ZWQgcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGJ1Zy5cbi8vXG4vLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBmb2xsb3dpbmc6XG4vL1xuLy8gSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTA0OTdcbi8vIERvY3M6IGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2dldHRpbmctc3RhcnRlZC8jc3VwcG9ydC1pZTEwLXdpZHRoXG4vLyBTb3VyY2U6IGh0dHA6Ly90aW1rYWRsZWMuY29tLzIwMTMvMDEvd2luZG93cy1waG9uZS04LWFuZC1kZXZpY2Utd2lkdGgvXG4vLyBTb3VyY2U6IGh0dHA6Ly90aW1rYWRsZWMuY29tLzIwMTIvMTAvaWUxMC1zbmFwLW1vZGUtYW5kLXJlc3BvbnNpdmUtZGVzaWduL1xuXG5ALW1zLXZpZXdwb3J0IHtcbiAgd2lkdGg6IGRldmljZS13aWR0aDtcbn1cblxuXG4vLyBWaXNpYmlsaXR5IHV0aWxpdGllc1xuLy8gTm90ZTogRGVwcmVjYXRlZCAudmlzaWJsZS14cywgLnZpc2libGUtc20sIC52aXNpYmxlLW1kLCBhbmQgLnZpc2libGUtbGcgYXMgb2YgdjMuMi4wXG4udmlzaWJsZS14cyxcbi52aXNpYmxlLXNtLFxuLnZpc2libGUtbWQsXG4udmlzaWJsZS1sZyB7XG4gIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xufVxuXG4udmlzaWJsZS14cy1ibG9jayxcbi52aXNpYmxlLXhzLWlubGluZSxcbi52aXNpYmxlLXhzLWlubGluZS1ibG9jayxcbi52aXNpYmxlLXNtLWJsb2NrLFxuLnZpc2libGUtc20taW5saW5lLFxuLnZpc2libGUtc20taW5saW5lLWJsb2NrLFxuLnZpc2libGUtbWQtYmxvY2ssXG4udmlzaWJsZS1tZC1pbmxpbmUsXG4udmlzaWJsZS1tZC1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1sZy1ibG9jayxcbi52aXNpYmxlLWxnLWlubGluZSxcbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnZpc2libGUteHMge1xuICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLXhzLWJsb2NrIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUteHMtaW5saW5lIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXhzLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiBAc2NyZWVuLXhzLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi52aXNpYmxlLXNtIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1zbS1pbmxpbmUge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1zbS1pbmxpbmUtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi52aXNpYmxlLW1kIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1tZC1pbmxpbmUge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1tZC1pbmxpbmUtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLW1kLW1heCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbi52aXNpYmxlLWxnIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS1sZy1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLWxnLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaGlkZGVuLXhzIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IEBzY3JlZW4teHMtbWF4KSB7XG4gICAgLnJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCk7XG4gIH1cbn1cbi5oaWRkZW4tc20ge1xuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG4uaGlkZGVuLW1kIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1tYXgpIHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuLmhpZGRlbi1sZyB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xuICAgIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuICB9XG59XG5cblxuLy8gUHJpbnQgdXRpbGl0aWVzXG4vL1xuLy8gTWVkaWEgcXVlcmllcyBhcmUgcGxhY2VkIG9uIHRoZSBpbnNpZGUgdG8gYmUgbWl4aW4tZnJpZW5kbHkuXG5cbi8vIE5vdGU6IERlcHJlY2F0ZWQgLnZpc2libGUtcHJpbnQgYXMgb2YgdjMuMi4wXG4udmlzaWJsZS1wcmludCB7XG4gIC5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpO1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLnJlc3BvbnNpdmUtdmlzaWJpbGl0eSgpO1xuICB9XG59XG4udmlzaWJsZS1wcmludC1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaGlkZGVuLXByaW50IHtcbiAgQG1lZGlhIHByaW50IHtcbiAgICAucmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoKTtcbiAgfVxufVxuIiwiLy8gUmVzcG9uc2l2ZSB1dGlsaXRpZXNcblxuLy9cbi8vIE1vcmUgZWFzaWx5IGluY2x1ZGUgYWxsIHRoZSBzdGF0ZXMgZm9yIHJlc3BvbnNpdmUtdXRpbGl0aWVzLmxlc3MuXG4ucmVzcG9uc2l2ZS12aXNpYmlsaXR5KCkge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB0YWJsZSYgIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0ciYgICAgIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGgmLFxuICB0ZCYgICAgIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG59XG5cbi5yZXNwb25zaXZlLWludmlzaWJpbGl0eSgpIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVTUyBWQVJJQUJMRVNcbioqICAgICAgICAgICAgICAgIFRoaXMgc3R5bGVzaGVldCBzaG91bGQgb25seSBjb250YWluIHZhcmlhYmxlcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBwYWxldHRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWdyZWVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgI2RhZTE3MztcbkBtb3JhbmdlOiAgICAgICAgICAgICAgICAgICAgICAgICAjZDY3ODJiO1xuQG1kYXJrYmx1ZTogICAgICAgICAgICAgICAgICAgICAgICMyMzI1Mjg7XG5AbWdyZXk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NjY2NjYztcbkBtbGlnaHRncmV5OiAgICAgICAgICAgICAgICAgICAgICAjOTk5OTk5O1xuQG1kYXJrYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICMxNjE2MUI7XG5AbWJsdWU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIzM1OGZkYztcbkBkYXJrZXJibHVlOiAgICAgICAgICAgICAgICAgICAgICAjMTYyNTJjO1xuQGRhcmtibHVlOiAgICAgICAgICAgICAgICAgICAgICAgICMxNzI2MmQ7XG5AZGFya2VyYmx1ZTogICAgICAgICAgICAgICAgICAgICAgZGFya2VuKEBkYXJrYmx1ZSw0JSk7XG5AZGFya2JsdWUyOiAgICAgICAgICAgICAgICAgICAgICAgIzI1MzMzYTtcbkBtZWRpdW1ibHVlOiAgICAgICAgICAgICAgICAgICAgICAjNjI2ZDZkO1xuQGxpZ2h0Ymx1ZTogICAgICAgICAgICAgICAgICAgICAgICNhYmM0YzY7XG5AcGluazogICAgICAgICAgICAgICAgICAgICAgICAgICAgI2VkMWU3OTtcbkByZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjRkYwMDAwO1xuXG5AZmx1cm9ibHVlOiAgICAgICAgICAgICAgICAgICAgICAgIzAwZTVmMDtcbkBmbHVyb29yYW5nZTogICAgICAgICAgICAgICAgICAgICAjZmY3MzAwO1xuQGZsdXJlb3llbGxvdzogICAgICAgICAgICAgICAgICAgICNmYmQ5MjU7XG5AZmx1cm9ncmVlbjogICAgICAgICAgICAgICAgICAgICAgIzQ3ZmYwMDtcbkBmbHVyb3Bpbms6ICAgICAgICAgICAgICAgICAgICAgICAjZTAxZjc0O1xuXG5AZGFya2dyZWVuOiAgICAgICAgICAgICAgICAgICAgICAgIzMzZDM3NTtcbkBncmVlbjogICAgICAgICAgICAgICAgICAgICAgICAgICAjZDFlNTVjO1xuQHB1cnBsZTogICAgICAgICAgICAgICAgICAgICAgICAgICM5NzdiZjA7XG5AbGlnaHRncmF5OiAgICAgICAgICAgICAgICAgICAgICAgI2U2ZWRlZTtcbkBibHVlZ3JheTogICAgICAgICAgICAgICAgICAgICAgICAjYWJjNGM2O1xuQGJsdWVncmF5MjogICAgICAgICAgICAgICAgICAgICAgICMzNTQ2NGM7XG5cbkBicmFuZC1zdWNjZXNzOiAgICAgICAgICAgICAgICAgIEBmbHVyb2JsdWU7XG5AYnJhbmQtd2FybmluZzogICAgICAgICAgICAgICAgICBAcHVycGxlO1xuQGJyYW5kLWluZm86ICAgICAgICAgICAgICAgICAgICAgQGZsdXJvYmx1ZTtcbkBicmFuZC1kYW5nZXI6ICAgICAgICAgICAgICAgICAgIEBmbHVyb3Bpbms7XG5AYnJhbmQtcHJpbWFyeTogICAgICAgICAgICAgICAgICBAZmx1cm9ibHVlO1xuXG5AaW1wYWMtcG9zaXRpdmU6ICAgICAgICAgICAgICAgICBncmVlbjtcbkBpbXBhYy1uZWdhdGl2ZTogICAgICAgICAgICAgICAgIEBwaW5rO1xuQGltcGFjLXBvc2l0aXZlMjogICAgICAgICAgICAgICAgIzNmYzRmZjsgICAgIC8vIGxpZ2h0ZXIgY29sb3JzIHVzZWQgZm9yIHBheWFibGVzLXJlY2VpdmFibGVzXG5AaW1wYWMtbmVnYXRpdmUyOiAgICAgICAgICAgICAgICAjMWRlOWI2OyAgICAgLy8gbGlnaHRlciBjb2xvcnN1c2VkIGZvciBwYXlhYmxlcy1yZWNlaXZhYmxlc1xuXG4vLyBTcGFjZXJzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkB0b3AtYnVmZmVyLWhlaWdodDogQGdyaWQtZ3V0dGVyLXdpZHRoLzI7IC8vIGJvb3RzdHJhcCB2YXJpYWJsZVxuLnRvcC1idWZmZXItMSB7IG1hcmdpbi10b3A6IEB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItMiB7IG1hcmdpbi10b3A6IDIqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci0zIHsgbWFyZ2luLXRvcDogMypAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTQgeyBtYXJnaW4tdG9wOiA0KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItNSB7IG1hcmdpbi10b3A6IDUqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci02IHsgbWFyZ2luLXRvcDogNipAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTcgeyBtYXJnaW4tdG9wOiA3KkB0b3AtYnVmZmVyLWhlaWdodDsgfVxuLnRvcC1idWZmZXItOCB7IG1hcmdpbi10b3A6IDgqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG4udG9wLWJ1ZmZlci05IHsgbWFyZ2luLXRvcDogOSpAdG9wLWJ1ZmZlci1oZWlnaHQ7IH1cbi50b3AtYnVmZmVyLTEwIHsgbWFyZ2luLXRvcDogMTAqQHRvcC1idWZmZXItaGVpZ2h0OyB9XG5cbi8vIERhc2hib2FyZFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGltcGFjLWRhc2hib2FyZC1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAgNTBweDtcbkBpbXBhYy1kYXNoYm9hcmQtc20tcGFkZGluZy10b3A6ICAgICAgICAgICAgICAgIEBpbXBhYy1kYXNoYm9hcmQtcGFkZGluZy10b3AgKiAzO1xuQGltcGFjLWRhc2hib2FyZC1tYXJnaW4tbGVmdDogICAgICAgICAgICAgICAgICAgMTAwcHg7XG5AaW1wYWMtZGFzaGJvYXJkLWJvcmRlcnMtY29sb3I6ICAgICAgICAgICAgICAgICBAbGlnaHRibHVlO1xuXG4vLyBUaXRsZVxuQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgQHB1cnBsZTtcbkBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY29sb3I6ICAgICAgICAgICAgIEBkYXJrYmx1ZTtcbkBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY3JlYXRlLWNvbG9yOiAgICAgIHdoaXRlO1xuQGltcGFjLWRhc2hib2FyZC1zb3VyY2UtY29sb3I6ICAgICAgICAgICAgICAgICAgQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jb2xvcjtcbkBpbXBhYy1kYXNoYm9hcmQtYnV0dG9ucy1ib3JkZXItcmFkaXVzOiAgICAgICAgIDRweDtcblxuLy9JbmZvLXRleHRcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgIHdoaXRlO1xuQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtYmFja2dyb3VuZC1jb2xvcjogICAgcmdiYSgyMywzOCw0NSwgMC43KTtcbkBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtc2l6ZTogICAgICAgICAgIDI1cHg7XG5AaW1wYWMtZGFzaGJvYXJkLWluZm8tdGV4dC1mb250LXdlaWdodDogICAgICAgICAzMDA7XG5cbi8vIERhc2hib2FyZCBTZWxlY3RvclxuICAvLyBUYWJzXG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLWJvcmRlcjogICAgICAgICAgICAgICAxcHggc29saWQgQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLW1hcmdpbjogICAgICAgICAgMCAycHggMCAwO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLXBhZGRpbmc6ICAgICAgICAgMTBweCA4cHggMTBweCAxNXB4O1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWNvbG9yOiAgICAgICAgICAgYmxhY2s7XG5AaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWNvbG9yOiAgICBAcHVycGxlO1xuXG4vLyBXaWRnZXQgc2VsZWN0b3JcbkBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnOiAgICAgICAgICAgICMyMzM4NDU7XG5AaW1wYWMtZGFzaGJvYXJkLXdpZGdldC1zZWxlY3Rvci10ZXh0LWNvbG9yOiAgICB3aGl0ZTtcbkBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXdpZGdldC1pdGVtLW1pbi1oZWlnaHQ6IDBweDtcblxuLy8gV2lkZ2V0cyBjb250YWluZXJcbkBpbXBhYy1wbGFjZWhvbGRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgIDJweCBkYXNoZWQgQGltcGFjLWRhc2hib2FyZC1ib3JkZXJzLWNvbG9yO1xuQGltcGFjLXdpZGdldHMtY29udGFpbmVyLXNpZGUtcGFkZGluZzogICAgICAgICAgMHB4O1xuQGltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzOiAgICAgICAgICAgICAgICAgMTJweDtcbkBpbXBhYy1taW5pbXVtLXdpZGdldC1zaXplOiAgICAgICAgICAgICAgICAgICAgIDI1MHB4O1xuQGltcGFjLWJpZy13aWRnZXQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgNTY1cHg7XG5cbi8vIEJ1dHRvbnNcbkBpbXBhYy1idG4tc2hhZGRlZC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgQGRhcmtibHVlO1xuQGltcGFjLWJ0bi1zaGFkZGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAbWVkaXVtYmx1ZTtcblxuLy8gRGFzaGJvYXJkIE1vZGFsc1xuQGltcGFjLWRhc2hib2FyZC1sb2FkaW5nLXNwaW5uZXI6ICAgICAgICAgICAgICAgd2hpdGU7XG5AaW1wYWMtZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI5LCAxOTcsIDU3LCAwLjYyKTtcblxuLy8gV2lkZ2V0c1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2xvYmFsXG5AaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBwdXJwbGU7XG5AaW1wYWMtd2lkZ2V0LWJ1dHRvbnMtY29sb3I6ICAgICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGlsZS1zZWxlY3RlZC1jb2xvcjogICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICB3aGl0ZTtcbkBpbXBhYy13aWRnZXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgc29saWQgMXB4IGRhcmtlbihAbGlnaHRncmF5LDEwJSk7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICM1QjY2Njc7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtOiAgICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDI1JSk7XG5AaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQ6ICAgICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLDQwJSk7IC8vI2FjYjBiMVxuQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yOiAgICAgICAgICAgICAgICAgICBsaWdodGVuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodCwxMCUpOyAvLyNmM2Y0ZjRcbkBpbXBhYy13aWRnZXQtc2Nyb2xsYmFyLWNvbG9yOiAgICAgICAgICAgICAgICAgIzIzMzg0NTtcbkBpbXBhYy13aWRnZXQtbG9hZGluZy1zcGlubmVyOiAgICAgICAgICAgICAgICAgIzY3QkJFOTtcbkBpbXBhYy13aWRnZXQtcmV2ZXJzZS1jb2xvcjogICAgICAgICAgICAgICAgICAgIzFFMzAzQjtcbkBpbXBhYy13aWRnZXQtbWVudXMtaG92ZXItYmFja2dyb3VuZC1jb2xvcjogICAgI2VjZWNlYztcblxuLy8gVGl0bGVcbkBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgZGFya2VuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvciw1JSk7XG5AaW1wYWMtd2lkZ2V0LXRpdGxlLWJnOiAgICAgICAgICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGl0bGUtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjtcbkBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgdXBwZXJjYXNlO1xuQGltcGFjLXdpZGdldC10aXRsZS10ZXh0LXNpemU6ICAgICAgICAgICAgICAgICAxMnB4O1xuQGltcGFjLXdpZGdldC10aXRsZS1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICA1cHggNXB4IDBweCAwcHg7XG5AaW1wYWMtd2lkZ2V0LXRvcC1idXR0b25zLWNvbG9yOiAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDtcblxuLy8gQ29udGVudFxuQGltcGFjLXdpZGdldC1jb250ZW50LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAwcHggMHB4IDVweCA1cHg7XG5AaW1wYWMtd2lkZ2V0LWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0OiAgICAgIDIwMHB4O1xuXG4vLyBTZXR0aW5nc1xuLy8gUGFyYW0gc2VsZWN0b3JcbkBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3I6ICAgICAgICAgICAgQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuLy8gSGlzdCBNb2RlIENob3NlclxuQGltcGFjLXdpZGdldC1oaXN0LXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICB1cHBlcmNhc2U7XG5AaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1zaXplOiAgICAgICAgICAgICAgICAgIDEycHg7XG5AaW1wYWMtd2lkZ2V0LWhpc3QtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1saWdodDtcbi8vIFBhcmFtcyBwaWNrZXJcbkBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZzogICAgICAgICAgICAgICAgQGltcGFjLXdpZGdldC1yZXZlcnNlLWNvbG9yO1xuQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLXVuY2hlY2tlZC1iZzogICAgICAjYzJjNGM0O1xuLy8gTGltaXQgZW50cmllc1xuQGltcGFjLXdpZGdldC1saW1pdC1lbnRyaWVzLWNvbG9yOiAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LXJldmVyc2UtY29sb3I7XG5cbi8vIEdsb2JhbHMgYW5kIE1peGluc1xuQGltcGFjLXdpZGdldC1zZWxlY3RhYmxlLWNvbG9yOiAgICAgICAgICAgICAgICBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG5cbi8vIEVkaXQgc2V0dGluZ3NcbkBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgZGFya2VuKEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvciw2JSk7XG5AaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvci1saWdodDogICAgICAgICAgICAgIGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1zdWItYmctY29sb3IsNSUpOyAvL2YzZjRmNFxuXG4vLyBBY2NvdW50cyBDb21wYXJpc29uXG5AaW1wYWMtd2lkZ2V0LWFjY291bnRzLWNvbXBhcmlzb24tbGluZXMtY29udGFpbmVyLW1heC1oZWlnaHQ6IDIyMHB4O1xuXG4vLyBTYWxlcyBicmVhay1ldmVuXG5AaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tYmc6ICAgICAgICAgICAgIHJnYigyNSw0MCw0OSk7XG5AaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tdGV4dC1jb2xvcjogICAgICMxZGU5YjY7XG5cbi8vIEtQSXNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEtwaSBiYXJcbkBrcGlzLWJhci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgd2hpdGU7XG5Aa3Bpcy1iYXItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgIDBweCAxcHggOHB4IC00cHg7XG4vLyBLcGlcbkBrcGktYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGU7XG5Aa3BpLXRyaWdnZXJlZC1ib3JkZXItYm90dG9tOiAgICAgICAgICAgICAgICAgIDRweCBzb2xpZCBAYnJhbmQtZGFuZ2VyO1xuQGtwaS1tYXgtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NXB4O1xuQGtwaS1lZGl0aW5nLW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICA5MHB4OyAvLyBoZWlnaHQgdG8gYmUgYWRkZWQgdG8gdGhlIEBrcGktbWF4LWhlaWdodCB3aGVuIGluIGVkaXRpbmcgbW9kZS5cbkBrcGktY29udGVudC1lZGl0aW5nLWhlaWdodC1idWZmZXI6ICAgICAgICAgICAgNXB4OyAvLyBoZWlnaHQgdG8gYmUgbWludXNlZCBmcm9tIHRoZSBAa3BpLWVkaXRpbmctbWF4LWhlaWdodCB0byBldmVuIHRoZSBrcGkgaGVpZ2h0IGFuZCB0aGUga3BpIGNvbnRlbnQgaGVpZ2h0LlxuLy8gS3BpIHRvcC1saW5lXG5Aa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgIGdyZXk7XG5Aa3BpLXRvcC1saW5lLXRyaWdnZXJlZC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgIGJsYWNrO1xuQGtwaS10b3AtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICA3cHg7XG5Aa3BpLXRvcC1saW5lLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG4vLyBrcGkgY29udGVudFxuQGtwaS10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmV5O1xuQGtwaS10ZXh0LXRyaWdnZXJlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICBibGFjaztcbkBrcGktaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JleTtcbkBrcGktaWNvbi10cmlnZ2VyZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgYmxhY2s7XG4vLyBrcGkgc2V0dGluZ3NcbkBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgQG1ibHVlO1xuQGtwaS1zZXR0aW5ncy1lcnJvci1jb2xvcjogICAgICAgICAgICAgICAgICAgICBAYnJhbmQtZGFuZ2VyO1xuQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAjNGM0NzQ5O1xuQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZC1ob3ZlcjogICAgICAgICBkYXJrZW4oQGJyYW5kLWRhbmdlciwgNSUpO1xuQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZDogICAgICAgICAjNGM0NzQ5O1xuQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZC1ob3ZlcjogICBAbWJsdWU7XG5Aa3BpLW5lZ2F0aXZlLWFsZXJ0LWxhYmVsLWJhY2tncm91bmQtY29sb3I6ICAgIGxpZ2h0ZW4oI2ZmMDAwMCwgMzAlKTtcblxuLy8gV2lkZ2V0cyBwb3AtdXBzXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I6ICAgICMxOTI4MzE7XG5AaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcjogIHJnYigyNDQsIDI0OCwgMjQ5KTtcbkBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtdGV4dC1jb2xvcjogICAgICAgICAgd2hpdGU7XG5AaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtdGV4dC1jb2xvcjogICAgICAgIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcblxuLy8gRGVtbyBkYXRhIG1vZGVcbkBpbXBhYy13aWRnZXQtZGVtby1kYXRhLWxpbmstY29sb3I6ICAgICAgICAgICAgQG1ncmVlbjtcbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JBTCBTVFlMRVNcbioqICAgICAgICBUaGlzIHN0eWxlc2hlZXQgc2hvdWxkIG9ubHkgY29udGFpbiBzdHlsZXMgYXBwbGllZCBnbG9iYWwgb3IgaW5cbioqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgb3IgbW9yZSBjb21wb25lbnRzLlxuLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5cbi8vIE5vdCBpZGVhbDogaW50ZW5kcyB0byBmb3JjZSBhIHNjcm9sbGJhciBvbiB0aGUgd2luZG93IChub3Qgb24gdGhlIGJvZHkpLFxuLy8gc28gdGhhdCB0aGUgdG9vbHRpcHMgYXBwZW5kZWQgdG8gYm9keSBhcmUgbm90IG1ha2luZyB0aGUgc2NyZWVuIGZsaWNrZXJpbmcuXG4vLyAoc2VlIHdoZW4gdGhlcmUgaXMgb25seSAxIGludm9pY2VzIGxpc3Qgd2lkZ2V0IG9uIHRoZSBkYXNoYm9hcmQpXG4vLyBJdCBpcyBiZXR0ZXIgaWYgdGhlIHRvb2x0aXBzIGNhbiBiZSBhcHBlbmRlZCB0byBib2R5IGJlY2F1c2Ugb3RoZXJ3aXNlIGl0J3Ncbi8vIG1lc3NpbmcgdGhlIGFsdGVybmF0ZS1iZygpIG1peGluZyAoYnkgYWRkaW5nIGEgY2hpbGQgdG8gdGhlIHBhcmVudCBlbGVtZW50KVxuYm9keSB7XG4gIGhlaWdodDogMTAxJSAhaW1wb3J0YW50O1xufVxuXG4uYW5hbHl0aWNzIHtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tIFRpdGxlc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBoMiB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogMHB4O1xuICAgIC5sZWZ0LXRoaW4oKTtcbiAgfVxuXG4gIGg0IHtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQ29sb3JzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5wb3NpdGl2ZSwuZ3JlZW4ge1xuICAgIGNvbG9yOiBAaW1wYWMtcG9zaXRpdmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5uZWdhdGl2ZSwucmVkIHtcbiAgICBjb2xvcjogQGltcGFjLW5lZ2F0aXZlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucG9zaXRpdmUyIHtcbiAgICBjb2xvcjogQGltcGFjLXBvc2l0aXZlMiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm5lZ2F0aXZlMiB7XG4gICAgY29sb3I6IEBpbXBhYy1uZWdhdGl2ZTIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQmFzZSBlbGVtZW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBhIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICB9XG5cbiAgcHJlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIG1hcmdpbjogMXB4IDBweCA4cHggMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQsIGtwaXMtYmFyIC5rcGkge1xuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgd2lkdGg6IDZweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNjcm9sbGJhci1jb2xvciwzNSUpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2Nyb2xsYmFyLWNvbG9yLDQwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLSBDb21tb24gYWRqdXN0bWVudHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC5ub3BhZGRpbmcge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAubm9tYXJnaW4ge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0gQ3VzdG9tIGVsZW1lbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC5idG4uYnRuLXNoYWRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWJ0bi1zaGFkZGVkLWJnO1xuICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtlbihAaW1wYWMtYnRuLXNoYWRkZWQtYmcsNSUpO1xuICAgIGNvbG9yOiBAaW1wYWMtYnRuLXNoYWRkZWQtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWJ0bi1zaGFkZGVkLWNvbG9yLDUlKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWJ0bi1zaGFkZGVkLWJnLDUlKTtcbiAgICB9XG4gIH1cblxuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgpO1xuICB9XG5cbiAgLmN1cnJlbmN5IHtcbiAgICAuY2VudGVyLXRoaW4oKTtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgfVxuXG4gIC5sZWdlbmQge1xuICAgIC5jZW50ZXItc21hbGwoKTtcbiAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQ7XG4gIH1cblxuICAubG9hZGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGkge1xuICAgICAgLmxvYWRlci1zdHlsZSgpO1xuICAgIH1cbiAgICBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICBib3JkZXItbGVmdDogc29saWQgMXB4ICNlNmU2ZTY7XG4gIH1cblxuICAuc2VsZWN0b3Ige1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAbWVkaXVtYmx1ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgfVxuXG4gIC50aWxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ3LDI0NywyNDcpO1xuICAgIGJveC1zaGFkb3c6IDBweCA3cHggMTBweCAtN3B4ICMxNzI2MmQ7XG4gICAgaGVpZ2h0OiA0NXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oI0YxRjlGRiwgMyUpO1xuICAgIH1cbiAgICAuY29sb3JlZC1hcmVhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzRkM0RkY7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgbWluLXdpZHRoOiA4JTtcbiAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRpbGUtc2VsZWN0ZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICAgIC5tYWluLXRleHQge1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIHBhZGRpbmc6IDIwcHggMHB4IDBweCA1cHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gIH1cblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtd2lkZ2V0LWxpbmVzLWNvbnRhaW5lci1tYXgtaGVpZ2h0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmc6IDBweCAxNXB4O1xuXG4gICAgLnJvdy53aWRnZXQtbGluZSB7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICBjb2xvcjogQG1lZGl1bWJsdWU7XG5cbiAgICAgICYuaGVhZGVyIHtcbiAgICAgICAgLmZvbnQoMTJweCw1MDAsQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgICAgbWFyZ2luOiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgICAgICBwYWRkaW5nOiAycHg7XG5cbiAgICAgICAgJiA+IFtjbGFzcyo9J2NvbC0nXSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogM3B4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGkuZmEge1xuICAgICAgICBtaW4td2lkdGg6IDEycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJvdyAuZGFzaGVkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgICAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICB9XG5cbiAgICAucm93LmxpbmVzLWdyb3VwIHtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgIH1cbiAgfVxufVxuXG4udmVydGljYWwtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4uaG9yaXpvbnRhbC1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG5cbi8vIFRoZSB0b29sdGlwcyBzaG91bGQgYmUgYXBwZW5kIHRvIGJvZHlcbi50b29sdGlwLmltcGFjLXdpZGdldHMtdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQG1kYXJrYmx1ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBzdHJvbmcge1xuICAgIGNvbG9yOiBAbWdyZWVuO1xuICB9XG59XG5cbi5zb3J0YWJsZS10aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGl2IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0gQm9vdHN0cmFwIG92ZXJyaWRlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgJjpmb2N1cyB7IGJvcmRlci1jb2xvcjogQGJyYW5kLWRhbmdlciB9XG59XG5cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiBAYnJhbmQtc3VjY2VzcztcbiAgJjpmb2N1cyB7IGJvcmRlci1jb2xvcjogQGJyYW5kLXN1Y2Nlc3MgfVxufVxuXG4vLyByZW1vdmUgZ3V0dGVycyBmcm9tIEJvb3N0cmFwIHJvd1xuLnJvdy5uby1ndXR0ZXJzIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8gcmVtb3ZlIGd1dHRlcnMgZnJvbSBCb29zdHJhcCBjb2x1bW5cbltjbGFzc149XCJjb2wtXCJdLm5vLWd1dHRlcnMsXG5bY2xhc3MqPVwiIGNvbC1cIl0ubm8tZ3V0dGVycyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbiIsIi5mb250KEBzaXplLEB3ZWlnaHQsQGNvbG9yKSB7XG4gIGZvbnQtd2VpZ2h0OkB3ZWlnaHQ7XG4gIGZvbnQtc2l6ZTpAc2l6ZTtcbiAgY29sb3I6QGNvbG9yO1xufVxuXG4uY2VudGVyLWJvbGQgKEBtYXJnaW4tdG9wOiAzMHB4KSB7XG4gIC5mb250KDIycHgsIDkwMCwgQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiBAbWFyZ2luLXRvcDtcbn1cblxuLmNlbnRlci10aGluICgpIHtcbiAgLmZvbnQoMTZweCwgMzAwLCBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3IpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jZW50ZXItc21hbGwgKCkge1xuICAuZm9udCgxMnB4LCAzMDAsIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxlZnQtdGhpbiAoQG1hcmdpbi10b3A6IDBweCkge1xuICAuZm9udCgxNHB4LCAzMDAsIEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi10b3A6IEBtYXJnaW4tdG9wO1xufVxuXG4ud2lkZ2V0LWhlaWdodCAoQGhlaWdodDogQGltcGFjLW1pbmltdW0td2lkZ2V0LXNpemUpIHtcbiAgbWluLWhlaWdodDogQGhlaWdodDtcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XG4gICAgaGVpZ2h0OiBAaGVpZ2h0O1xuICAgIC5jaGFydC1jb250YWluZXIge1xuICAgICAgbWF4LXdpZHRoOiBAaGVpZ2h0ICsgMjBweDtcbiAgICAgIG1heC1oZWlnaHQ6IEBoZWlnaHQgLSAxMjVweDtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLnNob3J0LXdpZGdldCAoKSB7XG4gIC53aWRnZXQtaGVpZ2h0KCk7XG4gIC5lZGl0IHtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtbWluaW11bS13aWRnZXQtc2l6ZSAtIDIwcHg7XG4gIH1cbn1cblxuLnRhbGwtd2lkZ2V0ICgpIHtcbiAgLndpZGdldC1oZWlnaHQoQGltcGFjLWJpZy13aWRnZXQtc2l6ZSk7XG4gIC5lZGl0IHtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtYmlnLXdpZGdldC1zaXplIC0gMjBweDtcbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICAuc2Nyb2xsYWJsZShoaWRkZW4pO1xuICAgIH1cbiAgfVxufVxuXG4uc2Nyb2xsYWJsZSAoQHNjcm9sbC1tb2RlOiBhdXRvKSB7XG4gIG92ZXJmbG93LXk6IEBzY3JvbGwtbW9kZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4uc2VsZWN0YWJsZSAoKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAuc2VsZWN0aW9uLXRhZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcmlnaHQ6IDBweDtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMjlweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXNlbGVjdGFibGUtY29sb3IsIDIyJSk7XG4gIH1cbiAgJi5uby1zZWxlY3Qge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICAmOmhvdmVyIHsgY29sb3I6IEBtZWRpdW1ibHVlOyB9XG4gIH1cbn1cblxuLmFsdGVybmF0ZS1iZyAoQGV2ZW4tY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yKSB7XG4gICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZXZlbi1jb2xvcjtcbiAgfVxuICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gIH1cbn1cblxuLmVkaXQtcGFuZWwtc3R5bGUoKSB7XG4gIC5zY3JvbGxhYmxlKCk7XG4gIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gIHBhZGRpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuXG4gIC5ib3R0b20tYnV0dG9ucyB7XG4gICAgLmJ0biB7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIHBhZGRpbmc6IDNweCAxM3B4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgICAgJi5idG4tZGVmYXVsdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMmM0YzQ7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IGRhcmtlbigjYzJjNGM0LDEwJSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggZGFya2VuKCNjMmM0YzQsMjAlKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oI2MyYzRjNCwxMCUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaDQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAuZm9udCgxMnB4LG5vcm1hbCxAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQpO1xuICB9XG5cbiAgLnBhcnQge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXN1Yi1iZy1jb2xvci1saWdodDtcbiAgICAvLyBjb2xvcjogIzYyNmQ2ZDtcbiAgICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWJvcmRlcnMtY29sb3I7XG5cbiAgICBoNSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBwYWRkaW5nOiAwcHggMTVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAuZm9udCgxMnB4LG5vcm1hbCxAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbGlnaHQpO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gICAgICBtYXJnaW46IDBweDtcbiAgICAgIGJvcmRlcjogc29saWQgMXB4ICNhY2IwYjE7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICM3MjcyOGI7XG4gICAgfVxuICB9XG59XG5cbi5sb2FkZXItc3R5bGUoQGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxvYWRpbmctc3Bpbm5lcikge1xuICBjb2xvcjogQGNvbG9yO1xufVxuXG4uY29sdW1uLWd1dHRlcihAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcGFkZGluZy1sZWZ0OiBAZ3V0dGVyO1xuICBwYWRkaW5nLXJpZ2h0OiBAZ3V0dGVyO1xufVxuXG4ud2lkZ2V0LXBvcHVwKCkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS10ZXh0LWNvbG9yO1xuICBcbiAgLm92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IH5cImNhbGMoMTAwJSAtIDRweClcIjtcbiAgICB3aWR0aDogflwiY2FsYygxMDAlIC0gNHB4KVwiO1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDJweDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgei1pbmRleDogNTtcbiAgfVxuXG4gIC5tZXNzYWdlIHtcbiAgICB6LWluZGV4OiA2O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB0b3A6IDQ1cHg7XG4gICAgbGVmdDogNyU7XG4gICAgd2lkdGg6IDg2JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IDBweDtcblxuICAgIC50aXRsZSB7XG4gICAgICBwYWRkaW5nOiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS10ZXh0LWNvbG9yO1xuICAgICAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtZWRpYSBwcmludCB7XG4gIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OyB9XG4gIC5hbmFseXRpY3Mge1xuICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgICAjbW9kdWxlX19kYXNoYm9hcmQtc2VsZWN0b3IgLnRpdGxlLWNvbnRhaW5lciB7IG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgICAud2lkZ2V0LWl0ZW0ge1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgLmNvbnRlbnQgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgICAgIG1heC13aWR0aDogMjcwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgY2FudmFzIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAucmlnaHQtcGFuZWwge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgbWF4LWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICBjYW52YXMge1xuICAgICAgICAgICAgd2lkdGg6IDgwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiA4MCUgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgKiB7IHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxufVxuIiwiLy8gTk9URTogRG8gbm90IGFkZCBzdHlsZXMgZm9yIHRoZSBkZWZhdWx0IGJ1dHRvbiBvciBjdXN0b20gaW5qZWN0ZWQgYnV0dG9uSHRtbCBoZXJlLlxuLy8gICAgICAgdGhlIHBhcmVudCBzdHlsZXNoZWV0IG9mIHdoaWNoIHRoaXMgZGlyZWN0aXZlIGlzIGVtYmVkZGVkIHdpdGhpbiBzaG91bGRcbi8vICAgICAgIGNvbnRhaW4gdGhlIHN0eWxlcy5cblxuLy8gTW9kYWwga3BpcyBhbGVydHMgc2V0dGluZ3Ncbi5rcGktYWxlcnRzLXNldHRpbmdzIHtcbiAgLm1vZGFsLWhlYWRlciB7IGZvbnQtc2l6ZTogMjBweDsgfVxuXG4gIC5tb2RhbC1ib2R5IHtcbiAgICBsaW5lLWhlaWdodDogMjtcblxuICAgIHVsIHsgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4gICAgdWwgPiBsaS5saXN0LWdyb3VwLWl0ZW0ge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDZweCAxNXB4O1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvci1tZWRpdW07XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgLmFsZXJ0LXRvZ2dsZSB7XG4gICAgICAgICY6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogQG1ibHVlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2M0Y2FjYTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmEuZmEtdG9nZ2xlLW9uLCAuZmEuZmEtdG9nZ2xlLW9mZiB7XG4gICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICB1bC5yZWNpcGllbnRzLWxpc3Qge1xuICAgICAgaGVpZ2h0OiA3NXB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjNGNhY2E7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgaW5wdXQucmVjaXBpZW50LXNlYXJjaCB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICB1bC5hdmFpbGFibGUge1xuICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyB7XG4gIHBhZGRpbmctdG9wOiBAaW1wYWMtZGFzaGJvYXJkLXBhZGRpbmctdG9wO1xuICBtYXJnaW4tbGVmdDogQGltcGFjLWRhc2hib2FyZC1tYXJnaW4tbGVmdDtcblxuICAvLyBEZWZhdWx0IHNtYWxsIHNjcmVlbiBiZWhhdmlvdXIgdG8gYWxsb3cgZm9yIHRoZSBjb21tb24gdXNlIG9mIHRvcC1iYXJzXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gICAgcGFkZGluZy10b3A6IEBpbXBhYy1kYXNoYm9hcmQtc20tcGFkZGluZy10b3A7XG4gIH1cblxuICAmLnBkZi1tb2RlIHsgcGFkZGluZy10b3A6IDIwcHg7IH1cblxuICAmLnNob3ctZGhiIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgJi5oaWRlLWRoYiB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC8vIGNvbnRhaW5zIGN1c3RvbWlzYWJsZSBpbXBhYyBsb2dvLCBhbmQgaGVhZGluZyB0ZXh0LlxuICAjZGFzaGJvYXJkLWhlYWRpbmcge1xuICAgIGltZyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiAxNTBweDtcbiAgICAgICYucGRmLW1vZGU6aG92ZXIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICB9XG4gICAgLmNhcHRpb24ge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbWFyZ2luOiA1cHggMHB4O1xuICAgIH1cbiAgfVxuXG4gICNzdWItbWVudSB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBoMyB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIGNvbG9yOiAjMjMzODQ1O1xuICAgIH1cblxuICAgIC5mYS5mYS10aW1lcyB7XG4gICAgICBtYXJnaW46IDZweDtcbiAgICAgIGNvbG9yOiBsaWdodGVuKCMyMzM4NDUsIDE1JSk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgI3dpZGdldC1zZWxlY3RvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmc7XG4gICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLXRleHQtY29sb3I7XG4gICAgcGFkZGluZzogMHB4IDQ1cHggMTBweCA0NXB4O1xuICAgIG1hcmdpbjogMTBweCAtNDVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyAvKiBDaHJvbWUvU2FmYXJpICovXG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsgLyogRmlyZWZveCAqL1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgLyogSUUxMCsgKi9cbiAgICAvKiBSdWxlcyBiZWxvdyBub3QgaW1wbGVtZW50ZWQgaW4gYnJvd3NlcnMgeWV0ICovXG4gICAgLW8tdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIHBhZGRpbmc6IDAgMTVweCAxMHB4IDE1cHg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDE1cHggMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsNiUpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIHAuaW5zdHJ1Y3Rpb24ge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcbiAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAud2lkZ2V0LWFkZGVkLmJhZGdlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICAuZmEuY2xvc2Utc2VsZWN0b3Ige1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiBAbWxpZ2h0Z3JleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC50b3AtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbjogMTVweCAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi1oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnNlY3Rpb24tbGluZXMge1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcblxuICAgICAgcCB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLCAmLnNlbGVjdGVkIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsMyUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDYlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jYXRlZ29yaWVzLXNlY3Rpb24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDYlKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuXG4gICAgICAmID4gLnNlY3Rpb24tbGluZXMge1xuXG4gICAgICAgICYgPiBbY2xhc3MqPSdjb2wtJ106Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmc6IDNweCAxMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmUtaXRlbTpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDMlKTtcbiAgICAgICAgfVxuICAgICAgICAubGluZS1pdGVtLnNlbGVjdGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgLmJveC1zaGFkb3coLTJweCAycHggMTBweCAtNHB4IGJsYWNrKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYXJyb3ctaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAzM3B4O1xuICAgICAgICByaWdodDogLTExcHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgLnNxdWFyZSB7XG4gICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgcmlnaHQ6IDE3cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaS5mYS5mYS1jYXJldC1yaWdodCB7XG4gICAgICAgICAgZm9udC1zaXplOiA1MnB4O1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IC0xLjVweDtcbiAgICAgICAgICByaWdodDogMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLndpZGdldHMtc2VjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3ItYmcsMyUpO1xuICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG5cbiAgICAgICYgPiAuc2VjdGlvbi1oZWFkZXIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICB9XG5cbiAgICAgICYgPiAuc2VjdGlvbi1saW5lcyB7XG4gICAgICAgIHBhZGRpbmc6IDNweCAwcHg7XG5cbiAgICAgICAgLmZhLmZhLXBsdXMtY2lyY2xlIHtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IC5saW5lLWl0ZW1zLWdyaWQge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgIGhlaWdodDogMCU7XG5cbiAgICAgICAgICAmID4gLmdyaWQtaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEzcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgLy8gQXBwbGllcyBhIGZsZXgtYmFzaXMgb2YgMS8zIGZvciBlYWNoIGdyaWQgaXRlbSAoMyBjb2x1bW5zIHBlciByb3cpXG4gICAgICAgICAgICBmbGV4OiAwIDMxLjMzJTtcbiAgICAgICAgICAgIC8vIENyZWF0ZXMgYSBzbWFsbCBndXR0ZXIgYXJvdW5kIGVhY2ggZ3JpZCBpdGVtXG4gICAgICAgICAgICBtYXJnaW46IDAgMSU7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnO1xuICAgICAgICAgICAgbWluLWhlaWdodDogQGltcGFjLWRhc2hib2FyZC13aWRnZXQtc2VsZWN0b3Itd2lkZ2V0LWl0ZW0tbWluLWhlaWdodDtcblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcbiAgICAgICAgICAgICAgZmxleDogMCAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtd2lkZ2V0LXNlbGVjdG9yLWJnLDYlKTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcC5saW5lLWl0ZW0ge1xuICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmJvdHRvbSB7XG4gICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAmID4gLnN1Z2dlc3Rpb24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgYSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IEBmbHVyb2JsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZGFzaGJvYXJkLXNldHRpbmdzLXBhbmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICYgPiBkaXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAmID4gKiB7IG1hcmdpbjogMHB4IDNweDsgfVxuICAgIH1cbiAgICBzZWxlY3Qge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgcGFkZGluZy10b3A6IDFweDtcbiAgICB9XG4gIH1cblxuICAvLyBubyB3aWRnZXRzIC0gZW1wdHkgZGFzaGJvYXJkLlxuICAjbm8td2lkZ2V0cy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiAxNTBweDtcblxuICAgIC8vIGJhY2tncm91bmQgaW1hZ2UgYXNzZXRcbiAgICBpbWcuYmcge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLy8gbm8gd2lkZ2V0cyBtZXNzYWdlIHRoYXQgc2l0cyBhYm92ZSBpbWFnZSBhc3NldFxuICAgIC5pbXBhYy1pbmZvLW1lc3NhZ2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgIC5pbmZvLXRleHQge1xuICAgICAgICBmb250LXNpemU6IEBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IEBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWZvbnQtd2VpZ2h0O1xuICAgICAgICBwYWRkaW5nOjIwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDExNXB4O1xuICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1pbmZvLXRleHQtY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtaW5mby10ZXh0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAvLyBwYXJlbnQgZGl2IHNlY3Rpb24gZm9yIHdpZGdldHMgdG8gYmUgaG91c2VkLlxuICAjd2lkZ2V0cy1zZWN0aW9uIHtcbiAgICAvLyBjb250YWluZXIgZm9yIHdpZGdldHNcbiAgICAjd2lkZ2V0cy1jb250YWluZXIge1xuICAgICAgLy8gUXVpY2stZml4IHRvIGF2b2lkIHNjcmVlbiBmbG9ja2VyaW5nIHdoZW4gdG9vbHRpcHMgYXJlIGFwcGVuZGVkIHRvIGJvZHk6XG4gICAgICAvLyBtaW4taGVpZ2h0IHdpbGwgZm9yY2UgYSBzY3JvbGxiYXIgdG8gYXBwZWFyLi4uXG4gICAgICBtaW4taGVpZ2h0OiA3MDBweDtcbiAgICB9XG5cbiAgICAucGxhY2VIb2xkZXJCb3gge1xuICAgICAgbWFyZ2luOiBAaW1wYWMtcGFkZGluZy1iZXR3ZWVuLXdpZGdldHM7XG4gICAgICBoZWlnaHQ6IDI2N3B4O1xuICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBib3JkZXI6IEBpbXBhYy1wbGFjZWhvbGRlci1ib3JkZXI7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBkYXNoYm9hcmQgZmFpbGVkIHRvIGxvYWQgbWVzc2FnZS5cbi5hbmFseXRpY3MubG9hZC1mYWlsZWQge1xuXG4gIHAgeyBmb250LXNpemU6IDIycHg7IH1cblxuICAuc2Vjb25kLW1zZyB7XG4gICAgcCB7XG4gICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gVG9vbHRpcHMgYXJlIGFwcGVuZCB0byBib2R5XG4udG9vbHRpcC5pbXBhYy13aWRnZXQtc2VsZWN0b3ItdG9vbHRpcCAudG9vbHRpcC1pbm5lci5uZy1iaW5kaW5nIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZGhiLWNyZWF0ZS1tb2RhbCAuZGFzaGJvYXJkLWZvcm0ge1xuXG4gIC8vIEJldHRlciBhbGlnbnMgZm9ybSBsYWJlbHMgd2l0aCB0ZW1wbGF0ZXMgc2VjdGlvbiBsYWJlbFxuICAuY29sLXNtLTIuY29udHJvbC1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG4uaW1wYWMtd2lkZ2V0LXN1Z2dlc3Rpb24gLm1vZGFsLWJvZHkge1xuICBpbnB1dCx0ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29sb3I6IGJsYWNrO1xuICB9XG4gIHRleHRhcmVhIHtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICB9XG4gIC50aGFua3MtbWVzc2FnZSB7XG4gICAgY29sb3I6IEBtZ3JlZW47XG4gIH1cbn1cblxuLy8gVGhpcyBzdHlsZSBhcHBsaWVzIHRvIGRhc2hib2FyZCBtb2RhbHMsIGFuZCBhbHNvIHRoZVxuLy8gYGFjY291bnRzLWN1c3RvbS1jYWxjdWxhdGlvbi9mb3JtdWxhLm1vZGFsLmh0bWxgIG1vZGFsLlxuLm1vZGFsLWZvb3RlciAubG9hZGVyIHtcbiAgLmxvYWRlci1zdHlsZShAaW1wYWMtZGFzaGJvYXJkLWxvYWRpbmctc3Bpbm5lcilcbn1cblxuIiwiI21vZHVsZV9fZGFzaGJvYXJkLXNlbGVjdG9yIHtcbiAgYSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuICAvLyBkYXNoYm9hcmQgc2VsZWN0b3IgdGVtcGxhdGUgd3JhcHBlciBkaXZcbiAgJiA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci1ib3JkZXI7XG4gIH1cblxuICAuYnV0dG9ucy1iYXItcm93IHtcbiAgICBtYXJnaW4tdG9wOiA1NHB4O1xuICAgICYucGRmLW1vZGUgeyBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgfVxuXG4gIC8vIGNvbnRhaW5lciBmb3IgZGFzaGJvYXJkIHNlbGVjdG9yICdkcm9wZG93bicgdGVtcGxhdGVcbiAgLmJ1dHRvbnMtYmFyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5idG4ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luOiAzcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiBAaW1wYWMtZGFzaGJvYXJkLWJ1dHRvbnMtYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAudGl0bGUtY29udGFpbmVyIHtcbiAgICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kcm9wZG93bi1jb250YWluZXIge1xuICAgICAgLmRhc2hib2FyZC10aXRsZSB7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yLDEwJSk7XG4gICAgICAgIH1cbiAgICAgICAgaS5mYS5mYS1wZW5jaWwge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBAbWdyZWVuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRhc2hib2FyZC1zZWxlY3Qge1xuICAgICAgICBtYXJnaW46IDVweCAwcHggMTBweCAzMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgQGltcGFjLWRhc2hib2FyZC10aXRsZS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3I7XG4gICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGxpZ2h0Z3JheTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAub3B0aW9uIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC10aXRsZS1sYWJlbC1jb2xvcjtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmNyZWF0ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtbGFiZWwtY3JlYXRlLWNvbG9yO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBpbXBhYy1kYXNoYm9hcmQtdGl0bGUtY29sb3IsMTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaS5mYS5mYS1wZW5jaWwge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDdweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxNSU7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgY29sb3I6IGRhcmtlbihAaW1wYWMtZGFzaGJvYXJkLXRpdGxlLWNvbG9yLDEwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHNwYW4ubmFtZSB7XG4gICAgICAgICAgICB3aWR0aDogODUlO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY2hhbmdlLW5hbWUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMzBweDtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzLCAzOCwgNDUpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAuYm94LXNoYWRvdygwcHggMHB4IDI1cHggNHB4IGJsYWNrKTtcbiAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRhdGEtc291cmNlLWxhYmVsIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc291cmNlLWNvbG9yO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxvYWRlci1jb250YWluZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgLmxvYWRpbmctc3Bpbm5lciB7XG4gICAgICAgIC5sb2FkZXItc3R5bGUoKTtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGFuZ3VsYXIgYm9vdHN0cmFwIHRhYnMgJiBwaWxsc1xuICAubmF2LXRhYnMge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gIH1cbiAgLm5hdi5uYXYtdGFicyxcbiAgLm5hdi5uYXYtcGlsbHMge1xuXG4gICAgLy8gYWRkIG5ldyB0YWJcbiAgICBsaTpsYXN0LWNoaWxkID4gYSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICAgdGFiLWhlYWRpbmcgYSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVEFCU1xuICAubmF2Lm5hdi10YWJzIHtcbiAgICAvLyB0YWJcbiAgICBsaSA+IGEge1xuICAgICAgcGFkZGluZzogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLXBhZGRpbmc7XG4gICAgICBtYXJnaW46IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1tYXJnaW47XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci1ib3JkZXI7XG4gICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWNvbG9yO1xuICAgIH1cbiAgICAvLyBhY3RpdmUgdGFiXG4gICAgbGkuYWN0aXZlID4gYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXNlbGVjdG9yLXRhYnMtYWN0aXZlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLWRhc2hib2FyZC1zZWxlY3Rvci10YWJzLWFjdGl2ZS1jb2xvcjtcbiAgICB9XG4gICAgLy8gYWRkIG5ldyB0YWJcbiAgICBsaTpsYXN0LWNoaWxkID4gYSB7XG4gICAgICAvLyBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICB9XG4gICAgbGk6bGFzdC1jaGlsZC5hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBJTExTXG4gIC8vIFRPRE86IEFkZCBsZXNzIHZhcmlhYmxlcyBmb3IgY3VzdG9taXNhdGlvbi5cbiAgLm5hdi5uYXYtcGlsbHMge1xuICAgIC8vIHRhYlxuICAgIGxpID4gYSB7XG4gICAgICBtaW4td2lkdGg6IDBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICB9XG4gICAgLy8gYWRkIGEgbmV3IHRhYlxuICAgIGxpOmxhc3QtY2hpbGQgdGFiLWhlYWRpbmcgYSB7XG4gICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgIH1cbiAgICAvLyBhZGQgYSBuZXcgdGFiXG4gICAgbGk6bGFzdC1jaGlsZC5hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gICAgfVxuICB9XG4gIC8vIHRhYiBpY29uc1xuICB0YWItaGVhZGluZyBhLmNsb3NlLWxpbmsge1xuICAgIGJvcmRlci1ib3R0b206IDBweCBzb2xpZDtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtOXB4O1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgY29sb3I6IEBpbXBhYy1kYXNoYm9hcmQtc2VsZWN0b3ItdGFicy1jb2xvcjtcbiAgfVxuICAvLy8vLy8vL1xufVxuIiwiZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RvciB7XG4gIC50ZW1wbGF0ZXMtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC50ZW1wbGF0ZXMtdG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgaS5mYSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJi5mYS10b2dnbGUtb24ge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnRlbXBsYXRlcyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDFweCAwcHggI2NjYztcbiAgICBoZWlnaHQ6IDEzMHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAgIC50ZW1wbGF0ZSB7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWNlYztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLWRhc2hib2FyZC10ZW1wbGF0ZXMtc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvciwgMjAlKTtcbiAgICAgIH1cbiAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtZGFzaGJvYXJkLXRlbXBsYXRlcy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAuaW1wYWMta3BpIC5rcGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMjIwcHg7XG4gIG1pbi1oZWlnaHQ6IEBrcGktbWF4LWhlaWdodDtcbiAgbWF4LWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAa3BpLWJhY2tncm91bmQtY29sb3I7XG4gIG1hcmdpbjogMTBweCAwIDEwcHggMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBrcGktYmFja2dyb3VuZC1jb2xvcjtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJi50cmlnZ2VyZWQsICYuYWRkOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tOiBAa3BpLXRyaWdnZXJlZC1ib3JkZXItYm90dG9tO1xuICB9XG5cbiAgJi5hZGQge1xuICAgIC5rcGktdGV4dCB7XG4gICAgICAuZW1waGFzaXMgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICB9XG4gIH1cblxuICAmLmFkZDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC50b3AtbGluZSB7IGJhY2tncm91bmQtY29sb3I6IEBrcGktdG9wLWxpbmUtdHJpZ2dlcmVkLWJhY2tncm91bmQtY29sb3I7IH1cbiAgICAua3BpLXRleHQge1xuICAgICAgY29sb3I6IEBrcGktdGV4dC10cmlnZ2VyZWQtY29sb3I7XG4gICAgICAuZW1waGFzaXMgeyB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgfVxuICAgIC5rcGktaWNvbiB7XG4gICAgICBjb2xvcjogQGtwaS1pY29uLXRyaWdnZXJlZC1jb2xvcjtcbiAgICAgIC5mYS1wbHVzOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5lZGl0aW5nIHtcbiAgICBtaW4taGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQgKyBAa3BpLWVkaXRpbmctbWF4LWhlaWdodDtcbiAgfVxuXG4gICY6aG92ZXIgeyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuICAmLnN0YXRpYyB7XG4gICAgLmtwaS12YWx1ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuICB9XG5cbiAgLnRvcC1saW5lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIHBhZGRpbmc6IDlweCA5cHggMHB4IDEycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBtaW4taGVpZ2h0OiBAa3BpLXRvcC1saW5lLWhlaWdodDtcbiAgICBib3gtc2hhZG93OiBAa3BpLXRvcC1saW5lLWJveC1zaGFkb3c7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAa3BpLXRvcC1saW5lLWJhY2tncm91bmQtY29sb3I7XG4gICAgJi50cmlnZ2VyZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAa3BpLXRvcC1saW5lLXRyaWdnZXJlZC1iYWNrZ3JvdW5kLWNvbG9yOyB9XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMgZWFzZS1pbjtcbiAgfVxuXG4gIC5rcGktY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0IC0gNXB4O1xuICAgICYuZWRpdGluZyB7XG4gICAgICBtaW4taGVpZ2h0OiBAa3BpLW1heC1oZWlnaHQgKyBAa3BpLWVkaXRpbmctbWF4LWhlaWdodCAtIEBrcGktY29udGVudC1lZGl0aW5nLWhlaWdodC1idWZmZXI7XG4gICAgICAuc2Nyb2xsYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC5rcGktc2hvdyB7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIC8vIHNtYWxsIGZpeCBmb3IgaXBob25lIDYgYW5kIHNtYWxsZXJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzODBweCkge1xuICAgICAgcGFkZGluZzogMTBweCAzcHg7XG4gICAgfVxuXG4gICAgLmVtcGhhc2lzIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgIC5yZWFsLXZhbHVlIHsgY29sb3I6ICM2NzY3Njc7IH1cbiAgICB9XG5cbiAgICAuY2FwdGlvbiB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIC5rcGktdGV4dCB7XG4gICAgICAmID4gc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBwYWRkaW5nOiA3cHggMDtcbiAgICAgIGNvbG9yOiBAa3BpLXRleHQtY29sb3I7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAuMnMgZWFzZS1pbjtcbiAgICAgICYudHJpZ2dlcmVkIHsgY29sb3I6IEBrcGktdGV4dC10cmlnZ2VyZWQtY29sb3I7IH1cblxuICAgICAgLmNhcHRpb24ge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2NXB4KSB7XG4gICAgICAgIC5jYXB0aW9uIHsgZm9udC1zaXplOiAxMHB4OyB9XG4gICAgICAgIC5lbXBoYXNpcyB7IGZvbnQtc2l6ZTogMTFweDsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5rcGktaWNvbiB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICBjb2xvcjogQGtwaS1pY29uLWNvbG9yO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjJzIGVhc2UtaW47XG4gICAgICAmLnRyaWdnZXJlZCB7IGNvbG9yOiBAa3BpLWljb24tdHJpZ2dlcmVkLWNvbG9yOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NjVweCkge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAua3BpLWVkaXQge1xuXG4gICAgYSB7IGNvbG9yOiB3aGl0ZTsgfVxuXG4gICAgLmtwaS1uYW1lIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIGg2IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJlYWwtdmFsdWUge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYWxlcnQtY2FwdGlvbiB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICBiYWNrZ3JvdW5kOiBAa3BpLW5lZ2F0aXZlLWFsZXJ0LWxhYmVsLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvIDVweCBhdXRvO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cblxuICAgIC5rcGktdGFyZ2V0LXdhdGNoYWJsZSxcbiAgICAua3BpLXRhcmdldC11bml0IHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgIC5rcGktdGFyZ2V0LXdhdGNoYWJsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGtwaS10b3AtbGluZS1iYWNrZ3JvdW5kLWNvbG9yLCA1JSk7XG4gICAgfVxuXG4gICAgLmtwaS10YXJnZXQtdW5pdCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDZweDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGtwaS10b3AtbGluZS1iYWNrZ3JvdW5kLWNvbG9yLCAxMCUpO1xuICAgIH1cblxuICAgIC5wYXJhbS1uYW1lIHtcbiAgICAgIC5zbWFsbCgpO1xuICAgIH1cblxuICAgIC5idG4uYnRuLXhzIHtcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB9XG4gIH1cblxuICAua3BpLWVkaXQsXG4gIC5rcGktbm8tZGF0YSB7XG4gICAgLmltcGFjLW1hdGVyaWFsKEBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3IsIEBrcGktc2V0dGluZ3MtZXJyb3ItY29sb3IpO1xuICB9XG5cbiAgYnV0dG9uLmtwaS1hbGVydHMuaW0tZmFiLmltLXByaW1hcnkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91ZDogQGtwaS1zZXR0aW5ncy1hbGVydC1jb25maWctYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICBidXR0b24ua3BpLXJlbW92ZS5pbS1mYWIuaW0td2FybiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEycHg7XG4gICAgcmlnaHQ6IC0xMXB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1yZW1vdmUtYmFja2dyb3VuZDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IEBrcGktc2V0dGluZ3MtcmVtb3ZlLWJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgLmtwaS1kYXRhLWxvYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogOTVweDtcbiAgfVxufVxuXG4uYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtleS1zdGF0cyAua3BpIHtcbiAgbWluLWhlaWdodDogODBweDtcbn1cbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElNUEFDIE1BVEVSSUFMXG4vKiAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKiogTWl4aW4gbWF0ZXJpYWwgc3R5bGVkIGZvcm0gaW5wdXRzLCBvdmVycmlkaW5nIGJvb3RzdHJhcCdzIHVuZ29kbHkgcm91bmQtbmVzcy5cbi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogREVNTyBIVE1MIC0gdXNlIHRoaXMgaHRtbCB0byB0ZXN0IGFsbCBpbXBhYyBtYXRlcmlhbCBmZWF0dXJlcy5cbjxmb3JtPlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1ncm91cFwiPlxuICAgIDxzZWxlY3Q+XG4gICAgICA8b3B0aW9uPlZhbHVlIDE8L29wdGlvbj5cbiAgICAgIDxvcHRpb24+VmFsdWUgMjwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5TZWxlY3Rib3g8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgPGxhYmVsIGZvcj1cImlucHV0XCIgY2xhc3M9XCJpbS1jb250cm9sLWxhYmVsXCI+VGV4dGZpZWxkPC9sYWJlbD48aSBjbGFzcz1cImltLWJhclwiPjwvaT5cbiAgICA8ZGl2IGNsYXNzPVwiaW0tbWVzc2FnZXNcIj5cbiAgICAgIDxwPlRoaXMgaXMgYW4gZXJyb3IgbWVzc2FnZTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWlubGluZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5JbmxpbmU8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbS1mb3JtLWdyb3VwXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZXF1aXJlZC8+XG4gICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5JbmxpbmU8L2xhYmVsPjxpIGNsYXNzPVwiaW0tYmFyXCI+PC9pPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWZvcm0tZ3JvdXBcIj5cbiAgICA8dGV4dGFyZWEgcmVxdWlyZWQ+PC90ZXh0YXJlYT5cbiAgICA8bGFiZWwgZm9yPVwidGV4dGFyZWFcIiBjbGFzcz1cImltLWNvbnRyb2wtbGFiZWxcIj5UZXh0YXJlYTwvbGFiZWw+PGkgY2xhc3M9XCJpbS1iYXJcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tY2hlY2tib3hcIj5cbiAgICA8bGFiZWw+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZD1cImNoZWNrZWRcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImltLWNoZWNrYm94XCI+XG4gICAgPGxhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiLz48aSBjbGFzcz1cImltLWhlbHBlclwiPjwvaT5JJ20gdGhlIGxhYmVsIGZyb20gYSBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaW0tZm9ybS1yYWRpb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJpbS1yYWRpb1wiPlxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvXCIgY2hlY2tlZD1cImNoZWNrZWRcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgcmFkaW8gYnV0dG9uXG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbS1yYWRpb1wiPlxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInJhZGlvXCIvPjxpIGNsYXNzPVwiaW0taGVscGVyXCI+PC9pPkknbSB0aGUgbGFiZWwgZnJvbSBhIHJhZGlvIGJ1dHRvblxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbS1jaGVja2JveFwiPlxuICAgIDxsYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIi8+PGkgY2xhc3M9XCJpbS1oZWxwZXJcIj48L2k+SSdtIHRoZSBsYWJlbCBmcm9tIGEgY2hlY2tib3hcbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0tcHJpbWFyeVwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbS1mYWIgaW0td2FyblwiPjxpPuKZpTwvaT48L2J1dHRvbj5cbjwvZm9ybT5cbiovXG5cbkBib2R5LWJnOiAjZmZmO1xuXG4vLyBTaGFkb3dzXG5Ac2hhZG93LWluc2V0OiBpbnNldCAwIDJweCAycHggMCByZ2JhKDAsMCwwLC4xNCk7XG5Ac2hhZG93LTA6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcbkBzaGFkb3ctMjogMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKTtcbkBzaGFkb3ctMzogMCAzcHggNHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDhweCAwIHJnYmEoMCwwLDAsLjEyKTtcbkBzaGFkb3ctNDogMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMiksMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMik7XG5Ac2hhZG93LTY6IDAgNnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMThweCAwIHJnYmEoMCwwLDAsLjEyKSwwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLC4yKTtcbkBzaGFkb3ctODogMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsLjEyKSwwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLC4yKTtcblxuLy8gRm9udCBTaXplc1xuQGltLWZvbnQtc2l6ZTogMS4yNXJlbTtcbkBpbS1hY3RpdmUtZm9udC1zaXplOiBAaW0tZm9udC1zaXplICogMC44O1xuQGltLWFjdGl2ZS10b3A6IC1AaW0tZm9udC1zaXplO1xuXG4vLyBNYXJnaW4gJiBQYWRkaW5nc1xuQGltLWdhcDogQGltLWZvbnQtc2l6ZSAqIC43O1xuQGltLXNwYWNlcjogQGltLWZvbnQtc2l6ZSAvIDg7XG5AaW0tZmllbGRzZXQtbWFyZ2luOiAwIDAgQGltLWdhcCAqIDI7XG5AaW0tY2hlY2tib3gtZ2FwOiBAaW0tZm9udC1zaXplICogMjtcbkBpbS1jaGVja2JveC10b3A6IDA7XG5AaW0tcmFkaW8tbWFyZ2luOiBAaW0tZm9udC1zaXplIC8gLTQ7XG5cbi8vIENvbG9yc1xuQGltLWJvcmRlci1jb2xvcjogIzk5OTtcbkBpbS1sYWJlbC1jb2xvcjogbGlnaHRlbihAaW0tYm9yZGVyLWNvbG9yLCAxMCUpO1xuQGltLWFjdGl2ZS1jb2xvcjogZGFya2VuKEBpbS1ib3JkZXItY29sb3IsIDEwJSk7XG5cbi8vIEFuaW1hdGlvblxuQGltLXRyYW5zaXRpb24tc3BlZWQ6IDAuMjhzO1xuXG4uaW1wYWMtbWF0ZXJpYWwgKEBpbS1mb2N1cy1jb2xvcjogIzMzN2FiNywgQGltLWVycm9yLWNvbG9yOiAjZDk1MzRmLCBAaW0taW5wdXQtY29sb3I6ICMzMzMpIHtcbiAgLyogRmxhdHRlbiBkZXIgQm9vdHN0cmFwICovXG4gIC53ZWxsLCAubmF2YmFyLWlubmVyLCAucG9wb3ZlciwgLmJ0biwgLnRvb2x0aXAsIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBwcmUsIC5wcm9ncmVzcywgLm1vZGFsLCAuYWRkLW9uLCAuYWxlcnQsIC50YWJsZS1ib3JkZXJlZCwgLm5hdj4uYWN0aXZlPmEsIC5kcm9wZG93bi1tZW51LCAudG9vbHRpcC1pbm5lciwgLmJhZGdlLCAubGFiZWwsIC5pbWctcG9sYXJvaWQge1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIGJvZHksXG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBUaGUgU3R5bGVzIGZvciB0aGUgZm9ybVxuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiBAaW0tZmllbGRzZXQtbWFyZ2luO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgLmltLWZvcm0tcmFkaW8sXG4gIC5pbS1mb3JtLWdyb3VwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogKEBpbS1nYXAgKiAxLjUpO1xuICAgIG1hcmdpbi1ib3R0b206IChAaW0tZ2FwICogMS41KTtcbiAgfVxuXG4gIC5pbS1mb3JtLWlubGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICA+IC5pbS1mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleDogMTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tbGVmdDogKEBpbS1nYXAgKiAuMik7XG4gICAgICBtYXJnaW4tcmlnaHQ6IChAaW0tZ2FwICogLjIpO1xuICAgIH1cblxuICAgID4gLmJ0biB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5pbS1mb3JtLWdyb3VwIHtcbiAgICBpbnB1dCB7XG4gICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplICogMS45KTtcbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAqIDEuNik7XG4gICAgICBwYWRkaW5nOiBAaW0tc3BhY2VyIEBpbS1zcGFjZXIgKEBpbS1zcGFjZXIgLyAyKTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IChAaW0tZm9udC1zaXplIC8gNCk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHBhZGRpbmctbGVmdDogQGltLXNwYWNlcjtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBjb2xvcjogQGltLWxhYmVsLWNvbG9yO1xuICAgICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCBAaW0tdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgIH1cblxuICAgIC5pbS1iYXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogKEBpbS1mb250LXNpemUgLyAxNikgc29saWQgQGltLWJvcmRlci1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAvIDgpO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBib3R0b206IChAaW0tZm9udC1zaXplIC8gLTE2KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZSwgd2lkdGggQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiBAaW0tc3BhY2VyIEBpbS1zcGFjZXIgKEBpbS1zcGFjZXIgLyAyKTtcbiAgICAgIGZvbnQtc2l6ZTogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBsaW5lLWhlaWdodDogMS45O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgIH4gLmltLWJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIGlucHV0OmZvY3VzLFxuICAgIGlucHV0OnZhbGlkLFxuICAgIGlucHV0LmZvcm0tZmlsZSxcbiAgICBpbnB1dC5oYXMtdmFsdWUsXG4gICAgdGV4dGFyZWE6Zm9jdXMsXG4gICAgdGV4dGFyZWE6dmFsaWQsXG4gICAgdGV4dGFyZWEuZm9ybS1maWxlLFxuICAgIHRleHRhcmVhLmhhcy12YWx1ZSB7XG4gICAgICBjb2xvcjogQGltLWlucHV0LWNvbG9yO1xuXG4gICAgICB+IC5pbS1jb250cm9sLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiBAaW0tYWN0aXZlLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6IEBpbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIHRvcDogQGltLWFjdGl2ZS10b3A7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZWN0LFxuICAgIGlucHV0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgIH4gLmltLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICB+IC5pbS1iYXIge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmFkaW8gJiBDaGVja2JveFxuICAuaW0tY2hlY2tib3gsXG4gIC5pbS1mb3JtLXJhZGlvIHtcbiAgICBsYWJlbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBpbS1jaGVja2JveC1nYXA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6IEBpbS1pbnB1dC1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgb3BhY2l0eTogMC4wMDAwMDAwMTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmltLXJhZGlvIHtcbiAgICBtYXJnaW4tYm90dG9tOiBAaW0tZm9udC1zaXplO1xuXG4gICAgLmltLWhlbHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IEBpbS1yYWRpby1tYXJnaW47XG4gICAgICBsZWZ0OiBAaW0tcmFkaW8tbWFyZ2luO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IEBpbS1mb250LXNpemU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIGNvbG9yOiBAaW0tYm9yZGVyLWNvbG9yO1xuXG4gICAgICAvLyBUT0RPOiBpbXByb3ZlIHJhZGlvIHRyYW5zaXRpb24gLSByaXBwbGUgZWZmZWN0IGxpa2UgYW5ndWxhciBtZCB3b3VsZCBiZSBjb29sIDopXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbWFyZ2luOiAoQGltLXNwYWNlciAqIDIpO1xuICAgICAgICB3aWR0aDogQGltLWZvbnQtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiBAaW0tZm9udC1zaXplO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IChAaW0tZm9udC1zaXplIC8gOCkgc29saWQgY3VycmVudENvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWw6aG92ZXIgLmltLWhlbHBlciB7XG4gICAgICBjb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQge1xuICAgICAgfiAuaW0taGVscGVyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbS1jaGVja2JveCB7XG4gICAgbWFyZ2luLXRvcDogKEBpbS1nYXAgKiAyKTtcbiAgICBtYXJnaW4tYm90dG9tOiBAaW0tZm9udC1zaXplO1xuXG4gICAgLmltLWhlbHBlciB7XG4gICAgICBjb2xvcjogQGltLWJvcmRlci1jb2xvcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogQGltLWNoZWNrYm94LXRvcDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogQGltLWZvbnQtc2l6ZTtcbiAgICAgIGhlaWdodDogQGltLWZvbnQtc2l6ZTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBib3JkZXI6IChAaW0tZm9udC1zaXplIC8gOCkgc29saWQgY3VycmVudENvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogKEBpbS1mb250LXNpemUgLyAxNik7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgQGltLXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcblxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IChAaW0tZm9udC1zaXplICogMC4yKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltLWZvY3VzLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IChAaW0tZm9udC1zaXplIC8gNCk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2UsIGhlaWdodCAwcyBsaW5lYXIgQGltLXRyYW5zaXRpb24tc3BlZWQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogKEBpbS1mb250LXNpemUgKiAwLjY1KTtcbiAgICAgICAgbGVmdDogKEBpbS1mb250LXNpemUgKiAwLjM4KTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIChAaW0tZm9udC1zaXplIC8gMTYpIEBib2R5LWJnO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHRvcDogKEBpbS1mb250LXNpemUgKiAwLjMpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyIC5pbS1oZWxwZXIge1xuICAgICAgY29sb3I6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkIHtcbiAgICAgIH4gLmltLWhlbHBlciB7XG4gICAgICAgIGNvbG9yOiBAaW0tZm9jdXMtY29sb3I7XG5cbiAgICAgICAgLy8gVE9ETzogaW1wcm92ZSBjaGVja2VkIHRyYW5zaXRpb24uXG4gICAgICAgICY6OmFmdGVyLFxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IEBpbS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgaGVpZ2h0OiAoQGltLWZvbnQtc2l6ZSAvIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBoZWlnaHQ6IChAaW0tZm9udC1zaXplICogMS4yKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiBAaW0tdHJhbnNpdGlvbi1zcGVlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbS1yYWRpbyArIC5pbS1yYWRpbyxcbiAgLmltLWNoZWNrYm94ICsgLmltLWNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiBAaW0tZm9udC1zaXplO1xuICB9XG5cbiAgLy8gQWRkIGNsYXNzIG9udG8gbmctbWVzc2FnZXMgZGl2XG4gIC5pbS1tZXNzYWdlcyB7XG4gICAgZm9udC1zaXplOiBAaW0tZm9udC1zaXplIC8gMS4yO1xuICAgIGNvbG9yOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgQGltLXRyYW5zaXRpb24tc3BlZWQgY3ViaWMtYmV6aWVyKC41NSwwLC41NSwuMik7XG4gICAgb3BhY2l0eTogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gIH1cblxuICAuaGFzLWVycm9yIHtcbiAgICAubGVnZW5kLmxlZ2VuZCxcbiAgICAmLmltLWZvcm0tZ3JvdXAgLmltLWNvbnRyb2wtbGFiZWwuaW0tY29udHJvbC1sYWJlbCB7XG4gICAgICBjb2xvcjogQGltLWVycm9yLWNvbG9yO1xuICAgIH1cblxuICAgICYuaW0tZm9ybS1ncm91cCxcbiAgICAmLmltLWNoZWNrYm94LFxuICAgICYuaW0tcmFkaW8sXG4gICAgJi5pbS1mb3JtLXJhZGlvIHtcbiAgICAgIC5pbS1tZXNzYWdlcyxcbiAgICAgIC5pbS1oZWxwZXIge1xuICAgICAgICBjb2xvcjogQGltLWVycm9yLWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pbS1iYXIge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogQGltLWVycm9yLWNvbG9yO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW0tYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogbGlnaHRlbihAaW0tZm9jdXMtY29sb3IsIDEwJSk7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogKEBpbS1mb250LXNpemUgKiAxLjEpO1xuICAgIGNvbG9yOiBAaW0taW5wdXQtY29sb3I7XG4gICAgbWFyZ2luOiAoQGltLWdhcCAqIC44KSAwO1xuICAgIHBhZGRpbmc6IChAaW0tZ2FwIC8gMikgKEBpbS1nYXAgKiAyKTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogQHNoYWRvdy0yO1xuXG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlLWluO1xuICAgICAgYmFja2dyb3VuZDogZGFya2VuKEBpbS1mb2N1cy1jb2xvciwgNSUpO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3ctaW5zZXQ7XG4gICAgfVxuXG4gICAgYTpmb2N1cyxcbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uLmltLWZhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogNDZweDtcbiAgICB3aWR0aDogNDZweDtcbiAgICBmbGV4OiAwIDAgNTZweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDRweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBib3gtc2hhZG93OiBAc2hhZG93LTQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG4gICAgJjphY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogQHNoYWRvdy1pbnNldDtcbiAgICB9XG4gICAgJi5pbS1wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6IEBpbS1mb2N1cy1jb2xvcjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlLWluO1xuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oQGltLWZvY3VzLWNvbG9yLCA1JSk7XG4gICAgICB9XG4gICAgfVxuICAgICYuaW0td2FybiB7XG4gICAgICBiYWNrZ3JvdW5kOiBAaW0tZXJyb3ItY29sb3I7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZS1pbjtcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKEBpbS1lcnJvci1jb2xvciwgNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCIuYW5hbHl0aWNzIGtwaXMtYmFyID4gLmtwaXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC5hY3Rpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLmltcGFjLW1hdGVyaWFsKEBrcGktc2V0dGluZ3MtZm9jdXMtY29sb3IsIEBrcGktc2V0dGluZ3MtZXJyb3ItY29sb3IpO1xuXG4gICAgYSB7IGNvbG9yOiB3aGl0ZTsgfVxuXG4gICAgYnV0dG9uLmltLWZhYi5hZGQta3BpcyxcbiAgICBidXR0b24uaW0tZmFiLmVkaXQta3BpcyxcbiAgICBidXR0b24uaW0tZmFiLnRvZ2dsZS1zaG93LWNvbnRlbnQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yOHMgZWFzZS1pbjtcbiAgICAgICYuaW0tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICM0YzQ3NDk7XG4gICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNiMmI1YzE7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICBhIHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uLmltLWZhYi50b2dnbGUtc2hvdy1jb250ZW50IHtcbiAgICAgIHRvcDogLTE1cHg7XG4gICAgICByaWdodDogLTE1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY3NXB4KSB7XG4gICAgICAgIHRvcDogLTMwcHg7XG4gICAgICAgIHJpZ2h0OiAtMTRweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbi5pbS1mYWIuYWRkLWtwaXMge1xuICAgICAgdG9wOiAzMHB4O1xuICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogMzNweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbi5pbS1mYWIuZWRpdC1rcGlzIHtcbiAgICAgIHRvcDogNzVweDtcbiAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgJi5lZGl0aW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogQGtwaS1zZXR0aW5ncy1mb2N1cy1jb2xvcjtcbiAgICAgICAgJjpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogbGlnaHRlbihAa3BpLXNldHRpbmdzLWZvY3VzLWNvbG9yLCAxNSUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NzVweCkge1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogNzlweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50LWJ1dHRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAa3Bpcy1iYXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiBAa3Bpcy1iYXItYm94LXNoYWRvdztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcyNXB4KSB7XG4gICAgICBwYWRkaW5nOiAwIDYwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjc1cHgpIHtcbiAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgfVxuXG4gICAgLmltcGFjLWtwaSB7XG4gICAgICAuY29sdW1uLWd1dHRlcig1cHgpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAua3BpLmFkZCB7XG4gICAgICAgIC5rcGktc2hvdyAuY2FwdGlvbiB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC50aXRsZSB7XG4gICAgICAudGV4dC1jZW50ZXIge1xuICAgICAgICBsaW5lLWhlaWdodDogMztcbiAgICAgICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICAgICAgICBmb250LXNpemU6IGxhcmdlcjtcbiAgICAgIH1cbiAgICAgIC5iYWRnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlNTVjO1xuICAgICAgICBjb2xvcjogIzRmNTk1OTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggLTFweDtcbiAgICAgIH1cbiAgICAgIC5uby1rcGktdGVtcGxhdGVzIHtcbiAgICAgICAgY29sb3I6ICNhZmFkYjU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFkZC1iYXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogZGFzaGVkIDFweDtcbiAgICB9XG5cbiAgICAua3BpLWxvYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWluLWhlaWdodDogQGtwaS1tYXgtaGVpZ2h0ICsgMjBweDtcbiAgICB9XG5cbiAgICAuZGF0ZXMtcGlja2VyLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogNDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgIC5zZHAtZnJvbS1sYWJlbCxcbiAgICAgIC5zZHAtdG8tbGFiZWwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYW5hbHl0aWNzIGtwaXMtYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5hbmFseXRpY3Mga3Bpcy1iYXIgPiAua2V5LXN0YXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDVweCAwcHg7XG59XG5cbi5hbmFseXRpY3MucGRmLW1vZGUga3Bpcy1iYXIgPiAua3BpcyAuYWN0aW9ucyB7IGRpc3BsYXk6IG5vbmU7IH1cbiIsIi53aWRnZXQtaXRlbSB7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3M7XG4gIHBhZGRpbmc6IEBpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0cztcbiAgJi5wZGYtbW9kZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogflwiQHtpbXBhYy1wYWRkaW5nLWJldHdlZW4td2lkZ2V0c30gMHB4XCI7XG4gIH1cbn1cblxuLndpZGdldC1pdGVtIC50b3AtbGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBtb3ZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLWJnO1xuICBwYWRkaW5nOiA5cHggOXB4IDBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLWJvcmRlci1yYWRpdXM7XG4gIGJvcmRlcjogQGltcGFjLXdpZGdldC1ib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDQxcHg7XG4gIC5ib3gtc2hhZG93KDBweCAxcHggOHB4IC00cHgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgei1pbmRleDogNDtcbn1cblxuLndpZGdldC1pdGVtIHtcbiAgLmNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgYm9yZGVyLXJhZGl1czogQGltcGFjLXdpZGdldC1jb250ZW50LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiBAaW1wYWMtd2lkZ2V0LWJvcmRlcjtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgLmJveC1zaGFkb3coMHB4IDFweCA4cHggLTRweCk7XG4gICAgLnNob3J0LXdpZGdldCgpO1xuXG4gICAgLmVkaXQge1xuICAgICAgLmVkaXQtcGFuZWwtc3R5bGUoKTtcbiAgICB9XG5cbiAgICAmLmFjY2Vzc2libGUge1xuICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBtaW4taGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICAgICAgbWF4LWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8vIEF2b2lkIGNvbnRlbnQgdG8gbGVhayBvdXQgb2Ygd2lkZ2V0J3MgYm94XG4gICAgLmNvbnRlbnQtdGVtcGxhdGUtd3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAmLnBkZi1tb2RlIC5jb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAuY29sbGFwc2Uge1xuICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICB9XG4gICAgLmZhLXBsdXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMTQ3XCI7XG4gICAgfVxuICAgIC5sZWdlbmQge1xuICAgICAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmRhdGEtbm90LWZvdW5kIC5tZXNzYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi53aWRnZXQtaXRlbS5wZGYtbW9kZSAuaW5jbHVkZS10by1wZGZ7XG4gICYudGl0bGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogflwiY2FsYygxMDAlIC0gMipAe2ltcGFjLXBhZGRpbmctYmV0d2Vlbi13aWRnZXRzfSApXCI7XG4gICAgei1pbmRleDogMztcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcHg7XG4gICAgaDYge1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkM5Mjg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG4gICYudGljayB7XG4gICAgaSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDM1JTtcbiAgICAgIGxlZnQ6IDQ2JTtcbiAgICAgIGZvbnQtc2l6ZTogMTAwcHg7XG4gICAgICBvcGFjaXR5OiAuNTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuICB9XG4gIC53aWRnZXQtaG92ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcbiAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG4gICAgei1pbmRleDogMTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgYmFja2dyb3VuZDogI0NDQ0ZEMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gRml4IG92ZXJmbG93IGZvciBsYXJnZSBzdW1zL3RleHQgaW4gLndpZGdldC1saW5lcy1jb250YWluZXIgdGFibGVzXG4ud2lkZ2V0LWl0ZW0gLndpZGdldC1saW5lcy1jb250YWluZXIgLndpZGdldC1saW5lID4gW2NsYXNzKj0nY29sLSddIHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50IC5kYXRhLW5vdC1mb3VuZCxcbi5hbmFseXRpY3MgLmtwaSAuZGF0YS1ub3QtZm91bmQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtbWVzc2FnZS10ZXh0LWNvbG9yO1xuXG4gIC5vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiB+XCJjYWxjKDEwMCUgLSA0cHgpXCI7XG4gICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDRweClcIjtcbiAgICB0b3A6IDJweDtcbiAgICBsZWZ0OiAycHg7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHotaW5kZXg6IDM7XG4gIH1cblxuICAubWVzc2FnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTI1cHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIHdpZHRoOiA4NSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjVweCAwcHg7XG4gICAgei1pbmRleDogNDtcblxuICAgIC50aXRsZSB7XG4gICAgICBwYWRkaW5nOiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBvcHVwLXRpdGxlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS10ZXh0LWNvbG9yO1xuICAgICAgbWFyZ2luOiAtMXB4IC0xcHggMTBweCAtMXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAuYnRuIHsgbWFyZ2luLXRvcDogNXB4OyB9XG4gIH1cblxuICAuZXhhbXBsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wb3B1cC10aXRsZS10ZXh0LWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcG9wdXAtdGl0bGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgei1pbmRleDogNjtcblxuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWRlbW8tZGF0YS1saW5rLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4uYW5hbHl0aWNzIC5rcGkgLmRhdGEtbm90LWZvdW5kIHtcbiAgLm1lc3NhZ2Uge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBib3JkZXI6IHNvbGlkIDFweCBzaWx2ZXI7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwIHsgbWFyZ2luOiA1cHg7IH1cbiAgfVxuICAub3ZlcmxheSwgLnRpdGxlLCAuYnRuLCAuZXhhbXBsZSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cbiIsIi5hbmFseXRpY3MgY29tbW9uLWRlbGV0ZS13aWRnZXQge1xuICAud2lkZ2V0LXBvcHVwKCk7XG4gIC5tZXNzYWdlIHtcbiAgICAubG9hZGVyIGkuZmEuZmEtc3Bpbm5lciB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgfVxuICAgIHAgeyBwYWRkaW5nOiAwcHggMTBweDsgfVxuICAgIGJ1dHRvbi5idG4geyBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIH1cbn1cbiIsIiN0cmFuc2FjdGlvbnMtYWRkIHtcbiAgLndpZGdldC1wb3B1cCgpO1xuICAubWVzc2FnZSB7XG4gICAgdG9wOiAzMHB4O1xuICAgIGxlZnQ6IDM1JTtcbiAgICB3aWR0aDogMzAlO1xuICAgIC5mb3JtIHtcbiAgICAgIHBhZGRpbmc6IDBweCAxMHB4O1xuICAgICAgPiBsYWJlbCwgLmNvbWluZy1zb29uID4gbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgfVxuICAgICAgaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5idG4tZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMjJweDtcbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmNvbWluZy1zb29uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBzaWx2ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBjb2xvcjogIzg4ODg4ODtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAuYmFkZ2Uge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODtcbiAgICAgICAgfVxuICAgICAgICAuYnRuLWdyb3VwIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0geyBtYXJnaW4tdG9wOiA1cHg7IH1cbiAgICAgICAgICBzZWxlY3QgeyBoZWlnaHQ6IDIycHg7IH1cbiAgICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjODg4ODg4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuYm90dG9tIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCIjdHJhbnNhY3Rpb25zLWxpc3Qge1xuICAudG9wIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYS5iYWNrLWxpbmsgeyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnBhZ2luYXRpb24geyBtYXJnaW46IDBweDsgfVxuICB9XG5cbiAgLnRhYmxlLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA2MHB4KVwiO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIFxuICAgIGRpdlt1aWItZGF0ZXBpY2tlci1wb3B1cC13cmFwXSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgaW5wdXQuYnRuLmJ0bi14cyB7IG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgICBidXR0b24uYnRuLnJlc2V0LWRhdGUgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gICAgLmZhLmZhLXRpbWVzIHtcbiAgICAgIGNvbG9yOiBAYnJhbmQtZGFuZ2VyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIHRyLnRvdGFsIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgJi5pbnZvaWNlcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIzhlYWI3MSwgMjAlKTtcbiAgICAgIH1cbiAgICAgICYuYmlsbHMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCNjNzYzNzksIDIwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC5kYXNoYm9hcmQtc2V0dGluZ3MuY3VycmVuY3kge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgc2VsZWN0IHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLmRhc2hib2FyZC1zZXR0aW5ncy5zeW5jLWFwcHMge1xuICAuc2hvdy1zdGF0dXMge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3ItbWVkaXVtO1xuICAgICY6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICAgIC5mYS5mYS1pbmZvIHsgbWFyZ2luLXJpZ2h0OiAycHg7IH1cbiAgfVxuICAuc3RhdHVzLWJ0biB7XG4gICAgaSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAmLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHsgY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAgICAgJi5mYS1jaGVjayB7IGNvbG9yOiBAZ3JlZW47IH1cbiAgICB9XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiA1cHggN3B4IDVweCAwcHg7XG4gIH1cblxuICAucG9wb3ZlciB7XG4gICAgbWF4LXdpZHRoOiA1NTBweDtcbiAgICAuY29ubmVjdG9yIHtcbiAgICAgIHBhZGRpbmc6IDRweCAxM3B4O1xuICAgICAgJi5hZGQtc2VwZXJhdG9yIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7IH1cbiAgICB9XG4gICAgLnBvcG92ZXItY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAucG9wb3Zlci1mb290ZXIge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBwYWRkaW5nOiA0cHggMTNweDtcbiAgICAgIHAge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgICAgJi5yZW1vdmUtc2VwZXJhdG9yIHsgYm9yZGVyOiAwOyB9XG4gICAgfVxuICB9XG5cbiAgLmJhZGdlIHsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tbGVmdDogOHB4OyB9XG4gIC5zdWNjZXNzIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBncmVlbjsgfVxuICAucGVuZGluZyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZmx1cm9vcmFuZ2U7IH1cbiAgLnJ1bm5pbmcgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gIC5lcnJvciAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAuZmFpbGVkIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gIC51bmtub3duIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG4gIC5kaXNjb25uZWN0ZWQgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbn1cblxuI3N5bmMtYXBwcy1tb2RhbCB7XG4gIC5tb2RhbC1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4ICNjY2M7XG4gIH1cbiAgLm1vZGFsLWxpc3Qge1xuICAgIG1heC1oZWlnaHQ6IDI4MHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cbiAgLm1vZGFsLWxpc3QtaXRlbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIC5iYWRnZSB7IGZsb2F0OiByaWdodDsgfVxuICAgICYuc3VjY2VzcyAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JlZW47IH1cbiAgICAmLnBlbmRpbmcgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQGZsdXJvb3JhbmdlOyB9XG4gICAgJi5ydW5uaW5nIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAgICYuZXJyb3IgLmJhZGdlIHsgYmFja2dyb3VuZC1jb2xvcjogQHBpbms7IH1cbiAgICAmLmZhaWxlZCAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAgICYudW5rbm93biAuYmFkZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAcGluazsgfVxuICAgICYuZGlzY29ubmVjdGVkIC5iYWRnZSB7IGJhY2tncm91bmQtY29sb3I6IEBwaW5rOyB9XG5cbiAgICAubWVzc2FnZSB7XG4gICAgICBwIHsgbWFyZ2luOiAwOyB9XG4gICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICBtYXJnaW4tbGVmdDogMzFweDtcbiAgICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICB9XG5cbiAgICAmLnN1Y2Nlc3MgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI1NSwgNTUsIDAuMDgpOyB9XG4gICAgJi5wZW5kaW5nIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDExOCwgMCwgMC4wOCk7IH1cbiAgICAmLnJ1bm5pbmcgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTE4LCAwLCAwLjA4KTsgfVxuICAgICYuZXJyb3IgLm1lc3NhZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMCwgMCwgMC4wOCk7IH1cbiAgICAmLmZhaWxlZCAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTsgfVxuICAgICYudW5rbm93biAubWVzc2FnZSB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAwLCAwLjA4KTsgfVxuICAgICYuZGlzY29ubmVjdGVkIC5tZXNzYWdlIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDAsIDAsIDAuMDgpOyB9XG5cbiAgICAmLndpdGgtbWVzc2FnZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLm1vZGFsLWZvb3RlciB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG4gIC5mYSB7IHBhZGRpbmc6IDBweCAxMHB4OyB9XG4gIC5mYS5lcnJvciB7IGNvbG9yOiBAcmVkOyB9XG4gIC5mYS53YXJuIHsgY29sb3I6IEBmbHVyb29yYW5nZTsgfVxuICAuZmEuc3VjY2VzcyB7IGNvbG9yOiBAZmx1cm9ncmVlbjsgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLWxpYWJpbGl0eS1zdW1tYXJ5IHtcbiAgLnBhcmFtLXNlbGVjdG9yIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtaGVpZ2h0OiA5MHB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXN1bW1hcnkge1xuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDExNXB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggQGltcGFjLXdpZGdldC1ib3JkZXJzLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYXNzZXRzLXZzLWxpYWJpbGl0aWVzIHtcbiAgLmxlZ2VuZCA+IC50aXRsZSBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1iYWxhbmNlIHtcbiAgaDMge1xuICAgIC5sZWZ0LXRoaW4oMzBweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtYmFsYW5jZS1zaGVldCB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgICBtYXgtaGVpZ2h0OiA0OTBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi14cy1tYXgpIHtcbiAgICAgIC5yb3cud2lkZ2V0LWxpbmUge1xuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4IEBpbXBhYy13aWRnZXQtYm9yZGVycy1jb2xvcjsgfVxuICAgICAgfVxuICAgIH1cbiAgICAucm93LndpZGdldC1saW5lLmhlYWRlciA+IFtjbGFzcyo9J2NvbC0nXSB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cblxuICAgICYubm8tc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC5uby1kYXRhLWJsb2NrIHtcbiAgICAuY2VudGVyLXRoaW4oKTtcbiAgICBtYXJnaW46IDE1cHggMHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXByb2plY3Rpb24ge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAuY2FzaC1wcm9qZWN0aW9uLWNoYXJ0IHtcbiAgICBoZWlnaHQ6IH5cImNhbGMoQHtpbXBhYy1iaWctd2lkZ2V0LXNpemV9IC0gNTBweClcIjtcbiAgfVxuXG4gIC5oaWdoY2hhcnRzLWxlZ2VuZC1pdGVtIHtcbiAgICByZWN0LmhpZ2hjaGFydHMtcG9pbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIHdpZHRoOiAxMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGltZyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDU1cHg7XG4gICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGF0ZXMtcGlja2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIHRyYW5zYWN0aW9ucy1saXN0IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWNhc2gtYmFsYW5jZSB7XG4gIC50YWxsLXdpZGdldCgpO1xuXG4gIC5kYXRhLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiB+XCJjYWxjKEB7aW1wYWMtYmlnLXdpZGdldC1zaXplfSAtIDUwcHgpXCI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAubGVmdC1wYW5lbCB7XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgI2Nhc2gtYmFsYW5jZS1sZWdlbmQge1xuICAgIC5oZWFkZXIge1xuICAgICAgLmdyb3VwLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICBtYXJnaW46IDNweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBwYWRkaW5nOiAzcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtbWVudXMtaG92ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICBpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDFweFxuICAgICAgICB9XG4gICAgICAgIHNwYW4geyBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmxlZ2VuZC1pdGVtLWljb24ge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDE4MHB4KVwiO1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgIC8vIEhpZ2hjaGFydCBjb250YWluZXJcbiAgICAuY2FzaC1iYWxhbmNlLWNoYXJ0IHtcbiAgICAgIGhlaWdodDogflwiY2FsYyhAe2ltcGFjLWJpZy13aWRnZXQtc2l6ZX0gLSA1MHB4KVwiO1xuICAgIH1cbiAgfVxuXG4gIC5kYXRlcy1waWNrZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jYXNoLXN1bW1hcnkge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgfVxuXG4gIC5yb3cubGluZXMtZ3JvdXAuY2FzaCB7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4O1xuICAgIGJvcmRlci1ib3R0b206IGRvdWJsZTtcbiAgfVxufVxuIiwiLy8gLS0tIFJldXNhYmxlIHdpZGdldCBzdHlsZSBtaXhpbnNcblxuLy8gUGF5cm9sbC1TdW1tYXJ5IC0gUHJvZml0LWFuZC1Mb3NzXG4uZHJpbGwtZG93bi13aWRnZXQgKCkge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogNTQwcHg7XG4gICAgLmxpbmVzLWdyb3VwIC53aWRnZXQtbGluZSB7XG4gICAgICAuc2VsZWN0YWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC5yaWdodC1wYW5lbCB7XG4gICAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgICAgLnNjcm9sbGFibGUoYXV0byk7XG4gICAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICB9XG4gIH1cblxuICAubm8tZWxlbWVudCB7XG4gICAgLmNlbnRlci10aGluKCk7XG4gIH1cbn1cblxuLy8gVG9wIGN1c3RvbWVycyBzdW1tYXJ5IC0gU2FsZXMgY3ljbGUuLi5cbi5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKSB7XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogNDEwcHg7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgbWF4LWhlaWdodDogMjhweDtcbiAgfVxufVxuXG4vLyBJbnZvaWNlcyBsaXN0IC0gc2FsZXMgbGlzdFxuLnNpbXBsZS1saXN0LXdpZGdldCgpIHtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIzMHB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCk7XG4gICAgICAmLmhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gV29ya2ZvcmNlLVN1bW1hcnkgLSBTYWxhcmllcy1TdW1tYXJ5XG4uZXhwYW5kYWJsZS1maWx0ZXJhYmxlLXdpZGdldCgpIHtcbiAgaDMubGVmdCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1hcmdpbi10b3A6IDY5cHg7IH1cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgaDMucmVkdWNlZC1sZWZ0IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWFyZ2luLXRvcDogMTBweDsgfVxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBoMy5yaWdodCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnByaWNlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA3NXB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuICB9XG4gIC5yaWdodC1wYW5lbCAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi14cy1taW4pIGFuZCAobWF4LXdpZHRoOiBAc2NyZWVuLXNtLW1heCkgeyBtYXgtd2lkdGg6IDMyMHB4OyB9XG4gIH1cbn1cblxuLy8gTGVhZHMgZnVubmVsIC0gT3Bwb3J0dW5pdGllcyBmdW5uZWxcbi5mdW5uZWwtd2lkZ2V0KCkge1xuICAudGFsbC13aWRnZXQoKTtcbiAgLmZ1bm5lbC1jb250YWluZXIge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBtYXgtaGVpZ2h0OiBAaW1wYWMtYmlnLXdpZGdldC1zaXplIC0gNjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuICAucmlnaHQtcGFuZWwge1xuICAgIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IEBpbXBhYy1iaWctd2lkZ2V0LXNpemUgLSAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgLndpZGdldC1saW5lIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtY2xhc3MtY29tcGFyaXNvbiB7XG4gIC5wYXJhbS1zZWxlY3RvciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA5NHB4O1xuICAgIGNvbG9yOiAjNjI2ZDZkO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jb21wYXJpc29uIHtcbiAgLnRhbGwtd2lkZ2V0KCk7XG5cbiAgLmNoYXJ0LWNvbnRhaW5lciB7XG4gICAgQG1lZGlhIHByaW50IHsgbWF4LXdpZHRoOiA4MCUgIWltcG9ydGFudDsgfVxuICB9XG5cbiAgLmFkZC1hY2NvdW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDQwcHg7XG4gICAgYm90dG9tOiAzMHB4O1xuICAgIHdpZHRoOiAxNjBweDtcbiAgICBzZWxlY3Qge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW5rLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLXdpZGdldC1saW5rLWNvbG9yLDEwJSk7XG4gICAgICB9XG4gICAgICBvcHRpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvciw0MCUpO1xuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBidXR0b24uY2xvc2Uge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuICAubGVnZW5kIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC1oZWlnaHQ6IDEwM3B4O1xuICB9XG4gIC5yb3cge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIG1heC1oZWlnaHQ6IEBpbXBhYy13aWRnZXQtYWNjb3VudHMtY29tcGFyaXNvbi1saW5lcy1jb250YWluZXItbWF4LWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiA2NXB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgICBtYXJnaW4tbGVmdDogMTNweDtcbiAgfVxuXG4gIC5jb21wYXJhYmxlLWVycm9yIGg1IHtcbiAgICBtYXJnaW4tbGVmdDogMTNweDtcbiAgICBjb2xvcjogQGltcGFjLW5lZ2F0aXZlO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1jdXN0b20tY2FsY3VsYXRpb24ge1xuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogODVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLmxlZ2VuZCB7IG1heC1oZWlnaHQ6IDEyNXB4OyB9XG59XG5cbi5hbmFseXRpY3MubW9kYWwtY3VzdG9tLWNhbGN1bGF0aW9uIHtcbiAgbWFyZ2luOiAwcHg7XG4gIHBhZGRpbmc6IDBweDtcbn1cblxuLmFuYWx5dGljcy5tb2RhbC1jdXN0b20tY2FsY3VsYXRpb24gLm1vZGFsLWJvZHkge1xuICAuZWRpdCB7XG4gICAgLmVkaXQtcGFuZWwtc3R5bGUoKTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWRldGFpbGVkLWNsYXNzaWZpY2F0aW9ucyB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgLnNjcm9sbGFibGUoc2Nyb2xsKTtcbiAgICBtYXgtaGVpZ2h0OiA1NDBweDtcbiAgfVxuXG4gIC5hY2NvdW50LWNsYXNzLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDExcHg7XG4gIH1cblxuICAudGltZS1wZXJpb2QtaW5mbyB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAud2lkZ2V0LWxpbmUuaGVhZGVyLnNvcnRpbmcgIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgfVxufVxuXG5cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLWV4cGVuc2Utd2VpZ2h0IHtcbiAgLmxlZ2VuZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtaGVpZ2h0OiAxMTVweDtcblxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5hY2NvdW50cy1leHBlbnNlcy1yZXZlbnVlIHtcbiAgLmxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAuc2V0dGluZ3MucGFyYW1zLWNoZWNrYm94ZXMge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtbGl2ZS1iYWxhbmNlIHtcbiAgaDMge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDFweDtcbiAgfVxuXG4gIC5zdGF0ZW1lbnQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG5cbiAgLmJhbGFuY2UtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIC5jdXJyZW5jeS1jZW50ZXJlZCB7XG4gICAgLmNlbnRlci1zbWFsbCgpXG4gIH1cblxuICAuaGVhZGVycyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnNwYWNlciB7XG4gICAgbWluLWhlaWdodDogMzBweDtcbiAgfVxuXG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cblxuICAubmVnYXRpdmUyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXBheWFibGUtcmVjZWl2YWJsZSB7XG4gIGgzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLnBheWFibGUge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmFjY291bnRzLXByb2ZpdC1hbmQtbG9zcyB7XG4gIC5kcmlsbC1kb3duLXdpZGdldCgpO1xuXG4gIC5yb3cubGluZXMtZ3JvdXAucHJvZml0IHtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogZG91YmxlO1xuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgfVxuXG4gIC5yb3cud2lkZ2V0LWxpbmUuaGVhZGVyID4gW2NsYXNzKj0nY29sLSddIHsgcG9zaXRpb246IHN0YXRpYzsgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuYWNjb3VudHMtcmF0aW9zIHtcbiAgXG4gIC5sZWZ0LXBhbmVsIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvOyBcblxuICAgIC5zZXBhcmF0b3Ige1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuICAgIC5tZW1iZXIge1xuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICB9XG4gICAgLm1lbWJlciAucHJpY2Uge1xuICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cbiAgICBidXR0b24geyBvdXRsaW5lOiBub25lOyB9XG4gIH1cblxuICAubGVmdC1wYW5lbC5zaW11bGF0aW9uIHtcbiAgICAubWVtYmVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAubGVnZW5kIHsgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnByaWNlIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICB9XG4gICAgLnNlcGFyYXRvciB7IHdpZHRoOiAxMDAlOyB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWVtcGxveWVlLWRldGFpbHMge1xuICBmb250LXNpemU6IDEycHg7XG4gIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDIwMHB4OyB9XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgfVxuICAucmlnaHQtcGFuZWwge1xuICAgIC5kZXRhaWxzLWNvbnRhaW5lciB7XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWF4LWhlaWdodDogMjIwcHg7IH1cbiAgICB9XG4gICAgLmxlZ2VuZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICB9XG4gIC50aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1lbXBsb3llZXMtbGlzdCB7XG4gIC5sZWdlbmQge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICAuYWx0ZXJuYXRlLWJnKCk7XG4gICAgfVxuICB9XG4gIC5lZGl0IHtcbiAgICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLWxlYXZlcy1iYWxhbmNle1xuICAuZW1wbG95ZWUtbmFtZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iYWxhbmNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxuICBoMyB7XG4gICAgbWFyZ2luLXRvcDogMzNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1sZWF2ZXMtc2NoZWR1bGV7XG4gIC5mYy1idXR0b24ge1xuICAgIGhlaWdodDogMjJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtYnV0dG9ucy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZDogQGltcGFjLXdpZGdldC1idXR0b25zLWNvbG9yO1xuICAgIH1cbiAgfVxuICAuZmMtdG9vbGJhciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG4gIC5mYy1kYXktZ3JpZCwuZmMtd2lkZ2V0LWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5oci1wYXlyb2xsLXN1bW1hcnkge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IDE0NXB4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSB7XG4gIC5jb250ZW50LmhyLXNhbGFyaWVzLXN1bW1hcnkge1xuICAgIC5leHBhbmRhYmxlLWZpbHRlcmFibGUtd2lkZ2V0KCk7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXN1cGVyYW5udWF0aW9uLWFjY3J1YWxzIHtcbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDYzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sZWdlbmQge1xuICAgIG1hcmdpbi10b3A6IDIzcHg7XG4gIH1cbiAgLmN1cnJlbmN5IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgLnByaWNlIHtcbiAgICAuY2VudGVyLWJvbGQoMHB4KTtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LmhyLXRpbWVzaGVldHMge1xuICAuY3VycmVuY3kge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjEwcHg7XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1hZ2VkLXBheWFibGVzLXJlY2VpdmFibGVzIHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG5cbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgfVxuXG4gIC5yb3cuYXN0ZXJpY2tzLWluZm8ge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cblxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAge1xuICAuY29udGVudC5oci13b3JrZm9yY2Utc3VtbWFyeSB7XG4gICAgLmV4cGFuZGFibGUtZmlsdGVyYWJsZS13aWRnZXQoKTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuaW52b2ljZXMtc3VtbWFyeSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5pbnZvaWNlcy1saXN0IHtcbiAgLnNpbXBsZS1saXN0LXdpZGdldCgpO1xuXG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gIH1cblxuICAuZmEuZmEtaW5mby1jaXJjbGUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cblxuICAucmlnaHQtY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWFnZWQge1xuICAudGFsbC13aWRnZXQoKTtcblxuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjM4cHg7XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWJyZWFrLWV2ZW4ge1xuICAucHJpY2Uge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC5ibG9jayB7XG4gICAgbWFyZ2luOiA1cHg7XG4gICAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3gtc2hhZG93OiAwcHggN3B4IDEwcHggLTdweCAjMTcyNjJkO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb3JtLmVkaXRhYmxlLXdyYXAgLmVkaXRhYmxlLWNvbnRyb2xzIGlucHV0IHtcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG4gICAgJi50by1kYXRlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdGV4dC1jb2xvcjtcbiAgICB9XG4gICAgJi50by1icmVha2V2ZW4ge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi1iZztcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXNhbGVzLWJyZWFrLWV2ZW4tdGV4dC1jb2xvcjtcbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGVuKEBpbXBhYy13aWRnZXQtc2FsZXMtYnJlYWstZXZlbi1iZywgMTAlKTtcbiAgICAgIH1cbiAgICAgIC5kZWZpbmUtdGV4dCB7XG4gICAgICAgIC5jZW50ZXItdGhpbigpO1xuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICB9XG4gICAgICAucHJpY2Uge1xuICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1zYWxlcy1icmVhay1ldmVuLXRleHQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB9XG4gIH1cbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jb21wYXJpc29uIHtcbiAgLmRyaWxsLWRvd24td2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA1MzBweDtcbiAgfVxuICAucmlnaHQtcGFuZWwgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jdXN0b21lci1kZXRhaWxzIHtcbiAgLmxvYWRlciB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgLmRldGFpbHMtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDE5NHB4OyB9XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIH1cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICAuZGV0YWlscy1jb250YWluZXIge1xuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7IG1heC1oZWlnaHQ6IDIzMHB4OyB9XG4gICAgfVxuICAgIC5sZWdlbmQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuICAucm93LnRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cblxuICAuY3VycmVuY3ktY29udmVyc2lvbnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1jeWNsZSB7XG4gIC5zaW1wbGUtc3VtbWFyeS13aWRnZXQoKTtcbn0iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1mb3JlY2FzdCB7XG4gIC50YWxsLXdpZGdldCgpO1xuICAud2lkZ2V0LWxpbmVzLWNvbnRhaW5lciB7XG4gICAgbWF4LWhlaWdodDogMjc1cHg7XG4gICAgLndpZGdldC1saW5lLm1haW4ge1xuICAgICAgLnNlbGVjdGFibGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWdyb3d0aCB7XG4gIC5wcmljZSB7XG4gICAgLmNlbnRlci1ib2xkKDBweCk7XG4gIH1cbiAgLmxlZ2VuZCB7XG4gICAgbWF4LWhlaWdodDogNDlweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGVhZHMtZnVubmVsIHtcbiAgLmZ1bm5lbC13aWRnZXQoKTtcbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLWxlYWRzLWxpc3Qge1xuICAuc2ltcGxlLWxpc3Qtd2lkZ2V0KCk7XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICAuc2Nyb2xsYWJsZShzY3JvbGwpO1xuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtbGlzdCB7XG4gIC5zaW1wbGUtbGlzdC13aWRnZXQoKTtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC5zY3JvbGxhYmxlKHNjcm9sbCk7XG4gICAgbWF4LWhlaWdodDogMTcwcHg7XG4gICAgJi5uby1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICB9XG4gIC5zZWxlY3RvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB9XG4gIC5jdXJyZW5jeS1jb252ZXJzaW9ucyB7XG4gICAgaW1nIHsgbWFyZ2luLXRvcDogLTJweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXQtc2FsZXMge1xuICAudmFsdWUtY29udGFpbmVyLCAub3BlcmF0b3Ige1xuICAgIC8vIGZsb2F0OiBsZWZ0O1xuICAgIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogODVweDtcbiAgfVxuXG4gIC8vIC52YWx1ZS1jb250YWluZXIge1xuICAvLyAgIHdpZHRoOiAyNiU7XG4gIC8vIH1cblxuICAudmFsdWUtY29udGFpbmVyIC50aXRsZSB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgfVxuXG4gIC52YWx1ZS1jb250YWluZXIgLnZhbHVlLWJveCB7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIC8vIGJvcmRlcjogc29saWQgMXB4ICNFNEU0RTQ7XG4gICAgLy8gYm94LXNoYWRvdzogMXB4IDFweCAxcHggI0M1QzVDNTtcbiAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI0M0Q0FDQTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLm9wZXJhdG9yIHtcbiAgICAvLyBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgcGFkZGluZy10b3A6IDM4cHg7IH1cbiAgICBwYWRkaW5nLXRvcDogMzhweDtcbiAgICAvLyB3aWR0aDogMTAlO1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gIH1cblxuICAudmFsdWVzIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHsgbWFyZ2luLXRvcDogMjVweDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1uZXctdnMtZXhpc3RpbmctY3VzdG9tZXJzIHtcblxuICAuc2VsZWN0b3IgLnNlbGVjdG9yLXdyYXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNXB4O1xuICB9XG4gIC5jaGFydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gIH1cblxuICAubGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWF4LWhlaWdodDogNzdweCAhaW1wb3J0YW50O1xuXG4gICAgLnJvdyB7IG1hcmdpbjogMHB4IC01cHg7ICY+ZGl2IHsgcGFkZGluZzogMHB4IDVweDsgfX1cblxuICAgIC50b3RhbCB7XG4gICAgICBjb2xvcjogIzVCNjY2NztcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLW51bWJlci1vZi1sZWFkcyB7XG4gIC5zdGF0cyB7XG4gICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgLnN0YXQge1xuICAgICAgbWFyZ2luOiAxNXB4IDBweCAxMHB4IDBweDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBAbGlnaHRncmF5O1xuICAgICAgc3Bhbi50aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgICAgc3Bhbi5ub21pbmFsIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIH1cbiAgICAgIHNwYW4udmFyaWF0aW9uIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtb3Bwb3J0dW5pdGllcy1mdW5uZWwge1xuICAuZnVubmVsLXdpZGdldCgpO1xufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtcGVyZm9ybWFuY2Uge1xuICAuZHJpbGwtZG93bi13aWRnZXQoKTtcbiAgLnJpZ2h0LXBhbmVsIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgXHQgbWF4LWhlaWdodDogMjE1cHg7XG4gICAgLndpZGdldC1saW5lLmhlYWRlciB7XG4gICAgICAuc2VsZWN0YWJsZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQuc2FsZXMtc2VnbWVudGVkLXR1cm5vdmVyIHtcbiAgaDMucmlnaHQge1xuICAgIG1hcmdpbi10b3A6IDU1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5zZWxlY3RvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuICAuYW5hbHlzaXMge1xuICAgIC5jZW50ZXItYm9sZCgwcHgpO1xuICB9XG4gIC53aWRnZXQtbGluZXMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiA3NXB4O1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuICB9XG5cbiAgLnJpZ2h0LXBhbmVsIHtcbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDE1cHggMTBweCA1cHggMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuZmEuZmEtaW5mby1jaXJjbGUgeyBmbG9hdDogbGVmdDsgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudC5zYWxlcy1zdW1tYXJ5IHtcbiAgLnNpbXBsZS1zdW1tYXJ5LXdpZGdldCgpO1xuICAuc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxufSIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1jdXN0b21lcnMge1xuICAuc2VsZWN0b3Ige1xuICAgIGJvcmRlci1ib3R0b206IGRhc2hlZCAxcHggI0U2RTZFNjtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIGEgeyBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnBhcmFtLXNlbGVjdG9yIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIH1cbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIG1heC1oZWlnaHQ6IDIzNXB4O1xuICAgIC53aWRnZXQtbGluZS5zdWItbGluZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtc3ViLWJnLWNvbG9yOyB9XG5cbiAgICAvLyBXaWxsIGFsbG93IHRoZSBwYXJhbXMgc2VsZWN0b3JzIHRvIGJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIGNvbnRhaW5lciAod2l0aG91dCBiZWluZyBjdXQgb24gdGhlIHJpZ2h0KVxuICAgIC5yb3cgPiBbY2xhc3MqPSdjb2wtJ10geyBwb3NpdGlvbjogc3RhdGljOyB9XG4gIH1cbiAgLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgICBpbWcgeyBtYXJnaW4tdG9wOiAtMnB4OyB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLndpZGdldC1pdGVtIC5jb250ZW50LnNhbGVzLXRvcC1vcHBvcnR1bml0aWVzIHtcbiAgLm9wcHMtY29udGFpbmVyIHtcbiAgICBtYXgtaGVpZ2h0OiAxOTVweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICAudGlsZSB7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgfVxuICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDNweCAwcHggMHB4IDEwcHg7XG4gICAgICB9XG4gICAgICAmLmZpcnN0IHtcbiAgICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAuY29sb3JlZC1hcmVhIHtcbiAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMTEwLCA2NSk7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5zZWNvbmQge1xuICAgICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgLmNvbG9yZWQtYXJlYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxZGU5YjY7XG4gICAgICAgIH1cbiAgICAgICAgLm1haW4tdGV4dCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsImNoYXJ0LXRocmVzaG9sZCB7XG5cbiAgLmF0dGFjaC1wYW5lbCB7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAsIDEzMiwgMjI4LCAwLjE2KTtcblxuICAgID4gLmF0dGFjaC1wYW5lbC10ZXh0IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICYgPiAqIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wYW5lbC10ZXh0LWxhYmVsIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXRleHQtY29sb3I7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuICAgIC5wYW5lbC10ZXh0LWlucHV0IHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGJvcmRlcjogMXB4IHdoaXRlO1xuICAgICAgcGFkZGluZzogM3B4O1xuICAgIH1cbiAgICAucGFuZWwtdGV4dC1jdXJyZW5jeSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cbiAgfVxuXG4gIC5hY3Rpb24tYnV0dG9ucyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBidXR0b24ge1xuICAgICAgcGFkZGluZzogM3B4IDZweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICYubG9hZGluZyB7XG4gICAgICAgIHBhZGRpbmc6IDNweCAyMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmVkaXRhYmxlLXRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMjJweDtcblxuICAudGl0bGUge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtdHJhbnNmb3JtO1xuICAgIC5mb250KEBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC1zaXplLDYwMCxAaW1wYWMtd2lkZ2V0LXRpdGxlLXRleHQtY29sb3IpO1xuICAgIGN1cnNvcjogdGV4dDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgbGluZS1oZWlnaHQ6IDEuOTtcbiAgfVxuXG4gIC5lZGl0YWJsZS13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAvLyBvdGhlcndpc2UsIHdoaXRlLXNwYWNlIGlzIG92ZXJyaWRlbiBpbiBtbm8tZW50ZXJwcmlzZVxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAuZWRpdGFibGUtY29udHJvbHMge1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuXG4gICAgICAuZWRpdGFibGUtaW5wdXQge1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IEBpbXBhYy13aWRnZXQtdGl0bGUtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIC8vIDY1cHggaXMgLmVkaXRhYmxlLWJ1dHRvbnMgd2lkdGhcbiAgICAgICAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDY1cHgpXCI7XG4gICAgICAgIHBhZGRpbmc6IDBweCAzcHg7XG4gICAgICB9XG5cbiAgICAgIC5lZGl0YWJsZS1idXR0b25zIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC10aXRsZS1iZztcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICBtYXJnaW46IDBweCAwcHggMHB4IDVweDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgcGFkZGluZzogMHB4IDVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmN1cnJlbmN5LWNvbnZlcnNpb25zIHtcbiAgaW1nIHtcbiAgICB3aWR0aDogMTVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmLnBvcG92ZXIgLnBvcG92ZXItdGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmluZm8tcGFuZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTVweDtcbiAgbGVmdDogMTVweDtcbiAgd2lkdGg6IH5cImNhbGMoMTAwJSAtIDMwcHgpXCI7XG4gIG1heC1oZWlnaHQ6IH5cImNhbGMoMTAwJSAtIDMwcHgpXCI7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IGRvdHRlZCAxcHggI0I3Q0RDRTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmb250LWZhbWlseTogXCJMYXRvIFNlbWlib2xkXCIsIFwiTGF0b1wiO1xuXG4gIHotaW5kZXg6IDQ7XG5cbiAgJjpob3ZlciB7IG9wYWNpdHk6IDE7IH1cblxuICAuaS1oZWFkZXIge1xuICAgIC5mYSB7IGZvbnQtc2l6ZTogMThweDsgfVxuICAgIC5mYS1pbmZvLWNpcmNsZSB7IGZsb2F0OiBsZWZ0OyB9XG4gICAgLmZhLXRpbWVzLWNpcmNsZSB7IGN1cnNvcjogcG9pbnRlcjsgZmxvYXQ6IHJpZ2h0OyB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOTI4O1xuICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LXJldmVyc2UtY29sb3I7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1mYW1pbHk6IFwiTGF0byBNZWRpdW1cIiwgXCJMYXRvXCI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLmktY29udGVudCB7XG4gICAgLnNjcm9sbGFibGUoKTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICBmbGV4OiAxO1xuXG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IEBpbXBhYy1kYXNoYm9hcmQtYm9yZGVycy1jb2xvcjtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5rZXkge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogQHNjcmVlbi1zbS1tYXgpIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gICAgICB9XG5cbiAgICAgIC52YWx1ZSB7IHRleHQtYWxpZ246IGp1c3RpZnk7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnRpbWUtcGVyaW9kLWluZm8ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAjQUJDNEM2O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLnRvcC1saW5lIC50b3AtYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cbiAgLnRvcC1idXR0b25zLXdyYXBwZXIge1xuICAgIC50b3AtYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtdG9wLWJ1dHRvbnMtY29sb3I7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHdpZHRoOiAxN3B4O1xuXG4gICAgICAmOmFjdGl2ZSwgJjpmb2N1cyB7IGJveC1zaGFkb3c6IG5vbmU7IH1cblxuICAgICAgJi5idG4taW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6ICNGRkM5Mjg7IH1cbiAgICAgIH1cbiAgICAgICYuYnRuLXJlZnJlc2gge1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDFweDtcbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiBAbWJsdWU7IH1cbiAgICAgIH1cbiAgICAgICYuYnRuLWVkaXQge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICY6aG92ZXIsICYuZWRpdC1tb2RlIHsgY29sb3I6IGRhcmtlbihAbWdyZWVuLDEwJSk7IH1cbiAgICAgIH1cbiAgICAgICYuYnRuLWNsb3NlIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAmOmhvdmVyIHsgY29sb3I6IEBwaW5rOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Muc2VsZWN0LWFjY291bnQge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufSIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmFjY291bnRpbmctYmVoYXZpb3VyIHtcblxuICAuYnRuLmJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBpbXBhYy13aWRnZXQtbGluay1jb2xvciwgMTAlKTtcbiAgICBib3JkZXI6IHNvbGlkIDFweCBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgJi5mb2N1cywgJi5hY3RpdmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7IH1cbiAgfVxuXG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5hdHRhY2gta3BpcyB7XG4gIC5hdHRhY2gta3BpIHtcbiAgICBwYWRkaW5nOiA4cHggNXB4O1xuXG4gICAgZm9ybSAucm93IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLmF0dGFjaC1rcGktZm9ybSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgfVxuXG4gICAgZm9ybSAucm93LmtwaS1kZXNjcmlwdGlvbiB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDJweDtcbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtLmF0dGFjaC1rcGktZm9ybSB7XG4gICAgICBpbnB1dC5hdHRhY2gtdGFyZ2V0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZXJyb3ItbWVzc2FnZXMge1xuICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICB3aWR0aDogMTIwcHg7XG4gICAgfVxuICB9XG5cbiAgLmF0dGFjaGVkLWtwaXMge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgfVxuXG4gIC5saXN0LWdyb3VwLWl0ZW0uYXR0YWNoZWQta3BpIHtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcblxuICAgIC5hdHRhY2hlZC1rcGktbmFtZSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2lkdGg6IDc1JTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgICAuYWxlcnRzLWNvbmZpZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgd2lkdGg6IDIxcHg7XG4gICAgICAgIGNvbG9yOiBAbWJsdWU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBAbWJsdWU7XG5cbiAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgfVxuICAgICAgLmVkaXQtYXR0YWNoZWQta3BpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBpIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgIHdpZHRoOiAyMXB4O1xuICAgICAgICAgIGNvbG9yOiBAbWJsdWU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDNweCA1cHggNXB4IDVweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCBAbWJsdWU7XG4gICAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAucmVtb3ZlLWF0dGFjaGVkLWtwaSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICB3aWR0aDogMjFweDtcbiAgICAgICAgICBjb2xvcjogQGJyYW5kLWRhbmdlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgcGFkZGluZzogM3B4IDVweCA1cHggNXB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4IEBicmFuZC1kYW5nZXI7XG4gICAgICAgICAgJjpob3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3Muc2VsZWN0LWFjY291bnQge1xuICBwYWRkaW5nOiAwcHggNXB4O1xufSIsIi5hbmFseXRpY3MgLnNldHRpbmdzLmRhdGVzLXBpY2tlciB7XG4gIGg1IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gIGJ1dHRvbi5idG4uYnRuLXNtIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAmLmRhdGUtYnV0dG9uIHsgbWFyZ2luOiAwcHggNXB4OyB9XG4gICAgJi5idG4tZGFuZ2VyIHsgZGlzcGxheTogbm9uZTsgfVxuICAgICYuYnRuLWluZm8geyBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgfVxuXG4gIC50b29sdGlwLWlubmVyIHsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuICAuZHJvcGRvd24tbWVudSA+IGxpID4gZGl2ID4gdGFibGUgeyBvdXRsaW5lOiBub25lOyB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuY2hhcnQtZmlsdGVycyB7XG4gIC5yb3cge1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEzcHg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIuYW5hbHl0aWNzIC53aWRnZXQtaXRlbSAuY29udGVudCAuc2V0dGluZ3MuaGlzdC1tb2RlLWNob3NlciB7XG4gIG1heC1oZWlnaHQ6IDcwcHg7XG5cbiAgW2NvbW1vbi10aW1lLXBlcmlvZC1pbmZvXSB7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgfVxuXG4gIC5vcHRpb25zIHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlNmU2ZTY7XG4gICAgLmZvbnQoQGltcGFjLXdpZGdldC1oaXN0LXRleHQtc2l6ZSw1MDAsQGltcGFjLXdpZGdldC1oaXN0LXRleHQtY29sb3IpO1xuICAgIGEge1xuICAgICAgLmZvbnQoQGltcGFjLXdpZGdldC1oaXN0LXRleHQtc2l6ZSw1MDAsQGltcGFjLXdpZGdldC1oaXN0LXRleHQtY29sb3IpO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IEBpbXBhYy13aWRnZXQtaGlzdC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGluay1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmFycm93LWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xNHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICAmLnJpZ2h0IHtcbiAgICAgIGxlZnQ6IDQ2cHg7XG4gICAgfVxuICAgICYubGVmdCB7XG4gICAgICBsZWZ0OiAtMzBweDtcbiAgICB9XG4gICAgLmFycm93LWJvcmRlciB7XG4gICAgICBib3JkZXItdG9wOiAxNHB4IHNvbGlkICNlNmU2ZTY7XG4gICAgICBib3JkZXItbGVmdDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogMTRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHdpZHRoOiAwcHg7XG4gICAgICBoZWlnaHQ6IDBweDtcbiAgICB9XG4gICAgLmFycm93IHtcbiAgICAgIGJvcmRlci10b3A6IDE0cHggc29saWQgQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDE0cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDEycHg7XG4gICAgICB3aWR0aDogMHB4O1xuICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5saW1pdC1lbnRyaWVzIHtcbiAgY29sb3I6IEBpbXBhYy13aWRnZXQtbGltaXQtZW50cmllcy1jb2xvcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiBkYXNoZWQgMXB4ICNFNkU2RTY7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG5cbiAgYS5vcHRpb24ge1xuICAgICYuYmFkZ2Uge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1saW1pdC1lbnRyaWVzLWNvbG9yO1xuICAgIH1cbiAgfVxuXG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5vZmZzZXRzIHtcbiAgLm9mZnNldC12YWx1ZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxuXG4gIC5vZmZzZXQtdmFsdWUgLmZhLXRyYXNoLW8ge1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBicmFuZC1kYW5nZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5cbiAgaW5wdXQgeyB3aWR0aDogNzUlOyB9XG4gIGJ1dHRvbiB7IHdpZHRoOiAzMHB4OyB9XG59XG4iLCIuYW5hbHl0aWNzIC5zZXR0aW5ncy5vcmdhbml6YXRpb25zIHtcbiAgLndpZGdldC1saW5lcy1jb250YWluZXIge1xuICAgIC53aWRnZXQtbGluZSB7XG4gICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMThweDtcbiAgICAgIC5hbHRlcm5hdGUtYmcoI2YzZjRmNCk7XG4gICAgICAuZmEge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmLmZhLXRvZ2dsZS1vbiwgJi5mYS1jaGVjay1jaXJjbGUge1xuICAgICAgICAgIGNvbG9yOiBAaW1wYWMtd2lkZ2V0LWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgJi5mYS10b2dnbGUtb2ZmLCAmLmZhLWNpcmNsZS10aGluIHtcbiAgICAgICAgICBjb2xvcjogQGltcGFjLXdpZGdldC10ZXh0LWNvbG9yLW1lZGl1bTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICYuY2xhc3NpYyB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbjogMHB4IDBweCA1cHggMHB4O1xuICAgIH1cbiAgfVxuXG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3I7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAub3B0aW9ucy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgei1pbmRleDogOTk5O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIC5ib3gtc2hhZG93KHJnYigwLCAwLCAwKSAwcHggM3B4IDE1cHggLTNweCk7XG5cbiAgICAucGFyYW0tc2VsZWN0b3ItbGFiZWwge1xuICAgICAgcGFkZGluZzogM3B4IDVweDtcbiAgICAgIC5mb250KGluaGVyaXQsNTAwLGJsYWNrKTtcbiAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBsaW5lLWhlaWdodDogMS45O1xuICAgIH1cbiAgICAucGFyYW0tc2VsZWN0b3ItbGFiZWw6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbS1zZWxlY3Rvci1jb2xvcjtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICB3aWR0aDogOHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBsaWdodGdyYXksNSUpO1xuICAgIH1cblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbXBhYy13aWRnZXQtcGFyYW0tc2VsZWN0b3ItY29sb3I7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAaW1wYWMtd2lkZ2V0LXBhcmFtLXNlbGVjdG9yLWNvbG9yLDUlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLnBhcmFtcy1jaGVja2JveGVzIHtcbiAgcGFkZGluZzogMnB4IDBweDtcbiAgaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gIH1cbiAgc3BhbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgfVxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLnBhcmFtcy1waWNrZXIge1xuICBwYWRkaW5nOiAwcHggMTBweDtcbiAgLnBhcmFtZXRlciB7XG4gICAgbWFyZ2luOiAwcHggM3B4IDNweCAwcHg7XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItYmc7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogc29saWQgMXB4IEBpbXBhYy13aWRnZXQtcGFyYW1zLXBpY2tlci1iZztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIG1hcmdpbjogMHB4IC0zcHggMHB4IDNweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgICAuYmFkZ2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGltcGFjLXdpZGdldC1iYWNrZ3JvdW5kLWNvbG9yLCA1JSk7XG4gICAgICBjb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLWJnO1xuICAgICAgcGFkZGluZzogMnB4IDZweDtcbiAgICB9XG5cbiAgICAmLnVuY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLWNvbG9yOiBAaW1wYWMtd2lkZ2V0LXBhcmFtcy1waWNrZXItdW5jaGVja2VkLWJnO1xuICAgICAgLmJhZGdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGltcGFjLXdpZGdldC1wYXJhbXMtcGlja2VyLXVuY2hlY2tlZC1iZztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5hbmFseXRpY3MgLnNldHRpbmdzLnRhZy1maWx0ZXIge1xuICBwYWRkaW5nOiAwcHggNXB4O1xuXG4gIC5idG4uYnRuLWRlZmF1bHQge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzBweDtcbiAgfVxuXG4gIC50YWctbGluZXMtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwcHggMTBweDtcblxuICAgIC50YWctbGluZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgIC50YWdzLWNvbCB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cblxuICAgICAgdGFncy1pbnB1dCB7XG4gICAgICAgIC50YWdzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjY2NjO1xuICAgICAgICAgIC50YWctaXRlbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNzlhMmJiO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuaG9zdCB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi5hbmFseXRpY3MgLnNldHRpbmdzLnRpbWUtcGVyaW9kIHtcbiAgcGFkZGluZzogMHB4IDVweDtcblxuICBzZWxlY3Qge1xuICAgIGhlaWdodDogMjJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBcbiAgJiA+IC5yb3cge1xuICAgIG1hcmdpbjogMHB4IC01cHggN3B4IC01cHg7XG4gICAgJiA+IGRpdiB7XG4gICAgICBwYWRkaW5nOiAwcHggNXB4O1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG5cbiAgICAuc3ViLXNldHRpbmcgeyBwYWRkaW5nOiA1cHg7IH1cbiAgfVxufVxuIiwiLmFuYWx5dGljcyAud2lkZ2V0LWl0ZW0gLmNvbnRlbnQgLnNldHRpbmdzLndpZHRoIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGkge1xuICAgIGNvbG9yOiBzaWx2ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICYucmVkdWNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gICAgfVxuICAgICYuZXhwYW5kIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICB9XG4gIH1cbn0iXX0= */ diff --git a/dist/impac-angular.js b/dist/impac-angular.js index 31a8f143..e1141c3b 100644 --- a/dist/impac-angular.js +++ b/dist/impac-angular.js @@ -1,6 +1,6 @@ /** * impac-angular - Impac! Front-End Library - * @version v1.6.8 + * @version v1.6.9 * @git git://github.com/maestrano/impac-angular.git * @license Copyright 2017 Maestrano Pty Ltd */ @@ -69,6 +69,7 @@ angular.module('impac.components.widgets', 'impac.components.widgets.accounts-detailed-classifications', 'impac.components.widgets.accounts-ratios', 'impac.components.widgets.accounts-cash-balance', + 'impac.components.widgets.accounts-live-balance', 'impac.components.widgets.hr-employee-details', 'impac.components.widgets.hr-employees-list', 'impac.components.widgets.hr-leaves-balance', @@ -107,6 +108,7 @@ angular.module('impac.components.widgets', angular.module('impac.components.widgets-settings', [ 'impac.components.widgets-settings.account', + 'impac.components.widgets-settings.bolt-account', 'impac.components.widgets-settings.accounts-list', 'impac.components.widgets-settings.accounting-behaviour', 'impac.components.widgets-settings.chart-filters', @@ -204,53 +206,30 @@ $templateCache.put("dashboard-templates-selector/dashboard-templates-selector.tm $templateCache.put("kpi/kpi.tmpl.html","
\n
\n
\n
\n \n
\n
\n \n
\n
\n {{kpi.layout.text.caption}}\n \n {{kpi.layout.text.emphasis}} - ({{ getRealValue() }})\n \n
\n
\n \n
\n
\n
{{kpi.name.toUpperCase()}}
\n
\n\n
\n {{kpi.layout.text.alert}}\n
\n\n
\n \n
\n
{{\'impac.kpi.current\' | translate}} {{watchable}}: {{ getRealValue() }}
\n \n
\n \n \n \n {{getTargetUnit(watchable)}}\n \n
\n impac.kpi.kpi_target_require\n impac.kpi.kpi_target_number\n
\n
\n
\n\n
\n
\n \n \n \n \n
\n
\n
\n\n \n \n \n \">\n \n\n \n \n\n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n
\n
\n"); $templateCache.put("kpis-bar/kpis-bar.tmpl.html","
\n\n
\n \n
\n \n \n
\n
\n\n
\n
\n
\n impac.kpi_bar.you_can_attach\n impac.kpi_bar.no_kpis\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n {{kpi.name}}\n impac.kpi_bar.add_to_dashboard\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n"); $templateCache.put("widget/widget.tmpl.html","
\n
\n
\n
\n\n
\n
impac.widget.include_pdf
\n
\n\n
\n
\n
\n \n

\n
\n
\n\n
\n \n \n \n
\n\n
\n \n \n
\n\n
\n"); -$templateCache.put("common/data-not-found.tmpl.html","
\n
\n
\n
{{ content.title }}
\n

{{ content.mainMessage }}

\n \n \n
\n
\n {{ content.demoData | translate }} - \n {{ content.linkMessage }}\n
\n
\n"); +$templateCache.put("common/data-not-found.tmpl.html","
\n
\n
\n
{{ content.liveBTitle }}
\n
{{ content.title }}
\n

{{ content.liveBMessage }}

\n

{{ content.mainMessage }}

\n \n \n
\n
\n {{ content.demoData | translate }} -\n {{ content.linkMessage }}\n
\n
\n"); $templateCache.put("common/delete-widget.tmpl.html","
\n
\n
\n
impac.widget.common.top_buttons.delete.title
\n

impac.widget.common.top_buttons.delete.message

\n

impac.widget.common.top_buttons.delete.explanation

\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n"); $templateCache.put("common/transactions-add.tmpl.html","
\n
\n
\n
Create a manual transaction
\n \n
\n \n \n\n \n \n\n \n \n\n \n
\n \n \n
\n\n
\n
Coming soon!
\n \n \n
\n \n \n
\n\n \n
\n Never
\n After occurences
\n On \n
\n
\n
\n\n
\n \n \n
\n
\n
\n"); -$templateCache.put("common/transactions-list.tmpl.html","
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
    \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ $ctrl.resourcesType == \'invoices\' ? \'Customer\' : \'Supplier\' }}CodeTitleStatusTransaction dateDue dateExpected payment dateAmountBalance\n
{{ trx.issuer.name }}{{ trx.transaction_number }}{{ trx.title }}{{ trx.status }}{{ trx.trxDateUTC }}{{ trx.dueDateUTC }}\n \n \n {{ trx.amount | mnoCurrency : trx.currency }}{{ trx.balance | mnoCurrency : trx.currency }}\n \n
TOTAL{{ $ctrl.totalAmount | mnoCurrency : $ctrl.currency }}{{ $ctrl.totalBalance | mnoCurrency : $ctrl.currency }}\n
\n
\n
\n"); +$templateCache.put("common/transactions-list.tmpl.html","
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
    \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ $ctrl.resourcesType == \'invoices\' ? \'Customer\' : \'Supplier\' }}CodeTitleStatusTransaction dateDue dateExpected payment dateAmountBalance\n
{{ trx.contact_name }}{{ trx.transaction_number }}{{ trx.title }}{{ trx.status }}{{ trx.trxDateUTC }}{{ trx.dueDateUTC }}\n \n \n {{ trx.amount | mnoCurrency : trx.currency }}{{ trx.balance | mnoCurrency : trx.currency }}\n \n
TOTAL{{ $ctrl.totalAmount | mnoCurrency : $ctrl.currency }}{{ $ctrl.totalBalance | mnoCurrency : $ctrl.currency }}\n
\n
\n
\n"); $templateCache.put("dashboard-settings/currency.tmpl.html","
\n \n
\n"); $templateCache.put("dashboard-settings/pdf-mode.tmpl.html","
\n
\n \n
\n\n
\n \n \n
\n
\n"); $templateCache.put("dashboard-settings/sync-apps.tmpl.html","\n
\n \n \n impac.components.sync_apps.syncing\n impac.components.sync_apps.show_sync_status\n \n\n
\n \n
\n\n
\n \n
\n\n \n\n
\n\n\n\n\n\n\n"); -$templateCache.put("widgets-common/currency-conversions.tmpl.html","\n \n\n\n\n\n"); -$templateCache.put("widgets-common/chart-threshold.tmpl.html","
\n
\n {{$ctrl.kpiCreateLabel}}: \n \n \n
\n
\n \n \n \n
\n
\n"); -$templateCache.put("widgets-common/editable-title.tmpl.html","
\n {{ parentWidget.name }}\n
\n\n
\n {{ parentWidget.name }}\n
\n\n\n
\n {{ parentWidget.name }}\n
\n"); -$templateCache.put("widgets-common/info-panel.tmpl.html","
\n\n
\n \n \n {{\'impac.widget.info_panel.information\' | translate}} {{ getWidgetTemplateName() | titleize }}\n
\n\n
\n
\n\n
\n {{i.key}}\n
\n\n
\n {{i.value}}\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets-common/time-period-info.tmpl.html","
\n {{date}}\n
\n"); -$templateCache.put("widgets-common/top-buttons.tmpl.html","
\n
\n\n \n\n \n\n \n\n \n
\n
\n"); -$templateCache.put("widgets-settings/accounting-behaviour.tmpl.html","
impac.widget.settings.account.label.accounting_behaviour
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n"); -$templateCache.put("widgets-settings/account.tmpl.html","
{{label}}
\n
\n \n
\n
\n \n \n \n
\n impac.widget.settings.attach_kpis.kpi_target_require\n impac.widget.settings.attach_kpis.kpi_target_number\n
\n
\n
\n \n
\n
\n \n
\n\n
\n
impac.widget.settings.attach_kpis.attached_alerts
\n
\n
{{\'impac.widget.settings.attach_kpis.keep\' | translate}} {{formatAttachedKpiTitle(kpi) | titleize}}
\n
\n \n
\n \n
\n
\n
\n
\n\n
\n"); -$templateCache.put("widgets-settings/chart-filters.tmpl.html","
\n
impac.widget.settings.chart_filters.title
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n"); -$templateCache.put("widgets-settings/dates-picker.tmpl.html","\n
impac.widget.settings.dates_picker.title
\n \n\n"); -$templateCache.put("widgets-settings/hist-mode.tmpl.html","
\n
\n\n \n\n
\n
\n
\n
\n
\n"); -$templateCache.put("widgets-settings/limit-entries.tmpl.html","
\n {{ (entriesLabel ? \'impac.widget.settings.limit_entries.top\' : \'impac.widget.settings.limit_entries.display\') | translate }}\n\n \n {{ $index!=0 ? \' |\' : \'\' }} \n {{ option }}\n \n\n \n | \n {{ max }}\n \n\n {{entriesLabel || (\'impac.widget.settings.limit_entries.entries\' | translate)}}\n
"); -$templateCache.put("widgets-settings/offsets.tmpl.html","
\n
\n \n + {{ intervalsCount }} {{ periodWord }}{{ intervalsCount > 1 ? \'s\' : \'\' }} x {{ offsetValue | mnoCurrency : currency}}\n
\n\n
\n \n \n
\n
\n"); -$templateCache.put("widgets-settings/organizations.tmpl.html","
\n
impac.widget.settings.organizations.select_companies
\n\n
\n
\n {{org.label}}\n \n
\n
\n
\n"); -$templateCache.put("widgets-settings/param-selector-classic.tmpl.html","\n \n\n"); -$templateCache.put("widgets-settings/param-selector.tmpl.html","\n {{((selected.labelTranslate | translate | titleize) || (selected.label | titleize)) | truncate : getTruncateValue() : \"...\" : false}} \n
\n
\n {{(option.labelTranslate | translate | titleize) || (option.label | titleize)}}\n
\n
\n
\n"); -$templateCache.put("widgets-settings/params-checkboxes.tmpl.html","
\n \n
\n"); -$templateCache.put("widgets-settings/tag-filter.tmpl.html","
impac.widget.settings.tag-filter.filter_title
\n
\n\n
\n
\n
\n 0\" translate>impac.widget.settings.tag-filter.add_filter\n AND\n
\n
\n \n \n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n"); -$templateCache.put("widgets-settings/params-picker.tmpl.html","
{{formattedParam | titleize}}
\n
\n
{{description}}
\n
\n \n {{$index + 1}}\n {{parameter.label | titleize}}\n \n \n
\n
\n \n
\n
\n"); -$templateCache.put("widgets-settings/time-period.tmpl.html","
impac.widget.settings.time_period.title
\n
\n\n \n
\n
\n impac.widget.settings.time_period.time_range\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n\n \n
\n
\n impac.widget.settings.time_period.chart_interval\n \n
\n"); -$templateCache.put("widgets-settings/time-slider.tmpl.html","
\n
\n
\n
\n {{fromDate() | momentDate : \'time-slider\'}} - {{toDate() | momentDate : \'time-slider\'}}\n
\n
\n \n
\n
\n
\n"); -$templateCache.put("widgets-settings/width.tmpl.html","\n\n"); $templateCache.put("widgets/accounts-accounting-values.tmpl.html","
\n\n
\n

impac.widget.accounting_values.turnover.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n\n
\n
\n {{ getCurrentPrice() | mnoCurrency : currency_unit : false }}\n
\n
{{currency}}
\n
{{legend}}
\n
\n\n
\n
\n
{{legend}}
\n
\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/accounts-assets-liability-summary.tmpl.html","
\n
\n

impac.widget.acc_ass_liab_smry.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n
{{widget.content.summary[0].company}} {{classification}}
\n
{{classification}} repartition
\n \n {{valuePair.label}}: {{valuePair.total | mnoCurrency : getCurrency()}}\n
\n
\n
\n
\n
\n
\n
\n"); -$templateCache.put("widgets/accounts-assets-summary.tmpl.html","
\n\n
\n

impac.widget.acc_ass_smry.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n
{{widget.content.summary[0].company}} {{classification}}
\n
{{classification}} repartition
\n \n {{valuePair.label}}: {{valuePair.total | mnoCurrency : getCurrency()}}\n
\n
\n
\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/accounts-assets-vs-liabilities.tmpl.html","
\n\n
\n

impac.widget.acc_ass_vs_liab.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n
\n |\n \n
\n
\n
1), \'col-md-12\': (widget.content.companies.length == 1)}\">\n {{ data.company }}
\n {{ data.assets | mnoCurrency : data.currency }}
\n {{ data.liabilities | mnoCurrency : data.currency }}\n
\n
\n
\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/accounts-assets-liability-summary.tmpl.html","
\n
\n

impac.widget.acc_ass_liab_smry.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n
{{widget.content.summary[0].company}} {{classification}}
\n
{{classification}} repartition
\n \n {{valuePair.label}}: {{valuePair.total | mnoCurrency : getCurrency()}}\n
\n
\n
\n
\n
\n
\n
\n"); +$templateCache.put("widgets/accounts-assets-summary.tmpl.html","
\n\n
\n

impac.widget.acc_ass_smry.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n
{{widget.content.summary[0].company}} {{classification}}
\n
{{classification}} repartition
\n \n {{valuePair.label}}: {{valuePair.total | mnoCurrency : getCurrency()}}\n
\n
\n
\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/accounts-assets-vs-liabilities.tmpl.html","
\n\n
\n

impac.widget.acc_ass_vs_liab.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n
\n |\n \n
\n
\n
1), \'col-md-12\': (widget.content.companies.length == 1)}\">\n {{ data.company }}
\n {{ data.assets | mnoCurrency : data.currency }}
\n {{ data.liabilities | mnoCurrency : data.currency }}\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-balance.tmpl.html","
\n\n
\n

impac.widget.account_balance.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n \n
\n\n \n
\n
\n\n
\n

{{getName()}}

\n
\n {{ getCurrentBalance() | mnoCurrency : getCurrency() : false }}\n
\n
{{getCurrency()}}
\n
\n\n
\n
\n
{{getName()}}
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-balance-sheet.tmpl.html","
\n\n
\n

impac.widget.account_balance_sheets.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {{\'impac.widget.account_balance_sheets.accounts\' | translate}}\n \n
\n
\n
\n
\n {{\'impac.widget.account_balance_sheets.balance\' | translate}}\n \n
\n
\n {{\'impac.widget.account_balance_sheets.balance\' | translate}}\n \n
\n
\n
\n
\n
\n\n
\n \n
\n
\n\n \n
\n
\n \n
\n
\n {{category.label}}\n
\n
\n {{widget.content.summary[category.key].totals[1] | mnoCurrency : widget.content.summary[category.key].currency}}\n
\n
\n {{widget.content.summary[category.key].totals[0] | mnoCurrency : widget.content.summary[category.key].currency}}\n
\n
\n\n \n
\n
\n
\n
\n {{account.name | titleize}}\n
\n
\n {{account.totals[1] | mnoCurrency : account.currency}}\n
\n
\n {{account.totals[0] | mnoCurrency : account.currency}}\n
\n
\n
\n
\n
\n
\n
\n
\n impac.widget.settings.tag-filter.report_filtered\n
\n
\n
\n\n
\n
\n
\n"); -$templateCache.put("widgets/accounts-cash-balance.tmpl.html","\n
\n \n
\n

Widget settings

\n\n
\n\n \n
\n \n \n
\n
\n\n \n
\n \n
\n
\n
\n
\n

\n
\n \n
\n \n
 \n \n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n"); $templateCache.put("widgets/accounts-cash-projection.tmpl.html","
\n \n
\n

Widget settings

\n\n
\n\n
\n \n \n
\n
\n\n \n
\n \n\n
\n \n\n \n
\n\n \n
\n \n \n
\n
\n\n
\n
\n\n \n
\n"); +$templateCache.put("widgets/accounts-cash-balance.tmpl.html","\n
\n \n
\n

Widget settings

\n\n
\n\n \n
\n \n \n
\n
\n\n \n
\n \n
\n
\n
\n
\n

\n
\n \n
\n \n
 \n \n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n"); $templateCache.put("widgets/accounts-cash-summary.tmpl.html","
\n\n
\n

impac.widget.account_cash_smry.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n\n
\n\n
\n \n
\n
\n {{ impac.widget.account_cash_smry.cash_flow | translate }}\n \n
\n
\n {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n
\n {{\'impac.widget.account_cash_smry.vs\' | translate}}{{getPrevDate() | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n
\n\n \n
0}\" >\n
\n\n \n
\n
\n \n
\n
\n {{statement.label | titleize}}\n
\n
\n {{getLastValue(statement) | mnoCurrency : statement.currency : false}}\n
\n
\n {{getLastVariance(statement)}}\n
\n\n
\n
\n\n \n
\n
\n
\n
\n {{account.name}}\n
\n
\n {{getLastValue(account) | mnoCurrency : account.currency : false }}\n
\n
\n {{getLastVariance(account)}}\n
\n\n
\n
\n
\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n

{{(selectedElement.label | titleize) || selectedElement.name}}

\n\n
\n
\n
{{::widget.metadata.hist_parameters.period_translation}}
\n
\n\n
\n\n \n
\n \n \n
0\" class=\"clearfix dashed\">
\n\n
\n \n
\n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n \n
\n
\n {{selectedElement.cash_flows[$index] | mnoCurrency : selectedElement.currency }}\n
\n
\n \n
\n
\n {{formatVariance(selectedElement.variances[$index])}}\n
\n
\n
\n
\n
\n\n \n
\n \n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n \n
\n {{selectedElement.cash_flows[$index] | mnoCurrency : selectedElement.currency }}\n
\n \n
\n {{formatVariance(selectedElement.variances[$index])}}\n
\n
\n\n
\n
\n\n
\n impac.widget.account_cash_smry.select.description\n
\n
\n\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/accounts-class-comparison.tmpl.html","
\n\n
\n

impac.widget.account_class_comp.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n {{entity}}\n
\n
\n {{getAmount($index)}}\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/accounts-class-comparison.tmpl.html","
\n\n
\n

impac.widget.account_class_comp.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n {{entity}}\n
\n
\n {{getAmount($index)}}\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-comparison.tmpl.html","
\n
\n\n
\n

impac.widget.account_comp.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n \n
1 && canSelectComparisonMode || isComparisonMode()\">\n
\n
\n \n
\n
\n
impac.widget.account_comp.account.select
\n
\n
\n
\n \n
\n
\n
\n \n
\n
impac.widget.account_comp.account.not_found
\n
\n\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n\n \n
\n
\n
\n \n
\n
\n {{groupedAccount.name}}\n
\n
\n {{formatAmount(groupedAccount)}}\n
\n
\n \n
\n
\n
\n\n \n
\n \n
\n
\n {{account.name}}\n
\n
\n {{formatAmount(account)}}\n
\n
\n \n
\n\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-custom-calculation.tmpl.html","
\n\n
\n
\n
\n\n

\n impac.widget.account_cust_calc.title\n

\n\n \n
\n
\n\n
\n
\n {{widget.evaluatedFormulaTranslate}}\n
\n
\n {{widget.legend}}\n
\n
\n\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n"); $templateCache.put("widgets/accounts-custom-calculation/formula.modal.html","
\n
\n
×
\n

impac.widget.account_cust_calc.formula.title

\n
\n\n
\n
\n
\n
\n \n
    \n
  • {{error}}
  • \n
\n
\n
\n
\n\n
\n
\n
\n
\n\n

\n\n
\n
\n
\n \n

impac.widget.account_cust_calc.formula.data_retrieved

\n
\n
\n\n
\n
\n
\n
\n {{$index+1}} - {{account.name}}\n
\n
\n {{account.current_balance | mnoCurrency : account.currency}}\n \n
\n
\n
\n\n
\n \n
\n
\n\n
\n

impac.widget.account_cust_calc.formula.type_here

\n \n\n

\n

\n
\n
\n
\n\n
\n
\n
\n \n \n
\n\n
\n
\n
\n"); -$templateCache.put("widgets/accounts-detailed-classifications.tmpl.html","
\n\n
\n

impac.widget.account_det_class.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n\n \n
\n
\n\n
\n\n
\n
\n
\n
\n\n \n
\n
\n {{\'impac.widget.account_det_class.account_classifications\' | translate}}\n \n
\n\n
\n {{\'impac.widget.account_det_class.amounts\' | translate}}\n \n
\n
\n\n \n
\n
\n\n \n
\n
\n \n
\n
\n {{source.label | titleize}}\n
\n
\n {{source.value | mnoCurrency : source.currency}}\n
\n
\n\n \n
\n
\n
\n
\n {{entry.label | titleize}}\n
\n
\n {{entry.value | mnoCurrency : entry.currency}}\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n"); -$templateCache.put("widgets/accounts-expense-weight.tmpl.html","
\n\n
\n

impac.widget.account_expense_weight.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n \n
\n\n
\n
\n\n
\n
\n
\n\n
\n
\n {{getName()}} to {{getComparator() | titleize}}\n
{{widget.content.summary[0].ratio | mnoCurrency : \'%\'}}
\n
\n 1\">\n {{sum.company}}: {{sum.ratio | mnoCurrency : \'%\'}}\n
\n
\n
\n
\n \n
\n
\n\n
\n"); +$templateCache.put("widgets/accounts-detailed-classifications.tmpl.html","
\n\n
\n

impac.widget.account_det_class.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n\n \n
\n
\n\n
\n\n
\n
\n
\n
\n\n \n
\n
\n {{\'impac.widget.account_det_class.account_classifications\' | translate}}\n \n
\n\n
\n {{\'impac.widget.account_det_class.amounts\' | translate}}\n \n
\n
\n\n \n
\n
\n\n \n
\n
\n \n
\n
\n {{source.label | titleize}}\n
\n
\n {{source.value | mnoCurrency : source.currency}}\n
\n
\n\n \n
\n
\n
\n
\n {{entry.label | titleize}}\n
\n
\n {{entry.value | mnoCurrency : entry.currency}}\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n"); +$templateCache.put("widgets/accounts-expense-weight.tmpl.html","
\n\n
\n

impac.widget.account_expense_weight.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n \n
\n\n
\n
\n\n
\n
\n
\n\n
\n
\n {{getName()}} to {{getComparator() | titleize}}\n
{{widget.content.summary[0].ratio | mnoCurrency : \'%\'}}
\n
\n 1\">\n {{sum.company}}: {{sum.ratio | mnoCurrency : \'%\'}}\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-expenses-revenue.tmpl.html","
\n\n
\n

impac.widget.accounts_expenses_revenue.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n\n
\n
\n
\n\n
\n \n impac.widget.accounts_expenses_revenue.expenses -\n impac.widget.accounts_expenses_revenue.revenue\n \n \n impac.widget.accounts_expenses_revenue.net_profit\n \n
\n\n
\n\n
\n {{\'impac.widget.accounts_expenses_revenue.expenses\' | translate}}: {{getCurrentExpenses() | mnoCurrency : getCurrency()}}\n
\n {{\'impac.widget.accounts_expenses_revenue.revenue\' | translate}}: {{getCurrentRevenue() | mnoCurrency : getCurrency()}}\n
\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/accounts-live-balance.tmpl.html","\n
\n \n
\n

Widget settings

\n\n
\n
\n \n\n \n
\n \n \n
\n
\n\n \n
\n\n \n \n
\n \n \n

{{getName()}}

\n
{{getCurrency()}}
\n
\n
\n
\n {{getStatementBalance().column_7 ? (getStatementBalance().column_7 | mnoCurrency : getCurrency() : false) : \'Statement Not Available\' }}\n
\n
Statement Balance
\n
\n
\n {{getTotal().column_5 ? (getTotal().column_5 | mnoCurrency : getCurrency() : false) : \'N/A\' }}\n
\n
Balance in Xero
\n
\n
\n\n
\n
\n
\n"); $templateCache.put("widgets/accounts-payable-receivable.tmpl.html","
\n\n
\n

impac.widget.accounts_payable_receivable.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n\n
\n
\n

impac.widget.accounts_payable_receivable.receivables.title

\n
\n {{getCurrentReceivable() | mnoCurrency : getCurrency() : false}}\n
\n
{{getCurrency()}}
\n
\n\n
\n

impac.widget.accounts_payable_receivable.payables.title

\n
\n {{getCurrentPayable() | mnoCurrency : getCurrency() : false}}\n
\n
{{getCurrency()}}
\n
\n
\n\n
\n
\n
\n impac.widget.accounts_payable_receivable.payable -\n impac.widget.accounts_payable_receivable.receivable\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-profit-and-loss.tmpl.html","
\n\n
\n

impac.widget.accounts_profit_and_loss.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n\n
\n\n
\n \n
\n
\n \n
\n
\n\n \n
\n
\n {{\'impac.widget.accounts_profit_and_loss.accounts\' | translate}}\n \n
\n
\n {{\'impac.widget.accounts_profit_and_loss.prof_loss\' | translate}}\n \n
\n
\n\n \n
0}\">\n
\n\n \n
\n
\n \n
\n
\n {{getName(statement) | titleize}}\n
\n
\n {{getAmount(statement) | mnoCurrency : statement.currency}}\n
\n\n
\n
\n\n \n
\n
\n
\n
\n {{account.name}}\n
\n
\n {{getAmount(account) | mnoCurrency : account.currency}}\n
\n\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n impac.widget.settings.tag-filter.report_filtered\n
\n
\n\n
\n\n
\n\n
\n\n
\n

{{::period_translation}} {{\'impac.widget.accounts_profit_and_loss.prof_and_loss\' | translate}}

\n
{{getName(selectedElements[0]) | titleize}}
\n\n
\n
\n
\n\n
\n\n \n
\n \n \n
0\" class=\"clearfix dashed\">
\n\n
\n \n
\n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n \n
\n
\n {{selectedElements[0].totals[$index] | mnoCurrency : selectedElements[0].currency}}\n
\n
\n
\n
\n
\n\n \n
\n \n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n \n
\n {{selectedElements[0].totals[$index] | mnoCurrency : selectedElements[0].currency}}\n
\n
\n
\n\n
\n
\n
\n \n {{getName(element) | titleize}}\n
\n
\n \n {{getAmount(element) | mnoCurrency : element.currency}}\n \n
\n
\n
\n
\n\n
\n impac.widget.accounts_profit_and_loss.no_elements_selected\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/accounts-ratios.tmpl.html","\n
\n \n
\n

Widget settings

\n\n
\n
\n\n \n
\n \n \n
\n
\n\n \n
\n \n
\n\n \n
\n
\n\n
\n
\n {{ totalNumerator | mnoCurrency : widget.content.layout.currency }}\n
\n\n
\n {{ calculatedNumerator | mnoCurrency : widget.content.layout.currency }}\n
\n\n
\n {{ widget.content.layout.numerator }}\n
\n\n
\n
\n\n
\n\n
\n
\n {{ totalDenominator | mnoCurrency : widget.content.layout.currency }}\n
\n\n
\n {{ calculatedDenominator | mnoCurrency : widget.content.layout.currency }}\n
\n\n
\n {{ widget.content.layout.denominator }}\n
\n\n
\n
\n\n
\n \n \n \n
\n
\n\n \n
\n
\n\n
\n
\n {{ totalRatio | mnoCurrency : \'(ratio)\' : false }}\n
\n
{{ widget.content.layout.ratio }}
\n
\n\n
\n
\n
{{ widget.content.layout.ratio }}
\n
\n
\n\n
\n\n
\n
\n
\n"); @@ -263,11 +242,11 @@ $templateCache.put("widgets/hr-payroll-taxes.tmpl.html","
\n\n
\n

impac.widget.hr_salaries_summary.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n

impac.widget.hr_salaries_summary.average_rate

\n
\n {{widget.content.total.average_rate | mnoCurrency : widget.content.total.currency}}\n
\n
\n
\n ({{widget.content.total.employees}} {{\'impac.widget.hr_salaries_summary.legend.with\' | translate}})\n
\n
\n\n
\n

{{\'impac.widget.hr_salaries_summary.filter\' | translate}}

\n
\n
\n
\n
\n
\n
\n \n
\n
\n {{data.label}}\n
\n
\n {{data.value | mnoCurrency : widget.content.total.currency}} (av.)\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/hr-superannuation-accruals.tmpl.html","
\n\n
\n

impac.widget.hr_superannuation_accruals.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n

impac.widget.hr_superannuation_accruals.superannuation_balance

\n
{{(getEmployee().total_super || 0) | mnoCurrency : getEmployee().currency}}
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/hr-timesheets.tmpl.html","
\n\n
\n

impac.widget.hr_timesheets.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n
\n\n \n
\n
\n {{\'impac.widget.hr_timesheets.from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.hr_timesheets.to\' | translate}} {{widget.content.dates[widget.content.dates.length - 1] | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n\n \n
\n
\n\n \n
\n
\n \n
\n
\n impac.widget.hr_timesheets.total_worked\n
\n
\n {{getEmployeeTimeWorked()}} h\n
\n
\n\n \n
\n
\n
\n
\n impac.widget.hr_timesheets.activities_not_found\n
\n
\n
\n
\n\n
\n
\n\n \n
\n
\n\n \n
\n
\n \n
\n
\n impac.widget.hr_timesheets.total_off\n
\n
\n {{getEmployeeTimeOff()}} h\n
\n
\n\n\n \n
\n
\n
\n
PTO
\n
0 h
\n
\n
\n
Vacation
\n
0 h
\n
\n
\n
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/hr-workforce-summary.tmpl.html","
\n\n
\n

impac.widget.hr_workforce_summary.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n

impac.widget.hr_workforce_summary.total_workforce

\n
\n {{getTotalWorkforce() | mnoCurrency : getCurrency()}}\n
\n
\n
\n ({{getNumberOfEmployees()}} {{\'impac.widget.hr_workforce_summary.legend.with\' | translate}})\n
\n
\n\n
\n

{{\'impac.widget.hr_workforce_summary.filter\' | translate}}

\n
\n
\n
\n
\n
\n
\n \n
\n
\n {{widget.content.summary.filter == \"salary_range\" ? formatSalaryRange(data) : data.label}}\n
\n
\n {{((data.value / widget.content.total.amount)*100).toFixed()}}%\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/invoices-aged-payables-receivables.tmpl.html","
\n\n
\n

impac.widget.invoices_receivables.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n
\n\n
\n
\n {{\'impac.widget.invoices_receivables.payables_and_receivables\' | translate}}\n \n
\n
\n {{\'impac.widget.invoices_receivables.total\' | translate}}\n \n
\n
\n {{\'impac.widget.invoices_receivables.oldest\' | translate}}\n \n
\n
\n\n \n
\n
\n\n
\n
\n \n
\n
\n impac.widget.invoices_receivables.aged_payables\n
\n
\n {{getTotalSum(payables) | mnoCurrency : payables.currency}}\n
\n\n
\n
\n\n
\n
\n
\n
\n {{supplier.name}}\n
\n
\n {{getTotalSum(supplier) | mnoCurrency : supplier.currency}} \n
\n
\n \n {{getOldestInvoice(supplier) | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n\n
\n
\n
\n
\n\n
\n
\n\n \n
\n
\n\n
\n
\n \n
\n
\n impac.widget.invoices_receivables.aged_receivables\n
\n
\n {{getTotalSum(receivables) | mnoCurrency : receivables.currency}}\n
\n\n
\n
\n\n
\n
\n
\n
\n {{customer.name}}\n
\n
\n {{getTotalSum(customer) | mnoCurrency : customer.currency}} \n
\n
\n \n {{getOldestInvoice(customer) | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n\n
\n\n
\n\n

{{::period_translation | titleize}} {{\'impac.widget.invoices_receivables.aged_payables_and_receivables\' | translate}}

\n\n
{{getName(selectedElements[0]) | titleize}}
\n\n
\n
\n
\n\n
\n\n \n
\n \n \n
0\" class=\"clearfix dashed\">
\n\n
\n \n
\n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n \n
\n
\n {{selectedElements[0].totals[$index] | mnoCurrency : selectedElements[0].currency}}\n
\n
\n
\n
\n
\n\n \n
\n \n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n \n
\n {{selectedElements[0].totals[$index] | mnoCurrency : selectedElements[0].currency}}\n
\n
\n\n
\n
\n

impac.widget.invoices_receivables.your_opening_balance

\n
\n
\n
\n\n
\n\n
\n
Totals
\n
\n\n
\n
\n \n
\n
\n {{getName(element) | titleize}}\n
\n
\n {{getTotalSum(element) | mnoCurrency : element.currency}}\n
\n
\n\n
\n
\n

impac.widget.invoices_receivables.your_opening_balance

\n
\n
\n
\n\n
\n\n
impac.widget.invoices_receivables.select_accounts
\n\n
\n\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/invoices-list.accessible.tmpl.html","
\n\n
\n

impac.widget.invoices_list.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n \n\n \n \n \n \n \n \n \n\n
\n \n \n
\n \n \n \n \n \n\n
{{entityTypeCap}}impac.widget.invoices_list.paidimpac.widget.invoices_list.dueimpac.widget.invoices_list.invoiced
{{entity.name}}{{entity.total_paid | mnoCurrency : entity.currency}}{{entity.total_due | mnoCurrency : entity.currency}}{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n\n
\n"); -$templateCache.put("widgets/invoices-list.tmpl.html","
\n\n
\n

impac.widget.invoices_list.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n\n \n\n \n
3\" class=\"row widget-line header\">\n
{{entityTypeCap}}
\n
\n
\n
impac.widget.invoices_list.paid
\n
impac.widget.invoices_list.due
\n
impac.widget.invoices_list.invoiced
\n
\n
\n
\n\n \n
3\" class=\"row widget-line\" ng-repeat=\"entity in widget.content.entities | limitTo:limitEntriesSelected\" tooltip-placement=\"bottom\" uib-tooltip-html=\"invoiceTooltips[entity.id]\" tooltip-animation=\"false\" tooltip-append-to-body=\"true\" tooltip-class=\"impac-widgets-tooltip\">\n
{{entity.name}}
\n
\n
\n
{{entity.total_paid | mnoCurrency : entity.currency}}
\n
{{entity.total_due | mnoCurrency : entity.currency}}
\n
{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n
\n
\n
\n \n \n
\n
\n\n\n \n\n \n
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_paid\' | translate}}
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_due\' | translate}}
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_invoiced\' | translate}}
\n
\n\n \n
\n
{{entity.name}}
\n
{{entity.total_paid | mnoCurrency : entity.currency}}
\n
{{entity.total_due | mnoCurrency : entity.currency}}
\n
{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n
\n \n \n
\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/hr-workforce-summary.tmpl.html","
\n\n
\n

impac.widget.hr_workforce_summary.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n

impac.widget.hr_workforce_summary.total_workforce

\n
\n {{getTotalWorkforce() | mnoCurrency : getCurrency()}}\n
\n
\n
\n ({{getNumberOfEmployees()}} {{\'impac.widget.hr_workforce_summary.legend.with\' | translate}})\n
\n
\n\n
\n

{{\'impac.widget.hr_workforce_summary.filter\' | translate}}

\n
\n
\n
\n
\n
\n
\n \n
\n
\n {{widget.content.summary.filter == \"salary_range\" ? formatSalaryRange(data) : data.label}}\n
\n
\n {{((data.value / widget.content.total.amount)*100).toFixed()}}%\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/invoices-summary.tmpl.html","
\n\n
\n

impac.widget.invoices_summary.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n
\n {{widget.content.legend}}\n
\n
\n
\n
\n\n
\n"); +$templateCache.put("widgets/invoices-list.accessible.tmpl.html","
\n\n
\n

impac.widget.invoices_list.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n \n\n \n \n \n \n \n \n \n\n
\n\n \n
\n \n \n \n \n \n\n
{{entityTypeCap}}impac.widget.invoices_list.paidimpac.widget.invoices_list.dueimpac.widget.invoices_list.invoiced
{{entity.name}}{{entity.total_paid | mnoCurrency : entity.currency}}{{entity.total_due | mnoCurrency : entity.currency}}{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n\n
\n"); +$templateCache.put("widgets/invoices-list.tmpl.html","
\n\n
\n

impac.widget.invoices_list.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n\n \n\n \n
3\" class=\"row widget-line header\">\n
{{entityTypeCap}}
\n
\n
\n
impac.widget.invoices_list.paid
\n
impac.widget.invoices_list.due
\n
impac.widget.invoices_list.invoiced
\n
\n
\n
\n\n \n
3\" class=\"row widget-line\" ng-repeat=\"entity in widget.content.entities | limitTo:limitEntriesSelected | orderBy:\'name\'\" tooltip-placement=\"bottom\" uib-tooltip-html=\"invoiceTooltips[entity.id]\" tooltip-animation=\"false\" tooltip-append-to-body=\"true\" tooltip-class=\"impac-widgets-tooltip\">\n
{{entity.name}}
\n
\n
\n
{{entity.total_paid | mnoCurrency : entity.currency}}
\n
{{entity.total_due | mnoCurrency : entity.currency}}
\n
{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n
\n
\n
\n \n \n
\n
\n\n\n \n\n \n
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_paid\' | translate}}
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_due\' | translate}}
\n
{{entityTypeCap}} {{\'impac.widget.invoices_list.total_invoiced\' | translate}}
\n
\n\n \n
\n
{{entity.name}}
\n
{{entity.total_paid | mnoCurrency : entity.currency}}
\n
{{entity.total_due | mnoCurrency : entity.currency}}
\n
{{entity.total_invoiced | mnoCurrency : entity.currency}}
\n
\n \n \n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-aged.tmpl.html","
\n\n
\n

impac.widget.sales_aged.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n
\n
\n
\n
{{\'impac.widget.sales_aged.from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_aged.to\' | translate}} {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}
\n\n
\n\n \n
\n \n \n
0\" class=\"clearfix dashed\">
\n\n
\n \n
\n
\n {{date}}\n
\n
\n \n
\n
\n {{getTotal($index) | mnoCurrency : widget.content.currency}}\n
\n
\n {{getTotal($index)}}\n
\n
\n
\n
\n
\n\n \n
\n \n
\n {{date}}\n
\n \n
\n {{getTotal($index) | mnoCurrency : widget.content.currency}}\n
\n
\n {{getTotal($index)}}\n
\n
\n\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-break-even.tmpl.html","
\n\n
\n

impac.widget.sales_break_even.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
{{\'impac.widget.sales_break_even.from\' | translate}} {{widget.content.period.from | momentDate : \"sales/break_even\"}} {{\'impac.widget.sales_break_even.to\' | translate}} {{widget.content.period.to | momentDate : \"sales/break_even\"}}
\n\n
\n
impac.widget.sales_break_even.title.sales
\n
{{widget.content.sales.to_date | mnoCurrency : widget.content.currency : false}}
\n {{\'impac.widget.sales_break_even.target\' | translate}}: \n {{threshold | mnoCurrency : widget.content.currency : false}}\n \n
\n\n
\n
impac.widget.sales_break_even.title.projection
\n impac.widget.sales_break_even.your_sales\n
{{getVariance() | mnoCurrency : widget.content.currency : false}}
\n \n {{\'impac.widget.sales_break_even.projected_date\' | translate}} {{getProjectedDate() | date : \'d-MM-yy\'}}\n
\n {{\'impac.widget.sales_break_even.opportunities_to_close\' | translate}} {{getOpportunitiesToClose()}}\n
\n
\n
{{widget.content.break_even.eligible_opportunities}} {{\'impac.widget.sales_break_even.eligible_opportunities\' | translate}}
\n\n
\n \n
{{\'impac.widget.sales_break_even.click_to_define\' | translate}}
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-comparison.tmpl.html","
\n\n
\n

impac.widget.sales_comparison.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n
\n {{\'impac.widget.sales_comparison.legend.compare_by\' | translate}}
\n |\n {{\'impac.widget.sales_comparison.legend.see\' | translate}}
\n
\n\n
\n\n
\n
\n {{\'impac.widget.sales_comparison.total_sales_from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_comparison.to\' | translate}} {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}\n \n
\n
\n {{\'impac.widget.sales_comparison.total\' | translate}}\n \n
\n
\n\n
\n
\n\n
\n
\n \n
\n
\n {{statement.name | titleize}}\n
\n
\n {{getTotalForPeriod(statement)}}\n
\n
\n {{getTotalForPeriod(statement) | mnoCurrency : statement.currency}}\n
\n\n
\n
\n\n
\n
\n
\n
\n {{sale.name}}\n
\n
\n {{getTotalForPeriod(sale)}}\n
\n
\n \n {{getTotalForPeriod(sale) | mnoCurrency : sale.currency}}\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n\n
\n
\n
\n
\n\n
\n\n
\n
\n {{\'impac.widget.sales_comparison.total_sales_from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_comparison.to\' | translate}} {{getLastDate() | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n\n
\n
\n \n
\n
\n {{element.name | titleize}}\n
\n
\n {{getTotalForPeriod(element)}}\n {{getTotalForPeriod(element) | mnoCurrency : element.currency}}\n
\n
\n
\n
\n\n
impac.widget.sales_comparison.select_sales_category
\n\n
\n\n
\n\n
\n
\n\n
\n"); @@ -276,18 +255,43 @@ $templateCache.put("widgets/sales-cycle.tmpl.html","
\n\n $templateCache.put("widgets/sales-forecast.tmpl.html","
\n\n
\n

impac.widget.sales_forecast.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n
\n\n
\n\n
\n
impac.widget.sales_forecast.projection_on
\n
\n\n
\n
\n\n
0}\" ng-click=\"collapsed = !collapsed\" >\n
\n {{date | momentDate : widget.metadata.hist_parameters.period}}\n
\n
\n {{widget.content.totals.slice(6)[$index] | mnoCurrency : widget.content.currency}}\n
\n
\n\n
\n
\n
\n
\n {{opp.name}}\n
\n
\n {{getOpportunityAmount(opp) | mnoCurrency : getOpportunityCurrency(opp)}}\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-growth.tmpl.html","
\n\n
\n

impac.widget.sales_growth.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n\n
{{getSelectedProduct().displayName}}
\n
{{getCurrentValue() | mnoCurrency : getSelectedProduct().currency}}
\n
{{getCurrentValue()}}
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-leads-funnel.tmpl.html","
\n\n
\n

impac.widget.sales_leads_funnel.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n\n
{{\'impac.widget.sales_leads_funnel.legend.your_leads\' | translate}} {{widget.content.from | momentDate : \"sales/leads_funnel\"}} {{\'impac.widget.sales_leads_funnel.legend.to\' | translate}} {{widget.content.to | momentDate : \"sales/leads_funnel\"}}
\n\n
\n
\n
{{elem.number}}
\n
{{elem.status | titleize}}
\n
\n
\n
\n\n
\n\n
impac.widget.sales_leads_funnel.select_a_status
\n\n
\n\n
\n
\n {{lead.first_name | titleize}} {{lead.last_name | titleize}}\n ({{lead.organization}})\n
\n
\n {{lead.lead_status | titleize}}\n
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/sales-leads-list.tmpl.html","
\n\n
\n

impac.widget.sales_leads_list.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n
\n
\n {{lead.first_name | titleize}} {{lead.last_name | titleize}}\n ({{lead.organization}})\n
\n
\n {{lead.lead_status | titleize}}\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/sales-leads-list.tmpl.html","
\n\n
\n

impac.widget.sales_leads_list.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n\n
\n
\n {{lead.first_name | titleize}} {{lead.last_name | titleize}}\n ({{lead.organization}})\n
\n
\n {{lead.lead_status | titleize}}\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-list.tmpl.html","
\n\n
\n

impac.widget.sales_list.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n {{\'impac.widget.sales_list.products\' | translate}}\n \n
\n
\n \n
\n
\n {{\'impac.widget.sales_list.total\' | translate}}\n \n
\n
\n
\n\n
\n\n
\n
\n\n
\n
\n \n
\n
\n {{company.name | titleize}}\n
\n
\n {{company.total}}\n
\n
\n {{company.total | mnoCurrency : company.currency}}\n
\n
\n\n
\n
\n
\n
\n {{product.name | titleize}}\n
\n
\n {{product.total}}\n
\n
\n \n {{product.total | mnoCurrency : product.currency}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n"); $templateCache.put("widgets/sales-margin.tmpl.html","
\n\n
\n

impac.widget.sales_margin.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n\n
\n
\n {{ getTotalMargin() | mnoCurrency : getCurrency()}}\n
\n
\n {{\'impac.widget.sales_margin.total_sold_and_purchased\' | translate}}\n
\n
\n
\n
\n\n
\n
\n
impac.widget.sales_margin.total_sold_and_purchased
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-net-sales.tmpl.html","
\n\n
\n

impac.widget.sales_net_sales.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n |\n \n
\n
\n\n
\n\n
\n
\n
impac.widget.sales_net_sales.title.sales
\n
\n {{ getValue(\'sales\') }}\n
\n
\n
\n {{ sign(\'minus\') }}\n
\n
\n
impac.widget.sales_net_sales.title.returns
\n
\n {{ getValue(\'returns\') }}\n
\n
\n
\n {{ sign(\'equal\') }}\n
\n
\n
impac.widget.sales_net_sales.title.net_result
\n
\n {{ getValue(\'net_result\') }}\n
\n
\n
\n\n
\n\n
\n
\n"); -$templateCache.put("widgets/sales-number-of-leads.tmpl.html","
\n\n
\n

impac.widget.sales_number_of_leads.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n {{\'impac.widget.sales_number_of_leads.leads_for_this\' | translate}} \n
\n\n
\n
\n
{{carac | titleize}}
\n
\n {{formatNumberOfLeads(carac).variation}}\n {{formatNumberOfLeads(carac).nominal}}\n
\n
\n
\n\n
\n {{widget.content.number_of_leads.total[1]}} {{\'impac.widget.sales_number_of_leads.leads_in_total\' | translate}}\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-new-vs-existing-customers.tmpl.html","
\n\n
\n

impac.widget.sales_new_vs_existing.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n
\n\n
\n
\n
impac.widget.sales_new_vs_existing.new_customers
\n
{{getValue(\'new\')}}
\n
\n
\n
impac.widget.sales_new_vs_existing.existing_customers
\n
{{getValue(\'existing\')}}
\n
\n
\n
impac.widget.sales_new_vs_existing.total
\n
{{getValue(\'total\')}}
\n
\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets/sales-number-of-leads.tmpl.html","
\n\n
\n

impac.widget.sales_number_of_leads.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n {{\'impac.widget.sales_number_of_leads.leads_for_this\' | translate}} \n
\n\n
\n
\n
{{carac | titleize}}
\n
\n {{formatNumberOfLeads(carac).variation}}\n {{formatNumberOfLeads(carac).nominal}}\n
\n
\n
\n\n
\n {{widget.content.number_of_leads.total[1]}} {{\'impac.widget.sales_number_of_leads.leads_in_total\' | translate}}\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-opportunities-funnel.tmpl.html","
\n\n
\n

impac.widget.sales_funnel.settings.title

\n\n
\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n\n
impac.widget.sales_funnel.legend
\n\n
\n
\n
{{elem.number}}
\n
{{elem.status | titleize}}
\n
\n
\n
\n\n
\n\n
impac.widget.sales_funnel.select_a_sales
\n\n
\n\n \n
\n
\n {{\'impac.widget.sales_funnel.assignees_opportunities\' | translate}}\n \n
\n
\n {{\'impac.widget.sales_funnel.potential_per_assignee\' | translate}}\n \n
\n
\n\n
\n
\n\n \n
\n
\n \n
\n
\n {{group.assigneeName | titleize}}\n
\n
\n {{getTotal(group.opps)}}\n
\n
\n\n \n
\n
\n
\n
\n {{opp.name | titleize}}\n
\n
\n {{getOppDetails(opp)}}\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-performance.tmpl.html","
\n\n \n
\n

impac.widget.sales_performance.settings.title

\n\n
\n\n
\n\n
\n\n
\n\n
\n \n \n
\n
\n\n\n \n
\n\n
\n\n
\n
\n\n
\n
\n
\n {{\'impac.widget.sales_performance.from\' | translate}} {{widget.content.dates[0] | momentDate : widget.metadata.hist_parameters.period}} {{\'impac.widget.sales_performance.to\' | translate}} {{widget.content.dates[widget.content.dates.length - 1] | momentDate : widget.metadata.hist_parameters.period}}\n
\n
impac.widget.sales_performance.win_ratio
\n
impac.widget.sales_performance.total_won
\n
\n\n
\n
\n
\n
{{assignee.name | titleize}}
\n
{{assignee.win_ratio}} %
\n
{{assignee.total_won | mnoCurrency: widget.metadata.currency}}
\n
\n
\n
\n
\n
\n
\n\n
\n\n
0\" class=\"no-element\" translate>impac.widget.sales_performance.select_an_employee
\n\n
impac.widget.sales_performance.pick_the_status
\n\n
0 && !no_sales_stages_selected()\">\n
\n
\n
{{\'impac.widget.sales_performance.total_won_with_colon\' | translate}} {{getTotalWon() | mnoCurrency : widget.metadata.currency}}
\n
\n\n
\n
\n
\n
\n \n {{selectedElement.name | titleize}}\n
\n
{{selectedElement.total_won | mnoCurrency: widget.metadata.currency}}
\n
\n\n
\n
\n
\n
\n
\n impac.widget.sales_performance.forecast\n
\n
\n {{selectedElement.opps.forecast.length}}\n
\n
\n\n
\n
\n
\n
{{opp.name}}
\n
{{opp.probability | number :0 }} %
\n
{{getForecastCloseDate(opp)}}
\n
{{(opp.amount.amount) | mnoCurrency : opp.amount.currency}}
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n {{\'impac.widget.sales_performance.closed_won\' | translate}}\n
\n
\n {{selectedElement.opps.won.length}}\n
\n
\n\n
\n
\n
\n
{{opp.name}}
\n
{{getCloseDate(opp)}}
\n
{{opp.amount.amount | mnoCurrency : opp.amount.currency}}
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n impac.widget.sales_performance.closed_lost\n
\n
\n {{selectedElement.opps.lost.length}}\n
\n
\n\n
\n
\n
\n
{{opp.name}}
\n
{{getCloseDate(opp)}}
\n
{{opp.amount.amount | mnoCurrency : opp.amount.currency}}
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n"); $templateCache.put("widgets/sales-segmented-turnover.tmpl.html","
\n\n
\n

impac.widget.sales_turnover.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n
\n
\n\n
{{\'impac.widget.sales_turnover.filter\' | translate}}
\n
\n
\n
\n\n
\n\n
\n
impac.widget.sales_turnover.average_price
\n
\n\n
\n
\n \n
\n
\n {{getRangeLabel(range.label)}}\n
\n
\n {{range.percentage}}%\n
\n
\n
\n\n
\n\n
\n \n

{{getMaxRange().percentage.toFixed()}}% {{\'impac.widget.sales_turnover.of_your_revenue\' | translate}} {{getMaxRange().label.split(\'-\')[0] | mnoCurrency : widget.content.currency}} {{\'impac.widget.sales_turnover.and\' | translate}} {{getMaxRange().label.split(\'-\')[1] | mnoCurrency : widget.content.currency}}.

\n
{{::analysisTranslate}}
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-summary.tmpl.html","
\n\n
\n

impac.widget.sales_summary.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n \n \n
\n\n
\n
\n
\n\n
\n
\n\n
\n"); $templateCache.put("widgets/sales-top-customers.tmpl.html","
\n
\n

impac.widget.sales_top_customers.settings.title

\n\n
\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n \n\n \n
\n
\n #\n
\n
impac.widget.sales_top_customers.customer_name
\n
\n
\n
\n
\n\n \n
\n
\n\n
\n
\n {{$index + 1}}\n
\n
\n {{entity.name}}\n
\n
\n \n \n {{ getHeaderField().getValue(entity) | mnoCurrency : entity.currency }}\n \n \n {{ getHeaderField().getValue(entity) }}\n \n
\n
\n\n
\n
\n \n {{field.label}}: {{field.getValue(entity) | mnoCurrency : entity.currency}}\n \n \n {{field.label}}: {{field.getValue(entity)}}\n
\n
\n\n
\n
\n\n
\n
\n\n
\n"); -$templateCache.put("widgets/sales-top-opportunities.tmpl.html","
\n\n
\n

impac.widget.sales_opportunities.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n {{\'impac.widget.sales_opportunities.total_potential\' | translate}} {{widget.content.total_potential | mnoCurrency : widget.content.currency || \"AUD\"}} - {{widget.content.eligible_opportunities}} {{\'impac.widget.sales_opportunities.eligible_opportunities\' | translate}}\n
\n\n
\n
\n
{{$index +1 }}
\n
\n {{opp.name | titleize}}\n
\n {{getOppDetails(opp)}}\n
\n
\n
\n\n
\n\n
\n
\n\n
\n");}]); +$templateCache.put("widgets/sales-top-opportunities.tmpl.html","
\n\n
\n

impac.widget.sales_opportunities.settings.title

\n\n
\n\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n {{\'impac.widget.sales_opportunities.total_potential\' | translate}} {{widget.content.total_potential | mnoCurrency : widget.content.currency || \"AUD\"}} - {{widget.content.eligible_opportunities}} {{\'impac.widget.sales_opportunities.eligible_opportunities\' | translate}}\n
\n\n
\n
\n
{{$index +1 }}
\n
\n {{opp.name | titleize}}\n
\n {{getOppDetails(opp)}}\n
\n
\n
\n\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets-common/chart-threshold.tmpl.html","
\n
\n {{$ctrl.kpiCreateLabel}}: \n \n \n
\n
\n \n \n \n
\n
\n"); +$templateCache.put("widgets-common/editable-title.tmpl.html","
\n {{ parentWidget.name }}\n
\n\n
\n {{ parentWidget.name }}\n
\n\n\n
\n {{ parentWidget.name }}\n
\n"); +$templateCache.put("widgets-common/currency-conversions.tmpl.html","\n \n\n\n\n\n"); +$templateCache.put("widgets-common/info-panel.tmpl.html","
\n\n
\n \n \n {{\'impac.widget.info_panel.information\' | translate}} {{ getWidgetTemplateName() | titleize }}\n
\n\n
\n
\n\n
\n {{i.key}}\n
\n\n
\n {{i.value}}\n
\n\n
\n
\n\n
\n"); +$templateCache.put("widgets-common/time-period-info.tmpl.html","
\n {{date}}\n
\n"); +$templateCache.put("widgets-common/top-buttons.tmpl.html","
\n
\n\n \n\n \n\n \n\n \n
\n
\n"); +$templateCache.put("widgets-settings/account.tmpl.html","
{{label}}
\n
\n \n
\n
\n \n \n \n
\n impac.widget.settings.attach_kpis.kpi_target_require\n impac.widget.settings.attach_kpis.kpi_target_number\n
\n
\n
\n \n
\n
\n \n
\n\n
\n
impac.widget.settings.attach_kpis.attached_alerts
\n
\n
{{\'impac.widget.settings.attach_kpis.keep\' | translate}} {{formatAttachedKpiTitle(kpi) | titleize}}
\n
\n \n
\n \n
\n
\n
\n
\n\n
\n"); +$templateCache.put("widgets-settings/bolt-account.tmpl.html","
{{label}}
\n
\n \n
\n"); +$templateCache.put("widgets-settings/dates-picker.tmpl.html","\n
impac.widget.settings.dates_picker.title
\n \n\n"); +$templateCache.put("widgets-settings/chart-filters.tmpl.html","
\n
impac.widget.settings.chart_filters.title
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n"); +$templateCache.put("widgets-settings/hist-mode.tmpl.html","
\n
\n\n \n\n
\n
\n
\n
\n
\n"); +$templateCache.put("widgets-settings/limit-entries.tmpl.html","
\n {{ (entriesLabel ? \'impac.widget.settings.limit_entries.top\' : \'impac.widget.settings.limit_entries.display\') | translate }}\n\n \n {{ $index!=0 ? \' |\' : \'\' }} \n {{ option }}\n \n\n \n | \n {{ max }}\n \n\n {{entriesLabel || (\'impac.widget.settings.limit_entries.entries\' | translate)}}\n
"); +$templateCache.put("widgets-settings/offsets.tmpl.html","
\n
\n \n + {{ intervalsCount }} {{ periodWord }}{{ intervalsCount > 1 ? \'s\' : \'\' }} x {{ offsetValue | mnoCurrency : currency}}\n
\n\n
\n \n \n
\n
\n"); +$templateCache.put("widgets-settings/organizations.tmpl.html","
\n
impac.widget.settings.organizations.select_companies
\n\n
\n
\n {{org.label}}\n \n\n \n
\n
\n
\n"); +$templateCache.put("widgets-settings/param-selector-classic.tmpl.html","\n \n\n"); +$templateCache.put("widgets-settings/param-selector.tmpl.html","\n {{((selected.labelTranslate | translate | titleize) || (selected.label | titleize)) | truncate : getTruncateValue() : \"...\" : false}} \n
\n
\n {{(option.labelTranslate | translate | titleize) || (option.label | titleize)}}\n
\n
\n
\n"); +$templateCache.put("widgets-settings/params-checkboxes.tmpl.html","
\n \n
\n"); +$templateCache.put("widgets-settings/params-picker.tmpl.html","
{{formattedParam | titleize}}
\n
\n
{{description}}
\n
\n \n {{$index + 1}}\n {{parameter.label | titleize}}\n \n \n
\n
\n \n
\n
\n"); +$templateCache.put("widgets-settings/tag-filter.tmpl.html","
impac.widget.settings.tag-filter.filter_title
\n
\n\n
\n
\n
\n 0\" translate>impac.widget.settings.tag-filter.add_filter\n AND\n
\n
\n \n \n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n"); +$templateCache.put("widgets-settings/time-period.tmpl.html","
impac.widget.settings.time_period.title
\n
\n\n \n
\n
\n impac.widget.settings.time_period.time_range\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n\n \n
\n
\n impac.widget.settings.time_period.chart_interval\n \n
\n"); +$templateCache.put("widgets-settings/time-slider.tmpl.html","
\n
\n
\n
\n {{fromDate() | momentDate : \'time-slider\'}} - {{toDate() | momentDate : \'time-slider\'}}\n
\n
\n \n
\n
\n
\n"); +$templateCache.put("widgets-settings/width.tmpl.html","\n\n");}]); (function() { var module; @@ -347,7 +351,7 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0 && _.any(scope.connectors, function(c) { - return c.status === "PENDING" || c.status === "RUNNING"; - }); - scope.hasError = scope.connectors && scope.connectors.length > 0 && _.any(scope.connectors, function(c) { - return isError(c); - }); - scope.hasConnectors = scope.connectors.length > 0; - scope.hasApps = scope.hasConnectors || scope.hasRunningCube; - ref = scope.connectors; - for (i = 0, len = ref.length; i < len; i++) { - connector = ref[i]; - formatDate(connector); - } - if (wasSyncing && !scope.isSyncing) { - return refreshDashboard(); - } - }; - isError = function(connector) { - switch (connector.status) { + module.component('transactionsList', { + templateUrl: 'common/transactions-list.tmpl.html', + bindings: { + onHide: '&', + onPageChanged: '&', + onUpdateExpectedDate: '&', + onChangeResources: '&', + onDeleteTransaction: '&', + transactions: '<', + currency: '<', + totalRecords: '<', + resourcesType: '<' + }, + controller: function() { + var ctrl; + ctrl = this; + ctrl.$onInit = function() { + var i, len, m, ref, results, trx; + ctrl.currentPage = 1; + ctrl.totalAmount = 0.0; + ctrl.totalBalance = 0.0; + ref = ctrl.transactions; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + trx = ref[i]; + ctrl.totalAmount += trx.amount; + ctrl.totalBalance += trx.balance; + trx.trxDateUTC = moment.utc(trx.transaction_date).format('DD MMM YYYY'); + trx.dueDateUTC = moment.utc(trx.due_date).format('DD MMM YYYY'); + trx.showReset = trx.due_date !== trx.expected_payment_date; + m = moment.utc(trx.expected_payment_date); + results.push(trx.datePicker = { + opened: false, + date: new Date(m.year(), m.month(), m.date()), + toggle: function() { + return this.opened = !this.opened; + } + }); + } + return results; + }; + ctrl.changeResourcesType = function() { + return ctrl.onChangeResources({ + resourcesType: ctrl.resourcesType + }).then(function() { + return ctrl.$onInit(); + }); + }; + ctrl.changeExpectedDate = function(trx) { + trx.showReset = true; + return ctrl.onUpdateExpectedDate({ + trxId: trx.id, + date: trx.datePicker.date + }); + }; + ctrl.resetExpectedDate = function(trx) { + var expDate, m; + trx.showReset = false; + m = moment.utc(trx.due_date); + expDate = new Date(m.year(), m.month(), m.date()); + trx.datePicker.date = expDate; + return ctrl.onUpdateExpectedDate({ + trxId: trx.id, + date: trx.datePicker.date + }); + }; + return ctrl; + } + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.dashboard-settings.sync-apps', []); + + module.directive('dashboardSettingSyncApps', ["$templateCache", "$log", "$http", "$filter", "$uibModal", "$document", "$timeout", "ImpacMainSvc", "ImpacRoutes", "ImpacWidgetsSvc", "ImpacKpisSvc", "ImpacTheming", "poller", "$sce", function($templateCache, $log, $http, $filter, $uibModal, $document, $timeout, ImpacMainSvc, ImpacRoutes, ImpacWidgetsSvc, ImpacKpisSvc, ImpacTheming, poller, $sce) { + return { + restrict: 'A', + scope: {}, + template: $templateCache.get('dashboard-settings/sync-apps.tmpl.html'), + link: function(scope, element, attrs) { + var destroyPoller, formatDate, getOffset, initPoller, isError, processAppInstancesSync, refreshDashboard; + scope.isSyncing = false; + scope.hasConnector = false; + scope.hasError = false; + scope.modalOpened = false; + getOffset = function() { + var hours, minutes, offsetArray, timezone; + timezone = new Date().getTimezoneOffset(); + offsetArray = ['+', '00', '00']; + if (!(timezone < 0)) { + offsetArray[0] = '-'; + } + hours = "" + (Math.abs(Math.floor(timezone / 60))); + if (hours.length < 2) { + offsetArray[1] = "0" + hours; + } else { + offsetArray[1] = hours; + } + minutes = "" + (Math.abs(timezone % 60)); + if (minutes.length < 2) { + offsetArray[2] = "0" + minutes; + } else { + offsetArray[2] = minutes; + } + return offsetArray.join(''); + }; + formatDate = function(connector) { + if (!connector.last_sync_date) { + return; + } + return connector.formatted_date = $filter('date')(connector.last_sync_date, "h:mma, yyyy-MM-dd", getOffset()); + }; + refreshDashboard = function() { + ImpacWidgetsSvc.refreshAll(true); + ImpacKpisSvc.refreshAll(true); + if (_.any(scope.connectors, function(c) { + return isError(c); + })) { + return scope.triggerSyncAlertsModal(); + } + }; + processAppInstancesSync = function(responseData) { + var connector, i, len, ref, wasSyncing; + scope.connectors = angular.copy(responseData.connectors) || []; + scope.hasRunningCube = responseData.has_running_cube || false; + wasSyncing = scope.isSyncing; + scope.isSyncing = scope.connectors && scope.connectors.length > 0 && _.any(scope.connectors, function(c) { + return c.status === "PENDING" || c.status === "RUNNING"; + }); + scope.hasError = scope.connectors && scope.connectors.length > 0 && _.any(scope.connectors, function(c) { + return isError(c); + }); + scope.hasConnectors = scope.connectors.length > 0; + scope.hasApps = scope.hasConnectors || scope.hasRunningCube; + ref = scope.connectors; + for (i = 0, len = ref.length; i < len; i++) { + connector = ref[i]; + formatDate(connector); + } + if (wasSyncing && !scope.isSyncing) { + return refreshDashboard(); + } + }; + isError = function(connector) { + switch (connector.status) { case "ERROR": return true; case "FAILED": @@ -5647,2468 +5654,1956 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false, + currency: data.currency + }; + chartData = ChartFormatterSvc.combinedBarChart(inputData, options, false); + return $scope.drawTrigger.notify(chartData); } }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); -}).call(this); - + module.directive('widgetAccountsAccountingValues', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsAccountingValuesCtrl' + }; + }); -/* - * @desc Chart Threshold - create Widget KPIs from Widget charts. (Highchart widgets only). - * @todo support for multiple KPI watchables? - * @todo support for multiple KPI targets? - * @todo support for multiple attachable KPIs? - */ +}).call(this); (function() { var module; - module = angular.module('impac.components.widgets-common.chart-threshold', []); + module = angular.module('impac.components.widgets.accounts-assets-summary', []); - module.component('chartThreshold', { - templateUrl: 'widgets-common/chart-threshold.tmpl.html', - bindings: { - widget: '<', - chartPromise: ' 1) { + $scope.dataSource = w.content.repartition; + } else { + $scope.dataSource = w.content.summary; } - promise = ctrl.isEditingKpi ? ImpacKpisSvc.update(getKpi(), params, false).then(function(kpi) { - ctrl.chart.removeThreshold(kpi.id); - return angular.extend(getKpi(), kpi); - }) : (params.metadata.hist_parameters = ctrl.widget.metadata.hist_parameters, params.widget_id = ctrl.widget.id, ImpacKpisSvc.create('impac', ctrl.kpi.endpoint, ctrl.kpi.watchables[0], params).then(function(kpi) { - ctrl.widget.kpis.push(kpi); - return kpi; - })); - return promise.then(function(kpi) { - if (_.isFunction(ctrl.onComplete)) { - return ctrl.onComplete({ - $event: { - kpi: kpi - } - }); - } - })["finally"](function() { - return ctrl.cancelCreateKpi(); + } + if (!w.metadata.classification) { + w.metadata.classification = "ASSET"; + } + return $translate('impac.widget.acc_ass_smry.' + w.metadata.classification.toLowerCase() + ".many").then(function(result) { + return $scope.classification = result; + }); + }; + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; + } + }; + $scope.getAccountColor = function(elem) { + if ($scope.isDataFound) { + return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = _.map($scope.dataSource, function(company) { + return { + label: company.label, + value: company.total + }; }); - }; - ctrl.deleteKpi = function() { - var kpi, kpiDesc; - if (ctrl.loading) { - return; - } - ctrl.loading = true; - kpiDesc = ctrl.widget.name + " " + (kpi = getKpi()).element_watched; - return ImpacKpisSvc["delete"](kpi).then(function() { - toastr.success("Deleted " + kpiDesc + " KPI"); - _.remove(ctrl.widget.kpis, function(k) { - return k.id === kpi.id; - }); - ctrl.chart.removeThreshold(kpi.id); - if (_.isFunction(ctrl.onComplete)) { - return ctrl.onComplete({ - $event: {} - }); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetAccountsAssetsSummary', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsAssetsSummaryCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.accounts-assets-liability-summary', []); + + module.controller('WidgetAccountsAssetsLiabilitySummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$translate", function($scope, $q, ChartFormatterSvc, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise, $scope.paramSelectorDeferred.promise]; + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary); + if (!w.metadata.classification) { + w.metadata.classification = "ASSET"; + } + $translate('impac.widget.acc_ass_liab_smry.' + w.metadata.classification.toLowerCase() + '.many').then(function(result) { + return $scope.classification = result; + }); + $translate(['impac.widget.acc_ass_liab_smry.accounts.asset', 'impac.widget.acc_ass_liab_smry.accounts.liability']).then(function(translation) { + $scope.accountsOptions = [ + { + label: translation['impac.widget.acc_ass_liab_smry.accounts.asset'], + value: 'ASSET' + }, { + label: translation['impac.widget.acc_ass_liab_smry.accounts.liability'], + value: 'LIABILITY' } - }, function() { - return toastr.error("Failed to delete " + kpiDesc + " KPI", 'Error'); - })["finally"](function() { - return ctrl.cancelCreateKpi(); - }); - }; - getKpi = function() { - return _.find(ctrl.widget.kpis, function(k) { - return k.id === ctrl.draftTarget.kpiId; - }); - }; - onChartNotify = function(chart) { - ctrl.chart = chart; - if (!validateHistParameters()) { - return; + ]; + if (!$scope.selectedAccountsOption) { + return $scope.selectedAccountsOption = angular.copy(_.find($scope.accountsOptions, { + value: w.metadata.classification + })); } - ctrl.chart.options.chartOnClickCallbacks.push(onChartClick); - _.each(buildThresholdsFromKpis(), function(threshold) { - var thresholdSerie; - thresholdSerie = ctrl.chart.findThreshold(threshold.kpiId); - if (thresholdSerie == null) { - thresholdSerie = ctrl.chart.addThreshold(threshold); - } - return ctrl.chart.addThresholdEvent(thresholdSerie, 'click', onThresholdClick); - }); - }; - onChartClick = function(event) { - var value; - value = event.yAxis && event.yAxis[0] && event.yAxis[0].value; - if (!value || _.isNaN(value)) { - return; + }); + if ($scope.isDataFound) { + if (w.metadata.organization_ids.length > 1) { + return $scope.dataSource = w.content.repartition; } else { - value = value.toFixed(2); - } - return ctrl.createKpi(value); - }; - onThresholdClick = function(thresholdSerie) { - var opts, thresholdValue; - thresholdValue = (opts = thresholdSerie.options).data[opts.data.length - 1][1].toFixed(2); - return ctrl.editKpi({ - kpiId: opts.kpiId, - value: thresholdValue - }); - }; - disableAttachability = function(logMsg) { - ctrl.disabled = true; - toastr.warning("Chart threshold KPI disabled!", ctrl.widget.name + " Widget"); - if (logMsg) { - return $log.warn("Impac! - " + ctrl.widget.name + " Widget: " + logMsg); + return $scope.dataSource = w.content.summary; } - }; - toggleKpiPanel = function() { - return $timeout(function() { - if (ctrl.showPanel) { - growChart(); - } else { - shrinkChart(); - } - return ctrl.showPanel = !ctrl.showPanel; - }); - }; - shrinkChart = function() { - if (!ctrl.chart) { - return; - } - ctrl.chart.hc.setSize(null, ctrl.chart.hc.chartHeight - ctrl.chartShrinkSize, false); - return ctrl.chart.hc.container.parentElement.style.height = ctrl.chart.hc.chartHeight + "px"; - }; - growChart = function() { - if (!ctrl.chart) { - return; - } - ctrl.chart.hc.setSize(null, ctrl.chart.hc.chartHeight + ctrl.chartShrinkSize, false); - return ctrl.chart.hc.container.parentElement.style.height = ctrl.chart.hc.chartHeight + "px"; - }; - validateHistParameters = function() { - var widgetHistParams; - widgetHistParams = ctrl.widget.metadata && ctrl.widget.metadata.hist_parameters; - ctrl.disabled = (widgetHistParams != null) && moment(widgetHistParams.to) <= moment.utc().startOf('day'); - return !ctrl.disabled; - }; - buildThresholdsFromKpis = function() { - var targets; - targets = (ctrl.widget.kpis != null) && ctrl.widget.kpis[0] && ctrl.widget.kpis[0].targets; - if (!ImpacKpisSvc.validateKpiTargets(targets)) { - return []; - } - return [ - { - kpiId: ctrl.widget.kpis[0].id, - value: targets.threshold[0].min, - name: 'Alert Threshold', - color: ctrl.thresholdColor - } - ]; - }; - return ctrl; - }] - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-common.currency-conversions', []); - - module.directive('commonCurrencyConversions', ["$templateCache", "ImpacAssets", "$filter", function($templateCache, ImpacAssets, $filter) { - return { - restrict: 'A', - scope: { - fxAmounts: '=', - baseCurrency: '=', - ratesDate: '=' - }, - template: $templateCache.get('widgets-common/currency-conversions.tmpl.html'), - link: function(scope, element) { - scope.currencyConversionsIcon = ImpacAssets.get('currencyConversionsIcon'); - scope.popoverTemplateUrl = $templateCache.get('widgets-common/details-popover.html'); - scope.popoverTitle = "Currency Conversions Info"; - return scope.formattedRatesDate = $filter('momentDate')(scope.ratesDate, 'currency-conversions'); } }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-common.editable-title', []); - - module.controller('CommonEditableTitleCtrl', ["$scope", "ImpacWidgetsSvc", "ImpacDashboardsSvc", "$translate", function($scope, ImpacWidgetsSvc, ImpacDashboardsSvc, $translate) { - var w; - w = $scope.parentWidget; - $scope.updateName = function() { - var data; - if (w.name.length === 0) { - w.name = w.originalName; - return $translate.instant('impac.widget.editable_title.incorrect_name'); - } else { - data = { - name: w.name - }; - return ImpacWidgetsSvc.update(w, data, false); + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; } }; - $scope.getTooltip = function() { - var tooltipText; - if ($scope.pdfMode) { - return ''; - } else { - tooltipText = $translate.instant('impac.widget.editable_title.tooltip_text'); - return w.name + (w.hasEditAbility ? ' ' + tooltipText : ''); + $scope.getAccountColor = function(elem) { + if ($scope.isDataFound) { + return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); } }; - ImpacDashboardsSvc.pdfModeEnabled().then(null, null, function() { - return $scope.pdfMode = true; - }); - return ImpacDashboardsSvc.pdfModeCanceled().then(null, null, function() { - return $scope.pdfMode = false; - }); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = _.map($scope.dataSource, function(company) { + return { + label: company.label, + value: company.total + }; + }); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('commonEditableTitle', ["$templateCache", function($templateCache) { + module.directive('widgetAccountsAssetsLiabilitySummary', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - onToggle: '&' - }, - template: $templateCache.get('widgets-common/editable-title.tmpl.html'), - controller: 'CommonEditableTitleCtrl' + controller: 'WidgetAccountsAssetsLiabilitySummaryCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-common.info-panel', []); + module = angular.module('impac.components.widgets.accounts-assets-vs-liabilities', []); - module.directive('commonInfoPanel', ["$templateCache", "ImpacUtilities", function($templateCache, ImpacUtilities) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - onClose: '&' - }, - template: $templateCache.get('widgets-common/info-panel.tmpl.html'), - link: function(scope) { - var w; - w = scope.parentWidget; - scope.hideInfoPanel = true; - scope.toggleInfoPanel = function() { - scope.hideInfoPanel = !scope.hideInfoPanel; - return scope.onClose(); - }; - return scope.getWidgetTemplateName = function() { - var cssClass, cssClassArray, widgetCategory, widgetName; - cssClass = ImpacUtilities.fetchWidgetCssClass(w); - if (!cssClass) { - return ""; + module.controller('WidgetAccountsAssetsVsLiabilitiesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise]; + $translate(['impac.widget.acc_ass_vs_liab.asset.one', 'impac.widget.acc_ass_vs_liab.liability.one']).then(function(translation) { + return $scope.classificationTranslation = { + "ASSET": translation['impac.widget.acc_ass_vs_liab.asset.one'].toUpperCase(), + "LIABILITY": translation['impac.widget.acc_ass_vs_liab.liability.one'].toUpperCase() + }; + }); + w.initContext = function() { + var index; + $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.companies); + if ($scope.isDataFound) { + index = 0; + $scope.companiesList = _.map(w.content.companies, function(company) { + var assetSum, liabilitiesSum, result; + assetSum = _.find(w.content.summary, (function(sum) { + return sum.classification === "ASSET"; + })); + liabilitiesSum = _.find(w.content.summary, (function(sum) { + return sum.classification === "LIABILITY"; + })); + result = { + company: company, + assets: assetSum != null ? assetSum.totals[index] : 0.0, + liabilities: liabilitiesSum != null ? liabilitiesSum.totals[index] : 0.0, + currency: w.content.currency + }; + index++; + return result; + }); + return $scope.titleTranslation; + } + }; + $scope.assetsColor = ChartFormatterSvc.getColor(0); + $scope.liabilitiesColor = ChartFormatterSvc.getColor(1); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, datasets, inputData, options; + if ($scope.isDataFound) { + datasets = _.map(w.content.summary, function(sum) { + if (_.includes(['ASSET', 'LIABILITY'], sum.classification)) { + return { + title: $scope.classificationTranslation[sum.classification], + values: sum.totals + }; } - cssClassArray = cssClass.split('-'); - widgetCategory = cssClassArray.slice(0, 1); - widgetName = cssClassArray.slice(1, cssClassArray.length).join(' '); - return widgetCategory + " - " + widgetName; + }); + datasets = _.sortByOrder(datasets, ['title']); + inputData = { + labels: w.content.companies, + datasets: _.compact(datasets) + }; + options = { + showTooltips: false, + showXLabels: false, + barValueSpacing: Math.max(8 - w.content.companies.length, 1) }; + chartData = ChartFormatterSvc.combinedBarChart(inputData, options); + return $scope.drawTrigger.notify(chartData); } }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetAccountsAssetsVsLiabilities', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsAssetsVsLiabilitiesCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-common.top-buttons', []); + module = angular.module('impac.components.widgets.accounts-balance', []); - module.controller('CommonTopButtonsCtrl', ["$scope", "$rootScope", "$log", "ImpacWidgetsSvc", "ImpacAssets", "ImpacUtilities", function($scope, $rootScope, $log, ImpacWidgetsSvc, ImpacAssets, ImpacUtilities) { - var w; - w = $scope.parentWidget; - w.isEditMode = false; - $scope.toggleEditMode = function() { - if (!w.isLoading) { - if (w.isEditMode) { - w.isEditMode = false; - return ImpacWidgetsSvc.initWidgetSettings(w); - } else { - return w.isEditMode = true; - } - } - }; - return $scope.hasInfo = function() { - return w && (w.content != null) && (w.content.info != null) && w.content.info.length > 0; - }; - }]); - - module.directive('commonTopButtons', ["$templateCache", function($templateCache) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - onRefresh: '=', - onToggleInfoPanel: '&', - onToggleDeleteWidget: '&' - }, - template: $templateCache.get('widgets-common/top-buttons.tmpl.html'), - controller: 'CommonTopButtonsCtrl' + module.controller('WidgetAccountsBalanceCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", function($scope, $q, ChartFormatterSvc, $filter) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.accountBackDeferred = $q.defer(); + $scope.accountFrontDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.histModeDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.accountBackDeferred, $scope.accountFrontDeferred, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; + $scope.kpiExtraParams = {}; + $scope.isDataFound = true; + w.initContext = function() { + return $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.account_list); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-common.time-period-info', []); - - module.directive('commonTimePeriodInfo', ["$templateCache", "ImpacUtilities", "$translate", "$filter", function($templateCache, ImpacUtilities, $translate, $filter) { - return { - restrict: 'A', - scope: { - context: '=' - }, - template: $templateCache.get('widgets-common/time-period-info.tmpl.html'), - link: function(scope, element) { - var getBehaviour, getDateInfo, getInjectAfter, getInjectBefore, yieldCaption; - getBehaviour = function() { - if (angular.isFunction(scope.context.accountingBehaviour)) { - return scope.context.accountingBehaviour(); - } else { - return scope.context.accountingBehaviour; - } - }; - getInjectBefore = function() { - if (!angular.isDefined(scope.context.injectBefore)) { - return ''; - } - if (angular.isFunction(scope.context.injectBefore)) { - return scope.context.injectBefore(); - } else { - return scope.context.injectBefore; - } - }; - getInjectAfter = function() { - if (!angular.isDefined(scope.context.injectAfter)) { - return ''; - } - if (angular.isFunction(scope.context.injectAfter)) { - return scope.context.injectAfter(); - } else { - return scope.context.injectAfter; - } - }; - yieldCaption = function(caption) { - if (getInjectBefore().length > 0) { - caption = caption.toLowerCase(); - } - return [getInjectBefore(), caption, getInjectAfter()].join(' '); - }; - getDateInfo = function() { - var dates; - dates = ImpacUtilities.selectedTimeRange(scope.context.histParams); - dates.from = $filter('momentDate')(dates.from, 'time-period'); - dates.to = $filter('momentDate')(dates.to, 'time-period'); - if (getBehaviour() === 'bls') { - return $translate('impac.widget.common.time_period_info.to', { - dateTo: "" + dates.to - }).then(function(label) { - return scope.date = yieldCaption(label); - }); - } else { - return $translate('impac.widget.common.time_period_info.from_to', { - dateFrom: "" + dates.from, - dateTo: "" + dates.to - }).then(function(label) { - return scope.date = yieldCaption(label); - }); - } - }; - getDateInfo(); - scope.$watch('context.histParams', function(newVal, oldVal) { - if (!_.isEqual(newVal, oldVal)) { - return getDateInfo(); - } - }); + $scope.getName = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.name; } }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.account', []); - - module.controller('SettingAccountCtrl', ["$scope", "$filter", function($scope, $filter) { - var formatAmount, setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "account"; - setting.isInitialized = false; - setting.initialize = function() { - w.selectedAccount = w.selectedAccount || null; - if ((w.content != null) && (w.content.account_list != null) && (w.metadata != null) && (w.metadata.account_uid != null)) { - w.selectedAccount = _.find(w.content.account_list, function(acc) { - return acc.uid === w.metadata.account_uid; - }); - return setting.isInitialized = true; + $scope.getBehaviour = function() { + return (w.selectedAccount != null) && w.selectedAccount.accounting_behaviour; + }; + $scope.getCurrentBalance = function() { + if (w.selectedAccount != null) { + if ($scope.getBehaviour() === 'pnl') { + return _.sum(w.selectedAccount.balances); + } else { + return _.last(w.selectedAccount.balances); + } + } else { + return 0.0; } }; - setting.toMetadata = function() { + $scope.getCurrency = function() { if (w.selectedAccount != null) { - return { - account_uid: w.selectedAccount.uid - }; + return w.selectedAccount.currency; } }; - formatAmount = function(anAccount) { - var balance; - balance = anAccount.current_balance || anAccount.balance || 0.0; - return $filter('mnoCurrency')(balance, anAccount.currency); + $scope.displayAccount = function() { + return $scope.updateSettings(false).then(function() { + return w.format(); + }); }; - $scope.formatLabel = function(anAccount) { - if (anAccount.company != null) { - return anAccount.company + " - " + anAccount.name + " (" + (formatAmount(anAccount)) + ")"; - } else { - return anAccount.name + " (" + (formatAmount(anAccount)) + ")"; + $scope.updateKpiExtraParams = function(key, value) { + return $scope.kpiExtraParams[key] = angular.copy(value); + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, barData, chartData, data, dates, datesSource, lineData, options, period; + if ($scope.isDataFound && (w.selectedAccount != null)) { + data = angular.copy(w.selectedAccount); + datesSource = data.dates || w.content.dates; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(datesSource, function(date) { + return $filter('momentDate')(date, period); + }); + lineData = { + title: data.name, + labels: dates, + values: data.balances + }; + barData = { + labels: dates, + datasets: [ + { + title: data.name, + values: data.balances + } + ] + }; + all_values_are_positive = true; + angular.forEach(data.balances, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false + }; + chartData = ChartFormatterSvc.lineChart([lineData], options); + if ($scope.getBehaviour() === 'pnl') { + chartData = ChartFormatterSvc.combinedBarChart(barData, options, false); + } + return $scope.drawTrigger.notify(chartData); } }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingAccount', ["$templateCache", "$translate", function($templateCache, $translate) { + module.directive('widgetAccountsBalance', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - label: '@', - showLabel: '=?', - onAccountSelected: '&' - }, - link: function(scope, element) { - if (!scope.label) { - return scope.label = $translate.instant('impac.widget.settings.account.label'); - } - }, - template: $templateCache.get('widgets-settings/account.tmpl.html'), - controller: 'SettingAccountCtrl' + controller: 'WidgetAccountsBalanceCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.accounts-list', []); + module = angular.module('impac.components.widgets.accounts-balance-sheet', []); - module.controller('SettingAccountsListCtrl', ["$scope", "$timeout", "ImpacWidgetsSvc", function($scope, $timeout, ImpacWidgetsSvc) { - var restoreSavedAccounts, setting, w; - w = $scope.parentWidget; - w.moveAccountToAnotherList = function(account, src, dst, triggerUpdate) { - if (triggerUpdate == null) { - triggerUpdate = true; - } - if (_.isEmpty(src) || _.isEmpty(account)) { - return; - } - dst || (dst = []); - _.remove(src, function(acc) { - return account.uid === acc.uid; - }); - dst.push(account); - if (triggerUpdate) { - ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - return null; - }; - setting = {}; - setting.key = "accounts-list"; - setting.initialize = function() { - setting.isInitialized = false; - w.remainingAccounts = []; - w.selectedAccounts = []; - if ((w.content != null) && !_.isEmpty(w.content.complete_list)) { - w.remainingAccounts = angular.copy(w.content.complete_list); - return $timeout(function() { - restoreSavedAccounts(); - return setting.isInitialized = true; + module.controller('WidgetAccountsBalanceSheetCtrl', ["$scope", "$q", "ImpacWidgetsSvc", "ImpacMainSvc", "ImpacUtilities", "$translate", "ImpacTheming", function($scope, $q, ImpacWidgetsSvc, ImpacMainSvc, ImpacUtilities, $translate, ImpacTheming) { + var initDates, settingsPromises, sortAccountsBy, sortData, translateCategories, unCollapsedSetting, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.datesPickerDeferred = $q.defer(); + $scope.tagFilterDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.datesPickerDeferred.promise, $scope.tagFilterDeferred.promise]; + $scope.datesPickerTemplate = "
\n
\n \n
\n
\n \n
\n
"; + $scope.ascending = true; + $scope.sortedColumn = 'account'; + $scope.filterTagsEnabled = ImpacTheming.get().widgetSettings.tagging.enabled; + $scope.isReportFiltered = function() { + return (w.metadata != null) && (w.metadata.filter_query != null) && Object.keys(w.metadata.filter_query).length > 0; + }; + initDates = function() { + $scope.fromDate = w.metadata.hist_parameters.from; + $scope.toDate = w.metadata.hist_parameters.to; + return $scope.keepToday = w.metadata.hist_parameters.keep_today; + }; + if (!((w.metadata != null) && (w.metadata.hist_parameters != null))) { + w.metadata || (w.metadata = {}); + w.metadata.hist_parameters = { + to: moment().format('YYYY-MM-DD'), + keep_today: true, + period: 'RANGE' + }; + ImpacMainSvc.load().then(function(config) { + var fyEndMonth; + fyEndMonth = parseInt(config.currentOrganization.financial_year_end_month) || 6; + w.metadata.hist_parameters.from = moment(ImpacUtilities.financialYearDates(fyEndMonth).end, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); + return initDates(); + }); + } else { + initDates(); + } + w.initContext = function() { + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { + $scope.dates = w.content.dates; + $scope.unCollapsed = w.metadata.unCollapsed || []; + translateCategories(Object.keys(w.content.summary)).then(function(categories) { + $scope.categories = categories; + return sortData(); }); } + return initDates(); }; - setting.toMetadata = function() { - if (setting.isInitialized) { - return { - accounts_list: _.map(w.selectedAccounts, (function(acc) { - return acc.uid; - })) - }; + $scope.toggleCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === categoryName; + }); + } else { + $scope.unCollapsed.push(categoryName); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); } }; - restoreSavedAccounts = function() { - var acc, accUid, accountsList, i, len, results; - if (_.isEmpty(w.metadata.accounts_list) && _.isEmpty($scope.accountsList)) { + $scope.isCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + return false; + } else { + return true; + } + } + }; + translateCategories = function(categories) { + var translationPromises; + translationPromises = _.map(categories, function(category) { + return $translate('impac.widget.account_balance_sheets.' + category.toLowerCase()).then(function(translation) { + return { + label: translation, + key: category + }; + }, function() { + return { + label: category.toLowerCase(), + key: category + }; + }); + }); + return $q.all(translationPromises); + }; + sortAccountsBy = function(getElem) { + return angular.forEach($scope.categories, function(cat) { + var sElem; + sElem = w.content.summary[cat.key]; + if (sElem.accounts) { + return sElem.accounts.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } + }); + }; + sortData = function() { + if (_.isEmpty($scope.categories)) { return; } - accountsList = _.isEmpty($scope.accountsList) ? w.metadata.accounts_list : $scope.accountsList; - results = []; - for (i = 0, len = accountsList.length; i < len; i++) { - accUid = accountsList[i]; - acc = _.find(w.content.complete_list, function(acc) { - return acc.uid === accUid; + if ($scope.sortedColumn === 'account') { + return sortAccountsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total1') { + return sortAccountsBy(function(el) { + return el.totals[1]; + }); + } else if ($scope.sortedColumn === 'total2') { + return sortAccountsBy(function(el) { + return el.totals[0]; }); - results.push(w.moveAccountToAnotherList(acc, w.remainingAccounts, w.selectedAccounts, false)); } - return results; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; + }; + w.settings.push(unCollapsedSetting); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingAccountsList', function() { + module.directive('widgetAccountsBalanceSheet', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - accountsList: '=?' - }, - controller: 'SettingAccountsListCtrl' + controller: 'WidgetAccountsBalanceSheetCtrl' }; }); }).call(this); - -/* - * Attach KPIs onto widget with a form for picking target mode and value. View widget's - * attached KPIs, manage set targets, alerts and delete. - * **NOTE: this component is not in use, and requires fixes/improvements to be used.** - */ - (function() { var module; - module = angular.module('impac.components.widgets-settings.attach-kpis', []); + module = angular.module('impac.components.widgets.accounts-cash-projection', []); - module.directive('settingAttachKpis', ["$templateCache", "ImpacWidgetsSvc", "ImpacKpisSvc", "$translate", function($templateCache, ImpacWidgetsSvc, ImpacKpisSvc, $translate) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - attachedKpis: '=?', - widgetEngine: '=', - widgetId: '=', - extraParams: '=?', - deferred: '=', - showExtraParam: '=?' - }, - template: $templateCache.get('widgets-settings/attach-kpis.tmpl.html'), - controller: ["$scope", function($scope) { - var loadKpisData, settings, w; - w = $scope.parentWidget; - settings = {}; - settings.initialize = function() { - return loadKpisData(); - }; - settings.toMetadata = function() {}; - w.settings.push(settings); - $scope.formatKpiName = function(endpoint) { - return ImpacKpisSvc.formatKpiName(endpoint); - }; - $scope.hasValidTarget = function() { - return ImpacKpisSvc.validateKpiTarget($scope.kpi); - }; - $scope.attachKpi = function() { - var param, paramValues, params, ref, target0; - params = {}; - if (!$scope.hasValidTarget()) { - return; - } - target0 = {}; - target0[$scope.kpi.limit.mode] = $scope.kpi.limit.value; - params.targets = {}; - params.targets[$scope.kpi.watchables[0]] = [target0]; - params.widget_id = $scope.widgetId; - ref = $scope.extraParams; - for (param in ref) { - paramValues = ref[param]; - params.extra_params || (params.extra_params = {}); - params.extra_params[param] = paramValues.uid; - } - console.log('attachKpis: ', $scope.kpi.endpoint, $scope.elementWatched, params); - return ImpacKpisSvc.create('impac', $scope.kpi.endpoint, $scope.elementWatched, params).then(function(kpi) { - console.log('attached KPI: ', kpi); - return $scope.attachedKpis.push(kpi); - }); - }; - $scope.deleteKpi = function(kpi) { - return ImpacKpisSvc["delete"](kpi, { - widget_id: $scope.widgetId - }).then(function() { - return _.remove($scope.attachedKpis, function(k) { - return k.id === kpi.id; - }); - }); - }; - $scope.formatAttachedKpiTitle = function(kpi) { - if (!(kpi.data && kpi.targets && $scope.elementWatched)) { - return ''; - } - return ImpacKpisSvc.formatKpiTarget(kpi.targets[$scope.elementWatched][0], kpi.data[$scope.elementWatched].unit, $scope.possibleTargets); - }; - $scope.attachedKpis || ($scope.attachedKpis = []); - $scope.possibleTargets = [ - { - label: $translate.instant('impac.widget.settings.attach_kpis.over'), - mode: 'min' - }, { - label: $translate.instant('impac.widget.settings.attach_kpis.below'), - mode: 'max' - } - ]; - $scope.kpi = { - limit: { - mode: $scope.possibleTargets[0].mode - } - }; - ImpacKpisSvc.getAttachableKpis($scope.widgetEngine).then(function(kpiTemplates) { - $scope.availableKpis = angular.copy(kpiTemplates); - angular.extend($scope.kpi, $scope.availableKpis[0]); - $scope.selectedParam = _.keys($scope.extraParams)[0]; - return $scope.elementWatched = ($scope.kpi.watchables != null) && $scope.kpi.watchables[0]; - }); - loadKpisData = function() {}; - loadKpisData(); - return $scope.deferred.resolve($scope.parentWidget); - }] - }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.accounting-behaviour', []); - - module.directive('settingAccountingBehaviour', ["$templateCache", "$timeout", function($templateCache, $timeout) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - defaultBehaviour: '=?' - }, - template: $templateCache.get('widgets-settings/accounting-behaviour.tmpl.html'), - link: function(scope) { - var setting, w; - w = scope.parentWidget; - setting = {}; - setting.key = "accounting-behaviour"; - setting.initialize = function() { - return $timeout(function() { - if ((scope.defaultBehaviour != null) && scope.defaultBehaviour === 'pnl') { - return scope.selectedBehaviour = 'pnl'; - } else { - return scope.selectedBehaviour = 'bls'; - } - }); - }; - setting.toMetadata = function() { - return { - accounting_behaviour: scope.selectedBehaviour - }; - }; - w.settings.push(setting); - return scope.deferred.resolve(setting); + module.controller('WidgetAccountsCashProjectionCtrl', ["$scope", "$q", "$filter", "$timeout", "ImpacKpisSvc", "ImpacWidgetsSvc", "ImpacAssets", "HighchartsFactory", "BoltResources", function($scope, $q, $filter, $timeout, ImpacKpisSvc, ImpacWidgetsSvc, ImpacAssets, HighchartsFactory, BoltResources) { + var dateFilter, extractContactName, imgSrc, imgTemplate, legendFormatter, onClickBar, onClickLegend, onZoom, settingsPromises, todayUTC, updateLocked, w, zoomMetadata; + w = $scope.widget; + todayUTC = moment().startOf('day').add(moment().utcOffset(), 'minutes'); + updateLocked = false; + zoomMetadata = {}; + w.metadata.ranges = ['-60d', '-30d']; + dateFilter = function(timestamp) { + var pickedDate; + pickedDate = moment.utc(timestamp); + if (pickedDate <= todayUTC) { + return "lte " + (pickedDate.format('YYYY-MM-DD')); + } else { + return pickedDate.format('YYYY-MM-DD'); } }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.chart-filters', []); - - module.controller('SettingChartFiltersCtrl', ["$scope", function($scope) { - var setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "chart-filters"; - setting.isInitialized = false; - setting.initialize = function() { - if ((w.content != null) && (w.content.chart_filter != null) && ($scope.filterCriteria = w.content.chart_filter.criteria)) { - $scope.maxEntities = w.content.chart_filter.max; - $scope.entityType = w.content.chart_filter.entity_type; - $scope.filterLabel = w.content.chart_filter.filter_label.replace(/_/g, " "); - if ($scope.filterCriteria === "number") { - $scope.filterValuePercentage = 80; - $scope.filterValueNumber = w.content.chart_filter.value; - } else { - $scope.filterValuePercentage = w.content.chart_filter.value; - $scope.filterValueNumber = Math.round($scope.maxEntities / 2); - } - return setting.isInitialized = true; + imgSrc = function(name) { + return ImpacAssets.get(_.camelCase(name + 'LegendIcon')); + }; + imgTemplate = function(src, name) { + return "
" + name; + }; + extractContactName = function(id, contacts) { + var contact; + contact = _.find(contacts, function(c) { + return c.id === id; + }); + return contact.attributes.name; + }; + $scope.chartId = function() { + return "cashProjectionChart-" + w.id; + }; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + $scope.trxList = { + display: false, + updated: false, + transactions: [] + }; + $scope.trxList.show = function() { + return $scope.trxList.display = true; + }; + $scope.trxList.hide = function() { + $scope.trxList.display = false; + if ($scope.trxList.updated) { + return ImpacWidgetsSvc.show(w).then(function() { + return $scope.trxList.updated = false; + }); } }; - setting.toMetadata = function() { - var filterValue; - if ((w.content != null) && (w.content.chart_filter != null)) { - if ($scope.filterCriteria === "percentage") { - filterValue = $scope.filterValuePercentage; - } else { - filterValue = $scope.filterValueNumber; + $scope.trxList.fetch = function(currentPage) { + var params; + if (currentPage == null) { + currentPage = 1; + } + params = angular.merge($scope.trxList.params, { + metadata: _.pick(w.metadata, 'organization_ids'), + page: { + number: currentPage } - return { - chart_filter: { - criteria: $scope.filterCriteria, - value: filterValue + }); + return BoltResources.index(w.metadata.bolt_path, $scope.trxList.resources, params).then(function(response) { + var contact_name, i, len, ref, trx; + _.remove($scope.trxList.transactions, function() { + return true; + }); + ref = response.data.data; + for (i = 0, len = ref.length; i < len; i++) { + trx = ref[i]; + if (trx.relationships && trx.relationships.contact && trx.relationships.contact.data) { + contact_name = extractContactName(trx.relationships.contact.data.id, response.data.included); } - }; - } else { - return {}; + $scope.trxList.transactions.push(angular.merge(trx.attributes, { + id: trx.id, + contact_name: contact_name || null + })); + } + return $scope.trxList.totalRecords = response.data.meta.record_count; + })["finally"](function() { + return $scope.trxList.show(); + }); + }; + $scope.trxList.updateParams = function(resources, filter) { + $scope.trxList.resources = resources; + return $scope.trxList.params = { + include: 'contact', + fields: { + contacts: 'name' + }, + filter: filter + }; + }; + $scope.trxList.showAll = function(resources) { + var filter; + if (resources == null) { + resources = 'invoices'; } + filter = { + status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'] + }; + $scope.trxList.updateParams(resources, filter); + return $scope.trxList.fetch(); }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingChartFilters', ["$templateCache", function($templateCache) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=' - }, - template: $templateCache.get('widgets-settings/chart-filters.tmpl.html'), - controller: 'SettingChartFiltersCtrl' + $scope.trxList.updateExpectedDate = function(trxId, date) { + return BoltResources.update(w.metadata.bolt_path, $scope.trxList.resources, trxId, { + expected_payment_date: moment(date).format('YYYY-MM-DD') + }).then(function() { + return $scope.trxList.updated = true; + }); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.dates-picker', []); - - module.directive('settingDatesPicker', ["$templateCache", "$filter", "ImpacWidgetsSvc", "$timeout", "$compile", function($templateCache, $filter, ImpacWidgetsSvc, $timeout, $compile) { - return { - restrict: 'A', - scope: { - parentWidget: '=?', - deferred: '=', - fromDate: '=from', - toDate: '=to', - keepToday: '=', - onUse: '&?', - onChangeCb: '&?onChange', - minDate: '=?', - updateOnPick: '=?', - template: '=?', - period: '=?' + $scope.trxList.changeResourcesType = function(resourcesType) { + if (resourcesType === $scope.trxList.resources) { + return; + } + $scope.trxList.resources = resourcesType; + return $scope.trxList.fetch(); + }; + $scope.trxList.deleteTransaction = function(resourcesType, trxId) { + _.remove($scope.trxList.transactions, function(trx) { + return trx.id === trxId; + }); + return BoltResources.destroy(w.metadata.bolt_path, resourcesType, trxId).then(function() { + return $scope.trxList.updated = true; + }); + }; + $scope.chartDeferred = $q.defer(); + $scope.chartPromise = $scope.chartDeferred.promise; + $scope.chartThresholdOptions = { + label: 'Get alerted when the cash projection goes below' + }; + $scope.addForecastPopup = { + resourcesType: 'invoices', + display: false, + show: function() { + return this.display = true; }, - template: $templateCache.get('widgets-settings/dates-picker.tmpl.html'), - link: function(scope, element) { - var applyHtml, buildDates, fromDateHtml, isToToday, setting, templatesContainer, toDateHtml, w; - w = scope.parentWidget; - setting = {}; - setting.key = "dates-picker"; - scope.setting = setting; - scope.calendarFrom = { - opened: false, - value: new Date(new Date().getFullYear(), 0, 1), - toggle: function() { - scope.calendarFrom.opened = !scope.calendarFrom.opened; - return scope.calendarTo.opened = false; - } - }; - scope.calendarTo = { - opened: false, - value: new Date(), - toggle: function() { - scope.calendarFrom.opened = false; - return scope.calendarTo.opened = !scope.calendarTo.opened; - } - }; - scope.template || (scope.template = "
\n
\n impac.widget.settings.dates_picker.from \n
\n
\n impac.widget.settings.dates_picker.to \n
\n
"); - fromDateHtml = "
\n \n
"; - toDateHtml = "
\n \n
"; - applyHtml = ""; - scope.template = scope.template.replace(/>/, " ng-click='onUse()'>"); - scope.template = scope.template.replace(/]*)>/g, "" + (fromDateHtml.replace('ATTRS', '$1'))); - scope.template = scope.template.replace(/]*)>/g, "" + (toDateHtml.replace('ATTRS', '$1'))); - scope.template = scope.template.replace(/]*)>/g, "" + (applyHtml.replace('ATTRS', '$1'))); - templatesContainer = element.find('#template-container'); - templatesContainer.html(scope.template).show(); - $compile(templatesContainer.contents())(scope); - setting.initialize = function() { - return $timeout(function() { - var d, m, parsedFrom, parsedTo, y; - scope.changed = false; - if (Date.parse(scope.fromDate)) { - parsedFrom = scope.fromDate.split('-'); - y = parsedFrom[0]; - m = parsedFrom[1] - 1; - d = parsedFrom[2]; - scope.calendarFrom.value = new Date(y, m, d); - } else { - scope.calendarFrom.value = new Date(new Date().getFullYear(), 0, 1); - } - if (Date.parse(scope.toDate) && !scope.keepToday) { - parsedTo = scope.toDate.split('-'); - y = parsedTo[0]; - m = parsedTo[1] - 1; - d = parsedTo[2]; - return scope.calendarTo.value = new Date(y, m, d); - } else { - return scope.calendarTo.value = new Date(); - } - }); - }; - isToToday = function() { - return (scope.calendarTo.value.getFullYear() === new Date().getFullYear()) && (scope.calendarTo.value.getMonth() === new Date().getMonth()) && (scope.calendarTo.value.getDate() === new Date().getDate()); - }; - setting.toMetadata = function() { - return { - hist_parameters: { - from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), - to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), - period: scope.period || "RANGE", - keep_today: isToToday() - } - }; - }; - scope.onChange = function() { - scope.showApplyButton(); - if (!_.isUndefined(scope.onChangeCb)) { - return scope.onChangeCb()(buildDates()); - } - }; - buildDates = function() { - return { - from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), - to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), - keepToday: isToToday() - }; - }; - scope.showApplyButton = function() { - if (scope.updateOnPick) { - return scope.applyChanges(); - } else { - return scope.changed = true; + hide: function() { + return this.display = false; + } + }; + $scope.addForecastPopup.createTransaction = function(trx) { + return BoltResources.create(w.metadata.bolt_path, this.resourcesType, { + title: trx.name, + transaction_number: "FOR-" + (Math.ceil(Math.random() * 10000)), + amount: trx.amount, + balance: trx.amount, + transaction_date: moment().format('YYYY-MM-DD'), + due_date: moment(trx.datePicker.date).format('YYYY-MM-DD'), + status: 'FORECAST', + currency: w.metadata.currency + }, { + company: { + data: { + type: 'companies', + id: $scope.firstCompanyId } - }; - scope.applyChanges = function() { - ImpacWidgetsSvc.updateWidgetSettings(w, true); - return scope.changed = false; - }; - scope.showTitle = function() { - return element.hasClass('part'); - }; - if (w) { - w.settings.push(setting); } - return scope.deferred.resolve(setting); + }).then(function() { + return ImpacWidgetsSvc.show(w); + }); + }; + onClickBar = function(event) { + var filter, resources, series; + series = this; + resources = (function() { + switch (series.userOptions.stack) { + case 'Payables': + return 'bills'; + case 'Receivables': + return 'invoices'; + } + })(); + if (resources == null) { + return; + } + filter = { + expected_payment_date: dateFilter(event.point.x), + status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'] + }; + $scope.trxList.updateParams(resources, filter); + return $scope.trxList.fetch(); + }; + legendFormatter = function() { + var name; + name = this.name; + if (name !== 'Projected cash') { + return imgTemplate(imgSrc(name), name); + } + return imgTemplate(imgSrc(name), name) + '
' + imgTemplate(imgSrc('cashFlow'), 'Cash flow'); + }; + onZoom = function(event) { + zoomMetadata = angular.merge(w.metadata, { + xAxis: { + max: event.max, + min: event.min + } + }); + if (!updateLocked) { + updateLocked = true; + return $timeout(function() { + return ImpacWidgetsSvc.update(w, { + metadata: zoomMetadata + }, false)["finally"](function() { + return updateLocked = false; + }); + }, 1000); + } + }; + onClickLegend = function() { + var i, len, ref, results, s, series; + series = this; + ref = $scope.chart.hc.series; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + s = ref[i]; + if (s.userOptions.linkedTo !== series.name) { + continue; + } + if (series.visible) { + results.push(s.hide()); + } else { + results.push(s.show()); + } } + return results; + }; + w.initContext = function() { + var cashFlowSerie; + cashFlowSerie = _.find(w.content.chart.series, function(serie) { + return serie.name === "Cash flow"; + }); + cashFlowSerie.data = []; + cashFlowSerie.type = 'area'; + cashFlowSerie.showInLegend = false; + return BoltResources.index(w.metadata.bolt_path, 'companies', { + metadata: _.pick(w.metadata, 'organization_ids') + }).then(function(response) { + return $scope.firstCompanyId = response.data.data[0].id; + }); + }; + w.format = function() { + var options; + options = { + chartType: 'line', + chartOnClickCallbacks: [], + currency: w.metadata.currency, + showToday: true, + showLegend: true, + withZooming: { + defaults: w.metadata.xAxis, + callback: onZoom + } + }; + $scope.chart || ($scope.chart = new HighchartsFactory($scope.chartId(), w.content.chart, options)); + $scope.chart.render(w.content.chart, options); + $scope.chart.addCustomLegend(legendFormatter); + $scope.chart.addSeriesEvent('click', onClickBar); + $scope.chart.addSeriesEvent('legendItemClick', onClickLegend); + return $scope.chartDeferred.notify($scope.chart); }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetAccountsCashProjection', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsCashProjectionCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.formula', []); + module = angular.module('impac.components.widgets.accounts-cash-balance', []); - module.controller('SettingFormulaCtrl', ["$scope", "$filter", "$timeout", "$translate", function($scope, $filter, $timeout, $translate) { - var AUTHORIZED_REGEXP, evaluateFormula, formatFormula, getFormula, interpolateInFormula, isRatio, prepareFormula, setting, translateEvaluatedFormula, w; - w = $scope.parentWidget; - w.formula = ''; - AUTHORIZED_REGEXP = new RegExp("^(\\{|\\d|\\}|\\/|\\+|-|\\*|\\(|\\)|\\s|\\.)*$"); - setting = {}; - setting.key = "formula"; - setting.isInitialized = false; - setting.initialize = function() { - if ((w.metadata != null) && (w.metadata.formula != null)) { - w.formula = w.metadata.formula; - return $timeout(function() { - prepareFormula(); - return setting.isInitialized = true; - }); - } else { - return w.formula = ''; + module.controller('WidgetAccountsCashBalanceCtrl', ["$scope", "$q", "$timeout", "$filter", "ImpacTheming", "ImpacAssets", "ImpacWidgetsSvc", "HighchartsFactory", function($scope, $q, $timeout, $filter, ImpacTheming, ImpacAssets, ImpacWidgetsSvc, HighchartsFactory) { + var getPeriod, getSerieByAccount, onZoom, setSeriesColors, settingsPromises, updateLocked, w, zoomMetadata; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + w.initContext = function() { + var hist; + $scope.isDataFound = w.content.chart != null; + $scope.groupedTable = w.content.grouped_table; + setSeriesColors(w.content.chart.series, { + positive: '#3FC4FF', + negative: '#e50228' + }); + if (hist = w.metadata.hist_parameters) { + $scope.fromDate = hist.from; + return $scope.toDate = hist.to; } }; - setting.toMetadata = function() { - prepareFormula(); - if (w.isFormulaCorrect) { - return { - formula: w.formula - }; - } else { - return { - formula: '' - }; + $scope.legendItemOnClick = function(account) { + var serie, visibility; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return; } + visibility = serie.visible ? false : true; + return serie.setVisible(visibility); }; - getFormula = function() { - return w.formula; - }; - w.formatAmount = function(anAccount) { - return $filter('mnoCurrency')(anAccount.current_balance, anAccount.currency); - }; - $scope.$watch(getFormula, function(e) { - return prepareFormula(); - }); - prepareFormula = function() { - var evaluatedFormula, interpolatedFormula; - interpolatedFormula = interpolateInFormula(w.formula, w.selectedAccounts, 'current_balance'); - if ((evaluatedFormula = evaluateFormula(interpolatedFormula))) { - w.evaluatedFormula = formatFormula(evaluatedFormula, w.formula, w.selectedAccounts); - w.legend = interpolateInFormula(w.formula, w.selectedAccounts, 'name'); - w.isFormulaCorrect = true; + $scope.getLegendItemCheckBox = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return 'fa-check-square-o'; + } + if (serie.visible) { + return 'fa-check-square-o'; } else { - w.evaluatedFormula = 'invalid expression'; - w.legend = '...'; - w.isFormulaCorrect = false; + return 'fa-square-o'; } - return w.evaluatedFormulaTranslate = translateEvaluatedFormula(w.evaluatedFormula); }; - w.evaluatedFormula_History = function(index) { - var account, i, interpolation, j, len, pattern, ref; - interpolation = w.formula; - ref = w.selectedAccounts; - for (i = j = 0, len = ref.length; j < len; i = ++j) { - account = ref[i]; - pattern = new RegExp("\\{" + (i + 1) + "\\}", 'g'); - interpolation = interpolation.replace(pattern, " " + account['balances'][index] + " "); + $scope.getLegendItemIcon = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (serie.type === 'area') { + return ImpacAssets.get('areaLegendIcon'); + } else { + return ImpacAssets.get('plotLineLegendIcon'); } - return evaluateFormula(interpolation); }; - translateEvaluatedFormula = function(formula) { - switch (formula) { - case 'invalid expression': - return $translate.instant('impac.widget.formula.invalid_expression'); - case 'Infinity': - return $translate.instant('impac.widget.formula.infinity'); - case '-Infinity': - return $translate.instant('impac.widget.formula.minus_infinity'); - default: - return formula; + $scope.getLegendItemColor = function(account) { + var serie; + serie = ($scope.chart != null) && ($scope.chart.hc != null) && getSerieByAccount($scope.chart.hc.series, account); + if (!serie) { + return '#000'; } + return serie.color; }; - interpolateInFormula = function(sourceFormula, selectedAccounts, accountMember) { - var account, i, interpolation, j, len, pattern; - interpolation = sourceFormula; - if (_.isEmpty(selectedAccounts)) { - return interpolation; - } - for (i = j = 0, len = selectedAccounts.length; j < len; i = ++j) { - account = selectedAccounts[i]; - pattern = new RegExp("\\{" + (i + 1) + "\\}", 'g'); - interpolation = interpolation.replace(pattern, " " + account[accountMember] + " "); - } - return interpolation; + getPeriod = function() { + return (w.metadata != null) && (w.metadata.hist_parameters != null) && w.metadata.hist_parameters.period || 'MONTHLY'; }; - evaluateFormula = function(interpolatedFormula) { - var e, evaluation; - if (!interpolatedFormula.match(AUTHORIZED_REGEXP)) { - return false; - } - try { - evaluation = eval(interpolatedFormula).toFixed(2); - if (isFinite(evaluation)) { - return evaluation; - } else { - return false; + getSerieByAccount = function(series, account) { + return _.find(series, function(serie) { + return (serie.id || serie.options && serie.options.id) === account.id; + }); + }; + setSeriesColors = function(series, chartColors) { + var bias, groupedSeries, i, palette, results, serie; + groupedSeries = _.groupBy(series, function(serie) { + return serie.bias; + }); + results = []; + for (bias in groupedSeries) { + series = groupedSeries[bias]; + if (!chartColors[bias]) { + continue; } - } catch (error) { - e = error; - return false; + palette = ImpacTheming.color.generateShadesPalette(chartColors[bias], series.length); + results.push((function() { + var j, len, results1; + results1 = []; + for (i = j = 0, len = series.length; j < len; i = ++j) { + serie = series[i]; + results1.push(serie.color = palette[i]); + } + return results1; + })()); } + return results; }; - isRatio = function(sourceFormula) { - return sourceFormula.match(/\//g); + $scope.chartId = function() { + return "cashBalanceChart-" + w.id; }; - formatFormula = function(evaluation, sourceFormula, selectedAccounts) { - var currency, firstAccount; - if (isRatio(sourceFormula) || _.isEmpty(selectedAccounts)) { - return evaluation; - } - firstAccount = selectedAccounts[0]; - if (!(currency = firstAccount.currency)) { - return evaluation; + updateLocked = false; + zoomMetadata = {}; + onZoom = function(event) { + zoomMetadata = angular.merge(w.metadata, { + xAxis: { + max: event.max, + min: event.min + } + }); + if (!updateLocked) { + updateLocked = true; + return $timeout(function() { + return ImpacWidgetsSvc.update(w, { + metadata: zoomMetadata + }, false)["finally"](function() { + return updateLocked = false; + }); + }, 1000); } - return $filter('mnoCurrency')(evaluation, currency); }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + w.format = function() { + var options; + options = { + chartType: 'line', + currency: w.metadata.currency, + period: getPeriod(), + showToday: true, + showLegend: false, + withZooming: { + defaults: w.metadata.xAxis, + callback: onZoom + } + }; + return $timeout(function() { + $scope.chart || ($scope.chart = new HighchartsFactory($scope.chartId(), w.content.chart, options)); + return $scope.chart.render(w.content.chart, options); + }); + }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingFormula', function() { + module.directive('widgetAccountsCashBalance', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=' - }, - controller: 'SettingFormulaCtrl' + controller: 'WidgetAccountsCashBalanceCtrl' }; }); }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets-settings.hist-mode', []); + module = angular.module('impac.components.widgets.accounts-cash-summary', []); - module.controller('SettingHistModeCtrl', ["$scope", "$translate", "$timeout", "ImpacWidgetsSvc", "ImpacTheming", "ImpacUtilities", function($scope, $translate, $timeout, ImpacWidgetsSvc, ImpacTheming, ImpacUtilities) { - var buildCurrentLabel, setting, w; - w = $scope.parentWidget; - w.isHistoryMode = w.metadata && w.metadata.hist_parameters && w.metadata.hist_parameters.mode === 'history'; - $scope.forwardParams = { - accountingBehaviour: function() { - return $scope.accountingBehaviour; + module.controller('WidgetAccountsCashSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, $translate) { + var fetchElement, getIdentifier, matchElementToSelectedElement, selectedElementSetting, settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.widthDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.chartDeferred.promise]; + $scope.ascending = true; + $scope.sortedColumn = 'account'; + w.initContext = function() { + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { + $scope.dates = w.content.dates; + $scope.unCollapsed = w.metadata.unCollapsed || []; + _.map(w.content.summary, function(statement) { + if (statement.name != null) { + return $translate('impac.widget.account_cash_smry.summary.' + statement.name.toLowerCase()).then(function(translation) { + return statement.label = translation; + }); + } + }); + $translate('impac.widget.account_cash_smry.cash_flow.' + $scope.widget.metadata.hist_parameters.period.toLowerCase()).then(function(translation) { + return $scope.widget.metadata.hist_parameters.period_translation = translation; + }); + if (w.metadata.selectedElement) { + $scope.selectedElement = _.find(w.content.summary, function(statement) { + return statement.name === w.metadata.selectedElement; + }); + $scope.selectedElement || ($scope.selectedElement = fetchElement(w.content.summary)); + } + return sortData(); } }; - $scope.toggleHistMode = function(mode) { - var ref; - if ((w.isHistoryMode && mode === 'history') || (!w.isHistoryMode && mode === 'current')) { - return; + $scope.getLastDate = function() { + if ($scope.dates != null) { + return $scope.dates[$scope.dates.length - 1]; } - w.isHistoryMode = !w.isHistoryMode; - ImpacWidgetsSvc.updateWidgetSettings(w, false); - return ref = $scope.onToggle(), indexOf.call(angular.isDefined($scope.onToggle), ref) >= 0; }; - buildCurrentLabel = function() { - var label, labels, needPrefix, prefix; - labels = ImpacTheming.get().widgetSettings.histModeChoser.currentLabels; - if (($scope.accountingBehaviour != null) && labels[$scope.accountingBehaviour]) { - needPrefix = !$scope.endDate || ($scope.endDate === moment().format('YYYY-MM-DD')); - label = labels[$scope.accountingBehaviour]; - prefix = labels[$scope.accountingBehaviour] + '.prefix'; - return $translate([prefix, label]).then(function(translations) { - return $scope.currentLabel = needPrefix ? translations[prefix] + " " + translations[label] : translations[label]; - }); - } else { - return $translate(labels["default"]).then(function(label) { - return $scope.currentLabel = label; - }); + $scope.getPrevDate = function() { + if ($scope.dates != null) { + return $scope.dates[$scope.dates.length - 2]; } }; - setting = {}; - setting.key = "hist-mode"; - setting.isInitialized = false; - setting.initialize = function() { - return $timeout(function() { - var mode; - if ((w.metadata != null) && (w.metadata.hist_parameters != null) && (mode = w.metadata.hist_parameters.mode)) { - w.isHistoryMode = mode === 'history' ? true : false; - } - buildCurrentLabel(); - $scope.forwardParams.histParams = w.metadata && w.metadata.hist_parameters; - setting.isInitialized = true; - return $scope; + $scope.getLastValue = function(element) { + if (element.cash_flows != null) { + return _.last(element.cash_flows); + } + }; + $scope.formatVariance = function(aVariance) { + if (aVariance != null) { + if (aVariance > 0) { + return "+" + aVariance + " %"; + } else { + return aVariance + " %"; + } + } else { + return "-"; + } + }; + $scope.getLastVariance = function(element) { + if ((element.variances != null) && (_.last(element.variances) != null)) { + return $scope.formatVariance(_.last(element.variances)); + } else { + return "-"; + } + }; + $scope.getVarianceClassColor = function(aVariance) { + if (parseInt(aVariance) > 0) { + return 'positive'; + } else if (parseInt(aVariance) < 0) { + return 'negative'; + } else { + return null; + } + }; + $scope.getName = function(element) { + if ((element != null) && (element.name != null)) { + return element.name.replace(/_/g, " "); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + $scope.toggleSelectedElement = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + if ($scope.isSelected(element, statementName)) { + $scope.selectedElement = null; + if (w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } else { + $scope.selectedElement = angular.copy(element); + $scope.selectedElement.category = statementName; + w.format(); + if (!w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } + }; + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + return (element != null) && ($scope.selectedElement != null) && (matchElementToSelectedElement(element, statementName, $scope.selectedElement)); + }; + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === element.name; + }); + } else { + $scope.unCollapsed.push(element.name); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + }; + $scope.isCollapsed = function(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === name; + }))) { + return false; + } else { + return true; + } + if ($scope.selectedElement == null) { + return w.width = 6; + } + } + }; + $scope.getSelectLineColor = function(elem) { + return ChartFormatterSvc.getColor(0); + }; + fetchElement = function(statements) { + var element, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + if (statement.accounts == null) { + continue; + } + element = _.find(statement.accounts, function(acc) { + return getIdentifier(acc, statement.name) === w.metadata.selectedElement; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; + } + } + }; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; + } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); + }; + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; + } + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; + }; + sortAccountsBy = function(getElem) { + return angular.forEach(w.content.summary, function(sElem) { + if (sElem.accounts) { + return sElem.accounts.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } }); }; - setting.toMetadata = function() { - var mode; - mode = w.isHistoryMode ? 'history' : 'current'; - return { - hist_parameters: { - mode: mode + sortData = function() { + if ($scope.sortedColumn === 'account') { + return sortAccountsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortAccountsBy(function(el) { + return $scope.getLastValue(el); + }); + } else if ($scope.sortedColumn === 'variance') { + return sortAccountsBy(function(el) { + return $scope.getLastVariance(el); + }); + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, data, dates, inputData, options, period; + if ($scope.isDataFound && ($scope.selectedElement != null)) { + data = angular.copy($scope.selectedElement); + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData = { + labels: dates, + datasets: [ + { + title: data.label, + values: data.cash_flows + } + ] + }; + all_values_are_positive = true; + angular.forEach(data.cash_flows, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true + }; + chartData = ChartFormatterSvc.combinedBarChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + } + }; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed }; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + w.settings.push(unCollapsedSetting); + selectedElementSetting = {}; + selectedElementSetting.initialized = false; + selectedElementSetting.initialize = function() { + return selectedElementSetting.initialized = true; + }; + selectedElementSetting.toMetadata = function() { + if ($scope.selectedElement == null) { + return { + selectedElement: null + }; + } + return { + selectedElement: getIdentifier($scope.selectedElement) + }; + }; + w.settings.push(selectedElementSetting); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingHistMode', ["$templateCache", function($templateCache) { + module.directive('widgetAccountsCashSummary', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - onToggle: '&', - accountingBehaviour: '@?', - endDate: '=?' - }, - template: $templateCache.get('widgets-settings/hist-mode.tmpl.html'), - controller: 'SettingHistModeCtrl' + controller: 'WidgetAccountsCashSummaryCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.limit-entries', []); + module = angular.module('impac.components.widgets.accounts-class-comparison', []); - module.controller('SettingLimitEntriesCtrl', ["$scope", function($scope) { - var setting; - setting = {}; - setting.key = 'limit-entries'; - setting.initialize = function() { - return true; - }; - setting.toMetadata = function() { - return { - limit_entries: $scope.selected - }; + module.controller('WidgetAccountsClassComparisonCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "$translate", function($scope, $q, $filter, ChartFormatterSvc, $translate) { + var settingsPromises, translate, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.timePeriodDeferred.promise]; + $scope.timePeriodInfoParams = { + accountingBehaviour: 'pnl', + histParams: {} }; - $scope.parentWidget.settings.push(setting); - return $scope.deferred.resolve(setting); - }]); - - module.directive('settingLimitEntries', ["$templateCache", "ImpacWidgetsSvc", function($templateCache, ImpacWidgetsSvc) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - selected: '=', - max: '=?', - options: '=?', - entriesLabel: '=?' - }, - link: function(scope, elements, attrs) { - if (!((scope.options != null) && scope.options.length > 0)) { - scope.options = [5, 15, 50]; - } - scope.selectOption = function(anOption) { - scope.selected = anOption; - return ImpacWidgetsSvc.updateWidgetSettings(scope.parentWidget, false); - }; - return scope.isOptionValid = function(anOption) { - return (scope.max == null) || anOption < scope.max; - }; - }, - controller: 'SettingLimitEntriesCtrl', - template: $templateCache.get('widgets-settings/limit-entries.tmpl.html') + translate = function(word) { + var translation; + word = word.toLowerCase(); + translation = $translate.instant('impac.widget.account_class_comp.klass.' + word); + if (_.includes(translation, 'impac.widget.account_class_comp.klass')) { + return _.capitalize(word); + } else { + return translation; + } }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.offsets', []); - - module.directive('settingOffsets', ["$templateCache", "ImpacUtilities", function($templateCache, ImpacUtilities) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - offsetsKey: '@', - initialOffsets: '=', - currency: '=', - intervalsCount: '=', - period: '=', - showIntervalsMult: '=', - textPlaceholder: '@?' - }, - template: $templateCache.get('widgets-settings/offsets.tmpl.html'), - link: function(scope) { - var authorized_regex, computedFormula, placeholder, setting, w; - w = scope.parentWidget; - authorized_regex = new RegExp("^(\\{|\\d|\\}|\\/|\\+|-|\\*|\\(|\\)|\\s|\\.)*$"); - setting = { - key: "offsets-" + scope.offsetsKey - }; - setting.initialize = function() { - var i, len, offsetValue, ref; - scope.offsets = []; - ref = scope.initialOffsets || []; - for (i = 0, len = ref.length; i < len; i++) { - offsetValue = ref[i]; - scope.offsets.push(offsetValue); - } - scope.offsetFormula = ""; - scope.periodWord = ImpacUtilities.getPeriodWord(scope.period); - return scope.placeholder = placeholder(scope.period || 'MONTHLY'); - }; - setting.toMetadata = function() { - var metadata; - metadata = { - offset: {} + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.companies); + if ($scope.isDataFound) { + $scope.timePeriodInfoParams.histParams = w.metadata && w.metadata.hist_parameters; + $scope.classifications = _.map(w.content.summary, function(summary) { + var klass; + klass = summary.classification; + return { + label: translate(klass), + labelTranslate: summary.classification_key != null ? summary.classification_key : void 0, + value: klass }; - metadata.offset[scope.offsetsKey] = scope.offsets; - return metadata; - }; - scope.addOffset = function() { - var result; - result = computedFormula(); - if (result) { - scope.offsets.push(result); - } - return scope.offsetFormula = ""; - }; - scope.removeOffset = function(offsetIndex) { - return scope.offsets.splice(offsetIndex, 1); - }; - scope.addOffsetOnEnter = function(event) { - if (event.keyCode === 13) { - return scope.addOffset(); - } - }; - placeholder = function(inputPeriod) { - var period; - if (scope.textPlaceholder != null) { - return scope.textPlaceholder; - } - period = inputPeriod.charAt(0).toUpperCase() + inputPeriod.slice(1).toLowerCase(); - return period + " adjustment"; - }; - computedFormula = function() { - if (scope.offsetFormula.match(authorized_regex)) { - return eval(scope.offsetFormula); - } - }; - if (w) { - w.settings.push(setting); + }); + if (!$scope.selectedClassification) { + return $scope.selectedClassification = angular.copy(_.find($scope.classifications, { + value: w.metadata.classification || $scope.classifications[0].value + })); } - return scope.deferred.resolve(setting); } }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.organizations', []); - - module.controller('SettingOrganizationsCtrl', ["$scope", "$log", "ImpacDashboardsSvc", function($scope, $log, ImpacDashboardsSvc) { - var setting, w; - w = $scope.parentWidget; - w.selectedOrganizations = {}; - $scope.isOrganizationSelected = function(orgUid) { - return !!w.selectedOrganizations[orgUid]; - }; - $scope.toggleSelectOrganization = function(orgUid) { - w.selectedOrganizations[orgUid] = !w.selectedOrganizations[orgUid]; - if (angular.isDefined($scope.onSelect)) { - return $scope.onSelect({ - orgs: w.selectedOrganizations - }); + $scope.getTotals = function() { + var amount; + if (!$scope.selectedClassification) { + return []; } + return amount = _.find(w.content.summary, function(sum) { + return sum.classification === $scope.selectedClassification.value; + }).totals; }; - setting = {}; - setting.key = "organizations"; - setting.isInitialized = false; - setting.initialize = function() { - return ImpacDashboardsSvc.load().then(function(config) { - var i, len, org, ref; - $scope.dashboardOrganizations = config.currentDashboard.data_sources; - if ((w.metadata != null) && (w.metadata.organization_ids != null)) { - ref = $scope.dashboardOrganizations; - for (i = 0, len = ref.length; i < len; i++) { - org = ref[i]; - w.selectedOrganizations[org.uid] = _.contains(w.metadata.organization_ids, org.uid); - } - return setting.isInitialized = true; - } - }); + $scope.getAmount = function(index) { + var amount; + amount = $scope.getTotals()[index]; + return $filter('mnoCurrency')(amount, w.content.currency); }; - setting.toMetadata = function() { - var newOrganizations; - newOrganizations = _.compact(_.map(w.selectedOrganizations, function(checked, uid) { - if (checked) { - return uid; + $scope.getAccountColor = function(anEntity) { + return ChartFormatterSvc.getColor(_.indexOf(w.content.companies, anEntity)); + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, inputData, options; + if ($scope.isDataFound) { + inputData = {}; + inputData.labels = w.content.companies; + inputData.values = $scope.getTotals(); + if (inputData.labels.length > 15) { + inputData.labels.length = 15; } - })); - if (_.isEmpty(newOrganizations)) { - newOrganizations = [_.first($scope.dashboardOrganizations).uid]; + if (inputData.values.length > 15) { + inputData.values.length = 15; + } + options = { + showTooltips: false, + showXLabels: false, + barValueSpacing: Math.max(8 - w.content.companies.length, 1) + }; + chartData = ChartFormatterSvc.barChart(inputData, options); + return $scope.drawTrigger.notify(chartData); } - return { - organization_ids: newOrganizations - }; }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingOrganizations', ["$templateCache", function($templateCache) { + module.directive('widgetAccountsClassComparison', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - onSelect: '&?' - }, - template: $templateCache.get('widgets-settings/organizations.tmpl.html'), - controller: 'SettingOrganizationsCtrl' + controller: 'WidgetAccountsClassComparisonCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.param-selector', []); + module = angular.module('impac.components.widgets.accounts-comparison', []); - module.controller('SettingParamSelectorCtrl', ["$scope", "ImpacWidgetsSvc", function($scope, ImpacWidgetsSvc) { - var setting, w; - $scope.showOptions = false; - $scope.toggleShowOptions = function() { - return $scope.showOptions = !$scope.showOptions; - }; - $scope.onInit = function() { - $scope.selectedOption = {}; - return angular.extend($scope.selectedOption, $scope.selected); - }; - $scope.selectOption = function(anOption) { - if (anOption.value !== $scope.selected.value) { - angular.extend($scope.selected, anOption); - ImpacWidgetsSvc.updateWidgetSettings($scope.parentWidget, !$scope.noReload); - if (angular.isDefined($scope.onSelect)) { - $scope.onSelect(); + module.controller('WidgetAccountsComparisonCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$timeout", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $timeout, $translate) { + var gatherSavedAccounts, scanAccountsForMultiOrgData, settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.accountsListDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + $scope.paramsCheckboxesDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.accountsListDeferred.promise, $scope.chartDeferred.promise, $scope.paramsCheckboxesDeferred.promise, $scope.timePeriodDeferred.promise]; + w.initContext = function() { + $scope.movedAccount = []; + return $translate('impac.widget.account_comp.compare_mode_opt').then(function(label) { + $scope.comparisonModeOptions = [ + { + id: 'compare_accounts', + label: label, + value: false, + onChangeCallback: $scope.updateSettings + } + ]; + if (angular.isDefined(w.metadata.comparison_mode) && (w.metadata.organization_ids != null) && w.metadata.organization_ids.length > 1) { + angular.merge($scope.comparisonModeOptions, w.metadata.comparison_mode); } + $scope.savedAccountsList = gatherSavedAccounts(); + $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.complete_list) || $scope.isComparisonMode(); + $scope.noComparableAccounts = $scope.isComparisonMode() && (w.content != null) && _.isEmpty(w.content.complete_list); + return $scope.canSelectComparisonMode = scanAccountsForMultiOrgData(); + }); + }; + scanAccountsForMultiOrgData = function() { + if (w.content == null) { + return false; } - return $scope.toggleShowOptions(); + return _.uniq(_.pluck(w.content.complete_list, 'org_name')).length > 1; }; - $scope.getTruncateValue = function() { - return parseInt($scope.truncateNo) || 20; + $scope.isComparisonMode = function() { + return _.result(_.find($scope.comparisonModeOptions, 'id', 'compare_accounts'), 'value') || false; }; - w = $scope.parentWidget; - setting = {}; - setting.key = "param-selector"; - setting.isInitialized = false; - setting.initialize = function() { - if (w.content != null) { - return setting.isInitialized = true; + $scope.hasAccountsSelected = function() { + return w.selectedAccounts && w.selectedAccounts.length > 0; + }; + $scope.getAccountColor = function(anAccount) { + if ($scope.isComparisonMode()) { + return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts[0].accounts, anAccount)); + } else { + return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts, anAccount)); } }; - setting.toMetadata = function() { - var param; - param = {}; - if (!_.isEmpty($scope.selected)) { - param[$scope.param] = $scope.selected.value; + $scope.addAccount = function(anAccount) { + if (!anAccount) { + return; } - return param; + w.moveAccountToAnotherList(anAccount, w.remainingAccounts, w.selectedAccounts); + $scope.savedAccountsList.push(anAccount.uid); + return w.format(); }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingParamSelector', ["$templateCache", function($templateCache) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - param: '@', - options: '=', - selected: '=', - truncateNo: '@', - onSelect: '&' - }, - link: function(scope, elements, attrs) { - scope.noReload = typeof attrs.noReload !== 'undefined'; - return scope.truncateNo = attrs.truncateNo || 20; - }, - template: function(elements, attrs) { - return $templateCache.get(attrs.classic ? 'widgets-settings/param-selector-classic.tmpl.html' : 'widgets-settings/param-selector.tmpl.html'); - }, - controller: 'SettingParamSelectorCtrl' + $scope.removeAccount = function(anAccount) { + if (!anAccount) { + return; + } + w.moveAccountToAnotherList(anAccount, w.selectedAccounts, w.remainingAccounts); + $scope.savedAccountsList.splice($scope.savedAccountsList.indexOf(anAccount.uid), 1); + return w.format(); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.params-checkboxes', []); - - module.controller('SettingParamsCheckboxesCtrl', ["$scope", function($scope) { - var setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "params-checkboxes"; - setting.initialize = function() {}; - setting.toMetadata = function() { - var param; - param = {}; - param[$scope.param] = _.map($scope.options, function(opt) { - return { - id: opt.id, - value: opt.value + $scope.formatAmount = function(anAccount) { + return $filter('mnoCurrency')(anAccount.current_balance, anAccount.currency); + }; + gatherSavedAccounts = function() { + var areGrouped, group, i, len, savedUids, uid; + savedUids = w.metadata.accounts_list; + if (_.isEmpty(savedUids)) { + return []; + } + areGrouped = savedUids[0].indexOf(':') >= 0; + if (!$scope.isComparisonMode() && areGrouped) { + return _.flatten(_.map(savedUids, function(a) { + return a.split(':'); + })); + } else if ($scope.isComparisonMode() && !areGrouped) { + for (i = 0, len = savedUids.length; i < len; i++) { + uid = savedUids[i]; + group = _.find(w.content.complete_list, function(group) { + return group.uid.indexOf(uid) >= 0; + }); + if (group) { + return [group.uid]; + } + } + return []; + } else { + return savedUids; + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var inputData; + inputData = { + labels: [], + values: [] + }; + return $timeout(function() { + var account, chartData, groupedAccount, i, j, len, len1, options, ref, ref1; + ref = w.selectedAccounts; + for (i = 0, len = ref.length; i < len; i++) { + account = ref[i]; + if ($scope.isComparisonMode()) { + ref1 = account.accounts; + for (j = 0, len1 = ref1.length; j < len1; j++) { + groupedAccount = ref1[j]; + inputData.labels.push(groupedAccount.name); + inputData.values.push(groupedAccount.current_balance); + } + } else { + inputData.labels.push(account.name); + inputData.values.push(account.current_balance); + } + } + while (inputData.values.length < 15) { + inputData.labels.push(""); + inputData.values.push(null); + } + options = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 9 }; - }); - return param; + chartData = ChartFormatterSvc.barChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + }, 500); }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingParamsCheckboxes', ["$templateCache", function($templateCache) { + module.directive('widgetAccountsComparison', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - param: '@', - options: '=' - }, - template: $templateCache.get('widgets-settings/params-checkboxes.tmpl.html'), - controller: 'SettingParamsCheckboxesCtrl' + controller: 'WidgetAccountsComparisonCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.params-picker', []); + module = angular.module('impac.components.widgets.accounts-detailed-classifications', []); - module.controller('SettingParamsPickerCtrl', ["$scope", function($scope) { - var setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "params-picker"; - setting.isInitialized = false; - setting.initialize = function() { - $scope.sortableOptions = { - 'ui-floating': true, - tolerance: 'pointer' - }; - $scope.applyToDashboard = w.metadata[$scope.param] && w.metadata[$scope.param].reach === 'dashboard'; - $scope.toggleReach = function() { - return setting.reach = $scope.applyToDashboard ? 'dashboard' : 'widget'; - }; - $scope.toggleReach(); - if (_.isEmpty($scope.options)) { - return setting.isInitialized = true; - } - }; - setting.toMetadata = function() { - var param; - param = {}; - param[$scope.param] = { - values: _.compact(_.map($scope.options, function(statusOption) { - if (statusOption.selected) { - return statusOption.value || statusOption.label; - } - })), - reach: setting.reach - }; - return param; + module.controller('WidgetAccountsDetailedClassificationsCtrl', ["$scope", "$q", "ImpacWidgetsSvc", function($scope, $q, ImpacWidgetsSvc) { + var settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise]; + $scope.timePeriodInfoParams = { + accountingBehaviour: 'pnl', + histParams: {} }; - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); - }]); - - module.directive('settingParamsPicker', ["$templateCache", "$translate", function($templateCache, $translate) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - param: '@', - options: '=', - hasReach: '=', - description: '@' - }, - link: function(scope, elements, attrs) { - var paramText; - paramText = $translate.instant('impac.widget.settings.params-picker.' + scope.param); - scope.formattedParam = _.includes(paramText, 'impac.widget.settings.params-picker') ? scope.param.replace(/_/g, ' ') : paramText; - if (scope.description == null) { - return scope.description = $translate.instant('impac.widget.settings.params-picker.description'); - } - }, - template: $templateCache.get('widgets-settings/params-picker.tmpl.html'), - controller: 'SettingParamsPickerCtrl' - }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.tag-filter', ['ngTagsInput']); - - module.directive('settingTagFilter', ["$templateCache", "$timeout", function($templateCache, $timeout) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=' - }, - template: $templateCache.get('widgets-settings/tag-filter.tmpl.html'), - link: function(scope) { - var filterToSettingTags, initiateAutoComplete, loadRules, setting, w; - w = scope.parentWidget; - setting = {}; - setting.key = "tag-filter"; - scope.settingsTags = []; - setting.initialize = function() { - return $timeout(function() { - loadRules(); - initiateAutoComplete(); - return true; - }); - }; - setting.toMetadata = function() { - var filterQuery, filterQueryRules; - filterQueryRules = []; - filterQuery = { - condition: 'OR', - rules: filterQueryRules - }; - angular.forEach(scope.settingsTags, function(settingsTag) { - var filterQueryCondition; - filterQueryCondition = { - condition: 'AND', - rules: [] + $scope.ascending = true; + $scope.sortedColumn = 'account'; + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.companies); + if ($scope.isDataFound) { + $scope.timePeriodInfoParams.histParams = w.metadata && w.metadata.hist_parameters; + $scope.unCollapsed = w.metadata.unCollapsed || []; + if (w.content.companies.length === 1) { + $scope.multiEntity = false; + $scope.dataSource = _.map(w.content.companies[0].classifications, function(klass) { + return { + label: klass.name, + value: klass.total, + currency: klass.currency, + entries: _.map(klass.accounts, function(acc) { + return { + label: acc.name, + value: acc.balance, + currency: acc.currency + }; + }) }; - angular.forEach(settingsTag.tags, function(filterItem) { - var ruletag; - ruletag = { - value: filterItem.value - }; - if (filterItem.name != null) { - ruletag.name = filterItem.name; - } - return filterQueryCondition.rules.push(ruletag); - }); - if (settingsTag.tags.length !== 0) { - return filterQueryRules.push(filterQueryCondition); - } }); - if (filterQuery.rules.length === 0) { - filterQuery = {}; - } - return { - filter_query: filterQuery - }; - }; - filterToSettingTags = function(filterQuery) { - var settingsTags; - if (_.isEmpty(filterQuery)) { - return; - } - settingsTags = []; - angular.forEach(filterQuery.rules, function(filterQueryRule) { - var settingRule; - settingRule = { - operator: 'OR', - tags: [] + } else { + $scope.multiEntity = true; + $scope.dataSource = _.map(w.content.companies, function(company) { + return { + label: company.name, + entries: _.map(company.classifications, function(klass) { + return { + label: klass.name, + value: klass.total, + currency: klass.currency + }; + }) }; - angular.forEach(filterQueryRule.rules, function(filterQueryRuleCondition) { - var ruletag, tagtext; - tagtext = _.compact([filterQueryRuleCondition.name, filterQueryRuleCondition.value]).join(":"); - ruletag = { - value: filterQueryRuleCondition.value, - text: tagtext - }; - if (filterQueryRuleCondition.name != null) { - ruletag.name = filterQueryRuleCondition.name; - } - return settingRule.tags.push(ruletag); - }); - return settingsTags.push(settingRule); }); - return settingsTags; - }; - loadRules = function() { - if (_.isEmpty(w.metadata.filter_query)) { - return; - } - return scope.settingsTags = filterToSettingTags(w.metadata.filter_query); - }; - initiateAutoComplete = function() { - var autotags, org, tag_hash, tags; - tags = w.content.available_tags || []; - autotags = []; - for (org in tags) { - tag_hash = tags[org]; - angular.forEach(tag_hash.tag_references, function(tag_ref) { - return angular.forEach(tag_ref.tag_reference_values, function(tag) { - var ruletag, tagtext; - tagtext = _.compact([tag_ref.name, tag.value]).join(":"); - ruletag = { - text: tagtext, - value: tag.value - }; - if (tag_ref.name != null) { - ruletag.name = tag_ref.name; - } - return autotags.push(ruletag); - }); - }); - } - return scope.loadTagList = function(query) { - return _.filter(autotags, function(e) { - return e.text.toLowerCase().indexOf(query.toLowerCase()) > -1; - }); - }; - }; - scope.addRule = function() { - return scope.settingsTags.push({ - 'operator': 'OR', - 'tags': [] + } + return sortData(); + } + }; + $scope.toggleCollapsed = function(groupName) { + if (groupName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return groupName === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === groupName; }); - }; - scope.delRule = function(index) { - return scope.settingsTags.splice(index, 1); - }; - w.settings.push(setting); - return scope.deferred.resolve(setting); + } else { + $scope.unCollapsed.push(groupName); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + }; + $scope.isCollapsed = function(groupName) { + if (groupName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return groupName === name; + }))) { + return false; + } else { + return true; + } + } + }; + sortAccountsBy = function(getElem) { + return angular.forEach($scope.dataSource, function(sElem) { + if (sElem.entries) { + return sElem.entries.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } + }); + }; + sortData = function() { + if ($scope.sortedColumn === 'account') { + return sortAccountsBy(function(el) { + return el.label; + }); + } else if ($scope.sortedColumn === 'total') { + return sortAccountsBy(function(el) { + return el.value; + }); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; } + return sortData(); + }; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; + }; + w.settings.push(unCollapsedSetting); + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetAccountsDetailedClassifications', function() { + return { + restrict: 'A', + controller: 'WidgetAccountsDetailedClassificationsCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets-settings.time-period', []); + module = angular.module('impac.components.widgets.accounts-custom-calculation', []); - module.directive('settingTimePeriod', ["$templateCache", "$q", "$log", "$timeout", "$filter", "ImpacTheming", "$translate", function($templateCache, $q, $log, $timeout, $filter, ImpacTheming, $translate) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - histParams: '=?', - hideChartInterval: '=?', - applyChangesCallback: '&?' - }, - template: $templateCache.get('widgets-settings/time-period.tmpl.html'), - link: function(scope) { - var getPeriod, getSetting, getUsedSettingKey, initPeriod, initUsedSetting, settingsPromises, updateFromDate, updateTimeRangePeriod, w; - w = scope.parentWidget; - scope.timePeriodSetting = { - key: "time-period", - settings: [], - isEditMode: true - }; - scope.timeSliderDeferred = $q.defer(); - scope.datesPickerDeferred = $q.defer(); - scope.timePresetsDeferred = $q.defer(); - settingsPromises = [scope.timeSliderDeferred.promise, scope.datesPickerDeferred.promise, scope.timePresetsDeferred.promise]; - scope.resetPreset = $q.defer(); - $translate(["impac.widget.settings.time_period.period.daily", "impac.widget.settings.time_period.period.weekly", "impac.widget.settings.time_period.period.monthly", "impac.widget.settings.time_period.period.quarterly", "impac.widget.settings.time_period.period.yearly", "impac.widget.settings.time_period.period.days", "impac.widget.settings.time_period.period.weeks", "impac.widget.settings.time_period.period.months", "impac.widget.settings.time_period.period.quarters", "impac.widget.settings.time_period.period.years"]).then(function(translations) { - return scope.periods = [ - { - label: translations["impac.widget.settings.time_period.period.daily"], - plural: "days", - value: "DAILY" - }, { - label: translations["impac.widget.settings.time_period.period.weekly"], - plural: "weeks", - value: "WEEKLY" - }, { - label: translations["impac.widget.settings.time_period.period.monthly"], - plural: "months", - value: "MONTHLY" - }, { - label: translations["impac.widget.settings.time_period.period.quarterly"], - plural: "quarters", - value: "QUARTERLY" - }, { - label: translations["impac.widget.settings.time_period.period.yearly"], - plural: "years", - value: "YEARLY" - } - ]; - }); - scope.maxNumberOfPeriods = 20; - if ((ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && !_.isEmpty(ImpacTheming.get().widgetSettings.timePeriod.presets)) { - scope.presets = angular.copy(ImpacTheming.get().widgetSettings.timePeriod.presets); - } - scope.applyPreset = function(histParams) { - initPeriod(histParams); - return initUsedSetting(histParams); - }; - scope.timePeriodSetting.initialize = function() { - return $timeout(function() { - initPeriod(); - getSetting('time-presets').initialize(); - return scope.showApplyButton = angular.isDefined(scope.applyChangesCallback); - }); - }; - scope.timePeriodSetting.toMetadata = function() { - var histParams, metadata, sourceSetting; - sourceSetting = getSetting(getUsedSettingKey()); - if (sourceSetting != null) { - histParams = sourceSetting.toMetadata().hist_parameters; - } - histParams.period = getPeriod(); - if ((scope.histParams != null) && (scope.histParams.mode != null)) { - histParams.mode = scope.histParams.mode; - } - metadata = { - hist_parameters: histParams - }; - return metadata; - }; - scope.titleize = function(word) { - if (word !== "FYEARLY") { - return "" + (word.slice(0, 1).toUpperCase()) + (word.slice(1).toLowerCase()); - } else { - return "Yearly (financial)"; - } - }; - getPeriod = function() { - if (scope.timePeriodSetting.period != null) { - return scope.timePeriodSetting.period; - } else { - return initPeriod(); - } - }; - scope.isTimeSliderUsed = function() { - return getUsedSettingKey() === 'time-slider'; - }; - scope.isDatesPickerUsed = function() { - return getUsedSettingKey() === 'dates-picker'; - }; - getUsedSettingKey = function() { - if (scope.usedSetting != null) { - return scope.usedSetting; - } else { - return initUsedSetting(); - } - }; - getSetting = function(key) { - return _.find(scope.timePeriodSetting.settings, function(set) { - return set.key === key; - }); - }; - initPeriod = function(histParams) { - if (histParams == null) { - histParams = null; - } - if (histParams == null) { - histParams = scope.histParams; - } - if ((histParams != null) && (histParams.period != null) && _.find(scope.periods, function(period) { - return period.value === histParams.period; - })) { - scope.timePeriodSetting.period = angular.copy(histParams.period); - } else { - scope.timePeriodSetting.period = "MONTHLY"; - } - return scope.timePeriodSetting.period; - }; - initUsedSetting = function(histParams) { - var minDate, newLetter, pattern, tr; - if (histParams == null) { - histParams = null; - } - if (histParams == null) { - histParams = scope.histParams; - } - if ((histParams != null) && (histParams.from != null)) { - scope.usedSetting = 'dates-picker'; - scope.toDate = histParams.to; - minDate = scope.getMinDate(scope.toDate); - if (moment(histParams.from, "YYYY-MM-DD").isBefore(minDate)) { - scope.fromDate = minDate; - } else { - scope.fromDate = histParams.from; - } - scope.keepToday = histParams.keep_today; - getSetting('dates-picker').initialize(); - } else { - scope.usedSetting = 'time-slider'; - if ((histParams != null) && (histParams.time_range != null)) { - tr = histParams.time_range; - pattern = /([a-z])/; - newLetter = pattern.exec(tr)[1]; - scope.timePeriodSetting.period = angular.copy(_.find(scope.periods, function(p) { - return p.value.slice(0, 1).toLowerCase() === newLetter; - }).value); - scope.timePeriodSetting.timeRange = tr; - } - getSetting('time-slider').initialize(); - } - return scope.usedSetting; - }; - scope.updateSettings = function() { - if (scope.usedSetting === 'time-slider') { - scope.resetPreset.notify('choose-period'); - } else if (scope.usedSetting === 'dates-picker') { - scope.resetPreset.notify('choose-dates'); - } - updateTimeRangePeriod(); - return updateFromDate(); - }; - updateTimeRangePeriod = function() { - var periodLetter, set, tr; - if (scope.isTimeSliderUsed()) { - set = getSetting('time-slider'); - tr = set.toMetadata().hist_parameters.time_range; - periodLetter = getPeriod().slice(0, 1).toLowerCase(); - scope.timePeriodSetting.timeRange = tr.replace(/[a-z]/, periodLetter); - set.initialize(); - } - return scope.timePeriodSetting.timeRange; - }; - updateFromDate = function() { - var fromDate, minDate, set, toDate; - if (scope.isDatesPickerUsed()) { - set = getSetting('dates-picker'); - fromDate = set.toMetadata().hist_parameters.from; - toDate = set.toMetadata().hist_parameters.to; - minDate = scope.getMinDate(); - if (moment(fromDate, "YYYY-MM-DD").isBefore(minDate)) { - scope.toDate = toDate; - scope.fromDate = minDate; - set.initialize(); - } - } - return scope.fromDate; - }; - scope.useTimeSlider = function() { - scope.usedSetting = 'time-slider'; - return scope.updateSettings(); - }; - scope.useDatesPicker = function() { - scope.usedSetting = 'dates-picker'; - return scope.updateSettings(); - }; - scope.getMinDate = function(toDate) { - var currentPeriod, periodWord, sourceSetting, to; - if (toDate == null) { - toDate = void 0; - } - to = moment(); - if (toDate != null) { - to = moment(toDate, "YYYY-MM-DD"); - } else if ((scope.usedSetting != null) && scope.isDatesPickerUsed()) { - sourceSetting = getSetting('dates-picker'); - to = moment(sourceSetting.toMetadata().hist_parameters.to, "YYYY-MM-DD"); - } - currentPeriod = getPeriod(); - periodWord = _.find(scope.periods, function(period) { - return currentPeriod === period.value; - }).plural; - return to.subtract(scope.maxNumberOfPeriods, periodWord); - }; - scope.formattedMinDate = function(toDate) { - if (toDate == null) { - toDate = void 0; - } - return $filter('momentDate')(scope.getMinDate(toDate), 'time-period'); - }; - w.settings.push(scope.timePeriodSetting); - return $q.all(settingsPromises).then(function() { - return scope.deferred.resolve(scope.timePeriodSetting); - }); - } - }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.time-presets', []); - - module.directive('settingTimePresets', ["$templateCache", "ImpacMainSvc", "$timeout", "ImpacUtilities", "ImpacTheming", "$translate", function($templateCache, ImpacMainSvc, $timeout, ImpacUtilities, ImpacTheming, $translate) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - presets: '=?', - onSelect: '&?', - onChooseDates: '&?', - onChoosePeriod: '&?', - histParams: '=?', - resetPromise: '=?' - }, - template: $templateCache.get('widgets-settings/time-presets.tmpl.html'), - link: function(scope) { - var fyEndMonth, initPreset, showSlider, w; - w = scope.parentWidget; - scope.setting = {}; - scope.setting.key = "time-presets"; - scope.financialYearEndMonth = 6; - fyEndMonth = scope.financialYearEndMonth; - ImpacMainSvc.load().then(function() { - return fyEndMonth = ImpacMainSvc.getFinancialYearEndMonth(); - })["finally"](function() { - var fyStartDate, prevFyEndDate, prevFyStartDate, toDate; - fyStartDate = ImpacUtilities.financialYearDates(fyEndMonth).start; - prevFyStartDate = moment(ImpacUtilities.financialYearDates(fyEndMonth).start, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); - prevFyEndDate = moment(ImpacUtilities.financialYearDates(fyEndMonth).end, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); - toDate = moment().format('YYYY-MM-DD'); - return $translate(['impac.common.period.preset_in_words.calendar_year_to_date', 'impac.common.period.preset_in_words.financial_year_to_date', 'impac.common.period.preset_in_words.previous_financial_year', 'impac.common.period.preset_in_words.last_6_months', 'impac.common.period.preset_in_words.last_4_quarters', 'impac.common.period.preset_in_words.last_4_weeks', 'impac.common.period.preset_in_words.choose_period', 'impac.common.period.preset_in_words.choose_dates']).then(function(translations) { - scope.presets || (scope.presets = [ - { - label: translations['impac.common.period.preset_in_words.calendar_year_to_date'], - value: { - from: moment().startOf('year').format('YYYY-MM-DD'), - to: toDate, - period: 'MONTHLY' - } - }, { - label: translations['impac.common.period.preset_in_words.financial_year_to_date'], - value: { - from: fyStartDate, - to: toDate, - period: 'MONTHLY' - } - }, { - label: translations['impac.common.period.preset_in_words.previous_financial_year'], - value: { - from: prevFyStartDate, - to: prevFyEndDate, - period: 'MONTHLY' - } - }, { - label: translations['impac.common.period.preset_in_words.last_6_months'], - value: { - time_range: '-6m', - to: toDate - } - }, { - label: translations['impac.common.period.preset_in_words.last_4_quarters'], - value: { - time_range: '-4q', - to: toDate - } - }, { - label: translations['impac.common.period.preset_in_words.last_4_weeks'], - value: { - time_range: '-4w', - to: toDate - } - } - ]); - if (angular.isDefined(scope.onChooseDates) && showSlider()) { - scope.presets.unshift({ - label: translations['impac.common.period.preset_in_words.choose_period'], - value: 'choose-period' - }); - } - if (angular.isDefined(scope.onChooseDates)) { - return scope.presets.unshift({ - label: translations['impac.common.period.preset_in_words.choose_dates'], - value: 'choose-dates' - }); - } - }); - }); - if (scope.resetPromise != null) { - scope.resetPromise.then(null, null, function(key) { - return scope.selectedPreset = _.find(scope.presets, function(p) { - return p.value === key; - }); - }); - } - showSlider = function() { - return (ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && ImpacTheming.get().widgetSettings.timePeriod.showSlider; - }; - initPreset = function() { - if (scope.histParams != null) { - scope.selectedPreset = _.find(scope.presets, function(p) { - return _.every(p.value, function(v, k) { - return scope.histParams[k] === (angular.isFunction(v) ? v(fyEndMonth) : v); - }); - }); - if ((scope.selectedPreset == null) && (scope.histParams.time_range != null) && showSlider()) { - scope.selectedPreset = scope.presets[1]; - } - } - if (scope.selectedPreset == null) { - return scope.selectedPreset = scope.presets[0]; - } - }; - scope.presetSelected = function() { - if ((scope.selectedPreset != null) && (scope.selectedPreset.value === "choose-dates")) { - return scope.onChooseDates(); - } else if ((scope.selectedPreset != null) && (scope.selectedPreset.value === "choose-period")) { - return scope.onChoosePeriod(); - } else { - return scope.onSelect({ - histParams: scope.setting.toMetadata().hist_parameters - }); - } - }; - scope.setting.initialize = function() { - initPreset(); - scope.presetSelected(); - return true; - }; - scope.setting.toMetadata = function() { - var result; - result = {}; - if (!_.isEmpty(scope.selectedPreset.value)) { - _.forEach(scope.selectedPreset.value, function(value, key) { - if (angular.isFunction(value)) { - return result[key] = value(fyEndMonth); - } else { - return result[key] = value; - } - }); - } - return { - hist_parameters: result - }; - }; - w.settings.push(scope.setting); - return scope.deferred.resolve(scope.setting); - } - }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.time-slider', []); - - module.directive('settingTimeSlider', ["$templateCache", "$timeout", "ImpacMainSvc", "ImpacUtilities", "ImpacTheming", function($templateCache, $timeout, ImpacMainSvc, ImpacUtilities, ImpacTheming) { - return { - restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - timeRange: '=?', - onUse: '&?' - }, - template: $templateCache.get('widgets-settings/time-slider.tmpl.html'), - link: function(scope) { - var PERIODS, getNumberOfPeriods, getPeriod, getPeriodWord, getTimeRange, initFinancialYearEndMonth, initNumberOfPeriods, initPeriod, setting, w; - w = scope.parentWidget; - setting = {}; - setting.key = "time-slider"; - PERIODS = ['d', 'w', 'm', 'q', 'y', 'f']; - setting.initialize = function() { - return $timeout(function() { - initNumberOfPeriods(); - initPeriod(); - initFinancialYearEndMonth(); - return true; - }); - }; - setting.toMetadata = function() { - var histParams; - histParams = { - to: scope.toDate().format('YYYY-MM-DD'), - time_range: getTimeRange() - }; - if (getPeriod() === 'f') { - histParams.from = scope.fromDate().format('YYYY-MM-DD'); - } - return { - hist_parameters: histParams - }; - }; - initNumberOfPeriods = function() { - var n, nPattern, tr; - tr = scope.timeRange; - scope.numberOfPeriods = moment().month(); - if (tr == null) { - return scope.numberOfPeriods; - } - nPattern = /^-?([0-9]{1,2})[a-z]?$/; - n = nPattern.exec(tr); - if ((n != null) && n[1] && parseInt(n[1])) { - scope.numberOfPeriods = parseInt(n[1]); - } - return scope.numberOfPeriods; - }; - initPeriod = function() { - var p, pPattern, period, tr; - tr = scope.timeRange; - scope.period = "m"; - if (tr == null) { - return "m"; - } - pPattern = /^-?[0-9]{0,2}([a-z])$/; - p = pPattern.exec(tr); - period = _.find(PERIODS, function(authPeriod) { - return (p != null) && (p[1] === authPeriod); - }); - if (period != null) { - scope.period = period; - } - return scope.period; - }; - initFinancialYearEndMonth = function() { - scope.financialYearEndMonth = 6; - return ImpacMainSvc.load().then(function(config) { - if ((config != null) && (config.currentOrganization != null) && parseInt(config.currentOrganization.financial_year_end_month)) { - return scope.financialYearEndMonth = parseInt(config.currentOrganization.financial_year_end_month); - } - }); - }; - getPeriod = function() { - if (scope.period != null) { - return scope.period; - } else { - return initPeriod(); - } - }; - getPeriodWord = function() { - return ImpacUtilities.getPeriodWord(getPeriod()); - }; - getNumberOfPeriods = function() { - if (scope.numberOfPeriods != null) { - return scope.numberOfPeriods; - } else { - return initNumberOfPeriods(); - } - }; - getTimeRange = function() { - var n, p; - n = getNumberOfPeriods(); - p = getPeriod(); - return "-" + n + p; - }; - scope.formatPeriod = function() { - return ImpacUtilities.formatPeriod(getNumberOfPeriods(), getPeriod()); - }; - scope.fromDate = function() { - var financialYearStartYear, n, word; - n = getNumberOfPeriods(); - word = getPeriodWord(); - if (word.slice(0, 1) === "f") { - financialYearStartYear = moment().year() - 1; - if (moment().month() >= 6) { - financialYearStartYear = moment().year(); - } - financialYearStartYear = financialYearStartYear - n; - return moment(financialYearStartYear + "-" + (scope.financialYearEndMonth + 1) + "-01", "YYYY-M-DD"); - } else if (word.slice(0, 1) === "w") { - return moment().subtract(n, word).startOf('isoweek'); - } else { - return moment().subtract(n, word).startOf(word); - } - }; - scope.toDate = function() { - return moment(); - }; - w.settings.push(setting); - return scope.deferred.resolve(setting); - } + module.controller('WidgetAccountsCustomCalculationCtrl', ["$scope", "$timeout", "$uibModal", "$q", "$templateCache", "$filter", "ImpacWidgetsSvc", "ChartFormatterSvc", function($scope, $timeout, $uibModal, $q, $templateCache, $filter, ImpacWidgetsSvc, ChartFormatterSvc) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.accountsListDeferred = $q.defer(); + $scope.formulaDeferred = $q.defer(); + $scope.histModeDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.accountsListDeferred.promise, $scope.formulaDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; + w.initContext = function() { + $scope.movedAccount = {}; + return $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.complete_list); }; - }]); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets-settings.width', []); - - module.controller('SettingWidthCtrl', ["$scope", "$element", "$timeout", "$log", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $element, $timeout, $log, ImpacWidgetsSvc, ImpacDashboardsSvc) { - var elem, hideOnResize, i, len, ref, setting, w; - w = $scope.parentWidget; - setting = {}; - setting.key = "width"; - setting.isInitialized = false; - ref = $element.parents(); - for (i = 0, len = ref.length; i < len; i++) { - elem = ref[i]; - if (angular.element(elem).hasClass('content')) { - $scope.contentElements = angular.element(elem).children(); - break; - } - } - hideOnResize = function(elements) { - var j, len1; - if (!(elements && elements.length > 0)) { - return; - } - for (j = 0, len1 = elements.length; j < len1; j++) { - elem = elements[j]; - angular.element(elem).animate({ - opacity: 0 - }, 0); - } + $scope.drawTrigger = $q.defer(); + w.format = function() { return $timeout(function() { - var k, len2, results; - results = []; - for (k = 0, len2 = elements.length; k < len2; k++) { - elem = elements[k]; - results.push(angular.element(elem).animate({ - opacity: 1 - }, 200)); + var all_values_are_positive, chartData, data, dates, inputData, options, period; + all_values_are_positive = true; + inputData = []; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; } - return results; - }, 300); + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + data = _.map(w.content.dates, function(date, index) { + var value; + value = w.evaluatedFormula_History(index); + all_values_are_positive && (all_values_are_positive = value >= 0); + return value; + }); + inputData.push({ + title: 'Test Data', + labels: dates, + values: data + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false, + datasetFill: true, + pointDot: true + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + }, 500); }; - w.toggleExpanded = function(save) { - if (save == null) { - save = true; + $scope.addAccountToFormula = function(account) { + if (account == null) { + return; } - $scope.expanded = !$scope.expanded; - if (save) { - ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + if (w.selectedAccounts.length > 0) { + w.formula += " + {" + (w.selectedAccounts.length + 1) + "}"; + } else { + w.formula = "{1}"; } - hideOnResize($scope.contentElements); - if ($scope.expanded) { - return w.width = parseInt($scope.max); + return w.moveAccountToAnotherList(account, w.remainingAccounts, w.selectedAccounts, false); + }; + $scope.removeAccountFromFormula = function(account) { + var diffAccountIndex, diffAccountUid, i, indexPattern, newFormula, nextUids, prevUids, removePattern; + prevUids = _.map(w.selectedAccounts, function(e) { + return e.uid; + }); + nextUids = _.reject(prevUids, function(e) { + return e === account.uid; + }); + diffAccountUid = _.first(_.difference(prevUids, nextUids)); + diffAccountIndex = _.indexOf(prevUids, diffAccountUid) + 1; + if (diffAccountIndex === 1) { + removePattern = "{" + diffAccountIndex + "\\}\\s*(-|\\*|\\/|\\+)*\\s*"; } else { - return w.width = parseInt($scope.min); + removePattern = "\\s*(-|\\*|\\/|\\+)*\\s*\\{" + diffAccountIndex + "\\}"; + } + newFormula = angular.copy(w.formula).replace(new RegExp(removePattern, 'g'), ''); + i = diffAccountIndex + 1; + while (i <= prevUids.length) { + indexPattern = "\\{" + i + "\\}"; + newFormula = newFormula.replace(new RegExp(indexPattern, 'g'), "{" + (i - 1) + "}"); + i++; } + w.formula = angular.copy(newFormula); + return w.moveAccountToAnotherList(account, w.selectedAccounts, w.remainingAccounts, false); }; - w.isExpanded = function() { - return $scope.expanded; + $scope.formulaModal = $scope.$new(); + $scope.formulaModal.config = { + backdrop: 'static', + template: $templateCache.get('widgets/accounts-custom-calculation/formula.modal.html'), + size: 'lg', + scope: $scope.formulaModal, + keyboard: false }; - setting.initialize = function() { - if (w.width != null) { - $scope.expanded = w.width === parseInt($scope.max); - return setting.isInitialized = true; - } + $scope.formulaModal.open = function() { + var self; + self = $scope.formulaModal; + self.modalOrgDeferred = $q.defer(); + self.timePeriodDeferred = $q.defer(); + _.remove(w.settings, (function(set) { + return set.key === "organizations"; + })); + self.instance = $uibModal.open(self.config); + return $q.all([self.modalOrgDeferred.promise, self.timePeriodDeferred.promise]).then(function(success) { + return $scope.initSettings(); + }); }; - setting.toMetadata = function() { - var newWidth; - if ($scope.expanded) { - newWidth = $scope.max; - } else { - newWidth = $scope.min; + $scope.reloadAccountsLists = function(orgs) { + if ((orgs != null) && _.some(_.values(orgs))) { + return $scope.updateWidgetSettings(); } - return { - width: parseInt(newWidth) - }; }; - ImpacDashboardsSvc.pdfModeEnabled().then(null, null, function() { - $scope.pdfMode = true; - $scope.initiallyExpanded = !!$scope.expanded; - if (!$scope.initiallyExpanded) { - return w.toggleExpanded(false); - } - }); - ImpacDashboardsSvc.pdfModeCanceled().then(null, null, function() { - $scope.pdfMode = false; - if (!$scope.initiallyExpanded) { - return w.toggleExpanded(false); + $scope.updateWidgetSettings = function() { + return ImpacWidgetsSvc.updateWidgetSettings(w); + }; + $scope.formulaModal.cancel = function() { + $scope.initSettings(); + return $scope.formulaModal.close(); + }; + $scope.formulaModal.proceed = function() { + ImpacWidgetsSvc.updateWidgetSettings(w); + return $scope.formulaModal.close(); + }; + $scope.formulaModal.close = function() { + return $scope.formulaModal.instance.close(); + }; + $scope.$watch((function() { + return w.isEditMode; + }), function(result, prev) { + if (result && !prev) { + return $scope.formulaModal.open(); } }); - w.settings.push(setting); - return $scope.deferred.resolve($scope.parentWidget); + return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('settingWidth', ["$templateCache", function($templateCache) { + module.directive('widgetAccountsCustomCalculation', function() { return { restrict: 'A', - scope: { - parentWidget: '=', - deferred: '=', - min: '@', - max: '@' - }, - template: $templateCache.get('widgets-settings/width.tmpl.html'), - controller: 'SettingWidthCtrl' + controller: 'WidgetAccountsCustomCalculationCtrl' }; - }]); + }); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.accounts-accounting-values', []); + module = angular.module('impac.components.widgets.accounts-expense-weight', []); - module.controller('WidgetAccountsAccountingValuesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + module.controller('WidgetAccountsExpenseWeightCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", "$timeout", function($scope, $q, ChartFormatterSvc, $filter, $translate, $timeout) { var settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); $scope.timePeriodDeferred = $q.defer(); - $scope.histModeDeferred = $q.defer(); + $scope.accountBackDeferred = $q.defer(); + $scope.accountFrontDeferred = $q.defer(); $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; + $scope.histModeDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred, $scope.accountBackDeferred, $scope.accountFrontDeferred, $scope.chartDeferred.promise, $scope.histModeDeferred.promise]; + $scope.forwardParams = { + accountingBehaviour: 'pnl' + }; w.initContext = function() { - $scope.isDataFound = (w.content != null) && (w.content.accounting != null); - $scope.getLegend(); - return $scope.getCurrency(); + $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.account_list); + return $scope.forwardParams.histParams = w.metadata && w.metadata.hist_parameters; }; - $scope.getCurrentPrice = function() { - if ($scope.isDataFound) { - return w.content.accounting.total_period; + $scope.getName = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.name; } }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - if (w.content.accounting.currency_key != null) { - return $translate(w.content.accounting.currency_key).then(function(translation) { - $scope.currency = translation; - return $scope.currency_unit = w.content.accounting.currency; - }); - } else { - $scope.currency = w.content.accounting.currency; - return $scope.currency_unit = w.content.accounting.currency; - } + $scope.getComparator = function() { + switch (w.metadata.comparator) { + case 'turnover': + return $translate.instant("impac.widget.account_expense_weight.comparator.turnover"); + default: + return $translate.instant("impac.widget.account_expense_weight.comparator.total_exp"); } }; - $scope.getLegend = function() { - if ($scope.isDataFound) { - if (w.content.accounting.legend_key != null) { - return $translate(w.content.accounting.legend_key).then(function(translation) { - return $scope.legend = translation; - }); - } else { - return $scope.legend = w.content.accounting.legend; - } - } + $scope.displayAccount = function() { + return $scope.updateSettings(false).then(function() { + return $timeout(function() { + return w.format(); + }); + }); }; $scope.drawTrigger = $q.defer(); w.format = function() { - var all_values_are_positive, chartData, data, dates, inputData, options, period; - if ($scope.isDataFound) { - data = angular.copy(w.content.accounting); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; + var all_values_are_positive, chartData, companies, datasets, dates, inputData, lineData, lineOptions, options, period, ratios; + if ($scope.isDataFound && (w.content.summary != null)) { + if (w.isHistoryMode) { + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + datasets = _.map(w.content.summary, function(s) { + return { + title: s.company, + values: s.ratios + }; + }); + all_values_are_positive = true; + angular.forEach(w.content.summary, function(s) { + return angular.forEach(s.ratios, function(ratio) { + return all_values_are_positive && (all_values_are_positive = ratio >= 0); + }); + }); + lineData = { + labels: dates, + datasets: datasets + }; + lineOptions = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false, + currency: "(ratio)" + }; + chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); + } else { + companies = _.map(w.content.summary, function(s) { + return s.company; + }); + ratios = _.map(w.content.summary, function(s) { + return s.ratio; + }); + if (companies.length === 1) { + companies.push(companies[0]); + ratios.push(ratios[0]); + } + inputData = { + labels: companies, + values: ratios + }; + options = { + scales: { + yAxes: [ + { + ticks: { + suggestedMin: 0, + suggestedMax: 100, + maxTicksLimit: 5 + } + } + ] + }, + showXLabels: false, + pointDot: false, + currency: '%' + }; + chartData = ChartFormatterSvc.lineChart([inputData], options); } - dates = _.map(data.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - labels: dates, - datasets: [ - { - title: data.type, - values: data.values - } - ] - }; - all_values_are_positive = true; - angular.forEach(data.values, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false, - currency: data.currency - }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options, false); return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsAccountingValues', function() { + module.directive('widgetAccountsExpenseWeight', function() { return { restrict: 'A', - controller: 'WidgetAccountsAccountingValuesCtrl' + controller: 'WidgetAccountsExpenseWeightCtrl' }; }); @@ -8117,82 +7612,128 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
1) { - return $scope.dataSource = w.content.repartition; - } else { - return $scope.dataSource = w.content.summary; - } + return _.sum(w.content.values.revenue); } }; - $scope.getCurrency = function() { + $scope.getCurrentExpenses = function() { if ($scope.isDataFound) { - return w.content.currency; + return _.sum(w.content.values.expenses); } }; - $scope.getAccountColor = function(elem) { + $scope.getCurrency = function() { if ($scope.isDataFound) { - return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); + return w.content.currency; } }; + $scope.toggleDisplayNetProfit = function() { + $scope.isNetProfitDisplayed = !!$scope.displayOptions[0].value; + $scope.updateSettings(false); + return w.format(); + }; $scope.drawTrigger = $q.defer(); w.format = function() { - var chartData, pieData, pieOptions; + var all_values_are_positive, chartData, datasets, dates, lineData, lineOptions, period, pieData, pieOptions; if ($scope.isDataFound) { - pieData = _.map($scope.dataSource, function(company) { - return { - label: company.label, - value: company.total + if (w.isHistoryMode) { + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + if ($scope.isNetProfitDisplayed) { + datasets = [ + { + title: $translate.instant('impac.widget.accounts_expenses_revenue.net_profit') + (" (" + ($scope.getCurrency()) + ")"), + values: w.content.values.net_profit + } + ]; + all_values_are_positive = true; + angular.forEach(w.content.values.net_profit, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + } else { + datasets = [ + { + title: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), + values: w.content.values.expenses + }, { + title: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), + values: w.content.values.revenue + } + ]; + all_values_are_positive = true; + angular.forEach(w.content.values.expenses, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + angular.forEach(w.content.values.revenue, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + } + lineData = { + labels: dates, + datasets: datasets }; - }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + lineOptions = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false + }; + chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); + } else { + pieData = [ + { + label: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), + value: $scope.getCurrentExpenses() + }, { + label: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), + value: $scope.getCurrentRevenue() + } + ]; + pieOptions = { + tooltipFontSize: 12, + percentageInnerCutout: 0 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); + } return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsAssetsLiabilitySummary', function() { + module.directive('widgetAccountsExpensesRevenue', function() { return { restrict: 'A', - controller: 'WidgetAccountsAssetsLiabilitySummaryCtrl' + controller: 'WidgetAccountsExpensesRevenueCtrl' }; }); @@ -8201,147 +7742,99 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
1) { - $scope.dataSource = w.content.repartition; - } else { - $scope.dataSource = w.content.summary; - } - } - if (!w.metadata.classification) { - w.metadata.classification = "ASSET"; + return $scope.isDataFound = w.content != null; + }; + $scope.getName = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.name; } - return $translate('impac.widget.acc_ass_smry.' + w.metadata.classification.toLowerCase() + ".many").then(function(result) { - return $scope.classification = result; - }); }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency; + $scope.getTitle = function() { + if (w.content != null) { + return w.content.table.table_title; } }; - $scope.getAccountColor = function(elem) { - if ($scope.isDataFound) { - return ChartFormatterSvc.getColor(_.indexOf($scope.dataSource, elem)); + $scope.getOpeningBalance = function() { + if (w.content != null) { + return _.find(w.content.figure.metrics, function(metric) { + return metric.label === 'opening'; + }); } }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = _.map($scope.dataSource, function(company) { - return { - label: company.label, - value: company.total - }; + $scope.getClosingBalance = function() { + if (w.content != null) { + return _.find(w.content.figure.metrics, function(metric) { + return metric.label === 'closing'; }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); } }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetAccountsAssetsSummary', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsAssetsSummaryCtrl' + $scope.getCurrency = function() { + if (w.selectedAccount != null) { + return w.selectedAccount.currency; + } }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.accounts-assets-vs-liabilities', []); - - module.controller('WidgetAccountsAssetsVsLiabilitiesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise]; - $translate(['impac.widget.acc_ass_vs_liab.asset.one', 'impac.widget.acc_ass_vs_liab.liability.one']).then(function(translation) { - return $scope.classificationTranslation = { - "ASSET": translation['impac.widget.acc_ass_vs_liab.asset.one'].toUpperCase(), - "LIABILITY": translation['impac.widget.acc_ass_vs_liab.liability.one'].toUpperCase() - }; - }); - w.initContext = function() { - var index; - $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.companies); - if ($scope.isDataFound) { - index = 0; - $scope.companiesList = _.map(w.content.companies, function(company) { - var assetSum, liabilitiesSum, result; - assetSum = _.find(w.content.summary, (function(sum) { - return sum.classification === "ASSET"; - })); - liabilitiesSum = _.find(w.content.summary, (function(sum) { - return sum.classification === "LIABILITY"; - })); - result = { - company: company, - assets: assetSum != null ? assetSum.totals[index] : 0.0, - liabilities: liabilitiesSum != null ? liabilitiesSum.totals[index] : 0.0, - currency: w.content.currency - }; - index++; - return result; + $scope.getHeaders = function() { + if (w.content != null) { + return w.content.table.table_headers; + } + }; + $scope.getTotal = function() { + var summary; + if (w.content != null) { + summary = _.find(w.content.table.tables, function(table) { + return table.table_title === 'Bank Summary'; + }); + } + if (w.selectedAccount != null) { + return _.find(summary.table_rows, function(row) { + var name_match; + name_match = w.selectedAccount.name === 'All Accounts' ? 'Total' : w.selectedAccount.name; + return row.column_1 === name_match; }); - return $scope.titleTranslation; } }; - $scope.assetsColor = ChartFormatterSvc.getColor(0); - $scope.liabilitiesColor = ChartFormatterSvc.getColor(1); - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, datasets, inputData, options; - if ($scope.isDataFound) { - datasets = _.map(w.content.summary, function(sum) { - if (_.includes(['ASSET', 'LIABILITY'], sum.classification)) { - return { - title: $scope.classificationTranslation[sum.classification], - values: sum.totals - }; - } + $scope.getStatementBalance = function() { + var statement; + if (w.content != null) { + statement = _.find(w.content.table.tables, function(table) { + return table.table_title === 'Bank Statement'; + }); + } + if (statement) { + return _.find(statement.table_rows, function(row) { + return row.column_2 === "Closing Balance"; }); - datasets = _.sortByOrder(datasets, ['title']); - inputData = { - labels: w.content.companies, - datasets: _.compact(datasets) - }; - options = { - showTooltips: false, - showXLabels: false, - barValueSpacing: Math.max(8 - w.content.companies.length, 1) - }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options); - return $scope.drawTrigger.notify(chartData); } }; + $scope.displayAccount = function() { + return $scope.updateSettings(false).then(function() { + return w.format(); + }); + }; + $scope.kpiExtraParams = {}; + $scope.updateKpiExtraParams = function(key, value) { + return $scope.kpiExtraParams[key] = angular.copy(value); + }; + $scope.drawTrigger = $q.defer(); + w.format = function() {}; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsAssetsVsLiabilities', function() { + module.directive('widgetAccountsLiveBalance', function() { return { restrict: 'A', - controller: 'WidgetAccountsAssetsVsLiabilitiesCtrl' + controller: 'WidgetAccountsLiveBalanceCtrl' }; }); @@ -8350,104 +7843,89 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); - }); - options = { + ref = w.content.values.payables; + for (i = 0, len = ref.length; i < len; i++) { + value = ref[i]; + all_values_are_positive && (all_values_are_positive = value >= 0); + } + ref1 = w.content.values.receivables; + for (j = 0, len1 = ref1.length; j < len1; j++) { + value = ref1[j]; + all_values_are_positive && (all_values_are_positive = value >= 0); + } + lineOptions = { scaleBeginAtZero: all_values_are_positive, showXLabels: false }; - chartData = ChartFormatterSvc.lineChart([lineData], options); - if ($scope.getBehaviour() === 'pnl') { - chartData = ChartFormatterSvc.combinedBarChart(barData, options, false); - } - return $scope.drawTrigger.notify(chartData); + return $translate(['impac.widget.accounts_payable_receivable.payable', 'impac.widget.accounts_payable_receivable.receivable']).then(function(translation) { + var chartData, lineData; + lineData = [ + { + title: translation['impac.widget.accounts_payable_receivable.payable'], + labels: dates, + values: w.content.values.payables + }, { + title: translation['impac.widget.accounts_payable_receivable.receivable'], + labels: dates, + values: w.content.values.receivables + } + ]; + chartData = ChartFormatterSvc.lineChart(lineData, lineOptions, true); + return $scope.drawTrigger.notify(chartData); + }); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsBalance', function() { + module.directive('widgetAccountsPayableReceivable', function() { return { restrict: 'A', - controller: 'WidgetAccountsBalanceCtrl' + controller: 'WidgetAccountsPayableReceivableCtrl' }; }); @@ -8456,71 +7934,183 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
\n
\n \n
\n
\n \n
\n
"; + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.chartDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.tagFilterDeferred.promise]; $scope.ascending = true; $scope.sortedColumn = 'account'; $scope.filterTagsEnabled = ImpacTheming.get().widgetSettings.tagging.enabled; + setAmountDisplayed = function() { + return $scope.amountDisplayed = angular.copy(_.find($scope.amountDisplayedOptions, function(o) { + return w.metadata && o.value === w.metadata.amount_displayed; + }) || $scope.amountDisplayedOptions[1]); + }; + $translate(['impac.widget.accounts_profit_and_loss.last_period', 'impac.widget.accounts_profit_and_loss.total_for_period']).then(function(translation) { + $scope.amountDisplayedOptions = [ + { + label: translation['impac.widget.accounts_profit_and_loss.last_period'], + value: 'last' + }, { + label: translation['impac.widget.accounts_profit_and_loss.total_for_period'], + value: 'total' + } + ]; + return setAmountDisplayed(); + }); + periodName = (h = $scope.widget.metadata.hist_parameters) && h.period ? h.period.toLowerCase() : 'monthly'; + $translate('impac.widget.settings.time_period.period.' + periodName).then(function(translation) { + return $scope.period_translation = _.capitalize(translation.toLowerCase()); + }); $scope.isReportFiltered = function() { return (w.metadata != null) && (w.metadata.filter_query != null) && Object.keys(w.metadata.filter_query).length > 0; }; - initDates = function() { - $scope.fromDate = w.metadata.hist_parameters.from; - $scope.toDate = w.metadata.hist_parameters.to; - return $scope.keepToday = w.metadata.hist_parameters.keep_today; - }; - if (!((w.metadata != null) && (w.metadata.hist_parameters != null))) { - w.metadata || (w.metadata = {}); - w.metadata.hist_parameters = { - to: moment().format('YYYY-MM-DD'), - keep_today: true, - period: 'RANGE' - }; - ImpacMainSvc.load().then(function(config) { - var fyEndMonth; - fyEndMonth = parseInt(config.currentOrganization.financial_year_end_month) || 6; - w.metadata.hist_parameters.from = moment(ImpacUtilities.financialYearDates(fyEndMonth).end, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); - return initDates(); - }); - } else { - initDates(); - } w.initContext = function() { + var dates, firstDate, foundElem, histParams, i, lastDate, len, ref, sElemId; if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { $scope.dates = w.content.dates; $scope.unCollapsed = w.metadata.unCollapsed || []; - $scope.categories = []; - translateCategories(Object.keys(w.content.summary)); + if (w.metadata && (histParams = w.metadata.hist_parameters)) { + dates = ImpacUtilities.selectedTimeRange(histParams); + firstDate = $filter('momentDate')(dates.from, getPeriod()); + lastDate = $filter('momentDate')(dates.to, getPeriod()); + $scope.amountDisplayedOptions[1].label = firstDate + " to " + lastDate; + $scope.amountDisplayedOptions[0].label = lastDate; + } + setAmountDisplayed(); + if (!_.isEmpty(w.metadata.selectedElements)) { + $scope.selectedElements = []; + ref = w.metadata.selectedElements; + for (i = 0, len = ref.length; i < len; i++) { + sElemId = ref[i]; + foundElem = _.find(w.content.summary, function(statement) { + return statement.name === sElemId; + }); + foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); + if (foundElem) { + $scope.selectedElements.push(foundElem); + } + } + } + if (!_.any($scope.selectedElements)) { + w.width = 6; + } + return sortData(); + } + }; + $scope.getElementChartColor = function(index) { + return ChartFormatterSvc.getColor(index); + }; + getPeriod = function() { + if ((w.metadata != null) && (w.metadata.hist_parameters != null) && (w.metadata.hist_parameters.period != null)) { + return w.metadata.hist_parameters.period; + } else { + return 'MONTHLY'; + } + }; + getLastAmount = function(element) { + if (element.totals != null) { + return _.last(element.totals); + } + }; + getTotalAmount = function(element) { + if (element.totals != null) { + return _.sum(element.totals); + } + }; + $scope.getAmount = function(element) { + switch ($scope.amountDisplayed.value) { + case 'total': + return getTotalAmount(element); + default: + return getLastAmount(element); + } + }; + $scope.getClassColor = function(aTotal) { + if (parseInt(aTotal) > 0) { + return 'positive'; + } else if (parseInt(aTotal) < 0) { + return 'negative'; + } else { + return null; + } + }; + $scope.getName = function(element) { + if ((element != null) && (element.name != null)) { + return element.name.replace(/_/g, " "); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; } - initDates(); return sortData(); }; - $scope.toggleCollapsed = function(categoryName) { - if (categoryName != null) { + $scope.toggleSelectedElement = function(element, statementName) { + var selectedElement; + if (statementName == null) { + statementName = null; + } + if ($scope.isSelected(element, statementName)) { + $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + w.format(); + if (w.isExpanded() && $scope.selectedElements.length === 0) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } else { + selectedElement = angular.copy(element); + selectedElement.category = statementName; + $scope.selectedElements || ($scope.selectedElements = []); + $scope.selectedElements.push(selectedElement); + w.format(); + if (!w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } + }; + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + return (element != null) && _.any($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + }; + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.name != null)) { if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; + return element.name === name; }))) { $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === categoryName; + return name === element.name; }); } else { - $scope.unCollapsed.push(categoryName); + $scope.unCollapsed.push(element.name); } return ImpacWidgetsSvc.updateWidgetSettings(w, false); } }; - $scope.isCollapsed = function(categoryName) { - if (categoryName != null) { + $scope.isCollapsed = function(element) { + if ((element != null) && (element.name != null)) { if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; + return element.name === name; }))) { return false; } else { @@ -8528,25 +8118,59 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0; + }; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; + } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); + }; + fetchElement = function(statements, sElemId) { + var element, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + if (statement.accounts == null) { + continue; + } + element = _.find(statement.accounts, function(acc) { + return getIdentifier(acc, statement.name) === sElemId; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; + } + } + }; + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; + } + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; }; sortAccountsBy = function(getElem) { - return angular.forEach($scope.categories, function(cat) { - var sElem; - sElem = w.content.summary[cat]; + return angular.forEach(w.content.summary, function(sElem) { if (sElem.accounts) { return sElem.accounts.sort(function(a, b) { var res; @@ -8564,24 +8188,46 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0) { + all_values_are_positive = true; + inputData = []; + angular.forEach($scope.selectedElements, function(sElem) { + var data, dates, period; + data = angular.copy(sElem); + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData.push({ + title: data.name, + labels: dates, + values: data.totals + }); + return angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: $scope.selectedElements.length === 1, + pointDot: $scope.selectedElements.length === 1 + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); } - return sortData(); }; unCollapsedSetting = {}; unCollapsedSetting.initialized = false; @@ -8594,13 +8240,28 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","

" + name; - }; - $scope.chartId = function() { - return "cashProjectionChart-" + w.id; - }; $scope.orgDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise]; - $scope.trxList = { - display: false, - updated: false, - transactions: [] - }; - $scope.trxList.show = function() { - return $scope.trxList.display = true; - }; - $scope.trxList.hide = function() { - $scope.trxList.display = false; - if ($scope.trxList.updated) { - return ImpacWidgetsSvc.show(w).then(function() { - return $scope.trxList.updated = false; + $scope.widthDeferred = $q.defer(); + $scope.paramSelectorDeferred1 = $q.defer(); + $scope.paramSelectorDeferred2 = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred1.promise, $scope.paramSelectorDeferred2.promise]; + $scope.salaries = []; + w.initContext = function() { + var employee; + if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.employees)) { + $scope.periodOptions = [ + { + label: _.capitalize($translate.instant('impac.widget.settings.time_period.period.yearly')), + value: 'yearly' + }, { + label: _.capitalize($translate.instant('impac.widget.settings.time_period.period.monthly')), + value: 'monthly' + }, { + label: _.capitalize($translate.instant('impac.widget.settings.time_period.period.weekly')), + value: 'weekly' + }, { + label: _.capitalize($translate.instant('impac.widget.settings.time_period.period.daily')), + value: 'daily' + } + ]; + if (w.metadata && w.metadata.period) { + $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { + return o.value === w.metadata.period.toLowerCase(); + }) || $scope.periodOptions[0]); + } else { + $scope.period = angular.copy($scope.periodOptions[0]); + } + $scope.employeesOptions = _.map(w.content.employees, function(e) { + return { + value: e.uid, + label: e.lastname + " " + e.firstname + }; }); + employee = $scope.getEmployee(); + $scope.selectedEmployee = { + value: employee.uid, + label: employee.lastname + " " + employee.firstname + }; + return mapSalaries(employee, $scope.salaries); } }; - $scope.trxList.fetch = function(currentPage) { - var params; - if (currentPage == null) { - currentPage = 1; - } - params = angular.merge($scope.trxList.params, { - metadata: _.pick(w.metadata, 'organization_ids'), - page: { - number: currentPage - } + mapSalaries = function(employee, salariesArray) { + var amount, i, len, ref, results, salary, tooltip; + _.remove(salariesArray, function() { + return true; }); - return BoltResources.index(w.metadata.bolt_path, $scope.trxList.resources, params).then(function(response) { - var i, len, ref, trx; - _.remove($scope.trxList.transactions, function() { - return true; - }); - ref = response.data.data; - for (i = 0, len = ref.length; i < len; i++) { - trx = ref[i]; - $scope.trxList.transactions.push(angular.merge(trx.attributes, { - id: trx.id + ref = employee.employee_salaries; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + salary = ref[i]; + tooltip = salary.name; + if (salary.hours_per_week) { + tooltip = salary.name + " (" + salary.hours_per_week + "h per week)"; + } + if ((amount = salary.annual_salary)) { + results.push(salariesArray.push({ + amount: amount, + currency: salary.currency, + period: 'Annual', + tooltip: tooltip + })); + } else if ((amount = salary.hourly_rate)) { + results.push(salariesArray.push({ + amount: amount, + currency: salary.currency, + period: 'Hourly', + tooltip: tooltip })); + } else { + results.push(void 0); } - return $scope.trxList.totalRecords = response.data.meta.record_count; - })["finally"](function() { - return $scope.trxList.show(); - }); - }; - $scope.trxList.updateParams = function(resources, filter) { - $scope.trxList.resources = resources; - return $scope.trxList.params = { - filter: filter - }; - }; - $scope.trxList.showAll = function(resources) { - var filter; - if (resources == null) { - resources = 'invoices'; } - filter = { - status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'] - }; - $scope.trxList.updateParams(resources, filter); - return $scope.trxList.fetch(); - }; - $scope.trxList.updateExpectedDate = function(trxId, date) { - return BoltResources.update(w.metadata.bolt_path, $scope.trxList.resources, trxId, { - expected_payment_date: moment(date).format('YYYY-MM-DD') - }).then(function() { - return $scope.trxList.updated = true; - }); + return results; }; - $scope.trxList.changeResourcesType = function(resourcesType) { - if (resourcesType === $scope.trxList.resources) { - return; + $scope.getSingleCompanyName = function() { + var org, orgUid; + if (w.content && w.content.organizations) { + orgUid = w.content.organizations[0]; + org = _.find($scope.parentDashboard.data_sources, function(o) { + return o.uid === orgUid; + }); + if (org != null) { + return org.label; + } } - $scope.trxList.resources = resourcesType; - return $scope.trxList.fetch(); - }; - $scope.trxList.deleteTransaction = function(resourcesType, trxId) { - _.remove($scope.trxList.transactions, function(trx) { - return trx.id === trxId; - }); - return BoltResources.destroy(w.metadata.bolt_path, resourcesType, trxId).then(function() { - return $scope.trxList.updated = true; - }); - }; - $scope.chartDeferred = $q.defer(); - $scope.chartPromise = $scope.chartDeferred.promise; - $scope.chartThresholdOptions = { - label: 'Get alerted when the cash projection goes below' }; - $scope.addForecastPopup = { - resourcesType: 'invoices', - display: false, - show: function() { - return this.display = true; - }, - hide: function() { - return this.display = false; + $scope.getEmployee = function() { + var employee; + if (!$scope.isDataFound) { + return false; + } + if (w.metadata && w.metadata.employee_uid) { + employee = angular.copy(_.find(w.content.employees, function(e) { + return e.uid === w.metadata.employee_uid; + }) || w.content.employees[0]); + } else { + employee = angular.copy(w.content.employees[0]); + } + if (employee.salary != null) { + employee.earnings = $filter('mnoCurrency')(employee.salary.amount, employee.salary.currency); } + return employee; }; - $scope.addForecastPopup.createTransaction = function(trx) { - return BoltResources.create(w.metadata.bolt_path, this.resourcesType, { - title: trx.name, - transaction_number: "FOR-" + (Math.ceil(Math.random() * 10000)), - amount: trx.amount, - balance: trx.amount, - transaction_date: moment().format('YYYY-MM-DD'), - due_date: moment(trx.datePicker.date).format('YYYY-MM-DD'), - status: 'FORECAST', - currency: w.metadata.currency - }, { - company: { - data: { - type: 'companies', - id: $scope.firstCompanyId + $scope.formatAddress = function(anAddress) { + if (angular.isDefined(anAddress)) { + return anAddress.replace(/, /g, ',\n'); + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrEmployeeDetails', function() { + return { + restrict: 'A', + controller: 'WidgetHrEmployeeDetailsCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-employees-list', []); + + module.controller('WidgetHrEmployeesListCtrl', ["$scope", "$q", "$filter", "$translate", function($scope, $q, $filter, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; + w.initContext = function() { + if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.total) && !_.isEmpty(w.content.employees)) { + $scope.periodOptions = [ + { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.yearly")), + value: "yearly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.monthly")), + value: "monthly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.weekly")), + value: "weekly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.daily")), + value: "daily" } - } - }).then(function() { - return ImpacWidgetsSvc.show(w); - }); + ]; + return $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { + return o.value === w.content.total.period.toLowerCase(); + }) || $scope.periodOptions[0]); + } }; - onClickBar = function(event) { - var filter, resources, series; - series = this; - resources = (function() { - switch (series.userOptions.stack) { - case 'Payables': - return 'bills'; - case 'Receivables': - return 'invoices'; - } - })(); - if (resources == null) { - return; + $scope.getSingleCompanyName = function() { + var org, orgUid; + if (w.content && w.content.organizations) { + orgUid = w.content.organizations[0]; + org = _.find($scope.parentDashboard.data_sources, function(o) { + return o.uid === orgUid; + }); + return org.label; } - filter = { - expected_payment_date: dateFilter(event.point.x), - status: ['AUTHORISED', 'APPROVED', 'SUBMITTED', 'FORECAST'] - }; - $scope.trxList.updateParams(resources, filter); - return $scope.trxList.fetch(); }; - legendFormatter = function() { - var name; - name = this.name; - if (name !== 'Projected cash') { - return imgTemplate(imgSrc(name), name); + $scope.getEmployeeEarnings = function(anEmployee) { + if (anEmployee.salary != null) { + return $filter('mnoCurrency')(anEmployee.salary.amount, w.content.total.currency); + } else { + return '-'; } - return imgTemplate(imgSrc(name), name) + '
' + imgTemplate(imgSrc('cashFlow'), 'Cash flow'); }; - onZoom = function(event) { - zoomMetadata = angular.merge(w.metadata, { - xAxis: { - max: event.max, - min: event.min - } - }); - if (!updateLocked) { - updateLocked = true; - return $timeout(function() { - return ImpacWidgetsSvc.update(w, { - metadata: zoomMetadata - }, false)["finally"](function() { - return updateLocked = false; - }); - }, 1000); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrEmployeesList', function() { + return { + restrict: 'A', + controller: 'WidgetHrEmployeesListCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-leaves-balance', []); + + module.controller('WidgetHrLeavesBalanceCtrl', ["$scope", "$q", "$translate", function($scope, $q, $translate) { + var employee, name, settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; + w.initContext = function() { + if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.employees)) { + $scope.employeesOptions = _.map(w.content.employees, function(e) { + return { + value: e.uid, + label: e.lastname + " " + e.firstname + }; + }); + return $scope.selectedEmployee = { + value: $scope.getEmployee().uid, + label: ($scope.getEmployee().lastname) + " " + ($scope.getEmployee().firstname) + }; } }; - onClickLegend = function() { - var i, len, ref, results, s, series; - series = this; - ref = $scope.chart.hc.series; - results = []; - for (i = 0, len = ref.length; i < len; i++) { - s = ref[i]; - if (s.userOptions.linkedTo !== series.name) { - continue; - } - if (series.visible) { - results.push(s.hide()); - } else { - results.push(s.show()); - } + $scope.getEmployee = function() { + var e; + if (!$scope.isDataFound) { + return false; } - return results; + e = w.content.employees[0]; + if (w.metadata && w.metadata.employee_id) { + e = _.find(w.content.employees, function(e) { + return e.uid === w.metadata.employee_id; + }) || w.content.employees[0]; + } + return angular.copy(e); }; - w.initContext = function() { - var cashFlowSerie; - cashFlowSerie = _.find(w.content.chart.series, function(serie) { - return serie.name === "Cash flow"; + employee = $scope.getEmployee(); + name = employee && employee.leaves[0].name; + if (name) { + $scope.vacationLeaves_translation = name; + } else { + $translate('impac.widget.hr_leaves_balance.vacation_leaves').then(function(translation) { + return $scope.vacationLeaves_translation = translation; }); - cashFlowSerie.data = []; - cashFlowSerie.type = 'area'; - cashFlowSerie.showInLegend = false; - return BoltResources.index(w.metadata.bolt_path, 'companies', { - metadata: _.pick(w.metadata, 'organization_ids') - }).then(function(response) { - return $scope.firstCompanyId = response.data.data[0].id; + } + name = employee && employee.leaves[1].name; + if (name) { + $scope.sickLeaves_translation = name; + } else { + $translate('impac.widget.hr_leaves_balance.sick_leaves').then(function(translation) { + return $scope.sickLeaves_translation = translation; }); - }; - w.format = function() { - var options; - options = { - chartType: 'line', - chartOnClickCallbacks: [], - currency: w.metadata.currency, - showToday: true, - showLegend: true, - withZooming: { - defaults: w.metadata.xAxis, - callback: onZoom - } - }; - $scope.chart || ($scope.chart = new HighchartsFactory($scope.chartId(), w.content.chart, options)); - $scope.chart.render(w.content.chart, options); - $scope.chart.addCustomLegend(legendFormatter); - $scope.chart.addSeriesEvent('click', onClickBar); - $scope.chart.addSeriesEvent('legendItemClick', onClickLegend); - return $scope.chartDeferred.notify($scope.chart); - }; + } return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsCashProjection', function() { + module.directive('widgetHrLeavesBalance', function() { return { restrict: 'A', - controller: 'WidgetAccountsCashProjectionCtrl' + controller: 'WidgetHrLeavesBalanceCtrl' }; }); @@ -9017,86 +8652,100 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0)) { + w.width = 6; } return sortData(); } }; - $scope.getLastDate = function() { - if ($scope.dates != null) { - return $scope.dates[$scope.dates.length - 1]; - } - }; - $scope.getPrevDate = function() { - if ($scope.dates != null) { - return $scope.dates[$scope.dates.length - 2]; - } + $scope.getElementChartColor = function(index) { + return ChartFormatterSvc.getColor(index); }; $scope.getLastValue = function(element) { - if (element.cash_flows != null) { - return _.last(element.cash_flows); + return (element.totals && element.totals[element.totals.length - 1]) || 0; + }; + $scope.getTotalSum = function(element) { + if (element.totals != null) { + return _.reduce(element.totals, function(memo, num) { + return memo + num; + }, 0); } }; - $scope.formatVariance = function(aVariance) { - if (aVariance != null) { - if (aVariance > 0) { - return "+" + aVariance + " %"; - } else { - return aVariance + " %"; + $scope.getName = function(element) { + if ((element != null) && (element.name != null)) { + if (element.name === "total_leaves") { + return $translate.instant('impac.widget.hr_payroll_summary.total_leaves'); } - } else { - return "-"; + if (element.name === "total_super") { + return $translate.instant('impac.widget.hr_payroll_summary.total_superannuation'); + } + if (element.name === "total_reimbursement") { + return $translate.instant('impac.widget.hr_payroll_summary.total_reimbursements'); + } + if (element.name === "total_tax") { + return $translate.instant('impac.widget.hr_payroll_summary.total_taxes'); + } + if (element.name === "total_timeoff") { + return $translate.instant('impac.widget.hr_payroll_summary.total_time_off'); + } + return element.name.replace(/_/g, " "); } }; - $scope.getLastVariance = function(element) { - if ((element.variances != null) && (_.last(element.variances) != null)) { - return $scope.formatVariance(_.last(element.variances)); - } else { - return "-"; + $scope.getTrackedField = function() { + var allFieldsEquals, field; + if (!_.isEmpty($scope.selectedElements) && ($scope.selectedElements[0].id != null)) { + field = $scope.selectedElements[0].id.split('-')[0]; + allFieldsEquals = true; + angular.forEach($scope.selectedElements, function(element) { + return allFieldsEquals && (allFieldsEquals = element.id && field === element.id.split('-')[0]); + }); + if (allFieldsEquals) { + return $scope.getName({ + name: field + }); + } else { + return null; + } } }; - $scope.getVarianceClassColor = function(aVariance) { - if (parseInt(aVariance) > 0) { - return 'positive'; - } else if (parseInt(aVariance) < 0) { - return 'negative'; + $scope.formatDate = function(date) { + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + return $filter('momentDate')(date, w.metadata.hist_parameters.period); } else { - return null; - } - }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - return element.name.replace(/_/g, " "); + return $filter('momentDate')(date, 'default'); } }; $scope.sort = function(col) { @@ -9109,19 +8758,25 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0; + }; + $scope.getSelectLineColor = function(element, statementName) { + var sElem; + if (statementName == null) { + statementName = null; + } + sElem = _.find($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + if ($scope.hasElements()) { + return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + } + }; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; + } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); + }; + fetchElement = function(statements, sElemId) { + var element, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + if (statement.employees == null) { + continue; + } + element = _.find(statement.employees, function(e) { + return getIdentifier(e, statement.name) === sElemId; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; + } + } + }; + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; + } + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; + }; + sortEmployeesBy = function(getElem) { + return angular.forEach(w.content.summary, function(sElem) { + if (sElem.employees) { + return sElem.employees.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } + }); + }; + sortData = function() { + if ($scope.sortedColumn === 'employee') { + return sortEmployeesBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortEmployeesBy(function(el) { + return $scope.getLastValue(el); + }); + } + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, inputData, labels, options, pieData, pieOptions; + if ($scope.isDataFound && $scope.hasElements()) { + if (w.isHistoryMode) { + all_values_are_positive = true; + inputData = []; + labels = _.map(w.content.dates, function(date) { + if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "YEARLY") { + return $filter('momentDate')(date, 'YEARLY'); + } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "QUARTERLY") { + return $filter('momentDate')(date, 'QUARTERLY'); + } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "MONTHLY") { + return $filter('momentDate')(date, 'MONTHLY'); + } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "WEEKLY") { + return $filter('momentDate')(date, 'WEEKLY'); + } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "DAILY") { + return $filter('momentDate')(date, 'DAILY'); + } else { + return $filter('momentDate')(date, 'default'); + } + }); + angular.forEach($scope.selectedElements, function(sElem) { + var data; + data = angular.copy(sElem); + inputData.push({ + title: data.name, + labels: labels, + values: data.totals + }); + return angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: $scope.selectedElements.length === 1, + pointDot: $scope.selectedElements.length === 1, + currency: 'hide' + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); + } else { + pieData = _.map($scope.selectedElements, function(elem) { + return { + label: $filter('titleize')($scope.getName({ + name: elem.name + })), + value: $scope.getLastValue(elem) + }; + }); + pieOptions = { + showTooltips: true, + percentageInnerCutout: 50, + tooltipFontSize: 12, + currency: 'hide' + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); } + return $scope.drawTrigger.notify(chartData); } }; - $scope.getSelectLineColor = function(elem) { - return ChartFormatterSvc.getColor(0); + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; - fetchElement = function(statements) { - var element, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - if (statement.accounts == null) { - continue; - } - element = _.find(statement.accounts, function(acc) { - return getIdentifier(acc, statement.name) === w.metadata.selectedElement; - }); - if (element != null) { - element = angular.merge(angular.copy(element), { - category: statement.name - }); - return element; - } - } + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; - } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); + w.settings.push(unCollapsedSetting); + selectedElementsSetting = {}; + selectedElementsSetting.initialized = false; + selectedElementsSetting.initialize = function() { + return selectedElementsSetting.initialized = true; }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; + selectedElementsSetting.toMetadata = function() { + var selectedElementsMetadata; + selectedElementsMetadata = _.map($scope.selectedElements, function(element) { + return getIdentifier(element); + }); + return { + selectedElements: selectedElementsMetadata + }; + }; + w.settings.push(selectedElementsSetting); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrPayrollSummary', function() { + return { + restrict: 'A', + controller: 'WidgetHrPayrollSummaryCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-payroll-taxes', []); + + module.controller('WidgetHrPayrollTaxesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.histModeDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; + w.initContext = function() { + return $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.total_tax) && !_.isEmpty(w.content.dates); + }; + $scope.getCurrentPrice = function() { + if ($scope.isDataFound) { + return _.last(w.content.total_tax); } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; + }; + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency || "USD"; } - return category + "-" + id; }; - sortAccountsBy = function(getElem) { - return angular.forEach(w.content.summary, function(sElem) { - if (sElem.accounts) { - return sElem.accounts.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); + $scope.getPeriod = function() { + var period, period_param; + if ($scope.isDataFound && w.metadata && w.metadata.hist_parameters) { + period_param = w.metadata.hist_parameters.period || "MONTHLY"; + period = "day"; + if (period_param !== "DAILY") { + period = period_param.substr(0, period_param.length - 2).toLowerCase(); } - }); - }; - sortData = function() { - if ($scope.sortedColumn === 'account') { - return sortAccountsBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return $scope.getLastValue(el); - }); - } else if ($scope.sortedColumn === 'variance') { - return sortAccountsBy(function(el) { - return $scope.getLastVariance(el); - }); + return "(current " + period + ")"; } }; $scope.drawTrigger = $q.defer(); w.format = function() { - var all_values_are_positive, chartData, data, dates, inputData, options, period; - if ($scope.isDataFound && ($scope.selectedElement != null)) { - data = angular.copy($scope.selectedElement); + var all_values_are_positive, chartData, dates, inputData, options, period; + if ($scope.isDataFound) { period = null; if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { period = w.metadata.hist_parameters.period; @@ -9245,157 +9043,267 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); }); options = { scaleBeginAtZero: all_values_are_positive, - showXLabels: true + showXLabels: false }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options); + chartData = ChartFormatterSvc.lineChart([inputData], options); + return $scope.drawTrigger.notify(chartData); + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrPayrollTaxes', function() { + return { + restrict: 'A', + controller: 'WidgetHrPayrollTaxesCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-salaries-summary', []); + + module.controller('WidgetHrSalariesSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$translate", function($scope, $q, ChartFormatterSvc, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.widthDeferred = $q.defer(); + $scope.paramSelectorDeferred1 = $q.defer(); + $scope.paramSelectorDeferred2 = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred1.promise, $scope.paramSelectorDeferred2.promise, $scope.chartDeferred.promise]; + w.initContext = function() { + $scope.isDataFound = !_.isEmpty(w.content) && (w.content.summary != null) && !_.isEmpty(w.content.summary.data); + if ($scope.isDataFound) { + $scope.periodOptions = [ + { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.yearly").toLowerCase()), + value: "yearly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.monthly").toLowerCase()), + value: "monthly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.weekly").toLowerCase()), + value: "weekly" + }, { + label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.daily").toLowerCase()), + value: "daily" + } + ]; + $scope.filterOptions = [ + { + label: $translate.instant("impac.common.label.gender"), + value: "gender" + }, { + label: $translate.instant("impac.common.label.age_range"), + value: "age_range" + }, { + label: $translate.instant("impac.common.label.job_title"), + value: "job_title" + } + ]; + $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { + return o.value === w.content.total.period.toLowerCase(); + }) || $scope.periodOptions[0]); + return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return o.value === w.content.summary.filter; + }) || $scope.filterOptions[0]); + } + }; + $scope.getColorByIndex = function(index) { + return ChartFormatterSvc.getColor(index); + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var barData, barOptions, chartData, lineData, lineOptions; + if ($scope.isDataFound) { + barData = { + labels: _.map(w.content.summary.data, function(elem) { + return elem.label; + }), + values: _.map(w.content.summary.data, function(elem) { + return elem.value; + }) + }; + if ($scope.filter.value === 'gender') { + barOptions = { + showTooltips: false + }; + chartData = ChartFormatterSvc.barChart(barData, barOptions); + } else if ($scope.filter.value === 'job_title') { + barOptions = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 15 + }; + chartData = ChartFormatterSvc.barChart(barData, barOptions); + } else if ($scope.filter.value === 'age_range') { + if (_.last(barData.labels) === "unknown") { + barData.labels.pop(); + barData.values.pop(); + } + lineData = [ + { + title: "Average salary", + labels: barData.labels, + values: barData.values + } + ]; + lineOptions = { + scaleBeginAtZero: true, + showXLabels: false + }; + chartData = ChartFormatterSvc.lineChart(lineData, lineOptions); + } else { + return { + error: { + message: "wrong filter", + code: 400 + } + }; + } return $scope.drawTrigger.notify(chartData); } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - selectedElementSetting = {}; - selectedElementSetting.initialized = false; - selectedElementSetting.initialize = function() { - return selectedElementSetting.initialized = true; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetHrSalariesSummary', function() { + return { + restrict: 'A', + controller: 'WidgetHrSalariesSummaryCtrl' }; - selectedElementSetting.toMetadata = function() { - if ($scope.selectedElement == null) { - return { - selectedElement: null - }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.hr-leaves-schedule', []); + + module.controller('WidgetHrLeavesScheduleCtrl', ["$scope", "$q", "ChartFormatterSvc", function($scope, $q, ChartFormatterSvc) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + w.initContext = function() { + var eventsArray; + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary)) { + eventsArray = []; + angular.forEach(w.content.summary, function(leave) { + return eventsArray.push({ + title: leave.employee_name + " - " + leave.title, + start: leave.start_date, + end: leave.end_date + }); + }); + return $scope.eventSources = angular.copy(eventsArray); } - return { - selectedElement: getIdentifier($scope.selectedElement) - }; }; - w.settings.push(selectedElementSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsCashSummary', function() { + module.directive('widgetHrLeavesSchedule', function() { return { restrict: 'A', - controller: 'WidgetAccountsCashSummaryCtrl' + controller: 'WidgetHrLeavesScheduleCtrl' }; }); + module.directive('widgetComponentCalendar', ["$tranlate", function($tranlate) { + return { + scope: { + events: '=ngModel' + }, + restrict: 'A', + link: function(scope, element) { + var calendarOptions, getEvents; + scope.eventSources = []; + calendarOptions = { + header: { + left: $tranlate.instant('impac.common.action.calendar.left'), + center: $tranlate.instant('impac.common.action.calendar.center'), + right: $tranlate.instant('impac.common.action.calendar.right') + }, + contentHeight: 204 + }; + getEvents = function() { + return scope.events; + }; + return scope.$watch(getEvents, function(events) { + if (events.length > 0) { + element.fullCalendar('destroy'); + angular.extend(calendarOptions, { + events: scope.events + }); + return element.fullCalendar(calendarOptions); + } + }, true); + } + }; + }]); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.accounts-class-comparison', []); + module = angular.module('impac.components.widgets.hr-superannuation-accruals', []); - module.controller('WidgetAccountsClassComparisonCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "$translate", function($scope, $q, $filter, ChartFormatterSvc, $translate) { - var settingsPromises, translate, w; + module.controller('WidgetHrSuperannuationAccrualsCtrl', ["$scope", "$q", function($scope, $q) { + var settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); $scope.paramSelectorDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.timePeriodDeferred.promise]; - $scope.timePeriodInfoParams = { - accountingBehaviour: 'pnl', - histParams: {} - }; - translate = function(word) { - var translation; - word = word.toLowerCase(); - translation = $translate.instant('impac.widget.account_class_comp.klass.' + word); - if (_.includes(translation, 'impac.widget.account_class_comp.klass')) { - return _.capitalize(word); - } else { - return translation; - } - }; + settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; w.initContext = function() { - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.companies); - if ($scope.isDataFound) { - $scope.classifications = _.map(w.content.summary, function(summary) { - var klass; - klass = summary.classification; + if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.employees)) { + $scope.employeesOptions = _.map(w.content.employees, function(e) { return { - label: translate(klass), - labelTranslate: summary.classification_key != null ? summary.classification_key : void 0, - value: klass + value: e.uid, + label: e.lastname + " " + e.firstname }; }); - if (!$scope.selectedClassification) { - return $scope.selectedClassification = angular.copy(_.find($scope.classifications, { - value: w.metadata.classification || $scope.classifications[0].value - })); - } + return $scope.selectedEmployee = { + value: $scope.getEmployee().uid, + label: ($scope.getEmployee().lastname) + " " + ($scope.getEmployee().firstname) + }; } }; - $scope.getTotals = function() { - var amount; - if (!$scope.selectedClassification) { - return []; + $scope.getEmployee = function() { + var e; + if (!$scope.isDataFound) { + return false; } - return amount = _.find(w.content.summary, function(sum) { - return sum.classification === $scope.selectedClassification.value; - }).totals; - }; - $scope.getAmount = function(index) { - var amount; - amount = $scope.getTotals()[index]; - return $filter('mnoCurrency')(amount, w.content.currency); - }; - $scope.getAccountColor = function(anEntity) { - return ChartFormatterSvc.getColor(_.indexOf(w.content.companies, anEntity)); - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, inputData, options; - if ($scope.isDataFound) { - inputData = {}; - inputData.labels = w.content.companies; - inputData.values = $scope.getTotals(); - if (inputData.labels.length > 15) { - inputData.labels.length = 15; - } - if (inputData.values.length > 15) { - inputData.values.length = 15; - } - options = { - showTooltips: false, - showXLabels: false, - barValueSpacing: Math.max(8 - w.content.companies.length, 1) - }; - chartData = ChartFormatterSvc.barChart(inputData, options); - return $scope.drawTrigger.notify(chartData); + e = w.content.employees[0]; + if (w.metadata && w.metadata.employee_id) { + e = _.find(w.content.employees, function(e) { + return e.uid === w.metadata.employee_id; + }) || w.content.employees[0]; } + return angular.copy(e); }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsClassComparison', function() { + module.directive('widgetHrSuperannuationAccruals', function() { return { restrict: 'A', - controller: 'WidgetAccountsClassComparisonCtrl' + controller: 'WidgetHrSuperannuationAccrualsCtrl' }; }); @@ -9404,145 +9312,101 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
1) { - angular.merge($scope.comparisonModeOptions, w.metadata.comparison_mode); + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.employees) && !_.isEmpty(w.content.dates)) { + $scope.employeesOptions = _.map(w.content.employees, function(e) { + return { + value: e.id, + label: e.lastname + " " + e.firstname + }; + }); + $scope.selectedEmployee = { + value: $scope.getEmployee().id, + label: ($scope.getEmployee().lastname) + " " + ($scope.getEmployee().firstname) + }; + return $scope.unCollapsed = w.metadata.unCollapsed || []; + } + }; + $scope.toggleCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === categoryName; + }); + } else { + $scope.unCollapsed.push(categoryName); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + }; + $scope.isCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + return false; + } else { + return true; } - $scope.savedAccountsList = gatherSavedAccounts(); - $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.complete_list) || $scope.isComparisonMode(); - $scope.noComparableAccounts = $scope.isComparisonMode() && (w.content != null) && _.isEmpty(w.content.complete_list); - return $scope.canSelectComparisonMode = scanAccountsForMultiOrgData(); - }); + } }; - scanAccountsForMultiOrgData = function() { - if (w.content == null) { + $scope.getEmployee = function() { + if (!$scope.isDataFound) { return false; } - return _.uniq(_.pluck(w.content.complete_list, 'org_name')).length > 1; - }; - $scope.isComparisonMode = function() { - return _.result(_.find($scope.comparisonModeOptions, 'id', 'compare_accounts'), 'value') || false; - }; - $scope.hasAccountsSelected = function() { - return w.selectedAccounts && w.selectedAccounts.length > 0; - }; - $scope.getAccountColor = function(anAccount) { - if ($scope.isComparisonMode()) { - return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts[0].accounts, anAccount)); + if (w.metadata && w.metadata.employee_id) { + return _.find(w.content.employees, function(e) { + return e.id === w.metadata.employee_id; + }) || w.content.employees[0]; } else { - return ChartFormatterSvc.getColor(_.indexOf(w.selectedAccounts, anAccount)); + return w.content.employees[0]; } }; - $scope.addAccount = function(anAccount) { - if (!anAccount) { - return; + $scope.getEmployeeTimeWorked = function() { + var employee; + if (employee = $scope.getEmployee()) { + return _.find(w.content.employees, function(e) { + return e.id === employee.id; + }).total_time_worked; } - w.moveAccountToAnotherList(anAccount, w.remainingAccounts, w.selectedAccounts); - $scope.savedAccountsList.push(anAccount.uid); - return w.format(); }; - $scope.removeAccount = function(anAccount) { - if (!anAccount) { - return; + $scope.getEmployeeTimeOff = function() { + var employee; + if (employee = $scope.getEmployee()) { + return _.find(w.content.employees, function(e) { + return e.id === employee.id; + }).total_time_off; } - w.moveAccountToAnotherList(anAccount, w.selectedAccounts, w.remainingAccounts); - $scope.savedAccountsList.splice($scope.savedAccountsList.indexOf(anAccount.uid), 1); - return w.format(); - }; - $scope.formatAmount = function(anAccount) { - return $filter('mnoCurrency')(anAccount.current_balance, anAccount.currency); }; - gatherSavedAccounts = function() { - var areGrouped, group, i, len, savedUids, uid; - savedUids = w.metadata.accounts_list; - if (_.isEmpty(savedUids)) { - return []; - } - areGrouped = savedUids[0].indexOf(':') >= 0; - if (!$scope.isComparisonMode() && areGrouped) { - return _.flatten(_.map(savedUids, function(a) { - return a.split(':'); - })); - } else if ($scope.isComparisonMode() && !areGrouped) { - for (i = 0, len = savedUids.length; i < len; i++) { - uid = savedUids[i]; - group = _.find(w.content.complete_list, function(group) { - return group.uid.indexOf(uid) >= 0; - }); - if (group) { - return [group.uid]; - } - } - return []; - } else { - return savedUids; - } + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var inputData; - inputData = { - labels: [], - values: [] + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed }; - return $timeout(function() { - var account, chartData, groupedAccount, i, j, len, len1, options, ref, ref1; - ref = w.selectedAccounts; - for (i = 0, len = ref.length; i < len; i++) { - account = ref[i]; - if ($scope.isComparisonMode()) { - ref1 = account.accounts; - for (j = 0, len1 = ref1.length; j < len1; j++) { - groupedAccount = ref1[j]; - inputData.labels.push(groupedAccount.name); - inputData.values.push(groupedAccount.current_balance); - } - } else { - inputData.labels.push(account.name); - inputData.values.push(account.current_balance); - } - } - while (inputData.values.length < 15) { - inputData.labels.push(""); - inputData.values.push(null); - } - options = { - showTooltips: false, - showXLabels: false, - barDatasetSpacing: 9 - }; - chartData = ChartFormatterSvc.barChart(inputData, options); - return $scope.drawTrigger.notify(chartData); - }, 500); }; + w.settings.push(unCollapsedSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsComparison', function() { + module.directive('widgetHrTimesheets', function() { return { restrict: 'A', - controller: 'WidgetAccountsComparisonCtrl' + controller: 'WidgetHrTimesheetsCtrl' }; }); @@ -9551,265 +9415,318 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); - return value; - }); - inputData.push({ - title: 'Test Data', - labels: dates, - values: data - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false, - datasetFill: true, - pointDot: true - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); - }, 500); + if (!(($scope.selectedElements != null) && $scope.selectedElements.length > 0)) { + w.width = 6; + } + return sortData(); + } }; - $scope.addAccountToFormula = function(account) { - if (account == null) { - return; + $scope.getElementChartColor = function(index) { + if (index != null) { + return ChartFormatterSvc.getColor(index); } - if (w.selectedAccounts.length > 0) { - w.formula += " + {" + (w.selectedAccounts.length + 1) + "}"; + }; + $scope.getLastValue = function(element) { + if ((element != null) && (element.totals != null)) { + return _.last(element.totals); + } + }; + $scope.getTotalSum = function(element) { + if ((element != null) && (element.totals != null)) { + return _.reduce(element.totals, function(memo, num) { + return memo + num; + }, 0); + } + }; + $scope.getName = function(element) { + if ((element != null) && (element.name != null)) { + return element.name.replace(/_/g, " "); + } + }; + $scope.getPeriod = function() { + var period, period_param; + if ($scope.isDataFound && w.metadata && w.metadata.hist_parameters) { + period_param = w.metadata.hist_parameters.period || "MONTHLY"; + period = "day"; + if (period_param !== "DAILY") { + period = period_param.substr(0, period_param.length - 2).toLowerCase(); + } + return "current " + period; + } else { + return "current month"; + } + }; + $scope.getOldestInvoice = function(element) { + var idx; + idx = _.findIndex(element.totals, function(invoice) { + return invoice !== 0; + }); + return w.content.dates[idx] || null; + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; } else { - w.formula = "{1}"; + $scope.ascending = true; + $scope.sortedColumn = col; } - return w.moveAccountToAnotherList(account, w.remainingAccounts, w.selectedAccounts, false); + return sortData(); }; - $scope.removeAccountFromFormula = function(account) { - var diffAccountIndex, diffAccountUid, i, indexPattern, newFormula, nextUids, prevUids, removePattern; - prevUids = _.map(w.selectedAccounts, function(e) { - return e.uid; - }); - nextUids = _.reject(prevUids, function(e) { - return e === account.uid; - }); - diffAccountUid = _.first(_.difference(prevUids, nextUids)); - diffAccountIndex = _.indexOf(prevUids, diffAccountUid) + 1; - if (diffAccountIndex === 1) { - removePattern = "{" + diffAccountIndex + "\\}\\s*(-|\\*|\\/|\\+)*\\s*"; - } else { - removePattern = "\\s*(-|\\*|\\/|\\+)*\\s*\\{" + diffAccountIndex + "\\}"; + $scope.toggleSelectedElement = function(element, statementName) { + if (statementName == null) { + statementName = null; } - newFormula = angular.copy(w.formula).replace(new RegExp(removePattern, 'g'), ''); - i = diffAccountIndex + 1; - while (i <= prevUids.length) { - indexPattern = "\\{" + i + "\\}"; - newFormula = newFormula.replace(new RegExp(indexPattern, 'g'), "{" + (i - 1) + "}"); - i++; + if ($scope.isSelected(element, statementName)) { + $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + w.format(); + if (w.isExpanded() && $scope.selectedElements.length === 0) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + } else { + $scope.selectedElements || ($scope.selectedElements = []); + if (statementName) { + element.category = statementName; + } + $scope.selectedElements.push(element); + w.format(); + if (!w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } } - w.formula = angular.copy(newFormula); - return w.moveAccountToAnotherList(account, w.selectedAccounts, w.remainingAccounts, false); - }; - $scope.formulaModal = $scope.$new(); - $scope.formulaModal.config = { - backdrop: 'static', - template: $templateCache.get('widgets/accounts-custom-calculation/formula.modal.html'), - size: 'lg', - scope: $scope.formulaModal, - keyboard: false }; - $scope.formulaModal.open = function() { - var self; - self = $scope.formulaModal; - self.modalOrgDeferred = $q.defer(); - self.timePeriodDeferred = $q.defer(); - _.remove(w.settings, (function(set) { - return set.key === "organizations"; - })); - self.instance = $uibModal.open(self.config); - return $q.all([self.modalOrgDeferred.promise, self.timePeriodDeferred.promise]).then(function(success) { - return $scope.initSettings(); + $scope.isSelected = function(element, statementName) { + if (statementName == null) { + statementName = null; + } + return (element != null) && _.any($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); }); }; - $scope.reloadAccountsLists = function(orgs) { - if ((orgs != null) && _.some(_.values(orgs))) { - return $scope.updateWidgetSettings(); + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === element.name; + }); + } else { + $scope.unCollapsed.push(element.name); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); } }; - $scope.updateWidgetSettings = function() { - return ImpacWidgetsSvc.updateWidgetSettings(w); + $scope.isCollapsed = function(element) { + if ((element != null) && (element.name != null)) { + if (_.find($scope.unCollapsed, (function(name) { + return element.name === name; + }))) { + return false; + } else { + return true; + } + } }; - $scope.formulaModal.cancel = function() { - $scope.initSettings(); - return $scope.formulaModal.close(); + $scope.getSelectLineColor = function(element, statementName) { + var sElem; + if (statementName == null) { + statementName = null; + } + sElem = _.find($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + if ($scope.hasElements()) { + return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + } }; - $scope.formulaModal.proceed = function() { - ImpacWidgetsSvc.updateWidgetSettings(w); - return $scope.formulaModal.close(); + $scope.hasElements = function() { + return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; }; - $scope.formulaModal.close = function() { - return $scope.formulaModal.instance.close(); + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; + } + return getIdentifier(element, elementCategory) === getIdentifier(sElem); }; - $scope.$watch((function() { - return w.isEditMode; - }), function(result, prev) { - if (result && !prev) { - return $scope.formulaModal.open(); + fetchElement = function(statements, sElemId) { + var element, elements, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + elements = statement.suppliers || statement.customers; + if (_.isEmpty(elements)) { + continue; + } + element = _.find(elements, function(elem) { + return getIdentifier(elem, statement.name) === sElemId; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; + } } - }); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetAccountsCustomCalculation', function() { - return { - restrict: 'A', - controller: 'WidgetAccountsCustomCalculationCtrl' }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.accounts-detailed-classifications', []); - - module.controller('WidgetAccountsDetailedClassificationsCtrl', ["$scope", "$q", "ImpacWidgetsSvc", function($scope, $q, ImpacWidgetsSvc) { - var settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise]; - $scope.timePeriodInfoParams = { - accountingBehaviour: 'pnl', - histParams: {} + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; + } + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; }; - $scope.ascending = true; - $scope.sortedColumn = 'account'; - w.initContext = function() { - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.companies); - if ($scope.isDataFound) { - $scope.timePeriodInfoParams.histParams = w.metadata && w.metadata.hist_parameters; - $scope.unCollapsed = w.metadata.unCollapsed || []; - if (w.content.companies.length === 1) { - $scope.multiEntity = false; - $scope.dataSource = _.map(w.content.companies[0].classifications, function(klass) { - return { - label: klass.name, - value: klass.total, - currency: klass.currency, - entries: _.map(klass.accounts, function(acc) { - return { - label: acc.name, - value: acc.balance, - currency: acc.currency - }; - }) - }; - }); - } else { - $scope.multiEntity = true; - $scope.dataSource = _.map(w.content.companies, function(company) { - return { - label: company.name, - entries: _.map(company.classifications, function(klass) { - return { - label: klass.name, - value: klass.total, - currency: klass.currency - }; - }) - }; - }); + sortBy = function(data, getElem) { + return data.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; } - return sortData(); + return res; + }); + }; + sortByInvoiceCallback = function(el) { + var date; + date = $scope.getOldestInvoice(el); + if (date && _.isString(date)) { + date = date.match(/[^_\W]+\s?/g).join(''); + } + return new Date(date); + }; + sortData = function() { + if ($scope.sortedColumn === 'customer') { + sortBy(w.content.payables.suppliers, function(el) { + return el.name; + }); + return sortBy(w.content.receivables.customers, function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + sortBy(w.content.payables.suppliers, function(el) { + return $scope.getTotalSum(el); + }); + return sortBy(w.content.receivables.customers, function(el) { + return $scope.getTotalSum(el); + }); + } else if ($scope.sortedColumn === 'invoice') { + sortBy(w.content.payables.suppliers, sortByInvoiceCallback); + return sortBy(w.content.receivables.customers, sortByInvoiceCallback); } }; - $scope.toggleCollapsed = function(groupName) { - if (groupName != null) { - if (_.find($scope.unCollapsed, (function(name) { - return groupName === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === groupName; - }); - } else { - $scope.unCollapsed.push(groupName); + buildFxTotals = function() { + var contact, contactFxTotals, fxTotal, i, j, len, len1, ref, ref1, results; + ref = _.union(w.content.payables.suppliers, w.content.receivables.customers); + results = []; + for (i = 0, len = ref.length; i < len; i++) { + contact = ref[i]; + contactFxTotals = []; + ref1 = contact.fx_totals; + for (j = 0, len1 = ref1.length; j < len1; j++) { + fxTotal = ref1[j]; + if (!_.isEmpty(fxTotal)) { + _.mapKeys(fxTotal, function(total, currency) { + if (currency !== w.metadata.currency) { + return contactFxTotals.push({ + currency: currency, + amount: total.amount, + rate: total.rate + }); + } + }); + } } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - }; - $scope.isCollapsed = function(groupName) { - if (groupName != null) { - if (_.find($scope.unCollapsed, (function(name) { - return groupName === name; - }))) { - return false; + if (!_.isEmpty(contactFxTotals)) { + results.push(contact.formattedFxTotals = contactFxTotals); } else { - return true; + results.push(void 0); } } + return results; }; - sortAccountsBy = function(getElem) { - return angular.forEach($scope.dataSource, function(sElem) { - if (sElem.entries) { - return sElem.entries.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, dates, inputData, options, period; + if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { + all_values_are_positive = true; + inputData = []; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; } - }); - }; - sortData = function() { - if ($scope.sortedColumn === 'account') { - return sortAccountsBy(function(el) { - return el.label; + dates = _.map(w.content.dates, function(date, index) { + return $filter('momentDate')(date, period); }); - } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return el.value; + angular.forEach($scope.selectedElements, function(sElem) { + var data; + data = angular.copy(sElem); + inputData.push({ + title: data.name, + labels: dates, + values: data.totals + }); + return angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: $scope.selectedElements.length === 1, + pointDot: $scope.selectedElements.length === 1 + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); } }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); - }; unCollapsedSetting = {}; unCollapsedSetting.initialized = false; unCollapsedSetting.initialize = function() { @@ -9821,137 +9738,28 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); - }); - }); - lineData = { - labels: dates, - datasets: datasets - }; - lineOptions = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false, - currency: "(ratio)" - }; - chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); - } else { - companies = _.map(w.content.summary, function(s) { - return s.company; - }); - ratios = _.map(w.content.summary, function(s) { - return s.ratio; - }); - if (companies.length === 1) { - companies.push(companies[0]); - ratios.push(ratios[0]); - } - inputData = { - labels: companies, - values: ratios - }; - options = { - scales: { - yAxes: [ - { - ticks: { - suggestedMin: 0, - suggestedMax: 100, - maxTicksLimit: 5 - } - } - ] - }, - showXLabels: false, - pointDot: false, - currency: '%' - }; - chartData = ChartFormatterSvc.lineChart([inputData], options); - } - return $scope.drawTrigger.notify(chartData); - } - }; + w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsExpenseWeight', function() { + module.directive('widgetInvoicesAgedPayablesReceivables', function() { return { restrict: 'A', - controller: 'WidgetAccountsExpenseWeightCtrl' + controller: 'WidgetInvoicesAgedPayablesReceivablesCtrl' }; }); @@ -9960,117 +9768,114 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); - }); - } else { - datasets = [ - { - title: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), - values: w.content.values.expenses - }, { - title: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), - values: w.content.values.revenue - } - ]; - all_values_are_positive = true; - angular.forEach(w.content.values.expenses, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - angular.forEach(w.content.values.revenue, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - } - lineData = { - labels: dates, - datasets: datasets + if ($scope.filter.value === 'salary_range') { + barData = { + labels: _.map(w.content.summary.data, function(elem) { + return $scope.formatSalaryRange(elem); + }), + values: _.map(w.content.summary.data, function(elem) { + return elem.value; + }) }; - lineOptions = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false + barOptions = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 15 }; - chartData = ChartFormatterSvc.combinedBarChart(lineData, lineOptions, false, true); + chartData = ChartFormatterSvc.barChart(barData, barOptions); } else { - pieData = [ - { - label: $translate.instant('impac.widget.accounts_expenses_revenue.expenses') + (" (" + ($scope.getCurrency()) + ")"), - value: $scope.getCurrentExpenses() - }, { - label: $translate.instant('impac.widget.accounts_expenses_revenue.revenue') + (" (" + ($scope.getCurrency()) + ")"), - value: $scope.getCurrentRevenue() - } - ]; + pieData = _.map(w.content.summary.data, function(elem) { + return { + label: elem.label, + value: elem.value + }; + }); pieOptions = { - tooltipFontSize: 12, - percentageInnerCutout: 0 + showTooltips: true, + percentageInnerCutout: 50, + tooltipFontSize: 12 }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); } return $scope.drawTrigger.notify(chartData); } @@ -10078,10 +9883,10 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
" + entity.name + ""]; + count = 1; + _.each(entity.invoices, function(i) { + var amountDetail, formattedInvoiced, formattedPaid, invCurrency, txn; + txn = i.transaction_no !== "" ? " (" + i.transaction_no + ")" : ""; + invCurrency = Object.keys(i.fx_totals)[0]; + formattedInvoiced = $filter('mnoCurrency')(i.fx_totals[invCurrency].invoiced, invCurrency, true); + if (i.tooltip_status === "partially paid") { + formattedPaid = $filter('mnoCurrency')(i.fx_totals[invCurrency].paid, invCurrency, true); + amountDetail = " (" + formattedPaid + " on " + formattedInvoiced + ")"; + } else { + amountDetail = " (" + formattedInvoiced + ")"; + } + tooltip.push("#" + count + txn + " - " + i.tooltip_status + amountDetail); + return count++; + }); + return $scope.invoiceTooltips[entity.id] = $sce.trustAsHtml(tooltip.join("
")); + }); + }; + buildFxTotals = function() { + var contact, contactFxTotals, j, len, ref, results; + ref = w.content.entities; + results = []; + for (j = 0, len = ref.length; j < len; j++) { + contact = ref[j]; + contactFxTotals = []; + _.mapKeys(contact.fx_totals, function(total, currency) { + if (currency !== w.metadata.currency) { + return contactFxTotals.push({ + currency: currency, + amount: total.invoiced, + rate: total.rate + }); + } }); - all_values_are_positive = true; - ref = w.content.values.payables; - for (i = 0, len = ref.length; i < len; i++) { - value = ref[i]; - all_values_are_positive && (all_values_are_positive = value >= 0); - } - ref1 = w.content.values.receivables; - for (j = 0, len1 = ref1.length; j < len1; j++) { - value = ref1[j]; - all_values_are_positive && (all_values_are_positive = value >= 0); + if (!_.isEmpty(contactFxTotals)) { + results.push(contact.formattedFxTotals = contactFxTotals); + } else { + results.push(void 0); } - lineOptions = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false - }; - return $translate(['impac.widget.accounts_payable_receivable.payable', 'impac.widget.accounts_payable_receivable.receivable']).then(function(translation) { - var chartData, lineData; - lineData = [ - { - title: translation['impac.widget.accounts_payable_receivable.payable'], - labels: dates, - values: w.content.values.payables - }, { - title: translation['impac.widget.accounts_payable_receivable.receivable'], - labels: dates, - values: w.content.values.receivables - } - ]; - chartData = ChartFormatterSvc.lineChart(lineData, lineOptions, true); - return $scope.drawTrigger.notify(chartData); - }); } + return results; }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsPayableReceivable', function() { + module.directive('widgetInvoicesList', function() { return { restrict: 'A', - controller: 'WidgetAccountsPayableReceivableCtrl' + controller: 'WidgetInvoicesListCtrl' }; }); @@ -10181,334 +10000,146 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0; - }; + $scope.datesPickerDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartFiltersDeferred.promise, $scope.chartDeferred.promise, $scope.datesPickerDeferred.promise]; + $scope.defaultFrom = (new Date().getFullYear() - 10) + "-01-01"; w.initContext = function() { - var dates, firstDate, foundElem, histParams, i, lastDate, len, ref, sElemId; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { - $scope.dates = w.content.dates; - $scope.unCollapsed = w.metadata.unCollapsed || []; - if (w.metadata && (histParams = w.metadata.hist_parameters)) { - dates = ImpacUtilities.selectedTimeRange(histParams); - firstDate = $filter('momentDate')(dates.from, getPeriod()); - lastDate = $filter('momentDate')(dates.to, getPeriod()); - $scope.amountDisplayedOptions[1].label = firstDate + " to " + lastDate; - $scope.amountDisplayedOptions[0].label = lastDate; - } - setAmountDisplayed(); - if (!_.isEmpty(w.metadata.selectedElements)) { - $scope.selectedElements = []; - ref = w.metadata.selectedElements; - for (i = 0, len = ref.length; i < len; i++) { - sElemId = ref[i]; - foundElem = _.find(w.content.summary, function(statement) { - return statement.name === sElemId; - }); - foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); - if (foundElem) { - $scope.selectedElements.push(foundElem); - } - } - } - if (!_.any($scope.selectedElements)) { - w.width = 6; - } - return sortData(); - } - }; - $scope.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); - }; - getPeriod = function() { - if ((w.metadata != null) && (w.metadata.hist_parameters != null) && (w.metadata.hist_parameters.period != null)) { - return w.metadata.hist_parameters.period; - } else { - return 'MONTHLY'; - } - }; - getLastAmount = function(element) { - if (element.totals != null) { - return _.last(element.totals); - } - }; - getTotalAmount = function(element) { - if (element.totals != null) { - return _.sum(element.totals); - } - }; - $scope.getAmount = function(element) { - switch ($scope.amountDisplayed.value) { - case 'total': - return getTotalAmount(element); - default: - return getLastAmount(element); - } - }; - $scope.getClassColor = function(aTotal) { - if (parseInt(aTotal) > 0) { - return 'positive'; - } else if (parseInt(aTotal) < 0) { - return 'negative'; - } else { - return null; - } - }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - return element.name.replace(/_/g, " "); - } - }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); + return $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.summary); }; - $scope.toggleSelectedElement = function(element, statementName) { - var selectedElement; - if (statementName == null) { - statementName = null; - } - if ($scope.isSelected(element, statementName)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = _.map(w.content.summary, function(entity) { + return { + label: entity.name, + value: entity.total + }; }); - w.format(); - if (w.isExpanded() && $scope.selectedElements.length === 0) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - } else { - selectedElement = angular.copy(element); - selectedElement.category = statementName; - $scope.selectedElements || ($scope.selectedElements = []); - $scope.selectedElements.push(selectedElement); - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - } - }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; - }); - } else { - $scope.unCollapsed.push(element.name); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; - } else { - return true; - } - } - }; - $scope.getSelectLineColor = function(element, statementName) { - var sElem; - if (statementName == null) { - statementName = null; - } - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - if ($scope.hasElements()) { - return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); } }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetInvoicesSummary', function() { + return { + restrict: 'A', + controller: 'WidgetInvoicesSummaryCtrl' }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.sales-aged', []); + + module.controller('WidgetSalesAgedCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.paramSelectorDeferred = $q.defer(); + $scope.chartDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.chartDeferred.promise]; + w.initContext = function() { + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.aged_sales) && !_.isEmpty(w.content.dates); + if ($scope.isDataFound) { + $scope.filterOptions = [ + { + label: $translate.instant("impac.widget.sales_aged.value_sold_taxes"), + value: 'gross_value_sold' + }, { + label: $translate.instant("impac.widget.sales_aged.value_sold_no_taxes"), + value: 'net_value_sold' + }, { + label: $translate.instant("impac.widget.sales_aged.quantity_sold"), + value: 'quantity_sold' + } + ]; + return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return w.metadata && w.metadata.filter === o.value; + }) || $scope.filterOptions[0]); } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); }; - fetchElement = function(statements, sElemId) { - var element, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - if (statement.accounts == null) { - continue; - } - element = _.find(statement.accounts, function(acc) { - return getIdentifier(acc, statement.name) === sElemId; - }); - if (element != null) { - element = angular.merge(angular.copy(element), { - category: statement.name - }); - return element; - } + $scope.getTotal = function(anIndex) { + if ($scope.isDataFound && anIndex >= 0 && anIndex < w.content.aged_sales[$scope.filter.value].length) { + return w.content.aged_sales[$scope.filter.value][anIndex]; } }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; - } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; + $scope.getLastDate = function() { + if ($scope.isDataFound) { + return _.last(w.content.dates); } - return category + "-" + id; - }; - sortAccountsBy = function(getElem) { - return angular.forEach(w.content.summary, function(sElem) { - if (sElem.accounts) { - return sElem.accounts.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); - } - }); }; - sortData = function() { - if ($scope.sortedColumn === 'account') { - return sortAccountsBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return $scope.getAmount(el); - }); + $scope.getClassColor = function(prev, value) { + if (value < prev) { + return 'negative'; + } else if (value > prev) { + return 'positive'; + } else { + return null; } }; $scope.drawTrigger = $q.defer(); w.format = function() { - var all_values_are_positive, chartData, inputData, options; - if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { + var all_values_are_positive, chartData, inputData, options, period, values; + if ($scope.isDataFound) { all_values_are_positive = true; inputData = []; - angular.forEach($scope.selectedElements, function(sElem) { - var data, dates, period; - data = angular.copy(sElem); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData.push({ - title: data.name, - labels: dates, - values: data.totals - }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); + values = w.content.aged_sales[$scope.filter.value]; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + $scope.formattedDates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData.push({ + title: $scope.filter.label, + labels: $scope.formattedDates, + values: values + }); + angular.forEach(values, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); }); options = { scaleBeginAtZero: all_values_are_positive, showXLabels: true, - datasetFill: $scope.selectedElements.length === 1, - pointDot: $scope.selectedElements.length === 1 + datasetFill: true, + pointDot: true }; + if ($scope.filter.value.indexOf('quantity') > -1) { + angular.merge(options, { + currency: 'hide' + }); + } chartData = ChartFormatterSvc.lineChart(inputData, options); return $scope.drawTrigger.notify(chartData); } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - selectedElementsSetting = {}; - selectedElementsSetting.initialized = false; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; - }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(element) { - return getIdentifier(element); - }); - return { - selectedElements: selectedElementsMetadata - }; - }; - w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsProfitAndLoss', function() { + module.directive('widgetSalesAged', function() { return { restrict: 'A', - controller: 'WidgetAccountsProfitAndLossCtrl' + controller: 'WidgetSalesAgedCtrl' }; }); @@ -10517,118 +10148,73 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
" + ($filter('date')(date, 'd-MM-yy')); } else { - $scope.totalRatio = _.last(w.content.calculation.ratio.totals); - $scope.totalNumerator = _.last(w.content.calculation.numerator.totals); - $scope.totalDenominator = _.last(w.content.calculation.denominator.totals); - $scope.calculatedNumerator = _.last(w.content.calculation.numerator.values); - return $scope.calculatedDenominator = _.last(w.content.calculation.denominator.values); + return w.content.break_even.projected_date; } } }; - $scope.toggleSimulationMode = function(init) { - if (init == null) { - init = false; - } - if (init) { - $scope.initSettings(); + $scope.getOpportunitiesToClose = function() { + var opps; + if ($scope.isDataFound && w.content.break_even) { + if (("" + w.content.break_even.opportunities_to_close).match('>')) { + opps = angular.copy(w.content.break_even.opportunities_to_close).replace('>', ''); + return "> " + opps; + } else { + return w.content.break_even.opportunities_to_close; + } } - return $scope.simulationMode = !$scope.simulationMode; }; - $scope.saveSimulation = function() { - $scope.updateSettings(); - return $scope.toggleSimulationMode(); + $scope.isTargetMet = function() { + if ($scope.isDataFound && w.content.break_even) { + return w.content.break_even.variance < 0; + } }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, data, dates, inputData, options, period; - if ($scope.isDataFound) { - data = angular.copy(w.content); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(data.layout.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - labels: dates, - datasets: [ - { - title: data.layout.ratio, - values: data.calculation.ratio.totals - } - ] - }; - options = { - currency: 'hide' - }; - chartData = ChartFormatterSvc.combinedBarChart(inputData, options, false); - return $scope.drawTrigger.notify(chartData); + $scope.getVariance = function() { + if ($scope.isDataFound && w.content.break_even) { + return Math.abs(w.content.break_even.variance); } }; + thresholdSetting = {}; + thresholdSetting.initialized = false; + thresholdSetting.initialize = function() { + return thresholdSetting.initialized = true; + }; + thresholdSetting.toMetadata = function() { + return { + threshold: $scope.threshold + }; + }; + w.settings.push(thresholdSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetAccountsRatios', function() { + module.directive('widgetSalesBreakEven', function() { return { restrict: 'A', - controller: 'WidgetAccountsRatiosCtrl' + controller: 'WidgetSalesBreakEvenCtrl' }; }); @@ -10637,192 +10223,371 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0; + }; + $scope.getSelectLineColor = function(element, statementName) { + var sElem; + if (statementName == null) { + statementName = null; } - if (w.metadata && w.metadata.employee_uid) { - employee = angular.copy(_.find(w.content.employees, function(e) { - return e.uid === w.metadata.employee_uid; - }) || w.content.employees[0]); - } else { - employee = angular.copy(w.content.employees[0]); + sElem = _.find($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, statementName, sElem); + }); + if ($scope.hasElements()) { + return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); } - if (employee.salary != null) { - employee.earnings = $filter('mnoCurrency')(employee.salary.amount, employee.salary.currency); + }; + matchElementToSelectedElement = function(element, elementCategory, sElem) { + if (elementCategory == null) { + elementCategory = null; } - return employee; + return getIdentifier(element, elementCategory) === getIdentifier(sElem); }; - $scope.formatAddress = function(anAddress) { - if (angular.isDefined(anAddress)) { - return anAddress.replace(/, /g, ',\n'); + fetchElement = function(statements, sElemId) { + var element, i, len, statement; + for (i = 0, len = statements.length; i < len; i++) { + statement = statements[i]; + if (statement.sales == null) { + continue; + } + element = _.find(statement.sales, function(sale) { + return getIdentifier(sale, statement.name) === sElemId; + }); + if (element != null) { + element = angular.merge(angular.copy(element), { + category: statement.name + }); + return element; + } } }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetHrEmployeeDetails', function() { - return { - restrict: 'A', - controller: 'WidgetHrEmployeeDetailsCtrl' + getIdentifier = function(element, category) { + var id; + if (category == null) { + category = null; + } + id = element.id || element.name; + category || (category = element.category); + if (!category) { + return id; + } + return category + "-" + id; }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.hr-employees-list', []); - - module.controller('WidgetHrEmployeesListCtrl', ["$scope", "$q", "$filter", "$translate", function($scope, $q, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; - w.initContext = function() { - if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.total) && !_.isEmpty(w.content.employees)) { - $scope.periodOptions = [ - { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.yearly")), - value: "yearly" - }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.monthly")), - value: "monthly" - }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.weekly")), - value: "weekly" - }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.daily")), - value: "daily" - } - ]; - return $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { - return o.value === w.content.total.period.toLowerCase(); - }) || $scope.periodOptions[0]); + sortAccountsBy = function(getElem) { + return angular.forEach(w.content.sales_comparison, function(sElem) { + if (sElem.sales) { + return sElem.sales.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } + }); + }; + sortData = function() { + if ($scope.sortedColumn === 'sales') { + return sortAccountsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortAccountsBy(function(el) { + return $scope.getTotalForPeriod(el); + }); } }; - $scope.getSingleCompanyName = function() { - var org, orgUid; - if (w.content && w.content.organizations) { - orgUid = w.content.organizations[0]; - org = _.find($scope.parentDashboard.data_sources, function(o) { - return o.uid === orgUid; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, inputData, options; + if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { + all_values_are_positive = true; + inputData = []; + angular.forEach($scope.selectedElements, function(sElem) { + var data, dates, period; + data = angular.copy(sElem); + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData.push({ + title: data.name, + labels: dates, + values: data.totals[$scope.filter.value] + }); + return angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); }); - return org.label; + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: false, + pointDot: false + }; + if ($scope.filter.value.indexOf('quantity') > -1) { + angular.merge(options, { + currency: 'hide' + }); + } + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); + } + }; + buildFxTotals = function() { + var grossSaleFxTotals, groupedSales, i, len, netSaleFxTotals, ref, results, sale; + ref = w.content.sales_comparison; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + groupedSales = ref[i]; + results.push((function() { + var j, len1, ref1, results1; + ref1 = groupedSales.sales; + results1 = []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + sale = ref1[j]; + sale.formattedFxTotals = {}; + netSaleFxTotals = []; + grossSaleFxTotals = []; + if (!_.isEmpty(sale.fx_totals)) { + _.mapKeys(sale.fx_totals, function(total, currency) { + var grossAmount, k, l, len2, len3, netAmount, ref2, ref3, results2; + ref2 = total['net_value_sold']; + for (k = 0, len2 = ref2.length; k < len2; k++) { + grossAmount = ref2[k]; + if (!(grossAmount === 0 || currency === w.metadata.currency)) { + netSaleFxTotals.push({ + currency: currency, + amount: grossAmount, + rate: total.rate + }); + } + } + ref3 = total['gross_value_sold']; + results2 = []; + for (l = 0, len3 = ref3.length; l < len3; l++) { + netAmount = ref3[l]; + if (!(netAmount === 0 || currency === w.metadata.currency)) { + results2.push(grossSaleFxTotals.push({ + currency: currency, + amount: netAmount, + rate: total.rate + })); + } else { + results2.push(void 0); + } + } + return results2; + }); + } + if (!_.isEmpty(netSaleFxTotals)) { + sale.formattedFxTotals['net_value_sold'] = netSaleFxTotals; + } + if (!_.isEmpty(grossSaleFxTotals)) { + results1.push(sale.formattedFxTotals['gross_value_sold'] = grossSaleFxTotals); + } else { + results1.push(void 0); + } + } + return results1; + })()); } + return results; + }; + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; + }; + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; }; - $scope.getEmployeeEarnings = function(anEmployee) { - if (anEmployee.salary != null) { - return $filter('mnoCurrency')(anEmployee.salary.amount, w.content.total.currency); - } else { - return '-'; - } + w.settings.push(unCollapsedSetting); + selectedElementsSetting = {}; + selectedElementsSetting.initialized = false; + selectedElementsSetting.initialize = function() { + return selectedElementsSetting.initialized = true; + }; + selectedElementsSetting.toMetadata = function() { + var selectedElementsMetadata; + selectedElementsMetadata = _.map($scope.selectedElements, function(sElem) { + return getIdentifier(sElem); + }); + return { + selectedElements: selectedElementsMetadata + }; }; + w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrEmployeesList', function() { + module.directive('widgetSalesComparison', function() { return { restrict: 'A', - controller: 'WidgetHrEmployeesListCtrl' + controller: 'WidgetSalesComparisonCtrl' }; }); @@ -10831,479 +10596,472 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); + return $scope.statusOptions.push({ + label: status, + selected: isSelected }); }); - return $scope.eventSources = angular.copy(eventsArray); } }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetHrLeavesSchedule', function() { - return { - restrict: 'A', - controller: 'WidgetHrLeavesScheduleCtrl' + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; + } }; - }); - - module.directive('widgetComponentCalendar', ["$tranlate", function($tranlate) { - return { - scope: { - events: '=ngModel' - }, - restrict: 'A', - link: function(scope, element) { - var calendarOptions, getEvents; - scope.eventSources = []; - calendarOptions = { - header: { - left: $tranlate.instant('impac.common.action.calendar.left'), - center: $tranlate.instant('impac.common.action.calendar.center'), - right: $tranlate.instant('impac.common.action.calendar.right') - }, - contentHeight: 204 - }; - getEvents = function() { - return scope.events; - }; - return scope.$watch(getEvents, function(events) { - if (events.length > 0) { - element.fullCalendar('destroy'); - angular.extend(calendarOptions, { - events: scope.events - }); - return element.fullCalendar(calendarOptions); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = _.compact(_.map($scope.statusOptions, function(statusOption) { + var value; + value = w.content.status_average_durations[statusOption.label]; + if (statusOption.selected && angular.isDefined(value)) { + return { + label: ($filter('titleize')(statusOption.label)) + ": " + value + " " + $scope.unit, + value: value + }; } - }, true); + })); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12, + currency: w.content.unit + }; + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); } }; + return $scope.widgetDeferred.resolve(settingsPromises); }]); + module.directive('widgetSalesCycle', function() { + return { + restrict: 'A', + controller: 'WidgetSalesCycleCtrl' + }; + }); + }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.hr-payroll-summary', []); + module = angular.module('impac.components.widgets.sales-forecast', []); - module.controller('WidgetHrPayrollSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, $translate) { - var fetchElement, getIdentifier, h, matchElementToSelectedElement, periodName, selectedElementsSetting, settingsPromises, sortData, sortEmployeesBy, unCollapsedSetting, w; + module.controller('WidgetSalesForecastCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - $scope.histModeDeferred = $q.defer(); $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.histModeDeferred.promise, $scope.chartDeferred.promise]; - $scope.ascending = true; - $scope.sortedColumn = 'employee'; - periodName = (h = $scope.widget.metadata.hist_parameters) && h.period ? h.period.toLowerCase() : 'monthly'; - $scope.periodTranslation = $translate.instant("impac.widget.settings.time_period.period." + periodName); + settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise]; w.initContext = function() { - var foundElem, i, len, ref, sElemId; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { - $scope.unCollapsed = w.metadata.unCollapsed || []; - if (!_.isEmpty(w.metadata.selectedElements)) { - $scope.selectedElements = []; - ref = w.metadata.selectedElements; - for (i = 0, len = ref.length; i < len; i++) { - sElemId = ref[i]; - foundElem = _.find(w.content.summary, function(statement) { - return statement.name === sElemId; - }); - foundElem || (foundElem = fetchElement(w.content.summary, sElemId)); - if (foundElem) { - $scope.selectedElements.push(foundElem); - } - } - } - if (!(($scope.selectedElements != null) && $scope.selectedElements.length > 0)) { - w.width = 6; - } - return sortData(); - } - }; - $scope.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.getLastValue = function(element) { - return (element.totals && element.totals[element.totals.length - 1]) || 0; + return $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.dates) && !_.isEmpty(w.content.totals); }; - $scope.getTotalSum = function(element) { - if (element.totals != null) { - return _.reduce(element.totals, function(memo, num) { - return memo + num; - }, 0); + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - if (element.name === "total_leaves") { - return $translate.instant('impac.widget.hr_payroll_summary.total_leaves'); - } - if (element.name === "total_super") { - return $translate.instant('impac.widget.hr_payroll_summary.total_superannuation'); - } - if (element.name === "total_reimbursement") { - return $translate.instant('impac.widget.hr_payroll_summary.total_reimbursements'); - } - if (element.name === "total_tax") { - return $translate.instant('impac.widget.hr_payroll_summary.total_taxes'); - } - if (element.name === "total_timeoff") { - return $translate.instant('impac.widget.hr_payroll_summary.total_time_off'); + $scope.getOpportunityAmount = function(anOpp) { + if ($scope.isDataFound && !_.isEmpty(anOpp)) { + if (anOpp.amount && anOpp.amount.amount) { + return anOpp.amount.amount; + } else { + return '-'; } - return element.name.replace(/_/g, " "); } }; - $scope.getTrackedField = function() { - var allFieldsEquals, field; - if (!_.isEmpty($scope.selectedElements) && ($scope.selectedElements[0].id != null)) { - field = $scope.selectedElements[0].id.split('-')[0]; - allFieldsEquals = true; - angular.forEach($scope.selectedElements, function(element) { - return allFieldsEquals && (allFieldsEquals = element.id && field === element.id.split('-')[0]); - }); - if (allFieldsEquals) { - return $scope.getName({ - name: field - }); + $scope.getOpportunityCurrency = function(anOpp) { + if ($scope.isDataFound && !_.isEmpty(anOpp)) { + if (anOpp.amount && anOpp.amount.currency) { + return anOpp.amount.currency; + } else if (w.content.currency) { + return w.content.currency; } else { - return null; + return 'AUD'; } } }; - $scope.formatDate = function(date) { - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - return $filter('momentDate')(date, w.metadata.hist_parameters.period); - } else { - return $filter('momentDate')(date, 'default'); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, formattedDates, inputData, options, period; + if ($scope.isDataFound) { + all_values_are_positive = true; + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + formattedDates = _.map(w.content.dates, function(aDate) { + return $filter('momentDate')(aDate, period); + }); + inputData = [ + { + title: $translate.instant('impac.widget.sales_forecast.sales_performance'), + labels: formattedDates, + values: w.content.totals + } + ]; + angular.forEach(w.content.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: true, + pointDot: false + }; + chartData = ChartFormatterSvc.lineChart(inputData, options); + return $scope.drawTrigger.notify(chartData); } }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetSalesForecast', function() { + return { + restrict: 'A', + controller: 'WidgetSalesForecastCtrl' }; - $scope.toggleSelectedElement = function(element, statementName) { - var selectedElement; - if (statementName == null) { - statementName = null; - } - if ($scope.isSelected(element, statementName)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - w.format(); - if (w.isExpanded() && $scope.selectedElements.length === 0) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - } else { - selectedElement = angular.copy(element); - selectedElement.category = statementName; - $scope.selectedElements || ($scope.selectedElements = []); - $scope.selectedElements.push(selectedElement); - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + }); + +}).call(this); + +(function() { + var module, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + module = angular.module('impac.components.widgets.sales-leads-funnel', []); + + module.controller('WidgetSalesLeadsFunnelCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$sce", "ImpacWidgetsSvc", "ImpacDashboardsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $sce, ImpacWidgetsSvc, ImpacDashboardsSvc, $translate) { + var hasOneLead, selectedStatusSetting, setLeadDescriptionTooltips, settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.paramsPickerDeferred = $q.defer(); + $scope.widthDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramsPickerDeferred.promise, $scope.widthDeferred.promise]; + hasOneLead = function(leadsPerStatus) { + var reducedHash, total, totalsArray; + reducedHash = _.mapValues(leadsPerStatus, function(statusHash) { + return statusHash.total; + }); + totalsArray = _.compact(_.values(reducedHash)); + total = _.reduce(totalsArray, function(total, n) { + if (total == null) { + total = 0; } - } - }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); + return total + n; }); + return (total != null) && total > 0; }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; + w.initContext = function() { + var dhb, status_selection; + dhb = ImpacDashboardsSvc.getCurrentDashboard(); + status_selection = w.metadata.status_selection || dhb.metadata.status_selection || { + values: [] + }; + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.leads_per_status) && hasOneLead(w.content.leads_per_status)) { + _.remove(status_selection.values, function(status) { + return indexOf.call(_.keys(w.content.leads_per_status), status) < 0; + }); + $scope.hasReach = true; + $scope.statusOptions = []; + return angular.forEach(w.content.leads_per_status, function(value, status) { + var isSelected; + isSelected = _.isEmpty(status_selection.values) || (indexOf.call(status_selection.values, status) >= 0); + return $scope.statusOptions.push({ + label: status, + selected: isSelected }); - } else { - $scope.unCollapsed.push(element.name); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + }); } - }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; - } else { - return true; - } + }; + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; + $scope.getImpacColor = function(index) { + return ChartFormatterSvc.getColor(index); }; - $scope.getSelectLineColor = function(element, statementName) { - var sElem; - if (statementName == null) { - statementName = null; + $scope.toggleSelectStatus = function(aStatus) { + if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { + $scope.selectedStatus = null; + } else { + $scope.selectedStatus = aStatus; + $scope.setLeadTooltipsIsLocked = false; } - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - if ($scope.hasElements()) { - return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + if (!w.isExpanded() && $scope.selectedStatus) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); } }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; - } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); + $scope.isSelected = function(aStatus) { + return $scope.selectedStatus && aStatus === $scope.selectedStatus; }; - fetchElement = function(statements, sElemId) { - var element, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - if (statement.employees == null) { - continue; - } - element = _.find(statement.employees, function(e) { - return getIdentifier(e, statement.name) === sElemId; - }); - if (element != null) { - element = angular.merge(angular.copy(element), { - category: statement.name - }); - return element; + $scope.getSelectedLeads = function() { + var leads; + if ($scope.isDataFound && $scope.selectedStatus) { + leads = w.content.leads_per_status[$scope.selectedStatus].leads; + if (!$scope.setLeadTooltipsIsLocked) { + setLeadDescriptionTooltips(leads); } + return leads; } }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; - } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; - } - return category + "-" + id; - }; - sortEmployeesBy = function(getElem) { - return angular.forEach(w.content.summary, function(sElem) { - if (sElem.employees) { - return sElem.employees.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; + $scope.leadDescriptionTooltips = {}; + setLeadDescriptionTooltips = function(leads) { + $scope.leadDescriptionTooltips = {}; + $scope.setLeadTooltipsIsLocked = true; + return _.each(leads, function(aLead, index) { + var nameLineArray, tooltip; + tooltip = []; + nameLineArray = [""]; + if (aLead.first_name) { + nameLineArray.push($filter('titleize')(aLead.first_name)); + } + if (aLead.last_name) { + nameLineArray.push($filter('titleize')(aLead.last_name)); + } + nameLineArray.push(""); + tooltip.push(nameLineArray.join(' ')); + tooltip.push("Status: " + ($filter('titleize')(aLead.lead_status))); + if (aLead.organization) { + tooltip.push("Organization: " + ($filter('titleize')(aLead.organization))); + } + if (aLead.opportunities) { + tooltip.push("Opportunities:"); + _.each(aLead.opportunities, function(opp) { + var oppLineArray; + oppLineArray = []; + if (opp.code) { + oppLineArray.push("#" + opp.code); } - return res; + if (opp.name) { + oppLineArray.push("" + opp.name); + } + if (opp.amount) { + oppLineArray.push($filter('mnoCurrency')(opp.amount.total_amount, "USD", false)); + } + if (opp.probability) { + oppLineArray.push(opp.probability + "%"); + } + if (opp.sales_stage) { + oppLineArray.push("" + opp.sales_stage); + } + return tooltip.push(oppLineArray.join(' - ')); }); } + return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); }); }; - sortData = function() { - if ($scope.sortedColumn === 'employee') { - return sortEmployeesBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortEmployeesBy(function(el) { - return $scope.getLastValue(el); - }); + selectedStatusSetting = {}; + selectedStatusSetting.initialized = false; + selectedStatusSetting.initialize = function() { + if (!_.isEmpty(w.content) && angular.isDefined(w.content.leads_per_status[w.metadata.selected_status])) { + $scope.selectedStatus = w.metadata.selected_status; } + return selectedStatusSetting.initialized = true; }; - $scope.drawTrigger = $q.defer(); + selectedStatusSetting.toMetadata = function() { + return { + selected_status: $scope.selectedStatus + }; + }; + w.settings.push(selectedStatusSetting); w.format = function() { - var all_values_are_positive, chartData, inputData, labels, options, pieData, pieOptions; - if ($scope.isDataFound && $scope.hasElements()) { - if (w.isHistoryMode) { - all_values_are_positive = true; - inputData = []; - labels = _.map(w.content.dates, function(date) { - if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "YEARLY") { - return $filter('momentDate')(date, 'YEARLY'); - } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "QUARTERLY") { - return $filter('momentDate')(date, 'QUARTERLY'); - } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "MONTHLY") { - return $filter('momentDate')(date, 'MONTHLY'); - } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "WEEKLY") { - return $filter('momentDate')(date, 'WEEKLY'); - } else if (w.metadata.hist_parameters && w.metadata.hist_parameters.period === "DAILY") { - return $filter('momentDate')(date, 'DAILY'); + var max; + if ($scope.isDataFound) { + max = 0; + angular.forEach($scope.statusOptions, function(statusOption) { + var value; + value = w.content.leads_per_status[statusOption.label].total; + if (statusOption.selected && angular.isDefined(value) && value > max) { + return max = value; + } + }); + if (max > 0) { + return $scope.funnel = _.compact(_.map($scope.statusOptions, function(statusOption, index) { + var coloredWidth, statusWidth, value; + value = w.content.leads_per_status[statusOption.label].total; + coloredWidth = (100 * (value / max) - 10).toFixed(); + if (coloredWidth < 8) { + statusWidth = 92; } else { - return $filter('momentDate')(date, 'default'); + statusWidth = 100 - coloredWidth; } - }); - angular.forEach($scope.selectedElements, function(sElem) { - var data; - data = angular.copy(sElem); - inputData.push({ - title: data.name, - labels: labels, - values: data.totals - }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: $scope.selectedElements.length === 1, - pointDot: $scope.selectedElements.length === 1, - currency: 'hide' - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - } else { - pieData = _.map($scope.selectedElements, function(elem) { - return { - label: $filter('titleize')($scope.getName({ - name: elem.name - })), - value: $scope.getLastValue(elem) - }; - }); - pieOptions = { - showTooltips: true, - percentageInnerCutout: 50, - tooltipFontSize: 12, - currency: 'hide' - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + if (statusOption.selected && angular.isDefined(value)) { + return { + status: statusOption.label, + number: value, + coloredWidth: { + width: coloredWidth + "%" + }, + statusWidth: { + width: statusWidth + "%" + } + }; + } + })); } - return $scope.drawTrigger.notify(chartData); } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); - selectedElementsSetting = {}; - selectedElementsSetting.initialized = false; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; - }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(element) { - return getIdentifier(element); - }); - return { - selectedElements: selectedElementsMetadata - }; - }; - w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrPayrollSummary', function() { + module.directive('widgetSalesLeadsFunnel', function() { return { restrict: 'A', - controller: 'WidgetHrPayrollSummaryCtrl' + controller: 'WidgetSalesLeadsFunnelCtrl' }; }); @@ -11312,44 +11070,96 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
threshold) { + return codeName; + } else { + return fullName; } }; $scope.drawTrigger = $q.defer(); w.format = function() { - var all_values_are_positive, chartData, dates, inputData, options, period; - if ($scope.isDataFound) { + var all_values_are_positive, chartData, data, dates, inputData, options, period; + if ($scope.isDataFound && $scope.product && (data = $scope.getSelectedProduct())) { period = null; if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { period = w.metadata.hist_parameters.period; @@ -11358,18 +11168,23 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); }); options = { scaleBeginAtZero: all_values_are_positive, showXLabels: false }; + if ($scope.filter.value.indexOf('quantity') > -1) { + angular.merge(options, { + currency: 'hide' + }); + } chartData = ChartFormatterSvc.lineChart([inputData], options); return $scope.drawTrigger.notify(chartData); } @@ -11377,10 +11192,10 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
" + $translate.instant('impac.widget.sales_list.to') + " "; w.initContext = function() { - $scope.isDataFound = !_.isEmpty(w.content) && (w.content.summary != null) && !_.isEmpty(w.content.summary.data); - if ($scope.isDataFound) { - $scope.periodOptions = [ + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary)) { + buildFxTotals(); + $scope.ratesDate = moment.now(); + $scope.filterOptions = [ { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.yearly").toLowerCase()), - value: "yearly" + label: $translate.instant('impac.widget.sales_list.value_sold_taxes'), + value: 'gross_value_sold' }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.monthly").toLowerCase()), - value: "monthly" + label: $translate.instant('impac.widget.sales_list.value_sold_no_taxes'), + value: 'net_value_sold' }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.weekly").toLowerCase()), - value: "weekly" + label: $translate.instant('impac.widget.sales_list.quantity_sold'), + value: 'quantity_sold' }, { - label: _.capitalize($translate.instant("impac.widget.settings.time_period.period.daily").toLowerCase()), - value: "daily" - } - ]; - $scope.filterOptions = [ - { - label: $translate.instant("impac.common.label.gender"), - value: "gender" + label: $translate.instant('impac.widget.sales_list.value_purchased_taxes'), + value: 'gross_value_purchased' }, { - label: $translate.instant("impac.common.label.age_range"), - value: "age_range" + label: $translate.instant('impac.widget.sales_list.value_purchased_no_taxes'), + value: 'net_value_purchased' }, { - label: $translate.instant("impac.common.label.job_title"), - value: "job_title" + label: $translate.instant('impac.widget.sales_list.quantity_purchased'), + value: 'quantity_purchased' + } + ]; + $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return o.value === w.metadata.filter; + }) || $scope.filterOptions[0]); + $scope.unCollapsed = w.metadata.unCollapsed || []; + return sortData(); + } + }; + $scope.toggleCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { + return name === categoryName; + }); + } else { + $scope.unCollapsed.push(categoryName); + } + return ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + }; + $scope.isCollapsed = function(categoryName) { + if (categoryName != null) { + if (_.find($scope.unCollapsed, (function(name) { + return categoryName === name; + }))) { + return false; + } else { + return true; + } + } + }; + sortAccountsBy = function(getElem) { + return angular.forEach(w.content.summary, function(sElem) { + if (sElem.products) { + return sElem.products.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } + }); + }; + sortData = function() { + if ($scope.sortedColumn === 'account') { + return sortAccountsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortAccountsBy(function(el) { + return el.total; + }); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + buildFxTotals = function() { + var groupedSales, i, len, ref, results, sale, saleFxTotals; + ref = w.content.summary; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + groupedSales = ref[i]; + results.push((function() { + var j, len1, ref1, results1; + ref1 = groupedSales.products; + results1 = []; + for (j = 0, len1 = ref1.length; j < len1; j++) { + sale = ref1[j]; + saleFxTotals = []; + if (!_.isEmpty(sale.fx_totals)) { + _.mapKeys(sale.fx_totals, function(total, currency) { + var amount; + amount = total['amount']; + if (!(amount === 0 || currency === w.metadata.currency)) { + return saleFxTotals.push({ + currency: currency, + amount: amount, + rate: total.rate + }); + } + }); + } + if (!_.isEmpty(saleFxTotals)) { + results1.push(sale.formattedFxTotals = saleFxTotals); + } else { + results1.push(void 0); + } } - ]; - $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { - return o.value === w.content.total.period.toLowerCase(); - }) || $scope.periodOptions[0]); - return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.content.summary.filter; - }) || $scope.filterOptions[0]); + return results1; + })()); } + return results; }; - $scope.getColorByIndex = function(index) { - return ChartFormatterSvc.getColor(index); + unCollapsedSetting = {}; + unCollapsedSetting.initialized = false; + unCollapsedSetting.initialize = function() { + return unCollapsedSetting.initialized = true; }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var barData, barOptions, chartData, lineData, lineOptions; - if ($scope.isDataFound) { - barData = { - labels: _.map(w.content.summary.data, function(elem) { - return elem.label; - }), - values: _.map(w.content.summary.data, function(elem) { - return elem.value; - }) - }; - if ($scope.filter.value === 'gender') { - barOptions = { - showTooltips: false - }; - chartData = ChartFormatterSvc.barChart(barData, barOptions); - } else if ($scope.filter.value === 'job_title') { - barOptions = { - showTooltips: false, - showXLabels: false, - barDatasetSpacing: 15 - }; - chartData = ChartFormatterSvc.barChart(barData, barOptions); - } else if ($scope.filter.value === 'age_range') { - if (_.last(barData.labels) === "unknown") { - barData.labels.pop(); - barData.values.pop(); - } - lineData = [ - { - title: "Average salary", - labels: barData.labels, - values: barData.values - } - ]; - lineOptions = { - scaleBeginAtZero: true, - showXLabels: false - }; - chartData = ChartFormatterSvc.lineChart(lineData, lineOptions); - } else { - return { - error: { - message: "wrong filter", - code: 400 - } - }; - } - return $scope.drawTrigger.notify(chartData); - } + unCollapsedSetting.toMetadata = function() { + return { + unCollapsed: $scope.unCollapsed + }; }; + w.settings.push(unCollapsedSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrSalariesSummary', function() { + module.directive('widgetSalesList', function() { return { restrict: 'A', - controller: 'WidgetHrSalariesSummaryCtrl' + controller: 'WidgetSalesListCtrl' }; }); @@ -11508,48 +11370,76 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
"]; + if (aLead.first_name) { + nameLineArray.push($filter('titleize')(aLead.first_name)); + } + if (aLead.last_name) { + nameLineArray.push($filter('titleize')(aLead.last_name)); + } + nameLineArray.push(""); + tooltip.push(nameLineArray.join(' ')); + tooltip.push("Status: " + ($filter('titleize')(aLead.lead_status))); + if (aLead.organization) { + tooltip.push("Organization: " + ($filter('titleize')(aLead.organization))); + } + if (aLead.opportunities) { + tooltip.push("Opportunities:"); + _.each(aLead.opportunities, function(opp) { + var oppLineArray; + oppLineArray = []; + if (opp.code) { + oppLineArray.push("#" + opp.code); + } + if (opp.name) { + oppLineArray.push("" + opp.name); + } + if (opp.amount) { + oppLineArray.push($filter('mnoCurrency')(opp.amount.total_amount, "USD", false)); + } + if (opp.probability) { + oppLineArray.push(opp.probability + "%"); + } + if (opp.sales_stage) { + oppLineArray.push("" + opp.sales_stage); + } + return tooltip.push(oppLineArray.join(' - ')); + }); + } + return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); + }); }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrSuperannuationAccruals', function() { + module.directive('widgetSalesLeadsList', function() { return { restrict: 'A', - controller: 'WidgetHrSuperannuationAccrualsCtrl' + controller: 'WidgetSalesLeadsListCtrl' }; }); @@ -11558,101 +11448,207 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
= 0); + }); + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: false + }; + chartData = ChartFormatterSvc.lineChart([inputData], options); + return $scope.drawTrigger.notify(chartData); + } + }; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetSalesMargin', function() { + return { + restrict: 'A', + controller: 'WidgetSalesMarginCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.sales-net-sales', []); + + module.controller('WidgetSalesNetSalesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + $scope.paramSelector1Deferred = $q.defer(); + $scope.paramSelector2Deferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelector1Deferred.promise, $scope.paramSelector2Deferred.promise]; + $translate(['impac.widget.sales_net_sales.total_amount', 'impac.widget.sales_net_sales.average_amount', 'impac.widget.sales_net_sales.volume']).then(function(translations) { + $scope.displayOptions = [ + { + label: translations['impac.widget.sales_net_sales.total_amount'], + value: 'total' + }, { + label: translations['impac.widget.sales_net_sales.average_amount'], + value: 'average' + }, { + label: translations['impac.widget.sales_net_sales.volume'], + value: 'trans_count' } - } + ]; + return $scope.displayType = angular.copy(_.find($scope.displayOptions, function(o) { + return w.metadata && o.value === w.metadata.display_type; + }) || $scope.displayOptions[0]); + }); + $translate(['impac.widget.sales_net_sales.tmpl.last_hours', 'impac.widget.sales_net_sales.tmpl.last_days']).then(function(translations) { + var daysTmpl, hoursTmpl; + hoursTmpl = translations['impac.widget.sales_net_sales.tmpl.last_hours']; + daysTmpl = translations['impac.widget.sales_net_sales.tmpl.last_days']; + $scope.timeRangeOptions = [ + { + label: hoursTmpl.replace(':hours:', 24), + value: '-1d' + }, { + label: daysTmpl.replace(':days:', 5), + value: '-5d' + }, { + label: daysTmpl.replace(':days:', 7), + value: '-7d' + }, { + label: daysTmpl.replace(':days:', 30), + value: '-30d' + }, { + label: daysTmpl.replace(':days:', 45), + value: '-45d' + }, { + label: daysTmpl.replace(':days:', 60), + value: '-60d' + }, { + label: daysTmpl.replace(':days:', 90), + value: '-90d' + } + ]; + return $scope.timeRange = angular.copy(_.find($scope.timeRangeOptions, function(o) { + return w.metadata && o.value === w.metadata.time_range; + }) || $scope.timeRangeOptions[6]); + }); + w.initContext = function() { + return $scope.isDataFound = (w.content != null) && (w.content.sales != null) && w.content.sales.length > 0 && (w.content.sales[0].total != null); }; - $scope.getEmployee = function() { - if (!$scope.isDataFound) { - return false; - } - if (w.metadata && w.metadata.employee_id) { - return _.find(w.content.employees, function(e) { - return e.id === w.metadata.employee_id; - }) || w.content.employees[0]; - } else { - return w.content.employees[0]; + $scope.getCurrency = function() { + if ($scope.isDataFound) { + return w.content.currency; } }; - $scope.getEmployeeTimeWorked = function() { - var employee; - if (employee = $scope.getEmployee()) { - return _.find(w.content.employees, function(e) { - return e.id === employee.id; - }).total_time_worked; + $scope.getValue = function(valueType) { + if ((w.content != null) && w.content[valueType]) { + switch ($scope.displayType.value) { + case 'total': + return $filter('mnoCurrency')(w.content[valueType][0].total, $scope.getCurrency(), false); + case 'average': + return $filter('mnoCurrency')(w.content[valueType][0].avg, $scope.getCurrency(), false); + case 'trans_count': + return w.content[valueType][0].trans_count; + } + } else { + return 0; } }; - $scope.getEmployeeTimeOff = function() { - var employee; - if (employee = $scope.getEmployee()) { - return _.find(w.content.employees, function(e) { - return e.id === employee.id; - }).total_time_off; + $scope.sign = function(type) { + if ($scope.displayType.value === 'average') { + return { + minus: '~', + equal: '=>' + }[type]; + } else if ($scope.displayType.value === 'trans_count') { + return { + minus: '+', + equal: '=' + }[type]; + } else { + return { + minus: '-', + equal: '=' + }[type]; } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; - }; - w.settings.push(unCollapsedSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrTimesheets', function() { + module.directive('widgetSalesNetSales', function() { return { restrict: 'A', - controller: 'WidgetHrTimesheetsCtrl' + controller: 'WidgetSalesNetSalesCtrl' }; }); @@ -11661,125 +11657,125 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0; }; - $scope.getCurrency = function() { + $scope.displayTypeOnClick = function() { + $scope.updateSettings(false); + return w.format(); + }; + $scope.getValue = function(key) { + var result, returnType; if ($scope.isDataFound) { - return w.content.total.currency; + returnType = $scope.displayType.value; + result = w.content.summary[returnType][key]; + switch (returnType) { + case 'total_sales': + return $filter('mnoCurrency')(result, w.metadata.currency); + default: + return result; + } } }; - $scope.formatSalaryRange = function(aRange) { - var range1, range2; - range1 = $filter('mnoCurrency')(aRange.label.split('-')[0], aRange.currency, false); - range2 = $filter('mnoCurrency')(aRange.label.split('-')[1], aRange.currency, false); - return [range1, range2].join(" - "); + $scope.shouldDisplayCurrency = function() { + return $scope.isDataFound && $scope.displayType.value.indexOf('count') < 0; }; - $scope.getColorByIndex = function(index) { - return ChartFormatterSvc.getColor(index); + $scope.calculatePercentage = function(sliceType) { + var values; + values = { + "new": Math.abs(w.content.summary[$scope.displayType.value]["new"]), + existing: Math.abs(w.content.summary[$scope.displayType.value].existing) + }; + values.totals = values["new"] + values.existing; + return Math.round(values[sliceType] / values.totals * 100); }; $scope.drawTrigger = $q.defer(); w.format = function() { - var barData, barOptions, chartData, pieData, pieOptions; + var chartData, pieData, pieOptions; if ($scope.isDataFound) { - if ($scope.filter.value === 'salary_range') { - barData = { - labels: _.map(w.content.summary.data, function(elem) { - return $scope.formatSalaryRange(elem); - }), - values: _.map(w.content.summary.data, function(elem) { - return elem.value; - }) - }; - barOptions = { - showTooltips: false, - showXLabels: false, - barDatasetSpacing: 15 - }; - chartData = ChartFormatterSvc.barChart(barData, barOptions); - } else { - pieData = _.map(w.content.summary.data, function(elem) { - return { - label: elem.label, - value: elem.value - }; + pieData = [ + { + label: "EXISTING " + ($scope.calculatePercentage('existing')) + "%", + value: w.content.summary[$scope.displayType.value].existing + }, { + label: "NEW " + ($scope.calculatePercentage('new')) + "%", + value: w.content.summary[$scope.displayType.value]["new"] + } + ]; + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + if (!$scope.shouldDisplayCurrency()) { + angular.merge(pieOptions, { + currency: 'hide' }); - pieOptions = { - showTooltips: true, - percentageInnerCutout: 50, - tooltipFontSize: 12 - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); } + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetHrWorkforceSummary', function() { + module.directive('widgetSalesNewVsExistingCustomers', function() { return { restrict: 'A', - controller: 'WidgetHrWorkforceSummaryCtrl' + controller: 'WidgetSalesNewVsExistingCustomersCtrl' }; }); @@ -11788,503 +11784,643 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0)) { - w.width = 6; - } - return sortData(); - } - }; - $scope.getElementChartColor = function(index) { - if (index != null) { - return ChartFormatterSvc.getColor(index); - } - }; - $scope.getLastValue = function(element) { - if ((element != null) && (element.totals != null)) { - return _.last(element.totals); - } - }; - $scope.getTotalSum = function(element) { - if ((element != null) && (element.totals != null)) { - return _.reduce(element.totals, function(memo, num) { - return memo + num; - }, 0); - } - }; - $scope.getName = function(element) { - if ((element != null) && (element.name != null)) { - return element.name.replace(/_/g, " "); - } - }; - $scope.getPeriod = function() { - var period, period_param; - if ($scope.isDataFound && w.metadata && w.metadata.hist_parameters) { - period_param = w.metadata.hist_parameters.period || "MONTHLY"; - period = "day"; - if (period_param !== "DAILY") { - period = period_param.substr(0, period_param.length - 2).toLowerCase(); - } - return "current " + period; - } else { - return "current month"; - } - }; - $scope.getOldestInvoice = function(element) { - var idx; - idx = _.findIndex(element.totals, function(invoice) { - return invoice !== 0; - }); - return w.content.dates[idx] || null; - }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); - }; - $scope.toggleSelectedElement = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - if ($scope.isSelected(element, statementName)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - w.format(); - if (w.isExpanded() && $scope.selectedElements.length === 0) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - } else { - $scope.selectedElements || ($scope.selectedElements = []); - if (statementName) { - element.category = statementName; - } - $scope.selectedElements.push(element); - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - } - }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; - } - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; - }); - } else { - $scope.unCollapsed.push(element.name); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; - } else { - return true; - } + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.number_of_leads)) { + return $translate(['impac.widget.settings.time_period.period.year', 'impac.widget.settings.time_period.period.quarter', 'impac.widget.settings.time_period.period.month', 'impac.widget.settings.time_period.period.week', 'impac.widget.settings.time_period.period.day']).then(function(translations) { + $scope.periodOptions = [ + { + label: translations['impac.widget.settings.time_period.period.year'], + value: 'YEARLY' + }, { + label: translations['impac.widget.settings.time_period.period.quarter'], + value: 'QUARTERLY' + }, { + label: translations['impac.widget.settings.time_period.period.month'], + value: 'monthly' + }, { + label: translations['impac.widget.settings.time_period.period.week'], + value: 'WEEKLY' + }, { + label: translations['impac.widget.settings.time_period.period.day'], + value: 'DAILY' + } + ]; + return $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { + return o.value === w.metadata.period; + }) || $scope.periodOptions[3]); + }); } }; - $scope.getSelectLineColor = function(element, statementName) { - var sElem; - if (statementName == null) { - statementName = null; - } - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - if ($scope.hasElements()) { - return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; - }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; + $scope.formatNumberOfLeads = function(carac) { + var color, formattedNominal, formattedVariation, n_hash, nominal, variation; + formattedNominal = 0; + formattedVariation = "- %"; + if (!$scope.isDataFound) { + return { + nominal: formattedNominal, + variation: formattedVariation, + color: '' + }; } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); - }; - fetchElement = function(statements, sElemId) { - var element, elements, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - elements = statement.suppliers || statement.customers; - if (_.isEmpty(elements)) { - continue; + n_hash = angular.copy(w.content.number_of_leads); + nominal = 0; + color = ''; + if (carac === "new" && n_hash.total && n_hash.total.length === 2) { + nominal = n_hash.total[1] - n_hash.total[0]; + variation = getVariation(n_hash.total); + if (variation > 0) { + color = 'green'; + } else if (variation < 0) { + color = 'red'; } - element = _.find(elements, function(elem) { - return getIdentifier(elem, statement.name) === sElemId; - }); - if (element != null) { - element = angular.merge(angular.copy(element), { - category: statement.name - }); - return element; + } else if (carac === "converted" && n_hash.converted && n_hash.converted.length === 2) { + nominal = n_hash.converted[1]; + variation = getVariation(n_hash.converted); + if (variation > 0) { + color = 'green'; + } else if (variation < 0) { + color = 'red'; + } + } else if (carac === "lost" && n_hash.lost && n_hash.lost.length === 2) { + nominal = n_hash.lost[1]; + variation = getVariation(n_hash.lost); + if (variation < 0) { + color = 'green'; + } else if (variation > 0) { + color = 'red'; } + } else { + return { + nominal: formattedNominal, + variation: formattedVariation, + color: color + }; } - }; - getIdentifier = function(element, category) { - var id; - if (category == null) { - category = null; + if (nominal > 0) { + formattedNominal = "+" + nominal; + } else if (nominal < 0) { + formattedNominal = nominal; } - id = element.id || element.name; - category || (category = element.category); - if (!category) { - return id; + if (variation && variation > 0) { + formattedVariation = "+" + (variation.toFixed(0)) + "%"; + } else if (variation && variation < 0) { + formattedVariation = (variation.toFixed(0)) + "%"; } - return category + "-" + id; - }; - sortBy = function(data, getElem) { - return data.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); + return { + nominal: formattedNominal, + variation: formattedVariation, + color: color + }; }; - sortByInvoiceCallback = function(el) { - var date; - date = $scope.getOldestInvoice(el); - if (date && _.isString(date)) { - date = date.match(/[^_\W]+\s?/g).join(''); + getVariation = function(v_array) { + var variation; + if (v_array[0] !== 0) { + return variation = 100 * ((v_array[1] / v_array[0]) - 1); + } else { + return variation = "- "; } - return new Date(date); }; - sortData = function() { - if ($scope.sortedColumn === 'customer') { - sortBy(w.content.payables.suppliers, function(el) { - return el.name; - }); - return sortBy(w.content.receivables.customers, function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - sortBy(w.content.payables.suppliers, function(el) { - return $scope.getTotalSum(el); - }); - return sortBy(w.content.receivables.customers, function(el) { - return $scope.getTotalSum(el); - }); - } else if ($scope.sortedColumn === 'invoice') { - sortBy(w.content.payables.suppliers, sortByInvoiceCallback); - return sortBy(w.content.receivables.customers, sortByInvoiceCallback); - } + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetSalesNumberOfLeads', function() { + return { + restrict: 'A', + controller: 'WidgetSalesNumberOfLeadsCtrl' }; - buildFxTotals = function() { - var contact, contactFxTotals, fxTotal, i, j, len, len1, ref, ref1, results; - ref = _.union(w.content.payables.suppliers, w.content.receivables.customers); - results = []; - for (i = 0, len = ref.length; i < len; i++) { - contact = ref[i]; - contactFxTotals = []; - ref1 = contact.fx_totals; - for (j = 0, len1 = ref1.length; j < len1; j++) { - fxTotal = ref1[j]; - if (!_.isEmpty(fxTotal)) { - _.mapKeys(fxTotal, function(total, currency) { - if (currency !== w.metadata.currency) { - return contactFxTotals.push({ - currency: currency, - amount: total.amount, - rate: total.rate - }); - } - }); - } + }); + +}).call(this); + +(function() { + var module, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + module = angular.module('impac.components.widgets.sales-opportunities-funnel', []); + + module.controller('WidgetSalesOpportunitiesFunnelCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, ImpacDashboardsSvc) { + var getFilteredTotal, getOrderedAssigneeIds, hasOneOpportunity, selectedStatusSetting, settingsPromises, sortData, sortOppsBy, w; + w = $scope.widget; + $scope.selectedOpportunities = []; + $scope.collapsed = []; + $scope.orgDeferred = $q.defer(); + $scope.paramsPickerDeferred1 = $q.defer(); + $scope.paramsPickerDeferred2 = $q.defer(); + $scope.widthDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise, $scope.paramsPickerDeferred1.promise, $scope.paramsPickerDeferred2.promise, $scope.widthDeferred.promise]; + $scope.ascending = true; + $scope.sortedColumn = 'group'; + hasOneOpportunity = function(oppsPerSalesStage) { + var reducedHash, total, totalsArray; + reducedHash = _.mapValues(oppsPerSalesStage, function(statusHash) { + return statusHash.total; + }); + totalsArray = _.compact(_.values(reducedHash)); + total = _.reduce(totalsArray, function(total, n) { + if (total == null) { + total = 0; } - if (!_.isEmpty(contactFxTotals)) { - results.push(contact.formattedFxTotals = contactFxTotals); + return total + n; + }); + return (total != null) && total > 0; + }; + getFilteredTotal = function(opps, assignees) { + return _.reduce(opps, function(total, opp) { + var ref; + if (total == null) { + total = 0; + } + if (ref = opp.assignee_id, indexOf.call(assignees, ref) >= 0) { + return total + 1; } else { - results.push(void 0); + return total; } - } - return results; + }, 0); }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, dates, inputData, options, period; - if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { - all_values_are_positive = true; - inputData = []; - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date, index) { - return $filter('momentDate')(date, period); + getOrderedAssigneeIds = function(assigneesOptions) { + return _.map(_.filter(assigneesOptions, function(assigneeOption) { + return assigneeOption.selected; + }), 'value'); + }; + w.initContext = function() { + var assignees_selection, dhb, sales_stage_selection; + dhb = ImpacDashboardsSvc.getCurrentDashboard(); + sales_stage_selection = w.metadata.sales_stage_selection || dhb.metadata.sales_stage_selection || { + values: [] + }; + assignees_selection = w.metadata.assignees_selection || dhb.metadata.assignees_selection || { + values: [] + }; + if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.opps_per_sales_stage) && hasOneOpportunity(w.content.opps_per_sales_stage)) { + _.remove(sales_stage_selection.values, function(status) { + return indexOf.call(_.keys(w.content.opps_per_sales_stage), status) < 0; }); - angular.forEach($scope.selectedElements, function(sElem) { - var data; - data = angular.copy(sElem); - inputData.push({ - title: data.name, - labels: dates, - values: data.totals + $scope.hasReach = true; + $scope.statusOptions = []; + angular.forEach(w.content.opps_per_sales_stage, function(value, status) { + var isSelected; + isSelected = _.isEmpty(sales_stage_selection.values) || (indexOf.call(sales_stage_selection.values, status) >= 0); + return $scope.statusOptions.push({ + label: status, + selected: isSelected }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); + }); + if ($scope.statusOptions[0] && !_.any($scope.statusOptions, 'selected') && !_.isEmpty(w.content.opps_per_sales_stage)) { + $scope.statusOptions[0].selected = true; + } + $scope.assigneesOptions = []; + angular.forEach(w.content.assignees, function(obj, index) { + var isSelected, ref; + isSelected = _.isEmpty(assignees_selection.values) || (ref = obj.id, indexOf.call(assignees_selection.values, ref) >= 0); + return $scope.assigneesOptions.push({ + label: obj.name, + selected: isSelected, + value: obj.id }); }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: $scope.selectedElements.length === 1, - pointDot: $scope.selectedElements.length === 1 - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); + if ($scope.assigneesOptions[0] && !_.any($scope.assigneesOptions, 'selected') && !_.isEmpty(w.content.assignees)) { + return $scope.assigneesOptions[0].selected = true; + } } }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; + } }; - w.settings.push(unCollapsedSetting); - selectedElementsSetting = {}; - selectedElementsSetting.initialized = false; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; + $scope.getImpacColor = function(index) { + return ChartFormatterSvc.getColor(index); }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(element) { - return getIdentifier(element); - }); - return { - selectedElements: selectedElementsMetadata - }; + $scope.toggleSelectStatus = function(aStatus) { + if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { + $scope.selectedStatus = null; + } else { + $scope.selectedStatus = aStatus; + } + $scope.updateRightView(); + if (!w.isExpanded() && $scope.selectedStatus) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + } }; - w.settings.push(selectedElementsSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetInvoicesAgedPayablesReceivables', function() { - return { - restrict: 'A', - controller: 'WidgetInvoicesAgedPayablesReceivablesCtrl' + $scope.isSelected = function(aStatus) { + return $scope.selectedStatus && aStatus === $scope.selectedStatus; }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.invoices-list', []); - - module.controller('WidgetInvoicesListCtrl', ["$scope", "$q", "$sce", "$filter", "ImpacUtilities", "$translate", function($scope, $q, $sce, $filter, ImpacUtilities, $translate) { - var buildFxTotals, initInvoicesTooltips, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.limitEntriesDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.limitEntriesDeferred.promise, $scope.datesPickerDeferred.promise]; - w.initContext = function() { - var dates, datesRange; - $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.entities); - if ($scope.isDataFound && $scope.orderBy === 'due ') { - if ($scope.entityType === 'suppliers') { - $scope.limitEntriesLabel = $translate.instant('impac.widget.invoices_list.limit_entries_label.creditors'); + $scope.toggleCollapsed = function(element) { + if ((element != null) && (element.assigneeName != null)) { + if (_.find($scope.collapsed, (function(name) { + return element.assigneeName === name; + }))) { + return $scope.collapsed = _.reject($scope.collapsed, function(name) { + return name === element.assigneeName; + }); } else { - $scope.limitEntriesLabel = $translate.instant('impac.widget.invoices_list.limit_entries_label.debtors'); + return $scope.collapsed.push(element.assigneeName); } } - if ((w.metadata != null) && (w.metadata.limit_entries != null)) { - $scope.limitEntriesSelected = w.metadata.limit_entries; - } - if ($scope.isDataFound) { - dates = _.flatten(_.map(w.content.entities, (function(e) { - return _.map(e.invoices, (function(i) { - return i.invoice_date; - })); - }))); - datesRange = ImpacUtilities.getDatesRange(dates); - $scope.defaultFrom = $filter('date')(datesRange[0], 'yyyy-MM-dd'); - $scope.defaultTo = $filter('date')(datesRange[1], 'yyyy-MM-dd'); - initInvoicesTooltips(w.content.entities); - buildFxTotals(); - return $scope.ratesDate = moment.now(); + }; + $scope.isCollapsed = function(element) { + if ((element != null) && (element.assigneeName != null)) { + if (_.find($scope.collapsed, (function(name) { + return element.assigneeName === name; + }))) { + return true; + } else { + return false; + } } }; - $scope.entityType = w.metadata.entity; - $scope.entityTypeCap = _.capitalize(w.metadata.entity); - if (_.isEmpty(w.metadata.order_by) || w.metadata.order_by === 'name' || w.metadata.order_by === 'total_invoiced') { - $scope.orderBy = ''; - } else { - $scope.orderBy = _.last(w.metadata.order_by.split('_')).concat(" "); - } - $scope.invoiceTooltips = {}; - initInvoicesTooltips = function(entities) { - return _.each(entities, function(entity) { - var count, tooltip; - tooltip = ["" + entity.name + ""]; - count = 1; - _.each(entity.invoices, function(i) { - var amountDetail, formattedInvoiced, formattedPaid, invCurrency, txn; - txn = i.transaction_no !== "" ? " (" + i.transaction_no + ")" : ""; - invCurrency = Object.keys(i.fx_totals)[0]; - formattedInvoiced = $filter('mnoCurrency')(i.fx_totals[invCurrency].invoiced, invCurrency, true); - if (i.tooltip_status === "partially paid") { - formattedPaid = $filter('mnoCurrency')(i.fx_totals[invCurrency].paid, invCurrency, true); - amountDetail = " (" + formattedPaid + " on " + formattedInvoiced + ")"; - } else { - amountDetail = " (" + formattedInvoiced + ")"; + $scope.getSelectedOpportunities = function() { + var assignees, filteredOpps, oppGroups, sortedOppGroups; + if ($scope.isDataFound && $scope.selectedStatus && w.content.opps_per_sales_stage[$scope.selectedStatus]) { + assignees = getOrderedAssigneeIds($scope.assigneesOptions); + filteredOpps = _.filter(w.content.opps_per_sales_stage[$scope.selectedStatus].opps, function(opportunity) { + var ref; + return ref = opportunity.assignee_id, indexOf.call(assignees, ref) >= 0; + }); + oppGroups = _.groupBy(filteredOpps, 'assignee_id'); + sortedOppGroups = []; + angular.forEach($scope.assigneesOptions, function(assigneeOption) { + var assigneeId; + assigneeId = assigneeOption.value; + if (oppGroups[assigneeId]) { + return sortedOppGroups.push({ + assigneeName: assigneeOption.label, + opps: oppGroups[assigneeId] + }); } - tooltip.push("#" + count + txn + " - " + i.tooltip_status + amountDetail); - return count++; }); - return $scope.invoiceTooltips[entity.id] = $sce.trustAsHtml(tooltip.join("
")); + return sortedOppGroups; + } else { + return []; + } + }; + $scope.getOppDetails = function(anOpp) { + var oppDetails; + oppDetails = []; + if (anOpp.amount) { + oppDetails.push($filter('mnoCurrency')(anOpp.amount.amount, anOpp.amount.currency || 'AUD')); + } + if (anOpp.probability) { + oppDetails.push("prob. " + anOpp.probability + "%"); + } + return oppDetails.join(' / '); + }; + $scope.getTotal = function(oppsGroup) { + var currency, total; + if (!(oppsGroup.length > 0)) { + return ""; + } + total = _.sum(oppsGroup, function(o) { + var amount, proba; + amount = o.amount.amount || 0.0; + proba = o.probability || 0.0; + return amount * (proba / 100); + }); + currency = oppsGroup[0].amount.currency || 'AUD'; + return $filter('mnoCurrency')(total, currency); + }; + sortOppsBy = function(getElem) { + return angular.forEach($scope.selectedOpportunities, function(sElem) { + if (sElem.opps) { + return sElem.opps.sort(function(a, b) { + var res; + res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; + if (!$scope.ascending) { + res *= -1; + } + return res; + }); + } }); }; - buildFxTotals = function() { - var contact, contactFxTotals, j, len, ref, results; - ref = w.content.entities; - results = []; - for (j = 0, len = ref.length; j < len; j++) { - contact = ref[j]; - contactFxTotals = []; - _.mapKeys(contact.fx_totals, function(total, currency) { - if (currency !== w.metadata.currency) { - return contactFxTotals.push({ - currency: currency, - amount: total.invoiced, - rate: total.rate - }); + sortData = function() { + if ($scope.sortedColumn === 'group') { + return sortOppsBy(function(el) { + return el.name; + }); + } else if ($scope.sortedColumn === 'total') { + return sortOppsBy(function(el) { + return el.amount.amount; + }); + } + }; + $scope.sort = function(col) { + if ($scope.sortedColumn === col) { + $scope.ascending = !$scope.ascending; + } else { + $scope.ascending = true; + $scope.sortedColumn = col; + } + return sortData(); + }; + $scope.updateRightView = function() { + $scope.selectedOpportunities = $scope.getSelectedOpportunities(); + $scope.collapsed = []; + return sortData(); + }; + selectedStatusSetting = {}; + selectedStatusSetting.initialized = false; + selectedStatusSetting.initialize = function() { + if (!_.isEmpty(w.content) && angular.isDefined(w.content.opps_per_sales_stage[w.metadata.selected_status])) { + $scope.selectedStatus = w.metadata.selected_status; + } + selectedStatusSetting.initialized = true; + return $scope.updateRightView(); + }; + selectedStatusSetting.toMetadata = function() { + return { + selected_status: $scope.selectedStatus + }; + }; + w.settings.push(selectedStatusSetting); + w.format = function() { + var assignees, max; + if ($scope.isDataFound) { + max = 0; + assignees = getOrderedAssigneeIds($scope.assigneesOptions); + angular.forEach($scope.statusOptions, function(statusOption) { + var value; + value = getFilteredTotal(w.content.opps_per_sales_stage[statusOption.label].opps, assignees); + if (statusOption.selected && angular.isDefined(value) && value > max) { + return max = value; } }); - if (!_.isEmpty(contactFxTotals)) { - results.push(contact.formattedFxTotals = contactFxTotals); + if (max > 0) { + return $scope.funnel = _.compact(_.map($scope.statusOptions, function(statusOption, index) { + var coloredWidth, statusWidth, value; + value = getFilteredTotal(w.content.opps_per_sales_stage[statusOption.label].opps, assignees); + coloredWidth = (100 * (value / max) - 10).toFixed(); + if (coloredWidth < 8) { + statusWidth = 92; + } else { + statusWidth = 100 - coloredWidth; + } + if (statusOption.selected && angular.isDefined(value) && value > 0) { + return { + status: statusOption.label, + number: value, + coloredWidth: { + width: coloredWidth + "%" + }, + statusWidth: { + width: statusWidth + "%" + } + }; + } + })); } else { - results.push(void 0); + return $scope.isDataFound = false; } } - return results; }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetInvoicesList', function() { + module.directive('widgetSalesOpportunitiesFunnel', function() { return { restrict: 'A', - controller: 'WidgetInvoicesListCtrl' + controller: 'WidgetSalesOpportunitiesFunnelCtrl' }; }); }).call(this); (function() { - var module; + var module, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - module = angular.module('impac.components.widgets.invoices-summary', []); + module = angular.module('impac.components.widgets.sales-performance', []); - module.controller('WidgetInvoicesSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", function($scope, $q, ChartFormatterSvc) { - var settingsPromises, w; + module.controller('WidgetSalesPerformanceCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "ImpacWidgetsSvc", function($scope, $q, $filter, ChartFormatterSvc, ImpacWidgetsSvc) { + var formatDate, getIdentifier, matchElementToSelectedElement, selectedElementsSetting, settingsPromises, w; w = $scope.widget; $scope.orgDeferred = $q.defer(); - $scope.chartFiltersDeferred = $q.defer(); + $scope.paramsWinsPickerDeferred = $q.defer(); + $scope.paramsLostsPickerDeferred = $q.defer(); + $scope.timePeriodDeferred = $q.defer(); + $scope.widthDeferred = $q.defer(); $scope.chartDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartFiltersDeferred.promise, $scope.chartDeferred.promise, $scope.datesPickerDeferred.promise]; - $scope.defaultFrom = (new Date().getFullYear() - 10) + "-01-01"; + settingsPromises = [$scope.orgDeferred.promise, $scope.paramsWinsPickerDeferred, $scope.paramsLostsPickerDeferred, $scope.timePeriodDeferred, $scope.widthDeferred.promise, $scope.chartDeferred.promise]; w.initContext = function() { - return $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.summary); - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; + var foundElem, i, len, ref, sElemId; + $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.assignees); if ($scope.isDataFound) { - pieData = _.map(w.content.summary, function(entity) { + if (!_.isEmpty(w.metadata.selectedElements)) { + $scope.selectedElements = []; + ref = w.metadata.selectedElements; + for (i = 0, len = ref.length; i < len; i++) { + sElemId = ref[i]; + foundElem = _.find(w.content.assignees, function(assignee) { + return getIdentifier(assignee) === sElemId; + }); + if (foundElem) { + $scope.selectedElements.push(foundElem); + } + } + } + $scope.hasReach = true; + $scope.closedWonOptions = _.compact(_.map(w.content.sales_stages.won, function(stage) { return { - label: entity.name, - value: entity.total + label: stage, + selected: true + }; + })); + angular.forEach(w.content.sales_stages.all, function(stage) { + if (!(indexOf.call(w.content.sales_stages.won, stage) >= 0)) { + return $scope.closedWonOptions.push({ + label: stage, + selected: false + }); + } + }); + $scope.closedLostOptions = _.compact(_.map(w.content.sales_stages.lost, function(stage) { + return { + label: stage, + selected: true }; + })); + return angular.forEach(w.content.sales_stages.all, function(stage) { + if (!(indexOf.call(w.content.sales_stages.lost, stage) >= 0)) { + return $scope.closedLostOptions.push({ + label: stage, + selected: false + }); + } + }); + } + }; + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; + } + }; + $scope.getChartTitle = function(el) { + if ($scope.selectedElements) { + return $scope.selectedElements.map(function(el) { + return el.name; + }).join(', '); + } + }; + $scope.getTotalWon = function(el) { + if ($scope.selectedElements) { + return $scope.selectedElements.reduce((function(t, e) { + return t + e.total_won; + }), 0); + } else { + return 0; + } + }; + formatDate = function(date) { + var period; + period = (w.metadata != null) && (w.metadata.hist_parameters != null) ? w.metadata.hist_parameters.period : null; + return $filter('momentDate')(date, period); + }; + $scope.getCloseDate = function(anOpp) { + var theDate; + if ((anOpp != null) && (anOpp.sales_stage_changes != null) && anOpp.sales_stage_changes.length > 0) { + theDate = anOpp.sales_stage_changes[anOpp.sales_stage_changes.length - 1].updated_at; + if (theDate.split(' ').length > 0) { + theDate = theDate.split(' ')[0]; + return formatDate(theDate); + } + } + }; + $scope.getForecastCloseDate = function(anOpp) { + var theDate; + if ((anOpp != null) && anOpp.expected_close_date) { + theDate = anOpp.expected_close_date; + if (theDate.split(' ').length > 0) { + theDate = theDate.split(' ')[0]; + return formatDate(theDate); + } + } + }; + $scope.getElementChartColor = function(index) { + return ChartFormatterSvc.getColor(index); + }; + $scope.no_sales_stages_selected = function() { + return w.content && w.content.sales_stages && w.content.sales_stages.won.length === 0 && w.content.sales_stages.lost.length === 0; + }; + $scope.toggleSelectedElement = function(element) { + var selectedElement; + if ($scope.isSelected(element)) { + $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, sElem); + }); + w.format(); + if (w.isExpanded() && $scope.selectedElements.length === 0) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + } + } else { + selectedElement = angular.copy(element); + $scope.selectedElements || ($scope.selectedElements = []); + $scope.selectedElements.push(selectedElement); + w.format(); + if (!w.isExpanded()) { + return w.toggleExpanded(); + } else { + return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + } + } + }; + $scope.isSelected = function(element) { + return (element != null) && _.any($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, sElem); + }); + }; + $scope.hasElements = function() { + return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; + }; + $scope.getSelectLineColor = function(element) { + var sElem; + sElem = _.find($scope.selectedElements, function(sElem) { + return matchElementToSelectedElement(element, sElem); + }); + if ($scope.hasElements()) { + return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + } + }; + matchElementToSelectedElement = function(element, sElem) { + return getIdentifier(element) === getIdentifier(sElem); + }; + getIdentifier = function(element) { + return element.id || element.name; + }; + $scope.drawTrigger = $q.defer(); + w.format = function() { + var all_values_are_positive, chartData, inputData, options; + if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { + inputData = []; + all_values_are_positive = true; + angular.forEach($scope.selectedElements, function(sElem) { + var data, dates, period; + data = angular.copy(sElem); + period = null; + if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { + period = w.metadata.hist_parameters.period; + } + dates = _.map(w.content.dates, function(date) { + return $filter('momentDate')(date, period); + }); + inputData.push({ + title: data.name, + labels: dates, + values: data.totals + }); + return angular.forEach(data.totals, function(value) { + return all_values_are_positive && (all_values_are_positive = value >= 0); + }); }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 + options = { + scaleBeginAtZero: all_values_are_positive, + showXLabels: true, + datasetFill: $scope.selectedElements.length === 1, + pointDot: $scope.selectedElements.length === 1 }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + chartData = ChartFormatterSvc.lineChart(inputData, options); return $scope.drawTrigger.notify(chartData); } }; + selectedElementsSetting = { + initialized: false + }; + selectedElementsSetting.initialize = function() { + return selectedElementsSetting.initialized = true; + }; + selectedElementsSetting.toMetadata = function() { + var selectedElementsMetadata; + selectedElementsMetadata = _.map($scope.selectedElements, function(sElem) { + return getIdentifier(sElem); + }); + return { + selectedElements: selectedElementsMetadata + }; + }; + w.settings.push(selectedElementsSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetInvoicesSummary', function() { + module.directive('widgetSalesPerformance', function() { return { restrict: 'A', - controller: 'WidgetInvoicesSummaryCtrl' + controller: 'WidgetSalesPerformanceCtrl' }; }); @@ -12293,99 +12429,95 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
50) { + return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.least'); + } else if (w.content.ranges[3].percentage + w.content.ranges[4].percentage > 50) { + return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.most'); + } else { + return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.balanced'); + } } }; - $scope.getTotal = function(anIndex) { - if ($scope.isDataFound && anIndex >= 0 && anIndex < w.content.aged_sales[$scope.filter.value].length) { - return w.content.aged_sales[$scope.filter.value][anIndex]; - } + $scope.getColorByIndex = function(index) { + return ChartFormatterSvc.getColor(index); }; - $scope.getLastDate = function() { - if ($scope.isDataFound) { - return _.last(w.content.dates); + $scope.getRangeLabel = function(aLabel, ISOmode) { + var prices; + if (ISOmode == null) { + ISOmode = false; } + prices = aLabel.split('-'); + return _.map(prices, function(price) { + return $filter('mnoCurrency')(price, w.content.currency, ISOmode); + }).join(' - '); }; - $scope.getClassColor = function(prev, value) { - if (value < prev) { - return 'negative'; - } else if (value > prev) { - return 'positive'; - } else { - return null; + $scope.getMaxRange = function() { + var max, maxRange; + if ($scope.isDataFound) { + max = 0; + maxRange = w.content.ranges[0]; + angular.forEach(w.content.ranges, function(range) { + if (range.percentage > max) { + maxRange = angular.copy(range); + } + return max = Math.max(max, range.percentage); + }); + return maxRange; } }; $scope.drawTrigger = $q.defer(); w.format = function() { - var all_values_are_positive, chartData, inputData, options, period, values; + var barData, barOptions, chartData; if ($scope.isDataFound) { - all_values_are_positive = true; - inputData = []; - values = w.content.aged_sales[$scope.filter.value]; - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - $scope.formattedDates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData.push({ - title: $scope.filter.label, - labels: $scope.formattedDates, - values: values - }); - angular.forEach(values, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: true, - pointDot: true + barData = { + labels: _.map(w.content.ranges, function(elem) { + return $scope.getRangeLabel(elem.label, true); + }), + values: _.map(w.content.ranges, function(elem) { + return elem.value; + }) }; - if ($scope.filter.value.indexOf('quantity') > -1) { - angular.merge(options, { - currency: 'hide' - }); - } - chartData = ChartFormatterSvc.lineChart(inputData, options); + barOptions = { + showTooltips: false, + showXLabels: false, + barDatasetSpacing: 15 + }; + chartData = ChartFormatterSvc.barChart(barData, barOptions); return $scope.drawTrigger.notify(chartData); } }; return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesAged', function() { + module.directive('widgetSalesSegmentedTurnover', function() { return { restrict: 'A', - controller: 'WidgetSalesAgedCtrl' + controller: 'WidgetSalesSegmentedTurnoverCtrl' }; }); @@ -12394,73 +12526,88 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
"; w.initContext = function() { - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.sales); - return $scope.threshold = w.metadata.threshold; - }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; - } - }; - $scope.getProjectedDate = function() { - var date; - if ($scope.isDataFound && w.content.break_even) { - if (("" + w.content.break_even.projected_date).match('After')) { - date = angular.copy(w.content.break_even.projected_date).replace('After ', ''); - return "> " + ($filter('date')(date, 'd-MM-yy')); - } else { - return w.content.break_even.projected_date; - } - } - }; - $scope.getOpportunitiesToClose = function() { - var opps; - if ($scope.isDataFound && w.content.break_even) { - if (("" + w.content.break_even.opportunities_to_close).match('>')) { - opps = angular.copy(w.content.break_even.opportunities_to_close).replace('>', ''); - return "> " + opps; - } else { - return w.content.break_even.opportunities_to_close; + $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.summary) && (_.sum(_.map(w.content.summary, function(s) { + return s.total; + })) > 0); + if ($scope.isDataFound) { + $scope.filterOptions = [ + { + label: $translate.instant('impac.widget.sales_summary.value_sold_taxes'), + value: 'gross_value_sold' + }, { + label: $translate.instant('impac.widget.sales_summary.value_sold_no_taxes'), + value: 'net_value_sold' + }, { + label: $translate.instant('impac.widget.sales_summary.quantity_sold'), + value: 'quantity_sold' + }, { + label: $translate.instant('impac.widget.sales_summary.value_purchased_taxes'), + value: 'gross_value_purchased' + }, { + label: $translate.instant('impac.widget.sales_summary.value_purchased_no_taxes'), + value: 'net_value_purchased' + }, { + label: $translate.instant('impac.widget.sales_summary.quantity_purchased'), + value: 'quantity_purchased' + } + ]; + if (w.metadata.criteria === "customer") { + $scope.filterOptions = [$scope.filterOptions[0], $scope.filterOptions[1], $scope.filterOptions[2]]; } + return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { + return o.value === w.metadata.filter; + }) || $scope.filterOptions[0]); } }; - $scope.isTargetMet = function() { - if ($scope.isDataFound && w.content.break_even) { - return w.content.break_even.variance < 0; - } - }; - $scope.getVariance = function() { - if ($scope.isDataFound && w.content.break_even) { - return Math.abs(w.content.break_even.variance); + $scope.drawTrigger = $q.defer(); + w.format = function() { + var chartData, pieData, pieOptions; + if ($scope.isDataFound) { + pieData = _.map(w.content.summary, function(entity) { + var label; + if (entity.company) { + label = (entity.code || entity.name || entity.location || entity.industry || entity.customer) + " (" + entity.company + ")"; + } else { + label = entity.code || entity.name || entity.location || entity.industry || entity.customer; + } + return { + label: label, + value: entity.total + }; + }); + pieOptions = { + percentageInnerCutout: 50, + tooltipFontSize: 12 + }; + if ($scope.filter.value.indexOf('quantity') > -1) { + angular.merge(pieOptions, { + currency: 'hide' + }); + } + chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); + return $scope.drawTrigger.notify(chartData); } }; - thresholdSetting = {}; - thresholdSetting.initialized = false; - thresholdSetting.initialize = function() { - return thresholdSetting.initialized = true; - }; - thresholdSetting.toMetadata = function() { - return { - threshold: $scope.threshold - }; - }; - w.settings.push(thresholdSetting); return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesBreakEven', function() { + module.directive('widgetSalesSummary', function() { return { restrict: 'A', - controller: 'WidgetSalesBreakEvenCtrl' + controller: 'WidgetSalesSummaryCtrl' }; }); @@ -12469,2621 +12616,2733 @@ $templateCache.put("widgets/sales-top-opportunities.tmpl.html","
0) { + return entity.total_invoiced / entity.invoices.length; + } else { + return 0; + } + } + }, { + label: 'last', + showCurrency: true, + getValue: function(entity) { + var total; + total = entity.invoices.length; + if (total > 0) { + return entity.invoices[entity.invoices.length - 1].invoiced; + } else { + return 0; + } + } } + ]; + $scope.getHeaderField = function() { + return _.find(fields, function(f) { + return f.label === $scope.headerSelected.minified; + }); }; - $scope.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); + $scope.getRemainingFields = function() { + return _.reject(fields, function(f) { + return f.label === $scope.headerSelected.minified; + }); }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; + $scope.getEntities = function() { + if (!$scope.isDataFound) { + return []; } - return sortData(); + return $filter('orderBy')(w.content.entities, (function(entity) { + return $scope.getHeaderField().getValue(entity); + }), true); }; - $scope.toggleSelectedElement = function(element, statementName) { - var selectedElement; - if (statementName == null) { - statementName = null; - } - if ($scope.isSelected(element, statementName)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - w.format(); - if (w.isExpanded() && $scope.selectedElements.length === 0) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } - } else { - selectedElement = angular.copy(element); - selectedElement.category = statementName; - $scope.selectedElements || ($scope.selectedElements = []); - $scope.selectedElements.push(selectedElement); - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); + buildFxTotals = function() { + var contact, contactFxTotals, j, len, ref, results; + ref = w.content.entities; + results = []; + for (j = 0, len = ref.length; j < len; j++) { + contact = ref[j]; + contactFxTotals = []; + _.mapKeys(contact.fx_totals, function(total, currency) { + if (currency !== w.metadata.currency) { + return contactFxTotals.push({ + currency: currency, + amount: total.invoiced, + rate: total.rate + }); + } + }); + if (!_.isEmpty(contactFxTotals)) { + results.push(contact.formattedFxTotals = contactFxTotals); } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + results.push(void 0); } } + return results; }; - $scope.isSelected = function(element, statementName) { - if (statementName == null) { - statementName = null; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetSalesTopCustomers', function() { + return { + restrict: 'A', + controller: 'WidgetSalesTopCustomersCtrl', + link: function(scope) { + scope.transactionsCollapsed = false; + return scope.toggleTransactions = function() { + return scope.transactionsCollapsed = !scope.transactionsCollapsed; + }; } - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === element.name; - }); - } else { - $scope.unCollapsed.push(element.name); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); - } + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets.sales-top-opportunities', []); + + module.controller('WidgetSalesTopOpportunitiesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { + var settingsPromises, w; + w = $scope.widget; + $scope.orgDeferred = $q.defer(); + settingsPromises = [$scope.orgDeferred.promise]; + w.initContext = function() { + return $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.opportunities); }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.name != null)) { - if (_.find($scope.unCollapsed, (function(name) { - return element.name === name; - }))) { - return false; - } else { - return true; - } + w.processError = function(error) { + if (error.code === 404) { + return $scope.isDataFound = false; } }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; - }; - $scope.getSelectLineColor = function(element, statementName) { - var sElem; - if (statementName == null) { - statementName = null; + $scope.getOppDetails = function(anOpp) { + var oppDetails; + oppDetails = []; + if (anOpp.amount) { + oppDetails.push($filter('mnoCurrency')(anOpp.amount.amount, anOpp.amount.currency || 'AUD')); } - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, statementName, sElem); - }); - if ($scope.hasElements()) { - return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); + if (anOpp.probability) { + oppDetails.push($translate.instant('impac.widget.sales_opportunities.proba') + (" " + anOpp.probability + "%")); + } + if (anOpp.sales_stage) { + oppDetails.push(anOpp.sales_stage); } + return oppDetails.join(' / '); }; - matchElementToSelectedElement = function(element, elementCategory, sElem) { - if (elementCategory == null) { - elementCategory = null; + $scope.getOppClass = function(index) { + switch (index) { + case 0: + return 'first'; + case 1: + return 'second'; + case 2: + return 'second'; + default: + return ''; } - return getIdentifier(element, elementCategory) === getIdentifier(sElem); }; - fetchElement = function(statements, sElemId) { - var element, i, len, statement; - for (i = 0, len = statements.length; i < len; i++) { - statement = statements[i]; - if (statement.sales == null) { - continue; + return $scope.widgetDeferred.resolve(settingsPromises); + }]); + + module.directive('widgetSalesTopOpportunities', function() { + return { + restrict: 'A', + controller: 'WidgetSalesTopOpportunitiesCtrl' + }; + }); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-common.autofocus', []); + + module.directive('autofocus', ["$timeout", function($timeout) { + return { + restrict: 'A', + link: function(scope, element) { + return $timeout(function() { + return element[0].focus(); + }); + } + }; + }]); + +}).call(this); + + +/* + * @desc Chart Threshold - create Widget KPIs from Widget charts. (Highchart widgets only). + * @todo support for multiple KPI watchables? + * @todo support for multiple KPI targets? + * @todo support for multiple attachable KPIs? + */ + +(function() { + var module; + + module = angular.module('impac.components.widgets-common.chart-threshold', []); + + module.component('chartThreshold', { + templateUrl: 'widgets-common/chart-threshold.tmpl.html', + bindings: { + widget: '<', + chartPromise: ' getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; + ctrl.loading = true; + kpiDesc = ctrl.widget.name + " " + (kpi = getKpi()).element_watched; + return ImpacKpisSvc["delete"](kpi).then(function() { + toastr.success("Deleted " + kpiDesc + " KPI"); + _.remove(ctrl.widget.kpis, function(k) { + return k.id === kpi.id; }); - } - }); - }; - sortData = function() { - if ($scope.sortedColumn === 'sales') { - return sortAccountsBy(function(el) { - return el.name; + ctrl.chart.removeThreshold(kpi.id); + if (_.isFunction(ctrl.onComplete)) { + return ctrl.onComplete({ + $event: {} + }); + } + }, function() { + return toastr.error("Failed to delete " + kpiDesc + " KPI", 'Error'); + })["finally"](function() { + return ctrl.cancelCreateKpi(); }); - } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return $scope.getTotalForPeriod(el); + }; + getKpi = function() { + return _.find(ctrl.widget.kpis, function(k) { + return k.id === ctrl.draftTarget.kpiId; }); - } - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, inputData, options; - if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { - all_values_are_positive = true; - inputData = []; - angular.forEach($scope.selectedElements, function(sElem) { - var data, dates, period; - data = angular.copy(sElem); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; + }; + onChartNotify = function(chart) { + ctrl.chart = chart; + if (!validateHistParameters()) { + return; + } + ctrl.chart.options.chartOnClickCallbacks.push(onChartClick); + _.each(buildThresholdsFromKpis(), function(threshold) { + var thresholdSerie; + thresholdSerie = ctrl.chart.findThreshold(threshold.kpiId); + if (thresholdSerie == null) { + thresholdSerie = ctrl.chart.addThreshold(threshold); } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData.push({ - title: data.name, - labels: dates, - values: data.totals[$scope.filter.value] - }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); + return ctrl.chart.addThresholdEvent(thresholdSerie, 'click', onThresholdClick); }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: false, - pointDot: false - }; - if ($scope.filter.value.indexOf('quantity') > -1) { - angular.merge(options, { - currency: 'hide' - }); + }; + onChartClick = function(event) { + var value; + value = event.yAxis && event.yAxis[0] && event.yAxis[0].value; + if (!value || _.isNaN(value)) { + return; + } else { + value = value.toFixed(2); } - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); - } - }; - buildFxTotals = function() { - var grossSaleFxTotals, groupedSales, i, len, netSaleFxTotals, ref, results, sale; - ref = w.content.sales_comparison; - results = []; - for (i = 0, len = ref.length; i < len; i++) { - groupedSales = ref[i]; - results.push((function() { - var j, len1, ref1, results1; - ref1 = groupedSales.sales; - results1 = []; - for (j = 0, len1 = ref1.length; j < len1; j++) { - sale = ref1[j]; - sale.formattedFxTotals = {}; - netSaleFxTotals = []; - grossSaleFxTotals = []; - if (!_.isEmpty(sale.fx_totals)) { - _.mapKeys(sale.fx_totals, function(total, currency) { - var grossAmount, k, l, len2, len3, netAmount, ref2, ref3, results2; - ref2 = total['net_value_sold']; - for (k = 0, len2 = ref2.length; k < len2; k++) { - grossAmount = ref2[k]; - if (!(grossAmount === 0 || currency === w.metadata.currency)) { - netSaleFxTotals.push({ - currency: currency, - amount: grossAmount, - rate: total.rate - }); - } - } - ref3 = total['gross_value_sold']; - results2 = []; - for (l = 0, len3 = ref3.length; l < len3; l++) { - netAmount = ref3[l]; - if (!(netAmount === 0 || currency === w.metadata.currency)) { - results2.push(grossSaleFxTotals.push({ - currency: currency, - amount: netAmount, - rate: total.rate - })); - } else { - results2.push(void 0); - } - } - return results2; - }); - } - if (!_.isEmpty(netSaleFxTotals)) { - sale.formattedFxTotals['net_value_sold'] = netSaleFxTotals; - } - if (!_.isEmpty(grossSaleFxTotals)) { - results1.push(sale.formattedFxTotals['gross_value_sold'] = grossSaleFxTotals); - } else { - results1.push(void 0); - } + return ctrl.createKpi(value); + }; + onThresholdClick = function(thresholdSerie) { + var opts, thresholdValue; + thresholdValue = (opts = thresholdSerie.options).data[opts.data.length - 1][1].toFixed(2); + return ctrl.editKpi({ + kpiId: opts.kpiId, + value: thresholdValue + }); + }; + disableAttachability = function(logMsg) { + ctrl.disabled = true; + toastr.warning("Chart threshold KPI disabled!", ctrl.widget.name + " Widget"); + if (logMsg) { + return $log.warn("Impac! - " + ctrl.widget.name + " Widget: " + logMsg); + } + }; + toggleKpiPanel = function() { + return $timeout(function() { + if (ctrl.showPanel) { + growChart(); + } else { + shrinkChart(); } - return results1; - })()); - } - return results; - }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; - }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed + return ctrl.showPanel = !ctrl.showPanel; + }); }; - }; - w.settings.push(unCollapsedSetting); - selectedElementsSetting = {}; - selectedElementsSetting.initialized = false; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; - }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(sElem) { - return getIdentifier(sElem); - }); - return { - selectedElements: selectedElementsMetadata + shrinkChart = function() { + if (!ctrl.chart) { + return; + } + ctrl.chart.hc.setSize(null, ctrl.chart.hc.chartHeight - ctrl.chartShrinkSize, false); + return ctrl.chart.hc.container.parentElement.style.height = ctrl.chart.hc.chartHeight + "px"; + }; + growChart = function() { + if (!ctrl.chart) { + return; + } + ctrl.chart.hc.setSize(null, ctrl.chart.hc.chartHeight + ctrl.chartShrinkSize, false); + return ctrl.chart.hc.container.parentElement.style.height = ctrl.chart.hc.chartHeight + "px"; + }; + validateHistParameters = function() { + var widgetHistParams; + widgetHistParams = ctrl.widget.metadata && ctrl.widget.metadata.hist_parameters; + ctrl.disabled = (widgetHistParams != null) && moment(widgetHistParams.to) <= moment.utc().startOf('day'); + return !ctrl.disabled; + }; + buildThresholdsFromKpis = function() { + var targets; + targets = (ctrl.widget.kpis != null) && ctrl.widget.kpis[0] && ctrl.widget.kpis[0].targets; + if (!ImpacKpisSvc.validateKpiTargets(targets)) { + return []; + } + return [ + { + kpiId: ctrl.widget.kpis[0].id, + value: targets.threshold[0].min, + name: 'Alert Threshold', + color: ctrl.thresholdColor + } + ]; }; - }; - w.settings.push(selectedElementsSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); + return ctrl; + }] + }); - module.directive('widgetSalesComparison', function() { +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-common.currency-conversions', []); + + module.directive('commonCurrencyConversions', ["$templateCache", "ImpacAssets", "$filter", function($templateCache, ImpacAssets, $filter) { return { restrict: 'A', - controller: 'WidgetSalesComparisonCtrl' + scope: { + fxAmounts: '=', + baseCurrency: '=', + ratesDate: '=' + }, + template: $templateCache.get('widgets-common/currency-conversions.tmpl.html'), + link: function(scope, element) { + scope.currencyConversionsIcon = ImpacAssets.get('currencyConversionsIcon'); + scope.popoverTemplateUrl = $templateCache.get('widgets-common/details-popover.html'); + scope.popoverTitle = "Currency Conversions Info"; + return scope.formattedRatesDate = $filter('momentDate')(scope.ratesDate, 'currency-conversions'); + } }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-customer-details', []); + module = angular.module('impac.components.widgets-common.editable-title', []); - module.controller('WidgetSalesCustomerDetailsCtrl', ["$scope", "$q", function($scope, $q) { - var buildFxTotals, setSelectedCustomer, setSelectedCustomerId, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.ratesDate = moment.now(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred.promise]; - w.initContext = function() { - $scope.isDataFound = (w.content != null) && !_.isEmpty(w.content.customers); - if ($scope.isDataFound) { - setSelectedCustomer(); - return $scope.customersOptions = _.map(w.content.customers, function(e) { - return { - value: e.uid, - label: e.name - }; - }); - } - }; - $scope.formatAddress = function(anAddress) { - if (angular.isDefined(anAddress)) { - return anAddress.replace(/, /g, ',\n'); - } - }; - $scope.getFromDate = function() { - if ($scope.isDataFound) { - return w.content.from; + module.controller('CommonEditableTitleCtrl', ["$scope", "ImpacWidgetsSvc", "ImpacDashboardsSvc", "$translate", function($scope, ImpacWidgetsSvc, ImpacDashboardsSvc, $translate) { + var w; + w = $scope.parentWidget; + $scope.updateName = function() { + var data; + if (w.name.length === 0) { + w.name = w.originalName; + return $translate.instant('impac.widget.editable_title.incorrect_name'); + } else { + data = { + name: w.name + }; + return ImpacWidgetsSvc.update(w, data, false); } }; - $scope.getToDate = function() { - if ($scope.isDataFound) { - return w.content.to; + $scope.getTooltip = function() { + var tooltipText; + if ($scope.pdfMode) { + return ''; + } else { + tooltipText = $translate.instant('impac.widget.editable_title.tooltip_text'); + return w.name + (w.hasEditAbility ? ' ' + tooltipText : ''); } }; - setSelectedCustomer = function() { - var customer; - if (!$scope.isDataFound) { - return false; - } - if (w.metadata && w.metadata.customer_uid) { - customer = _.find(w.content.customers, function(c) { - return c.uid === w.metadata.customer_uid; - }); - } - customer || (customer = w.content.customers[0]); - $scope.selectedCustomer = angular.copy(customer); - setSelectedCustomerId(); - return buildFxTotals(); + ImpacDashboardsSvc.pdfModeEnabled().then(null, null, function() { + return $scope.pdfMode = true; + }); + return ImpacDashboardsSvc.pdfModeCanceled().then(null, null, function() { + return $scope.pdfMode = false; + }); + }]); + + module.directive('commonEditableTitle', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + onToggle: '&' + }, + template: $templateCache.get('widgets-common/editable-title.tmpl.html'), + controller: 'CommonEditableTitleCtrl' }; - setSelectedCustomerId = function() { - var cust; - if (!(cust = $scope.selectedCustomer)) { - return false; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-common.info-panel', []); + + module.directive('commonInfoPanel', ["$templateCache", "ImpacUtilities", function($templateCache, ImpacUtilities) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + onClose: '&' + }, + template: $templateCache.get('widgets-common/info-panel.tmpl.html'), + link: function(scope) { + var w; + w = scope.parentWidget; + scope.hideInfoPanel = true; + scope.toggleInfoPanel = function() { + scope.hideInfoPanel = !scope.hideInfoPanel; + return scope.onClose(); + }; + return scope.getWidgetTemplateName = function() { + var cssClass, cssClassArray, widgetCategory, widgetName; + cssClass = ImpacUtilities.fetchWidgetCssClass(w); + if (!cssClass) { + return ""; + } + cssClassArray = cssClass.split('-'); + widgetCategory = cssClassArray.slice(0, 1); + widgetName = cssClassArray.slice(1, cssClassArray.length).join(' '); + return widgetCategory + " - " + widgetName; + }; } - return $scope.selectedCustomerId = { - value: cust.uid, - label: cust.name - }; }; - buildFxTotals = function() { - var cust, dueFxTotals, invoicedFxTotals, paidFxTotals; - if (!(cust = $scope.selectedCustomer)) { - return false; - } - invoicedFxTotals = []; - dueFxTotals = []; - paidFxTotals = []; - if (_.some(cust.fx_totals, function(total, currency) { - return currency !== w.metadata.currency; - })) { - _.mapKeys(cust.fx_totals, function(total, currency) { - var baseTotal; - baseTotal = { - rate: total.rate, - currency: currency - }; - if (total.invoiced !== 0) { - invoicedFxTotals.push(angular.merge({ - amount: total.invoiced - }, baseTotal)); + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-common.time-period-info', []); + + module.directive('commonTimePeriodInfo', ["$templateCache", "ImpacUtilities", "$translate", "$filter", function($templateCache, ImpacUtilities, $translate, $filter) { + return { + restrict: 'A', + scope: { + context: '=' + }, + template: $templateCache.get('widgets-common/time-period-info.tmpl.html'), + link: function(scope, element) { + var getBehaviour, getDateInfo, getInjectAfter, getInjectBefore, yieldCaption; + getBehaviour = function() { + if (angular.isFunction(scope.context.accountingBehaviour)) { + return scope.context.accountingBehaviour(); + } else { + return scope.context.accountingBehaviour; } - if (total.paid !== 0) { - paidFxTotals.push(angular.merge({ - amount: total.paid - }, baseTotal)); + }; + getInjectBefore = function() { + if (!angular.isDefined(scope.context.injectBefore)) { + return ''; + } + if (angular.isFunction(scope.context.injectBefore)) { + return scope.context.injectBefore(); + } else { + return scope.context.injectBefore; + } + }; + getInjectAfter = function() { + if (!angular.isDefined(scope.context.injectAfter)) { + return ''; + } + if (angular.isFunction(scope.context.injectAfter)) { + return scope.context.injectAfter(); + } else { + return scope.context.injectAfter; + } + }; + yieldCaption = function(caption) { + if (getInjectBefore().length > 0) { + caption = caption.toLowerCase(); + } + return [getInjectBefore(), caption, getInjectAfter()].join(' '); + }; + getDateInfo = function() { + var dates; + dates = ImpacUtilities.selectedTimeRange(scope.context.histParams); + dates.from = $filter('momentDate')(dates.from, 'time-period'); + dates.to = $filter('momentDate')(dates.to, 'time-period'); + if (getBehaviour() === 'bls') { + return $translate('impac.widget.common.time_period_info.to', { + dateTo: "" + dates.to + }).then(function(label) { + return scope.date = yieldCaption(label); + }); + } else { + return $translate('impac.widget.common.time_period_info.from_to', { + dateFrom: "" + dates.from, + dateTo: "" + dates.to + }).then(function(label) { + return scope.date = yieldCaption(label); + }); } - if (total.due !== 0) { - return dueFxTotals.push(angular.merge({ - amount: total.due - }, baseTotal)); + }; + getDateInfo(); + scope.$watch('context.histParams', function(newVal, oldVal) { + if (!_.isEqual(newVal, oldVal)) { + return getDateInfo(); } }); - if (!_.isEmpty(invoicedFxTotals)) { - cust.invoicedFxTotals = invoicedFxTotals; - } - if (!_.isEmpty(paidFxTotals)) { - cust.paidFxTotals = paidFxTotals; - } - if (!_.isEmpty(dueFxTotals)) { - return cust.dueFxTotals = dueFxTotals; + } + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-common.top-buttons', []); + + module.controller('CommonTopButtonsCtrl', ["$scope", "$rootScope", "$log", "ImpacWidgetsSvc", "ImpacAssets", "ImpacUtilities", function($scope, $rootScope, $log, ImpacWidgetsSvc, ImpacAssets, ImpacUtilities) { + var w; + w = $scope.parentWidget; + w.isEditMode = false; + $scope.toggleEditMode = function() { + if (!w.isLoading) { + if (w.isEditMode) { + w.isEditMode = false; + return ImpacWidgetsSvc.initWidgetSettings(w); + } else { + return w.isEditMode = true; } } }; - return $scope.widgetDeferred.resolve(settingsPromises); + return $scope.hasInfo = function() { + return w && (w.content != null) && (w.content.info != null) && w.content.info.length > 0; + }; }]); - module.directive('widgetSalesCustomerDetails', function() { + module.directive('commonTopButtons', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetSalesCustomerDetailsCtrl' + scope: { + parentWidget: '=', + onRefresh: '=', + onToggleInfoPanel: '&', + onToggleDeleteWidget: '&' + }, + template: $templateCache.get('widgets-common/top-buttons.tmpl.html'), + controller: 'CommonTopButtonsCtrl' }; - }); + }]); }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets.sales-cycle', []); + module = angular.module('impac.components.widgets-settings.account', []); - module.controller('WidgetSalesCycleCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, ImpacDashboardsSvc) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramsPickerDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramsPickerDeferred.promise, $scope.timePeriodDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - var dhb, status_selection; - dhb = ImpacDashboardsSvc.getCurrentDashboard(); - status_selection = w.metadata.status_selection || dhb.metadata.status_selection || { - values: [] - }; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.status_average_durations)) { - _.remove(status_selection.values, function(status) { - return indexOf.call(_.keys(w.content.status_average_durations), status) < 0; - }); - $scope.hasReach = true; - $scope.statusOptions = []; - return angular.forEach(w.content.status_average_durations, function(value, status) { - var isSelected; - isSelected = _.isEmpty(status_selection.values) || (indexOf.call(status_selection.values, status) >= 0); - return $scope.statusOptions.push({ - label: status, - selected: isSelected - }); + module.controller('SettingAccountCtrl', ["$scope", "$filter", function($scope, $filter) { + var formatAmount, setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "account"; + setting.isInitialized = false; + setting.initialize = function() { + w.selectedAccount = w.selectedAccount || null; + if ((w.content != null) && (w.content.account_list != null) && (w.metadata != null) && (w.metadata.account_uid != null)) { + w.selectedAccount = _.find(w.content.account_list, function(acc) { + return acc.uid === w.metadata.account_uid; }); + return setting.isInitialized = true; } }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + setting.toMetadata = function() { + if (w.selectedAccount != null) { + return { + account_uid: w.selectedAccount.uid + }; } }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = _.compact(_.map($scope.statusOptions, function(statusOption) { - var value; - value = w.content.status_average_durations[statusOption.label]; - if (statusOption.selected && angular.isDefined(value)) { - return { - label: ($filter('titleize')(statusOption.label)) + ": " + value + " " + $scope.unit, - value: value - }; - } - })); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12, - currency: w.content.unit - }; - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); + formatAmount = function(anAccount) { + var balance; + balance = anAccount.current_balance || anAccount.balance || 0.0; + return $filter('mnoCurrency')(balance, anAccount.currency); + }; + $scope.formatLabel = function(anAccount) { + if (anAccount.company != null) { + return anAccount.company + " - " + anAccount.name + " (" + (formatAmount(anAccount)) + ")"; + } else { + return anAccount.name + " (" + (formatAmount(anAccount)) + ")"; } }; - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesCycle', function() { + module.directive('settingAccount', ["$templateCache", "$translate", function($templateCache, $translate) { return { restrict: 'A', - controller: 'WidgetSalesCycleCtrl' + scope: { + parentWidget: '=', + deferred: '=', + label: '@', + showLabel: '=?', + onAccountSelected: '&' + }, + link: function(scope, element) { + if (!scope.label) { + return scope.label = $translate.instant('impac.widget.settings.account.label'); + } + }, + template: $templateCache.get('widgets-settings/account.tmpl.html'), + controller: 'SettingAccountCtrl' }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-forecast', []); + module = angular.module('impac.components.widgets-settings.accounting-behaviour', []); - module.controller('WidgetSalesForecastCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - return $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.dates) && !_.isEmpty(w.content.totals); + module.directive('settingAccountingBehaviour', ["$templateCache", "$timeout", function($templateCache, $timeout) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + defaultBehaviour: '=?' + }, + template: $templateCache.get('widgets-settings/accounting-behaviour.tmpl.html'), + link: function(scope) { + var setting, w; + w = scope.parentWidget; + setting = {}; + setting.key = "accounting-behaviour"; + setting.initialize = function() { + return $timeout(function() { + if ((scope.defaultBehaviour != null) && scope.defaultBehaviour === 'pnl') { + return scope.selectedBehaviour = 'pnl'; + } else { + return scope.selectedBehaviour = 'bls'; + } + }); + }; + setting.toMetadata = function() { + return { + accounting_behaviour: scope.selectedBehaviour + }; + }; + w.settings.push(setting); + return scope.deferred.resolve(setting); + } }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.accounts-list', []); + + module.controller('SettingAccountsListCtrl', ["$scope", "$timeout", "ImpacWidgetsSvc", function($scope, $timeout, ImpacWidgetsSvc) { + var restoreSavedAccounts, setting, w; + w = $scope.parentWidget; + w.moveAccountToAnotherList = function(account, src, dst, triggerUpdate) { + if (triggerUpdate == null) { + triggerUpdate = true; + } + if (_.isEmpty(src) || _.isEmpty(account)) { + return; + } + dst || (dst = []); + _.remove(src, function(acc) { + return account.uid === acc.uid; + }); + dst.push(account); + if (triggerUpdate) { + ImpacWidgetsSvc.updateWidgetSettings(w, false); + } + return null; + }; + setting = {}; + setting.key = "accounts-list"; + setting.initialize = function() { + setting.isInitialized = false; + w.remainingAccounts = []; + w.selectedAccounts = []; + if ((w.content != null) && !_.isEmpty(w.content.complete_list)) { + w.remainingAccounts = angular.copy(w.content.complete_list); + return $timeout(function() { + restoreSavedAccounts(); + return setting.isInitialized = true; + }); } }; - $scope.getOpportunityAmount = function(anOpp) { - if ($scope.isDataFound && !_.isEmpty(anOpp)) { - if (anOpp.amount && anOpp.amount.amount) { - return anOpp.amount.amount; - } else { - return '-'; - } + setting.toMetadata = function() { + if (setting.isInitialized) { + return { + accounts_list: _.map(w.selectedAccounts, (function(acc) { + return acc.uid; + })) + }; } }; - $scope.getOpportunityCurrency = function(anOpp) { - if ($scope.isDataFound && !_.isEmpty(anOpp)) { - if (anOpp.amount && anOpp.amount.currency) { - return anOpp.amount.currency; - } else if (w.content.currency) { - return w.content.currency; - } else { - return 'AUD'; - } + restoreSavedAccounts = function() { + var acc, accUid, accountsList, i, len, results; + if (_.isEmpty(w.metadata.accounts_list) && _.isEmpty($scope.accountsList)) { + return; } - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, formattedDates, inputData, options, period; - if ($scope.isDataFound) { - all_values_are_positive = true; - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - formattedDates = _.map(w.content.dates, function(aDate) { - return $filter('momentDate')(aDate, period); - }); - inputData = [ - { - title: $translate.instant('impac.widget.sales_forecast.sales_performance'), - labels: formattedDates, - values: w.content.totals - } - ]; - angular.forEach(w.content.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); + accountsList = _.isEmpty($scope.accountsList) ? w.metadata.accounts_list : $scope.accountsList; + results = []; + for (i = 0, len = accountsList.length; i < len; i++) { + accUid = accountsList[i]; + acc = _.find(w.content.complete_list, function(acc) { + return acc.uid === accUid; }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: true, - pointDot: false - }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); + results.push(w.moveAccountToAnotherList(acc, w.remainingAccounts, w.selectedAccounts, false)); } + return results; }; - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesForecast', function() { + module.directive('settingAccountsList', function() { return { restrict: 'A', - controller: 'WidgetSalesForecastCtrl' + scope: { + parentWidget: '=', + deferred: '=', + accountsList: '=?' + }, + controller: 'SettingAccountsListCtrl' }; }); }).call(this); + +/* + * Attach KPIs onto widget with a form for picking target mode and value. View widget's + * attached KPIs, manage set targets, alerts and delete. + * **NOTE: this component is not in use, and requires fixes/improvements to be used.** + */ + (function() { var module; - module = angular.module('impac.components.widgets.sales-growth', []); + module = angular.module('impac.components.widgets-settings.attach-kpis', []); - module.controller('WidgetSalesGrowthCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var productLineThreshold, productOptionThreshold, settingsPromises, w; - w = $scope.widget; - productLineThreshold = 35; - productOptionThreshold = 25; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.paramSelectorDeferred1 = $q.defer(); - $scope.paramSelectorDeferred2 = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramSelectorDeferred1.promise, $scope.paramSelectorDeferred2.promise, $scope.chartDeferred.promise]; - $scope.isDataQuantity = true; - w.initContext = function() { - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary) && !_.isEmpty(w.content.dates)) { - $scope.productOptions = _.flatten(_.map(w.content.summary, function(product) { - return { - label: $scope.getDisplayName(product, productOptionThreshold), - value: product.id - }; - })); - $scope.product = angular.copy(_.find($scope.productOptions, function(o) { - return o.value === w.content.product; - }) || { - label: $translate.instant('impac.widget.sales_growth.select_product'), - value: -1 - }); - $scope.filterOptions = [ + module.directive('settingAttachKpis', ["$templateCache", "ImpacWidgetsSvc", "ImpacKpisSvc", "$translate", function($templateCache, ImpacWidgetsSvc, ImpacKpisSvc, $translate) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + attachedKpis: '=?', + widgetEngine: '=', + widgetId: '=', + extraParams: '=?', + deferred: '=', + showExtraParam: '=?' + }, + template: $templateCache.get('widgets-settings/attach-kpis.tmpl.html'), + controller: ["$scope", function($scope) { + var loadKpisData, settings, w; + w = $scope.parentWidget; + settings = {}; + settings.initialize = function() { + return loadKpisData(); + }; + settings.toMetadata = function() {}; + w.settings.push(settings); + $scope.formatKpiName = function(endpoint) { + return ImpacKpisSvc.formatKpiName(endpoint); + }; + $scope.hasValidTarget = function() { + return ImpacKpisSvc.validateKpiTarget($scope.kpi); + }; + $scope.attachKpi = function() { + var param, paramValues, params, ref, target0; + params = {}; + if (!$scope.hasValidTarget()) { + return; + } + target0 = {}; + target0[$scope.kpi.limit.mode] = $scope.kpi.limit.value; + params.targets = {}; + params.targets[$scope.kpi.watchables[0]] = [target0]; + params.widget_id = $scope.widgetId; + ref = $scope.extraParams; + for (param in ref) { + paramValues = ref[param]; + params.extra_params || (params.extra_params = {}); + params.extra_params[param] = paramValues.uid; + } + console.log('attachKpis: ', $scope.kpi.endpoint, $scope.elementWatched, params); + return ImpacKpisSvc.create('impac', $scope.kpi.endpoint, $scope.elementWatched, params).then(function(kpi) { + console.log('attached KPI: ', kpi); + return $scope.attachedKpis.push(kpi); + }); + }; + $scope.deleteKpi = function(kpi) { + return ImpacKpisSvc["delete"](kpi, { + widget_id: $scope.widgetId + }).then(function() { + return _.remove($scope.attachedKpis, function(k) { + return k.id === kpi.id; + }); + }); + }; + $scope.formatAttachedKpiTitle = function(kpi) { + if (!(kpi.data && kpi.targets && $scope.elementWatched)) { + return ''; + } + return ImpacKpisSvc.formatKpiTarget(kpi.targets[$scope.elementWatched][0], kpi.data[$scope.elementWatched].unit, $scope.possibleTargets); + }; + $scope.attachedKpis || ($scope.attachedKpis = []); + $scope.possibleTargets = [ { - label: $translate.instant('impac.widget.sales_growth.value_sold_taxes'), - value: 'gross_value_sold' - }, { - label: $translate.instant('impac.widget.sales_growth.value_sold_no_taxes'), - value: 'net_value_sold' - }, { - label: $translate.instant('impac.widget.sales_growth.quantity_sold'), - value: 'quantity_sold' - }, { - label: $translate.instant('impac.widget.sales_growth.value_purchased_taxes'), - value: 'gross_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_growth.value_purchased_no_taxes'), - value: 'net_value_purchased' + label: $translate.instant('impac.widget.settings.attach_kpis.over'), + mode: 'min' }, { - label: $translate.instant('impac.widget.sales_growth.quantity_purchased'), - value: 'quantity_purchased' - } - ]; - $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.content.filter; - }) || $scope.filterOptions[0]); - return $scope.isDataQuantity = $scope.filter.value.match('quantity'); - } - }; - $scope.getSelectedProduct = function() { - var product; - if ($scope.isDataFound) { - product = _.find(w.content.summary, function(product) { - return product.id === $scope.product.value; - }) || w.content.summary[0]; - return _.extend(product, { - displayName: $scope.getDisplayName(product, productLineThreshold) - }); - } - }; - $scope.getCurrentValue = function() { - if ($scope.getSelectedProduct() != null) { - return _.last($scope.getSelectedProduct().totals); - } - }; - $scope.getCurrentDate = function() { - if ($scope.isDataFound) { - return _.last(w.content.dates); - } - }; - $scope.getDisplayName = function(product, threshold) { - var codeName, fullName; - fullName = w.content.organizations.length === 1 ? product.name : product.company + ' - ' + product.name; - codeName = w.content.organizations.length === 1 ? product.code : product.company + ' - ' + product.code; - if (fullName.length > threshold) { - return codeName; - } else { - return fullName; - } - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, data, dates, inputData, options, period; - if ($scope.isDataFound && $scope.product && (data = $scope.getSelectedProduct())) { - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData = { - title: data.name, - labels: dates, - values: data.totals + label: $translate.instant('impac.widget.settings.attach_kpis.below'), + mode: 'max' + } + ]; + $scope.kpi = { + limit: { + mode: $scope.possibleTargets[0].mode + } }; - all_values_are_positive = true; - angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); + ImpacKpisSvc.getAttachableKpis($scope.widgetEngine).then(function(kpiTemplates) { + $scope.availableKpis = angular.copy(kpiTemplates); + angular.extend($scope.kpi, $scope.availableKpis[0]); + $scope.selectedParam = _.keys($scope.extraParams)[0]; + return $scope.elementWatched = ($scope.kpi.watchables != null) && $scope.kpi.watchables[0]; }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false - }; - if ($scope.filter.value.indexOf('quantity') > -1) { - angular.merge(options, { - currency: 'hide' - }); - } - chartData = ChartFormatterSvc.lineChart([inputData], options); - return $scope.drawTrigger.notify(chartData); - } + loadKpisData = function() {}; + loadKpisData(); + return $scope.deferred.resolve($scope.parentWidget); + }] }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesGrowth', function() { - return { - restrict: 'A', - controller: 'WidgetSalesGrowthCtrl' - }; - }); - }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets.sales-leads-funnel', []); + module = angular.module('impac.components.widgets-settings.chart-filters', []); - module.controller('WidgetSalesLeadsFunnelCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$sce", "ImpacWidgetsSvc", "ImpacDashboardsSvc", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $sce, ImpacWidgetsSvc, ImpacDashboardsSvc, $translate) { - var hasOneLead, selectedStatusSetting, setLeadDescriptionTooltips, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.paramsPickerDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.paramsPickerDeferred.promise, $scope.widthDeferred.promise]; - hasOneLead = function(leadsPerStatus) { - var reducedHash, total, totalsArray; - reducedHash = _.mapValues(leadsPerStatus, function(statusHash) { - return statusHash.total; - }); - totalsArray = _.compact(_.values(reducedHash)); - total = _.reduce(totalsArray, function(total, n) { - if (total == null) { - total = 0; - } - return total + n; - }); - return (total != null) && total > 0; - }; - w.initContext = function() { - var dhb, status_selection; - dhb = ImpacDashboardsSvc.getCurrentDashboard(); - status_selection = w.metadata.status_selection || dhb.metadata.status_selection || { - values: [] - }; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.leads_per_status) && hasOneLead(w.content.leads_per_status)) { - _.remove(status_selection.values, function(status) { - return indexOf.call(_.keys(w.content.leads_per_status), status) < 0; - }); - $scope.hasReach = true; - $scope.statusOptions = []; - return angular.forEach(w.content.leads_per_status, function(value, status) { - var isSelected; - isSelected = _.isEmpty(status_selection.values) || (indexOf.call(status_selection.values, status) >= 0); - return $scope.statusOptions.push({ - label: status, - selected: isSelected - }); - }); - } - }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; - } - }; - $scope.getImpacColor = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.toggleSelectStatus = function(aStatus) { - if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { - $scope.selectedStatus = null; - } else { - $scope.selectedStatus = aStatus; - $scope.setLeadTooltipsIsLocked = false; - } - if (!w.isExpanded() && $scope.selectedStatus) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); - } - }; - $scope.isSelected = function(aStatus) { - return $scope.selectedStatus && aStatus === $scope.selectedStatus; - }; - $scope.getSelectedLeads = function() { - var leads; - if ($scope.isDataFound && $scope.selectedStatus) { - leads = w.content.leads_per_status[$scope.selectedStatus].leads; - if (!$scope.setLeadTooltipsIsLocked) { - setLeadDescriptionTooltips(leads); + module.controller('SettingChartFiltersCtrl', ["$scope", function($scope) { + var setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "chart-filters"; + setting.isInitialized = false; + setting.initialize = function() { + if ((w.content != null) && (w.content.chart_filter != null) && ($scope.filterCriteria = w.content.chart_filter.criteria)) { + $scope.maxEntities = w.content.chart_filter.max; + $scope.entityType = w.content.chart_filter.entity_type; + $scope.filterLabel = w.content.chart_filter.filter_label.replace(/_/g, " "); + if ($scope.filterCriteria === "number") { + $scope.filterValuePercentage = 80; + $scope.filterValueNumber = w.content.chart_filter.value; + } else { + $scope.filterValuePercentage = w.content.chart_filter.value; + $scope.filterValueNumber = Math.round($scope.maxEntities / 2); } - return leads; + return setting.isInitialized = true; } }; - $scope.leadDescriptionTooltips = {}; - setLeadDescriptionTooltips = function(leads) { - $scope.leadDescriptionTooltips = {}; - $scope.setLeadTooltipsIsLocked = true; - return _.each(leads, function(aLead, index) { - var nameLineArray, tooltip; - tooltip = []; - nameLineArray = [""]; - if (aLead.first_name) { - nameLineArray.push($filter('titleize')(aLead.first_name)); - } - if (aLead.last_name) { - nameLineArray.push($filter('titleize')(aLead.last_name)); - } - nameLineArray.push(""); - tooltip.push(nameLineArray.join(' ')); - tooltip.push("Status: " + ($filter('titleize')(aLead.lead_status))); - if (aLead.organization) { - tooltip.push("Organization: " + ($filter('titleize')(aLead.organization))); - } - if (aLead.opportunities) { - tooltip.push("Opportunities:"); - _.each(aLead.opportunities, function(opp) { - var oppLineArray; - oppLineArray = []; - if (opp.code) { - oppLineArray.push("#" + opp.code); - } - if (opp.name) { - oppLineArray.push("" + opp.name); - } - if (opp.amount) { - oppLineArray.push($filter('mnoCurrency')(opp.amount.total_amount, "USD", false)); - } - if (opp.probability) { - oppLineArray.push(opp.probability + "%"); - } - if (opp.sales_stage) { - oppLineArray.push("" + opp.sales_stage); - } - return tooltip.push(oppLineArray.join(' - ')); - }); + setting.toMetadata = function() { + var filterValue; + if ((w.content != null) && (w.content.chart_filter != null)) { + if ($scope.filterCriteria === "percentage") { + filterValue = $scope.filterValuePercentage; + } else { + filterValue = $scope.filterValueNumber; } - return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); - }); - }; - selectedStatusSetting = {}; - selectedStatusSetting.initialized = false; - selectedStatusSetting.initialize = function() { - if (!_.isEmpty(w.content) && angular.isDefined(w.content.leads_per_status[w.metadata.selected_status])) { - $scope.selectedStatus = w.metadata.selected_status; - } - return selectedStatusSetting.initialized = true; - }; - selectedStatusSetting.toMetadata = function() { - return { - selected_status: $scope.selectedStatus - }; - }; - w.settings.push(selectedStatusSetting); - w.format = function() { - var max; - if ($scope.isDataFound) { - max = 0; - angular.forEach($scope.statusOptions, function(statusOption) { - var value; - value = w.content.leads_per_status[statusOption.label].total; - if (statusOption.selected && angular.isDefined(value) && value > max) { - return max = value; + return { + chart_filter: { + criteria: $scope.filterCriteria, + value: filterValue } - }); - if (max > 0) { - return $scope.funnel = _.compact(_.map($scope.statusOptions, function(statusOption, index) { - var coloredWidth, statusWidth, value; - value = w.content.leads_per_status[statusOption.label].total; - coloredWidth = (100 * (value / max) - 10).toFixed(); - if (coloredWidth < 8) { - statusWidth = 92; - } else { - statusWidth = 100 - coloredWidth; - } - if (statusOption.selected && angular.isDefined(value)) { - return { - status: statusOption.label, - number: value, - coloredWidth: { - width: coloredWidth + "%" - }, - statusWidth: { - width: statusWidth + "%" - } - }; - } - })); - } + }; + } else { + return {}; } }; - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesLeadsFunnel', function() { + module.directive('settingChartFilters', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetSalesLeadsFunnelCtrl' + scope: { + parentWidget: '=', + deferred: '=' + }, + template: $templateCache.get('widgets-settings/chart-filters.tmpl.html'), + controller: 'SettingChartFiltersCtrl' }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-leads-list', []); + module = angular.module('impac.components.widgets-settings.bolt-account', []); - module.controller('WidgetSalesLeadsListCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$sce", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $sce, $translate) { - var initLeadDescriptionTooltips, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise]; - w.initContext = function() { - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.leads); - if ($scope.isDataFound) { - return initLeadDescriptionTooltips(w.content.leads); + module.controller('SettingBoltAccountCtrl', ["$scope", "$filter", function($scope, $filter) { + var formatAmount, setOptions, setSelected, setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "bolt-account"; + setting.isInitialized = false; + setting.initialize = function() { + if (w.content.settings.selectors.length !== 0) { + w.accountList = setOptions(); + } + w.selectedAccount = setSelected(); + if ((w.content != null) && (w.accountList != null) && (w.metadata != null) && (w.metadata.account_uid != null)) { + w.selectedAccount = setSelected(w.metadata.account_uid); + return setting.isInitialized = true; } }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + setting.toMetadata = function() { + if (w.selectedAccount != null) { + return { + account_uid: w.selectedAccount.account_id + }; } }; - $scope.leadDescriptionTooltips = {}; - initLeadDescriptionTooltips = function(leads) { - return _.each(leads, function(aLead, index) { - var nameLineArray, tooltip; - tooltip = []; - nameLineArray = [""]; - if (aLead.first_name) { - nameLineArray.push($filter('titleize')(aLead.first_name)); - } - if (aLead.last_name) { - nameLineArray.push($filter('titleize')(aLead.last_name)); - } - nameLineArray.push(""); - tooltip.push(nameLineArray.join(' ')); - tooltip.push("Status: " + ($filter('titleize')(aLead.lead_status))); - if (aLead.organization) { - tooltip.push("Organization: " + ($filter('titleize')(aLead.organization))); - } - if (aLead.opportunities) { - tooltip.push("Opportunities:"); - _.each(aLead.opportunities, function(opp) { - var oppLineArray; - oppLineArray = []; - if (opp.code) { - oppLineArray.push("#" + opp.code); - } - if (opp.name) { - oppLineArray.push("" + opp.name); - } - if (opp.amount) { - oppLineArray.push($filter('mnoCurrency')(opp.amount.total_amount, "USD", false)); - } - if (opp.probability) { - oppLineArray.push(opp.probability + "%"); - } - if (opp.sales_stage) { - oppLineArray.push("" + opp.sales_stage); - } - return tooltip.push(oppLineArray.join(' - ')); - }); - } - return $scope.leadDescriptionTooltips[index] = $sce.trustAsHtml(tooltip.join("
")); + setOptions = function(name) { + if (name == null) { + name = 'account'; + } + return _.find(w.content.settings.selectors, function(selector) { + return selector.name === name; + }).options; + }; + setSelected = function(selected) { + if (selected == null) { + selected = 'total_uid'; + } + return _.find(w.accountList, function(acc) { + return acc.account_id === selected; }); }; - return $scope.widgetDeferred.resolve(settingsPromises); + formatAmount = function(anAccount) { + var balance; + balance = null; + return $filter('mnoCurrency')(balance, anAccount.currency); + }; + $scope.formatLabel = function(anAccount) { + if (anAccount.currency != null) { + return anAccount.name + " (" + anAccount.currency + ")"; + } else { + return "" + anAccount.name; + } + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesLeadsList', function() { + module.directive('settingBoltAccount', ["$templateCache", "$translate", function($templateCache, $translate) { return { restrict: 'A', - controller: 'WidgetSalesLeadsListCtrl' + scope: { + parentWidget: '=', + deferred: '=', + label: '@', + showLabel: '=?', + onAccountSelected: '&' + }, + link: function(scope, element) { + if (!scope.label) { + return scope.label = $translate.instant('impac.widget.settings.bolt-account.label'); + } + }, + template: $templateCache.get('widgets-settings/bolt-account.tmpl.html'), + controller: 'SettingBoltAccountCtrl' }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-list', []); + module = angular.module('impac.components.widgets-settings.dates-picker', []); - module.controller('WidgetSalesListCtrl', ["$scope", "$q", "ChartFormatterSvc", "ImpacWidgetsSvc", "$translate", function($scope, $q, ChartFormatterSvc, ImpacWidgetsSvc, $translate) { - var buildFxTotals, settingsPromises, sortAccountsBy, sortData, unCollapsedSetting, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.datesPickerDeferred.promise]; - $scope.ascending = true; - $scope.sortedColumn = 'account'; - $scope.datesPickerTemplate = "" + $translate.instant('impac.widget.sales_list.from') + " " + $translate.instant('impac.widget.sales_list.to') + " "; - w.initContext = function() { - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.summary)) { - buildFxTotals(); - $scope.ratesDate = moment.now(); - $scope.filterOptions = [ - { - label: $translate.instant('impac.widget.sales_list.value_sold_taxes'), - value: 'gross_value_sold' - }, { - label: $translate.instant('impac.widget.sales_list.value_sold_no_taxes'), - value: 'net_value_sold' - }, { - label: $translate.instant('impac.widget.sales_list.quantity_sold'), - value: 'quantity_sold' - }, { - label: $translate.instant('impac.widget.sales_list.value_purchased_taxes'), - value: 'gross_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_list.value_purchased_no_taxes'), - value: 'net_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_list.quantity_purchased'), - value: 'quantity_purchased' + module.directive('settingDatesPicker', ["$templateCache", "$filter", "ImpacWidgetsSvc", "$timeout", "$compile", function($templateCache, $filter, ImpacWidgetsSvc, $timeout, $compile) { + return { + restrict: 'A', + scope: { + parentWidget: '=?', + deferred: '=', + fromDate: '=from', + toDate: '=to', + keepToday: '=', + onUse: '&?', + onChangeCb: '&?onChange', + minDate: '=?', + updateOnPick: '=?', + template: '=?', + period: '=?' + }, + template: $templateCache.get('widgets-settings/dates-picker.tmpl.html'), + link: function(scope, element) { + var applyHtml, buildDates, fromDateHtml, isToToday, setting, templatesContainer, toDateHtml, w; + w = scope.parentWidget; + setting = {}; + setting.key = "dates-picker"; + scope.setting = setting; + scope.calendarFrom = { + opened: false, + value: new Date(new Date().getFullYear(), 0, 1), + toggle: function() { + scope.calendarFrom.opened = !scope.calendarFrom.opened; + return scope.calendarTo.opened = false; } - ]; - $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.metadata.filter; - }) || $scope.filterOptions[0]); - $scope.unCollapsed = w.metadata.unCollapsed || []; - return sortData(); + }; + scope.calendarTo = { + opened: false, + value: new Date(), + toggle: function() { + scope.calendarFrom.opened = false; + return scope.calendarTo.opened = !scope.calendarTo.opened; + } + }; + scope.template || (scope.template = "
\n
\n impac.widget.settings.dates_picker.from \n
\n
\n impac.widget.settings.dates_picker.to \n
\n
"); + fromDateHtml = "
\n \n
"; + toDateHtml = "
\n \n
"; + applyHtml = ""; + scope.template = scope.template.replace(/>/, " ng-click='onUse()'>"); + scope.template = scope.template.replace(/]*)>/g, "" + (fromDateHtml.replace('ATTRS', '$1'))); + scope.template = scope.template.replace(/]*)>/g, "" + (toDateHtml.replace('ATTRS', '$1'))); + scope.template = scope.template.replace(/]*)>/g, "" + (applyHtml.replace('ATTRS', '$1'))); + templatesContainer = element.find('#template-container'); + templatesContainer.html(scope.template).show(); + $compile(templatesContainer.contents())(scope); + setting.initialize = function() { + return $timeout(function() { + var d, m, parsedFrom, parsedTo, y; + scope.changed = false; + if (Date.parse(scope.fromDate)) { + parsedFrom = scope.fromDate.split('-'); + y = parsedFrom[0]; + m = parsedFrom[1] - 1; + d = parsedFrom[2]; + scope.calendarFrom.value = new Date(y, m, d); + } else { + scope.calendarFrom.value = new Date(new Date().getFullYear(), 0, 1); + } + if (Date.parse(scope.toDate) && !scope.keepToday) { + parsedTo = scope.toDate.split('-'); + y = parsedTo[0]; + m = parsedTo[1] - 1; + d = parsedTo[2]; + return scope.calendarTo.value = new Date(y, m, d); + } else { + return scope.calendarTo.value = new Date(); + } + }); + }; + isToToday = function() { + return (scope.calendarTo.value.getFullYear() === new Date().getFullYear()) && (scope.calendarTo.value.getMonth() === new Date().getMonth()) && (scope.calendarTo.value.getDate() === new Date().getDate()); + }; + setting.toMetadata = function() { + return { + hist_parameters: { + from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), + to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), + period: scope.period || "RANGE", + keep_today: isToToday() + } + }; + }; + scope.onChange = function() { + scope.showApplyButton(); + if (!_.isUndefined(scope.onChangeCb)) { + return scope.onChangeCb()(buildDates()); + } + }; + buildDates = function() { + return { + from: $filter('date')(scope.calendarFrom.value, 'yyyy-MM-dd'), + to: $filter('date')(scope.calendarTo.value, 'yyyy-MM-dd'), + keepToday: isToToday() + }; + }; + scope.showApplyButton = function() { + if (scope.updateOnPick) { + return scope.applyChanges(); + } else { + return scope.changed = true; + } + }; + scope.applyChanges = function() { + ImpacWidgetsSvc.updateWidgetSettings(w, true); + return scope.changed = false; + }; + scope.showTitle = function() { + return element.hasClass('part'); + }; + if (w) { + w.settings.push(setting); + } + return scope.deferred.resolve(setting); + } + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.formula', []); + + module.controller('SettingFormulaCtrl', ["$scope", "$filter", "$timeout", "$translate", function($scope, $filter, $timeout, $translate) { + var AUTHORIZED_REGEXP, evaluateFormula, formatFormula, getFormula, interpolateInFormula, isRatio, prepareFormula, setting, translateEvaluatedFormula, w; + w = $scope.parentWidget; + w.formula = ''; + AUTHORIZED_REGEXP = new RegExp("^(\\{|\\d|\\}|\\/|\\+|-|\\*|\\(|\\)|\\s|\\.)*$"); + setting = {}; + setting.key = "formula"; + setting.isInitialized = false; + setting.initialize = function() { + if ((w.metadata != null) && (w.metadata.formula != null)) { + w.formula = w.metadata.formula; + return $timeout(function() { + prepareFormula(); + return setting.isInitialized = true; + }); + } else { + return w.formula = ''; } }; - $scope.toggleCollapsed = function(categoryName) { - if (categoryName != null) { - if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; - }))) { - $scope.unCollapsed = _.reject($scope.unCollapsed, function(name) { - return name === categoryName; - }); - } else { - $scope.unCollapsed.push(categoryName); - } - return ImpacWidgetsSvc.updateWidgetSettings(w, false); + setting.toMetadata = function() { + prepareFormula(); + if (w.isFormulaCorrect) { + return { + formula: w.formula + }; + } else { + return { + formula: '' + }; } }; - $scope.isCollapsed = function(categoryName) { - if (categoryName != null) { - if (_.find($scope.unCollapsed, (function(name) { - return categoryName === name; - }))) { - return false; - } else { - return true; - } + getFormula = function() { + return w.formula; + }; + w.formatAmount = function(anAccount) { + return $filter('mnoCurrency')(anAccount.current_balance, anAccount.currency); + }; + $scope.$watch(getFormula, function(e) { + return prepareFormula(); + }); + prepareFormula = function() { + var evaluatedFormula, interpolatedFormula; + interpolatedFormula = interpolateInFormula(w.formula, w.selectedAccounts, 'current_balance'); + if ((evaluatedFormula = evaluateFormula(interpolatedFormula))) { + w.evaluatedFormula = formatFormula(evaluatedFormula, w.formula, w.selectedAccounts); + w.legend = interpolateInFormula(w.formula, w.selectedAccounts, 'name'); + w.isFormulaCorrect = true; + } else { + w.evaluatedFormula = 'invalid expression'; + w.legend = '...'; + w.isFormulaCorrect = false; } + return w.evaluatedFormulaTranslate = translateEvaluatedFormula(w.evaluatedFormula); }; - sortAccountsBy = function(getElem) { - return angular.forEach(w.content.summary, function(sElem) { - if (sElem.products) { - return sElem.products.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; - } - return res; - }); - } - }); + w.evaluatedFormula_History = function(index) { + var account, i, interpolation, j, len, pattern, ref; + interpolation = w.formula; + ref = w.selectedAccounts; + for (i = j = 0, len = ref.length; j < len; i = ++j) { + account = ref[i]; + pattern = new RegExp("\\{" + (i + 1) + "\\}", 'g'); + interpolation = interpolation.replace(pattern, " " + account['balances'][index] + " "); + } + return evaluateFormula(interpolation); }; - sortData = function() { - if ($scope.sortedColumn === 'account') { - return sortAccountsBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortAccountsBy(function(el) { - return el.total; - }); + translateEvaluatedFormula = function(formula) { + switch (formula) { + case 'invalid expression': + return $translate.instant('impac.widget.formula.invalid_expression'); + case 'Infinity': + return $translate.instant('impac.widget.formula.infinity'); + case '-Infinity': + return $translate.instant('impac.widget.formula.minus_infinity'); + default: + return formula; } }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; + interpolateInFormula = function(sourceFormula, selectedAccounts, accountMember) { + var account, i, interpolation, j, len, pattern; + interpolation = sourceFormula; + if (_.isEmpty(selectedAccounts)) { + return interpolation; } - return sortData(); + for (i = j = 0, len = selectedAccounts.length; j < len; i = ++j) { + account = selectedAccounts[i]; + pattern = new RegExp("\\{" + (i + 1) + "\\}", 'g'); + interpolation = interpolation.replace(pattern, " " + account[accountMember] + " "); + } + return interpolation; }; - buildFxTotals = function() { - var groupedSales, i, len, ref, results, sale, saleFxTotals; - ref = w.content.summary; - results = []; - for (i = 0, len = ref.length; i < len; i++) { - groupedSales = ref[i]; - results.push((function() { - var j, len1, ref1, results1; - ref1 = groupedSales.products; - results1 = []; - for (j = 0, len1 = ref1.length; j < len1; j++) { - sale = ref1[j]; - saleFxTotals = []; - if (!_.isEmpty(sale.fx_totals)) { - _.mapKeys(sale.fx_totals, function(total, currency) { - var amount; - amount = total['amount']; - if (!(amount === 0 || currency === w.metadata.currency)) { - return saleFxTotals.push({ - currency: currency, - amount: amount, - rate: total.rate - }); - } - }); - } - if (!_.isEmpty(saleFxTotals)) { - results1.push(sale.formattedFxTotals = saleFxTotals); - } else { - results1.push(void 0); - } - } - return results1; - })()); + evaluateFormula = function(interpolatedFormula) { + var e, evaluation; + if (!interpolatedFormula.match(AUTHORIZED_REGEXP)) { + return false; + } + try { + evaluation = eval(interpolatedFormula).toFixed(2); + if (isFinite(evaluation)) { + return evaluation; + } else { + return false; + } + } catch (error) { + e = error; + return false; } - return results; }; - unCollapsedSetting = {}; - unCollapsedSetting.initialized = false; - unCollapsedSetting.initialize = function() { - return unCollapsedSetting.initialized = true; + isRatio = function(sourceFormula) { + return sourceFormula.match(/\//g); }; - unCollapsedSetting.toMetadata = function() { - return { - unCollapsed: $scope.unCollapsed - }; + formatFormula = function(evaluation, sourceFormula, selectedAccounts) { + var currency, firstAccount; + if (isRatio(sourceFormula) || _.isEmpty(selectedAccounts)) { + return evaluation; + } + firstAccount = selectedAccounts[0]; + if (!(currency = firstAccount.currency)) { + return evaluation; + } + return $filter('mnoCurrency')(evaluation, currency); }; - w.settings.push(unCollapsedSetting); - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesList', function() { + module.directive('settingFormula', function() { return { restrict: 'A', - controller: 'WidgetSalesListCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-margin', []); - - module.controller('WidgetSalesMarginCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.histModeDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.histModeDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - $scope.isDataFound = (w.content != null) && (w.content.margins != null) && (w.content.dates != null); - if ($scope.isDataFound) { - $scope.filterOptions = [ - { - label: $translate.instant('impac.widget.sales_margin.including_taxes'), - value: 'gross_margin' - }, { - label: $translate.instant('impac.widget.sales_margin.excluding_taxes'), - value: 'net_margin' - } - ]; - if ((w.metadata != null) && w.metadata.filter === "net_margin") { - return $scope.filter = angular.copy($scope.filterOptions[1]); - } else { - return $scope.filter = angular.copy($scope.filterOptions[0]); - } - } + scope: { + parentWidget: '=', + deferred: '=' + }, + controller: 'SettingFormulaCtrl' }; - $scope.getTotalMargin = function() { - if ($scope.isDataFound) { - if ((w.metadata != null) && w.metadata.filter === "net_margin") { - return _.reduce(w.content.margins.net, function(memo, margin) { - return memo + margin; - }, 0); - } else { - return _.reduce(w.content.margins.gross, function(memo, margin) { - return memo + margin; - }, 0); - } + }); + +}).call(this); + +(function() { + var module, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + module = angular.module('impac.components.widgets-settings.hist-mode', []); + + module.controller('SettingHistModeCtrl', ["$scope", "$translate", "$timeout", "ImpacWidgetsSvc", "ImpacTheming", "ImpacUtilities", function($scope, $translate, $timeout, ImpacWidgetsSvc, ImpacTheming, ImpacUtilities) { + var buildCurrentLabel, setting, w; + w = $scope.parentWidget; + w.isHistoryMode = w.metadata && w.metadata.hist_parameters && w.metadata.hist_parameters.mode === 'history'; + $scope.forwardParams = { + accountingBehaviour: function() { + return $scope.accountingBehaviour; } }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency || "USD"; + $scope.toggleHistMode = function(mode) { + var ref; + if ((w.isHistoryMode && mode === 'history') || (!w.isHistoryMode && mode === 'current')) { + return; } + w.isHistoryMode = !w.isHistoryMode; + ImpacWidgetsSvc.updateWidgetSettings(w, false); + return ref = $scope.onToggle(), indexOf.call(angular.isDefined($scope.onToggle), ref) >= 0; }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, dates, inputData, options, period, values; - if ($scope.isDataFound) { - if ((w.metadata != null) && w.metadata.filter === "net_margin") { - values = w.content.margins.net; - } else { - values = w.content.margins.gross; - } - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; - } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); + buildCurrentLabel = function() { + var label, labels, needPrefix, prefix; + labels = ImpacTheming.get().widgetSettings.histModeChoser.currentLabels; + if (($scope.accountingBehaviour != null) && labels[$scope.accountingBehaviour]) { + needPrefix = !$scope.endDate || ($scope.endDate === moment().format('YYYY-MM-DD')); + label = labels[$scope.accountingBehaviour]; + prefix = labels[$scope.accountingBehaviour] + '.prefix'; + return $translate([prefix, label]).then(function(translations) { + return $scope.currentLabel = needPrefix ? translations[prefix] + " " + translations[label] : translations[label]; }); - inputData = { - title: $translate.instant('impac.widget.sales_margin.gross_margin'), - labels: dates, - values: values - }; - all_values_are_positive = true; - angular.forEach(values, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); + } else { + return $translate(labels["default"]).then(function(label) { + return $scope.currentLabel = label; }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: false - }; - chartData = ChartFormatterSvc.lineChart([inputData], options); - return $scope.drawTrigger.notify(chartData); } }; - return $scope.widgetDeferred.resolve(settingsPromises); + setting = {}; + setting.key = "hist-mode"; + setting.isInitialized = false; + setting.initialize = function() { + return $timeout(function() { + var mode; + if ((w.metadata != null) && (w.metadata.hist_parameters != null) && (mode = w.metadata.hist_parameters.mode)) { + w.isHistoryMode = mode === 'history' ? true : false; + } + buildCurrentLabel(); + $scope.forwardParams.histParams = w.metadata && w.metadata.hist_parameters; + setting.isInitialized = true; + return $scope; + }); + }; + setting.toMetadata = function() { + var mode; + mode = w.isHistoryMode ? 'history' : 'current'; + return { + hist_parameters: { + mode: mode + } + }; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesMargin', function() { + module.directive('settingHistMode', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetSalesMarginCtrl' + scope: { + parentWidget: '=', + deferred: '=', + onToggle: '&', + accountingBehaviour: '@?', + endDate: '=?' + }, + template: $templateCache.get('widgets-settings/hist-mode.tmpl.html'), + controller: 'SettingHistModeCtrl' }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-net-sales', []); + module = angular.module('impac.components.widgets-settings.limit-entries', []); - module.controller('WidgetSalesNetSalesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramSelector1Deferred = $q.defer(); - $scope.paramSelector2Deferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelector1Deferred.promise, $scope.paramSelector2Deferred.promise]; - $translate(['impac.widget.sales_net_sales.total_amount', 'impac.widget.sales_net_sales.average_amount', 'impac.widget.sales_net_sales.volume']).then(function(translations) { - $scope.displayOptions = [ - { - label: translations['impac.widget.sales_net_sales.total_amount'], - value: 'total' - }, { - label: translations['impac.widget.sales_net_sales.average_amount'], - value: 'average' - }, { - label: translations['impac.widget.sales_net_sales.volume'], - value: 'trans_count' - } - ]; - return $scope.displayType = angular.copy(_.find($scope.displayOptions, function(o) { - return w.metadata && o.value === w.metadata.display_type; - }) || $scope.displayOptions[0]); - }); - $translate(['impac.widget.sales_net_sales.tmpl.last_hours', 'impac.widget.sales_net_sales.tmpl.last_days']).then(function(translations) { - var daysTmpl, hoursTmpl; - hoursTmpl = translations['impac.widget.sales_net_sales.tmpl.last_hours']; - daysTmpl = translations['impac.widget.sales_net_sales.tmpl.last_days']; - $scope.timeRangeOptions = [ - { - label: hoursTmpl.replace(':hours:', 24), - value: '-1d' - }, { - label: daysTmpl.replace(':days:', 5), - value: '-5d' - }, { - label: daysTmpl.replace(':days:', 7), - value: '-7d' - }, { - label: daysTmpl.replace(':days:', 30), - value: '-30d' - }, { - label: daysTmpl.replace(':days:', 45), - value: '-45d' - }, { - label: daysTmpl.replace(':days:', 60), - value: '-60d' - }, { - label: daysTmpl.replace(':days:', 90), - value: '-90d' - } - ]; - return $scope.timeRange = angular.copy(_.find($scope.timeRangeOptions, function(o) { - return w.metadata && o.value === w.metadata.time_range; - }) || $scope.timeRangeOptions[6]); - }); - w.initContext = function() { - return $scope.isDataFound = (w.content != null) && (w.content.sales != null) && w.content.sales.length > 0 && (w.content.sales[0].total != null); - }; - $scope.getCurrency = function() { - if ($scope.isDataFound) { - return w.content.currency; - } - }; - $scope.getValue = function(valueType) { - if ((w.content != null) && w.content[valueType]) { - switch ($scope.displayType.value) { - case 'total': - return $filter('mnoCurrency')(w.content[valueType][0].total, $scope.getCurrency(), false); - case 'average': - return $filter('mnoCurrency')(w.content[valueType][0].avg, $scope.getCurrency(), false); - case 'trans_count': - return w.content[valueType][0].trans_count; - } - } else { - return 0; - } + module.controller('SettingLimitEntriesCtrl', ["$scope", function($scope) { + var setting; + setting = {}; + setting.key = 'limit-entries'; + setting.initialize = function() { + return true; }; - $scope.sign = function(type) { - if ($scope.displayType.value === 'average') { - return { - minus: '~', - equal: '=>' - }[type]; - } else if ($scope.displayType.value === 'trans_count') { - return { - minus: '+', - equal: '=' - }[type]; - } else { - return { - minus: '-', - equal: '=' - }[type]; - } + setting.toMetadata = function() { + return { + limit_entries: $scope.selected + }; }; - return $scope.widgetDeferred.resolve(settingsPromises); + $scope.parentWidget.settings.push(setting); + return $scope.deferred.resolve(setting); }]); - module.directive('widgetSalesNetSales', function() { + module.directive('settingLimitEntries', ["$templateCache", "ImpacWidgetsSvc", function($templateCache, ImpacWidgetsSvc) { return { restrict: 'A', - controller: 'WidgetSalesNetSalesCtrl' + scope: { + parentWidget: '=', + deferred: '=', + selected: '=', + max: '=?', + options: '=?', + entriesLabel: '=?' + }, + link: function(scope, elements, attrs) { + if (!((scope.options != null) && scope.options.length > 0)) { + scope.options = [5, 15, 50]; + } + scope.selectOption = function(anOption) { + scope.selected = anOption; + return ImpacWidgetsSvc.updateWidgetSettings(scope.parentWidget, false); + }; + return scope.isOptionValid = function(anOption) { + return (scope.max == null) || anOption < scope.max; + }; + }, + controller: 'SettingLimitEntriesCtrl', + template: $templateCache.get('widgets-settings/limit-entries.tmpl.html') }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-new-vs-existing-customers', []); + module = angular.module('impac.components.widgets-settings.offsets', []); - module.controller('WidgetSalesNewVsExistingCustomersCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var daysTmpl, hoursTmpl, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timeRangeParamSelectorDeferred = $q.defer(); - $scope.displayTypeParamSelectorDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timeRangeParamSelectorDeferred.promise, $scope.displayTypeParamSelectorDeferred.promise, $scope.chartDeferred.promise]; - $scope.displayOptions = [ - { - label: $translate.instant('impac.widget.sales_new_vs_existing.customers'), - value: 'customers_count' - }, { - label: $translate.instant('impac.widget.sales_new_vs_existing.total_sales'), - value: 'total_sales' - }, { - label: $translate.instant('impac.widget.sales_new_vs_existing.transactions'), - value: 'transactions_count' - } - ]; - $scope.displayType = angular.copy(_.find($scope.displayOptions, function(o) { - return w.metadata && (o.value === w.metadata.display_type); - }) || $scope.displayOptions[0]); - hoursTmpl = $translate.instant('impac.widget.sales_new_vs_existing.tmpl.last_hours'); - daysTmpl = $translate.instant('impac.widget.sales_new_vs_existing.tmpl.last_days'); - $scope.timeRangeOptions = [ - { - label: hoursTmpl.replace(':hours:', 24), - value: '-1d' - }, { - label: daysTmpl.replace(':days:', 5), - value: '-5d' - }, { - label: daysTmpl.replace(':days:', 7), - value: '-7d' - }, { - label: daysTmpl.replace(':days:', 30), - value: '-30d' - }, { - label: daysTmpl.replace(':days:', 45), - value: '-45d' - }, { - label: daysTmpl.replace(':days:', 60), - value: '-60d' - }, { - label: daysTmpl.replace(':days:', 90), - value: '-90d' - } - ]; - $scope.timeRange = angular.copy(_.find($scope.timeRangeOptions, function(o) { - return w.metadata && (o.value === w.metadata.time_range); - }) || $scope.timeRangeOptions[6]); - w.initContext = function() { - return $scope.isDataFound = (w.content != null) && (w.content.summary != null) && (w.content.summary.customers_count != null) && (w.content.summary.customers_count.total != null) && w.content.summary.customers_count.total > 0; - }; - $scope.displayTypeOnClick = function() { - $scope.updateSettings(false); - return w.format(); - }; - $scope.getValue = function(key) { - var result, returnType; - if ($scope.isDataFound) { - returnType = $scope.displayType.value; - result = w.content.summary[returnType][key]; - switch (returnType) { - case 'total_sales': - return $filter('mnoCurrency')(result, w.metadata.currency); - default: - return result; - } - } - }; - $scope.shouldDisplayCurrency = function() { - return $scope.isDataFound && $scope.displayType.value.indexOf('count') < 0; - }; - $scope.calculatePercentage = function(sliceType) { - var values; - values = { - "new": Math.abs(w.content.summary[$scope.displayType.value]["new"]), - existing: Math.abs(w.content.summary[$scope.displayType.value].existing) - }; - values.totals = values["new"] + values.existing; - return Math.round(values[sliceType] / values.totals * 100); - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = [ - { - label: "EXISTING " + ($scope.calculatePercentage('existing')) + "%", - value: w.content.summary[$scope.displayType.value].existing - }, { - label: "NEW " + ($scope.calculatePercentage('new')) + "%", - value: w.content.summary[$scope.displayType.value]["new"] + module.directive('settingOffsets', ["$templateCache", "ImpacUtilities", function($templateCache, ImpacUtilities) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + offsetsKey: '@', + initialOffsets: '=', + currency: '=', + intervalsCount: '=', + period: '=', + showIntervalsMult: '=', + textPlaceholder: '@?' + }, + template: $templateCache.get('widgets-settings/offsets.tmpl.html'), + link: function(scope) { + var authorized_regex, computedFormula, placeholder, setting, w; + w = scope.parentWidget; + authorized_regex = new RegExp("^(\\{|\\d|\\}|\\/|\\+|-|\\*|\\(|\\)|\\s|\\.)*$"); + setting = { + key: "offsets-" + scope.offsetsKey + }; + setting.initialize = function() { + var i, len, offsetValue, ref; + scope.offsets = []; + ref = scope.initialOffsets || []; + for (i = 0, len = ref.length; i < len; i++) { + offsetValue = ref[i]; + scope.offsets.push(offsetValue); } - ]; - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 + scope.offsetFormula = ""; + scope.periodWord = ImpacUtilities.getPeriodWord(scope.period); + return scope.placeholder = placeholder(scope.period || 'MONTHLY'); }; - if (!$scope.shouldDisplayCurrency()) { - angular.merge(pieOptions, { - currency: 'hide' - }); + setting.toMetadata = function() { + var metadata; + metadata = { + offset: {} + }; + metadata.offset[scope.offsetsKey] = scope.offsets; + return metadata; + }; + scope.addOffset = function() { + var result; + result = computedFormula(); + if (result) { + scope.offsets.push(result); + } + return scope.offsetFormula = ""; + }; + scope.removeOffset = function(offsetIndex) { + return scope.offsets.splice(offsetIndex, 1); + }; + scope.addOffsetOnEnter = function(event) { + if (event.keyCode === 13) { + return scope.addOffset(); + } + }; + placeholder = function(inputPeriod) { + var period; + if (scope.textPlaceholder != null) { + return scope.textPlaceholder; + } + period = inputPeriod.charAt(0).toUpperCase() + inputPeriod.slice(1).toLowerCase(); + return period + " adjustment"; + }; + computedFormula = function() { + if (scope.offsetFormula.match(authorized_regex)) { + return eval(scope.offsetFormula); + } + }; + if (w) { + w.settings.push(setting); } - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions, true); - return $scope.drawTrigger.notify(chartData); + return scope.deferred.resolve(setting); } }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesNewVsExistingCustomers', function() { - return { - restrict: 'A', - controller: 'WidgetSalesNewVsExistingCustomersCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-number-of-leads', []); + module = angular.module('impac.components.widgets-settings.organizations', []); - module.controller('WidgetSalesNumberOfLeadsCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var getVariation, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramSelectorDeferred.promise]; - w.initContext = function() { - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.number_of_leads)) { - return $translate(['impac.widget.settings.time_period.period.year', 'impac.widget.settings.time_period.period.quarter', 'impac.widget.settings.time_period.period.month', 'impac.widget.settings.time_period.period.week', 'impac.widget.settings.time_period.period.day']).then(function(translations) { - $scope.periodOptions = [ - { - label: translations['impac.widget.settings.time_period.period.year'], - value: 'YEARLY' - }, { - label: translations['impac.widget.settings.time_period.period.quarter'], - value: 'QUARTERLY' - }, { - label: translations['impac.widget.settings.time_period.period.month'], - value: 'monthly' - }, { - label: translations['impac.widget.settings.time_period.period.week'], - value: 'WEEKLY' - }, { - label: translations['impac.widget.settings.time_period.period.day'], - value: 'DAILY' - } - ]; - return $scope.period = angular.copy(_.find($scope.periodOptions, function(o) { - return o.value === w.metadata.period; - }) || $scope.periodOptions[3]); - }); - } + module.controller('SettingOrganizationsCtrl', ["$scope", "$log", "ImpacDashboardsSvc", "ImpacMainSvc", function($scope, $log, ImpacDashboardsSvc, ImpacMainSvc) { + var resetSelectedOrgs, setting, w; + w = $scope.parentWidget; + w.selectedOrganizations = {}; + $scope.mode || ($scope.mode = 'multiple'); + $scope.multiOrgMode = function() { + return $scope.mode === 'multiple'; }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; - } + $scope.singleOrgMode = function() { + return $scope.mode === 'single'; }; - $scope.formatNumberOfLeads = function(carac) { - var color, formattedNominal, formattedVariation, n_hash, nominal, variation; - formattedNominal = 0; - formattedVariation = "- %"; - if (!$scope.isDataFound) { - return { - nominal: formattedNominal, - variation: formattedVariation, - color: '' - }; - } - n_hash = angular.copy(w.content.number_of_leads); - nominal = 0; - color = ''; - if (carac === "new" && n_hash.total && n_hash.total.length === 2) { - nominal = n_hash.total[1] - n_hash.total[0]; - variation = getVariation(n_hash.total); - if (variation > 0) { - color = 'green'; - } else if (variation < 0) { - color = 'red'; + resetSelectedOrgs = function() { + return w.selectedOrganizations = _.mapValues(w.selectedOrganizations, function() { + return false; + }); + }; + $scope.isOrganizationSelected = function(orgUid) { + return !!w.selectedOrganizations[orgUid]; + }; + $scope.toggleSelectOrganization = function(orgUid) { + if ($scope.multiOrgMode()) { + w.selectedOrganizations[orgUid] = !w.selectedOrganizations[orgUid]; + if (angular.isDefined($scope.onSelect)) { + return $scope.onSelect({ + orgs: w.selectedOrganizations + }); } - } else if (carac === "converted" && n_hash.converted && n_hash.converted.length === 2) { - nominal = n_hash.converted[1]; - variation = getVariation(n_hash.converted); - if (variation > 0) { - color = 'green'; - } else if (variation < 0) { - color = 'red'; + } else if ($scope.singleOrgMode()) { + resetSelectedOrgs(); + return w.selectedOrganizations[orgUid] = true; + } + }; + setting = {}; + setting.key = "organizations"; + setting.isInitialized = false; + setting.initialize = function() { + return ImpacDashboardsSvc.load().then(function(config) { + var currentDashboard, currentOrganization, i, len, org, ref, widgetOrgIds; + currentDashboard = config.currentDashboard; + $scope.dashboardOrganizations = _.sortBy(currentDashboard.data_sources, function(org) { + return org.label.toLowerCase(); + }); + if (!((w.metadata != null) && (w.metadata.organization_ids != null))) { + return; } - } else if (carac === "lost" && n_hash.lost && n_hash.lost.length === 2) { - nominal = n_hash.lost[1]; - variation = getVariation(n_hash.lost); - if (variation < 0) { - color = 'green'; - } else if (variation > 0) { - color = 'red'; + widgetOrgIds = w.metadata.organization_ids; + if ($scope.singleOrgMode()) { + resetSelectedOrgs(); + if (widgetOrgIds.length > 1) { + currentOrganization = ImpacMainSvc.config.currentOrganization; + w.selectedOrganizations[currentOrganization.uid] = true; + } else { + w.selectedOrganizations[widgetOrgIds[0]] = true; + } + } else if ($scope.multiOrgMode()) { + ref = $scope.dashboardOrganizations; + for (i = 0, len = ref.length; i < len; i++) { + org = ref[i]; + w.selectedOrganizations[org.uid] = _.contains(widgetOrgIds, org.uid); + } } - } else { - return { - nominal: formattedNominal, - variation: formattedVariation, - color: color - }; - } - if (nominal > 0) { - formattedNominal = "+" + nominal; - } else if (nominal < 0) { - formattedNominal = nominal; - } - if (variation && variation > 0) { - formattedVariation = "+" + (variation.toFixed(0)) + "%"; - } else if (variation && variation < 0) { - formattedVariation = (variation.toFixed(0)) + "%"; + return setting.isInitialized = true; + }); + }; + setting.toMetadata = function() { + var newOrganizations; + newOrganizations = _.compact(_.map(w.selectedOrganizations, function(checked, uid) { + if (checked) { + return uid; + } + })); + if (_.isEmpty(newOrganizations)) { + newOrganizations = [_.first($scope.dashboardOrganizations).uid]; } return { - nominal: formattedNominal, - variation: formattedVariation, - color: color + organization_ids: newOrganizations }; }; - getVariation = function(v_array) { - var variation; - if (v_array[0] !== 0) { - return variation = 100 * ((v_array[1] / v_array[0]) - 1); - } else { - return variation = "- "; - } - }; - return $scope.widgetDeferred.resolve(settingsPromises); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesNumberOfLeads', function() { + module.directive('settingOrganizations', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetSalesNumberOfLeadsCtrl' + scope: { + parentWidget: '=', + mode: '@?', + deferred: '=', + onSelect: '&?' + }, + template: $templateCache.get('widgets-settings/organizations.tmpl.html'), + controller: 'SettingOrganizationsCtrl' }; - }); + }]); }).call(this); (function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + var module; - module = angular.module('impac.components.widgets.sales-opportunities-funnel', []); + module = angular.module('impac.components.widgets-settings.param-selector', []); - module.controller('WidgetSalesOpportunitiesFunnelCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $q, ChartFormatterSvc, $filter, ImpacWidgetsSvc, ImpacDashboardsSvc) { - var getFilteredTotal, getOrderedAssigneeIds, hasOneOpportunity, selectedStatusSetting, settingsPromises, sortData, sortOppsBy, w; - w = $scope.widget; - $scope.selectedOpportunities = []; - $scope.collapsed = []; - $scope.orgDeferred = $q.defer(); - $scope.paramsPickerDeferred1 = $q.defer(); - $scope.paramsPickerDeferred2 = $q.defer(); - $scope.widthDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramsPickerDeferred1.promise, $scope.paramsPickerDeferred2.promise, $scope.widthDeferred.promise]; - $scope.ascending = true; - $scope.sortedColumn = 'group'; - hasOneOpportunity = function(oppsPerSalesStage) { - var reducedHash, total, totalsArray; - reducedHash = _.mapValues(oppsPerSalesStage, function(statusHash) { - return statusHash.total; - }); - totalsArray = _.compact(_.values(reducedHash)); - total = _.reduce(totalsArray, function(total, n) { - if (total == null) { - total = 0; - } - return total + n; - }); - return (total != null) && total > 0; - }; - getFilteredTotal = function(opps, assignees) { - return _.reduce(opps, function(total, opp) { - var ref; - if (total == null) { - total = 0; - } - if (ref = opp.assignee_id, indexOf.call(assignees, ref) >= 0) { - return total + 1; - } else { - return total; - } - }, 0); + module.controller('SettingParamSelectorCtrl', ["$scope", "ImpacWidgetsSvc", function($scope, ImpacWidgetsSvc) { + var setting, w; + $scope.showOptions = false; + $scope.toggleShowOptions = function() { + return $scope.showOptions = !$scope.showOptions; }; - getOrderedAssigneeIds = function(assigneesOptions) { - return _.map(_.filter(assigneesOptions, function(assigneeOption) { - return assigneeOption.selected; - }), 'value'); + $scope.onInit = function() { + $scope.selectedOption = {}; + return angular.extend($scope.selectedOption, $scope.selected); }; - w.initContext = function() { - var assignees_selection, dhb, sales_stage_selection; - dhb = ImpacDashboardsSvc.getCurrentDashboard(); - sales_stage_selection = w.metadata.sales_stage_selection || dhb.metadata.sales_stage_selection || { - values: [] - }; - assignees_selection = w.metadata.assignees_selection || dhb.metadata.assignees_selection || { - values: [] - }; - if ($scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.opps_per_sales_stage) && hasOneOpportunity(w.content.opps_per_sales_stage)) { - _.remove(sales_stage_selection.values, function(status) { - return indexOf.call(_.keys(w.content.opps_per_sales_stage), status) < 0; - }); - $scope.hasReach = true; - $scope.statusOptions = []; - angular.forEach(w.content.opps_per_sales_stage, function(value, status) { - var isSelected; - isSelected = _.isEmpty(sales_stage_selection.values) || (indexOf.call(sales_stage_selection.values, status) >= 0); - return $scope.statusOptions.push({ - label: status, - selected: isSelected - }); - }); - if ($scope.statusOptions[0] && !_.any($scope.statusOptions, 'selected') && !_.isEmpty(w.content.opps_per_sales_stage)) { - $scope.statusOptions[0].selected = true; - } - $scope.assigneesOptions = []; - angular.forEach(w.content.assignees, function(obj, index) { - var isSelected, ref; - isSelected = _.isEmpty(assignees_selection.values) || (ref = obj.id, indexOf.call(assignees_selection.values, ref) >= 0); - return $scope.assigneesOptions.push({ - label: obj.name, - selected: isSelected, - value: obj.id - }); - }); - if ($scope.assigneesOptions[0] && !_.any($scope.assigneesOptions, 'selected') && !_.isEmpty(w.content.assignees)) { - return $scope.assigneesOptions[0].selected = true; + $scope.selectOption = function(anOption) { + if (anOption.value !== $scope.selected.value) { + angular.extend($scope.selected, anOption); + ImpacWidgetsSvc.updateWidgetSettings($scope.parentWidget, !$scope.noReload); + if (angular.isDefined($scope.onSelect)) { + $scope.onSelect(); } } + return $scope.toggleShowOptions(); }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; - } - }; - $scope.getImpacColor = function(index) { - return ChartFormatterSvc.getColor(index); + $scope.getTruncateValue = function() { + return parseInt($scope.truncateNo) || 20; }; - $scope.toggleSelectStatus = function(aStatus) { - if ($scope.selectedStatus && $scope.selectedStatus === aStatus) { - $scope.selectedStatus = null; - } else { - $scope.selectedStatus = aStatus; - } - $scope.updateRightView(); - if (!w.isExpanded() && $scope.selectedStatus) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); + w = $scope.parentWidget; + setting = {}; + setting.key = "param-selector"; + setting.isInitialized = false; + setting.initialize = function() { + if (w.content != null) { + return setting.isInitialized = true; } }; - $scope.isSelected = function(aStatus) { - return $scope.selectedStatus && aStatus === $scope.selectedStatus; - }; - $scope.toggleCollapsed = function(element) { - if ((element != null) && (element.assigneeName != null)) { - if (_.find($scope.collapsed, (function(name) { - return element.assigneeName === name; - }))) { - return $scope.collapsed = _.reject($scope.collapsed, function(name) { - return name === element.assigneeName; - }); - } else { - return $scope.collapsed.push(element.assigneeName); - } + setting.toMetadata = function() { + var param; + param = {}; + if (!_.isEmpty($scope.selected)) { + param[$scope.param] = $scope.selected.value; } + return param; + }; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingParamSelector', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + param: '@', + options: '=', + selected: '=', + truncateNo: '@', + onSelect: '&' + }, + link: function(scope, elements, attrs) { + scope.noReload = typeof attrs.noReload !== 'undefined'; + return scope.truncateNo = attrs.truncateNo || 20; + }, + template: function(elements, attrs) { + return $templateCache.get(attrs.classic ? 'widgets-settings/param-selector-classic.tmpl.html' : 'widgets-settings/param-selector.tmpl.html'); + }, + controller: 'SettingParamSelectorCtrl' }; - $scope.isCollapsed = function(element) { - if ((element != null) && (element.assigneeName != null)) { - if (_.find($scope.collapsed, (function(name) { - return element.assigneeName === name; - }))) { - return true; - } else { - return false; - } + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.params-picker', []); + + module.controller('SettingParamsPickerCtrl', ["$scope", function($scope) { + var setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "params-picker"; + setting.isInitialized = false; + setting.initialize = function() { + $scope.sortableOptions = { + 'ui-floating': true, + tolerance: 'pointer' + }; + $scope.applyToDashboard = w.metadata[$scope.param] && w.metadata[$scope.param].reach === 'dashboard'; + $scope.toggleReach = function() { + return setting.reach = $scope.applyToDashboard ? 'dashboard' : 'widget'; + }; + $scope.toggleReach(); + if (_.isEmpty($scope.options)) { + return setting.isInitialized = true; } }; - $scope.getSelectedOpportunities = function() { - var assignees, filteredOpps, oppGroups, sortedOppGroups; - if ($scope.isDataFound && $scope.selectedStatus && w.content.opps_per_sales_stage[$scope.selectedStatus]) { - assignees = getOrderedAssigneeIds($scope.assigneesOptions); - filteredOpps = _.filter(w.content.opps_per_sales_stage[$scope.selectedStatus].opps, function(opportunity) { - var ref; - return ref = opportunity.assignee_id, indexOf.call(assignees, ref) >= 0; - }); - oppGroups = _.groupBy(filteredOpps, 'assignee_id'); - sortedOppGroups = []; - angular.forEach($scope.assigneesOptions, function(assigneeOption) { - var assigneeId; - assigneeId = assigneeOption.value; - if (oppGroups[assigneeId]) { - return sortedOppGroups.push({ - assigneeName: assigneeOption.label, - opps: oppGroups[assigneeId] - }); + setting.toMetadata = function() { + var param; + param = {}; + param[$scope.param] = { + values: _.compact(_.map($scope.options, function(statusOption) { + if (statusOption.selected) { + return statusOption.value || statusOption.label; } - }); - return sortedOppGroups; - } else { - return []; - } + })), + reach: setting.reach + }; + return param; }; - $scope.getOppDetails = function(anOpp) { - var oppDetails; - oppDetails = []; - if (anOpp.amount) { - oppDetails.push($filter('mnoCurrency')(anOpp.amount.amount, anOpp.amount.currency || 'AUD')); - } - if (anOpp.probability) { - oppDetails.push("prob. " + anOpp.probability + "%"); - } - return oppDetails.join(' / '); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingParamsPicker', ["$templateCache", "$translate", function($templateCache, $translate) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + param: '@', + options: '=', + hasReach: '=', + description: '@' + }, + link: function(scope, elements, attrs) { + var paramText; + paramText = $translate.instant('impac.widget.settings.params-picker.' + scope.param); + scope.formattedParam = _.includes(paramText, 'impac.widget.settings.params-picker') ? scope.param.replace(/_/g, ' ') : paramText; + if (scope.description == null) { + return scope.description = $translate.instant('impac.widget.settings.params-picker.description'); + } + }, + template: $templateCache.get('widgets-settings/params-picker.tmpl.html'), + controller: 'SettingParamsPickerCtrl' }; - $scope.getTotal = function(oppsGroup) { - var currency, total; - if (!(oppsGroup.length > 0)) { - return ""; - } - total = _.sum(oppsGroup, function(o) { - var amount, proba; - amount = o.amount.amount || 0.0; - proba = o.probability || 0.0; - return amount * (proba / 100); + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.params-checkboxes', []); + + module.controller('SettingParamsCheckboxesCtrl', ["$scope", function($scope) { + var setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "params-checkboxes"; + setting.initialize = function() {}; + setting.toMetadata = function() { + var param; + param = {}; + param[$scope.param] = _.map($scope.options, function(opt) { + return { + id: opt.id, + value: opt.value + }; }); - currency = oppsGroup[0].amount.currency || 'AUD'; - return $filter('mnoCurrency')(total, currency); + return param; }; - sortOppsBy = function(getElem) { - return angular.forEach($scope.selectedOpportunities, function(sElem) { - if (sElem.opps) { - return sElem.opps.sort(function(a, b) { - var res; - res = getElem(a) > getElem(b) ? 1 : getElem(a) < getElem(b) ? -1 : 0; - if (!$scope.ascending) { - res *= -1; + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); + }]); + + module.directive('settingParamsCheckboxes', ["$templateCache", function($templateCache) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + param: '@', + options: '=' + }, + template: $templateCache.get('widgets-settings/params-checkboxes.tmpl.html'), + controller: 'SettingParamsCheckboxesCtrl' + }; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.tag-filter', ['ngTagsInput']); + + module.directive('settingTagFilter', ["$templateCache", "$timeout", function($templateCache, $timeout) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=' + }, + template: $templateCache.get('widgets-settings/tag-filter.tmpl.html'), + link: function(scope) { + var asciiParseTag, filterToSettingTags, initiateAutoComplete, loadRules, setting, w; + w = scope.parentWidget; + setting = {}; + setting.key = "tag-filter"; + scope.settingsTags = []; + setting.initialize = function() { + return $timeout(function() { + loadRules(); + initiateAutoComplete(); + return true; + }); + }; + setting.toMetadata = function() { + var filterQuery, filterQueryRules; + filterQueryRules = []; + filterQuery = { + condition: 'OR', + rules: filterQueryRules + }; + angular.forEach(scope.settingsTags, function(settingsTag) { + var filterQueryCondition; + filterQueryCondition = { + condition: 'AND', + rules: [] + }; + angular.forEach(settingsTag.tags, function(filterItem) { + var ruleTag; + ruleTag = asciiParseTag(filterItem, true); + return filterQueryCondition.rules.push(ruleTag); + }); + if (settingsTag.tags.length !== 0) { + return filterQueryRules.push(filterQueryCondition); + } + }); + if (filterQuery.rules.length === 0) { + filterQuery = {}; + } + return { + filter_query: filterQuery + }; + }; + filterToSettingTags = function(filterQuery) { + var settingsTags; + if (_.isEmpty(filterQuery)) { + return; + } + settingsTags = []; + angular.forEach(filterQuery.rules, function(filterQueryRule) { + var settingRule; + settingRule = { + operator: 'OR', + tags: [] + }; + angular.forEach(filterQueryRule.rules, function(rule) { + var ruletag, tagtext; + rule = asciiParseTag(rule); + tagtext = _.compact([rule.name, rule.value]).join(":"); + ruletag = { + value: rule.value, + text: tagtext + }; + if (rule.name != null) { + ruletag.name = rule.name; + } + return settingRule.tags.push(ruletag); + }); + return settingsTags.push(settingRule); + }); + return settingsTags; + }; + loadRules = function() { + if (_.isEmpty(w.metadata.filter_query)) { + return; + } + return scope.settingsTags = filterToSettingTags(w.metadata.filter_query); + }; + initiateAutoComplete = function() { + var autotags, org, tag_hash, tags; + tags = w.content.available_tags || []; + autotags = []; + for (org in tags) { + tag_hash = tags[org]; + angular.forEach(tag_hash.tag_references, function(tag_ref) { + tag_ref = asciiParseTag(tag_ref); + return angular.forEach(tag_ref.tag_reference_values, function(tag) { + var ruletag, tagtext; + tag = asciiParseTag(tag); + tagtext = _.compact([tag_ref.name, tag.value]).join(":"); + ruletag = { + text: tagtext, + value: tag.value + }; + if (tag_ref.name != null) { + ruletag.name = tag_ref.name; + } + return autotags.push(ruletag); + }); + }); + } + return scope.loadTagList = function(query) { + return _.filter(autotags, function(e) { + return e.text.toLowerCase().indexOf(query.toLowerCase()) > -1; + }); + }; + }; + asciiParseTag = function(rule, encode) { + var meth; + if (encode == null) { + encode = false; + } + meth = encode ? encodeURIComponent : decodeURIComponent; + return _.inject(rule, function(res, v, k) { + if (_.isString(v)) { + return (res[k] = meth(v)) && res; + } else { + return (res[k] = v) && res; } - return res; + }, {}); + }; + scope.addRule = function() { + return scope.settingsTags.push({ + 'operator': 'OR', + 'tags': [] }); - } - }); - }; - sortData = function() { - if ($scope.sortedColumn === 'group') { - return sortOppsBy(function(el) { - return el.name; - }); - } else if ($scope.sortedColumn === 'total') { - return sortOppsBy(function(el) { - return el.amount.amount; - }); - } - }; - $scope.sort = function(col) { - if ($scope.sortedColumn === col) { - $scope.ascending = !$scope.ascending; - } else { - $scope.ascending = true; - $scope.sortedColumn = col; - } - return sortData(); - }; - $scope.updateRightView = function() { - $scope.selectedOpportunities = $scope.getSelectedOpportunities(); - $scope.collapsed = []; - return sortData(); - }; - selectedStatusSetting = {}; - selectedStatusSetting.initialized = false; - selectedStatusSetting.initialize = function() { - if (!_.isEmpty(w.content) && angular.isDefined(w.content.opps_per_sales_stage[w.metadata.selected_status])) { - $scope.selectedStatus = w.metadata.selected_status; + }; + scope.delRule = function(index) { + return scope.settingsTags.splice(index, 1); + }; + w.settings.push(setting); + return scope.deferred.resolve(setting); } - selectedStatusSetting.initialized = true; - return $scope.updateRightView(); - }; - selectedStatusSetting.toMetadata = function() { - return { - selected_status: $scope.selectedStatus - }; }; - w.settings.push(selectedStatusSetting); - w.format = function() { - var assignees, max; - if ($scope.isDataFound) { - max = 0; - assignees = getOrderedAssigneeIds($scope.assigneesOptions); - angular.forEach($scope.statusOptions, function(statusOption) { - var value; - value = getFilteredTotal(w.content.opps_per_sales_stage[statusOption.label].opps, assignees); - if (statusOption.selected && angular.isDefined(value) && value > max) { - return max = value; - } - }); - if (max > 0) { - return $scope.funnel = _.compact(_.map($scope.statusOptions, function(statusOption, index) { - var coloredWidth, statusWidth, value; - value = getFilteredTotal(w.content.opps_per_sales_stage[statusOption.label].opps, assignees); - coloredWidth = (100 * (value / max) - 10).toFixed(); - if (coloredWidth < 8) { - statusWidth = 92; - } else { - statusWidth = 100 - coloredWidth; + }]); + +}).call(this); + +(function() { + var module; + + module = angular.module('impac.components.widgets-settings.time-period', []); + + module.directive('settingTimePeriod', ["$templateCache", "$q", "$log", "$timeout", "$filter", "ImpacTheming", "$translate", function($templateCache, $q, $log, $timeout, $filter, ImpacTheming, $translate) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + histParams: '=?', + hideChartInterval: '=?', + applyChangesCallback: '&?' + }, + template: $templateCache.get('widgets-settings/time-period.tmpl.html'), + link: function(scope) { + var getPeriod, getSetting, getUsedSettingKey, initPeriod, initUsedSetting, settingsPromises, updateFromDate, updateTimeRangePeriod, w; + w = scope.parentWidget; + scope.timePeriodSetting = { + key: "time-period", + settings: [], + isEditMode: true + }; + scope.timeSliderDeferred = $q.defer(); + scope.datesPickerDeferred = $q.defer(); + scope.timePresetsDeferred = $q.defer(); + settingsPromises = [scope.timeSliderDeferred.promise, scope.datesPickerDeferred.promise, scope.timePresetsDeferred.promise]; + scope.resetPreset = $q.defer(); + $translate(["impac.widget.settings.time_period.period.daily", "impac.widget.settings.time_period.period.weekly", "impac.widget.settings.time_period.period.monthly", "impac.widget.settings.time_period.period.quarterly", "impac.widget.settings.time_period.period.yearly", "impac.widget.settings.time_period.period.days", "impac.widget.settings.time_period.period.weeks", "impac.widget.settings.time_period.period.months", "impac.widget.settings.time_period.period.quarters", "impac.widget.settings.time_period.period.years"]).then(function(translations) { + return scope.periods = [ + { + label: translations["impac.widget.settings.time_period.period.daily"], + plural: "days", + value: "DAILY" + }, { + label: translations["impac.widget.settings.time_period.period.weekly"], + plural: "weeks", + value: "WEEKLY" + }, { + label: translations["impac.widget.settings.time_period.period.monthly"], + plural: "months", + value: "MONTHLY" + }, { + label: translations["impac.widget.settings.time_period.period.quarterly"], + plural: "quarters", + value: "QUARTERLY" + }, { + label: translations["impac.widget.settings.time_period.period.yearly"], + plural: "years", + value: "YEARLY" } - if (statusOption.selected && angular.isDefined(value) && value > 0) { - return { - status: statusOption.label, - number: value, - coloredWidth: { - width: coloredWidth + "%" - }, - statusWidth: { - width: statusWidth + "%" - } - }; + ]; + }); + scope.maxNumberOfPeriods = 20; + if ((ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && !_.isEmpty(ImpacTheming.get().widgetSettings.timePeriod.presets)) { + scope.presets = angular.copy(ImpacTheming.get().widgetSettings.timePeriod.presets); + } + scope.applyPreset = function(histParams) { + initPeriod(histParams); + return initUsedSetting(histParams); + }; + scope.timePeriodSetting.initialize = function() { + return $timeout(function() { + initPeriod(); + getSetting('time-presets').initialize(); + return scope.showApplyButton = angular.isDefined(scope.applyChangesCallback); + }); + }; + scope.timePeriodSetting.toMetadata = function() { + var histParams, metadata, sourceSetting; + sourceSetting = getSetting(getUsedSettingKey()); + if (sourceSetting != null) { + histParams = sourceSetting.toMetadata().hist_parameters; + } + histParams.period = getPeriod(); + if ((scope.histParams != null) && (scope.histParams.mode != null)) { + histParams.mode = scope.histParams.mode; + } + metadata = { + hist_parameters: histParams + }; + return metadata; + }; + scope.titleize = function(word) { + if (word !== "FYEARLY") { + return "" + (word.slice(0, 1).toUpperCase()) + (word.slice(1).toLowerCase()); + } else { + return "Yearly (financial)"; + } + }; + getPeriod = function() { + if (scope.timePeriodSetting.period != null) { + return scope.timePeriodSetting.period; + } else { + return initPeriod(); + } + }; + scope.isTimeSliderUsed = function() { + return getUsedSettingKey() === 'time-slider'; + }; + scope.isDatesPickerUsed = function() { + return getUsedSettingKey() === 'dates-picker'; + }; + getUsedSettingKey = function() { + if (scope.usedSetting != null) { + return scope.usedSetting; + } else { + return initUsedSetting(); + } + }; + getSetting = function(key) { + return _.find(scope.timePeriodSetting.settings, function(set) { + return set.key === key; + }); + }; + initPeriod = function(histParams) { + if (histParams == null) { + histParams = null; + } + if (histParams == null) { + histParams = scope.histParams; + } + if ((histParams != null) && (histParams.period != null) && _.find(scope.periods, function(period) { + return period.value === histParams.period; + })) { + scope.timePeriodSetting.period = angular.copy(histParams.period); + } else { + scope.timePeriodSetting.period = "MONTHLY"; + } + return scope.timePeriodSetting.period; + }; + initUsedSetting = function(histParams) { + var minDate, newLetter, pattern, tr; + if (histParams == null) { + histParams = null; + } + if (histParams == null) { + histParams = scope.histParams; + } + if ((histParams != null) && (histParams.from != null)) { + scope.usedSetting = 'dates-picker'; + scope.toDate = histParams.to; + minDate = scope.getMinDate(scope.toDate); + if (moment(histParams.from, "YYYY-MM-DD").isBefore(minDate)) { + scope.fromDate = minDate; + } else { + scope.fromDate = histParams.from; } - })); - } else { - return $scope.isDataFound = false; - } - } - }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesOpportunitiesFunnel', function() { - return { - restrict: 'A', - controller: 'WidgetSalesOpportunitiesFunnelCtrl' - }; - }); - -}).call(this); - -(function() { - var module, - indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - module = angular.module('impac.components.widgets.sales-performance', []); - - module.controller('WidgetSalesPerformanceCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "ImpacWidgetsSvc", function($scope, $q, $filter, ChartFormatterSvc, ImpacWidgetsSvc) { - var formatDate, getIdentifier, matchElementToSelectedElement, selectedElementsSetting, settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.paramsWinsPickerDeferred = $q.defer(); - $scope.paramsLostsPickerDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.paramsWinsPickerDeferred, $scope.paramsLostsPickerDeferred, $scope.timePeriodDeferred, $scope.widthDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - var foundElem, i, len, ref, sElemId; - $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.assignees); - if ($scope.isDataFound) { - if (!_.isEmpty(w.metadata.selectedElements)) { - $scope.selectedElements = []; - ref = w.metadata.selectedElements; - for (i = 0, len = ref.length; i < len; i++) { - sElemId = ref[i]; - foundElem = _.find(w.content.assignees, function(assignee) { - return getIdentifier(assignee) === sElemId; - }); - if (foundElem) { - $scope.selectedElements.push(foundElem); + scope.keepToday = histParams.keep_today; + getSetting('dates-picker').initialize(); + } else { + scope.usedSetting = 'time-slider'; + if ((histParams != null) && (histParams.time_range != null)) { + tr = histParams.time_range; + pattern = /([a-z])/; + newLetter = pattern.exec(tr)[1]; + scope.timePeriodSetting.period = angular.copy(_.find(scope.periods, function(p) { + return p.value.slice(0, 1).toLowerCase() === newLetter; + }).value); + scope.timePeriodSetting.timeRange = tr; } + getSetting('time-slider').initialize(); } - } - $scope.hasReach = true; - $scope.closedWonOptions = _.compact(_.map(w.content.sales_stages.won, function(stage) { - return { - label: stage, - selected: true - }; - })); - angular.forEach(w.content.sales_stages.all, function(stage) { - if (!(indexOf.call(w.content.sales_stages.won, stage) >= 0)) { - return $scope.closedWonOptions.push({ - label: stage, - selected: false - }); + return scope.usedSetting; + }; + scope.updateSettings = function() { + if (scope.usedSetting === 'time-slider') { + scope.resetPreset.notify('choose-period'); + } else if (scope.usedSetting === 'dates-picker') { + scope.resetPreset.notify('choose-dates'); } - }); - $scope.closedLostOptions = _.compact(_.map(w.content.sales_stages.lost, function(stage) { - return { - label: stage, - selected: true - }; - })); - return angular.forEach(w.content.sales_stages.all, function(stage) { - if (!(indexOf.call(w.content.sales_stages.lost, stage) >= 0)) { - return $scope.closedLostOptions.push({ - label: stage, - selected: false - }); + updateTimeRangePeriod(); + return updateFromDate(); + }; + updateTimeRangePeriod = function() { + var periodLetter, set, tr; + if (scope.isTimeSliderUsed()) { + set = getSetting('time-slider'); + tr = set.toMetadata().hist_parameters.time_range; + periodLetter = getPeriod().slice(0, 1).toLowerCase(); + scope.timePeriodSetting.timeRange = tr.replace(/[a-z]/, periodLetter); + set.initialize(); } - }); - } - }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; - } - }; - $scope.getChartTitle = function(el) { - if ($scope.selectedElements) { - return $scope.selectedElements.map(function(el) { - return el.name; - }).join(', '); - } - }; - $scope.getTotalWon = function(el) { - if ($scope.selectedElements) { - return $scope.selectedElements.reduce((function(t, e) { - return t + e.total_won; - }), 0); - } else { - return 0; - } - }; - formatDate = function(date) { - var period; - period = (w.metadata != null) && (w.metadata.hist_parameters != null) ? w.metadata.hist_parameters.period : null; - return $filter('momentDate')(date, period); - }; - $scope.getCloseDate = function(anOpp) { - var theDate; - if ((anOpp != null) && (anOpp.sales_stage_changes != null) && anOpp.sales_stage_changes.length > 0) { - theDate = anOpp.sales_stage_changes[anOpp.sales_stage_changes.length - 1].updated_at; - if (theDate.split(' ').length > 0) { - theDate = theDate.split(' ')[0]; - return formatDate(theDate); - } - } - }; - $scope.getForecastCloseDate = function(anOpp) { - var theDate; - if ((anOpp != null) && anOpp.expected_close_date) { - theDate = anOpp.expected_close_date; - if (theDate.split(' ').length > 0) { - theDate = theDate.split(' ')[0]; - return formatDate(theDate); - } - } - }; - $scope.getElementChartColor = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.no_sales_stages_selected = function() { - return w.content && w.content.sales_stages && w.content.sales_stages.won.length === 0 && w.content.sales_stages.lost.length === 0; - }; - $scope.toggleSelectedElement = function(element) { - var selectedElement; - if ($scope.isSelected(element)) { - $scope.selectedElements = _.reject($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, sElem); - }); - w.format(); - if (w.isExpanded() && $scope.selectedElements.length === 0) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); - } - } else { - selectedElement = angular.copy(element); - $scope.selectedElements || ($scope.selectedElements = []); - $scope.selectedElements.push(selectedElement); - w.format(); - if (!w.isExpanded()) { - return w.toggleExpanded(); - } else { - return ImpacWidgetsSvc.updateWidgetSettings(w, false, true); - } - } - }; - $scope.isSelected = function(element) { - return (element != null) && _.any($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, sElem); - }); - }; - $scope.hasElements = function() { - return ($scope.selectedElements != null) && $scope.selectedElements.length > 0; - }; - $scope.getSelectLineColor = function(element) { - var sElem; - sElem = _.find($scope.selectedElements, function(sElem) { - return matchElementToSelectedElement(element, sElem); - }); - if ($scope.hasElements()) { - return ChartFormatterSvc.getColor(_.indexOf($scope.selectedElements, sElem)); - } - }; - matchElementToSelectedElement = function(element, sElem) { - return getIdentifier(element) === getIdentifier(sElem); - }; - getIdentifier = function(element) { - return element.id || element.name; - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var all_values_are_positive, chartData, inputData, options; - if ($scope.isDataFound && ($scope.selectedElements != null) && $scope.selectedElements.length > 0) { - inputData = []; - all_values_are_positive = true; - angular.forEach($scope.selectedElements, function(sElem) { - var data, dates, period; - data = angular.copy(sElem); - period = null; - if ((w.metadata != null) && (w.metadata.hist_parameters != null)) { - period = w.metadata.hist_parameters.period; + return scope.timePeriodSetting.timeRange; + }; + updateFromDate = function() { + var fromDate, minDate, set, toDate; + if (scope.isDatesPickerUsed()) { + set = getSetting('dates-picker'); + fromDate = set.toMetadata().hist_parameters.from; + toDate = set.toMetadata().hist_parameters.to; + minDate = scope.getMinDate(); + if (moment(fromDate, "YYYY-MM-DD").isBefore(minDate)) { + scope.toDate = toDate; + scope.fromDate = minDate; + set.initialize(); + } } - dates = _.map(w.content.dates, function(date) { - return $filter('momentDate')(date, period); - }); - inputData.push({ - title: data.name, - labels: dates, - values: data.totals - }); - return angular.forEach(data.totals, function(value) { - return all_values_are_positive && (all_values_are_positive = value >= 0); - }); - }); - options = { - scaleBeginAtZero: all_values_are_positive, - showXLabels: true, - datasetFill: $scope.selectedElements.length === 1, - pointDot: $scope.selectedElements.length === 1 + return scope.fromDate; + }; + scope.useTimeSlider = function() { + scope.usedSetting = 'time-slider'; + return scope.updateSettings(); }; - chartData = ChartFormatterSvc.lineChart(inputData, options); - return $scope.drawTrigger.notify(chartData); - } - }; - selectedElementsSetting = { - initialized: false - }; - selectedElementsSetting.initialize = function() { - return selectedElementsSetting.initialized = true; - }; - selectedElementsSetting.toMetadata = function() { - var selectedElementsMetadata; - selectedElementsMetadata = _.map($scope.selectedElements, function(sElem) { - return getIdentifier(sElem); - }); - return { - selectedElements: selectedElementsMetadata - }; - }; - w.settings.push(selectedElementsSetting); - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesPerformance', function() { - return { - restrict: 'A', - controller: 'WidgetSalesPerformanceCtrl' - }; - }); - -}).call(this); - -(function() { - var module; - - module = angular.module('impac.components.widgets.sales-segmented-turnover', []); - - module.controller('WidgetSalesSegmentedTurnoverCtrl', ["$scope", "$q", "$filter", "ChartFormatterSvc", "$translate", function($scope, $q, $filter, ChartFormatterSvc, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.timePeriodDeferred = $q.defer(); - $scope.widthDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.timePeriodDeferred.promise, $scope.widthDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.chartDeferred.promise]; - w.initContext = function() { - if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.dates) && !_.isEmpty(w.content.ranges)) { - $scope.filterOptions = [ - { - label: $translate.instant('impac.widget.sales_turnover.gross_revenue'), - value: 'gross' - }, { - label: $translate.instant('impac.widget.sales_turnover.net_revenue'), - value: 'net' + scope.useDatesPicker = function() { + scope.usedSetting = 'dates-picker'; + return scope.updateSettings(); + }; + scope.getMinDate = function(toDate) { + var currentPeriod, periodWord, sourceSetting, to; + if (toDate == null) { + toDate = void 0; } - ]; - $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.content.filter; - }) || $scope.filterOptions[0]); - if (w.content.ranges[0].percentage + w.content.ranges[1].percentage > 50) { - return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.least'); - } else if (w.content.ranges[3].percentage + w.content.ranges[4].percentage > 50) { - return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.most'); - } else { - return $scope.analysisTranslate = $translate.instant('impac.widget.sales_turnover.analysis.balanced'); - } - } - }; - $scope.getColorByIndex = function(index) { - return ChartFormatterSvc.getColor(index); - }; - $scope.getRangeLabel = function(aLabel, ISOmode) { - var prices; - if (ISOmode == null) { - ISOmode = false; - } - prices = aLabel.split('-'); - return _.map(prices, function(price) { - return $filter('mnoCurrency')(price, w.content.currency, ISOmode); - }).join(' - '); - }; - $scope.getMaxRange = function() { - var max, maxRange; - if ($scope.isDataFound) { - max = 0; - maxRange = w.content.ranges[0]; - angular.forEach(w.content.ranges, function(range) { - if (range.percentage > max) { - maxRange = angular.copy(range); + to = moment(); + if (toDate != null) { + to = moment(toDate, "YYYY-MM-DD"); + } else if ((scope.usedSetting != null) && scope.isDatesPickerUsed()) { + sourceSetting = getSetting('dates-picker'); + to = moment(sourceSetting.toMetadata().hist_parameters.to, "YYYY-MM-DD"); } - return max = Math.max(max, range.percentage); - }); - return maxRange; - } - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var barData, barOptions, chartData; - if ($scope.isDataFound) { - barData = { - labels: _.map(w.content.ranges, function(elem) { - return $scope.getRangeLabel(elem.label, true); - }), - values: _.map(w.content.ranges, function(elem) { - return elem.value; - }) + currentPeriod = getPeriod(); + periodWord = _.find(scope.periods, function(period) { + return currentPeriod === period.value; + }).plural; + return to.subtract(scope.maxNumberOfPeriods, periodWord); }; - barOptions = { - showTooltips: false, - showXLabels: false, - barDatasetSpacing: 15 + scope.formattedMinDate = function(toDate) { + if (toDate == null) { + toDate = void 0; + } + return $filter('momentDate')(scope.getMinDate(toDate), 'time-period'); }; - chartData = ChartFormatterSvc.barChart(barData, barOptions); - return $scope.drawTrigger.notify(chartData); + w.settings.push(scope.timePeriodSetting); + return $q.all(settingsPromises).then(function() { + return scope.deferred.resolve(scope.timePeriodSetting); + }); } }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesSegmentedTurnover', function() { - return { - restrict: 'A', - controller: 'WidgetSalesSegmentedTurnoverCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-summary', []); + module = angular.module('impac.components.widgets-settings.time-presets', []); - module.controller('WidgetSalesSummaryCtrl', ["$scope", "$q", "ChartFormatterSvc", "$translate", function($scope, $q, ChartFormatterSvc, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.chartFiltersDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - $scope.chartDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.chartFiltersDeferred.promise, $scope.paramSelectorDeferred.promise, $scope.datesPickerDeferred.promise, $scope.chartDeferred.promise]; - $scope.datesPickerTemplate = "" + $translate.instant('impac.widget.sales_summary.to') + " "; - w.initContext = function() { - $scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.summary) && (_.sum(_.map(w.content.summary, function(s) { - return s.total; - })) > 0); - if ($scope.isDataFound) { - $scope.filterOptions = [ - { - label: $translate.instant('impac.widget.sales_summary.value_sold_taxes'), - value: 'gross_value_sold' - }, { - label: $translate.instant('impac.widget.sales_summary.value_sold_no_taxes'), - value: 'net_value_sold' - }, { - label: $translate.instant('impac.widget.sales_summary.quantity_sold'), - value: 'quantity_sold' - }, { - label: $translate.instant('impac.widget.sales_summary.value_purchased_taxes'), - value: 'gross_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_summary.value_purchased_no_taxes'), - value: 'net_value_purchased' - }, { - label: $translate.instant('impac.widget.sales_summary.quantity_purchased'), - value: 'quantity_purchased' - } - ]; - if (w.metadata.criteria === "customer") { - $scope.filterOptions = [$scope.filterOptions[0], $scope.filterOptions[1], $scope.filterOptions[2]]; + module.directive('settingTimePresets', ["$templateCache", "ImpacMainSvc", "$timeout", "ImpacUtilities", "ImpacTheming", "$translate", function($templateCache, ImpacMainSvc, $timeout, ImpacUtilities, ImpacTheming, $translate) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + presets: '=?', + onSelect: '&?', + onChooseDates: '&?', + onChoosePeriod: '&?', + histParams: '=?', + resetPromise: '=?' + }, + template: $templateCache.get('widgets-settings/time-presets.tmpl.html'), + link: function(scope) { + var fyEndMonth, initPreset, showSlider, w; + w = scope.parentWidget; + scope.setting = {}; + scope.setting.key = "time-presets"; + scope.financialYearEndMonth = 6; + fyEndMonth = scope.financialYearEndMonth; + ImpacMainSvc.load().then(function() { + return fyEndMonth = ImpacMainSvc.getFinancialYearEndMonth(); + })["finally"](function() { + var fyStartDate, prevFyEndDate, prevFyStartDate, toDate; + fyStartDate = ImpacUtilities.financialYearDates(fyEndMonth).start; + prevFyStartDate = moment(ImpacUtilities.financialYearDates(fyEndMonth).start, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); + prevFyEndDate = moment(ImpacUtilities.financialYearDates(fyEndMonth).end, 'YYYY-MM-DD').subtract(1, 'year').format('YYYY-MM-DD'); + toDate = moment().format('YYYY-MM-DD'); + return $translate(['impac.common.period.preset_in_words.calendar_year_to_date', 'impac.common.period.preset_in_words.financial_year_to_date', 'impac.common.period.preset_in_words.previous_financial_year', 'impac.common.period.preset_in_words.last_6_months', 'impac.common.period.preset_in_words.last_4_quarters', 'impac.common.period.preset_in_words.last_4_weeks', 'impac.common.period.preset_in_words.choose_period', 'impac.common.period.preset_in_words.choose_dates']).then(function(translations) { + scope.presets || (scope.presets = [ + { + label: translations['impac.common.period.preset_in_words.calendar_year_to_date'], + value: { + from: moment().startOf('year').format('YYYY-MM-DD'), + to: toDate, + period: 'MONTHLY' + } + }, { + label: translations['impac.common.period.preset_in_words.financial_year_to_date'], + value: { + from: fyStartDate, + to: toDate, + period: 'MONTHLY' + } + }, { + label: translations['impac.common.period.preset_in_words.previous_financial_year'], + value: { + from: prevFyStartDate, + to: prevFyEndDate, + period: 'MONTHLY' + } + }, { + label: translations['impac.common.period.preset_in_words.last_6_months'], + value: { + time_range: '-6m', + to: toDate + } + }, { + label: translations['impac.common.period.preset_in_words.last_4_quarters'], + value: { + time_range: '-4q', + to: toDate + } + }, { + label: translations['impac.common.period.preset_in_words.last_4_weeks'], + value: { + time_range: '-4w', + to: toDate + } + } + ]); + if (angular.isDefined(scope.onChooseDates) && showSlider()) { + scope.presets.unshift({ + label: translations['impac.common.period.preset_in_words.choose_period'], + value: 'choose-period' + }); + } + if (angular.isDefined(scope.onChooseDates)) { + return scope.presets.unshift({ + label: translations['impac.common.period.preset_in_words.choose_dates'], + value: 'choose-dates' + }); + } + }); + }); + if (scope.resetPromise != null) { + scope.resetPromise.then(null, null, function(key) { + return scope.selectedPreset = _.find(scope.presets, function(p) { + return p.value === key; + }); + }); } - return $scope.filter = angular.copy(_.find($scope.filterOptions, function(o) { - return o.value === w.metadata.filter; - }) || $scope.filterOptions[0]); - } - }; - $scope.drawTrigger = $q.defer(); - w.format = function() { - var chartData, pieData, pieOptions; - if ($scope.isDataFound) { - pieData = _.map(w.content.summary, function(entity) { - var label; - if (entity.company) { - label = (entity.code || entity.name || entity.location || entity.industry || entity.customer) + " (" + entity.company + ")"; + showSlider = function() { + return (ImpacTheming.get().widgetSettings != null) && (ImpacTheming.get().widgetSettings.timePeriod != null) && ImpacTheming.get().widgetSettings.timePeriod.showSlider; + }; + initPreset = function() { + if (scope.histParams != null) { + scope.selectedPreset = _.find(scope.presets, function(p) { + return _.every(p.value, function(v, k) { + return scope.histParams[k] === (angular.isFunction(v) ? v(fyEndMonth) : v); + }); + }); + if ((scope.selectedPreset == null) && (scope.histParams.time_range != null) && showSlider()) { + scope.selectedPreset = scope.presets[1]; + } + } + if (scope.selectedPreset == null) { + return scope.selectedPreset = scope.presets[0]; + } + }; + scope.presetSelected = function() { + if ((scope.selectedPreset != null) && (scope.selectedPreset.value === "choose-dates")) { + return scope.onChooseDates(); + } else if ((scope.selectedPreset != null) && (scope.selectedPreset.value === "choose-period")) { + return scope.onChoosePeriod(); } else { - label = entity.code || entity.name || entity.location || entity.industry || entity.customer; + return scope.onSelect({ + histParams: scope.setting.toMetadata().hist_parameters + }); + } + }; + scope.setting.initialize = function() { + initPreset(); + scope.presetSelected(); + return true; + }; + scope.setting.toMetadata = function() { + var result; + result = {}; + if (!_.isEmpty(scope.selectedPreset.value)) { + _.forEach(scope.selectedPreset.value, function(value, key) { + if (angular.isFunction(value)) { + return result[key] = value(fyEndMonth); + } else { + return result[key] = value; + } + }); } return { - label: label, - value: entity.total + hist_parameters: result }; - }); - pieOptions = { - percentageInnerCutout: 50, - tooltipFontSize: 12 }; - if ($scope.filter.value.indexOf('quantity') > -1) { - angular.merge(pieOptions, { - currency: 'hide' - }); - } - chartData = ChartFormatterSvc.pieChart(pieData, pieOptions); - return $scope.drawTrigger.notify(chartData); + w.settings.push(scope.setting); + return scope.deferred.resolve(scope.setting); } }; - return $scope.widgetDeferred.resolve(settingsPromises); }]); - module.directive('widgetSalesSummary', function() { - return { - restrict: 'A', - controller: 'WidgetSalesSummaryCtrl' - }; - }); - }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-top-customers', []); + module = angular.module('impac.components.widgets-settings.time-slider', []); - module.controller('WidgetSalesTopCustomersCtrl', ["$scope", "$q", "$filter", "ImpacUtilities", "$translate", function($scope, $q, $filter, ImpacUtilities, $translate) { - var buildFxTotals, fields, settingsPromises, topTmpl, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - $scope.datesPickerDeferred = $q.defer(); - $scope.paramSelectorDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise, $scope.datesPickerDeferred.promise, $scope.paramSelectorDeferred.promise]; - topTmpl = $translate.instant('impac.widget.sales_top_customers.top'); - $scope.limitEntriesOptions = [ - { - label: topTmpl.replace(':number:', 5), - value: 5 - }, { - label: topTmpl.replace(':number:', 10), - value: 10 - }, { - label: topTmpl.replace(':number:', 25), - value: 25 - }, { - label: topTmpl.replace(':number:', 50), - value: 50 - }, { - label: topTmpl.replace(':number:', 100), - value: 100 - } - ]; - $scope.limitEntriesSelected = angular.copy(_.find($scope.limitEntriesOptions, function(o) { - return (w.metadata != null) && (o.value === w.metadata.limit_entries); - }) || $scope.limitEntriesOptions[3]); - $scope.headerOptions = [ - { - label: $translate.instant('impac.widget.sales_top_customers.total_sales'), - value: 'total_sales', - minified: 'total' - }, { - label: $translate.instant('impac.widget.sales_top_customers.transactions'), - value: 'transactions', - minified: '# tr' - }, { - label: $translate.instant('impac.widget.sales_top_customers.avg_sales'), - value: 'avg_sales', - minified: 'avg' - }, { - label: $translate.instant('impac.widget.sales_top_customers.last_sale'), - value: 'last_sale', - minified: 'last' - } - ]; - $scope.headerSelected = angular.copy(_.find($scope.headerOptions, function(o) { - return (w.metadata != null) && (w.metadata.header === o.value); - }) || $scope.headerOptions[0]); - w.initContext = function() { - var dates, datesRange; - if ($scope.isDataFound = !_.isEmpty(w.content) && !_.isEmpty(w.content.entities)) { - dates = _.flatten(_.map(w.content.entities, (function(e) { - return _.map(e.invoices, (function(i) { - return i.invoice_date; - })); - }))); - datesRange = ImpacUtilities.getDatesRange(dates); - $scope.defaultFrom = $filter('date')(datesRange[0], 'yyyy-MM-dd'); - $scope.defaultTo = $filter('date')(datesRange[1], 'yyyy-MM-dd'); - buildFxTotals(); - return $scope.ratesDate = moment.now(); - } - }; - fields = [ - { - label: 'total', - showCurrency: true, - getValue: function(entity) { - return entity.total_invoiced; - }, - getFormattedFxTotals: function(entity) { - return entity.formattedFxTotals; - } - }, { - label: '# tr', - showCurrency: false, - getValue: function(entity) { - return entity.invoices.length; - } - }, { - label: 'avg', - showCurrency: true, - getValue: function(entity) { - var total; - total = entity.invoices.length; - if (total > 0) { - return entity.total_invoiced / entity.invoices.length; + module.directive('settingTimeSlider', ["$templateCache", "$timeout", "ImpacMainSvc", "ImpacUtilities", "ImpacTheming", function($templateCache, $timeout, ImpacMainSvc, ImpacUtilities, ImpacTheming) { + return { + restrict: 'A', + scope: { + parentWidget: '=', + deferred: '=', + timeRange: '=?', + onUse: '&?' + }, + template: $templateCache.get('widgets-settings/time-slider.tmpl.html'), + link: function(scope) { + var PERIODS, getNumberOfPeriods, getPeriod, getPeriodWord, getTimeRange, initFinancialYearEndMonth, initNumberOfPeriods, initPeriod, setting, w; + w = scope.parentWidget; + setting = {}; + setting.key = "time-slider"; + PERIODS = ['d', 'w', 'm', 'q', 'y', 'f']; + setting.initialize = function() { + return $timeout(function() { + initNumberOfPeriods(); + initPeriod(); + initFinancialYearEndMonth(); + return true; + }); + }; + setting.toMetadata = function() { + var histParams; + histParams = { + to: scope.toDate().format('YYYY-MM-DD'), + time_range: getTimeRange() + }; + if (getPeriod() === 'f') { + histParams.from = scope.fromDate().format('YYYY-MM-DD'); + } + return { + hist_parameters: histParams + }; + }; + initNumberOfPeriods = function() { + var n, nPattern, tr; + tr = scope.timeRange; + scope.numberOfPeriods = moment().month(); + if (tr == null) { + return scope.numberOfPeriods; + } + nPattern = /^-?([0-9]{1,2})[a-z]?$/; + n = nPattern.exec(tr); + if ((n != null) && n[1] && parseInt(n[1])) { + scope.numberOfPeriods = parseInt(n[1]); + } + return scope.numberOfPeriods; + }; + initPeriod = function() { + var p, pPattern, period, tr; + tr = scope.timeRange; + scope.period = "m"; + if (tr == null) { + return "m"; + } + pPattern = /^-?[0-9]{0,2}([a-z])$/; + p = pPattern.exec(tr); + period = _.find(PERIODS, function(authPeriod) { + return (p != null) && (p[1] === authPeriod); + }); + if (period != null) { + scope.period = period; + } + return scope.period; + }; + initFinancialYearEndMonth = function() { + scope.financialYearEndMonth = 6; + return ImpacMainSvc.load().then(function(config) { + if ((config != null) && (config.currentOrganization != null) && parseInt(config.currentOrganization.financial_year_end_month)) { + return scope.financialYearEndMonth = parseInt(config.currentOrganization.financial_year_end_month); + } + }); + }; + getPeriod = function() { + if (scope.period != null) { + return scope.period; } else { - return 0; + return initPeriod(); } - } - }, { - label: 'last', - showCurrency: true, - getValue: function(entity) { - var total; - total = entity.invoices.length; - if (total > 0) { - return entity.invoices[entity.invoices.length - 1].invoiced; + }; + getPeriodWord = function() { + return ImpacUtilities.getPeriodWord(getPeriod()); + }; + getNumberOfPeriods = function() { + if (scope.numberOfPeriods != null) { + return scope.numberOfPeriods; } else { - return 0; + return initNumberOfPeriods(); } - } - } - ]; - $scope.getHeaderField = function() { - return _.find(fields, function(f) { - return f.label === $scope.headerSelected.minified; - }); - }; - $scope.getRemainingFields = function() { - return _.reject(fields, function(f) { - return f.label === $scope.headerSelected.minified; - }); - }; - $scope.getEntities = function() { - if (!$scope.isDataFound) { - return []; - } - return $filter('orderBy')(w.content.entities, (function(entity) { - return $scope.getHeaderField().getValue(entity); - }), true); - }; - buildFxTotals = function() { - var contact, contactFxTotals, j, len, ref, results; - ref = w.content.entities; - results = []; - for (j = 0, len = ref.length; j < len; j++) { - contact = ref[j]; - contactFxTotals = []; - _.mapKeys(contact.fx_totals, function(total, currency) { - if (currency !== w.metadata.currency) { - return contactFxTotals.push({ - currency: currency, - amount: total.invoiced, - rate: total.rate - }); + }; + getTimeRange = function() { + var n, p; + n = getNumberOfPeriods(); + p = getPeriod(); + return "-" + n + p; + }; + scope.formatPeriod = function() { + return ImpacUtilities.formatPeriod(getNumberOfPeriods(), getPeriod()); + }; + scope.fromDate = function() { + var financialYearStartYear, n, word; + n = getNumberOfPeriods(); + word = getPeriodWord(); + if (word.slice(0, 1) === "f") { + financialYearStartYear = moment().year() - 1; + if (moment().month() >= 6) { + financialYearStartYear = moment().year(); + } + financialYearStartYear = financialYearStartYear - n; + return moment(financialYearStartYear + "-" + (scope.financialYearEndMonth + 1) + "-01", "YYYY-M-DD"); + } else if (word.slice(0, 1) === "w") { + return moment().subtract(n, word).startOf('isoweek'); + } else { + return moment().subtract(n, word).startOf(word); } - }); - if (!_.isEmpty(contactFxTotals)) { - results.push(contact.formattedFxTotals = contactFxTotals); - } else { - results.push(void 0); - } - } - return results; - }; - return $scope.widgetDeferred.resolve(settingsPromises); - }]); - - module.directive('widgetSalesTopCustomers', function() { - return { - restrict: 'A', - controller: 'WidgetSalesTopCustomersCtrl', - link: function(scope) { - scope.transactionsCollapsed = false; - return scope.toggleTransactions = function() { - return scope.transactionsCollapsed = !scope.transactionsCollapsed; }; + scope.toDate = function() { + return moment(); + }; + w.settings.push(setting); + return scope.deferred.resolve(setting); } }; - }); + }]); }).call(this); (function() { var module; - module = angular.module('impac.components.widgets.sales-top-opportunities', []); + module = angular.module('impac.components.widgets-settings.width', []); - module.controller('WidgetSalesTopOpportunitiesCtrl', ["$scope", "$q", "ChartFormatterSvc", "$filter", "$translate", function($scope, $q, ChartFormatterSvc, $filter, $translate) { - var settingsPromises, w; - w = $scope.widget; - $scope.orgDeferred = $q.defer(); - settingsPromises = [$scope.orgDeferred.promise]; - w.initContext = function() { - return $scope.isDataFound = angular.isDefined(w.content) && !_.isEmpty(w.content.opportunities); - }; - w.processError = function(error) { - if (error.code === 404) { - return $scope.isDataFound = false; + module.controller('SettingWidthCtrl', ["$scope", "$element", "$timeout", "$log", "ImpacWidgetsSvc", "ImpacDashboardsSvc", function($scope, $element, $timeout, $log, ImpacWidgetsSvc, ImpacDashboardsSvc) { + var elem, hideOnResize, i, len, ref, setting, w; + w = $scope.parentWidget; + setting = {}; + setting.key = "width"; + setting.isInitialized = false; + ref = $element.parents(); + for (i = 0, len = ref.length; i < len; i++) { + elem = ref[i]; + if (angular.element(elem).hasClass('content')) { + $scope.contentElements = angular.element(elem).children(); + break; + } + } + hideOnResize = function(elements) { + var j, len1; + if (!(elements && elements.length > 0)) { + return; + } + for (j = 0, len1 = elements.length; j < len1; j++) { + elem = elements[j]; + angular.element(elem).animate({ + opacity: 0 + }, 0); } + return $timeout(function() { + var k, len2, results; + results = []; + for (k = 0, len2 = elements.length; k < len2; k++) { + elem = elements[k]; + results.push(angular.element(elem).animate({ + opacity: 1 + }, 200)); + } + return results; + }, 300); }; - $scope.getOppDetails = function(anOpp) { - var oppDetails; - oppDetails = []; - if (anOpp.amount) { - oppDetails.push($filter('mnoCurrency')(anOpp.amount.amount, anOpp.amount.currency || 'AUD')); + w.toggleExpanded = function(save) { + if (save == null) { + save = true; } - if (anOpp.probability) { - oppDetails.push($translate.instant('impac.widget.sales_opportunities.proba') + (" " + anOpp.probability + "%")); + $scope.expanded = !$scope.expanded; + if (save) { + ImpacWidgetsSvc.updateWidgetSettings(w, false, true); } - if (anOpp.sales_stage) { - oppDetails.push(anOpp.sales_stage); + hideOnResize($scope.contentElements); + if ($scope.expanded) { + return w.width = parseInt($scope.max); + } else { + return w.width = parseInt($scope.min); } - return oppDetails.join(' / '); }; - $scope.getOppClass = function(index) { - switch (index) { - case 0: - return 'first'; - case 1: - return 'second'; - case 2: - return 'second'; - default: - return ''; + w.isExpanded = function() { + return $scope.expanded; + }; + setting.initialize = function() { + if (w.width != null) { + $scope.expanded = w.width === parseInt($scope.max); + return setting.isInitialized = true; } }; - return $scope.widgetDeferred.resolve(settingsPromises); + setting.toMetadata = function() { + var newWidth; + if ($scope.expanded) { + newWidth = $scope.max; + } else { + newWidth = $scope.min; + } + return { + width: parseInt(newWidth) + }; + }; + ImpacDashboardsSvc.pdfModeEnabled().then(null, null, function() { + $scope.pdfMode = true; + $scope.initiallyExpanded = !!$scope.expanded; + if (!$scope.initiallyExpanded) { + return w.toggleExpanded(false); + } + }); + ImpacDashboardsSvc.pdfModeCanceled().then(null, null, function() { + $scope.pdfMode = false; + if (!$scope.initiallyExpanded) { + return w.toggleExpanded(false); + } + }); + w.settings.push(setting); + return $scope.deferred.resolve($scope.parentWidget); }]); - module.directive('widgetSalesTopOpportunities', function() { + module.directive('settingWidth', ["$templateCache", function($templateCache) { return { restrict: 'A', - controller: 'WidgetSalesTopOpportunitiesCtrl' + scope: { + parentWidget: '=', + deferred: '=', + min: '@', + max: '@' + }, + template: $templateCache.get('widgets-settings/width.tmpl.html'), + controller: 'SettingWidthCtrl' }; - }); + }]); }).call(this); diff --git a/dist/impac-angular.less b/dist/impac-angular.less index 7d06ec08..086f4778 100644 --- a/dist/impac-angular.less +++ b/dist/impac-angular.less @@ -2861,1543 +2861,1586 @@ dashboard-templates-selector { .fa.success { color: @flurogreen; } } -.currency-conversions { - img { - width: 15px; - cursor: pointer; +.analytics .widget-item .content.accounts-accounting-values { + // Nothing particular yet for this template... +} +.analytics .widget-item .content.accounts-assets-liability-summary { + .param-selector { + text-align: center; } + .legend { + text-align: left; + max-height: 90px; - &.popover .popover-title { - background-color: black; - color: white; + .title { + text-align: center; + border-bottom: dashed 1px @impac-widget-borders-color; + } } } -chart-threshold { - - .attach-panel { - padding: 5px 0; - display: flex; - justify-content: center; - align-items: center; - background-color: rgba(20, 132, 228, 0.16); - - > .attach-panel-text { - display: inline-block; - & > * { - display: inline-block; - } - } +.analytics .widget-item .content.accounts-assets-summary { + .legend { + text-align: left; + max-height: 115px; - .panel-text-label { - text-transform: uppercase; - font-weight: bold; - color: @impac-widget-text-color; - font-size: 13px; - } - .panel-text-input { - border-radius: 3px; - border: 1px white; - padding: 3px; - } - .panel-text-currency { - font-weight: bold; - color: #000; + .title { + text-align: center; + border-bottom: dashed 1px @impac-widget-borders-color; } } +} - .action-buttons { - display: inline-block; - padding: 0 10px; - button { - padding: 3px 6px; - display: inline-block; - &.loading { - padding: 3px 20px; - } - } +.analytics .widget-item .content.accounts-assets-vs-liabilities { + .legend > .title span { + margin-left: 3px; } } -.analytics .widget-item .editable-title { - width: 100%; - flex: 1; - overflow: hidden; - height: 22px; - - .title { - text-transform: @impac-widget-title-text-transform; - .font(@impac-widget-title-text-size,600,@impac-widget-title-text-color); - cursor: text; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 1.9; +.analytics .widget-item .content.accounts-balance { + h3 { + .left-thin(30px); + text-align: center; } - .editable-wrap { - position: relative; - height: 20px; - min-width: 100%; - // otherwise, white-space is overriden in mno-enterprise - white-space: nowrap; - - .editable-controls { - min-width: 100%; + .price { + .center-bold(0px); + } +} - .editable-input { - height: 20px; - font-size: 12px; - text-transform: @impac-widget-title-text-transform; - // 65px is .editable-buttons width - width: ~"calc(100% - 65px)"; - padding: 0px 3px; +.analytics .widget-item .content.accounts-balance-sheet { + .tall-widget(); + .widget-lines-container { + .scrollable(scroll); + max-height: 490px; + @media (max-width: @screen-xs-max) { + .row.widget-line { + &:not(:last-child) { border-bottom: dashed 1px @impac-widget-borders-color; } } + } + .row.widget-line.header > [class*='col-'] { position: static; } - .editable-buttons { - background-color: @impac-widget-title-bg; - button { - margin: 0px 0px 0px 5px; - height: 20px; - padding: 0px 5px; - } - } + &.no-scroll { + overflow: visible; } } -} -.analytics .widget-item .info-panel { - position: absolute; - top: 15px; - left: 15px; - width: ~"calc(100% - 30px)"; - max-height: ~"calc(100% - 30px)"; - height: 100%; - z-index: 100; + .no-data-block { + .center-thin(); + margin: 15px 0px; + } +} - background-color: white; - border: dotted 1px #B7CDCE; +.analytics .widget-item .content.accounts-cash-projection { + .tall-widget(); - display: flex; - flex-direction: column; - font-family: "Lato Semibold", "Lato"; + .cash-projection-chart { + height: ~"calc(@{impac-big-widget-size} - 50px)"; + } - z-index: 4; + .highcharts-legend-item { + rect.highcharts-point { + display: none; + } - &:hover { opacity: 1; } + span { + width: 110px; + text-align: center; + img { + text-align: center; + width: 55px; + height: 25px; + } + } + } - .i-header { - .fa { font-size: 18px; } - .fa-info-circle { float: left; } - .fa-times-circle { cursor: pointer; float: right; } + .dates-picker { + display: inline-block; + float: right; + font-size: 12px; + } - background-color: #FFC928; - color: @impac-widget-reverse-color; - padding: 8px; - text-transform: uppercase; - font-family: "Lato Medium", "Lato"; + transactions-list { font-size: 12px; } +} - .i-content { - .scrollable(); - padding: 5px; - text-align: justify; - flex: 1; +.analytics .widget-item .content.accounts-cash-balance { + .tall-widget(); - .row { - margin-bottom: 6px; - padding-bottom: 6px; - border-bottom: solid 1px @impac-dashboard-borders-color; + .data-container { + height: ~"calc(@{impac-big-widget-size} - 50px)"; + width: 100%; + } - &:last-child { - margin-bottom: 0; - padding-bottom: 0; - border-bottom: none; - } + .left-panel { + width: 180px; + display: inline-block; + overflow: auto; + max-height: 100%; + } - .key { - @media (max-width: @screen-sm-max) { text-align: center; } - text-align: right; - font-variant: small-caps; + #cash-balance-legend { + .header { + .group-item { + display: flex; + align-items: center; + min-height: 45px; + margin: 3px; + font-size: 13px; + padding: 3px; + cursor: pointer; + user-select: none; + &:hover { + background-color: @impac-widget-menus-hover-background-color; + } + i { + font-size: 19px; + padding: 4px; + margin-top: 1px + } + span { color: @impac-widget-text-color; } } - - .value { text-align: justify; } } } -} -.analytics .time-period-info { - font-size: 11px; - color: #ABC4C6; - text-transform: uppercase; -} + .legend-item-icon { + width: 16px; + height: 16px; + } -.analytics .widget-item .top-line .top-buttons { - text-align: right; - margin-top: -1px; - white-space: nowrap; - padding-left: 10px; + .right-panel { + width: ~"calc(100% - 180px)"; + float: right; - .top-buttons-wrapper { - .top-button { - background: transparent; - border: none; - color: @impac-widget-top-buttons-color; - padding: 0; - outline: none; - width: 17px; - - &:active, &:focus { box-shadow: none; } - - &.btn-info { - font-size: 17px; - margin-top: 1px; - &:hover { color: #FFC928; } - } - &.btn-refresh { - font-size: 17px; - margin-top: 1px; - &:hover { color: @mblue; } - } - &.btn-edit { - font-size: 13px; - &:hover, &.edit-mode { color: darken(@mgreen,10%); } - } - &.btn-close { - font-size: 13px; - &:hover { color: @pink; } - } + // Highchart container + .cash-balance-chart { + height: ~"calc(@{impac-big-widget-size} - 50px)"; } } -} -.analytics .settings.accounting-behaviour { + .dates-picker { + display: inline-block; + float: right; + font-size: 12px; + } +} - .btn.btn-primary { - background-color: lighten(@impac-widget-link-color, 10%); - border: solid 1px @impac-widget-link-color; - &.focus, &.active { background-color: @impac-widget-link-color; } +.analytics .widget-item .content.accounts-cash-summary { + .drill-down-widget(); + .right-panel .widget-lines-container { + max-height: 215px; } + .row.lines-group.cash { + border-top: solid 1px; + border-bottom: double; + } } -.analytics .widget-item .content .settings.select-account { - padding: 0px 5px; +.analytics .widget-item .content.accounts-class-comparison { + .param-selector { + text-align: center; + } + .widget-lines-container { + max-height: 94px; + color: #626d6d; + } } -.analytics .settings.attach-kpis { - .attach-kpi { - padding: 8px 5px; - - form .row { - padding-bottom: 5px; - } - - .attach-kpi-form { - background-color: white; - border: 1px solid #ddd; - padding: 5px; - } - - form .row.kpi-description { - padding: 10px 2px; - span { - display: block; - font-weight: bold; - font-size: 13px; - } - } - - form.attach-kpi-form { - input.attach-target { - background-color: white; - height: inherit; - } - } - .error-messages { - color: @brand-danger; - width: 120px; - } - } +.analytics .widget-item .content.accounts-comparison { + .tall-widget(); - .attached-kpis { - padding: 5px; + .chart-container { + @media print { max-width: 80% !important; } } - .list-group-item.attached-kpi { - padding: 5px 10px; - - .attached-kpi-name { - overflow: hidden; - width: 75%; - display: inline-block; - white-space: nowrap; - text-overflow: ellipsis; - margin-top: 3px; + .add-account { + position: absolute; + right: 40px; + bottom: 30px; + width: 160px; + select { font-size: 13px; - font-weight: bold; - } - - .actions { - padding-top: 2px; - .alerts-config { - display: inline-block; - text-align: left; - padding-left: 4px; - height: 20px; - border-radius: 40px; - width: 21px; - color: @mblue; - background-color: white; - border: solid 1px @mblue; - - &:hover { cursor: pointer; } - } - .edit-attached-kpi { - display: inline-block; - i { - border-radius: 10px; - width: 21px; - color: @mblue; - background-color: white; - height: 20px; - padding: 3px 5px 5px 5px; - border: solid 1px @mblue; - &:hover { cursor: pointer; } + background-color: @impac-widget-link-color; + color: @impac-widget-background-color; + outline: none; + border: none; + cursor: pointer; + &[disabled] { + cursor: not-allowed; + background-color: lighten(@impac-widget-link-color,10%); + &:hover { + background-color: lighten(@impac-widget-link-color,10%); } } - .remove-attached-kpi { - display: inline-block; - i { - border-radius: 10px; - width: 21px; - color: @brand-danger; - background-color: white; - height: 20px; - padding: 3px 5px 5px 5px; - border: solid 1px @brand-danger; - &:hover { cursor: pointer; } + &:hover { + background-color: darken(@impac-widget-link-color,10%); + } + option { + background-color: @impac-widget-background-color; + color: lighten(@impac-widget-text-color,40%); + &[disabled] { + color: @impac-widget-background-color; } } } } -} - -.analytics .widget-item .content .settings.chart-filters { - .row { - margin: 0px; + button.close { + font-size: 15px; } - input[type="radio"] { + .legend { + text-align: left; + max-height: 103px; + } + .row { margin: 0; - margin-right: 3px; - padding: 0; - width: 13px; - height: 13px; - vertical-align: middle; - position: relative; - top: -1px; - outline: none; } - input[type="range"] { - height: auto; - width: 100%; + .widget-lines-container { + font-size: 11px; + max-height: @impac-widget-accounts-comparison-lines-container-max-height; + margin-bottom: 65px; + overflow: auto; } -} -.analytics .settings.dates-picker { - h5 { display: none; } + .settings.params-checkboxes { + margin-left: 13px; + } - button.btn.btn-sm { - line-height: 1; - &.date-button { margin: 0px 5px; } - &.btn-danger { display: none; } - &.btn-info { border-radius: 3px; } + .comparable-error h5 { + margin-left: 13px; + color: @impac-negative; } +} - .tooltip-inner { text-transform: none; } +.analytics .widget-item .content.accounts-custom-calculation { + h3 { + margin-top: 85px; + text-align: center; + font-weight: bold; + } + .legend { max-height: 125px; } +} - .dropdown-menu > li > div > table { outline: none; } +.analytics.modal-custom-calculation { + margin: 0px; + padding: 0px; } -.analytics .widget-item .content .settings.hist-mode-choser { - max-height: 70px; +.analytics.modal-custom-calculation .modal-body { + .edit { + .edit-panel-style(); + padding: 5px; + overflow: visible; + } +} - [common-time-period-info] { - padding-bottom: 8px; +.analytics .widget-item .content.accounts-detailed-classifications { + .tall-widget(); + .widget-lines-container { + .scrollable(scroll); + max-height: 540px; } - .options { - width: 150px; - margin: auto; - padding-bottom: 8px; - border-bottom: solid 1px #e6e6e6; - .font(@impac-widget-hist-text-size,500,@impac-widget-hist-text-color); - a { - .font(@impac-widget-hist-text-size,500,@impac-widget-hist-text-color); - text-transform: @impac-widget-hist-text-transform; - &.active { - color: @impac-widget-link-color; - } - } + .account-class-title { + margin-bottom: 8px; + margin-left: 11px; } - .arrow-container { - width: 28px; - height: 28px; - position: relative; - top: -14px; - margin: auto; - &.right { - left: 46px; - } - &.left { - left: -30px; - } - .arrow-border { - border-top: 14px solid #e6e6e6; - border-left: 14px solid transparent; - border-right: 14px solid transparent; - width: 0px; - height: 0px; - } - .arrow { - border-top: 14px solid @impac-widget-background-color; - border-left: 14px solid transparent; - border-right: 14px solid transparent; - position: relative; - top: 12px; - width: 0px; - height: 0px; - } + + .time-period-info { + text-align: right; + } + + .widget-line.header.sorting { + border-bottom: 1px solid #ccc; } } -.analytics .settings.limit-entries { - color: @impac-widget-limit-entries-color; - text-transform: uppercase; - text-align: center; - border-bottom: dashed 1px #E6E6E6; - padding-bottom: 8px; - a.option { - &.badge { - color: white; - background-color: @impac-widget-limit-entries-color; + +.analytics .widget-item .content.accounts-expense-weight { + .legend { + text-align: left; + max-height: 115px; + + .title { + text-align: center; } } - } -.analytics .settings.offsets { - .offset-value { - font-style: italic; - font-size: 13px; +.analytics .widget-item .content.accounts-expenses-revenue { + .legend { + font-weight: bold; } - .offset-value .fa-trash-o { - &:hover { - color: @brand-danger; - cursor: pointer; - } - margin-left: 10px; + .settings.params-checkboxes { + font-size: 12px; + margin-left: 0px; + text-align: center; } - - input { width: 75%; } - button { width: 30px; } } -.analytics .settings.organizations { - .widget-lines-container { - .widget-line { - padding: 5px 10px 5px 18px; - .alternate-bg(#f3f4f4); - .fa { - float: right; - font-size: 20px; - cursor: pointer; - &.fa-toggle-on { - color: @impac-widget-link-color; - } - &.fa-toggle-off { - color: @impac-widget-text-color-medium; - } - } - } +.analytics .widget-item .content.accounts-live-balance { + h3 { + .center-bold(0px); + font-size: 18px; + text-align: center; + text-shadow: 1px; } -} -.analytics .widget-item .content .settings.param-selector { - display: inline-block; - &.classic { - width: 100%; + .statement-title { + font-size: 13px; + font-weight: 400; + } - select { - width: 100%; - height: 25px; - border: 1px solid #ccc; - text-transform: uppercase; - margin: 0px 0px 5px 0px; - } + .balance-title { + font-size: 12px; } - a { - font-weight: normal; - color: @impac-widget-param-selector-color; - white-space: nowrap; + .currency-centered { + .center-small() } - .options-container { - position: absolute; - background-color: white; - text-align: left; - min-width: 150px; - max-height: 200px; - z-index: 999; - overflow-y: auto; - overflow-x: hidden; - .box-shadow(rgb(0, 0, 0) 0px 3px 15px -3px); - .param-selector-label { - padding: 3px 5px; - .font(inherit,500,black); - cursor: text; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - line-height: 1.9; - } - .param-selector-label:hover { - cursor: pointer; - background-color: @impac-widget-param-selector-color; - color: white; - } + .headers { + text-align: center; + } - &::-webkit-scrollbar { - width: 8px; - background-color: darken(@lightgray,5%); - } + .spacer { + min-height: 30px; + } - &::-webkit-scrollbar-thumb { - background-color: @impac-widget-param-selector-color; - &:hover { - background-color: lighten(@impac-widget-param-selector-color,5%); - } - } + .price { + .center-bold(0px); + } + + .negative2 { + font-size: 14px; } } -.analytics .settings.params-checkboxes { - padding: 2px 0px; - input { - margin: 0; - height: inherit; +.analytics .widget-item .content.accounts-payable-receivable { + h3 { + text-align: center; } - span { - margin-left: 5px; + .legend { + font-weight: bold; } - label { - display: flex; - justify-content: center; - line-height: 14px; + .payable { + margin-top: 15px; + } + .price { + .center-bold(0px); } } +.analytics .widget-item .content.accounts-profit-and-loss { + .drill-down-widget(); -.analytics .settings.tag-filter { - padding: 0px 5px; - - .btn.btn-default { - height: 32px; - width: 30px; + .row.lines-group.profit { + border-top: solid 1px; + border-bottom: double; } - .tag-lines-container { - padding: 0px 10px; + .right-panel .widget-lines-container { + max-height: 215px; + } - .tag-line { - display: flex; - align-items: center; - justify-content: flex-end; + .row.widget-line.header > [class*='col-'] { position: static; } +} - .tags-col { position: static; } +.analytics .widget-item .content.accounts-ratios { + + .left-panel { + max-height: 230px; + overflow-y: auto; - tags-input { - .tags { - display: flex; - border-radius: 4px; - border: solid 1px #ccc; - .tag-item { - background: #79a2bb; - border-radius: 4px; - color: white; - } - } - } + .separator { + border-bottom: solid 1px @impac-widget-text-color; + width: 75%; + } + .member { + padding-top: 20px; + padding-bottom: 20px; + } + .member .price { + margin-top: 0px; + font-size: 18px; + } + button { outline: none; } + } - .host { position: static; } + .left-panel.simulation { + .member { + padding-top: 5px; + .legend { display: none; } + .price { text-align: right; } } + .separator { width: 100%; } } } -.analytics .widget-item .content .settings.params-picker { - padding: 0px 10px; - .parameter { - margin: 0px 3px 3px 0px; - padding: 3px 5px; - background-color: @impac-widget-params-picker-bg; - color: white; - border: solid 1px @impac-widget-params-picker-bg; - border-radius: 4px; - cursor: move; - font-weight: bold; - white-space: nowrap; - float: left; - input[type="checkbox"] { - margin: 0px -3px 0px 3px; - vertical-align: middle; - height: inherit; - outline: none; - cursor: pointer; - } - .badge { - margin-right: 3px; - font-size: 10px; - background-color: darken(@impac-widget-background-color, 5%); - color: @impac-widget-params-picker-bg; - padding: 2px 6px; +.analytics .widget-item .content.hr-employee-details { + font-size: 12px; + .details-container { + padding: 0px; + max-height: none; + @media (min-width: @screen-md-min) { max-height: 200px; } + .scrollable(); + } + .right-panel { + .details-container { + @media (min-width: @screen-md-min) { max-height: 220px; } } - - &.unchecked { - background-color: inherit; - font-weight: normal; - color: inherit; - border-color: @impac-widget-params-picker-unchecked-bg; - .badge { - background-color: @impac-widget-params-picker-unchecked-bg; - color: white; - } + .legend { + margin-bottom: 5px; } } + .title { + text-align: center; + margin-bottom: 10px; + font-size: 14px; + } } -.analytics .settings.time-period { - padding: 0px 5px; - select { - height: 22px; - width: 100%; +.analytics .widget-item .content.hr-employees-list { + .legend { + margin-bottom: 9px; } - - & > .row { - margin: 0px -5px 7px -5px; - & > div { - padding: 0px 5px; - position: static; + .widget-lines-container { + text-align: center; + .widget-line { + .alternate-bg(); } - - .sub-setting { padding: 5px; } } -} - -.analytics .widget-item .content .settings.width { - float: right; - font-size: 14px; - i { - color: silver; - cursor: pointer; - &.reduce { - margin-right: -10px; - } - &.expand { - margin-right: -3px; + .edit { + .widget-lines-container { + text-align: left; } } } -.analytics .widget-item .content.accounts-accounting-values { - // Nothing particular yet for this template... -} -.analytics .widget-item .content.accounts-assets-liability-summary { - .param-selector { +.analytics .widget-item .content.hr-leaves-balance{ + .employee-name { text-align: center; } - .legend { - text-align: left; - max-height: 90px; - - .title { - text-align: center; - border-bottom: dashed 1px @impac-widget-borders-color; - } + .balance { + .center-bold(0px); + } + h3 { + margin-top: 33px; + text-align: center; } } - -.analytics .widget-item .content.accounts-assets-summary { - .legend { - text-align: left; - max-height: 115px; - - .title { - text-align: center; - border-bottom: dashed 1px @impac-widget-borders-color; +.analytics .widget-item .content.hr-leaves-schedule{ + .fc-button { + height: 22px; + font-size: 12px; + color: @impac-widget-buttons-color; + background: white; + outline: none; + &:hover { + color: white; + background: @impac-widget-buttons-color; } } + .fc-toolbar { + margin-bottom: 5px; + } + .fc-day-grid,.fc-widget-header { + font-size: 12px; + color: @impac-widget-text-color; + } +} +.analytics .widget-item .content.hr-payroll-summary { + .drill-down-widget(); + .right-panel .widget-lines-container { + max-height: 145px; + } } -.analytics .widget-item .content.accounts-assets-vs-liabilities { - .legend > .title span { - margin-left: 3px; +.analytics .widget-item .content.hr-payroll-taxes { + // Nothing special yet for this template +} +.analytics .widget-item { + .content.hr-salaries-summary { + .expandable-filterable-widget(); } } -.analytics .widget-item .content.accounts-balance { +.analytics .widget-item .content.hr-superannuation-accruals { h3 { - .left-thin(30px); + margin-top: 63px; text-align: center; } - + .legend { + margin-top: 23px; + } + .currency { + font-size: 14px; + } .price { .center-bold(0px); } } - -.analytics .widget-item .content.accounts-balance-sheet { - .tall-widget(); - .widget-lines-container { - .scrollable(scroll); - max-height: 490px; - @media (max-width: @screen-xs-max) { - .row.widget-line { - &:not(:last-child) { border-bottom: dashed 1px @impac-widget-borders-color; } - } - } - .row.widget-line.header > [class*='col-'] { position: static; } - - &.no-scroll { - overflow: visible; - } +.analytics .widget-item .content.hr-timesheets { + .currency { + font-size: 14px; } - - .no-data-block { - .center-thin(); - margin: 15px 0px; + .widget-lines-container { + max-height: 210px; } } +.analytics .widget-item .content.invoices-aged-payables-receivables { + .drill-down-widget(); -.analytics .widget-item .content.accounts-cash-balance { - .tall-widget(); - - .data-container { - height: ~"calc(@{impac-big-widget-size} - 50px)"; - width: 100%; + .right-panel .widget-lines-container { + max-height: 215px; } - .left-panel { - width: 180px; - display: inline-block; - overflow: auto; + .row.astericks-info { + margin-top: 15px; } - #cash-balance-legend { - .header { - .group-item { - display: flex; - align-items: center; - min-height: 45px; - margin: 3px; - font-size: 13px; - padding: 3px; - cursor: pointer; - user-select: none; - &:hover { - background-color: @impac-widget-menus-hover-background-color; - } - i { - font-size: 19px; - padding: 4px; - margin-top: 1px - } - span { color: @impac-widget-text-color; } - } - } + .currency-conversions { + float: right; + margin-left: 3px; } +} - .legend-item-icon { - width: 16px; - height: 16px; +.analytics .widget-item { + .content.hr-workforce-summary { + .expandable-filterable-widget(); } +} - .right-panel { - width: ~"calc(100% - 180px)"; - float: right; +.analytics .widget-item .content.invoices-summary { + .simple-summary-widget(); +} +.analytics .widget-item .content.invoices-list { + .simple-list-widget(); - // Highchart container - .cash-balance-chart { - height: ~"calc(@{impac-big-widget-size} - 50px)"; - } + .currency-conversions { + float: right; + margin-right: 3px; + margin-top: -2px; } - .dates-picker { - display: inline-block; + .fa.fa-info-circle { float: right; - font-size: 12px; + font-size: 15px; + } + + .right-column { + padding-left: 0px; + padding-right: 0px; } } -.analytics .widget-item .content.accounts-cash-projection { +.analytics .widget-item .content.sales-aged { .tall-widget(); - .cash-projection-chart { - height: ~"calc(@{impac-big-widget-size} - 50px)"; + .widget-lines-container { + max-height: 238px; } +} - .highcharts-legend-item { - rect.highcharts-point { - display: none; +.analytics .widget-item .content.sales-break-even { + .price { + .center-bold(0px); + } + .block { + margin: 5px; + padding: 0px 10px 5px 10px; + text-align: left; + box-shadow: 0px 7px 10px -7px #17262d; + font-size: 12px; + form.editable-wrap .editable-controls input { + margin-top: 5px; + width: 100px; } - - span { - width: 110px; - text-align: center; - img { - text-align: center; - width: 55px; - height: 25px; + &.to-date { + background-color: @impac-widget-sub-bg-color; + color: @impac-widget-text-color; + } + &.to-breakeven { + margin-top: 10px; + background-color: @impac-widget-sales-break-even-bg; + color: @impac-widget-sales-break-even-text-color; + .title { + border-bottom: solid 1px lighten(@impac-widget-sales-break-even-bg, 10%); + } + .define-text { + .center-thin(); + padding-top: 5px; + color: @impac-widget-sales-break-even-text-color; + } + .price { + color: @impac-widget-sales-break-even-text-color; } } - } - - .dates-picker { - display: inline-block; - float: right; - font-size: 12px; - } - transactions-list { - font-size: 12px; + .title { + font-size: 13px; + text-align: center; + font-variant: small-caps; + border-bottom: solid 1px @lightgray; + font-weight: 300; + } } } - -.analytics .widget-item .content.accounts-cash-summary { +.analytics .widget-item .content.sales-comparison { .drill-down-widget(); + .widget-lines-container { + max-height: 530px; + } .right-panel .widget-lines-container { - max-height: 215px; + max-height: 250px; } - - .row.lines-group.cash { - border-top: solid 1px; - border-bottom: double; + .currency-conversions { + img { margin-top: -2px; } } } -.analytics .widget-item .content.accounts-class-comparison { - .param-selector { - text-align: center; - } - .widget-lines-container { - max-height: 94px; - color: #626d6d; +.analytics .widget-item .content.sales-customer-details { + .loader { + font-size: 14px; } -} - -.analytics .widget-item .content.accounts-comparison { - .tall-widget(); - - .chart-container { - @media print { max-width: 80% !important; } + font-size: 12px; + .details-container { + padding: 0px; + @media (min-width: @screen-md-min) { max-height: 194px; } + overflow-y: auto; + overflow-x: hidden; } - - .add-account { - position: absolute; - right: 40px; - bottom: 30px; - width: 160px; - select { - font-size: 13px; - background-color: @impac-widget-link-color; - color: @impac-widget-background-color; - outline: none; - border: none; - cursor: pointer; - &[disabled] { - cursor: not-allowed; - background-color: lighten(@impac-widget-link-color,10%); - &:hover { - background-color: lighten(@impac-widget-link-color,10%); - } - } - &:hover { - background-color: darken(@impac-widget-link-color,10%); - } - option { - background-color: @impac-widget-background-color; - color: lighten(@impac-widget-text-color,40%); - &[disabled] { - color: @impac-widget-background-color; - } - } + .right-panel { + .details-container { + @media (min-width: @screen-md-min) { max-height: 230px; } + } + .legend { + margin-bottom: 5px; } } - button.close { - font-size: 15px; - } - .legend { - text-align: left; - max-height: 103px; - } - .row { - margin: 0; - } - .widget-lines-container { - font-size: 11px; - max-height: @impac-widget-accounts-comparison-lines-container-max-height; - margin-bottom: 65px; - overflow: auto; + .row.title { + text-align: center; + margin-bottom: 10px; + font-size: 14px; } - .settings.params-checkboxes { - margin-left: 13px; + .currency-conversions { + float: left; + margin-right: 3px; } +} - .comparable-error h5 { - margin-left: 13px; - color: @impac-negative; +.analytics .widget-item .content.sales-cycle { + .simple-summary-widget(); +} +.analytics .widget-item .content.sales-forecast { + .tall-widget(); + .widget-lines-container { + max-height: 275px; + .widget-line.main { + .selectable(); + } } } -.analytics .widget-item .content.accounts-custom-calculation { - h3 { - margin-top: 85px; - text-align: center; - font-weight: bold; +.analytics .widget-item .content.sales-growth { + .price { + .center-bold(0px); + } + .legend { + max-height: 49px; + font-size: 14px; + text-overflow: ellipsis; + white-space: nowrap; } - .legend { max-height: 125px; } } -.analytics.modal-custom-calculation { - margin: 0px; - padding: 0px; +.analytics .widget-item .content.sales-leads-funnel { + .funnel-widget(); } -.analytics.modal-custom-calculation .modal-body { - .edit { - .edit-panel-style(); - padding: 5px; - overflow: visible; +.analytics .widget-item .content.sales-leads-list { + .simple-list-widget(); + .widget-lines-container { + .scrollable(scroll); } } - -.analytics .widget-item .content.accounts-detailed-classifications { - .tall-widget(); +.analytics .widget-item .content.sales-list { + .simple-list-widget(); .widget-lines-container { .scrollable(scroll); - max-height: 540px; - } - - .account-class-title { - margin-bottom: 8px; - margin-left: 11px; + max-height: 170px; + &.no-scroll { + overflow: visible; + } } - - .time-period-info { - text-align: right; + .selector { + margin-bottom: 4px; } - - .widget-line.header.sorting { - border-bottom: 1px solid #ccc; + .currency-conversions { + img { margin-top: -2px; } } } - - -.analytics .widget-item .content.accounts-expense-weight { - .legend { - text-align: left; - max-height: 115px; - - .title { - text-align: center; - } - } +.analytics .widget-item .content.sales-margin { + // Nothing special yet for this template } +.analytics .widget-item .content.sales-net-sales { + .value-container, .operator { + // float: left; + // text-align: center; + line-height: 85px; + } -.analytics .widget-item .content.accounts-expenses-revenue { - .legend { - font-weight: bold; + // .value-container { + // width: 26%; + // } + + .value-container .title { + line-height: 20px; + font-size: 1.2em; + padding: 10px 0px; } - .settings.params-checkboxes { - font-size: 12px; - margin-left: 0px; - text-align: center; + .value-container .value-box { + font-size: 1.3em; + border-radius: 10px; + // border: solid 1px #E4E4E4; + // box-shadow: 1px 1px 1px #C5C5C5; + border-top: solid 1px #C4CACA; + border-bottom: solid 1px #C4CACA; + white-space: nowrap; } -} -.analytics .widget-item .content.accounts-payable-receivable { - h3 { - text-align: center; - } - .legend { - font-weight: bold; - } - .payable { - margin-top: 15px; + .operator { + // @media (min-width: @screen-md-min) { padding-top: 38px; } + padding-top: 38px; + // width: 10%; + font-size: 1.3em; } - .price { - .center-bold(0px); + + .values { + @media (min-width: @screen-md-min) { margin-top: 25px; } } } -.analytics .widget-item .content.accounts-profit-and-loss { - .drill-down-widget(); - .row.lines-group.profit { - border-top: solid 1px; - border-bottom: double; - } +.analytics .widget-item .content.sales-new-vs-existing-customers { - .right-panel .widget-lines-container { - max-height: 215px; + .selector .selector-wrap { + display: inline-block; + margin: 0 5px; + } + .chart-container { + margin-top: 15px; } - .row.widget-line.header > [class*='col-'] { position: static; } -} + .legend { + margin-top: 5px; + font-weight: bold; + max-height: 77px !important; -.analytics .widget-item .content.accounts-ratios { - - .left-panel { - max-height: 230px; - overflow-y: auto; + .row { margin: 0px -5px; &>div { padding: 0px 5px; }} - .separator { - border-bottom: solid 1px @impac-widget-text-color; - width: 75%; - } - .member { - padding-top: 20px; - padding-bottom: 20px; - } - .member .price { - margin-top: 0px; - font-size: 18px; + .total { + color: #5B6667; + font-size: 14px; } - button { outline: none; } } +} - .left-panel.simulation { - .member { - padding-top: 5px; - .legend { display: none; } - .price { text-align: right; } +.analytics .widget-item .content.sales-number-of-leads { + .stats { + margin-top: 35px; + font-size: 18px; + .stat { + margin: 15px 0px 10px 0px; + border-bottom: solid 1px @lightgray; + span.title { + font-weight: bold; + } + span.nominal { + float: right; + text-align: right; + font-weight: 300; + } + span.variation { + float: right; + width: 50px; + text-align: right; + font-style: italic; + font-size: 14px; + font-weight: 300; + margin-top: 2px; + } } - .separator { width: 100%; } } } +.analytics .widget-item .content.sales-opportunities-funnel { + .funnel-widget(); +} -.analytics .widget-item .content.hr-employee-details { - font-size: 12px; - .details-container { - padding: 0px; - max-height: none; - @media (min-width: @screen-md-min) { max-height: 200px; } - .scrollable(); - } - .right-panel { - .details-container { - @media (min-width: @screen-md-min) { max-height: 220px; } - } - .legend { - margin-bottom: 5px; +.analytics .widget-item .content.sales-performance { + .drill-down-widget(); + .right-panel .widget-lines-container { + max-height: 215px; + .widget-line.header { + .selectable(); } } - .title { - text-align: center; - margin-bottom: 10px; - font-size: 14px; - } } -.analytics .widget-item .content.hr-employees-list { - .legend { - margin-bottom: 9px; - } - .widget-lines-container { +.analytics .widget-item .content.sales-segmented-turnover { + h3.right { + margin-top: 55px; text-align: center; - .widget-line { - .alternate-bg(); - } } - .edit { - .widget-lines-container { - text-align: left; - } - } -} -.analytics .widget-item .content.hr-leaves-balance{ - .employee-name { - text-align: center; + .selector { + margin-bottom: 10px; } - .balance { + .analysis { .center-bold(0px); } - h3 { - margin-top: 33px; - text-align: center; - } -} -.analytics .widget-item .content.hr-leaves-schedule{ - .fc-button { - height: 22px; - font-size: 12px; - color: @impac-widget-buttons-color; - background: white; - outline: none; - &:hover { - color: white; - background: @impac-widget-buttons-color; + .widget-lines-container { + max-height: 75px; + .widget-line { + font-size: 11px; } } - .fc-toolbar { - margin-bottom: 5px; - } - .fc-day-grid,.fc-widget-header { - font-size: 12px; - color: @impac-widget-text-color; - } -} -.analytics .widget-item .content.hr-payroll-summary { - .drill-down-widget(); - .right-panel .widget-lines-container { - max-height: 145px; - } -} -.analytics .widget-item .content.hr-payroll-taxes { - // Nothing special yet for this template -} -.analytics .widget-item { - .content.hr-salaries-summary { - .expandable-filterable-widget(); + .right-panel { + h3 { + margin: 15px 10px 5px 10px; + text-align: center; + } + + .fa.fa-info-circle { float: left; } } } -.analytics .widget-item .content.hr-superannuation-accruals { - h3 { - margin-top: 63px; - text-align: center; - } - .legend { - margin-top: 23px; - } - .currency { - font-size: 14px; - } - .price { - .center-bold(0px); +.analytics .widget-item .content.sales-summary { + .simple-summary-widget(); + .selector { + margin-bottom: 5px; } } -.analytics .widget-item .content.hr-timesheets { - .currency { - font-size: 14px; +.analytics .widget-item .content.sales-top-customers { + .selector { + border-bottom: dashed 1px #E6E6E6; + padding-bottom: 3px; + a { font-weight: normal; } + .param-selector { display: inline-block; } } .widget-lines-container { - max-height: 210px; - } -} -.analytics .widget-item { - .content.hr-workforce-summary { - .expandable-filterable-widget(); - } -} - -.analytics .widget-item .content.invoices-aged-payables-receivables { - .drill-down-widget(); - - .right-panel .widget-lines-container { - max-height: 215px; - } + max-height: 235px; + .widget-line.sub-line { background-color: @impac-widget-sub-bg-color; } - .row.astericks-info { - margin-top: 15px; + // Will allow the params selectors to be displayed on top of the container (without being cut on the right) + .row > [class*='col-'] { position: static; } } - .currency-conversions { - float: right; - margin-left: 3px; + img { margin-top: -2px; } } } -.analytics .widget-item .content.invoices-list { - .simple-list-widget(); - - .currency-conversions { - float: right; - margin-right: 3px; - margin-top: -2px; +.analytics .widget-item .content.sales-top-opportunities { + .opps-container { + max-height: 195px; + margin-top: 10px; + padding-right: 10px; + .scrollable(); + .tile { + height: 40px; + font-size: 13px; + font-weight: 300; + .colored-area { + width: 10%; + text-align: center; + font-size: 20px; + } + .main-text { + color: @impac-widget-text-color; + padding: 3px 0px 0px 10px; + } + &.first { + height: 55px; + font-size: 15px; + font-weight: bold; + .colored-area { + font-size: 26px; + padding-top: 10px; + background-color: rgb(255, 110, 65); + } + .main-text { + padding-top: 8px; + } + } + &.second { + height: 55px; + font-size: 15px; + font-weight: 500; + .colored-area { + font-size: 26px; + padding-top: 10px; + background-color: #1de9b6; + } + .main-text { + padding-top: 8px; + } + } + } } +} +chart-threshold { - .fa.fa-info-circle { - float: right; - font-size: 15px; + .attach-panel { + padding: 5px 0; + display: flex; + justify-content: center; + align-items: center; + background-color: rgba(20, 132, 228, 0.16); + + > .attach-panel-text { + display: inline-block; + & > * { + display: inline-block; + } + } + + .panel-text-label { + text-transform: uppercase; + font-weight: bold; + color: @impac-widget-text-color; + font-size: 13px; + } + .panel-text-input { + border-radius: 3px; + border: 1px white; + padding: 3px; + } + .panel-text-currency { + font-weight: bold; + color: #000; + } } - .right-column { - padding-left: 0px; - padding-right: 0px; + .action-buttons { + display: inline-block; + padding: 0 10px; + button { + padding: 3px 6px; + display: inline-block; + &.loading { + padding: 3px 20px; + } + } } } -.analytics .widget-item .content.invoices-summary { - .simple-summary-widget(); -} -.analytics .widget-item .content.sales-aged { - .tall-widget(); +.analytics .widget-item .editable-title { + width: 100%; + flex: 1; + overflow: hidden; + height: 22px; - .widget-lines-container { - max-height: 238px; + .title { + text-transform: @impac-widget-title-text-transform; + .font(@impac-widget-title-text-size,600,@impac-widget-title-text-color); + cursor: text; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 1.9; + } + + .editable-wrap { + position: relative; + height: 20px; + min-width: 100%; + // otherwise, white-space is overriden in mno-enterprise + white-space: nowrap; + + .editable-controls { + min-width: 100%; + + .editable-input { + height: 20px; + font-size: 12px; + text-transform: @impac-widget-title-text-transform; + // 65px is .editable-buttons width + width: ~"calc(100% - 65px)"; + padding: 0px 3px; + } + + .editable-buttons { + background-color: @impac-widget-title-bg; + button { + margin: 0px 0px 0px 5px; + height: 20px; + padding: 0px 5px; + } + } + } } } -.analytics .widget-item .content.sales-break-even { - .price { - .center-bold(0px); +.currency-conversions { + img { + width: 15px; + cursor: pointer; } - .block { - margin: 5px; - padding: 0px 10px 5px 10px; - text-align: left; - box-shadow: 0px 7px 10px -7px #17262d; + + &.popover .popover-title { + background-color: black; + color: white; + } +} + +.analytics .widget-item .info-panel { + position: absolute; + top: 15px; + left: 15px; + width: ~"calc(100% - 30px)"; + max-height: ~"calc(100% - 30px)"; + height: 100%; + z-index: 100; + + background-color: white; + border: dotted 1px #B7CDCE; + + display: flex; + flex-direction: column; + font-family: "Lato Semibold", "Lato"; + + z-index: 4; + + &:hover { opacity: 1; } + + .i-header { + .fa { font-size: 18px; } + .fa-info-circle { float: left; } + .fa-times-circle { cursor: pointer; float: right; } + + background-color: #FFC928; + color: @impac-widget-reverse-color; + padding: 8px; + text-transform: uppercase; + font-family: "Lato Medium", "Lato"; font-size: 12px; - form.editable-wrap .editable-controls input { - margin-top: 5px; - width: 100px; - } - &.to-date { - background-color: @impac-widget-sub-bg-color; - color: @impac-widget-text-color; - } - &.to-breakeven { - margin-top: 10px; - background-color: @impac-widget-sales-break-even-bg; - color: @impac-widget-sales-break-even-text-color; - .title { - border-bottom: solid 1px lighten(@impac-widget-sales-break-even-bg, 10%); - } - .define-text { - .center-thin(); - padding-top: 5px; - color: @impac-widget-sales-break-even-text-color; + } + + .i-content { + .scrollable(); + padding: 5px; + text-align: justify; + flex: 1; + + .row { + margin-bottom: 6px; + padding-bottom: 6px; + border-bottom: solid 1px @impac-dashboard-borders-color; + + &:last-child { + margin-bottom: 0; + padding-bottom: 0; + border-bottom: none; } - .price { - color: @impac-widget-sales-break-even-text-color; + + .key { + @media (max-width: @screen-sm-max) { text-align: center; } + text-align: right; + font-variant: small-caps; } - } - .title { - font-size: 13px; - text-align: center; - font-variant: small-caps; - border-bottom: solid 1px @lightgray; - font-weight: 300; + .value { text-align: justify; } } } } -.analytics .widget-item .content.sales-comparison { - .drill-down-widget(); - .widget-lines-container { - max-height: 530px; - } - .right-panel .widget-lines-container { - max-height: 250px; - } - .currency-conversions { - img { margin-top: -2px; } - } + +.analytics .time-period-info { + font-size: 11px; + color: #ABC4C6; + text-transform: uppercase; } -.analytics .widget-item .content.sales-customer-details { - .loader { - font-size: 14px; +.analytics .widget-item .top-line .top-buttons { + text-align: right; + margin-top: -1px; + white-space: nowrap; + padding-left: 10px; + + .top-buttons-wrapper { + .top-button { + background: transparent; + border: none; + color: @impac-widget-top-buttons-color; + padding: 0; + outline: none; + width: 17px; + + &:active, &:focus { box-shadow: none; } + + &.btn-info { + font-size: 17px; + margin-top: 1px; + &:hover { color: #FFC928; } + } + &.btn-refresh { + font-size: 17px; + margin-top: 1px; + &:hover { color: @mblue; } + } + &.btn-edit { + font-size: 13px; + &:hover, &.edit-mode { color: darken(@mgreen,10%); } + } + &.btn-close { + font-size: 13px; + &:hover { color: @pink; } + } + } } - font-size: 12px; - .details-container { - padding: 0px; - @media (min-width: @screen-md-min) { max-height: 194px; } - overflow-y: auto; - overflow-x: hidden; +} + +.analytics .widget-item .content .settings.select-account { + padding: 0px 5px; +} +.analytics .settings.accounting-behaviour { + + .btn.btn-primary { + background-color: lighten(@impac-widget-link-color, 10%); + border: solid 1px @impac-widget-link-color; + &.focus, &.active { background-color: @impac-widget-link-color; } } - .right-panel { - .details-container { - @media (min-width: @screen-md-min) { max-height: 230px; } + +} + +.analytics .settings.attach-kpis { + .attach-kpi { + padding: 8px 5px; + + form .row { + padding-bottom: 5px; } - .legend { - margin-bottom: 5px; + + .attach-kpi-form { + background-color: white; + border: 1px solid #ddd; + padding: 5px; + } + + form .row.kpi-description { + padding: 10px 2px; + span { + display: block; + font-weight: bold; + font-size: 13px; + } + } + + form.attach-kpi-form { + input.attach-target { + background-color: white; + height: inherit; + } + } + + .error-messages { + color: @brand-danger; + width: 120px; } } - .row.title { - text-align: center; - margin-bottom: 10px; - font-size: 14px; + + .attached-kpis { + padding: 5px; } - .currency-conversions { - float: left; - margin-right: 3px; + .list-group-item.attached-kpi { + padding: 5px 10px; + + .attached-kpi-name { + overflow: hidden; + width: 75%; + display: inline-block; + white-space: nowrap; + text-overflow: ellipsis; + margin-top: 3px; + font-size: 13px; + font-weight: bold; + } + + .actions { + padding-top: 2px; + .alerts-config { + display: inline-block; + text-align: left; + padding-left: 4px; + height: 20px; + border-radius: 40px; + width: 21px; + color: @mblue; + background-color: white; + border: solid 1px @mblue; + + &:hover { cursor: pointer; } + } + .edit-attached-kpi { + display: inline-block; + i { + border-radius: 10px; + width: 21px; + color: @mblue; + background-color: white; + height: 20px; + padding: 3px 5px 5px 5px; + border: solid 1px @mblue; + &:hover { cursor: pointer; } + } + } + .remove-attached-kpi { + display: inline-block; + i { + border-radius: 10px; + width: 21px; + color: @brand-danger; + background-color: white; + height: 20px; + padding: 3px 5px 5px 5px; + border: solid 1px @brand-danger; + &:hover { cursor: pointer; } + } + } + } } } -.analytics .widget-item .content.sales-cycle { - .simple-summary-widget(); +.analytics .widget-item .content .settings.select-account { + padding: 0px 5px; } -.analytics .widget-item .content.sales-forecast { - .tall-widget(); - .widget-lines-container { - max-height: 275px; - .widget-line.main { - .selectable(); - } +.analytics .settings.dates-picker { + h5 { display: none; } + + button.btn.btn-sm { + line-height: 1; + &.date-button { margin: 0px 5px; } + &.btn-danger { display: none; } + &.btn-info { border-radius: 3px; } } + + .tooltip-inner { text-transform: none; } + + .dropdown-menu > li > div > table { outline: none; } } -.analytics .widget-item .content.sales-growth { - .price { - .center-bold(0px); +.analytics .widget-item .content .settings.chart-filters { + .row { + margin: 0px; } - .legend { - max-height: 49px; - font-size: 14px; - text-overflow: ellipsis; - white-space: nowrap; + input[type="radio"] { + margin: 0; + margin-right: 3px; + padding: 0; + width: 13px; + height: 13px; + vertical-align: middle; + position: relative; + top: -1px; + outline: none; + } + input[type="range"] { + height: auto; + width: 100%; } } -.analytics .widget-item .content.sales-leads-funnel { - .funnel-widget(); -} +.analytics .widget-item .content .settings.hist-mode-choser { + max-height: 70px; -.analytics .widget-item .content.sales-leads-list { - .simple-list-widget(); - .widget-lines-container { - .scrollable(scroll); + [common-time-period-info] { + padding-bottom: 8px; } -} -.analytics .widget-item .content.sales-list { - .simple-list-widget(); - .widget-lines-container { - .scrollable(scroll); - max-height: 170px; - &.no-scroll { - overflow: visible; + + .options { + width: 150px; + margin: auto; + padding-bottom: 8px; + border-bottom: solid 1px #e6e6e6; + .font(@impac-widget-hist-text-size,500,@impac-widget-hist-text-color); + a { + .font(@impac-widget-hist-text-size,500,@impac-widget-hist-text-color); + text-transform: @impac-widget-hist-text-transform; + &.active { + color: @impac-widget-link-color; + } } } - .selector { - margin-bottom: 4px; - } - .currency-conversions { - img { margin-top: -2px; } + .arrow-container { + width: 28px; + height: 28px; + position: relative; + top: -14px; + margin: auto; + &.right { + left: 46px; + } + &.left { + left: -30px; + } + .arrow-border { + border-top: 14px solid #e6e6e6; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + width: 0px; + height: 0px; + } + .arrow { + border-top: 14px solid @impac-widget-background-color; + border-left: 14px solid transparent; + border-right: 14px solid transparent; + position: relative; + top: 12px; + width: 0px; + height: 0px; + } } } -.analytics .widget-item .content.sales-margin { - // Nothing special yet for this template -} -.analytics .widget-item .content.sales-net-sales { - .value-container, .operator { - // float: left; - // text-align: center; - line-height: 85px; - } - - // .value-container { - // width: 26%; - // } +.analytics .settings.limit-entries { + color: @impac-widget-limit-entries-color; + text-transform: uppercase; + text-align: center; + border-bottom: dashed 1px #E6E6E6; + padding-bottom: 8px; - .value-container .title { - line-height: 20px; - font-size: 1.2em; - padding: 10px 0px; + a.option { + &.badge { + color: white; + background-color: @impac-widget-limit-entries-color; + } } - .value-container .value-box { - font-size: 1.3em; - border-radius: 10px; - // border: solid 1px #E4E4E4; - // box-shadow: 1px 1px 1px #C5C5C5; - border-top: solid 1px #C4CACA; - border-bottom: solid 1px #C4CACA; - white-space: nowrap; - } +} - .operator { - // @media (min-width: @screen-md-min) { padding-top: 38px; } - padding-top: 38px; - // width: 10%; - font-size: 1.3em; +.analytics .settings.offsets { + .offset-value { + font-style: italic; + font-size: 13px; } - .values { - @media (min-width: @screen-md-min) { margin-top: 25px; } + .offset-value .fa-trash-o { + &:hover { + color: @brand-danger; + cursor: pointer; + } + margin-left: 10px; } + + input { width: 75%; } + button { width: 30px; } } -.analytics .widget-item .content.sales-number-of-leads { - .stats { - margin-top: 35px; - font-size: 18px; - .stat { - margin: 15px 0px 10px 0px; - border-bottom: solid 1px @lightgray; - span.title { - font-weight: bold; - } - span.nominal { - float: right; - text-align: right; - font-weight: 300; - } - span.variation { +.analytics .settings.organizations { + .widget-lines-container { + .widget-line { + padding: 5px 10px 5px 18px; + .alternate-bg(#f3f4f4); + .fa { float: right; - width: 50px; - text-align: right; - font-style: italic; - font-size: 14px; - font-weight: 300; - margin-top: 2px; + font-size: 20px; + cursor: pointer; + &.fa-toggle-on, &.fa-check-circle { + color: @impac-widget-link-color; + } + &.fa-toggle-off, &.fa-circle-thin { + color: @impac-widget-text-color-medium; + } } } } -} -.analytics .widget-item .content.sales-new-vs-existing-customers { +} + +.analytics .widget-item .content .settings.param-selector { + display: inline-block; + + &.classic { + width: 100%; + + select { + width: 100%; + height: 25px; + border: 1px solid #ccc; + text-transform: uppercase; + margin: 0px 0px 5px 0px; + } + } - .selector .selector-wrap { - display: inline-block; - margin: 0 5px; - } - .chart-container { - margin-top: 15px; + a { + font-weight: normal; + color: @impac-widget-param-selector-color; + white-space: nowrap; } + .options-container { + position: absolute; + background-color: white; + text-align: left; + min-width: 150px; + max-height: 200px; + z-index: 999; + overflow-y: auto; + overflow-x: hidden; + .box-shadow(rgb(0, 0, 0) 0px 3px 15px -3px); - .legend { - margin-top: 5px; - font-weight: bold; - max-height: 77px !important; - - .row { margin: 0px -5px; &>div { padding: 0px 5px; }} - - .total { - color: #5B6667; - font-size: 14px; + .param-selector-label { + padding: 3px 5px; + .font(inherit,500,black); + cursor: text; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 1.9; + } + .param-selector-label:hover { + cursor: pointer; + background-color: @impac-widget-param-selector-color; + color: white; } - } -} -.analytics .widget-item .content.sales-opportunities-funnel { - .funnel-widget(); -} + &::-webkit-scrollbar { + width: 8px; + background-color: darken(@lightgray,5%); + } -.analytics .widget-item .content.sales-performance { - .drill-down-widget(); - .right-panel .widget-lines-container { - max-height: 215px; - .widget-line.header { - .selectable(); + &::-webkit-scrollbar-thumb { + background-color: @impac-widget-param-selector-color; + &:hover { + background-color: lighten(@impac-widget-param-selector-color,5%); + } } } } -.analytics .widget-item .content.sales-segmented-turnover { - h3.right { - margin-top: 55px; - text-align: center; - } - .selector { - margin-bottom: 10px; +.analytics .settings.params-checkboxes { + padding: 2px 0px; + input { + margin: 0; + height: inherit; } - .analysis { - .center-bold(0px); + span { + margin-left: 5px; } - .widget-lines-container { - max-height: 75px; - .widget-line { - font-size: 11px; - } + label { + display: flex; + justify-content: center; + line-height: 14px; } +} - .right-panel { - h3 { - margin: 15px 10px 5px 10px; - text-align: center; +.analytics .widget-item .content .settings.params-picker { + padding: 0px 10px; + .parameter { + margin: 0px 3px 3px 0px; + padding: 3px 5px; + background-color: @impac-widget-params-picker-bg; + color: white; + border: solid 1px @impac-widget-params-picker-bg; + border-radius: 4px; + cursor: move; + font-weight: bold; + white-space: nowrap; + float: left; + input[type="checkbox"] { + margin: 0px -3px 0px 3px; + vertical-align: middle; + height: inherit; + outline: none; + cursor: pointer; + } + .badge { + margin-right: 3px; + font-size: 10px; + background-color: darken(@impac-widget-background-color, 5%); + color: @impac-widget-params-picker-bg; + padding: 2px 6px; } - .fa.fa-info-circle { float: left; } + &.unchecked { + background-color: inherit; + font-weight: normal; + color: inherit; + border-color: @impac-widget-params-picker-unchecked-bg; + .badge { + background-color: @impac-widget-params-picker-unchecked-bg; + color: white; + } + } } } +.analytics .settings.tag-filter { + padding: 0px 5px; -.analytics .widget-item .content.sales-summary { - .simple-summary-widget(); - .selector { - margin-bottom: 5px; + .btn.btn-default { + height: 32px; + width: 30px; } -} -.analytics .widget-item .content.sales-top-customers { - .selector { - border-bottom: dashed 1px #E6E6E6; - padding-bottom: 3px; - a { font-weight: normal; } - .param-selector { display: inline-block; } + + .tag-lines-container { + padding: 0px 10px; + + .tag-line { + display: flex; + align-items: center; + justify-content: flex-end; + + .tags-col { position: static; } + + tags-input { + .tags { + display: flex; + border-radius: 4px; + border: solid 1px #ccc; + .tag-item { + background: #79a2bb; + border-radius: 4px; + color: white; + } + } + } + + .host { position: static; } + } } - .widget-lines-container { - max-height: 235px; - .widget-line.sub-line { background-color: @impac-widget-sub-bg-color; } +} - // Will allow the params selectors to be displayed on top of the container (without being cut on the right) - .row > [class*='col-'] { position: static; } +.analytics .settings.time-period { + padding: 0px 5px; + + select { + height: 22px; + width: 100%; } - .currency-conversions { - img { margin-top: -2px; } + + & > .row { + margin: 0px -5px 7px -5px; + & > div { + padding: 0px 5px; + position: static; + } + + .sub-setting { padding: 5px; } } } -.analytics .widget-item .content.sales-top-opportunities { - .opps-container { - max-height: 195px; - margin-top: 10px; - padding-right: 10px; - .scrollable(); - .tile { - height: 40px; - font-size: 13px; - font-weight: 300; - .colored-area { - width: 10%; - text-align: center; - font-size: 20px; - } - .main-text { - color: @impac-widget-text-color; - padding: 3px 0px 0px 10px; - } - &.first { - height: 55px; - font-size: 15px; - font-weight: bold; - .colored-area { - font-size: 26px; - padding-top: 10px; - background-color: rgb(255, 110, 65); - } - .main-text { - padding-top: 8px; - } - } - &.second { - height: 55px; - font-size: 15px; - font-weight: 500; - .colored-area { - font-size: 26px; - padding-top: 10px; - background-color: #1de9b6; - } - .main-text { - padding-top: 8px; - } - } +.analytics .widget-item .content .settings.width { + float: right; + font-size: 14px; + i { + color: silver; + cursor: pointer; + &.reduce { + margin-right: -10px; + } + &.expand { + margin-right: -3px; } } } \ No newline at end of file diff --git a/dist/impac-angular.min.css b/dist/impac-angular.min.css index 91aca113..1dedae99 100644 --- a/dist/impac-angular.min.css +++ b/dist/impac-angular.min.css @@ -2,4 +2,4 @@ * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.label,sub,sup{vertical-align:baseline}hr,img{border:0}body,figure{margin:0}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.btn,.kpi-alerts-settings .modal-body ul>li.list-group-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.analytics .impac-kpi .kpi.add .kpi-text .emphasis,.invisible{visibility:hidden}.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea,.analytics kpis-bar>.kpis .actions .im-form-group textarea{resize:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;color:#00e5f0;text-decoration:none}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}.img-thumbnail,body{background-color:#fff}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}sub,sup{font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}.glyphicon,address{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}td,th{padding:0}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a:focus,a:hover{color:#009ca3;text-decoration:underline}a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#00e5f0}a.text-primary:focus,a.text-primary:hover{color:#00b4bd}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#00e5f0}a.bg-primary:focus,a.bg-primary:hover{background-color:#00b4bd}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{border-collapse:collapse;border-spacing:0}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{margin:0;min-width:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-primary .badge{color:#00e5f0;background-color:#fff}.btn-success{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-success .badge{color:#00e5f0;background-color:#fff}.btn-info{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-info .badge{color:#00e5f0;background-color:#fff}.btn-warning{color:#fff;background-color:#977bf0;border-color:#8564ed}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#734deb;border-color:#3d15bd}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#734deb;border-color:#5a2de7}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#5a2de7;border-color:#3d15bd}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#977bf0;border-color:#8564ed}.btn-warning .badge{color:#977bf0;background-color:#fff}.btn-danger{color:#fff;background-color:#e01f74;border-color:#ca1c68}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#b3195d;border-color:#5a0c2e}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#b3195d;border-color:#94144d}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#94144d;border-color:#5a0c2e}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#e01f74;border-color:#ca1c68}.btn-danger .badge{color:#e01f74;background-color:#fff}.btn-link{color:#00e5f0;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#009ca3;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#00e5f0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#00e5f0}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#00e5f0}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#00e5f0;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#009ca3;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#00e5f0;border-color:#00e5f0;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;cursor:pointer;text-decoration:none}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#00e5f0}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#00b4bd}.label-success{background-color:#00e5f0}.label-success[href]:focus,.label-success[href]:hover{background-color:#00b4bd}.label-info{background-color:#00e5f0}.label-info[href]:focus,.label-info[href]:hover{background-color:#00b4bd}.label-warning{background-color:#977bf0}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#734deb}.label-danger{background-color:#e01f74}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#b3195d}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#00e5f0;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#00e5f0}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar,.progress-bar-info,.progress-bar-success{background-color:#00e5f0}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#977bf0}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#e01f74}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#00e5f0;border-color:#00e5f0}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#bdfcff}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#00e5f0}.panel-primary>.panel-heading{color:#fff;background-color:#00e5f0;border-color:#00e5f0}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#00e5f0}.panel-primary>.panel-heading .badge{color:#00e5f0;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#00e5f0}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-content,.popover{background-clip:padding-box}.modal{display:none;position:fixed;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;text-align:left;text-align:start;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.top .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.top-left .tooltip-arrow{right:5px;margin-bottom:-5px}.tooltip.top-right .tooltip-arrow{left:5px;margin-bottom:-5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;text-align:start;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.left>.arrow:after,.popover.right>.arrow:after{content:" ";bottom:-10px}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{left:1px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.analytics h2,.analytics h3{font-size:14px;color:#5B6667}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}.top-buffer-1{margin-top:15px}.top-buffer-2{margin-top:30px}.top-buffer-3{margin-top:45px}.top-buffer-4{margin-top:60px}.top-buffer-5{margin-top:75px}.top-buffer-6{margin-top:90px}.top-buffer-7{margin-top:105px}.top-buffer-8{margin-top:120px}.top-buffer-9{margin-top:135px}.top-buffer-10{margin-top:150px}body{height:101%!important}.analytics h2{margin-top:2px}.analytics h3{margin:0;font-weight:300;text-align:left}.analytics h4{color:#5B6667;font-size:16px}.analytics .green,.analytics .positive{color:green!important}.analytics .negative,.analytics .red{color:#ed1e79!important}.analytics .positive2{color:#3fc4ff!important}.analytics .negative2{color:#1de9b6!important}.analytics a{font-weight:700;color:#977bf0;cursor:pointer}.analytics .input-group{width:100%}.analytics select{margin-top:5px;background-color:#fff;height:32px}.analytics pre{font-size:12px;padding:0;margin:1px 0 8px;border:none;white-space:pre-wrap;word-wrap:break-word;overflow:hidden}.analytics .widget-item .content ::-webkit-scrollbar,.analytics kpis-bar .kpi ::-webkit-scrollbar{width:6px;background-color:transparent}.analytics .widget-item .content ::-webkit-scrollbar-thumb,.analytics kpis-bar .kpi ::-webkit-scrollbar-thumb{background-color:#6896b2;border-radius:10px}.analytics .widget-item .content ::-webkit-scrollbar-thumb:hover,.analytics kpis-bar .kpi ::-webkit-scrollbar-thumb:hover{background-color:#79a2bb}.analytics .nopadding{padding:0}.analytics .nomargin{margin:0}.analytics .btn.btn-shaded{background-color:#17262d;border:1px solid #0e181c;color:#626d6d;font-weight:400}.analytics .btn.btn-shaded:hover{color:#6e7a7a;background-color:#20343e}.analytics .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:30px}.analytics .currency{font-weight:300;font-size:16px;text-align:center;color:#9ba6a7}.analytics .legend{font-weight:300;font-size:12px;text-align:center;overflow-y:auto;overflow-x:hidden;color:#c4caca}.analytics .loader{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.analytics .loader i{color:#67BBE9}.analytics .loader p{margin-top:10px}.analytics .right-panel{border-left:solid 1px #e6e6e6}.analytics .selector{text-transform:uppercase;font-size:12px;color:#626d6d;text-align:center}.analytics .tile{background-color:#f7f7f7;box-shadow:0 7px 10px -7px #17262d;height:45px;margin-bottom:10px;white-space:nowrap;cursor:pointer}.analytics .tile:hover{background-color:#e2f2ff}.analytics .tile .colored-area{background-color:#3FC4FF;height:100%;float:right;color:#fff;text-align:right;padding:5px 10px;min-width:8%}.analytics .tile .colored-area.selected{background-color:#977bf0}.analytics .tile .main-text{color:#5B6667;padding:20px 0 0 5px;height:100%;font-style:italic;font-weight:700}.analytics .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:200px;text-align:left;font-size:12px;padding:0 15px}.analytics .widget-lines-container .row.widget-line{padding:5px;color:#626d6d}.analytics .widget-lines-container .row.widget-line.header{font-weight:500;font-size:12px;color:#9ba6a7;text-transform:uppercase}@media (max-width:767px){.analytics .widget-lines-container .row.widget-line{margin:inherit;margin-left:-3px;margin-right:-3px;padding:2px}.analytics .widget-lines-container .row.widget-line>[class*=col-]{padding-left:3px;padding-right:3px}}.analytics .widget-lines-container .row.widget-line i.fa{min-width:12px;min-height:12px}.analytics .widget-lines-container .row .dashed{border-bottom:dashed 1px #dfe2e2;padding-bottom:3px;margin-bottom:3px}.analytics .widget-lines-container .row.lines-group{border-top:solid 1px #e6edee}.vertical-scroll{overflow-y:scroll}.horizontal-scroll{overflow-x:scroll}.tooltip.impac-widgets-tooltip .tooltip-inner.ng-binding{text-align:left;background-color:#232528;max-width:100%;white-space:nowrap}.tooltip.impac-widgets-tooltip .tooltip-inner.ng-binding strong{color:#dae173}.sortable-title{cursor:pointer}.sortable-title div{display:inline-block}.has-error .form-control,.has-error .form-control:focus{border-color:#e01f74}.has-success .form-control,.has-success .form-control:focus{border-color:#00e5f0}.row.no-gutters{margin-right:0;margin-left:0}[class*=" col-"].no-gutters,[class^=col-].no-gutters{padding-right:0;padding-left:0}@media print{body{background-color:#fff!important}.analytics{padding-top:0!important}.analytics #module__dashboard-selector .title-container{margin-top:20px}.analytics .widget-item{page-break-inside:avoid}.analytics .widget-item .content .chart-container{max-width:270px;margin:auto}.analytics .widget-item .content .chart-container canvas{width:100%!important;height:100%!important}.analytics .widget-item .right-panel{page-break-inside:avoid;border-left:0}.analytics .widget-item .right-panel .chart-container{max-width:inherit;max-height:inherit}.analytics .widget-item .right-panel .chart-container canvas{width:80%!important;height:80%!important}*{-webkit-transition:none!important;transition:none!important}}.kpi-alerts-settings .modal-header{font-size:20px}.kpi-alerts-settings .modal-body{line-height:2}.kpi-alerts-settings .modal-body ul{margin-top:10px}.kpi-alerts-settings .modal-body ul>li.list-group-item{list-style:none;padding:6px 15px;color:#9ba6a7;user-select:none}.kpi-alerts-settings .modal-body ul>li.list-group-item .alert-toggle:hover{cursor:pointer}.kpi-alerts-settings .modal-body ul>li.list-group-item.active{color:#358fdc;font-weight:700;background-color:transparent;border-color:#c4caca}.kpi-alerts-settings .modal-body .fa.fa-toggle-off,.kpi-alerts-settings .modal-body .fa.fa-toggle-on{font-size:17px;margin-right:8px}.kpi-alerts-settings .modal-body ul.recipients-list{height:75px;overflow:hidden;overflow-y:scroll;border:1px solid #c4caca}.kpi-alerts-settings .modal-body ul.recipients-list li{border:none}.kpi-alerts-settings .modal-body input.recipient-search{color:#000;width:100%}.kpi-alerts-settings .modal-body ul.available{margin-top:0}.analytics{padding-top:50px;margin-left:100px}@media screen and (max-width:992px){.analytics{padding-top:150px}}.analytics.pdf-mode{padding-top:20px}.analytics.show-dhb{-webkit-transition:opacity 1s;transition:opacity 1s;opacity:1}.analytics.hide-dhb{opacity:0}.analytics #dashboard-heading img{float:left;margin-right:15px;max-width:200px;max-height:150px}.analytics #dashboard-heading img.pdf-mode:hover{cursor:pointer}.analytics #dashboard-heading .caption{font-size:14px;margin:5px 0}.analytics #sub-menu{margin-top:15px}.analytics #sub-menu h3{font-size:26px;font-weight:400;margin-bottom:10px;color:#233845}.analytics #sub-menu .fa.fa-times{margin:6px;color:#3d6178;cursor:pointer;float:right}.analytics #widget-selector{background-color:#233845;color:#fff;padding:0 45px 10px;margin:10px -45px;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}@media (max-width:767px){.analytics #widget-selector{padding:0 15px 10px;margin:0}}.analytics #widget-selector .title{padding:15px 0;border-bottom:solid 1px #2d4859;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.analytics #widget-selector .title p.instruction{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0}@media screen and (max-width:768px){.analytics #widget-selector .title p.instruction{width:50%;font-size:13px}}.analytics #widget-selector .title .widget-added.badge{margin-right:10px;opacity:0}.analytics #widget-selector .title .fa.close-selector{float:right;cursor:pointer;font-size:20px;padding:6px}.analytics #widget-selector .title .fa.close-selector:hover{color:#999}.analytics #widget-selector .top-container{margin:15px 0;background-color:transparent;border-radius:3px}.analytics #widget-selector .section-header{padding:10px 20px;font-weight:700;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.analytics #widget-selector .section-lines{overflow-x:hidden;overflow-y:auto;height:200px;margin-right:-10px;margin-left:0}.analytics #widget-selector .section-lines p{padding:5px;margin:0;cursor:pointer}.analytics #widget-selector .section-lines p.selected,.analytics #widget-selector .section-lines p:hover{color:#fff}.analytics #widget-selector .section-lines::-webkit-scrollbar{width:6px;background-color:transparent}.analytics #widget-selector .section-lines::-webkit-scrollbar-thumb{background-color:#28404f;border-radius:10px}.analytics #widget-selector .section-lines::-webkit-scrollbar-thumb:hover{background-color:#2d4859}.analytics #widget-selector .categories-section{background-color:#192831;padding-bottom:15px}.analytics #widget-selector .categories-section>.section-lines>[class*=col-]:first-child{padding:3px 12px}.analytics #widget-selector .categories-section>.section-lines .line-item:hover{background-color:#1e303b}.analytics #widget-selector .categories-section>.section-lines .line-item.selected{background-color:#977bf0;font-weight:700;box-shadow:-2px 2px 10px -4px #000}.analytics #widget-selector .categories-section .arrow-icon{position:absolute;top:33px;right:-11px;z-index:1}.analytics #widget-selector .categories-section .arrow-icon .square{width:50px;height:30px;position:absolute;top:10px;right:17px;background-color:#977bf0}.analytics #widget-selector .categories-section .arrow-icon i.fa.fa-caret-right{font-size:52px;color:#977bf0;float:right;position:absolute;top:-1.5px;right:0}.analytics #widget-selector .widgets-section{background-color:#1e303b;padding-bottom:15px}.analytics #widget-selector .widgets-section>.section-header{text-transform:uppercase;font-size:12px;color:#977bf0}.analytics #widget-selector .widgets-section>.section-lines{padding:3px 0}.analytics #widget-selector .widgets-section>.section-lines .fa.fa-plus-circle{float:right;margin-top:3px}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:0%}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item{padding:0 13px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 31.33%;flex:0 31.33%;margin:0 1%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:solid 1px #233845;min-height:0}@media screen and (max-width:992px){.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item{-webkit-box-flex:0;-ms-flex:0 100%;flex:0 100%}}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item:hover{background-color:#192831;font-weight:400}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item p.line-item{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.analytics #widget-selector .bottom{height:20px}.analytics #widget-selector .bottom>.suggestion{float:right;opacity:.7}.analytics #widget-selector .bottom>.suggestion a{cursor:pointer}.analytics #widget-selector .bottom>.suggestion a:hover{color:#00e5f0}.analytics #widget-selector .bottom>.suggestion:hover{opacity:1}.analytics #dashboard-settings-panel{position:relative;margin-top:5px}.analytics #dashboard-settings-panel>div{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.analytics #dashboard-settings-panel>div>*{margin:0 3px}.analytics #dashboard-settings-panel select{margin:0;height:34px;padding-top:1px}.analytics #no-widgets-container{position:relative;min-height:150px}.analytics #no-widgets-container img.bg{left:0;top:0;min-width:100%;min-height:100%}.analytics #no-widgets-container .impac-info-message{position:absolute;top:0;width:100%}.analytics #no-widgets-container .impac-info-message .info-text{font-size:25px;font-weight:300;padding:20px;min-height:115px;color:#fff;border-radius:10px;background-color:rgba(23,38,45,.7)}.analytics #widgets-section #widgets-container{min-height:700px}.analytics #widgets-section .placeHolderBox{margin:12px;height:267px;width:300px;float:left;border:2px dashed #abc4c6;background:0 0}.analytics.load-failed p{font-size:22px}.analytics.load-failed .second-msg p{color:#e01f74;font-size:14px}.tooltip.impac-widget-selector-tooltip .tooltip-inner.ng-binding{font-size:14px}.dhb-create-modal .dashboard-form .col-sm-2.control-label{text-align:left}.impac-widget-suggestion .modal-body input,.impac-widget-suggestion .modal-body textarea{width:100%;color:#000}.impac-widget-suggestion .modal-body textarea{height:150px}.impac-widget-suggestion .modal-body .thanks-message{color:#dae173}.modal-footer .loader{color:#fff}#module__dashboard-selector a{font-weight:400}#module__dashboard-selector>div:first-child{border-bottom:1px solid #abc4c6}#module__dashboard-selector .buttons-bar-row{margin-top:54px}#module__dashboard-selector .buttons-bar-row.pdf-mode{margin-top:0}#module__dashboard-selector .buttons-bar{padding:0;position:relative}#module__dashboard-selector .buttons-bar .btn{float:right;margin:3px;border-radius:4px}#module__dashboard-selector .buttons-bar .title-container h1{margin:0;color:#000;cursor:auto}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title{color:#977bf0;display:inline;cursor:pointer}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title:hover{color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title i.fa.fa-pencil{margin-left:20px;font-size:14px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title i.fa.fa-pencil:hover{color:#dae173}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select{margin:5px 0 10px 30px;height:auto;border-left:1px solid #977bf0;border-bottom:1px solid #977bf0;width:300px;background-color:#e6edee;cursor:pointer}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option{color:#17262d;white-space:nowrap}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option:hover{background-color:#fff}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option.create{background-color:#977bf0;color:#fff;height:30px;padding:5px 10px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option.create:hover{background-color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option i.fa.fa-pencil{float:right;padding-top:7px;text-align:center;width:15%;height:30px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option i.fa.fa-pencil:hover{color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option span.name{width:85%;height:30px;display:inline-block;padding:5px 10px}#module__dashboard-selector .buttons-bar .dropdown-container .change-name{position:absolute;top:30px;left:20px;width:60%;background-color:#17262d;color:#fff;padding:10px;border-radius:4px;text-align:center;box-shadow:0 0 25px 4px #000;z-index:50;border:1px solid #fff}#module__dashboard-selector .buttons-bar .dropdown-container .change-name .form-control{height:25px;margin-bottom:10px}#module__dashboard-selector .buttons-bar .dropdown-container .data-source-label{color:#17262d;padding-left:3px;margin:0}#module__dashboard-selector .buttons-bar .loader-container{padding-left:10px}#module__dashboard-selector .buttons-bar .loader-container .loading-spinner{color:#67BBE9;font-size:40px}#module__dashboard-selector .nav-tabs{border-bottom:0}#module__dashboard-selector .nav.nav-pills li:last-child>a,#module__dashboard-selector .nav.nav-tabs li:last-child>a{padding-right:15px}#module__dashboard-selector .nav.nav-pills li:last-child>a tab-heading a,#module__dashboard-selector .nav.nav-tabs li:last-child>a tab-heading a{position:static}#module__dashboard-selector .nav.nav-tabs li>a{padding:10px 8px 10px 15px;margin:0 2px 0 0;background-color:transparent;border:1px solid #abc4c6;color:#000}#module__dashboard-selector .nav.nav-tabs li.active>a{background-color:#fff;color:#977bf0}#module__dashboard-selector .nav.nav-tabs li:last-child.active>a{background-color:transparent}#module__dashboard-selector .nav.nav-pills li>a{min-width:0;padding-right:8px}#module__dashboard-selector .nav.nav-pills li:last-child tab-heading a{margin-left:2px}#module__dashboard-selector .nav.nav-pills li:last-child.active>a{background-color:#f4f4f4}#module__dashboard-selector tab-heading a.close-link{border-bottom:0 solid;margin-left:12px;position:relative;top:-9px;right:1px;color:#000}dashboard-templates-selector .templates-header{display:-webkit-box;display:-ms-flexbox;display:flex}dashboard-templates-selector .templates-header .templates-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;font-size:20px}dashboard-templates-selector .templates-header .templates-toggle i.fa{cursor:pointer}dashboard-templates-selector .templates-header .templates-toggle i.fa.fa-toggle-on{color:#977bf0}dashboard-templates-selector .templates{border:1px solid #ccc;box-shadow:inset 0 0 1px 0 #ccc;height:130px;overflow:auto;border-radius:2px}dashboard-templates-selector .templates .template{padding:5px 10px;color:#5B6667;border-bottom:1px solid #ececec}.analytics .impac-kpi .kpi.add:hover .kpi-icon,.analytics .impac-kpi .kpi.add:hover .kpi-text{color:#000}dashboard-templates-selector .templates .template:hover{cursor:pointer;background-color:rgba(96,232,119,.62)}dashboard-templates-selector .templates .template.selected{background-color:rgba(29,197,57,.62)}.analytics .impac-kpi .kpi{position:relative;max-width:220px;min-height:95px;max-height:95px;background-color:#fff;margin:10px 0;border-bottom:1px solid #fff;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}@media screen and (max-width:768px){.analytics .impac-kpi .kpi{margin-left:auto;margin-right:auto}}.analytics .impac-kpi .kpi.add:hover,.analytics .impac-kpi .kpi.triggered{border-bottom:4px solid #e01f74}.analytics .impac-kpi .kpi.add:hover{cursor:pointer}.analytics .impac-kpi .kpi.add:hover .top-line{background-color:#000}.analytics .impac-kpi .kpi.add:hover .kpi-text .emphasis{visibility:visible}.analytics .impac-kpi .kpi.add:hover .kpi-icon .fa-plus:before{content:"\f00c"}.analytics .impac-kpi .kpi.editing{min-height:185px}.analytics .impac-kpi .kpi:hover{cursor:default}.analytics .impac-kpi .kpi.static .kpi-value{display:block;font-size:14px;font-weight:700}.analytics .impac-kpi .kpi .top-line{width:100%;position:relative;cursor:move;padding:9px 9px 0 12px;border-bottom:none;min-height:7px;box-shadow:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin-bottom:5px;background-color:grey;-webkit-transition:background .2s ease-in;transition:background .2s ease-in}.analytics .impac-kpi .kpi .top-line.triggered{background-color:#000}.analytics .impac-kpi .kpi .kpi-content{max-height:90px}.analytics .impac-kpi .kpi .kpi-content.editing{min-height:180px;overflow-y:auto;overflow-x:hidden}.analytics .impac-kpi .kpi .kpi-show{white-space:normal;padding:10px}.analytics .impac-kpi .kpi .kpi-show .caption,.analytics .impac-kpi .kpi .kpi-show .emphasis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:380px){.analytics .impac-kpi .kpi .kpi-show{padding:10px 3px}}.analytics .impac-kpi .kpi .kpi-show .emphasis .real-value{color:#676767}.analytics .impac-kpi .kpi .kpi-show .kpi-text{padding:7px 0;color:grey;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.analytics .impac-kpi .kpi .kpi-show .kpi-text>span{display:block}.analytics .impac-kpi .kpi .kpi-show .kpi-text.triggered{color:#000}.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption{font-size:11px;padding-bottom:2px}@media screen and (max-width:465px){.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption{font-size:10px}.analytics .impac-kpi .kpi .kpi-show .kpi-text .emphasis{font-size:11px}}.analytics .impac-kpi .kpi .kpi-show .kpi-icon{font-size:16px;padding:10px 0;color:grey;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.analytics .impac-kpi .kpi .kpi-show .kpi-icon.triggered{color:#000}@media screen and (max-width:465px){.analytics .impac-kpi .kpi .kpi-show .kpi-icon{font-size:12px;padding:16px 0}}.analytics .impac-kpi .kpi .kpi-edit a{color:#fff}.analytics .impac-kpi .kpi .kpi-edit .kpi-name{text-align:center;margin-bottom:5px}.analytics .impac-kpi .kpi .kpi-edit .kpi-name h6{margin:0 0 5px}.analytics .impac-kpi .kpi .kpi-edit .real-value{text-transform:uppercase;font-size:10px;text-align:center}.analytics .impac-kpi .kpi .kpi-edit .alert-caption{text-align:center;font-size:11px;background:#f99;border-radius:3px;width:100%;margin:0 auto 5px;box-shadow:none;padding:2px;color:#fff}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit,.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable{text-transform:uppercase;font-weight:500;font-size:11px}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable{margin-bottom:20px;color:#8d8d8d}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit{position:absolute;top:6px;right:0;color:#9a9a9a}.analytics .impac-kpi .kpi .kpi-edit .param-name{font-size:85%}.analytics .impac-kpi .kpi .kpi-edit .btn.btn-xs{margin-top:4px}.analytics .impac-kpi .kpi .kpi-edit .add-on,.analytics .impac-kpi .kpi .kpi-edit .alert,.analytics .impac-kpi .kpi .kpi-edit .badge,.analytics .impac-kpi .kpi .kpi-edit .btn,.analytics .impac-kpi .kpi .kpi-edit .dropdown-menu,.analytics .impac-kpi .kpi .kpi-edit .img-polaroid,.analytics .impac-kpi .kpi .kpi-edit .label,.analytics .impac-kpi .kpi .kpi-edit .modal,.analytics .impac-kpi .kpi .kpi-edit .nav>.active>a,.analytics .impac-kpi .kpi .kpi-edit .navbar-inner,.analytics .impac-kpi .kpi .kpi-edit .popover,.analytics .impac-kpi .kpi .kpi-edit .progress,.analytics .impac-kpi .kpi .kpi-edit .table-bordered,.analytics .impac-kpi .kpi .kpi-edit .tooltip,.analytics .impac-kpi .kpi .kpi-edit .tooltip-inner,.analytics .impac-kpi .kpi .kpi-edit .well,.analytics .impac-kpi .kpi .kpi-edit input,.analytics .impac-kpi .kpi .kpi-edit pre,.analytics .impac-kpi .kpi .kpi-edit select,.analytics .impac-kpi .kpi .kpi-edit textarea,.analytics .impac-kpi .kpi .kpi-no-data .add-on,.analytics .impac-kpi .kpi .kpi-no-data .alert,.analytics .impac-kpi .kpi .kpi-no-data .badge,.analytics .impac-kpi .kpi .kpi-no-data .btn,.analytics .impac-kpi .kpi .kpi-no-data .dropdown-menu,.analytics .impac-kpi .kpi .kpi-no-data .img-polaroid,.analytics .impac-kpi .kpi .kpi-no-data .label,.analytics .impac-kpi .kpi .kpi-no-data .modal,.analytics .impac-kpi .kpi .kpi-no-data .nav>.active>a,.analytics .impac-kpi .kpi .kpi-no-data .navbar-inner,.analytics .impac-kpi .kpi .kpi-no-data .popover,.analytics .impac-kpi .kpi .kpi-no-data .progress,.analytics .impac-kpi .kpi .kpi-no-data .table-bordered,.analytics .impac-kpi .kpi .kpi-no-data .tooltip,.analytics .impac-kpi .kpi .kpi-no-data .tooltip-inner,.analytics .impac-kpi .kpi .kpi-no-data .well,.analytics .impac-kpi .kpi .kpi-no-data input,.analytics .impac-kpi .kpi .kpi-no-data pre,.analytics .impac-kpi .kpi .kpi-no-data select,.analytics .impac-kpi .kpi .kpi-no-data textarea{box-shadow:none!important;border-radius:0!important;border-collapse:collapse!important;background-image:none!important}.analytics .impac-kpi .kpi .kpi-edit body,.analytics .impac-kpi .kpi .kpi-edit body::after,.analytics .impac-kpi .kpi .kpi-edit body::before,.analytics .impac-kpi .kpi .kpi-edit input,.analytics .impac-kpi .kpi .kpi-edit input::after,.analytics .impac-kpi .kpi .kpi-edit input::before,.analytics .impac-kpi .kpi .kpi-edit select,.analytics .impac-kpi .kpi .kpi-edit select::after,.analytics .impac-kpi .kpi .kpi-edit select::before,.analytics .impac-kpi .kpi .kpi-edit textarea,.analytics .impac-kpi .kpi .kpi-edit textarea::after,.analytics .impac-kpi .kpi .kpi-edit textarea::before,.analytics .impac-kpi .kpi .kpi-no-data body,.analytics .impac-kpi .kpi .kpi-no-data body::after,.analytics .impac-kpi .kpi .kpi-no-data body::before,.analytics .impac-kpi .kpi .kpi-no-data input,.analytics .impac-kpi .kpi .kpi-no-data input::after,.analytics .impac-kpi .kpi .kpi-no-data input::before,.analytics .impac-kpi .kpi .kpi-no-data select,.analytics .impac-kpi .kpi .kpi-no-data select::after,.analytics .impac-kpi .kpi .kpi-no-data select::before,.analytics .impac-kpi .kpi .kpi-no-data textarea,.analytics .impac-kpi .kpi .kpi-no-data textarea::after,.analytics .impac-kpi .kpi .kpi-no-data textarea::before{box-sizing:border-box}.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-inner-spin-button,.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-outer-spin-button,.analytics .impac-kpi .kpi .kpi-no-data input[type=number]::-webkit-inner-spin-button,.analytics .impac-kpi .kpi .kpi-no-data input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.analytics .impac-kpi .kpi .kpi-edit a:hover,.analytics .impac-kpi .kpi .kpi-no-data a:hover{text-decoration:none}.analytics .impac-kpi .kpi .kpi-edit fieldset,.analytics .impac-kpi .kpi .kpi-no-data fieldset{margin:0 0 1.75rem;padding:0;border:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio{position:relative;margin-top:1.3125rem;margin-bottom:1.3125rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline>.im-form-group,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline>.im-form-group{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;vertical-align:middle;margin-left:.175rem;margin-right:.175rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline>.btn,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline>.btn{display:inline-block;margin-bottom:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input{height:2.375rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-group select,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select{width:100%;font-size:1.25rem;height:2rem;padding:.15625rem .15625rem .078125rem;background:0 0;border:none;line-height:1.6;box-shadow:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-control-label{position:absolute;top:.3125rem;pointer-events:none;padding-left:.15625rem;z-index:1;color:#b3b3b3;font-size:1.25rem;font-weight:400;-webkit-transition:all .28s ease;transition:all .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-bar{position:relative;border-bottom:.078125rem solid #999;display:block}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-bar::before{content:'';height:.15625rem;width:0;left:50%;bottom:-.078125rem;position:absolute;background:#358fdc;-webkit-transition:left .28s ease,width .28s ease;transition:left .28s ease,width .28s ease;z-index:2}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea{display:block;background:0 0;padding:.15625rem .15625rem .078125rem;font-size:1.25rem;border-width:0;border-color:transparent;line-height:1.9;width:100%;color:transparent;-webkit-transition:all .28s ease;transition:all .28s ease;box-shadow:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input[type=file],.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input[type=file]{line-height:1}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input[type=file]~.im-bar,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input[type=file]~.im-bar{display:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:valid,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:valid{color:#333}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:valid~.im-control-label{font-size:1rem;color:grey;top:-1.25rem;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus{outline:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-control-label{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-bar::before{width:100%;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio label,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio label{position:relative;cursor:pointer;padding-left:2.5rem;text-align:left;color:#333;display:block}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio input,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-radio{margin-bottom:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper{position:absolute;top:-.3125rem;left:-.3125rem;cursor:pointer;display:block;font-size:1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::before{content:'';position:absolute;left:0;top:0;margin:.3125rem;width:1.25rem;height:1.25rem;-webkit-transition:-webkit-transform .28s ease;transition:-webkit-transform .28s ease;transition:transform .28s ease;transition:transform .28s ease,-webkit-transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after{-webkit-transform:scale(0);transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-radio label:hover .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-radio label:hover .im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked~.im-helper::after{-webkit-transform:scale(.5);transform:scale(.5)}.analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked~.im-helper::before{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox{margin-top:1.75rem;margin-bottom:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper{color:#999;position:absolute;top:0;left:0;width:1.25rem;height:1.25rem;z-index:0;border:.15625rem solid currentColor;border-radius:.078125rem;-webkit-transition:border-color .28s ease;transition:border-color .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before{position:absolute;height:0;width:.25rem;background-color:#358fdc;display:block;-webkit-transform-origin:left top;transform-origin:left top;border-radius:.3125rem;content:'';-webkit-transition:opacity .28s ease,height 0s linear .28s;transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;-webkit-transform:rotate(-135deg);transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after{top:.375rem;left:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label:hover .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label:hover .im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::before{opacity:1;-webkit-transition:height .28s ease;transition:height .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::after{height:.625rem}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::before{height:1.5rem;-webkit-transition-delay:.28s;transition-delay:.28s}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox+.im-checkbox,.analytics .impac-kpi .kpi .kpi-edit .im-radio+.im-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox+.im-checkbox,.analytics .impac-kpi .kpi .kpi-no-data .im-radio+.im-radio{margin-top:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;-webkit-transition:all .28s cubic-bezier(.55,0,.55,.2);transition:all .28s cubic-bezier(.55,0,.55,.2);opacity:0;margin-top:0;padding-top:5px}.analytics .impac-kpi .kpi .kpi-edit .has-error .legend.legend,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-control-label.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .has-error .legend.legend,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-control-label.im-control-label{color:#e01f74}.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-messages{color:#e01f74;opacity:1}.analytics .impac-kpi .kpi .kpi-edit .has-error .im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .has-error .im-bar::before{background:#e01f74;left:0;width:100%}.analytics .impac-kpi .kpi .kpi-edit .im-button,.analytics .impac-kpi .kpi .kpi-no-data .im-button{position:relative;background:#60a7e4;border:0;font-size:1.375rem;color:#333;margin:.7rem 0;padding:.4375rem 1.75rem;border-radius:3px;cursor:pointer;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.analytics .impac-kpi .kpi .kpi-edit .im-button span,.analytics .impac-kpi .kpi .kpi-no-data .im-button span{color:#fff;position:relative;z-index:1}.analytics .impac-kpi .kpi .kpi-edit .im-button:hover,.analytics .impac-kpi .kpi .kpi-no-data .im-button:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics .impac-kpi .kpi .kpi-edit .im-button:active,.analytics .impac-kpi .kpi .kpi-no-data .im-button:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics .impac-kpi .kpi .kpi-edit .im-button a:focus,.analytics .impac-kpi .kpi .kpi-edit .im-button:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-button a:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-button:focus{outline:0;text-decoration:none}.analytics .impac-kpi .kpi .kpi-edit button.im-fab,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab{position:relative;height:46px;width:46px;-webkit-box-flex:0;-ms-flex:0 0 56px;flex:0 0 56px;display:inline-block;padding:0;margin:4px;border:0;border-radius:100%;overflow:hidden;font-size:20px;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff}.analytics .impac-kpi .kpi .kpi-edit button.im-fab:focus,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:focus{outline:0}.analytics .impac-kpi .kpi .kpi-edit button.im-fab:active,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary{background:#358fdc}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary:hover,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn{background:#e01f74}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn:hover,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#ca1c68}.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary{position:absolute;top:-12px;right:15px;width:22px;height:22px;font-size:13px;background:#4c4749}.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary:hover{backgroud:#358fdc}.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn{position:absolute;top:-12px;right:-11px;width:22px;height:22px;font-size:13px;background:#4c4749}.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn:hover{background:#ca1c68}.analytics .impac-kpi .kpi .kpi-data-loader{width:100%;min-height:95px}.analytics kpis-bar>.key-stats .kpi{min-height:80px}.analytics kpis-bar>.kpis{position:relative}.analytics kpis-bar>.kpis .actions{margin-bottom:12px}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions{position:relative}}.analytics kpis-bar>.kpis .actions .add-on,.analytics kpis-bar>.kpis .actions .alert,.analytics kpis-bar>.kpis .actions .badge,.analytics kpis-bar>.kpis .actions .btn,.analytics kpis-bar>.kpis .actions .dropdown-menu,.analytics kpis-bar>.kpis .actions .img-polaroid,.analytics kpis-bar>.kpis .actions .label,.analytics kpis-bar>.kpis .actions .modal,.analytics kpis-bar>.kpis .actions .nav>.active>a,.analytics kpis-bar>.kpis .actions .navbar-inner,.analytics kpis-bar>.kpis .actions .popover,.analytics kpis-bar>.kpis .actions .progress,.analytics kpis-bar>.kpis .actions .table-bordered,.analytics kpis-bar>.kpis .actions .tooltip,.analytics kpis-bar>.kpis .actions .tooltip-inner,.analytics kpis-bar>.kpis .actions .well,.analytics kpis-bar>.kpis .actions input,.analytics kpis-bar>.kpis .actions pre,.analytics kpis-bar>.kpis .actions select,.analytics kpis-bar>.kpis .actions textarea{box-shadow:none!important;border-radius:0!important;border-collapse:collapse!important;background-image:none!important}.analytics kpis-bar>.kpis .actions body,.analytics kpis-bar>.kpis .actions body::after,.analytics kpis-bar>.kpis .actions body::before,.analytics kpis-bar>.kpis .actions input,.analytics kpis-bar>.kpis .actions input::after,.analytics kpis-bar>.kpis .actions input::before,.analytics kpis-bar>.kpis .actions select,.analytics kpis-bar>.kpis .actions select::after,.analytics kpis-bar>.kpis .actions select::before,.analytics kpis-bar>.kpis .actions textarea,.analytics kpis-bar>.kpis .actions textarea::after,.analytics kpis-bar>.kpis .actions textarea::before{box-sizing:border-box}.analytics kpis-bar>.kpis .actions input[type=number]::-webkit-inner-spin-button,.analytics kpis-bar>.kpis .actions input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.analytics kpis-bar>.kpis .actions a:hover{text-decoration:none}.analytics kpis-bar>.kpis .actions fieldset{margin:0 0 1.75rem;padding:0;border:none}.analytics kpis-bar>.kpis .actions .im-form-group,.analytics kpis-bar>.kpis .actions .im-form-radio{position:relative;margin-top:1.3125rem;margin-bottom:1.3125rem}.analytics kpis-bar>.kpis .actions .im-form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box}.analytics kpis-bar>.kpis .actions .im-form-inline>.im-form-group{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;vertical-align:middle;margin-left:.175rem;margin-right:.175rem}.analytics kpis-bar>.kpis .actions .im-form-inline>.btn{display:inline-block;margin-bottom:0}.analytics kpis-bar>.kpis .actions .im-form-group input{height:2.375rem}.analytics kpis-bar>.kpis .actions .im-form-group select{width:100%;font-size:1.25rem;height:2rem;padding:.15625rem .15625rem .078125rem;background:0 0;border:none;line-height:1.6;box-shadow:none}.analytics kpis-bar>.kpis .actions .im-form-group .im-control-label{position:absolute;top:.3125rem;pointer-events:none;padding-left:.15625rem;z-index:1;color:#b3b3b3;font-size:1.25rem;font-weight:400;-webkit-transition:all .28s ease;transition:all .28s ease}.analytics kpis-bar>.kpis .actions .im-form-group .im-bar{position:relative;border-bottom:.078125rem solid #999;display:block}.analytics kpis-bar>.kpis .actions .im-form-group .im-bar::before{content:'';height:.15625rem;width:0;left:50%;bottom:-.078125rem;position:absolute;background:#358fdc;-webkit-transition:left .28s ease,width .28s ease;transition:left .28s ease,width .28s ease;z-index:2}.analytics kpis-bar>.kpis .actions .im-form-group input,.analytics kpis-bar>.kpis .actions .im-form-group textarea{display:block;background:0 0;padding:.15625rem .15625rem .078125rem;font-size:1.25rem;border-width:0;border-color:transparent;line-height:1.9;width:100%;color:transparent;-webkit-transition:all .28s ease;transition:all .28s ease;box-shadow:none}.analytics .settings.dates-picker button.btn.btn-sm,.analytics kpis-bar>.kpis .actions .im-form-group input[type=file]{line-height:1}.analytics kpis-bar>.kpis .actions .im-form-group input[type=file]~.im-bar{display:none}.analytics kpis-bar>.kpis .actions .im-form-group input.form-file,.analytics kpis-bar>.kpis .actions .im-form-group input.has-value,.analytics kpis-bar>.kpis .actions .im-form-group input:focus,.analytics kpis-bar>.kpis .actions .im-form-group input:valid,.analytics kpis-bar>.kpis .actions .im-form-group select,.analytics kpis-bar>.kpis .actions .im-form-group textarea.form-file,.analytics kpis-bar>.kpis .actions .im-form-group textarea.has-value,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus,.analytics kpis-bar>.kpis .actions .im-form-group textarea:valid{color:#333}.analytics kpis-bar>.kpis .actions .im-form-group input.form-file~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input.has-value~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input:valid~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group select~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea.form-file~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea.has-value~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:valid~.im-control-label{font-size:1rem;color:grey;top:-1.25rem;left:0}.analytics kpis-bar>.kpis .actions .im-form-group input:focus,.analytics kpis-bar>.kpis .actions .im-form-group select:focus,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus{outline:0}.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group select:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-control-label{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-bar::before,.analytics kpis-bar>.kpis .actions .im-form-group select:focus~.im-bar::before,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-bar::before{width:100%;left:0}.analytics kpis-bar>.kpis .actions .im-checkbox label,.analytics kpis-bar>.kpis .actions .im-form-radio label{position:relative;cursor:pointer;padding-left:2.5rem;text-align:left;color:#333;display:block}.analytics kpis-bar>.kpis .actions .im-checkbox input,.analytics kpis-bar>.kpis .actions .im-form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.analytics kpis-bar>.kpis .actions .im-radio{margin-bottom:1.25rem}.analytics kpis-bar>.kpis .actions .im-radio .im-helper{position:absolute;top:-.3125rem;left:-.3125rem;cursor:pointer;display:block;font-size:1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after,.analytics kpis-bar>.kpis .actions .im-radio .im-helper::before{content:'';position:absolute;left:0;top:0;margin:.3125rem;width:1.25rem;height:1.25rem;-webkit-transition:-webkit-transform .28s ease;transition:-webkit-transform .28s ease;transition:transform .28s ease;transition:transform .28s ease,-webkit-transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after{-webkit-transform:scale(0);transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio label:hover .im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::after{-webkit-transform:scale(.5);transform:scale(.5)}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::before{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox{margin-top:1.75rem;margin-bottom:1.25rem}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper{color:#999;position:absolute;top:0;left:0;width:1.25rem;height:1.25rem;z-index:0;border:.15625rem solid currentColor;border-radius:.078125rem;-webkit-transition:border-color .28s ease;transition:border-color .28s ease}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after,.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{position:absolute;height:0;width:.25rem;background-color:#358fdc;display:block;-webkit-transform-origin:left top;transform-origin:left top;border-radius:.3125rem;content:'';-webkit-transition:opacity .28s ease,height 0s linear .28s;transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;-webkit-transform:rotate(-135deg);transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after{top:.375rem;left:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.analytics kpis-bar>.kpis .actions .im-checkbox label:hover .im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::after,.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::before{opacity:1;-webkit-transition:height .28s ease;transition:height .28s ease}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::after{height:.625rem}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::before{height:1.5rem;-webkit-transition-delay:.28s;transition-delay:.28s}.analytics kpis-bar>.kpis .actions .im-checkbox+.im-checkbox,.analytics kpis-bar>.kpis .actions .im-radio+.im-radio{margin-top:1.25rem}.analytics kpis-bar>.kpis .actions .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;-webkit-transition:all .28s cubic-bezier(.55,0,.55,.2);transition:all .28s cubic-bezier(.55,0,.55,.2);opacity:0;margin-top:0;padding-top:5px}.analytics kpis-bar>.kpis .actions .has-error .legend.legend,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-control-label.im-control-label{color:#e01f74}.analytics kpis-bar>.kpis .actions .has-error.im-checkbox .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-checkbox .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-form-radio .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-form-radio .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-radio .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-radio .im-messages{color:#e01f74;opacity:1}.analytics kpis-bar>.kpis .actions .has-error .im-bar::before{background:#e01f74;left:0;width:100%}.analytics kpis-bar>.kpis .actions .im-button{position:relative;background:#60a7e4;border:0;font-size:1.375rem;color:#333;margin:.7rem 0;padding:.4375rem 1.75rem;border-radius:3px;cursor:pointer;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.analytics kpis-bar>.kpis .actions .im-button span{color:#fff;position:relative;z-index:1}.analytics kpis-bar>.kpis .actions .im-button:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics kpis-bar>.kpis .actions .im-button:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics kpis-bar>.kpis .actions .im-button a:focus,.analytics kpis-bar>.kpis .actions .im-button:focus{outline:0;text-decoration:none}.analytics kpis-bar>.kpis .actions button.im-fab{position:relative;height:46px;width:46px;-webkit-box-flex:0;-ms-flex:0 0 56px;flex:0 0 56px;display:inline-block;padding:0;margin:4px;border:0;border-radius:100%;overflow:hidden;font-size:20px;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff}.analytics kpis-bar>.kpis .actions button.im-fab:focus{outline:0}.analytics kpis-bar>.kpis .actions button.im-fab:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics kpis-bar>.kpis .actions button.im-fab.im-primary{background:#358fdc}.analytics kpis-bar>.kpis .actions button.im-fab.im-primary:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#2583d3}.analytics kpis-bar>.kpis .actions button.im-fab.im-warn{background:#e01f74}.analytics kpis-bar>.kpis .actions button.im-fab.im-warn:hover{-webkit-transition:background .1s ease-in;transition:background .1s ease-in;background:#ca1c68}.analytics kpis-bar>.kpis .actions a{color:#fff}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{position:absolute;width:40px;height:40px;font-size:18px;-webkit-transition:all .28s ease-in;transition:all .28s ease-in}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary{background:#4c4749}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary.disabled,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary.disabled,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary.disabled{background:#b2b5c1;cursor:not-allowed}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary.disabled a,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary.disabled a,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary.disabled a{cursor:not-allowed}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary:hover:not(.disabled),.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary:hover:not(.disabled),.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary:hover:not(.disabled){background:#000}.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{top:-15px;right:-15px;z-index:10}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{top:-30px;right:-14px;bottom:0}}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis{top:30px;right:-15px;z-index:10}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis{top:-30px;right:33px;bottom:0}}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis{top:75px;right:-15px;z-index:10}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.editing{background:#358fdc}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.editing:hover:not(.disabled){background:#76b3e7}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis{top:-30px;right:79px;bottom:0}.analytics kpis-bar>.kpis .content{margin-top:25px}}.analytics kpis-bar>.kpis .content-buttons{position:absolute;top:0;right:0}.analytics kpis-bar>.kpis .content{padding:15px;background-color:#fff;box-shadow:0 1px 8px -4px}@media screen and (min-width:725px){.analytics kpis-bar>.kpis .content{padding:0 60px}}.analytics kpis-bar>.kpis .content .impac-kpi{padding-left:5px;padding-right:5px}@media screen and (min-width:1200px){.analytics kpis-bar>.kpis .content .impac-kpi{padding-left:20px;padding-right:20px}}.analytics kpis-bar>.kpis .content .impac-kpi .kpi.add .kpi-show .caption{white-space:inherit}.analytics kpis-bar>.kpis .content .title .text-center{line-height:3;font-variant:small-caps;font-size:larger}.analytics kpis-bar>.kpis .content .title .badge{position:absolute;top:8px;left:-10px;background-color:#d1e55c;color:#4f5959;box-shadow:0 1px 3px -1px}.widget-item .content,.widget-item .top-line{position:relative;background-color:#fff;box-shadow:0 1px 8px -4px}.analytics kpis-bar>.kpis .content .title .no-kpi-templates{color:#afadb5;font-weight:500}.analytics kpis-bar>.kpis .content .add-bar{border-bottom:dashed 1px}.analytics kpis-bar>.kpis .content .kpi-loader{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;min-height:115px}.analytics kpis-bar>.kpis .content .dates-picker-container{width:40%;margin:0 auto}.analytics kpis-bar>.kpis .content .dates-picker-container .sdp-from-label,.analytics kpis-bar>.kpis .content .dates-picker-container .sdp-to-label{text-transform:uppercase;font-weight:400}.analytics kpis-bar{display:block}.analytics kpis-bar>.key-stats{background-color:#fff;padding:5px 0}.analytics.pdf-mode kpis-bar>.kpis .actions{display:none}.widget-item{-webkit-transition:width .3s;transition:width .3s;padding:12px}.widget-item.pdf-mode{width:100%;padding:12px 0}.widget-item .top-line{cursor:move;padding:9px 9px 0 12px;border-radius:5px 5px 0 0;border:1px solid #c8d7d9;border-bottom:none;min-height:41px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;z-index:4}.widget-item .content{padding:9px;border-radius:0 0 5px 5px;border:1px solid #c8d7d9;border-top:none;vertical-align:top;min-height:250px}@media (min-width:992px){.widget-item .content{height:250px}.widget-item .content .chart-container{max-width:270px;max-height:125px;margin:auto}}.widget-item .content .edit{max-height:230px;overflow-y:auto;overflow-x:hidden;color:#5B6667;padding:2px;font-size:12px}.widget-item .content .edit .bottom-buttons .btn{border-radius:2px;margin-right:5px;padding:3px 13px;text-transform:uppercase;font-size:12px}.widget-item .content .edit .bottom-buttons .btn.btn-default{background-color:#c2c4c4;border:1px solid #a8abab;color:#fff}.widget-item .content .edit .bottom-buttons .btn.btn-default:hover{border:1px solid #8e9292;background-color:#a8abab}.widget-item .content .edit h4{margin:0 0 8px;text-align:left;font-weight:400;font-size:12px;color:#c4caca}.widget-item .content .edit .part{margin-bottom:8px;padding:10px 0;background-color:#fcfcfc;border:1px solid #dfe2e2}.widget-item .content .edit .part h5{display:block;margin:0 0 10px;padding:0 15px;text-transform:uppercase;font-weight:400;font-size:12px;color:#c4caca}.widget-item .content .edit .part label{font-weight:400}.widget-item .content .edit .part select.form-control{margin:0;border:1px solid #acb0b1;outline:0;-webkit-box-shadow:none;font-size:13px;color:#72728b}.widget-item .content.accessible{height:auto!important;min-height:250px!important;max-height:auto!important}.widget-item .content .content-template-wrapper{height:100%;overflow:auto;overflow-x:hidden}.widget-item.pdf-mode .content{height:100%!important;min-height:250px!important;max-height:none!important}.widget-item.pdf-mode .content .collapse{display:inherit}.widget-item.pdf-mode .content .fa-plus-square-o:before{content:"\f147"}.widget-item.pdf-mode .content .legend{max-height:none!important}.widget-item.pdf-mode .content .chart-container{max-height:none}.widget-item.pdf-mode .content .widget-lines-container{max-height:none!important}.widget-item.pdf-mode .content .data-not-found .message{position:inherit;width:100%}.widget-item.pdf-mode .include-to-pdf.title{position:absolute;width:calc(100% - 2*12px);z-index:3;padding-right:1px}.widget-item.pdf-mode .include-to-pdf.title h6{padding:10px;background-color:#FFC928;text-align:center;margin:0}.widget-item.pdf-mode .include-to-pdf.tick i{position:absolute;top:35%;left:46%;font-size:100px;opacity:.5;z-index:2;color:#000}.widget-item.pdf-mode .include-to-pdf .widget-hover{position:absolute;width:100%;height:100%;padding:9px;top:0;right:0;-webkit-transition:all ease .5s;transition:all ease .5s;z-index:1}.widget-item.pdf-mode .include-to-pdf .widget-hover:hover{opacity:.5;background:#CCCFD0}.widget-item .widget-lines-container .widget-line>[class*=col-]{overflow-wrap:break-word}.analytics .kpi .data-not-found,.analytics .widget-item .content .data-not-found{text-align:center;font-size:13px;color:#5B6667}.analytics .kpi .data-not-found .overlay,.analytics .widget-item .content .data-not-found .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:3}.analytics .kpi .data-not-found .message,.analytics .widget-item .content .data-not-found .message{position:absolute;top:125px;left:50%;padding-bottom:10px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:85%;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;z-index:4}.analytics .kpi .data-not-found .message .title,.analytics .widget-item .content .data-not-found .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}.analytics .kpi .data-not-found .message p,.analytics .widget-item .content .data-not-found .message p{margin-left:5px;margin-right:5px}.analytics .kpi .data-not-found .message .btn,.analytics .widget-item .content .data-not-found .message .btn{margin-top:5px}.analytics .kpi .data-not-found .example,.analytics .widget-item .content .data-not-found .example{position:absolute;bottom:0;left:0;width:100%;color:#fff;background-color:#192831;padding:3px;z-index:6}.analytics .kpi .data-not-found .example a,.analytics .widget-item .content .data-not-found .example a{font-weight:400;color:#dae173}.analytics .kpi .data-not-found .message{width:90%;padding-bottom:0;border:1px solid silver;box-shadow:none}#transactions-add .message,.analytics common-delete-widget .message{position:absolute;min-height:160px;box-shadow:0 0 25px 0;border-radius:4px}.analytics .kpi .data-not-found .message p{margin:5px}.analytics .kpi .data-not-found .btn,.analytics .kpi .data-not-found .example,.analytics .kpi .data-not-found .overlay,.analytics .kpi .data-not-found .title{display:none}.analytics common-delete-widget{text-align:center;font-size:13px;color:#5B6667}.analytics common-delete-widget .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}.analytics common-delete-widget .message{z-index:6;padding-bottom:10px;top:45px;left:7%;width:86%;background-color:#f4f8f9}.analytics common-delete-widget .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}.analytics common-delete-widget .message .loader i.fa.fa-spinner{font-size:26px}.analytics common-delete-widget .message p{padding:0 10px}.analytics common-delete-widget .message button.btn{margin-top:20px}#transactions-add{text-align:center;font-size:13px;color:#5B6667}#transactions-add .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}#transactions-add .message{z-index:6;padding-bottom:10px;background-color:#f4f8f9;top:30px;left:35%;width:30%}#transactions-add .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}#transactions-add .message .form{padding:0 10px}#transactions-add .message .form .coming-soon>label,#transactions-add .message .form>label{padding-top:10px;font-weight:400;margin-bottom:3px}#transactions-add .message .form input.form-control{width:90%;border-radius:2px;height:28px;font-size:13px}#transactions-add .message .form .btn-group{display:block;min-height:22px}.analytics .widget-item .content.accounts-balance-sheet,.analytics .widget-item .content.accounts-cash-balance{min-height:565px}#transactions-add .message .form .btn-group select{border-radius:2px;height:28px;margin-top:0}#transactions-add .message .form .coming-soon{margin-top:15px;padding:5px;border:1px solid silver;background-color:#fff;color:#888;font-style:italic}#transactions-add .message .form .coming-soon .badge{font-weight:400;background-color:#888}#transactions-add .message .form .coming-soon .btn-group{margin-left:10px}#transactions-add .message .form .coming-soon .btn-group input[type=radio]{margin-top:5px}#transactions-add .message .form .coming-soon .btn-group select{height:22px}#transactions-add .message .form .coming-soon .btn-group .btn{float:none;border-color:#888}#transactions-add .message .bottom{margin-top:20px}#transactions-list .top{height:40px}#transactions-list .top a.back-link{font-weight:400}#transactions-list .top .pagination{margin:0}#transactions-list .table-container{max-height:calc(565px - 60px);overflow:auto}#transactions-list .table-container div[uib-datepicker-popup-wrap]{display:inline-block}#transactions-list .table-container button.btn.reset-date,#transactions-list .table-container input.btn.btn-xs{margin-top:-2px}#transactions-list .table-container .fa.fa-times{color:#e01f74;cursor:pointer}#transactions-list .table-container tr.total{font-weight:700}#transactions-list .table-container tr.total.invoices{background-color:#c1d1b1}#transactions-list .table-container tr.total.bills{background-color:#e2aeb9}.analytics .dashboard-settings.currency{text-align:right}.analytics .dashboard-settings.currency select{margin-top:4px}.analytics .dashboard-settings.sync-apps .show-status{margin-right:5px;color:#9ba6a7}.analytics .dashboard-settings.sync-apps .show-status:hover{cursor:pointer;text-decoration:underline}.analytics .dashboard-settings.sync-apps .show-status .fa.fa-info{margin-right:2px}.analytics .dashboard-settings.sync-apps .status-btn{display:inline-block;cursor:pointer;padding:5px 7px 5px 0}.analytics .dashboard-settings.sync-apps .status-btn i{font-size:16px}.analytics .dashboard-settings.sync-apps .status-btn i.fa-exclamation-triangle{color:#ff7300}.analytics .dashboard-settings.sync-apps .status-btn i.fa-check{color:#d1e55c}.analytics .dashboard-settings.sync-apps .popover{max-width:550px}.analytics .dashboard-settings.sync-apps .popover .connector{padding:4px 13px}.analytics .dashboard-settings.sync-apps .popover .connector.add-seperator{border-bottom:1px solid #ccc}.analytics .dashboard-settings.sync-apps .popover .popover-content{padding:0}.analytics .dashboard-settings.sync-apps .popover .popover-footer{border-top:1px solid #ccc;padding:4px 13px}.analytics .dashboard-settings.sync-apps .popover .popover-footer p{font-weight:700;margin:0}.analytics .dashboard-settings.sync-apps .popover .popover-footer.remove-seperator{border:0}.analytics .dashboard-settings.sync-apps .badge{float:right;margin-left:8px}.analytics .dashboard-settings.sync-apps .success .badge{background-color:#d1e55c}.analytics .dashboard-settings.sync-apps .pending .badge,.analytics .dashboard-settings.sync-apps .running .badge{background-color:#ff7300}.analytics .dashboard-settings.sync-apps .disconnected .badge,.analytics .dashboard-settings.sync-apps .error .badge,.analytics .dashboard-settings.sync-apps .failed .badge,.analytics .dashboard-settings.sync-apps .unknown .badge{background-color:#ed1e79}#sync-apps-modal .modal-header{text-align:center;border:0;box-shadow:0 2px 3px 0 #ccc}#sync-apps-modal .modal-list{max-height:280px;overflow-y:auto}#sync-apps-modal .modal-list-item{border-bottom:1px solid #ccc;padding:10px}#sync-apps-modal .modal-list-item .badge{float:right}#sync-apps-modal .modal-list-item.success .badge{background-color:#d1e55c}#sync-apps-modal .modal-list-item.pending .badge,#sync-apps-modal .modal-list-item.running .badge{background-color:#ff7300}#sync-apps-modal .modal-list-item.disconnected .badge,#sync-apps-modal .modal-list-item.error .badge,#sync-apps-modal .modal-list-item.failed .badge,#sync-apps-modal .modal-list-item.unknown .badge{background-color:#ed1e79}#sync-apps-modal .modal-list-item .message{padding:3px;border-radius:2px;margin-left:31px;margin-top:9px}#sync-apps-modal .modal-list-item .message p{margin:0}#sync-apps-modal .modal-list-item.success .message{background-color:rgba(0,255,55,.08)}#sync-apps-modal .modal-list-item.pending .message,#sync-apps-modal .modal-list-item.running .message{background-color:rgba(255,118,0,.08)}#sync-apps-modal .modal-list-item.disconnected .message,#sync-apps-modal .modal-list-item.error .message,#sync-apps-modal .modal-list-item.failed .message,#sync-apps-modal .modal-list-item.unknown .message{background-color:rgba(255,0,0,.08)}#sync-apps-modal .modal-list-item.with-message{cursor:pointer}#sync-apps-modal .modal-list-item.with-message:hover{background-color:#ccc}#sync-apps-modal .modal-footer{border:0}#sync-apps-modal .fa{padding:0 10px}#sync-apps-modal .fa.error{color:red}#sync-apps-modal .fa.warn{color:#ff7300}#sync-apps-modal .fa.success{color:#47ff00}.currency-conversions img{width:15px;cursor:pointer}.currency-conversions.popover .popover-title{background-color:#000;color:#fff}chart-threshold .attach-panel{padding:5px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(20,132,228,.16)}chart-threshold .attach-panel>.attach-panel-text,chart-threshold .attach-panel>.attach-panel-text>*{display:inline-block}chart-threshold .attach-panel .panel-text-label{text-transform:uppercase;font-weight:700;color:#5B6667;font-size:13px}chart-threshold .attach-panel .panel-text-input{border-radius:3px;border:1px #fff;padding:3px}chart-threshold .attach-panel .panel-text-currency{font-weight:700;color:#000}chart-threshold .action-buttons{display:inline-block;padding:0 10px}chart-threshold .action-buttons button{padding:3px 6px;display:inline-block}chart-threshold .action-buttons button.loading{padding:3px 20px}.analytics .widget-item .editable-title{width:100%;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;height:22px}.analytics .widget-item .editable-title .title{text-transform:uppercase;font-weight:600;font-size:12px;color:#4f5959;cursor:text;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.9}.analytics .widget-item .editable-title .editable-wrap{position:relative;height:20px;min-width:100%;white-space:nowrap}.analytics .widget-item .editable-title .editable-wrap .editable-controls{min-width:100%}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-input{height:20px;font-size:12px;text-transform:uppercase;width:calc(100% - 65px);padding:0 3px}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons{background-color:#fff}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons button{margin:0 0 0 5px;height:20px;padding:0 5px}.analytics .widget-item .info-panel{position:absolute;top:15px;left:15px;width:calc(100% - 30px);max-height:calc(100% - 30px);height:100%;background-color:#fff;border:1px dotted #B7CDCE;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-family:"Lato Semibold",Lato;z-index:4}.analytics .widget-item .info-panel:hover{opacity:1}.analytics .widget-item .info-panel .i-header{background-color:#FFC928;color:#1E303B;padding:8px;text-transform:uppercase;font-family:"Lato Medium",Lato;font-size:12px}.analytics .widget-item .info-panel .i-header .fa{font-size:18px}.analytics .widget-item .info-panel .i-header .fa-info-circle{float:left}.analytics .widget-item .info-panel .i-header .fa-times-circle{cursor:pointer;float:right}.analytics .widget-item .info-panel .i-content{overflow-y:auto;overflow-x:hidden;padding:5px;text-align:justify;-webkit-box-flex:1;-ms-flex:1;flex:1}.analytics .widget-item .info-panel .i-content .row{margin-bottom:6px;padding-bottom:6px;border-bottom:solid 1px #abc4c6}.analytics .widget-item .info-panel .i-content .row:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.analytics .widget-item .info-panel .i-content .row .key{text-align:right;font-variant:small-caps}@media (max-width:991px){.analytics .widget-item .info-panel .i-content .row .key{text-align:center}}.analytics .widget-item .info-panel .i-content .row .value{text-align:justify}.analytics .time-period-info{font-size:11px;color:#ABC4C6;text-transform:uppercase}.analytics .widget-item .top-line .top-buttons{text-align:right;margin-top:-1px;white-space:nowrap;padding-left:10px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh{font-size:17px;margin-top:1px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button{background:0 0;border:none;color:#c4caca;padding:0;outline:0;width:17px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:active,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:focus{box-shadow:none}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info:hover{color:#FFC928}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh:hover{color:#358fdc}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit{font-size:13px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit.edit-mode,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit:hover{color:#cfd849}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close{font-size:13px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close:hover{color:#ed1e79}.analytics .settings.accounting-behaviour .btn.btn-primary{background-color:#bba9f5;border:1px solid #977bf0}.analytics .settings.accounting-behaviour .btn.btn-primary.active,.analytics .settings.accounting-behaviour .btn.btn-primary.focus{background-color:#977bf0}.analytics .widget-item .content .settings.select-account{padding:0 5px}.analytics .settings.attach-kpis .attach-kpi{padding:8px 5px}.analytics .settings.attach-kpis .attach-kpi form .row{padding-bottom:5px}.analytics .settings.attach-kpis .attach-kpi .attach-kpi-form{background-color:#fff;border:1px solid #ddd;padding:5px}.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description{padding:10px 2px}.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description span{display:block;font-weight:700;font-size:13px}.analytics .settings.attach-kpis .attach-kpi form.attach-kpi-form input.attach-target{background-color:#fff;height:inherit}.analytics .settings.attach-kpis .attach-kpi .error-messages{color:#e01f74;width:120px}.analytics .settings.attach-kpis .attached-kpis{padding:5px}.analytics .settings.attach-kpis .list-group-item.attached-kpi{padding:5px 10px}.analytics .settings.attach-kpis .list-group-item.attached-kpi .attached-kpi-name{overflow:hidden;width:75%;display:inline-block;white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:13px;font-weight:700}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions{padding-top:2px}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config{display:inline-block;text-align:left;padding-left:4px;height:20px;border-radius:40px;width:21px;color:#358fdc;background-color:#fff;border:1px solid #358fdc}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config:hover{cursor:pointer}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi{display:inline-block}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i{border-radius:10px;width:21px;color:#358fdc;background-color:#fff;height:20px;padding:3px 5px 5px;border:1px solid #358fdc}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i:hover{cursor:pointer}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi{display:inline-block}.analytics .settings.dates-picker button.btn.btn-sm.btn-danger,.analytics .settings.dates-picker h5{display:none}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i{border-radius:10px;width:21px;color:#e01f74;background-color:#fff;height:20px;padding:3px 5px 5px;border:1px solid #e01f74}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i:hover{cursor:pointer}.analytics .widget-item .content .settings.chart-filters .row{margin:0}.analytics .widget-item .content .settings.chart-filters input[type=radio]{margin:0 3px 0 0;padding:0;width:13px;height:13px;vertical-align:middle;position:relative;top:-1px;outline:0}.analytics .widget-item .content .settings.chart-filters input[type=range]{height:auto;width:100%}.analytics .settings.dates-picker button.btn.btn-sm.date-button{margin:0 5px}.analytics .settings.dates-picker button.btn.btn-sm.btn-info{border-radius:3px}.analytics .settings.dates-picker .tooltip-inner{text-transform:none}.analytics .settings.dates-picker .dropdown-menu>li>div>table{outline:0}.analytics .widget-item .content .settings.hist-mode-choser{max-height:70px}.analytics .widget-item .content .settings.hist-mode-choser [common-time-period-info]{padding-bottom:8px}.analytics .widget-item .content .settings.hist-mode-choser .options{width:150px;margin:auto;padding-bottom:8px;border-bottom:solid 1px #e6e6e6;font-weight:500;font-size:12px;color:#c4caca}.analytics .widget-item .content .settings.hist-mode-choser .options a{font-weight:500;font-size:12px;color:#c4caca;text-transform:uppercase}.analytics .widget-item .content .settings.hist-mode-choser .options a.active{color:#977bf0}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container{width:28px;height:28px;position:relative;top:-14px;margin:auto}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.right{left:46px}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.left{left:-30px}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow-border{border-top:14px solid #e6e6e6;border-left:14px solid transparent;border-right:14px solid transparent;width:0;height:0}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow{border-top:14px solid #fff;border-left:14px solid transparent;border-right:14px solid transparent;position:relative;top:12px;width:0;height:0}.analytics .settings.limit-entries{color:#1E303B;text-transform:uppercase;text-align:center;border-bottom:dashed 1px #E6E6E6;padding-bottom:8px}.analytics .settings.limit-entries a.option.badge{color:#fff;background-color:#1E303B}.analytics .settings.offsets .offset-value{font-style:italic;font-size:13px}.analytics .settings.offsets .offset-value .fa-trash-o{margin-left:10px}.analytics .settings.offsets .offset-value .fa-trash-o:hover{color:#e01f74;cursor:pointer}.analytics .settings.offsets input{width:75%}.analytics .settings.offsets button{width:30px}.analytics .settings.organizations .widget-lines-container .widget-line{padding:5px 10px 5px 18px}.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.organizations .widget-lines-container .widget-line .fa{float:right;font-size:20px;cursor:pointer}.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.analytics .widget-item .content .settings.param-selector{display:inline-block}.analytics .widget-item .content .settings.param-selector.classic{width:100%}.analytics .widget-item .content .settings.param-selector.classic select{width:100%;height:25px;border:1px solid #ccc;text-transform:uppercase;margin:0 0 5px}.analytics .widget-item .content .settings.param-selector a{font-weight:400;color:#977bf0;white-space:nowrap}.analytics .widget-item .content .settings.param-selector .options-container{position:absolute;background-color:#fff;text-align:left;min-width:150px;max-height:200px;z-index:999;overflow-y:auto;overflow-x:hidden;box-shadow:#000 0 3px 15px -3px}.analytics .settings.tag-filter .tag-lines-container .tag-line .host,.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col,.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line.header>[class*=col-]{position:static}.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label{padding:3px 5px;font-weight:500;font-size:inherit;color:#000;cursor:text;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.9}.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label:hover{cursor:pointer;background-color:#977bf0;color:#fff}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar{width:8px;background-color:#d7e2e4}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb{background-color:#977bf0}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb:hover{background-color:#a992f3}.analytics .settings.params-checkboxes{padding:2px 0}.analytics .settings.params-checkboxes input{margin:0;height:inherit}.analytics .settings.params-checkboxes span{margin-left:5px}.analytics .settings.params-checkboxes label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;line-height:14px}.analytics .settings.tag-filter{padding:0 5px}.analytics .settings.tag-filter .tag-lines-container,.analytics .widget-item .content .settings.params-picker{padding:0 10px}.analytics .settings.tag-filter .btn.btn-default{height:32px;width:30px}.analytics .settings.tag-filter .tag-lines-container .tag-line{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;border:1px solid #ccc}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags .tag-item{background:#79a2bb;border-radius:4px;color:#fff}.analytics .widget-item .content .settings.params-picker .parameter{margin:0 3px 3px 0;padding:3px 5px;background-color:#1E303B;color:#fff;border:1px solid #1E303B;border-radius:4px;cursor:move;font-weight:700;white-space:nowrap;float:left}.analytics .widget-item .content .settings.params-picker .parameter input[type=checkbox]{margin:0 -3px 0 3px;vertical-align:middle;height:inherit;outline:0;cursor:pointer}.analytics .widget-item .content .settings.params-picker .parameter .badge{margin-right:3px;font-size:10px;background-color:#f2f2f2;color:#1E303B;padding:2px 6px}.analytics .widget-item .content .settings.params-picker .parameter.unchecked{background-color:inherit;font-weight:400;color:inherit;border-color:#c2c4c4}.analytics .widget-item .content .settings.params-picker .parameter.unchecked .badge{background-color:#c2c4c4;color:#fff}.analytics .settings.time-period{padding:0 5px}.analytics .settings.time-period select{height:22px;width:100%}.analytics .settings.time-period>.row{margin:0 -5px 7px}.analytics .settings.time-period>.row>div{padding:0 5px;position:static}.analytics .settings.time-period>.row .sub-setting{padding:5px}.analytics .widget-item .content .settings.width{float:right;font-size:14px}.analytics .widget-item .content .settings.width i{color:silver;cursor:pointer}.analytics .widget-item .content .settings.width i.reduce{margin-right:-10px}.analytics .widget-item .content .settings.width i.expand{margin-right:-3px}.analytics .widget-item .content.accounts-assets-liability-summary .param-selector{text-align:center}.analytics .widget-item .content.accounts-assets-liability-summary .legend{text-align:left;max-height:90px}.analytics .widget-item .content.accounts-assets-liability-summary .legend .title{text-align:center;border-bottom:dashed 1px #dfe2e2}.analytics .widget-item .content.accounts-assets-summary .legend{text-align:left;max-height:115px}.analytics .widget-item .content.accounts-assets-summary .legend .title{text-align:center;border-bottom:dashed 1px #dfe2e2}.analytics .widget-item .content.accounts-assets-vs-liabilities .legend>.title span{margin-left:3px}.analytics .widget-item .content.accounts-balance h3{font-weight:300;font-size:14px;color:#5B6667;margin-top:30px;text-align:center}.analytics .widget-item .content.accounts-balance .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}@media (min-width:992px){.analytics .widget-item .content.accounts-balance-sheet{height:565px}.analytics .widget-item .content.accounts-balance-sheet .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-balance-sheet .edit{max-height:545px}.analytics .widget-item .content.accounts-balance-sheet .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:490px}@media (max-width:767px){.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line:not(:last-child){border-bottom:dashed 1px #dfe2e2}}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container.no-scroll{overflow:visible}.analytics .widget-item .content.accounts-balance-sheet .no-data-block{font-weight:300;font-size:16px;color:#5B6667;text-align:center;margin:15px 0}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-balance{height:565px}.analytics .widget-item .content.accounts-cash-balance .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-balance .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-balance .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-balance .data-container{height:calc(565px - 50px);width:100%}.analytics .widget-item .content.accounts-cash-balance .left-panel{width:180px;display:inline-block;overflow:auto}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:45px;margin:3px;font-size:13px;padding:3px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.analytics .widget-item .content.accounts-cash-projection,.analytics .widget-item .content.accounts-cash-summary,.analytics .widget-item .content.accounts-comparison,.analytics .widget-item .content.accounts-detailed-classifications,.analytics .widget-item .content.accounts-profit-and-loss,.analytics .widget-item .content.hr-payroll-summary,.analytics .widget-item .content.sales-aged,.analytics .widget-item .content.sales-comparison,.analytics .widget-item .content.sales-forecast,.analytics .widget-item .content.sales-leads-funnel,.analytics .widget-item .content.sales-opportunities-funnel,.analytics .widget-item .content.sales-performance{min-height:565px}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item:hover{background-color:#ececec}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item i{font-size:19px;padding:4px;margin-top:1px}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item span{color:#5B6667}.analytics .widget-item .content.accounts-cash-balance .legend-item-icon{width:16px;height:16px}.analytics .widget-item .content.accounts-cash-balance .right-panel{width:calc(100% - 180px);float:right}.analytics .widget-item .content.accounts-cash-balance .right-panel .cash-balance-chart{height:calc(565px - 50px)}.analytics .widget-item .content.accounts-cash-balance .dates-picker{display:inline-block;float:right;font-size:12px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-projection{height:565px}.analytics .widget-item .content.accounts-cash-projection .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-projection .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-projection .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-projection .cash-projection-chart{height:calc(565px - 50px)}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point{display:none}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span{width:110px;text-align:center}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span img{text-align:center;width:55px;height:25px}.analytics .widget-item .content.accounts-cash-projection .dates-picker{display:inline-block;float:right;font-size:12px}.analytics .widget-item .content.accounts-cash-projection transactions-list{font-size:12px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-summary{height:565px}.analytics .widget-item .content.accounts-cash-summary .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-summary .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-summary .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container{max-height:540px}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.accounts-cash-summary .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-cash-summary .row.lines-group.cash{border-top:solid 1px;border-bottom:double}.analytics .widget-item .content.accounts-class-comparison .param-selector{text-align:center}.analytics .widget-item .content.accounts-class-comparison .widget-lines-container{max-height:94px;color:#626d6d}@media (min-width:992px){.analytics .widget-item .content.accounts-comparison{height:565px}.analytics .widget-item .content.accounts-comparison .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-comparison .edit{max-height:545px}.analytics .widget-item .content.accounts-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}@media print{.analytics .widget-item .content.accounts-comparison .chart-container{max-width:80%!important}}.analytics .widget-item .content.accounts-comparison .add-account{position:absolute;right:40px;bottom:30px;width:160px}.analytics .widget-item .content.accounts-comparison .add-account select{font-size:13px;background-color:#977bf0;color:#fff;outline:0;border:none;cursor:pointer}.analytics .widget-item .content.accounts-comparison .add-account select[disabled]{cursor:not-allowed;background-color:#bba9f5}.analytics .widget-item .content.accounts-comparison .add-account select[disabled]:hover{background-color:#bba9f5}.analytics .widget-item .content.accounts-comparison .add-account select:hover{background-color:#734deb}.analytics .widget-item .content.accounts-comparison .add-account select option{background-color:#fff;color:#c4caca}.analytics .widget-item .content.accounts-comparison .add-account select option[disabled]{color:#fff}.analytics .widget-item .content.accounts-comparison button.close{font-size:15px}.analytics .widget-item .content.accounts-comparison .legend{text-align:left;max-height:103px}.analytics .widget-item .content.accounts-comparison .row{margin:0}.analytics .widget-item .content.accounts-comparison .widget-lines-container{font-size:11px;max-height:220px;margin-bottom:65px;overflow:auto}.analytics .widget-item .content.accounts-comparison .settings.params-checkboxes{margin-left:13px}.analytics .widget-item .content.accounts-comparison .comparable-error h5{margin-left:13px;color:#ed1e79}.analytics .widget-item .content.accounts-custom-calculation h3{margin-top:85px;text-align:center;font-weight:700}.analytics .widget-item .content.accounts-custom-calculation .legend{max-height:125px}.analytics.modal-custom-calculation{margin:0;padding:0}.analytics.modal-custom-calculation .modal-body .edit{overflow-y:auto;overflow-x:hidden;color:#5B6667;font-size:12px;padding:5px;overflow:visible}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn{border-radius:2px;margin-right:5px;padding:3px 13px;text-transform:uppercase;font-size:12px}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default{background-color:#c2c4c4;border:1px solid #a8abab;color:#fff}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default:hover{border:1px solid #8e9292;background-color:#a8abab}.analytics.modal-custom-calculation .modal-body .edit h4{margin:0 0 8px;text-align:left;font-weight:400;font-size:12px;color:#c4caca}.analytics.modal-custom-calculation .modal-body .edit .part{margin-bottom:8px;padding:10px 0;background-color:#fcfcfc;border:1px solid #dfe2e2}.analytics.modal-custom-calculation .modal-body .edit .part h5{display:block;margin:0 0 10px;padding:0 15px;text-transform:uppercase;font-weight:400;font-size:12px;color:#c4caca}.analytics.modal-custom-calculation .modal-body .edit .part label{font-weight:400}.analytics .widget-item .content.accounts-expenses-revenue .legend,.analytics .widget-item .content.accounts-payable-receivable .legend{font-weight:700}.analytics.modal-custom-calculation .modal-body .edit .part select.form-control{margin:0;border:1px solid #acb0b1;outline:0;-webkit-box-shadow:none;font-size:13px;color:#72728b}@media (min-width:992px){.analytics .widget-item .content.accounts-detailed-classifications{height:565px}.analytics .widget-item .content.accounts-detailed-classifications .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-detailed-classifications .edit{max-height:545px}.analytics .widget-item .content.accounts-detailed-classifications .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-detailed-classifications .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:540px}.analytics .widget-item .content.accounts-detailed-classifications .account-class-title{margin-bottom:8px;margin-left:11px}.analytics .widget-item .content.accounts-detailed-classifications .time-period-info{text-align:right}.analytics .widget-item .content.accounts-detailed-classifications .widget-line.header.sorting{border-bottom:1px solid #ccc}.analytics .widget-item .content.accounts-expense-weight .legend{text-align:left;max-height:115px}.analytics .widget-item .content.accounts-expense-weight .legend .title{text-align:center}.analytics .widget-item .content.accounts-expenses-revenue .settings.params-checkboxes{font-size:12px;margin-left:0;text-align:center}.analytics .widget-item .content.accounts-payable-receivable h3{text-align:center}.analytics .widget-item .content.accounts-payable-receivable .payable{margin-top:15px}.analytics .widget-item .content.accounts-payable-receivable .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}@media (min-width:992px){.analytics .widget-item .content.accounts-profit-and-loss{height:565px}.analytics .widget-item .content.accounts-profit-and-loss .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-profit-and-loss .edit{max-height:545px}.analytics .widget-item .content.accounts-profit-and-loss .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container{max-height:540px}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.accounts-profit-and-loss .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-profit-and-loss .row.lines-group.profit{border-top:solid 1px;border-bottom:double}.analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header>[class*=col-]{position:static}.analytics .widget-item .content.accounts-ratios .left-panel{max-height:230px;overflow-y:auto}.analytics .widget-item .content.accounts-ratios .left-panel .separator{border-bottom:solid 1px #5B6667;width:75%}.analytics .widget-item .content.accounts-ratios .left-panel .member{padding-top:20px;padding-bottom:20px}.analytics .widget-item .content.accounts-ratios .left-panel .member .price{margin-top:0;font-size:18px}.analytics .widget-item .content.accounts-ratios .left-panel button{outline:0}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member{padding-top:5px}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .legend{display:none}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .price{text-align:right}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .separator{width:100%}.analytics .widget-item .content.hr-employee-details{font-size:12px}.analytics .widget-item .content.hr-employee-details .details-container{padding:0;max-height:none;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.hr-employee-details .right-panel .legend{margin-bottom:5px}.analytics .widget-item .content.hr-employee-details .title{text-align:center;margin-bottom:10px;font-size:14px}.analytics .widget-item .content.hr-employees-list .legend{margin-bottom:9px}.analytics .widget-item .content.hr-employees-list .widget-lines-container{text-align:center}.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.hr-employees-list .edit .widget-lines-container{text-align:left}.analytics .widget-item .content.hr-leaves-balance .employee-name{text-align:center}.analytics .widget-item .content.hr-leaves-balance .balance{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.hr-leaves-balance h3{margin-top:33px;text-align:center}.analytics .widget-item .content.hr-leaves-schedule .fc-button{height:22px;font-size:12px;color:#977bf0;background:#fff;outline:0}.analytics .widget-item .content.hr-leaves-schedule .fc-button:hover{color:#fff;background:#977bf0}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.hr-leaves-schedule .fc-toolbar{margin-bottom:5px}.analytics .widget-item .content.hr-leaves-schedule .fc-day-grid,.analytics .widget-item .content.hr-leaves-schedule .fc-widget-header{font-size:12px;color:#5B6667}@media (min-width:992px){.analytics .widget-item .content.hr-employee-details .details-container{max-height:200px}.analytics .widget-item .content.hr-employee-details .right-panel .details-container{max-height:220px}.analytics .widget-item .content.hr-payroll-summary{height:565px}.analytics .widget-item .content.hr-payroll-summary .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.hr-salaries-summary h3.right,.analytics .widget-item .content.hr-workforce-summary h3.right{margin-bottom:10px;text-align:center}.analytics .widget-item .content.hr-payroll-summary .edit{max-height:545px}.analytics .widget-item .content.hr-payroll-summary .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container{max-height:540px}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:145px}.analytics .widget-item .content.hr-payroll-summary .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.hr-salaries-summary h3.left{text-align:center}.analytics .widget-item .content.hr-salaries-summary h3.reduced-left{text-align:center}@media (min-width:992px){.analytics .widget-item .content.hr-salaries-summary h3.left{margin-top:69px}.analytics .widget-item .content.hr-salaries-summary h3.reduced-left{margin-top:10px}}.analytics .widget-item .content.hr-salaries-summary .price{margin-top:0}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container{max-height:75px}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container .widget-line{font-size:11px}.analytics .widget-item .content.hr-superannuation-accruals h3{margin-top:63px;text-align:center}.analytics .widget-item .content.hr-superannuation-accruals .legend{margin-top:23px}.analytics .widget-item .content.hr-superannuation-accruals .currency{font-size:14px}.analytics .widget-item .content.hr-superannuation-accruals .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.hr-timesheets .currency{font-size:14px}.analytics .widget-item .content.hr-timesheets .widget-lines-container{max-height:210px}.analytics .widget-item .content.hr-workforce-summary h3.left{text-align:center}.analytics .widget-item .content.hr-workforce-summary h3.reduced-left{text-align:center}@media (min-width:992px){.analytics .widget-item .content.hr-workforce-summary h3.left{margin-top:69px}.analytics .widget-item .content.hr-workforce-summary h3.reduced-left{margin-top:10px}}.analytics .widget-item .content.hr-workforce-summary .price{margin-top:0}.analytics .widget-item .content.hr-workforce-summary .widget-lines-container{max-height:75px}.analytics .widget-item .content.hr-workforce-summary .widget-lines-container .widget-line{font-size:11px}@media (min-width:480px) and (max-width:991px){.analytics .widget-item .content.hr-salaries-summary .right-panel .chart-container,.analytics .widget-item .content.hr-workforce-summary .right-panel .chart-container{max-width:320px}}.analytics .widget-item .content.invoices-aged-payables-receivables{min-height:565px}@media (min-width:992px){.analytics .widget-item .content.invoices-aged-payables-receivables{height:565px}.analytics .widget-item .content.invoices-aged-payables-receivables .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.invoices-aged-payables-receivables .edit{max-height:545px}.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container{max-height:540px}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.sales-aged .edit .widget-lines-container,.analytics .widget-item .content.sales-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.invoices-aged-payables-receivables .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.invoices-aged-payables-receivables .row.astericks-info{margin-top:15px}.analytics .widget-item .content.invoices-aged-payables-receivables .currency-conversions{float:right;margin-left:3px}.analytics .widget-item .content.invoices-list .widget-lines-container{max-height:230px}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.invoices-list .currency-conversions{float:right;margin-right:3px;margin-top:-2px}.analytics .widget-item .content.invoices-list .fa.fa-info-circle{float:right;font-size:15px}.analytics .widget-item .content.invoices-list .right-column{padding-left:0;padding-right:0}.analytics .widget-item .content.invoices-summary .chart-container{max-width:410px}.analytics .widget-item .content.invoices-summary .legend{max-height:28px}@media (min-width:992px){.analytics .widget-item .content.sales-aged{height:565px}.analytics .widget-item .content.sales-aged .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-aged .edit{max-height:545px}.analytics .widget-item .content.sales-aged .widget-lines-container{max-height:238px}.analytics .widget-item .content.sales-break-even .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-break-even .block{margin:5px;padding:0 10px 5px;text-align:left;box-shadow:0 7px 10px -7px #17262d;font-size:12px}.analytics .widget-item .content.sales-break-even .block form.editable-wrap .editable-controls input{margin-top:5px;width:100px}.analytics .widget-item .content.sales-break-even .block.to-date{background-color:#f0f0f0;color:#5B6667}.analytics .widget-item .content.sales-break-even .block.to-breakeven{margin-top:10px;background-color:#192831;color:#1de9b6}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main:hover{background-color:#e6e0fb}.analytics .widget-item .content.sales-break-even .block.to-breakeven .title{border-bottom:solid 1px #2a4453}.analytics .widget-item .content.sales-break-even .block.to-breakeven .define-text{font-weight:300;font-size:16px;text-align:center;padding-top:5px;color:#1de9b6}.analytics .widget-item .content.sales-break-even .block.to-breakeven .price{color:#1de9b6}.analytics .widget-item .content.sales-break-even .block .title{font-size:13px;text-align:center;font-variant:small-caps;border-bottom:solid 1px #e6edee;font-weight:300}@media (min-width:992px){.analytics .widget-item .content.sales-comparison{height:565px}.analytics .widget-item .content.sales-comparison .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-comparison .edit{max-height:545px}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-comparison .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.sales-comparison .widget-lines-container{max-height:530px}.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:250px}.analytics .widget-item .content.sales-comparison .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-customer-details{font-size:12px}.analytics .widget-item .content.sales-customer-details .loader{font-size:14px}.analytics .widget-item .content.sales-customer-details .details-container{padding:0;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.sales-forecast .edit .widget-lines-container,.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}@media (min-width:992px){.analytics .widget-item .content.sales-customer-details .details-container{max-height:194px}.analytics .widget-item .content.sales-customer-details .right-panel .details-container{max-height:230px}}.analytics .widget-item .content.sales-customer-details .right-panel .legend{margin-bottom:5px}.analytics .widget-item .content.sales-customer-details .row.title{text-align:center;margin-bottom:10px;font-size:14px}.analytics .widget-item .content.sales-customer-details .currency-conversions{float:left;margin-right:3px}.analytics .widget-item .content.sales-cycle .chart-container{max-width:410px}.analytics .widget-item .content.sales-cycle .legend{max-height:28px}@media (min-width:992px){.analytics .widget-item .content.sales-forecast{height:565px}.analytics .widget-item .content.sales-forecast .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-forecast .edit{max-height:545px}.analytics .widget-item .content.sales-forecast .widget-lines-container{max-height:275px}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select{cursor:auto}.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container .widget-line,.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line{cursor:default}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-growth .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-growth .legend{max-height:49px;font-size:14px;text-overflow:ellipsis;white-space:nowrap}@media (min-width:992px){.analytics .widget-item .content.sales-leads-funnel{height:565px}.analytics .widget-item .content.sales-leads-funnel .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-leads-funnel .edit{max-height:545px}.analytics .widget-item .content.sales-leads-funnel .funnel-container{width:95%;margin:15px auto auto;padding-right:10px;max-height:505px;overflow:auto}.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container{max-height:545px;margin-right:10px}.analytics .widget-item .content.sales-leads-list .widget-lines-container{max-height:230px;overflow-y:scroll;overflow-x:hidden}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header:hover,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.sales-list .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:170px}.analytics .widget-item .content.sales-list .widget-lines-container.no-scroll{overflow:visible}.analytics .widget-item .content.sales-list .selector{margin-bottom:4px}.analytics .widget-item .content.sales-list .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-net-sales .operator,.analytics .widget-item .content.sales-net-sales .value-container{line-height:85px}.analytics .widget-item .content.sales-net-sales .value-container .title{line-height:20px;font-size:1.2em;padding:10px 0}.analytics .widget-item .content.sales-net-sales .value-container .value-box{font-size:1.3em;border-radius:10px;border-top:solid 1px #C4CACA;border-bottom:solid 1px #C4CACA;white-space:nowrap}.analytics .widget-item .content.sales-net-sales .operator{padding-top:38px;font-size:1.3em}@media (min-width:992px){.analytics .widget-item .content.sales-net-sales .values{margin-top:25px}}.analytics .widget-item .content.sales-number-of-leads .stats{margin-top:35px;font-size:18px}.analytics .widget-item .content.sales-number-of-leads .stats .stat{margin:15px 0 10px;border-bottom:solid 1px #e6edee}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.title{font-weight:700}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.nominal{float:right;text-align:right;font-weight:300}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.variation{float:right;width:50px;text-align:right;font-style:italic;font-size:14px;font-weight:300;margin-top:2px}.analytics .widget-item .content.sales-new-vs-existing-customers .selector .selector-wrap{display:inline-block;margin:0 5px}.analytics .widget-item .content.sales-new-vs-existing-customers .chart-container{margin-top:15px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend{margin-top:5px;font-weight:700;max-height:77px!important}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row{margin:0 -5px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row>div{padding:0 5px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .total{color:#5B6667;font-size:14px}@media (min-width:992px){.analytics .widget-item .content.sales-opportunities-funnel{height:565px}.analytics .widget-item .content.sales-opportunities-funnel .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-opportunities-funnel .edit{max-height:545px}.analytics .widget-item .content.sales-opportunities-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-opportunities-funnel .funnel-container{width:95%;margin:15px auto auto;padding-right:10px;max-height:505px;overflow:auto}.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container{max-height:545px;margin-right:10px}@media (min-width:992px){.analytics .widget-item .content.sales-performance{height:565px}.analytics .widget-item .content.sales-performance .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header .selection-tag,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-performance .edit{max-height:545px}.analytics .widget-item .content.sales-performance .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-performance .widget-lines-container{max-height:540px}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.sales-performance .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select{cursor:auto}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-segmented-turnover h3.right{margin-top:55px;text-align:center}.analytics .widget-item .content.sales-segmented-turnover .selector{margin-bottom:10px}.analytics .widget-item .content.sales-segmented-turnover .analysis{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container{max-height:75px}.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container .widget-line{font-size:11px}.analytics .widget-item .content.sales-segmented-turnover .right-panel h3{margin:15px 10px 5px;text-align:center}.analytics .widget-item .content.sales-segmented-turnover .right-panel .fa.fa-info-circle{float:left}.analytics .widget-item .content.sales-summary .chart-container{max-width:410px}.analytics .widget-item .content.sales-summary .legend{max-height:28px}.analytics .widget-item .content.sales-summary .selector{margin-bottom:5px}.analytics .widget-item .content.sales-top-customers .selector{border-bottom:dashed 1px #E6E6E6;padding-bottom:3px}.analytics .widget-item .content.sales-top-customers .selector a{font-weight:400}.analytics .widget-item .content.sales-top-customers .selector .param-selector{display:inline-block}.analytics .widget-item .content.sales-top-customers .widget-lines-container{max-height:235px}.analytics .widget-item .content.sales-top-customers .widget-lines-container .widget-line.sub-line{background-color:#f0f0f0}.analytics .widget-item .content.sales-top-customers .widget-lines-container .row>[class*=col-]{position:static}.analytics .widget-item .content.sales-top-customers .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-top-opportunities .opps-container{max-height:195px;margin-top:10px;padding-right:10px;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile{height:40px;font-size:13px;font-weight:300}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .colored-area{width:10%;text-align:center;font-size:20px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .main-text{color:#5B6667;padding:3px 0 0 10px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first{height:55px;font-size:15px;font-weight:700}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .colored-area{font-size:26px;padding-top:10px;background-color:#ff6e41}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .main-text{padding-top:8px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second{height:55px;font-size:15px;font-weight:500}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .colored-area{font-size:26px;padding-top:10px;background-color:#1de9b6}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .main-text{padding-top:8px} \ No newline at end of file + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */.label,sub,sup{vertical-align:baseline}hr,img{border:0}body,figure{margin:0}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.btn,.kpi-alerts-settings .modal-body ul>li.list-group-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea,.analytics kpis-bar>.kpis .actions .im-form-group textarea{resize:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;color:#00e5f0;text-decoration:none}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}.img-thumbnail,body{background-color:#fff}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}sub,sup{font-size:75%;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}.glyphicon,address{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}td,th{padding:0}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a:focus,a:hover{color:#009ca3;text-decoration:underline}a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#00e5f0}a.text-primary:focus,a.text-primary:hover{color:#00b4bd}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#00e5f0}a.bg-primary:focus,a.bg-primary:hover{background-color:#00b4bd}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{border-collapse:collapse;border-spacing:0}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{margin:0;min-width:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-primary .badge{color:#00e5f0;background-color:#fff}.btn-success{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-success .badge{color:#00e5f0;background-color:#fff}.btn-info{color:#fff;background-color:#00e5f0;border-color:#00cdd7}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#00b4bd;border-color:#005357}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#00b4bd;border-color:#009299}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#009299;border-color:#005357}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#00e5f0;border-color:#00cdd7}.btn-info .badge{color:#00e5f0;background-color:#fff}.btn-warning{color:#fff;background-color:#977bf0;border-color:#8564ed}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#734deb;border-color:#3d15bd}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#734deb;border-color:#5a2de7}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#5a2de7;border-color:#3d15bd}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#977bf0;border-color:#8564ed}.btn-warning .badge{color:#977bf0;background-color:#fff}.btn-danger{color:#fff;background-color:#e01f74;border-color:#ca1c68}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#b3195d;border-color:#5a0c2e}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#b3195d;border-color:#94144d}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#94144d;border-color:#5a0c2e}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#e01f74;border-color:#ca1c68}.btn-danger .badge{color:#e01f74;background-color:#fff}.btn-link{color:#00e5f0;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#009ca3;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;transition-property:height,visibility;transition-duration:.35s;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#00e5f0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#00e5f0}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#00e5f0}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.analytics pre,.carousel-inner,.embed-responsive,.media,.media-body,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-danger,.progress-striped .progress-bar-info,.progress-striped .progress-bar-success,.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#00e5f0;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#009ca3;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#00e5f0;border-color:#00e5f0;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;cursor:pointer;text-decoration:none}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#00e5f0}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#00b4bd}.label-success{background-color:#00e5f0}.label-success[href]:focus,.label-success[href]:hover{background-color:#00b4bd}.label-info{background-color:#00e5f0}.label-info[href]:focus,.label-info[href]:hover{background-color:#00b4bd}.label-warning{background-color:#977bf0}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#734deb}.label-danger{background-color:#e01f74}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#b3195d}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#00e5f0;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#00e5f0}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar,.progress-bar-info,.progress-bar-success{background-color:#00e5f0}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{animation:progress-bar-stripes 2s linear infinite}.progress-bar-warning{background-color:#977bf0}.progress-bar-danger{background-color:#e01f74}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#00e5f0;border-color:#00e5f0}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#bdfcff}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#00e5f0}.panel-primary>.panel-heading{color:#fff;background-color:#00e5f0;border-color:#00e5f0}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#00e5f0}.panel-primary>.panel-heading .badge{color:#00e5f0;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#00e5f0}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-content,.popover{background-clip:padding-box}.modal{display:none;position:fixed;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{transform:translate(0,-25%);transition:transform .3s ease-out}.modal.in .modal-dialog{transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-weight:400;text-align:left;text-align:start;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.top .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.top-left .tooltip-arrow{right:5px;margin-bottom:-5px}.tooltip.top-right .tooltip-arrow{left:5px;margin-bottom:-5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-weight:400;text-align:left;text-align:start;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.left>.arrow:after,.popover.right>.arrow:after{content:" ";bottom:-10px}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{left:1px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%}.carousel-inner>.item{display:none;position:relative;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.analytics h2,.analytics h3{font-size:14px;color:#5B6667}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}.top-buffer-1{margin-top:15px}.top-buffer-2{margin-top:30px}.top-buffer-3{margin-top:45px}.top-buffer-4{margin-top:60px}.top-buffer-5{margin-top:75px}.top-buffer-6{margin-top:90px}.top-buffer-7{margin-top:105px}.top-buffer-8{margin-top:120px}.top-buffer-9{margin-top:135px}.top-buffer-10{margin-top:150px}body{height:101%!important}.analytics h2{margin-top:2px}.analytics h3{margin:0;font-weight:300;text-align:left}.analytics h4{color:#5B6667;font-size:16px}.analytics .green,.analytics .positive{color:green!important}.analytics .negative,.analytics .red{color:#ed1e79!important}.analytics .positive2{color:#3fc4ff!important}.analytics .negative2{color:#1de9b6!important}.analytics a{font-weight:700;color:#977bf0;cursor:pointer}.analytics .input-group{width:100%}.analytics select{margin-top:5px;background-color:#fff;height:32px}.analytics pre{font-size:12px;padding:0;margin:1px 0 8px;border:none;white-space:pre-wrap;word-wrap:break-word}.analytics .widget-item .content ::-webkit-scrollbar,.analytics kpis-bar .kpi ::-webkit-scrollbar{width:6px;background-color:transparent}.analytics .widget-item .content ::-webkit-scrollbar-thumb,.analytics kpis-bar .kpi ::-webkit-scrollbar-thumb{background-color:#6896b2;border-radius:10px}.analytics .widget-item .content ::-webkit-scrollbar-thumb:hover,.analytics kpis-bar .kpi ::-webkit-scrollbar-thumb:hover{background-color:#79a2bb}.analytics .nopadding{padding:0}.analytics .nomargin{margin:0}.analytics .btn.btn-shaded{background-color:#17262d;border:1px solid #0e181c;color:#626d6d;font-weight:400}.analytics .btn.btn-shaded:hover{color:#6e7a7a;background-color:#20343e}.analytics .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:30px}.analytics .currency{font-weight:300;font-size:16px;text-align:center;color:#9ba6a7}.analytics .legend{font-weight:300;font-size:12px;text-align:center;overflow-y:auto;overflow-x:hidden;color:#c4caca}.analytics .loader{height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.analytics .loader i{color:#67BBE9}.analytics .loader p{margin-top:10px}.analytics .right-panel{border-left:solid 1px #e6e6e6}.analytics .selector{text-transform:uppercase;font-size:12px;color:#626d6d;text-align:center}.analytics .tile{background-color:#f7f7f7;box-shadow:0 7px 10px -7px #17262d;height:45px;margin-bottom:10px;white-space:nowrap;cursor:pointer}.analytics .tile:hover{background-color:#e2f2ff}.analytics .tile .colored-area{background-color:#3FC4FF;height:100%;float:right;color:#fff;text-align:right;padding:5px 10px;min-width:8%}.analytics .tile .colored-area.selected{background-color:#977bf0}.analytics .tile .main-text{color:#5B6667;padding:20px 0 0 5px;height:100%;font-style:italic;font-weight:700}.analytics .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:200px;text-align:left;font-size:12px;padding:0 15px}.analytics .widget-lines-container .row.widget-line{padding:5px;color:#626d6d}.analytics .widget-lines-container .row.widget-line.header{font-weight:500;font-size:12px;color:#9ba6a7;text-transform:uppercase}@media (max-width:767px){.analytics .widget-lines-container .row.widget-line{margin:inherit;margin-left:-3px;margin-right:-3px;padding:2px}.analytics .widget-lines-container .row.widget-line>[class*=col-]{padding-left:3px;padding-right:3px}}.analytics .widget-lines-container .row.widget-line i.fa{min-width:12px;min-height:12px}.analytics .widget-lines-container .row .dashed{border-bottom:dashed 1px #dfe2e2;padding-bottom:3px;margin-bottom:3px}.analytics .widget-lines-container .row.lines-group{border-top:solid 1px #e6edee}.vertical-scroll{overflow-y:scroll}.horizontal-scroll{overflow-x:scroll}.tooltip.impac-widgets-tooltip .tooltip-inner.ng-binding{text-align:left;background-color:#232528;max-width:100%;white-space:nowrap}.tooltip.impac-widgets-tooltip .tooltip-inner.ng-binding strong{color:#dae173}.sortable-title{cursor:pointer}.sortable-title div{display:inline-block}.has-error .form-control,.has-error .form-control:focus{border-color:#e01f74}.has-success .form-control,.has-success .form-control:focus{border-color:#00e5f0}.row.no-gutters{margin-right:0;margin-left:0}[class*=" col-"].no-gutters,[class^=col-].no-gutters{padding-right:0;padding-left:0}@media print{body{background-color:#fff!important}.analytics{padding-top:0!important}.analytics #module__dashboard-selector .title-container{margin-top:20px}.analytics .widget-item{page-break-inside:avoid}.analytics .widget-item .content .chart-container{max-width:270px;margin:auto}.analytics .widget-item .content .chart-container canvas{width:100%!important;height:100%!important}.analytics .widget-item .right-panel{page-break-inside:avoid;border-left:0}.analytics .widget-item .right-panel .chart-container{max-width:inherit;max-height:inherit}.analytics .widget-item .right-panel .chart-container canvas{width:80%!important;height:80%!important}*{transition:none!important}}.kpi-alerts-settings .modal-header{font-size:20px}.kpi-alerts-settings .modal-body{line-height:2}.kpi-alerts-settings .modal-body ul{margin-top:10px}.kpi-alerts-settings .modal-body ul>li.list-group-item{list-style:none;padding:6px 15px;color:#9ba6a7;user-select:none}.kpi-alerts-settings .modal-body ul>li.list-group-item .alert-toggle:hover{cursor:pointer}.kpi-alerts-settings .modal-body ul>li.list-group-item.active{color:#358fdc;font-weight:700;background-color:transparent;border-color:#c4caca}.kpi-alerts-settings .modal-body .fa.fa-toggle-off,.kpi-alerts-settings .modal-body .fa.fa-toggle-on{font-size:17px;margin-right:8px}.kpi-alerts-settings .modal-body ul.recipients-list{height:75px;overflow:hidden;overflow-y:scroll;border:1px solid #c4caca}.kpi-alerts-settings .modal-body ul.recipients-list li{border:none}.kpi-alerts-settings .modal-body input.recipient-search{color:#000;width:100%}.kpi-alerts-settings .modal-body ul.available{margin-top:0}.analytics{padding-top:50px;margin-left:100px}@media screen and (max-width:992px){.analytics{padding-top:150px}}.analytics.pdf-mode{padding-top:20px}.analytics.show-dhb{transition:opacity 1s;opacity:1}.analytics.hide-dhb{opacity:0}.analytics #dashboard-heading img{float:left;margin-right:15px;max-width:200px;max-height:150px}.analytics #dashboard-heading img.pdf-mode:hover{cursor:pointer}.analytics #dashboard-heading .caption{font-size:14px;margin:5px 0}.analytics #sub-menu{margin-top:15px}.analytics #sub-menu h3{font-size:26px;font-weight:400;margin-bottom:10px;color:#233845}.analytics #sub-menu .fa.fa-times{margin:6px;color:#3d6178;cursor:pointer;float:right}.analytics #widget-selector{background-color:#233845;color:#fff;padding:0 45px 10px;margin:10px -45px;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}@media (max-width:767px){.analytics #widget-selector{padding:0 15px 10px;margin:0}}.analytics #widget-selector .title{padding:15px 0;border-bottom:solid 1px #2d4859;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.analytics #widget-selector .title p.instruction{-ms-flex-positive:1;flex-grow:1;margin:0}@media screen and (max-width:768px){.analytics #widget-selector .title p.instruction{width:50%;font-size:13px}}.analytics #widget-selector .title .widget-added.badge{margin-right:10px;opacity:0}.analytics #widget-selector .title .fa.close-selector{float:right;cursor:pointer;font-size:20px;padding:6px}.analytics #widget-selector .title .fa.close-selector:hover{color:#999}.analytics #widget-selector .top-container{margin:15px 0;background-color:transparent;border-radius:3px}.analytics #widget-selector .section-header{padding:10px 20px;font-weight:700;min-height:40px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.analytics #widget-selector .section-lines{overflow-x:hidden;overflow-y:auto;height:200px;margin-right:-10px;margin-left:0}.analytics #widget-selector .section-lines p{padding:5px;margin:0;cursor:pointer}.analytics #widget-selector .section-lines p.selected,.analytics #widget-selector .section-lines p:hover{color:#fff}.analytics #widget-selector .section-lines::-webkit-scrollbar{width:6px;background-color:transparent}.analytics #widget-selector .section-lines::-webkit-scrollbar-thumb{background-color:#28404f;border-radius:10px}.analytics #widget-selector .section-lines::-webkit-scrollbar-thumb:hover{background-color:#2d4859}.analytics #widget-selector .categories-section{background-color:#192831;padding-bottom:15px}.analytics #widget-selector .categories-section>.section-lines>[class*=col-]:first-child{padding:3px 12px}.analytics #widget-selector .categories-section>.section-lines .line-item:hover{background-color:#1e303b}.analytics #widget-selector .categories-section>.section-lines .line-item.selected{background-color:#977bf0;font-weight:700;box-shadow:-2px 2px 10px -4px #000}.analytics #widget-selector .categories-section .arrow-icon{position:absolute;top:33px;right:-11px;z-index:1}.analytics #widget-selector .categories-section .arrow-icon .square{width:50px;height:30px;position:absolute;top:10px;right:17px;background-color:#977bf0}.analytics #widget-selector .categories-section .arrow-icon i.fa.fa-caret-right{font-size:52px;color:#977bf0;float:right;position:absolute;top:-1.5px;right:0}.analytics #widget-selector .widgets-section{background-color:#1e303b;padding-bottom:15px}.analytics #widget-selector .widgets-section>.section-header{text-transform:uppercase;font-size:12px;color:#977bf0}.analytics #widget-selector .widgets-section>.section-lines{padding:3px 0}.analytics #widget-selector .widgets-section>.section-lines .fa.fa-plus-circle{float:right;margin-top:3px}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid{width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:0%}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item{padding:0 13px;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex:0 31.33%;flex:0 31.33%;margin:0 1%;-ms-flex-align:center;align-items:center;border-bottom:solid 1px #233845;min-height:0}@media screen and (max-width:992px){.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item{-ms-flex:0 100%;flex:0 100%}}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item:hover{background-color:#192831;font-weight:400}.analytics #widget-selector .widgets-section>.section-lines>.line-items-grid>.grid-item p.line-item{-ms-flex-positive:1;flex-grow:1}.analytics #widget-selector .bottom{height:20px}.analytics #widget-selector .bottom>.suggestion{float:right;opacity:.7}.analytics #widget-selector .bottom>.suggestion a{cursor:pointer}.analytics #widget-selector .bottom>.suggestion a:hover{color:#00e5f0}.analytics #widget-selector .bottom>.suggestion:hover{opacity:1}.analytics #dashboard-settings-panel{position:relative;margin-top:5px}.analytics #dashboard-settings-panel>div{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.analytics #dashboard-settings-panel>div>*{margin:0 3px}.analytics #dashboard-settings-panel select{margin:0;height:34px;padding-top:1px}.analytics #no-widgets-container{position:relative;min-height:150px}.analytics #no-widgets-container img.bg{left:0;top:0;min-width:100%;min-height:100%}.analytics #no-widgets-container .impac-info-message{position:absolute;top:0;width:100%}.analytics #no-widgets-container .impac-info-message .info-text{font-size:25px;font-weight:300;padding:20px;min-height:115px;color:#fff;border-radius:10px;background-color:rgba(23,38,45,.7)}.analytics #widgets-section #widgets-container{min-height:700px}.analytics #widgets-section .placeHolderBox{margin:12px;height:267px;width:300px;float:left;border:2px dashed #abc4c6;background:0 0}.analytics.load-failed p{font-size:22px}.analytics.load-failed .second-msg p{color:#e01f74;font-size:14px}.tooltip.impac-widget-selector-tooltip .tooltip-inner.ng-binding{font-size:14px}.dhb-create-modal .dashboard-form .col-sm-2.control-label{text-align:left}.impac-widget-suggestion .modal-body input,.impac-widget-suggestion .modal-body textarea{width:100%;color:#000}.impac-widget-suggestion .modal-body textarea{height:150px}.impac-widget-suggestion .modal-body .thanks-message{color:#dae173}.modal-footer .loader{color:#fff}#module__dashboard-selector a{font-weight:400}#module__dashboard-selector>div:first-child{border-bottom:1px solid #abc4c6}#module__dashboard-selector .buttons-bar-row{margin-top:54px}#module__dashboard-selector .buttons-bar-row.pdf-mode{margin-top:0}#module__dashboard-selector .buttons-bar{padding:0;position:relative}#module__dashboard-selector .buttons-bar .btn{float:right;margin:3px;border-radius:4px}#module__dashboard-selector .buttons-bar .title-container h1{margin:0;color:#000;cursor:auto}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title{color:#977bf0;display:inline;cursor:pointer}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title:hover{color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title i.fa.fa-pencil{margin-left:20px;font-size:14px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-title i.fa.fa-pencil:hover{color:#dae173}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select{margin:5px 0 10px 30px;height:auto;border-left:1px solid #977bf0;border-bottom:1px solid #977bf0;width:300px;background-color:#e6edee;cursor:pointer}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option{color:#17262d;white-space:nowrap}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option:hover{background-color:#fff}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option.create{background-color:#977bf0;color:#fff;height:30px;padding:5px 10px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option.create:hover{background-color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option i.fa.fa-pencil{float:right;padding-top:7px;text-align:center;width:15%;height:30px}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option i.fa.fa-pencil:hover{color:#734deb}#module__dashboard-selector .buttons-bar .dropdown-container .dashboard-select .option span.name{width:85%;height:30px;display:inline-block;padding:5px 10px}#module__dashboard-selector .buttons-bar .dropdown-container .change-name{position:absolute;top:30px;left:20px;width:60%;background-color:#17262d;color:#fff;padding:10px;border-radius:4px;text-align:center;box-shadow:0 0 25px 4px #000;z-index:50;border:1px solid #fff}#module__dashboard-selector .buttons-bar .dropdown-container .change-name .form-control{height:25px;margin-bottom:10px}#module__dashboard-selector .buttons-bar .dropdown-container .data-source-label{color:#17262d;padding-left:3px;margin:0}#module__dashboard-selector .buttons-bar .loader-container{padding-left:10px}#module__dashboard-selector .buttons-bar .loader-container .loading-spinner{color:#67BBE9;font-size:40px}#module__dashboard-selector .nav-tabs{border-bottom:0}#module__dashboard-selector .nav.nav-pills li:last-child>a,#module__dashboard-selector .nav.nav-tabs li:last-child>a{padding-right:15px}#module__dashboard-selector .nav.nav-pills li:last-child>a tab-heading a,#module__dashboard-selector .nav.nav-tabs li:last-child>a tab-heading a{position:static}#module__dashboard-selector .nav.nav-tabs li>a{padding:10px 8px 10px 15px;margin:0 2px 0 0;background-color:transparent;border:1px solid #abc4c6;color:#000}#module__dashboard-selector .nav.nav-tabs li.active>a{background-color:#fff;color:#977bf0}#module__dashboard-selector .nav.nav-tabs li:last-child.active>a{background-color:transparent}#module__dashboard-selector .nav.nav-pills li>a{min-width:0;padding-right:8px}#module__dashboard-selector .nav.nav-pills li:last-child tab-heading a{margin-left:2px}#module__dashboard-selector .nav.nav-pills li:last-child.active>a{background-color:#f4f4f4}#module__dashboard-selector tab-heading a.close-link{border-bottom:0 solid;margin-left:12px;position:relative;top:-9px;right:1px;color:#000}dashboard-templates-selector .templates-header{display:-ms-flexbox;display:flex}dashboard-templates-selector .templates-header .templates-toggle{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-pack:end;justify-content:flex-end;font-size:20px}dashboard-templates-selector .templates-header .templates-toggle i.fa{cursor:pointer}dashboard-templates-selector .templates-header .templates-toggle i.fa.fa-toggle-on{color:#977bf0}dashboard-templates-selector .templates{border:1px solid #ccc;box-shadow:inset 0 0 1px 0 #ccc;height:130px;overflow:auto;border-radius:2px}dashboard-templates-selector .templates .template{padding:5px 10px;color:#5B6667;border-bottom:1px solid #ececec}.analytics .impac-kpi .kpi.add:hover .kpi-icon,.analytics .impac-kpi .kpi.add:hover .kpi-text{color:#000}dashboard-templates-selector .templates .template:hover{cursor:pointer;background-color:rgba(96,232,119,.62)}dashboard-templates-selector .templates .template.selected{background-color:rgba(29,197,57,.62)}.analytics .impac-kpi .kpi{position:relative;max-width:220px;min-height:95px;max-height:95px;background-color:#fff;margin:10px 0;border-bottom:1px solid #fff;transition:all .2s ease-in}@media screen and (max-width:768px){.analytics .impac-kpi .kpi{margin-left:auto;margin-right:auto}}.analytics .impac-kpi .kpi.add:hover,.analytics .impac-kpi .kpi.triggered{border-bottom:4px solid #e01f74}.analytics .impac-kpi .kpi.add .kpi-text .emphasis{visibility:hidden}.analytics .impac-kpi .kpi.add:hover{cursor:pointer}.analytics .impac-kpi .kpi.add:hover .top-line{background-color:#000}.analytics .impac-kpi .kpi.add:hover .kpi-text .emphasis{visibility:visible}.analytics .impac-kpi .kpi.add:hover .kpi-icon .fa-plus:before{content:"\f00c"}.analytics .impac-kpi .kpi.editing{min-height:185px}.analytics .impac-kpi .kpi:hover{cursor:default}.analytics .impac-kpi .kpi.static .kpi-value{display:block;font-size:14px;font-weight:700}.analytics .impac-kpi .kpi .top-line{width:100%;position:relative;cursor:move;padding:9px 9px 0 12px;border-bottom:none;min-height:7px;box-shadow:none;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;margin-bottom:5px;background-color:grey;transition:background .2s ease-in}.analytics .impac-kpi .kpi .top-line.triggered{background-color:#000}.analytics .impac-kpi .kpi .kpi-content{max-height:90px}.analytics .impac-kpi .kpi .kpi-content.editing{min-height:180px;overflow-y:auto;overflow-x:hidden}.analytics .impac-kpi .kpi .kpi-show{white-space:normal;padding:10px}@media screen and (max-width:380px){.analytics .impac-kpi .kpi .kpi-show{padding:10px 3px}}.analytics .impac-kpi .kpi .kpi-show .emphasis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics .impac-kpi .kpi .kpi-show .emphasis .real-value{color:#676767}.analytics .impac-kpi .kpi .kpi-show .caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics .impac-kpi .kpi .kpi-show .kpi-text{padding:7px 0;color:grey;transition:color .2s ease-in}.analytics .impac-kpi .kpi .kpi-show .kpi-text>span{display:block}.analytics .impac-kpi .kpi .kpi-show .kpi-text.triggered{color:#000}.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption{font-size:11px;padding-bottom:2px}@media screen and (max-width:465px){.analytics .impac-kpi .kpi .kpi-show .kpi-text .caption{font-size:10px}.analytics .impac-kpi .kpi .kpi-show .kpi-text .emphasis{font-size:11px}}.analytics .impac-kpi .kpi .kpi-show .kpi-icon{font-size:16px;padding:10px 0;color:grey;transition:color .2s ease-in}.analytics .impac-kpi .kpi .kpi-show .kpi-icon.triggered{color:#000}@media screen and (max-width:465px){.analytics .impac-kpi .kpi .kpi-show .kpi-icon{font-size:12px;padding:16px 0}}.analytics .impac-kpi .kpi .kpi-edit a{color:#fff}.analytics .impac-kpi .kpi .kpi-edit .kpi-name{text-align:center;margin-bottom:5px}.analytics .impac-kpi .kpi .kpi-edit .kpi-name h6{margin:0 0 5px}.analytics .impac-kpi .kpi .kpi-edit .real-value{text-transform:uppercase;font-size:10px;text-align:center}.analytics .impac-kpi .kpi .kpi-edit .alert-caption{text-align:center;font-size:11px;background:#f99;border-radius:3px;width:100%;margin:0 auto 5px;box-shadow:none;padding:2px;color:#fff}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit,.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable{text-transform:uppercase;font-weight:500;font-size:11px}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-watchable{margin-bottom:20px;color:#8d8d8d}.analytics .impac-kpi .kpi .kpi-edit .kpi-target-unit{position:absolute;top:6px;right:0;color:#9a9a9a}.analytics .impac-kpi .kpi .kpi-edit .param-name{font-size:85%}.analytics .impac-kpi .kpi .kpi-edit .btn.btn-xs{margin-top:4px}.analytics .impac-kpi .kpi .kpi-edit .add-on,.analytics .impac-kpi .kpi .kpi-edit .alert,.analytics .impac-kpi .kpi .kpi-edit .badge,.analytics .impac-kpi .kpi .kpi-edit .btn,.analytics .impac-kpi .kpi .kpi-edit .dropdown-menu,.analytics .impac-kpi .kpi .kpi-edit .img-polaroid,.analytics .impac-kpi .kpi .kpi-edit .label,.analytics .impac-kpi .kpi .kpi-edit .modal,.analytics .impac-kpi .kpi .kpi-edit .nav>.active>a,.analytics .impac-kpi .kpi .kpi-edit .navbar-inner,.analytics .impac-kpi .kpi .kpi-edit .popover,.analytics .impac-kpi .kpi .kpi-edit .progress,.analytics .impac-kpi .kpi .kpi-edit .table-bordered,.analytics .impac-kpi .kpi .kpi-edit .tooltip,.analytics .impac-kpi .kpi .kpi-edit .tooltip-inner,.analytics .impac-kpi .kpi .kpi-edit .well,.analytics .impac-kpi .kpi .kpi-edit input,.analytics .impac-kpi .kpi .kpi-edit pre,.analytics .impac-kpi .kpi .kpi-edit select,.analytics .impac-kpi .kpi .kpi-edit textarea,.analytics .impac-kpi .kpi .kpi-no-data .add-on,.analytics .impac-kpi .kpi .kpi-no-data .alert,.analytics .impac-kpi .kpi .kpi-no-data .badge,.analytics .impac-kpi .kpi .kpi-no-data .btn,.analytics .impac-kpi .kpi .kpi-no-data .dropdown-menu,.analytics .impac-kpi .kpi .kpi-no-data .img-polaroid,.analytics .impac-kpi .kpi .kpi-no-data .label,.analytics .impac-kpi .kpi .kpi-no-data .modal,.analytics .impac-kpi .kpi .kpi-no-data .nav>.active>a,.analytics .impac-kpi .kpi .kpi-no-data .navbar-inner,.analytics .impac-kpi .kpi .kpi-no-data .popover,.analytics .impac-kpi .kpi .kpi-no-data .progress,.analytics .impac-kpi .kpi .kpi-no-data .table-bordered,.analytics .impac-kpi .kpi .kpi-no-data .tooltip,.analytics .impac-kpi .kpi .kpi-no-data .tooltip-inner,.analytics .impac-kpi .kpi .kpi-no-data .well,.analytics .impac-kpi .kpi .kpi-no-data input,.analytics .impac-kpi .kpi .kpi-no-data pre,.analytics .impac-kpi .kpi .kpi-no-data select,.analytics .impac-kpi .kpi .kpi-no-data textarea{box-shadow:none!important;border-radius:0!important;border-collapse:collapse!important;background-image:none!important}.analytics .impac-kpi .kpi .kpi-edit body,.analytics .impac-kpi .kpi .kpi-edit body::after,.analytics .impac-kpi .kpi .kpi-edit body::before,.analytics .impac-kpi .kpi .kpi-edit input,.analytics .impac-kpi .kpi .kpi-edit input::after,.analytics .impac-kpi .kpi .kpi-edit input::before,.analytics .impac-kpi .kpi .kpi-edit select,.analytics .impac-kpi .kpi .kpi-edit select::after,.analytics .impac-kpi .kpi .kpi-edit select::before,.analytics .impac-kpi .kpi .kpi-edit textarea,.analytics .impac-kpi .kpi .kpi-edit textarea::after,.analytics .impac-kpi .kpi .kpi-edit textarea::before,.analytics .impac-kpi .kpi .kpi-no-data body,.analytics .impac-kpi .kpi .kpi-no-data body::after,.analytics .impac-kpi .kpi .kpi-no-data body::before,.analytics .impac-kpi .kpi .kpi-no-data input,.analytics .impac-kpi .kpi .kpi-no-data input::after,.analytics .impac-kpi .kpi .kpi-no-data input::before,.analytics .impac-kpi .kpi .kpi-no-data select,.analytics .impac-kpi .kpi .kpi-no-data select::after,.analytics .impac-kpi .kpi .kpi-no-data select::before,.analytics .impac-kpi .kpi .kpi-no-data textarea,.analytics .impac-kpi .kpi .kpi-no-data textarea::after,.analytics .impac-kpi .kpi .kpi-no-data textarea::before{box-sizing:border-box}.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-inner-spin-button,.analytics .impac-kpi .kpi .kpi-edit input[type=number]::-webkit-outer-spin-button,.analytics .impac-kpi .kpi .kpi-no-data input[type=number]::-webkit-inner-spin-button,.analytics .impac-kpi .kpi .kpi-no-data input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.analytics .impac-kpi .kpi .kpi-edit a:hover,.analytics .impac-kpi .kpi .kpi-no-data a:hover{text-decoration:none}.analytics .impac-kpi .kpi .kpi-edit fieldset,.analytics .impac-kpi .kpi .kpi-no-data fieldset{margin:0 0 1.75rem;padding:0;border:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio{position:relative;margin-top:1.3125rem;margin-bottom:1.3125rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline>.im-form-group,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline>.im-form-group{display:block;-ms-flex:1;flex:1;position:relative;vertical-align:middle;margin-left:.175rem;margin-right:.175rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-inline>.btn,.analytics .impac-kpi .kpi .kpi-no-data .im-form-inline>.btn{display:inline-block;margin-bottom:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input{height:2.375rem}.analytics .impac-kpi .kpi .kpi-edit .im-form-group select,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select{width:100%;font-size:1.25rem;height:2rem;padding:.15625rem .15625rem .078125rem;background:0 0;border:none;line-height:1.6;box-shadow:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-control-label{position:absolute;top:.3125rem;pointer-events:none;padding-left:.15625rem;z-index:1;color:#b3b3b3;font-size:1.25rem;font-weight:400;transition:all .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-bar{position:relative;border-bottom:.078125rem solid #999;display:block}.analytics .impac-kpi .kpi .kpi-edit .im-form-group .im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group .im-bar::before{content:'';height:.15625rem;width:0;left:50%;bottom:-.078125rem;position:absolute;background:#358fdc;transition:left .28s ease,width .28s ease;z-index:2}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea{display:block;background:0 0;padding:.15625rem .15625rem .078125rem;font-size:1.25rem;border-width:0;border-color:transparent;line-height:1.9;width:100%;color:transparent;transition:all .28s ease;box-shadow:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input[type=file],.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input[type=file]{line-height:1}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input[type=file]~.im-bar,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input[type=file]~.im-bar{display:none}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:valid,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:valid{color:#333}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:valid~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.form-file~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea.has-value~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:valid~.im-control-label{font-size:1rem;color:grey;top:-1.25rem;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus{outline:0}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus~.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-control-label{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-form-group input:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-edit .im-form-group select:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-edit .im-form-group textarea:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group input:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group select:focus~.im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .im-form-group textarea:focus~.im-bar::before{width:100%;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio label,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio label{position:relative;cursor:pointer;padding-left:2.5rem;text-align:left;color:#333;display:block}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input,.analytics .impac-kpi .kpi .kpi-edit .im-form-radio input,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input,.analytics .impac-kpi .kpi .kpi-no-data .im-form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.analytics .impac-kpi .kpi .kpi-edit .im-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-radio{margin-bottom:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper{position:absolute;top:-.3125rem;left:-.3125rem;cursor:pointer;display:block;font-size:1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::before{content:'';position:absolute;left:0;top:0;margin:.3125rem;width:1.25rem;height:1.25rem;transition:transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics .impac-kpi .kpi .kpi-edit .im-radio .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio .im-helper::after{transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-radio label:hover .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-radio label:hover .im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked~.im-helper::after{transform:scale(.5)}.analytics .impac-kpi .kpi .kpi-edit .im-radio input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-radio input:checked~.im-helper::before{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox{margin-top:1.75rem;margin-bottom:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper{color:#999;position:absolute;top:0;left:0;width:1.25rem;height:1.25rem;z-index:0;border:.15625rem solid currentColor;border-radius:.078125rem;transition:border-color .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before{position:absolute;height:0;width:.25rem;background-color:#358fdc;display:block;transform-origin:left top;border-radius:.3125rem;content:'';transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox .im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox .im-helper::after{top:.375rem;left:0;transform:rotate(-45deg)}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox label:hover .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox label:hover .im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper{color:#358fdc}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::before{opacity:1;transition:height .28s ease}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::after,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::after{height:.625rem}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox input:checked~.im-helper::before,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox input:checked~.im-helper::before{height:1.5rem;transition-delay:.28s}.analytics .impac-kpi .kpi .kpi-edit .im-checkbox+.im-checkbox,.analytics .impac-kpi .kpi .kpi-edit .im-radio+.im-radio,.analytics .impac-kpi .kpi .kpi-no-data .im-checkbox+.im-checkbox,.analytics .impac-kpi .kpi .kpi-no-data .im-radio+.im-radio{margin-top:1.25rem}.analytics .impac-kpi .kpi .kpi-edit .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;transition:all .28s cubic-bezier(.55,0,.55,.2);opacity:0;margin-top:0;padding-top:5px}.analytics .impac-kpi .kpi .kpi-edit .has-error .legend.legend,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-control-label.im-control-label,.analytics .impac-kpi .kpi .kpi-no-data .has-error .legend.legend,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-control-label.im-control-label{color:#e01f74}.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-checkbox .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-group .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-form-radio .im-messages,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-edit .has-error.im-radio .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-checkbox .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-group .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-form-radio .im-messages,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-helper,.analytics .impac-kpi .kpi .kpi-no-data .has-error.im-radio .im-messages{color:#e01f74;opacity:1}.analytics .impac-kpi .kpi .kpi-edit .has-error .im-bar::before,.analytics .impac-kpi .kpi .kpi-no-data .has-error .im-bar::before{background:#e01f74;left:0;width:100%}.analytics .impac-kpi .kpi .kpi-edit .im-button,.analytics .impac-kpi .kpi .kpi-no-data .im-button{position:relative;background:#60a7e4;border:0;font-size:1.375rem;color:#333;margin:.7rem 0;padding:.4375rem 1.75rem;border-radius:3px;cursor:pointer;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.analytics .impac-kpi .kpi .kpi-edit .im-button span,.analytics .impac-kpi .kpi .kpi-no-data .im-button span{color:#fff;position:relative;z-index:1}.analytics .impac-kpi .kpi .kpi-edit .im-button:hover,.analytics .impac-kpi .kpi .kpi-no-data .im-button:hover{transition:background .1s ease-in;background:#2583d3}.analytics .impac-kpi .kpi .kpi-edit .im-button:active,.analytics .impac-kpi .kpi .kpi-no-data .im-button:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics .impac-kpi .kpi .kpi-edit .im-button a:focus,.analytics .impac-kpi .kpi .kpi-edit .im-button:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-button a:focus,.analytics .impac-kpi .kpi .kpi-no-data .im-button:focus{outline:0;text-decoration:none}.analytics .impac-kpi .kpi .kpi-edit button.im-fab,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab{position:relative;height:46px;width:46px;-ms-flex:0 0 56px;flex:0 0 56px;display:inline-block;padding:0;margin:4px;border:0;border-radius:100%;overflow:hidden;font-size:20px;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff}.analytics .impac-kpi .kpi .kpi-edit button.im-fab:focus,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:focus{outline:0}.analytics .impac-kpi .kpi .kpi-edit button.im-fab:active,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary{background:#358fdc}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-primary:hover,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-primary:hover{transition:background .1s ease-in;background:#2583d3}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn{background:#e01f74}.analytics .impac-kpi .kpi .kpi-edit button.im-fab.im-warn:hover,.analytics .impac-kpi .kpi .kpi-no-data button.im-fab.im-warn:hover{transition:background .1s ease-in;background:#ca1c68}.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary{position:absolute;top:-12px;right:15px;width:22px;height:22px;font-size:13px;background:#4c4749}.analytics .impac-kpi .kpi button.kpi-alerts.im-fab.im-primary:hover{backgroud:#358fdc}.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn{position:absolute;top:-12px;right:-11px;width:22px;height:22px;font-size:13px;background:#4c4749}.analytics .impac-kpi .kpi button.kpi-remove.im-fab.im-warn:hover{background:#ca1c68}.analytics .impac-kpi .kpi .kpi-data-loader{width:100%;min-height:95px}.analytics kpis-bar>.key-stats .kpi{min-height:80px}.analytics kpis-bar>.kpis{position:relative}.analytics kpis-bar>.kpis .actions{margin-bottom:12px}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions{position:relative}}.analytics kpis-bar>.kpis .actions .add-on,.analytics kpis-bar>.kpis .actions .alert,.analytics kpis-bar>.kpis .actions .badge,.analytics kpis-bar>.kpis .actions .btn,.analytics kpis-bar>.kpis .actions .dropdown-menu,.analytics kpis-bar>.kpis .actions .img-polaroid,.analytics kpis-bar>.kpis .actions .label,.analytics kpis-bar>.kpis .actions .modal,.analytics kpis-bar>.kpis .actions .nav>.active>a,.analytics kpis-bar>.kpis .actions .navbar-inner,.analytics kpis-bar>.kpis .actions .popover,.analytics kpis-bar>.kpis .actions .progress,.analytics kpis-bar>.kpis .actions .table-bordered,.analytics kpis-bar>.kpis .actions .tooltip,.analytics kpis-bar>.kpis .actions .tooltip-inner,.analytics kpis-bar>.kpis .actions .well,.analytics kpis-bar>.kpis .actions input,.analytics kpis-bar>.kpis .actions pre,.analytics kpis-bar>.kpis .actions select,.analytics kpis-bar>.kpis .actions textarea{box-shadow:none!important;border-radius:0!important;border-collapse:collapse!important;background-image:none!important}.analytics kpis-bar>.kpis .actions body,.analytics kpis-bar>.kpis .actions body::after,.analytics kpis-bar>.kpis .actions body::before,.analytics kpis-bar>.kpis .actions input,.analytics kpis-bar>.kpis .actions input::after,.analytics kpis-bar>.kpis .actions input::before,.analytics kpis-bar>.kpis .actions select,.analytics kpis-bar>.kpis .actions select::after,.analytics kpis-bar>.kpis .actions select::before,.analytics kpis-bar>.kpis .actions textarea,.analytics kpis-bar>.kpis .actions textarea::after,.analytics kpis-bar>.kpis .actions textarea::before{box-sizing:border-box}.analytics kpis-bar>.kpis .actions input[type=number]::-webkit-inner-spin-button,.analytics kpis-bar>.kpis .actions input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.analytics kpis-bar>.kpis .actions a:hover{text-decoration:none}.analytics kpis-bar>.kpis .actions fieldset{margin:0 0 1.75rem;padding:0;border:none}.analytics kpis-bar>.kpis .actions .im-form-group,.analytics kpis-bar>.kpis .actions .im-form-radio{position:relative;margin-top:1.3125rem;margin-bottom:1.3125rem}.analytics kpis-bar>.kpis .actions .im-form-inline{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;box-sizing:border-box}.analytics kpis-bar>.kpis .actions .im-form-inline>.im-form-group{display:block;-ms-flex:1;flex:1;position:relative;vertical-align:middle;margin-left:.175rem;margin-right:.175rem}.analytics kpis-bar>.kpis .actions .im-form-inline>.btn{display:inline-block;margin-bottom:0}.analytics kpis-bar>.kpis .actions .im-form-group input{height:2.375rem}.analytics kpis-bar>.kpis .actions .im-form-group select{width:100%;font-size:1.25rem;height:2rem;padding:.15625rem .15625rem .078125rem;background:0 0;border:none;line-height:1.6;box-shadow:none}.analytics kpis-bar>.kpis .actions .im-form-group .im-control-label{position:absolute;top:.3125rem;pointer-events:none;padding-left:.15625rem;z-index:1;color:#b3b3b3;font-size:1.25rem;font-weight:400;transition:all .28s ease}.analytics kpis-bar>.kpis .actions .im-form-group .im-bar{position:relative;border-bottom:.078125rem solid #999;display:block}.analytics kpis-bar>.kpis .actions .im-form-group .im-bar::before{content:'';height:.15625rem;width:0;left:50%;bottom:-.078125rem;position:absolute;background:#358fdc;transition:left .28s ease,width .28s ease;z-index:2}.analytics kpis-bar>.kpis .actions .im-form-group input,.analytics kpis-bar>.kpis .actions .im-form-group textarea{display:block;background:0 0;padding:.15625rem .15625rem .078125rem;font-size:1.25rem;border-width:0;border-color:transparent;line-height:1.9;width:100%;color:transparent;transition:all .28s ease;box-shadow:none}.analytics kpis-bar>.kpis .actions .im-form-group input[type=file]{line-height:1}.analytics kpis-bar>.kpis .actions .im-form-group input[type=file]~.im-bar{display:none}.analytics kpis-bar>.kpis .actions .im-form-group input.form-file,.analytics kpis-bar>.kpis .actions .im-form-group input.has-value,.analytics kpis-bar>.kpis .actions .im-form-group input:focus,.analytics kpis-bar>.kpis .actions .im-form-group input:valid,.analytics kpis-bar>.kpis .actions .im-form-group select,.analytics kpis-bar>.kpis .actions .im-form-group textarea.form-file,.analytics kpis-bar>.kpis .actions .im-form-group textarea.has-value,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus,.analytics kpis-bar>.kpis .actions .im-form-group textarea:valid{color:#333}.analytics kpis-bar>.kpis .actions .im-form-group input.form-file~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input.has-value~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group input:valid~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group select~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea.form-file~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea.has-value~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:valid~.im-control-label{font-size:1rem;color:grey;top:-1.25rem;left:0}.analytics kpis-bar>.kpis .actions .im-form-group input:focus,.analytics kpis-bar>.kpis .actions .im-form-group select:focus,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus{outline:0}.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group select:focus~.im-control-label,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-control-label{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-form-group input:focus~.im-bar::before,.analytics kpis-bar>.kpis .actions .im-form-group select:focus~.im-bar::before,.analytics kpis-bar>.kpis .actions .im-form-group textarea:focus~.im-bar::before{width:100%;left:0}.analytics kpis-bar>.kpis .actions .im-checkbox label,.analytics kpis-bar>.kpis .actions .im-form-radio label{position:relative;cursor:pointer;padding-left:2.5rem;text-align:left;color:#333;display:block}.analytics kpis-bar>.kpis .actions .im-checkbox input,.analytics kpis-bar>.kpis .actions .im-form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.analytics kpis-bar>.kpis .actions .im-radio{margin-bottom:1.25rem}.analytics kpis-bar>.kpis .actions .im-radio .im-helper{position:absolute;top:-.3125rem;left:-.3125rem;cursor:pointer;display:block;font-size:1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after,.analytics kpis-bar>.kpis .actions .im-radio .im-helper::before{content:'';position:absolute;left:0;top:0;margin:.3125rem;width:1.25rem;height:1.25rem;transition:transform .28s ease;border-radius:50%;border:.15625rem solid currentColor}.analytics kpis-bar>.kpis .actions .im-radio .im-helper::after{transform:scale(0);background-color:#358fdc;border-color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio label:hover .im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::after{transform:scale(.5)}.analytics kpis-bar>.kpis .actions .im-radio input:checked~.im-helper::before{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox{margin-top:1.75rem;margin-bottom:1.25rem}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper{color:#999;position:absolute;top:0;left:0;width:1.25rem;height:1.25rem;z-index:0;border:.15625rem solid currentColor;border-radius:.078125rem;transition:border-color .28s ease}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after,.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{position:absolute;height:0;width:.25rem;background-color:#358fdc;display:block;transform-origin:left top;border-radius:.3125rem;content:'';transition:opacity .28s ease,height 0s linear .28s;opacity:0}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::before{top:.8125rem;left:.475rem;transform:rotate(-135deg);box-shadow:0 0 0 .078125rem #fff}.analytics kpis-bar>.kpis .actions .im-checkbox .im-helper::after{top:.375rem;left:0;transform:rotate(-45deg)}.analytics kpis-bar>.kpis .actions .im-checkbox label:hover .im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper{color:#358fdc}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::after,.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::before{opacity:1;transition:height .28s ease}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::after{height:.625rem}.analytics kpis-bar>.kpis .actions .im-checkbox input:checked~.im-helper::before{height:1.5rem;transition-delay:.28s}.analytics kpis-bar>.kpis .actions .im-checkbox+.im-checkbox,.analytics kpis-bar>.kpis .actions .im-radio+.im-radio{margin-top:1.25rem}.analytics kpis-bar>.kpis .actions .im-messages{font-size:1.04166667rem;color:#e01f74;overflow:hidden;transition:all .28s cubic-bezier(.55,0,.55,.2);opacity:0;margin-top:0;padding-top:5px}.analytics kpis-bar>.kpis .actions .has-error .legend.legend,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-control-label.im-control-label{color:#e01f74}.analytics kpis-bar>.kpis .actions .has-error.im-checkbox .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-checkbox .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-form-group .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-form-radio .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-form-radio .im-messages,.analytics kpis-bar>.kpis .actions .has-error.im-radio .im-helper,.analytics kpis-bar>.kpis .actions .has-error.im-radio .im-messages{color:#e01f74;opacity:1}.analytics kpis-bar>.kpis .actions .has-error .im-bar::before{background:#e01f74;left:0;width:100%}.analytics kpis-bar>.kpis .actions .im-button{position:relative;background:#60a7e4;border:0;font-size:1.375rem;color:#333;margin:.7rem 0;padding:.4375rem 1.75rem;border-radius:3px;cursor:pointer;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.analytics kpis-bar>.kpis .actions .im-button span{color:#fff;position:relative;z-index:1}.analytics kpis-bar>.kpis .actions .im-button:hover{transition:background .1s ease-in;background:#2583d3}.analytics kpis-bar>.kpis .actions .im-button:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics kpis-bar>.kpis .actions .im-button a:focus,.analytics kpis-bar>.kpis .actions .im-button:focus{outline:0;text-decoration:none}.analytics kpis-bar>.kpis .actions button.im-fab{position:relative;height:46px;width:46px;-ms-flex:0 0 56px;flex:0 0 56px;display:inline-block;padding:0;margin:4px;border:0;border-radius:100%;overflow:hidden;font-size:20px;box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);color:#fff}.analytics kpis-bar>.kpis .actions button.im-fab:focus{outline:0}.analytics kpis-bar>.kpis .actions button.im-fab:active{box-shadow:inset 0 2px 2px 0 rgba(0,0,0,.14)}.analytics kpis-bar>.kpis .actions button.im-fab.im-primary{background:#358fdc}.analytics kpis-bar>.kpis .actions button.im-fab.im-primary:hover{transition:background .1s ease-in;background:#2583d3}.analytics kpis-bar>.kpis .actions button.im-fab.im-warn{background:#e01f74}.analytics kpis-bar>.kpis .actions button.im-fab.im-warn:hover{transition:background .1s ease-in;background:#ca1c68}.analytics kpis-bar>.kpis .actions a{color:#fff}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{position:absolute;width:40px;height:40px;font-size:18px;transition:all .28s ease-in}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary{background:#4c4749}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary.disabled,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary.disabled,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary.disabled{background:#b2b5c1;cursor:not-allowed}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary.disabled a,.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary.disabled a,.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary.disabled a{cursor:not-allowed}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis.im-primary:hover:not(.disabled),.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.im-primary:hover:not(.disabled),.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content.im-primary:hover:not(.disabled){background:#000}.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{top:-15px;right:-15px;z-index:10}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.toggle-show-content{top:-30px;right:-14px;bottom:0}}.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis{top:30px;right:-15px;z-index:10}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.add-kpis{top:-30px;right:33px;bottom:0}}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis{top:75px;right:-15px;z-index:10}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.editing{background:#358fdc}.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis.editing:hover:not(.disabled){background:#76b3e7}@media screen and (max-width:675px){.analytics kpis-bar>.kpis .actions button.im-fab.edit-kpis{top:-30px;right:79px;bottom:0}.analytics kpis-bar>.kpis .content{margin-top:25px}}.analytics kpis-bar>.kpis .content-buttons{position:absolute;top:0;right:0}.analytics kpis-bar>.kpis .content{padding:15px;background-color:#fff;box-shadow:0 1px 8px -4px}@media screen and (min-width:725px){.analytics kpis-bar>.kpis .content{padding:0 60px}}.analytics kpis-bar>.kpis .content .impac-kpi{padding-left:5px;padding-right:5px}@media screen and (min-width:1200px){.analytics kpis-bar>.kpis .content .impac-kpi{padding-left:20px;padding-right:20px}}.analytics kpis-bar>.kpis .content .impac-kpi .kpi.add .kpi-show .caption{white-space:inherit}.analytics kpis-bar>.kpis .content .title .text-center{line-height:3;font-variant:small-caps;font-size:larger}.analytics kpis-bar>.kpis .content .title .badge{position:absolute;top:8px;left:-10px;background-color:#d1e55c;color:#4f5959;box-shadow:0 1px 3px -1px}.widget-item .content,.widget-item .top-line{position:relative;background-color:#fff;box-shadow:0 1px 8px -4px}.analytics kpis-bar>.kpis .content .title .no-kpi-templates{color:#afadb5;font-weight:500}.analytics kpis-bar>.kpis .content .add-bar{border-bottom:dashed 1px}.analytics kpis-bar>.kpis .content .kpi-loader{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-height:115px}.analytics kpis-bar>.kpis .content .dates-picker-container{width:40%;margin:0 auto}.analytics kpis-bar>.kpis .content .dates-picker-container .sdp-from-label,.analytics kpis-bar>.kpis .content .dates-picker-container .sdp-to-label{text-transform:uppercase;font-weight:400}.analytics kpis-bar{display:block}.analytics kpis-bar>.key-stats{background-color:#fff;padding:5px 0}.analytics.pdf-mode kpis-bar>.kpis .actions{display:none}.widget-item{transition:width .3s;padding:12px}.widget-item.pdf-mode{width:100%;padding:12px 0}.widget-item .top-line{cursor:move;padding:9px 9px 0 12px;border-radius:5px 5px 0 0;border:1px solid #c8d7d9;border-bottom:none;min-height:41px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;z-index:4}.widget-item .content{padding:9px;border-radius:0 0 5px 5px;border:1px solid #c8d7d9;border-top:none;vertical-align:top;min-height:250px}@media (min-width:992px){.widget-item .content{height:250px}.widget-item .content .chart-container{max-width:270px;max-height:125px;margin:auto}}.widget-item .content .edit{max-height:230px;overflow-y:auto;overflow-x:hidden;color:#5B6667;padding:2px;font-size:12px}.widget-item .content .edit .bottom-buttons .btn{border-radius:2px;margin-right:5px;padding:3px 13px;text-transform:uppercase;font-size:12px}.widget-item .content .edit .bottom-buttons .btn.btn-default{background-color:#c2c4c4;border:1px solid #a8abab;color:#fff}.widget-item .content .edit .bottom-buttons .btn.btn-default:hover{border:1px solid #8e9292;background-color:#a8abab}.widget-item .content .edit h4{margin:0 0 8px;text-align:left;font-weight:400;font-size:12px;color:#c4caca}.widget-item .content .edit .part{margin-bottom:8px;padding:10px 0;background-color:#fcfcfc;border:1px solid #dfe2e2}.widget-item .content .edit .part h5{display:block;margin:0 0 10px;padding:0 15px;text-transform:uppercase;font-weight:400;font-size:12px;color:#c4caca}.widget-item .content .edit .part label{font-weight:400}.widget-item .content .edit .part select.form-control{margin:0;border:1px solid #acb0b1;outline:0;-webkit-box-shadow:none;font-size:13px;color:#72728b}.widget-item .content.accessible{height:auto!important;min-height:250px!important;max-height:auto!important}.widget-item .content .content-template-wrapper{height:100%;overflow:auto;overflow-x:hidden}.widget-item.pdf-mode .content{height:100%!important;min-height:250px!important;max-height:none!important}.widget-item.pdf-mode .content .collapse{display:inherit}.widget-item.pdf-mode .content .fa-plus-square-o:before{content:"\f147"}.widget-item.pdf-mode .content .legend{max-height:none!important}.widget-item.pdf-mode .content .chart-container{max-height:none}.widget-item.pdf-mode .content .widget-lines-container{max-height:none!important}.widget-item.pdf-mode .content .data-not-found .message{position:inherit;width:100%}.widget-item.pdf-mode .include-to-pdf.title{position:absolute;width:calc(100% - 2*12px);z-index:3;padding-right:1px}.widget-item.pdf-mode .include-to-pdf.title h6{padding:10px;background-color:#FFC928;text-align:center;margin:0}.widget-item.pdf-mode .include-to-pdf.tick i{position:absolute;top:35%;left:46%;font-size:100px;opacity:.5;z-index:2;color:#000}.widget-item.pdf-mode .include-to-pdf .widget-hover{position:absolute;width:100%;height:100%;padding:9px;top:0;right:0;transition:all ease .5s;z-index:1}.widget-item.pdf-mode .include-to-pdf .widget-hover:hover{opacity:.5;background:#CCCFD0}.widget-item .widget-lines-container .widget-line>[class*=col-]{overflow-wrap:break-word}.analytics .kpi .data-not-found,.analytics .widget-item .content .data-not-found{text-align:center;font-size:13px;color:#5B6667}.analytics .kpi .data-not-found .overlay,.analytics .widget-item .content .data-not-found .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:3}.analytics .kpi .data-not-found .message,.analytics .widget-item .content .data-not-found .message{position:absolute;top:125px;left:50%;padding-bottom:10px;transform:translate(-50%,-50%);width:85%;background-color:#f4f8f9;border-radius:4px;box-shadow:0 0 25px 0;z-index:4}.analytics .kpi .data-not-found .message .title,.analytics .widget-item .content .data-not-found .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}.analytics .kpi .data-not-found .message p,.analytics .widget-item .content .data-not-found .message p{margin-left:5px;margin-right:5px}.analytics .kpi .data-not-found .message .btn,.analytics .widget-item .content .data-not-found .message .btn{margin-top:5px}.analytics .kpi .data-not-found .example,.analytics .widget-item .content .data-not-found .example{position:absolute;bottom:0;left:0;width:100%;color:#fff;background-color:#192831;padding:3px;z-index:6}.analytics .kpi .data-not-found .example a,.analytics .widget-item .content .data-not-found .example a{font-weight:400;color:#dae173}.analytics .kpi .data-not-found .message{width:90%;padding-bottom:0;border:1px solid silver;box-shadow:none}#transactions-add .message,.analytics common-delete-widget .message{position:absolute;min-height:160px;box-shadow:0 0 25px 0;border-radius:4px}.analytics .kpi .data-not-found .message p{margin:5px}.analytics .kpi .data-not-found .btn,.analytics .kpi .data-not-found .example,.analytics .kpi .data-not-found .overlay,.analytics .kpi .data-not-found .title{display:none}.analytics common-delete-widget{text-align:center;font-size:13px;color:#5B6667}.analytics common-delete-widget .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}.analytics common-delete-widget .message{z-index:6;padding-bottom:10px;top:45px;left:7%;width:86%;background-color:#f4f8f9}.analytics common-delete-widget .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}.analytics common-delete-widget .message .loader i.fa.fa-spinner{font-size:26px}.analytics common-delete-widget .message p{padding:0 10px}.analytics common-delete-widget .message button.btn{margin-top:20px}#transactions-add{text-align:center;font-size:13px;color:#5B6667}#transactions-add .overlay{background-color:#fff;position:absolute;height:calc(100% - 4px);width:calc(100% - 4px);top:2px;left:2px;opacity:.6;z-index:5}#transactions-add .message{z-index:6;padding-bottom:10px;background-color:#f4f8f9;top:30px;left:35%;width:30%}#transactions-add .message .title{padding:2px;background-color:#192831;color:#fff;margin:-1px -1px 10px;text-transform:uppercase}#transactions-add .message .form{padding:0 10px}#transactions-add .message .form .coming-soon>label,#transactions-add .message .form>label{padding-top:10px;font-weight:400;margin-bottom:3px}#transactions-add .message .form input.form-control{width:90%;border-radius:2px;height:28px;font-size:13px}#transactions-add .message .form .btn-group{display:block;min-height:22px}.analytics .widget-item .content.accounts-balance-sheet,.analytics .widget-item .content.accounts-cash-balance,.analytics .widget-item .content.accounts-cash-projection{min-height:565px}#transactions-add .message .form .btn-group select{border-radius:2px;height:28px;margin-top:0}#transactions-add .message .form .coming-soon{margin-top:15px;padding:5px;border:1px solid silver;background-color:#fff;color:#888;font-style:italic}#transactions-add .message .form .coming-soon .badge{font-weight:400;background-color:#888}#transactions-add .message .form .coming-soon .btn-group{margin-left:10px}#transactions-add .message .form .coming-soon .btn-group input[type=radio]{margin-top:5px}#transactions-add .message .form .coming-soon .btn-group select{height:22px}#transactions-add .message .form .coming-soon .btn-group .btn{float:none;border-color:#888}#transactions-add .message .bottom{margin-top:20px}#transactions-list .top{height:40px}#transactions-list .top a.back-link{font-weight:400}#transactions-list .top .pagination{margin:0}#transactions-list .table-container{max-height:calc(565px - 60px);overflow:auto}#transactions-list .table-container div[uib-datepicker-popup-wrap]{display:inline-block}#transactions-list .table-container button.btn.reset-date,#transactions-list .table-container input.btn.btn-xs{margin-top:-2px}#transactions-list .table-container .fa.fa-times{color:#e01f74;cursor:pointer}#transactions-list .table-container tr.total{font-weight:700}#transactions-list .table-container tr.total.invoices{background-color:#c1d1b1}#transactions-list .table-container tr.total.bills{background-color:#e2aeb9}.analytics .dashboard-settings.currency{text-align:right}.analytics .dashboard-settings.currency select{margin-top:4px}.analytics .dashboard-settings.sync-apps .show-status{margin-right:5px;color:#9ba6a7}.analytics .dashboard-settings.sync-apps .show-status:hover{cursor:pointer;text-decoration:underline}.analytics .dashboard-settings.sync-apps .show-status .fa.fa-info{margin-right:2px}.analytics .dashboard-settings.sync-apps .status-btn{display:inline-block;cursor:pointer;padding:5px 7px 5px 0}.analytics .dashboard-settings.sync-apps .status-btn i{font-size:16px}.analytics .dashboard-settings.sync-apps .status-btn i.fa-exclamation-triangle{color:#ff7300}.analytics .dashboard-settings.sync-apps .status-btn i.fa-check{color:#d1e55c}.analytics .dashboard-settings.sync-apps .popover{max-width:550px}.analytics .dashboard-settings.sync-apps .popover .connector{padding:4px 13px}.analytics .dashboard-settings.sync-apps .popover .connector.add-seperator{border-bottom:1px solid #ccc}.analytics .dashboard-settings.sync-apps .popover .popover-content{padding:0}.analytics .dashboard-settings.sync-apps .popover .popover-footer{border-top:1px solid #ccc;padding:4px 13px}.analytics .dashboard-settings.sync-apps .popover .popover-footer p{font-weight:700;margin:0}.analytics .dashboard-settings.sync-apps .popover .popover-footer.remove-seperator{border:0}.analytics .dashboard-settings.sync-apps .badge{float:right;margin-left:8px}.analytics .dashboard-settings.sync-apps .success .badge{background-color:#d1e55c}.analytics .dashboard-settings.sync-apps .pending .badge,.analytics .dashboard-settings.sync-apps .running .badge{background-color:#ff7300}.analytics .dashboard-settings.sync-apps .disconnected .badge,.analytics .dashboard-settings.sync-apps .error .badge,.analytics .dashboard-settings.sync-apps .failed .badge,.analytics .dashboard-settings.sync-apps .unknown .badge{background-color:#ed1e79}#sync-apps-modal .modal-header{text-align:center;border:0;box-shadow:0 2px 3px 0 #ccc}#sync-apps-modal .modal-list{max-height:280px;overflow-y:auto}#sync-apps-modal .modal-list-item{border-bottom:1px solid #ccc;padding:10px}#sync-apps-modal .modal-list-item .badge{float:right}#sync-apps-modal .modal-list-item.success .badge{background-color:#d1e55c}#sync-apps-modal .modal-list-item.pending .badge,#sync-apps-modal .modal-list-item.running .badge{background-color:#ff7300}#sync-apps-modal .modal-list-item.disconnected .badge,#sync-apps-modal .modal-list-item.error .badge,#sync-apps-modal .modal-list-item.failed .badge,#sync-apps-modal .modal-list-item.unknown .badge{background-color:#ed1e79}#sync-apps-modal .modal-list-item .message{padding:3px;border-radius:2px;margin-left:31px;margin-top:9px}#sync-apps-modal .modal-list-item .message p{margin:0}#sync-apps-modal .modal-list-item.success .message{background-color:rgba(0,255,55,.08)}#sync-apps-modal .modal-list-item.pending .message,#sync-apps-modal .modal-list-item.running .message{background-color:rgba(255,118,0,.08)}#sync-apps-modal .modal-list-item.disconnected .message,#sync-apps-modal .modal-list-item.error .message,#sync-apps-modal .modal-list-item.failed .message,#sync-apps-modal .modal-list-item.unknown .message{background-color:rgba(255,0,0,.08)}#sync-apps-modal .modal-list-item.with-message{cursor:pointer}#sync-apps-modal .modal-list-item.with-message:hover{background-color:#ccc}#sync-apps-modal .modal-footer{border:0}#sync-apps-modal .fa{padding:0 10px}#sync-apps-modal .fa.error{color:red}#sync-apps-modal .fa.warn{color:#ff7300}#sync-apps-modal .fa.success{color:#47ff00}.analytics .widget-item .content.accounts-assets-liability-summary .param-selector{text-align:center}.analytics .widget-item .content.accounts-assets-liability-summary .legend{text-align:left;max-height:90px}.analytics .widget-item .content.accounts-assets-liability-summary .legend .title{text-align:center;border-bottom:dashed 1px #dfe2e2}.analytics .widget-item .content.accounts-assets-summary .legend{text-align:left;max-height:115px}.analytics .widget-item .content.accounts-assets-summary .legend .title{text-align:center;border-bottom:dashed 1px #dfe2e2}.analytics .widget-item .content.accounts-assets-vs-liabilities .legend>.title span{margin-left:3px}.analytics .widget-item .content.accounts-balance h3{font-weight:300;font-size:14px;color:#5B6667;margin-top:30px;text-align:center}.analytics .widget-item .content.accounts-balance .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}@media (min-width:992px){.analytics .widget-item .content.accounts-balance-sheet{height:565px}.analytics .widget-item .content.accounts-balance-sheet .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-balance-sheet .edit{max-height:545px}.analytics .widget-item .content.accounts-balance-sheet .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:490px}@media (max-width:767px){.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line:not(:last-child){border-bottom:dashed 1px #dfe2e2}}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container .row.widget-line.header>[class*=col-]{position:static}.analytics .widget-item .content.accounts-balance-sheet .widget-lines-container.no-scroll{overflow:visible}.analytics .widget-item .content.accounts-cash-balance .edit .widget-lines-container,.analytics .widget-item .content.accounts-cash-projection .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-balance-sheet .no-data-block{font-weight:300;font-size:16px;color:#5B6667;text-align:center;margin:15px 0}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-projection{height:565px}.analytics .widget-item .content.accounts-cash-projection .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-projection .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-projection .cash-projection-chart{height:calc(565px - 50px)}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item rect.highcharts-point{display:none}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span{width:110px;text-align:center}.analytics .widget-item .content.accounts-cash-projection .highcharts-legend-item span img{text-align:center;width:55px;height:25px}.analytics .widget-item .content.accounts-cash-projection .dates-picker{display:inline-block;float:right;font-size:12px}.analytics .widget-item .content.accounts-cash-projection transactions-list{font-size:12px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-balance{height:565px}.analytics .widget-item .content.accounts-cash-balance .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-balance .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-balance .data-container{height:calc(565px - 50px);width:100%}.analytics .widget-item .content.accounts-cash-balance .left-panel{width:180px;display:inline-block;overflow:auto;max-height:100%}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:45px;margin:3px;font-size:13px;padding:3px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.analytics .widget-item .content.accounts-cash-summary,.analytics .widget-item .content.accounts-comparison,.analytics .widget-item .content.accounts-detailed-classifications{min-height:565px}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item:hover{background-color:#ececec}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item i{font-size:19px;padding:4px;margin-top:1px}.analytics .widget-item .content.accounts-cash-balance #cash-balance-legend .header .group-item span{color:#5B6667}.analytics .widget-item .content.accounts-cash-balance .legend-item-icon{width:16px;height:16px}.analytics .widget-item .content.accounts-cash-balance .right-panel{width:calc(100% - 180px);float:right}.analytics .widget-item .content.accounts-cash-balance .right-panel .cash-balance-chart{height:calc(565px - 50px)}.analytics .widget-item .content.accounts-cash-balance .dates-picker{display:inline-block;float:right;font-size:12px}@media (min-width:992px){.analytics .widget-item .content.accounts-cash-summary{height:565px}.analytics .widget-item .content.accounts-cash-summary .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-cash-summary .edit{max-height:545px}.analytics .widget-item .content.accounts-cash-summary .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container{max-height:540px}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.accounts-cash-summary .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.accounts-cash-summary .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.accounts-cash-summary .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-cash-summary .row.lines-group.cash{border-top:solid 1px;border-bottom:double}.analytics .widget-item .content.accounts-class-comparison .param-selector{text-align:center}.analytics .widget-item .content.accounts-class-comparison .widget-lines-container{max-height:94px;color:#626d6d}@media (min-width:992px){.analytics .widget-item .content.accounts-comparison{height:565px}.analytics .widget-item .content.accounts-comparison .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-comparison .edit{max-height:545px}.analytics .widget-item .content.accounts-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}@media print{.analytics .widget-item .content.accounts-comparison .chart-container{max-width:80%!important}}.analytics .widget-item .content.accounts-comparison .add-account{position:absolute;right:40px;bottom:30px;width:160px}.analytics .widget-item .content.accounts-comparison .add-account select{font-size:13px;background-color:#977bf0;color:#fff;outline:0;border:none;cursor:pointer}.analytics .widget-item .content.accounts-comparison .add-account select[disabled]{cursor:not-allowed;background-color:#bba9f5}.analytics .widget-item .content.accounts-comparison .add-account select[disabled]:hover{background-color:#bba9f5}.analytics .widget-item .content.accounts-comparison .add-account select:hover{background-color:#734deb}.analytics .widget-item .content.accounts-comparison .add-account select option{background-color:#fff;color:#c4caca}.analytics .widget-item .content.accounts-comparison .add-account select option[disabled]{color:#fff}.analytics .widget-item .content.accounts-comparison button.close{font-size:15px}.analytics .widget-item .content.accounts-comparison .legend{text-align:left;max-height:103px}.analytics .widget-item .content.accounts-comparison .row{margin:0}.analytics .widget-item .content.accounts-comparison .widget-lines-container{font-size:11px;max-height:220px;margin-bottom:65px;overflow:auto}.analytics .widget-item .content.accounts-comparison .settings.params-checkboxes{margin-left:13px}.analytics .widget-item .content.accounts-comparison .comparable-error h5{margin-left:13px;color:#ed1e79}.analytics .widget-item .content.accounts-custom-calculation h3{margin-top:85px;text-align:center;font-weight:700}.analytics .widget-item .content.accounts-custom-calculation .legend{max-height:125px}.analytics.modal-custom-calculation{margin:0;padding:0}.analytics.modal-custom-calculation .modal-body .edit{overflow-y:auto;overflow-x:hidden;color:#5B6667;font-size:12px;padding:5px;overflow:visible}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn{border-radius:2px;margin-right:5px;padding:3px 13px;text-transform:uppercase;font-size:12px}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default{background-color:#c2c4c4;border:1px solid #a8abab;color:#fff}.analytics.modal-custom-calculation .modal-body .edit .bottom-buttons .btn.btn-default:hover{border:1px solid #8e9292;background-color:#a8abab}.analytics.modal-custom-calculation .modal-body .edit h4{margin:0 0 8px;text-align:left;font-weight:400;font-size:12px;color:#c4caca}.analytics.modal-custom-calculation .modal-body .edit .part{margin-bottom:8px;padding:10px 0;background-color:#fcfcfc;border:1px solid #dfe2e2}.analytics.modal-custom-calculation .modal-body .edit .part h5{display:block;margin:0 0 10px;padding:0 15px;text-transform:uppercase;font-weight:400;font-size:12px;color:#c4caca}.analytics.modal-custom-calculation .modal-body .edit .part label{font-weight:400}.analytics.modal-custom-calculation .modal-body .edit .part select.form-control{margin:0;border:1px solid #acb0b1;outline:0;-webkit-box-shadow:none;font-size:13px;color:#72728b}@media (min-width:992px){.analytics .widget-item .content.accounts-detailed-classifications{height:565px}.analytics .widget-item .content.accounts-detailed-classifications .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-detailed-classifications .edit{max-height:545px}.analytics .widget-item .content.accounts-detailed-classifications .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-detailed-classifications .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:540px}.analytics .widget-item .content.accounts-detailed-classifications .account-class-title{margin-bottom:8px;margin-left:11px}.analytics .widget-item .content.accounts-detailed-classifications .time-period-info{text-align:right}.analytics .widget-item .content.accounts-detailed-classifications .widget-line.header.sorting{border-bottom:1px solid #ccc}.analytics .widget-item .content.accounts-expense-weight .legend{text-align:left;max-height:115px}.analytics .widget-item .content.accounts-expense-weight .legend .title{text-align:center}.analytics .widget-item .content.accounts-expenses-revenue .legend{font-weight:700}.analytics .widget-item .content.accounts-expenses-revenue .settings.params-checkboxes{font-size:12px;margin-left:0;text-align:center}.analytics .widget-item .content.accounts-live-balance h3{font-weight:900;color:#5B6667;margin-top:0;font-size:18px;text-align:center;text-shadow:1px}.analytics .widget-item .content.accounts-live-balance .statement-title{font-size:13px;font-weight:400}.analytics .widget-item .content.accounts-live-balance .balance-title{font-size:12px}.analytics .widget-item .content.accounts-live-balance .currency-centered{font-weight:300;font-size:12px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-live-balance .headers{text-align:center}.analytics .widget-item .content.accounts-live-balance .spacer{min-height:30px}.analytics .widget-item .content.accounts-profit-and-loss,.analytics .widget-item .content.hr-payroll-summary,.analytics .widget-item .content.invoices-aged-payables-receivables,.analytics .widget-item .content.sales-aged,.analytics .widget-item .content.sales-comparison,.analytics .widget-item .content.sales-forecast,.analytics .widget-item .content.sales-leads-funnel,.analytics .widget-item .content.sales-opportunities-funnel,.analytics .widget-item .content.sales-performance{min-height:565px}.analytics .widget-item .content.accounts-live-balance .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.accounts-live-balance .negative2{font-size:14px}.analytics .widget-item .content.accounts-payable-receivable h3{text-align:center}.analytics .widget-item .content.accounts-payable-receivable .legend{font-weight:700}.analytics .widget-item .content.accounts-payable-receivable .payable{margin-top:15px}.analytics .widget-item .content.accounts-payable-receivable .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}@media (min-width:992px){.analytics .widget-item .content.accounts-profit-and-loss{height:565px}.analytics .widget-item .content.accounts-profit-and-loss .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.accounts-profit-and-loss .edit{max-height:545px}.analytics .widget-item .content.accounts-profit-and-loss .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container{max-height:540px}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.accounts-profit-and-loss .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.accounts-profit-and-loss .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.accounts-profit-and-loss .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.accounts-profit-and-loss .row.lines-group.profit{border-top:solid 1px;border-bottom:double}.analytics .widget-item .content.accounts-profit-and-loss .row.widget-line.header>[class*=col-]{position:static}.analytics .widget-item .content.accounts-ratios .left-panel{max-height:230px;overflow-y:auto}.analytics .widget-item .content.accounts-ratios .left-panel .separator{border-bottom:solid 1px #5B6667;width:75%}.analytics .widget-item .content.accounts-ratios .left-panel .member{padding-top:20px;padding-bottom:20px}.analytics .widget-item .content.accounts-ratios .left-panel .member .price{margin-top:0;font-size:18px}.analytics .widget-item .content.accounts-ratios .left-panel button{outline:0}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member{padding-top:5px}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .legend{display:none}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .member .price{text-align:right}.analytics .widget-item .content.accounts-ratios .left-panel.simulation .separator{width:100%}.analytics .widget-item .content.hr-employee-details{font-size:12px}.analytics .widget-item .content.hr-employee-details .details-container{padding:0;max-height:none;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.hr-employee-details .right-panel .legend{margin-bottom:5px}.analytics .widget-item .content.hr-employee-details .title{text-align:center;margin-bottom:10px;font-size:14px}.analytics .widget-item .content.hr-employees-list .legend{margin-bottom:9px}.analytics .widget-item .content.hr-employees-list .widget-lines-container{text-align:center}.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.hr-employees-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.hr-employees-list .edit .widget-lines-container{text-align:left}.analytics .widget-item .content.hr-leaves-balance .employee-name{text-align:center}.analytics .widget-item .content.hr-leaves-balance .balance{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.hr-leaves-balance h3{margin-top:33px;text-align:center}.analytics .widget-item .content.hr-leaves-schedule .fc-button{height:22px;font-size:12px;color:#977bf0;background:#fff;outline:0}.analytics .widget-item .content.hr-leaves-schedule .fc-button:hover{color:#fff;background:#977bf0}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.hr-leaves-schedule .fc-toolbar{margin-bottom:5px}.analytics .widget-item .content.hr-leaves-schedule .fc-day-grid,.analytics .widget-item .content.hr-leaves-schedule .fc-widget-header{font-size:12px;color:#5B6667}@media (min-width:992px){.analytics .widget-item .content.hr-employee-details .details-container{max-height:200px}.analytics .widget-item .content.hr-employee-details .right-panel .details-container{max-height:220px}.analytics .widget-item .content.hr-payroll-summary{height:565px}.analytics .widget-item .content.hr-payroll-summary .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.hr-payroll-summary .edit{max-height:545px}.analytics .widget-item .content.hr-payroll-summary .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container{max-height:540px}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.hr-payroll-summary .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.hr-payroll-summary .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:145px}.analytics .widget-item .content.hr-payroll-summary .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.hr-salaries-summary h3.left{text-align:center}.analytics .widget-item .content.hr-salaries-summary h3.reduced-left{text-align:center}@media (min-width:992px){.analytics .widget-item .content.hr-salaries-summary h3.left{margin-top:69px}.analytics .widget-item .content.hr-salaries-summary h3.reduced-left{margin-top:10px}}.analytics .widget-item .content.hr-salaries-summary h3.right{margin-bottom:10px;text-align:center}.analytics .widget-item .content.hr-salaries-summary .price{margin-top:0}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container{max-height:75px}.analytics .widget-item .content.hr-salaries-summary .widget-lines-container .widget-line{font-size:11px}@media (min-width:480px) and (max-width:991px){.analytics .widget-item .content.hr-salaries-summary .right-panel .chart-container{max-width:320px}}.analytics .widget-item .content.hr-superannuation-accruals h3{margin-top:63px;text-align:center}.analytics .widget-item .content.hr-superannuation-accruals .legend{margin-top:23px}.analytics .widget-item .content.hr-superannuation-accruals .currency{font-size:14px}.analytics .widget-item .content.hr-superannuation-accruals .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.hr-timesheets .currency{font-size:14px}.analytics .widget-item .content.hr-timesheets .widget-lines-container{max-height:210px}@media (min-width:992px){.analytics .widget-item .content.invoices-aged-payables-receivables{height:565px}.analytics .widget-item .content.invoices-aged-payables-receivables .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.invoices-aged-payables-receivables .edit{max-height:545px}.analytics .widget-item .content.invoices-aged-payables-receivables .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container{max-height:540px}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.invoices-aged-payables-receivables .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.invoices-aged-payables-receivables .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.sales-aged .edit .widget-lines-container,.analytics .widget-item .content.sales-comparison .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.invoices-aged-payables-receivables .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.invoices-aged-payables-receivables .row.astericks-info{margin-top:15px}.analytics .widget-item .content.invoices-aged-payables-receivables .currency-conversions{float:right;margin-left:3px}.analytics .widget-item .content.hr-workforce-summary h3.left{text-align:center}.analytics .widget-item .content.hr-workforce-summary h3.reduced-left{text-align:center}@media (min-width:992px){.analytics .widget-item .content.hr-workforce-summary h3.left{margin-top:69px}.analytics .widget-item .content.hr-workforce-summary h3.reduced-left{margin-top:10px}}.analytics .widget-item .content.hr-workforce-summary h3.right{margin-bottom:10px;text-align:center}.analytics .widget-item .content.hr-workforce-summary .price{margin-top:0}.analytics .widget-item .content.hr-workforce-summary .widget-lines-container{max-height:75px}.analytics .widget-item .content.hr-workforce-summary .widget-lines-container .widget-line{font-size:11px}@media (min-width:480px) and (max-width:991px){.analytics .widget-item .content.hr-workforce-summary .right-panel .chart-container{max-width:320px}}.analytics .widget-item .content.invoices-summary .chart-container{max-width:410px}.analytics .widget-item .content.invoices-summary .legend{max-height:28px}.analytics .widget-item .content.invoices-list .widget-lines-container{max-height:230px}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.invoices-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.invoices-list .currency-conversions{float:right;margin-right:3px;margin-top:-2px}.analytics .widget-item .content.invoices-list .fa.fa-info-circle{float:right;font-size:15px}.analytics .widget-item .content.invoices-list .right-column{padding-left:0;padding-right:0}@media (min-width:992px){.analytics .widget-item .content.sales-aged{height:565px}.analytics .widget-item .content.sales-aged .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-aged .edit{max-height:545px}.analytics .widget-item .content.sales-aged .widget-lines-container{max-height:238px}.analytics .widget-item .content.sales-break-even .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-break-even .block{margin:5px;padding:0 10px 5px;text-align:left;box-shadow:0 7px 10px -7px #17262d;font-size:12px}.analytics .widget-item .content.sales-break-even .block form.editable-wrap .editable-controls input{margin-top:5px;width:100px}.analytics .widget-item .content.sales-break-even .block.to-date{background-color:#f0f0f0;color:#5B6667}.analytics .widget-item .content.sales-break-even .block.to-breakeven{margin-top:10px;background-color:#192831;color:#1de9b6}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line:hover,.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main:hover{background-color:#e6e0fb}.analytics .widget-item .content.sales-break-even .block.to-breakeven .title{border-bottom:solid 1px #2a4453}.analytics .widget-item .content.sales-break-even .block.to-breakeven .define-text{font-weight:300;font-size:16px;text-align:center;padding-top:5px;color:#1de9b6}.analytics .widget-item .content.sales-break-even .block.to-breakeven .price{color:#1de9b6}.analytics .widget-item .content.sales-break-even .block .title{font-size:13px;text-align:center;font-variant:small-caps;border-bottom:solid 1px #e6edee;font-weight:300}@media (min-width:992px){.analytics .widget-item .content.sales-comparison{height:565px}.analytics .widget-item .content.sales-comparison .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-comparison .edit{max-height:545px}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.sales-comparison .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-comparison .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.sales-comparison .widget-lines-container{max-height:530px}.analytics .widget-item .content.sales-comparison .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:250px}.analytics .widget-item .content.sales-comparison .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-customer-details{font-size:12px}.analytics .widget-item .content.sales-customer-details .loader{font-size:14px}.analytics .widget-item .content.sales-customer-details .details-container{padding:0;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.sales-forecast .edit .widget-lines-container,.analytics .widget-item .content.sales-leads-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}@media (min-width:992px){.analytics .widget-item .content.sales-customer-details .details-container{max-height:194px}.analytics .widget-item .content.sales-customer-details .right-panel .details-container{max-height:230px}}.analytics .widget-item .content.sales-customer-details .right-panel .legend{margin-bottom:5px}.analytics .widget-item .content.sales-customer-details .row.title{text-align:center;margin-bottom:10px;font-size:14px}.analytics .widget-item .content.sales-customer-details .currency-conversions{float:left;margin-right:3px}.analytics .widget-item .content.sales-cycle .chart-container{max-width:410px}.analytics .widget-item .content.sales-cycle .legend{max-height:28px}@media (min-width:992px){.analytics .widget-item .content.sales-forecast{height:565px}.analytics .widget-item .content.sales-forecast .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-forecast .edit{max-height:545px}.analytics .widget-item .content.sales-forecast .widget-lines-container{max-height:275px}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select{cursor:auto}.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container .widget-line,.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container .widget-line{cursor:default}.analytics .widget-item .content.sales-forecast .widget-lines-container .widget-line.main.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-growth .price{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-growth .legend{max-height:49px;font-size:14px;text-overflow:ellipsis;white-space:nowrap}@media (min-width:992px){.analytics .widget-item .content.sales-leads-funnel{height:565px}.analytics .widget-item .content.sales-leads-funnel .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-leads-funnel .edit{max-height:545px}.analytics .widget-item .content.sales-leads-funnel .funnel-container{width:95%;margin:15px auto auto;padding-right:10px;max-height:505px;overflow:auto}.analytics .widget-item .content.sales-leads-funnel .right-panel .widget-lines-container{max-height:545px;margin-right:10px}.analytics .widget-item .content.sales-leads-list .widget-lines-container{max-height:230px;overflow-y:scroll;overflow-x:hidden}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.sales-leads-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(even){background-color:#f0f0f0}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .widget-item .content.sales-list .widget-lines-container .widget-line.header{background-color:#fff}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header:hover,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line:hover{background-color:#e6e0fb}.analytics .widget-item .content.sales-list .widget-lines-container{overflow-y:scroll;overflow-x:hidden;max-height:170px}.analytics .widget-item .content.sales-list .widget-lines-container.no-scroll{overflow:visible}.analytics .widget-item .content.sales-list .selector{margin-bottom:4px}.analytics .widget-item .content.sales-list .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-net-sales .operator,.analytics .widget-item .content.sales-net-sales .value-container{line-height:85px}.analytics .widget-item .content.sales-net-sales .value-container .title{line-height:20px;font-size:1.2em;padding:10px 0}.analytics .widget-item .content.sales-net-sales .value-container .value-box{font-size:1.3em;border-radius:10px;border-top:solid 1px #C4CACA;border-bottom:solid 1px #C4CACA;white-space:nowrap}.analytics .widget-item .content.sales-net-sales .operator{padding-top:38px;font-size:1.3em}@media (min-width:992px){.analytics .widget-item .content.sales-net-sales .values{margin-top:25px}}.analytics .widget-item .content.sales-new-vs-existing-customers .selector .selector-wrap{display:inline-block;margin:0 5px}.analytics .widget-item .content.sales-new-vs-existing-customers .chart-container{margin-top:15px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend{margin-top:5px;font-weight:700;max-height:77px!important}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row{margin:0 -5px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .row>div{padding:0 5px}.analytics .widget-item .content.sales-new-vs-existing-customers .legend .total{color:#5B6667;font-size:14px}.analytics .widget-item .content.sales-number-of-leads .stats{margin-top:35px;font-size:18px}.analytics .widget-item .content.sales-number-of-leads .stats .stat{margin:15px 0 10px;border-bottom:solid 1px #e6edee}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.title{font-weight:700}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.nominal{float:right;text-align:right;font-weight:300}.analytics .widget-item .content.sales-number-of-leads .stats .stat span.variation{float:right;width:50px;text-align:right;font-style:italic;font-size:14px;font-weight:300;margin-top:2px}.analytics .widget-item .content.sales-segmented-turnover .right-panel .fa.fa-info-circle,.analytics .widget-item .info-panel .i-header .fa-info-circle{float:left}@media (min-width:992px){.analytics .widget-item .content.sales-opportunities-funnel{height:565px}.analytics .widget-item .content.sales-opportunities-funnel .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-opportunities-funnel .edit{max-height:545px}.analytics .widget-item .content.sales-opportunities-funnel .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-opportunities-funnel .funnel-container{width:95%;margin:15px auto auto;padding-right:10px;max-height:505px;overflow:auto}.analytics .widget-item .content.sales-opportunities-funnel .right-panel .widget-lines-container{max-height:545px;margin-right:10px}@media (min-width:992px){.analytics .widget-item .content.sales-performance{height:565px}.analytics .widget-item .content.sales-performance .chart-container{max-width:585px;max-height:440px;margin:auto}}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header .selection-tag,.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line .selection-tag{display:block;right:0;margin-top:-6px;width:10px;height:29px;position:absolute}.analytics .widget-item .content.sales-performance .edit{max-height:545px}.analytics .widget-item .content.sales-performance .edit .widget-lines-container{overflow-y:hidden;overflow-x:hidden}.analytics .widget-item .content.sales-performance .widget-lines-container{max-height:540px}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select{cursor:auto}.analytics .widget-item .content.sales-performance .widget-lines-container .lines-group .widget-line.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container{overflow-y:auto;overflow-x:hidden;max-height:215px}.analytics .widget-item .content.sales-performance .no-element{font-weight:300;font-size:16px;color:#5B6667;text-align:center}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header{cursor:pointer;border:1px solid #fff}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select{cursor:auto}.analytics .widget-item .content.sales-performance .right-panel .widget-lines-container .widget-line.header.no-select:hover{color:#626d6d}.analytics .widget-item .content.sales-segmented-turnover h3.right{margin-top:55px;text-align:center}.analytics .widget-item .content.sales-segmented-turnover .selector{margin-bottom:10px}.analytics .widget-item .content.sales-segmented-turnover .analysis{font-weight:900;font-size:22px;color:#5B6667;text-align:center;margin-top:0}.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container{max-height:75px}.analytics .widget-item .content.sales-segmented-turnover .widget-lines-container .widget-line{font-size:11px}.analytics .widget-item .content.sales-segmented-turnover .right-panel h3{margin:15px 10px 5px;text-align:center}.analytics .widget-item .content.sales-summary .chart-container{max-width:410px}.analytics .widget-item .content.sales-summary .legend{max-height:28px}.analytics .widget-item .content.sales-summary .selector{margin-bottom:5px}.analytics .widget-item .content.sales-top-customers .selector{border-bottom:dashed 1px #E6E6E6;padding-bottom:3px}.analytics .widget-item .content.sales-top-customers .selector a{font-weight:400}.analytics .widget-item .content.sales-top-customers .selector .param-selector{display:inline-block}.analytics .widget-item .content.sales-top-customers .widget-lines-container{max-height:235px}.analytics .widget-item .content.sales-top-customers .widget-lines-container .widget-line.sub-line{background-color:#f0f0f0}.analytics .widget-item .content.sales-top-customers .widget-lines-container .row>[class*=col-]{position:static}.analytics .widget-item .content.sales-top-customers .currency-conversions img{margin-top:-2px}.analytics .widget-item .content.sales-top-opportunities .opps-container{max-height:195px;margin-top:10px;padding-right:10px;overflow-y:auto;overflow-x:hidden}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile{height:40px;font-size:13px;font-weight:300}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .colored-area{width:10%;text-align:center;font-size:20px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile .main-text{color:#5B6667;padding:3px 0 0 10px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first{height:55px;font-size:15px;font-weight:700}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .colored-area{font-size:26px;padding-top:10px;background-color:#ff6e41}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.first .main-text{padding-top:8px}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second{height:55px;font-size:15px;font-weight:500}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .colored-area{font-size:26px;padding-top:10px;background-color:#1de9b6}.analytics .widget-item .content.sales-top-opportunities .opps-container .tile.second .main-text{padding-top:8px}chart-threshold .attach-panel{padding:5px 0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;background-color:rgba(20,132,228,.16)}chart-threshold .attach-panel>.attach-panel-text,chart-threshold .attach-panel>.attach-panel-text>*{display:inline-block}chart-threshold .attach-panel .panel-text-label{text-transform:uppercase;font-weight:700;color:#5B6667;font-size:13px}chart-threshold .attach-panel .panel-text-input{border-radius:3px;border:1px #fff;padding:3px}chart-threshold .attach-panel .panel-text-currency{font-weight:700;color:#000}chart-threshold .action-buttons{display:inline-block;padding:0 10px}chart-threshold .action-buttons button{padding:3px 6px;display:inline-block}chart-threshold .action-buttons button.loading{padding:3px 20px}.analytics .widget-item .editable-title{width:100%;-ms-flex:1;flex:1;overflow:hidden;height:22px}.analytics .widget-item .editable-title .title{text-transform:uppercase;font-weight:600;font-size:12px;color:#4f5959;cursor:text;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.9}.analytics .widget-item .editable-title .editable-wrap{position:relative;height:20px;min-width:100%;white-space:nowrap}.analytics .widget-item .editable-title .editable-wrap .editable-controls{min-width:100%}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-input{height:20px;font-size:12px;text-transform:uppercase;width:calc(100% - 65px);padding:0 3px}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons{background-color:#fff}.analytics .widget-item .editable-title .editable-wrap .editable-controls .editable-buttons button{margin:0 0 0 5px;height:20px;padding:0 5px}.currency-conversions img{width:15px;cursor:pointer}.currency-conversions.popover .popover-title{background-color:#000;color:#fff}.analytics .widget-item .info-panel{position:absolute;top:15px;left:15px;width:calc(100% - 30px);max-height:calc(100% - 30px);height:100%;background-color:#fff;border:1px dotted #B7CDCE;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-family:"Lato Semibold",Lato;z-index:4}.analytics .widget-item .info-panel:hover{opacity:1}.analytics .widget-item .info-panel .i-header{background-color:#FFC928;color:#1E303B;padding:8px;text-transform:uppercase;font-family:"Lato Medium",Lato;font-size:12px}.analytics .widget-item .info-panel .i-header .fa{font-size:18px}.analytics .widget-item .info-panel .i-header .fa-times-circle{cursor:pointer;float:right}.analytics .widget-item .info-panel .i-content{overflow-y:auto;overflow-x:hidden;padding:5px;text-align:justify;-ms-flex:1;flex:1}.analytics .widget-item .info-panel .i-content .row{margin-bottom:6px;padding-bottom:6px;border-bottom:solid 1px #abc4c6}.analytics .widget-item .info-panel .i-content .row:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.analytics .widget-item .info-panel .i-content .row .key{text-align:right;font-variant:small-caps}@media (max-width:991px){.analytics .widget-item .info-panel .i-content .row .key{text-align:center}}.analytics .widget-item .info-panel .i-content .row .value{text-align:justify}.analytics .time-period-info{font-size:11px;color:#ABC4C6;text-transform:uppercase}.analytics .widget-item .top-line .top-buttons{text-align:right;margin-top:-1px;white-space:nowrap;padding-left:10px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh{font-size:17px;margin-top:1px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button{background:0 0;border:none;color:#c4caca;padding:0;outline:0;width:17px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:active,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button:focus{box-shadow:none}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-info:hover{color:#FFC928}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-refresh:hover{color:#358fdc}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit{font-size:13px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit.edit-mode,.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-edit:hover{color:#cfd849}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close{font-size:13px}.analytics .widget-item .top-line .top-buttons .top-buttons-wrapper .top-button.btn-close:hover{color:#ed1e79}.analytics .settings.accounting-behaviour .btn.btn-primary{background-color:#bba9f5;border:1px solid #977bf0}.analytics .settings.accounting-behaviour .btn.btn-primary.active,.analytics .settings.accounting-behaviour .btn.btn-primary.focus{background-color:#977bf0}.analytics .settings.attach-kpis .attach-kpi{padding:8px 5px}.analytics .settings.attach-kpis .attach-kpi form .row{padding-bottom:5px}.analytics .settings.attach-kpis .attach-kpi .attach-kpi-form{background-color:#fff;border:1px solid #ddd;padding:5px}.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description{padding:10px 2px}.analytics .settings.attach-kpis .attach-kpi form .row.kpi-description span{display:block;font-weight:700;font-size:13px}.analytics .settings.attach-kpis .attach-kpi form.attach-kpi-form input.attach-target{background-color:#fff;height:inherit}.analytics .settings.attach-kpis .attach-kpi .error-messages{color:#e01f74;width:120px}.analytics .settings.attach-kpis .attached-kpis{padding:5px}.analytics .settings.attach-kpis .list-group-item.attached-kpi{padding:5px 10px}.analytics .settings.attach-kpis .list-group-item.attached-kpi .attached-kpi-name{overflow:hidden;width:75%;display:inline-block;white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:13px;font-weight:700}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions{padding-top:2px}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config{display:inline-block;text-align:left;padding-left:4px;height:20px;border-radius:40px;width:21px;color:#358fdc;background-color:#fff;border:1px solid #358fdc}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .alerts-config:hover{cursor:pointer}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi{display:inline-block}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i{border-radius:10px;width:21px;color:#358fdc;background-color:#fff;height:20px;padding:3px 5px 5px;border:1px solid #358fdc}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .edit-attached-kpi i:hover{cursor:pointer}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi{display:inline-block}.analytics .settings.dates-picker button.btn.btn-sm.btn-danger,.analytics .settings.dates-picker h5{display:none}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i{border-radius:10px;width:21px;color:#e01f74;background-color:#fff;height:20px;padding:3px 5px 5px;border:1px solid #e01f74}.analytics .settings.attach-kpis .list-group-item.attached-kpi .actions .remove-attached-kpi i:hover{cursor:pointer}.analytics .widget-item .content .settings.select-account{padding:0 5px}.analytics .settings.dates-picker button.btn.btn-sm{line-height:1}.analytics .settings.dates-picker button.btn.btn-sm.date-button{margin:0 5px}.analytics .settings.dates-picker button.btn.btn-sm.btn-info{border-radius:3px}.analytics .settings.dates-picker .tooltip-inner{text-transform:none}.analytics .settings.dates-picker .dropdown-menu>li>div>table{outline:0}.analytics .widget-item .content .settings.chart-filters .row{margin:0}.analytics .widget-item .content .settings.chart-filters input[type=radio]{margin:0 3px 0 0;padding:0;width:13px;height:13px;vertical-align:middle;position:relative;top:-1px;outline:0}.analytics .widget-item .content .settings.chart-filters input[type=range]{height:auto;width:100%}.analytics .widget-item .content .settings.hist-mode-choser{max-height:70px}.analytics .widget-item .content .settings.hist-mode-choser [common-time-period-info]{padding-bottom:8px}.analytics .widget-item .content .settings.hist-mode-choser .options{width:150px;margin:auto;padding-bottom:8px;border-bottom:solid 1px #e6e6e6;font-weight:500;font-size:12px;color:#c4caca}.analytics .widget-item .content .settings.hist-mode-choser .options a{font-weight:500;font-size:12px;color:#c4caca;text-transform:uppercase}.analytics .widget-item .content .settings.hist-mode-choser .options a.active{color:#977bf0}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container{width:28px;height:28px;position:relative;top:-14px;margin:auto}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.right{left:46px}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container.left{left:-30px}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow-border{border-top:14px solid #e6e6e6;border-left:14px solid transparent;border-right:14px solid transparent;width:0;height:0}.analytics .widget-item .content .settings.hist-mode-choser .arrow-container .arrow{border-top:14px solid #fff;border-left:14px solid transparent;border-right:14px solid transparent;position:relative;top:12px;width:0;height:0}.analytics .settings.limit-entries{color:#1E303B;text-transform:uppercase;text-align:center;border-bottom:dashed 1px #E6E6E6;padding-bottom:8px}.analytics .settings.limit-entries a.option.badge{color:#fff;background-color:#1E303B}.analytics .settings.offsets .offset-value{font-style:italic;font-size:13px}.analytics .settings.offsets .offset-value .fa-trash-o{margin-left:10px}.analytics .settings.offsets .offset-value .fa-trash-o:hover{color:#e01f74;cursor:pointer}.analytics .settings.offsets input{width:75%}.analytics .settings.offsets button{width:30px}.analytics .settings.organizations .widget-lines-container .widget-line{padding:5px 10px 5px 18px}.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(even){background-color:#f3f4f4}.analytics .settings.organizations .widget-lines-container .widget-line:nth-child(odd){background-color:#fff}.analytics .settings.organizations .widget-lines-container .widget-line .fa{float:right;font-size:20px;cursor:pointer}.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-check-circle,.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-on{color:#977bf0}.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-circle-thin,.analytics .settings.organizations .widget-lines-container .widget-line .fa.fa-toggle-off{color:#9ba6a7}.analytics .widget-item .content .settings.param-selector{display:inline-block}.analytics .widget-item .content .settings.param-selector.classic{width:100%}.analytics .widget-item .content .settings.param-selector.classic select{width:100%;height:25px;border:1px solid #ccc;text-transform:uppercase;margin:0 0 5px}.analytics .widget-item .content .settings.param-selector a{font-weight:400;color:#977bf0;white-space:nowrap}.analytics .widget-item .content .settings.param-selector .options-container{position:absolute;background-color:#fff;text-align:left;min-width:150px;max-height:200px;z-index:999;overflow-y:auto;overflow-x:hidden;box-shadow:#000 0 3px 15px -3px}.analytics .settings.tag-filter .tag-lines-container .tag-line .host,.analytics .settings.tag-filter .tag-lines-container .tag-line .tags-col{position:static}.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label{padding:3px 5px;font-weight:500;font-size:inherit;color:#000;cursor:text;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.9}.analytics .widget-item .content .settings.param-selector .options-container .param-selector-label:hover{cursor:pointer;background-color:#977bf0;color:#fff}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar{width:8px;background-color:#d7e2e4}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb{background-color:#977bf0}.analytics .widget-item .content .settings.param-selector .options-container::-webkit-scrollbar-thumb:hover{background-color:#a992f3}.analytics .settings.params-checkboxes{padding:2px 0}.analytics .settings.params-checkboxes input{margin:0;height:inherit}.analytics .settings.params-checkboxes span{margin-left:5px}.analytics .settings.params-checkboxes label{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;line-height:14px}.analytics .widget-item .content .settings.params-picker{padding:0 10px}.analytics .widget-item .content .settings.params-picker .parameter{margin:0 3px 3px 0;padding:3px 5px;background-color:#1E303B;color:#fff;border:1px solid #1E303B;border-radius:4px;cursor:move;font-weight:700;white-space:nowrap;float:left}.analytics .widget-item .content .settings.params-picker .parameter input[type=checkbox]{margin:0 -3px 0 3px;vertical-align:middle;height:inherit;outline:0;cursor:pointer}.analytics .widget-item .content .settings.params-picker .parameter .badge{margin-right:3px;font-size:10px;background-color:#f2f2f2;color:#1E303B;padding:2px 6px}.analytics .widget-item .content .settings.params-picker .parameter.unchecked{background-color:inherit;font-weight:400;color:inherit;border-color:#c2c4c4}.analytics .widget-item .content .settings.params-picker .parameter.unchecked .badge{background-color:#c2c4c4;color:#fff}.analytics .settings.tag-filter{padding:0 5px}.analytics .settings.tag-filter .btn.btn-default{height:32px;width:30px}.analytics .settings.tag-filter .tag-lines-container{padding:0 10px}.analytics .settings.tag-filter .tag-lines-container .tag-line{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags{display:-ms-flexbox;display:flex;border-radius:4px;border:1px solid #ccc}.analytics .settings.tag-filter .tag-lines-container .tag-line tags-input .tags .tag-item{background:#79a2bb;border-radius:4px;color:#fff}.analytics .settings.time-period{padding:0 5px}.analytics .settings.time-period select{height:22px;width:100%}.analytics .settings.time-period>.row{margin:0 -5px 7px}.analytics .settings.time-period>.row>div{padding:0 5px;position:static}.analytics .settings.time-period>.row .sub-setting{padding:5px}.analytics .widget-item .content .settings.width{float:right;font-size:14px}.analytics .widget-item .content .settings.width i{color:silver;cursor:pointer}.analytics .widget-item .content .settings.width i.reduce{margin-right:-10px}.analytics .widget-item .content .settings.width i.expand{margin-right:-3px} \ No newline at end of file diff --git a/dist/impac-angular.min.js b/dist/impac-angular.min.js index d2fd0337..1691744f 100644 --- a/dist/impac-angular.min.js +++ b/dist/impac-angular.min.js @@ -1,21 +1,21 @@ /** * impac-angular - Impac! Front-End Library - * @version v1.6.8 + * @version v1.6.9 * @git git://github.com/maestrano/impac-angular.git * @license Copyright 2017 Maestrano Pty Ltd */ -(function(){"use strict";angular.module("maestrano.impac",["impac.services","impac.filters","impac.components","ngMessages","ui.sortable","ui.bootstrap","emguo.poller","toastr","pascalprecht.translate","xeditable"]),angular.module("impac.components",["impac.components.dashboard","impac.components.dashboard-selector","impac.components.dashboard-templates-selector","impac.components.dashboard-settings","impac.components.kpis-bar","impac.components.kpi","impac.components.chart","impac.components.alerts-config","impac.components.widget","impac.components.widgets","impac.components.widgets-settings","impac.components.widgets-common","impac.components.common","impac.components.templates"]),angular.module("impac.components.widgets",["impac.components.widgets.accounts-accounting-values","impac.components.widgets.accounts-assets-summary","impac.components.widgets.accounts-assets-liability-summary","impac.components.widgets.accounts-balance-sheet","impac.components.widgets.accounts-balance","impac.components.widgets.accounts-cash-projection","impac.components.widgets.accounts-cash-summary","impac.components.widgets.accounts-comparison","impac.components.widgets.accounts-custom-calculation","impac.components.widgets.accounts-expenses-revenue","impac.components.widgets.accounts-payable-receivable","impac.components.widgets.accounts-profit-and-loss","impac.components.widgets.accounts-class-comparison","impac.components.widgets.accounts-expense-weight","impac.components.widgets.accounts-assets-vs-liabilities","impac.components.widgets.accounts-detailed-classifications","impac.components.widgets.accounts-ratios","impac.components.widgets.accounts-cash-balance","impac.components.widgets.hr-employee-details","impac.components.widgets.hr-employees-list","impac.components.widgets.hr-leaves-balance","impac.components.widgets.hr-leaves-schedule","impac.components.widgets.hr-payroll-summary","impac.components.widgets.hr-payroll-taxes","impac.components.widgets.hr-salaries-summary","impac.components.widgets.hr-superannuation-accruals","impac.components.widgets.hr-timesheets","impac.components.widgets.hr-workforce-summary","impac.components.widgets.invoices-aged-payables-receivables","impac.components.widgets.invoices-list","impac.components.widgets.invoices-summary","impac.components.widgets.sales-aged","impac.components.widgets.sales-break-even","impac.components.widgets.sales-comparison","impac.components.widgets.sales-customer-details","impac.components.widgets.sales-cycle","impac.components.widgets.sales-forecast","impac.components.widgets.sales-growth","impac.components.widgets.sales-leads-funnel","impac.components.widgets.sales-leads-list","impac.components.widgets.sales-list","impac.components.widgets.sales-margin","impac.components.widgets.sales-net-sales","impac.components.widgets.sales-number-of-leads","impac.components.widgets.sales-opportunities-funnel","impac.components.widgets.sales-performance","impac.components.widgets.sales-segmented-turnover","impac.components.widgets.sales-summary","impac.components.widgets.sales-top-opportunities","impac.components.widgets.sales-top-customers","impac.components.widgets.sales-new-vs-existing-customers"]),angular.module("impac.components.widgets-settings",["impac.components.widgets-settings.account","impac.components.widgets-settings.accounts-list","impac.components.widgets-settings.accounting-behaviour","impac.components.widgets-settings.chart-filters","impac.components.widgets-settings.dates-picker","impac.components.widgets-settings.formula","impac.components.widgets-settings.hist-mode","impac.components.widgets-settings.limit-entries","impac.components.widgets-settings.organizations","impac.components.widgets-settings.param-selector","impac.components.widgets-settings.params-picker","impac.components.widgets-settings.params-checkboxes","impac.components.widgets-settings.time-period","impac.components.widgets-settings.time-presets","impac.components.widgets-settings.time-slider","impac.components.widgets-settings.width","impac.components.widgets-settings.attach-kpis","impac.components.widgets-settings.tag-filter","impac.components.widgets-settings.offsets"]),angular.module("impac.components.dashboard-settings",["impac.components.dashboard-settings.currency","impac.components.dashboard-settings.pdf-mode","impac.components.dashboard-settings.sync-apps"]),angular.module("impac.components.widgets-common",["impac.components.widgets-common.editable-title","impac.components.widgets-common.info-panel","impac.components.widgets-common.time-period-info","impac.components.widgets-common.top-buttons","impac.components.widgets-common.autofocus","impac.components.widgets-common.currency-conversions","impac.components.widgets-common.chart-threshold"]),angular.module("impac.components.common",["impac.components.common.data-not-found","impac.components.common.delete-widget","impac.components.common.transactions-add","impac.components.common.transactions-list"]),angular.module("impac.services",["impac.services.routes","impac.services.linking","impac.services.theming","impac.services.assets","impac.services.chart-formatter","impac.services.highcharts-factory","impac.services.message-bus","impac.services.utilities","impac.services.main","impac.services.kpis","impac.services.dashboards","impac.services.dashboard-templates","impac.services.widgets","impac.services.developer","impac.services.pusher","impac.services.alerts","impac.services.notifications","impac.services.events","impac.services.currency-rates","impac.services.bolt-resources"]),angular.module("impac.filters",["impac.filters.titleize","impac.filters.truncate","impac.filters.mno-currency","impac.filters.moment-date"]),angular.module("impac.components.templates",[]).run(["$templateCache",function(e){e.put("alerts-config/alerts-config.modal.html",'
\n\n \n\n \n\n \n\n
\n'),e.put("alerts-config/alerts-config.tmpl.html",'
\n \n
\n'),e.put("dashboard/create.modal.html",'\n\n\n\n\n'),e.put("dashboard/dashboard.tmpl.html",'\n
\n
\n\n \n
\n
\n \n
\n \n \n
\n\n
\n
{{dhbHeadingText}}
\n
\n
\n\n \n \n\n \n \n\n \n\n \n
\n
\n

impac.dashboard.select_the_widgets

\n impac.dashboard.widget_added\n \n
\n\n
\n
\n
\n impac.dashboard.all_categories\n
\n
\n
\n

impac.dashboard.accounting

\n

impac.dashboard.invoicing

\n

impac.dashboard.hr_or_payroll

\n

impac.dashboard.sales

\n
\n
\n
\n
\n \n
\n
\n\n
\n
\n {{getSelectedCategoryName() | titleize}}\n
\n
\n
\n
\n \n

\n \n
\n
\n
\n
\n
\n\n
\n \n {{\'impac.dashboard.can_not_find\' | translate}} {{\'impac.dashboard.give_us\' | translate}}\n \n
\n
\n\n \n
\n\n \n
\n
\n
\n
\n
\n
\n\n \n
\n \n
    \n
  • {{error}}
  • \n
\n
\n\n
\n\n \n\n
\n \n
\n
\n
\n
\n
\n

{{dhbErrorsConfig.firstTimeCreated.first}}

\n

{{dhbErrorsConfig.firstTimeCreated.second}}

\n
\n
\n
\n
\n
\n \n
\n
\n\n \n
\n
\n
\n
\n
\n

{{dhbErrorsConfig.empty.first}}

\n

{{dhbErrorsConfig.empty.second}}

\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n \n
\n \n \n
\n

{{dhbErrorsConfig.firstTimeCreated.note}}

\n
\n
\n\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
impac.dashboard.plus_chart
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n

{{dhbErrorsConfig.failed.first}}

\n
\n

{{dhbErrorsConfig.failed.second}}

\n
\n \n \n \n
\n
\n
\n'),e.put("dashboard/widget-suggestion.modal.html",'\n\n