mirror of
https://github.com/OOOO00000000OOOO/80O08
synced 2026-09-22 13:51:13 +00:00
439 lines
2.0 MiB
Plaintext
439 lines
2.0 MiB
Plaintext
<!DOCTYPE html> <html><!--
|
||
Page saved with SingleFile
|
||
url: https://ghostarchive.org/archive/vA9DJ
|
||
saved date: Sun Sep 06 2026 06:40:58 GMT+0300 (GMT+03:00)
|
||
--><meta charset=utf-8><style>:root{--sf-img-1: /* original URL: https://ghostarchive.org/timeless/images/arrow-down-grey.svg */ url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIxNiI+Cgk8cGF0aCBkPSJtMTUuNSA2LTUgNS01LTV6IiBvcGFjaXR5PSIuMzMiLz4KPC9zdmc+Cg==")}</style><style data-sf-original-href=/timeless/timeless.css>/*! normalize.css v3.0.mwfork.3 | MIT License | git.io/normalize */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}template{display:none}a{background:transparent}img{border:0;vertical-align:middle}input{font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit}input[type="submit"]{-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}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}input[type="submit"]{direction:ltr}.visualClear{clear:both}input{font-family:"Segoe UI","Segoe UI Emoji","Segoe UI Symbol","Lato","Liberation Sans","Noto Sans","Helvetica Neue","Helvetica",sans-serif}#searchInput{box-sizing:border-box}form:not(.oo-ui-layout) input{border-radius:2px}form:not(.oo-ui-layout) input[type="submit"]{border-radius:2px;font-weight:bold;color:#fff}form:not(.oo-ui-layout) button:hover,form:not(.oo-ui-layout) input[type="submit"]:hover,form:not(.oo-ui-layout) button:active,form:not(.oo-ui-layout) input[type="submit"]:active{background-color:#47f}html,body{margin:0;padding:0}body{font-family:"Segoe UI","Segoe UI Emoji","Segoe UI Symbol","Lato","Liberation Sans","Noto Sans","Helvetica Neue","Helvetica",sans-serif;color:#000;background:#72777d;font-size:.95em;line-height:1.5}#mw-content{border:solid #eaecf0;border-width:1px 1px .2em;box-shadow:0 1px 2px 1px rgba(0,0,0,0.02);background:#fff;padding:1em 2em 3em}#bodyContentOuter{position:relative;z-index:0}.mw-body{word-wrap:break-word}.mw-footer-container{border-top:solid 1px #54595d;box-shadow:inset 0 7px 2px -4px rgba(0,0,0,0.1);color:#fff}.mw-footer-container a{color:#dbeaff}.mw-footer-container a:hover{color:#cbe2ff}.mw-footer-container a:visited{color:#c1dcff}.mw-footer-container a:visited:hover{color:#add0ff}#p-logo{text-align:center;margin:auto}#p-logo-text{max-width:14em;text-align:center;line-height:1}#p-logo-text a{color:#000;font-family:"Linux Libertine","Times New Roman","Liberation Serif","Nimbus Roman","Noto Serif","Times",serif;font-variant:small-caps;font-size:1.85em;display:block}#p-logo-text a.wordmark{padding:0 .5em 0 0}#simpleSearch{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,0.05);background:#fff;position:relative;border:solid 1px #c8ccd1;margin-left:20px}#searchInput{border:0;margin:0;height:2.1em;padding:.4em 4.5em .2em 2em;box-shadow:none;background:transparent;width:100%;min-height:0;font-family:inherit}#searchButton{position:absolute;top:0;margin:0;padding:0;right:1.5em;width:2.5em;height:2.5em;text-indent:-99999px;border:0;background-color:transparent;background-repeat:no-repeat;background-image:/* original URL: https://ghostarchive.org/timeless/images/search-ltr.svg */url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIyMSI+Cgk8ZyBvcGFjaXR5PSIuMzMiIHRyYW5zZm9ybT0icm90YXRlKC00NSA4LjUyNSA4LjM4NikiPgoJCTxwYXRoIGQ9Ik04LjQzOC45MzhhNy41IDcuNSAwIDAgMC03LjUgNy41IDcuNSA3LjUgMCAwIDAgNy41IDcuNSA3LjUgNy41IDAgMCAwIDcuNS03LjUgNy41IDcuNSAwIDAgMC03LjUtNy41em0wIDIuODEyYTQuNjg4IDQuNjg4IDAgMCAxIDQuNjg3IDQuNjg4IDQuNjg4IDQuNjg4IDAgMCAxLTQuNjg3IDQuNjg3QTQuNjg4IDQuNjg4IDAgMCAxIDMuNzUgOC40MzggNC42ODggNC42ODggMCAwIDEgOC40MzggMy43NXoiLz4KCQk8cmVjdCB3aWR0aD0iMi44MTMiIGhlaWdodD0iOS4yNjUiIHg9IjcuMDMxIiB5PSIxMy4xMjUiIHJ5PSIxLjMxOCIvPgoJPC9nPgo8L3N2Zz4K);background-position:center 40%;box-shadow:none}.dropdown-toggle:after{display:inline-block;content:"";width:22px;height:12px;background-image:var(--sf-img-1);background-position:center center;background-repeat:no-repeat}.mw-footer{padding-top:.5em;padding-bottom:1em}.mw-footer ul,.mw-footer li{margin:1em 0;list-style:none;padding:0}#mw-content-container{background:#eaecf0;border-bottom:solid 4px #00af89}.tools-inline li:hover{border-bottom-color:#c8ccd1}.tools-inline li a:hover{text-decoration:none}a{text-decoration:none;color:#36c}a:hover{color:#2952a3;text-decoration:underline}a:visited{color:#2a4b8d}a:visited:hover{color:#1e3666}a.new:hover,.new a:hover{color:#bd2020}a.new:visited,.new a:visited{color:#b32424}a.new:visited:hover,.new a:visited:hover{color:#891b1b}.mw-parser-output a.extiw:active{color:#37a}.mw-parser-output a.extiw:hover,.mw-parser-output a.extiw:active:hover,.mw-parser-output a.external:hover{color:#275c83}.mw-parser-output a.extiw:visited,.mw-parser-output a.extiw:active:visited,.mw-parser-output a.external:visited{color:#275c83}.mw-parser-output a.extiw:visited:hover,.mw-parser-output a.extiw:active:visited:hover,.mw-parser-output a.external:visited:hover{color:#1b405c}.mw-body .mw-parser-output h1:after,.mw-body .mw-parser-output h2:after{content:"";display:block;border-bottom:solid 2px #c8ccd1;overflow:hidden}.mw-body .mw-parser-output h1:after{border-bottom-width:3px}ul{padding:0;margin:.3em 0 0 1.6em}.mw-body .toctitle h2:after{display:none}body :not(:checked)>.toctogglespan:before,body :not(:checked)>.toctogglespan:after{content:""}.color-bar{width:100%}.color-left{height:.35em;background:#b32424;width:50%;float:left}.color-right{display:inline-block;height:.35em;background:#2b4b8c;width:50%;float:right}.color-middle-container{max-width:115em;margin:0 auto -0.35em;position:relative}.color-middle{height:.35em;background:#2a4b8d;margin-left:15em;margin-right:17em}#p-search h3{position:absolute;top:-9999px;left:0}@media screen and (min-width:851px){body,html{scroll-padding-top:3.625em}.sidebar-inner{display:block !important}.ts-inner{max-width:115em;box-sizing:border-box;padding:0 1em;margin:auto}#mw-header{display:flex}#mw-header-container{height:0;position:fixed;z-index:100;top:0;width:100%;background:#fff;color:#000;padding:.5em 0 0;min-height:3.125em;box-sizing:border-box}#p-logo-text{-ms-flex-pack:justify;justify-content:space-between;width:auto;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-order:1;order:1}#p-search{-ms-flex-pack:justify;justify-content:space-between;width:auto;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-order:2;order:2}#user-tools{-ms-flex-pack:justify;justify-content:space-between;width:auto;-ms-flex:0 1 auto;flex:0 1 auto;-ms-flex-order:3;order:3;display:inline-block}#user-tools #personal h2:after{height:22px}#mw-header-nav-hack,#mw-header-hack{position:fixed;z-index:97;top:3.125em;box-shadow:0 3px 3px 2px rgba(0,0,0,0.075),0 0 2px rgba(0,0,0,0.2)}#mw-header-nav-hack{display:none}#personal .dropdown:before,#personal .dropdown:after{transform:rotate(360deg);border-bottom:10px solid #eaecf0;border-left:10px solid transparent;border-right:10px solid transparent;content:"";height:0;width:0;position:absolute;right:1em;z-index:4}#personal .dropdown:before{top:-10px}#personal .dropdown:after{border-bottom-color:#fff;top:-8px}#personal h2:after{display:inline-block;content:"";width:22px;height:12px;background-image:var(--sf-img-1);background-position:center center;background-repeat:no-repeat}.client-nojs #personal:hover .pokey,.client-nojs #personal:hover .dropdown{display:block !important}#p-variants-desktop h3:after{display:inline-block;content:"";width:22px;height:12px;background-image:var(--sf-img-1);background-position:center center;background-repeat:no-repeat}#p-variants-desktop .dropdown:before,#p-variants-desktop .dropdown:after{transform:rotate(360deg);border-bottom:10px solid #eaecf0;border-left:10px solid transparent;border-right:10px solid transparent;content:"";height:0;width:0;position:absolute;right:1em;z-index:4}#p-variants-desktop .dropdown:before{top:-10px}#p-variants-desktop .dropdown:after{border-bottom-color:#fff;top:-8px}.client-nojs #p-variants-desktop:hover .dropdown{display:block !important}.mw-wiki-logo{display:block;margin:.75em auto 0}.mw-wiki-logo.timeless-logo{background-image:none}.sidebar-chunk h2{display:none}#mw-content-container{margin-top:3.475em;padding-bottom:1em}}@media screen and (min-width:1340px){#mw-content-block{display:flex;clear:both}#p-logo-text{min-width:14em}#mw-site-navigation{padding-right:1em;box-sizing:border-box;-ms-flex-pack:justify;justify-content:space-between;width:14em;-ms-flex:0 0 14em;flex:0 0 14em;-ms-flex-order:1;order:1}#mw-site-navigation .sidebar-chunk{background:#f8f9fa;border:solid #eaecf0;border-width:1px 1px .2em;box-shadow:0 1px 2px 1px rgba(0,0,0,0.02);padding:1.5em 1.5em 0;margin:1em 0;line-height:1.125;word-wrap:break-word;font-size:.95em}#mw-site-navigation .sidebar-chunk ul,#mw-site-navigation .sidebar-chunk li{list-style:none;margin:0;padding:0}#mw-site-navigation .sidebar-chunk h3{font-weight:normal;font-size:1em;margin:.25em 0 .75em 0;padding-bottom:.15em;border-bottom:solid 2px #c8ccd1}#mw-site-navigation .sidebar-chunk .mw-portlet-body{margin-bottom:2em}#mw-site-navigation .sidebar-chunk li{padding:.25em 0}#mw-content-wrapper{-ms-flex-pack:justify;justify-content:space-between;width:auto;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-order:2;order:2;min-width:50%}#user-tools{min-width:16em}}@media screen and (min-width:1100px) and (max-width:1339px){#mw-content-block{clear:both}#p-logo-text{min-width:14em}#mw-site-navigation{padding-right:1em;box-sizing:border-box;display:block;width:14em;position:relative}#mw-site-navigation .sidebar-chunk{background:#f8f9fa;border:solid #eaecf0;border-width:1px 1px .2em;box-shadow:0 1px 2px 1px rgba(0,0,0,0.02);padding:1.5em 1.5em 0;margin:1em 0;line-height:1.125;word-wrap:break-word;font-size:.95em}#mw-site-navigation .sidebar-chunk ul,#mw-site-navigation .sidebar-chunk li{list-style:none;margin:0;padding:0}#mw-site-navigation .sidebar-chunk h3{font-weight:normal;font-size:1em;margin:.25em 0 .75em 0;padding-bottom:.15em;border-bottom:solid 2px #c8ccd1}#mw-site-navigation .sidebar-chunk .mw-portlet-body{margin-bottom:2em}#mw-site-navigation .sidebar-chunk li{padding:.25em 0}#mw-site-navigation{overflow:hidden}#mw-content-wrapper{float:right;margin-left:-14em;width:100%}#mw-content{margin-left:14em}.color-right{background:#2a4b8d}.ts-inner,.color-middle-container{max-width:99em}}@media screen and (min-width:851px) and (max-width:1099px){#mw-content-block{padding:0;position:relative;max-width:85em}.ts-inner{max-width:85em}#mw-content{border-width:0 0 1px;clear:both;margin-top:5.425em}#mw-content-container{padding-bottom:0}.sidebar-chunk{display:inline-block;position:relative}.sidebar-chunk h2{display:inline-block}.sidebar-inner,#p-logo{display:none !important}.color-right,.color-middle{background:#b32424}#mw-site-navigation{display:inline-block;z-index:99}#mw-site-navigation h2{font-weight:normal;font-family:"Linux Libertine","Times New Roman","Liberation Serif","Nimbus Roman","Noto Serif","Times",serif;font-size:1.25em;padding:.5em 0 .2em;margin:0;cursor:pointer;margin-bottom:-0.45em;padding-bottom:.45em}#mw-site-navigation h2:after,#mw-related-navigation h2:after{display:inline-block;content:"";width:22px;height:12px;background-image:var(--sf-img-1);background-position:center center;background-repeat:no-repeat}.client-nojs .sidebar-chunk:hover .sidebar-inner{display:block !important}#mw-header-nav-hack{border-top:solid 2px #eaecf0;display:block;position:absolute;z-index:98;background:#fff;width:100%}#mw-header-nav-hack .color-bar{margin-top:2.5em}#mw-site-navigation{position:absolute;top:-2.35em;left:2em}#mw-site-navigation .sidebar-chunk{margin:0 1em 0 0}#mw-site-navigation .sidebar-inner{border:solid #eaecf0;border-width:1px 1px .2em;line-height:1.125;word-wrap:break-word;font-size:.95em;background:#fff;box-shadow:0 2px 3px 1px rgba(0,0,0,0.05);position:absolute;padding:20px 2em 0;margin:0;min-width:9.153em;top:2.95em;left:-1em;overflow:visible;z-index:3}#mw-site-navigation .sidebar-inner ul,#mw-site-navigation .sidebar-inner li{list-style:none;margin:0;padding:0}#mw-site-navigation .sidebar-inner h3{font-weight:normal;font-size:1em;margin:.25em 0 .75em 0;padding-bottom:.15em;border-bottom:solid 2px #c8ccd1}#mw-site-navigation .sidebar-inner .mw-portlet-body{margin-bottom:2em}#mw-site-navigation .sidebar-inner li{padding:.25em 0}#mw-site-navigation .sidebar-chunk h2 span:before,#mw-site-navigation .sidebar-chunk h2 span:after{transform:rotate(360deg);border-bottom:10px solid #eaecf0;border-left:10px solid transparent;border-right:10px solid transparent;content:"";height:0;width:0;position:absolute;right:1em;z-index:4}#mw-site-navigation .sidebar-chunk h2 span:before{top:-10px}#mw-site-navigation .sidebar-chunk h2 span:after{border-bottom-color:#fff;top:-8px}#mw-site-navigation .sidebar-chunk h2 span:before,#mw-site-navigation .sidebar-chunk h2 span:after{right:1px;display:none}#mw-site-navigation .sidebar-chunk h2 span:before{top:34px}#mw-site-navigation .sidebar-chunk h2 span:after{top:36px}#mw-site-navigation .dropdown-active h2 span:before,.client-nojs #mw-site-navigation .sidebar-chunk:hover h2 span:before,#mw-site-navigation .dropdown-active h2 span:after,.client-nojs #mw-site-navigation .sidebar-chunk:hover h2 span:after{display:block}#mw-related-navigation .sidebar-inner:before,#mw-related-navigation .sidebar-inner:after{transform:rotate(360deg);border-bottom:10px solid #eaecf0;border-left:10px solid transparent;border-right:10px solid transparent;content:"";height:0;width:0;position:absolute;right:1em;z-index:4}#mw-related-navigation .sidebar-inner:before{top:-10px}#mw-related-navigation .sidebar-inner:after{border-bottom-color:#fff;top:-8px}#mw-header{padding:0 2em}#p-logo-text a{padding-left:0;padding-right:.5em}#mw-footer{padding-left:2em;padding-right:2em}}@media screen and (max-width:850px){.mw-footer{padding:0 .45em}.color-middle{margin:auto;width:34%}#mw-header-nav-hack,#p-logo{display:none}#mw-header-container{background:#fff;padding:3.75em .45em .35em}#mw-header-hack{position:relative;z-index:1;box-shadow:0 3px 3px 2px rgba(0,0,0,0.075),0 0 2px rgba(0,0,0,0.2)}.color-right,.color-middle,.color-left{background:#b32424}.sidebar-inner{display:none;border:solid #eaecf0;border-width:1px 1px .2em;line-height:1.125;word-wrap:break-word;font-size:.95em;background:#fff;box-shadow:0 2px 3px 1px rgba(0,0,0,0.05);position:absolute;padding:2em 2.5em 1em;margin:0;min-width:9.153em;max-width:80%;top:3.25em;overflow:visible;z-index:100}.sidebar-inner ul,.sidebar-inner li{list-style:none;padding:0}.sidebar-inner h3{font-weight:normal;font-size:1em;padding-bottom:.15em;border-bottom:solid 2px #c8ccd1}.sidebar-inner .mw-portlet-body{margin-bottom:2em}.sidebar-inner li{padding:.25em 0}.sidebar-inner h3{margin:.5em 0 1.5em}.sidebar-inner ul{margin:1em 0 2em}.sidebar-inner li{margin:0 0 .75em}#menus-cover{display:none;position:fixed;top:0;left:0;z-index:99;width:100%;height:100%;background:#eaecf0;opacity:.8;overflow:hidden}.sidebar-chunk h2{cursor:pointer;margin-bottom:-0.45em;margin:0;width:30px;height:30px;position:absolute;top:1em;padding-bottom:0;font-size:1em;background-repeat:no-repeat;background-position:center center}#user-tools h2:after,.sidebar-chunk h2:after{display:inline-block;content:"";width:22px;height:12px;background-image:var(--sf-img-1);background-position:center center;background-repeat:no-repeat}.sidebar-chunk h2 span{display:inline-block;text-indent:-99999px;border:0;background-color:transparent;background-repeat:no-repeat}#user-tools h2:after,.sidebar-chunk h2:after{position:absolute;top:.65em;left:23px}#site-navigation h2{left:.45em;background-image:/* original URL: https://ghostarchive.org/timeless/images/menu-large-grey.svg */url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDI4LjE0NyAyOC4xNDciPgoJPGcgb3BhY2l0eT0iLjMzIj4KCQk8cmVjdCB3aWR0aD0iMjIuNTE4IiBoZWlnaHQ9IjQuNjkxIiB4PSIyLjgxNSIgeT0iMi44MTUiIHJ4PSIxLjQ2NSIgcnk9IjEuNDY1Ii8+CgkJPHJlY3Qgd2lkdGg9IjIyLjUxOCIgaGVpZ2h0PSI0LjY5MSIgeD0iMi44MTUiIHk9IjEyLjE5NyIgcng9IjEuNDY1IiByeT0iMS40NjUiLz4KCQk8cmVjdCB3aWR0aD0iMjIuNTE4IiBoZWlnaHQ9IjQuNjkxIiB4PSIyLjgxNSIgeT0iMjEuNTgiIHJ4PSIxLjQ2NSIgcnk9IjEuNDY1Ii8+Cgk8L2c+Cjwvc3ZnPgo=)}#site-navigation .sidebar-inner{left:0;right:auto}#p-logo-text{position:absolute;top:.75em;left:4.45em;text-align:left}#p-logo-text a{padding-left:0}#ca-more:after,#ca-languages:after{margin-left:-0.35em}.mw-body{border:0}#mw-content{padding:.45em;border-width:0}#mw-content-block{background:#fff}}@media screen and (max-width:1099px){#mw-content-container,#mw-site-navigation{background-image:none}}</style><title>Answers - HedgeDoc | Ghostarchive</title><script data-sf-original-src=https://ghostarchive.org/replay-web-page234/ui.js src="data:application/javascript;base64,LyohICd1aS5qcyBpcyBwYXJ0IG9mIFJlcGxheVdlYi5wYWdlIChodHRwczovL3JlcGxheXdlYi5wYWdlKSBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyNSwgV2VicmVjb3JkZXIgU29mdHdhcmUuIExpY2Vuc2VkIHVuZGVyIHRoZSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4nICovKCgpPT57dmFyIF9fd2VicGFja19tb2R1bGVzX189ezQ5NTooZSx0LGkpPT57InVzZSBzdHJpY3QiO2kuZCh0LHtBOigpPT5yfSk7dmFyIG89aSgzMTQpLG49aS5uKG8pKCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlWzFdfSkpO24ucHVzaChbZS5pZCwnOnJvb3QsXG46aG9zdCxcbi5zbC10aGVtZS1saWdodCB7XG4gIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG5cbiAgLS1zbC1jb2xvci1ncmF5LTUwOiBoc2woMCAwJSA5Ny41JSk7XG4gIC0tc2wtY29sb3ItZ3JheS0xMDA6IGhzbCgyNDAgNC44JSA5NS45JSk7XG4gIC0tc2wtY29sb3ItZ3JheS0yMDA6IGhzbCgyNDAgNS45JSA5MCUpO1xuICAtLXNsLWNvbG9yLWdyYXktMzAwOiBoc2woMjQwIDQuOSUgODMuOSUpO1xuICAtLXNsLWNvbG9yLWdyYXktNDAwOiBoc2woMjQwIDUlIDY0LjklKTtcbiAgLS1zbC1jb2xvci1ncmF5LTUwMDogaHNsKDI0MCAzLjglIDQ2LjElKTtcbiAgLS1zbC1jb2xvci1ncmF5LTYwMDogaHNsKDI0MCA1LjIlIDMzLjklKTtcbiAgLS1zbC1jb2xvci1ncmF5LTcwMDogaHNsKDI0MCA1LjMlIDI2LjElKTtcbiAgLS1zbC1jb2xvci1ncmF5LTgwMDogaHNsKDI0MCAzLjclIDE1LjklKTtcbiAgLS1zbC1jb2xvci1ncmF5LTkwMDogaHNsKDI0MCA1LjklIDEwJSk7XG4gIC0tc2wtY29sb3ItZ3JheS05NTA6IGhzbCgyNDAgNy4zJSA4JSk7XG5cbiAgLS1zbC1jb2xvci1yZWQtNTA6IGhzbCgwIDg1LjclIDk3LjMlKTtcbiAgLS1zbC1jb2xvci1yZWQtMTAwOiBoc2woMCA5My4zJSA5NC4xJSk7XG4gIC0tc2wtY29sb3ItcmVkLTIwMDogaHNsKDAgOTYuMyUgODkuNCUpO1xuICAtLXNsLWNvbG9yLXJlZC0zMDA6IGhzbCgwIDkzLjUlIDgxLjglKTtcbiAgLS1zbC1jb2xvci1yZWQtNDAwOiBoc2woMCA5MC42JSA3MC44JSk7XG4gIC0tc2wtY29sb3ItcmVkLTUwMDogaHNsKDAgODQuMiUgNjAuMiUpO1xuICAtLXNsLWNvbG9yLXJlZC02MDA6IGhzbCgwIDcyLjIlIDUwLjYlKTtcbiAgLS1zbC1jb2xvci1yZWQtNzAwOiBoc2woMCA3My43JSA0MS44JSk7XG4gIC0tc2wtY29sb3ItcmVkLTgwMDogaHNsKDAgNzAlIDM1LjMlKTtcbiAgLS1zbC1jb2xvci1yZWQtOTAwOiBoc2woMCA2Mi44JSAzMC42JSk7XG4gIC0tc2wtY29sb3ItcmVkLTk1MDogaHNsKDAgNjAlIDE5LjYlKTtcblxuICAtLXNsLWNvbG9yLW9yYW5nZS01MDogaHNsKDMzLjMgMTAwJSA5Ni41JSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTEwMDogaHNsKDM0LjMgMTAwJSA5MS44JSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTIwMDogaHNsKDMyLjEgOTcuNyUgODMuMSUpO1xuICAtLXNsLWNvbG9yLW9yYW5nZS0zMDA6IGhzbCgzMC43IDk3LjIlIDcyLjQlKTtcbiAgLS1zbC1jb2xvci1vcmFuZ2UtNDAwOiBoc2woMjcgOTYlIDYxJSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTUwMDogaHNsKDI0LjYgOTUlIDUzLjElKTtcbiAgLS1zbC1jb2xvci1vcmFuZ2UtNjAwOiBoc2woMjAuNSA5MC4yJSA0OC4yJSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTcwMDogaHNsKDE3LjUgODguMyUgNDAuNCUpO1xuICAtLXNsLWNvbG9yLW9yYW5nZS04MDA6IGhzbCgxNSA3OS4xJSAzMy43JSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTkwMDogaHNsKDE1LjMgNzQuNiUgMjcuOCUpO1xuICAtLXNsLWNvbG9yLW9yYW5nZS05NTA6IGhzbCgxNS4yIDY5LjElIDE5JSk7XG5cbiAgLS1zbC1jb2xvci1hbWJlci01MDogaHNsKDQ4IDEwMCUgOTYuMSUpO1xuICAtLXNsLWNvbG9yLWFtYmVyLTEwMDogaHNsKDQ4IDk2LjUlIDg4LjglKTtcbiAgLS1zbC1jb2xvci1hbWJlci0yMDA6IGhzbCg0OCA5Ni42JSA3Ni43JSk7XG4gIC0tc2wtY29sb3ItYW1iZXItMzAwOiBoc2woNDUuOSA5Ni43JSA2NC41JSk7XG4gIC0tc2wtY29sb3ItYW1iZXItNDAwOiBoc2woNDMuMyA5Ni40JSA1Ni4zJSk7XG4gIC0tc2wtY29sb3ItYW1iZXItNTAwOiBoc2woMzcuNyA5Mi4xJSA1MC4yJSk7XG4gIC0tc2wtY29sb3ItYW1iZXItNjAwOiBoc2woMzIuMSA5NC42JSA0My43JSk7XG4gIC0tc2wtY29sb3ItYW1iZXItNzAwOiBoc2woMjYgOTAuNSUgMzcuMSUpO1xuICAtLXNsLWNvbG9yLWFtYmVyLTgwMDogaHNsKDIyLjcgODIuNSUgMzEuNCUpO1xuICAtLXNsLWNvbG9yLWFtYmVyLTkwMDogaHNsKDIxLjcgNzcuOCUgMjYuNSUpO1xuICAtLXNsLWNvbG9yLWFtYmVyLTk1MDogaHNsKDIyLjkgNzQuMSUgMTYuNyUpO1xuXG4gIC0tc2wtY29sb3IteWVsbG93LTUwOiBoc2woNTQuNSA5MS43JSA5NS4zJSk7XG4gIC0tc2wtY29sb3IteWVsbG93LTEwMDogaHNsKDU0LjkgOTYuNyUgODglKTtcbiAgLS1zbC1jb2xvci15ZWxsb3ctMjAwOiBoc2woNTIuOCA5OC4zJSA3Ni45JSk7XG4gIC0tc2wtY29sb3IteWVsbG93LTMwMDogaHNsKDUwLjQgOTcuOCUgNjMuNSUpO1xuICAtLXNsLWNvbG9yLXllbGxvdy00MDA6IGhzbCg0Ny45IDk1LjglIDUzLjElKTtcbiAgLS1zbC1jb2xvci15ZWxsb3ctNTAwOiBoc2woNDUuNCA5My40JSA0Ny41JSk7XG4gIC0tc2wtY29sb3IteWVsbG93LTYwMDogaHNsKDQwLjYgOTYuMSUgNDAuNCUpO1xuICAtLXNsLWNvbG9yLXllbGxvdy03MDA6IGhzbCgzNS41IDkxLjclIDMyLjklKTtcbiAgLS1zbC1jb2xvci15ZWxsb3ctODAwOiBoc2woMzEuOCA4MSUgMjguOCUpO1xuICAtLXNsLWNvbG9yLXllbGxvdy05MDA6IGhzbCgyOC40IDcyLjUlIDI1LjclKTtcbiAgLS1zbC1jb2xvci15ZWxsb3ctOTUwOiBoc2woMzMuMSA2OSUgMTMuOSUpO1xuXG4gIC0tc2wtY29sb3ItbGltZS01MDogaHNsKDc4LjMgOTIlIDk1LjElKTtcbiAgLS1zbC1jb2xvci1saW1lLTEwMDogaHNsKDc5LjYgODkuMSUgODkuMiUpO1xuICAtLXNsLWNvbG9yLWxpbWUtMjAwOiBoc2woODAuOSA4OC41JSA3OS42JSk7XG4gIC0tc2wtY29sb3ItbGltZS0zMDA6IGhzbCg4MiA4NC41JSA2Ny4xJSk7XG4gIC0tc2wtY29sb3ItbGltZS00MDA6IGhzbCg4Mi43IDc4JSA1NS41JSk7XG4gIC0tc2wtY29sb3ItbGltZS01MDA6IGhzbCg4My43IDgwLjUlIDQ0LjMlKTtcbiAgLS1zbC1jb2xvci1saW1lLTYwMDogaHNsKDg0LjggODUuMiUgMzQuNSUpO1xuICAtLXNsLWNvbG9yLWxpbWUtNzAwOiBoc2woODUuOSA3OC40JSAyNy4zJSk7XG4gIC0tc2wtY29sb3ItbGltZS04MDA6IGhzbCg4Ni4zIDY5JSAyMi43JSk7XG4gIC0tc2wtY29sb3ItbGltZS05MDA6IGhzbCg4Ny42IDYxLjIlIDIwLjIlKTtcbiAgLS1zbC1jb2xvci1saW1lLTk1MDogaHNsKDg2LjUgNjAuNiUgMTMuOSUpO1xuXG4gIC0tc2wtY29sb3ItZ3JlZW4tNTA6IGhzbCgxMzguNSA3Ni41JSA5Ni43JSk7XG4gIC0tc2wtY29sb3ItZ3JlZW4tMTAwOiBoc2woMTQwLjYgODQuMiUgOTIuNSUpO1xuICAtLXNsLWNvbG9yLWdyZWVuLTIwMDogaHNsKDE0MSA3OC45JSA4NS4xJSk7XG4gIC0tc2wtY29sb3ItZ3JlZW4tMzAwOiBoc2woMTQxLjcgNzYuNiUgNzMuMSUpO1xuICAtLXNsLWNvbG9yLWdyZWVuLTQwMDogaHNsKDE0MS45IDY5LjIlIDU4JSk7XG4gIC0tc2wtY29sb3ItZ3JlZW4tNTAwOiBoc2woMTQyLjEgNzAuNiUgNDUuMyUpO1xuICAtLXNsLWNvbG9yLWdyZWVuLTYwMDogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTtcbiAgLS1zbC1jb2xvci1ncmVlbi03MDA6IGhzbCgxNDIuNCA3MS44JSAyOS4yJSk7XG4gIC0tc2wtY29sb3ItZ3JlZW4tODAwOiBoc2woMTQyLjggNjQuMiUgMjQuMSUpO1xuICAtLXNsLWNvbG9yLWdyZWVuLTkwMDogaHNsKDE0My44IDYxLjIlIDIwLjIlKTtcbiAgLS1zbC1jb2xvci1ncmVlbi05NTA6IGhzbCgxNDQuMyA2MC43JSAxMiUpO1xuXG4gIC0tc2wtY29sb3ItZW1lcmFsZC01MDogaHNsKDE1MS44IDgxJSA5NS45JSk7XG4gIC0tc2wtY29sb3ItZW1lcmFsZC0xMDA6IGhzbCgxNDkuMyA4MC40JSA5MCUpO1xuICAtLXNsLWNvbG9yLWVtZXJhbGQtMjAwOiBoc2woMTUyLjQgNzYlIDgwLjQlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTMwMDogaHNsKDE1Ni4yIDcxLjYlIDY2LjklKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTQwMDogaHNsKDE1OC4xIDY0LjQlIDUxLjYlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTUwMDogaHNsKDE2MC4xIDg0LjElIDM5LjQlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTYwMDogaHNsKDE2MS40IDkzLjUlIDMwLjQlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTcwMDogaHNsKDE2Mi45IDkzLjUlIDI0LjMlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTgwMDogaHNsKDE2My4xIDg4LjElIDE5LjglKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTkwMDogaHNsKDE2NC4yIDg1LjclIDE2LjUlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTk1MDogaHNsKDE2NC4zIDg3LjUlIDkuNCUpO1xuXG4gIC0tc2wtY29sb3ItdGVhbC01MDogaHNsKDE2Ni4yIDc2LjUlIDk2LjclKTtcbiAgLS1zbC1jb2xvci10ZWFsLTEwMDogaHNsKDE2Ny4yIDg1LjUlIDg5LjIlKTtcbiAgLS1zbC1jb2xvci10ZWFsLTIwMDogaHNsKDE2OC40IDgzLjglIDc4LjIlKTtcbiAgLS1zbC1jb2xvci10ZWFsLTMwMDogaHNsKDE3MC42IDc2LjklIDY0LjMlKTtcbiAgLS1zbC1jb2xvci10ZWFsLTQwMDogaHNsKDE3Mi41IDY2JSA1MC40JSk7XG4gIC0tc2wtY29sb3ItdGVhbC01MDA6IGhzbCgxNzMuNCA4MC40JSA0MCUpO1xuICAtLXNsLWNvbG9yLXRlYWwtNjAwOiBoc2woMTc0LjcgODMuOSUgMzEuNiUpO1xuICAtLXNsLWNvbG9yLXRlYWwtNzAwOiBoc2woMTc1LjMgNzcuNCUgMjYuMSUpO1xuICAtLXNsLWNvbG9yLXRlYWwtODAwOiBoc2woMTc2LjEgNjkuNCUgMjEuOCUpO1xuICAtLXNsLWNvbG9yLXRlYWwtOTAwOiBoc2woMTc1LjkgNjAuOCUgMTklKTtcbiAgLS1zbC1jb2xvci10ZWFsLTk1MDogaHNsKDE3Ni41IDU4LjYlIDExLjQlKTtcblxuICAtLXNsLWNvbG9yLWN5YW4tNTA6IGhzbCgxODMuMiAxMDAlIDk2LjMlKTtcbiAgLS1zbC1jb2xvci1jeWFuLTEwMDogaHNsKDE4NS4xIDk1LjklIDkwLjQlKTtcbiAgLS1zbC1jb2xvci1jeWFuLTIwMDogaHNsKDE4Ni4yIDkzLjUlIDgxLjglKTtcbiAgLS1zbC1jb2xvci1jeWFuLTMwMDogaHNsKDE4NyA5Mi40JSA2OSUpO1xuICAtLXNsLWNvbG9yLWN5YW4tNDAwOiBoc2woMTg3LjkgODUuNyUgNTMuMyUpO1xuICAtLXNsLWNvbG9yLWN5YW4tNTAwOiBoc2woMTg4LjcgOTQuNSUgNDIuNyUpO1xuICAtLXNsLWNvbG9yLWN5YW4tNjAwOiBoc2woMTkxLjYgOTEuNCUgMzYuNSUpO1xuICAtLXNsLWNvbG9yLWN5YW4tNzAwOiBoc2woMTkyLjkgODIuMyUgMzElKTtcbiAgLS1zbC1jb2xvci1jeWFuLTgwMDogaHNsKDE5NC40IDY5LjYlIDI3LjElKTtcbiAgLS1zbC1jb2xvci1jeWFuLTkwMDogaHNsKDE5Ni40IDYzLjYlIDIzLjclKTtcbiAgLS1zbC1jb2xvci1jeWFuLTk1MDogaHNsKDE5Ni44IDYxJSAxNi4xJSk7XG5cbiAgLS1zbC1jb2xvci1za3ktNTA6IGhzbCgyMDQgMTAwJSA5Ny4xJSk7XG4gIC0tc2wtY29sb3Itc2t5LTEwMDogaHNsKDIwNCA5My44JSA5My43JSk7XG4gIC0tc2wtY29sb3Itc2t5LTIwMDogaHNsKDIwMC42IDk0LjQlIDg2LjElKTtcbiAgLS1zbC1jb2xvci1za3ktMzAwOiBoc2woMTk5LjQgOTUuNSUgNzMuOSUpO1xuICAtLXNsLWNvbG9yLXNreS00MDA6IGhzbCgxOTguNCA5My4yJSA1OS42JSk7XG4gIC0tc2wtY29sb3Itc2t5LTUwMDogaHNsKDE5OC42IDg4LjclIDQ4LjQlKTtcbiAgLS1zbC1jb2xvci1za3ktNjAwOiBoc2woMjAwLjQgOTglIDM5LjQlKTtcbiAgLS1zbC1jb2xvci1za3ktNzAwOiBoc2woMjAxLjMgOTYuMyUgMzIuMiUpO1xuICAtLXNsLWNvbG9yLXNreS04MDA6IGhzbCgyMDEgOTAlIDI3LjUlKTtcbiAgLS1zbC1jb2xvci1za3ktOTAwOiBoc2woMjAyIDgwLjMlIDIzLjklKTtcbiAgLS1zbC1jb2xvci1za3ktOTUwOiBoc2woMjAyLjMgNzMuOCUgMTYuNSUpO1xuXG4gIC0tc2wtY29sb3ItYmx1ZS01MDogaHNsKDIxMy44IDEwMCUgOTYuOSUpO1xuICAtLXNsLWNvbG9yLWJsdWUtMTAwOiBoc2woMjE0LjMgOTQuNiUgOTIuNyUpO1xuICAtLXNsLWNvbG9yLWJsdWUtMjAwOiBoc2woMjEzLjMgOTYuOSUgODcuMyUpO1xuICAtLXNsLWNvbG9yLWJsdWUtMzAwOiBoc2woMjExLjcgOTYuNCUgNzguNCUpO1xuICAtLXNsLWNvbG9yLWJsdWUtNDAwOiBoc2woMjEzLjEgOTMuOSUgNjcuOCUpO1xuICAtLXNsLWNvbG9yLWJsdWUtNTAwOiBoc2woMjE3LjIgOTEuMiUgNTkuOCUpO1xuICAtLXNsLWNvbG9yLWJsdWUtNjAwOiBoc2woMjIxLjIgODMuMiUgNTMuMyUpO1xuICAtLXNsLWNvbG9yLWJsdWUtNzAwOiBoc2woMjI0LjMgNzYuMyUgNDglKTtcbiAgLS1zbC1jb2xvci1ibHVlLTgwMDogaHNsKDIyNS45IDcwLjclIDQwLjIlKTtcbiAgLS1zbC1jb2xvci1ibHVlLTkwMDogaHNsKDIyNC40IDY0LjMlIDMyLjklKTtcbiAgLS1zbC1jb2xvci1ibHVlLTk1MDogaHNsKDIyNi4yIDU1LjMlIDE4LjQlKTtcblxuICAtLXNsLWNvbG9yLWluZGlnby01MDogaHNsKDIyNS45IDEwMCUgOTYuNyUpO1xuICAtLXNsLWNvbG9yLWluZGlnby0xMDA6IGhzbCgyMjYuNSAxMDAlIDkzLjklKTtcbiAgLS1zbC1jb2xvci1pbmRpZ28tMjAwOiBoc2woMjI4IDk2LjUlIDg4LjglKTtcbiAgLS1zbC1jb2xvci1pbmRpZ28tMzAwOiBoc2woMjI5LjcgOTMuNSUgODEuOCUpO1xuICAtLXNsLWNvbG9yLWluZGlnby00MDA6IGhzbCgyMzQuNSA4OS41JSA3My45JSk7XG4gIC0tc2wtY29sb3ItaW5kaWdvLTUwMDogaHNsKDIzOC43IDgzLjUlIDY2LjclKTtcbiAgLS1zbC1jb2xvci1pbmRpZ28tNjAwOiBoc2woMjQzLjQgNzUuNCUgNTguNiUpO1xuICAtLXNsLWNvbG9yLWluZGlnby03MDA6IGhzbCgyNDQuNSA1Ny45JSA1MC42JSk7XG4gIC0tc2wtY29sb3ItaW5kaWdvLTgwMDogaHNsKDI0My43IDU0LjUlIDQxLjQlKTtcbiAgLS1zbC1jb2xvci1pbmRpZ28tOTAwOiBoc2woMjQyLjIgNDcuNCUgMzQuMyUpO1xuICAtLXNsLWNvbG9yLWluZGlnby05NTA6IGhzbCgyNDMuNSA0My42JSAyMi45JSk7XG5cbiAgLS1zbC1jb2xvci12aW9sZXQtNTA6IGhzbCgyNTAgMTAwJSA5Ny42JSk7XG4gIC0tc2wtY29sb3ItdmlvbGV0LTEwMDogaHNsKDI1MS40IDkxLjMlIDk1LjUlKTtcbiAgLS1zbC1jb2xvci12aW9sZXQtMjAwOiBoc2woMjUwLjUgOTUuMiUgOTEuOCUpO1xuICAtLXNsLWNvbG9yLXZpb2xldC0zMDA6IGhzbCgyNTIuNSA5NC43JSA4NS4xJSk7XG4gIC0tc2wtY29sb3ItdmlvbGV0LTQwMDogaHNsKDI1NS4xIDkxLjclIDc2LjMlKTtcbiAgLS1zbC1jb2xvci12aW9sZXQtNTAwOiBoc2woMjU4LjMgODkuNSUgNjYuMyUpO1xuICAtLXNsLWNvbG9yLXZpb2xldC02MDA6IGhzbCgyNjIuMSA4My4zJSA1Ny44JSk7XG4gIC0tc2wtY29sb3ItdmlvbGV0LTcwMDogaHNsKDI2My40IDcwJSA1MC40JSk7XG4gIC0tc2wtY29sb3ItdmlvbGV0LTgwMDogaHNsKDI2My40IDY5LjMlIDQyLjIlKTtcbiAgLS1zbC1jb2xvci12aW9sZXQtOTAwOiBoc2woMjYzLjUgNjcuNCUgMzQuOSUpO1xuICAtLXNsLWNvbG9yLXZpb2xldC05NTA6IGhzbCgyNjUuMSA2MS41JSAyMS40JSk7XG5cbiAgLS1zbC1jb2xvci1wdXJwbGUtNTA6IGhzbCgyNzAgMTAwJSA5OCUpO1xuICAtLXNsLWNvbG9yLXB1cnBsZS0xMDA6IGhzbCgyNjguNyAxMDAlIDk1LjUlKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtMjAwOiBoc2woMjY4LjYgMTAwJSA5MS44JSk7XG4gIC0tc2wtY29sb3ItcHVycGxlLTMwMDogaHNsKDI2OS4yIDk3LjQlIDg1LjElKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtNDAwOiBoc2woMjcwIDk1LjIlIDc1LjMlKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtNTAwOiBoc2woMjcwLjcgOTElIDY1LjElKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtNjAwOiBoc2woMjcxLjUgODEuMyUgNTUuOSUpO1xuICAtLXNsLWNvbG9yLXB1cnBsZS03MDA6IGhzbCgyNzIuMSA3MS43JSA0Ny4xJSk7XG4gIC0tc2wtY29sb3ItcHVycGxlLTgwMDogaHNsKDI3Mi45IDY3LjIlIDM5LjQlKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtOTAwOiBoc2woMjczLjYgNjUuNiUgMzIlKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtOTUwOiBoc2woMjc2IDU5LjUlIDE2LjUlKTtcblxuICAtLXNsLWNvbG9yLWZ1Y2hzaWEtNTA6IGhzbCgyODkuMSAxMDAlIDk3LjglKTtcbiAgLS1zbC1jb2xvci1mdWNoc2lhLTEwMDogaHNsKDI4NyAxMDAlIDk1LjUlKTtcbiAgLS1zbC1jb2xvci1mdWNoc2lhLTIwMDogaHNsKDI4OC4zIDk1LjglIDkwLjYlKTtcbiAgLS1zbC1jb2xvci1mdWNoc2lhLTMwMDogaHNsKDI5MS4xIDkzLjElIDgyLjklKTtcbiAgLS1zbC1jb2xvci1mdWNoc2lhLTQwMDogaHNsKDI5MiA5MS40JSA3Mi41JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS01MDA6IGhzbCgyOTIuMiA4NC4xJSA2MC42JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS02MDA6IGhzbCgyOTMuNCA2OS41JSA0OC44JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS03MDA6IGhzbCgyOTQuNyA3Mi40JSAzOS44JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS04MDA6IGhzbCgyOTUuNCA3MC4yJSAzMi45JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS05MDA6IGhzbCgyOTYuNyA2My42JSAyOCUpO1xuICAtLXNsLWNvbG9yLWZ1Y2hzaWEtOTUwOiBoc2woMjk3LjEgNTYuOCUgMTQuNSUpO1xuXG4gIC0tc2wtY29sb3ItcGluay01MDogaHNsKDMyNy4zIDczLjMlIDk3LjElKTtcbiAgLS1zbC1jb2xvci1waW5rLTEwMDogaHNsKDMyNS43IDc3LjglIDk0LjclKTtcbiAgLS1zbC1jb2xvci1waW5rLTIwMDogaHNsKDMyNS45IDg0LjYlIDg5LjglKTtcbiAgLS1zbC1jb2xvci1waW5rLTMwMDogaHNsKDMyNy40IDg3LjElIDgxLjglKTtcbiAgLS1zbC1jb2xvci1waW5rLTQwMDogaHNsKDMyOC42IDg1LjUlIDcwLjIlKTtcbiAgLS1zbC1jb2xvci1waW5rLTUwMDogaHNsKDMzMC40IDgxLjIlIDYwLjQlKTtcbiAgLS1zbC1jb2xvci1waW5rLTYwMDogaHNsKDMzMy4zIDcxLjQlIDUwLjYlKTtcbiAgLS1zbC1jb2xvci1waW5rLTcwMDogaHNsKDMzNS4xIDc3LjYlIDQyJSk7XG4gIC0tc2wtY29sb3ItcGluay04MDA6IGhzbCgzMzUuOCA3NC40JSAzNS4zJSk7XG4gIC0tc2wtY29sb3ItcGluay05MDA6IGhzbCgzMzUuOSA2OSUgMzAuNCUpO1xuICAtLXNsLWNvbG9yLXBpbmstOTUwOiBoc2woMzM2LjIgNjUuNCUgMTUuOSUpO1xuXG4gIC0tc2wtY29sb3Itcm9zZS01MDogaHNsKDM1NS43IDEwMCUgOTcuMyUpO1xuICAtLXNsLWNvbG9yLXJvc2UtMTAwOiBoc2woMzU1LjYgMTAwJSA5NC43JSk7XG4gIC0tc2wtY29sb3Itcm9zZS0yMDA6IGhzbCgzNTIuNyA5Ni4xJSA5MCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtMzAwOiBoc2woMzUyLjYgOTUuNyUgODEuOCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtNDAwOiBoc2woMzUxLjMgOTQuNSUgNzEuNCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtNTAwOiBoc2woMzQ5LjcgODkuMiUgNjAuMiUpO1xuICAtLXNsLWNvbG9yLXJvc2UtNjAwOiBoc2woMzQ2LjggNzcuMiUgNDkuOCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtNzAwOiBoc2woMzQ1LjMgODIuNyUgNDAuOCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtODAwOiBoc2woMzQzLjQgNzkuNyUgMzQuNyUpO1xuICAtLXNsLWNvbG9yLXJvc2UtOTAwOiBoc2woMzQxLjUgNzUuNSUgMzAuNCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtOTUwOiBoc2woMzQxLjMgNzAuMSUgMTcuMSUpO1xuXG4gIC0tc2wtY29sb3ItcHJpbWFyeS01MDogdmFyKC0tc2wtY29sb3Itc2t5LTUwKTtcbiAgLS1zbC1jb2xvci1wcmltYXJ5LTEwMDogdmFyKC0tc2wtY29sb3Itc2t5LTEwMCk7XG4gIC0tc2wtY29sb3ItcHJpbWFyeS0yMDA6IHZhcigtLXNsLWNvbG9yLXNreS0yMDApO1xuICAtLXNsLWNvbG9yLXByaW1hcnktMzAwOiB2YXIoLS1zbC1jb2xvci1za3ktMzAwKTtcbiAgLS1zbC1jb2xvci1wcmltYXJ5LTQwMDogdmFyKC0tc2wtY29sb3Itc2t5LTQwMCk7XG4gIC0tc2wtY29sb3ItcHJpbWFyeS01MDA6IHZhcigtLXNsLWNvbG9yLXNreS01MDApO1xuICAtLXNsLWNvbG9yLXByaW1hcnktNjAwOiB2YXIoLS1zbC1jb2xvci1za3ktNjAwKTtcbiAgLS1zbC1jb2xvci1wcmltYXJ5LTcwMDogdmFyKC0tc2wtY29sb3Itc2t5LTcwMCk7XG4gIC0tc2wtY29sb3ItcHJpbWFyeS04MDA6IHZhcigtLXNsLWNvbG9yLXNreS04MDApO1xuICAtLXNsLWNvbG9yLXByaW1hcnktOTAwOiB2YXIoLS1zbC1jb2xvci1za3ktOTAwKTtcbiAgLS1zbC1jb2xvci1wcmltYXJ5LTk1MDogdmFyKC0tc2wtY29sb3Itc2t5LTk1MCk7XG5cbiAgLS1zbC1jb2xvci1zdWNjZXNzLTUwOiB2YXIoLS1zbC1jb2xvci1ncmVlbi01MCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy0xMDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTEwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy0yMDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTIwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy0zMDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTMwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy00MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTQwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy01MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTUwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy02MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTYwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy03MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTcwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy04MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTgwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy05MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTkwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy05NTA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTk1MCk7XG5cbiAgLS1zbC1jb2xvci13YXJuaW5nLTUwOiB2YXIoLS1zbC1jb2xvci1hbWJlci01MCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy0xMDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTEwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy0yMDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTIwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy0zMDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTMwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy00MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTQwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy01MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTUwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy02MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTYwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy03MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTcwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy04MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTgwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy05MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTkwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy05NTA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTk1MCk7XG5cbiAgLS1zbC1jb2xvci1kYW5nZXItNTA6IHZhcigtLXNsLWNvbG9yLXJlZC01MCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTEwMDogdmFyKC0tc2wtY29sb3ItcmVkLTEwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTIwMDogdmFyKC0tc2wtY29sb3ItcmVkLTIwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTMwMDogdmFyKC0tc2wtY29sb3ItcmVkLTMwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTQwMDogdmFyKC0tc2wtY29sb3ItcmVkLTQwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTUwMDogdmFyKC0tc2wtY29sb3ItcmVkLTUwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTYwMDogdmFyKC0tc2wtY29sb3ItcmVkLTYwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTcwMDogdmFyKC0tc2wtY29sb3ItcmVkLTcwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTgwMDogdmFyKC0tc2wtY29sb3ItcmVkLTgwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTkwMDogdmFyKC0tc2wtY29sb3ItcmVkLTkwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTk1MDogdmFyKC0tc2wtY29sb3ItcmVkLTk1MCk7XG5cbiAgLS1zbC1jb2xvci1uZXV0cmFsLTUwOiB2YXIoLS1zbC1jb2xvci1ncmF5LTUwKTtcbiAgLS1zbC1jb2xvci1uZXV0cmFsLTEwMDogdmFyKC0tc2wtY29sb3ItZ3JheS0xMDApO1xuICAtLXNsLWNvbG9yLW5ldXRyYWwtMjAwOiB2YXIoLS1zbC1jb2xvci1ncmF5LTIwMCk7XG4gIC0tc2wtY29sb3ItbmV1dHJhbC0zMDA6IHZhcigtLXNsLWNvbG9yLWdyYXktMzAwKTtcbiAgLS1zbC1jb2xvci1uZXV0cmFsLTQwMDogdmFyKC0tc2wtY29sb3ItZ3JheS00MDApO1xuICAtLXNsLWNvbG9yLW5ldXRyYWwtNTAwOiB2YXIoLS1zbC1jb2xvci1ncmF5LTUwMCk7XG4gIC0tc2wtY29sb3ItbmV1dHJhbC02MDA6IHZhcigtLXNsLWNvbG9yLWdyYXktNjAwKTtcbiAgLS1zbC1jb2xvci1uZXV0cmFsLTcwMDogdmFyKC0tc2wtY29sb3ItZ3JheS03MDApO1xuICAtLXNsLWNvbG9yLW5ldXRyYWwtODAwOiB2YXIoLS1zbC1jb2xvci1ncmF5LTgwMCk7XG4gIC0tc2wtY29sb3ItbmV1dHJhbC05MDA6IHZhcigtLXNsLWNvbG9yLWdyYXktOTAwKTtcbiAgLS1zbC1jb2xvci1uZXV0cmFsLTk1MDogdmFyKC0tc2wtY29sb3ItZ3JheS05NTApO1xuXG4gIC0tc2wtY29sb3ItbmV1dHJhbC0wOiBoc2woMCwgMCUsIDEwMCUpO1xuICAtLXNsLWNvbG9yLW5ldXRyYWwtMTAwMDogaHNsKDAsIDAlLCAwJSk7XG5cbiAgLS1zbC1ib3JkZXItcmFkaXVzLXNtYWxsOiAwLjE4NzVyZW07XG4gIC0tc2wtYm9yZGVyLXJhZGl1cy1tZWRpdW06IDAuMjVyZW07XG4gIC0tc2wtYm9yZGVyLXJhZGl1cy1sYXJnZTogMC41cmVtO1xuICAtLXNsLWJvcmRlci1yYWRpdXMteC1sYXJnZTogMXJlbTtcblxuICAtLXNsLWJvcmRlci1yYWRpdXMtY2lyY2xlOiA1MCU7XG4gIC0tc2wtYm9yZGVyLXJhZGl1cy1waWxsOiA5OTk5cHg7XG5cbiAgLS1zbC1zaGFkb3cteC1zbWFsbDogMCAxcHggMnB4IGhzbCgyNDAgMy44JSA0Ni4xJSAvIDYlKTtcbiAgLS1zbC1zaGFkb3ctc21hbGw6IDAgMXB4IDJweCBoc2woMjQwIDMuOCUgNDYuMSUgLyAxMiUpO1xuICAtLXNsLXNoYWRvdy1tZWRpdW06IDAgMnB4IDRweCBoc2woMjQwIDMuOCUgNDYuMSUgLyAxMiUpO1xuICAtLXNsLXNoYWRvdy1sYXJnZTogMCAycHggOHB4IGhzbCgyNDAgMy44JSA0Ni4xJSAvIDEyJSk7XG4gIC0tc2wtc2hhZG93LXgtbGFyZ2U6IDAgNHB4IDE2cHggaHNsKDI0MCAzLjglIDQ2LjElIC8gMTIlKTtcblxuICAtLXNsLXNwYWNpbmctM3gtc21hbGw6IDAuMTI1cmVtO1xuICAtLXNsLXNwYWNpbmctMngtc21hbGw6IDAuMjVyZW07XG4gIC0tc2wtc3BhY2luZy14LXNtYWxsOiAwLjVyZW07XG4gIC0tc2wtc3BhY2luZy1zbWFsbDogMC43NXJlbTtcbiAgLS1zbC1zcGFjaW5nLW1lZGl1bTogMXJlbTtcbiAgLS1zbC1zcGFjaW5nLWxhcmdlOiAxLjI1cmVtO1xuICAtLXNsLXNwYWNpbmcteC1sYXJnZTogMS43NXJlbTtcbiAgLS1zbC1zcGFjaW5nLTJ4LWxhcmdlOiAyLjI1cmVtO1xuICAtLXNsLXNwYWNpbmctM3gtbGFyZ2U6IDNyZW07XG4gIC0tc2wtc3BhY2luZy00eC1sYXJnZTogNC41cmVtO1xuXG4gIC0tc2wtdHJhbnNpdGlvbi14LXNsb3c6IDEwMDBtcztcbiAgLS1zbC10cmFuc2l0aW9uLXNsb3c6IDUwMG1zO1xuICAtLXNsLXRyYW5zaXRpb24tbWVkaXVtOiAyNTBtcztcbiAgLS1zbC10cmFuc2l0aW9uLWZhc3Q6IDE1MG1zO1xuICAtLXNsLXRyYW5zaXRpb24teC1mYXN0OiA1MG1zO1xuXG4gIC0tc2wtZm9udC1tb25vOiBTRk1vbm8tUmVndWxhciwgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCBNZW5sbywgbW9ub3NwYWNlO1xuICAtLXNsLWZvbnQtc2FuczogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sXG4gICAgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgIkFwcGxlIENvbG9yIEVtb2ppIiwgIlNlZ29lIFVJIEVtb2ppIixcbiAgICAiU2Vnb2UgVUkgU3ltYm9sIjtcbiAgLS1zbC1mb250LXNlcmlmOiBHZW9yZ2lhLCAiVGltZXMgTmV3IFJvbWFuIiwgc2VyaWY7XG5cbiAgLS1zbC1mb250LXNpemUtMngtc21hbGw6IDAuNjI1cmVtO1xuICAtLXNsLWZvbnQtc2l6ZS14LXNtYWxsOiAwLjc1cmVtO1xuICAtLXNsLWZvbnQtc2l6ZS1zbWFsbDogMC44NzVyZW07XG4gIC0tc2wtZm9udC1zaXplLW1lZGl1bTogMXJlbTtcbiAgLS1zbC1mb250LXNpemUtbGFyZ2U6IDEuMjVyZW07XG4gIC0tc2wtZm9udC1zaXplLXgtbGFyZ2U6IDEuNXJlbTtcbiAgLS1zbC1mb250LXNpemUtMngtbGFyZ2U6IDIuMjVyZW07XG4gIC0tc2wtZm9udC1zaXplLTN4LWxhcmdlOiAzcmVtO1xuICAtLXNsLWZvbnQtc2l6ZS00eC1sYXJnZTogNC41cmVtO1xuXG4gIC0tc2wtZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDtcbiAgLS1zbC1mb250LXdlaWdodC1ub3JtYWw6IDQwMDtcbiAgLS1zbC1mb250LXdlaWdodC1zZW1pYm9sZDogNTAwO1xuICAtLXNsLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcblxuICAtLXNsLWxldHRlci1zcGFjaW5nLWRlbnNlcjogLTAuMDNlbTtcbiAgLS1zbC1sZXR0ZXItc3BhY2luZy1kZW5zZTogLTAuMDE1ZW07XG4gIC0tc2wtbGV0dGVyLXNwYWNpbmctbm9ybWFsOiBub3JtYWw7XG4gIC0tc2wtbGV0dGVyLXNwYWNpbmctbG9vc2U6IDAuMDc1ZW07XG4gIC0tc2wtbGV0dGVyLXNwYWNpbmctbG9vc2VyOiAwLjE1ZW07XG5cbiAgLS1zbC1saW5lLWhlaWdodC1kZW5zZXI6IDE7XG4gIC0tc2wtbGluZS1oZWlnaHQtZGVuc2U6IDEuNDtcbiAgLS1zbC1saW5lLWhlaWdodC1ub3JtYWw6IDEuODtcbiAgLS1zbC1saW5lLWhlaWdodC1sb29zZTogMi4yO1xuICAtLXNsLWxpbmUtaGVpZ2h0LWxvb3NlcjogMi42O1xuXG4gIC0tc2wtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApO1xuICAtLXNsLWZvY3VzLXJpbmctc3R5bGU6IHNvbGlkO1xuICAtLXNsLWZvY3VzLXJpbmctd2lkdGg6IDNweDtcbiAgLS1zbC1mb2N1cy1yaW5nOiB2YXIoLS1zbC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1zbC1mb2N1cy1yaW5nLXdpZHRoKVxuICAgIHZhcigtLXNsLWZvY3VzLXJpbmctY29sb3IpO1xuICAtLXNsLWZvY3VzLXJpbmctb2Zmc2V0OiAxcHg7XG5cbiAgLS1zbC1idXR0b24tZm9udC1zaXplLXNtYWxsOiB2YXIoLS1zbC1mb250LXNpemUteC1zbWFsbCk7XG4gIC0tc2wtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW06IHZhcigtLXNsLWZvbnQtc2l6ZS1zbWFsbCk7XG4gIC0tc2wtYnV0dG9uLWZvbnQtc2l6ZS1sYXJnZTogdmFyKC0tc2wtZm9udC1zaXplLW1lZGl1bSk7XG5cbiAgLS1zbC1pbnB1dC1oZWlnaHQtc21hbGw6IDEuODc1cmVtO1xuICAtLXNsLWlucHV0LWhlaWdodC1tZWRpdW06IDIuNXJlbTtcbiAgLS1zbC1pbnB1dC1oZWlnaHQtbGFyZ2U6IDMuMTI1cmVtO1xuXG4gIC0tc2wtaW5wdXQtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTtcbiAgLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yLWZvY3VzOiB2YXIoLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTEwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTMwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTQwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTUwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTMwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG4gIC0tc2wtaW5wdXQtcmVxdWlyZWQtY29udGVudDogIioiO1xuICAtLXNsLWlucHV0LXJlcXVpcmVkLWNvbnRlbnQtb2Zmc2V0OiAtMnB4O1xuICAtLXNsLWlucHV0LXJlcXVpcmVkLWNvbnRlbnQtY29sb3I6IHZhcigtLXNsLWlucHV0LWxhYmVsLWNvbG9yKTtcblxuICAtLXNsLWlucHV0LWJvcmRlci1yYWRpdXMtc21hbGw6IHZhcigtLXNsLWJvcmRlci1yYWRpdXMtbWVkaXVtKTtcbiAgLS1zbC1pbnB1dC1ib3JkZXItcmFkaXVzLW1lZGl1bTogdmFyKC0tc2wtYm9yZGVyLXJhZGl1cy1tZWRpdW0pO1xuICAtLXNsLWlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2U6IHZhcigtLXNsLWJvcmRlci1yYWRpdXMtbWVkaXVtKTtcblxuICAtLXNsLWlucHV0LWZvbnQtZmFtaWx5OiB2YXIoLS1zbC1mb250LXNhbnMpO1xuICAtLXNsLWlucHV0LWZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpO1xuICAtLXNsLWlucHV0LWZvbnQtc2l6ZS1zbWFsbDogdmFyKC0tc2wtZm9udC1zaXplLXNtYWxsKTtcbiAgLS1zbC1pbnB1dC1mb250LXNpemUtbWVkaXVtOiB2YXIoLS1zbC1mb250LXNpemUtbWVkaXVtKTtcbiAgLS1zbC1pbnB1dC1mb250LXNpemUtbGFyZ2U6IHZhcigtLXNsLWZvbnQtc2l6ZS1sYXJnZSk7XG4gIC0tc2wtaW5wdXQtbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNsLWxldHRlci1zcGFjaW5nLW5vcm1hbCk7XG5cbiAgLS1zbC1pbnB1dC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC03MDApO1xuICAtLXNsLWlucHV0LWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7XG4gIC0tc2wtaW5wdXQtY29sb3ItZm9jdXM6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNzAwKTtcbiAgLS1zbC1pbnB1dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC05MDApO1xuICAtLXNsLWlucHV0LWljb24tY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNTAwKTtcbiAgLS1zbC1pbnB1dC1pY29uLWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTYwMCk7XG4gIC0tc2wtaW5wdXQtaWNvbi1jb2xvci1mb2N1czogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC02MDApO1xuICAtLXNsLWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTUwMCk7XG4gIC0tc2wtaW5wdXQtcGxhY2Vob2xkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTtcbiAgLS1zbC1pbnB1dC1zcGFjaW5nLXNtYWxsOiB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTtcbiAgLS1zbC1pbnB1dC1zcGFjaW5nLW1lZGl1bTogdmFyKC0tc2wtc3BhY2luZy1tZWRpdW0pO1xuICAtLXNsLWlucHV0LXNwYWNpbmctbGFyZ2U6IHZhcigtLXNsLXNwYWNpbmctbGFyZ2UpO1xuXG4gIC0tc2wtaW5wdXQtZm9jdXMtcmluZy1jb2xvcjogaHNsKDE5OC42IDg4LjclIDQ4LjQlIC8gNDAlKTtcbiAgLS1zbC1pbnB1dC1mb2N1cy1yaW5nLW9mZnNldDogMDtcblxuICAtLXNsLWlucHV0LWZpbGxlZC1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTEwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWJhY2tncm91bmQtY29sb3ItaG92ZXI6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMTAwKTtcbiAgLS1zbC1pbnB1dC1maWxsZWQtYmFja2dyb3VuZC1jb2xvci1mb2N1czogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0xMDApO1xuICAtLXNsLWlucHV0LWZpbGxlZC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTEwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTgwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTgwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWNvbG9yLWZvY3VzOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTgwMCk7XG5cbiAgLS1zbC1pbnB1dC1sYWJlbC1mb250LXNpemUtc21hbGw6IHZhcigtLXNsLWZvbnQtc2l6ZS1zbWFsbCk7XG4gIC0tc2wtaW5wdXQtbGFiZWwtZm9udC1zaXplLW1lZGl1bTogdmFyKC0tc2wtZm9udC1zaXplLW1lZGl1bSk7XG4gIC0tc2wtaW5wdXQtbGFiZWwtZm9udC1zaXplLWxhcmdlOiB2YXIoLS1zbC1mb250LXNpemUtbGFyZ2UpO1xuICAtLXNsLWlucHV0LWxhYmVsLWNvbG9yOiBpbmhlcml0O1xuXG4gIC0tc2wtaW5wdXQtaGVscC10ZXh0LWZvbnQtc2l6ZS1zbWFsbDogdmFyKC0tc2wtZm9udC1zaXplLXgtc21hbGwpO1xuICAtLXNsLWlucHV0LWhlbHAtdGV4dC1mb250LXNpemUtbWVkaXVtOiB2YXIoLS1zbC1mb250LXNpemUtc21hbGwpO1xuICAtLXNsLWlucHV0LWhlbHAtdGV4dC1mb250LXNpemUtbGFyZ2U6IHZhcigtLXNsLWZvbnQtc2l6ZS1tZWRpdW0pO1xuICAtLXNsLWlucHV0LWhlbHAtdGV4dC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC01MDApO1xuXG4gIC0tc2wtdG9nZ2xlLXNpemUtc21hbGw6IDAuODc1cmVtO1xuICAtLXNsLXRvZ2dsZS1zaXplLW1lZGl1bTogMS4xMjVyZW07XG4gIC0tc2wtdG9nZ2xlLXNpemUtbGFyZ2U6IDEuMzc1cmVtO1xuXG4gIC0tc2wtb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yOiBoc2woMjQwIDMuOCUgNDYuMSUgLyAzMyUpO1xuXG4gIC0tc2wtcGFuZWwtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTtcbiAgLS1zbC1wYW5lbC1ib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMjAwKTtcbiAgLS1zbC1wYW5lbC1ib3JkZXItd2lkdGg6IDFweDtcblxuICAtLXNsLXRvb2x0aXAtYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtYm9yZGVyLXJhZGl1cy1tZWRpdW0pO1xuICAtLXNsLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC04MDApO1xuICAtLXNsLXRvb2x0aXAtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7XG4gIC0tc2wtdG9vbHRpcC1mb250LWZhbWlseTogdmFyKC0tc2wtZm9udC1zYW5zKTtcbiAgLS1zbC10b29sdGlwLWZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpO1xuICAtLXNsLXRvb2x0aXAtZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtc21hbGwpO1xuICAtLXNsLXRvb2x0aXAtbGluZS1oZWlnaHQ6IHZhcigtLXNsLWxpbmUtaGVpZ2h0LWRlbnNlKTtcbiAgLS1zbC10b29sdGlwLXBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmctMngtc21hbGwpIHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7XG4gIC0tc2wtdG9vbHRpcC1hcnJvdy1zaXplOiA2cHg7XG5cbiAgLS1zbC16LWluZGV4LWRyYXdlcjogNzAwO1xuICAtLXNsLXotaW5kZXgtZGlhbG9nOiA4MDA7XG4gIC0tc2wtei1pbmRleC1kcm9wZG93bjogOTAwO1xuICAtLXNsLXotaW5kZXgtdG9hc3Q6IDk1MDtcbiAgLS1zbC16LWluZGV4LXRvb2x0aXA6IDEwMDA7XG59XG5cbkBzdXBwb3J0cyAoc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlKSB7XG4gIC5zbC1zY3JvbGwtbG9jayB7XG4gICAgc2Nyb2xsYmFyLWd1dHRlcjogdmFyKC0tc2wtc2Nyb2xsLWxvY2stZ3V0dGVyKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnNsLXNjcm9sbC1sb2NrIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxufVxuXG5Ac3VwcG9ydHMgbm90IChzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGUpIHtcbiAgLnNsLXNjcm9sbC1sb2NrIGJvZHkge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNsLXNjcm9sbC1sb2NrLXNpemUpICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zbC10b2FzdC1zdGFjayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBpbnNldC1pbmxpbmUtZW5kOiAwO1xuICB6LWluZGV4OiB2YXIoLS1zbC16LWluZGV4LXRvYXN0KTtcbiAgd2lkdGg6IDI4cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uc2wtdG9hc3Qtc3RhY2sgc2wtYWxlcnQge1xuICBtYXJnaW46IHZhcigtLXNsLXNwYWNpbmctbWVkaXVtKTtcbn1cblxuLnNsLXRvYXN0LXN0YWNrIHNsLWFsZXJ0OjpwYXJ0KGJhc2UpIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2wtc2hhZG93LWxhcmdlKTtcbn1cbicsIiJdKTtjb25zdCByPW59LDk4OTooZSx0LGkpPT57InVzZSBzdHJpY3QiO2kuZCh0LHtBOigpPT5hfSk7dmFyIG89aSgzMTQpLG49aS5uKG8pLHI9aSg0OTUpLHM9bigpKChmdW5jdGlvbihlKXtyZXR1cm4gZVsxXX0pKTtzLmkoci5BKSxzLnB1c2goW2UuaWQsJy5pbnB1dDo6cGxhY2Vob2xkZXIsLnRleHRhcmVhOjpwbGFjZWhvbGRlciwuc2VsZWN0IHNlbGVjdDo6cGxhY2Vob2xkZXJ7b3BhY2l0eToxfWE6Zm9jdXN7Y29sb3I6IzM2MzYzNn0uZmlsZS1sYWJlbDpmb2N1cy13aXRoaW4gLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtjb2xvcjojMzYzNjM2fS5idXR0b24uaXMtcHJpbWFyeTpmb2N1cywuYnV0dG9uLmlzLXByaW1hcnk6aG92ZXIsLmJ1dHRvbi5pcy1wcmltYXJ5OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTggIWltcG9ydGFudDtjb2xvcjojZmZmICFpbXBvcnRhbnR9LnJlcGxheS1iYXIgLmJ1dHRvbnttYXJnaW46MCAxcHh9LnJlcGxheS1iYXIgLmJ1dHRvbjpmb2N1c3tib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDtvdXRsaW5lOjFweCBkb3R0ZWQgIzQ4NzZmZjtvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBhdXRvIDFweH0uc2tpcC1saW5re2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O3dpZHRoOjFweDt3b3JkLXdyYXA6bm9ybWFsICFpbXBvcnRhbnR9LnNraXAtbGluazpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzowIDAgMnB4IDJweCByZ2JhKDAsMCwwLC42KTtjbGlwOmF1dG8gIWltcG9ydGFudDtjbGlwLXBhdGg6bm9uZTtjb2xvcjojZmZmO2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MS4zZW07Zm9udC13ZWlnaHQ6Ym9sZDtoZWlnaHQ6YXV0bztsZWZ0OjVweDtsaW5lLWhlaWdodDpub3JtYWw7cGFkZGluZzoxNXB4IDIzcHggMTRweDt0ZXh0LWRlY29yYXRpb246bm9uZTt0b3A6NXB4O3dpZHRoOmF1dG87ei1pbmRleDoxMDAwMDB9Lm1haW4tc2Nyb2xse2ZsZXg6MTtzY3JvbGwtYmVoYXZpb3I6c21vb3RoO292ZXJmbG93LXk6YXV0bzttYXgtaGVpZ2h0OjEwMHZoO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3cteDpoaWRkZW59LyohIGJ1bG1hLmlvIHYwLjkuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9qZ3RobXMvYnVsbWEgKi8ucGFnaW5hdGlvbi1wcmV2aW91cywucGFnaW5hdGlvbi1uZXh0LC5wYWdpbmF0aW9uLWxpbmssLnBhZ2luYXRpb24tZWxsaXBzaXMsLmZpbGUtY3RhLC5maWxlLW5hbWUsLnNlbGVjdCBzZWxlY3QsLnRleHRhcmVhLC5pbnB1dCwuYnV0dG9uey1tb3otYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNoYWRvdzpub25lO2Rpc3BsYXk6aW5saW5lLWZsZXg7Zm9udC1zaXplOjFyZW07aGVpZ2h0OjIuNWVtO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2xpbmUtaGVpZ2h0OjEuNTtwYWRkaW5nLWJvdHRvbTpjYWxjKC41ZW0gLSAxcHgpO3BhZGRpbmctbGVmdDpjYWxjKC43NWVtIC0gMXB4KTtwYWRkaW5nLXJpZ2h0OmNhbGMoLjc1ZW0gLSAxcHgpO3BhZGRpbmctdG9wOmNhbGMoLjVlbSAtIDFweCk7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246dG9wfS5wYWdpbmF0aW9uLXByZXZpb3VzOmZvY3VzLC5wYWdpbmF0aW9uLW5leHQ6Zm9jdXMsLnBhZ2luYXRpb24tbGluazpmb2N1cywucGFnaW5hdGlvbi1lbGxpcHNpczpmb2N1cywuZmlsZS1jdGE6Zm9jdXMsLmZpbGUtbmFtZTpmb2N1cywuc2VsZWN0IHNlbGVjdDpmb2N1cywudGV4dGFyZWE6Zm9jdXMsLmlucHV0OmZvY3VzLC5idXR0b246Zm9jdXMsLmlzLWZvY3VzZWQucGFnaW5hdGlvbi1wcmV2aW91cywuaXMtZm9jdXNlZC5wYWdpbmF0aW9uLW5leHQsLmlzLWZvY3VzZWQucGFnaW5hdGlvbi1saW5rLC5pcy1mb2N1c2VkLnBhZ2luYXRpb24tZWxsaXBzaXMsLmlzLWZvY3VzZWQuZmlsZS1jdGEsLmlzLWZvY3VzZWQuZmlsZS1uYW1lLC5zZWxlY3Qgc2VsZWN0LmlzLWZvY3VzZWQsLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWZvY3VzZWQuaW5wdXQsLmlzLWZvY3VzZWQuYnV0dG9uLC5wYWdpbmF0aW9uLXByZXZpb3VzOmFjdGl2ZSwucGFnaW5hdGlvbi1uZXh0OmFjdGl2ZSwucGFnaW5hdGlvbi1saW5rOmFjdGl2ZSwucGFnaW5hdGlvbi1lbGxpcHNpczphY3RpdmUsLmZpbGUtY3RhOmFjdGl2ZSwuZmlsZS1uYW1lOmFjdGl2ZSwuc2VsZWN0IHNlbGVjdDphY3RpdmUsLnRleHRhcmVhOmFjdGl2ZSwuaW5wdXQ6YWN0aXZlLC5idXR0b246YWN0aXZlLC5pcy1hY3RpdmUucGFnaW5hdGlvbi1wcmV2aW91cywuaXMtYWN0aXZlLnBhZ2luYXRpb24tbmV4dCwuaXMtYWN0aXZlLnBhZ2luYXRpb24tbGluaywuaXMtYWN0aXZlLnBhZ2luYXRpb24tZWxsaXBzaXMsLmlzLWFjdGl2ZS5maWxlLWN0YSwuaXMtYWN0aXZlLmZpbGUtbmFtZSwuc2VsZWN0IHNlbGVjdC5pcy1hY3RpdmUsLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtYWN0aXZlLmlucHV0LC5pcy1hY3RpdmUuYnV0dG9ue291dGxpbmU6bm9uZX1bZGlzYWJsZWRdLnBhZ2luYXRpb24tcHJldmlvdXMsW2Rpc2FibGVkXS5wYWdpbmF0aW9uLW5leHQsW2Rpc2FibGVkXS5wYWdpbmF0aW9uLWxpbmssW2Rpc2FibGVkXS5wYWdpbmF0aW9uLWVsbGlwc2lzLFtkaXNhYmxlZF0uZmlsZS1jdGEsW2Rpc2FibGVkXS5maWxlLW5hbWUsLnNlbGVjdCBzZWxlY3RbZGlzYWJsZWRdLFtkaXNhYmxlZF0udGV4dGFyZWEsW2Rpc2FibGVkXS5pbnB1dCxbZGlzYWJsZWRdLmJ1dHRvbixmaWVsZHNldFtkaXNhYmxlZF0gLnBhZ2luYXRpb24tcHJldmlvdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5wYWdpbmF0aW9uLW5leHQsZmllbGRzZXRbZGlzYWJsZWRdIC5wYWdpbmF0aW9uLWxpbmssZmllbGRzZXRbZGlzYWJsZWRdIC5wYWdpbmF0aW9uLWVsbGlwc2lzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZmlsZS1jdGEsZmllbGRzZXRbZGlzYWJsZWRdIC5maWxlLW5hbWUsZmllbGRzZXRbZGlzYWJsZWRdIC5zZWxlY3Qgc2VsZWN0LC5zZWxlY3QgZmllbGRzZXRbZGlzYWJsZWRdIHNlbGVjdCxmaWVsZHNldFtkaXNhYmxlZF0gLnRleHRhcmVhLGZpZWxkc2V0W2Rpc2FibGVkXSAuaW5wdXQsZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b257Y3Vyc29yOm5vdC1hbGxvd2VkfS5pcy11bnNlbGVjdGFibGUsLnRhYnMsLnBhZ2luYXRpb24tcHJldmlvdXMsLnBhZ2luYXRpb24tbmV4dCwucGFnaW5hdGlvbi1saW5rLC5wYWdpbmF0aW9uLWVsbGlwc2lzLC5icmVhZGNydW1iLC5maWxlLC5idXR0b257LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5uYXZiYXItbGluazpub3QoLmlzLWFycm93bGVzcyk6OmFmdGVyLC5zZWxlY3Q6bm90KC5pcy1tdWx0aXBsZSk6bm90KC5pcy1sb2FkaW5nKTo6YWZ0ZXJ7Ym9yZGVyOjNweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yaWdodDowO2JvcmRlci10b3A6MDtjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrO2hlaWdodDouNjI1ZW07bWFyZ2luLXRvcDotMC40Mzc1ZW07cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt3aWR0aDouNjI1ZW19LnRhYnM6bm90KDpsYXN0LWNoaWxkKSwucGFnaW5hdGlvbjpub3QoOmxhc3QtY2hpbGQpLC5tZXNzYWdlOm5vdCg6bGFzdC1jaGlsZCksLmxldmVsOm5vdCg6bGFzdC1jaGlsZCksLmJyZWFkY3J1bWI6bm90KDpsYXN0LWNoaWxkKSwuYmxvY2s6bm90KDpsYXN0LWNoaWxkKSwudGl0bGU6bm90KDpsYXN0LWNoaWxkKSwuc3VidGl0bGU6bm90KDpsYXN0LWNoaWxkKSwudGFibGUtY29udGFpbmVyOm5vdCg6bGFzdC1jaGlsZCksLnRhYmxlOm5vdCg6bGFzdC1jaGlsZCksLnByb2dyZXNzOm5vdCg6bGFzdC1jaGlsZCksLm5vdGlmaWNhdGlvbjpub3QoOmxhc3QtY2hpbGQpLC5jb250ZW50Om5vdCg6bGFzdC1jaGlsZCksLmJveDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MS41cmVtfS5tb2RhbC1jbG9zZSwuZGVsZXRley13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjIpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6OTk5OXB4O2N1cnNvcjpwb2ludGVyO3BvaW50ZXItZXZlbnRzOmF1dG87ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDtmb250LXNpemU6MDtoZWlnaHQ6MjBweDttYXgtaGVpZ2h0OjIwcHg7bWF4LXdpZHRoOjIwcHg7bWluLWhlaWdodDoyMHB4O21pbi13aWR0aDoyMHB4O291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjp0b3A7d2lkdGg6MjBweH0ubW9kYWwtY2xvc2U6OmJlZm9yZSwuZGVsZXRlOjpiZWZvcmUsLm1vZGFsLWNsb3NlOjphZnRlciwuZGVsZXRlOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2xlZnQ6NTAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcn0ubW9kYWwtY2xvc2U6OmJlZm9yZSwuZGVsZXRlOjpiZWZvcmV7aGVpZ2h0OjJweDt3aWR0aDo1MCV9Lm1vZGFsLWNsb3NlOjphZnRlciwuZGVsZXRlOjphZnRlcntoZWlnaHQ6NTAlO3dpZHRoOjJweH0ubW9kYWwtY2xvc2U6aG92ZXIsLmRlbGV0ZTpob3ZlciwubW9kYWwtY2xvc2U6Zm9jdXMsLmRlbGV0ZTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjMpfS5tb2RhbC1jbG9zZTphY3RpdmUsLmRlbGV0ZTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC40KX0uaXMtc21hbGwubW9kYWwtY2xvc2UsLmlzLXNtYWxsLmRlbGV0ZXtoZWlnaHQ6MTZweDttYXgtaGVpZ2h0OjE2cHg7bWF4LXdpZHRoOjE2cHg7bWluLWhlaWdodDoxNnB4O21pbi13aWR0aDoxNnB4O3dpZHRoOjE2cHh9LmlzLW1lZGl1bS5tb2RhbC1jbG9zZSwuaXMtbWVkaXVtLmRlbGV0ZXtoZWlnaHQ6MjRweDttYXgtaGVpZ2h0OjI0cHg7bWF4LXdpZHRoOjI0cHg7bWluLWhlaWdodDoyNHB4O21pbi13aWR0aDoyNHB4O3dpZHRoOjI0cHh9LmlzLWxhcmdlLm1vZGFsLWNsb3NlLC5pcy1sYXJnZS5kZWxldGV7aGVpZ2h0OjMycHg7bWF4LWhlaWdodDozMnB4O21heC13aWR0aDozMnB4O21pbi1oZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDt3aWR0aDozMnB4fS5jb250cm9sLmlzLWxvYWRpbmc6OmFmdGVyLC5zZWxlY3QuaXMtbG9hZGluZzo6YWZ0ZXIsLmxvYWRlciwuYnV0dG9uLmlzLWxvYWRpbmc6OmFmdGVye2FuaW1hdGlvbjpzcGluQXJvdW5kIDUwMG1zIGluZmluaXRlIGxpbmVhcjtib3JkZXI6MnB4IHNvbGlkICNkYmRiZGI7Ym9yZGVyLXJhZGl1czo5OTk5cHg7Ym9yZGVyLXJpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MWVtO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjFlbX0uaGVyby12aWRlbywuaXMtb3ZlcmxheSwubW9kYWwtYmFja2dyb3VuZCwubW9kYWwsLmltYWdlLmlzLXNxdWFyZSBpbWcsLmltYWdlLmlzLXNxdWFyZSAuaGFzLXJhdGlvLC5pbWFnZS5pcy0xYnkxIGltZywuaW1hZ2UuaXMtMWJ5MSAuaGFzLXJhdGlvLC5pbWFnZS5pcy01Ynk0IGltZywuaW1hZ2UuaXMtNWJ5NCAuaGFzLXJhdGlvLC5pbWFnZS5pcy00YnkzIGltZywuaW1hZ2UuaXMtNGJ5MyAuaGFzLXJhdGlvLC5pbWFnZS5pcy0zYnkyIGltZywuaW1hZ2UuaXMtM2J5MiAuaGFzLXJhdGlvLC5pbWFnZS5pcy01YnkzIGltZywuaW1hZ2UuaXMtNWJ5MyAuaGFzLXJhdGlvLC5pbWFnZS5pcy0xNmJ5OSBpbWcsLmltYWdlLmlzLTE2Ynk5IC5oYXMtcmF0aW8sLmltYWdlLmlzLTJieTEgaW1nLC5pbWFnZS5pcy0yYnkxIC5oYXMtcmF0aW8sLmltYWdlLmlzLTNieTEgaW1nLC5pbWFnZS5pcy0zYnkxIC5oYXMtcmF0aW8sLmltYWdlLmlzLTRieTUgaW1nLC5pbWFnZS5pcy00Ynk1IC5oYXMtcmF0aW8sLmltYWdlLmlzLTNieTQgaW1nLC5pbWFnZS5pcy0zYnk0IC5oYXMtcmF0aW8sLmltYWdlLmlzLTJieTMgaW1nLC5pbWFnZS5pcy0yYnkzIC5oYXMtcmF0aW8sLmltYWdlLmlzLTNieTUgaW1nLC5pbWFnZS5pcy0zYnk1IC5oYXMtcmF0aW8sLmltYWdlLmlzLTlieTE2IGltZywuaW1hZ2UuaXMtOWJ5MTYgLmhhcy1yYXRpbywuaW1hZ2UuaXMtMWJ5MiBpbWcsLmltYWdlLmlzLTFieTIgLmhhcy1yYXRpbywuaW1hZ2UuaXMtMWJ5MyBpbWcsLmltYWdlLmlzLTFieTMgLmhhcy1yYXRpb3tib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ubmF2YmFyLWJ1cmdlcnstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2NvbG9yOmN1cnJlbnRDb2xvcjtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxZW07bWFyZ2luOjA7cGFkZGluZzowfS8qISBtaW5pcmVzZXQuY3NzIHYwLjAuNiB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9qZ3RobXMvbWluaXJlc2V0LmNzcyAqL2h0bWwsYm9keSxwLG9sLHVsLGxpLGRsLGR0LGRkLGJsb2NrcXVvdGUsZmlndXJlLGZpZWxkc2V0LGxlZ2VuZCx0ZXh0YXJlYSxwcmUsaWZyYW1lLGhyLGgxLGgyLGgzLGg0LGg1LGg2e21hcmdpbjowO3BhZGRpbmc6MH1oMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6MTAwJTtmb250LXdlaWdodDpub3JtYWx9dWx7bGlzdC1zdHlsZTpub25lfWJ1dHRvbixpbnB1dCxzZWxlY3QsdGV4dGFyZWF7bWFyZ2luOjB9aHRtbHtib3gtc2l6aW5nOmJvcmRlci1ib3h9KiwqOjpiZWZvcmUsKjo6YWZ0ZXJ7Ym94LXNpemluZzppbmhlcml0fWltZyx2aWRlb3toZWlnaHQ6YXV0bzttYXgtd2lkdGg6MTAwJX1pZnJhbWV7Ym9yZGVyOjB9dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9dGQsdGh7cGFkZGluZzowfXRkOm5vdChbYWxpZ25dKSx0aDpub3QoW2FsaWduXSl7dGV4dC1hbGlnbjppbmhlcml0fWh0bWx7YmFja2dyb3VuZC1jb2xvcjojZmZmO2ZvbnQtc2l6ZToxNnB4Oy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO21pbi13aWR0aDozMDBweDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OnNjcm9sbDt0ZXh0LXJlbmRlcmluZzpvcHRpbWl6ZUxlZ2liaWxpdHk7dGV4dC1zaXplLWFkanVzdDoxMDAlfWFydGljbGUsYXNpZGUsZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLHNlY3Rpb257ZGlzcGxheTpibG9ja31ib2R5LGJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mYW1pbHk6QmxpbmtNYWNTeXN0ZW1Gb250LC1hcHBsZS1zeXN0ZW0sIlNlZ29lIFVJIiwiUm9ib3RvIiwiT3h5Z2VuIiwiVWJ1bnR1IiwiQ2FudGFyZWxsIiwiRmlyYSBTYW5zIiwiRHJvaWQgU2FucyIsIkhlbHZldGljYSBOZXVlIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWZ9Y29kZSxwcmV7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmF1dG87Zm9udC1mYW1pbHk6bW9ub3NwYWNlfWJvZHl7Y29sb3I6IzRhNGE0YTtmb250LXNpemU6MWVtO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjV9YXtjb2xvcjojNDg3NmZmO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lfWEgc3Ryb25ne2NvbG9yOmN1cnJlbnRDb2xvcn1hOmhvdmVye2NvbG9yOiMzNjM2MzZ9Y29kZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Y29sb3I6I2RhMTAzOTtmb250LXNpemU6Ljg3NWVtO2ZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nOi4yNWVtIC41ZW0gLjI1ZW19aHJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlcjpub25lO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjJweDttYXJnaW46MS41cmVtIDB9aW1ne2hlaWdodDphdXRvO21heC13aWR0aDoxMDAlfWlucHV0W3R5cGU9Y2hlY2tib3hdLGlucHV0W3R5cGU9cmFkaW9de3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXNtYWxse2ZvbnQtc2l6ZTouODc1ZW19c3Bhbntmb250LXN0eWxlOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1zdHJvbmd7Y29sb3I6IzM2MzYzNjtmb250LXdlaWdodDo3MDB9ZmllbGRzZXR7Ym9yZGVyOm5vbmV9cHJley13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNGE0YTRhO2ZvbnQtc2l6ZTouODc1ZW07b3ZlcmZsb3cteDphdXRvO3BhZGRpbmc6MS4yNXJlbSAxLjVyZW07d2hpdGUtc3BhY2U6cHJlO3dvcmQtd3JhcDpub3JtYWx9cHJlIGNvZGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOmN1cnJlbnRDb2xvcjtmb250LXNpemU6MWVtO3BhZGRpbmc6MH10YWJsZSB0ZCx0YWJsZSB0aHt2ZXJ0aWNhbC1hbGlnbjp0b3B9dGFibGUgdGQ6bm90KFthbGlnbl0pLHRhYmxlIHRoOm5vdChbYWxpZ25dKXt0ZXh0LWFsaWduOmluaGVyaXR9dGFibGUgdGh7Y29sb3I6IzM2MzYzNn1Aa2V5ZnJhbWVzIHNwaW5Bcm91bmR7ZnJvbXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve3RyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKX19LmJveHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIC41ZW0gMWVtIC0wLjEyNWVtIHJnYmEoMTAsMTAsMTAsLjEpLDAgMHB4IDAgMXB4IHJnYmEoMTAsMTAsMTAsLjAyKTtjb2xvcjojNGE0YTRhO2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxLjI1cmVtfWEuYm94OmhvdmVyLGEuYm94OmZvY3Vze2JveC1zaGFkb3c6MCAuNWVtIDFlbSAtMC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4xKSwwIDAgMCAxcHggIzQ4NzZmZn1hLmJveDphY3RpdmV7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgxMCwxMCwxMCwuMiksMCAwIDAgMXB4ICM0ODc2ZmZ9LmJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNkYmRiZGI7Ym9yZGVyLXdpZHRoOjFweDtjb2xvcjojMzYzNjM2O2N1cnNvcjpwb2ludGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy1ib3R0b206Y2FsYyguNWVtIC0gMXB4KTtwYWRkaW5nLWxlZnQ6MWVtO3BhZGRpbmctcmlnaHQ6MWVtO3BhZGRpbmctdG9wOmNhbGMoLjVlbSAtIDFweCk7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5idXR0b24gc3Ryb25ne2NvbG9yOmluaGVyaXR9LmJ1dHRvbiAuaWNvbiwuYnV0dG9uIC5pY29uLmlzLXNtYWxsLC5idXR0b24gLmljb24uaXMtbWVkaXVtLC5idXR0b24gLmljb24uaXMtbGFyZ2V7aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5idXR0b24gLmljb246Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tbGVmdDpjYWxjKC0wLjVlbSAtIDFweCk7bWFyZ2luLXJpZ2h0Oi4yNWVtfS5idXR0b24gLmljb246bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDouMjVlbTttYXJnaW4tcmlnaHQ6Y2FsYygtMC41ZW0gLSAxcHgpfS5idXR0b24gLmljb246Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZHttYXJnaW4tbGVmdDpjYWxjKC0wLjVlbSAtIDFweCk7bWFyZ2luLXJpZ2h0OmNhbGMoLTAuNWVtIC0gMXB4KX0uYnV0dG9uOmhvdmVyLC5idXR0b24uaXMtaG92ZXJlZHtib3JkZXItY29sb3I6I2I1YjViNTtjb2xvcjojMzYzNjM2fS5idXR0b246Zm9jdXMsLmJ1dHRvbi5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjojNDg1ZmM3O2NvbG9yOiMzNjM2MzZ9LmJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSksLmJ1dHRvbi5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDcyLDExOCwyNTUsLjI1KX0uYnV0dG9uOmFjdGl2ZSwuYnV0dG9uLmlzLWFjdGl2ZXtib3JkZXItY29sb3I6IzRhNGE0YTtjb2xvcjojMzYzNjM2fS5idXR0b24uaXMtdGV4dHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzRhNGE0YTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5idXR0b24uaXMtdGV4dDpob3ZlciwuYnV0dG9uLmlzLXRleHQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXRleHQ6Zm9jdXMsLmJ1dHRvbi5pcy10ZXh0LmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiMzNjM2MzZ9LmJ1dHRvbi5pcy10ZXh0OmFjdGl2ZSwuYnV0dG9uLmlzLXRleHQuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtjb2xvcjojMzYzNjM2fS5idXR0b24uaXMtdGV4dFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtdGV4dHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtZ2hvc3R7YmFja2dyb3VuZDpub25lO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiM0ODc2ZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmJ1dHRvbi5pcy1naG9zdDpob3ZlciwuYnV0dG9uLmlzLWdob3N0LmlzLWhvdmVyZWR7Y29sb3I6IzQ4NzZmZjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5idXR0b24uaXMtd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy13aGl0ZTpob3ZlciwuYnV0dG9uLmlzLXdoaXRlLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy13aGl0ZTpmb2N1cywuYnV0dG9uLmlzLXdoaXRlLmlzLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLXdoaXRlOmZvY3VzOm5vdCg6YWN0aXZlKSwuYnV0dG9uLmlzLXdoaXRlLmlzLWZvY3VzZWQ6bm90KDphY3RpdmUpe2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDI1NSwyNTUsLjI1KX0uYnV0dG9uLmlzLXdoaXRlOmFjdGl2ZSwuYnV0dG9uLmlzLXdoaXRlLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLXdoaXRlW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy13aGl0ZS5pcy1pbnZlcnRlZDpob3ZlciwuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXdoaXRlLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzBhMGEwYSAjMGEwYTBhICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy13aGl0ZS5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtd2hpdGUuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtd2hpdGUuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy13aGl0ZS5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy13aGl0ZS5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjMGEwYTBhICMwYTBhMGEgIWltcG9ydGFudH0uYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy13aGl0ZS5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy13aGl0ZS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiMwYTBhMGE7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6IzBhMGEwYTtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtYmxhY2s6aG92ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6IzA0MDQwNDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtYmxhY2s6Zm9jdXMsLmJ1dHRvbi5pcy1ibGFjay5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1ibGFjazpmb2N1czpub3QoOmFjdGl2ZSksLmJ1dHRvbi5pcy1ibGFjay5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4yNSl9LmJ1dHRvbi5pcy1ibGFjazphY3RpdmUsLmJ1dHRvbi5pcy1ibGFjay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1ibGFja1tkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZX0uYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMGEwYTBhfS5idXR0b24uaXMtYmxhY2suaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2YyZjJmMn0uYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy1ibGFjay5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtYmxhY2suaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojMGEwYTBhO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWJsYWNrLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWJsYWNrLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2JvcmRlci1jb2xvcjojMGEwYTBhO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICMwYTBhMGEgIzBhMGEwYSAhaW1wb3J0YW50fS5idXR0b24uaXMtYmxhY2suaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtYmxhY2suaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtYmxhY2suaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojMGEwYTBhO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojMGEwYTBhfS5idXR0b24uaXMtYmxhY2suaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjMGEwYTBhICMwYTBhMGEgIWltcG9ydGFudH0uYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1saWdodDpob3ZlciwuYnV0dG9uLmlzLWxpZ2h0LmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojYzdmOGNjO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtbGlnaHQ6Zm9jdXMsLmJ1dHRvbi5pcy1saWdodC5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtbGlnaHQ6Zm9jdXM6bm90KDphY3RpdmUpLC5idXR0b24uaXMtbGlnaHQuaXMtZm9jdXNlZDpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyMTAsMjQ5LDIxNCwuMjUpfS5idXR0b24uaXMtbGlnaHQ6YWN0aXZlLC5idXR0b24uaXMtbGlnaHQuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2JjZjZjMjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLWxpZ2h0W2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtjb2xvcjojZDJmOWQ2fS5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2QyZjlkNn0uYnV0dG9uLmlzLWxpZ2h0LmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwuNykgcmdiYSgwLDAsMCwuNykgIWltcG9ydGFudH0uYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2QyZjlkNjtjb2xvcjojZDJmOWQ2fS5idXR0b24uaXMtbGlnaHQuaXMtb3V0bGluZWQ6aG92ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtbGlnaHQuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1saWdodC5pcy1vdXRsaW5lZC5pcy1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6I2QyZjlkNjtib3JkZXItY29sb3I6I2QyZjlkNjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2QyZjlkNiAjZDJmOWQ2ICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1saWdodC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLC43KSByZ2JhKDAsMCwwLC43KSAhaW1wb3J0YW50fS5idXR0b24uaXMtbGlnaHQuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2QyZjlkNjtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2QyZjlkNn0uYnV0dG9uLmlzLWxpZ2h0LmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWxpZ2h0LmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWxpZ2h0LmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtjb2xvcjojZDJmOWQ2fS5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2QyZjlkNiAjZDJmOWQ2ICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3gtc2hhZG93Om5vbmU7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1kYXJre2JhY2tncm91bmQtY29sb3I6IzQ1OTU1ODtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtZGFyazpob3ZlciwuYnV0dG9uLmlzLWRhcmsuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0MThjNTM7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhcms6Zm9jdXMsLmJ1dHRvbi5pcy1kYXJrLmlzLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhcms6Zm9jdXM6bm90KDphY3RpdmUpLC5idXR0b24uaXMtZGFyay5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDY5LDE0OSw4OCwuMjUpfS5idXR0b24uaXMtZGFyazphY3RpdmUsLmJ1dHRvbi5pcy1kYXJrLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZDg0NGU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhcmtbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZX0uYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiM0NTk1NTh9LmJ1dHRvbi5pcy1kYXJrLmlzLWludmVydGVkOmhvdmVyLC5idXR0b24uaXMtZGFyay5pcy1pbnZlcnRlZC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2YyZjJmMn0uYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojNDU5NTU4fS5idXR0b24uaXMtZGFyay5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtZGFyay5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiM0NTk1NTg7Y29sb3I6IzQ1OTU1OH0uYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWQ6aG92ZXIsLmJ1dHRvbi5pcy1kYXJrLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1kYXJrLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtZGFyay5pcy1vdXRsaW5lZC5pcy1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6IzQ1OTU1ODtib3JkZXItY29sb3I6IzQ1OTU1ODtjb2xvcjojZmZmfS5idXR0b24uaXMtZGFyay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICM0NTk1NTggIzQ1OTU1OCAhaW1wb3J0YW50fS5idXR0b24uaXMtZGFyay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy1kYXJrLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZmZmICNmZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojNDU5NTU4O2JveC1zaGFkb3c6bm9uZTtjb2xvcjojNDU5NTU4fS5idXR0b24uaXMtZGFyay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQ6aG92ZXIsLmJ1dHRvbi5pcy1kYXJrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1kYXJrLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtZGFyay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojNDU5NTU4fS5idXR0b24uaXMtZGFyay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy1kYXJrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjNDU5NTU4ICM0NTk1NTggIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojZmZmO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojZmZmfS5idXR0b24uaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXByaW1hcnk6aG92ZXIsLmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojNGNiYTY3O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1wcmltYXJ5OmZvY3VzLC5idXR0b24uaXMtcHJpbWFyeS5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1wcmltYXJ5OmZvY3VzOm5vdCg6YWN0aXZlKSwuYnV0dG9uLmlzLXByaW1hcnkuaXMtZm9jdXNlZDpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg4NSwxOTAsMTExLC4yNSl9LmJ1dHRvbi5pcy1wcmltYXJ5OmFjdGl2ZSwuYnV0dG9uLmlzLXByaW1hcnkuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzQ1YjQ2MTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtcHJpbWFyeVtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzU1YmU2Zn0uYnV0dG9uLmlzLXByaW1hcnkuaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWludmVydGVkLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyfS5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM1NWJlNmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6IzU1YmU2Zjtjb2xvcjojNTViZTZmfS5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXByaW1hcnkuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1wcmltYXJ5LmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmO2JvcmRlci1jb2xvcjojNTViZTZmO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzU1YmU2ZiAjNTViZTZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiM1NWJlNmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM1NWJlNmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2ZmZjtjb2xvcjojZmZmfS5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXByaW1hcnkuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiM1NWJlNmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICM1NWJlNmYgIzU1YmU2ZiAhaW1wb3J0YW50fS5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2YwZjlmMjtjb2xvcjojMmY3YTQxfS5idXR0b24uaXMtcHJpbWFyeS5pcy1saWdodDpob3ZlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtbGlnaHQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlN2Y2ZWI7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzJmN2E0MX0uYnV0dG9uLmlzLXByaW1hcnkuaXMtbGlnaHQ6YWN0aXZlLC5idXR0b24uaXMtcHJpbWFyeS5pcy1saWdodC5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZGVmMmUzO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMyZjdhNDF9LmJ1dHRvbi5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtbGluazpob3ZlciwuYnV0dG9uLmlzLWxpbmsuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiMzYjZjZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWxpbms6Zm9jdXMsLmJ1dHRvbi5pcy1saW5rLmlzLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWxpbms6Zm9jdXM6bm90KDphY3RpdmUpLC5idXR0b24uaXMtbGluay5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDcyLDExOCwyNTUsLjI1KX0uYnV0dG9uLmlzLWxpbms6YWN0aXZlLC5idXR0b24uaXMtbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMmY2M2ZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1saW5rW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmV9LmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojNDg3NmZmfS5idXR0b24uaXMtbGluay5pcy1pbnZlcnRlZDpob3ZlciwuYnV0dG9uLmlzLWxpbmsuaXMtaW52ZXJ0ZWQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjJ9LmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzQ4NzZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZmZmICNmZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWxpbmsuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojNDg3NmZmO2NvbG9yOiM0ODc2ZmZ9LmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtbGluay5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtbGluay5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWxpbmsuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Ym9yZGVyLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtb3V0bGluZWQuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjNDg3NmZmICM0ODc2ZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWxpbmsuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtbGluay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6IzQ4NzZmZjtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzQ4NzZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtbGluay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtbGluay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWxpbmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzQ4NzZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtbGluay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzQ4NzZmZiAjNDg3NmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2ZmZjtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZWJmMGZmO2NvbG9yOiMwMDM3ZGJ9LmJ1dHRvbi5pcy1saW5rLmlzLWxpZ2h0OmhvdmVyLC5idXR0b24uaXMtbGluay5pcy1saWdodC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2RlZTZmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojMDAzN2RifS5idXR0b24uaXMtbGluay5pcy1saWdodDphY3RpdmUsLmJ1dHRvbi5pcy1saW5rLmlzLWxpZ2h0LmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkMWRkZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzAwMzdkYn0uYnV0dG9uLmlzLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtaW5mbzpob3ZlciwuYnV0dG9uLmlzLWluZm8uaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlM2YyZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1pbmZvOmZvY3VzLC5idXR0b24uaXMtaW5mby5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtaW5mbzpmb2N1czpub3QoOmFjdGl2ZSksLmJ1dHRvbi5pcy1pbmZvLmlzLWZvY3VzZWQ6bm90KDphY3RpdmUpe2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjQwLDI0OCwyNTUsLjI1KX0uYnV0dG9uLmlzLWluZm86YWN0aXZlLC5idXR0b24uaXMtaW5mby5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDdlY2ZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtaW5mb1tkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtaW5mby5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2NvbG9yOiNmMGY4ZmZ9LmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkOmhvdmVyLC5idXR0b24uaXMtaW5mby5pcy1pbnZlcnRlZC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmMGY4ZmZ9LmJ1dHRvbi5pcy1pbmZvLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwuNykgcmdiYSgwLDAsMCwuNykgIWltcG9ydGFudH0uYnV0dG9uLmlzLWluZm8uaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojZjBmOGZmO2NvbG9yOiNmMGY4ZmZ9LmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtaW5mby5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtaW5mby5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWluZm8uaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmY7Ym9yZGVyLWNvbG9yOiNmMGY4ZmY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2YwZjhmZiAjZjBmOGZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtaW5mby5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtaW5mby5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLWluZm8uaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsLjcpIHJnYmEoMCwwLDAsLjcpICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2YwZjhmZjtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2YwZjhmZn0uYnV0dG9uLmlzLWluZm8uaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC43KTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLWluZm8uaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQ6aG92ZXIsLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtaW5mby5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6I2YwZjhmZn0uYnV0dG9uLmlzLWluZm8uaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtaW5mby5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2YwZjhmZiAjZjBmOGZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Ym94LXNoYWRvdzpub25lO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtaW5mby5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmY7Y29sb3I6IzAwNGY5NH0uYnV0dG9uLmlzLWluZm8uaXMtbGlnaHQ6aG92ZXIsLmJ1dHRvbi5pcy1pbmZvLmlzLWxpZ2h0LmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZTNmMmZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMwMDRmOTR9LmJ1dHRvbi5pcy1pbmZvLmlzLWxpZ2h0OmFjdGl2ZSwuYnV0dG9uLmlzLWluZm8uaXMtbGlnaHQuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2Q3ZWNmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojMDA0Zjk0fS5idXR0b24uaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXN1Y2Nlc3M6aG92ZXIsLmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojM2VjNDg3O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1zdWNjZXNzOmZvY3VzLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1zdWNjZXNzOmZvY3VzOm5vdCg6YWN0aXZlKSwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtZm9jdXNlZDpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg3MiwxOTksMTQyLC4yNSl9LmJ1dHRvbi5pcy1zdWNjZXNzOmFjdGl2ZSwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzNhYmI4MTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtc3VjY2Vzc1tkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzQ4Yzc4ZX0uYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWludmVydGVkLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM0OGM3OGV9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6IzQ4Yzc4ZTtjb2xvcjojNDhjNzhlfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1zdWNjZXNzLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlO2JvcmRlci1jb2xvcjojNDhjNzhlO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzQ4Yzc4ZSAjNDhjNzhlICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiM0OGM3OGU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM0OGM3OGV9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2ZmZjtjb2xvcjojZmZmfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiM0OGM3OGV9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICM0OGM3OGUgIzQ4Yzc4ZSAhaW1wb3J0YW50fS5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2VmZmFmNTtjb2xvcjojMjU3OTUzfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1saWdodDpob3ZlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtbGlnaHQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlNmY3ZWY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzI1Nzk1M30uYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtbGlnaHQ6YWN0aXZlLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1saWdodC5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZGNmNGU5O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMyNTc5NTN9LmJ1dHRvbi5pcy13YXJuaW5ne2JhY2tncm91bmQtY29sb3I6I2ZmZDk3NTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLXdhcm5pbmc6aG92ZXIsLmJ1dHRvbi5pcy13YXJuaW5nLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZmZkNTY4O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtd2FybmluZzpmb2N1cywuYnV0dG9uLmlzLXdhcm5pbmcuaXMtZm9jdXNlZHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLXdhcm5pbmc6Zm9jdXM6bm90KDphY3RpdmUpLC5idXR0b24uaXMtd2FybmluZy5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDI1NSwyMTcsMTE3LC4yNSl9LmJ1dHRvbi5pcy13YXJuaW5nOmFjdGl2ZSwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZmZDI1Yztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLXdhcm5pbmdbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZX0uYnV0dG9uLmlzLXdhcm5pbmcuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtjb2xvcjojZmZkOTc1fS5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZDpob3ZlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtaW52ZXJ0ZWQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojZmZkOTc1fS5idXR0b24uaXMtd2FybmluZy5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsLjcpIHJnYmEoMCwwLDAsLjcpICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2ZmZDk3NTtjb2xvcjojZmZkOTc1fS5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy13YXJuaW5nLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2JvcmRlci1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmQ5NzUgI2ZmZDk3NSAhaW1wb3J0YW50fS5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy13YXJuaW5nLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLC43KSByZ2JhKDAsMCwwLC43KSAhaW1wb3J0YW50fS5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmQ5NzU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmQ5NzV9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLXdhcm5pbmcuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2NvbG9yOiNmZmQ5NzV9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmQ5NzUgI2ZmZDk3NSAhaW1wb3J0YW50fS5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JveC1zaGFkb3c6bm9uZTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLXdhcm5pbmcuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmZmOWViO2NvbG9yOiM5NDZiMDB9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLWxpZ2h0OmhvdmVyLC5idXR0b24uaXMtd2FybmluZy5pcy1saWdodC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2ZmZjZkZTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojOTQ2YjAwfS5idXR0b24uaXMtd2FybmluZy5pcy1saWdodDphY3RpdmUsLmJ1dHRvbi5pcy13YXJuaW5nLmlzLWxpZ2h0LmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYyZDE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6Izk0NmIwMH0uYnV0dG9uLmlzLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhbmdlcjpob3ZlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2YwM2E1Zjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtZGFuZ2VyOmZvY3VzLC5idXR0b24uaXMtZGFuZ2VyLmlzLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhbmdlcjpmb2N1czpub3QoOmFjdGl2ZSksLmJ1dHRvbi5pcy1kYW5nZXIuaXMtZm9jdXNlZDpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyNDEsNzAsMTA0LC4yNSl9LmJ1dHRvbi5pcy1kYW5nZXI6YWN0aXZlLC5idXR0b24uaXMtZGFuZ2VyLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjJlNTU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhbmdlcltkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmV9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiNmMTQ2Njh9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjJ9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmMTQ2Njh9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZmZmICNmZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2YxNDY2OH0uYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4O2JvcmRlci1jb2xvcjojZjE0NjY4O2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtb3V0bGluZWQuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZjE0NjY4ICNmMTQ2NjggIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZmZmICNmZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2YxNDY2ODtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2YxNDY2OH0uYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtZGFuZ2VyLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtZGFuZ2VyLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiNmMTQ2Njh9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2YxNDY2OCAjZjE0NjY4ICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmVlY2YwO2NvbG9yOiNjYzBmMzV9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtbGlnaHQ6aG92ZXIsLmJ1dHRvbi5pcy1kYW5nZXIuaXMtbGlnaHQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZGUwZTY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2NjMGYzNX0uYnV0dG9uLmlzLWRhbmdlci5pcy1saWdodDphY3RpdmUsLmJ1dHRvbi5pcy1kYW5nZXIuaXMtbGlnaHQuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZjZDRkYztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojY2MwZjM1fS5idXR0b24uaXMtc21hbGx7Zm9udC1zaXplOi43NXJlbX0uYnV0dG9uLmlzLXNtYWxsOm5vdCguaXMtcm91bmRlZCl7Ym9yZGVyLXJhZGl1czoycHh9LmJ1dHRvbi5pcy1ub3JtYWx7Zm9udC1zaXplOjFyZW19LmJ1dHRvbi5pcy1tZWRpdW17Zm9udC1zaXplOjEuMjVyZW19LmJ1dHRvbi5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5idXR0b25bZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2RiZGJkYjtib3gtc2hhZG93Om5vbmU7b3BhY2l0eTouNX0uYnV0dG9uLmlzLWZ1bGx3aWR0aHtkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJX0uYnV0dG9uLmlzLWxvYWRpbmd7Y29sb3I6cmdiYSgwLDAsMCwwKSAhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmV9LmJ1dHRvbi5pcy1sb2FkaW5nOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OmNhbGMoNTAlIC0gMWVtKi41KTt0b3A6Y2FsYyg1MCUgLSAxZW0qLjUpO3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1zdGF0aWN7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1jb2xvcjojZGJkYmRiO2NvbG9yOiM3YTdhN2E7Ym94LXNoYWRvdzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmV9LmJ1dHRvbi5pcy1yb3VuZGVke2JvcmRlci1yYWRpdXM6OTk5OXB4O3BhZGRpbmctbGVmdDpjYWxjKDFlbSArIC4yNWVtKTtwYWRkaW5nLXJpZ2h0OmNhbGMoMWVtICsgLjI1ZW0pfS5idXR0b25ze2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmJ1dHRvbnMgLmJ1dHRvbnttYXJnaW4tYm90dG9tOi41cmVtfS5idXR0b25zIC5idXR0b246bm90KDpsYXN0LWNoaWxkKTpub3QoLmlzLWZ1bGx3aWR0aCl7bWFyZ2luLXJpZ2h0Oi41cmVtfS5idXR0b25zOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTotMC41cmVtfS5idXR0b25zOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToxcmVtfS5idXR0b25zLmFyZS1zbWFsbCAuYnV0dG9uOm5vdCguaXMtbm9ybWFsKTpub3QoLmlzLW1lZGl1bSk6bm90KC5pcy1sYXJnZSl7Zm9udC1zaXplOi43NXJlbX0uYnV0dG9ucy5hcmUtc21hbGwgLmJ1dHRvbjpub3QoLmlzLW5vcm1hbCk6bm90KC5pcy1tZWRpdW0pOm5vdCguaXMtbGFyZ2UpOm5vdCguaXMtcm91bmRlZCl7Ym9yZGVyLXJhZGl1czoycHh9LmJ1dHRvbnMuYXJlLW1lZGl1bSAuYnV0dG9uOm5vdCguaXMtc21hbGwpOm5vdCguaXMtbm9ybWFsKTpub3QoLmlzLWxhcmdlKXtmb250LXNpemU6MS4yNXJlbX0uYnV0dG9ucy5hcmUtbGFyZ2UgLmJ1dHRvbjpub3QoLmlzLXNtYWxsKTpub3QoLmlzLW5vcm1hbCk6bm90KC5pcy1tZWRpdW0pe2ZvbnQtc2l6ZToxLjVyZW19LmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO21hcmdpbi1yaWdodDotMXB4fS5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbjpob3ZlciwuYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b24uaXMtaG92ZXJlZHt6LWluZGV4OjJ9LmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uOmZvY3VzLC5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbi5pcy1mb2N1c2VkLC5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbjphY3RpdmUsLmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uLmlzLWFjdGl2ZSwuYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b24uaXMtc2VsZWN0ZWR7ei1pbmRleDozfS5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbjpmb2N1czpob3ZlciwuYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b24uaXMtZm9jdXNlZDpob3ZlciwuYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b246YWN0aXZlOmhvdmVyLC5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbi5pcy1hY3RpdmU6aG92ZXIsLmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uLmlzLXNlbGVjdGVkOmhvdmVye3otaW5kZXg6NH0uYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b24uaXMtZXhwYW5kZWR7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX0uYnV0dG9ucy5pcy1jZW50ZXJlZHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5idXR0b25zLmlzLWNlbnRlcmVkOm5vdCguaGFzLWFkZG9ucykgLmJ1dHRvbjpub3QoLmlzLWZ1bGx3aWR0aCl7bWFyZ2luLWxlZnQ6LjI1cmVtO21hcmdpbi1yaWdodDouMjVyZW19LmJ1dHRvbnMuaXMtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5idXR0b25zLmlzLXJpZ2h0Om5vdCguaGFzLWFkZG9ucykgLmJ1dHRvbjpub3QoLmlzLWZ1bGx3aWR0aCl7bWFyZ2luLWxlZnQ6LjI1cmVtO21hcmdpbi1yaWdodDouMjVyZW19LmNvbnRhaW5lcntmbGV4LWdyb3c6MTttYXJnaW46MCBhdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG99LmNvbnRhaW5lci5pcy1mbHVpZHttYXgtd2lkdGg6bm9uZSAhaW1wb3J0YW50O3BhZGRpbmctbGVmdDozMnB4O3BhZGRpbmctcmlnaHQ6MzJweDt3aWR0aDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCl7LmNvbnRhaW5lcnttYXgtd2lkdGg6OTYwcHh9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmNvbnRhaW5lci5pcy13aWRlc2NyZWVuOm5vdCguaXMtbWF4LWRlc2t0b3Ape21heC13aWR0aDoxMTUycHh9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MDdweCl7LmNvbnRhaW5lci5pcy1mdWxsaGQ6bm90KC5pcy1tYXgtZGVza3RvcCk6bm90KC5pcy1tYXgtd2lkZXNjcmVlbil7bWF4LXdpZHRoOjEzNDRweH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29udGFpbmVyOm5vdCguaXMtbWF4LWRlc2t0b3Ape21heC13aWR0aDoxMTUycHh9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmNvbnRhaW5lcjpub3QoLmlzLW1heC1kZXNrdG9wKTpub3QoLmlzLW1heC13aWRlc2NyZWVuKXttYXgtd2lkdGg6MTM0NHB4fX0uY29udGVudCBsaStsaXttYXJnaW4tdG9wOi4yNWVtfS5jb250ZW50IHA6bm90KDpsYXN0LWNoaWxkKSwuY29udGVudCBkbDpub3QoOmxhc3QtY2hpbGQpLC5jb250ZW50IG9sOm5vdCg6bGFzdC1jaGlsZCksLmNvbnRlbnQgdWw6bm90KDpsYXN0LWNoaWxkKSwuY29udGVudCBibG9ja3F1b3RlOm5vdCg6bGFzdC1jaGlsZCksLmNvbnRlbnQgcHJlOm5vdCg6bGFzdC1jaGlsZCksLmNvbnRlbnQgdGFibGU6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjFlbX0uY29udGVudCBoMSwuY29udGVudCBoMiwuY29udGVudCBoMywuY29udGVudCBoNCwuY29udGVudCBoNSwuY29udGVudCBoNntjb2xvcjojMzYzNjM2O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjEyNX0uY29udGVudCBoMXtmb250LXNpemU6MmVtO21hcmdpbi1ib3R0b206LjVlbX0uY29udGVudCBoMTpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tdG9wOjFlbX0uY29udGVudCBoMntmb250LXNpemU6MS43NWVtO21hcmdpbi1ib3R0b206LjU3MTRlbX0uY29udGVudCBoMjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tdG9wOjEuMTQyOGVtfS5jb250ZW50IGgze2ZvbnQtc2l6ZToxLjVlbTttYXJnaW4tYm90dG9tOi42NjY2ZW19LmNvbnRlbnQgaDM6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDoxLjMzMzNlbX0uY29udGVudCBoNHtmb250LXNpemU6MS4yNWVtO21hcmdpbi1ib3R0b206LjhlbX0uY29udGVudCBoNXtmb250LXNpemU6MS4xMjVlbTttYXJnaW4tYm90dG9tOi44ODg4ZW19LmNvbnRlbnQgaDZ7Zm9udC1zaXplOjFlbTttYXJnaW4tYm90dG9tOjFlbX0uY29udGVudCBibG9ja3F1b3Rle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtib3JkZXItbGVmdDo1cHggc29saWQgI2RiZGJkYjtwYWRkaW5nOjEuMjVlbSAxLjVlbX0uY29udGVudCBvbHtsaXN0LXN0eWxlLXBvc2l0aW9uOm91dHNpZGU7bWFyZ2luLWxlZnQ6MmVtO21hcmdpbi10b3A6MWVtfS5jb250ZW50IG9sOm5vdChbdHlwZV0pe2xpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsfS5jb250ZW50IG9sOm5vdChbdHlwZV0pLmlzLWxvd2VyLWFscGhhe2xpc3Qtc3R5bGUtdHlwZTpsb3dlci1hbHBoYX0uY29udGVudCBvbDpub3QoW3R5cGVdKS5pcy1sb3dlci1yb21hbntsaXN0LXN0eWxlLXR5cGU6bG93ZXItcm9tYW59LmNvbnRlbnQgb2w6bm90KFt0eXBlXSkuaXMtdXBwZXItYWxwaGF7bGlzdC1zdHlsZS10eXBlOnVwcGVyLWFscGhhfS5jb250ZW50IG9sOm5vdChbdHlwZV0pLmlzLXVwcGVyLXJvbWFue2xpc3Qtc3R5bGUtdHlwZTp1cHBlci1yb21hbn0uY29udGVudCB1bHtsaXN0LXN0eWxlOmRpc2Mgb3V0c2lkZTttYXJnaW4tbGVmdDoyZW07bWFyZ2luLXRvcDoxZW19LmNvbnRlbnQgdWwgdWx7bGlzdC1zdHlsZS10eXBlOmNpcmNsZTttYXJnaW4tdG9wOi41ZW19LmNvbnRlbnQgdWwgdWwgdWx7bGlzdC1zdHlsZS10eXBlOnNxdWFyZX0uY29udGVudCBkZHttYXJnaW4tbGVmdDoyZW19LmNvbnRlbnQgZmlndXJle21hcmdpbi1sZWZ0OjJlbTttYXJnaW4tcmlnaHQ6MmVtO3RleHQtYWxpZ246Y2VudGVyfS5jb250ZW50IGZpZ3VyZTpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tdG9wOjJlbX0uY29udGVudCBmaWd1cmU6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjJlbX0uY29udGVudCBmaWd1cmUgaW1ne2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jb250ZW50IGZpZ3VyZSBmaWdjYXB0aW9ue2ZvbnQtc3R5bGU6aXRhbGljfS5jb250ZW50IHByZXstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdmVyZmxvdy14OmF1dG87cGFkZGluZzoxLjI1ZW0gMS41ZW07d2hpdGUtc3BhY2U6cHJlO3dvcmQtd3JhcDpub3JtYWx9LmNvbnRlbnQgc3VwLC5jb250ZW50IHN1Yntmb250LXNpemU6NzUlfS5jb250ZW50IHRhYmxle3dpZHRoOjEwMCV9LmNvbnRlbnQgdGFibGUgdGQsLmNvbnRlbnQgdGFibGUgdGh7Ym9yZGVyOjFweCBzb2xpZCAjZGJkYmRiO2JvcmRlci13aWR0aDowIDAgMXB4O3BhZGRpbmc6LjVlbSAuNzVlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmNvbnRlbnQgdGFibGUgdGh7Y29sb3I6IzM2MzYzNn0uY29udGVudCB0YWJsZSB0aDpub3QoW2FsaWduXSl7dGV4dC1hbGlnbjppbmhlcml0fS5jb250ZW50IHRhYmxlIHRoZWFkIHRkLC5jb250ZW50IHRhYmxlIHRoZWFkIHRoe2JvcmRlci13aWR0aDowIDAgMnB4O2NvbG9yOiMzNjM2MzZ9LmNvbnRlbnQgdGFibGUgdGZvb3QgdGQsLmNvbnRlbnQgdGFibGUgdGZvb3QgdGh7Ym9yZGVyLXdpZHRoOjJweCAwIDA7Y29sb3I6IzM2MzYzNn0uY29udGVudCB0YWJsZSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkLC5jb250ZW50IHRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGh7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5jb250ZW50IC50YWJzIGxpK2xpe21hcmdpbi10b3A6MH0uY29udGVudC5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5jb250ZW50LmlzLW5vcm1hbHtmb250LXNpemU6MXJlbX0uY29udGVudC5pcy1tZWRpdW17Zm9udC1zaXplOjEuMjVyZW19LmNvbnRlbnQuaXMtbGFyZ2V7Zm9udC1zaXplOjEuNXJlbX0uaWNvbnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDoxLjVyZW07d2lkdGg6MS41cmVtfS5pY29uLmlzLXNtYWxse2hlaWdodDoxcmVtO3dpZHRoOjFyZW19Lmljb24uaXMtbWVkaXVte2hlaWdodDoycmVtO3dpZHRoOjJyZW19Lmljb24uaXMtbGFyZ2V7aGVpZ2h0OjNyZW07d2lkdGg6M3JlbX0uaWNvbi10ZXh0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtd3JhcDp3cmFwO2xpbmUtaGVpZ2h0OjEuNXJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9Lmljb24tdGV4dCAuaWNvbntmbGV4LWdyb3c6MDtmbGV4LXNocmluazowfS5pY29uLXRleHQgLmljb246bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjI1ZW19Lmljb24tdGV4dCAuaWNvbjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDouMjVlbX1kaXYuaWNvbi10ZXh0e2Rpc3BsYXk6ZmxleH0uaW1hZ2V7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uaW1hZ2UgaW1ne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OmF1dG87d2lkdGg6MTAwJX0uaW1hZ2UgaW1nLmlzLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LmltYWdlLmlzLWZ1bGx3aWR0aHt3aWR0aDoxMDAlfS5pbWFnZS5pcy1zcXVhcmUgaW1nLC5pbWFnZS5pcy1zcXVhcmUgLmhhcy1yYXRpbywuaW1hZ2UuaXMtMWJ5MSBpbWcsLmltYWdlLmlzLTFieTEgLmhhcy1yYXRpbywuaW1hZ2UuaXMtNWJ5NCBpbWcsLmltYWdlLmlzLTVieTQgLmhhcy1yYXRpbywuaW1hZ2UuaXMtNGJ5MyBpbWcsLmltYWdlLmlzLTRieTMgLmhhcy1yYXRpbywuaW1hZ2UuaXMtM2J5MiBpbWcsLmltYWdlLmlzLTNieTIgLmhhcy1yYXRpbywuaW1hZ2UuaXMtNWJ5MyBpbWcsLmltYWdlLmlzLTVieTMgLmhhcy1yYXRpbywuaW1hZ2UuaXMtMTZieTkgaW1nLC5pbWFnZS5pcy0xNmJ5OSAuaGFzLXJhdGlvLC5pbWFnZS5pcy0yYnkxIGltZywuaW1hZ2UuaXMtMmJ5MSAuaGFzLXJhdGlvLC5pbWFnZS5pcy0zYnkxIGltZywuaW1hZ2UuaXMtM2J5MSAuaGFzLXJhdGlvLC5pbWFnZS5pcy00Ynk1IGltZywuaW1hZ2UuaXMtNGJ5NSAuaGFzLXJhdGlvLC5pbWFnZS5pcy0zYnk0IGltZywuaW1hZ2UuaXMtM2J5NCAuaGFzLXJhdGlvLC5pbWFnZS5pcy0yYnkzIGltZywuaW1hZ2UuaXMtMmJ5MyAuaGFzLXJhdGlvLC5pbWFnZS5pcy0zYnk1IGltZywuaW1hZ2UuaXMtM2J5NSAuaGFzLXJhdGlvLC5pbWFnZS5pcy05YnkxNiBpbWcsLmltYWdlLmlzLTlieTE2IC5oYXMtcmF0aW8sLmltYWdlLmlzLTFieTIgaW1nLC5pbWFnZS5pcy0xYnkyIC5oYXMtcmF0aW8sLmltYWdlLmlzLTFieTMgaW1nLC5pbWFnZS5pcy0xYnkzIC5oYXMtcmF0aW97aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uaW1hZ2UuaXMtc3F1YXJlLC5pbWFnZS5pcy0xYnkxe3BhZGRpbmctdG9wOjEwMCV9LmltYWdlLmlzLTVieTR7cGFkZGluZy10b3A6ODAlfS5pbWFnZS5pcy00Ynkze3BhZGRpbmctdG9wOjc1JX0uaW1hZ2UuaXMtM2J5MntwYWRkaW5nLXRvcDo2Ni42NjY2JX0uaW1hZ2UuaXMtNWJ5M3twYWRkaW5nLXRvcDo2MCV9LmltYWdlLmlzLTE2Ynk5e3BhZGRpbmctdG9wOjU2LjI1JX0uaW1hZ2UuaXMtMmJ5MXtwYWRkaW5nLXRvcDo1MCV9LmltYWdlLmlzLTNieTF7cGFkZGluZy10b3A6MzMuMzMzMyV9LmltYWdlLmlzLTRieTV7cGFkZGluZy10b3A6MTI1JX0uaW1hZ2UuaXMtM2J5NHtwYWRkaW5nLXRvcDoxMzMuMzMzMyV9LmltYWdlLmlzLTJieTN7cGFkZGluZy10b3A6MTUwJX0uaW1hZ2UuaXMtM2J5NXtwYWRkaW5nLXRvcDoxNjYuNjY2NiV9LmltYWdlLmlzLTlieTE2e3BhZGRpbmctdG9wOjE3Ny43Nzc3JX0uaW1hZ2UuaXMtMWJ5MntwYWRkaW5nLXRvcDoyMDAlfS5pbWFnZS5pcy0xYnkze3BhZGRpbmctdG9wOjMwMCV9LmltYWdlLmlzLTE2eDE2e2hlaWdodDoxNnB4O3dpZHRoOjE2cHh9LmltYWdlLmlzLTI0eDI0e2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9LmltYWdlLmlzLTMyeDMye2hlaWdodDozMnB4O3dpZHRoOjMycHh9LmltYWdlLmlzLTQ4eDQ4e2hlaWdodDo0OHB4O3dpZHRoOjQ4cHh9LmltYWdlLmlzLTY0eDY0e2hlaWdodDo2NHB4O3dpZHRoOjY0cHh9LmltYWdlLmlzLTk2eDk2e2hlaWdodDo5NnB4O3dpZHRoOjk2cHh9LmltYWdlLmlzLTEyOHgxMjh7aGVpZ2h0OjEyOHB4O3dpZHRoOjEyOHB4fS5ub3RpZmljYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1yYWRpdXM6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MS4yNXJlbSAyLjVyZW0gMS4yNXJlbSAxLjVyZW19Lm5vdGlmaWNhdGlvbiBhOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duLWl0ZW0pe2NvbG9yOmN1cnJlbnRDb2xvcjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5ub3RpZmljYXRpb24gc3Ryb25ne2NvbG9yOmN1cnJlbnRDb2xvcn0ubm90aWZpY2F0aW9uIGNvZGUsLm5vdGlmaWNhdGlvbiBwcmV7YmFja2dyb3VuZDojZmZmfS5ub3RpZmljYXRpb24gcHJlIGNvZGV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApfS5ub3RpZmljYXRpb24+LmRlbGV0ZXtyaWdodDouNXJlbTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjVyZW19Lm5vdGlmaWNhdGlvbiAudGl0bGUsLm5vdGlmaWNhdGlvbiAuc3VidGl0bGUsLm5vdGlmaWNhdGlvbiAuY29udGVudHtjb2xvcjpjdXJyZW50Q29sb3J9Lm5vdGlmaWNhdGlvbi5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0ubm90aWZpY2F0aW9uLmlzLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtjb2xvcjojZmZmfS5ub3RpZmljYXRpb24uaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5ub3RpZmljYXRpb24uaXMtZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTg7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLmlzLXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmO2NvbG9yOiNmZmZ9Lm5vdGlmaWNhdGlvbi5pcy1wcmltYXJ5LmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2YwZjlmMjtjb2xvcjojMmY3YTQxfS5ub3RpZmljYXRpb24uaXMtbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLmlzLWxpbmsuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZWJmMGZmO2NvbG9yOiMwMDM3ZGJ9Lm5vdGlmaWNhdGlvbi5pcy1pbmZve2JhY2tncm91bmQtY29sb3I6I2YwZjhmZjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubm90aWZpY2F0aW9uLmlzLWluZm8uaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOiMwMDRmOTR9Lm5vdGlmaWNhdGlvbi5pcy1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZTtjb2xvcjojZmZmfS5ub3RpZmljYXRpb24uaXMtc3VjY2Vzcy5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNlZmZhZjU7Y29sb3I6IzI1Nzk1M30ubm90aWZpY2F0aW9uLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5ub3RpZmljYXRpb24uaXMtd2FybmluZy5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY5ZWI7Y29sb3I6Izk0NmIwMH0ubm90aWZpY2F0aW9uLmlzLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLmlzLWRhbmdlci5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmZWVjZjA7Y29sb3I6I2NjMGYzNX0ucHJvZ3Jlc3N7LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo5OTk5cHg7ZGlzcGxheTpibG9jaztoZWlnaHQ6MXJlbTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3dpZHRoOjEwMCV9LnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNlZGVkZWR9LnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6IzRhNGE0YX0ucHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6IzRhNGE0YX0ucHJvZ3Jlc3M6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzRhNGE0YTtib3JkZXI6bm9uZX0ucHJvZ3Jlc3MuaXMtd2hpdGU6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5wcm9ncmVzcy5pcy13aGl0ZTo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5wcm9ncmVzcy5pcy13aGl0ZTo6LW1zLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5wcm9ncmVzcy5pcy13aGl0ZTppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBoc2woMCwgMCUsIDEwMCUpIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLWJsYWNrOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6IzBhMGEwYX0ucHJvZ3Jlc3MuaXMtYmxhY2s6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6IzBhMGEwYX0ucHJvZ3Jlc3MuaXMtYmxhY2s6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzBhMGEwYX0ucHJvZ3Jlc3MuaXMtYmxhY2s6aW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgaHNsKDAsIDAlLCA0JSkgMzAlLCBoc2woMCwgMCUsIDkzJSkgMzAlKX0ucHJvZ3Jlc3MuaXMtbGlnaHQ6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2fS5wcm9ncmVzcy5pcy1saWdodDo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2fS5wcm9ncmVzcy5pcy1saWdodDo6LW1zLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2fS5wcm9ncmVzcy5pcy1saWdodDppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZDJmOWQ2IDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLWRhcms6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4fS5wcm9ncmVzcy5pcy1kYXJrOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTh9LnByb2dyZXNzLmlzLWRhcms6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzQ1OTU1OH0ucHJvZ3Jlc3MuaXMtZGFyazppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNDU5NTU4IDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLXByaW1hcnk6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmfS5wcm9ncmVzcy5pcy1wcmltYXJ5OjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmZ9LnByb2dyZXNzLmlzLXByaW1hcnk6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zn0ucHJvZ3Jlc3MuaXMtcHJpbWFyeTppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNTViZTZmIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLWxpbms6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmfS5wcm9ncmVzcy5pcy1saW5rOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmZ9LnByb2dyZXNzLmlzLWxpbms6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZn0ucHJvZ3Jlc3MuaXMtbGluazppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNDg3NmZmIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLWluZm86Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmfS5wcm9ncmVzcy5pcy1pbmZvOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmZ9LnByb2dyZXNzLmlzLWluZm86Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6I2YwZjhmZn0ucHJvZ3Jlc3MuaXMtaW5mbzppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZjBmOGZmIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLXN1Y2Nlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlfS5wcm9ncmVzcy5pcy1zdWNjZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGV9LnByb2dyZXNzLmlzLXN1Y2Nlc3M6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZX0ucHJvZ3Jlc3MuaXMtc3VjY2VzczppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBoc2woMTUzLCA1MyUsIDUzJSkgMzAlLCBoc2woMCwgMCUsIDkzJSkgMzAlKX0ucHJvZ3Jlc3MuaXMtd2FybmluZzo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzV9LnByb2dyZXNzLmlzLXdhcm5pbmc6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZDk3NX0ucHJvZ3Jlc3MuaXMtd2FybmluZzo6LW1zLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1fS5wcm9ncmVzcy5pcy13YXJuaW5nOmluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmZmQ5NzUgMzAlLCBoc2woMCwgMCUsIDkzJSkgMzAlKX0ucHJvZ3Jlc3MuaXMtZGFuZ2VyOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6I2YxNDY2OH0ucHJvZ3Jlc3MuaXMtZGFuZ2VyOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njh9LnByb2dyZXNzLmlzLWRhbmdlcjo6LW1zLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4fS5wcm9ncmVzcy5pcy1kYW5nZXI6aW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgaHNsKDM0OCwgODYlLCA2MSUpIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzOmluZGV0ZXJtaW5hdGV7YW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tbmFtZTptb3ZlSW5kZXRlcm1pbmF0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjtiYWNrZ3JvdW5kLWNvbG9yOiNlZGVkZWQ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGhzbCgwLCAwJSwgMjklKSAzMCUsIGhzbCgwLCAwJSwgOTMlKSAzMCUpO2JhY2tncm91bmQtcG9zaXRpb246dG9wIGxlZnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxNTAlIDE1MCV9LnByb2dyZXNzOmluZGV0ZXJtaW5hdGU6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0ucHJvZ3Jlc3M6aW5kZXRlcm1pbmF0ZTo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5wcm9ncmVzczppbmRldGVybWluYXRlOjotbXMtZmlsbHthbmltYXRpb24tbmFtZTpub25lfS5wcm9ncmVzcy5pcy1zbWFsbHtoZWlnaHQ6Ljc1cmVtfS5wcm9ncmVzcy5pcy1tZWRpdW17aGVpZ2h0OjEuMjVyZW19LnByb2dyZXNzLmlzLWxhcmdle2hlaWdodDoxLjVyZW19QGtleWZyYW1lcyBtb3ZlSW5kZXRlcm1pbmF0ZXtmcm9te2JhY2tncm91bmQtcG9zaXRpb246MjAwJSAwfXRve2JhY2tncm91bmQtcG9zaXRpb246LTIwMCUgMH19LnRhYmxle2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMzYzNjM2fS50YWJsZSB0ZCwudGFibGUgdGh7Ym9yZGVyOjFweCBzb2xpZCAjZGJkYmRiO2JvcmRlci13aWR0aDowIDAgMXB4O3BhZGRpbmc6LjVlbSAuNzVlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnRhYmxlIHRkLmlzLXdoaXRlLC50YWJsZSB0aC5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0udGFibGUgdGQuaXMtYmxhY2ssLnRhYmxlIHRoLmlzLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtib3JkZXItY29sb3I6IzBhMGEwYTtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1saWdodCwudGFibGUgdGguaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2O2JvcmRlci1jb2xvcjojZDJmOWQ2O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS50YWJsZSB0ZC5pcy1kYXJrLC50YWJsZSB0aC5pcy1kYXJre2JhY2tncm91bmQtY29sb3I6IzQ1OTU1ODtib3JkZXItY29sb3I6IzQ1OTU1ODtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1wcmltYXJ5LC50YWJsZSB0aC5pcy1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zjtib3JkZXItY29sb3I6IzU1YmU2Zjtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1saW5rLC50YWJsZSB0aC5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtib3JkZXItY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1pbmZvLC50YWJsZSB0aC5pcy1pbmZve2JhY2tncm91bmQtY29sb3I6I2YwZjhmZjtib3JkZXItY29sb3I6I2YwZjhmZjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0udGFibGUgdGQuaXMtc3VjY2VzcywudGFibGUgdGguaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGU7Ym9yZGVyLWNvbG9yOiM0OGM3OGU7Y29sb3I6I2ZmZn0udGFibGUgdGQuaXMtd2FybmluZywudGFibGUgdGguaXMtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzU7Ym9yZGVyLWNvbG9yOiNmZmQ5NzU7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LnRhYmxlIHRkLmlzLWRhbmdlciwudGFibGUgdGguaXMtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtib3JkZXItY29sb3I6I2YxNDY2ODtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1uYXJyb3csLnRhYmxlIHRoLmlzLW5hcnJvd3t3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MSV9LnRhYmxlIHRkLmlzLXNlbGVjdGVkLC50YWJsZSB0aC5pcy1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Y29sb3I6I2ZmZn0udGFibGUgdGQuaXMtc2VsZWN0ZWQgYSwudGFibGUgdGQuaXMtc2VsZWN0ZWQgc3Ryb25nLC50YWJsZSB0aC5pcy1zZWxlY3RlZCBhLC50YWJsZSB0aC5pcy1zZWxlY3RlZCBzdHJvbmd7Y29sb3I6Y3VycmVudENvbG9yfS50YWJsZSB0ZC5pcy12Y2VudGVyZWQsLnRhYmxlIHRoLmlzLXZjZW50ZXJlZHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnRhYmxlIHRoe2NvbG9yOiMzNjM2MzZ9LnRhYmxlIHRoOm5vdChbYWxpZ25dKXt0ZXh0LWFsaWduOmluaGVyaXR9LnRhYmxlIHRyLmlzLXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zjtjb2xvcjojZmZmfS50YWJsZSB0ci5pcy1zZWxlY3RlZCBhLC50YWJsZSB0ci5pcy1zZWxlY3RlZCBzdHJvbmd7Y29sb3I6Y3VycmVudENvbG9yfS50YWJsZSB0ci5pcy1zZWxlY3RlZCB0ZCwudGFibGUgdHIuaXMtc2VsZWN0ZWQgdGh7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6Y3VycmVudENvbG9yfS50YWJsZSB0aGVhZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9LnRhYmxlIHRoZWFkIHRkLC50YWJsZSB0aGVhZCB0aHtib3JkZXItd2lkdGg6MCAwIDJweDtjb2xvcjojMzYzNjM2fS50YWJsZSB0Zm9vdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9LnRhYmxlIHRmb290IHRkLC50YWJsZSB0Zm9vdCB0aHtib3JkZXItd2lkdGg6MnB4IDAgMDtjb2xvcjojMzYzNjM2fS50YWJsZSB0Ym9keXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9LnRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQsLnRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGh7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS50YWJsZS5pcy1ib3JkZXJlZCB0ZCwudGFibGUuaXMtYm9yZGVyZWQgdGh7Ym9yZGVyLXdpZHRoOjFweH0udGFibGUuaXMtYm9yZGVyZWQgdHI6bGFzdC1jaGlsZCB0ZCwudGFibGUuaXMtYm9yZGVyZWQgdHI6bGFzdC1jaGlsZCB0aHtib3JkZXItYm90dG9tLXdpZHRoOjFweH0udGFibGUuaXMtZnVsbHdpZHRoe3dpZHRoOjEwMCV9LnRhYmxlLmlzLWhvdmVyYWJsZSB0Ym9keSB0cjpub3QoLmlzLXNlbGVjdGVkKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9LnRhYmxlLmlzLWhvdmVyYWJsZS5pcy1zdHJpcGVkIHRib2R5IHRyOm5vdCguaXMtc2VsZWN0ZWQpOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYX0udGFibGUuaXMtaG92ZXJhYmxlLmlzLXN0cmlwZWQgdGJvZHkgdHI6bm90KC5pcy1zZWxlY3RlZCk6aG92ZXI6bnRoLWNoaWxkKGV2ZW4pe2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNX0udGFibGUuaXMtbmFycm93IHRkLC50YWJsZS5pcy1uYXJyb3cgdGh7cGFkZGluZzouMjVlbSAuNWVtfS50YWJsZS5pcy1zdHJpcGVkIHRib2R5IHRyOm5vdCguaXMtc2VsZWN0ZWQpOm50aC1jaGlsZChldmVuKXtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9LnRhYmxlLWNvbnRhaW5lcnstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdmVyZmxvdzphdXRvO292ZXJmbG93LXk6aGlkZGVuO21heC13aWR0aDoxMDAlfS50YWdze2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnRhZ3MgLnRhZ3ttYXJnaW4tYm90dG9tOi41cmVtfS50YWdzIC50YWc6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjVyZW19LnRhZ3M6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOi0wLjVyZW19LnRhZ3M6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjFyZW19LnRhZ3MuYXJlLW1lZGl1bSAudGFnOm5vdCguaXMtbm9ybWFsKTpub3QoLmlzLWxhcmdlKXtmb250LXNpemU6MXJlbX0udGFncy5hcmUtbGFyZ2UgLnRhZzpub3QoLmlzLW5vcm1hbCk6bm90KC5pcy1tZWRpdW0pe2ZvbnQtc2l6ZToxLjI1cmVtfS50YWdzLmlzLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnRhZ3MuaXMtY2VudGVyZWQgLnRhZ3ttYXJnaW4tcmlnaHQ6LjI1cmVtO21hcmdpbi1sZWZ0Oi4yNXJlbX0udGFncy5pcy1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnRhZ3MuaXMtcmlnaHQgLnRhZzpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDouNXJlbX0udGFncy5pcy1yaWdodCAudGFnOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjB9LnRhZ3MuaGFzLWFkZG9ucyAudGFne21hcmdpbi1yaWdodDowfS50YWdzLmhhcy1hZGRvbnMgLnRhZzpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LnRhZ3MuaGFzLWFkZG9ucyAudGFnOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS50YWc6bm90KGJvZHkpe2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6IzRhNGE0YTtkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtc2l6ZTouNzVyZW07aGVpZ2h0OjJlbTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjEuNTtwYWRkaW5nLWxlZnQ6Ljc1ZW07cGFkZGluZy1yaWdodDouNzVlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LnRhZzpub3QoYm9keSkgLmRlbGV0ZXttYXJnaW4tbGVmdDouMjVyZW07bWFyZ2luLXJpZ2h0Oi0wLjM3NXJlbX0udGFnOm5vdChib2R5KS5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0udGFnOm5vdChib2R5KS5pcy1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Y29sb3I6I2ZmZn0udGFnOm5vdChib2R5KS5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LnRhZzpub3QoYm9keSkuaXMtZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTg7Y29sb3I6I2ZmZn0udGFnOm5vdChib2R5KS5pcy1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zjtjb2xvcjojZmZmfS50YWc6bm90KGJvZHkpLmlzLXByaW1hcnkuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjBmOWYyO2NvbG9yOiMyZjdhNDF9LnRhZzpub3QoYm9keSkuaXMtbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0udGFnOm5vdChib2R5KS5pcy1saW5rLmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2ViZjBmZjtjb2xvcjojMDAzN2RifS50YWc6bm90KGJvZHkpLmlzLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS50YWc6bm90KGJvZHkpLmlzLWluZm8uaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOiMwMDRmOTR9LnRhZzpub3QoYm9keSkuaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGU7Y29sb3I6I2ZmZn0udGFnOm5vdChib2R5KS5pcy1zdWNjZXNzLmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2VmZmFmNTtjb2xvcjojMjU3OTUzfS50YWc6bm90KGJvZHkpLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS50YWc6bm90KGJvZHkpLmlzLXdhcm5pbmcuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmZmOWViO2NvbG9yOiM5NDZiMDB9LnRhZzpub3QoYm9keSkuaXMtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtjb2xvcjojZmZmfS50YWc6bm90KGJvZHkpLmlzLWRhbmdlci5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmZWVjZjA7Y29sb3I6I2NjMGYzNX0udGFnOm5vdChib2R5KS5pcy1ub3JtYWx7Zm9udC1zaXplOi43NXJlbX0udGFnOm5vdChib2R5KS5pcy1tZWRpdW17Zm9udC1zaXplOjFyZW19LnRhZzpub3QoYm9keSkuaXMtbGFyZ2V7Zm9udC1zaXplOjEuMjVyZW19LnRhZzpub3QoYm9keSkgLmljb246Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tbGVmdDotMC4zNzVlbTttYXJnaW4tcmlnaHQ6LjE4NzVlbX0udGFnOm5vdChib2R5KSAuaWNvbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi4xODc1ZW07bWFyZ2luLXJpZ2h0Oi0wLjM3NWVtfS50YWc6bm90KGJvZHkpIC5pY29uOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGR7bWFyZ2luLWxlZnQ6LTAuMzc1ZW07bWFyZ2luLXJpZ2h0Oi0wLjM3NWVtfS50YWc6bm90KGJvZHkpLmlzLWRlbGV0ZXttYXJnaW4tbGVmdDoxcHg7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjJlbX0udGFnOm5vdChib2R5KS5pcy1kZWxldGU6OmJlZm9yZSwudGFnOm5vdChib2R5KS5pcy1kZWxldGU6OmFmdGVye2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztsZWZ0OjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXJ9LnRhZzpub3QoYm9keSkuaXMtZGVsZXRlOjpiZWZvcmV7aGVpZ2h0OjFweDt3aWR0aDo1MCV9LnRhZzpub3QoYm9keSkuaXMtZGVsZXRlOjphZnRlcntoZWlnaHQ6NTAlO3dpZHRoOjFweH0udGFnOm5vdChib2R5KS5pcy1kZWxldGU6aG92ZXIsLnRhZzpub3QoYm9keSkuaXMtZGVsZXRlOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2U4ZThlOH0udGFnOm5vdChib2R5KS5pcy1kZWxldGU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2RiZGJkYn0udGFnOm5vdChib2R5KS5pcy1yb3VuZGVke2JvcmRlci1yYWRpdXM6OTk5OXB4fWEudGFnOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnRpdGxlLC5zdWJ0aXRsZXt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LnRpdGxlIGVtLC50aXRsZSBzcGFuLC5zdWJ0aXRsZSBlbSwuc3VidGl0bGUgc3Bhbntmb250LXdlaWdodDppbmhlcml0fS50aXRsZSBzdWIsLnN1YnRpdGxlIHN1Yntmb250LXNpemU6Ljc1ZW19LnRpdGxlIHN1cCwuc3VidGl0bGUgc3Vwe2ZvbnQtc2l6ZTouNzVlbX0udGl0bGUgLnRhZywuc3VidGl0bGUgLnRhZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnRpdGxle2NvbG9yOiMzNjM2MzY7Zm9udC1zaXplOjJyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuMTI1fS50aXRsZSBzdHJvbmd7Y29sb3I6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0fS50aXRsZTpub3QoLmlzLXNwYWNlZCkrLnN1YnRpdGxle21hcmdpbi10b3A6LTEuMjVyZW19LnRpdGxlLmlzLTF7Zm9udC1zaXplOjNyZW19LnRpdGxlLmlzLTJ7Zm9udC1zaXplOjIuNXJlbX0udGl0bGUuaXMtM3tmb250LXNpemU6MnJlbX0udGl0bGUuaXMtNHtmb250LXNpemU6MS41cmVtfS50aXRsZS5pcy01e2ZvbnQtc2l6ZToxLjI1cmVtfS50aXRsZS5pcy02e2ZvbnQtc2l6ZToxcmVtfS50aXRsZS5pcy03e2ZvbnQtc2l6ZTouNzVyZW19LnN1YnRpdGxle2NvbG9yOiM0YTRhNGE7Zm9udC1zaXplOjEuMjVyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMjV9LnN1YnRpdGxlIHN0cm9uZ3tjb2xvcjojMzYzNjM2O2ZvbnQtd2VpZ2h0OjYwMH0uc3VidGl0bGU6bm90KC5pcy1zcGFjZWQpKy50aXRsZXttYXJnaW4tdG9wOi0xLjI1cmVtfS5zdWJ0aXRsZS5pcy0xe2ZvbnQtc2l6ZTozcmVtfS5zdWJ0aXRsZS5pcy0ye2ZvbnQtc2l6ZToyLjVyZW19LnN1YnRpdGxlLmlzLTN7Zm9udC1zaXplOjJyZW19LnN1YnRpdGxlLmlzLTR7Zm9udC1zaXplOjEuNXJlbX0uc3VidGl0bGUuaXMtNXtmb250LXNpemU6MS4yNXJlbX0uc3VidGl0bGUuaXMtNntmb250LXNpemU6MXJlbX0uc3VidGl0bGUuaXMtN3tmb250LXNpemU6Ljc1cmVtfS5oZWFkaW5ne2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6MXB4O21hcmdpbi1ib3R0b206NXB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ubnVtYmVye2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo5OTk5cHg7ZGlzcGxheTppbmxpbmUtZmxleDtmb250LXNpemU6MS4yNXJlbTtoZWlnaHQ6MmVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXJpZ2h0OjEuNXJlbTttaW4td2lkdGg6Mi41ZW07cGFkZGluZzouMjVyZW0gLjVyZW07dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246dG9wfS5zZWxlY3Qgc2VsZWN0LC50ZXh0YXJlYSwuaW5wdXR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZGJkYmRiO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiMzNjM2MzZ9LnNlbGVjdCBzZWxlY3Q6Oi1tb3otcGxhY2Vob2xkZXIsLnRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyLC5pbnB1dDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojNzU3NTc1fS5zZWxlY3Qgc2VsZWN0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLC50ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwuaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6Izc1NzU3NX0uc2VsZWN0IHNlbGVjdDotbW96LXBsYWNlaG9sZGVyLC50ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyLC5pbnB1dDotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM3NTc1NzV9LnNlbGVjdCBzZWxlY3Q6LW1zLWlucHV0LXBsYWNlaG9sZGVyLC50ZXh0YXJlYTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsLmlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojNzU3NTc1fS5zZWxlY3Qgc2VsZWN0OmhvdmVyLC50ZXh0YXJlYTpob3ZlciwuaW5wdXQ6aG92ZXIsLnNlbGVjdCBzZWxlY3QuaXMtaG92ZXJlZCwuaXMtaG92ZXJlZC50ZXh0YXJlYSwuaXMtaG92ZXJlZC5pbnB1dHtib3JkZXItY29sb3I6I2I1YjViNX0uc2VsZWN0IHNlbGVjdDpmb2N1cywudGV4dGFyZWE6Zm9jdXMsLmlucHV0OmZvY3VzLC5zZWxlY3Qgc2VsZWN0LmlzLWZvY3VzZWQsLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWZvY3VzZWQuaW5wdXQsLnNlbGVjdCBzZWxlY3Q6YWN0aXZlLC50ZXh0YXJlYTphY3RpdmUsLmlucHV0OmFjdGl2ZSwuc2VsZWN0IHNlbGVjdC5pcy1hY3RpdmUsLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtYWN0aXZlLmlucHV0e2JvcmRlci1jb2xvcjojNDg3NmZmO2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoNzIsMTE4LDI1NSwuMjUpfS5zZWxlY3Qgc2VsZWN0W2Rpc2FibGVkXSxbZGlzYWJsZWRdLnRleHRhcmVhLFtkaXNhYmxlZF0uaW5wdXQsZmllbGRzZXRbZGlzYWJsZWRdIC5zZWxlY3Qgc2VsZWN0LC5zZWxlY3QgZmllbGRzZXRbZGlzYWJsZWRdIHNlbGVjdCxmaWVsZHNldFtkaXNhYmxlZF0gLnRleHRhcmVhLGZpZWxkc2V0W2Rpc2FibGVkXSAuaW5wdXR7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1jb2xvcjojZjVmNWY1O2JveC1zaGFkb3c6bm9uZTtjb2xvcjojN2E3YTdhfS5zZWxlY3Qgc2VsZWN0W2Rpc2FibGVkXTo6LW1vei1wbGFjZWhvbGRlcixbZGlzYWJsZWRdLnRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyLFtkaXNhYmxlZF0uaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5zZWxlY3Qgc2VsZWN0OjotbW96LXBsYWNlaG9sZGVyLC5zZWxlY3QgZmllbGRzZXRbZGlzYWJsZWRdIHNlbGVjdDo6LW1vei1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLnRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6IzcwNzA3MH0uc2VsZWN0IHNlbGVjdFtkaXNhYmxlZF06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsW2Rpc2FibGVkXS50ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixbZGlzYWJsZWRdLmlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuc2VsZWN0IHNlbGVjdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwuc2VsZWN0IGZpZWxkc2V0W2Rpc2FibGVkXSBzZWxlY3Q6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC50ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLmlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiM3MDcwNzB9LnNlbGVjdCBzZWxlY3RbZGlzYWJsZWRdOi1tb3otcGxhY2Vob2xkZXIsW2Rpc2FibGVkXS50ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyLFtkaXNhYmxlZF0uaW5wdXQ6LW1vei1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLnNlbGVjdCBzZWxlY3Q6LW1vei1wbGFjZWhvbGRlciwuc2VsZWN0IGZpZWxkc2V0W2Rpc2FibGVkXSBzZWxlY3Q6LW1vei1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLnRleHRhcmVhOi1tb3otcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5pbnB1dDotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM3MDcwNzB9LnNlbGVjdCBzZWxlY3RbZGlzYWJsZWRdOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixbZGlzYWJsZWRdLnRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixbZGlzYWJsZWRdLmlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLnNlbGVjdCBzZWxlY3Q6LW1zLWlucHV0LXBsYWNlaG9sZGVyLC5zZWxlY3QgZmllbGRzZXRbZGlzYWJsZWRdIHNlbGVjdDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC50ZXh0YXJlYTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6IzcwNzA3MH0udGV4dGFyZWEsLmlucHV0e2JveC1zaGFkb3c6aW5zZXQgMCAuMDYyNWVtIC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4wNSk7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX1bcmVhZG9ubHldLnRleHRhcmVhLFtyZWFkb25seV0uaW5wdXR7Ym94LXNoYWRvdzpub25lfS5pcy13aGl0ZS50ZXh0YXJlYSwuaXMtd2hpdGUuaW5wdXR7Ym9yZGVyLWNvbG9yOiNmZmZ9LmlzLXdoaXRlLnRleHRhcmVhOmZvY3VzLC5pcy13aGl0ZS5pbnB1dDpmb2N1cywuaXMtd2hpdGUuaXMtZm9jdXNlZC50ZXh0YXJlYSwuaXMtd2hpdGUuaXMtZm9jdXNlZC5pbnB1dCwuaXMtd2hpdGUudGV4dGFyZWE6YWN0aXZlLC5pcy13aGl0ZS5pbnB1dDphY3RpdmUsLmlzLXdoaXRlLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtd2hpdGUuaXMtYWN0aXZlLmlucHV0e2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDI1NSwyNTUsLjI1KX0uaXMtYmxhY2sudGV4dGFyZWEsLmlzLWJsYWNrLmlucHV0e2JvcmRlci1jb2xvcjojMGEwYTBhfS5pcy1ibGFjay50ZXh0YXJlYTpmb2N1cywuaXMtYmxhY2suaW5wdXQ6Zm9jdXMsLmlzLWJsYWNrLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWJsYWNrLmlzLWZvY3VzZWQuaW5wdXQsLmlzLWJsYWNrLnRleHRhcmVhOmFjdGl2ZSwuaXMtYmxhY2suaW5wdXQ6YWN0aXZlLC5pcy1ibGFjay5pcy1hY3RpdmUudGV4dGFyZWEsLmlzLWJsYWNrLmlzLWFjdGl2ZS5pbnB1dHtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4yNSl9LmlzLWxpZ2h0LnRleHRhcmVhLC5pcy1saWdodC5pbnB1dHtib3JkZXItY29sb3I6I2QyZjlkNn0uaXMtbGlnaHQudGV4dGFyZWE6Zm9jdXMsLmlzLWxpZ2h0LmlucHV0OmZvY3VzLC5pcy1saWdodC5pcy1mb2N1c2VkLnRleHRhcmVhLC5pcy1saWdodC5pcy1mb2N1c2VkLmlucHV0LC5pcy1saWdodC50ZXh0YXJlYTphY3RpdmUsLmlzLWxpZ2h0LmlucHV0OmFjdGl2ZSwuaXMtbGlnaHQuaXMtYWN0aXZlLnRleHRhcmVhLC5pcy1saWdodC5pcy1hY3RpdmUuaW5wdXR7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyMTAsMjQ5LDIxNCwuMjUpfS5pcy1kYXJrLnRleHRhcmVhLC5pcy1kYXJrLmlucHV0e2JvcmRlci1jb2xvcjojNDU5NTU4fS5pcy1kYXJrLnRleHRhcmVhOmZvY3VzLC5pcy1kYXJrLmlucHV0OmZvY3VzLC5pcy1kYXJrLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWRhcmsuaXMtZm9jdXNlZC5pbnB1dCwuaXMtZGFyay50ZXh0YXJlYTphY3RpdmUsLmlzLWRhcmsuaW5wdXQ6YWN0aXZlLC5pcy1kYXJrLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtZGFyay5pcy1hY3RpdmUuaW5wdXR7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg2OSwxNDksODgsLjI1KX0uaXMtcHJpbWFyeS50ZXh0YXJlYSwuaXMtcHJpbWFyeS5pbnB1dHtib3JkZXItY29sb3I6IzU1YmU2Zn0uaXMtcHJpbWFyeS50ZXh0YXJlYTpmb2N1cywuaXMtcHJpbWFyeS5pbnB1dDpmb2N1cywuaXMtcHJpbWFyeS5pcy1mb2N1c2VkLnRleHRhcmVhLC5pcy1wcmltYXJ5LmlzLWZvY3VzZWQuaW5wdXQsLmlzLXByaW1hcnkudGV4dGFyZWE6YWN0aXZlLC5pcy1wcmltYXJ5LmlucHV0OmFjdGl2ZSwuaXMtcHJpbWFyeS5pcy1hY3RpdmUudGV4dGFyZWEsLmlzLXByaW1hcnkuaXMtYWN0aXZlLmlucHV0e2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoODUsMTkwLDExMSwuMjUpfS5pcy1saW5rLnRleHRhcmVhLC5pcy1saW5rLmlucHV0e2JvcmRlci1jb2xvcjojNDg3NmZmfS5pcy1saW5rLnRleHRhcmVhOmZvY3VzLC5pcy1saW5rLmlucHV0OmZvY3VzLC5pcy1saW5rLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWxpbmsuaXMtZm9jdXNlZC5pbnB1dCwuaXMtbGluay50ZXh0YXJlYTphY3RpdmUsLmlzLWxpbmsuaW5wdXQ6YWN0aXZlLC5pcy1saW5rLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtbGluay5pcy1hY3RpdmUuaW5wdXR7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg3MiwxMTgsMjU1LC4yNSl9LmlzLWluZm8udGV4dGFyZWEsLmlzLWluZm8uaW5wdXR7Ym9yZGVyLWNvbG9yOiNmMGY4ZmZ9LmlzLWluZm8udGV4dGFyZWE6Zm9jdXMsLmlzLWluZm8uaW5wdXQ6Zm9jdXMsLmlzLWluZm8uaXMtZm9jdXNlZC50ZXh0YXJlYSwuaXMtaW5mby5pcy1mb2N1c2VkLmlucHV0LC5pcy1pbmZvLnRleHRhcmVhOmFjdGl2ZSwuaXMtaW5mby5pbnB1dDphY3RpdmUsLmlzLWluZm8uaXMtYWN0aXZlLnRleHRhcmVhLC5pcy1pbmZvLmlzLWFjdGl2ZS5pbnB1dHtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDI0MCwyNDgsMjU1LC4yNSl9LmlzLXN1Y2Nlc3MudGV4dGFyZWEsLmlzLXN1Y2Nlc3MuaW5wdXR7Ym9yZGVyLWNvbG9yOiM0OGM3OGV9LmlzLXN1Y2Nlc3MudGV4dGFyZWE6Zm9jdXMsLmlzLXN1Y2Nlc3MuaW5wdXQ6Zm9jdXMsLmlzLXN1Y2Nlc3MuaXMtZm9jdXNlZC50ZXh0YXJlYSwuaXMtc3VjY2Vzcy5pcy1mb2N1c2VkLmlucHV0LC5pcy1zdWNjZXNzLnRleHRhcmVhOmFjdGl2ZSwuaXMtc3VjY2Vzcy5pbnB1dDphY3RpdmUsLmlzLXN1Y2Nlc3MuaXMtYWN0aXZlLnRleHRhcmVhLC5pcy1zdWNjZXNzLmlzLWFjdGl2ZS5pbnB1dHtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDcyLDE5OSwxNDIsLjI1KX0uaXMtd2FybmluZy50ZXh0YXJlYSwuaXMtd2FybmluZy5pbnB1dHtib3JkZXItY29sb3I6I2ZmZDk3NX0uaXMtd2FybmluZy50ZXh0YXJlYTpmb2N1cywuaXMtd2FybmluZy5pbnB1dDpmb2N1cywuaXMtd2FybmluZy5pcy1mb2N1c2VkLnRleHRhcmVhLC5pcy13YXJuaW5nLmlzLWZvY3VzZWQuaW5wdXQsLmlzLXdhcm5pbmcudGV4dGFyZWE6YWN0aXZlLC5pcy13YXJuaW5nLmlucHV0OmFjdGl2ZSwuaXMtd2FybmluZy5pcy1hY3RpdmUudGV4dGFyZWEsLmlzLXdhcm5pbmcuaXMtYWN0aXZlLmlucHV0e2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDIxNywxMTcsLjI1KX0uaXMtZGFuZ2VyLnRleHRhcmVhLC5pcy1kYW5nZXIuaW5wdXR7Ym9yZGVyLWNvbG9yOiNmMTQ2Njh9LmlzLWRhbmdlci50ZXh0YXJlYTpmb2N1cywuaXMtZGFuZ2VyLmlucHV0OmZvY3VzLC5pcy1kYW5nZXIuaXMtZm9jdXNlZC50ZXh0YXJlYSwuaXMtZGFuZ2VyLmlzLWZvY3VzZWQuaW5wdXQsLmlzLWRhbmdlci50ZXh0YXJlYTphY3RpdmUsLmlzLWRhbmdlci5pbnB1dDphY3RpdmUsLmlzLWRhbmdlci5pcy1hY3RpdmUudGV4dGFyZWEsLmlzLWRhbmdlci5pcy1hY3RpdmUuaW5wdXR7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyNDEsNzAsMTA0LC4yNSl9LmlzLXNtYWxsLnRleHRhcmVhLC5pcy1zbWFsbC5pbnB1dHtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6Ljc1cmVtfS5pcy1tZWRpdW0udGV4dGFyZWEsLmlzLW1lZGl1bS5pbnB1dHtmb250LXNpemU6MS4yNXJlbX0uaXMtbGFyZ2UudGV4dGFyZWEsLmlzLWxhcmdlLmlucHV0e2ZvbnQtc2l6ZToxLjVyZW19LmlzLWZ1bGx3aWR0aC50ZXh0YXJlYSwuaXMtZnVsbHdpZHRoLmlucHV0e2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0uaXMtaW5saW5lLnRleHRhcmVhLC5pcy1pbmxpbmUuaW5wdXR7ZGlzcGxheTppbmxpbmU7d2lkdGg6YXV0b30uaW5wdXQuaXMtcm91bmRlZHtib3JkZXItcmFkaXVzOjk5OTlweDtwYWRkaW5nLWxlZnQ6Y2FsYyhjYWxjKDAuNzVlbSAtIDFweCkgKyAuMzc1ZW0pO3BhZGRpbmctcmlnaHQ6Y2FsYyhjYWxjKDAuNzVlbSAtIDFweCkgKyAuMzc1ZW0pfS5pbnB1dC5pcy1zdGF0aWN7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZTtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LnRleHRhcmVhe2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjEwMCU7cGFkZGluZzpjYWxjKC43NWVtIC0gMXB4KTtyZXNpemU6dmVydGljYWx9LnRleHRhcmVhOm5vdChbcm93c10pe21heC1oZWlnaHQ6NDBlbTttaW4taGVpZ2h0OjhlbX0udGV4dGFyZWFbcm93c117aGVpZ2h0OmluaXRpYWx9LnRleHRhcmVhLmhhcy1maXhlZC1zaXple3Jlc2l6ZTpub25lfS5yYWRpbywuY2hlY2tib3h7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MS4yNTtwb3NpdGlvbjpyZWxhdGl2ZX0ucmFkaW8gaW5wdXQsLmNoZWNrYm94IGlucHV0e2N1cnNvcjpwb2ludGVyfS5yYWRpbzpob3ZlciwuY2hlY2tib3g6aG92ZXJ7Y29sb3I6IzM2MzYzNn1bZGlzYWJsZWRdLnJhZGlvLFtkaXNhYmxlZF0uY2hlY2tib3gsZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpbyxmaWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94LC5yYWRpbyBpbnB1dFtkaXNhYmxlZF0sLmNoZWNrYm94IGlucHV0W2Rpc2FibGVkXXtjb2xvcjojN2E3YTdhO2N1cnNvcjpub3QtYWxsb3dlZH0ucmFkaW8rLnJhZGlve21hcmdpbi1sZWZ0Oi41ZW19LnNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnNlbGVjdDpub3QoLmlzLW11bHRpcGxlKXtoZWlnaHQ6Mi41ZW19LnNlbGVjdDpub3QoLmlzLW11bHRpcGxlKTpub3QoLmlzLWxvYWRpbmcpOjphZnRlcntib3JkZXItY29sb3I6IzQ4NzZmZjtyaWdodDoxLjEyNWVtO3otaW5kZXg6NH0uc2VsZWN0LmlzLXJvdW5kZWQgc2VsZWN0e2JvcmRlci1yYWRpdXM6OTk5OXB4O3BhZGRpbmctbGVmdDoxZW19LnNlbGVjdCBzZWxlY3R7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztmb250LXNpemU6MWVtO21heC13aWR0aDoxMDAlO291dGxpbmU6bm9uZX0uc2VsZWN0IHNlbGVjdDo6LW1zLWV4cGFuZHtkaXNwbGF5Om5vbmV9LnNlbGVjdCBzZWxlY3RbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuc2VsZWN0IHNlbGVjdDpob3Zlcntib3JkZXItY29sb3I6I2Y1ZjVmNX0uc2VsZWN0IHNlbGVjdDpub3QoW211bHRpcGxlXSl7cGFkZGluZy1yaWdodDoyLjVlbX0uc2VsZWN0IHNlbGVjdFttdWx0aXBsZV17aGVpZ2h0OmF1dG87cGFkZGluZzowfS5zZWxlY3Qgc2VsZWN0W211bHRpcGxlXSBvcHRpb257cGFkZGluZzouNWVtIDFlbX0uc2VsZWN0Om5vdCguaXMtbXVsdGlwbGUpOm5vdCguaXMtbG9hZGluZyk6aG92ZXI6OmFmdGVye2JvcmRlci1jb2xvcjojMzYzNjM2fS5zZWxlY3QuaXMtd2hpdGU6bm90KDpob3Zlcik6OmFmdGVye2JvcmRlci1jb2xvcjojZmZmfS5zZWxlY3QuaXMtd2hpdGUgc2VsZWN0e2JvcmRlci1jb2xvcjojZmZmfS5zZWxlY3QuaXMtd2hpdGUgc2VsZWN0OmhvdmVyLC5zZWxlY3QuaXMtd2hpdGUgc2VsZWN0LmlzLWhvdmVyZWR7Ym9yZGVyLWNvbG9yOiNmMmYyZjJ9LnNlbGVjdC5pcy13aGl0ZSBzZWxlY3Q6Zm9jdXMsLnNlbGVjdC5pcy13aGl0ZSBzZWxlY3QuaXMtZm9jdXNlZCwuc2VsZWN0LmlzLXdoaXRlIHNlbGVjdDphY3RpdmUsLnNlbGVjdC5pcy13aGl0ZSBzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDI1NSwyNTUsLjI1KX0uc2VsZWN0LmlzLWJsYWNrOm5vdCg6aG92ZXIpOjphZnRlcntib3JkZXItY29sb3I6IzBhMGEwYX0uc2VsZWN0LmlzLWJsYWNrIHNlbGVjdHtib3JkZXItY29sb3I6IzBhMGEwYX0uc2VsZWN0LmlzLWJsYWNrIHNlbGVjdDpob3Zlciwuc2VsZWN0LmlzLWJsYWNrIHNlbGVjdC5pcy1ob3ZlcmVke2JvcmRlci1jb2xvcjojMDAwfS5zZWxlY3QuaXMtYmxhY2sgc2VsZWN0OmZvY3VzLC5zZWxlY3QuaXMtYmxhY2sgc2VsZWN0LmlzLWZvY3VzZWQsLnNlbGVjdC5pcy1ibGFjayBzZWxlY3Q6YWN0aXZlLC5zZWxlY3QuaXMtYmxhY2sgc2VsZWN0LmlzLWFjdGl2ZXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4yNSl9LnNlbGVjdC5pcy1saWdodDpub3QoOmhvdmVyKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNkMmY5ZDZ9LnNlbGVjdC5pcy1saWdodCBzZWxlY3R7Ym9yZGVyLWNvbG9yOiNkMmY5ZDZ9LnNlbGVjdC5pcy1saWdodCBzZWxlY3Q6aG92ZXIsLnNlbGVjdC5pcy1saWdodCBzZWxlY3QuaXMtaG92ZXJlZHtib3JkZXItY29sb3I6I2JjZjZjMn0uc2VsZWN0LmlzLWxpZ2h0IHNlbGVjdDpmb2N1cywuc2VsZWN0LmlzLWxpZ2h0IHNlbGVjdC5pcy1mb2N1c2VkLC5zZWxlY3QuaXMtbGlnaHQgc2VsZWN0OmFjdGl2ZSwuc2VsZWN0LmlzLWxpZ2h0IHNlbGVjdC5pcy1hY3RpdmV7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyMTAsMjQ5LDIxNCwuMjUpfS5zZWxlY3QuaXMtZGFyazpub3QoOmhvdmVyKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM0NTk1NTh9LnNlbGVjdC5pcy1kYXJrIHNlbGVjdHtib3JkZXItY29sb3I6IzQ1OTU1OH0uc2VsZWN0LmlzLWRhcmsgc2VsZWN0OmhvdmVyLC5zZWxlY3QuaXMtZGFyayBzZWxlY3QuaXMtaG92ZXJlZHtib3JkZXItY29sb3I6IzNkODQ0ZX0uc2VsZWN0LmlzLWRhcmsgc2VsZWN0OmZvY3VzLC5zZWxlY3QuaXMtZGFyayBzZWxlY3QuaXMtZm9jdXNlZCwuc2VsZWN0LmlzLWRhcmsgc2VsZWN0OmFjdGl2ZSwuc2VsZWN0LmlzLWRhcmsgc2VsZWN0LmlzLWFjdGl2ZXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDY5LDE0OSw4OCwuMjUpfS5zZWxlY3QuaXMtcHJpbWFyeTpub3QoOmhvdmVyKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM1NWJlNmZ9LnNlbGVjdC5pcy1wcmltYXJ5IHNlbGVjdHtib3JkZXItY29sb3I6IzU1YmU2Zn0uc2VsZWN0LmlzLXByaW1hcnkgc2VsZWN0OmhvdmVyLC5zZWxlY3QuaXMtcHJpbWFyeSBzZWxlY3QuaXMtaG92ZXJlZHtib3JkZXItY29sb3I6IzQ1YjQ2MX0uc2VsZWN0LmlzLXByaW1hcnkgc2VsZWN0OmZvY3VzLC5zZWxlY3QuaXMtcHJpbWFyeSBzZWxlY3QuaXMtZm9jdXNlZCwuc2VsZWN0LmlzLXByaW1hcnkgc2VsZWN0OmFjdGl2ZSwuc2VsZWN0LmlzLXByaW1hcnkgc2VsZWN0LmlzLWFjdGl2ZXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDg1LDE5MCwxMTEsLjI1KX0uc2VsZWN0LmlzLWxpbms6bm90KDpob3Zlcik6OmFmdGVye2JvcmRlci1jb2xvcjojNDg3NmZmfS5zZWxlY3QuaXMtbGluayBzZWxlY3R7Ym9yZGVyLWNvbG9yOiM0ODc2ZmZ9LnNlbGVjdC5pcy1saW5rIHNlbGVjdDpob3Zlciwuc2VsZWN0LmlzLWxpbmsgc2VsZWN0LmlzLWhvdmVyZWR7Ym9yZGVyLWNvbG9yOiMyZjYzZmZ9LnNlbGVjdC5pcy1saW5rIHNlbGVjdDpmb2N1cywuc2VsZWN0LmlzLWxpbmsgc2VsZWN0LmlzLWZvY3VzZWQsLnNlbGVjdC5pcy1saW5rIHNlbGVjdDphY3RpdmUsLnNlbGVjdC5pcy1saW5rIHNlbGVjdC5pcy1hY3RpdmV7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg3MiwxMTgsMjU1LC4yNSl9LnNlbGVjdC5pcy1pbmZvOm5vdCg6aG92ZXIpOjphZnRlcntib3JkZXItY29sb3I6I2YwZjhmZn0uc2VsZWN0LmlzLWluZm8gc2VsZWN0e2JvcmRlci1jb2xvcjojZjBmOGZmfS5zZWxlY3QuaXMtaW5mbyBzZWxlY3Q6aG92ZXIsLnNlbGVjdC5pcy1pbmZvIHNlbGVjdC5pcy1ob3ZlcmVke2JvcmRlci1jb2xvcjojZDdlY2ZmfS5zZWxlY3QuaXMtaW5mbyBzZWxlY3Q6Zm9jdXMsLnNlbGVjdC5pcy1pbmZvIHNlbGVjdC5pcy1mb2N1c2VkLC5zZWxlY3QuaXMtaW5mbyBzZWxlY3Q6YWN0aXZlLC5zZWxlY3QuaXMtaW5mbyBzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjQwLDI0OCwyNTUsLjI1KX0uc2VsZWN0LmlzLXN1Y2Nlc3M6bm90KDpob3Zlcik6OmFmdGVye2JvcmRlci1jb2xvcjojNDhjNzhlfS5zZWxlY3QuaXMtc3VjY2VzcyBzZWxlY3R7Ym9yZGVyLWNvbG9yOiM0OGM3OGV9LnNlbGVjdC5pcy1zdWNjZXNzIHNlbGVjdDpob3Zlciwuc2VsZWN0LmlzLXN1Y2Nlc3Mgc2VsZWN0LmlzLWhvdmVyZWR7Ym9yZGVyLWNvbG9yOiMzYWJiODF9LnNlbGVjdC5pcy1zdWNjZXNzIHNlbGVjdDpmb2N1cywuc2VsZWN0LmlzLXN1Y2Nlc3Mgc2VsZWN0LmlzLWZvY3VzZWQsLnNlbGVjdC5pcy1zdWNjZXNzIHNlbGVjdDphY3RpdmUsLnNlbGVjdC5pcy1zdWNjZXNzIHNlbGVjdC5pcy1hY3RpdmV7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg3MiwxOTksMTQyLC4yNSl9LnNlbGVjdC5pcy13YXJuaW5nOm5vdCg6aG92ZXIpOjphZnRlcntib3JkZXItY29sb3I6I2ZmZDk3NX0uc2VsZWN0LmlzLXdhcm5pbmcgc2VsZWN0e2JvcmRlci1jb2xvcjojZmZkOTc1fS5zZWxlY3QuaXMtd2FybmluZyBzZWxlY3Q6aG92ZXIsLnNlbGVjdC5pcy13YXJuaW5nIHNlbGVjdC5pcy1ob3ZlcmVke2JvcmRlci1jb2xvcjojZmZkMjVjfS5zZWxlY3QuaXMtd2FybmluZyBzZWxlY3Q6Zm9jdXMsLnNlbGVjdC5pcy13YXJuaW5nIHNlbGVjdC5pcy1mb2N1c2VkLC5zZWxlY3QuaXMtd2FybmluZyBzZWxlY3Q6YWN0aXZlLC5zZWxlY3QuaXMtd2FybmluZyBzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDIxNywxMTcsLjI1KX0uc2VsZWN0LmlzLWRhbmdlcjpub3QoOmhvdmVyKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmMTQ2Njh9LnNlbGVjdC5pcy1kYW5nZXIgc2VsZWN0e2JvcmRlci1jb2xvcjojZjE0NjY4fS5zZWxlY3QuaXMtZGFuZ2VyIHNlbGVjdDpob3Zlciwuc2VsZWN0LmlzLWRhbmdlciBzZWxlY3QuaXMtaG92ZXJlZHtib3JkZXItY29sb3I6I2VmMmU1NX0uc2VsZWN0LmlzLWRhbmdlciBzZWxlY3Q6Zm9jdXMsLnNlbGVjdC5pcy1kYW5nZXIgc2VsZWN0LmlzLWZvY3VzZWQsLnNlbGVjdC5pcy1kYW5nZXIgc2VsZWN0OmFjdGl2ZSwuc2VsZWN0LmlzLWRhbmdlciBzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjQxLDcwLDEwNCwuMjUpfS5zZWxlY3QuaXMtc21hbGx7Ym9yZGVyLXJhZGl1czoycHg7Zm9udC1zaXplOi43NXJlbX0uc2VsZWN0LmlzLW1lZGl1bXtmb250LXNpemU6MS4yNXJlbX0uc2VsZWN0LmlzLWxhcmdle2ZvbnQtc2l6ZToxLjVyZW19LnNlbGVjdC5pcy1kaXNhYmxlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM3YTdhN2F9LnNlbGVjdC5pcy1mdWxsd2lkdGh7d2lkdGg6MTAwJX0uc2VsZWN0LmlzLWZ1bGx3aWR0aCBzZWxlY3R7d2lkdGg6MTAwJX0uc2VsZWN0LmlzLWxvYWRpbmc6OmFmdGVye21hcmdpbi10b3A6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDouNjI1ZW07dG9wOi42MjVlbTt0cmFuc2Zvcm06bm9uZX0uc2VsZWN0LmlzLWxvYWRpbmcuaXMtc21hbGw6YWZ0ZXJ7Zm9udC1zaXplOi43NXJlbX0uc2VsZWN0LmlzLWxvYWRpbmcuaXMtbWVkaXVtOmFmdGVye2ZvbnQtc2l6ZToxLjI1cmVtfS5zZWxlY3QuaXMtbG9hZGluZy5pcy1sYXJnZTphZnRlcntmb250LXNpemU6MS41cmVtfS5maWxle2FsaWduLWl0ZW1zOnN0cmV0Y2g7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3Bvc2l0aW9uOnJlbGF0aXZlfS5maWxlLmlzLXdoaXRlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzBhMGEwYX0uZmlsZS5pcy13aGl0ZTpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtd2hpdGUuaXMtaG92ZXJlZCAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMwYTBhMGF9LmZpbGUuaXMtd2hpdGU6Zm9jdXMgLmZpbGUtY3RhLC5maWxlLmlzLXdoaXRlLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSgyNTUsMjU1LDI1NSwuMjUpO2NvbG9yOiMwYTBhMGF9LmZpbGUuaXMtd2hpdGU6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy13aGl0ZS5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2YyZjJmMjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojMGEwYTBhfS5maWxlLmlzLWJsYWNrIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1ibGFjazpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtYmxhY2suaXMtaG92ZXJlZCAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojMDQwNDA0O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmZpbGUuaXMtYmxhY2s6Zm9jdXMgLmZpbGUtY3RhLC5maWxlLmlzLWJsYWNrLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSgxMCwxMCwxMCwuMjUpO2NvbG9yOiNmZmZ9LmZpbGUuaXMtYmxhY2s6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1ibGFjay5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzAwMDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWxpZ2h0IC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmZpbGUuaXMtbGlnaHQ6aG92ZXIgLmZpbGUtY3RhLC5maWxlLmlzLWxpZ2h0LmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2M3ZjhjYztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1saWdodDpmb2N1cyAuZmlsZS1jdGEsLmZpbGUuaXMtbGlnaHQuaXMtZm9jdXNlZCAuZmlsZS1jdGF7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzowIDAgLjVlbSByZ2JhKDIxMCwyNDksMjE0LC4yNSk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmZpbGUuaXMtbGlnaHQ6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1saWdodC5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2JjZjZjMjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1kYXJrIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1kYXJrOmhvdmVyIC5maWxlLWN0YSwuZmlsZS5pcy1kYXJrLmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzQxOGM1Mztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWRhcms6Zm9jdXMgLmZpbGUtY3RhLC5maWxlLmlzLWRhcmsuaXMtZm9jdXNlZCAuZmlsZS1jdGF7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzowIDAgLjVlbSByZ2JhKDY5LDE0OSw4OCwuMjUpO2NvbG9yOiNmZmZ9LmZpbGUuaXMtZGFyazphY3RpdmUgLmZpbGUtY3RhLC5maWxlLmlzLWRhcmsuaXMtYWN0aXZlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiMzZDg0NGU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1wcmltYXJ5IC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1wcmltYXJ5OmhvdmVyIC5maWxlLWN0YSwuZmlsZS5pcy1wcmltYXJ5LmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzRjYmE2Nztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLXByaW1hcnk6Zm9jdXMgLmZpbGUtY3RhLC5maWxlLmlzLXByaW1hcnkuaXMtZm9jdXNlZCAuZmlsZS1jdGF7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzowIDAgLjVlbSByZ2JhKDg1LDE5MCwxMTEsLjI1KTtjb2xvcjojZmZmfS5maWxlLmlzLXByaW1hcnk6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1wcmltYXJ5LmlzLWFjdGl2ZSAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojNDViNDYxO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmZpbGUuaXMtbGluayAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmZpbGUuaXMtbGluazpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtbGluay5pcy1ob3ZlcmVkIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiMzYjZjZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1saW5rOmZvY3VzIC5maWxlLWN0YSwuZmlsZS5pcy1saW5rLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSg3MiwxMTgsMjU1LC4yNSk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1saW5rOmFjdGl2ZSAuZmlsZS1jdGEsLmZpbGUuaXMtbGluay5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzJmNjNmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWluZm8gLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2YwZjhmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1pbmZvOmhvdmVyIC5maWxlLWN0YSwuZmlsZS5pcy1pbmZvLmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2UzZjJmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1pbmZvOmZvY3VzIC5maWxlLWN0YSwuZmlsZS5pcy1pbmZvLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSgyNDAsMjQ4LDI1NSwuMjUpO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5maWxlLmlzLWluZm86YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1pbmZvLmlzLWFjdGl2ZSAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojZDdlY2ZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5maWxlLmlzLXN1Y2Nlc3MgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLXN1Y2Nlc3M6aG92ZXIgLmZpbGUtY3RhLC5maWxlLmlzLXN1Y2Nlc3MuaXMtaG92ZXJlZCAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojM2VjNDg3O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmZpbGUuaXMtc3VjY2Vzczpmb2N1cyAuZmlsZS1jdGEsLmZpbGUuaXMtc3VjY2Vzcy5pcy1mb2N1c2VkIC5maWxlLWN0YXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjAgMCAuNWVtIHJnYmEoNzIsMTk5LDE0MiwuMjUpO2NvbG9yOiNmZmZ9LmZpbGUuaXMtc3VjY2VzczphY3RpdmUgLmZpbGUtY3RhLC5maWxlLmlzLXN1Y2Nlc3MuaXMtYWN0aXZlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiMzYWJiODE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy13YXJuaW5nIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmZpbGUuaXMtd2FybmluZzpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtd2FybmluZy5pcy1ob3ZlcmVkIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ1Njg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmZpbGUuaXMtd2FybmluZzpmb2N1cyAuZmlsZS1jdGEsLmZpbGUuaXMtd2FybmluZy5pcy1mb2N1c2VkIC5maWxlLWN0YXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjAgMCAuNWVtIHJnYmEoMjU1LDIxNywxMTcsLjI1KTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy13YXJuaW5nOmFjdGl2ZSAuZmlsZS1jdGEsLmZpbGUuaXMtd2FybmluZy5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2ZmZDI1Yztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1kYW5nZXIgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWRhbmdlcjpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtZGFuZ2VyLmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2YwM2E1Zjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWRhbmdlcjpmb2N1cyAuZmlsZS1jdGEsLmZpbGUuaXMtZGFuZ2VyLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSgyNDEsNzAsMTA0LC4yNSk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1kYW5nZXI6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1kYW5nZXIuaXMtYWN0aXZlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjJlNTU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5maWxlLmlzLW5vcm1hbHtmb250LXNpemU6MXJlbX0uZmlsZS5pcy1tZWRpdW17Zm9udC1zaXplOjEuMjVyZW19LmZpbGUuaXMtbWVkaXVtIC5maWxlLWljb24gLmZhe2ZvbnQtc2l6ZToyMXB4fS5maWxlLmlzLWxhcmdle2ZvbnQtc2l6ZToxLjVyZW19LmZpbGUuaXMtbGFyZ2UgLmZpbGUtaWNvbiAuZmF7Zm9udC1zaXplOjI4cHh9LmZpbGUuaGFzLW5hbWUgLmZpbGUtY3Rhe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0uZmlsZS5oYXMtbmFtZSAuZmlsZS1uYW1le2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LmZpbGUuaGFzLW5hbWUuaXMtZW1wdHkgLmZpbGUtY3Rhe2JvcmRlci1yYWRpdXM6NHB4fS5maWxlLmhhcy1uYW1lLmlzLWVtcHR5IC5maWxlLW5hbWV7ZGlzcGxheTpub25lfS5maWxlLmlzLWJveGVkIC5maWxlLWxhYmVse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmlsZS5pcy1ib3hlZCAuZmlsZS1jdGF7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDphdXRvO3BhZGRpbmc6MWVtIDNlbX0uZmlsZS5pcy1ib3hlZCAuZmlsZS1uYW1le2JvcmRlci13aWR0aDowIDFweCAxcHh9LmZpbGUuaXMtYm94ZWQgLmZpbGUtaWNvbntoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19LmZpbGUuaXMtYm94ZWQgLmZpbGUtaWNvbiAuZmF7Zm9udC1zaXplOjIxcHh9LmZpbGUuaXMtYm94ZWQuaXMtc21hbGwgLmZpbGUtaWNvbiAuZmF7Zm9udC1zaXplOjE0cHh9LmZpbGUuaXMtYm94ZWQuaXMtbWVkaXVtIC5maWxlLWljb24gLmZhe2ZvbnQtc2l6ZToyOHB4fS5maWxlLmlzLWJveGVkLmlzLWxhcmdlIC5maWxlLWljb24gLmZhe2ZvbnQtc2l6ZTozNXB4fS5maWxlLmlzLWJveGVkLmhhcy1uYW1lIC5maWxlLWN0YXtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwfS5maWxlLmlzLWJveGVkLmhhcy1uYW1lIC5maWxlLW5hbWV7Ym9yZGVyLXJhZGl1czowIDAgNHB4IDRweDtib3JkZXItd2lkdGg6MCAxcHggMXB4fS5maWxlLmlzLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmZpbGUuaXMtZnVsbHdpZHRoIC5maWxlLWxhYmVse3dpZHRoOjEwMCV9LmZpbGUuaXMtZnVsbHdpZHRoIC5maWxlLW5hbWV7ZmxleC1ncm93OjE7bWF4LXdpZHRoOm5vbmV9LmZpbGUuaXMtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5maWxlLmlzLXJpZ2h0IC5maWxlLWN0YXtib3JkZXItcmFkaXVzOjAgNHB4IDRweCAwfS5maWxlLmlzLXJpZ2h0IC5maWxlLW5hbWV7Ym9yZGVyLXJhZGl1czo0cHggMCAwIDRweDtib3JkZXItd2lkdGg6MXB4IDAgMXB4IDFweDtvcmRlcjotMX0uZmlsZS1sYWJlbHthbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6ZmxleDtjdXJzb3I6cG9pbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LmZpbGUtbGFiZWw6aG92ZXIgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2VlZTtjb2xvcjojMzYzNjM2fS5maWxlLWxhYmVsOmhvdmVyIC5maWxlLW5hbWV7Ym9yZGVyLWNvbG9yOiNkNWQ1ZDV9LmZpbGUtbGFiZWw6YWN0aXZlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7Y29sb3I6IzM2MzYzNn0uZmlsZS1sYWJlbDphY3RpdmUgLmZpbGUtbmFtZXtib3JkZXItY29sb3I6I2NmY2ZjZn0uZmlsZS1pbnB1dHtoZWlnaHQ6MTAwJTtsZWZ0OjA7b3BhY2l0eTowO291dGxpbmU6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5maWxlLWN0YSwuZmlsZS1uYW1le2JvcmRlci1jb2xvcjojZGJkYmRiO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxZW07cGFkZGluZy1sZWZ0OjFlbTtwYWRkaW5nLXJpZ2h0OjFlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNGE0YTRhfS5maWxlLW5hbWV7Ym9yZGVyLWNvbG9yOiNkYmRiZGI7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxcHggMXB4IDFweCAwO2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjE2ZW07b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246aW5oZXJpdDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5maWxlLWljb257YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MWVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXJpZ2h0Oi41ZW07d2lkdGg6MWVtfS5maWxlLWljb24gLmZhe2ZvbnQtc2l6ZToxNHB4fS5sYWJlbHtjb2xvcjojMzYzNjM2O2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NzAwfS5sYWJlbDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206LjVlbX0ubGFiZWwuaXMtc21hbGx7Zm9udC1zaXplOi43NXJlbX0ubGFiZWwuaXMtbWVkaXVte2ZvbnQtc2l6ZToxLjI1cmVtfS5sYWJlbC5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5oZWxwe2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi43NXJlbTttYXJnaW4tdG9wOi4yNXJlbX0uaGVscC5pcy13aGl0ZXtjb2xvcjojZmZmfS5oZWxwLmlzLWJsYWNre2NvbG9yOiMwYTBhMGF9LmhlbHAuaXMtbGlnaHR7Y29sb3I6I2QyZjlkNn0uaGVscC5pcy1kYXJre2NvbG9yOiM0NTk1NTh9LmhlbHAuaXMtcHJpbWFyeXtjb2xvcjojNTViZTZmfS5oZWxwLmlzLWxpbmt7Y29sb3I6IzQ4NzZmZn0uaGVscC5pcy1pbmZve2NvbG9yOiNmMGY4ZmZ9LmhlbHAuaXMtc3VjY2Vzc3tjb2xvcjojNDhjNzhlfS5oZWxwLmlzLXdhcm5pbmd7Y29sb3I6I2ZmZDk3NX0uaGVscC5pcy1kYW5nZXJ7Y29sb3I6I2YxNDY2OH0uZmllbGQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0uZmllbGQuaGFzLWFkZG9uc3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LTFweH0uZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIC5idXR0b24sLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSAuaW5wdXQsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSAuc2VsZWN0IHNlbGVjdHtib3JkZXItcmFkaXVzOjB9LmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6Zmlyc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSAuYnV0dG9uLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sOmZpcnN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkgLmlucHV0LC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sOmZpcnN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkgLnNlbGVjdCBzZWxlY3R7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sOmxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSAuYnV0dG9uLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sOmxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSAuaW5wdXQsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIC5zZWxlY3Qgc2VsZWN0e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmJ1dHRvbjpub3QoW2Rpc2FibGVkXSkuaXMtaG92ZXJlZCwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pOmhvdmVyLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5pbnB1dDpub3QoW2Rpc2FibGVkXSkuaXMtaG92ZXJlZCwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuc2VsZWN0IHNlbGVjdDpub3QoW2Rpc2FibGVkXSk6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLmlzLWhvdmVyZWR7ei1pbmRleDoyfS5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5idXR0b246bm90KFtkaXNhYmxlZF0pOmZvY3VzLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5idXR0b246bm90KFtkaXNhYmxlZF0pLmlzLWZvY3VzZWQsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5idXR0b246bm90KFtkaXNhYmxlZF0pLmlzLWFjdGl2ZSwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pOmZvY3VzLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5pbnB1dDpub3QoW2Rpc2FibGVkXSkuaXMtZm9jdXNlZCwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pLmlzLWFjdGl2ZSwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuc2VsZWN0IHNlbGVjdDpub3QoW2Rpc2FibGVkXSk6Zm9jdXMsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLmlzLWZvY3VzZWQsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuc2VsZWN0IHNlbGVjdDpub3QoW2Rpc2FibGVkXSkuaXMtYWN0aXZle3otaW5kZXg6M30uZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpmb2N1czpob3ZlciwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuYnV0dG9uOm5vdChbZGlzYWJsZWRdKS5pcy1mb2N1c2VkOmhvdmVyLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpob3ZlciwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuYnV0dG9uOm5vdChbZGlzYWJsZWRdKS5pcy1hY3RpdmU6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmlucHV0Om5vdChbZGlzYWJsZWRdKTpmb2N1czpob3ZlciwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pLmlzLWZvY3VzZWQ6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmlucHV0Om5vdChbZGlzYWJsZWRdKTphY3RpdmU6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmlucHV0Om5vdChbZGlzYWJsZWRdKS5pcy1hY3RpdmU6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pOmZvY3VzOmhvdmVyLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5zZWxlY3Qgc2VsZWN0Om5vdChbZGlzYWJsZWRdKS5pcy1mb2N1c2VkOmhvdmVyLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5zZWxlY3Qgc2VsZWN0Om5vdChbZGlzYWJsZWRdKTphY3RpdmU6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLmlzLWFjdGl2ZTpob3Zlcnt6LWluZGV4OjR9LmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wuaXMtZXhwYW5kZWR7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX0uZmllbGQuaGFzLWFkZG9ucy5oYXMtYWRkb25zLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmZpZWxkLmhhcy1hZGRvbnMuaGFzLWFkZG9ucy1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmZpZWxkLmhhcy1hZGRvbnMuaGFzLWFkZG9ucy1mdWxsd2lkdGggLmNvbnRyb2x7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MH0uZmllbGQuaXMtZ3JvdXBlZHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmZpZWxkLmlzLWdyb3VwZWQ+LmNvbnRyb2x7ZmxleC1zaHJpbms6MH0uZmllbGQuaXMtZ3JvdXBlZD4uY29udHJvbDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MDttYXJnaW4tcmlnaHQ6Ljc1cmVtfS5maWVsZC5pcy1ncm91cGVkPi5jb250cm9sLmlzLWV4cGFuZGVke2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjF9LmZpZWxkLmlzLWdyb3VwZWQuaXMtZ3JvdXBlZC1jZW50ZXJlZHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5maWVsZC5pcy1ncm91cGVkLmlzLWdyb3VwZWQtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5maWVsZC5pcy1ncm91cGVkLmlzLWdyb3VwZWQtbXVsdGlsaW5le2ZsZXgtd3JhcDp3cmFwfS5maWVsZC5pcy1ncm91cGVkLmlzLWdyb3VwZWQtbXVsdGlsaW5lPi5jb250cm9sOmxhc3QtY2hpbGQsLmZpZWxkLmlzLWdyb3VwZWQuaXMtZ3JvdXBlZC1tdWx0aWxpbmU+LmNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0uZmllbGQuaXMtZ3JvdXBlZC5pcy1ncm91cGVkLW11bHRpbGluZTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206LTAuNzVyZW19LmZpZWxkLmlzLWdyb3VwZWQuaXMtZ3JvdXBlZC1tdWx0aWxpbmU6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5maWVsZC5pcy1ob3Jpem9udGFse2Rpc3BsYXk6ZmxleH19LmZpZWxkLWxhYmVsIC5sYWJlbHtmb250LXNpemU6aW5oZXJpdH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmZpZWxkLWxhYmVse21hcmdpbi1ib3R0b206LjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuZmllbGQtbGFiZWx7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXJpZ2h0OjEuNXJlbTt0ZXh0LWFsaWduOnJpZ2h0fS5maWVsZC1sYWJlbC5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtO3BhZGRpbmctdG9wOi4zNzVlbX0uZmllbGQtbGFiZWwuaXMtbm9ybWFse3BhZGRpbmctdG9wOi4zNzVlbX0uZmllbGQtbGFiZWwuaXMtbWVkaXVte2ZvbnQtc2l6ZToxLjI1cmVtO3BhZGRpbmctdG9wOi4zNzVlbX0uZmllbGQtbGFiZWwuaXMtbGFyZ2V7Zm9udC1zaXplOjEuNXJlbTtwYWRkaW5nLXRvcDouMzc1ZW19fS5maWVsZC1ib2R5IC5maWVsZCAuZmllbGR7bWFyZ2luLWJvdHRvbTowfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuZmllbGQtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1iYXNpczowO2ZsZXgtZ3Jvdzo1O2ZsZXgtc2hyaW5rOjF9LmZpZWxkLWJvZHkgLmZpZWxke21hcmdpbi1ib3R0b206MH0uZmllbGQtYm9keT4uZmllbGR7ZmxleC1zaHJpbms6MX0uZmllbGQtYm9keT4uZmllbGQ6bm90KC5pcy1uYXJyb3cpe2ZsZXgtZ3JvdzoxfS5maWVsZC1ib2R5Pi5maWVsZDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouNzVyZW19fS5jb250cm9se2JveC1zaXppbmc6Ym9yZGVyLWJveDtjbGVhcjpib3RoO2ZvbnQtc2l6ZToxcmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246aW5oZXJpdH0uY29udHJvbC5oYXMtaWNvbnMtbGVmdCAuaW5wdXQ6Zm9jdXN+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLWxlZnQgLnNlbGVjdDpmb2N1c34uaWNvbiwuY29udHJvbC5oYXMtaWNvbnMtcmlnaHQgLmlucHV0OmZvY3Vzfi5pY29uLC5jb250cm9sLmhhcy1pY29ucy1yaWdodCAuc2VsZWN0OmZvY3Vzfi5pY29ue2NvbG9yOiM0YTRhNGF9LmNvbnRyb2wuaGFzLWljb25zLWxlZnQgLmlucHV0LmlzLXNtYWxsfi5pY29uLC5jb250cm9sLmhhcy1pY29ucy1sZWZ0IC5zZWxlY3QuaXMtc21hbGx+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLXJpZ2h0IC5pbnB1dC5pcy1zbWFsbH4uaWNvbiwuY29udHJvbC5oYXMtaWNvbnMtcmlnaHQgLnNlbGVjdC5pcy1zbWFsbH4uaWNvbntmb250LXNpemU6Ljc1cmVtfS5jb250cm9sLmhhcy1pY29ucy1sZWZ0IC5pbnB1dC5pcy1tZWRpdW1+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLWxlZnQgLnNlbGVjdC5pcy1tZWRpdW1+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLXJpZ2h0IC5pbnB1dC5pcy1tZWRpdW1+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLXJpZ2h0IC5zZWxlY3QuaXMtbWVkaXVtfi5pY29ue2ZvbnQtc2l6ZToxLjI1cmVtfS5jb250cm9sLmhhcy1pY29ucy1sZWZ0IC5pbnB1dC5pcy1sYXJnZX4uaWNvbiwuY29udHJvbC5oYXMtaWNvbnMtbGVmdCAuc2VsZWN0LmlzLWxhcmdlfi5pY29uLC5jb250cm9sLmhhcy1pY29ucy1yaWdodCAuaW5wdXQuaXMtbGFyZ2V+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLXJpZ2h0IC5zZWxlY3QuaXMtbGFyZ2V+Lmljb257Zm9udC1zaXplOjEuNXJlbX0uY29udHJvbC5oYXMtaWNvbnMtbGVmdCAuaWNvbiwuY29udHJvbC5oYXMtaWNvbnMtcmlnaHQgLmljb257Y29sb3I6I2RiZGJkYjtoZWlnaHQ6Mi41ZW07cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoyLjVlbTt6LWluZGV4OjR9LmNvbnRyb2wuaGFzLWljb25zLWxlZnQgLmlucHV0LC5jb250cm9sLmhhcy1pY29ucy1sZWZ0IC5zZWxlY3Qgc2VsZWN0e3BhZGRpbmctbGVmdDoyLjVlbX0uY29udHJvbC5oYXMtaWNvbnMtbGVmdCAuaWNvbi5pcy1sZWZ0e2xlZnQ6MH0uY29udHJvbC5oYXMtaWNvbnMtcmlnaHQgLmlucHV0LC5jb250cm9sLmhhcy1pY29ucy1yaWdodCAuc2VsZWN0IHNlbGVjdHtwYWRkaW5nLXJpZ2h0OjIuNWVtfS5jb250cm9sLmhhcy1pY29ucy1yaWdodCAuaWNvbi5pcy1yaWdodHtyaWdodDowfS5jb250cm9sLmlzLWxvYWRpbmc6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7cmlnaHQ6LjYyNWVtO3RvcDouNjI1ZW07ei1pbmRleDo0fS5jb250cm9sLmlzLWxvYWRpbmcuaXMtc21hbGw6YWZ0ZXJ7Zm9udC1zaXplOi43NXJlbX0uY29udHJvbC5pcy1sb2FkaW5nLmlzLW1lZGl1bTphZnRlcntmb250LXNpemU6MS4yNXJlbX0uY29udHJvbC5pcy1sb2FkaW5nLmlzLWxhcmdlOmFmdGVye2ZvbnQtc2l6ZToxLjVyZW19LmJyZWFkY3J1bWJ7Zm9udC1zaXplOjFyZW07d2hpdGUtc3BhY2U6bm93cmFwfS5icmVhZGNydW1iIGF7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiM0ODc2ZmY7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowIC43NWVtfS5icmVhZGNydW1iIGE6aG92ZXJ7Y29sb3I6IzM2MzYzNn0uYnJlYWRjcnVtYiBsaXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5icmVhZGNydW1iIGxpOmZpcnN0LWNoaWxkIGF7cGFkZGluZy1sZWZ0OjB9LmJyZWFkY3J1bWIgbGkuaXMtYWN0aXZlIGF7Y29sb3I6IzM2MzYzNjtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lfS5icmVhZGNydW1iIGxpK2xpOjpiZWZvcmV7Y29sb3I6I2I1YjViNTtjb250ZW50OiIvIn0uYnJlYWRjcnVtYiB1bCwuYnJlYWRjcnVtYiBvbHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uYnJlYWRjcnVtYiAuaWNvbjpmaXJzdC1jaGlsZHttYXJnaW4tcmlnaHQ6LjVlbX0uYnJlYWRjcnVtYiAuaWNvbjpsYXN0LWNoaWxke21hcmdpbi1sZWZ0Oi41ZW19LmJyZWFkY3J1bWIuaXMtY2VudGVyZWQgb2wsLmJyZWFkY3J1bWIuaXMtY2VudGVyZWQgdWx7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYnJlYWRjcnVtYi5pcy1yaWdodCBvbCwuYnJlYWRjcnVtYi5pcy1yaWdodCB1bHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmJyZWFkY3J1bWIuaXMtc21hbGx7Zm9udC1zaXplOi43NXJlbX0uYnJlYWRjcnVtYi5pcy1tZWRpdW17Zm9udC1zaXplOjEuMjVyZW19LmJyZWFkY3J1bWIuaXMtbGFyZ2V7Zm9udC1zaXplOjEuNXJlbX0uYnJlYWRjcnVtYi5oYXMtYXJyb3ctc2VwYXJhdG9yIGxpK2xpOjpiZWZvcmV7Y29udGVudDoi4oaSIn0uYnJlYWRjcnVtYi5oYXMtYnVsbGV0LXNlcGFyYXRvciBsaStsaTo6YmVmb3Jle2NvbnRlbnQ6IuKAoiJ9LmJyZWFkY3J1bWIuaGFzLWRvdC1zZXBhcmF0b3IgbGkrbGk6OmJlZm9yZXtjb250ZW50OiLCtyJ9LmJyZWFkY3J1bWIuaGFzLXN1Y2NlZWRzLXNlcGFyYXRvciBsaStsaTo6YmVmb3Jle2NvbnRlbnQ6IuKJuyJ9LmNhcmR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6LjI1cmVtO2JveC1zaGFkb3c6MCAuNWVtIDFlbSAtMC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4xKSwwIDBweCAwIDFweCByZ2JhKDEwLDEwLDEwLC4wMik7Y29sb3I6IzRhNGE0YTttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uY2FyZC1mb290ZXI6Zmlyc3QtY2hpbGQsLmNhcmQtY29udGVudDpmaXJzdC1jaGlsZCwuY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtfS5jYXJkLWZvb3RlcjpsYXN0LWNoaWxkLC5jYXJkLWNvbnRlbnQ6bGFzdC1jaGlsZCwuY2FyZC1oZWFkZXI6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW19LmNhcmQtaGVhZGVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTthbGlnbi1pdGVtczpzdHJldGNoO2JveC1zaGFkb3c6MCAuMTI1ZW0gLjI1ZW0gcmdiYSgxMCwxMCwxMCwuMSk7ZGlzcGxheTpmbGV4fS5jYXJkLWhlYWRlci10aXRsZXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6IzM2MzYzNjtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmc6Ljc1cmVtIDFyZW19LmNhcmQtaGVhZGVyLXRpdGxlLmlzLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNhcmQtaGVhZGVyLWljb257LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjpjdXJyZW50Q29sb3I7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MWVtO21hcmdpbjowO3BhZGRpbmc6MDthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzouNzVyZW0gMXJlbX0uY2FyZC1pbWFnZXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXJkLWltYWdlOmZpcnN0LWNoaWxkIGltZ3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW19LmNhcmQtaW1hZ2U6bGFzdC1jaGlsZCBpbWd7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtfS5jYXJkLWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO3BhZGRpbmc6MS41cmVtfS5jYXJkLWZvb3RlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLXRvcDoxcHggc29saWQgI2VkZWRlZDthbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6ZmxleH0uY2FyZC1mb290ZXItaXRlbXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzouNzVyZW19LmNhcmQtZm9vdGVyLWl0ZW06bm90KDpsYXN0LWNoaWxkKXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlZGVkZWR9LmNhcmQgLm1lZGlhOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToxLjVyZW19LmRyb3Bkb3due2Rpc3BsYXk6aW5saW5lLWZsZXg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246dG9wfS5kcm9wZG93bi5pcy1hY3RpdmUgLmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLmlzLWhvdmVyYWJsZTpob3ZlciAuZHJvcGRvd24tbWVudXtkaXNwbGF5OmJsb2NrfS5kcm9wZG93bi5pcy1yaWdodCAuZHJvcGRvd24tbWVudXtsZWZ0OmF1dG87cmlnaHQ6MH0uZHJvcGRvd24uaXMtdXAgLmRyb3Bkb3duLW1lbnV7Ym90dG9tOjEwMCU7cGFkZGluZy1ib3R0b206NHB4O3BhZGRpbmctdG9wOmluaXRpYWw7dG9wOmF1dG99LmRyb3Bkb3duLW1lbnV7ZGlzcGxheTpub25lO2xlZnQ6MDttaW4td2lkdGg6MTJyZW07cGFkZGluZy10b3A6NHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO3otaW5kZXg6MjB9LmRyb3Bkb3duLWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MCAuNWVtIDFlbSAtMC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4xKSwwIDBweCAwIDFweCByZ2JhKDEwLDEwLDEwLC4wMik7cGFkZGluZy1ib3R0b206LjVyZW07cGFkZGluZy10b3A6LjVyZW19LmRyb3Bkb3duLWl0ZW17Y29sb3I6IzRhNGE0YTtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtwYWRkaW5nOi4zNzVyZW0gMXJlbTtwb3NpdGlvbjpyZWxhdGl2ZX1hLmRyb3Bkb3duLWl0ZW0sYnV0dG9uLmRyb3Bkb3duLWl0ZW17cGFkZGluZy1yaWdodDozcmVtO3RleHQtYWxpZ246aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX1hLmRyb3Bkb3duLWl0ZW06aG92ZXIsYnV0dG9uLmRyb3Bkb3duLWl0ZW06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiMwYTBhMGF9YS5kcm9wZG93bi1pdGVtLmlzLWFjdGl2ZSxidXR0b24uZHJvcGRvd24taXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmO2NvbG9yOiNmZmZ9LmRyb3Bkb3duLWRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjojZWRlZGVkO2JvcmRlcjpub25lO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDttYXJnaW46LjVyZW0gMH0ubGV2ZWx7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5sZXZlbCBjb2Rle2JvcmRlci1yYWRpdXM6NHB4fS5sZXZlbCBpbWd7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wfS5sZXZlbC5pcy1tb2JpbGV7ZGlzcGxheTpmbGV4fS5sZXZlbC5pcy1tb2JpbGUgLmxldmVsLWxlZnQsLmxldmVsLmlzLW1vYmlsZSAubGV2ZWwtcmlnaHR7ZGlzcGxheTpmbGV4fS5sZXZlbC5pcy1tb2JpbGUgLmxldmVsLWxlZnQrLmxldmVsLXJpZ2h0e21hcmdpbi10b3A6MH0ubGV2ZWwuaXMtbW9iaWxlIC5sZXZlbC1pdGVtOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTowO21hcmdpbi1yaWdodDouNzVyZW19LmxldmVsLmlzLW1vYmlsZSAubGV2ZWwtaXRlbTpub3QoLmlzLW5hcnJvdyl7ZmxleC1ncm93OjF9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5sZXZlbHtkaXNwbGF5OmZsZXh9LmxldmVsPi5sZXZlbC1pdGVtOm5vdCguaXMtbmFycm93KXtmbGV4LWdyb3c6MX19LmxldmVsLWl0ZW17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWJhc2lzOmF1dG87ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5sZXZlbC1pdGVtIC50aXRsZSwubGV2ZWwtaXRlbSAuc3VidGl0bGV7bWFyZ2luLWJvdHRvbTowfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsubGV2ZWwtaXRlbTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206Ljc1cmVtfX0ubGV2ZWwtbGVmdCwubGV2ZWwtcmlnaHR7ZmxleC1iYXNpczphdXRvO2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjB9LmxldmVsLWxlZnQgLmxldmVsLWl0ZW0uaXMtZmxleGlibGUsLmxldmVsLXJpZ2h0IC5sZXZlbC1pdGVtLmlzLWZsZXhpYmxle2ZsZXgtZ3JvdzoxfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsubGV2ZWwtbGVmdCAubGV2ZWwtaXRlbTpub3QoOmxhc3QtY2hpbGQpLC5sZXZlbC1yaWdodCAubGV2ZWwtaXRlbTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouNzVyZW19fS5sZXZlbC1sZWZ0e2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmxldmVsLWxlZnQrLmxldmVsLXJpZ2h0e21hcmdpbi10b3A6MS41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmxldmVsLWxlZnR7ZGlzcGxheTpmbGV4fX0ubGV2ZWwtcmlnaHR7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmxldmVsLXJpZ2h0e2Rpc3BsYXk6ZmxleH19Lm1lZGlhe2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246aW5oZXJpdH0ubWVkaWEgLmNvbnRlbnQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0ubWVkaWEgLm1lZGlhe2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjE5LDIxOSwyMTksLjUpO2Rpc3BsYXk6ZmxleDtwYWRkaW5nLXRvcDouNzVyZW19Lm1lZGlhIC5tZWRpYSAuY29udGVudDpub3QoOmxhc3QtY2hpbGQpLC5tZWRpYSAubWVkaWEgLmNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi41cmVtfS5tZWRpYSAubWVkaWEgLm1lZGlhe3BhZGRpbmctdG9wOi41cmVtfS5tZWRpYSAubWVkaWEgLm1lZGlhKy5tZWRpYXttYXJnaW4tdG9wOi41cmVtfS5tZWRpYSsubWVkaWF7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyMTksMjE5LDIxOSwuNSk7bWFyZ2luLXRvcDoxcmVtO3BhZGRpbmctdG9wOjFyZW19Lm1lZGlhLmlzLWxhcmdlKy5tZWRpYXttYXJnaW4tdG9wOjEuNXJlbTtwYWRkaW5nLXRvcDoxLjVyZW19Lm1lZGlhLWxlZnQsLm1lZGlhLXJpZ2h0e2ZsZXgtYmFzaXM6YXV0bztmbGV4LWdyb3c6MDtmbGV4LXNocmluazowfS5tZWRpYS1sZWZ0e21hcmdpbi1yaWdodDoxcmVtfS5tZWRpYS1yaWdodHttYXJnaW4tbGVmdDoxcmVtfS5tZWRpYS1jb250ZW50e2ZsZXgtYmFzaXM6YXV0bztmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO3RleHQtYWxpZ246aW5oZXJpdH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lm1lZGlhLWNvbnRlbnR7b3ZlcmZsb3cteDphdXRvfX0ubWVudXtmb250LXNpemU6MXJlbX0ubWVudS5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5tZW51LmlzLW1lZGl1bXtmb250LXNpemU6MS4yNXJlbX0ubWVudS5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5tZW51LWxpc3R7bGluZS1oZWlnaHQ6MS4yNX0ubWVudS1saXN0IGF7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6IzRhNGE0YTtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjVlbSAuNzVlbX0ubWVudS1saXN0IGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiMzNjM2MzZ9Lm1lbnUtbGlzdCBhLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0ubWVudS1saXN0IGxpIHVse2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZGJkYmRiO21hcmdpbjouNzVlbTtwYWRkaW5nLWxlZnQ6Ljc1ZW19Lm1lbnUtbGFiZWx7Y29sb3I6IzdhN2E3YTtmb250LXNpemU6Ljc1ZW07bGV0dGVyLXNwYWNpbmc6LjFlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lm1lbnUtbGFiZWw6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDoxZW19Lm1lbnUtbGFiZWw6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjFlbX0ubWVzc2FnZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjFyZW19Lm1lc3NhZ2Ugc3Ryb25ne2NvbG9yOmN1cnJlbnRDb2xvcn0ubWVzc2FnZSBhOm5vdCguYnV0dG9uKTpub3QoLnRhZyk6bm90KC5kcm9wZG93bi1pdGVtKXtjb2xvcjpjdXJyZW50Q29sb3I7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ubWVzc2FnZS5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5tZXNzYWdlLmlzLW1lZGl1bXtmb250LXNpemU6MS4yNXJlbX0ubWVzc2FnZS5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5tZXNzYWdlLmlzLXdoaXRle2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWVzc2FnZS5pcy13aGl0ZSAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwYTBhMGF9Lm1lc3NhZ2UuaXMtd2hpdGUgLm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6I2ZmZn0ubWVzc2FnZS5pcy1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9Lm1lc3NhZ2UuaXMtYmxhY2sgLm1lc3NhZ2UtaGVhZGVye2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtjb2xvcjojZmZmfS5tZXNzYWdlLmlzLWJsYWNrIC5tZXNzYWdlLWJvZHl7Ym9yZGVyLWNvbG9yOiMwYTBhMGF9Lm1lc3NhZ2UuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjZmZWY3fS5tZXNzYWdlLmlzLWxpZ2h0IC5tZXNzYWdlLWhlYWRlcntiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm1lc3NhZ2UuaXMtbGlnaHQgLm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6I2QyZjlkNn0ubWVzc2FnZS5pcy1kYXJre2JhY2tncm91bmQtY29sb3I6I2Y4ZmNmOX0ubWVzc2FnZS5pcy1kYXJrIC5tZXNzYWdlLWhlYWRlcntiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTg7Y29sb3I6I2ZmZn0ubWVzc2FnZS5pcy1kYXJrIC5tZXNzYWdlLWJvZHl7Ym9yZGVyLWNvbG9yOiM0NTk1NTh9Lm1lc3NhZ2UuaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY5ZjJ9Lm1lc3NhZ2UuaXMtcHJpbWFyeSAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmO2NvbG9yOiNmZmZ9Lm1lc3NhZ2UuaXMtcHJpbWFyeSAubWVzc2FnZS1ib2R5e2JvcmRlci1jb2xvcjojNTViZTZmO2NvbG9yOiMyZjdhNDF9Lm1lc3NhZ2UuaXMtbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiNlYmYwZmZ9Lm1lc3NhZ2UuaXMtbGluayAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmO2NvbG9yOiNmZmZ9Lm1lc3NhZ2UuaXMtbGluayAubWVzc2FnZS1ib2R5e2JvcmRlci1jb2xvcjojNDg3NmZmO2NvbG9yOiMwMDM3ZGJ9Lm1lc3NhZ2UuaXMtaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmZ9Lm1lc3NhZ2UuaXMtaW5mbyAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5tZXNzYWdlLmlzLWluZm8gLm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6I2YwZjhmZjtjb2xvcjojMDA0Zjk0fS5tZXNzYWdlLmlzLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojZWZmYWY1fS5tZXNzYWdlLmlzLXN1Y2Nlc3MgLm1lc3NhZ2UtaGVhZGVye2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZTtjb2xvcjojZmZmfS5tZXNzYWdlLmlzLXN1Y2Nlc3MgLm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6IzQ4Yzc4ZTtjb2xvcjojMjU3OTUzfS5tZXNzYWdlLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZmOWVifS5tZXNzYWdlLmlzLXdhcm5pbmcgLm1lc3NhZ2UtaGVhZGVye2JhY2tncm91bmQtY29sb3I6I2ZmZDk3NTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubWVzc2FnZS5pcy13YXJuaW5nIC5tZXNzYWdlLWJvZHl7Ym9yZGVyLWNvbG9yOiNmZmQ5NzU7Y29sb3I6Izk0NmIwMH0ubWVzc2FnZS5pcy1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZmVlY2YwfS5tZXNzYWdlLmlzLWRhbmdlciAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4O2NvbG9yOiNmZmZ9Lm1lc3NhZ2UuaXMtZGFuZ2VyIC5tZXNzYWdlLWJvZHl7Ym9yZGVyLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2NjMGYzNX0ubWVzc2FnZS1oZWFkZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6IzRhNGE0YTtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwO2NvbG9yOiNmZmY7ZGlzcGxheTpmbGV4O2ZvbnQtd2VpZ2h0OjcwMDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtsaW5lLWhlaWdodDoxLjI1O3BhZGRpbmc6Ljc1ZW0gMWVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5tZXNzYWdlLWhlYWRlciAuZGVsZXRle2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWxlZnQ6Ljc1ZW19Lm1lc3NhZ2UtaGVhZGVyKy5tZXNzYWdlLWJvZHl7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9Lm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6I2RiZGJkYjtib3JkZXItcmFkaXVzOjRweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjAgMCAwIDRweDtjb2xvcjojNGE0YTRhO3BhZGRpbmc6MS4yNWVtIDEuNWVtfS5tZXNzYWdlLWJvZHkgY29kZSwubWVzc2FnZS1ib2R5IHByZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm1lc3NhZ2UtYm9keSBwcmUgY29kZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9Lm1vZGFse2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5Om5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6NDB9Lm1vZGFsLmlzLWFjdGl2ZXtkaXNwbGF5OmZsZXh9Lm1vZGFsLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC44Nil9Lm1vZGFsLWNvbnRlbnQsLm1vZGFsLWNhcmR7bWFyZ2luOjAgMjBweDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAxNjBweCk7b3ZlcmZsb3c6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KXsubW9kYWwtY29udGVudCwubW9kYWwtY2FyZHttYXJnaW46MCBhdXRvO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDQwcHgpO3dpZHRoOjY0MHB4fX0ubW9kYWwtY2xvc2V7YmFja2dyb3VuZDpub25lO2hlaWdodDo0MHB4O3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjIwcHg7dG9wOjIwcHg7d2lkdGg6NDBweH0ubW9kYWwtY2FyZHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDQwcHgpO292ZXJmbG93OmhpZGRlbjstbXMtb3ZlcmZsb3cteTp2aXNpYmxlfS5tb2RhbC1jYXJkLWhlYWQsLm1vZGFsLWNhcmQtZm9vdHthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2Rpc3BsYXk6ZmxleDtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubW9kYWwtY2FyZC1oZWFke2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkYmRiZGI7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4fS5tb2RhbC1jYXJkLXRpdGxle2NvbG9yOiMzNjM2MzY7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MDtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjF9Lm1vZGFsLWNhcmQtZm9vdHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RiZGJkYn0ubW9kYWwtY2FyZC1mb290IC5idXR0b246bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjVlbX0ubW9kYWwtY2FyZC1ib2R5ey13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2JhY2tncm91bmQtY29sb3I6I2ZmZjtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO292ZXJmbG93OmF1dG87cGFkZGluZzoyMHB4fS5uYXZiYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO21pbi1oZWlnaHQ6MnJlbTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjMwfS5uYXZiYXIuaXMtd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwYTBhMGF9Lm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5re2NvbG9yOiMwYTBhMGF9Lm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Y29sb3I6IzBhMGEwYX0ubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6IzBhMGEwYX0ubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItYnVyZ2Vye2NvbG9yOiMwYTBhMGF9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluaywubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItZW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjojMGEwYTBhfS5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluay5pcy1hY3RpdmUsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Y29sb3I6IzBhMGEwYX0ubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOjphZnRlciwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiMwYTBhMGF9Lm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246aG92ZXIgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi5pcy1hY3RpdmUgLm5hdmJhci1saW5re2JhY2tncm91bmQtY29sb3I6I2YyZjJmMjtjb2xvcjojMGEwYTBhfS5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX19Lm5hdmJhci5pcy1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMDtjb2xvcjojZmZmfS5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6OmFmdGVye2JvcmRlci1jb2xvcjojZmZmfS5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1idXJnZXJ7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NDBweCl7Lm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0Pi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1lbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1lbmQgLm5hdmJhci1saW5re2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMDtjb2xvcjojZmZmfS5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6OmFmdGVyLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246Zm9jdXMgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpob3ZlciAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtjb2xvcjojZmZmfX0ubmF2YmFyLmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2QyZjlkNjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmt7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNiY2Y2YzI7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1idXJnZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1saWdodCAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluaywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmsuaXMtYWN0aXZlLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYmNmNmMyO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6OmFmdGVyLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1saWdodCAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246aG92ZXIgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi5pcy1hY3RpdmUgLm5hdmJhci1saW5re2JhY2tncm91bmQtY29sb3I6I2JjZjZjMjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2O2NvbG9yOnJnYmEoMCwwLDAsLjcpfX0ubmF2YmFyLmlzLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4O2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGlua3tjb2xvcjojZmZmfS5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2Q4NDRlO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1idXJnZXJ7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NDBweCl7Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItc3RhcnQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluaywubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1lbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmsuaXMtYWN0aXZlLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItZW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2Q4NDRlO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOjphZnRlciwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpmb2N1cyAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246aG92ZXIgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojM2Q4NDRlO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4O2NvbG9yOiNmZmZ9fS5uYXZiYXIuaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1icmFuZD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5re2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0NWI0NjE7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6OmFmdGVye2JvcmRlci1jb2xvcjojZmZmfS5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWJ1cmdlcntjb2xvcjojZmZmfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0MHB4KXsubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWVuZD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjojZmZmfS5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluay5pcy1hY3RpdmUsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0NWI0NjE7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6OmFmdGVyLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6OmFmdGVye2JvcmRlci1jb2xvcjojZmZmfS5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpob3ZlciAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtYWN0aXZlIC5uYXZiYXItbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiM0NWI0NjE7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Y29sb3I6I2ZmZn19Lm5hdmJhci5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmfS5uYXZiYXIuaXMtbGluayAubmF2YmFyLWJyYW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzJmNjNmZjtjb2xvcjojZmZmfS5uYXZiYXIuaXMtbGluayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm5hdmJhci5pcy1saW5rIC5uYXZiYXItYnVyZ2Vye2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIuaXMtbGluayAubmF2YmFyLXN0YXJ0Pi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1saW5rIC5uYXZiYXItZW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQgLm5hdmJhci1saW5re2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1saW5rIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzJmNjNmZjtjb2xvcjojZmZmfS5uYXZiYXIuaXMtbGluayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazo6YWZ0ZXIsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm5hdmJhci5pcy1saW5rIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246Zm9jdXMgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmhvdmVyIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi5pcy1hY3RpdmUgLm5hdmJhci1saW5re2JhY2tncm91bmQtY29sb3I6IzJmNjNmZjtjb2xvcjojZmZmfS5uYXZiYXIuaXMtbGluayAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmfX0ubmF2YmFyLmlzLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWJyYW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWluZm8gLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmt7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1pbmZvIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWluZm8gLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWluZm8gLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkN2VjZmY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1pbmZvIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1pbmZvIC5uYXZiYXItYnVyZ2Vye2NvbG9yOnJnYmEoMCwwLDAsLjcpfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0MHB4KXsubmF2YmFyLmlzLWluZm8gLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLWluZm8gLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWluZm8gLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmsuaXMtYWN0aXZlLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWluZm8gLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItZW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDdlY2ZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazo6YWZ0ZXIsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWluZm8gLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpob3ZlciAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtYWN0aXZlIC5uYXZiYXItbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiNkN2VjZmY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1pbmZvIC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfX0ubmF2YmFyLmlzLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGlua3tjb2xvcjojZmZmfS5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2FiYjgxO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1idXJnZXJ7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NDBweCl7Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItc3RhcnQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluaywubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1lbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZCAubmF2YmFyLWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmsuaXMtYWN0aXZlLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItZW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2FiYjgxO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOjphZnRlciwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpmb2N1cyAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246aG92ZXIgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojM2FiYjgxO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlO2NvbG9yOiNmZmZ9fS5uYXZiYXIuaXMtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzU7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGlua3tjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZmZDI1Yztjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1idXJnZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLXN0YXJ0Pi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmssLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1lbmQgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluay5pcy1hY3RpdmUsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQyNWM7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOjphZnRlciwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246Zm9jdXMgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmhvdmVyIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi5pcy1hY3RpdmUgLm5hdmJhci1saW5re2JhY2tncm91bmQtY29sb3I6I2ZmZDI1Yztjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzU7Y29sb3I6cmdiYSgwLDAsMCwuNyl9fS5uYXZiYXIuaXMtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtjb2xvcjojZmZmfS5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5re2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjJlNTU7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1idXJnZXJ7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NDBweCl7Lm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1lbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjojZmZmfS5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluay5pcy1hY3RpdmUsLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjJlNTU7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazo6YWZ0ZXIsLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmhvdmVyIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojZWYyZTU1O2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2ZmZn19Lm5hdmJhcj4uY29udGFpbmVye2FsaWduLWl0ZW1zOnN0cmV0Y2g7ZGlzcGxheTpmbGV4O21pbi1oZWlnaHQ6MnJlbTt3aWR0aDoxMDAlfS5uYXZiYXIuaGFzLXNoYWRvd3tib3gtc2hhZG93OjAgMnB4IDAgMCAjZjVmNWY1fS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLC5uYXZiYXIuaXMtZml4ZWQtdG9we2xlZnQ6MDtwb3NpdGlvbjpmaXhlZDtyaWdodDowO3otaW5kZXg6MzB9Lm5hdmJhci5pcy1maXhlZC1ib3R0b217Ym90dG9tOjB9Lm5hdmJhci5pcy1maXhlZC1ib3R0b20uaGFzLXNoYWRvd3tib3gtc2hhZG93OjAgLTJweCAwIDAgI2Y1ZjVmNX0ubmF2YmFyLmlzLWZpeGVkLXRvcHt0b3A6MH1odG1sLmhhcy1uYXZiYXItZml4ZWQtdG9wLGJvZHkuaGFzLW5hdmJhci1maXhlZC10b3B7cGFkZGluZy10b3A6MnJlbX1odG1sLmhhcy1uYXZiYXItZml4ZWQtYm90dG9tLGJvZHkuaGFzLW5hdmJhci1maXhlZC1ib3R0b217cGFkZGluZy1ib3R0b206MnJlbX0ubmF2YmFyLWJyYW5kLC5uYXZiYXItdGFic3thbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6ZmxleDtmbGV4LXNocmluazowO21pbi1oZWlnaHQ6MnJlbX0ubmF2YmFyLWJyYW5kIGEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci1icmFuZCBhLm5hdmJhci1pdGVtOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0ubmF2YmFyLXRhYnN7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7bWF4LXdpZHRoOjEwMHZ3O292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbn0ubmF2YmFyLWJ1cmdlcntjb2xvcjojNGE0YTRhO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjJyZW07cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MnJlbTttYXJnaW4tbGVmdDphdXRvfS5uYXZiYXItYnVyZ2VyIHNwYW57YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7ZGlzcGxheTpibG9jaztoZWlnaHQ6MXB4O2xlZnQ6Y2FsYyg1MCUgLSA4cHgpO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zaXRpb24tZHVyYXRpb246ODZtczt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3Isb3BhY2l0eSx0cmFuc2Zvcm07dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7d2lkdGg6MTZweH0ubmF2YmFyLWJ1cmdlciBzcGFuOm50aC1jaGlsZCgxKXt0b3A6Y2FsYyg1MCUgLSA2cHgpfS5uYXZiYXItYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDIpe3RvcDpjYWxjKDUwJSAtIDFweCl9Lm5hdmJhci1idXJnZXIgc3BhbjpudGgtY2hpbGQoMyl7dG9wOmNhbGMoNTAlICsgNHB4KX0ubmF2YmFyLWJ1cmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA1KX0ubmF2YmFyLWJ1cmdlci5pcy1hY3RpdmUgc3BhbjpudGgtY2hpbGQoMSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KSByb3RhdGUoNDVkZWcpfS5uYXZiYXItYnVyZ2VyLmlzLWFjdGl2ZSBzcGFuOm50aC1jaGlsZCgyKXtvcGFjaXR5OjB9Lm5hdmJhci1idXJnZXIuaXMtYWN0aXZlIHNwYW46bnRoLWNoaWxkKDMpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpIHJvdGF0ZSgtNDVkZWcpfS5uYXZiYXItbWVudXtkaXNwbGF5Om5vbmV9Lm5hdmJhci1pdGVtLC5uYXZiYXItbGlua3tjb2xvcjojNGE0YTRhO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS41O3BhZGRpbmc6LjVyZW0gLjc1cmVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5uYXZiYXItaXRlbSAuaWNvbjpvbmx5LWNoaWxkLC5uYXZiYXItbGluayAuaWNvbjpvbmx5LWNoaWxke21hcmdpbi1sZWZ0Oi0wLjI1cmVtO21hcmdpbi1yaWdodDotMC4yNXJlbX1hLm5hdmJhci1pdGVtLC5uYXZiYXItbGlua3tjdXJzb3I6cG9pbnRlcn1hLm5hdmJhci1pdGVtOmZvY3VzLGEubmF2YmFyLWl0ZW06Zm9jdXMtd2l0aGluLGEubmF2YmFyLWl0ZW06aG92ZXIsYS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXItbGluazpmb2N1cy13aXRoaW4sLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2NvbG9yOiM0ODc2ZmZ9Lm5hdmJhci1pdGVte2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjB9Lm5hdmJhci1pdGVtIGltZ3ttYXgtaGVpZ2h0OjEuNzVyZW19Lm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bntwYWRkaW5nOjB9Lm5hdmJhci1pdGVtLmlzLWV4cGFuZGVke2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjF9Lm5hdmJhci1pdGVtLmlzLXRhYntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDApO21pbi1oZWlnaHQ6MnJlbTtwYWRkaW5nLWJvdHRvbTpjYWxjKC41cmVtIC0gMXB4KX0ubmF2YmFyLWl0ZW0uaXMtdGFiOmZvY3VzLC5uYXZiYXItaXRlbS5pcy10YWI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1ib3R0b20tY29sb3I6IzQ4NzZmZn0ubmF2YmFyLWl0ZW0uaXMtdGFiLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNDg3NmZmO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDozcHg7Y29sb3I6IzQ4NzZmZjtwYWRkaW5nLWJvdHRvbTpjYWxjKC41cmVtIC0gM3B4KX0ubmF2YmFyLWNvbnRlbnR7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX0ubmF2YmFyLWxpbms6bm90KC5pcy1hcnJvd2xlc3Mpe3BhZGRpbmctcmlnaHQ6Mi41ZW19Lm5hdmJhci1saW5rOm5vdCguaXMtYXJyb3dsZXNzKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM0ODc2ZmY7bWFyZ2luLXRvcDotMC4zNzVlbTtyaWdodDoxLjEyNWVtfS5uYXZiYXItZHJvcGRvd257Zm9udC1zaXplOi44NzVyZW07cGFkZGluZy1ib3R0b206LjVyZW07cGFkZGluZy10b3A6LjVyZW19Lm5hdmJhci1kcm9wZG93biAubmF2YmFyLWl0ZW17cGFkZGluZy1sZWZ0OjEuNXJlbTtwYWRkaW5nLXJpZ2h0OjEuNXJlbX0ubmF2YmFyLWRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlcjpub25lO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MnB4O21hcmdpbjouNXJlbSAwfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgzOXB4KXsubmF2YmFyPi5jb250YWluZXJ7ZGlzcGxheTpibG9ja30ubmF2YmFyLWJyYW5kIC5uYXZiYXItaXRlbSwubmF2YmFyLXRhYnMgLm5hdmJhci1pdGVte2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9Lm5hdmJhci1saW5rOjphZnRlcntkaXNwbGF5Om5vbmV9Lm5hdmJhci1tZW51e2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3gtc2hhZG93OjAgOHB4IDE2cHggcmdiYSgxMCwxMCwxMCwuMSk7cGFkZGluZzouNXJlbSAwfS5uYXZiYXItbWVudS5pcy1hY3RpdmV7ZGlzcGxheTpibG9ja30ubmF2YmFyLmlzLWZpeGVkLWJvdHRvbS10b3VjaCwubmF2YmFyLmlzLWZpeGVkLXRvcC10b3VjaHtsZWZ0OjA7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt6LWluZGV4OjMwfS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLXRvdWNoe2JvdHRvbTowfS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLXRvdWNoLmhhcy1zaGFkb3d7Ym94LXNoYWRvdzowIC0ycHggM3B4IHJnYmEoMTAsMTAsMTAsLjEpfS5uYXZiYXIuaXMtZml4ZWQtdG9wLXRvdWNoe3RvcDowfS5uYXZiYXIuaXMtZml4ZWQtdG9wIC5uYXZiYXItbWVudSwubmF2YmFyLmlzLWZpeGVkLXRvcC10b3VjaCAubmF2YmFyLW1lbnV7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMnJlbSk7b3ZlcmZsb3c6YXV0b31odG1sLmhhcy1uYXZiYXItZml4ZWQtdG9wLXRvdWNoLGJvZHkuaGFzLW5hdmJhci1maXhlZC10b3AtdG91Y2h7cGFkZGluZy10b3A6MnJlbX1odG1sLmhhcy1uYXZiYXItZml4ZWQtYm90dG9tLXRvdWNoLGJvZHkuaGFzLW5hdmJhci1maXhlZC1ib3R0b20tdG91Y2h7cGFkZGluZy1ib3R0b206MnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIsLm5hdmJhci1tZW51LC5uYXZiYXItc3RhcnQsLm5hdmJhci1lbmR7YWxpZ24taXRlbXM6c3RyZXRjaDtkaXNwbGF5OmZsZXh9Lm5hdmJhcnttaW4taGVpZ2h0OjJyZW19Lm5hdmJhci5pcy1zcGFjZWR7cGFkZGluZzoxcmVtIDJyZW19Lm5hdmJhci5pcy1zcGFjZWQgLm5hdmJhci1zdGFydCwubmF2YmFyLmlzLXNwYWNlZCAubmF2YmFyLWVuZHthbGlnbi1pdGVtczpjZW50ZXJ9Lm5hdmJhci5pcy1zcGFjZWQgYS5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXNwYWNlZCAubmF2YmFyLWxpbmt7Ym9yZGVyLXJhZGl1czo0cHh9Lm5hdmJhci5pcy10cmFuc3BhcmVudCBhLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtdHJhbnNwYXJlbnQgYS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXRyYW5zcGFyZW50IGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtdHJhbnNwYXJlbnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtdHJhbnNwYXJlbnQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtdHJhbnNwYXJlbnQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCkgIWltcG9ydGFudH0ubmF2YmFyLmlzLXRyYW5zcGFyZW50IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtYWN0aXZlIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXRyYW5zcGFyZW50IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtaG92ZXJhYmxlOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXRyYW5zcGFyZW50IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtaG92ZXJhYmxlOmZvY3VzLXdpdGhpbiAubmF2YmFyLWxpbmssLm5hdmJhci5pcy10cmFuc3BhcmVudCAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWhvdmVyYWJsZTpob3ZlciAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApICFpbXBvcnRhbnR9Lm5hdmJhci5pcy10cmFuc3BhcmVudCAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy10cmFuc3BhcmVudCAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiMwYTBhMGF9Lm5hdmJhci5pcy10cmFuc3BhcmVudCAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNDg3NmZmfS5uYXZiYXItYnVyZ2Vye2Rpc3BsYXk6bm9uZX0ubmF2YmFyLWl0ZW0sLm5hdmJhci1saW5re2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9Lm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bnthbGlnbi1pdGVtczpzdHJldGNofS5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24tdXAgLm5hdmJhci1saW5rOjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKDEzNWRlZykgdHJhbnNsYXRlKDAuMjVlbSwgLTAuMjVlbSl9Lm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi11cCAubmF2YmFyLWRyb3Bkb3due2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNkYmRiZGI7Ym9yZGVyLXJhZGl1czo2cHggNnB4IDAgMDtib3JkZXItdG9wOm5vbmU7Ym90dG9tOjEwMCU7Ym94LXNoYWRvdzowIC04cHggOHB4IHJnYmEoMTAsMTAsMTAsLjEpO3RvcDphdXRvfS5uYXZiYXItaXRlbS5pcy1hY3RpdmUgLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmZvY3VzIC5uYXZiYXItZHJvcGRvd24sLm5hdmJhci1pdGVtLmlzLWhvdmVyYWJsZTpmb2N1cy13aXRoaW4gLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmhvdmVyIC5uYXZiYXItZHJvcGRvd257ZGlzcGxheTpibG9ja30ubmF2YmFyLmlzLXNwYWNlZCAubmF2YmFyLWl0ZW0uaXMtYWN0aXZlIC5uYXZiYXItZHJvcGRvd24sLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSAubmF2YmFyLWRyb3Bkb3duLmlzLWJveGVkLC5uYXZiYXIuaXMtc3BhY2VkIC5uYXZiYXItaXRlbS5pcy1ob3ZlcmFibGU6Zm9jdXMgLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmZvY3VzIC5uYXZiYXItZHJvcGRvd24uaXMtYm94ZWQsLm5hdmJhci5pcy1zcGFjZWQgLm5hdmJhci1pdGVtLmlzLWhvdmVyYWJsZTpmb2N1cy13aXRoaW4gLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmZvY3VzLXdpdGhpbiAubmF2YmFyLWRyb3Bkb3duLmlzLWJveGVkLC5uYXZiYXIuaXMtc3BhY2VkIC5uYXZiYXItaXRlbS5pcy1ob3ZlcmFibGU6aG92ZXIgLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmhvdmVyIC5uYXZiYXItZHJvcGRvd24uaXMtYm94ZWR7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG87dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9Lm5hdmJhci1tZW51e2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjB9Lm5hdmJhci1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDttYXJnaW4tcmlnaHQ6YXV0b30ubmF2YmFyLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luLWxlZnQ6YXV0b30ubmF2YmFyLWRyb3Bkb3due2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcDoycHggc29saWQgI2RiZGJkYjtib3gtc2hhZG93OjAgOHB4IDhweCByZ2JhKDEwLDEwLDEwLC4xKTtkaXNwbGF5Om5vbmU7Zm9udC1zaXplOi44NzVyZW07bGVmdDowO21pbi13aWR0aDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO3otaW5kZXg6MjB9Lm5hdmJhci1kcm9wZG93biAubmF2YmFyLWl0ZW17cGFkZGluZzouMzc1cmVtIDFyZW07d2hpdGUtc3BhY2U6bm93cmFwfS5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbXtwYWRkaW5nLXJpZ2h0OjNyZW19Lm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Y29sb3I6IzBhMGEwYX0ubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNDg3NmZmfS5uYXZiYXIuaXMtc3BhY2VkIC5uYXZiYXItZHJvcGRvd24sLm5hdmJhci1kcm9wZG93bi5pcy1ib3hlZHtib3JkZXItcmFkaXVzOjZweDtib3JkZXItdG9wOm5vbmU7Ym94LXNoYWRvdzowIDhweCA4cHggcmdiYSgxMCwxMCwxMCwuMSksMCAwIDAgMXB4IHJnYmEoMTAsMTAsMTAsLjEpO2Rpc3BsYXk6YmxvY2s7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOmNhbGMoMTAwJSArICgtNHB4KSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCk7dHJhbnNpdGlvbi1kdXJhdGlvbjo4Nm1zO3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eSx0cmFuc2Zvcm19Lm5hdmJhci1kcm9wZG93bi5pcy1yaWdodHtsZWZ0OmF1dG87cmlnaHQ6MH0ubmF2YmFyLWRpdmlkZXJ7ZGlzcGxheTpibG9ja30ubmF2YmFyPi5jb250YWluZXIgLm5hdmJhci1icmFuZCwuY29udGFpbmVyPi5uYXZiYXIgLm5hdmJhci1icmFuZHttYXJnaW4tbGVmdDotMC43NXJlbX0ubmF2YmFyPi5jb250YWluZXIgLm5hdmJhci1tZW51LC5jb250YWluZXI+Lm5hdmJhciAubmF2YmFyLW1lbnV7bWFyZ2luLXJpZ2h0Oi0wLjc1cmVtfS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLWRlc2t0b3AsLm5hdmJhci5pcy1maXhlZC10b3AtZGVza3RvcHtsZWZ0OjA7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt6LWluZGV4OjMwfS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLWRlc2t0b3B7Ym90dG9tOjB9Lm5hdmJhci5pcy1maXhlZC1ib3R0b20tZGVza3RvcC5oYXMtc2hhZG93e2JveC1zaGFkb3c6MCAtMnB4IDNweCByZ2JhKDEwLDEwLDEwLC4xKX0ubmF2YmFyLmlzLWZpeGVkLXRvcC1kZXNrdG9we3RvcDowfWh0bWwuaGFzLW5hdmJhci1maXhlZC10b3AtZGVza3RvcCxib2R5Lmhhcy1uYXZiYXItZml4ZWQtdG9wLWRlc2t0b3B7cGFkZGluZy10b3A6MnJlbX1odG1sLmhhcy1uYXZiYXItZml4ZWQtYm90dG9tLWRlc2t0b3AsYm9keS5oYXMtbmF2YmFyLWZpeGVkLWJvdHRvbS1kZXNrdG9we3BhZGRpbmctYm90dG9tOjJyZW19aHRtbC5oYXMtc3BhY2VkLW5hdmJhci1maXhlZC10b3AsYm9keS5oYXMtc3BhY2VkLW5hdmJhci1maXhlZC10b3B7cGFkZGluZy10b3A6NHJlbX1odG1sLmhhcy1zcGFjZWQtbmF2YmFyLWZpeGVkLWJvdHRvbSxib2R5Lmhhcy1zcGFjZWQtbmF2YmFyLWZpeGVkLWJvdHRvbXtwYWRkaW5nLWJvdHRvbTo0cmVtfWEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXItbGluay5pcy1hY3RpdmV7Y29sb3I6IzBhMGEwYX1hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZTpub3QoOmZvY3VzKTpub3QoOmhvdmVyKSwubmF2YmFyLWxpbmsuaXMtYWN0aXZlOm5vdCg6Zm9jdXMpOm5vdCg6aG92ZXIpe2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0ubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmhvdmVyIC5uYXZiYXItbGluaywubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhfX0uaGVyby5pcy1mdWxsaGVpZ2h0LXdpdGgtbmF2YmFye21pbi1oZWlnaHQ6Y2FsYygxMDB2aCAtIDJyZW0pfS5wYWdpbmF0aW9ue2ZvbnQtc2l6ZToxcmVtO21hcmdpbjotMC4yNXJlbX0ucGFnaW5hdGlvbi5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5wYWdpbmF0aW9uLmlzLW1lZGl1bXtmb250LXNpemU6MS4yNXJlbX0ucGFnaW5hdGlvbi5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5wYWdpbmF0aW9uLmlzLXJvdW5kZWQgLnBhZ2luYXRpb24tcHJldmlvdXMsLnBhZ2luYXRpb24uaXMtcm91bmRlZCAucGFnaW5hdGlvbi1uZXh0e3BhZGRpbmctbGVmdDoxZW07cGFkZGluZy1yaWdodDoxZW07Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnBhZ2luYXRpb24uaXMtcm91bmRlZCAucGFnaW5hdGlvbi1saW5re2JvcmRlci1yYWRpdXM6OTk5OXB4fS5wYWdpbmF0aW9uLC5wYWdpbmF0aW9uLWxpc3R7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLW5leHQsLnBhZ2luYXRpb24tbGluaywucGFnaW5hdGlvbi1lbGxpcHNpc3tmb250LXNpemU6MWVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOi4yNXJlbTtwYWRkaW5nLWxlZnQ6LjVlbTtwYWRkaW5nLXJpZ2h0Oi41ZW07dGV4dC1hbGlnbjpjZW50ZXJ9LnBhZ2luYXRpb24tcHJldmlvdXMsLnBhZ2luYXRpb24tbmV4dCwucGFnaW5hdGlvbi1saW5re2JvcmRlci1jb2xvcjojZGJkYmRiO2NvbG9yOiMzNjM2MzY7bWluLXdpZHRoOjIuNWVtfS5wYWdpbmF0aW9uLXByZXZpb3VzOmhvdmVyLC5wYWdpbmF0aW9uLW5leHQ6aG92ZXIsLnBhZ2luYXRpb24tbGluazpob3Zlcntib3JkZXItY29sb3I6I2I1YjViNTtjb2xvcjojMzYzNjM2fS5wYWdpbmF0aW9uLXByZXZpb3VzOmZvY3VzLC5wYWdpbmF0aW9uLW5leHQ6Zm9jdXMsLnBhZ2luYXRpb24tbGluazpmb2N1c3tib3JkZXItY29sb3I6IzQ4NWZjN30ucGFnaW5hdGlvbi1wcmV2aW91czphY3RpdmUsLnBhZ2luYXRpb24tbmV4dDphY3RpdmUsLnBhZ2luYXRpb24tbGluazphY3RpdmV7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgxMCwxMCwxMCwuMil9LnBhZ2luYXRpb24tcHJldmlvdXNbZGlzYWJsZWRdLC5wYWdpbmF0aW9uLW5leHRbZGlzYWJsZWRdLC5wYWdpbmF0aW9uLWxpbmtbZGlzYWJsZWRde2JhY2tncm91bmQtY29sb3I6I2RiZGJkYjtib3JkZXItY29sb3I6I2RiZGJkYjtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzdhN2E3YTtvcGFjaXR5Oi41fS5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLW5leHR7cGFkZGluZy1sZWZ0Oi43NWVtO3BhZGRpbmctcmlnaHQ6Ljc1ZW07d2hpdGUtc3BhY2U6bm93cmFwfS5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudHtiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Ym9yZGVyLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0ucGFnaW5hdGlvbi1lbGxpcHNpc3tjb2xvcjojYjViNWI1O3BvaW50ZXItZXZlbnRzOm5vbmV9LnBhZ2luYXRpb24tbGlzdHtmbGV4LXdyYXA6d3JhcH0ucGFnaW5hdGlvbi1saXN0IGxpe2xpc3Qtc3R5bGU6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LnBhZ2luYXRpb257ZmxleC13cmFwOndyYXB9LnBhZ2luYXRpb24tcHJldmlvdXMsLnBhZ2luYXRpb24tbmV4dHtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxfS5wYWdpbmF0aW9uLWxpc3QgbGl7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5wYWdpbmF0aW9uLWxpc3R7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtvcmRlcjoxfS5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLW5leHQsLnBhZ2luYXRpb24tbGluaywucGFnaW5hdGlvbi1lbGxpcHNpc3ttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowfS5wYWdpbmF0aW9uLXByZXZpb3Vze29yZGVyOjJ9LnBhZ2luYXRpb24tbmV4dHtvcmRlcjozfS5wYWdpbmF0aW9ue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjB9LnBhZ2luYXRpb24uaXMtY2VudGVyZWQgLnBhZ2luYXRpb24tcHJldmlvdXN7b3JkZXI6MX0ucGFnaW5hdGlvbi5pcy1jZW50ZXJlZCAucGFnaW5hdGlvbi1saXN0e2p1c3RpZnktY29udGVudDpjZW50ZXI7b3JkZXI6Mn0ucGFnaW5hdGlvbi5pcy1jZW50ZXJlZCAucGFnaW5hdGlvbi1uZXh0e29yZGVyOjN9LnBhZ2luYXRpb24uaXMtcmlnaHQgLnBhZ2luYXRpb24tcHJldmlvdXN7b3JkZXI6MX0ucGFnaW5hdGlvbi5pcy1yaWdodCAucGFnaW5hdGlvbi1uZXh0e29yZGVyOjJ9LnBhZ2luYXRpb24uaXMtcmlnaHQgLnBhZ2luYXRpb24tbGlzdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7b3JkZXI6M319LnBhbmVse2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaGFkb3c6MCAuNWVtIDFlbSAtMC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4xKSwwIDBweCAwIDFweCByZ2JhKDEwLDEwLDEwLC4wMik7Zm9udC1zaXplOjFyZW19LnBhbmVsOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToxLjVyZW19LnBhbmVsLmlzLXdoaXRlIC5wYW5lbC1oZWFkaW5ne2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMGEwYTBhfS5wYW5lbC5pcy13aGl0ZSAucGFuZWwtdGFicyBhLmlzLWFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOiNmZmZ9LnBhbmVsLmlzLXdoaXRlIC5wYW5lbC1ibG9jay5pcy1hY3RpdmUgLnBhbmVsLWljb257Y29sb3I6I2ZmZn0ucGFuZWwuaXMtYmxhY2sgLnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2NvbG9yOiNmZmZ9LnBhbmVsLmlzLWJsYWNrIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6IzBhMGEwYX0ucGFuZWwuaXMtYmxhY2sgLnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojMGEwYTBhfS5wYW5lbC5pcy1saWdodCAucGFuZWwtaGVhZGluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LnBhbmVsLmlzLWxpZ2h0IC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6I2QyZjlkNn0ucGFuZWwuaXMtbGlnaHQgLnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojZDJmOWQ2fS5wYW5lbC5pcy1kYXJrIC5wYW5lbC1oZWFkaW5ne2JhY2tncm91bmQtY29sb3I6IzQ1OTU1ODtjb2xvcjojZmZmfS5wYW5lbC5pcy1kYXJrIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6IzQ1OTU1OH0ucGFuZWwuaXMtZGFyayAucGFuZWwtYmxvY2suaXMtYWN0aXZlIC5wYW5lbC1pY29ue2NvbG9yOiM0NTk1NTh9LnBhbmVsLmlzLXByaW1hcnkgLnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmO2NvbG9yOiNmZmZ9LnBhbmVsLmlzLXByaW1hcnkgLnBhbmVsLXRhYnMgYS5pcy1hY3RpdmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNTViZTZmfS5wYW5lbC5pcy1wcmltYXJ5IC5wYW5lbC1ibG9jay5pcy1hY3RpdmUgLnBhbmVsLWljb257Y29sb3I6IzU1YmU2Zn0ucGFuZWwuaXMtbGluayAucGFuZWwtaGVhZGluZ3tiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0ucGFuZWwuaXMtbGluayAucGFuZWwtdGFicyBhLmlzLWFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOiM0ODc2ZmZ9LnBhbmVsLmlzLWxpbmsgLnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojNDg3NmZmfS5wYW5lbC5pcy1pbmZvIC5wYW5lbC1oZWFkaW5ne2JhY2tncm91bmQtY29sb3I6I2YwZjhmZjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ucGFuZWwuaXMtaW5mbyAucGFuZWwtdGFicyBhLmlzLWFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOiNmMGY4ZmZ9LnBhbmVsLmlzLWluZm8gLnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojZjBmOGZmfS5wYW5lbC5pcy1zdWNjZXNzIC5wYW5lbC1oZWFkaW5ne2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZTtjb2xvcjojZmZmfS5wYW5lbC5pcy1zdWNjZXNzIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6IzQ4Yzc4ZX0ucGFuZWwuaXMtc3VjY2VzcyAucGFuZWwtYmxvY2suaXMtYWN0aXZlIC5wYW5lbC1pY29ue2NvbG9yOiM0OGM3OGV9LnBhbmVsLmlzLXdhcm5pbmcgLnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5wYW5lbC5pcy13YXJuaW5nIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZDk3NX0ucGFuZWwuaXMtd2FybmluZyAucGFuZWwtYmxvY2suaXMtYWN0aXZlIC5wYW5lbC1pY29ue2NvbG9yOiNmZmQ5NzV9LnBhbmVsLmlzLWRhbmdlciAucGFuZWwtaGVhZGluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2ZmZn0ucGFuZWwuaXMtZGFuZ2VyIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6I2YxNDY2OH0ucGFuZWwuaXMtZGFuZ2VyIC5wYW5lbC1ibG9jay5pcy1hY3RpdmUgLnBhbmVsLWljb257Y29sb3I6I2YxNDY2OH0ucGFuZWwtdGFiczpub3QoOmxhc3QtY2hpbGQpLC5wYW5lbC1ibG9jazpub3QoOmxhc3QtY2hpbGQpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZGVkZWR9LnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1jb2xvcjojZWRlZGVkO2JvcmRlci1yYWRpdXM6NnB4IDZweCAwIDA7Y29sb3I6IzM2MzYzNjtmb250LXNpemU6MS4yNWVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxLjI1O3BhZGRpbmc6Ljc1ZW0gMWVtfS5wYW5lbC10YWJze2FsaWduLWl0ZW1zOmZsZXgtZW5kO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6Ljg3NWVtO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnBhbmVsLXRhYnMgYXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGJkYmRiO21hcmdpbi1ib3R0b206LTFweDtwYWRkaW5nOi41ZW19LnBhbmVsLXRhYnMgYS5pcy1hY3RpdmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNGE0YTRhO2NvbG9yOiMzNjM2MzZ9LnBhbmVsLWxpc3QgYXtjb2xvcjojNGE0YTRhfS5wYW5lbC1saXN0IGE6aG92ZXJ7Y29sb3I6IzQ4NzZmZn0ucGFuZWwtYmxvY2t7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMzNjM2MzY7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6LjVlbSAuNzVlbX0ucGFuZWwtYmxvY2sgaW5wdXRbdHlwZT1jaGVja2JveF17bWFyZ2luLXJpZ2h0Oi43NWVtfS5wYW5lbC1ibG9jaz4uY29udHJvbHtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO3dpZHRoOjEwMCV9LnBhbmVsLWJsb2NrLmlzLXdyYXBwZWR7ZmxleC13cmFwOndyYXB9LnBhbmVsLWJsb2NrLmlzLWFjdGl2ZXtib3JkZXItbGVmdC1jb2xvcjojNDg3NmZmO2NvbG9yOiMzNjM2MzZ9LnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojNDg3NmZmfS5wYW5lbC1ibG9jazpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweH1hLnBhbmVsLWJsb2NrLGxhYmVsLnBhbmVsLWJsb2Nre2N1cnNvcjpwb2ludGVyfWEucGFuZWwtYmxvY2s6aG92ZXIsbGFiZWwucGFuZWwtYmxvY2s6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1fS5wYW5lbC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxZW07bGluZS1oZWlnaHQ6MWVtO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcDt3aWR0aDoxZW07Y29sb3I6IzdhN2E3YTttYXJnaW4tcmlnaHQ6Ljc1ZW19LnBhbmVsLWljb24gLmZhe2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXR9LnRhYnN7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7YWxpZ24taXRlbXM6c3RyZXRjaDtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjFyZW07anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47b3ZlcmZsb3c6aGlkZGVuO292ZXJmbG93LXg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9LnRhYnMgYXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGJkYmRiO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Y29sb3I6IzRhNGE0YTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOi0xcHg7cGFkZGluZzouNWVtIDFlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnRhYnMgYTpob3Zlcntib3JkZXItYm90dG9tLWNvbG9yOiMzNjM2MzY7Y29sb3I6IzM2MzYzNn0udGFicyBsaXtkaXNwbGF5OmJsb2NrfS50YWJzIGxpLmlzLWFjdGl2ZSBhe2JvcmRlci1ib3R0b20tY29sb3I6IzQ4NzZmZjtjb2xvcjojNDg3NmZmfS50YWJzIHVse2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tLWNvbG9yOiNkYmRiZGI7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOjFweDtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0udGFicyB1bC5pcy1sZWZ0e3BhZGRpbmctcmlnaHQ6Ljc1ZW19LnRhYnMgdWwuaXMtY2VudGVye2ZsZXg6bm9uZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctbGVmdDouNzVlbTtwYWRkaW5nLXJpZ2h0Oi43NWVtfS50YWJzIHVsLmlzLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nLWxlZnQ6Ljc1ZW19LnRhYnMgLmljb246Zmlyc3QtY2hpbGR7bWFyZ2luLXJpZ2h0Oi41ZW19LnRhYnMgLmljb246bGFzdC1jaGlsZHttYXJnaW4tbGVmdDouNWVtfS50YWJzLmlzLWNlbnRlcmVkIHVse2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnRhYnMuaXMtcmlnaHQgdWx7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS50YWJzLmlzLWJveGVkIGF7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDB9LnRhYnMuaXMtYm94ZWQgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGJkYmRifS50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhe2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2RiZGJkYjtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsMCkgIWltcG9ydGFudH0udGFicy5pcy1mdWxsd2lkdGggbGl7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MH0udGFicy5pcy10b2dnbGUgYXtib3JkZXItY29sb3I6I2RiZGJkYjtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDttYXJnaW4tYm90dG9tOjA7cG9zaXRpb246cmVsYXRpdmV9LnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1jb2xvcjojYjViNWI1O3otaW5kZXg6Mn0udGFicy5pcy10b2dnbGUgbGkrbGl7bWFyZ2luLWxlZnQ6LTFweH0udGFicy5pcy10b2dnbGUgbGk6Zmlyc3QtY2hpbGQgYXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweH0udGFicy5pcy10b2dnbGUgbGk6bGFzdC1jaGlsZCBhe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0cHh9LnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhe2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtib3JkZXItY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmO3otaW5kZXg6MX0udGFicy5pcy10b2dnbGUgdWx7Ym9yZGVyLWJvdHRvbTpub25lfS50YWJzLmlzLXRvZ2dsZS5pcy10b2dnbGUtcm91bmRlZCBsaTpmaXJzdC1jaGlsZCBhe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OTk5OXB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6OTk5OXB4O3BhZGRpbmctbGVmdDoxLjI1ZW19LnRhYnMuaXMtdG9nZ2xlLmlzLXRvZ2dsZS1yb3VuZGVkIGxpOmxhc3QtY2hpbGQgYXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo5OTk5cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OTk5OXB4O3BhZGRpbmctcmlnaHQ6MS4yNWVtfS50YWJzLmlzLXNtYWxse2ZvbnQtc2l6ZTouNzVyZW19LnRhYnMuaXMtbWVkaXVte2ZvbnQtc2l6ZToxLjI1cmVtfS50YWJzLmlzLWxhcmdle2ZvbnQtc2l6ZToxLjVyZW19LmNvbHVtbntkaXNwbGF5OmJsb2NrO2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO3BhZGRpbmc6Ljc1cmVtfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW5hcnJvd3tmbGV4Om5vbmU7d2lkdGg6dW5zZXR9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtZnVsbHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy10aHJlZS1xdWFydGVyc3tmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLXR3by10aGlyZHN7ZmxleDpub25lO3dpZHRoOjY2LjY2NjYlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLWhhbGZ7ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vbmUtdGhpcmR7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9uZS1xdWFydGVye2ZsZXg6bm9uZTt3aWR0aDoyNSV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb25lLWZpZnRoe2ZsZXg6bm9uZTt3aWR0aDoyMCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtdHdvLWZpZnRoc3tmbGV4Om5vbmU7d2lkdGg6NDAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLXRocmVlLWZpZnRoc3tmbGV4Om5vbmU7d2lkdGg6NjAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLWZvdXItZmlmdGhze2ZsZXg6bm9uZTt3aWR0aDo4MCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLXF1YXJ0ZXJze21hcmdpbi1sZWZ0Ojc1JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkc3ttYXJnaW4tbGVmdDo2Ni42NjY2JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtaGFsZnttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb2Zmc2V0LW9uZS10aGlyZHttYXJnaW4tbGVmdDozMy4zMzMzJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtb25lLXF1YXJ0ZXJ7bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC1vbmUtZmlmdGh7bWFyZ2luLWxlZnQ6MjAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC10d28tZmlmdGhze21hcmdpbi1sZWZ0OjQwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhze21hcmdpbi1sZWZ0OjYwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHN7bWFyZ2luLWxlZnQ6ODAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTB7ZmxleDpub25lO3dpZHRoOjAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0we21hcmdpbi1sZWZ0OjAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTF7ZmxleDpub25lO3dpZHRoOjguMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTJ7ZmxleDpub25lO3dpZHRoOjE2LjY2NjY2Njc0JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY3NCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtM3tmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy00e2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzMzMzNyV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTV7ZmxleDpub25lO3dpZHRoOjQxLjY2NjY2Njc0JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY3NCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtNntmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC02e21hcmdpbi1sZWZ0OjUwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy03e2ZsZXg6bm9uZTt3aWR0aDo1OC4zMzMzMzMzNyV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTh7ZmxleDpub25lO3dpZHRoOjY2LjY2NjY2Njc0JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY3NCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtOXtmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy0xMHtmbGV4Om5vbmU7d2lkdGg6ODMuMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzNyV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtMTF7ZmxleDpub25lO3dpZHRoOjkxLjY2NjY2Njc0JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NzQlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTEye2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuY29sdW1uLmlzLW5hcnJvdy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOnVuc2V0fS5jb2x1bW4uaXMtZnVsbC1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjEwMCV9LmNvbHVtbi5pcy10aHJlZS1xdWFydGVycy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLXR3by10aGlyZHMtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2JX0uY29sdW1uLmlzLWhhbGYtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo1MCV9LmNvbHVtbi5pcy1vbmUtdGhpcmQtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzJX0uY29sdW1uLmlzLW9uZS1xdWFydGVyLW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW4uaXMtb25lLWZpZnRoLW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6MjAlfS5jb2x1bW4uaXMtdHdvLWZpZnRocy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjQwJX0uY29sdW1uLmlzLXRocmVlLWZpZnRocy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjYwJX0uY29sdW1uLmlzLWZvdXItZmlmdGhzLW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6ODAlfS5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLXF1YXJ0ZXJzLW1vYmlsZXttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkcy1tb2JpbGV7bWFyZ2luLWxlZnQ6NjYuNjY2NiV9LmNvbHVtbi5pcy1vZmZzZXQtaGFsZi1tb2JpbGV7bWFyZ2luLWxlZnQ6NTAlfS5jb2x1bW4uaXMtb2Zmc2V0LW9uZS10aGlyZC1tb2JpbGV7bWFyZ2luLWxlZnQ6MzMuMzMzMyV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLXF1YXJ0ZXItbW9iaWxle21hcmdpbi1sZWZ0OjI1JX0uY29sdW1uLmlzLW9mZnNldC1vbmUtZmlmdGgtbW9iaWxle21hcmdpbi1sZWZ0OjIwJX0uY29sdW1uLmlzLW9mZnNldC10d28tZmlmdGhzLW1vYmlsZXttYXJnaW4tbGVmdDo0MCV9LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhzLW1vYmlsZXttYXJnaW4tbGVmdDo2MCV9LmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHMtbW9iaWxle21hcmdpbi1sZWZ0OjgwJX0uY29sdW1uLmlzLTAtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDowJX0uY29sdW1uLmlzLW9mZnNldC0wLW1vYmlsZXttYXJnaW4tbGVmdDowJX0uY29sdW1uLmlzLTEtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC0xLW1vYmlsZXttYXJnaW4tbGVmdDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTItbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDoxNi42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtMi1tb2JpbGV7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtMy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9mZnNldC0zLW1vYmlsZXttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy00LW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6MzMuMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTQtbW9iaWxle21hcmdpbi1sZWZ0OjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTUtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo0MS42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtNS1tb2JpbGV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtNi1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1uLmlzLW9mZnNldC02LW1vYmlsZXttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbi5pcy03LW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6NTguMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTctbW9iaWxle21hcmdpbi1sZWZ0OjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTgtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtOC1tb2JpbGV7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtOS1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLW9mZnNldC05LW1vYmlsZXttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy0xMC1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjgzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC0xMC1tb2JpbGV7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtMTEtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtMTEtbW9iaWxle21hcmdpbi1sZWZ0OjkxLjY2NjY2Njc0JX0uY29sdW1uLmlzLTEyLW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLW9mZnNldC0xMi1tb2JpbGV7bWFyZ2luLWxlZnQ6MTAwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5jb2x1bW4uaXMtbmFycm93LC5jb2x1bW4uaXMtbmFycm93LXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6dW5zZXR9LmNvbHVtbi5pcy1mdWxsLC5jb2x1bW4uaXMtZnVsbC10YWJsZXR7ZmxleDpub25lO3dpZHRoOjEwMCV9LmNvbHVtbi5pcy10aHJlZS1xdWFydGVycywuY29sdW1uLmlzLXRocmVlLXF1YXJ0ZXJzLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW4uaXMtdHdvLXRoaXJkcywuY29sdW1uLmlzLXR3by10aGlyZHMtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2JX0uY29sdW1uLmlzLWhhbGYsLmNvbHVtbi5pcy1oYWxmLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb25lLXRoaXJkLC5jb2x1bW4uaXMtb25lLXRoaXJkLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MzMuMzMzMyV9LmNvbHVtbi5pcy1vbmUtcXVhcnRlciwuY29sdW1uLmlzLW9uZS1xdWFydGVyLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW4uaXMtb25lLWZpZnRoLC5jb2x1bW4uaXMtb25lLWZpZnRoLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MjAlfS5jb2x1bW4uaXMtdHdvLWZpZnRocywuY29sdW1uLmlzLXR3by1maWZ0aHMtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo0MCV9LmNvbHVtbi5pcy10aHJlZS1maWZ0aHMsLmNvbHVtbi5pcy10aHJlZS1maWZ0aHMtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo2MCV9LmNvbHVtbi5pcy1mb3VyLWZpZnRocywuY29sdW1uLmlzLWZvdXItZmlmdGhzLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6ODAlfS5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLXF1YXJ0ZXJzLC5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLXF1YXJ0ZXJzLXRhYmxldHttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkcywuY29sdW1uLmlzLW9mZnNldC10d28tdGhpcmRzLXRhYmxldHttYXJnaW4tbGVmdDo2Ni42NjY2JX0uY29sdW1uLmlzLW9mZnNldC1oYWxmLC5jb2x1bW4uaXMtb2Zmc2V0LWhhbGYtdGFibGV0e21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtdGhpcmQsLmNvbHVtbi5pcy1vZmZzZXQtb25lLXRoaXJkLXRhYmxldHttYXJnaW4tbGVmdDozMy4zMzMzJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtcXVhcnRlciwuY29sdW1uLmlzLW9mZnNldC1vbmUtcXVhcnRlci10YWJsZXR7bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW4uaXMtb2Zmc2V0LW9uZS1maWZ0aCwuY29sdW1uLmlzLW9mZnNldC1vbmUtZmlmdGgtdGFibGV0e21hcmdpbi1sZWZ0OjIwJX0uY29sdW1uLmlzLW9mZnNldC10d28tZmlmdGhzLC5jb2x1bW4uaXMtb2Zmc2V0LXR3by1maWZ0aHMtdGFibGV0e21hcmdpbi1sZWZ0OjQwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1maWZ0aHMsLmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhzLXRhYmxldHttYXJnaW4tbGVmdDo2MCV9LmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHMsLmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHMtdGFibGV0e21hcmdpbi1sZWZ0OjgwJX0uY29sdW1uLmlzLTAsLmNvbHVtbi5pcy0wLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MCV9LmNvbHVtbi5pcy1vZmZzZXQtMCwuY29sdW1uLmlzLW9mZnNldC0wLXRhYmxldHttYXJnaW4tbGVmdDowJX0uY29sdW1uLmlzLTEsLmNvbHVtbi5pcy0xLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMSwuY29sdW1uLmlzLW9mZnNldC0xLXRhYmxldHttYXJnaW4tbGVmdDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTIsLmNvbHVtbi5pcy0yLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTIsLmNvbHVtbi5pcy1vZmZzZXQtMi10YWJsZXR7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtMywuY29sdW1uLmlzLTMtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDoyNSV9LmNvbHVtbi5pcy1vZmZzZXQtMywuY29sdW1uLmlzLW9mZnNldC0zLXRhYmxldHttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy00LC5jb2x1bW4uaXMtNC10YWJsZXR7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC00LC5jb2x1bW4uaXMtb2Zmc2V0LTQtdGFibGV0e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTUsLmNvbHVtbi5pcy01LXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTUsLmNvbHVtbi5pcy1vZmZzZXQtNS10YWJsZXR7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtNiwuY29sdW1uLmlzLTYtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo1MCV9LmNvbHVtbi5pcy1vZmZzZXQtNiwuY29sdW1uLmlzLW9mZnNldC02LXRhYmxldHttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbi5pcy03LC5jb2x1bW4uaXMtNy10YWJsZXR7ZmxleDpub25lO3dpZHRoOjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC03LC5jb2x1bW4uaXMtb2Zmc2V0LTctdGFibGV0e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTgsLmNvbHVtbi5pcy04LXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTgsLmNvbHVtbi5pcy1vZmZzZXQtOC10YWJsZXR7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtOSwuY29sdW1uLmlzLTktdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtOSwuY29sdW1uLmlzLW9mZnNldC05LXRhYmxldHttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy0xMCwuY29sdW1uLmlzLTEwLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTEwLC5jb2x1bW4uaXMtb2Zmc2V0LTEwLXRhYmxldHttYXJnaW4tbGVmdDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy0xMSwuY29sdW1uLmlzLTExLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6OTEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTExLC5jb2x1bW4uaXMtb2Zmc2V0LTExLXRhYmxldHttYXJnaW4tbGVmdDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy0xMiwuY29sdW1uLmlzLTEyLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLW9mZnNldC0xMiwuY29sdW1uLmlzLW9mZnNldC0xMi10YWJsZXR7bWFyZ2luLWxlZnQ6MTAwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1uLmlzLW5hcnJvdy10b3VjaHtmbGV4Om5vbmU7d2lkdGg6dW5zZXR9LmNvbHVtbi5pcy1mdWxsLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW4uaXMtdGhyZWUtcXVhcnRlcnMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLXR3by10aGlyZHMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjY2LjY2NjYlfS5jb2x1bW4uaXMtaGFsZi10b3VjaHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb25lLXRoaXJkLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzJX0uY29sdW1uLmlzLW9uZS1xdWFydGVyLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDoyNSV9LmNvbHVtbi5pcy1vbmUtZmlmdGgtdG91Y2h7ZmxleDpub25lO3dpZHRoOjIwJX0uY29sdW1uLmlzLXR3by1maWZ0aHMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjQwJX0uY29sdW1uLmlzLXRocmVlLWZpZnRocy10b3VjaHtmbGV4Om5vbmU7d2lkdGg6NjAlfS5jb2x1bW4uaXMtZm91ci1maWZ0aHMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjgwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1xdWFydGVycy10b3VjaHttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkcy10b3VjaHttYXJnaW4tbGVmdDo2Ni42NjY2JX0uY29sdW1uLmlzLW9mZnNldC1oYWxmLXRvdWNoe21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtdGhpcmQtdG91Y2h7bWFyZ2luLWxlZnQ6MzMuMzMzMyV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLXF1YXJ0ZXItdG91Y2h7bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW4uaXMtb2Zmc2V0LW9uZS1maWZ0aC10b3VjaHttYXJnaW4tbGVmdDoyMCV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLWZpZnRocy10b3VjaHttYXJnaW4tbGVmdDo0MCV9LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhzLXRvdWNoe21hcmdpbi1sZWZ0OjYwJX0uY29sdW1uLmlzLW9mZnNldC1mb3VyLWZpZnRocy10b3VjaHttYXJnaW4tbGVmdDo4MCV9LmNvbHVtbi5pcy0wLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDowJX0uY29sdW1uLmlzLW9mZnNldC0wLXRvdWNoe21hcmdpbi1sZWZ0OjAlfS5jb2x1bW4uaXMtMS10b3VjaHtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMS10b3VjaHttYXJnaW4tbGVmdDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTItdG91Y2h7ZmxleDpub25lO3dpZHRoOjE2LjY2NjY2Njc0JX0uY29sdW1uLmlzLW9mZnNldC0yLXRvdWNoe21hcmdpbi1sZWZ0OjE2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9mZnNldC0zLXRvdWNoe21hcmdpbi1sZWZ0OjI1JX0uY29sdW1uLmlzLTQtdG91Y2h7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC00LXRvdWNoe21hcmdpbi1sZWZ0OjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTUtdG91Y2h7ZmxleDpub25lO3dpZHRoOjQxLjY2NjY2Njc0JX0uY29sdW1uLmlzLW9mZnNldC01LXRvdWNoe21hcmdpbi1sZWZ0OjQxLjY2NjY2Njc0JX0uY29sdW1uLmlzLTYtdG91Y2h7ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1uLmlzLW9mZnNldC02LXRvdWNoe21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLTctdG91Y2h7ZmxleDpub25lO3dpZHRoOjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC03LXRvdWNoe21hcmdpbi1sZWZ0OjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTgtdG91Y2h7ZmxleDpub25lO3dpZHRoOjY2LjY2NjY2Njc0JX0uY29sdW1uLmlzLW9mZnNldC04LXRvdWNoe21hcmdpbi1sZWZ0OjY2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTktdG91Y2h7ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLW9mZnNldC05LXRvdWNoe21hcmdpbi1sZWZ0Ojc1JX0uY29sdW1uLmlzLTEwLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMTAtdG91Y2h7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtMTEtdG91Y2h7ZmxleDpub25lO3dpZHRoOjkxLjY2NjY2Njc0JX0uY29sdW1uLmlzLW9mZnNldC0xMS10b3VjaHttYXJnaW4tbGVmdDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy0xMi10b3VjaHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLW9mZnNldC0xMi10b3VjaHttYXJnaW4tbGVmdDoxMDAlfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW4uaXMtbmFycm93LWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOnVuc2V0fS5jb2x1bW4uaXMtZnVsbC1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW4uaXMtdGhyZWUtcXVhcnRlcnMtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW4uaXMtdHdvLXRoaXJkcy1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2JX0uY29sdW1uLmlzLWhhbGYtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb25lLXRoaXJkLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMlfS5jb2x1bW4uaXMtb25lLXF1YXJ0ZXItZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW4uaXMtb25lLWZpZnRoLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjIwJX0uY29sdW1uLmlzLXR3by1maWZ0aHMtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NDAlfS5jb2x1bW4uaXMtdGhyZWUtZmlmdGhzLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjYwJX0uY29sdW1uLmlzLWZvdXItZmlmdGhzLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjgwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1xdWFydGVycy1kZXNrdG9we21hcmdpbi1sZWZ0Ojc1JX0uY29sdW1uLmlzLW9mZnNldC10d28tdGhpcmRzLWRlc2t0b3B7bWFyZ2luLWxlZnQ6NjYuNjY2NiV9LmNvbHVtbi5pcy1vZmZzZXQtaGFsZi1kZXNrdG9we21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtdGhpcmQtZGVza3RvcHttYXJnaW4tbGVmdDozMy4zMzMzJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtcXVhcnRlci1kZXNrdG9we21hcmdpbi1sZWZ0OjI1JX0uY29sdW1uLmlzLW9mZnNldC1vbmUtZmlmdGgtZGVza3RvcHttYXJnaW4tbGVmdDoyMCV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLWZpZnRocy1kZXNrdG9we21hcmdpbi1sZWZ0OjQwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1maWZ0aHMtZGVza3RvcHttYXJnaW4tbGVmdDo2MCV9LmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHMtZGVza3RvcHttYXJnaW4tbGVmdDo4MCV9LmNvbHVtbi5pcy0wLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjAlfS5jb2x1bW4uaXMtb2Zmc2V0LTAtZGVza3RvcHttYXJnaW4tbGVmdDowJX0uY29sdW1uLmlzLTEtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMS1kZXNrdG9we21hcmdpbi1sZWZ0OjguMzMzMzMzMzclfS5jb2x1bW4uaXMtMi1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDoxNi42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtMi1kZXNrdG9we21hcmdpbi1sZWZ0OjE2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTMtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW4uaXMtb2Zmc2V0LTMtZGVza3RvcHttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy00LWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC00LWRlc2t0b3B7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzclfS5jb2x1bW4uaXMtNS1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo0MS42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtNS1kZXNrdG9we21hcmdpbi1sZWZ0OjQxLjY2NjY2Njc0JX0uY29sdW1uLmlzLTYtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb2Zmc2V0LTYtZGVza3RvcHttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbi5pcy03LWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC03LWRlc2t0b3B7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzclfS5jb2x1bW4uaXMtOC1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtOC1kZXNrdG9we21hcmdpbi1sZWZ0OjY2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTktZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW4uaXMtb2Zmc2V0LTktZGVza3RvcHttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy0xMC1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMTAtZGVza3RvcHttYXJnaW4tbGVmdDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy0xMS1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtMTEtZGVza3RvcHttYXJnaW4tbGVmdDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy0xMi1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW4uaXMtb2Zmc2V0LTEyLWRlc2t0b3B7bWFyZ2luLWxlZnQ6MTAwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1uLmlzLW5hcnJvdy13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDp1bnNldH0uY29sdW1uLmlzLWZ1bGwtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLXRocmVlLXF1YXJ0ZXJzLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLXR3by10aGlyZHMtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NiV9LmNvbHVtbi5pcy1oYWxmLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1uLmlzLW9uZS10aGlyZC13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzJX0uY29sdW1uLmlzLW9uZS1xdWFydGVyLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9uZS1maWZ0aC13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDoyMCV9LmNvbHVtbi5pcy10d28tZmlmdGhzLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjQwJX0uY29sdW1uLmlzLXRocmVlLWZpZnRocy13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDo2MCV9LmNvbHVtbi5pcy1mb3VyLWZpZnRocy13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDo4MCV9LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtcXVhcnRlcnMtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkcy13aWRlc2NyZWVue21hcmdpbi1sZWZ0OjY2LjY2NjYlfS5jb2x1bW4uaXMtb2Zmc2V0LWhhbGYtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLXRoaXJkLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6MzMuMzMzMyV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLXF1YXJ0ZXItd2lkZXNjcmVlbnttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLWZpZnRoLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6MjAlfS5jb2x1bW4uaXMtb2Zmc2V0LXR3by1maWZ0aHMtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo0MCV9LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhzLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6NjAlfS5jb2x1bW4uaXMtb2Zmc2V0LWZvdXItZmlmdGhzLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6ODAlfS5jb2x1bW4uaXMtMC13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDowJX0uY29sdW1uLmlzLW9mZnNldC0wLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6MCV9LmNvbHVtbi5pcy0xLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjguMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTEtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTItd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTItd2lkZXNjcmVlbnttYXJnaW4tbGVmdDoxNi42NjY2NjY3NCV9LmNvbHVtbi5pcy0zLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9mZnNldC0zLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW4uaXMtNC13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtNC13aWRlc2NyZWVue21hcmdpbi1sZWZ0OjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTUtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTUtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo0MS42NjY2NjY3NCV9LmNvbHVtbi5pcy02LXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1uLmlzLW9mZnNldC02LXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6NTAlfS5jb2x1bW4uaXMtNy13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDo1OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtNy13aWRlc2NyZWVue21hcmdpbi1sZWZ0OjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTgtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTgtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo2Ni42NjY2NjY3NCV9LmNvbHVtbi5pcy05LXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLW9mZnNldC05LXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6NzUlfS5jb2x1bW4uaXMtMTAtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTEwLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtMTEtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6OTEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTExLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtMTItd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLW9mZnNldC0xMi13aWRlc2NyZWVue21hcmdpbi1sZWZ0OjEwMCV9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmNvbHVtbi5pcy1uYXJyb3ctZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDp1bnNldH0uY29sdW1uLmlzLWZ1bGwtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW4uaXMtdGhyZWUtcXVhcnRlcnMtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo3NSV9LmNvbHVtbi5pcy10d28tdGhpcmRzLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NiV9LmNvbHVtbi5pcy1oYWxmLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb25lLXRoaXJkLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6MzMuMzMzMyV9LmNvbHVtbi5pcy1vbmUtcXVhcnRlci1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9uZS1maWZ0aC1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjIwJX0uY29sdW1uLmlzLXR3by1maWZ0aHMtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo0MCV9LmNvbHVtbi5pcy10aHJlZS1maWZ0aHMtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo2MCV9LmNvbHVtbi5pcy1mb3VyLWZpZnRocy1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjgwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1xdWFydGVycy1mdWxsaGR7bWFyZ2luLWxlZnQ6NzUlfS5jb2x1bW4uaXMtb2Zmc2V0LXR3by10aGlyZHMtZnVsbGhke21hcmdpbi1sZWZ0OjY2LjY2NjYlfS5jb2x1bW4uaXMtb2Zmc2V0LWhhbGYtZnVsbGhke21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtdGhpcmQtZnVsbGhke21hcmdpbi1sZWZ0OjMzLjMzMzMlfS5jb2x1bW4uaXMtb2Zmc2V0LW9uZS1xdWFydGVyLWZ1bGxoZHttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLWZpZnRoLWZ1bGxoZHttYXJnaW4tbGVmdDoyMCV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLWZpZnRocy1mdWxsaGR7bWFyZ2luLWxlZnQ6NDAlfS5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLWZpZnRocy1mdWxsaGR7bWFyZ2luLWxlZnQ6NjAlfS5jb2x1bW4uaXMtb2Zmc2V0LWZvdXItZmlmdGhzLWZ1bGxoZHttYXJnaW4tbGVmdDo4MCV9LmNvbHVtbi5pcy0wLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6MCV9LmNvbHVtbi5pcy1vZmZzZXQtMC1mdWxsaGR7bWFyZ2luLWxlZnQ6MCV9LmNvbHVtbi5pcy0xLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMS1mdWxsaGR7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy0yLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTItZnVsbGhke21hcmdpbi1sZWZ0OjE2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTMtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDoyNSV9LmNvbHVtbi5pcy1vZmZzZXQtMy1mdWxsaGR7bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW4uaXMtNC1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC00LWZ1bGxoZHttYXJnaW4tbGVmdDozMy4zMzMzMzMzNyV9LmNvbHVtbi5pcy01LWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTUtZnVsbGhke21hcmdpbi1sZWZ0OjQxLjY2NjY2Njc0JX0uY29sdW1uLmlzLTYtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo1MCV9LmNvbHVtbi5pcy1vZmZzZXQtNi1mdWxsaGR7bWFyZ2luLWxlZnQ6NTAlfS5jb2x1bW4uaXMtNy1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC03LWZ1bGxoZHttYXJnaW4tbGVmdDo1OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy04LWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTgtZnVsbGhke21hcmdpbi1sZWZ0OjY2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTktZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtOS1mdWxsaGR7bWFyZ2luLWxlZnQ6NzUlfS5jb2x1bW4uaXMtMTAtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMTAtZnVsbGhke21hcmdpbi1sZWZ0OjgzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTExLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6OTEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTExLWZ1bGxoZHttYXJnaW4tbGVmdDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy0xMi1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjEwMCV9LmNvbHVtbi5pcy1vZmZzZXQtMTItZnVsbGhke21hcmdpbi1sZWZ0OjEwMCV9fS5jb2x1bW5ze21hcmdpbi1sZWZ0Oi0wLjc1cmVtO21hcmdpbi1yaWdodDotMC43NXJlbTttYXJnaW4tdG9wOi0wLjc1cmVtfS5jb2x1bW5zOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTotMC43NXJlbX0uY29sdW1uczpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206Y2FsYygxLjVyZW0gLSAwLjc1cmVtKX0uY29sdW1ucy5pcy1jZW50ZXJlZHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jb2x1bW5zLmlzLWdhcGxlc3N7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDttYXJnaW4tdG9wOjB9LmNvbHVtbnMuaXMtZ2FwbGVzcz4uY29sdW1ue21hcmdpbjowO3BhZGRpbmc6MCAhaW1wb3J0YW50fS5jb2x1bW5zLmlzLWdhcGxlc3M6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjEuNXJlbX0uY29sdW1ucy5pcy1nYXBsZXNzOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5jb2x1bW5zLmlzLW1vYmlsZXtkaXNwbGF5OmZsZXh9LmNvbHVtbnMuaXMtbXVsdGlsaW5le2ZsZXgtd3JhcDp3cmFwfS5jb2x1bW5zLmlzLXZjZW50ZXJlZHthbGlnbi1pdGVtczpjZW50ZXJ9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5jb2x1bW5zOm5vdCguaXMtZGVza3RvcCl7ZGlzcGxheTpmbGV4fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLWRlc2t0b3B7ZGlzcGxheTpmbGV4fX0uY29sdW1ucy5pcy12YXJpYWJsZXstLWNvbHVtbkdhcDogMC43NXJlbTttYXJnaW4tbGVmdDpjYWxjKC0xKnZhcigtLWNvbHVtbkdhcCkpO21hcmdpbi1yaWdodDpjYWxjKC0xKnZhcigtLWNvbHVtbkdhcCkpfS5jb2x1bW5zLmlzLXZhcmlhYmxlPi5jb2x1bW57cGFkZGluZy1sZWZ0OnZhcigtLWNvbHVtbkdhcCk7cGFkZGluZy1yaWdodDp2YXIoLS1jb2x1bW5HYXApfS5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTB7LS1jb2x1bW5HYXA6IDByZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTAtbW9iaWxley0tY29sdW1uR2FwOiAwcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMC10YWJsZXR7LS1jb2x1bW5HYXA6IDByZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KWFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTAtdGFibGV0LW9ubHl7LS1jb2x1bW5HYXA6IDByZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMC10b3VjaHstLWNvbHVtbkdhcDogMHJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLWRlc2t0b3B7LS1jb2x1bW5HYXA6IDByZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweClhbmQgKG1heC13aWR0aDogMTIxNXB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLWRlc2t0b3Atb25seXstLWNvbHVtbkdhcDogMHJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLXdpZGVzY3JlZW57LS1jb2x1bW5HYXA6IDByZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLXdpZGVzY3JlZW4tb25seXstLWNvbHVtbkdhcDogMHJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwOHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLWZ1bGxoZHstLWNvbHVtbkdhcDogMHJlbX19LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMXstLWNvbHVtbkdhcDogMC4yNXJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMS1tb2JpbGV7LS1jb2x1bW5HYXA6IDAuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0xLXRhYmxldHstLWNvbHVtbkdhcDogMC4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMS10YWJsZXQtb25seXstLWNvbHVtbkdhcDogMC4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0xLXRvdWNoey0tY29sdW1uR2FwOiAwLjI1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtZGVza3RvcHstLWNvbHVtbkdhcDogMC4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtZGVza3RvcC1vbmx5ey0tY29sdW1uR2FwOiAwLjI1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtd2lkZXNjcmVlbnstLWNvbHVtbkdhcDogMC4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtd2lkZXNjcmVlbi1vbmx5ey0tY29sdW1uR2FwOiAwLjI1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtZnVsbGhkey0tY29sdW1uR2FwOiAwLjI1cmVtfX0uY29sdW1ucy5pcy12YXJpYWJsZS5pcy0yey0tY29sdW1uR2FwOiAwLjVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTItbW9iaWxley0tY29sdW1uR2FwOiAwLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0yLXRhYmxldHstLWNvbHVtbkdhcDogMC41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0yLXRhYmxldC1vbmx5ey0tY29sdW1uR2FwOiAwLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMi10b3VjaHstLWNvbHVtbkdhcDogMC41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTItZGVza3RvcHstLWNvbHVtbkdhcDogMC41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMi1kZXNrdG9wLW9ubHl7LS1jb2x1bW5HYXA6IDAuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0yLXdpZGVzY3JlZW57LS1jb2x1bW5HYXA6IDAuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTItd2lkZXNjcmVlbi1vbmx5ey0tY29sdW1uR2FwOiAwLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMi1mdWxsaGR7LS1jb2x1bW5HYXA6IDAuNXJlbX19LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtM3stLWNvbHVtbkdhcDogMC43NXJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMy1tb2JpbGV7LS1jb2x1bW5HYXA6IDAuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0zLXRhYmxldHstLWNvbHVtbkdhcDogMC43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMy10YWJsZXQtb25seXstLWNvbHVtbkdhcDogMC43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0zLXRvdWNoey0tY29sdW1uR2FwOiAwLjc1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtZGVza3RvcHstLWNvbHVtbkdhcDogMC43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtZGVza3RvcC1vbmx5ey0tY29sdW1uR2FwOiAwLjc1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtd2lkZXNjcmVlbnstLWNvbHVtbkdhcDogMC43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtd2lkZXNjcmVlbi1vbmx5ey0tY29sdW1uR2FwOiAwLjc1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtZnVsbGhkey0tY29sdW1uR2FwOiAwLjc1cmVtfX0uY29sdW1ucy5pcy12YXJpYWJsZS5pcy00ey0tY29sdW1uR2FwOiAxcmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy00LW1vYmlsZXstLWNvbHVtbkdhcDogMXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTQtdGFibGV0ey0tY29sdW1uR2FwOiAxcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy00LXRhYmxldC1vbmx5ey0tY29sdW1uR2FwOiAxcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTQtdG91Y2h7LS1jb2x1bW5HYXA6IDFyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC1kZXNrdG9wey0tY29sdW1uR2FwOiAxcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC1kZXNrdG9wLW9ubHl7LS1jb2x1bW5HYXA6IDFyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC13aWRlc2NyZWVuey0tY29sdW1uR2FwOiAxcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpYW5kIChtYXgtd2lkdGg6IDE0MDdweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC13aWRlc2NyZWVuLW9ubHl7LS1jb2x1bW5HYXA6IDFyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC1mdWxsaGR7LS1jb2x1bW5HYXA6IDFyZW19fS5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTV7LS1jb2x1bW5HYXA6IDEuMjVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTUtbW9iaWxley0tY29sdW1uR2FwOiAxLjI1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNS10YWJsZXR7LS1jb2x1bW5HYXA6IDEuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KWFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTUtdGFibGV0LW9ubHl7LS1jb2x1bW5HYXA6IDEuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNS10b3VjaHstLWNvbHVtbkdhcDogMS4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LWRlc2t0b3B7LS1jb2x1bW5HYXA6IDEuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweClhbmQgKG1heC13aWR0aDogMTIxNXB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LWRlc2t0b3Atb25seXstLWNvbHVtbkdhcDogMS4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LXdpZGVzY3JlZW57LS1jb2x1bW5HYXA6IDEuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LXdpZGVzY3JlZW4tb25seXstLWNvbHVtbkdhcDogMS4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwOHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LWZ1bGxoZHstLWNvbHVtbkdhcDogMS4yNXJlbX19LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNnstLWNvbHVtbkdhcDogMS41cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy02LW1vYmlsZXstLWNvbHVtbkdhcDogMS41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNi10YWJsZXR7LS1jb2x1bW5HYXA6IDEuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNi10YWJsZXQtb25seXstLWNvbHVtbkdhcDogMS41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTYtdG91Y2h7LS1jb2x1bW5HYXA6IDEuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy02LWRlc2t0b3B7LS1jb2x1bW5HYXA6IDEuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTYtZGVza3RvcC1vbmx5ey0tY29sdW1uR2FwOiAxLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNi13aWRlc2NyZWVuey0tY29sdW1uR2FwOiAxLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy02LXdpZGVzY3JlZW4tb25seXstLWNvbHVtbkdhcDogMS41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTYtZnVsbGhkey0tY29sdW1uR2FwOiAxLjVyZW19fS5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTd7LS1jb2x1bW5HYXA6IDEuNzVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTctbW9iaWxley0tY29sdW1uR2FwOiAxLjc1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNy10YWJsZXR7LS1jb2x1bW5HYXA6IDEuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KWFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTctdGFibGV0LW9ubHl7LS1jb2x1bW5HYXA6IDEuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNy10b3VjaHstLWNvbHVtbkdhcDogMS43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LWRlc2t0b3B7LS1jb2x1bW5HYXA6IDEuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweClhbmQgKG1heC13aWR0aDogMTIxNXB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LWRlc2t0b3Atb25seXstLWNvbHVtbkdhcDogMS43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LXdpZGVzY3JlZW57LS1jb2x1bW5HYXA6IDEuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LXdpZGVzY3JlZW4tb25seXstLWNvbHVtbkdhcDogMS43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwOHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LWZ1bGxoZHstLWNvbHVtbkdhcDogMS43NXJlbX19LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtOHstLWNvbHVtbkdhcDogMnJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtOC1tb2JpbGV7LS1jb2x1bW5HYXA6IDJyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy04LXRhYmxldHstLWNvbHVtbkdhcDogMnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtOC10YWJsZXQtb25seXstLWNvbHVtbkdhcDogMnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy04LXRvdWNoey0tY29sdW1uR2FwOiAycmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtZGVza3RvcHstLWNvbHVtbkdhcDogMnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtZGVza3RvcC1vbmx5ey0tY29sdW1uR2FwOiAycmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtd2lkZXNjcmVlbnstLWNvbHVtbkdhcDogMnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtd2lkZXNjcmVlbi1vbmx5ey0tY29sdW1uR2FwOiAycmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtZnVsbGhkey0tY29sdW1uR2FwOiAycmVtfX0udGlsZXthbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6YmxvY2s7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjE7bWluLWhlaWdodDptaW4tY29udGVudH0udGlsZS5pcy1hbmNlc3RvcnttYXJnaW4tbGVmdDotMC43NXJlbTttYXJnaW4tcmlnaHQ6LTAuNzVyZW07bWFyZ2luLXRvcDotMC43NXJlbX0udGlsZS5pcy1hbmNlc3RvcjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206LTAuNzVyZW19LnRpbGUuaXMtYW5jZXN0b3I6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0udGlsZS5pcy1jaGlsZHttYXJnaW46MCAhaW1wb3J0YW50fS50aWxlLmlzLXBhcmVudHtwYWRkaW5nOi43NXJlbX0udGlsZS5pcy12ZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnRpbGUuaXMtdmVydGljYWw+LnRpbGUuaXMtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjEuNXJlbSAhaW1wb3J0YW50fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsudGlsZTpub3QoLmlzLWNoaWxkKXtkaXNwbGF5OmZsZXh9LnRpbGUuaXMtMXtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LnRpbGUuaXMtMntmbGV4Om5vbmU7d2lkdGg6MTYuNjY2NjY2NzQlfS50aWxlLmlzLTN7ZmxleDpub25lO3dpZHRoOjI1JX0udGlsZS5pcy00e2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzMzMzNyV9LnRpbGUuaXMtNXtmbGV4Om5vbmU7d2lkdGg6NDEuNjY2NjY2NzQlfS50aWxlLmlzLTZ7ZmxleDpub25lO3dpZHRoOjUwJX0udGlsZS5pcy03e2ZsZXg6bm9uZTt3aWR0aDo1OC4zMzMzMzMzNyV9LnRpbGUuaXMtOHtmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NjY2NzQlfS50aWxlLmlzLTl7ZmxleDpub25lO3dpZHRoOjc1JX0udGlsZS5pcy0xMHtmbGV4Om5vbmU7d2lkdGg6ODMuMzMzMzMzMzclfS50aWxlLmlzLTExe2ZsZXg6bm9uZTt3aWR0aDo5MS42NjY2NjY3NCV9LnRpbGUuaXMtMTJ7ZmxleDpub25lO3dpZHRoOjEwMCV9fS5oYXMtdGV4dC13aGl0ZXtjb2xvcjojZmZmICFpbXBvcnRhbnR9YS5oYXMtdGV4dC13aGl0ZTpob3ZlcixhLmhhcy10ZXh0LXdoaXRlOmZvY3Vze2NvbG9yOiNlNmU2ZTYgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZmZmICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWJsYWNre2NvbG9yOiMwYTBhMGEgIWltcG9ydGFudH1hLmhhcy10ZXh0LWJsYWNrOmhvdmVyLGEuaGFzLXRleHQtYmxhY2s6Zm9jdXN7Y29sb3I6IzAwMCAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGEgIWltcG9ydGFudH0uaGFzLXRleHQtbGlnaHR7Y29sb3I6I2QyZjlkNiAhaW1wb3J0YW50fWEuaGFzLXRleHQtbGlnaHQ6aG92ZXIsYS5oYXMtdGV4dC1saWdodDpmb2N1c3tjb2xvcjojYTVmM2FkICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2QyZjlkNiAhaW1wb3J0YW50fS5oYXMtdGV4dC1kYXJre2NvbG9yOiM0NTk1NTggIWltcG9ydGFudH1hLmhhcy10ZXh0LWRhcms6aG92ZXIsYS5oYXMtdGV4dC1kYXJrOmZvY3Vze2NvbG9yOiMzNTcyNDMgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTggIWltcG9ydGFudH0uaGFzLXRleHQtcHJpbWFyeXtjb2xvcjojNTViZTZmICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1wcmltYXJ5OmhvdmVyLGEuaGFzLXRleHQtcHJpbWFyeTpmb2N1c3tjb2xvcjojM2VhMjU3ICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXByaW1hcnktbGlnaHR7Y29sb3I6I2YwZjlmMiAhaW1wb3J0YW50fWEuaGFzLXRleHQtcHJpbWFyeS1saWdodDpob3ZlcixhLmhhcy10ZXh0LXByaW1hcnktbGlnaHQ6Zm9jdXN7Y29sb3I6I2NiZWJkMyAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1wcmltYXJ5LWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2YwZjlmMiAhaW1wb3J0YW50fS5oYXMtdGV4dC1wcmltYXJ5LWRhcmt7Y29sb3I6IzJmN2E0MSAhaW1wb3J0YW50fWEuaGFzLXRleHQtcHJpbWFyeS1kYXJrOmhvdmVyLGEuaGFzLXRleHQtcHJpbWFyeS1kYXJrOmZvY3Vze2NvbG9yOiMzZDlmNTUgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtcHJpbWFyeS1kYXJre2JhY2tncm91bmQtY29sb3I6IzJmN2E0MSAhaW1wb3J0YW50fS5oYXMtdGV4dC1saW5re2NvbG9yOiM0ODc2ZmYgIWltcG9ydGFudH1hLmhhcy10ZXh0LWxpbms6aG92ZXIsYS5oYXMtdGV4dC1saW5rOmZvY3Vze2NvbG9yOiMxNTUwZmYgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmYgIWltcG9ydGFudH0uaGFzLXRleHQtbGluay1saWdodHtjb2xvcjojZWJmMGZmICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1saW5rLWxpZ2h0OmhvdmVyLGEuaGFzLXRleHQtbGluay1saWdodDpmb2N1c3tjb2xvcjojYjhjYWZmICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWxpbmstbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZWJmMGZmICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWxpbmstZGFya3tjb2xvcjojMDAzN2RiICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1saW5rLWRhcms6aG92ZXIsYS5oYXMtdGV4dC1saW5rLWRhcms6Zm9jdXN7Y29sb3I6IzBmNGNmZiAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1saW5rLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojMDAzN2RiICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWluZm97Y29sb3I6I2YwZjhmZiAhaW1wb3J0YW50fWEuaGFzLXRleHQtaW5mbzpob3ZlcixhLmhhcy10ZXh0LWluZm86Zm9jdXN7Y29sb3I6I2JkZTBmZiAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1pbmZve2JhY2tncm91bmQtY29sb3I6I2YwZjhmZiAhaW1wb3J0YW50fS5oYXMtdGV4dC1pbmZvLWxpZ2h0e2NvbG9yOiNmMGY4ZmYgIWltcG9ydGFudH1hLmhhcy10ZXh0LWluZm8tbGlnaHQ6aG92ZXIsYS5oYXMtdGV4dC1pbmZvLWxpZ2h0OmZvY3Vze2NvbG9yOiNiZGUwZmYgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtaW5mby1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmYgIWltcG9ydGFudH0uaGFzLXRleHQtaW5mby1kYXJre2NvbG9yOiMwMDRmOTQgIWltcG9ydGFudH1hLmhhcy10ZXh0LWluZm8tZGFyazpob3ZlcixhLmhhcy10ZXh0LWluZm8tZGFyazpmb2N1c3tjb2xvcjojMDA2YWM3ICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWluZm8tZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiMwMDRmOTQgIWltcG9ydGFudH0uaGFzLXRleHQtc3VjY2Vzc3tjb2xvcjojNDhjNzhlICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1zdWNjZXNzOmhvdmVyLGEuaGFzLXRleHQtc3VjY2Vzczpmb2N1c3tjb2xvcjojMzRhODczICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXN1Y2Nlc3MtbGlnaHR7Y29sb3I6I2VmZmFmNSAhaW1wb3J0YW50fWEuaGFzLXRleHQtc3VjY2Vzcy1saWdodDpob3ZlcixhLmhhcy10ZXh0LXN1Y2Nlc3MtbGlnaHQ6Zm9jdXN7Y29sb3I6I2M4ZWVkZCAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1zdWNjZXNzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2VmZmFmNSAhaW1wb3J0YW50fS5oYXMtdGV4dC1zdWNjZXNzLWRhcmt7Y29sb3I6IzI1Nzk1MyAhaW1wb3J0YW50fWEuaGFzLXRleHQtc3VjY2Vzcy1kYXJrOmhvdmVyLGEuaGFzLXRleHQtc3VjY2Vzcy1kYXJrOmZvY3Vze2NvbG9yOiMzMWEwNmUgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtc3VjY2Vzcy1kYXJre2JhY2tncm91bmQtY29sb3I6IzI1Nzk1MyAhaW1wb3J0YW50fS5oYXMtdGV4dC13YXJuaW5ne2NvbG9yOiNmZmQ5NzUgIWltcG9ydGFudH1hLmhhcy10ZXh0LXdhcm5pbmc6aG92ZXIsYS5oYXMtdGV4dC13YXJuaW5nOmZvY3Vze2NvbG9yOiNmZmNiNDIgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzUgIWltcG9ydGFudH0uaGFzLXRleHQtd2FybmluZy1saWdodHtjb2xvcjojZmZmOWViICFpbXBvcnRhbnR9YS5oYXMtdGV4dC13YXJuaW5nLWxpZ2h0OmhvdmVyLGEuaGFzLXRleHQtd2FybmluZy1saWdodDpmb2N1c3tjb2xvcjojZmZlYmI4ICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLXdhcm5pbmctbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmZmOWViICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdhcm5pbmctZGFya3tjb2xvcjojOTQ2YjAwICFpbXBvcnRhbnR9YS5oYXMtdGV4dC13YXJuaW5nLWRhcms6aG92ZXIsYS5oYXMtdGV4dC13YXJuaW5nLWRhcms6Zm9jdXN7Y29sb3I6I2M3OTAwMCAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC13YXJuaW5nLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojOTQ2YjAwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWRhbmdlcntjb2xvcjojZjE0NjY4ICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1kYW5nZXI6aG92ZXIsYS5oYXMtdGV4dC1kYW5nZXI6Zm9jdXN7Y29sb3I6I2VlMTc0MiAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWRhbmdlci1saWdodHtjb2xvcjojZmVlY2YwICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1kYW5nZXItbGlnaHQ6aG92ZXIsYS5oYXMtdGV4dC1kYW5nZXItbGlnaHQ6Zm9jdXN7Y29sb3I6I2ZhYmRjOSAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1kYW5nZXItbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmVlY2YwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWRhbmdlci1kYXJre2NvbG9yOiNjYzBmMzUgIWltcG9ydGFudH1hLmhhcy10ZXh0LWRhbmdlci1kYXJrOmhvdmVyLGEuaGFzLXRleHQtZGFuZ2VyLWRhcms6Zm9jdXN7Y29sb3I6I2VlMjA0OSAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1kYW5nZXItZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiNjYzBmMzUgIWltcG9ydGFudH0uaGFzLXRleHQtYmxhY2stYmlze2NvbG9yOiMxMjEyMTIgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtYmxhY2stYmlze2JhY2tncm91bmQtY29sb3I6IzEyMTIxMiAhaW1wb3J0YW50fS5oYXMtdGV4dC1ibGFjay10ZXJ7Y29sb3I6IzI0MjQyNCAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1ibGFjay10ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjQyNDI0ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWdyZXktZGFya2Vye2NvbG9yOiMzNjM2MzYgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtZ3JleS1kYXJrZXJ7YmFja2dyb3VuZC1jb2xvcjojMzYzNjM2ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWdyZXktZGFya3tjb2xvcjojNGE0YTRhICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWdyZXktZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiM0YTRhNGEgIWltcG9ydGFudH0uaGFzLXRleHQtZ3JleXtjb2xvcjojN2E3YTdhICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWdyZXl7YmFja2dyb3VuZC1jb2xvcjojN2E3YTdhICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWdyZXktbGlnaHR7Y29sb3I6I2I1YjViNSAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1ncmV5LWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2I1YjViNSAhaW1wb3J0YW50fS5oYXMtdGV4dC1ncmV5LWxpZ2h0ZXJ7Y29sb3I6I2RiZGJkYiAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1ncmV5LWxpZ2h0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZGJkYmRiICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdoaXRlLXRlcntjb2xvcjojZjVmNWY1ICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLXdoaXRlLXRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjUgIWltcG9ydGFudH0uaGFzLXRleHQtd2hpdGUtYmlze2NvbG9yOiNmYWZhZmEgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtd2hpdGUtYmlze2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYSAhaW1wb3J0YW50fS5pcy1mbGV4LWRpcmVjdGlvbi1yb3d7ZmxleC1kaXJlY3Rpb246cm93ICFpbXBvcnRhbnR9LmlzLWZsZXgtZGlyZWN0aW9uLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlICFpbXBvcnRhbnR9LmlzLWZsZXgtZGlyZWN0aW9uLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4gIWltcG9ydGFudH0uaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UgIWltcG9ydGFudH0uaXMtZmxleC13cmFwLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwICFpbXBvcnRhbnR9LmlzLWZsZXgtd3JhcC13cmFwe2ZsZXgtd3JhcDp3cmFwICFpbXBvcnRhbnR9LmlzLWZsZXgtd3JhcC13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSAhaW1wb3J0YW50fS5pcy1qdXN0aWZ5LWNvbnRlbnQtZmxleC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCAhaW1wb3J0YW50fS5pcy1qdXN0aWZ5LWNvbnRlbnQtZmxleC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kICFpbXBvcnRhbnR9LmlzLWp1c3RpZnktY29udGVudC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlciAhaW1wb3J0YW50fS5pcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50fS5pcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQgIWltcG9ydGFudH0uaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWV2ZW5seXtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5ICFpbXBvcnRhbnR9LmlzLWp1c3RpZnktY29udGVudC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6c3RhcnQgIWltcG9ydGFudH0uaXMtanVzdGlmeS1jb250ZW50LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZW5kICFpbXBvcnRhbnR9LmlzLWp1c3RpZnktY29udGVudC1sZWZ0e2p1c3RpZnktY29udGVudDpsZWZ0ICFpbXBvcnRhbnR9LmlzLWp1c3RpZnktY29udGVudC1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6cmlnaHQgIWltcG9ydGFudH0uaXMtYWxpZ24tY29udGVudC1mbGV4LXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LWZsZXgtZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQgIWltcG9ydGFudH0uaXMtYWxpZ24tY29udGVudC1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIgIWltcG9ydGFudH0uaXMtYWxpZ24tY29udGVudC1zcGFjZS1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LXNwYWNlLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LXNwYWNlLWV2ZW5seXthbGlnbi1jb250ZW50OnNwYWNlLWV2ZW5seSAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoICFpbXBvcnRhbnR9LmlzLWFsaWduLWNvbnRlbnQtc3RhcnR7YWxpZ24tY29udGVudDpzdGFydCAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LWVuZHthbGlnbi1jb250ZW50OmVuZCAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LWJhc2VsaW5le2FsaWduLWNvbnRlbnQ6YmFzZWxpbmUgIWltcG9ydGFudH0uaXMtYWxpZ24taXRlbXMtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNoICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLWZsZXgtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCAhaW1wb3J0YW50fS5pcy1hbGlnbi1pdGVtcy1mbGV4LWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCAhaW1wb3J0YW50fS5pcy1hbGlnbi1pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLXN0YXJ0e2FsaWduLWl0ZW1zOnN0YXJ0ICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLWVuZHthbGlnbi1pdGVtczplbmQgIWltcG9ydGFudH0uaXMtYWxpZ24taXRlbXMtc2VsZi1zdGFydHthbGlnbi1pdGVtczpzZWxmLXN0YXJ0ICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLXNlbGYtZW5ke2FsaWduLWl0ZW1zOnNlbGYtZW5kICFpbXBvcnRhbnR9LmlzLWFsaWduLXNlbGYtYXV0b3thbGlnbi1zZWxmOmF1dG8gIWltcG9ydGFudH0uaXMtYWxpZ24tc2VsZi1mbGV4LXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCAhaW1wb3J0YW50fS5pcy1hbGlnbi1zZWxmLWZsZXgtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQgIWltcG9ydGFudH0uaXMtYWxpZ24tc2VsZi1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIgIWltcG9ydGFudH0uaXMtYWxpZ24tc2VsZi1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lICFpbXBvcnRhbnR9LmlzLWFsaWduLXNlbGYtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ggIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTB7ZmxleC1ncm93OjAgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTF7ZmxleC1ncm93OjEgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTJ7ZmxleC1ncm93OjIgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTN7ZmxleC1ncm93OjMgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTR7ZmxleC1ncm93OjQgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTV7ZmxleC1ncm93OjUgIWltcG9ydGFudH0uaXMtZmxleC1zaHJpbmstMHtmbGV4LXNocmluazowICFpbXBvcnRhbnR9LmlzLWZsZXgtc2hyaW5rLTF7ZmxleC1zaHJpbms6MSAhaW1wb3J0YW50fS5pcy1mbGV4LXNocmluay0ye2ZsZXgtc2hyaW5rOjIgIWltcG9ydGFudH0uaXMtZmxleC1zaHJpbmstM3tmbGV4LXNocmluazozICFpbXBvcnRhbnR9LmlzLWZsZXgtc2hyaW5rLTR7ZmxleC1zaHJpbms6NCAhaW1wb3J0YW50fS5pcy1mbGV4LXNocmluay01e2ZsZXgtc2hyaW5rOjUgIWltcG9ydGFudH0uaXMtY2xlYXJmaXg6OmFmdGVye2NsZWFyOmJvdGg7Y29udGVudDoiICI7ZGlzcGxheTp0YWJsZX0uaXMtcHVsbGVkLWxlZnR7ZmxvYXQ6bGVmdCAhaW1wb3J0YW50fS5pcy1wdWxsZWQtcmlnaHR7ZmxvYXQ6cmlnaHQgIWltcG9ydGFudH0uaXMtcmFkaXVzbGVzc3tib3JkZXItcmFkaXVzOjAgIWltcG9ydGFudH0uaXMtc2hhZG93bGVzc3tib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH0uaXMtY2xpY2thYmxle2N1cnNvcjpwb2ludGVyICFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6YWxsICFpbXBvcnRhbnR9LmlzLWNsaXBwZWR7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9LmlzLXJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnR9LmlzLW1hcmdpbmxlc3N7bWFyZ2luOjAgIWltcG9ydGFudH0uaXMtcGFkZGluZ2xlc3N7cGFkZGluZzowICFpbXBvcnRhbnR9Lm0tMHttYXJnaW46MCAhaW1wb3J0YW50fS5tdC0we21hcmdpbi10b3A6MCAhaW1wb3J0YW50fS5tci0we21hcmdpbi1yaWdodDowICFpbXBvcnRhbnR9Lm1iLTB7bWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnR9Lm1sLTB7bWFyZ2luLWxlZnQ6MCAhaW1wb3J0YW50fS5teC0we21hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6MCAhaW1wb3J0YW50fS5teS0we21hcmdpbi10b3A6MCAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50fS5tLTF7bWFyZ2luOi4yNXJlbSAhaW1wb3J0YW50fS5tdC0xe21hcmdpbi10b3A6LjI1cmVtICFpbXBvcnRhbnR9Lm1yLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSAhaW1wb3J0YW50fS5tYi0xe21hcmdpbi1ib3R0b206LjI1cmVtICFpbXBvcnRhbnR9Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtICFpbXBvcnRhbnR9Lm14LTF7bWFyZ2luLWxlZnQ6LjI1cmVtICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0Oi4yNXJlbSAhaW1wb3J0YW50fS5teS0xe21hcmdpbi10b3A6LjI1cmVtICFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTouMjVyZW0gIWltcG9ydGFudH0ubS0ye21hcmdpbjouNXJlbSAhaW1wb3J0YW50fS5tdC0ye21hcmdpbi10b3A6LjVyZW0gIWltcG9ydGFudH0ubXItMnttYXJnaW4tcmlnaHQ6LjVyZW0gIWltcG9ydGFudH0ubWItMnttYXJnaW4tYm90dG9tOi41cmVtICFpbXBvcnRhbnR9Lm1sLTJ7bWFyZ2luLWxlZnQ6LjVyZW0gIWltcG9ydGFudH0ubXgtMnttYXJnaW4tbGVmdDouNXJlbSAhaW1wb3J0YW50O21hcmdpbi1yaWdodDouNXJlbSAhaW1wb3J0YW50fS5teS0ye21hcmdpbi10b3A6LjVyZW0gIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi41cmVtICFpbXBvcnRhbnR9Lm0tM3ttYXJnaW46Ljc1cmVtICFpbXBvcnRhbnR9Lm10LTN7bWFyZ2luLXRvcDouNzVyZW0gIWltcG9ydGFudH0ubXItM3ttYXJnaW4tcmlnaHQ6Ljc1cmVtICFpbXBvcnRhbnR9Lm1iLTN7bWFyZ2luLWJvdHRvbTouNzVyZW0gIWltcG9ydGFudH0ubWwtM3ttYXJnaW4tbGVmdDouNzVyZW0gIWltcG9ydGFudH0ubXgtM3ttYXJnaW4tbGVmdDouNzVyZW0gIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6Ljc1cmVtICFpbXBvcnRhbnR9Lm15LTN7bWFyZ2luLXRvcDouNzVyZW0gIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi43NXJlbSAhaW1wb3J0YW50fS5tLTR7bWFyZ2luOjFyZW0gIWltcG9ydGFudH0ubXQtNHttYXJnaW4tdG9wOjFyZW0gIWltcG9ydGFudH0ubXItNHttYXJnaW4tcmlnaHQ6MXJlbSAhaW1wb3J0YW50fS5tYi00e21hcmdpbi1ib3R0b206MXJlbSAhaW1wb3J0YW50fS5tbC00e21hcmdpbi1sZWZ0OjFyZW0gIWltcG9ydGFudH0ubXgtNHttYXJnaW4tbGVmdDoxcmVtICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OjFyZW0gIWltcG9ydGFudH0ubXktNHttYXJnaW4tdG9wOjFyZW0gIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjFyZW0gIWltcG9ydGFudH0ubS01e21hcmdpbjoxLjVyZW0gIWltcG9ydGFudH0ubXQtNXttYXJnaW4tdG9wOjEuNXJlbSAhaW1wb3J0YW50fS5tci01e21hcmdpbi1yaWdodDoxLjVyZW0gIWltcG9ydGFudH0ubWItNXttYXJnaW4tYm90dG9tOjEuNXJlbSAhaW1wb3J0YW50fS5tbC01e21hcmdpbi1sZWZ0OjEuNXJlbSAhaW1wb3J0YW50fS5teC01e21hcmdpbi1sZWZ0OjEuNXJlbSAhaW1wb3J0YW50O21hcmdpbi1yaWdodDoxLjVyZW0gIWltcG9ydGFudH0ubXktNXttYXJnaW4tdG9wOjEuNXJlbSAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MS41cmVtICFpbXBvcnRhbnR9Lm0tNnttYXJnaW46M3JlbSAhaW1wb3J0YW50fS5tdC02e21hcmdpbi10b3A6M3JlbSAhaW1wb3J0YW50fS5tci02e21hcmdpbi1yaWdodDozcmVtICFpbXBvcnRhbnR9Lm1iLTZ7bWFyZ2luLWJvdHRvbTozcmVtICFpbXBvcnRhbnR9Lm1sLTZ7bWFyZ2luLWxlZnQ6M3JlbSAhaW1wb3J0YW50fS5teC02e21hcmdpbi1sZWZ0OjNyZW0gIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6M3JlbSAhaW1wb3J0YW50fS5teS02e21hcmdpbi10b3A6M3JlbSAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206M3JlbSAhaW1wb3J0YW50fS5tLWF1dG97bWFyZ2luOmF1dG8gIWltcG9ydGFudH0ubXQtYXV0b3ttYXJnaW4tdG9wOmF1dG8gIWltcG9ydGFudH0ubXItYXV0b3ttYXJnaW4tcmlnaHQ6YXV0byAhaW1wb3J0YW50fS5tYi1hdXRve21hcmdpbi1ib3R0b206YXV0byAhaW1wb3J0YW50fS5tbC1hdXRve21hcmdpbi1sZWZ0OmF1dG8gIWltcG9ydGFudH0ubXgtYXV0b3ttYXJnaW4tbGVmdDphdXRvICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8gIWltcG9ydGFudH0ubXktYXV0b3ttYXJnaW4tdG9wOmF1dG8gIWltcG9ydGFudDttYXJnaW4tYm90dG9tOmF1dG8gIWltcG9ydGFudH0ucC0we3BhZGRpbmc6MCAhaW1wb3J0YW50fS5wdC0we3BhZGRpbmctdG9wOjAgIWltcG9ydGFudH0ucHItMHtwYWRkaW5nLXJpZ2h0OjAgIWltcG9ydGFudH0ucGItMHtwYWRkaW5nLWJvdHRvbTowICFpbXBvcnRhbnR9LnBsLTB7cGFkZGluZy1sZWZ0OjAgIWltcG9ydGFudH0ucHgtMHtwYWRkaW5nLWxlZnQ6MCAhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6MCAhaW1wb3J0YW50fS5weS0we3BhZGRpbmctdG9wOjAgIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowICFpbXBvcnRhbnR9LnAtMXtwYWRkaW5nOi4yNXJlbSAhaW1wb3J0YW50fS5wdC0xe3BhZGRpbmctdG9wOi4yNXJlbSAhaW1wb3J0YW50fS5wci0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtICFpbXBvcnRhbnR9LnBiLTF7cGFkZGluZy1ib3R0b206LjI1cmVtICFpbXBvcnRhbnR9LnBsLTF7cGFkZGluZy1sZWZ0Oi4yNXJlbSAhaW1wb3J0YW50fS5weC0xe3BhZGRpbmctbGVmdDouMjVyZW0gIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSAhaW1wb3J0YW50fS5weS0xe3BhZGRpbmctdG9wOi4yNXJlbSAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOi4yNXJlbSAhaW1wb3J0YW50fS5wLTJ7cGFkZGluZzouNXJlbSAhaW1wb3J0YW50fS5wdC0ye3BhZGRpbmctdG9wOi41cmVtICFpbXBvcnRhbnR9LnByLTJ7cGFkZGluZy1yaWdodDouNXJlbSAhaW1wb3J0YW50fS5wYi0ye3BhZGRpbmctYm90dG9tOi41cmVtICFpbXBvcnRhbnR9LnBsLTJ7cGFkZGluZy1sZWZ0Oi41cmVtICFpbXBvcnRhbnR9LnB4LTJ7cGFkZGluZy1sZWZ0Oi41cmVtICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDouNXJlbSAhaW1wb3J0YW50fS5weS0ye3BhZGRpbmctdG9wOi41cmVtICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206LjVyZW0gIWltcG9ydGFudH0ucC0ze3BhZGRpbmc6Ljc1cmVtICFpbXBvcnRhbnR9LnB0LTN7cGFkZGluZy10b3A6Ljc1cmVtICFpbXBvcnRhbnR9LnByLTN7cGFkZGluZy1yaWdodDouNzVyZW0gIWltcG9ydGFudH0ucGItM3twYWRkaW5nLWJvdHRvbTouNzVyZW0gIWltcG9ydGFudH0ucGwtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtICFpbXBvcnRhbnR9LnB4LTN7cGFkZGluZy1sZWZ0Oi43NXJlbSAhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6Ljc1cmVtICFpbXBvcnRhbnR9LnB5LTN7cGFkZGluZy10b3A6Ljc1cmVtICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206Ljc1cmVtICFpbXBvcnRhbnR9LnAtNHtwYWRkaW5nOjFyZW0gIWltcG9ydGFudH0ucHQtNHtwYWRkaW5nLXRvcDoxcmVtICFpbXBvcnRhbnR9LnByLTR7cGFkZGluZy1yaWdodDoxcmVtICFpbXBvcnRhbnR9LnBiLTR7cGFkZGluZy1ib3R0b206MXJlbSAhaW1wb3J0YW50fS5wbC00e3BhZGRpbmctbGVmdDoxcmVtICFpbXBvcnRhbnR9LnB4LTR7cGFkZGluZy1sZWZ0OjFyZW0gIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjFyZW0gIWltcG9ydGFudH0ucHktNHtwYWRkaW5nLXRvcDoxcmVtICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MXJlbSAhaW1wb3J0YW50fS5wLTV7cGFkZGluZzoxLjVyZW0gIWltcG9ydGFudH0ucHQtNXtwYWRkaW5nLXRvcDoxLjVyZW0gIWltcG9ydGFudH0ucHItNXtwYWRkaW5nLXJpZ2h0OjEuNXJlbSAhaW1wb3J0YW50fS5wYi01e3BhZGRpbmctYm90dG9tOjEuNXJlbSAhaW1wb3J0YW50fS5wbC01e3BhZGRpbmctbGVmdDoxLjVyZW0gIWltcG9ydGFudH0ucHgtNXtwYWRkaW5nLWxlZnQ6MS41cmVtICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDoxLjVyZW0gIWltcG9ydGFudH0ucHktNXtwYWRkaW5nLXRvcDoxLjVyZW0gIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxLjVyZW0gIWltcG9ydGFudH0ucC02e3BhZGRpbmc6M3JlbSAhaW1wb3J0YW50fS5wdC02e3BhZGRpbmctdG9wOjNyZW0gIWltcG9ydGFudH0ucHItNntwYWRkaW5nLXJpZ2h0OjNyZW0gIWltcG9ydGFudH0ucGItNntwYWRkaW5nLWJvdHRvbTozcmVtICFpbXBvcnRhbnR9LnBsLTZ7cGFkZGluZy1sZWZ0OjNyZW0gIWltcG9ydGFudH0ucHgtNntwYWRkaW5nLWxlZnQ6M3JlbSAhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6M3JlbSAhaW1wb3J0YW50fS5weS02e3BhZGRpbmctdG9wOjNyZW0gIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTozcmVtICFpbXBvcnRhbnR9LnAtYXV0b3twYWRkaW5nOmF1dG8gIWltcG9ydGFudH0ucHQtYXV0b3twYWRkaW5nLXRvcDphdXRvICFpbXBvcnRhbnR9LnByLWF1dG97cGFkZGluZy1yaWdodDphdXRvICFpbXBvcnRhbnR9LnBiLWF1dG97cGFkZGluZy1ib3R0b206YXV0byAhaW1wb3J0YW50fS5wbC1hdXRve3BhZGRpbmctbGVmdDphdXRvICFpbXBvcnRhbnR9LnB4LWF1dG97cGFkZGluZy1sZWZ0OmF1dG8gIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OmF1dG8gIWltcG9ydGFudH0ucHktYXV0b3twYWRkaW5nLXRvcDphdXRvICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206YXV0byAhaW1wb3J0YW50fS5pcy1zaXplLTF7Zm9udC1zaXplOjNyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS0ye2ZvbnQtc2l6ZToyLjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS0ze2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNHtmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNXtmb250LXNpemU6MS4yNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTZ7Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03e2ZvbnQtc2l6ZTouNzVyZW0gIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmlzLXNpemUtMS1tb2JpbGV7Zm9udC1zaXplOjNyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS0yLW1vYmlsZXtmb250LXNpemU6Mi41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMy1tb2JpbGV7Zm9udC1zaXplOjJyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS00LW1vYmlsZXtmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNS1tb2JpbGV7Zm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS02LW1vYmlsZXtmb250LXNpemU6MXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTctbW9iaWxle2ZvbnQtc2l6ZTouNzVyZW0gIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5pcy1zaXplLTEtdGFibGV0e2ZvbnQtc2l6ZTozcmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMi10YWJsZXR7Zm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTMtdGFibGV0e2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNC10YWJsZXR7Zm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTUtdGFibGV0e2ZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNi10YWJsZXR7Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03LXRhYmxldHtmb250LXNpemU6Ljc1cmVtICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLXNpemUtMS10b3VjaHtmb250LXNpemU6M3JlbSAhaW1wb3J0YW50fS5pcy1zaXplLTItdG91Y2h7Zm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTMtdG91Y2h7Zm9udC1zaXplOjJyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS00LXRvdWNoe2ZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS01LXRvdWNoe2ZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNi10b3VjaHtmb250LXNpemU6MXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTctdG91Y2h7Zm9udC1zaXplOi43NXJlbSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1zaXplLTEtZGVza3RvcHtmb250LXNpemU6M3JlbSAhaW1wb3J0YW50fS5pcy1zaXplLTItZGVza3RvcHtmb250LXNpemU6Mi41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMy1kZXNrdG9we2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNC1kZXNrdG9we2ZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS01LWRlc2t0b3B7Zm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS02LWRlc2t0b3B7Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03LWRlc2t0b3B7Zm9udC1zaXplOi43NXJlbSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5pcy1zaXplLTEtd2lkZXNjcmVlbntmb250LXNpemU6M3JlbSAhaW1wb3J0YW50fS5pcy1zaXplLTItd2lkZXNjcmVlbntmb250LXNpemU6Mi41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMy13aWRlc2NyZWVue2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNC13aWRlc2NyZWVue2ZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS01LXdpZGVzY3JlZW57Zm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS02LXdpZGVzY3JlZW57Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03LXdpZGVzY3JlZW57Zm9udC1zaXplOi43NXJlbSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5pcy1zaXplLTEtZnVsbGhke2ZvbnQtc2l6ZTozcmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMi1mdWxsaGR7Zm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTMtZnVsbGhke2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNC1mdWxsaGR7Zm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTUtZnVsbGhke2ZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNi1mdWxsaGR7Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03LWZ1bGxoZHtmb250LXNpemU6Ljc1cmVtICFpbXBvcnRhbnR9fS5oYXMtdGV4dC1jZW50ZXJlZHt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fS5oYXMtdGV4dC1qdXN0aWZpZWR7dGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhhcy10ZXh0LWNlbnRlcmVkLW1vYmlsZXt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7Lmhhcy10ZXh0LWNlbnRlcmVkLXRhYmxldHt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtY2VudGVyZWQtdGFibGV0LW9ubHl7dGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtY2VudGVyZWQtdG91Y2h7dGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaGFzLXRleHQtY2VudGVyZWQtZGVza3RvcHt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7Lmhhcy10ZXh0LWNlbnRlcmVkLWRlc2t0b3Atb25seXt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5oYXMtdGV4dC1jZW50ZXJlZC13aWRlc2NyZWVue3RleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaGFzLXRleHQtY2VudGVyZWQtd2lkZXNjcmVlbi1vbmx5e3RleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7Lmhhcy10ZXh0LWNlbnRlcmVkLWZ1bGxoZHt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhhcy10ZXh0LWp1c3RpZmllZC1tb2JpbGV7dGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGFzLXRleHQtanVzdGlmaWVkLXRhYmxldHt0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7Lmhhcy10ZXh0LWp1c3RpZmllZC10YWJsZXQtb25seXt0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtanVzdGlmaWVkLXRvdWNoe3RleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtZGVza3RvcHt0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtZGVza3RvcC1vbmx5e3RleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtd2lkZXNjcmVlbnt0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtd2lkZXNjcmVlbi1vbmx5e3RleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtZnVsbGhke3RleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhhcy10ZXh0LWxlZnQtbW9iaWxle3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7Lmhhcy10ZXh0LWxlZnQtdGFibGV0e3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtbGVmdC10YWJsZXQtb25seXt0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtbGVmdC10b3VjaHt0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaGFzLXRleHQtbGVmdC1kZXNrdG9we3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7Lmhhcy10ZXh0LWxlZnQtZGVza3RvcC1vbmx5e3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5oYXMtdGV4dC1sZWZ0LXdpZGVzY3JlZW57dGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaGFzLXRleHQtbGVmdC13aWRlc2NyZWVuLW9ubHl7dGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7Lmhhcy10ZXh0LWxlZnQtZnVsbGhke3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhhcy10ZXh0LXJpZ2h0LW1vYmlsZXt0ZXh0LWFsaWduOnJpZ2h0ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGFzLXRleHQtcmlnaHQtdGFibGV0e3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7Lmhhcy10ZXh0LXJpZ2h0LXRhYmxldC1vbmx5e3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtcmlnaHQtdG91Y2h7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5oYXMtdGV4dC1yaWdodC1kZXNrdG9we3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5oYXMtdGV4dC1yaWdodC1kZXNrdG9wLW9ubHl7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5oYXMtdGV4dC1yaWdodC13aWRlc2NyZWVue3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5oYXMtdGV4dC1yaWdodC13aWRlc2NyZWVuLW9ubHl7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5oYXMtdGV4dC1yaWdodC1mdWxsaGR7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fX0uaXMtY2FwaXRhbGl6ZWR7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZSAhaW1wb3J0YW50fS5pcy1sb3dlcmNhc2V7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlICFpbXBvcnRhbnR9LmlzLXVwcGVyY2FzZXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UgIWltcG9ydGFudH0uaXMtaXRhbGlje2ZvbnQtc3R5bGU6aXRhbGljICFpbXBvcnRhbnR9LmlzLXVuZGVybGluZWR7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSAhaW1wb3J0YW50fS5oYXMtdGV4dC13ZWlnaHQtbGlnaHR7Zm9udC13ZWlnaHQ6MzAwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdlaWdodC1ub3JtYWx7Zm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdlaWdodC1tZWRpdW17Zm9udC13ZWlnaHQ6NTAwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdlaWdodC1zZW1pYm9sZHtmb250LXdlaWdodDo2MDAgIWltcG9ydGFudH0uaGFzLXRleHQtd2VpZ2h0LWJvbGR7Zm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnR9LmlzLWZhbWlseS1wcmltYXJ5e2ZvbnQtZmFtaWx5OkJsaW5rTWFjU3lzdGVtRm9udCwtYXBwbGUtc3lzdGVtLCJTZWdvZSBVSSIsIlJvYm90byIsIk94eWdlbiIsIlVidW50dSIsIkNhbnRhcmVsbCIsIkZpcmEgU2FucyIsIkRyb2lkIFNhbnMiLCJIZWx2ZXRpY2EgTmV1ZSIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmICFpbXBvcnRhbnR9LmlzLWZhbWlseS1zZWNvbmRhcnl7Zm9udC1mYW1pbHk6QmxpbmtNYWNTeXN0ZW1Gb250LC1hcHBsZS1zeXN0ZW0sIlNlZ29lIFVJIiwiUm9ib3RvIiwiT3h5Z2VuIiwiVWJ1bnR1IiwiQ2FudGFyZWxsIiwiRmlyYSBTYW5zIiwiRHJvaWQgU2FucyIsIkhlbHZldGljYSBOZXVlIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWYgIWltcG9ydGFudH0uaXMtZmFtaWx5LXNhbnMtc2VyaWZ7Zm9udC1mYW1pbHk6QmxpbmtNYWNTeXN0ZW1Gb250LC1hcHBsZS1zeXN0ZW0sIlNlZ29lIFVJIiwiUm9ib3RvIiwiT3h5Z2VuIiwiVWJ1bnR1IiwiQ2FudGFyZWxsIiwiRmlyYSBTYW5zIiwiRHJvaWQgU2FucyIsIkhlbHZldGljYSBOZXVlIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWYgIWltcG9ydGFudH0uaXMtZmFtaWx5LW1vbm9zcGFjZXtmb250LWZhbWlseTptb25vc3BhY2UgIWltcG9ydGFudH0uaXMtZmFtaWx5LWNvZGV7Zm9udC1mYW1pbHk6bW9ub3NwYWNlICFpbXBvcnRhbnR9LmlzLWJsb2Nre2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmlzLWJsb2NrLW1vYmlsZXtkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaXMtYmxvY2stdGFibGV0e2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWJsb2NrLXRhYmxldC1vbmx5e2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtYmxvY2stdG91Y2h7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1ibG9jay1kZXNrdG9we2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5pcy1ibG9jay1kZXNrdG9wLW9ubHl7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5pcy1ibG9jay13aWRlc2NyZWVue2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5pcy1ibG9jay13aWRlc2NyZWVuLW9ubHl7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5pcy1ibG9jay1mdWxsaGR7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX0uaXMtZmxleHtkaXNwbGF5OmZsZXggIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmlzLWZsZXgtbW9iaWxle2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmlzLWZsZXgtdGFibGV0e2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtZmxleC10YWJsZXQtb25seXtkaXNwbGF5OmZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtZmxleC10b3VjaHtkaXNwbGF5OmZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaXMtZmxleC1kZXNrdG9we2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmlzLWZsZXgtZGVza3RvcC1vbmx5e2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5pcy1mbGV4LXdpZGVzY3JlZW57ZGlzcGxheTpmbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaXMtZmxleC13aWRlc2NyZWVuLW9ubHl7ZGlzcGxheTpmbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmlzLWZsZXgtZnVsbGhke2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX0uaXMtaW5saW5le2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5pcy1pbmxpbmUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaXMtaW5saW5lLXRhYmxldHtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtaW5saW5lLXRhYmxldC1vbmx5e2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWlubGluZS10b3VjaHtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1pbmxpbmUtZGVza3RvcHtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmlzLWlubGluZS1kZXNrdG9wLW9ubHl7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuaXMtaW5saW5lLXdpZGVzY3JlZW57ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5pcy1pbmxpbmUtd2lkZXNjcmVlbi1vbmx5e2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmlzLWlubGluZS1mdWxsaGR7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19LmlzLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaXMtaW5saW5lLWJsb2NrLW1vYmlsZXtkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmlzLWlubGluZS1ibG9jay10YWJsZXR7ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWlubGluZS1ibG9jay10YWJsZXQtb25seXtkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5pcy1pbmxpbmUtYmxvY2stdG91Y2h7ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaXMtaW5saW5lLWJsb2NrLWRlc2t0b3B7ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5pcy1pbmxpbmUtYmxvY2stZGVza3RvcC1vbmx5e2Rpc3BsYXk6aW5saW5lLWJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweCl7LmlzLWlubGluZS1ibG9jay13aWRlc2NyZWVue2Rpc3BsYXk6aW5saW5lLWJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaXMtaW5saW5lLWJsb2NrLXdpZGVzY3JlZW4tb25seXtkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5pcy1pbmxpbmUtYmxvY2stZnVsbGhke2Rpc3BsYXk6aW5saW5lLWJsb2NrICFpbXBvcnRhbnR9fS5pcy1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5pcy1pbmxpbmUtZmxleC1tb2JpbGV7ZGlzcGxheTppbmxpbmUtZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmlzLWlubGluZS1mbGV4LXRhYmxldHtkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KWFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5pcy1pbmxpbmUtZmxleC10YWJsZXQtb25seXtkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWlubGluZS1mbGV4LXRvdWNoe2Rpc3BsYXk6aW5saW5lLWZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaXMtaW5saW5lLWZsZXgtZGVza3RvcHtkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweClhbmQgKG1heC13aWR0aDogMTIxNXB4KXsuaXMtaW5saW5lLWZsZXgtZGVza3RvcC1vbmx5e2Rpc3BsYXk6aW5saW5lLWZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuaXMtaW5saW5lLWZsZXgtd2lkZXNjcmVlbntkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaXMtaW5saW5lLWZsZXgtd2lkZXNjcmVlbi1vbmx5e2Rpc3BsYXk6aW5saW5lLWZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwOHB4KXsuaXMtaW5saW5lLWZsZXgtZnVsbGhke2Rpc3BsYXk6aW5saW5lLWZsZXggIWltcG9ydGFudH19LmlzLWhpZGRlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudH0uaXMtc3Itb25seXtib3JkZXI6bm9uZSAhaW1wb3J0YW50O2NsaXA6cmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O2hlaWdodDouMDFlbSAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O3BhZGRpbmc6MCAhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwICFpbXBvcnRhbnQ7d2lkdGg6LjAxZW0gIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmlzLWhpZGRlbi1tb2JpbGV7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaXMtaGlkZGVuLXRhYmxldHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWhpZGRlbi10YWJsZXQtb25seXtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtaGlkZGVuLXRvdWNoe2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1oaWRkZW4tZGVza3RvcHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5pcy1oaWRkZW4tZGVza3RvcC1vbmx5e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5pcy1oaWRkZW4td2lkZXNjcmVlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5pcy1oaWRkZW4td2lkZXNjcmVlbi1vbmx5e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5pcy1oaWRkZW4tZnVsbGhke2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX0uaXMtaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5pcy1pbnZpc2libGUtbW9iaWxle3Zpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaXMtaW52aXNpYmxlLXRhYmxldHt2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtaW52aXNpYmxlLXRhYmxldC1vbmx5e3Zpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWludmlzaWJsZS10b3VjaHt2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1pbnZpc2libGUtZGVza3RvcHt2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmlzLWludmlzaWJsZS1kZXNrdG9wLW9ubHl7dmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuaXMtaW52aXNpYmxlLXdpZGVzY3JlZW57dmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5pcy1pbnZpc2libGUtd2lkZXNjcmVlbi1vbmx5e3Zpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmlzLWludmlzaWJsZS1mdWxsaGR7dmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudH19Lmhlcm97YWxpZ24taXRlbXM6c3RyZXRjaDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5oZXJvIC5uYXZiYXJ7YmFja2dyb3VuZDpub25lfS5oZXJvIC50YWJzIHVse2JvcmRlci1ib3R0b206bm9uZX0uaGVyby5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0uaGVyby5pcy13aGl0ZSBhOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duLWl0ZW0pOm5vdCgudGFnKTpub3QoLnBhZ2luYXRpb24tbGluay5pcy1jdXJyZW50KSwuaGVyby5pcy13aGl0ZSBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy13aGl0ZSAudGl0bGV7Y29sb3I6IzBhMGEwYX0uaGVyby5pcy13aGl0ZSAuc3VidGl0bGV7Y29sb3I6cmdiYSgxMCwxMCwxMCwuOSl9Lmhlcm8uaXMtd2hpdGUgLnN1YnRpdGxlIGE6bm90KC5idXR0b24pLC5oZXJvLmlzLXdoaXRlIC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6IzBhMGEwYX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5oZXJvLmlzLXdoaXRlIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9fS5oZXJvLmlzLXdoaXRlIC5uYXZiYXItaXRlbSwuaGVyby5pcy13aGl0ZSAubmF2YmFyLWxpbmt7Y29sb3I6cmdiYSgxMCwxMCwxMCwuNyl9Lmhlcm8uaXMtd2hpdGUgYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy13aGl0ZSBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwuaGVyby5pcy13aGl0ZSAubmF2YmFyLWxpbms6aG92ZXIsLmhlcm8uaXMtd2hpdGUgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Y29sb3I6IzBhMGEwYX0uaGVyby5pcy13aGl0ZSAudGFicyBhe2NvbG9yOiMwYTBhMGE7b3BhY2l0eTouOX0uaGVyby5pcy13aGl0ZSAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy13aGl0ZSAudGFicyBsaS5pcy1hY3RpdmUgYXtjb2xvcjojZmZmICFpbXBvcnRhbnQ7b3BhY2l0eToxfS5oZXJvLmlzLXdoaXRlIC50YWJzLmlzLWJveGVkIGEsLmhlcm8uaXMtd2hpdGUgLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6IzBhMGEwYX0uaGVyby5pcy13aGl0ZSAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLXdoaXRlIC50YWJzLmlzLXRvZ2dsZSBhOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMCwxMCwxMCwuMSl9Lmhlcm8uaXMtd2hpdGUgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtd2hpdGUgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtd2hpdGUgLnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLXdoaXRlIC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Ym9yZGVyLWNvbG9yOiMwYTBhMGE7Y29sb3I6I2ZmZn0uaGVyby5pcy13aGl0ZS5pcy1ib2xke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgI2U4ZTNlNCAwJSwgaHNsKDAsIDAlLCAxMDAlKSA3MSUsIHdoaXRlIDEwMCUpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaGVyby5pcy13aGl0ZS5pcy1ib2xkIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICNlOGUzZTQgMCUsIGhzbCgwLCAwJSwgMTAwJSkgNzElLCB3aGl0ZSAxMDAlKX19Lmhlcm8uaXMtYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2NvbG9yOiNmZmZ9Lmhlcm8uaXMtYmxhY2sgYTpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bi1pdGVtKTpub3QoLnRhZyk6bm90KC5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudCksLmhlcm8uaXMtYmxhY2sgc3Ryb25ne2NvbG9yOmluaGVyaXR9Lmhlcm8uaXMtYmxhY2sgLnRpdGxle2NvbG9yOiNmZmZ9Lmhlcm8uaXMtYmxhY2sgLnN1YnRpdGxle2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpfS5oZXJvLmlzLWJsYWNrIC5zdWJ0aXRsZSBhOm5vdCguYnV0dG9uKSwuaGVyby5pcy1ibGFjayAuc3VidGl0bGUgc3Ryb25ne2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1ibGFjayAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhfX0uaGVyby5pcy1ibGFjayAubmF2YmFyLWl0ZW0sLmhlcm8uaXMtYmxhY2sgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5oZXJvLmlzLWJsYWNrIGEubmF2YmFyLWl0ZW06aG92ZXIsLmhlcm8uaXMtYmxhY2sgYS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLmhlcm8uaXMtYmxhY2sgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWJsYWNrIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmZ9Lmhlcm8uaXMtYmxhY2sgLnRhYnMgYXtjb2xvcjojZmZmO29wYWNpdHk6Ljl9Lmhlcm8uaXMtYmxhY2sgLnRhYnMgYTpob3ZlcntvcGFjaXR5OjF9Lmhlcm8uaXMtYmxhY2sgLnRhYnMgbGkuaXMtYWN0aXZlIGF7Y29sb3I6IzBhMGEwYSAhaW1wb3J0YW50O29wYWNpdHk6MX0uaGVyby5pcy1ibGFjayAudGFicy5pcy1ib3hlZCBhLC5oZXJvLmlzLWJsYWNrIC50YWJzLmlzLXRvZ2dsZSBhe2NvbG9yOiNmZmZ9Lmhlcm8uaXMtYmxhY2sgLnRhYnMuaXMtYm94ZWQgYTpob3ZlciwuaGVyby5pcy1ibGFjayAudGFicy5pcy10b2dnbGUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjEpfS5oZXJvLmlzLWJsYWNrIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWJsYWNrIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhOmhvdmVyLC5oZXJvLmlzLWJsYWNrIC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYSwuaGVyby5pcy1ibGFjayAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiMwYTBhMGF9Lmhlcm8uaXMtYmxhY2suaXMtYm9sZHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsIGJsYWNrIDAlLCBoc2woMCwgMCUsIDQlKSA3MSUsICMxODE2MTYgMTAwJSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLmlzLWJsYWNrLmlzLWJvbGQgLm5hdmJhci1tZW51e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgYmxhY2sgMCUsIGhzbCgwLCAwJSwgNCUpIDcxJSwgIzE4MTYxNiAxMDAlKX19Lmhlcm8uaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWxpZ2h0IGE6bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24taXRlbSk6bm90KC50YWcpOm5vdCgucGFnaW5hdGlvbi1saW5rLmlzLWN1cnJlbnQpLC5oZXJvLmlzLWxpZ2h0IHN0cm9uZ3tjb2xvcjppbmhlcml0fS5oZXJvLmlzLWxpZ2h0IC50aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uaGVyby5pcy1saWdodCAuc3VidGl0bGV7Y29sb3I6cmdiYSgwLDAsMCwuOSl9Lmhlcm8uaXMtbGlnaHQgLnN1YnRpdGxlIGE6bm90KC5idXR0b24pLC5oZXJvLmlzLWxpZ2h0IC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1saWdodCAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2fX0uaGVyby5pcy1saWdodCAubmF2YmFyLWl0ZW0sLmhlcm8uaXMtbGlnaHQgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWxpZ2h0IGEubmF2YmFyLWl0ZW06aG92ZXIsLmhlcm8uaXMtbGlnaHQgYS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLmhlcm8uaXMtbGlnaHQgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWxpZ2h0IC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYmNmNmMyO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWxpZ2h0IC50YWJzIGF7Y29sb3I6cmdiYSgwLDAsMCwuNyk7b3BhY2l0eTouOX0uaGVyby5pcy1saWdodCAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy1saWdodCAudGFicyBsaS5pcy1hY3RpdmUgYXtjb2xvcjojZDJmOWQ2ICFpbXBvcnRhbnQ7b3BhY2l0eToxfS5oZXJvLmlzLWxpZ2h0IC50YWJzLmlzLWJveGVkIGEsLmhlcm8uaXMtbGlnaHQgLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtbGlnaHQgLnRhYnMuaXMtYm94ZWQgYTpob3ZlciwuaGVyby5pcy1saWdodCAudGFicy5pcy10b2dnbGUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjEpfS5oZXJvLmlzLWxpZ2h0IC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWxpZ2h0IC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhOmhvdmVyLC5oZXJvLmlzLWxpZ2h0IC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYSwuaGVyby5pcy1saWdodCAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6I2QyZjlkNn0uaGVyby5pcy1saWdodC5pcy1ib2xke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgI2E2ZjhhMCAwJSwgI2QyZjlkNiA3MSUsICNlOGZkZWQgMTAwJSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLmlzLWxpZ2h0LmlzLWJvbGQgLm5hdmJhci1tZW51e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgI2E2ZjhhMCAwJSwgI2QyZjlkNiA3MSUsICNlOGZkZWQgMTAwJSl9fS5oZXJvLmlzLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4O2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFyayBhOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duLWl0ZW0pOm5vdCgudGFnKTpub3QoLnBhZ2luYXRpb24tbGluay5pcy1jdXJyZW50KSwuaGVyby5pcy1kYXJrIHN0cm9uZ3tjb2xvcjppbmhlcml0fS5oZXJvLmlzLWRhcmsgLnRpdGxle2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFyayAuc3VidGl0bGV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSl9Lmhlcm8uaXMtZGFyayAuc3VidGl0bGUgYTpub3QoLmJ1dHRvbiksLmhlcm8uaXMtZGFyayAuc3VidGl0bGUgc3Ryb25ne2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1kYXJrIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTh9fS5oZXJvLmlzLWRhcmsgLm5hdmJhci1pdGVtLC5oZXJvLmlzLWRhcmsgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5oZXJvLmlzLWRhcmsgYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy1kYXJrIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5oZXJvLmlzLWRhcmsgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWRhcmsgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZDg0NGU7Y29sb3I6I2ZmZn0uaGVyby5pcy1kYXJrIC50YWJzIGF7Y29sb3I6I2ZmZjtvcGFjaXR5Oi45fS5oZXJvLmlzLWRhcmsgLnRhYnMgYTpob3ZlcntvcGFjaXR5OjF9Lmhlcm8uaXMtZGFyayAudGFicyBsaS5pcy1hY3RpdmUgYXtjb2xvcjojNDU5NTU4ICFpbXBvcnRhbnQ7b3BhY2l0eToxfS5oZXJvLmlzLWRhcmsgLnRhYnMuaXMtYm94ZWQgYSwuaGVyby5pcy1kYXJrIC50YWJzLmlzLXRvZ2dsZSBhe2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFyayAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLWRhcmsgLnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC4xKX0uaGVyby5pcy1kYXJrIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWRhcmsgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtZGFyayAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtZGFyayAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiM0NTk1NTh9Lmhlcm8uaXMtZGFyay5pcy1ib2xke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgIzJkN2EzMiAwJSwgIzQ1OTU1OCA3MSUsICM0N2FkNzAgMTAwJSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLmlzLWRhcmsuaXMtYm9sZCAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjMmQ3YTMyIDAlLCAjNDU5NTU4IDcxJSwgIzQ3YWQ3MCAxMDAlKX19Lmhlcm8uaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Y29sb3I6I2ZmZn0uaGVyby5pcy1wcmltYXJ5IGE6bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24taXRlbSk6bm90KC50YWcpOm5vdCgucGFnaW5hdGlvbi1saW5rLmlzLWN1cnJlbnQpLC5oZXJvLmlzLXByaW1hcnkgc3Ryb25ne2NvbG9yOmluaGVyaXR9Lmhlcm8uaXMtcHJpbWFyeSAudGl0bGV7Y29sb3I6I2ZmZn0uaGVyby5pcy1wcmltYXJ5IC5zdWJ0aXRsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KX0uaGVyby5pcy1wcmltYXJ5IC5zdWJ0aXRsZSBhOm5vdCguYnV0dG9uKSwuaGVyby5pcy1wcmltYXJ5IC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5oZXJvLmlzLXByaW1hcnkgLm5hdmJhci1tZW51e2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zn19Lmhlcm8uaXMtcHJpbWFyeSAubmF2YmFyLWl0ZW0sLmhlcm8uaXMtcHJpbWFyeSAubmF2YmFyLWxpbmt7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lmhlcm8uaXMtcHJpbWFyeSBhLm5hdmJhci1pdGVtOmhvdmVyLC5oZXJvLmlzLXByaW1hcnkgYS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLmhlcm8uaXMtcHJpbWFyeSAubmF2YmFyLWxpbms6aG92ZXIsLmhlcm8uaXMtcHJpbWFyeSAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzQ1YjQ2MTtjb2xvcjojZmZmfS5oZXJvLmlzLXByaW1hcnkgLnRhYnMgYXtjb2xvcjojZmZmO29wYWNpdHk6Ljl9Lmhlcm8uaXMtcHJpbWFyeSAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy1wcmltYXJ5IC50YWJzIGxpLmlzLWFjdGl2ZSBhe2NvbG9yOiM1NWJlNmYgIWltcG9ydGFudDtvcGFjaXR5OjF9Lmhlcm8uaXMtcHJpbWFyeSAudGFicy5pcy1ib3hlZCBhLC5oZXJvLmlzLXByaW1hcnkgLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6I2ZmZn0uaGVyby5pcy1wcmltYXJ5IC50YWJzLmlzLWJveGVkIGE6aG92ZXIsLmhlcm8uaXMtcHJpbWFyeSAudGFicy5pcy10b2dnbGUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjEpfS5oZXJvLmlzLXByaW1hcnkgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtcHJpbWFyeSAudGFicy5pcy1ib3hlZCBsaS5pcy1hY3RpdmUgYTpob3ZlciwuaGVyby5pcy1wcmltYXJ5IC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYSwuaGVyby5pcy1wcmltYXJ5IC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6IzU1YmU2Zn0uaGVyby5pcy1wcmltYXJ5LmlzLWJvbGR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjMzNhZDNkIDAlLCAjNTViZTZmIDcxJSwgIzYyY2E4ZCAxMDAlKX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhlcm8uaXMtcHJpbWFyeS5pcy1ib2xkIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICMzM2FkM2QgMCUsICM1NWJlNmYgNzElLCAjNjJjYThkIDEwMCUpfX0uaGVyby5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmfS5oZXJvLmlzLWxpbmsgYTpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bi1pdGVtKTpub3QoLnRhZyk6bm90KC5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudCksLmhlcm8uaXMtbGluayBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy1saW5rIC50aXRsZXtjb2xvcjojZmZmfS5oZXJvLmlzLWxpbmsgLnN1YnRpdGxle2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpfS5oZXJvLmlzLWxpbmsgLnN1YnRpdGxlIGE6bm90KC5idXR0b24pLC5oZXJvLmlzLWxpbmsgLnN1YnRpdGxlIHN0cm9uZ3tjb2xvcjojZmZmfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7Lmhlcm8uaXMtbGluayAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmfX0uaGVyby5pcy1saW5rIC5uYXZiYXItaXRlbSwuaGVyby5pcy1saW5rIC5uYXZiYXItbGlua3tjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uaGVyby5pcy1saW5rIGEubmF2YmFyLWl0ZW06aG92ZXIsLmhlcm8uaXMtbGluayBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwuaGVyby5pcy1saW5rIC5uYXZiYXItbGluazpob3ZlciwuaGVyby5pcy1saW5rIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMmY2M2ZmO2NvbG9yOiNmZmZ9Lmhlcm8uaXMtbGluayAudGFicyBhe2NvbG9yOiNmZmY7b3BhY2l0eTouOX0uaGVyby5pcy1saW5rIC50YWJzIGE6aG92ZXJ7b3BhY2l0eToxfS5oZXJvLmlzLWxpbmsgLnRhYnMgbGkuaXMtYWN0aXZlIGF7Y29sb3I6IzQ4NzZmZiAhaW1wb3J0YW50O29wYWNpdHk6MX0uaGVyby5pcy1saW5rIC50YWJzLmlzLWJveGVkIGEsLmhlcm8uaXMtbGluayAudGFicy5pcy10b2dnbGUgYXtjb2xvcjojZmZmfS5oZXJvLmlzLWxpbmsgLnRhYnMuaXMtYm94ZWQgYTpob3ZlciwuaGVyby5pcy1saW5rIC50YWJzLmlzLXRvZ2dsZSBhOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMCwxMCwxMCwuMSl9Lmhlcm8uaXMtbGluayAudGFicy5pcy1ib3hlZCBsaS5pcy1hY3RpdmUgYSwuaGVyby5pcy1saW5rIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhOmhvdmVyLC5oZXJvLmlzLWxpbmsgLnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWxpbmsgLnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2ZmZjtjb2xvcjojNDg3NmZmfS5oZXJvLmlzLWxpbmsuaXMtYm9sZHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICMxNTc3ZmYgMCUsICM0ODc2ZmYgNzElLCAjNjI2ZmZmIDEwMCUpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaGVyby5pcy1saW5rLmlzLWJvbGQgLm5hdmJhci1tZW51e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgIzE1NzdmZiAwJSwgIzQ4NzZmZiA3MSUsICM2MjZmZmYgMTAwJSl9fS5oZXJvLmlzLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWluZm8gYTpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bi1pdGVtKTpub3QoLnRhZyk6bm90KC5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudCksLmhlcm8uaXMtaW5mbyBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy1pbmZvIC50aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uaGVyby5pcy1pbmZvIC5zdWJ0aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC45KX0uaGVyby5pcy1pbmZvIC5zdWJ0aXRsZSBhOm5vdCguYnV0dG9uKSwuaGVyby5pcy1pbmZvIC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1pbmZvIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmZ9fS5oZXJvLmlzLWluZm8gLm5hdmJhci1pdGVtLC5oZXJvLmlzLWluZm8gLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWluZm8gYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy1pbmZvIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5oZXJvLmlzLWluZm8gLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWluZm8gLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkN2VjZmY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtaW5mbyAudGFicyBhe2NvbG9yOnJnYmEoMCwwLDAsLjcpO29wYWNpdHk6Ljl9Lmhlcm8uaXMtaW5mbyAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy1pbmZvIC50YWJzIGxpLmlzLWFjdGl2ZSBhe2NvbG9yOiNmMGY4ZmYgIWltcG9ydGFudDtvcGFjaXR5OjF9Lmhlcm8uaXMtaW5mbyAudGFicy5pcy1ib3hlZCBhLC5oZXJvLmlzLWluZm8gLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtaW5mbyAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLWluZm8gLnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC4xKX0uaGVyby5pcy1pbmZvIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWluZm8gLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtaW5mbyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtaW5mbyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6I2YwZjhmZn0uaGVyby5pcy1pbmZvLmlzLWJvbGR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjYmRlYmZmIDAlLCAjZjBmOGZmIDcxJSwgd2hpdGUgMTAwJSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLmlzLWluZm8uaXMtYm9sZCAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjYmRlYmZmIDAlLCAjZjBmOGZmIDcxJSwgd2hpdGUgMTAwJSl9fS5oZXJvLmlzLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlO2NvbG9yOiNmZmZ9Lmhlcm8uaXMtc3VjY2VzcyBhOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duLWl0ZW0pOm5vdCgudGFnKTpub3QoLnBhZ2luYXRpb24tbGluay5pcy1jdXJyZW50KSwuaGVyby5pcy1zdWNjZXNzIHN0cm9uZ3tjb2xvcjppbmhlcml0fS5oZXJvLmlzLXN1Y2Nlc3MgLnRpdGxle2NvbG9yOiNmZmZ9Lmhlcm8uaXMtc3VjY2VzcyAuc3VidGl0bGV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSl9Lmhlcm8uaXMtc3VjY2VzcyAuc3VidGl0bGUgYTpub3QoLmJ1dHRvbiksLmhlcm8uaXMtc3VjY2VzcyAuc3VidGl0bGUgc3Ryb25ne2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1zdWNjZXNzIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGV9fS5oZXJvLmlzLXN1Y2Nlc3MgLm5hdmJhci1pdGVtLC5oZXJvLmlzLXN1Y2Nlc3MgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5oZXJvLmlzLXN1Y2Nlc3MgYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy1zdWNjZXNzIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5oZXJvLmlzLXN1Y2Nlc3MgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLXN1Y2Nlc3MgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzYWJiODE7Y29sb3I6I2ZmZn0uaGVyby5pcy1zdWNjZXNzIC50YWJzIGF7Y29sb3I6I2ZmZjtvcGFjaXR5Oi45fS5oZXJvLmlzLXN1Y2Nlc3MgLnRhYnMgYTpob3ZlcntvcGFjaXR5OjF9Lmhlcm8uaXMtc3VjY2VzcyAudGFicyBsaS5pcy1hY3RpdmUgYXtjb2xvcjojNDhjNzhlICFpbXBvcnRhbnQ7b3BhY2l0eToxfS5oZXJvLmlzLXN1Y2Nlc3MgLnRhYnMuaXMtYm94ZWQgYSwuaGVyby5pcy1zdWNjZXNzIC50YWJzLmlzLXRvZ2dsZSBhe2NvbG9yOiNmZmZ9Lmhlcm8uaXMtc3VjY2VzcyAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLXN1Y2Nlc3MgLnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC4xKX0uaGVyby5pcy1zdWNjZXNzIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLXN1Y2Nlc3MgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtc3VjY2VzcyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtc3VjY2VzcyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiM0OGM3OGV9Lmhlcm8uaXMtc3VjY2Vzcy5pcy1ib2xke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgIzI5YjM1ZSAwJSwgaHNsKDE1MywgNTMlLCA1MyUpIDcxJSwgIzU2ZDJhZiAxMDAlKX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhlcm8uaXMtc3VjY2Vzcy5pcy1ib2xkIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICMyOWIzNWUgMCUsIGhzbCgxNTMsIDUzJSwgNTMlKSA3MSUsICM1NmQyYWYgMTAwJSl9fS5oZXJvLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLXdhcm5pbmcgYTpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bi1pdGVtKTpub3QoLnRhZyk6bm90KC5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudCksLmhlcm8uaXMtd2FybmluZyBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy13YXJuaW5nIC50aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uaGVyby5pcy13YXJuaW5nIC5zdWJ0aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC45KX0uaGVyby5pcy13YXJuaW5nIC5zdWJ0aXRsZSBhOm5vdCguYnV0dG9uKSwuaGVyby5pcy13YXJuaW5nIC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy13YXJuaW5nIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzV9fS5oZXJvLmlzLXdhcm5pbmcgLm5hdmJhci1pdGVtLC5oZXJvLmlzLXdhcm5pbmcgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLXdhcm5pbmcgYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy13YXJuaW5nIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5oZXJvLmlzLXdhcm5pbmcgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLXdhcm5pbmcgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQyNWM7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtd2FybmluZyAudGFicyBhe2NvbG9yOnJnYmEoMCwwLDAsLjcpO29wYWNpdHk6Ljl9Lmhlcm8uaXMtd2FybmluZyAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy13YXJuaW5nIC50YWJzIGxpLmlzLWFjdGl2ZSBhe2NvbG9yOiNmZmQ5NzUgIWltcG9ydGFudDtvcGFjaXR5OjF9Lmhlcm8uaXMtd2FybmluZyAudGFicy5pcy1ib3hlZCBhLC5oZXJvLmlzLXdhcm5pbmcgLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtd2FybmluZyAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLXdhcm5pbmcgLnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC4xKX0uaGVyby5pcy13YXJuaW5nIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLXdhcm5pbmcgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtd2FybmluZyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtd2FybmluZyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6I2ZmZDk3NX0uaGVyby5pcy13YXJuaW5nLmlzLWJvbGR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjZmZhYjQyIDAlLCAjZmZkOTc1IDcxJSwgI2ZmZjM4ZiAxMDAlKX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhlcm8uaXMtd2FybmluZy5pcy1ib2xkIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICNmZmFiNDIgMCUsICNmZmQ5NzUgNzElLCAjZmZmMzhmIDEwMCUpfX0uaGVyby5pcy1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4O2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFuZ2VyIGE6bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24taXRlbSk6bm90KC50YWcpOm5vdCgucGFnaW5hdGlvbi1saW5rLmlzLWN1cnJlbnQpLC5oZXJvLmlzLWRhbmdlciBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy1kYW5nZXIgLnRpdGxle2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFuZ2VyIC5zdWJ0aXRsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KX0uaGVyby5pcy1kYW5nZXIgLnN1YnRpdGxlIGE6bm90KC5idXR0b24pLC5oZXJvLmlzLWRhbmdlciAuc3VidGl0bGUgc3Ryb25ne2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1kYW5nZXIgLm5hdmJhci1tZW51e2JhY2tncm91bmQtY29sb3I6I2YxNDY2OH19Lmhlcm8uaXMtZGFuZ2VyIC5uYXZiYXItaXRlbSwuaGVyby5pcy1kYW5nZXIgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5oZXJvLmlzLWRhbmdlciBhLm5hdmJhci1pdGVtOmhvdmVyLC5oZXJvLmlzLWRhbmdlciBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwuaGVyby5pcy1kYW5nZXIgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWRhbmdlciAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2VmMmU1NTtjb2xvcjojZmZmfS5oZXJvLmlzLWRhbmdlciAudGFicyBhe2NvbG9yOiNmZmY7b3BhY2l0eTouOX0uaGVyby5pcy1kYW5nZXIgLnRhYnMgYTpob3ZlcntvcGFjaXR5OjF9Lmhlcm8uaXMtZGFuZ2VyIC50YWJzIGxpLmlzLWFjdGl2ZSBhe2NvbG9yOiNmMTQ2NjggIWltcG9ydGFudDtvcGFjaXR5OjF9Lmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLWJveGVkIGEsLmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLXRvZ2dsZSBhe2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLWJveGVkIGE6aG92ZXIsLmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLXRvZ2dsZSBhOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMCwxMCwxMCwuMSl9Lmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWRhbmdlciAudGFicy5pcy1ib3hlZCBsaS5pcy1hY3RpdmUgYTpob3ZlciwuaGVyby5pcy1kYW5nZXIgLnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWRhbmdlciAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiNmMTQ2Njh9Lmhlcm8uaXMtZGFuZ2VyLmlzLWJvbGR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjZmEwYTYyIDAlLCBoc2woMzQ4LCA4NiUsIDYxJSkgNzElLCAjZjc1OTVmIDEwMCUpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaGVyby5pcy1kYW5nZXIuaXMtYm9sZCAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjZmEwYTYyIDAlLCBoc2woMzQ4LCA4NiUsIDYxJSkgNzElLCAjZjc1OTVmIDEwMCUpfX0uaGVyby5pcy1zbWFsbCAuaGVyby1ib2R5e3BhZGRpbmc6MS41cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGVyby5pcy1tZWRpdW0gLmhlcm8tYm9keXtwYWRkaW5nOjlyZW0gNC41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7Lmhlcm8uaXMtbGFyZ2UgLmhlcm8tYm9keXtwYWRkaW5nOjE4cmVtIDZyZW19fS5oZXJvLmlzLWhhbGZoZWlnaHQgLmhlcm8tYm9keSwuaGVyby5pcy1mdWxsaGVpZ2h0IC5oZXJvLWJvZHksLmhlcm8uaXMtZnVsbGhlaWdodC13aXRoLW5hdmJhciAuaGVyby1ib2R5e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9Lmhlcm8uaXMtaGFsZmhlaWdodCAuaGVyby1ib2R5Pi5jb250YWluZXIsLmhlcm8uaXMtZnVsbGhlaWdodCAuaGVyby1ib2R5Pi5jb250YWluZXIsLmhlcm8uaXMtZnVsbGhlaWdodC13aXRoLW5hdmJhciAuaGVyby1ib2R5Pi5jb250YWluZXJ7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX0uaGVyby5pcy1oYWxmaGVpZ2h0e21pbi1oZWlnaHQ6NTB2aH0uaGVyby5pcy1mdWxsaGVpZ2h0e21pbi1oZWlnaHQ6MTAwdmh9Lmhlcm8tdmlkZW97b3ZlcmZsb3c6aGlkZGVufS5oZXJvLXZpZGVvIHZpZGVve2xlZnQ6NTAlO21pbi1oZWlnaHQ6MTAwJTttaW4td2lkdGg6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKX0uaGVyby12aWRlby5pcy10cmFuc3BhcmVudHtvcGFjaXR5Oi4zfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaGVyby12aWRlb3tkaXNwbGF5Om5vbmV9fS5oZXJvLWJ1dHRvbnN7bWFyZ2luLXRvcDoxLjVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLWJ1dHRvbnMgLmJ1dHRvbntkaXNwbGF5OmZsZXh9Lmhlcm8tYnV0dG9ucyAuYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTouNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGVyby1idXR0b25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5oZXJvLWJ1dHRvbnMgLmJ1dHRvbjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDoxLjVyZW19fS5oZXJvLWhlYWQsLmhlcm8tZm9vdHtmbGV4LWdyb3c6MDtmbGV4LXNocmluazowfS5oZXJvLWJvZHl7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjNyZW0gMS41cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGVyby1ib2R5e3BhZGRpbmc6M3JlbSAzcmVtfX0uc2VjdGlvbntwYWRkaW5nOjNyZW0gMS41cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCl7LnNlY3Rpb257cGFkZGluZzozcmVtIDNyZW19LnNlY3Rpb24uaXMtbWVkaXVte3BhZGRpbmc6OXJlbSA0LjVyZW19LnNlY3Rpb24uaXMtbGFyZ2V7cGFkZGluZzoxOHJlbSA2cmVtfX0uZm9vdGVye2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtwYWRkaW5nOjNyZW0gMS41cmVtIDZyZW19Omhvc3R7LS1wcmltYXJ5OiAjNTViZTZmOy0taW5mbzogI2YwZjhmZjstLXdhcm5pbmc6ICNmZmQ5NzU7LS1saW5rOiAjNDg3NmZmO2ZvbnQtc2l6ZToxNnB4Oy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO21pbi13aWR0aDozMDBweDt0ZXh0LXJlbmRlcmluZzpvcHRpbWl6ZUxlZ2liaWxpdHk7dGV4dC1zaXplLWFkanVzdDoxMDAlO2ZvbnQtZmFtaWx5OkJsaW5rTWFjU3lzdGVtRm9udCwtYXBwbGUtc3lzdGVtLCJTZWdvZSBVSSIsIlJvYm90byIsIk94eWdlbiIsIlVidW50dSIsIkNhbnRhcmVsbCIsIkZpcmEgU2FucyIsIkRyb2lkIFNhbnMiLCJIZWx2ZXRpY2EgTmV1ZSIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2NvbG9yOiM0YTRhNGE7Zm9udC1zaXplOjFlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uc3Itb25seXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwYWRkaW5nOjA7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO2NsaXA6cmVjdCgwLCAwLCAwLCAwKTt3aGl0ZS1zcGFjZTpub3dyYXA7Ym9yZGVyLXdpZHRoOjB9JywiIl0pO2NvbnN0IGE9c30sMzE0OmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKChmdW5jdGlvbih0KXt2YXIgaT1lKHQpO3JldHVybiB0WzJdPyJAbWVkaWEgIi5jb25jYXQodFsyXSwiIHsiKS5jb25jYXQoaSwifSIpOml9KSkuam9pbigiIil9LHQuaT1mdW5jdGlvbihlLGksbyl7InN0cmluZyI9PXR5cGVvZiBlJiYoZT1bW251bGwsZSwiIl1dKTt2YXIgbj17fTtpZihvKWZvcih2YXIgcj0wO3I8dGhpcy5sZW5ndGg7cisrKXt2YXIgcz10aGlzW3JdWzBdO251bGwhPXMmJihuW3NdPSEwKX1mb3IodmFyIGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIGw9W10uY29uY2F0KGVbYV0pO28mJm5bbFswXV18fChpJiYobFsyXT9sWzJdPSIiLmNvbmNhdChpLCIgYW5kICIpLmNvbmNhdChsWzJdKTpsWzJdPWkpLHQucHVzaChsKSl9fSx0fX0sNTYzOmZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO3ZhciBpPXRoaXMmJnRoaXMuX19hd2FpdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBpPyh0aGlzLnY9ZSx0aGlzKTpuZXcgaShlKX0sbz10aGlzJiZ0aGlzLl9fYXN5bmNHZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCxvKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIG4scj1vLmFwcGx5KGUsdHx8W10pLHM9W107cmV0dXJuIG49e30sYSgibmV4dCIpLGEoInRocm93IiksYSgicmV0dXJuIiksbltTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbjtmdW5jdGlvbiBhKGUpe3JbZV0mJihuW2VdPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSxvKXtzLnB1c2goW2UsdCxpLG9dKT4xfHxsKGUsdCl9KSl9KX1mdW5jdGlvbiBsKGUsdCl7dHJ5eyhvPXJbZV0odCkpLnZhbHVlIGluc3RhbmNlb2YgaT9Qcm9taXNlLnJlc29sdmUoby52YWx1ZS52KS50aGVuKGMsZCk6aChzWzBdWzJdLG8pfWNhdGNoKGUpe2goc1swXVszXSxlKX12YXIgb31mdW5jdGlvbiBjKGUpe2woIm5leHQiLGUpfWZ1bmN0aW9uIGQoZSl7bCgidGhyb3ciLGUpfWZ1bmN0aW9uIGgoZSx0KXtlKHQpLHMuc2hpZnQoKSxzLmxlbmd0aCYmbChzWzBdWzBdLHNbMF1bMV0pfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gbyh0aGlzLGFyZ3VtZW50cywoZnVuY3Rpb24qKCl7Y29uc3QgdD0vXHI/XG4vLG89bmV3IFRleHREZWNvZGVyO2xldCBuPSIiLHI9ZS5yZWFkKCk7Zm9yKDs7KXtjb25zdHtkb25lOnMsdmFsdWU6YX09eWllbGQgaShyKTtpZihzKXJldHVybiBuLmxlbmd0aD4wJiYoeWllbGQgeWllbGQgaShKU09OLnBhcnNlKG4pKSkseWllbGQgaSh2b2lkIDApO24rPW8uZGVjb2RlKGEse3N0cmVhbTohMH0pO2NvbnN0IGw9bi5zcGxpdCh0KTtuPWwucG9wKCk7Zm9yKGNvbnN0IGUgb2YgbCl5aWVsZCB5aWVsZCBpKEpTT04ucGFyc2UoZSkpO3I9ZS5yZWFkKCl9fSkpfX0sMTEyOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7bW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18ubm1kKG1vZHVsZSksCi8qKiEKICogRmxleFNlYXJjaC5qcyB2MC43LjMxIChCdW5kbGUpCiAqIENvcHlyaWdodCAyMDE4LTIwMjIgTmV4dGFwcHMgR21iSAogKiBBdXRob3I6IFRob21hcyBXaWxrZXJsaW5nCiAqIExpY2VuY2U6IEFwYWNoZS0yLjAKICogaHR0cHM6Ly9naXRodWIuY29tL25leHRhcHBzLWRlL2ZsZXhzZWFyY2gKICovCmZ1bmN0aW9uIF9mKHNlbGYpeyJ1c2Ugc3RyaWN0Ijt0cnl7bW9kdWxlJiYoc2VsZj1tb2R1bGUpfWNhdGNoKGUpe312YXIgdDtmdW5jdGlvbiB1KGUpe3JldHVybiB2b2lkIDA9PT1lfHxlfWZ1bmN0aW9uIGFhKGUpe2NvbnN0IHQ9QXJyYXkoZSk7Zm9yKGxldCBpPTA7aTxlO2krKyl0W2ldPXYoKTtyZXR1cm4gdH1mdW5jdGlvbiB2KCl7cmV0dXJuIE9iamVjdC5jcmVhdGUobnVsbCl9ZnVuY3Rpb24gYmEoZSx0KXtyZXR1cm4gdC5sZW5ndGgtZS5sZW5ndGh9ZnVuY3Rpb24geChlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9ZnVuY3Rpb24gQyhlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGV9ZnVuY3Rpb24gRChlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX1mdW5jdGlvbiBjYShlLHQpe3ZhciBpPWRhO2lmKGUmJih0JiYoZT1FKGUsdCkpLHRoaXMuSCYmKGU9RShlLHRoaXMuSCkpLHRoaXMuSiYmMTxlLmxlbmd0aCYmKGU9RShlLHRoaXMuSikpLGl8fCIiPT09aSkpe2lmKGU9ZS5zcGxpdChpKSx0aGlzLmZpbHRlcil7dD10aGlzLmZpbHRlcixpPWUubGVuZ3RoO2NvbnN0IG89W107Zm9yKGxldCBuPTAscj0wO248aTtuKyspe2NvbnN0IGk9ZVtuXTtpJiYhdFtpXSYmKG9bcisrXT1pKX1lPW99cmV0dXJuIGV9cmV0dXJuIGV9c2VsZi5fZmFjdG9yeT1fZjtjb25zdCBkYT0vW1xwe1p9XHB7U31ccHtQfVxwe0N9XSsvdSxlYT0vW1x1MDMwMC1cdTAzNmZdL2c7ZnVuY3Rpb24gZmEoZSx0KXtjb25zdCBpPU9iamVjdC5rZXlzKGUpLG89aS5sZW5ndGgsbj1bXTtsZXQgcj0iIixzPTA7Zm9yKGxldCBhLGwsYz0wO2M8bztjKyspYT1pW2NdLChsPWVbYV0pPyhuW3MrK109Rih0PyIoPyFcXGIpIithKyIoXFxifF8pIjphKSxuW3MrK109bCk6cis9KHI/InwiOiIiKSthO3JldHVybiByJiYobltzKytdPUYodD8iKD8hXFxiKSgiK3IrIikoXFxifF8pIjoiKCIrcisiKSIpLG5bc109IiIpLG59ZnVuY3Rpb24gRShlLHQpe2ZvcihsZXQgaT0wLG89dC5sZW5ndGg7aTxvJiYoZT1lLnJlcGxhY2UodFtpXSx0W2krMV0pKTtpKz0yKTtyZXR1cm4gZX1mdW5jdGlvbiBGKGUpe3JldHVybiBuZXcgUmVnRXhwKGUsImciKX1mdW5jdGlvbiBoYShlKXtsZXQgdD0iIixpPSIiO2ZvcihsZXQgbyxuPTAscj1lLmxlbmd0aDtuPHI7bisrKShvPWVbbl0pIT09aSYmKHQrPWk9byk7cmV0dXJuIHR9dmFyIGphPXtlbmNvZGU6aWEsRjohMSxHOiIifTtmdW5jdGlvbiBpYShlKXtyZXR1cm4gY2EuY2FsbCh0aGlzLCgiIitlKS50b0xvd2VyQ2FzZSgpLCExKX1jb25zdCBrYT17fSxHPXt9O2Z1bmN0aW9uIGxhKGUpe0koZSwiYWRkIiksSShlLCJhcHBlbmQiKSxJKGUsInNlYXJjaCIpLEkoZSwidXBkYXRlIiksSShlLCJyZW1vdmUiKX1mdW5jdGlvbiBJKGUsdCl7ZVt0KyJBc3luYyJdPWZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzLGk9YXJndW1lbnRzO3ZhciBvPWlbaS5sZW5ndGgtMV07bGV0IG47cmV0dXJuIEQobykmJihuPW8sZGVsZXRlIGlbaS5sZW5ndGgtMV0pLG89bmV3IFByb21pc2UoKGZ1bmN0aW9uKG8pe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5hc3luYz0hMDtjb25zdCBuPWVbdF0uYXBwbHkoZSxpKTtlLmFzeW5jPSExLG8obil9KSl9KSksbj8oby50aGVuKG4pLHRoaXMpOm99fWZ1bmN0aW9uIG1hKGUsdCxpLG8pe2NvbnN0IG49ZS5sZW5ndGg7bGV0IHIscyxhPVtdLGw9MDtvJiYobz1bXSk7Zm9yKGxldCBjPW4tMTswPD1jO2MtLSl7Y29uc3QgZD1lW2NdLGg9ZC5sZW5ndGgsdT12KCk7bGV0IGY9IXI7Zm9yKGxldCBlPTA7ZTxoO2UrKyl7Y29uc3QgaD1kW2VdLHA9aC5sZW5ndGg7aWYocClmb3IobGV0IGUsZCxtPTA7bTxwO20rKylpZihkPWhbbV0scil7aWYocltkXSl7aWYoIWMpaWYoaSlpLS07ZWxzZSBpZihhW2wrK109ZCxsPT09dClyZXR1cm4gYTsoY3x8bykmJih1W2RdPTEpLGY9ITB9aWYobyYmKGU9KHNbZF18fDApKzEsc1tkXT1lLGU8bikpe2NvbnN0IHQ9b1tlLTJdfHwob1tlLTJdPVtdKTt0W3QubGVuZ3RoXT1kfX1lbHNlIHVbZF09MX1pZihvKXJ8fChzPXUpO2Vsc2UgaWYoIWYpcmV0dXJuW107cj11fWlmKG8pZm9yKGxldCBlLG4scz1vLmxlbmd0aC0xOzA8PXM7cy0tKXtlPW9bc10sbj1lLmxlbmd0aDtmb3IobGV0IG8scz0wO3M8bjtzKyspaWYobz1lW3NdLCFyW29dKXtpZihpKWktLTtlbHNlIGlmKGFbbCsrXT1vLGw9PT10KXJldHVybiBhO3Jbb109MX19cmV0dXJuIGF9ZnVuY3Rpb24gbmEoZSx0KXtjb25zdCBpPXYoKSxvPXYoKSxuPVtdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlbZVt0XV09MTtmb3IobGV0IGUscj0wO3I8dC5sZW5ndGg7cisrKXtlPXRbcl07Zm9yKGxldCB0LHI9MDtyPGUubGVuZ3RoO3IrKyl0PWVbcl0saVt0XSYmIW9bdF0mJihvW3RdPTEsbltuLmxlbmd0aF09dCl9cmV0dXJuIG59ZnVuY3Rpb24gSihlKXt0aGlzLmw9ITAhPT1lJiZlLHRoaXMuY2FjaGU9digpLHRoaXMuaD1bXX1mdW5jdGlvbiBvYShlLHQsaSl7QyhlKSYmKGU9ZS5xdWVyeSk7bGV0IG89dGhpcy5jYWNoZS5nZXQoZSk7cmV0dXJuIG98fChvPXRoaXMuc2VhcmNoKGUsdCxpKSx0aGlzLmNhY2hlLnNldChlLG8pKSxvfUoucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe2lmKCF0aGlzLmNhY2hlW2VdKXt2YXIgaT10aGlzLmgubGVuZ3RoO2ZvcihpPT09dGhpcy5sP2RlbGV0ZSB0aGlzLmNhY2hlW3RoaXMuaFtpLTFdXTppKyssLS1pOzA8aTtpLS0pdGhpcy5oW2ldPXRoaXMuaFtpLTFdO3RoaXMuaFswXT1lfXRoaXMuY2FjaGVbZV09dH0sSi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5jYWNoZVtlXTtpZih0aGlzLmwmJnQmJihlPXRoaXMuaC5pbmRleE9mKGUpKSl7Y29uc3QgdD10aGlzLmhbZS0xXTt0aGlzLmhbZS0xXT10aGlzLmhbZV0sdGhpcy5oW2VdPXR9cmV0dXJuIHR9O2NvbnN0IHFhPXttZW1vcnk6e2NoYXJzZXQ6ImxhdGluOmV4dHJhIixEOjMsQjo0LG06ITF9LHBlcmZvcm1hbmNlOntEOjMsQjozLHM6ITEsY29udGV4dDp7ZGVwdGg6MixEOjF9fSxtYXRjaDp7Y2hhcnNldDoibGF0aW46ZXh0cmEiLEc6InJldmVyc2UifSxzY29yZTp7Y2hhcnNldDoibGF0aW46YWR2YW5jZWQiLEQ6MjAsQjozLGNvbnRleHQ6e2RlcHRoOjMsRDo5fX0sZGVmYXVsdDp7fX07ZnVuY3Rpb24gcmEoZSx0LGksbyxuLHIscyl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtjb25zdCBhPWUoaT9pKyIuIitvOm8sSlNPTi5zdHJpbmdpZnkocykpO2EmJmEudGhlbj9hLnRoZW4oKGZ1bmN0aW9uKCl7dC5leHBvcnQoZSx0LGksbixyKzEpfSkpOnQuZXhwb3J0KGUsdCxpLG4scisxKX0pKX1mdW5jdGlvbiBLKGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgSykpcmV0dXJuIG5ldyBLKGUpO3ZhciBpO2lmKGUpe3goZSk/ZT1xYVtlXTooaT1lLnByZXNldCkmJihlPU9iamVjdC5hc3NpZ24oe30saVtpXSxlKSksaT1lLmNoYXJzZXQ7dmFyIG89ZS5sYW5nO3goaSkmJigtMT09PWkuaW5kZXhPZigiOiIpJiYoaSs9IjpkZWZhdWx0IiksaT1HW2ldKSx4KG8pJiYobz1rYVtvXSl9ZWxzZSBlPXt9O2xldCBuLHIscz1lLmNvbnRleHR8fHt9O2lmKHRoaXMuZW5jb2RlPWUuZW5jb2RlfHxpJiZpLmVuY29kZXx8aWEsdGhpcy5yZWdpc3Rlcj10fHx2KCksdGhpcy5EPW49ZS5yZXNvbHV0aW9ufHw5LHRoaXMuRz10PWkmJmkuR3x8ZS50b2tlbml6ZXx8InN0cmljdCIsdGhpcy5kZXB0aD0ic3RyaWN0Ij09PXQmJnMuZGVwdGgsdGhpcy5sPXUocy5iaWRpcmVjdGlvbmFsKSx0aGlzLnM9cj11KGUub3B0aW1pemUpLHRoaXMubT11KGUuZmFzdHVwZGF0ZSksdGhpcy5CPWUubWlubGVuZ3RofHwxLHRoaXMuQz1lLmJvb3N0LHRoaXMubWFwPXI/YWEobik6digpLHRoaXMuQT1uPXMucmVzb2x1dGlvbnx8MSx0aGlzLmg9cj9hYShuKTp2KCksdGhpcy5GPWkmJmkuRnx8ZS5ydGwsdGhpcy5IPSh0PWUubWF0Y2hlcnx8byYmby5IKSYmZmEodCwhMSksdGhpcy5KPSh0PWUuc3RlbW1lcnx8byYmby5KKSYmZmEodCwhMCksaT10PWUuZmlsdGVyfHxvJiZvLmZpbHRlcil7aT10LG89digpO2ZvcihsZXQgZT0wLHQ9aS5sZW5ndGg7ZTx0O2UrKylvW2lbZV1dPTE7aT1vfXRoaXMuZmlsdGVyPWksdGhpcy5jYWNoZT0odD1lLmNhY2hlKSYmbmV3IEoodCl9ZnVuY3Rpb24gTChlLHQsaSxvLG4pe3JldHVybiBpJiYxPGU/dCsob3x8MCk8PWU/aSsobnx8MCk6KGUtMSkvKHQrKG98fDApKSooaSsobnx8MCkpKzF8MDowfWZ1bmN0aW9uIE0oZSx0LGksbyxuLHIscyl7bGV0IGE9cz9lLmg6ZS5tYXA7KCF0W2ldfHxzJiYhdFtpXVtzXSkmJihlLnMmJihhPWFbb10pLHM/KCh0PXRbaV18fCh0W2ldPXYoKSkpW3NdPTEsYT1hW3NdfHwoYVtzXT12KCkpKTp0W2ldPTEsYT1hW2ldfHwoYVtpXT1bXSksZS5zfHwoYT1hW29dfHwoYVtvXT1bXSkpLHImJmEuaW5jbHVkZXMobil8fChhW2EubGVuZ3RoXT1uLGUubSYmKChlPWUucmVnaXN0ZXJbbl18fChlLnJlZ2lzdGVyW25dPVtdKSlbZS5sZW5ndGhdPWEpKSl9ZnVuY3Rpb24gc2EoZSx0LGksbyxuLHIscyxhKXtsZXQgbD1bXSxjPWE/ZS5oOmUubWFwO2lmKGUuc3x8KGM9dWEoYyxzLGEsZS5sKSksYyl7bGV0IGk9MDtjb25zdCBkPU1hdGgubWluKGMubGVuZ3RoLGE/ZS5BOmUuRCk7Zm9yKGxldCB0LGgsdT0wLGY9MDt1PGQmJiEoKHQ9Y1t1XSkmJihlLnMmJih0PXVhKHQscyxhLGUubCkpLG4mJnQmJnImJihoPXQubGVuZ3RoLGg8PW4/KG4tPWgsdD1udWxsKToodD10LnNsaWNlKG4pLG49MCkpLHQmJihsW2krK109dCxyJiYoZis9dC5sZW5ndGgsZj49bykpKSk7dSsrKTtpZihpKXJldHVybiByP3RhKGwsbywwKTp2b2lkKHRbdC5sZW5ndGhdPWwpfXJldHVybiFpJiZsfWZ1bmN0aW9uIHRhKGUsdCxpKXtyZXR1cm4gZT0xPT09ZS5sZW5ndGg/ZVswXTpbXS5jb25jYXQuYXBwbHkoW10sZSksaXx8ZS5sZW5ndGg+dD9lLnNsaWNlKGksaSt0KTplfWZ1bmN0aW9uIHVhKGUsdCxpLG8pe3JldHVybiBpP2U9KGU9ZVsobz1vJiZ0PmkpP3Q6aV0pJiZlW28/aTp0XTplPWVbdF0sZX1mdW5jdGlvbiBOKGUsdCxpLG8sbil7bGV0IHI9MDtpZihlLmNvbnN0cnVjdG9yPT09QXJyYXkpaWYobiktMSE9PSh0PWUuaW5kZXhPZih0KSk/MTxlLmxlbmd0aCYmKGUuc3BsaWNlKHQsMSkscisrKTpyKys7ZWxzZXtuPU1hdGgubWluKGUubGVuZ3RoLGkpO2ZvcihsZXQgcyxhPTA7YTxuO2ErKykocz1lW2FdKSYmKHI9TihzLHQsaSxvLG4pLG98fHJ8fGRlbGV0ZSBlW2FdKX1lbHNlIGZvcihsZXQgcyBpbiBlKShyPU4oZVtzXSx0LGksbyxuKSl8fGRlbGV0ZSBlW3NdO3JldHVybiByfWZ1bmN0aW9uIHZhKGUpe2U9ZS5kYXRhO3ZhciB0PXNlbGYuX2luZGV4O2NvbnN0IGk9ZS5hcmdzO3ZhciBvPWUudGFzaztpZigiaW5pdCI9PT1vKW89ZS5vcHRpb25zfHx7fSxlPWUuZmFjdG9yeSx0PW8uZW5jb2RlLG8uY2FjaGU9ITEsdCYmMD09PXQuaW5kZXhPZigiZnVuY3Rpb24iKSYmKG8uZW5jb2RlPUZ1bmN0aW9uKCJyZXR1cm4gIit0KSgpKSxlPyhGdW5jdGlvbigicmV0dXJuICIrZSkoKShzZWxmKSxzZWxmLl9pbmRleD1uZXcgc2VsZi5GbGV4U2VhcmNoLkluZGV4KG8pLGRlbGV0ZSBzZWxmLkZsZXhTZWFyY2gpOnNlbGYuX2luZGV4PW5ldyBLKG8pO2Vsc2UgZT1lLmlkLHQ9dFtvXS5hcHBseSh0LGkpLHBvc3RNZXNzYWdlKCJzZWFyY2giPT09bz97aWQ6ZSxtc2c6dH06e2lkOmV9KX10PUsucHJvdG90eXBlLHQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkKGUsdCwhMCl9LHQuYWRkPWZ1bmN0aW9uKGUsdCxpLG8pe2lmKHQmJihlfHwwPT09ZSkpe2lmKCFvJiYhaSYmdGhpcy5yZWdpc3RlcltlXSlyZXR1cm4gdGhpcy51cGRhdGUoZSx0KTtpZihvPSh0PXRoaXMuZW5jb2RlKHQpKS5sZW5ndGgpe2NvbnN0IGM9digpLGQ9digpLGg9dGhpcy5kZXB0aCx1PXRoaXMuRDtmb3IobGV0IGY9MDtmPG87ZisrKXtsZXQgcD10W3RoaXMuRj9vLTEtZjpmXTt2YXIgbj1wLmxlbmd0aDtpZihwJiZuPj10aGlzLkImJihofHwhZFtwXSkpe3ZhciByPUwodSxvLGYpLHM9IiI7c3dpdGNoKHRoaXMuRyl7Y2FzZSJmdWxsIjppZigyPG4pe2ZvcihyPTA7cjxuO3IrKylmb3IodmFyIGE9bjthPnI7YS0tKWlmKGEtcj49dGhpcy5CKXt2YXIgbD1MKHUsbyxmLG4scik7TSh0aGlzLGQscz1wLnN1YnN0cmluZyhyLGEpLGwsZSxpKX1icmVha31jYXNlInJldmVyc2UiOmlmKDE8bil7Zm9yKGE9bi0xOzA8YTthLS0pKHM9cFthXStzKS5sZW5ndGg+PXRoaXMuQiYmTSh0aGlzLGQscyxMKHUsbyxmLG4sYSksZSxpKTtzPSIifWNhc2UiZm9yd2FyZCI6aWYoMTxuKXtmb3IoYT0wO2E8bjthKyspKHMrPXBbYV0pLmxlbmd0aD49dGhpcy5CJiZNKHRoaXMsZCxzLHIsZSxpKTticmVha31kZWZhdWx0OmlmKHRoaXMuQyYmKHI9TWF0aC5taW4oci90aGlzLkModCxwLGYpfDAsdS0xKSksTSh0aGlzLGQscCxyLGUsaSksaCYmMTxvJiZmPG8tMSlmb3Iobj12KCkscz10aGlzLkEscj1wLGE9TWF0aC5taW4oaCsxLG8tZiksbltyXT0xLGw9MTtsPGE7bCsrKWlmKChwPXRbdGhpcy5GP28tMS1mLWw6ZitsXSkmJnAubGVuZ3RoPj10aGlzLkImJiFuW3BdKXtuW3BdPTE7Y29uc3QgdD10aGlzLmwmJnA+cjtNKHRoaXMsYyx0P3I6cCxMKHMrKG8vMj5zPzA6MSksbyxmLGEtMSxsLTEpLGUsaSx0P3A6cil9fX19dGhpcy5tfHwodGhpcy5yZWdpc3RlcltlXT0xKX19cmV0dXJuIHRoaXN9LHQuc2VhcmNoPWZ1bmN0aW9uKGUsdCxpKXtpfHwoIXQmJkMoZSk/ZT0oaT1lKS5xdWVyeTpDKHQpJiYoaT10KSk7bGV0IG8sbixyLHM9W10sYT0wO2lmKGkpe2U9aS5xdWVyeXx8ZSx0PWkubGltaXQsYT1pLm9mZnNldHx8MDt2YXIgbD1pLmNvbnRleHQ7bj1pLnN1Z2dlc3R9aWYoZSYmKG89KGU9dGhpcy5lbmNvZGUoIiIrZSkpLmxlbmd0aCwxPG8pKXtpPXYoKTt2YXIgYz1bXTtmb3IobGV0IHQscj0wLGE9MDtyPG87cisrKWlmKCh0PWVbcl0pJiZ0Lmxlbmd0aD49dGhpcy5CJiYhaVt0XSl7aWYoISh0aGlzLnN8fG58fHRoaXMubWFwW3RdKSlyZXR1cm4gcztjW2ErK109dCxpW3RdPTF9bz0oZT1jKS5sZW5ndGh9aWYoIW8pcmV0dXJuIHM7dHx8KHQ9MTAwKSxpPTAsKGw9dGhpcy5kZXB0aCYmMTxvJiYhMSE9PWwpPyhyPWVbMF0saT0xKToxPG8mJmUuc29ydChiYSk7Zm9yKGxldCBkLGg7aTxvO2krKyl7aWYoaD1lW2ldLGw/KGQ9c2EodGhpcyxzLG4sdCxhLDI9PT1vLGgsciksbiYmITE9PT1kJiZzLmxlbmd0aHx8KHI9aCkpOmQ9c2EodGhpcyxzLG4sdCxhLDE9PT1vLGgpLGQpcmV0dXJuIGQ7aWYobiYmaT09PW8tMSl7aWYoIShjPXMubGVuZ3RoKSl7aWYobCl7bD0wLGk9LTE7Y29udGludWV9cmV0dXJuIHN9aWYoMT09PWMpcmV0dXJuIHRhKHNbMF0sdCxhKX19cmV0dXJuIG1hKHMsdCxhLG4pfSx0LmNvbnRhaW49ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLnJlZ2lzdGVyW2VdfSx0LnVwZGF0ZT1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnJlbW92ZShlKS5hZGQoZSx0KX0sdC5yZW1vdmU9ZnVuY3Rpb24oZSx0KXtjb25zdCBpPXRoaXMucmVnaXN0ZXJbZV07aWYoaSl7aWYodGhpcy5tKWZvcihsZXQgdCxvPTA7bzxpLmxlbmd0aDtvKyspdD1pW29dLHQuc3BsaWNlKHQuaW5kZXhPZihlKSwxKTtlbHNlIE4odGhpcy5tYXAsZSx0aGlzLkQsdGhpcy5zKSx0aGlzLmRlcHRoJiZOKHRoaXMuaCxlLHRoaXMuQSx0aGlzLnMpO2lmKHR8fGRlbGV0ZSB0aGlzLnJlZ2lzdGVyW2VdLHRoaXMuY2FjaGUpe3Q9dGhpcy5jYWNoZTtmb3IobGV0IGksbyxuPTA7bjx0LmgubGVuZ3RoO24rKylvPXQuaFtuXSxpPXQuY2FjaGVbb10saS5pbmNsdWRlcyhlKSYmKHQuaC5zcGxpY2Uobi0tLDEpLGRlbGV0ZSB0LmNhY2hlW29dKX19cmV0dXJuIHRoaXN9LHQuc2VhcmNoQ2FjaGU9b2EsdC5leHBvcnQ9ZnVuY3Rpb24oZSx0LGksbyxuKXtsZXQgcixzO3N3aXRjaChufHwobj0wKSl7Y2FzZSAwOmlmKHI9InJlZyIsdGhpcy5tKXtzPXYoKTtmb3IobGV0IGUgaW4gdGhpcy5yZWdpc3RlcilzW2VdPTF9ZWxzZSBzPXRoaXMucmVnaXN0ZXI7YnJlYWs7Y2FzZSAxOnI9ImNmZyIscz17ZG9jOjAsb3B0OnRoaXMucz8xOjB9O2JyZWFrO2Nhc2UgMjpyPSJtYXAiLHM9dGhpcy5tYXA7YnJlYWs7Y2FzZSAzOnI9ImN0eCIscz10aGlzLmg7YnJlYWs7ZGVmYXVsdDpyZXR1cm59cmV0dXJuIHJhKGUsdHx8dGhpcyxpLHIsbyxuLHMpLCEwfSx0LmltcG9ydD1mdW5jdGlvbihlLHQpe2lmKHQpc3dpdGNoKHgodCkmJih0PUpTT04ucGFyc2UodCkpLGUpe2Nhc2UiY2ZnIjp0aGlzLnM9ISF0Lm9wdDticmVhaztjYXNlInJlZyI6dGhpcy5tPSExLHRoaXMucmVnaXN0ZXI9dDticmVhaztjYXNlIm1hcCI6dGhpcy5tYXA9dDticmVhaztjYXNlImN0eCI6dGhpcy5oPXR9fSxsYShLLnByb3RvdHlwZSk7bGV0IHdhPTA7ZnVuY3Rpb24gTyhlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBPKSlyZXR1cm4gbmV3IE8oZSk7dmFyIHQ7ZT9EKHQ9ZS5lbmNvZGUpJiYoZS5lbmNvZGU9dC50b1N0cmluZygpKTplPXt9LCh0PShzZWxmfHx3aW5kb3cpLl9mYWN0b3J5KSYmKHQ9dC50b1N0cmluZygpKTtjb25zdCBpPSJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93JiZzZWxmLmV4cG9ydHMsbz10aGlzO3RoaXMubz14YSh0LGksZS53b3JrZXIpLHRoaXMuaD12KCksdGhpcy5vJiYoaT90aGlzLm8ub24oIm1lc3NhZ2UiLChmdW5jdGlvbihlKXtvLmhbZS5pZF0oZS5tc2cpLGRlbGV0ZSBvLmhbZS5pZF19KSk6dGhpcy5vLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtlPWUuZGF0YSxvLmhbZS5pZF0oZS5tc2cpLGRlbGV0ZSBvLmhbZS5pZF19LHRoaXMuby5wb3N0TWVzc2FnZSh7dGFzazoiaW5pdCIsZmFjdG9yeTp0LG9wdGlvbnM6ZX0pKX1mdW5jdGlvbiBQKGUpe08ucHJvdG90eXBlW2VdPU8ucHJvdG90eXBlW2UrIkFzeW5jIl09ZnVuY3Rpb24oKXtjb25zdCB0PXRoaXMsaT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7dmFyIG89aVtpLmxlbmd0aC0xXTtsZXQgbjtyZXR1cm4gRChvKSYmKG49byxpLnNwbGljZShpLmxlbmd0aC0xLDEpKSxvPW5ldyBQcm9taXNlKChmdW5jdGlvbihvKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuaFsrK3dhXT1vLHQuby5wb3N0TWVzc2FnZSh7dGFzazplLGlkOndhLGFyZ3M6aX0pfSkpfSkpLG4/KG8udGhlbihuKSx0aGlzKTpvfX1mdW5jdGlvbiB4YShhLGIsYyl7bGV0IGQ7dHJ5e2Q9Yj9ldmFsKCduZXcgKHJlcXVpcmUoIndvcmtlcl90aHJlYWRzIilbIldvcmtlciJdKSgiLi4vZGlzdC9ub2RlL25vZGUuanMiKScpOmE/bmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFsib25tZXNzYWdlPSIrdmEudG9TdHJpbmcoKV0se3R5cGU6InRleHQvamF2YXNjcmlwdCJ9KSkpOm5ldyBXb3JrZXIoeChjKT9jOiJ3b3JrZXIvd29ya2VyLmpzIix7dHlwZToibW9kdWxlIn0pfWNhdGNoKGUpe31yZXR1cm4gZH1mdW5jdGlvbiBRKGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFEpKXJldHVybiBuZXcgUShlKTt2YXIgdCxpPWUuZG9jdW1lbnR8fGUuZG9jfHxlO3RoaXMuSz1bXSx0aGlzLmg9W10sdGhpcy5BPVtdLHRoaXMucmVnaXN0ZXI9digpLHRoaXMua2V5PSh0PWkua2V5fHxpLmlkKSYmUyh0LHRoaXMuQSl8fCJpZCIsdGhpcy5tPXUoZS5mYXN0dXBkYXRlKSx0aGlzLkM9KHQ9aS5zdG9yZSkmJiEwIT09dCYmW10sdGhpcy5zdG9yZT10JiZ2KCksdGhpcy5JPSh0PWkudGFnKSYmUyh0LHRoaXMuQSksdGhpcy5sPXQmJnYoKSx0aGlzLmNhY2hlPSh0PWUuY2FjaGUpJiZuZXcgSih0KSxlLmNhY2hlPSExLHRoaXMubz1lLndvcmtlcix0aGlzLmFzeW5jPSExLHQ9digpO2xldCBvPWkuaW5kZXh8fGkuZmllbGR8fGk7eChvKSYmKG89W29dKTtmb3IobGV0IGksbixyPTA7cjxvLmxlbmd0aDtyKyspaT1vW3JdLHgoaSl8fChuPWksaT1pLmZpZWxkKSxuPUMobik/T2JqZWN0LmFzc2lnbih7fSxlLG4pOmUsdGhpcy5vJiYodFtpXT1uZXcgTyhuKSx0W2ldLm98fCh0aGlzLm89ITEpKSx0aGlzLm98fCh0W2ldPW5ldyBLKG4sdGhpcy5yZWdpc3RlcikpLHRoaXMuS1tyXT1TKGksdGhpcy5BKSx0aGlzLmhbcl09aTtpZih0aGlzLkMpZm9yKHgoZT1pLnN0b3JlKSYmKGU9W2VdKSxpPTA7aTxlLmxlbmd0aDtpKyspdGhpcy5DW2ldPVMoZVtpXSx0aGlzLkEpO3RoaXMuaW5kZXg9dH1mdW5jdGlvbiBTKGUsdCl7Y29uc3QgaT1lLnNwbGl0KCI6Iik7bGV0IG89MDtmb3IobGV0IG49MDtuPGkubGVuZ3RoO24rKykwPD0oZT1pW25dKS5pbmRleE9mKCJbXSIpJiYoZT1lLnN1YnN0cmluZygwLGUubGVuZ3RoLTIpKSYmKHRbb109ITApLGUmJihpW28rK109ZSk7cmV0dXJuIG88aS5sZW5ndGgmJihpLmxlbmd0aD1vKSwxPG8/aTppWzBdfWZ1bmN0aW9uIFQoZSx0KXtpZih4KHQpKWU9ZVt0XTtlbHNlIGZvcihsZXQgaT0wO2UmJmk8dC5sZW5ndGg7aSsrKWU9ZVt0W2ldXTtyZXR1cm4gZX1mdW5jdGlvbiBVKGUsdCxpLG8sbil7aWYoZT1lW25dLG89PT1pLmxlbmd0aC0xKXRbbl09ZTtlbHNlIGlmKGUpaWYoZS5jb25zdHJ1Y3Rvcj09PUFycmF5KWZvcih0PXRbbl09QXJyYXkoZS5sZW5ndGgpLG49MDtuPGUubGVuZ3RoO24rKylVKGUsdCxpLG8sbik7ZWxzZSB0PXRbbl18fCh0W25dPXYoKSksbj1pWysrb10sVShlLHQsaSxvLG4pfWZ1bmN0aW9uIFYoZSx0LGksbyxuLHIscyxhKXtpZihlPWVbc10paWYobz09PXQubGVuZ3RoLTEpe2lmKGUuY29uc3RydWN0b3I9PT1BcnJheSl7aWYoaVtvXSl7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyluLmFkZChyLGVbdF0sITAsITApO3JldHVybn1lPWUuam9pbigiICIpfW4uYWRkKHIsZSxhLCEwKX1lbHNlIGlmKGUuY29uc3RydWN0b3I9PT1BcnJheSlmb3Iocz0wO3M8ZS5sZW5ndGg7cysrKVYoZSx0LGksbyxuLHIscyxhKTtlbHNlIHM9dFsrK29dLFYoZSx0LGksbyxuLHIscyxhKX1mdW5jdGlvbiB5YShlLHQsaSxvKXtsZXQgbj10aGlzLmxbZV0scj1uJiZuLmxlbmd0aC1pO2lmKHImJjA8cilyZXR1cm4ocj50fHxpKSYmKG49bi5zbGljZShpLGkrdCkpLG8mJihuPXphLmNhbGwodGhpcyxuKSkse3RhZzplLHJlc3VsdDpufX1mdW5jdGlvbiB6YShlKXtjb25zdCB0PUFycmF5KGUubGVuZ3RoKTtmb3IobGV0IGksbz0wO288ZS5sZW5ndGg7bysrKWk9ZVtvXSx0W29dPXtpZDppLGRvYzp0aGlzLnN0b3JlW2ldfTtyZXR1cm4gdH1QKCJhZGQiKSxQKCJhcHBlbmQiKSxQKCJzZWFyY2giKSxQKCJ1cGRhdGUiKSxQKCJyZW1vdmUiKSx0PVEucHJvdG90eXBlLHQuYWRkPWZ1bmN0aW9uKGUsdCxpKXtpZihDKGUpJiYoZT1UKHQ9ZSx0aGlzLmtleSkpLHQmJihlfHwwPT09ZSkpe2lmKCFpJiZ0aGlzLnJlZ2lzdGVyW2VdKXJldHVybiB0aGlzLnVwZGF0ZShlLHQpO2ZvcihsZXQgbyxuLHI9MDtyPHRoaXMuaC5sZW5ndGg7cisrKW49dGhpcy5oW3JdLG89dGhpcy5LW3JdLHgobykmJihvPVtvXSksVih0LG8sdGhpcy5BLDAsdGhpcy5pbmRleFtuXSxlLG9bMF0saSk7aWYodGhpcy5JKXtsZXQgbz1UKHQsdGhpcy5JKSxuPXYoKTt4KG8pJiYobz1bb10pO2ZvcihsZXQgdCxyLHM9MDtzPG8ubGVuZ3RoO3MrKylpZih0PW9bc10sIW5bdF0mJihuW3RdPTEscj10aGlzLmxbdF18fCh0aGlzLmxbdF09W10pLCFpfHwhci5pbmNsdWRlcyhlKSkmJihyW3IubGVuZ3RoXT1lLHRoaXMubSkpe2NvbnN0IHQ9dGhpcy5yZWdpc3RlcltlXXx8KHRoaXMucmVnaXN0ZXJbZV09W10pO3RbdC5sZW5ndGhdPXJ9fWlmKHRoaXMuc3RvcmUmJighaXx8IXRoaXMuc3RvcmVbZV0pKXtsZXQgaTtpZih0aGlzLkMpe2k9digpO2ZvcihsZXQgZSxvPTA7bzx0aGlzLkMubGVuZ3RoO28rKyllPXRoaXMuQ1tvXSx4KGUpP2lbZV09dFtlXTpVKHQsaSxlLDAsZVswXSl9dGhpcy5zdG9yZVtlXT1pfHx0fX1yZXR1cm4gdGhpc30sdC5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5hZGQoZSx0LCEwKX0sdC51cGRhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5yZW1vdmUoZSkuYWRkKGUsdCl9LHQucmVtb3ZlPWZ1bmN0aW9uKGUpe2lmKEMoZSkmJihlPVQoZSx0aGlzLmtleSkpLHRoaXMucmVnaXN0ZXJbZV0pe2Zvcih2YXIgdD0wO3Q8dGhpcy5oLmxlbmd0aCYmKHRoaXMuaW5kZXhbdGhpcy5oW3RdXS5yZW1vdmUoZSwhdGhpcy5vKSwhdGhpcy5tKTt0KyspO2lmKHRoaXMuSSYmIXRoaXMubSlmb3IobGV0IGkgaW4gdGhpcy5sKXtjb25zdCBvPSh0PXRoaXMubFtpXSkuaW5kZXhPZihlKTstMSE9PW8mJigxPHQubGVuZ3RoP3Quc3BsaWNlKG8sMSk6ZGVsZXRlIHRoaXMubFtpXSl9dGhpcy5zdG9yZSYmZGVsZXRlIHRoaXMuc3RvcmVbZV0sZGVsZXRlIHRoaXMucmVnaXN0ZXJbZV19cmV0dXJuIHRoaXN9LHQuc2VhcmNoPWZ1bmN0aW9uKGUsdCxpLG8pe2l8fCghdCYmQyhlKT8oaT1lLGU9IiIpOkModCkmJihpPXQsdD0wKSk7bGV0IG4scixzLGEsbCxjLGQ9W10saD1bXSx1PTA7aWYoaSlpZihpLmNvbnN0cnVjdG9yPT09QXJyYXkpcz1pLGk9bnVsbDtlbHNle2lmKGU9aS5xdWVyeXx8ZSxzPShuPWkucGx1Y2spfHxpLmluZGV4fHxpLmZpZWxkLGE9aS50YWcscj10aGlzLnN0b3JlJiZpLmVucmljaCxsPSJhbmQiPT09aS5ib29sLHQ9aS5saW1pdHx8dHx8MTAwLGM9aS5vZmZzZXR8fDAsYSYmKHgoYSkmJihhPVthXSksIWUpKXtmb3IobGV0IGUsaT0wO2k8YS5sZW5ndGg7aSsrKShlPXlhLmNhbGwodGhpcyxhW2ldLHQsYyxyKSkmJihkW2QubGVuZ3RoXT1lLHUrKyk7cmV0dXJuIHU/ZDpbXX14KHMpJiYocz1bc10pfXN8fChzPXRoaXMuaCksbD1sJiYoMTxzLmxlbmd0aHx8YSYmMTxhLmxlbmd0aCk7Y29uc3QgZj0hbyYmKHRoaXMub3x8dGhpcy5hc3luYykmJltdO2ZvcihsZXQgbixyLHAsbT0wO208cy5sZW5ndGg7bSsrKXtsZXQgYjtpZihyPXNbbV0seChyKXx8KGI9cixyPWIuZmllbGQsZT1iLnF1ZXJ5fHxlLHQ9Yi5saW1pdHx8dCksZilmW21dPXRoaXMuaW5kZXhbcl0uc2VhcmNoQXN5bmMoZSx0LGJ8fGkpO2Vsc2V7aWYobj1vP29bbV06dGhpcy5pbmRleFtyXS5zZWFyY2goZSx0LGJ8fGkpLHA9biYmbi5sZW5ndGgsYSYmcCl7Y29uc3QgZT1bXTtsZXQgaT0wO2wmJihlWzBdPVtuXSk7Zm9yKGxldCB0LG8sbj0wO248YS5sZW5ndGg7bisrKXQ9YVtuXSwocD0obz10aGlzLmxbdF0pJiZvLmxlbmd0aCkmJihpKyssZVtlLmxlbmd0aF09bD9bb106byk7aSYmKG49bD9tYShlLHR8fDEwMCxjfHwwKTpuYShuLGUpLHA9bi5sZW5ndGgpfWlmKHApaFt1XT1yLGRbdSsrXT1uO2Vsc2UgaWYobClyZXR1cm5bXX19aWYoZil7Y29uc3Qgbz10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obil7UHJvbWlzZS5hbGwoZikudGhlbigoZnVuY3Rpb24ocil7bihvLnNlYXJjaChlLHQsaSxyKSl9KSl9KSl9aWYoIXUpcmV0dXJuW107aWYobiYmKCFyfHwhdGhpcy5zdG9yZSkpcmV0dXJuIGRbMF07Zm9yKGxldCBlLHQ9MDt0PGgubGVuZ3RoO3QrKyl7aWYoZT1kW3RdLGUubGVuZ3RoJiZyJiYoZT16YS5jYWxsKHRoaXMsZSkpLG4pcmV0dXJuIGU7ZFt0XT17ZmllbGQ6aFt0XSxyZXN1bHQ6ZX19cmV0dXJuIGR9LHQuY29udGFpbj1mdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMucmVnaXN0ZXJbZV19LHQuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnN0b3JlW2VdfSx0LnNldD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnN0b3JlW2VdPXQsdGhpc30sdC5zZWFyY2hDYWNoZT1vYSx0LmV4cG9ydD1mdW5jdGlvbihlLHQsaSxvLG4pe2lmKG58fChuPTApLG98fChvPTApLG88dGhpcy5oLmxlbmd0aCl7Y29uc3QgaT10aGlzLmhbb10scj10aGlzLmluZGV4W2ldO3Q9dGhpcyxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3IuZXhwb3J0KGUsdCxuP2k6IiIsbyxuKyspfHwobysrLG49MSx0LmV4cG9ydChlLHQsaSxvLG4pKX0pKX1lbHNle2xldCB0LHI7c3dpdGNoKG4pe2Nhc2UgMTp0PSJ0YWciLHI9dGhpcy5sO2JyZWFrO2Nhc2UgMjp0PSJzdG9yZSIscj10aGlzLnN0b3JlO2JyZWFrO2RlZmF1bHQ6cmV0dXJufXJhKGUsdGhpcyxpLHQsbyxuLHIpfX0sdC5pbXBvcnQ9ZnVuY3Rpb24oZSx0KXtpZih0KXN3aXRjaCh4KHQpJiYodD1KU09OLnBhcnNlKHQpKSxlKXtjYXNlInRhZyI6dGhpcy5sPXQ7YnJlYWs7Y2FzZSJyZWciOnRoaXMubT0hMSx0aGlzLnJlZ2lzdGVyPXQ7Zm9yKGxldCBlLGk9MDtpPHRoaXMuaC5sZW5ndGg7aSsrKWU9dGhpcy5pbmRleFt0aGlzLmhbaV1dLGUucmVnaXN0ZXI9dCxlLm09ITE7YnJlYWs7Y2FzZSJzdG9yZSI6dGhpcy5zdG9yZT10O2JyZWFrO2RlZmF1bHQ6Y29uc3QgaT0oZT1lLnNwbGl0KCIuIikpWzBdO2U9ZVsxXSxpJiZlJiZ0aGlzLmluZGV4W2ldLmltcG9ydChlLHQpfX0sbGEoUS5wcm90b3R5cGUpO3ZhciBCYT17ZW5jb2RlOkFhLEY6ITEsRzoiIn07Y29uc3QgQ2E9W0YoIlvDoMOhw6LDo8Okw6VdIiksImEiLEYoIlvDqMOpw6rDq10iKSwiZSIsRigiW8Osw63DrsOvXSIpLCJpIixGKCJbw7LDs8O0w7XDtsWRXSIpLCJvIixGKCJbw7nDusO7w7zFsV0iKSwidSIsRigiW8O9xbfDv10iKSwieSIsRigiw7EiKSwibiIsRigiW8OnY10iKSwiayIsRigiw58iKSwicyIsRigiICYgIiksIiBhbmQgIl07ZnVuY3Rpb24gQWEoZSl7dmFyIHQ9ZT0iIitlO3JldHVybiB0Lm5vcm1hbGl6ZSYmKHQ9dC5ub3JtYWxpemUoIk5GRCIpLnJlcGxhY2UoZWEsIiIpKSxjYS5jYWxsKHRoaXMsdC50b0xvd2VyQ2FzZSgpLCFlLm5vcm1hbGl6ZSYmQ2EpfXZhciBFYT17ZW5jb2RlOkRhLEY6ITEsRzoic3RyaWN0In07Y29uc3QgRmE9L1teYS16MC05XSsvLEdhPXtiOiJwIix2OiJmIix3OiJmIix6OiJzIix4OiJzIizDnzoicyIsZDoidCIsbjoibSIsYzoiayIsZzoiayIsajoiayIscToiayIsaToiZSIseToiZSIsdToibyJ9O2Z1bmN0aW9uIERhKGUpe2NvbnN0IHQ9W107aWYoZT1BYS5jYWxsKHRoaXMsZSkuam9pbigiICIpKXtjb25zdCBpPWUuc3BsaXQoRmEpLG89aS5sZW5ndGg7Zm9yKGxldCBuLHI9MCxzPTA7cjxvO3IrKylpZigoZT1pW3JdKSYmKCF0aGlzLmZpbHRlcnx8IXRoaXMuZmlsdGVyW2VdKSl7bj1lWzBdO2xldCBpPUdhW25dfHxuLG89aTtmb3IobGV0IHQ9MTt0PGUubGVuZ3RoO3QrKyl7bj1lW3RdO2NvbnN0IHI9R2Fbbl18fG47ciYmciE9PW8mJihpKz1yLG89cil9dFtzKytdPWl9fXJldHVybiB0fXZhciBJYT17ZW5jb2RlOkhhLEY6ITEsRzoiIn07Y29uc3QgSmE9W0YoImFlIiksImEiLEYoIm9lIiksIm8iLEYoInNoIiksInMiLEYoInRoIiksInQiLEYoInBoIiksImYiLEYoInBmIiksImYiLEYoIig/IVthZW9dKWgoPyFbYWVvXSkiKSwiIixGKCIoPyFeW2Flb10paCg/IV5bYWVvXSkiKSwiIl07ZnVuY3Rpb24gSGEoZSx0KXtyZXR1cm4gZSYmKDI8KGU9RGEuY2FsbCh0aGlzLGUpLmpvaW4oIiAiKSkubGVuZ3RoJiYoZT1FKGUsSmEpKSx0fHwoMTxlLmxlbmd0aCYmKGU9aGEoZSkpLGUmJihlPWUuc3BsaXQoIiAiKSkpKSxlfHxbXX12YXIgTGE9e2VuY29kZTpLYSxGOiExLEc6IiJ9O2NvbnN0IE1hPUYoIig/IVxcYilbYWVvXSIpO2Z1bmN0aW9uIEthKGUpe3JldHVybiBlJiYoMTwoZT1IYS5jYWxsKHRoaXMsZSwhMCkpLmxlbmd0aCYmKGU9ZS5yZXBsYWNlKE1hLCIiKSksMTxlLmxlbmd0aCYmKGU9aGEoZSkpLGUmJihlPWUuc3BsaXQoIiAiKSkpLGV8fFtdfUdbImxhdGluOmRlZmF1bHQiXT1qYSxHWyJsYXRpbjpzaW1wbGUiXT1CYSxHWyJsYXRpbjpiYWxhbmNlIl09RWEsR1sibGF0aW46YWR2YW5jZWQiXT1JYSxHWyJsYXRpbjpleHRyYSJdPUxhO2NvbnN0IFc9c2VsZjtsZXQgWTtjb25zdCBaPXtJbmRleDpLLERvY3VtZW50OlEsV29ya2VyOk8scmVnaXN0ZXJDaGFyc2V0OmZ1bmN0aW9uKGUsdCl7R1tlXT10fSxyZWdpc3Rlckxhbmd1YWdlOmZ1bmN0aW9uKGUsdCl7a2FbZV09dH19OyhZPVcuZGVmaW5lKSYmWS5hbWQ/WShbXSwoZnVuY3Rpb24oKXtyZXR1cm4gWn0pKTpXLmV4cG9ydHM/Vy5leHBvcnRzPVo6Vy5GbGV4U2VhcmNoPVp9KHRoaXMpfSw0MzE6ZT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB0PVsiQiIsImtCIiwiTUIiLCJHQiIsIlRCIiwiUEIiLCJFQiIsIlpCIiwiWUIiXSxpPVsiQiIsImtpQiIsIk1pQiIsIkdpQiIsIlRpQiIsIlBpQiIsIkVpQiIsIlppQiIsIllpQiJdLG89WyJiIiwia2JpdCIsIk1iaXQiLCJHYml0IiwiVGJpdCIsIlBiaXQiLCJFYml0IiwiWmJpdCIsIlliaXQiXSxuPVsiYiIsImtpYml0IiwiTWliaXQiLCJHaWJpdCIsIlRpYml0IiwiUGliaXQiLCJFaWJpdCIsIlppYml0IiwiWWliaXQiXSxyPShlLHQsaSk9PntsZXQgbz1lO3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8QXJyYXkuaXNBcnJheSh0KT9vPWUudG9Mb2NhbGVTdHJpbmcodCxpKTohMCE9PXQmJnZvaWQgMD09PWl8fChvPWUudG9Mb2NhbGVTdHJpbmcodm9pZCAwLGkpKSxvfTtlLmV4cG9ydHM9KGUscyk9PntpZighTnVtYmVyLmlzRmluaXRlKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgZmluaXRlIG51bWJlciwgZ290ICR7dHlwZW9mIGV9OiAke2V9YCk7Y29uc3QgYT0ocz1PYmplY3QuYXNzaWduKHtiaXRzOiExLGJpbmFyeTohMX0scykpLmJpdHM/cy5iaW5hcnk/bjpvOnMuYmluYXJ5P2k6dDtpZihzLnNpZ25lZCYmMD09PWUpcmV0dXJuYCAwICR7YVswXX1gO2NvbnN0IGw9ZTwwLGM9bD8iLSI6cy5zaWduZWQ/IisiOiIiO2xldCBkO2lmKGwmJihlPS1lKSx2b2lkIDAhPT1zLm1pbmltdW1GcmFjdGlvbkRpZ2l0cyYmKGQ9e21pbmltdW1GcmFjdGlvbkRpZ2l0czpzLm1pbmltdW1GcmFjdGlvbkRpZ2l0c30pLHZvaWQgMCE9PXMubWF4aW11bUZyYWN0aW9uRGlnaXRzJiYoZD1PYmplY3QuYXNzaWduKHttYXhpbXVtRnJhY3Rpb25EaWdpdHM6cy5tYXhpbXVtRnJhY3Rpb25EaWdpdHN9LGQpKSxlPDEpe3JldHVybiBjK3IoZSxzLmxvY2FsZSxkKSsiICIrYVswXX1jb25zdCBoPU1hdGgubWluKE1hdGguZmxvb3Iocy5iaW5hcnk/TWF0aC5sb2coZSkvTWF0aC5sb2coMTAyNCk6TWF0aC5sb2cxMChlKS8zKSxhLmxlbmd0aC0xKTtlLz1NYXRoLnBvdyhzLmJpbmFyeT8xMDI0OjFlMyxoKSxkfHwoZT1lLnRvUHJlY2lzaW9uKDMpKTtyZXR1cm4gYytyKE51bWJlcihlKSxzLmxvY2FsZSxkKSsiICIrYVtoXX19fSxfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX189e307ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhlKXt2YXIgdD1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bZV07aWYodm9pZCAwIT09dClyZXR1cm4gdC5leHBvcnRzO3ZhciBpPV9fd2VicGFja19tb2R1bGVfY2FjaGVfX1tlXT17aWQ6ZSxsb2FkZWQ6ITEsZXhwb3J0czp7fX07cmV0dXJuIF9fd2VicGFja19tb2R1bGVzX19bZV0uY2FsbChpLmV4cG9ydHMsaSxpLmV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyksaS5sb2FkZWQ9ITAsaS5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18ubj1lPT57dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LHthOnR9KSx0fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQ9KGUsdCk9Pntmb3IodmFyIGkgaW4gdClfX3dlYnBhY2tfcmVxdWlyZV9fLm8odCxpKSYmIV9fd2VicGFja19yZXF1aXJlX18ubyhlLGkpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLHtlbnVtZXJhYmxlOiEwLGdldDp0W2ldfSl9LF9fd2VicGFja19yZXF1aXJlX18ubz0oZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCksX193ZWJwYWNrX3JlcXVpcmVfXy5yPWU9PnsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxfX3dlYnBhY2tfcmVxdWlyZV9fLm5tZD1lPT4oZS5wYXRocz1bXSxlLmNoaWxkcmVufHwoZS5jaGlsZHJlbj1bXSksZSk7dmFyIF9fd2VicGFja19leHBvcnRzX189e307KCgpPT57InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Q2hvb3NlcjooKT0+RWksQ29sbDooKT0+Q2ksQ29sbEluZGV4OigpPT5MaSxDb2xsSW5mbzooKT0+emksRW1iZWQ6KCk9PlJvLEZhSWNvbjooKT0+VmUsR0RyaXZlOigpPT55byxJU19BUFA6KCk9PnFlLEl0ZW06KCk9PkNpLEl0ZW1JbmRleDooKT0+TGksSXRlbUluZm86KCk9PnppLExpdEVsZW1lbnQ6KCk9Pm1lLExvYWRlcjooKT0+U28sUGFnZUVudHJ5OigpPT5BbyxQYWdlczooKT0+Q28sUmVwbGF5OigpPT5UbyxSZXBsYXlXZWJBcHA6KCk9PlRpLFJlcGxheVdlYlBhZ2U6KCk9PlJvLFNXTWFuYWdlcjooKT0+aXQsU29ydGVyOigpPT5QbyxTdG9yeTooKT0+d28sVVJMUmVzb3VyY2VzOigpPT5EbyxWRVJTSU9OOigpPT5qZSxXck1vZGFsOigpPT5HZSxhcGlQcmVmaXg6KCk9Pk9lLGNsaWNrT25TcGFjZWJhclByZXNzOigpPT5IZSxjc3M6KCk9PmgsZGF0ZUZvcm1hdHRlcjooKT0+VHQsZGF0ZVRpbWVGb3JtYXR0ZXI6KCk9PkF0LGRpZ2VzdE1lc3NhZ2U6KCk9Pmd0LGdldERhdGVGcm9tVFM6KCk9Pnd0LGdldFBhZ2VEYXRlVFM6KCk9Pnl0LGdldFJlcGxheUxpbms6KCk9Pmt0LGdldFRTOigpPT54dCxodG1sOigpPT5RLHBhcnNlVVJMU2NoZW1lSG9zdFBhdGg6KCk9PiR0LHJlcGxheVByZWZpeDooKT0+VWUscndwSWNvbjooKT0+YnQscndwTG9nb0FuaW1hdGVkOigpPT54byxzZXJ2aWNlV29ya2VyQWN0aXZhdGVkOigpPT5vdCxzb3VyY2VUb0lkOigpPT5TdCx0aW1lRm9ybWF0dGVyOigpPT5QdCx0c1RvRGF0ZTooKT0+dnQsdW5zYWZlQ1NTOigpPT5kLHVuc2FmZVNWRzooKT0+VGUsdXBkYXRlRmF2aWNvbkxpbmtzOigpPT5XZSx3cmFwQ3NzOigpPT5OZX0pO3ZhciBlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZSx7YXR0ZW50aW9uTWFya2VyczooKT0+RXIsY29udGVudEluaXRpYWw6KCk9PiRyLGRpc2FibGU6KCk9PkFyLGRvY3VtZW50OigpPT5TcixmbG93OigpPT5fcixmbG93SW5pdGlhbDooKT0+enIsaW5zaWRlU3BhbjooKT0+THIsc3RyaW5nOigpPT5Dcix0ZXh0OigpPT5Jcn0pO2Z1bmN0aW9uIHQoZSx0LGksbyl7dmFyIG4scj1hcmd1bWVudHMubGVuZ3RoLHM9cjwzP3Q6bnVsbD09PW8/bz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsaSk6bztpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKXM9UmVmbGVjdC5kZWNvcmF0ZShlLHQsaSxvKTtlbHNlIGZvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKShuPWVbYV0pJiYocz0ocjwzP24ocyk6cj4zP24odCxpLHMpOm4odCxpKSl8fHMpO3JldHVybiByPjMmJnMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkscyksc31mdW5jdGlvbiBpKGUsdCxpLG8pe3JldHVybiBuZXcoaXx8KGk9UHJvbWlzZSkpKChmdW5jdGlvbihuLHIpe2Z1bmN0aW9uIHMoZSl7dHJ5e2woby5uZXh0KGUpKX1jYXRjaChlKXtyKGUpfX1mdW5jdGlvbiBhKGUpe3RyeXtsKG8udGhyb3coZSkpfWNhdGNoKGUpe3IoZSl9fWZ1bmN0aW9uIGwoZSl7dmFyIHQ7ZS5kb25lP24oZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2YgaT90Om5ldyBpKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKHMsYSl9bCgobz1vLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfU9iamVjdC5jcmVhdGU7ZnVuY3Rpb24gbyhlKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsaT10JiZlW3RdLG89MDtpZihpKXJldHVybiBpLmNhbGwoZSk7aWYoZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aClyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiBlJiZvPj1lLmxlbmd0aCYmKGU9dm9pZCAwKSx7dmFsdWU6ZSYmZVtvKytdLGRvbmU6IWV9fX07dGhyb3cgbmV3IFR5cGVFcnJvcih0PyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX1mdW5jdGlvbiBuKGUpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgdCxpPWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdO3JldHVybiBpP2kuY2FsbChlKTooZT1vKGUpLHQ9e30sbigibmV4dCIpLG4oInRocm93IiksbigicmV0dXJuIiksdFtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdCk7ZnVuY3Rpb24gbihpKXt0W2ldPWVbaV0mJmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obyxuKXsoZnVuY3Rpb24oZSx0LGksbyl7UHJvbWlzZS5yZXNvbHZlKG8pLnRoZW4oKGZ1bmN0aW9uKHQpe2Uoe3ZhbHVlOnQsZG9uZTppfSl9KSx0KX0pKG8sbiwodD1lW2ldKHQpKS5kb25lLHQudmFsdWUpfSkpfX19T2JqZWN0LmNyZWF0ZTsKLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi8KY29uc3Qgcj1nbG9iYWxUaGlzLHM9ci5TaGFkb3dSb290JiYodm9pZCAwPT09ci5TaGFkeUNTU3x8ci5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpJiYiYWRvcHRlZFN0eWxlU2hlZXRzImluIERvY3VtZW50LnByb3RvdHlwZSYmInJlcGxhY2UiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUsYT1TeW1ib2woKSxsPW5ldyBXZWFrTWFwO2NsYXNzIGN7Y29uc3RydWN0b3IoZSx0LGkpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGkhPT1hKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1lLHRoaXMudD10fWdldCBzdHlsZVNoZWV0KCl7bGV0IGU9dGhpcy5vO2NvbnN0IHQ9dGhpcy50O2lmKHMmJnZvaWQgMD09PWUpe2NvbnN0IGk9dm9pZCAwIT09dCYmMT09PXQubGVuZ3RoO2kmJihlPWwuZ2V0KHQpKSx2b2lkIDA9PT1lJiYoKHRoaXMubz1lPW5ldyBDU1NTdHlsZVNoZWV0KS5yZXBsYWNlU3luYyh0aGlzLmNzc1RleHQpLGkmJmwuc2V0KHQsZSkpfXJldHVybiBlfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19Y29uc3QgZD1lPT5uZXcgYygic3RyaW5nIj09dHlwZW9mIGU/ZTplKyIiLHZvaWQgMCxhKSxoPShlLC4uLnQpPT57Y29uc3QgaT0xPT09ZS5sZW5ndGg/ZVswXTp0LnJlZHVjZSgoKHQsaSxvKT0+dCsoZT0+e2lmKCEwPT09ZS5fJGNzc1Jlc3VsdCQpcmV0dXJuIGUuY3NzVGV4dDtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIGU7dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK2UrIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoaSkrZVtvKzFdKSxlWzBdKTtyZXR1cm4gbmV3IGMoaSxlLGEpfSx1PShlLHQpPT57aWYocyllLmFkb3B0ZWRTdHlsZVNoZWV0cz10Lm1hcCgoZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/ZTplLnN0eWxlU2hlZXQpKTtlbHNlIGZvcihjb25zdCBpIG9mIHQpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxvPXIubGl0Tm9uY2U7dm9pZCAwIT09byYmdC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixvKSx0LnRleHRDb250ZW50PWkuY3NzVGV4dCxlLmFwcGVuZENoaWxkKHQpfX0sZj1zP2U9PmU6ZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgdD0iIjtmb3IoY29uc3QgaSBvZiBlLmNzc1J1bGVzKXQrPWkuY3NzVGV4dDtyZXR1cm4gZCh0KX0pKGUpOmUse2lzOnAsZGVmaW5lUHJvcGVydHk6bSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6YixnZXRPd25Qcm9wZXJ0eU5hbWVzOmcsZ2V0T3duUHJvcGVydHlTeW1ib2xzOnYsZ2V0UHJvdG90eXBlT2Y6d309T2JqZWN0LHk9Z2xvYmFsVGhpcyx4PXkudHJ1c3RlZFR5cGVzLGs9eD94LmVtcHR5U2NyaXB0OiIiLFM9eS5yZWFjdGl2ZUVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQsJD0oZSx0KT0+ZSx6PXt0b0F0dHJpYnV0ZShlLHQpe3N3aXRjaCh0KXtjYXNlIEJvb2xlYW46ZT1lP2s6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmU9bnVsbD09ZT9lOkpTT04uc3RyaW5naWZ5KGUpfXJldHVybiBlfSxmcm9tQXR0cmlidXRlKGUsdCl7bGV0IGk9ZTtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOmk9bnVsbCE9PWU7YnJlYWs7Y2FzZSBOdW1iZXI6aT1udWxsPT09ZT9udWxsOk51bWJlcihlKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtpPUpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7aT1udWxsfX1yZXR1cm4gaX19LF89KGUsdCk9PiFwKGUsdCksQz17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjp6LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpffTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIikseS5saXRQcm9wZXJ0eU1ldGFkYXRhPz89bmV3IFdlYWtNYXA7Y2xhc3MgSSBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBhZGRJbml0aWFsaXplcihlKXt0aGlzLl8kRWkoKSwodGhpcy5sPz89W10pLnB1c2goZSl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5maW5hbGl6ZSgpLHRoaXMuXyRFaCYmWy4uLnRoaXMuXyRFaC5rZXlzKCldfXN0YXRpYyBjcmVhdGVQcm9wZXJ0eShlLHQ9Qyl7aWYodC5zdGF0ZSYmKHQuYXR0cmlidXRlPSExKSx0aGlzLl8kRWkoKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChlLHQpLCF0Lm5vQWNjZXNzb3Ipe2NvbnN0IGk9U3ltYm9sKCksbz10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihlLGksdCk7dm9pZCAwIT09byYmbSh0aGlzLnByb3RvdHlwZSxlLG8pfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGUsdCxpKXtjb25zdHtnZXQ6byxzZXQ6bn09Yih0aGlzLnByb3RvdHlwZSxlKT8/e2dldCgpe3JldHVybiB0aGlzW3RdfSxzZXQoZSl7dGhpc1t0XT1lfX07cmV0dXJue2dldCgpe3JldHVybiBvPy5jYWxsKHRoaXMpfSxzZXQodCl7Y29uc3Qgcj1vPy5jYWxsKHRoaXMpO24uY2FsbCh0aGlzLHQpLHRoaXMucmVxdWVzdFVwZGF0ZShlLHIsaSl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGUpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKT8/Q31zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoJCgiZWxlbWVudFByb3BlcnRpZXMiKSkpcmV0dXJuO2NvbnN0IGU9dyh0aGlzKTtlLmZpbmFsaXplKCksdm9pZCAwIT09ZS5sJiYodGhpcy5sPVsuLi5lLmxdKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzPW5ldyBNYXAoZS5lbGVtZW50UHJvcGVydGllcyl9c3RhdGljIGZpbmFsaXplKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eSgkKCJmaW5hbGl6ZWQiKSkpcmV0dXJuO2lmKHRoaXMuZmluYWxpemVkPSEwLHRoaXMuXyRFaSgpLHRoaXMuaGFzT3duUHJvcGVydHkoJCgicHJvcGVydGllcyIpKSl7Y29uc3QgZT10aGlzLnByb3BlcnRpZXMsdD1bLi4uZyhlKSwuLi52KGUpXTtmb3IoY29uc3QgaSBvZiB0KXRoaXMuY3JlYXRlUHJvcGVydHkoaSxlW2ldKX1jb25zdCBlPXRoaXNbU3ltYm9sLm1ldGFkYXRhXTtpZihudWxsIT09ZSl7Y29uc3QgdD1saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChlKTtpZih2b2lkIDAhPT10KWZvcihjb25zdFtlLGldb2YgdCl0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChlLGkpfXRoaXMuXyRFaD1uZXcgTWFwO2Zvcihjb25zdFtlLHRdb2YgdGhpcy5lbGVtZW50UHJvcGVydGllcyl7Y29uc3QgaT10aGlzLl8kRXUoZSx0KTt2b2lkIDAhPT1pJiZ0aGlzLl8kRWguc2V0KGksZSl9dGhpcy5lbGVtZW50U3R5bGVzPXRoaXMuZmluYWxpemVTdHlsZXModGhpcy5zdHlsZXMpfXN0YXRpYyBmaW5hbGl6ZVN0eWxlcyhlKXtjb25zdCB0PVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IGk9bmV3IFNldChlLmZsYXQoMS8wKS5yZXZlcnNlKCkpO2Zvcihjb25zdCBlIG9mIGkpdC51bnNoaWZ0KGYoZSkpfWVsc2Ugdm9pZCAwIT09ZSYmdC5wdXNoKGYoZSkpO3JldHVybiB0fXN0YXRpYyBfJEV1KGUsdCl7Y29uc3QgaT10LmF0dHJpYnV0ZTtyZXR1cm4hMT09PWk/dm9pZCAwOiJzdHJpbmciPT10eXBlb2YgaT9pOiJzdHJpbmciPT10eXBlb2YgZT9lLnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKChlPT50aGlzLmVuYWJsZVVwZGF0aW5nPWUpKSx0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLl8kRV8oKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNvbnN0cnVjdG9yLmw/LmZvckVhY2goKGU9PmUodGhpcykpKX1hZGRDb250cm9sbGVyKGUpeyh0aGlzLl8kRU8/Pz1uZXcgU2V0KS5hZGQoZSksdm9pZCAwIT09dGhpcy5yZW5kZXJSb290JiZ0aGlzLmlzQ29ubmVjdGVkJiZlLmhvc3RDb25uZWN0ZWQ/LigpfXJlbW92ZUNvbnRyb2xsZXIoZSl7dGhpcy5fJEVPPy5kZWxldGUoZSl9XyRFXygpe2NvbnN0IGU9bmV3IE1hcCx0PXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGNvbnN0IGkgb2YgdC5rZXlzKCkpdGhpcy5oYXNPd25Qcm9wZXJ0eShpKSYmKGUuc2V0KGksdGhpc1tpXSksZGVsZXRlIHRoaXNbaV0pO2Uuc2l6ZT4wJiYodGhpcy5fJEVwPWUpfWNyZWF0ZVJlbmRlclJvb3QoKXtjb25zdCBlPXRoaXMuc2hhZG93Um9vdD8/dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuIHUoZSx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLGV9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSx0aGlzLl8kRU8/LmZvckVhY2goKGU9PmUuaG9zdENvbm5lY3RlZD8uKCkpKX1lbmFibGVVcGRhdGluZyhlKXt9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl8kRU8/LmZvckVhY2goKGU9PmUuaG9zdERpc2Nvbm5lY3RlZD8uKCkpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSx0LGkpe3RoaXMuXyRBSyhlLGkpfV8kRUMoZSx0KXtjb25zdCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZ2V0KGUpLG89dGhpcy5jb25zdHJ1Y3Rvci5fJEV1KGUsaSk7aWYodm9pZCAwIT09byYmITA9PT1pLnJlZmxlY3Qpe2NvbnN0IG49KHZvaWQgMCE9PWkuY29udmVydGVyPy50b0F0dHJpYnV0ZT9pLmNvbnZlcnRlcjp6KS50b0F0dHJpYnV0ZSh0LGkudHlwZSk7dGhpcy5fJEVtPWUsbnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZShvKTp0aGlzLnNldEF0dHJpYnV0ZShvLG4pLHRoaXMuXyRFbT1udWxsfX1fJEFLKGUsdCl7Y29uc3QgaT10aGlzLmNvbnN0cnVjdG9yLG89aS5fJEVoLmdldChlKTtpZih2b2lkIDAhPT1vJiZ0aGlzLl8kRW0hPT1vKXtjb25zdCBlPWkuZ2V0UHJvcGVydHlPcHRpb25zKG8pLG49ImZ1bmN0aW9uIj09dHlwZW9mIGUuY29udmVydGVyP3tmcm9tQXR0cmlidXRlOmUuY29udmVydGVyfTp2b2lkIDAhPT1lLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZT9lLmNvbnZlcnRlcjp6O3RoaXMuXyRFbT1vLHRoaXNbb109bi5mcm9tQXR0cmlidXRlKHQsZS50eXBlKSx0aGlzLl8kRW09bnVsbH19cmVxdWVzdFVwZGF0ZShlLHQsaSl7aWYodm9pZCAwIT09ZSl7aWYoaT8/PXRoaXMuY29uc3RydWN0b3IuZ2V0UHJvcGVydHlPcHRpb25zKGUpLCEoaS5oYXNDaGFuZ2VkPz9fKSh0aGlzW2VdLHQpKXJldHVybjt0aGlzLlAoZSx0LGkpfSExPT09dGhpcy5pc1VwZGF0ZVBlbmRpbmcmJih0aGlzLl8kRVM9dGhpcy5fJEVUKCkpfVAoZSx0LGkpe3RoaXMuXyRBTC5oYXMoZSl8fHRoaXMuXyRBTC5zZXQoZSx0KSwhMD09PWkucmVmbGVjdCYmdGhpcy5fJEVtIT09ZSYmKHRoaXMuXyRFaj8/PW5ldyBTZXQpLmFkZChlKX1hc3luYyBfJEVUKCl7dGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e2F3YWl0IHRoaXMuXyRFU31jYXRjaChlKXtQcm9taXNlLnJlamVjdChlKX1jb25zdCBlPXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gbnVsbCE9ZSYmYXdhaXQgZSwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IoY29uc3RbZSx0XW9mIHRoaXMuXyRFcCl0aGlzW2VdPXQ7dGhpcy5fJEVwPXZvaWQgMH1jb25zdCBlPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7aWYoZS5zaXplPjApZm9yKGNvbnN0W3QsaV1vZiBlKSEwIT09aS53cmFwcGVkfHx0aGlzLl8kQUwuaGFzKHQpfHx2b2lkIDA9PT10aGlzW3RdfHx0aGlzLlAodCx0aGlzW3RdLGkpfWxldCBlPSExO2NvbnN0IHQ9dGhpcy5fJEFMO3RyeXtlPXRoaXMuc2hvdWxkVXBkYXRlKHQpLGU/KHRoaXMud2lsbFVwZGF0ZSh0KSx0aGlzLl8kRU8/LmZvckVhY2goKGU9PmUuaG9zdFVwZGF0ZT8uKCkpKSx0aGlzLnVwZGF0ZSh0KSk6dGhpcy5fJEVVKCl9Y2F0Y2godCl7dGhyb3cgZT0hMSx0aGlzLl8kRVUoKSx0fWUmJnRoaXMuXyRBRSh0KX13aWxsVXBkYXRlKGUpe31fJEFFKGUpe3RoaXMuXyRFTz8uZm9yRWFjaCgoZT0+ZS5ob3N0VXBkYXRlZD8uKCkpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZSkpLHRoaXMudXBkYXRlZChlKX1fJEVVKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKGUpe3JldHVybiEwfXVwZGF0ZShlKXt0aGlzLl8kRWomJj10aGlzLl8kRWouZm9yRWFjaCgoZT0+dGhpcy5fJEVDKGUsdGhpc1tlXSkpKSx0aGlzLl8kRVUoKX11cGRhdGVkKGUpe31maXJzdFVwZGF0ZWQoZSl7fX1JLmVsZW1lbnRTdHlsZXM9W10sSS5zaGFkb3dSb290T3B0aW9ucz17bW9kZToib3BlbiJ9LElbJCgiZWxlbWVudFByb3BlcnRpZXMiKV09bmV3IE1hcCxJWyQoImZpbmFsaXplZCIpXT1uZXcgTWFwLFM/Lih7UmVhY3RpdmVFbGVtZW50Okl9KSwoeS5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCIyLjAuNCIpOwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqLwpjb25zdCBMPWdsb2JhbFRoaXMsRT1MLnRydXN0ZWRUeXBlcyxBPUU/RS5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDplPT5lfSk6dm9pZCAwLFQ9IiRsaXQkIixQPWBsaXQkJHtNYXRoLnJhbmRvbSgpLnRvRml4ZWQoOSkuc2xpY2UoMil9JGAsRD0iPyIrUCxGPWA8JHtEfT5gLE09ZG9jdW1lbnQsUj0oKT0+TS5jcmVhdGVDb21tZW50KCIiKSxPPWU9Pm51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLFU9QXJyYXkuaXNBcnJheSxCPWU9PlUoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlPy5bU3ltYm9sLml0ZXJhdG9yXSxOPSJbIFx0XG5cZlxyXSIscT0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxqPS8tLT4vZyxIPS8+L2csVz1SZWdFeHAoYD58JHtOfSg/OihbXlxccyInPj0vXSspKCR7Tn0qPSR7Tn0qKD86W14gXHRcblxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSxWPS8nL2csRz0vIi9nLEs9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLFk9ZT0+KHQsLi4uaSk9Pih7XyRsaXRUeXBlJDplLHN0cmluZ3M6dCx2YWx1ZXM6aX0pLFE9WSgxKSxaPVkoMiksSj1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSxYPVN5bWJvbC5mb3IoImxpdC1ub3RoaW5nIiksZWU9bmV3IFdlYWtNYXAsdGU9TS5jcmVhdGVUcmVlV2Fsa2VyKE0sMTI5KTtmdW5jdGlvbiBpZShlLHQpe2lmKCFBcnJheS5pc0FycmF5KGUpfHwhZS5oYXNPd25Qcm9wZXJ0eSgicmF3IikpdGhyb3cgRXJyb3IoImludmFsaWQgdGVtcGxhdGUgc3RyaW5ncyBhcnJheSIpO3JldHVybiB2b2lkIDAhPT1BP0EuY3JlYXRlSFRNTCh0KTp0fWNvbnN0IG9lPShlLHQpPT57Y29uc3QgaT1lLmxlbmd0aC0xLG89W107bGV0IG4scj0yPT09dD8iPHN2Zz4iOiIiLHM9cTtmb3IobGV0IHQ9MDt0PGk7dCsrKXtjb25zdCBpPWVbdF07bGV0IGEsbCxjPS0xLGQ9MDtmb3IoO2Q8aS5sZW5ndGgmJihzLmxhc3RJbmRleD1kLGw9cy5leGVjKGkpLG51bGwhPT1sKTspZD1zLmxhc3RJbmRleCxzPT09cT8iIS0tIj09PWxbMV0/cz1qOnZvaWQgMCE9PWxbMV0/cz1IOnZvaWQgMCE9PWxbMl0/KEsudGVzdChsWzJdKSYmKG49UmVnRXhwKCI8LyIrbFsyXSwiZyIpKSxzPVcpOnZvaWQgMCE9PWxbM10mJihzPVcpOnM9PT1XPyI+Ij09PWxbMF0/KHM9bj8/cSxjPS0xKTp2b2lkIDA9PT1sWzFdP2M9LTI6KGM9cy5sYXN0SW5kZXgtbFsyXS5sZW5ndGgsYT1sWzFdLHM9dm9pZCAwPT09bFszXT9XOiciJz09PWxbM10/RzpWKTpzPT09R3x8cz09PVY/cz1XOnM9PT1qfHxzPT09SD9zPXE6KHM9VyxuPXZvaWQgMCk7Y29uc3QgaD1zPT09VyYmZVt0KzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO3IrPXM9PT1xP2krRjpjPj0wPyhvLnB1c2goYSksaS5zbGljZSgwLGMpK1QraS5zbGljZShjKStQK2gpOmkrUCsoLTI9PT1jP3Q6aCl9cmV0dXJuW2llKGUscisoZVtpXXx8Ijw/PiIpKygyPT09dD8iPC9zdmc+IjoiIikpLG9dfTtjbGFzcyBuZXtjb25zdHJ1Y3Rvcih7c3RyaW5nczplLF8kbGl0VHlwZSQ6dH0saSl7bGV0IG87dGhpcy5wYXJ0cz1bXTtsZXQgbj0wLHI9MDtjb25zdCBzPWUubGVuZ3RoLTEsYT10aGlzLnBhcnRzLFtsLGNdPW9lKGUsdCk7aWYodGhpcy5lbD1uZS5jcmVhdGVFbGVtZW50KGwsaSksdGUuY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LDI9PT10KXtjb25zdCBlPXRoaXMuZWwuY29udGVudC5maXJzdENoaWxkO2UucmVwbGFjZVdpdGgoLi4uZS5jaGlsZE5vZGVzKX1mb3IoO251bGwhPT0obz10ZS5uZXh0Tm9kZSgpKSYmYS5sZW5ndGg8czspe2lmKDE9PT1vLm5vZGVUeXBlKXtpZihvLmhhc0F0dHJpYnV0ZXMoKSlmb3IoY29uc3QgZSBvZiBvLmdldEF0dHJpYnV0ZU5hbWVzKCkpaWYoZS5lbmRzV2l0aChUKSl7Y29uc3QgdD1jW3IrK10saT1vLmdldEF0dHJpYnV0ZShlKS5zcGxpdChQKSxzPS8oWy4/QF0pPyguKikvLmV4ZWModCk7YS5wdXNoKHt0eXBlOjEsaW5kZXg6bixuYW1lOnNbMl0sc3RyaW5nczppLGN0b3I6Ii4iPT09c1sxXT9jZToiPyI9PT1zWzFdP2RlOiJAIj09PXNbMV0/aGU6bGV9KSxvLnJlbW92ZUF0dHJpYnV0ZShlKX1lbHNlIGUuc3RhcnRzV2l0aChQKSYmKGEucHVzaCh7dHlwZTo2LGluZGV4Om59KSxvLnJlbW92ZUF0dHJpYnV0ZShlKSk7aWYoSy50ZXN0KG8udGFnTmFtZSkpe2NvbnN0IGU9by50ZXh0Q29udGVudC5zcGxpdChQKSx0PWUubGVuZ3RoLTE7aWYodD4wKXtvLnRleHRDb250ZW50PUU/RS5lbXB0eVNjcmlwdDoiIjtmb3IobGV0IGk9MDtpPHQ7aSsrKW8uYXBwZW5kKGVbaV0sUigpKSx0ZS5uZXh0Tm9kZSgpLGEucHVzaCh7dHlwZToyLGluZGV4Oisrbn0pO28uYXBwZW5kKGVbdF0sUigpKX19fWVsc2UgaWYoOD09PW8ubm9kZVR5cGUpaWYoby5kYXRhPT09RClhLnB1c2goe3R5cGU6MixpbmRleDpufSk7ZWxzZXtsZXQgZT0tMTtmb3IoOy0xIT09KGU9by5kYXRhLmluZGV4T2YoUCxlKzEpKTspYS5wdXNoKHt0eXBlOjcsaW5kZXg6bn0pLGUrPVAubGVuZ3RoLTF9bisrfX1zdGF0aWMgY3JlYXRlRWxlbWVudChlLHQpe2NvbnN0IGk9TS5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBpLmlubmVySFRNTD1lLGl9fWZ1bmN0aW9uIHJlKGUsdCxpPWUsbyl7aWYodD09PUopcmV0dXJuIHQ7bGV0IG49dm9pZCAwIT09bz9pLl8kQ28/LltvXTppLl8kQ2w7Y29uc3Qgcj1PKHQpP3ZvaWQgMDp0Ll8kbGl0RGlyZWN0aXZlJDtyZXR1cm4gbj8uY29uc3RydWN0b3IhPT1yJiYobj8uXyRBTz8uKCExKSx2b2lkIDA9PT1yP249dm9pZCAwOihuPW5ldyByKGUpLG4uXyRBVChlLGksbykpLHZvaWQgMCE9PW8/KGkuXyRDbz8/PVtdKVtvXT1uOmkuXyRDbD1uKSx2b2lkIDAhPT1uJiYodD1yZShlLG4uXyRBUyhlLHQudmFsdWVzKSxuLG8pKSx0fWNsYXNzIHNle2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fJEFWPVtdLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFEPWUsdGhpcy5fJEFNPXR9Z2V0IHBhcmVudE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFNLnBhcmVudE5vZGV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9dShlKXtjb25zdHtlbDp7Y29udGVudDp0fSxwYXJ0czppfT10aGlzLl8kQUQsbz0oZT8uY3JlYXRpb25TY29wZT8/TSkuaW1wb3J0Tm9kZSh0LCEwKTt0ZS5jdXJyZW50Tm9kZT1vO2xldCBuPXRlLm5leHROb2RlKCkscj0wLHM9MCxhPWlbMF07Zm9yKDt2b2lkIDAhPT1hOyl7aWYocj09PWEuaW5kZXgpe2xldCB0OzI9PT1hLnR5cGU/dD1uZXcgYWUobixuLm5leHRTaWJsaW5nLHRoaXMsZSk6MT09PWEudHlwZT90PW5ldyBhLmN0b3IobixhLm5hbWUsYS5zdHJpbmdzLHRoaXMsZSk6Nj09PWEudHlwZSYmKHQ9bmV3IHVlKG4sdGhpcyxlKSksdGhpcy5fJEFWLnB1c2godCksYT1pWysrc119ciE9PWE/LmluZGV4JiYobj10ZS5uZXh0Tm9kZSgpLHIrKyl9cmV0dXJuIHRlLmN1cnJlbnROb2RlPU0sb31wKGUpe2xldCB0PTA7Zm9yKGNvbnN0IGkgb2YgdGhpcy5fJEFWKXZvaWQgMCE9PWkmJih2b2lkIDAhPT1pLnN0cmluZ3M/KGkuXyRBSShlLGksdCksdCs9aS5zdHJpbmdzLmxlbmd0aC0yKTppLl8kQUkoZVt0XSkpLHQrK319Y2xhc3MgYWV7Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSx0LGksbyl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPVgsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUE9ZSx0aGlzLl8kQUI9dCx0aGlzLl8kQU09aSx0aGlzLm9wdGlvbnM9byx0aGlzLl8kQ3Y9bz8uaXNDb25uZWN0ZWQ/PyEwfWdldCBwYXJlbnROb2RlKCl7bGV0IGU9dGhpcy5fJEFBLnBhcmVudE5vZGU7Y29uc3QgdD10aGlzLl8kQU07cmV0dXJuIHZvaWQgMCE9PXQmJjExPT09ZT8ubm9kZVR5cGUmJihlPXQucGFyZW50Tm9kZSksZX1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSShlLHQ9dGhpcyl7ZT1yZSh0aGlzLGUsdCksTyhlKT9lPT09WHx8bnVsbD09ZXx8IiI9PT1lPyh0aGlzLl8kQUghPT1YJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9WCk6ZSE9PXRoaXMuXyRBSCYmZSE9PUomJnRoaXMuXyhlKTp2b2lkIDAhPT1lLl8kbGl0VHlwZSQ/dGhpcy4kKGUpOnZvaWQgMCE9PWUubm9kZVR5cGU/dGhpcy5UKGUpOkIoZSk/dGhpcy5rKGUpOnRoaXMuXyhlKX1TKGUpe3JldHVybiB0aGlzLl8kQUEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLl8kQUIpfVQoZSl7dGhpcy5fJEFIIT09ZSYmKHRoaXMuXyRBUigpLHRoaXMuXyRBSD10aGlzLlMoZSkpfV8oZSl7dGhpcy5fJEFIIT09WCYmTyh0aGlzLl8kQUgpP3RoaXMuXyRBQS5uZXh0U2libGluZy5kYXRhPWU6dGhpcy5UKE0uY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuXyRBSD1lfSQoZSl7Y29uc3R7dmFsdWVzOnQsXyRsaXRUeXBlJDppfT1lLG89Im51bWJlciI9PXR5cGVvZiBpP3RoaXMuXyRBQyhlKToodm9pZCAwPT09aS5lbCYmKGkuZWw9bmUuY3JlYXRlRWxlbWVudChpZShpLmgsaS5oWzBdKSx0aGlzLm9wdGlvbnMpKSxpKTtpZih0aGlzLl8kQUg/Ll8kQUQ9PT1vKXRoaXMuXyRBSC5wKHQpO2Vsc2V7Y29uc3QgZT1uZXcgc2Uobyx0aGlzKSxpPWUudSh0aGlzLm9wdGlvbnMpO2UucCh0KSx0aGlzLlQoaSksdGhpcy5fJEFIPWV9fV8kQUMoZSl7bGV0IHQ9ZWUuZ2V0KGUuc3RyaW5ncyk7cmV0dXJuIHZvaWQgMD09PXQmJmVlLnNldChlLnN0cmluZ3MsdD1uZXcgbmUoZSkpLHR9ayhlKXtVKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2NvbnN0IHQ9dGhpcy5fJEFIO2xldCBpLG89MDtmb3IoY29uc3QgbiBvZiBlKW89PT10Lmxlbmd0aD90LnB1c2goaT1uZXcgYWUodGhpcy5TKFIoKSksdGhpcy5TKFIoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTppPXRbb10saS5fJEFJKG4pLG8rKztvPHQubGVuZ3RoJiYodGhpcy5fJEFSKGkmJmkuXyRBQi5uZXh0U2libGluZyxvKSx0Lmxlbmd0aD1vKX1fJEFSKGU9dGhpcy5fJEFBLm5leHRTaWJsaW5nLHQpe2Zvcih0aGlzLl8kQVA/LighMSwhMCx0KTtlJiZlIT09dGhpcy5fJEFCOyl7Y29uc3QgdD1lLm5leHRTaWJsaW5nO2UucmVtb3ZlKCksZT10fX1zZXRDb25uZWN0ZWQoZSl7dm9pZCAwPT09dGhpcy5fJEFNJiYodGhpcy5fJEN2PWUsdGhpcy5fJEFQPy4oZSkpfX1jbGFzcyBsZXtnZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLHQsaSxvLG4pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD1YLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5lbGVtZW50PWUsdGhpcy5uYW1lPXQsdGhpcy5fJEFNPW8sdGhpcy5vcHRpb25zPW4saS5sZW5ndGg+Mnx8IiIhPT1pWzBdfHwiIiE9PWlbMV0/KHRoaXMuXyRBSD1BcnJheShpLmxlbmd0aC0xKS5maWxsKG5ldyBTdHJpbmcpLHRoaXMuc3RyaW5ncz1pKTp0aGlzLl8kQUg9WH1fJEFJKGUsdD10aGlzLGksbyl7Y29uc3Qgbj10aGlzLnN0cmluZ3M7bGV0IHI9ITE7aWYodm9pZCAwPT09billPXJlKHRoaXMsZSx0LDApLHI9IU8oZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1KLHImJih0aGlzLl8kQUg9ZSk7ZWxzZXtjb25zdCBvPWU7bGV0IHMsYTtmb3IoZT1uWzBdLHM9MDtzPG4ubGVuZ3RoLTE7cysrKWE9cmUodGhpcyxvW2krc10sdCxzKSxhPT09SiYmKGE9dGhpcy5fJEFIW3NdKSxyfHw9IU8oYSl8fGEhPT10aGlzLl8kQUhbc10sYT09PVg/ZT1YOmUhPT1YJiYoZSs9KGE/PyIiKStuW3MrMV0pLHRoaXMuXyRBSFtzXT1hfXImJiFvJiZ0aGlzLmooZSl9aihlKXtlPT09WD90aGlzLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSk6dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSh0aGlzLm5hbWUsZT8/IiIpfX1jbGFzcyBjZSBleHRlbmRzIGxle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKGUpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPWU9PT1YP3ZvaWQgMDplfX1jbGFzcyBkZSBleHRlbmRzIGxle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKGUpe3RoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUodGhpcy5uYW1lLCEhZSYmZSE9PVgpfX1jbGFzcyBoZSBleHRlbmRzIGxle2NvbnN0cnVjdG9yKGUsdCxpLG8sbil7c3VwZXIoZSx0LGksbyxuKSx0aGlzLnR5cGU9NX1fJEFJKGUsdD10aGlzKXtpZigoZT1yZSh0aGlzLGUsdCwwKT8/WCk9PT1KKXJldHVybjtjb25zdCBpPXRoaXMuXyRBSCxvPWU9PT1YJiZpIT09WHx8ZS5jYXB0dXJlIT09aS5jYXB0dXJlfHxlLm9uY2UhPT1pLm9uY2V8fGUucGFzc2l2ZSE9PWkucGFzc2l2ZSxuPWUhPT1YJiYoaT09PVh8fG8pO28mJnRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGkpLG4mJnRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGUpLHRoaXMuXyRBSD1lfWhhbmRsZUV2ZW50KGUpeyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl8kQUg/dGhpcy5fJEFILmNhbGwodGhpcy5vcHRpb25zPy5ob3N0Pz90aGlzLmVsZW1lbnQsZSk6dGhpcy5fJEFILmhhbmRsZUV2ZW50KGUpfX1jbGFzcyB1ZXtjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5lbGVtZW50PWUsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09dCx0aGlzLm9wdGlvbnM9aX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKGUpe3JlKHRoaXMsZSl9fWNvbnN0IGZlPXtQOlQsQTpQLEM6RCxNOjEsTDpvZSxSOnNlLEQ6QixWOnJlLEk6YWUsSDpsZSxOOmRlLFU6aGUsQjpjZSxGOnVlfSxwZT1MLmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7cGU/LihuZSxhZSksKEwubGl0SHRtbFZlcnNpb25zPz89W10pLnB1c2goIjMuMS40Iik7Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNsYXNzIG1lIGV4dGVuZHMgSXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW5kZXJPcHRpb25zPXtob3N0OnRoaXN9LHRoaXMuXyREbz12b2lkIDB9Y3JlYXRlUmVuZGVyUm9vdCgpe2NvbnN0IGU9c3VwZXIuY3JlYXRlUmVuZGVyUm9vdCgpO3JldHVybiB0aGlzLnJlbmRlck9wdGlvbnMucmVuZGVyQmVmb3JlPz89ZS5maXJzdENoaWxkLGV9dXBkYXRlKGUpe2NvbnN0IHQ9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKGUpLHRoaXMuXyREbz0oKGUsdCxpKT0+e2NvbnN0IG89aT8ucmVuZGVyQmVmb3JlPz90O2xldCBuPW8uXyRsaXRQYXJ0JDtpZih2b2lkIDA9PT1uKXtjb25zdCBlPWk/LnJlbmRlckJlZm9yZT8/bnVsbDtvLl8kbGl0UGFydCQ9bj1uZXcgYWUodC5pbnNlcnRCZWZvcmUoUigpLGUpLGUsdm9pZCAwLGk/P3t9KX1yZXR1cm4gbi5fJEFJKGUpLG59KSh0LHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gSn19bWUuXyRsaXRFbGVtZW50JD0hMCxtZS5maW5hbGl6ZWQ9ITAsZ2xvYmFsVGhpcy5saXRFbGVtZW50SHlkcmF0ZVN1cHBvcnQ/Lih7TGl0RWxlbWVudDptZX0pO2NvbnN0IGJlPWdsb2JhbFRoaXMubGl0RWxlbWVudFBvbHlmaWxsU3VwcG9ydDtiZT8uKHtMaXRFbGVtZW50Om1lfSk7KGdsb2JhbFRoaXMubGl0RWxlbWVudFZlcnNpb25zPz89W10pLnB1c2goIjQuMC42Iik7Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNvbnN0IGdlPWU9Pih0LGkpPT57dm9pZCAwIT09aT9pLmFkZEluaXRpYWxpemVyKCgoKT0+e2N1c3RvbUVsZW1lbnRzLmRlZmluZShlLHQpfSkpOmN1c3RvbUVsZW1lbnRzLmRlZmluZShlLHQpfSx2ZT17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjp6LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpffSx3ZT0oZT12ZSx0LGkpPT57Y29uc3R7a2luZDpvLG1ldGFkYXRhOm59PWk7bGV0IHI9Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChuKTtpZih2b2lkIDA9PT1yJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KG4scj1uZXcgTWFwKSxyLnNldChpLm5hbWUsZSksImFjY2Vzc29yIj09PW8pe2NvbnN0e25hbWU6b309aTtyZXR1cm57c2V0KGkpe2NvbnN0IG49dC5nZXQuY2FsbCh0aGlzKTt0LnNldC5jYWxsKHRoaXMsaSksdGhpcy5yZXF1ZXN0VXBkYXRlKG8sbixlKX0saW5pdCh0KXtyZXR1cm4gdm9pZCAwIT09dCYmdGhpcy5QKG8sdm9pZCAwLGUpLHR9fX1pZigic2V0dGVyIj09PW8pe2NvbnN0e25hbWU6b309aTtyZXR1cm4gZnVuY3Rpb24oaSl7Y29uc3Qgbj10aGlzW29dO3QuY2FsbCh0aGlzLGkpLHRoaXMucmVxdWVzdFVwZGF0ZShvLG4sZSl9fXRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICIrbyl9O2Z1bmN0aW9uIHllKGUpe3JldHVybih0LGkpPT4ib2JqZWN0Ij09dHlwZW9mIGk/d2UoZSx0LGkpOigoZSx0LGkpPT57Y29uc3Qgbz10Lmhhc093blByb3BlcnR5KGkpO3JldHVybiB0LmNvbnN0cnVjdG9yLmNyZWF0ZVByb3BlcnR5KGksbz97Li4uZSx3cmFwcGVkOiEwfTplKSxvP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKTp2b2lkIDB9KShlLHQsaSl9Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmZ1bmN0aW9uIHhlKGUpe3JldHVybiB5ZSh7Li4uZSxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX0KLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi8KY29uc3Qga2U9KGUsdCxpKT0+KGkuY29uZmlndXJhYmxlPSEwLGkuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiYib2JqZWN0IiE9dHlwZW9mIHQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsaSksaSk7Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmZ1bmN0aW9uIFNlKGUsdCl7cmV0dXJuKGksbyxuKT0+e2NvbnN0IHI9dD0+dC5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKGUpPz9udWxsO2lmKHQpe2NvbnN0e2dldDplLHNldDp0fT0ib2JqZWN0Ij09dHlwZW9mIG8/aTpuPz8oKCk9Pntjb25zdCBlPVN5bWJvbCgpO3JldHVybntnZXQoKXtyZXR1cm4gdGhpc1tlXX0sc2V0KHQpe3RoaXNbZV09dH19fSkoKTtyZXR1cm4ga2UoaSxvLHtnZXQoKXtsZXQgaT1lLmNhbGwodGhpcyk7cmV0dXJuIHZvaWQgMD09PWkmJihpPXIodGhpcyksKG51bGwhPT1pfHx0aGlzLmhhc1VwZGF0ZWQpJiZ0LmNhbGwodGhpcyxpKSksaX19KX1yZXR1cm4ga2UoaSxvLHtnZXQoKXtyZXR1cm4gcih0aGlzKX19KX19Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNvbnN0ICRlPWU9PmU/P1gsemU9MSxfZT0yLENlPWU9PiguLi50KT0+KHtfJGxpdERpcmVjdGl2ZSQ6ZSx2YWx1ZXM6dH0pO2NsYXNzIElle2NvbnN0cnVjdG9yKGUpe31nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFUKGUsdCxpKXt0aGlzLl8kQ3Q9ZSx0aGlzLl8kQU09dCx0aGlzLl8kQ2k9aX1fJEFTKGUsdCl7cmV0dXJuIHRoaXMudXBkYXRlKGUsdCl9dXBkYXRlKGUsdCl7cmV0dXJuIHRoaXMucmVuZGVyKC4uLnQpfX0KLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi8KY2xhc3MgTGUgZXh0ZW5kcyBJZXtjb25zdHJ1Y3RvcihlKXtpZihzdXBlcihlKSx0aGlzLml0PVgsZS50eXBlIT09X2UpdGhyb3cgRXJyb3IodGhpcy5jb25zdHJ1Y3Rvci5kaXJlY3RpdmVOYW1lKyIoKSBjYW4gb25seSBiZSB1c2VkIGluIGNoaWxkIGJpbmRpbmdzIil9cmVuZGVyKGUpe2lmKGU9PT1YfHxudWxsPT1lKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PUopcmV0dXJuIGU7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IEVycm9yKHRoaXMuY29uc3RydWN0b3IuZGlyZWN0aXZlTmFtZSsiKCkgY2FsbGVkIHdpdGggYSBub24tc3RyaW5nIHZhbHVlIik7aWYoZT09PXRoaXMuaXQpcmV0dXJuIHRoaXMuX3Q7dGhpcy5pdD1lO2NvbnN0IHQ9W2VdO3JldHVybiB0LnJhdz10LHRoaXMuX3Q9e18kbGl0VHlwZSQ6dGhpcy5jb25zdHJ1Y3Rvci5yZXN1bHRUeXBlLHN0cmluZ3M6dCx2YWx1ZXM6W119fX1MZS5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIixMZS5yZXN1bHRUeXBlPTE7Y29uc3QgRWU9Q2UoTGUpOwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqLwpjbGFzcyBBZSBleHRlbmRzIExle31BZS5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVTVkciLEFlLnJlc3VsdFR5cGU9Mjtjb25zdCBUZT1DZShBZSksUGU9ImltcG9ydGFudCIsRGU9IiAhIitQZSxGZT1DZShjbGFzcyBleHRlbmRzIElle2NvbnN0cnVjdG9yKGUpe2lmKHN1cGVyKGUpLGUudHlwZSE9PXplfHwic3R5bGUiIT09ZS5uYW1lfHxlLnN0cmluZ3M/Lmxlbmd0aD4yKXRocm93IEVycm9yKCJUaGUgYHN0eWxlTWFwYCBkaXJlY3RpdmUgbXVzdCBiZSB1c2VkIGluIHRoZSBgc3R5bGVgIGF0dHJpYnV0ZSBhbmQgbXVzdCBiZSB0aGUgb25seSBwYXJ0IGluIHRoZSBhdHRyaWJ1dGUuIil9cmVuZGVyKGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKCh0LGkpPT57Y29uc3Qgbz1lW2ldO3JldHVybiBudWxsPT1vP3Q6dCtgJHtpPWkuaW5jbHVkZXMoIi0iKT9pOmkucmVwbGFjZSgvKD86Xih3ZWJraXR8bW96fG1zfG8pfCkoPz1bQS1aXSkvZywiLSQmIikudG9Mb3dlckNhc2UoKX06JHtvfTtgfSksIiIpfXVwZGF0ZShlLFt0XSl7Y29uc3R7c3R5bGU6aX09ZS5lbGVtZW50O2lmKHZvaWQgMD09PXRoaXMuZnQpcmV0dXJuIHRoaXMuZnQ9bmV3IFNldChPYmplY3Qua2V5cyh0KSksdGhpcy5yZW5kZXIodCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5mdCludWxsPT10W2VdJiYodGhpcy5mdC5kZWxldGUoZSksZS5pbmNsdWRlcygiLSIpP2kucmVtb3ZlUHJvcGVydHkoZSk6aVtlXT1udWxsKTtmb3IoY29uc3QgZSBpbiB0KXtjb25zdCBvPXRbZV07aWYobnVsbCE9byl7dGhpcy5mdC5hZGQoZSk7Y29uc3QgdD0ic3RyaW5nIj09dHlwZW9mIG8mJm8uZW5kc1dpdGgoRGUpO2UuaW5jbHVkZXMoIi0iKXx8dD9pLnNldFByb3BlcnR5KGUsdD9vLnNsaWNlKDAsLTExKTpvLHQ/UGU6IiIpOmlbZV09b319cmV0dXJuIEp9fSk7dmFyIE1lLFJlPV9fd2VicGFja19yZXF1aXJlX18oOTg5KTtjb25zdCBPZT0iLi93L2FwaSIsVWU9Ii4vdyIsQmU9ZChSZS5BKTtmdW5jdGlvbiBOZShlKXtyZXR1cm5bQmUsZV19Y29uc3QgcWU9d2luZG93LklTX0FQUHx8KG51bGw9PT0oTWU9d2luZG93LmVsZWN0cm9uKXx8dm9pZCAwPT09TWU/dm9pZCAwOk1lLklTX0FQUCl8fHdpbmRvdy5tYXRjaE1lZGlhKCIoZGlzcGxheS1tb2RlOiBzdGFuZGFsb25lKSIpLm1hdGNoZXMsamU9IjIuMy40IjtmdW5jdGlvbiBIZShlKXsiICI9PWUua2V5JiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUudGFyZ2V0LmNsaWNrKCkpfWZ1bmN0aW9uIFdlKGUpe2NvbnN0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgibGlua1tyZWwqPSdpY29uJ10iKTtmb3IoY29uc3QgZSBvZiBpKXQucmVtb3ZlQ2hpbGQoZSk7Zm9yKGNvbnN0IGkgb2YgZS5pY29ucyl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7ZS5yZWw9aS5yZWwsZS5ocmVmPWkuaHJlZix0LmFwcGVuZENoaWxkKGUpfX1jbGFzcyBWZSBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnNpemU9IjEuMWVtIix0aGlzLndpZHRoPW51bGwsdGhpcy5oZWlnaHQ9bnVsbH1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57c3ZnOnt0eXBlOlN0cmluZ30sc2l6ZTp7dHlwZTpTdHJpbmd9LHdpZHRoOnt0eXBlOlN0cmluZ30saGVpZ2h0Ont0eXBlOlN0cmluZ319fXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIGhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTsKICAgICAgfQogICAgICA6aG9zdCBzdmcgewogICAgICAgIGZpbGw6IHZhcigtLWZhLWljb24tZmlsbC1jb2xvciwgY3VycmVudGNvbG9yKTsKICAgICAgICB3aWR0aDogdmFyKC0tZmEtaWNvbi13aWR0aCwgMTlweCk7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1mYS1pY29uLWhlaWdodCwgMTlweCk7CiAgICAgIH0KICAgIGB9cmVuZGVyKCl7aWYoIXRoaXMuc3ZnKXJldHVybiBRYGA7Y29uc3QgZT17fTtyZXR1cm4gdGhpcy5zaXplPyhlLndpZHRoPXRoaXMuc2l6ZSxlLmhlaWdodD10aGlzLnNpemUpOih0aGlzLndpZHRoJiYoZS53aWR0aD10aGlzLndpZHRoKSx0aGlzLmhlaWdodCYmKGUuaGVpZ2h0PXRoaXMuaGVpZ2h0KSksUWA8c3ZnIHN0eWxlPSIke0ZlKGUpfSI+CiAgICAgIDxnPgogICAgICAgICR7VGUodGhpcy5zdmcpfQogICAgICA8L2c+CiAgICA8L3N2Zz5gfX1jbGFzcyBHZSBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRpdGxlPSIiLHRoaXMuYmdDbGFzcz0iIix0aGlzLm5vQmdDbG9zZT0hMX1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57dGl0bGU6e3R5cGU6U3RyaW5nfSxiZ0NsYXNzOnt0eXBlOlN0cmluZ30sbm9CZ0Nsb3NlOnt0eXBlOkJvb2xlYW59fX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShoYAogICAgICAubW9kYWwtYmFja2dyb3VuZCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpOwogICAgICB9CgogICAgICAubW9kYWwtY2FyZC1oZWFkIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLCAjOTdhMWZmKTsKICAgICAgfQoKICAgICAgLm1vZGFsLWNhcmQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogdmFyKC0tbW9kYWwtd2lkdGgsIDY0MHB4KTsKICAgICAgfQogICAgYCl9cmVuZGVyKCl7cmV0dXJuIFFgIDxkaXYgY2xhc3M9Im1vZGFsIGlzLWFjdGl2ZSI+CiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibW9kYWwtYmFja2dyb3VuZCIKICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLm5vQmdDbG9zZSYmdGhpcy5vbkNsb3NlKCl9IgogICAgICA+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNhcmQiPgogICAgICAgIDxoZWFkZXIKICAgICAgICAgIGNsYXNzPSJtb2RhbC1jYXJkLWhlYWQgJHt0aGlzLmJnQ2xhc3N9IgogICAgICAgID4KICAgICAgICAgIDxwIGNsYXNzPSJtb2RhbC1jYXJkLXRpdGxlIGlzLTMiPiR7dGhpcy50aXRsZX08L3A+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJkZWxldGUiCiAgICAgICAgICAgIGFyaWEtbGFiZWw9ImNsb3NlIgogICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkNsb3NlfSIKICAgICAgICAgID48L2J1dHRvbj4KICAgICAgICA8L2hlYWRlcj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ibW9kYWwtY2FyZC1ib2R5Ij4KICAgICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+YH1vbkNsb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibW9kYWwtY2xvc2VkIikpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoImZhLWljb24iLFZlKSxjdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLW1vZGFsIixHZSk7Y29uc3QgS2U9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik02LjgwNyAxMS4yNDZoLS4wMDFhLjI1LjI1IDAgMCAxLS4yNDUtLjI5NCA1LjU1IDUuNTUgMCAwIDEgMy4wODItMy45NTkuMTI0LjEyNCAwIDAgMSAuMTc2LjExMS4xLjEgMCAwIDEtLjAxMS4wNWMtLjQyNiAxLjAzNS0uNzE5IDIuMzcxLS44MSAzLjg1NmEuMjUuMjUgMCAwIDEtLjI0OS4yMzZ6bTcuMzY0LTQuMDkxYS4xMy4xMyAwIDAgMSAuMDI3LS4xMzguMTMuMTMgMCAwIDEgLjEzOS0uMDI1IDUuNTQgNS41NCAwIDAgMSAzLjA4MSAzLjk2LjI1Mi4yNTIgMCAwIDEtLjI0NS4yOTNsLTEuOTQyLjAwMWEuMjUuMjUgMCAwIDEtLjI0OS0uMjM2Yy0uMDkxLTEuNDg1LS4zODQtMi44MjEtLjgxMS0zLjg1NW0zLjAwMiA1LjU5MWMuMDc0IDAgLjE0NC4wMzMuMTkyLjA4OWEuMjUuMjUgMCAwIDEgLjA1NC4yMDVBNS41NCA1LjU0IDAgMCAxIDE0LjMzNyAxN2EuMTMuMTMgMCAwIDEtLjEzOS0uMDI1LjEzLjEzIDAgMCAxLS4wMjYtLjEzOGMuNDI2LTEuMDMzLjcxOS0yLjM2OS44MS0zLjg1NmEuMjUuMjUgMCAwIDEgLjI0OS0uMjM1em0tNy4zNjQgNC4wOTFxLjAxLjAyNC4wMS4wNWEuMTI2LjEyNiAwIDAgMS0uMTc2LjExNCA1LjU1IDUuNTUgMCAwIDEtMy4wODEtMy45NjEuMjUuMjUgMCAwIDEgLjA1NC0uMjA0LjI1LjI1IDAgMCAxIC4xOTEtLjA4OGMuNDk1LS4wMDIgMS40ODgtLjAwMiAxLjk0Mi0uMDAyYS4yNS4yNSAwIDAgMSAuMjQ5LjIzNWMuMDkxIDEuNDg3LjM4NCAyLjgyMy44MTEgMy44NTZtLjY5NC0zLjgyNWEuMjUuMjUgMCAwIDEgLjA2Ni0uMTg3LjI1LjI1IDAgMCAxIC4xODMtLjA3OGwyLjQ3Ny0uMDAxYS4yNS4yNSAwIDAgMSAuMjQ5LjI1di4wMTZjLS4xMDcgMS41ODMtLjQ2MSAyLjk2Mi0uOTk3IDMuODcycS0uMTY2LjI5Ny0uNDE0LjUzMWEuMTI2LjEyNiAwIDAgMS0uMTU0IDAgMi4yIDIuMiAwIDAgMS0uNDE0LS41MzFjLS41MzYtLjkxLS44OS0yLjI4OS0uOTk2LTMuODcybTIuOTc1LTIuMDMydi4wMTZhLjI1LjI1IDAgMCAxLS4yNDkuMjVoLTIuNDc3YS4yNS4yNSAwIDAgMS0uMjUtLjI1bC4wMDEtLjAxNmMuMTA2LTEuNTgzLjQ2LTIuOTYxLjk5Ni0zLjg3Mi4xMjctLjIxNC4yNzItLjQwOC40MTQtLjUzYS4xMjYuMTI2IDAgMCAxIC4xNTQgMGMuMTQyLjEyMi4yODguMzE2LjQxNC41My41MzYuOTExLjg5IDIuMjg5Ljk5NyAzLjg3MiIgc3R5bGU9ImZpbGw6IzA4OTFiMiIvPjxwYXRoIGQ9Ik0yMy43NzQgMTMuMzMzYy4wOS4wNS4xNC4xNDkuMTI4LjI1QzIzLjEyNCAxOS40NTkgMTguMDkxIDI0IDEyLjAwNSAyNCA1Ljg5MSAyNCAuODQgMTkuNDE5LjA5OCAxMy41MDVsLS4wMDEtLjAyOGEuMjUuMjUgMCAwIDEgLjI0OC0uMjQ4LjI0LjI0IDAgMCAxIC4xMjUuMDM1Yy41NC4zMTIgMS40MzguODM1IDEuNzY4IDEuMDI4YS4yNS4yNSAwIDAgMCAuMjUyLS4wMDFsMS43NzctMS4wNDRhLjI1LjI1IDAgMCAxIC4zNzMuMTcyIDcuNTMgNy41MyAwIDAgMCA3LjM2NSA2LjA4MSA3LjUzIDcuNTMgMCAwIDAgNy4zNTEtNi4wMDcuMjUuMjUgMCAwIDEgLjEyNi0uMTcxbDIuMDQyLTEuMTAzYS4yNS4yNSAwIDAgMSAuMjQuMDAxek0uMjI2IDEwLjY2N2EuMjUuMjUgMCAwIDEtLjEyOC0uMjVDLjg3NiA0LjU0MSA1LjkwOSAwIDExLjk5NSAwYzYuMTE0IDAgMTEuMTY1IDQuNTgxIDExLjkwNyAxMC40OTVsLjAwMS4wMjhhLjI1LjI1IDAgMCAxLS4yNDguMjQ4LjI0LjI0IDAgMCAxLS4xMjUtLjAzNSA1MTYgNTE2IDAgMCAxLTEuNzY4LTEuMDI4LjI1LjI1IDAgMCAwLS4yNTIuMDAxbC0xLjc3NyAxLjA0NGEuMjUuMjUgMCAwIDEtLjM3My0uMTcyQTcuNTMgNy41MyAwIDAgMCAxMS45OTUgNC41YTcuNTMgNy41MyAwIDAgMC03LjM1MSA2LjAwNy4yNS4yNSAwIDAgMS0uMTI2LjE3MWwtMi4wNDIgMS4xMDNhLjI1LjI1IDAgMCAxLS4yNDEtLjAwMXoiIHN0eWxlPSJmaWxsOiM0ZDdjMGYiLz48L3N2Zz5cbicsWWU9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQ4IDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTI1Ny41IDQ0NS4xbC0yMi4yIDIyLjJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwyMDEuNCA0NC43YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjIgMjIuMmM5LjUgOS41IDkuMyAyNS0uNCAzNC4zTDEzNi42IDIxNkg0MjRjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMTM2LjZsMTIwLjUgMTE0LjhjOS44IDkuMyAxMCAyNC44LjQgMzQuM3oiLz48L3N2Zz4nLFFlPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0xOTAuNSA2Ni45bDIyLjItMjIuMmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw0NDEgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0Ni42IDQ2Ny4zYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuMi0yMi4yYy05LjUtOS41LTkuMy0yNSAuNC0zNC4zTDMxMS40IDI5NkgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR2LTMyYzAtMTMuMyAxMC43LTI0IDI0LTI0aDI4Ny40TDE5MC45IDEwMS4yYy05LjgtOS4zLTEwLTI0LjgtLjQtMzQuM3oiLz48L3N2Zz4nO3ZhciBaZTtmdW5jdGlvbiBKZShlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgaT10LnJlZ2lzdHJhdGlvbk9wdGlvbnM7dm9pZCAwPT09aSYmKGk9e30pLGRlbGV0ZSB0LnJlZ2lzdHJhdGlvbk9wdGlvbnM7dmFyIG89ZnVuY3Rpb24oZSl7Zm9yKHZhciBpPVtdLG89YXJndW1lbnRzLmxlbmd0aC0xO28tLSA+MDspaVtvXT1hcmd1bWVudHNbbysxXTt0JiZ0W2VdJiZ0W2VdLmFwcGx5KHQsaSl9OyJzZXJ2aWNlV29ya2VyImluIG5hdmlnYXRvciYmWmUudGhlbigoZnVuY3Rpb24oKXtCb29sZWFuKCJsb2NhbGhvc3QiPT09d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfHwiWzo6MV0iPT09d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfHx3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUubWF0Y2goL14xMjcoPzpcLig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykpezN9JC8pKT8oIWZ1bmN0aW9uKGUsdCxpKXtmZXRjaChlKS50aGVuKChmdW5jdGlvbihvKXs0MDQ9PT1vLnN0YXR1cz8odCgiZXJyb3IiLG5ldyBFcnJvcigiU2VydmljZSB3b3JrZXIgbm90IGZvdW5kIGF0ICIrZSkpLHR0KCkpOi0xPT09by5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikuaW5kZXhPZigiamF2YXNjcmlwdCIpPyh0KCJlcnJvciIsbmV3IEVycm9yKCJFeHBlY3RlZCAiK2UrIiB0byBoYXZlIGphdmFzY3JpcHQgY29udGVudC10eXBlLCBidXQgcmVjZWl2ZWQgIitvLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkpLHR0KCkpOmV0KGUsdCxpKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIFhlKHQsZSl9KSl9KGUsbyxpKSxuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeS50aGVuKChmdW5jdGlvbihlKXtvKCJyZWFkeSIsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBYZShvLGUpfSkpKTooZXQoZSxvLGkpLG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlYWR5LnRoZW4oKGZ1bmN0aW9uKGUpe28oInJlYWR5IixlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIFhlKG8sZSl9KSkpfSkpfWZ1bmN0aW9uIFhlKGUsdCl7bmF2aWdhdG9yLm9uTGluZXx8ZSgib2ZmbGluZSIpLGUoImVycm9yIix0KX1mdW5jdGlvbiBldChlLHQsaSl7bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoZSxpKS50aGVuKChmdW5jdGlvbihlKXt0KCJyZWdpc3RlcmVkIixlKSxlLndhaXRpbmc/dCgidXBkYXRlZCIsZSk6ZS5vbnVwZGF0ZWZvdW5kPWZ1bmN0aW9uKCl7dCgidXBkYXRlZm91bmQiLGUpO3ZhciBpPWUuaW5zdGFsbGluZztpLm9uc3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXsiaW5zdGFsbGVkIj09PWkuc3RhdGUmJihuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyP3QoInVwZGF0ZWQiLGUpOnQoImNhY2hlZCIsZSkpfX19KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBYZSh0LGUpfSkpfWZ1bmN0aW9uIHR0KCl7InNlcnZpY2VXb3JrZXIiaW4gbmF2aWdhdG9yJiZuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeS50aGVuKChmdW5jdGlvbihlKXtlLnVucmVnaXN0ZXIoKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIFhlKGVtaXQsZSl9KSl9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJihaZT0idW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2U/bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZSl9KSk6e3RoZW46ZnVuY3Rpb24oZSl7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixlKX19KTtjbGFzcyBpdHtjb25zdHJ1Y3Rvcih7bmFtZTplPSJzdy5qcyIsc2NvcGU6dD0iLi8iLGFwcE5hbWU6aT0iUmVwbGF5V2ViLnBhZ2UiLHJlcXVpcmVTdWJkb21haW5JZnJhbWU6bz0hMX09e30pe3RoaXMuZXJyb3JNc2c9bnVsbCx0aGlzLm5hbWU9ZSx0aGlzLnNjb3BlPXQsdGhpcy5hcHBOYW1lPWksdGhpcy5yZXF1aXJlU3ViZG9tYWluSWZyYW1lPW99c2V0QXBwTmFtZShlKXt0aGlzLmFwcE5hbWU9ZX1yZWdpc3Rlcigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7bGV0IGUsdDtjb25zdCBpPW5ldyBQcm9taXNlKCgoaSxvKT0+e2U9aSx0PW99KSk7dGhpcy5lcnJvck1zZz10aGlzLmdldFNXRXJyb3JNc2coKSx0aGlzLmVycm9yTXNnJiYoY29uc29sZS5lcnJvcih0aGlzLmVycm9yTXNnKSx0KHRoaXMuZXJyb3JNc2cpKTtjb25zdCBvPWU9Pntjb25zb2xlLmVycm9yKCJFcnJvciBkdXJpbmcgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uOiIsZSksdGhpcy5lcnJvck1zZz10aGlzLmdldENyb3NzT3JpZ2luSWZyYW1lTXNnKCksdGhpcy5lcnJvck1zZ3x8KHRoaXMuZXJyb3JNc2c9YCR7dGhpcy5hcHBOYW1lfSBjb3VsZCBub3QgYmUgbG9hZGVkIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yOlxuJHtlLnRvU3RyaW5nKCl9YCksdCh0aGlzLmVycm9yTXNnKX07cmV0dXJuIEplKHRoaXMuc2NvcGUrdGhpcy5uYW1lLHtyZWdpc3RyYXRpb25PcHRpb25zOntzY29wZTp0aGlzLnNjb3BlfSxyZWdpc3RlcmVkKCl7Y29uc29sZS5sb2coIlNlcnZpY2Ugd29ya2VyIGlzIHJlZ2lzdGVyZWQiKSxlKCl9LGVycm9yKGUpe28oZSl9fSksaX0pKX1nZXRDcm9zc09yaWdpbklmcmFtZU1zZygpe3JldHVybiB0aGlzLmlzQ3Jvc3NPcmlnaW5JZnJhbWUoKT9gICAgICAgU29ycnksIFNlcnZpY2UgV29ya2VycyBjYW4gbm90IGJlIHVzZWQgaW4gY3Jvc3Mtb3JpZ2luIGlmcmFtZXMuXG4gICAgICBUaGlzIHdlYiBhcmNoaXZlIGVtYmVkIGlzIGxvYWRlZCBmcm9tICR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0gYnV0IHRoZSB0b3AgcGFnZSBpcyBvbiBhIGRpZmZlcmVudCBvcmlnaW4uXG4gICAgICBUaGUgZW1iZWQgbXVzdCBiZSBsb2FkZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4gb3IgYSBzdWJkb21haW4uYDpudWxsfWlzQ3Jvc3NPcmlnaW5JZnJhbWUoKXtpZih3aW5kb3cucGFyZW50PT09d2luZG93KXJldHVybiExO3RyeXtyZXR1cm4iIj09PXdpbmRvdy50b3AubG9jYXRpb24uaHJlZn1jYXRjaChlKXtyZXR1cm4hMH19Z2V0U1dFcnJvck1zZygpe2lmKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyKXJldHVybiB0aGlzLnJlcXVpcmVTdWJkb21haW5JZnJhbWUmJiF0aGlzLmlzQ3Jvc3NPcmlnaW5JZnJhbWUoKT9gU29ycnksIGR1ZSB0byBzZWN1cml0eSBzZXR0aW5ncywgdGhpcyAke3RoaXMuYXBwTmFtZX0gZW1iZWQgb25seSBiZSB2aWV3ZWQgd2l0aGluIGEgc3ViZG9tYWluIGlmcmFtZS5gOm51bGw7Y29uc3QgZT10aGlzLmdldENyb3NzT3JpZ2luSWZyYW1lTXNnKCk7cmV0dXJuIGV8fCh3aW5kb3cuaXNTZWN1cmVDb250ZXh0PyJNb3pBcHBlYXJhbmNlImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZT8iU29ycnksIFNlcnZpY2UgV29ya2VycyBhcmUgZGlzYWJsZWQgaW4gRmlyZWZveCBpbiBQcml2YXRlIE1vZGUuIFBsZWFzZSB0cnkgbG9hZGluZyB0aGlzIHBhZ2UgaW4gcmVndWxhciBtb2RlIGluc3RlYWQuIjpgU29ycnksICR7dGhpcy5hcHBOYW1lfSB3b24ndCB3b3JrIGluIHRoaXMgYnJvd3NlciBhcyBTZXJ2aWNlIFdvcmtlcnMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyB3aW5kb3cuXG4gIFBsZWFzZSB0cnkgYSBkaWZmZXJlbnQgYnJvd3Nlci5gOmBcbiAgICAgIFNvcnJ5LCB0aGUgJHt0aGlzLmFwcE5hbWV9IHN5c3RlbSBtdXN0IGJlIGxvYWRlZCBmcm9tIGFuIEhUVFBTIFVSTCAob3IgbG9jYWxob3N0KSwgYnV0IHdhcyBsb2FkZWQgZnJvbTogJHt3aW5kb3cubG9jYXRpb24uaG9zdH0uXG4gICAgICBQbGVhc2UgdHJ5IGxvYWRpbmcgdGhpcyBwYWdlIGZyb20gYW4gSFRUUFMgVVJMYCl9cmVuZGVyRXJyb3JSZXBvcnQoZT0iIil7Y29uc3QgdD10aGlzLmVycm9yTXNnfHxlO3JldHVybiB0P1FgCiAgICAgIDxzZWN0aW9uIGNsYXNzPSJpcy1mdWxsd2lkdGgiPgogICAgICAgIDxkaXYgY2xhc3M9Imhhcy10ZXh0LWNlbnRlcmVkIj4KICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgIHN0eWxlPSJtYXJnaW46IDFlbTtmbGV4LWdyb3c6IDE7IgogICAgICAgICAgICBpZD0id3Jsb2dvIgogICAgICAgICAgICBzaXplPSIyLjVyZW0iCiAgICAgICAgICAgIC5zdmc9JHtLZX0KICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUtd3JhcDsgdGV4dC1hbGlnbjogY2VudGVyIj4ke3R9PC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIGA6IiJ9fWZ1bmN0aW9uIG90KCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyfHwoeWllbGQgbmV3IFByb21pc2UoKGU9PntuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJjb250cm9sbGVyY2hhbmdlIiwoKCk9PntlKCl9KSl9KSkpfSkpfQovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqLwpjb25zdHtJOm50fT1mZSxydD0oZSx0KT0+e2NvbnN0IGk9ZS5fJEFOO2lmKHZvaWQgMD09PWkpcmV0dXJuITE7Zm9yKGNvbnN0IGUgb2YgaSllLl8kQU8/Lih0LCExKSxydChlLHQpO3JldHVybiEwfSxzdD1lPT57bGV0IHQsaTtkb3tpZih2b2lkIDA9PT0odD1lLl8kQU0pKWJyZWFrO2k9dC5fJEFOLGkuZGVsZXRlKGUpLGU9dH13aGlsZSgwPT09aT8uc2l6ZSl9LGF0PWU9Pntmb3IobGV0IHQ7dD1lLl8kQU07ZT10KXtsZXQgaT10Ll8kQU47aWYodm9pZCAwPT09aSl0Ll8kQU49aT1uZXcgU2V0O2Vsc2UgaWYoaS5oYXMoZSkpYnJlYWs7aS5hZGQoZSksZHQodCl9fTtmdW5jdGlvbiBsdChlKXt2b2lkIDAhPT10aGlzLl8kQU4/KHN0KHRoaXMpLHRoaXMuXyRBTT1lLGF0KHRoaXMpKTp0aGlzLl8kQU09ZX1mdW5jdGlvbiBjdChlLHQ9ITEsaT0wKXtjb25zdCBvPXRoaXMuXyRBSCxuPXRoaXMuXyRBTjtpZih2b2lkIDAhPT1uJiYwIT09bi5zaXplKWlmKHQpaWYoQXJyYXkuaXNBcnJheShvKSlmb3IobGV0IGU9aTtlPG8ubGVuZ3RoO2UrKylydChvW2VdLCExKSxzdChvW2VdKTtlbHNlIG51bGwhPW8mJihydChvLCExKSxzdChvKSk7ZWxzZSBydCh0aGlzLGUpfWNvbnN0IGR0PWU9PntlLnR5cGU9PV9lJiYoZS5fJEFQPz89Y3QsZS5fJEFRPz89bHQpfTtjbGFzcyBodCBleHRlbmRzIElle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQoZSx0LGkpe3N1cGVyLl8kQVQoZSx0LGkpLGF0KHRoaXMpLHRoaXMuaXNDb25uZWN0ZWQ9ZS5fJEFVfV8kQU8oZSx0PSEwKXtlIT09dGhpcy5pc0Nvbm5lY3RlZCYmKHRoaXMuaXNDb25uZWN0ZWQ9ZSxlP3RoaXMucmVjb25uZWN0ZWQ/LigpOnRoaXMuZGlzY29ubmVjdGVkPy4oKSksdCYmKHJ0KHRoaXMsZSksc3QodGhpcykpfXNldFZhbHVlKGUpe2lmKChlPT52b2lkIDA9PT1lLnN0cmluZ3MpKHRoaXMuXyRDdCkpdGhpcy5fJEN0Ll8kQUkoZSx0aGlzKTtlbHNle2NvbnN0IHQ9Wy4uLnRoaXMuXyRDdC5fJEFIXTt0W3RoaXMuXyRDaV09ZSx0aGlzLl8kQ3QuXyRBSSh0LHRoaXMsMCl9fWRpc2Nvbm5lY3RlZCgpe31yZWNvbm5lY3RlZCgpe319Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNvbnN0IHV0PSgpPT5uZXcgZnQ7Y2xhc3MgZnR7fWNvbnN0IHB0PW5ldyBXZWFrTWFwLG10PUNlKGNsYXNzIGV4dGVuZHMgaHR7cmVuZGVyKGUpe3JldHVybiBYfXVwZGF0ZShlLFt0XSl7Y29uc3QgaT10IT09dGhpcy5ZO3JldHVybiBpJiZ2b2lkIDAhPT10aGlzLlkmJnRoaXMucnQodm9pZCAwKSwoaXx8dGhpcy5sdCE9PXRoaXMuY3QpJiYodGhpcy5ZPXQsdGhpcy5odD1lLm9wdGlvbnM/Lmhvc3QsdGhpcy5ydCh0aGlzLmN0PWUuZWxlbWVudCkpLFh9cnQoZSl7aWYodGhpcy5pc0Nvbm5lY3RlZHx8KGU9dm9pZCAwKSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5ZKXtjb25zdCB0PXRoaXMuaHQ/P2dsb2JhbFRoaXM7bGV0IGk9cHQuZ2V0KHQpO3ZvaWQgMD09PWkmJihpPW5ldyBXZWFrTWFwLHB0LnNldCh0LGkpKSx2b2lkIDAhPT1pLmdldCh0aGlzLlkpJiZ0aGlzLlkuY2FsbCh0aGlzLmh0LHZvaWQgMCksaS5zZXQodGhpcy5ZLGUpLHZvaWQgMCE9PWUmJnRoaXMuWS5jYWxsKHRoaXMuaHQsZSl9ZWxzZSB0aGlzLlkudmFsdWU9ZX1nZXQgbHQoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5ZP3B0LmdldCh0aGlzLmh0Pz9nbG9iYWxUaGlzKT8uZ2V0KHRoaXMuWSk6dGhpcy5ZPy52YWx1ZX1kaXNjb25uZWN0ZWQoKXt0aGlzLmx0PT09dGhpcy5jdCYmdGhpcy5ydCh2b2lkIDApfXJlY29ubmVjdGVkKCl7dGhpcy5ydCh0aGlzLmN0KX19KSxidD0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05LjAxNCA4LjVjLS4wNDggMS0uMjQgMS44Ni0uNDk3IDIuNDctLjE1LjM1Ny0uMzA0LjU4Mi0uNDI0LjcwMWExIDEgMCAwIDEtLjA3LjA2MiAxIDEgMCAwIDEtLjA3LS4wNjJjLS4xMi0uMTItLjI3My0uMzQzLS40MjQtLjctLjI1Ny0uNjEtLjQ0OC0xLjQ3Mi0uNDk3LTIuNDcxek0xMC4wMTggOC41Yy0uMDUyIDEuMTgzLS4yODggMi4yMzYtLjYzOCAyLjk5OUEzLjc2IDMuNzYgMCAwIDAgMTEuNzUgOC41ek02LjY2NiAxMS40OTlBMy43NiAzLjc2IDAgMCAxIDQuMjk2IDguNWgxLjczMmMuMDUzIDEuMTgzLjI4OCAyLjIzNi42MzggMi45OTlNNy4wMzIgNy41Yy4wNDktMSAuMjQtMS44Ni40OTctMi40Ny4xNS0uMzU3LjMwNS0uNTgxLjQyNC0uNzAxYTEgMSAwIDAgMSAuMDctLjA2MnEuMDI2LjAxOC4wNy4wNjJjLjEyLjEyLjI3NC4zNDQuNDI0LjcuMjU4LjYxLjQ0OSAxLjQ3Mi40OTcgMi40NzF6TTYuMDI4IDcuNUg0LjI5NWEzLjc2IDMuNzYgMCAwIDEgMi4zNzEtMi45OTljLS4zNS43NjMtLjU4NSAxLjgxNi0uNjM4IDIuOTk5TTkuMzggNC41MDFBMy43NiAzLjc2IDAgMCAxIDExLjc1IDcuNWgtMS43MzNjLS4wNTItMS4xODMtLjI4OC0yLjIzNi0uNjM4LTIuOTk5Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTIuOTIxIDkuMDc4QTUuMDEgNS4wMSAwIDAgMSA4LjAyMyAxM2E1LjAxIDUuMDEgMCAwIDEtNC45ODEtNC40MmwtMS41MzguOTItMS40OC0uODg2Qy4zMzcgMTIuNzQ1IDMuNzk4IDE2IDguMDIzIDE2YzQuMTA0IDAgNy40ODktMy4wNzMgNy45NjUtNy4wMzhMMTQuNTQyIDh6TTE2LjAyMyA3LjM4NkMxNS43MSAzLjI1NSAxMi4yNDcgMCA4LjAyMyAwIDMuOTIgMCAuNTMzIDMuMDczLjA1NyA3LjAzOEwxLjUwNCA4bDEuNjIxLTEuMDc4QTUuMDEgNS4wMSAwIDAgMSA4LjAyMyAzYTUuMDEgNS4wMSAwIDAgMSA0Ljk4MSA0LjQybDEuNTM4LS45MnoiLz48L3N2Zz5cbic7ZnVuY3Rpb24gZ3QoZSx0KXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGk9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGUpLG89eWllbGQgY3J5cHRvLnN1YnRsZS5kaWdlc3QodCxpKSxuPUFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkobykpLm1hcCgoZT0+ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKSkuam9pbigiIik7cmV0dXJuIG59KSl9ZnVuY3Rpb24gdnQoZSl7aWYoIWUpcmV0dXJuIiI7ZS5sZW5ndGg8MTQmJihlKz0iMDAwMDAxMDEwMDAwMDAiLnN1YnN0cihlLmxlbmd0aCkpO2NvbnN0IHQ9ZS5zdWJzdHJpbmcoMCw0KSsiLSIrZS5zdWJzdHJpbmcoNCw2KSsiLSIrZS5zdWJzdHJpbmcoNiw4KSsiVCIrZS5zdWJzdHJpbmcoOCwxMCkrIjoiK2Uuc3Vic3RyaW5nKDEwLDEyKSsiOiIrZS5zdWJzdHJpbmcoMTIsMTQpKyItMDA6MDAiO3JldHVybiBuZXcgRGF0ZSh0KX1mdW5jdGlvbiB3dChlKXtsZXQgdD1udWxsO3Q9bmV3IERhdGUoZSk7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBEYXRlP3h0KHQudG9JU09TdHJpbmcoKSk6IiJ9ZnVuY3Rpb24geXQoZSl7bGV0IHQ9bnVsbDt0cnl7dD1uZXcgRGF0ZShlLnRzfHxlLmRhdGUpfWNhdGNoKGUpe31jb25zdCBpPXQmJnQgaW5zdGFuY2VvZiBEYXRlP3h0KHQudG9JU09TdHJpbmcoKSk6IiI7cmV0dXJue2RhdGU6dCx0aW1lc3RhbXA6aX19ZnVuY3Rpb24geHQoZSl7cmV0dXJuIGUucmVwbGFjZSgvWy06VF0vZywiIikuc2xpY2UoMCwxNCl9ZnVuY3Rpb24ga3QoZSx0LGksbyl7Y29uc3Qgbj1uZXcgVVJMU2VhcmNoUGFyYW1zO3JldHVybiBuLnNldCgidmlldyIsZSksbi5zZXQoInVybCIsdCksbi5zZXQoInRzIixpKSxvJiZuLnNldCgid2Fjemhhc2giLG8pLCIjIituLnRvU3RyaW5nKCl9ZnVuY3Rpb24gU3QoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt0cnl7bmV3IFVSTChlKX1jYXRjaCh0KXtlPW5ldyBVUkwoZSxkb2N1bWVudC5iYXNlVVJJKS5ocmVmfWNvbnN0IHQ9ImlkLSIrKHlpZWxkIGd0KGUsIlNIQS0yNTYiKSkuc2xpY2UoMCwxMik7cmV0dXJue3VybDplLGl0ZW06dH19KSl9ZnVuY3Rpb24gJHQoZSl7bGV0IHQ9ZS5pbmRleE9mKCI6Ly8iKSxpPTAsbz0iIixuPSIiLHI9IiI7cmV0dXJuIHQ+PTA/KG89ZS5zbGljZSgwLHQpLHQrPTMpOih0KyssZS5zdGFydHNXaXRoKCIvLyIpJiYodCs9MikpLGk9ZS5pbmRleE9mKCIvIix0KSxpPjA/KG49ZS5zbGljZSh0LGkpLHI9ZS5zbGljZShpKSk6KG49ZS5zbGljZSh0KSxyPSIiKSx7c2NoZW1lOm8saG9zdDpuLHBhdGg6cn19Y29uc3QgenQ9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTIxNiAwaDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0djE2OGg4Ny43YzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDI2OS43IDM3OC4zYy03LjUgNy41LTE5LjggNy41LTI3LjMgMEw5MC4xIDIyNi4xYy0xMi42LTEyLjYtMy43LTM0LjEgMTQuMS0zNC4xSDE5MlYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMjk2IDM3NnYxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxNDYuN2w0OSA0OWMyMC4xIDIwLjEgNTIuNSAyMC4xIDcyLjYgMGw0OS00OUg0ODhjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bS0xMjQgODhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHptNjQgMGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIweiIvPjwvc3ZnPicsX3Q9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHptLTYgNDAwSDU0YTYgNiAwIDAgMS02LTZWODZhNiA2IDAgMCAxIDYtNmg0MDRhNiA2IDAgMCAxIDYgNnYzNDBhNiA2IDAgMCAxLTYgNnptLTQyLTkydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0wLTk2djI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0wLTk2djI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0tMjUyIDEyYzAgMTkuODgyLTE2LjExOCAzNi0zNiAzNnMtMzYtMTYuMTE4LTM2LTM2IDE2LjExOC0zNiAzNi0zNiAzNiAxNi4xMTggMzYgMzZ6bTAgOTZjMCAxOS44ODItMTYuMTE4IDM2LTM2IDM2cy0zNi0xNi4xMTgtMzYtMzYgMTYuMTE4LTM2IDM2LTM2IDM2IDE2LjExOCAzNiAzNnptMCA5NmMwIDE5Ljg4Mi0xNi4xMTggMzYtMzYgMzZzLTM2LTE2LjExOC0zNi0zNiAxNi4xMTgtMzYgMzYtMzYgMzYgMTYuMTE4IDM2IDM2eiIvPjwvc3ZnPicsQ3Q9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTc2IDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTUyOCAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHYzMjBjMCAyNi41IDIxLjUgNDggNDggNDhoMTkybC0xNiA0OGgtNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMjcyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0aC03MmwtMTYtNDhoMTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMTYgMzUySDY0VjY0aDQ0OHYyODh6Ii8+PC9zdmc+JyxJdD0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNMjAwIDI4OEg4OGMtMjEuNCAwLTMyLjEgMjUuOC0xNyA0MWwzMi45IDMxLTk5LjIgOTkuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMjUuNCAyNS40YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwTDE1MiA0MDhsMzEuMSAzM2MxNS4xIDE1LjEgNDAuOSA0LjQgNDAuOS0xN1YzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTExMi02NGgxMTJjMjEuNCAwIDMyLjEtMjUuOSAxNy00MWwtMzMtMzEgOTkuMy05OS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQ4MS45IDQuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMzYwIDEwNGwtMzEuMS0zM0MzMTMuOCA1NS45IDI4OCA2Ni42IDI4OCA4OHYxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjR6bTk2IDEzNmwzMy0zMS4xYzE1LjEtMTUuMSA0LjQtNDAuOS0xNy00MC45SDMxMmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTEyYzAgMjEuNCAyNS45IDMyLjEgNDEgMTdsMzEtMzIuOSA5OS4zIDk5LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMjUuNC0yNS40YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQwOCAzNjB6TTE4MyA3MS4xTDE1MiAxMDQgNTIuNyA0LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDQuNyAzMC4xYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNkwxMDQgMTUybC0zMyAzMS4xQzU1LjkgMTk4LjIgNjYuNiAyMjQgODggMjI0aDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY4OGMwLTIxLjMtMjUuOS0zMi00MS0xNi45eiIvPjwvc3ZnPic7dmFyIEx0PV9fd2VicGFja19yZXF1aXJlX18oNDMxKSxFdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oTHQpO2NvbnN0IEF0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFsuLi5uYXZpZ2F0b3IubGFuZ3VhZ2VzXSx7bW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCIseWVhcjoibnVtZXJpYyIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQifSksVHQ9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoWy4uLm5hdmlnYXRvci5sYW5ndWFnZXNdLHttb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iix5ZWFyOiJudW1lcmljIn0pLFB0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFsuLi5uYXZpZ2F0b3IubGFuZ3VhZ2VzXSx7aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQifSk7Y2xhc3MgRHQgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2xsSW5mbz1udWxsLHRoaXMudHM9bnVsbCx0aGlzLnVybD1udWxsLHRoaXMuYWN0aXZlPSExfWdldCByZW5kZXJSb290KCl7cmV0dXJuIHRoaXN9c3RhdGljIGdldCBlbWJlZFN0eWxlcygpe3JldHVybiBoYAogICAgICByd3AtZW1iZWQtcmVjZWlwdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAuaWNvbiB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wOwogICAgICB9CgogICAgICAjZW1iZWQtZHJvcGRvd24gewogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA1MHB4KTsKICAgICAgICBwYWRkaW5nLXRvcDogMDsKICAgICAgICBtYXJnaW4tdG9wOiAtMC41cmVtOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgbGluZWFyOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKDApOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC4xNSwgMCwgMC4xLCAxKTsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCA4cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkpOwogICAgICB9CgogICAgICAuZHJvcGRvd24uaXMtYWN0aXZlICNlbWJlZC1kcm9wZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICBidXR0b24uZW1iZWQtaW5mbyB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7CiAgICAgICAgaGVpZ2h0OiA0MnB4OwogICAgICAgIGJvcmRlci1jb2xvcjogI2QxZDVkYTsKICAgICAgICBib3JkZXItd2lkdGg6IDFweDsKICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkpOwogICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwbXM7CiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICBidXR0b24uZW1iZWQtaW5mbzphY3RpdmUgewogICAgICAgIGNvbG9yOiBpbml0aWFsOwogICAgICB9CgogICAgICBidXR0b24uZW1iZWQtaW5mbzpob3ZlciB7CiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMikpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMSk7CiAgICAgIH0KCiAgICAgIGJ1dHRvbi5lbWJlZC1pbmZvOmhvdmVyOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMjVyZW0pOwogICAgICB9CgogICAgICAuZW1iZWQtaW5mby1idXR0b250ZXh0IHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIHRleHQtYWxpZ246IHN0YXJ0OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmVtYmVkLWluZm8tZHJvcCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHBhZGRpbmc6IDFyZW07CiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07CiAgICAgICAgbWF4LXdpZHRoOiAzOHJlbTsKICAgICAgICBtYXgtaGVpZ2h0OiA0MnJlbTsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7CiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDsKICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmVtYmVkLWluZm8tZHJvcCA+IHAgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWRyb3AgPiBoMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7CiAgICAgICAgY29sb3I6ICMyNDI5MmU7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWRyb3Atc3RhdHNjb250YWluZXIgPiBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAjMzk0MTQ2OwogICAgICB9CgogICAgICAuZW1iZWQtaW5mby1kcm9wLXN0YXRzY29udGFpbmVyID4gcCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiBibGFjazsKICAgICAgfQoKICAgICAgLmVtYmVkLWluZm8tZHJvcCBhIHsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWRyb3AgLnNob3ctaGFzaCB7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWRyb3AgLnNob3cta2V5IHsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHdoaXRlc3BhY2U6IG5vd3JhcDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZW1iZWQtbG9nbyB7CiAgICAgICAgbWFyZ2luOiAwLjVyZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDAuNXJlbTsKICAgICAgfQogICAgYH1yZW5kZXIoKXt2YXIgZSx0LGksbztjb25zdHtudW1WYWxpZDpuPTAsbnVtSW52YWxpZDpyPTAsZG9tYWluOnMsY2VydEZpbmdlcnByaW50OmEsZGF0YXBhY2thZ2VIYXNoOmwscHVibGljS2V5OmMsc29mdHdhcmU6ZH09bnVsbCE9PSh0PW51bGw9PT0oZT10aGlzLmNvbGxJbmZvKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS52ZXJpZnkpJiZ2b2lkIDAhPT10P3Q6e30saD1udWxsPT09KGk9dGhpcy5jb2xsSW5mbyl8fHZvaWQgMD09PWk/dm9pZCAwOmkuc291cmNlVXJsLHU9YT9gaHR0cHM6Ly9jcnQuc2gvP3E9JHthfWA6IiIsZj10aGlzLnRzP0F0LmZvcm1hdCh2dCh0aGlzLnRzKSk6IiI7cmV0dXJuIFFgCiAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duIG1iLTQgJHt0aGlzLmFjdGl2ZT8iaXMtYWN0aXZlIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLXRyaWdnZXIgZW1iZWQtaW5mby1jb250YWluZXIiPgogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0iZW1iZWQtaW5mbyBpcy1zbWFsbCBpcy1yb3VuZGVkIG10LTQiCiAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9InRydWUiCiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9ImVtYmVkLWRyb3Bkb3duIgogICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkVtYmVkRHJvcH0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgY2xhc3M9ImVtYmVkLWxvZ28iCiAgICAgICAgICAgICAgc2l6ZT0iMS41cmVtIgogICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgIC5zdmc9JHtLZX0KICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtYmVkLWluZm8tYnV0dG9udGV4dCI+CiAgICAgICAgICAgICAgVGhpcyBlbWJlZCBpcyBwYXJ0IG9mIGEgd2ViIGFyY2hpdmUuIENsaWNrIGhlcmUgdG8gbGVhcm4gbW9yZS4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1zbWFsbCBtci00IG1sLTIiPgogICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICB0aXRsZT0iVG9nZ2xlIgogICAgICAgICAgICAgICAgLnN2Zz0iJHt0aGlzLmFjdGl2ZT8nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2hldnJvbi1kb3VibGUtdXAiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcuNjQ2IDIuNjQ2YS41LjUgMCAwIDEgLjcwOCAwbDYgNmEuNS41IDAgMCAxLS43MDguNzA4TDggMy43MDcgMi4zNTQgOS4zNTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsNi02eiIvPlxuICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjY0NiA2LjY0NmEuNS41IDAgMCAxIC43MDggMGw2IDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDcuNzA3bC01LjY0NiA1LjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOGw2LTZ6Ii8+XG48L3N2Zz4nOic8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1jaGV2cm9uLWRvdWJsZS1kb3duIiB2aWV3Qm94PSIwIDAgMTYgMTYiPlxuICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjY0NiA2LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDEyLjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHoiLz5cbiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS42NDYgMi42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA4LjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHoiLz5cbjwvc3ZnPid9IgogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLW1lbnUgZW1iZWQtaW5mby1jb250YWluZXIiCiAgICAgICAgICBpZD0iZW1iZWQtZHJvcGRvd24iCiAgICAgICAgICByb2xlPSJtZW51IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQgZW1iZWQtaW5mby1kcm9wIj4KICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTQiPgogICAgICAgICAgICAgIEV2ZW4gaWYgdGhlIG9yaWdpbmFsIHBhZ2UgZ29lcyBvZmZsaW5lIG9yIGlzIGNoYW5nZWQsIHRoZSBjb250ZW50CiAgICAgICAgICAgICAgYmVsb3cgd2lsbCByZW1haW4gdW5jaGFuZ2VkIGFzIGl0IGlzIGxvYWRlZCBmcm9tIGEgd2ViIGFyY2hpdmUuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPGhyIGNsYXNzPSJkcm9wZG93bi1kaXZpZGVyIiAvPgogICAgICAgICAgICA8aDIgY2xhc3M9Im10LTQiPkdldCBBIENvcHkhPC9oMj4KICAgICAgICAgICAgPHAgY2xhc3M9Im10LTIiPgogICAgICAgICAgICAgIEFmdGVyIGRvd25sb2FkaW5nLCB0aGlzIHdlYiBhcmNoaXZlIGNhbiBiZSBsb2FkZWQgYW5kIHZpZXdlZAogICAgICAgICAgICAgIGRpcmVjdGx5IGluIHlvdXIgYnJvd3NlciB2aWEKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgc3R5bGU9IndoaXRlLXNwYWNlOiBub3dyYXA7IgogICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3JlcGxheXdlYi5wYWdlIgogICAgICAgICAgICAgICAgPlJlcGxheVdlYi5wYWdlPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAke2g/UWAKICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICBocmVmPSIke2h9IgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJidXR0b24gaXMtcHJpbWFyeSBtdC00IgogICAgICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1zbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgIC5zdmc9IiR7enR9IgogICAgICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RG93bmxvYWQgQXJjaGl2ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIgbXQtNCIgLz4KICAgICAgICAgICAgICAgIGA6WH0KICAgICAgICAgICAgPGgyIGNsYXNzPSJtdC00Ij5UZWNobmljYWwgSW5mb3JtYXRpb248L2gyPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbWJlZC1pbmZvLWRyb3Atc3RhdHNjb250YWluZXIgbWItNCI+CiAgICAgICAgICAgICAgJHt0aGlzLnVybD9RYAogICAgICAgICAgICAgICAgICAgIDxoMz5PcmlnaW5hbCBVUkw6PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIke3RoaXMudXJsfSI+JHt0aGlzLnVybH08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICBgOlh9CiAgICAgICAgICAgICAgPGgzIGNsYXNzPSJtdC0yIj5BcmNoaXZlZCBPbjo8L2gzPgogICAgICAgICAgICAgIDxwPiR7Zn08L3A+CiAgICAgICAgICAgICAgJHtzP1FgCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJtdC0yIj5PYnNlcnZlZCBCeTo8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwPiR7c308L3A+CiAgICAgICAgICAgICAgICAgICAgJHt1P1FgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIke3V9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPlZpZXcgQ2VydGlmaWNhdGU8L2EKICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5gOiIifQogICAgICAgICAgICAgICAgICBgOmQ/UWAgPGgzIGNsYXNzPSJtdC0yIj5DcmVhdGVkIFdpdGg6PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD4ke2R9PC9wPmA6IiJ9CiAgICAgICAgICAgICAgJHshcyYmYz9RYCA8aDMgY2xhc3M9Im10LTIiPk9ic2VydmVyIFB1YmxpYyBLZXk6PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2hvdy1rZXkiPiR7Y308L3A+YDoiIn0KICAgICAgICAgICAgICA8aDMgY2xhc3M9Im10LTIiPlZhbGlkYXRpb246PC9oMz4KICAgICAgICAgICAgICAke24+MHx8cj4wP1FgIDxwPgogICAgICAgICAgICAgICAgICAgICR7bn0gaGFzaGVzCiAgICAgICAgICAgICAgICAgICAgdmVyaWZpZWQke3I/UWAsICR7cn0gaW52YWxpZGA6IiJ9CiAgICAgICAgICAgICAgICAgIDwvcD5gOlFgIDxwPk5vdCBBdmFpbGFibGU8L3A+IGB9CiAgICAgICAgICAgICAgPGgzIGNsYXNzPSJtdC0yIj5QYWNrYWdlIEhhc2g6PC9oMz4KICAgICAgICAgICAgICA8cCBjbGFzcz0ic2hvdy1oYXNoIj4ke2x9PC9wPgogICAgICAgICAgICAgICR7bnVsbCE9KG51bGw9PT0obz10aGlzLmNvbGxJbmZvKXx8dm9pZCAwPT09bz92b2lkIDA6by5zaXplKT9RYAogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0ibXQtMiI+U2l6ZTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHA+JHtFdCgpKE51bWJlcih0aGlzLmNvbGxJbmZvLnNpemV8fDApKX08L3A+CiAgICAgICAgICAgICAgICAgIGA6WH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7aD9RYGA6IiJ9CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iaXMtc2l6ZS03IGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtYWxpZ24taXRlbXMtY2VudGVyIgogICAgICAgICAgICAgIHN0eWxlPSJtYXJnaW4tdG9wOiA0MHB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3dlYnJlY29yZGVyLm5ldC8iCiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IldlYnJlY29yZGVyIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgICAgIHNpemU9IiIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjFyZW0iCiAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEwcmVtIgogICAgICAgICAgICAgICAgICAgIC5zdmc9JHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMTQyIDk2Ij48cGF0aCBkPSJNMjkuNDM4IDI0LjQzOEMyMi40NzQgMjkuOTM1IDE4IDM4LjQ0OSAxOCA0OGMwIDE2LjU1NyAxMy40NDMgMzAgMzAgMzBoMjZjMTYuNTU3IDAgMzAtMTMuNDQzIDMwLTMwdi03YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY3YzAgMjYuNDkyLTIxLjUwOCA0OC00OCA0OEg0OEMyMS41MDggOTYgMCA3NC40OTIgMCA0OGMwLTE0LjUxNyA2LjQ1OC0yNy41MzkgMTYuNjU3LTM2LjM0M2wtOS45NS05Ljk1QTEuMDAyIDEuMDAyIDAgMCAxIDcuNDE0IDBINDBhMSAxIDAgMCAxIDEgMXYzMi41ODZhMS4wMDIgMS4wMDIgMCAwIDEtMS43MDcuNzA3eiIgZmlsbD0iIzA4OGVhZiIvPjxwYXRoIGQ9Ik0xNDQuNTYyIDcxLjU2MkMxNTEuNTI2IDY2LjA2NSAxNTYgNTcuNTUxIDE1NiA0OGMwLTE2LjU1Ny0xMy40NDMtMzAtMzAtMzBoLTI2Yy0xNi41NTcgMC0zMCAxMy40NDMtMzAgMzB2N2EyIDIgMCAwIDEtMiAySDU0YTIgMiAwIDAgMS0yLTJ2LTdjMC0yNi40OTIgMjEuNTA4LTQ4IDQ4LTQ4aDI2YzI2LjQ5MiAwIDQ4IDIxLjUwOCA0OCA0OCAwIDE0LjUxNy02LjQ1OCAyNy41MzktMTYuNjU3IDM2LjM0M2w5Ljk1IDkuOTVhMS4wMDIgMS4wMDIgMCAwIDEtLjcwNyAxLjcwN0gxMzRhMSAxIDAgMCAxLTEtMVY2Mi40MTRhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN3oiIGZpbGw9IiM0ZDdjMGYiLz48cGF0aCBkPSJNMjQwLjQ5NyA5NC42ODVoLTE2LjE3NUwyMTIuMzU1IDYuOTdWMS4zMTVoMjAuNjQ2bDYuODIyIDUzLjQ3N0wyNTQuNyAxNi4wNDRoOC41NDhsMTQuNjQ1IDM4LjAwOSA3LjA1My01Mi43MzhoMjAuMzg0VjYuOTdsLTExLjgzNiA4Ny43MTVoLTE2LjU3bC0xNy43NTMtNDMuMDAzLS4zMjktMS4wNTUtLjMyOSAxLjA1NXptMTM4LjM4NyAwaC01Ny43MzFWMS4zMTVoNTcuNzMxdjE4LjY3NGgtMzYuNTU5djIwLjUxNWgzMy41MzV2MTQuODZoLTMzLjUzNXYyMC42NDdoMzYuNTU5em02My40MzggMGgtNDUuMjM5VjEuMzE1aDQ1LjYzM3ExMS44MzYgMCAxOC4xNDggNS45MTggNi4zMTMgNS43ODYgNi4zMTMgMTUuOTEyIDAgOC40MTYtNS4zOTIgMTQuOTkyLTIuOTc1IDMuNzE5LTcuMjk2IDYuNTk2IDUuNTEgMi4zNzIgOS4wMDUgNi40MjMgNS43ODcgNi43MDcgNS43ODcgMTcuMDk2IDAgMTIuMjMtNi44MzkgMTkuMzMyLTYuODM3IDcuMTAxLTIwLjEyIDcuMTAxbS0yNC4wNjYtNDAuMTF2MjMuNjcyaDE5Ljk4OXE0LjczNCAwIDcuMTAyLTIuODk0IDIuNDk4LTMuMDI0IDIuNDk4LTguNjc5IDAtNS43ODYtMi40OTgtOC45NDMtMi0yLjYzLTUuNDI5LTMuMTU2em0wLTM3LjM0OHYyNC4xOThoMjEuMzI0YTIwLjcgMjAuNyAwIDAgMCA0LjMyLTUuNTI0IDE2LjQ2IDE2LjQ2IDAgMCAwIDEuOTczLTcuODlxMC00Ljg2Ni0yLjQ5OS03Ljc1OS0yLjM2Ny0zLjAyNS02LjU3NS0zLjAyNXptODkuOTI3IDQ2LjI5MXYzMS4xNjdoLTIxLjE3MlYxLjMxNWg0MS42ODdxMTQuMzM0IDAgMjEuNjk5IDcuMTAxIDcuNDk2IDcuMTAyIDcuNDk2IDE5LjcyNiAwIDEwLjY1My01LjY1NSAxOC42NzQtMy42NzcgNS4yNTQtOS41NyAxMC4wNDFsMTUuODgyIDMyLjgzMXY0Ljk5N2gtMjAuNzc4bC0xNi41MzctMzEuMTY3em0wLTQ1LjUwMnYzMC4zNzhoMTkuODQzYTE5LjcgMTkuNyAwIDAgMCA1LjkzMy02LjgzOHEyLjYzLTQuNzM0IDIuNjMtMTAuNzgzIDAtNi4xODEtMi44OTMtOS40NjktMi43NjItMy4yODgtOC4wMjItMy4yODh6bTEyNS45NzQgNzYuNjY5aC01Ny43MzJWMS4zMTVoNTcuNzMydjE4LjY3NGgtMzYuNTU5djIwLjUxNWgzMy41MzR2MTQuODZoLTMzLjUzNHYyMC42NDdoMzYuNTU5ek02ODguNzgzIDk2cS0xMy4xNTEgMC0yMi4yMjUtNC43MzQtOS4wNzQtNC44NjYtMTMuOTQtMTUuNTE4VDY0Ny43NTMgNDh0NC45OTctMjcuNzQ4IDE0LjIwMy0xNS4zODZRNjc2LjE1OCAwIDY4OS4wNDYgMHE1LjI2IDAgOS45OTQuNTI2IDQuNzM0LjUyNyA4LjgxMSAxLjcxbC0yLjg5MyAxOC4wMTZxLTYuMTgtMS4zMTUtMTMuNTQ1LTEuMzE1LTcuNDk2IDAtMTIuNDkzIDMuMDI1LTQuODY2IDMuMDI0LTcuNDk2IDkuNDY4LTIuNDk5IDYuMzEyLTIuNDk5IDE2LjU3dDIuNDk5IDE2LjcwMXEyLjQ5OSA2LjQ0NCA3LjM2NCA5LjQ2OSA0Ljg2NiAyLjg5MyAxMS45NjcgMi44OTMgNy40OTYgMCAxNC41OTgtMS40NDdsMi44OTMgMTguMTQ4YTY3IDY3IDAgMCAxLTkuMzM3IDEuNzFxLTQuNzM1LjUyNi0xMC4xMjYuNTI2bTY5LjA0NiAwcS0xMi4zNjEgMC0yMC43NzgtNC43MzQtOC4yODUtNC43MzQtMTIuNjI1LTE1LjI1NS00LjM0LTEwLjUyLTQuMzQtMjcuODggMC0xNy40OSA0LjM0LTI4LjAxMSA0LjM0LTEwLjY1MiAxMi42MjUtMTUuMzg2UTc0NS40NjcgMCA3NTcuODI5IDB0MjAuNTE1IDQuNzM0cTguMjg1IDQuNzM0IDEyLjYyNSAxNS4zODYgNC40NzEgMTAuNTIxIDQuNDcxIDI4LjAxMSAwIDE3LjIyOC00LjM0IDI3Ljc0OC00LjM0IDEwLjUyMS0xMi43NTYgMTUuMzg3UTc3MC4wNTkgOTYgNzU3LjgyOSA5Nm0wLTE2LjgzM3E1LjI2IDAgOC44MTEtMi40OTkgMy41NS0yLjYzIDUuNTIzLTkuMzM3IDIuMTA0LTYuODM3IDIuMTA0LTE5LjIgMC0xMi4yMy0yLjEwNC0xOS4wNjgtMS45NzItNi45Ny01LjUyMy05LjYtMy41NS0yLjc2Mi04LjgxMS0yLjYzLTUuNTIzLjEzMS05LjIwNiAyLjc2MS0zLjU1IDIuNS01LjUyMyA5LjMzNy0xLjg0IDYuODM5LTEuODQxIDE5LjIgMCAxMi4zNjMgMS45NzMgMTkuMiAxLjk3MiA2LjgzOSA1LjUyMyA5LjMzNyAzLjY4MiAyLjQ5OSA5LjA3NCAyLjQ5OW03NS4zOTItMTUuNjQ5djMxLjE2N2gtMjEuMTcyVjEuMzE1aDQxLjY4N3ExNC4zMzQgMCAyMS42OTkgNy4xMDEgNy40OTYgNy4xMDIgNy40OTYgMTkuNzI2IDAgMTAuNjUzLTUuNjU1IDE4LjY3NC0zLjY3NyA1LjI1NC05LjU3IDEwLjA0MWwxNS44ODIgMzIuODMxdjQuOTk3SDg2Mi44MWwtMTYuNTM3LTMxLjE2N3ptMC00NS41MDJ2MzAuMzc4aDE5Ljg0M2ExOS43IDE5LjcgMCAwIDAgNS45MzMtNi44MzhxMi42My00LjczNCAyLjYzLTEwLjc4MyAwLTYuMTgxLTIuODkzLTkuNDY5LTIuNzYzLTMuMjg4LTguMDIyLTMuMjg4em0xMDEuNTEzIDc2LjY2OWgtMzMuMjcxVjEuMzE1aDMzLjc5N3ExMS45NjggMCAyMC4yNTMgNC45OTcgOC40MTYgNC44NjYgMTIuNzU2IDE1LjM4NyA0LjQ3MSAxMC4zODkgNC40NzEgMjYuODI3IDAgMTYuMDQ0LTQuNDcxIDI2LjMwMS00LjM0IDEwLjI1OC0xMi43NTYgMTUuMTI0LTguNDE2IDQuNzM0LTIwLjc3OSA0LjczNG0tMTIuMDk4LTc2LjUzN3Y1OS43MDRoMTEuNzA0cTUuNzg1IDAgOS42LTMuMjg4IDMuODEzLTMuMjg3IDUuNjU1LTkuNzMxIDEuODQtNi41NzYgMS44NDEtMTYuMzA3IDAtMTQuOTkyLTQuMjA4LTIyLjYxOS00LjIwOS03Ljc2LTEyLjg4OC03Ljc1OXpNMTA0Ny4yIDk0LjY4NWgtNTcuNzM1VjEuMzE1aDU3LjczNXYxOC42NzRoLTM2LjU2djIwLjUxNWgzMy41M3YxNC44NmgtMzMuNTN2MjAuNjQ3aDM2LjU2em0zOS4zNy0zMS4xNjd2MzEuMTY3aC0yMS4xOFYxLjMxNWg0MS42OWM5LjU2IDAgMTYuNzkgMi4zNjcgMjEuNyA3LjEwMXE3LjUgNy4xMDIgNy41IDE5LjcyNmMwIDcuMTAyLTEuODkgMTMuMzI2LTUuNjYgMTguNjc0cS0zLjY3NSA1LjI1NC05LjU3IDEwLjA0MWwxNS44OCAzMi44MzF2NC45OTdoLTIwLjc3bC0xNi41NC0zMS4xNjd6bTAtNDUuNTAydjMwLjM3OGgxOS44NGExOS42NSAxOS42NSAwIDAgMCA1LjkzLTYuODM4YzEuNzYtMy4xNTYgMi42My02Ljc1MSAyLjYzLTEwLjc4MyAwLTQuMTIxLS45Ni03LjI3Ny0yLjg5LTkuNDY5LTEuODQtMi4xOTItNC41MS0zLjI4OC04LjAyLTMuMjg4eiIgZmlsbD0iY3VycmVudENvbG9yIi8+PC9zdmc+J30KICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSIiCiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImNvbG9yOiMwMDEyMTk7IgogICAgICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgY2xhc3M9Imhhcy10ZXh0LWJsYWNrIgogICAgICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayIKICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYnJlY29yZGVyL3JlcGxheXdlYi5wYWdlIgogICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJSZXBsYXlXZWIucGFnZSBzb3VyY2UgY29kZSIKICAgICAgICAgICAgICAgICAgPlNvdXJjZSBDb2RlCiAgICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1lbnUtbG9nbyBtbC0xIgogICAgICAgICAgICAgICAgICAgIHNpemU9IjFyZW0iCiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgLnN2Zz0keyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ5NiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0xNjUuOSAzOTcuNGMwIDItMi4zIDMuNi01LjIgMy42LTMuMy4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUuMy02LjIgMi4zem00NC4yLTEuN2MtMi45LjctNC45IDIuNi00LjYgNC45LjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjQ0LjggOEMxMDYuMSA4IDAgMTEzLjMgMCAyNTJjMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xQzQyOC4yIDQ1Ny44IDQ5NiAzNjIuOSA0OTYgMjUyIDQ5NiAxMTMuMyAzODMuNSA4IDI0NC44IDh6TTk3LjIgMzUyLjljLTEuMyAxLTEgMy4zLjcgNS4yIDEuNiAxLjYgMy45IDIuMyA1LjIgMSAxLjMtMSAxLTMuMy0uNy01LjItMS42LTEuNi0zLjktMi4zLTUuMi0xem0tMTAuOC04LjFjLS43IDEuMy4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNi43IDQuMy0uNy43LTEuMy0uMy0yLjktMi4zLTMuOS0yLS42LTMuNi0uMy00LjMuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMuNy00LjMtMS4zLTYuMi0yLjItMi4zLTUuMi0yLjYtNi41LTF6bS0xMS40LTE0LjdjLTEuNiAxLTEuNiAzLjYgMCA1LjkgMS42IDIuMyA0LjMgMy4zIDUuNiAyLjMgMS42LTEuMyAxLjYtMy45IDAtNi4yLTEuNC0yLjMtNC0zLjMtNS42LTJ6Ii8+PC9zdmc+J30KICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1vbkVtYmVkRHJvcChlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuYWN0aXZlPSF0aGlzLmFjdGl2ZX19dChbeWUoe3R5cGU6T2JqZWN0fSldLER0LnByb3RvdHlwZSwiY29sbEluZm8iLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLER0LnByb3RvdHlwZSwidHMiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLER0LnByb3RvdHlwZSwidXJsIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sRHQucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJyd3AtZW1iZWQtcmVjZWlwdCIsRHQpO3ZhciBGdD0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6bnVsbCxNdD1udWxsPT09RnQsUnQ9TXQ/dm9pZCAwOkZ0LmRvY3VtZW50LE90PSJhZGRFdmVudExpc3RlbmVyIixVdD0icmVtb3ZlRXZlbnRMaXN0ZW5lciIsQnQ9ImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsTnQ9Il9hIixxdD0iX2IiLGp0PSJfYyIsSHQ9Imhvcml6b250YWwiLFd0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LFZ0PU10PyJjYWxjIjpbIiIsIi13ZWJraXQtIiwiLW1vei0iLCItby0iXS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3ZhciB0PVJ0LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnN0eWxlLmNzc1RleHQ9IndpZHRoOiIrZSsiY2FsYyg5cHgpIiwhIXQuc3R5bGUubGVuZ3RofSkpLnNoaWZ0KCkrImNhbGMiLEd0PWZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIFN0cmluZ30sS3Q9ZnVuY3Rpb24oZSl7aWYoR3QoZSkpe3ZhciB0PVJ0LnF1ZXJ5U2VsZWN0b3IoZSk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RvciAiK2UrIiBkaWQgbm90IG1hdGNoIGEgRE9NIGVsZW1lbnQiKTtyZXR1cm4gdH1yZXR1cm4gZX0sWXQ9ZnVuY3Rpb24oZSx0LGkpe3ZhciBvPWVbdF07cmV0dXJuIHZvaWQgMCE9PW8/bzppfSxRdD1mdW5jdGlvbihlLHQsaSxvKXtpZih0KXtpZigiZW5kIj09PW8pcmV0dXJuIDA7aWYoImNlbnRlciI9PT1vKXJldHVybiBlLzJ9ZWxzZSBpZihpKXtpZigic3RhcnQiPT09bylyZXR1cm4gMDtpZigiY2VudGVyIj09PW8pcmV0dXJuIGUvMn1yZXR1cm4gZX0sWnQ9ZnVuY3Rpb24oZSx0KXt2YXIgaT1SdC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gaS5jbGFzc05hbWU9Imd1dHRlciBndXR0ZXItIit0LGl9LEp0PWZ1bmN0aW9uKGUsdCxpKXt2YXIgbz17fTtyZXR1cm4gR3QodCk/b1tlXT10Om9bZV09VnQrIigiK3QrIiUgLSAiK2krInB4KSIsb30sWHQ9ZnVuY3Rpb24oZSx0KXt2YXIgaTtyZXR1cm4oaT17fSlbZV09dCsicHgiLGl9O2NvbnN0IGVpPWZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwPT09dCYmKHQ9e30pLE10KXJldHVybnt9O3ZhciBpLG8sbixyLHMsYSxsPWU7QXJyYXkuZnJvbSYmKGw9QXJyYXkuZnJvbShsKSk7dmFyIGM9S3QobFswXSkucGFyZW50Tm9kZSxkPWdldENvbXB1dGVkU3R5bGU/Z2V0Q29tcHV0ZWRTdHlsZShjKTpudWxsLGg9ZD9kLmZsZXhEaXJlY3Rpb246bnVsbCx1PVl0KHQsInNpemVzIil8fGwubWFwKChmdW5jdGlvbigpe3JldHVybiAxMDAvbC5sZW5ndGh9KSksZj1ZdCh0LCJtaW5TaXplIiwxMDApLHA9QXJyYXkuaXNBcnJheShmKT9mOmwubWFwKChmdW5jdGlvbigpe3JldHVybiBmfSkpLG09WXQodCwibWF4U2l6ZSIsMS8wKSxiPUFycmF5LmlzQXJyYXkobSk/bTpsLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gbX0pKSxnPVl0KHQsImV4cGFuZFRvTWluIiwhMSksdj1ZdCh0LCJndXR0ZXJTaXplIiwxMCksdz1ZdCh0LCJndXR0ZXJBbGlnbiIsImNlbnRlciIpLHk9WXQodCwic25hcE9mZnNldCIsMzApLHg9WXQodCwiZHJhZ0ludGVydmFsIiwxKSxrPVl0KHQsImRpcmVjdGlvbiIsSHQpLFM9WXQodCwiY3Vyc29yIixrPT09SHQ/ImNvbC1yZXNpemUiOiJyb3ctcmVzaXplIiksJD1ZdCh0LCJndXR0ZXIiLFp0KSx6PVl0KHQsImVsZW1lbnRTdHlsZSIsSnQpLF89WXQodCwiZ3V0dGVyU3R5bGUiLFh0KTtmdW5jdGlvbiBDKGUsdCxvLG4pe3ZhciByPXooaSx0LG8sbik7T2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5zdHlsZVt0XT1yW3RdfSkpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gYS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNpemV9KSl9ZnVuY3Rpb24gTChlKXtyZXR1cm4idG91Y2hlcyJpbiBlP2UudG91Y2hlc1swXVtvXTplW29dfWZ1bmN0aW9uIEUoZSl7dmFyIHQ9YVt0aGlzLmFdLGk9YVt0aGlzLmJdLG89dC5zaXplK2kuc2l6ZTt0LnNpemU9ZS90aGlzLnNpemUqbyxpLnNpemU9by1lL3RoaXMuc2l6ZSpvLEModC5lbGVtZW50LHQuc2l6ZSx0aGlzW3F0XSx0LmkpLEMoaS5lbGVtZW50LGkuc2l6ZSx0aGlzW2p0XSxpLmkpfWZ1bmN0aW9uIEEoZSl7dmFyIGksbz1hW3RoaXMuYV0sbj1hW3RoaXMuYl07dGhpcy5kcmFnZ2luZyYmKGk9TChlKS10aGlzLnN0YXJ0Kyh0aGlzW3F0XS10aGlzLmRyYWdPZmZzZXQpLHg+MSYmKGk9TWF0aC5yb3VuZChpL3gpKngpLGk8PW8ubWluU2l6ZSt5K3RoaXNbcXRdP2k9by5taW5TaXplK3RoaXNbcXRdOmk+PXRoaXMuc2l6ZS0obi5taW5TaXplK3krdGhpc1tqdF0pJiYoaT10aGlzLnNpemUtKG4ubWluU2l6ZSt0aGlzW2p0XSkpLGk+PW8ubWF4U2l6ZS15K3RoaXNbcXRdP2k9by5tYXhTaXplK3RoaXNbcXRdOmk8PXRoaXMuc2l6ZS0obi5tYXhTaXplLXkrdGhpc1tqdF0pJiYoaT10aGlzLnNpemUtKG4ubWF4U2l6ZSt0aGlzW2p0XSkpLEUuY2FsbCh0aGlzLGkpLFl0KHQsIm9uRHJhZyIsV3QpKEkoKSkpfWZ1bmN0aW9uIFQoKXt2YXIgZT1hW3RoaXMuYV0uZWxlbWVudCx0PWFbdGhpcy5iXS5lbGVtZW50LG89ZVtCdF0oKSxzPXRbQnRdKCk7dGhpcy5zaXplPW9baV0rc1tpXSt0aGlzW3F0XSt0aGlzW2p0XSx0aGlzLnN0YXJ0PW9bbl0sdGhpcy5lbmQ9b1tyXX1mdW5jdGlvbiBQKGUpe3ZhciB0PWZ1bmN0aW9uKGUpe2lmKCFnZXRDb21wdXRlZFN0eWxlKXJldHVybiBudWxsO3ZhciB0PWdldENvbXB1dGVkU3R5bGUoZSk7aWYoIXQpcmV0dXJuIG51bGw7dmFyIGk9ZVtzXTtyZXR1cm4gMD09PWk/bnVsbDppLT1rPT09SHQ/cGFyc2VGbG9hdCh0LnBhZGRpbmdMZWZ0KStwYXJzZUZsb2F0KHQucGFkZGluZ1JpZ2h0KTpwYXJzZUZsb2F0KHQucGFkZGluZ1RvcCkrcGFyc2VGbG9hdCh0LnBhZGRpbmdCb3R0b20pfShjKTtpZihudWxsPT09dClyZXR1cm4gZTtpZihwLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0fSksMCk+dClyZXR1cm4gZTt2YXIgaT0wLG89W10sbj1lLm1hcCgoZnVuY3Rpb24obixyKXt2YXIgcz10Km4vMTAwLGE9UXQodiwwPT09cixyPT09ZS5sZW5ndGgtMSx3KSxsPXBbcl0rYTtyZXR1cm4gczxsPyhpKz1sLXMsby5wdXNoKDApLGwpOihvLnB1c2gocy1sKSxzKX0pKTtyZXR1cm4gMD09PWk/ZTpuLm1hcCgoZnVuY3Rpb24oZSxuKXt2YXIgcj1lO2lmKGk+MCYmb1tuXS1pPjApe3ZhciBzPU1hdGgubWluKGksb1tuXS1pKTtpLT1zLHI9ZS1zfXJldHVybiByL3QqMTAwfSkpfWZ1bmN0aW9uIEQoKXt2YXIgZT10aGlzLGk9YVtlLmFdLmVsZW1lbnQsbz1hW2UuYl0uZWxlbWVudDtlLmRyYWdnaW5nJiZZdCh0LCJvbkRyYWdFbmQiLFd0KShJKCkpLGUuZHJhZ2dpbmc9ITEsRnRbVXRdKCJtb3VzZXVwIixlLnN0b3ApLEZ0W1V0XSgidG91Y2hlbmQiLGUuc3RvcCksRnRbVXRdKCJ0b3VjaGNhbmNlbCIsZS5zdG9wKSxGdFtVdF0oIm1vdXNlbW92ZSIsZS5tb3ZlKSxGdFtVdF0oInRvdWNobW92ZSIsZS5tb3ZlKSxlLnN0b3A9bnVsbCxlLm1vdmU9bnVsbCxpW1V0XSgic2VsZWN0c3RhcnQiLFd0KSxpW1V0XSgiZHJhZ3N0YXJ0IixXdCksb1tVdF0oInNlbGVjdHN0YXJ0IixXdCksb1tVdF0oImRyYWdzdGFydCIsV3QpLGkuc3R5bGUudXNlclNlbGVjdD0iIixpLnN0eWxlLndlYmtpdFVzZXJTZWxlY3Q9IiIsaS5zdHlsZS5Nb3pVc2VyU2VsZWN0PSIiLGkuc3R5bGUucG9pbnRlckV2ZW50cz0iIixvLnN0eWxlLnVzZXJTZWxlY3Q9IiIsby5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSIiLG8uc3R5bGUuTW96VXNlclNlbGVjdD0iIixvLnN0eWxlLnBvaW50ZXJFdmVudHM9IiIsZS5ndXR0ZXIuc3R5bGUuY3Vyc29yPSIiLGUucGFyZW50LnN0eWxlLmN1cnNvcj0iIixSdC5ib2R5LnN0eWxlLmN1cnNvcj0iIn1mdW5jdGlvbiBGKGUpe2lmKCEoImJ1dHRvbiJpbiBlKXx8MD09PWUuYnV0dG9uKXt2YXIgaT10aGlzLG89YVtpLmFdLmVsZW1lbnQsbj1hW2kuYl0uZWxlbWVudDtpLmRyYWdnaW5nfHxZdCh0LCJvbkRyYWdTdGFydCIsV3QpKEkoKSksZS5wcmV2ZW50RGVmYXVsdCgpLGkuZHJhZ2dpbmc9ITAsaS5tb3ZlPUEuYmluZChpKSxpLnN0b3A9RC5iaW5kKGkpLEZ0W090XSgibW91c2V1cCIsaS5zdG9wKSxGdFtPdF0oInRvdWNoZW5kIixpLnN0b3ApLEZ0W090XSgidG91Y2hjYW5jZWwiLGkuc3RvcCksRnRbT3RdKCJtb3VzZW1vdmUiLGkubW92ZSksRnRbT3RdKCJ0b3VjaG1vdmUiLGkubW92ZSksb1tPdF0oInNlbGVjdHN0YXJ0IixXdCksb1tPdF0oImRyYWdzdGFydCIsV3QpLG5bT3RdKCJzZWxlY3RzdGFydCIsV3QpLG5bT3RdKCJkcmFnc3RhcnQiLFd0KSxvLnN0eWxlLnVzZXJTZWxlY3Q9Im5vbmUiLG8uc3R5bGUud2Via2l0VXNlclNlbGVjdD0ibm9uZSIsby5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIixvLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLG4uc3R5bGUudXNlclNlbGVjdD0ibm9uZSIsbi5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSJub25lIixuLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiLG4uc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsaS5ndXR0ZXIuc3R5bGUuY3Vyc29yPVMsaS5wYXJlbnQuc3R5bGUuY3Vyc29yPVMsUnQuYm9keS5zdHlsZS5jdXJzb3I9UyxULmNhbGwoaSksaS5kcmFnT2Zmc2V0PUwoZSktaS5lbmR9fWs9PT1IdD8oaT0id2lkdGgiLG89ImNsaWVudFgiLG49ImxlZnQiLHI9InJpZ2h0IixzPSJjbGllbnRXaWR0aCIpOiJ2ZXJ0aWNhbCI9PT1rJiYoaT0iaGVpZ2h0IixvPSJjbGllbnRZIixuPSJ0b3AiLHI9ImJvdHRvbSIscz0iY2xpZW50SGVpZ2h0IiksdT1QKHUpO3ZhciBNPVtdO2Z1bmN0aW9uIFIoZSl7dmFyIHQ9ZS5pPT09TS5sZW5ndGgsaT10P01bZS5pLTFdOk1bZS5pXTtULmNhbGwoaSk7dmFyIG89dD9pLnNpemUtZS5taW5TaXplLWlbanRdOmUubWluU2l6ZStpW3F0XTtFLmNhbGwoaSxvKX1yZXR1cm4gYT1sLm1hcCgoZnVuY3Rpb24oZSx0KXt2YXIgbyxuPXtlbGVtZW50Okt0KGUpLHNpemU6dVt0XSxtaW5TaXplOnBbdF0sbWF4U2l6ZTpiW3RdLGk6dH07aWYodD4wJiYoKG89e2E6dC0xLGI6dCxkcmFnZ2luZzohMSxkaXJlY3Rpb246ayxwYXJlbnQ6Y30pW3F0XT1RdCh2LHQtMT09MCwhMSx3KSxvW2p0XT1RdCh2LCExLHQ9PT1sLmxlbmd0aC0xLHcpLCJyb3ctcmV2ZXJzZSI9PT1ofHwiY29sdW1uLXJldmVyc2UiPT09aCkpe3ZhciByPW8uYTtvLmE9by5iLG8uYj1yfWlmKHQ+MCl7dmFyIHM9JCh0LGssbi5lbGVtZW50KTshZnVuY3Rpb24oZSx0LG8pe3ZhciBuPV8oaSx0LG8pO09iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe2Uuc3R5bGVbdF09blt0XX0pKX0ocyx2LHQpLG9bTnRdPUYuYmluZChvKSxzW090XSgibW91c2Vkb3duIixvW050XSksc1tPdF0oInRvdWNoc3RhcnQiLG9bTnRdKSxjLmluc2VydEJlZm9yZShzLG4uZWxlbWVudCksby5ndXR0ZXI9c31yZXR1cm4gQyhuLmVsZW1lbnQsbi5zaXplLFF0KHYsMD09PXQsdD09PWwubGVuZ3RoLTEsdyksdCksdD4wJiZNLnB1c2gobyksbn0pKSxhLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUuZWxlbWVudFtCdF0oKVtpXTt0PGUubWluU2l6ZSYmKGc/UihlKTplLm1pblNpemU9dCl9KSkse3NldFNpemVzOmZ1bmN0aW9uKGUpe3ZhciB0PVAoZSk7dC5mb3JFYWNoKChmdW5jdGlvbihlLGkpe2lmKGk+MCl7dmFyIG89TVtpLTFdLG49YVtvLmFdLHI9YVtvLmJdO24uc2l6ZT10W2ktMV0sci5zaXplPWUsQyhuLmVsZW1lbnQsbi5zaXplLG9bcXRdLG4uaSksQyhyLmVsZW1lbnQsci5zaXplLG9banRdLHIuaSl9fSkpfSxnZXRTaXplczpJLGNvbGxhcHNlOmZ1bmN0aW9uKGUpe1IoYVtlXSl9LGRlc3Ryb3k6ZnVuY3Rpb24oZSx0KXtNLmZvckVhY2goKGZ1bmN0aW9uKG8pe2lmKCEwIT09dD9vLnBhcmVudC5yZW1vdmVDaGlsZChvLmd1dHRlcik6KG8uZ3V0dGVyW1V0XSgibW91c2Vkb3duIixvW050XSksby5ndXR0ZXJbVXRdKCJ0b3VjaHN0YXJ0IixvW050XSkpLCEwIT09ZSl7dmFyIG49eihpLG8uYS5zaXplLG9bcXRdKTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbihlKXthW28uYV0uZWxlbWVudC5zdHlsZVtlXT0iIixhW28uYl0uZWxlbWVudC5zdHlsZVtlXT0iIn0pKX19KSl9LHBhcmVudDpjLHBhaXJzOk19fTt2YXIgdGk9IiI7ZnVuY3Rpb24gaWkoZSl7dGk9ZX12YXIgb2k9e25hbWU6ImRlZmF1bHQiLHJlc29sdmVyOmU9PmZ1bmN0aW9uKGU9IiIpe2lmKCF0aSl7Y29uc3QgZT1bLi4uZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpXSx0PWUuZmluZCgoZT0+ZS5oYXNBdHRyaWJ1dGUoImRhdGEtc2hvZWxhY2UiKSkpO2lmKHQpaWkodC5nZXRBdHRyaWJ1dGUoImRhdGEtc2hvZWxhY2UiKSk7ZWxzZXtjb25zdCB0PWUuZmluZCgoZT0+L3Nob2VsYWNlKFwubWluKT9cLmpzKCR8XD8pLy50ZXN0KGUuc3JjKXx8L3Nob2VsYWNlLWF1dG9sb2FkZXIoXC5taW4pP1wuanMoJHxcPykvLnRlc3QoZS5zcmMpKSk7bGV0IGk9IiI7dCYmKGk9dC5nZXRBdHRyaWJ1dGUoInNyYyIpKSxpaShpLnNwbGl0KCIvIikuc2xpY2UoMCwtMSkuam9pbigiLyIpKX19cmV0dXJuIHRpLnJlcGxhY2UoL1wvJC8sIiIpKyhlP2AvJHtlLnJlcGxhY2UoL15cLy8sIiIpfWA6IiIpfShgYXNzZXRzL2ljb25zLyR7ZX0uc3ZnYCl9LG5pPXtjYXJldDonXG4gICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+XG4gICAgICA8cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT5cbiAgICA8L3N2Zz5cbiAgJyxjaGVjazonXG4gICAgPHN2ZyBwYXJ0PSJjaGVja2VkLWljb24iIGNsYXNzPSJjaGVja2JveF9faWNvbiIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+XG4gICAgICAgIDxnIHN0cm9rZT0iY3VycmVudENvbG9yIj5cbiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLjQyODU3MSwgMy40Mjg1NzEpIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLDUuNzE0Mjg1NzEgTDMuNDI4NTcxNDMsOS4xNDI4NTcxNCI+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGggZD0iTTkuMTQyODU3MTQsMCBMMy40Mjg1NzE0Myw5LjE0Mjg1NzE0Ij48L3BhdGg+XG4gICAgICAgICAgPC9nPlxuICAgICAgICA8L2c+XG4gICAgICA8L2c+XG4gICAgPC9zdmc+XG4gICcsImNoZXZyb24tZG93biI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLWNoZXZyb24tZG93biIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggMTAuMjkzbDUuNjQ2LTUuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTYgNmEuNS41IDAgMCAxLS43MDggMGwtNi02YS41LjUgMCAwIDEgMC0uNzA4eiIvPlxuICAgIDwvc3ZnPlxuICAnLCJjaGV2cm9uLWxlZnQiOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1jaGV2cm9uLWxlZnQiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS4zNTQgMS42NDZhLjUuNSAwIDAgMSAwIC43MDhMNS43MDcgOGw1LjY0NyA1LjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC02LTZhLjUuNSAwIDAgMSAwLS43MDhsNi02YS41LjUgMCAwIDEgLjcwOCAweiIvPlxuICAgIDwvc3ZnPlxuICAnLCJjaGV2cm9uLXJpZ2h0IjonXG4gICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2hldnJvbi1yaWdodCIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQuNjQ2IDEuNjQ2YS41LjUgMCAwIDEgLjcwOCAwbDYgNmEuNS41IDAgMCAxIDAgLjcwOGwtNiA2YS41LjUgMCAwIDEtLjcwOC0uNzA4TDEwLjI5MyA4IDQuNjQ2IDIuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPlxuICAgIDwvc3ZnPlxuICAnLGNvcHk6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLWNvcHkiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlYyWm0yLTFhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUg2Wk0yIDVhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi0xaDF2MWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMXYxSDJaIi8+XG4gICAgPC9zdmc+XG4gICcsZXllOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1leWUiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMTYgOHMtMy01LjUtOC01LjVTMCA4IDAgOHMzIDUuNSA4IDUuNVMxNiA4IDE2IDh6TTEuMTczIDhhMTMuMTMzIDEzLjEzMyAwIDAgMSAxLjY2LTIuMDQzQzQuMTIgNC42NjggNS44OCAzLjUgOCAzLjVjMi4xMiAwIDMuODc5IDEuMTY4IDUuMTY4IDIuNDU3QTEzLjEzMyAxMy4xMzMgMCAwIDEgMTQuODI4IDhjLS4wNTguMDg3LS4xMjIuMTgzLS4xOTUuMjg4LS4zMzUuNDgtLjgzIDEuMTItMS40NjUgMS43NTVDMTEuODc5IDExLjMzMiAxMC4xMTkgMTIuNSA4IDEyLjVjLTIuMTIgMC0zLjg3OS0xLjE2OC01LjE2OC0yLjQ1N0ExMy4xMzQgMTMuMTM0IDAgMCAxIDEuMTcyIDh6Ii8+XG4gICAgICA8cGF0aCBkPSJNOCA1LjVhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTV6TTQuNSA4YTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAwIDEtNyAweiIvPlxuICAgIDwvc3ZnPlxuICAnLCJleWUtc2xhc2giOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1leWUtc2xhc2giIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMTMuMzU5IDExLjIzOEMxNS4wNiA5LjcyIDE2IDggMTYgOHMtMy01LjUtOC01LjVhNy4wMjggNy4wMjggMCAwIDAtMi43OS41ODhsLjc3Ljc3MUE1Ljk0NCA1Ljk0NCAwIDAgMSA4IDMuNWMyLjEyIDAgMy44NzkgMS4xNjggNS4xNjggMi40NTdBMTMuMTM0IDEzLjEzNCAwIDAgMSAxNC44MjggOGMtLjA1OC4wODctLjEyMi4xODMtLjE5NS4yODgtLjMzNS40OC0uODMgMS4xMi0xLjQ2NSAxLjc1NS0uMTY1LjE2NS0uMzM3LjMyOC0uNTE3LjQ4NmwuNzA4LjcwOXoiLz5cbiAgICAgIDxwYXRoIGQ9Ik0xMS4yOTcgOS4xNzZhMy41IDMuNSAwIDAgMC00LjQ3NC00LjQ3NGwuODIzLjgyM2EyLjUgMi41IDAgMCAxIDIuODI5IDIuODI5bC44MjIuODIyem0tMi45NDMgMS4yOTkuODIyLjgyMmEzLjUgMy41IDAgMCAxLTQuNDc0LTQuNDc0bC44MjMuODIzYTIuNSAyLjUgMCAwIDAgMi44MjkgMi44Mjl6Ii8+XG4gICAgICA8cGF0aCBkPSJNMy4zNSA1LjQ3Yy0uMTguMTYtLjM1My4zMjItLjUxOC40ODdBMTMuMTM0IDEzLjEzNCAwIDAgMCAxLjE3MiA4bC4xOTUuMjg4Yy4zMzUuNDguODMgMS4xMiAxLjQ2NSAxLjc1NUM0LjEyMSAxMS4zMzIgNS44ODEgMTIuNSA4IDEyLjVjLjcxNiAwIDEuMzktLjEzMyAyLjAyLS4zNmwuNzcuNzcyQTcuMDI5IDcuMDI5IDAgMCAxIDggMTMuNUMzIDEzLjUgMCA4IDAgOHMuOTM5LTEuNzIxIDIuNjQxLTMuMjM4bC43MDguNzA5em0xMC4yOTYgOC44ODQtMTItMTIgLjcwOC0uNzA4IDEyIDEyLS43MDguNzA4eiIvPlxuICAgIDwvc3ZnPlxuICAnLGV5ZWRyb3BwZXI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLWV5ZWRyb3BwZXIiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMTMuMzU0LjY0NmExLjIwNyAxLjIwNyAwIDAgMC0xLjcwOCAwTDguNSAzLjc5M2wtLjY0Ni0uNjQ3YS41LjUgMCAxIDAtLjcwOC43MDhMOC4yOTMgNWwtNy4xNDcgNy4xNDZBLjUuNSAwIDAgMCAxIDEyLjV2MS43OTNsLS44NTQuODUzYS41LjUgMCAxIDAgLjcwOC43MDdMMS43MDcgMTVIMy41YS41LjUgMCAwIDAgLjM1NC0uMTQ2TDExIDcuNzA3bDEuMTQ2IDEuMTQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4bC0uNjQ3LS42NDYgMy4xNDctMy4xNDZhMS4yMDcgMS4yMDcgMCAwIDAgMC0xLjcwOGwtMi0yek0yIDEyLjcwN2w3LTdMMTAuMjkzIDdsLTcgN0gydi0xLjI5M3oiPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgJywiZ3JpcC12ZXJ0aWNhbCI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLWdyaXAtdmVydGljYWwiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNNyAyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptMyAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpNNyA1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptMyAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpNNyA4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptMyAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptLTMgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTMgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bS0zIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem0zIDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAweiI+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICAnLGluZGV0ZXJtaW5hdGU6J1xuICAgIDxzdmcgcGFydD0iaW5kZXRlcm1pbmF0ZS1pY29uIiBjbGFzcz0iY2hlY2tib3hfX2ljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPlxuICAgICAgICA8ZyBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj5cbiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLjI4NTcxNCwgNi44NTcxNDMpIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yODU3MTQzLDEuMTQyODU3MTQgTDEuMTQyODU3MTQsMS4xNDI4NTcxNCI+PC9wYXRoPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuICAnLCJwZXJzb24tZmlsbCI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLXBlcnNvbi1maWxsIiB2aWV3Qm94PSIwIDAgMTYgMTYiPlxuICAgICAgPHBhdGggZD0iTTMgMTRzLTEgMC0xLTEgMS00IDYtNCA2IDMgNiA0LTEgMS0xIDFIM3ptNS02YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoiLz5cbiAgICA8L3N2Zz5cbiAgJywicGxheS1maWxsIjonXG4gICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktcGxheS1maWxsIiB2aWV3Qm94PSIwIDAgMTYgMTYiPlxuICAgICAgPHBhdGggZD0ibTExLjU5NiA4LjY5Ny02LjM2MyAzLjY5MmMtLjU0LjMxMy0xLjIzMy0uMDY2LTEuMjMzLS42OTdWNC4zMDhjMC0uNjMuNjkyLTEuMDEgMS4yMzMtLjY5Nmw2LjM2MyAzLjY5MmEuODAyLjgwMiAwIDAgMSAwIDEuMzkzeiI+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICAnLCJwYXVzZS1maWxsIjonXG4gICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktcGF1c2UtZmlsbCIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxwYXRoIGQ9Ik01LjUgMy41QTEuNSAxLjUgMCAwIDEgNyA1djZhMS41IDEuNSAwIDAgMS0zIDBWNWExLjUgMS41IDAgMCAxIDEuNS0xLjV6bTUgMEExLjUgMS41IDAgMCAxIDEyIDV2NmExLjUgMS41IDAgMCAxLTMgMFY1YTEuNSAxLjUgMCAwIDEgMS41LTEuNXoiPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgJyxyYWRpbzonXG4gICAgPHN2ZyBwYXJ0PSJjaGVja2VkLWljb24iIGNsYXNzPSJyYWRpb19faWNvbiIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPlxuICAgICAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9IjgiIGN5PSI4IiByPSIzLjQyODU3MTQzIj48L2NpcmNsZT5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuICAnLCJzdGFyLWZpbGwiOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1zdGFyLWZpbGwiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMy42MTIgMTUuNDQzYy0uMzg2LjE5OC0uODI0LS4xNDktLjc0Ni0uNTkybC44My00LjczTC4xNzMgNi43NjVjLS4zMjktLjMxNC0uMTU4LS44ODguMjgzLS45NWw0Ljg5OC0uNjk2TDcuNTM4Ljc5MmMuMTk3LS4zOS43My0uMzkuOTI3IDBsMi4xODQgNC4zMjcgNC44OTguNjk2Yy40NDEuMDYyLjYxMi42MzYuMjgyLjk1bC0zLjUyMiAzLjM1Ni44MyA0LjczYy4wNzguNDQzLS4zNi43OS0uNzQ2LjU5Mkw4IDEzLjE4N2wtNC4zODkgMi4yNTZ6Ii8+XG4gICAgPC9zdmc+XG4gICcsIngtbGciOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS14LWxnIiB2aWV3Qm94PSIwIDAgMTYgMTYiPlxuICAgICAgPHBhdGggZD0iTTIuMTQ2IDIuODU0YS41LjUgMCAxIDEgLjcwOC0uNzA4TDggNy4yOTNsNS4xNDYtNS4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDUuMTQ3IDUuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtNS4xNDYgNS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCAyLjE0NiAyLjg1NFoiLz5cbiAgICA8L3N2Zz5cbiAgJywieC1jaXJjbGUtZmlsbCI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLXgtY2lyY2xlLWZpbGwiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwek01LjM1NCA0LjY0NmEuNS41IDAgMSAwLS43MDguNzA4TDcuMjkzIDhsLTIuNjQ3IDIuNjQ2YS41LjUgMCAwIDAgLjcwOC43MDhMOCA4LjcwN2wyLjY0NiAyLjY0N2EuNS41IDAgMCAwIC43MDgtLjcwOEw4LjcwNyA4bDIuNjQ3LTIuNjQ2YS41LjUgMCAwIDAtLjcwOC0uNzA4TDggNy4yOTMgNS4zNTQgNC42NDZ6Ij48L3BhdGg+XG4gICAgPC9zdmc+XG4gICd9LHJpPXtuYW1lOiJzeXN0ZW0iLHJlc29sdmVyOmU9PmUgaW4gbmk/YGRhdGE6aW1hZ2Uvc3ZnK3htbCwke2VuY29kZVVSSUNvbXBvbmVudChuaVtlXSl9YDoiIn0sc2k9W29pLHJpXSxhaT1bXTtmdW5jdGlvbiBsaShlKXtyZXR1cm4gc2kuZmluZCgodD0+dC5uYW1lPT09ZSkpfXZhciBjaSxkaT1PYmplY3QuZGVmaW5lUHJvcGVydHksaGk9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsdWk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixmaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyxwaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLG1pPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYmk9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxnaT0oZSx0KT0+KHQ9U3ltYm9sW2VdKT90OlN5bWJvbC5mb3IoIlN5bWJvbC4iK2UpLHZpPShlLHQsaSk9PnQgaW4gZT9kaShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOml9KTplW3RdPWksd2k9KGUsdCk9Pntmb3IodmFyIGkgaW4gdHx8KHQ9e30pKW1pLmNhbGwodCxpKSYmdmkoZSxpLHRbaV0pO2lmKHBpKWZvcih2YXIgaSBvZiBwaSh0KSliaS5jYWxsKHQsaSkmJnZpKGUsaSx0W2ldKTtyZXR1cm4gZX0seWk9KGUsdCk9PmhpKGUsZmkodCkpLHhpPShlLHQsaSxvKT0+e2Zvcih2YXIgbixyPW8+MT92b2lkIDA6bz91aSh0LGkpOnQscz1lLmxlbmd0aC0xO3M+PTA7cy0tKShuPWVbc10pJiYocj0obz9uKHQsaSxyKTpuKHIpKXx8cik7cmV0dXJuIG8mJnImJmRpKHQsaSxyKSxyfSxraT1mdW5jdGlvbihlLHQpe3RoaXNbMF09ZSx0aGlzWzFdPXR9LFNpPWU9Pnt2YXIgdCxpPWVbZ2koImFzeW5jSXRlcmF0b3IiKV0sbz0hMSxuPXt9O3JldHVybiBudWxsPT1pPyhpPWVbZ2koIml0ZXJhdG9yIildKCksdD1lPT5uW2VdPXQ9PmlbZV0odCkpOihpPWkuY2FsbChlKSx0PWU9Pm5bZV09dD0+e2lmKG8pe2lmKG89ITEsInRocm93Ij09PWUpdGhyb3cgdDtyZXR1cm4gdH1yZXR1cm4gbz0hMCx7ZG9uZTohMSx2YWx1ZTpuZXcga2kobmV3IFByb21pc2UoKG89Pnt2YXIgbj1pW2VdKHQpO2lmKCEobiBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTtvKG4pfSkpLDEpfX0pLG5bZ2koIml0ZXJhdG9yIildPSgpPT5uLHQoIm5leHQiKSwidGhyb3ciaW4gaT90KCJ0aHJvdyIpOm4udGhyb3c9ZT0+e3Rocm93IGV9LCJyZXR1cm4iaW4gaSYmdCgicmV0dXJuIiksbn07IWZ1bmN0aW9uKGUsdCl7IWZ1bmN0aW9uKGUpe3NpPXNpLmZpbHRlcigodD0+dC5uYW1lIT09ZSkpfShlKSxzaS5wdXNoKHtuYW1lOmUscmVzb2x2ZXI6dC5yZXNvbHZlcixtdXRhdG9yOnQubXV0YXRvcixzcHJpdGVTaGVldDp0LnNwcml0ZVNoZWV0fSksYWkuZm9yRWFjaCgodD0+e3QubGlicmFyeT09PWUmJnQuc2V0SWNvbigpfSkpfSgic3lzdGVtIix7cmVzb2x2ZXI6ZT0+IngtbGciPT09ZT9yaS5yZXNvbHZlcihlKToiIn0pO2xldCAkaT1jaT1jbGFzcyBleHRlbmRzIG1le3N0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKGNpLmNvbXBTdHlsZXMpfXN0YXRpYyBnZXQgY29tcFN0eWxlcygpe3JldHVybiBoYAogICAgICA6aG9zdCB7CiAgICAgICAgbWluLXdpZHRoOiB1bnNldDsgLyogQHRvZG8oZW1tYSwgMjAyMy0xMS0wNikgc2VlIGFib3V0IHJlbW92aW5nIHRoaXMsIGlmIHRoZSBtaW4td2lkdGggc2V0IG9uIGFsbCB3ZWIgY29tcG9uZW50cyBpcyB1bm5lY2Vzc2FyeSAqLwogICAgICB9CgogICAgICAvKiBAdG9kbyhlbW1hLCAyMDIzLTExLTA2KSBhZGQgb3B0aW9uIGZvciBtb25vc3BhY2UgdHJlYXRtZW50LCByYXRoZXIgdGhhbiBtYWtpbmcgZXZlcnl0aGluZyBtb25vLiB0aGlzIGNvdWxkIGFsc28gYmUgYSBjbGFzcyBvbiB0aGUgaG9zdCBlbGVtZW50PyAqLwogICAgICAuY29sLWNvbnRlbnQgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAjMWYyOTM3OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICAubWluaWhlYWQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgIGB9cmVuZGVyKCl7cmV0dXJuIFFgJHt0aGlzLmxhYmVsP1FgPHAgY2xhc3M9Im1pbmloZWFkIj4ke3RoaXMubGFiZWx9PC9wPmA6WH0KICAgICAgPGRpdiBjbGFzcz0iY29sLWNvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICAke3RoaXMuY29weT9RYCA8c2wtY29weS1idXR0b24gLnZhbHVlPSR7dGhpcy5jb3B5fHwiIn0+CiAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgIHNsb3Q9ImNvcHktaWNvbiIKICAgICAgICAgICAgICAgIC5zdmc9JHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNNDY0IDBIMTQ0Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djQ4SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djMyMGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDMyMGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di00OGg0OGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTM2MiA0NjRINTRhNiA2IDAgMCAxLTYtNlYxNTBhNiA2IDAgMCAxIDYtNmg0MnYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyMjR2NDJhNiA2IDAgMCAxLTYgNnptOTYtOTZIMTUwYTYgNiAwIDAgMS02LTZWNTRhNiA2IDAgMCAxIDYtNmgzMDhhNiA2IDAgMCAxIDYgNnYzMDhhNiA2IDAgMCAxLTYgNnoiLz48L3N2Zz4nfQogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgc2xvdD0ic3VjY2Vzcy1pY29uIgogICAgICAgICAgICAgICAgLnN2Zz0keyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0xNzMuODk4IDQzOS40MDRsLTE2Ni40LTE2Ni40Yy05Ljk5Ny05Ljk5Ny05Ljk5Ny0yNi4yMDYgMC0zNi4yMDRsMzYuMjAzLTM2LjIwNGM5Ljk5Ny05Ljk5OCAyNi4yMDctOS45OTggMzYuMjA0IDBMMTkyIDMxMi42OSA0MzIuMDk1IDcyLjU5NmM5Ljk5Ny05Ljk5NyAyNi4yMDctOS45OTcgMzYuMjA0IDBsMzYuMjAzIDM2LjIwNGM5Ljk5NyA5Ljk5NyA5Ljk5NyAyNi4yMDYgMCAzNi4yMDRsLTI5NC40IDI5NC40MDFjLTkuOTk4IDkuOTk3LTI2LjIwNyA5Ljk5Ny0zNi4yMDQtLjAwMXoiLz48L3N2Zz4nfQogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgc2xvdD0iZXJyb3ItaWNvbiIKICAgICAgICAgICAgICAgIC5zdmc9JHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNTIgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNMjQyLjcyIDI1NmwxMDAuMDctMTAwLjA3YzEyLjI4LTEyLjI4IDEyLjI4LTMyLjE5IDAtNDQuNDhsLTIyLjI0LTIyLjI0Yy0xMi4yOC0xMi4yOC0zMi4xOS0xMi4yOC00NC40OCAwTDE3NiAxODkuMjggNzUuOTMgODkuMjFjLTEyLjI4LTEyLjI4LTMyLjE5LTEyLjI4LTQ0LjQ4IDBMOS4yMSAxMTEuNDVjLTEyLjI4IDEyLjI4LTEyLjI4IDMyLjE5IDAgNDQuNDhMMTA5LjI4IDI1NiA5LjIxIDM1Ni4wN2MtMTIuMjggMTIuMjgtMTIuMjggMzIuMTkgMCA0NC40OGwyMi4yNCAyMi4yNGMxMi4yOCAxMi4yOCAzMi4yIDEyLjI4IDQ0LjQ4IDBMMTc2IDMyMi43MmwxMDAuMDcgMTAwLjA3YzEyLjI4IDEyLjI4IDMyLjIgMTIuMjggNDQuNDggMGwyMi4yNC0yMi4yNGMxMi4yOC0xMi4yOCAxMi4yOC0zMi4xOSAwLTQ0LjQ4TDI0Mi43MiAyNTZ6Ii8+PC9zdmc+J30KICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgIDwvc2wtY29weS1idXR0b24+YDpYfQogICAgICA8L2Rpdj5gfX07dChbeWUoe3R5cGU6U3RyaW5nfSldLCRpLnByb3RvdHlwZSwiY29weSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sJGkucHJvdG90eXBlLCJsYWJlbCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sJGkucHJvdG90eXBlLCJjbGFzcyIsdm9pZCAwKSwkaT1jaT10KFtnZSgid3ItbGFiZWxlZC1maWVsZCIpXSwkaSk7Y2xhc3MgemkgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pdGVtPW51bGwsdGhpcy5kZXRhaWxlZD0hMSx0aGlzLmNhbkRlbGV0ZT0hMX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZSh6aS5jb21wU3R5bGVzKX1zdGF0aWMgZ2V0IGNvbXBTdHlsZXMoKXtyZXR1cm4gaGAKICAgICAgLmNvbHVtbnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5jb2x1bW4gewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMHB4OwogICAgICB9CgogICAgICA6aG9zdCguaXMtbGlzdCkgLmNvbHVtbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICA6aG9zdCguaXMtbGlzdCkgLmNvbHVtbiB7CiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgfQoKICAgICAgLmNvbC10aXRsZTpob3ZlciB7CiAgICAgIH0KICAgICAgLmNvbC10aXRsZSBhIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmNvbHVtbjpob3ZlciA+IC5jb3B5LAogICAgICAuY29sLWNvbnRlbnQ6aG92ZXIgLmNvcHksCiAgICAgIC5jb3B5OmhvdmVyIHsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgfQogICAgICAuY29weSB7CiAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIG1hcmdpbjogLTRweCAwIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDAuNGVtOwogICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQogICAgICAuY29weTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKICAgICAgfQogICAgICAuY29sLWNvbnRlbnQgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAjMWYyOTM3OwogICAgICB9CiAgICAgIC5taW5paGVhZCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQogICAgYH1yZW5kZXJTb3VyY2UoZT0hMCl7Y29uc3QgdD10aGlzLml0ZW07cmV0dXJuIFFgCiAgICAgIDx3ci1sYWJlbGVkLWZpZWxkCiAgICAgICAgbGFiZWw9IlNvdXJjZSIKICAgICAgICBjb3B5PSIke3Quc291cmNlVXJsfSIKICAgICAgICBjbGFzcz0iY29sdW1uIGlzLTQiCiAgICAgICAgPiR7dC5zb3VyY2VVcmwmJih0LnNvdXJjZVVybC5zdGFydHNXaXRoKCJodHRwOi8vIil8fHQuc291cmNlVXJsLnN0YXJ0c1dpdGgoImh0dHBzOi8vIikpP1FgIDxhIGhyZWY9IiR7dC5zb3VyY2VVcmx9Ij4ke3Quc291cmNlVXJsfTwvYT4gYDpRYCAke3Quc291cmNlVXJsfWB9CiAgICAgICAgJHt0LnNvdXJjZVVybCYmdC5zb3VyY2VVcmwuc3RhcnRzV2l0aCgiZ29vZ2xlZHJpdmU6Ly8iKT9RYCA8aT4oJHt0LmZpbGVuYW1lfSk8L2k+YDpYfQogICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CiAgICAgICR7ZT9RYDx3ci1sYWJlbGVkLWZpZWxkCiAgICAgICAgICAgIGxhYmVsPSJBcmNoaXZlZCBJdGVtIElEIgogICAgICAgICAgICAuY29weT0ke3QuY29sbH0KICAgICAgICAgICAgY2xhc3M9ImNvbHVtbiIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0LmNvbGx8fCJObyBJRCJ9CiAgICAgICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+YDpYfQogICAgICA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iRGF0ZSBMb2FkZWQiIGNsYXNzPSJjb2x1bW4gaXMtMiI+CiAgICAgICAgJHt0LmN0aW1lP0F0LmZvcm1hdChuZXcgRGF0ZSh0LmN0aW1lKSk6WH0KICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPgogICAgICA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iVG90YWwgU2l6ZSIgY2xhc3M9ImNvbHVtbiBpcy0yIj4KICAgICAgICAke0V0KCkoTnVtYmVyKHQudG90YWxTaXplfHx0LnNpemV8fDApKX0KICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPgogICAgYH1yZW5kZXJTdW1tYXJ5Vmlldygpe2NvbnN0IGU9dGhpcy5pdGVtO3JldHVybiBRYCA8ZGl2IGNsYXNzPSJjb2x1bW5zIj4KICAgICAgPGRpdiBjbGFzcz0iY29sdW1uIGNvbC10aXRsZSBpcy00Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ic3VidGl0bGUgaGFzLXRleHQtd2VpZ2h0LWJvbGQiPgogICAgICAgICAgPGEgaHJlZj0iP3NvdXJjZT0ke2VuY29kZVVSSUNvbXBvbmVudChlLnNvdXJjZVVybCl9IgogICAgICAgICAgICA+JHtlLm5hbWV8fGUudGl0bGV8fGUuZmlsZW5hbWV9PC9hCiAgICAgICAgICA+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlclNvdXJjZSghMSl9CiAgICA8L2Rpdj5gfXJlbmRlckRldGFpbGVkKCl7Y29uc3QgZT10aGlzLml0ZW0se251bVZhbGlkOnQ9MCxudW1JbnZhbGlkOmk9MCxkb21haW46byxjZXJ0RmluZ2VycHJpbnQ6bixkYXRhcGFja2FnZUhhc2g6cixwdWJsaWNLZXk6cyxzb2Z0d2FyZTphfT10aGlzLml0ZW0udmVyaWZ5fHx7fSxsPW4/YGh0dHBzOi8vY3J0LnNoLz9xPSR7bn1gOiIiO3JldHVybiBRYCA8ZGl2IGNsYXNzPSJjb2x1bW5zIj4KICAgICAgJHtlLm5hbWV8fGUudGl0bGU/UWA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iVGl0bGUiIGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICAke2UubmFtZXx8ZS50aXRsZX0KICAgICAgICAgIDwvd3ItbGFiZWxlZC1maWVsZD5gOlh9CiAgICAgIDx3ci1sYWJlbGVkLWZpZWxkIGxhYmVsPSJGaWxlbmFtZSIgY2xhc3M9ImNvbHVtbiI+CiAgICAgICAgJHtlLmZpbGVuYW1lfQogICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CiAgICAgICR7ZS5yZXNvdXJjZXM/UWA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iRmlsZXMiIGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICA8b2wgc3R5bGU9InBhZGRpbmc6IHJldmVydCI+CiAgICAgICAgICAgICAgJHsKLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi8KZnVuY3Rpb24qKGUsdCl7aWYodm9pZCAwIT09ZSl7bGV0IGk9MDtmb3IoY29uc3QgbyBvZiBlKXlpZWxkIHQobyxpKyspfX0oZS5yZXNvdXJjZXMsKGU9PlFgPGxpPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7ZS5wYXRofSI+JHtlLm5hbWUrIlxuIn08L2E+CiAgICAgICAgICAgICAgICAgIDwvbGk+YCkpfQogICAgICAgICAgICA8L29sPgogICAgICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPmA6WH0KICAgICAgJHt0aGlzLnJlbmRlclNvdXJjZSgpfQogICAgICAke28/UWAKICAgICAgICAgICAgPHdyLWxhYmVsZWQtZmllbGQgbGFiZWw9Ik9ic2VydmVkIEJ5IiBjbGFzcz0iY29sdW1uIj4KICAgICAgICAgICAgICA8cD4ke299PC9wPgogICAgICAgICAgICAgICR7bD9RYDxzcGFuCiAgICAgICAgICAgICAgICAgICAgPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIke2x9IgogICAgICAgICAgICAgICAgICAgICAgPiZuYnNwO1ZpZXcgQ2VydGlmaWNhdGU8L2EKICAgICAgICAgICAgICAgICAgICA+PC9zcGFuCiAgICAgICAgICAgICAgICAgID5gOlh9CiAgICAgICAgICAgIDwvd3ItbGFiZWxlZC1maWVsZD4KICAgICAgICAgIGA6WH0KICAgICAgJHthP1FgCiAgICAgICAgICAgIDx3ci1sYWJlbGVkLWZpZWxkIGxhYmVsPSJDcmVhdGVkIFdpdGgiIGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICAgICR7YXx8IlVua25vd24ifQogICAgICAgICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CiAgICAgICAgICBgOlh9CgogICAgICA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iVmFsaWRhdGlvbiIgY2xhc3M9ImNvbHVtbiI+CiAgICAgICAgJHt0PjB8fGk+MD9RYCA8cD4KICAgICAgICAgICAgICAke3R9IGhhc2hlcwogICAgICAgICAgICAgIHZlcmlmaWVkJHtpP1FgLCAke2l9IGludmFsaWRgOlh9CiAgICAgICAgICAgIDwvcD5gOlFgIE5vdCBBdmFpbGFibGVgfQogICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CgogICAgICA8d3ItbGFiZWxlZC1maWVsZAogICAgICAgIGxhYmVsPSJQYWNrYWdlIEhhc2giCiAgICAgICAgY2xhc3M9ImNvbHVtbiIKICAgICAgICAuY29weT0ke3J9CiAgICAgID4KICAgICAgICAke3J8fCJOb3QgQXZhaWxhYmxlIn0KICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPgoKICAgICAgPHdyLWxhYmVsZWQtZmllbGQKICAgICAgICBsYWJlbD0iT2JzZXJ2ZXIgUHVibGljIEtleSIKICAgICAgICBjbGFzcz0iY29sdW1uIgogICAgICAgIC5jb3B5PSR7c30KICAgICAgPgogICAgICAgICR7c3x8Ik5vdCBBdmFpbGFibGUifQogICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CgogICAgICA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iTG9hZGluZyBNb2RlIiBjbGFzcz0iY29sdW1uIj4KICAgICAgICAke2Uub25EZW1hbmQ/IkRvd25sb2FkIE9uLURlbWFuZCI6IkZ1bGx5IExvY2FsIn0KICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPgogICAgPC9kaXY+YH1yZW5kZXIoKXtyZXR1cm4gdGhpcy5kZXRhaWxlZD90aGlzLnJlbmRlckRldGFpbGVkKCk6dGhpcy5yZW5kZXJTdW1tYXJ5VmlldygpfW9uQ29weShlLHQpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0JiZuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0KSwhMX1vblB1cmdlKGUpe2NvbnN0IHQ9e3JlbG9hZDplfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXB1cmdlIix7ZGV0YWlsOnR9KSl9fXQoW3llKHt0eXBlOk9iamVjdH0pXSx6aS5wcm90b3R5cGUsIml0ZW0iLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSx6aS5wcm90b3R5cGUsImRldGFpbGVkIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0semkucHJvdG90eXBlLCJjYW5EZWxldGUiLHZvaWQgMCksY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ3ci1pdGVtLWluZm8iLHppKTtjb25zdCBfaT0ic2VhcmNoOi8vIjtjbGFzcyBDaSBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmluaXRlZD0hMSx0aGlzLnNvdXJjZVVybD1udWxsLHRoaXMuZG93bmxvYWRVcmw9bnVsbCx0aGlzLmxvYWRJbmZvPW51bGwsdGhpcy5zaG93U2lkZWJhcj1udWxsLHRoaXMuaXRlbUluZm89bnVsbCx0aGlzLml0ZW09IiIsdGhpcy5oYXNTdG9yeT0hMSx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLnRhYkRhdGE9e30sdGhpcy51cmw9IiIsdGhpcy50cz0iIix0aGlzLmlzRnVsbHNjcmVlbj1udWxsLHRoaXMubWVudUFjdGl2ZT0hMSx0aGlzLmVtYmVkPW51bGwsdGhpcy5lbWJlZERyb3Bkb3duQWN0aXZlPSExLHRoaXMuZWRpdGFibGU9ITEsdGhpcy5icm93c2FibGU9ITAsdGhpcy5jbGVhcmFibGU9ITAsdGhpcy5pc1Zpc2libGU9ITAsdGhpcy5mYXZJY29uVXJsPSIiLHRoaXMuYXBwTmFtZT0iUmVwbGF5V2ViLnBhZ2UiLHRoaXMuYXBwVmVyc2lvbj1qZSx0aGlzLmF1dG9VcGRhdGVJbnRlcnZhbD0xMCx0aGlzLnN3TmFtZT1udWxsLHRoaXMucmVwbGF5Tm90Rm91bmRFcnJvcj0hMSx0aGlzLm11bHRpVHM9W10sdGhpcy5zcGxpdHRlcj1udWxsLHRoaXMuX3JlcGxhY2VMb2M9ITEsdGhpcy5fbG9jVXBkYXRlTmVlZGVkPSExLHRoaXMuX2xvY2F0aW9uSGFzaD0iIix0aGlzLl9hdXRvVXBkYXRlcj1udWxsLHRoaXMuYXJjaGl2ZUluZm9EaWFsb2c9dXQoKSx0aGlzLnRhYk5hbWVzPVsicGFnZXMiLCJzdG9yeSIsInJlc291cmNlcyIsImluZm8iXSx0aGlzLnRhYkxhYmVscz17cGFnZXM6IlBhZ2VzIixzdG9yeToiU3RvcnkiLHJlc291cmNlczoiVVJMcyJ9LHRoaXMuX2xhc3RVcmxVcGRhdGU9bnVsbCx0aGlzLnNob3dTaWRlYmFyPSIxIj09PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJwYWdlczpzaG93U2lkZWJhciIpJiZ0aGlzLmJyb3dzYWJsZX1maXJzdFVwZGF0ZWQoKXt0aGlzLmluaXRlZD0hMCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsKCgpPT50aGlzLm9uSGFzaENoYW5nZSgpKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIiwoKCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fSkpLHRoaXMuZW1iZWQmJnRoaXMubG9hZEluZm8mJnRoaXMubG9hZEluZm8uaGlkZU9mZnNjcmVlbiYmKHRoaXMub2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlPT57dGhpcy5pc1Zpc2libGU9ZVswXS5pc0ludGVyc2VjdGluZ30pKSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcykpfXJ1blVwZGF0ZUxvb3AoKXt2YXIgZTtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RyeXtmb3IoO3RoaXMuZWRpdGFibGUmJnRoaXMuYXV0b1VwZGF0ZUludGVydmFsJiYoIShudWxsPT09KGU9dGhpcy5pdGVtSW5mbyl8fHZvaWQgMD09PWU/dm9pZCAwOmUucGFnZXMpfHx0aGlzLml0ZW1JbmZvLnBhZ2VzLmxlbmd0aDwxMDApOyl5aWVsZCBuZXcgUHJvbWlzZSgoZT0+c2V0VGltZW91dChlLDFlMyp0aGlzLmF1dG9VcGRhdGVJbnRlcnZhbCkpKSx5aWVsZCB0aGlzLmRvVXBkYXRlSW5mbyghMCl9ZmluYWxseXt0aGlzLl9hdXRvVXBkYXRlcj1udWxsfX0pKX1nZXRNdWx0aVRpbWVzdGFtcHMoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKCF0aGlzLnRhYkRhdGEudXJsKXJldHVybjtjb25zdCBlPXlpZWxkIGZldGNoKE9lKyIvYy8iK3RoaXMuaXRlbSsiL3RzLz91cmw9Iit3aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMudGFiRGF0YS51cmwpKTtpZigyMDAhPT1lLnN0YXR1cylyZXR1cm4gdm9pZCh0aGlzLm11bHRpVHM9W10pO2NvbnN0IHQ9eWllbGQgZS5qc29uKCk7dGhpcy5tdWx0aVRzPXQudGltZXN0YW1wc30pKX13aWxsVXBkYXRlKGUpe2lmKGUuaGFzKCJ0YWJEYXRhIikpe2NvbnN0IHQ9e307T2JqZWN0LmVudHJpZXModGhpcy50YWJEYXRhKS5mb3JFYWNoKCgoW2UsaV0pPT57aSYmKHRbZV09aSl9KSksdGhpcy50YWJEYXRhPXQ7Y29uc3QgaT1lLmdldCgidGFiRGF0YSIpO3RoaXMudGFiRGF0YS51cmwmJnRoaXMudGFiRGF0YS51cmwhPT0obnVsbD09aT92b2lkIDA6aS51cmwpJiZ0aGlzLmdldE11bHRpVGltZXN0YW1wcygpfX11cGRhdGVkKGUpe3ZhciB0O2lmKGUuaGFzKCJzb3VyY2VVcmwiKSYmdGhpcy5kb1VwZGF0ZUluZm8oKSxlLmhhcygiZWRpdGFibGUiKSYmdGhpcy5lZGl0YWJsZSYmdGhpcy5hdXRvVXBkYXRlSW50ZXJ2YWwmJiF0aGlzLl9hdXRvVXBkYXRlciYmKHRoaXMuX2F1dG9VcGRhdGVyPXRoaXMucnVuVXBkYXRlTG9vcCgpKSxlLmhhcygidGFiRGF0YSIpKXtpZighKG51bGw9PT0odD10aGlzLml0ZW1JbmZvKXx8dm9pZCAwPT09dD92b2lkIDA6dC5jb2xsKSlyZXR1cm47Y29uc3QgaT0iIyIrbmV3IFVSTFNlYXJjaFBhcmFtcyh0aGlzLnRhYkRhdGEpLnRvU3RyaW5nKCk7aWYodGhpcy50YWJEYXRhLnVybHx8KHRoaXMudXJsPV9pK2RlY29kZVVSSUNvbXBvbmVudCh0aGlzLl9wYXJhbXNUb1N0cmluZyh0aGlzLnRhYkRhdGEpKSksaSE9PXRoaXMuX2xvY2F0aW9uSGFzaCl7aWYodGhpcy5fbG9jYXRpb25IYXNoPWksdGhpcy5fcmVwbGFjZUxvY3x8MD09PU9iamVjdC5rZXlzKGUuZ2V0KCJ0YWJEYXRhIil8fHt9KS5sZW5ndGgpe2NvbnN0IGU9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7ZS5oYXNoPXRoaXMuX2xvY2F0aW9uSGFzaCx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sIiIsZS5ocmVmKSx0aGlzLl9yZXBsYWNlTG9jPSExfWVsc2UgaWYod2luZG93LmxvY2F0aW9uLmhhc2g9dGhpcy5fbG9jYXRpb25IYXNoLCF0aGlzLnNob3dTaWRlYmFyKXtjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJ3ci1jb2xsLXJlcGxheSIpO2UmJmUuZm9jdXMoKX1pZih0aGlzLmVtYmVkJiZ3aW5kb3cucGFyZW50IT09d2luZG93KXtjb25zdHt1cmw6ZSx0czp0LHZpZXc6aSxxdWVyeTpvLHRpdGxlOm59PXRoaXMudGFiRGF0YSxyPXRoaXMuX2xhc3RVcmxVcGRhdGUscz10aGlzLnJlcGxheU5vdEZvdW5kRXJyb3I7aWYoIXJ8fHIudXJsIT09ZXx8ci50cyE9PXR8fHIudmlldyE9PWl8fHIucXVlcnkhPT1vfHxyLnRpdGxlIT09bil7Y29uc3Qgcj17dHlwZToidXJsY2hhbmdlIix1cmw6ZSx0czp0LHZpZXc6aSxxdWVyeTpvLHRpdGxlOm4scmVwbGF5Tm90Rm91bmRFcnJvcjpzfTt3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHIsIioiKSx0aGlzLl9sYXN0VXJsVXBkYXRlPXJ9fX10aGlzLl9sb2NVcGRhdGVOZWVkZWQ9ITF9ZS5oYXMoInNob3dTaWRlYmFyIikmJih0aGlzLmVtYmVkfHxsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgicGFnZXM6c2hvd1NpZGViYXIiLHRoaXMuc2hvd1NpZGViYXI/IjEiOiIwIikpLChlLmhhcygidGFiRGF0YSIpfHxlLmhhcygic2hvd1NpZGViYXIiKSkmJnRoaXMuY29uZmlndXJlU3BsaXR0ZXIoKX1jb25maWd1cmVTcGxpdHRlcigpe2lmKHRoaXMudGFiRGF0YS51cmwmJnRoaXMuc2hvd1NpZGViYXIpe2NvbnN0IGU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIiNjb250ZW50cyIpLHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIndyLWNvbGwtcmVwbGF5Iik7aWYoZSYmdCYmIXRoaXMuc3BsaXR0ZXIpe2NvbnN0IGk9e3NpemVzOlszMCw3MF0sbWluU2l6ZTpbMzAwLDMwMF0sZ3V0dGVyU2l6ZTo0LG9uRHJhZ1N0YXJ0KCl7dC5zZXREaXNhYmxlUG9pbnRlcighMCl9LG9uRHJhZ0VuZCgpe3Quc2V0RGlzYWJsZVBvaW50ZXIoITEpfX07dGhpcy5zcGxpdHRlcj1laShbZSx0XSxpKX19ZWxzZSBpZih0aGlzLnNwbGl0dGVyKXt0cnl7dGhpcy5zcGxpdHRlci5kZXN0cm95KCl9Y2F0Y2goZSl7fXRoaXMuc3BsaXR0ZXI9bnVsbH19ZG9VcGRhdGVJbmZvKGU9ITEpe3ZhciB0LG8sbixyO3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoZSYmdGhpcy50YWJEYXRhLnVybCYmIXRoaXMuc2hvd1NpZGViYXIpcmV0dXJuO2xldCBpPW51bGw9PT0odD10aGlzLmxvYWRJbmZvKXx8dm9pZCAwPT09dD92b2lkIDA6dC5jdXN0b21Db2xsO2lmKCFpKXtpPSh5aWVsZCBTdCh0aGlzLnNvdXJjZVVybCkpLml0ZW19dGhpcy5pdGVtPWk7Y29uc3Qgcz1PZSsiL2MvIitpLGE9VWUrIi8iK2ksbD15aWVsZCBmZXRjaChzKyI/YWxsPTEiKTtpZigyMDAhPWwuc3RhdHVzKXJldHVybiB2b2lkKHRoaXMuaXRlbUluZm89e30pO2NvbnN0IGM9eWllbGQgbC5qc29uKCk7aWYodGhpcy5pdGVtSW5mbz1PYmplY3QuYXNzaWduKHthcGlQcmVmaXg6cyxyZXBsYXlQcmVmaXg6YSxjb2xsOml9LGMpLG51bGw9PT0obj1udWxsPT09KG89dGhpcy5sb2FkSW5mbyl8fHZvaWQgMD09PW8/dm9pZCAwOm8uZXh0cmFDb25maWcpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmhlYWRlcnMpe2NvbnN0IGU9dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZy5oZWFkZXJzO3lpZWxkIGZldGNoKGAke3N9L3VwZGF0ZUF1dGhgLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2hlYWRlcnM6ZX0pfSl9Y29uc3R7dGl0bGU6ZCxuYW1lOmgsZmlsZW5hbWU6dSxkb3dubG9hZFVybDpmfT10aGlzLml0ZW1JbmZvO2R8fCh0aGlzLml0ZW1JbmZvLnRpdGxlPWh8fHUpLHRoaXMuZG93bmxvYWRVcmw9bnVsbD09PWY/bnVsbDpmfHx0aGlzLnNvdXJjZVVybCwicmVwbGF5b25seSIhPT10aGlzLmVtYmVkJiYicmVwbGF5LXdpdGgtaW5mbyIhPT10aGlzLmVtYmVkfHwodGhpcy5zaG93U2lkZWJhcj0hMSksdGhpcy5oYXNTdG9yeT1Cb29sZWFuKHRoaXMuaXRlbUluZm8uZGVzY3x8KG51bGw9PT0ocj10aGlzLml0ZW1JbmZvLmxpc3RzKXx8dm9pZCAwPT09cj92b2lkIDA6ci5sZW5ndGgpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsLWxvYWRlZCIse2RldGFpbDp7Y29sbEluZm86dGhpcy5pdGVtSW5mbyxhbHJlYWR5TG9hZGVkOiEwfX0pKSx0aGlzLm9uSGFzaENoYW5nZSgpfSkpfW9uSXRlbUxvYWRlZChlKXt0aGlzLmRvVXBkYXRlSW5mbygpLHRoaXMubG9hZEluZm89bnVsbCxlLmRldGFpbC5zb3VyY2VVcmwmJih0aGlzLnNvdXJjZVVybD1lLmRldGFpbC5zb3VyY2VVcmwpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGwtbG9hZGVkIix7ZGV0YWlsOntzb3VyY2VVcmw6dGhpcy5zb3VyY2VVcmwsY29sbEluZm86dGhpcy5pdGVtSW5mb319KSl9b25JdGVtVXBkYXRlKGUpe3RoaXMuZWRpdGFibGUmJih0aGlzLml0ZW1JbmZvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLml0ZW1JbmZvKSxlLmRldGFpbCkpfW9uSGFzaENoYW5nZSgpe3ZhciBlLHQsaTtjb25zdCBvPXdpbmRvdy5sb2NhdGlvbi5oYXNoO2lmKG8mJm8hPT10aGlzLl9sb2NhdGlvbkhhc2gmJih0aGlzLnRhYkRhdGE9T2JqZWN0LmZyb21FbnRyaWVzKG5ldyBVUkxTZWFyY2hQYXJhbXMoby5zbGljZSgxKSkuZW50cmllcygpKSx0aGlzLl9sb2NhdGlvbkhhc2g9byksKG51bGw9PT0oZT10aGlzLml0ZW1JbmZvKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jb2xsKSYmKCF0aGlzLnRhYkRhdGEudmlld3x8IXRoaXMudGFiTmFtZXMuaW5jbHVkZXModGhpcy50YWJEYXRhLnZpZXcpKSl7Y29uc3QgZT10aGlzLmhhc1N0b3J5PyJzdG9yeSI6dGhpcy5lZGl0YWJsZXx8KG51bGw9PT0odD10aGlzLml0ZW1JbmZvLnBhZ2VzKXx8dm9pZCAwPT09dD92b2lkIDA6dC5sZW5ndGgpPyJwYWdlcyI6InJlc291cmNlcyI7dGhpcy50YWJEYXRhPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnRhYkRhdGEpLHt2aWV3OmV9KX1pZih0aGlzLnRhYkRhdGEudXJsJiZ0aGlzLnRhYkRhdGEudXJsLnN0YXJ0c1dpdGgoInBhZ2U6Iikpe2NvbnN0IGU9TnVtYmVyKHRoaXMudGFiRGF0YS51cmwuc2xpY2UoNSkpO2lmKChudWxsPT09KGk9dGhpcy5pdGVtSW5mbyl8fHZvaWQgMD09PWk/dm9pZCAwOmkucGFnZXMpJiYhaXNOYU4oZSkmJmU8dGhpcy5pdGVtSW5mby5wYWdlcy5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5pdGVtSW5mby5wYWdlc1tlXTt0aGlzLnRhYkRhdGEudXJsPXQudXJsLHRoaXMudGFiRGF0YS50cz15dCh0KS50aW1lc3RhbXB9fXRoaXMuaGFzU3Rvcnl8fCJzdG9yeSIhPT10aGlzLnRhYkRhdGEudmlld3x8KHRoaXMudGFiRGF0YS52aWV3PSJwYWdlcyIpLHRoaXMudGFiRGF0YS51cmwmJnRoaXMudGFiRGF0YS5xdWVyeSYmdGhpcy5icm93c2FibGUmJih0aGlzLnNob3dTaWRlYmFyPSEwKX1vblRhYkNsaWNrKGUpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImhyZWYiKTtyZXR1cm4gdGhpcy50YWJEYXRhPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnRhYkRhdGEpLHt2aWV3OnQuc2xpY2UoMSl9KSwhMX1vbkl0ZW1UYWJOYXYoZSl7aWYoZS5kZXRhaWwucmVsb2FkKXJldHVybiB2b2lkIHRoaXMub25SZWZyZXNoKG51bGwsITApO2NvbnN0IHQ9ZS50YXJnZXQuaWQse2RhdGE6aSxyZXBsYWNlTG9jOm8scmVwbGF5Tm90Rm91bmRFcnJvcjpufT1lLmRldGFpbDt0aGlzLnJlcGxheU5vdEZvdW5kRXJyb3I9biwodD09PXRoaXMudGFiRGF0YS52aWV3fHwicmVwbGF5Ij09PXQmJnRoaXMudGFiRGF0YS51cmx8fHRoaXMuc2hvd1NpZGViYXImJnRoaXMudGFiRGF0YS51cmwpJiZ0aGlzLnVwZGF0ZVRhYkRhdGEoaSxvKX11cGRhdGVUYWJEYXRhKGUsdD0hMSl7dGhpcy50YWJEYXRhPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnRhYkRhdGEpLGUpLHRoaXMudGFiRGF0YS51cmwmJih0aGlzLnVybD10aGlzLnRhYkRhdGEudXJsfHwiIiksdGhpcy50YWJEYXRhLnRzJiYodGhpcy50cz10aGlzLnRhYkRhdGEudHN8fCIiKSx0aGlzLl9yZXBsYWNlTG9jPSF0aGlzLl9sb2NVcGRhdGVOZWVkZWQmJnQsdGhpcy5fbG9jVXBkYXRlTmVlZGVkPSEwfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKENpLmNvbXBTdHlsZXMpfXN0YXRpYyBnZXQgY29tcFN0eWxlcygpe3JldHVybiBoYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtaW4td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLmljb24gewogICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsKICAgICAgfQoKICAgICAgLmJhY2sgZmEtaWNvbiB7CiAgICAgICAgd2lkdGg6IDEuNWVtOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207CiAgICAgICAgbGluZS1oZWlnaHQ6IDAuNWVtOwogICAgICB9CgogICAgICBsaS5pcy1hY3RpdmUgewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7cWU/aGAxMTYzcHhgOmhgMTA1M3B4YH0pIHsKICAgICAgICAudGFiLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubWFpbi50YWJzIHNwYW4uaWNvbiB7CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tYWluLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IHVuc2V0OwogICAgICB9CgogICAgICAubWFpbi50YWJzIHVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tYWluLnRhYnMgbGkgewogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgcGFkZGluZzogNnB4IDAgNHB4IDA7CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMxOXB4KSB7CiAgICAgICAgLm1haW4udGFicyBsaSBhIHsKICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDsKICAgICAgICAgIHBhZGRpbmctbGVmdDogNHB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNpZGViYXIubWFpbi50YWJzIGxpIGEgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDZweDsKICAgICAgfQoKICAgICAgI2NvbnRlbnRzIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG1pbi1oZWlnaHQ6IDBweDsKICAgICAgICBmbGV4OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAjdGFiQ29udGVudHMgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgbWluLWhlaWdodDogMHB4OwogICAgICAgIGZsZXg6IGF1dG87CiAgICAgIH0KCiAgICAgIHJ3cC1lbWJlZC1yZWNlaXB0IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgICR7RHQuZW1iZWRTdHlsZXN9CgogICAgICAke0NpLnJlcGxheUJhclN0eWxlc30KICAgIGB9c3RhdGljIGdldCByZXBsYXlCYXJTdHlsZXMoKXtyZXR1cm4gaGAKICAgICAgLmJyZWFkYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzNXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGFsaWNlYmx1ZTsKICAgICAgICBwYWRkaW5nOiAwLjVlbTsKICAgICAgfQoKICAgICAgLnJlcGxheS1iYXIgewogICAgICAgIHBhZGRpbmc6IDAuNWVtOwogICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAwLjFyZW0gIzk3OTg5YTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgaW5wdXQjdXJsIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5mYXZpY29uIGltZyB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIC8qZmlsdGVyOiBkcm9wLXNoYWRvdygxcHggMXB4IDJweCBncmV5KTsqLwogICAgICB9CgogICAgICAjZGF0ZXRpbWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMC41cmVtOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgdG9wOiAxcHg7CiAgICAgICAgYm90dG9tOiAxcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOwogICAgICB9CgogICAgICAvKiBHcmFkaWVudCB0byBpbmRpY2F0ZSBVUkwgY2xpcHBpbmcgKi8KICAgICAgI2RhdGV0aW1lOmJlZm9yZSB7CiAgICAgICAgY29udGVudDogIiI7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMmVtOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAgIDkwZGVnLAogICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSwKICAgICAgICAgICNmZmYgNTAlLAogICAgICAgICAgI2ZmZgogICAgICAgICk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAtZHJvcGRvd24tYnRuIHsKICAgICAgICBhbGw6IHVuc2V0OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogdmFyKC0tc2wtc3BhY2luZy14LXNtYWxsKTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tc2wtdHJhbnNpdGlvbi1mYXN0KTsKICAgICAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC02MDApOwogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAtZHJvcGRvd24tYnRuOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC05MDApOwogICAgICB9CgogICAgICAudGltZXN0YW1wLWRyb3Bkb3duLWJ0bjpob3ZlciAudGltZXN0YW1wLWNvdW50LWJhZGdlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1ibHVlLTYwMCk7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAtY291bnQtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGdhcDogdmFyKC0tc2wtc3BhY2luZy0yeC1zbWFsbCk7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3ItYmx1ZS01MDApOwogICAgICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmctM3gtc21hbGwpIHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtYm9yZGVyLXJhZGl1cy1zbWFsbCk7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1zbC10cmFuc2l0aW9uLWZhc3QpOwogICAgICB9CgogICAgICAudGltZXN0YW1wLWNvdW50IHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjA3NWVtKTsKICAgICAgfQoKICAgICAgLnRpbWVzdGFtcC1tZW51LWl0ZW0gewogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAtbWVudS1pdGVtW2FyaWEtc2VsZWN0ZWQ9InRydWUiXTo6cGFydChsYWJlbCkgewogICAgICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1ibHVlLTYwMCk7CiAgICAgIH0KCiAgICAgIC5tZW51LWhlYWQgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAubWVudS1sb2dvIHsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIC5tZW51LXZlcnNpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgfQogICAgICAuZHJvcGRvd24taXRlbS5pbmZvIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzICsgI2RhdGV0aW1lIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuZ3JleS1kaXNhYmxlZCB7CiAgICAgICAgLS1mYS1pY29uLWZpbGwtY29sb3I6IGxpZ2h0Z3JleTsKICAgICAgICBjb2xvcjogbGlnaHRncmV5OwogICAgICB9CgogICAgICAucmVwbGF5LWJhciAuYnV0dG9uOmZvY3VzIHsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAuaXMtYm9yZGVybGVzcyB7CiAgICAgICAgYm9yZGVyOiAwcHg7CiAgICAgIH0KCiAgICAgIC5uYXJyb3cgewogICAgICAgIHBhZGRpbmc6IGNhbGMoMC41ZW0gLSAxcHgpIDAuOGVtOwogICAgICB9CgogICAgICBmb3JtIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW46IDAgMCAwIDAuNWVtOwogICAgICB9CgogICAgICAuZ3V0dGVyLmd1dHRlci1ob3Jpem9udGFsIHsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1MSwgMTUyLCAxNTQpOwogICAgICB9CgogICAgICAuZ3V0dGVyLmd1dHRlci1ob3Jpem9udGFsOmhvdmVyIHsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgIH0KCiAgICAgIG1haW4sCiAgICAgIHdyLWNvbGwtcmVwbGF5IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmlzLWxpc3QgewogICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgICNjb250ZW50cy5mdWxsLXBhZ2VzIHsKICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuc2lkZWJhci1uYXYgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAuc2lkZWJhci1uYXYgYSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJvcmRlci1ib3R0b206IDBweDsKICAgICAgfQoKICAgICAgLnNpZGViYXItbmF2IHNwYW4ubmF2LWhvdmVyIHsKICAgICAgICBmb250LXNpemU6IHNtYWxsZXI7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnNpZGViYXItbmF2OmhvdmVyIHNwYW4ubmF2LWhvdmVyLAogICAgICAuc2lkZWJhci1uYXY6Zm9jdXMtd2l0aGluIHNwYW4ubmF2LWhvdmVyIHsKICAgICAgICBkaXNwbGF5OiBpbml0aWFsOwogICAgICAgIGNvbG9yOiByZ2IoNzIsIDExOCwgMjU1KTsKICAgICAgfQoKICAgICAgLnNpZGViYXItbmF2IGZhLWljb24gewogICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLW5hdjpob3ZlciBmYS1pY29uIHsKICAgICAgICBjb2xvcjogcmdiKDcyLCAxMTgsIDI1NSk7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLW5hdi5sZWZ0IHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLW5hdi5yaWdodCB7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgfQoKICAgICAgLyogU2luY2UgdGhlIHJlcGxheSBzb21ldGltZXMgcHJvZ3JhbW1hdGljYWxseSByZWNlaXZlcyBrZXlib2FyZCBmb2N1cywKICAgICAgIGFuZCB0aGF0IGlzIHZpc3VhbGx5IHVuZXhwZWN0ZWQgZm9yIG1vdXNlLXVzZXJzLCBhbmQgc2luY2UgdGhpcyB3b24ndAogICAgICAgcGFydGljdWxhcmx5IHRyaXAgdXAga2V5Ym9hcmQgdXNlcnMsIGp1c3QgcmVtb3ZlIHRoZSBmb2N1cyBzdHlsZS4gKi8KICAgICAgd3ItY29sbC1yZXBsYXk6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgLyogU29tZSBrZXlib2FyZC11c2VycyBtYXkgc2VlIHRoaXMgcmVwbGFjZW1lbnQgc3R5bGUgKi8KICAgICAgd3ItY29sbC1yZXBsYXk6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYig3MiwgMTE4LCAyNTUpOwogICAgICB9CiAgICBgfXJlbmRlcigpe3ZhciBlO2lmKCF0aGlzLmluaXRlZClyZXR1cm4gUWBgO2NvbnN0IHQ9ISF0aGlzLnRhYkRhdGEudXJsLGk9dCYmdGhpcy5zaG93U2lkZWJhcjtpZighdCYmKG51bGw9PT0oZT10aGlzLnRhYkRhdGEpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZpZXcpKXtjb25zdCBlPXt0aXRsZTp0aGlzLnRhYkxhYmVsc1t0aGlzLnRhYkRhdGEudmlld10scmVwbGF5VGl0bGU6ITF9O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVwZGF0ZS10aXRsZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOmV9KSl9cmV0dXJuIHRoaXMuaXRlbUluZm8mJiF0aGlzLml0ZW1JbmZvLmNvbGw/UWAgPHdyLWxvYWRlcgogICAgICAgIC5sb2FkSW5mbz0iJHt0aGlzLmxvYWRJbmZvfSIKICAgICAgICBlbWJlZD0iJHt0aGlzLmVtYmVkfHwiIn0iCiAgICAgICAgc3dOYW1lPSIkeyRlKG51bGw9PT10aGlzLnN3TmFtZT92b2lkIDA6dGhpcy5zd05hbWUpfSIKICAgICAgICAuY29sbD0iJHt0aGlzLml0ZW19IgogICAgICAgIHNvdXJjZVVybD0iJHt0aGlzLnNvdXJjZVVybHx8IiJ9IgogICAgICAgIEBjb2xsLWxvYWRlZD0ke3RoaXMub25JdGVtTG9hZGVkfQogICAgICA+PC93ci1sb2FkZXI+YDp0aGlzLml0ZW1JbmZvP1FgCiAgICAgICAgJHt0aGlzLnJlbmRlckxvY2F0aW9uQmFyKCl9ICR7dGhpcy5yZW5kZXJWZXJpZnlJbmZvKCl9CiAgICAgICAgPHNsLWRpYWxvZyBsYWJlbD0iQXJjaGl2ZSBJbmZvIiAke210KHRoaXMuYXJjaGl2ZUluZm9EaWFsb2cpfT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJJdGVtSW5mbygpfQogICAgICAgICAgPHNsLWJ1dHRvbgogICAgICAgICAgICBzbG90PSJmb290ZXIiCiAgICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCiAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uSGlkZUluZm9EaWFsb2d9IgogICAgICAgICAgICA+Q2xvc2U8L3NsLWJ1dHRvbgogICAgICAgICAgPgogICAgICAgIDwvc2wtZGlhbG9nPgogICAgICAgIDxkaXYgaWQ9InRhYkNvbnRlbnRzIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgaWQ9ImNvbnRlbnRzIgogICAgICAgICAgICBjbGFzcz0iaXMtbGlnaHQgJHtpPyJzaWRlYmFyIjp0PyJpcy1oaWRkZW4iOiJmdWxsLXBhZ2VzIn0iCiAgICAgICAgICAgIHJvbGU9IiR7JGUoaT8iY29tcGxlbWVudGFyeSI6dm9pZCAwKX0iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IiR7aT8iQnJvd3NlIENvbnRlbnRzIjoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJUYWJIZWFkZXIoaSl9CiAgICAgICAgICAgICR7aXx8IXQ/dGhpcy5yZW5kZXJJdGVtVGFicyhpKTpRYGB9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3QmJnRoaXMuaXNWaXNpYmxlP1FgCiAgICAgICAgICAgICAgICA8d3ItY29sbC1yZXBsYXkKICAgICAgICAgICAgICAgICAgcm9sZT0ibWFpbiIKICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgICAgICAgICAuY29sbEluZm89IiR7dGhpcy5pdGVtSW5mb30iCiAgICAgICAgICAgICAgICAgIHNvdXJjZVVybD0iJHt0aGlzLnNvdXJjZVVybHx8IiJ9IgogICAgICAgICAgICAgICAgICB1cmw9IiR7dGhpcy50YWJEYXRhLnVybHx8IiJ9IgogICAgICAgICAgICAgICAgICB0cz0iJHt0aGlzLnRhYkRhdGEudHN8fCIifSIKICAgICAgICAgICAgICAgICAgd2Fjemhhc2g9IiR7dGhpcy50YWJEYXRhLndhY3poYXNofHwiIn0iCiAgICAgICAgICAgICAgICAgIEBjb2xsLXRhYi1uYXY9IiR7dGhpcy5vbkl0ZW1UYWJOYXZ9IgogICAgICAgICAgICAgICAgICBpZD0icmVwbGF5IgogICAgICAgICAgICAgICAgICBAcmVwbGF5LWxvYWRpbmc9IiR7dGhpcy5vblJlcGxheUxvYWRpbmd9IgogICAgICAgICAgICAgICAgICBAcmVwbGF5LWZhdmljb25zPSIke3RoaXMub25GYXZJY29uc30iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8L3dyLWNvbGwtcmVwbGF5PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6UWBgfXJlbmRlclRhYkhlYWRlcihlKXtyZXR1cm4gUWAgPG5hdgogICAgICBjbGFzcz0ibWFpbiB0YWJzIGlzLWNlbnRlcmVkICR7ZT8ic2lkZWJhciI6IiJ9IgogICAgICBhcmlhLWxhYmVsPSJ0YWJzIgogICAgPgogICAgICA8dWw+CiAgICAgICAgJHtlP1FgIDxsaSBjbGFzcz0ic2lkZWJhci1uYXYgbGVmdCI+CiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkhpZGVTaWRlYmFyfSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBjbGFzcz0iaXMtbWFyZ2lubGVzcyBpcy1zaXplLTYgaXMtcGFkZGluZ2xlc3MiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgdGl0bGU9IkhpZGUiCiAgICAgICAgICAgICAgICAgIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjU2IDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTMxLjcgMjM5bDEzNi0xMzZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjIuNiAyMi42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDEyNy45IDI1Nmw5Ni40IDk2LjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjAxLjcgNDA5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMTM2LTEzNmMtOS41LTkuNC05LjUtMjQuNi0uMS0zNHoiLz48L3N2Zz4nfSIKICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hdi1ob3ZlciIgYXJpYS1oaWRkZW49InRydWUiPkhpZGU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXMtc3Itb25seSI+SGlkZSBTaWRlYmFyPC9zcGFuPgogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT5gOiIifQogICAgICAgICR7dGhpcy5oYXNTdG9yeT9RYCA8bGkKICAgICAgICAgICAgICBjbGFzcz0iJHsic3RvcnkiPT09dGhpcy50YWJEYXRhLnZpZXc/ImlzLWFjdGl2ZSI6IiJ9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uVGFiQ2xpY2t9IgogICAgICAgICAgICAgICAgaHJlZj0iI3N0b3J5IgogICAgICAgICAgICAgICAgY2xhc3M9ImlzLXNpemUtNiIKICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IlN0b3J5IgogICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PSIkeyRlKCJzdG9yeSI9PT10aGlzLnRhYkRhdGEudmlldz8ibG9jYXRpb24iOnZvaWQgMCl9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgICAgICA+PGZhLWljb24KICAgICAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik00NDggMzYwVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDk2QzQzIDAgMCA0MyAwIDk2djMyMGMwIDUzIDQzIDk2IDk2IDk2aDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMTZjMC03LjUtMy41LTE0LjMtOC45LTE4LjctNC4yLTE1LjQtNC4yLTU5LjMgMC03NC43IDUuNC00LjMgOC45LTExLjEgOC45LTE4LjZ6TTEyOCAxMzRjMC0zLjMgMi43LTYgNi02aDIxMmMzLjMgMCA2IDIuNyA2IDZ2MjBjMCAzLjMtMi43IDYtNiA2SDEzNGMtMy4zIDAtNi0yLjctNi02di0yMHptMCA2NGMwLTMuMyAyLjctNiA2LTZoMjEyYzMuMyAwIDYgMi43IDYgNnYyMGMwIDMuMy0yLjcgNi02IDZIMTM0Yy0zLjMgMC02LTIuNy02LTZ2LTIwem0yNTMuNCAyNTBIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTcuNiAxNC40LTMyIDMyLTMyaDI4NS40Yy0xLjkgMTcuMS0xLjkgNDYuOSAwIDY0eiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJTdG9yeSIKICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbgogICAgICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWItbGFiZWwgJHtlPyJpcy1oaWRkZW4iOiIifSIKICAgICAgICAgICAgICAgICAgdGl0bGU9IlN0b3J5IgogICAgICAgICAgICAgICAgICA+U3Rvcnk8L3NwYW4KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+YDoiIn0KCiAgICAgICAgPGxpIGNsYXNzPSIkeyJwYWdlcyI9PT10aGlzLnRhYkRhdGEudmlldz8iaXMtYWN0aXZlIjoiIn0iPgogICAgICAgICAgPGEKICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25UYWJDbGlja30iCiAgICAgICAgICAgIGhyZWY9IiNwYWdlcyIKICAgICAgICAgICAgY2xhc3M9ImlzLXNpemUtNiIKICAgICAgICAgICAgYXJpYS1sYWJlbD0iUGFnZXMiCiAgICAgICAgICAgIGFyaWEtY3VycmVudD0iJHskZSgicGFnZXMiPT09dGhpcy50YWJEYXRhLnZpZXc/ImxvY2F0aW9uIjp2b2lkIDApfSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24iCiAgICAgICAgICAgICAgPjxmYS1pY29uCiAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4NCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0zNjkuOSA5Ny45TDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTMzMi4xIDEyOEgyNTZWNTEuOWw3Ni4xIDc2LjF6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHYyODhINDh6bTMyLTQ4aDIyNFYyODhsLTIzLjUtMjMuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDE3NiAzNTJsLTM5LjUtMzkuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDgwIDM1MnY2NHptNDgtMjQwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4IDQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OHoiLz48L3N2Zz4nfSIKICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgICAgdGl0bGU9IlBhZ2VzIgogICAgICAgICAgICAgID48L2ZhLWljb24KICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1sYWJlbCIgdGl0bGU9IlBhZ2VzIj5QYWdlczwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2xpPgoKICAgICAgICA8bGkgY2xhc3M9IiR7InJlc291cmNlcyI9PT10aGlzLnRhYkRhdGEudmlldz8iaXMtYWN0aXZlIjoiIn0iPgogICAgICAgICAgPGEKICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25UYWJDbGlja30iCiAgICAgICAgICAgIGhyZWY9IiNyZXNvdXJjZXMiCiAgICAgICAgICAgIGNsYXNzPSJpcy1zaXplLTYiCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IlVSTHMiCiAgICAgICAgICAgIGFyaWEtY3VycmVudD0iJHskZSgicmVzb3VyY2VzIj09PXRoaXMudGFiRGF0YS52aWV3PyJsb2NhdGlvbiI6dm9pZCAwKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgID48ZmEtaWNvbgogICAgICAgICAgICAgICAgLnN2Zz0iJHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzYgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNNTE5LjQ0MiAyODguNjUxYy00MS41MTkgMC01OS41IDMxLjU5My04Mi4wNTggMzEuNTkzQzM3Ny40MDkgMzIwLjI0NCA0MzIgMTQ0IDQzMiAxNDRzLTE5Ni4yODggODAtMTk2LjI4OC0zLjI5N2MwLTM1LjgyNyAzNi4yODgtNDYuMjUgMzYuMjg4LTg1Ljk4NUMyNzIgMTkuMjE2IDI0My44ODUgMCAyMTAuNTM5IDBjLTM0LjY1NCAwLTY2LjM2NiAxOC44OTEtNjYuMzY2IDU2LjM0NiAwIDQxLjM2NCAzMS43MTEgNTkuMjc3IDMxLjcxMSA4MS43NUMxNzUuODg1IDIwNy43MTkgMCAxNjYuNzU4IDAgMTY2Ljc1OHYzMzMuMjM3czE3OC42MzUgNDEuMDQ3IDE3OC42MzUtMjguNjYyYzAtMjIuNDczLTQwLTQwLjEwNy00MC04MS40NzEgMC0zNy40NTYgMjkuMjUtNTYuMzQ2IDYzLjU3Ny01Ni4zNDYgMzMuNjczIDAgNjEuNzg4IDE5LjIxNiA2MS43ODggNTQuNzE3IDAgMzkuNzM1LTM2LjI4OCA1MC4xNTgtMzYuMjg4IDg1Ljk4NSAwIDYwLjgwMyAxMjkuNjc1IDI1LjczIDE4MS4yMyAyNS43MyAwIDAtMzQuNzI1LTEyMC4xMDEgMjUuODI3LTEyMC4xMDEgMzUuOTYyIDAgNDYuNDIzIDM2LjE1MiA4Ni4zMDggMzYuMTUyQzU1Ni43MTIgNDE2IDU3NiAzODcuOTkgNTc2IDM1NC40NDNjMC0zNC4xOTktMTguOTYyLTY1Ljc5Mi01Ni41NTgtNjUuNzkyeiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICB0aXRsZT0iUmVzb3VyY2VzIgogICAgICAgICAgICAgID48L2ZhLWljb24KICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1sYWJlbCIgdGl0bGU9IlJlc291cmNlcyI+UmVzb3VyY2VzPC9zcGFuPgogICAgICAgICAgPC9hPgogICAgICAgIDwvbGk+CgogICAgICAgICR7ZT9RYCA8bGkgY2xhc3M9InNpZGViYXItbmF2IHJpZ2h0Ij4KICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uRnVsbFBhZ2VWaWV3fSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBjbGFzcz0iaXMtbWFyZ2lubGVzcyBpcy1zaXplLTYgaXMtcGFkZGluZ2xlc3MiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hdi1ob3ZlciIgYXJpYS1oaWRkZW49InRydWUiPkV4cGFuZDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpcy1zci1vbmx5Ij5FeHBhbmQgU2lkZWJhciB0byBGdWxsIFZpZXc8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgICB0aXRsZT0iRXhwYW5kIgogICAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI1NiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0yMjQuMyAyNzNsLTEzNiAxMzZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0yMi42LTIyLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDk2LjQtOTYuNC05Ni40LTk2LjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDU0LjMgMTAzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDEzNiAxMzZjOS41IDkuNCA5LjUgMjQuNi4xIDM0eiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPmA6IiJ9CiAgICAgIDwvdWw+CiAgICA8L25hdj5gfXJlbmRlclRvb2xiYXJMZWZ0KCl7Y29uc3QgZT0hIXRoaXMudGFiRGF0YS51cmw7cmV0dXJuIFFgICR7dGhpcy5icm93c2FibGU/UWAgPGEKICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0iYnV0dG9uIG5hcnJvdyBpcy1ib3JkZXJsZXNzIGlzLWhpZGRlbi1tb2JpbGUgJHtlPyIiOiJncmV5LWRpc2FibGVkIn0iCiAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uU2hvd1BhZ2VzfSIKICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgP2Rpc2FibGVkPSIkeyFlfSIKICAgICAgICAgICAgdGl0bGU9IkJyb3dzZSBDb250ZW50cyIKICAgICAgICAgICAgYXJpYS1sYWJlbD0iQnJvd3NlIENvbnRlbnRzIgogICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJjb250ZW50cyIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAuc3ZnPSIke190fSIKICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2E+YDoiIn0KICAgICAgPGEKICAgICAgICBocmVmPSIjIgogICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICBjbGFzcz0iYnV0dG9uIG5hcnJvdyBpcy1ib3JkZXJsZXNzIgogICAgICAgIEBjbGljaz0iJHt0aGlzLm9uR29CYWNrfSIKICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgIHRpdGxlPSJCYWNrIgogICAgICAgIGFyaWEtbGFiZWw9IkJhY2siCiAgICAgID4KICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1zbWFsbCI+CiAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgY2xhc3M9Imhhcy10ZXh0LWdyZXkiCiAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAuc3ZnPSIke1llfSIKICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2E+CiAgICAgIDxhCiAgICAgICAgaHJlZj0iIyIKICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgY2xhc3M9ImJ1dHRvbiBuYXJyb3cgaXMtYm9yZGVybGVzcyIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkdvRm9yd2FyZH0iCiAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICB0aXRsZT0iRm9yd2FyZCIKICAgICAgICBhcmlhLWxhYmVsPSJGb3J3YXJkIgogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgc2l6ZT0iMS4wZW0iCiAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgLnN2Zz0iJHtRZX0iCiAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9hPgogICAgICA8YQogICAgICAgIGhyZWY9IiMiCiAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgIGNsYXNzPSJidXR0b24gbmFycm93IGlzLWJvcmRlcmxlc3MgJHt0aGlzLmlzTG9hZGluZz8iaXMtbG9hZGluZyI6IiJ9IgogICAgICAgIGlkPSJyZWZyZXNoIgogICAgICAgIEBjbGljaz0iJHt0aGlzLm9uUmVmcmVzaH0iCiAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICB0aXRsZT0iUmVsb2FkIgogICAgICAgIGFyaWEtbGFiZWw9IlJlbG9hZCIKICAgICAgPgogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmc/IiI6UWAKICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgIHNpemU9IjEuMGVtIgogICAgICAgICAgICAgICAgICBjbGFzcz0iaGFzLXRleHQtZ3JleSIKICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTI1Ni40NTUgOGM2Ni4yNjkuMTE5IDEyNi40MzcgMjYuMjMzIDE3MC44NTkgNjguNjg1bDM1LjcxNS0zNS43MTVDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzVjLTMwLjg2NC0yOC44OTktNzAuODAxLTQ0LjkwNy0xMTMuMjMtNDUuMjczLTkyLjM5OC0uNzk4LTE3MC4yODMgNzMuOTc3LTE2OS40ODQgMTY5LjQ0MkM4OC43NjQgMzQ4LjAwOSAxNjIuMTg0IDQyNCAyNTYgNDI0YzQxLjEyNyAwIDc5Ljk5Ny0xNC42NzggMTEwLjYyOS00MS41NTYgNC43NDMtNC4xNjEgMTEuOTA2LTMuOTA4IDE2LjM2OC41NTNsMzkuNjYyIDM5LjY2MmM0Ljg3MiA0Ljg3MiA0LjYzMSAxMi44MTUtLjQ4MiAxNy40MzNDMzc4LjIwMiA0NzkuODEzIDMxOS45MjYgNTA0IDI1NiA1MDQgMTE5LjAzNCA1MDQgOC4wMDEgMzkyLjk2NyA4IDI1Ni4wMDIgNy45OTkgMTE5LjE5MyAxMTkuNjQ2IDcuNzU1IDI1Ni40NTUgOHoiLz48L3N2Zz4nfSIKICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgYH0KICAgICAgICA8L3NwYW4+CiAgICAgIDwvYT5gfXJlbmRlckxvY2F0aW9uQmFyKCl7aWYoInJlcGxheW9ubHkiPT09dGhpcy5lbWJlZHx8InJlcGxheS13aXRoLWluZm8iPT10aGlzLmVtYmVkKXJldHVybiIiO2NvbnN0IGU9ISF0aGlzLnRhYkRhdGEudXJsLHQ9ZSYmdGhpcy5mYXZJY29uVXJsO3JldHVybiBRYCA8YQogICAgICAgIGNsYXNzPSJza2lwLWxpbmsiCiAgICAgICAgaHJlZj0iI3NraXAtcmVwbGF5LXRhcmdldCIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5za2lwTWVudX0iCiAgICAgICAgPlNraXAgcmVwbGF5IG5hdmlnYXRpb248L2EKICAgICAgPgogICAgICA8bmF2IGNsYXNzPSJyZXBsYXktYmFyIiBhcmlhLWxhYmVsPSJyZXBsYXkiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIGhhcy1hZGRvbnMiPgogICAgICAgICAgJHt0aGlzLnJlbmRlclRvb2xiYXJMZWZ0KCl9CiAgICAgICAgICA8Zm9ybSBAc3VibWl0PSIke3RoaXMub25TdWJtaXR9Ij4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sIGlzLWV4cGFuZGVkICR7dD8iaGFzLWljb25zLWxlZnQiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgaWQ9InVybCIKICAgICAgICAgICAgICAgIGNsYXNzPSJpbnB1dCIKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLm9uS2V5RG93bn0iCiAgICAgICAgICAgICAgICBAYmx1cj0iJHt0aGlzLm9uTG9zdEZvY3VzfSIKICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLnVybH0iCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgdGV4dCB0byBzZWFyY2ggb3IgYSBVUkwgdG8gcmVwbGF5IgogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgJHtlP3RoaXMucmVuZGVyVGltZXN0YW1wKCk6IiJ9CiAgICAgICAgICAgICAgJHt0P1FgIDxzcGFuIGNsYXNzPSJmYXZpY29uIGljb24gaXMtc21hbGwgaXMtbGVmdCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7dGhpcy5mYXZJY29uVXJsfSIgLz4KICAgICAgICAgICAgICAgICAgPC9zcGFuPmA6UWBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJUb29sYmFyUmlnaHQoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9uYXY+CiAgICAgIDxwIGlkPSJza2lwLXJlcGxheS10YXJnZXQiIHRhYmluZGV4PSItMSIgY2xhc3M9ImlzLXNyLW9ubHkiPlNraXBwZWQ8L3A+YH1yZW5kZXJUb29sYmFyUmlnaHQoKXt2YXIgZSx0O2NvbnN0IGk9ISF0aGlzLnRhYkRhdGEudXJsLG89dGhpcy50cz9BdC5mb3JtYXQodnQodGhpcy50cykpOiIiO3JldHVybiBRYCA8ZGl2CiAgICAgIGNsYXNzPSJkcm9wZG93biBpcy1yaWdodCAke3RoaXMubWVudUFjdGl2ZT8iaXMtYWN0aXZlIjoiIn0iCiAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5tZW51QWN0aXZlPSExfSIKICAgID4KICAgICAgPGEKICAgICAgICBocmVmPSIjIgogICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICBjbGFzcz0iYnV0dG9uIG5hcnJvdyBpcy1ib3JkZXJsZXNzIGlzLWhpZGRlbi10b3VjaCIKICAgICAgICBpZD0iZnVsbHNjcmVlbiIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkZ1bGxzY3JlZW5Ub2dnbGV9IgogICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgdGl0bGU9IiR7dGhpcy5pc0Z1bGxzY3JlZW4/IkV4aXQgRnVsbCBTY3JlZW4iOiJGdWxsIFNjcmVlbiJ9IgogICAgICAgIGFyaWEtbGFiZWw9IiR7dGhpcy5pc0Z1bGxzY3JlZW4/IkV4aXQgRnVsbHNjcmVlbiI6IkZ1bGxzY3JlZW4ifSIKICAgICAgPgogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgIHNpemU9IjEuMGVtIgogICAgICAgICAgICBjbGFzcz0iaGFzLXRleHQtZ3JleSIKICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgIC5zdmc9IiR7dGhpcy5pc0Z1bGxzY3JlZW4/SXQ6Q3R9IgogICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvYT4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24tdHJpZ2dlciI+CiAgICAgICAgPGJ1dHRvbgogICAgICAgICAgY2xhc3M9ImJ1dHRvbiBpcy1ib3JkZXJsZXNzIgogICAgICAgICAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIKICAgICAgICAgIGFyaWEtY29udHJvbHM9Im1lbnUtZHJvcGRvd24iCiAgICAgICAgICBhcmlhLWV4cGFuZGVkPSIke3RoaXMubWVudUFjdGl2ZX0iCiAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbk1lbnV9IgogICAgICAgICAgYXJpYS1sYWJlbD0ibW9yZSByZXBsYXkgY29udHJvbHMiCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgIHNpemU9IjEuMGVtIgogICAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTkyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTk2IDE4NGMzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3Mi03Mi0zMi4yLTcyLTcyIDMyLjItNzIgNzItNzJ6TTI0IDgwYzAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzJTMTM1LjggOCA5NiA4IDI0IDQwLjIgMjQgODB6bTAgMzUyYzAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03Mi03MiAzMi4yLTcyIDcyeiIvPjwvc3ZnPid9IgogICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgPC9zcGFuPgogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24tbWVudSIgaWQ9Im1lbnUtZHJvcGRvd24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgICAgPGEKICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSBpcy1oaWRkZW4tZGVza3RvcCIKICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25GdWxsc2NyZWVuVG9nZ2xlfSIKICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAuc3ZnPSIke3RoaXMuaXNGdWxsc2NyZWVuP0l0OkN0fSIKICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkZ1bGwgU2NyZWVuPC9zcGFuPgogICAgICAgICAgPC9hPgogICAgICAgICAgJHt0aGlzLmJyb3dzYWJsZT9RYCA8YQogICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1pdGVtIGlzLWhpZGRlbi10YWJsZXQgJHtpPyIiOiJncmV5LWRpc2FibGVkIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblNob3dQYWdlc30iCiAgICAgICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaGFzLXRleHQtZ3JleSIKICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAuc3ZnPSIke190fSIKICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPkJyb3dzZSBDb250ZW50czwvc3Bhbj4KICAgICAgICAgICAgICA8L2E+YDoiIn0KICAgICAgICAgICR7dGhpcy5jbGVhcmFibGU/UWAgPGhyIGNsYXNzPSJkcm9wZG93bi1kaXZpZGVyIGlzLWhpZGRlbi1kZXNrdG9wIiAvPgogICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25QdXJnZUNhY2hlfSIKICAgICAgICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0zNzAuNzIgMTMzLjI4QzMzOS40NTggMTA0LjAwOCAyOTguODg4IDg3Ljk2MiAyNTUuODQ4IDg4Yy03Ny40NTguMDY4LTE0NC4zMjggNTMuMTc4LTE2Mi43OTEgMTI2Ljg1LTEuMzQ0IDUuMzYzLTYuMTIyIDkuMTUtMTEuNjUxIDkuMTVIMjQuMTAzYy03LjQ5OCAwLTEzLjE5NC02LjgwNy0xMS44MDctMTQuMTc2QzMzLjkzMyA5NC45MjQgMTM0LjgxMyA4IDI1NiA4YzY2LjQ0OCAwIDEyNi43OTEgMjYuMTM2IDE3MS4zMTUgNjguNjg1TDQ2My4wMyA0MC45N0M0NzguMTQ5IDI1Ljg1MSA1MDQgMzYuNTU5IDUwNCA1Ny45NDFWMTkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgzNDUuOTQxYy0yMS4zODIgMC0zMi4wOS0yNS44NTEtMTYuOTcxLTQwLjk3MWw0MS43NS00MS43NDl6TTMyIDI5NmgxMzQuMDU5YzIxLjM4MiAwIDMyLjA5IDI1Ljg1MSAxNi45NzEgNDAuOTcxbC00MS43NSA0MS43NWMzMS4yNjIgMjkuMjczIDcxLjgzNSA0NS4zMTkgMTE0Ljg3NiA0NS4yOCA3Ny40MTgtLjA3IDE0NC4zMTUtNTMuMTQ0IDE2Mi43ODctMTI2Ljg0OSAxLjM0NC01LjM2MyA2LjEyMi05LjE1IDExLjY1MS05LjE1aDU3LjMwNGM3LjQ5OCAwIDEzLjE5NCA2LjgwNyAxMS44MDcgMTQuMTc2QzQ3OC4wNjcgNDE3LjA3NiAzNzcuMTg3IDUwNCAyNTYgNTA0Yy02Ni40NDggMC0xMjYuNzkxLTI2LjEzNi0xNzEuMzE1LTY4LjY4NUw0OC45NyA0NzEuMDNDMzMuODUxIDQ4Ni4xNDkgOCA0NzUuNDQxIDggNDU0LjA1OVYzMjBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0eiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+UHVyZ2UgQ2FjaGUgKyBGdWxsIFJlbG9hZDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT5gOlFgYH0KICAgICAgICAgICR7IXRoaXMuZWRpdGFibGUmJihudWxsPT09KGU9dGhpcy5kb3dubG9hZFVybCl8fHZvaWQgMD09PWU/dm9pZCAwOmUuc3RhcnRzV2l0aCgiaHR0cDovLyIpKXx8KG51bGw9PT0odD10aGlzLmRvd25sb2FkVXJsKXx8dm9pZCAwPT09dD92b2lkIDA6dC5zdGFydHNXaXRoKCJodHRwczovLyIpKT9RYCA8aHIgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiIC8+CiAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICBocmVmPSIke3RoaXMuZG93bmxvYWRVcmx9IgogICAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1pdGVtIgogICAgICAgICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1zbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICAgIHNpemU9IjEuMGVtIgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imhhcy10ZXh0LWdyZXkiCiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgIC5zdmc9IiR7enR9IgogICAgICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+RG93bmxvYWQgQXJjaGl2ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT5gOlFgYH0KICAgICAgICAgICR7bz9RYCA8aHIgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIgaXMtaGlkZGVuLWRlc2t0b3AiIC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93bi1pdGVtIGluZm8gaXMtaGlkZGVuLXRhYmxldCI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWhlYWQiPkNhcHR1cmUgRGF0ZTwvc3Bhbj4ke299CiAgICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgJHt0aGlzLmVkaXRhYmxlfHx0aGlzLmRvd25sb2FkVXJsIT09dGhpcy5zb3VyY2VVcmwmJnRoaXMuZW1iZWQ/IiI6UWAgPGEKICAgICAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uU2hvd0luZm9EaWFsb2d9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaGFzLXRleHQtZ3JleSIKICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0yNTYgOEMxMTkuMDQzIDggOCAxMTkuMDgzIDggMjU2YzAgMTM2Ljk5NyAxMTEuMDQzIDI0OCAyNDggMjQ4czI0OC0xMTEuMDAzIDI0OC0yNDhDNTA0IDExOS4wODMgMzkyLjk1NyA4IDI1NiA4em0wIDExMGMyMy4xOTYgMCA0MiAxOC44MDQgNDIgNDJzLTE4LjgwNCA0Mi00MiA0Mi00Mi0xOC44MDQtNDItNDIgMTguODA0LTQyIDQyLTQyem01NiAyNTRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTJ2LTY0aC0xMmMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg2NGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjEwMGgxMmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0eiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+QXJjaGl2ZSBJbmZvPC9zcGFuPgogICAgICAgICAgICAgIDwvYT5gfQogICAgICAgICAgPGhyIGNsYXNzPSJkcm9wZG93bi1kaXZpZGVyIiAvPgogICAgICAgICAgPGEKICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSIKICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25BYm91dH0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgY2xhc3M9Imhhcy10ZXh0LWdyZXkiCiAgICAgICAgICAgICAgc2l6ZT0iMS4wcmVtIgogICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgIC5zdmc9JHtidH0KICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgPHNwYW4+Jm5ic3A7QWJvdXQgJHt0aGlzLmFwcE5hbWV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS12ZXJzaW9uIj4oJHt0aGlzLmFwcFZlcnNpb259KTwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj5gfXJlbmRlclRpbWVzdGFtcCgpe3ZhciBlO2NvbnN0IHQ9W107bnVsbD09PShlPXRoaXMubXVsdGlUcyl8fHZvaWQgMD09PWV8fGUuZm9yRWFjaCgoZT0+e3RyeXtjb25zdCBpPXd0KCtlKSxvPWk/QXQuZm9ybWF0KHZ0KGkpKToiIjt0LnB1c2goe2RhdGU6aSxsYWJlbDpvfSl9Y2F0Y2goZSl7fX0pKTtjb25zdCBpPXRoaXMudHM/QXQuZm9ybWF0KHZ0KHRoaXMudHMpKToiIjtyZXR1cm4gUWA8ZGl2IGlkPSJkYXRldGltZSIgY2xhc3M9ImNvbnRyb2wgaXMtaGlkZGVuLW1vYmlsZSI+CiAgICAgICR7dC5sZW5ndGg+MT9RYAogICAgICAgICAgICA8c2wtZHJvcGRvd24gcGxhY2VtZW50PSJ0b3AtZW5kIiBob2lzdD4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJidXR0b24iCiAgICAgICAgICAgICAgICBjbGFzcz0idGltZXN0YW1wLWRyb3Bkb3duLWJ0biIKICAgICAgICAgICAgICAgIHNsb3Q9InRyaWdnZXIiCiAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMub25UaW1lc3RhbXBEcm9wZG93bkJ0bkJsdXJ9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdj4ke2l9PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lc3RhbXAtY291bnQtYmFkZ2UiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lc3RhbXAtY291bnQiPiR7dC5sZW5ndGh9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxmYS1pY29uIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzIwIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTMxLjMgMTkyaDI1Ny4zYzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDE3NC4xIDM1NC44Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMEwxNy4yIDIyNi4xQzQuNiAyMTMuNSAxMy41IDE5MiAzMS4zIDE5MnoiLz48L3N2Zz4nfSIgYXJpYS1oaWRkZW49InRydWUiPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxzbC1tZW51IEBzbC1zZWxlY3Q9JHt0aGlzLm9uU2VsZWN0VGltZXN0YW1wfT4KICAgICAgICAgICAgICAgICR7dC5tYXAoKCh7ZGF0ZTplLGxhYmVsOnR9KT0+e2NvbnN0IGk9dGhpcy50cz09PWU7cmV0dXJuIFFgPHNsLW1lbnUtaXRlbQogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0aW1lc3RhbXAtbWVudS1pdGVtIgogICAgICAgICAgICAgICAgICAgIHZhbHVlPSR7ZX0KICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPSIke2l9IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHt0fTwvc2wtbWVudS1pdGVtCiAgICAgICAgICAgICAgICAgID5gfSkpfQogICAgICAgICAgICAgIDwvc2wtbWVudT4KICAgICAgICAgICAgPC9zbC1kcm9wZG93bj4KICAgICAgICAgIGA6aX0KICAgIDwvZGl2PmB9cmVuZGVyVmVyaWZ5SW5mbygpe3JldHVybiJyZXBsYXktd2l0aC1pbmZvIiE9PXRoaXMuZW1iZWQ/IiI6UWA8cndwLWVtYmVkLXJlY2VpcHQKICAgICAgLmNvbGxJbmZvPSR7dGhpcy5pdGVtSW5mb3x8e319CiAgICAgIHVybD0ke3RoaXMudXJsfQogICAgICB0cz0ke3RoaXMudHN9CiAgICA+CiAgICA8L3J3cC1lbWJlZC1yZWNlaXB0PmB9ZHJhZ1N0YXJ0KCl7Y29uc3QgZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3Rvcigid3ItY29sbC1yZXBsYXkiKTtlJiZlLnNldERpc2FibGVQb2ludGVyKCEwKX1kcmFnRW5kKCl7Y29uc3QgZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3Rvcigid3ItY29sbC1yZXBsYXkiKTtlJiZlLnNldERpc2FibGVQb2ludGVyKCExKX1yZW5kZXJJdGVtSW5mbygpe3JldHVybiB0aGlzLml0ZW1JbmZvP1FgPHdyLWl0ZW0taW5mbwogICAgICBjbGFzcz0iaXMtbGlzdCIKICAgICAgLml0ZW09IiR7dGhpcy5pdGVtSW5mb30iCiAgICAgID9kZXRhaWxlZD0iJHshMH0iCiAgICAgID9jYW5EZWxldGU9IiR7IXRoaXMuZW1iZWR9IgogICAgICBAaXRlbS1wdXJnZT0iJHt0aGlzLm9uUHVyZ2VDYWNoZX0iCiAgICA+PC93ci1pdGVtLWluZm8+YDpRYDxzbC1hbGVydCBvcGVuIHZhcmlhbnQ9Indhcm5pbmciPgogICAgICAgIDxmYS1pY29uCiAgICAgICAgICBzbG90PSJpY29uIgogICAgICAgICAgLnN2Zz0keyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3NiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik01NjkuNTE3IDQ0MC4wMTNDNTg3Ljk3NSA0NzIuMDA3IDU2NC44MDYgNTEyIDUyNy45NCA1MTJINDguMDU0Yy0zNi45MzcgMC01OS45OTktNDAuMDU1LTQxLjU3Ny03MS45ODdMMjQ2LjQyMyAyMy45ODVjMTguNDY3LTMyLjAwOSA2NC43Mi0zMS45NTEgODMuMTU0IDBsMjM5Ljk0IDQxNi4wMjh6TTI4OCAzNTRjLTI1LjQwNSAwLTQ2IDIwLjU5NS00NiA0NnMyMC41OTUgNDYgNDYgNDYgNDYtMjAuNTk1IDQ2LTQ2LTIwLjU5NS00Ni00Ni00NnptLTQzLjY3My0xNjUuMzQ2bDcuNDE4IDEzNmMuMzQ3IDYuMzY0IDUuNjA5IDExLjM0NiAxMS45ODIgMTEuMzQ2aDQ4LjU0NmM2LjM3MyAwIDExLjYzNS00Ljk4MiAxMS45ODItMTEuMzQ2bDcuNDE4LTEzNmMuMzc1LTYuODc0LTUuMDk4LTEyLjY1NC0xMS45ODItMTIuNjU0aC02My4zODNjLTYuODg0IDAtMTIuMzU2IDUuNzgtMTEuOTgxIDEyLjY1NHoiLz48L3N2Zz4nfQogICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICA8c3Ryb25nPkFyY2hpdmUgaW5mbyBpcyBub3QgYXZhaWxhYmxlPC9zdHJvbmc+PGJyIC8+CiAgICAgICAgUGxlYXNlIHJlbG9hZCBhbmQgdHJ5IGFnYWluLgogICAgICA8L3NsLWFsZXJ0PmB9cmVuZGVySXRlbVRhYnMoZSl7Y29uc3QgdD10aGlzLmhhc1N0b3J5JiYic3RvcnkiPT09dGhpcy50YWJEYXRhLnZpZXcsaT0icGFnZXMiPT09dGhpcy50YWJEYXRhLnZpZXcsbz0icmVzb3VyY2VzIj09PXRoaXMudGFiRGF0YS52aWV3O3JldHVybiBRYAogICAgICAke3Q/UWAgPHdyLWNvbGwtc3RvcnkKICAgICAgICAgICAgLmNvbGxJbmZvPSIke3RoaXMuaXRlbUluZm98fHt9fSIKICAgICAgICAgICAgLmFjdGl2ZT0iJHt0fSIKICAgICAgICAgICAgY3Vyckxpc3Q9IiR7dGhpcy50YWJEYXRhLmN1cnJMaXN0fHwwfSIKICAgICAgICAgICAgQGNvbGwtdGFiLW5hdj0iJHt0aGlzLm9uSXRlbVRhYk5hdn0iCiAgICAgICAgICAgIGlkPSJzdG9yeSIKICAgICAgICAgICAgLmlzU2lkZWJhcj0iJHtlfSIKICAgICAgICAgICAgY2xhc3M9IiR7dD8iIjoiaXMtaGlkZGVuIn0gJHtlPyJzaWRlYmFyIjoiIn0iCiAgICAgICAgICAgIHJvbGU9IiR7JGUoZT92b2lkIDA6Im1haW4iKX0iCiAgICAgICAgICA+CiAgICAgICAgICA8L3dyLWNvbGwtc3Rvcnk+YDoiIn0KICAgICAgJHtvP1FgIDx3ci1jb2xsLXJlc291cmNlcwogICAgICAgICAgICAuY29sbEluZm89IiR7dGhpcy5pdGVtSW5mb3x8e319IgogICAgICAgICAgICAuYWN0aXZlPSIke299IgogICAgICAgICAgICBxdWVyeT0iJHt0aGlzLnRhYkRhdGEucXVlcnl8fCIifSIKICAgICAgICAgICAgdXJsU2VhcmNoVHlwZT0iJHt0aGlzLnRhYkRhdGEudXJsU2VhcmNoVHlwZXx8IiJ9IgogICAgICAgICAgICAuY3Vyck1pbWU9IiR7dGhpcy50YWJEYXRhLmN1cnJNaW1lfHwiIn0iCiAgICAgICAgICAgIEBjb2xsLXRhYi1uYXY9IiR7dGhpcy5vbkl0ZW1UYWJOYXZ9IgogICAgICAgICAgICBpZD0icmVzb3VyY2VzIgogICAgICAgICAgICAuaXNTaWRlYmFyPSIke2V9IgogICAgICAgICAgICBjbGFzcz0iaXMtcGFkZGluZ2xlc3MgJHtvPyIiOiJpcy1oaWRkZW4ifSAke2U/InNpZGViYXIiOiIifSIKICAgICAgICAgICAgcm9sZT0iJHskZShlP3ZvaWQgMDoibWFpbiIpfSIKICAgICAgICAgID4KICAgICAgICAgIDwvd3ItY29sbC1yZXNvdXJjZXM+YDoiIn0KICAgICAgJHtpP1FgIDx3ci1wYWdlLXZpZXcKICAgICAgICAgICAgLmNvbGxJbmZvPSIke3RoaXMuaXRlbUluZm99IgogICAgICAgICAgICAuYWN0aXZlPSIke2l9IgogICAgICAgICAgICAuZWRpdGFibGU9IiR7dGhpcy5lZGl0YWJsZX0iCiAgICAgICAgICAgIC5pc1NpZGViYXI9IiR7ZX0iCiAgICAgICAgICAgIGN1cnJMaXN0PSIke3RoaXMudGFiRGF0YS5jdXJyTGlzdHx8MH0iCiAgICAgICAgICAgIHF1ZXJ5PSIke3RoaXMudGFiRGF0YS5xdWVyeXx8IiJ9IgogICAgICAgICAgICAudXJsPSIke3RoaXMudGFiRGF0YS51cmx8fCIifSIKICAgICAgICAgICAgLnRzPSIke3RoaXMudGFiRGF0YS50c3x8IiJ9IgogICAgICAgICAgICBAY29sbC10YWItbmF2PSIke3RoaXMub25JdGVtVGFiTmF2fSIKICAgICAgICAgICAgaWQ9InBhZ2VzIgogICAgICAgICAgICBAY29sbC11cGRhdGU9IiR7dGhpcy5vbkl0ZW1VcGRhdGV9IgogICAgICAgICAgICBjbGFzcz0iJHtpPyIiOiJpcy1oaWRkZW4ifSAke2U/InNpZGViYXIiOiIifSIKICAgICAgICAgICAgcm9sZT0iJHskZShlP3ZvaWQgMDoibWFpbiIpfSIKICAgICAgICAgID4KICAgICAgICAgIDwvd3ItcGFnZS12aWV3PmA6IiJ9CiAgICBgfXNraXBNZW51KGUpe3ZhciB0O2UucHJldmVudERlZmF1bHQoKSxudWxsPT09KHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIiNza2lwLXJlcGxheS10YXJnZXQiKSl8fHZvaWQgMD09PXR8fHQuZm9jdXMoKX1vbktleURvd24oZSl7IkVzYyIhPT1lLmtleSYmIkVzY2FwZSIhPT1lLmtleXx8KGUucHJldmVudERlZmF1bHQoKSxlLmN1cnJlbnRUYXJnZXQudmFsdWU9dGhpcy51cmwpfW9uTWVudShlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubWVudUFjdGl2ZT0hdGhpcy5tZW51QWN0aXZlLHRoaXMubWVudUFjdGl2ZSYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgoKT0+e3RoaXMubWVudUFjdGl2ZT0hMX0pLHtvbmNlOiEwfSl9b25GdWxsc2NyZWVuVG9nZ2xlKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnVBY3RpdmU9ITEsdGhpcy5pc0Z1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTp0aGlzLnJlcXVlc3RGdWxsc2NyZWVuKCl9b25Hb0JhY2soZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubWVudUFjdGl2ZT0hMSx3aW5kb3cuaGlzdG9yeS5iYWNrKCl9b25Hb0ZvcndhcmQoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubWVudUFjdGl2ZT0hMSx3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCl9b25TaG93UGFnZXMoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2hvd1NpZGViYXJ8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aD49NzY5P3RoaXMuc2hvd1NpZGViYXI9IXRoaXMuc2hvd1NpZGViYXI6KHRoaXMuc2hvd1NpZGViYXI9ITEsdGhpcy51cGRhdGVUYWJEYXRhKHt1cmw6IiIsdHM6IiJ9KSksdGhpcy5icm93c2FibGV8fCh0aGlzLnNob3dTaWRlYmFyPSExKX1vbkZ1bGxQYWdlVmlldyhlKXtlLnByZXZlbnREZWZhdWx0KCksdGhpcy51cGRhdGVUYWJEYXRhKHt1cmw6IiIsdHM6IiJ9KX1vbkhpZGVTaWRlYmFyKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNob3dTaWRlYmFyPSExfW9uUmVwbGF5TG9hZGluZyhlKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuZW1iZWQmJndpbmRvdy5wYXJlbnQhPT13aW5kb3cmJnRoaXMuaXNMb2FkaW5nIT09ZS5kZXRhaWwubG9hZGluZyYmd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHt0eXBlOiJwYWdlLWxvYWRpbmcifSxlLmRldGFpbCksIioiKSx0aGlzLmlzTG9hZGluZz1lLmRldGFpbC5sb2FkaW5nfSkpfW9uRmF2SWNvbnMoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt0aGlzLmVtYmVkJiZ3aW5kb3cucGFyZW50IT09d2luZG93JiZ3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe3R5cGU6ImZhdmljb25zIn0sZS5kZXRhaWwpLCIqIik7Zm9yKGNvbnN0IHQgb2YgZS5kZXRhaWwuaWNvbnMpe2NvbnN0IGU9eWllbGQgZmV0Y2godC5ocmVmKTtpZigyMDA9PT1lLnN0YXR1cyl7Y29uc3QgaT1lLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKTtpZihpJiYhaS5zdGFydHNXaXRoKCJ0ZXh0LyIpKXJldHVybiB2b2lkKHRoaXMuZmF2SWNvblVybD10LmhyZWYpfX10aGlzLmZhdkljb25Vcmw9IiJ9KSl9b25QdXJnZUNhY2hlKGUpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PSFlLmRldGFpbHx8dm9pZCAwPT09ZS5kZXRhaWwucmVsb2FkfHxlLmRldGFpbC5yZWxvYWQ7dGhpcy5kZWxldGVGdWxseSh0KX1kZWxldGVGdWxseShlPSExKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9dGhpcy5pdGVtSW5mby5hcGlQcmVmaXgrKGU/Ij9yZWxvYWQ9MSI6IiIpLGk9eWllbGQgZmV0Y2godCx7bWV0aG9kOiJERUxFVEUifSk7MjAwIT09aS5zdGF0dXMmJmNvbnNvbGUud2FybigicHVyZ2UgZmFpbGVkOiAiK2kuc3RhdHVzKSxlfHx0aGlzLmVtYmVkP3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTp3aW5kb3cubG9jYXRpb24uc2VhcmNoPSIifSkpfW9uU3VibWl0KGUpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO3JldHVybiB0LnZhbHVlP3RoaXMubmF2aWdhdGVUbyh0LnZhbHVlKTp0LnZhbHVlPXRoaXMudXJsLCExfW9uTG9zdEZvY3VzKGUpe2UuY3VycmVudFRhcmdldC52YWx1ZXx8KGUuY3VycmVudFRhcmdldC52YWx1ZT10aGlzLnVybCl9b25UaW1lc3RhbXBEcm9wZG93bkJ0bkJsdXIoZSl7Y29uc3QgdD1lLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgic2wtZHJvcGRvd24iKSxpPWUucmVsYXRlZFRhcmdldDtpJiYobnVsbD09dD92b2lkIDA6dC5jb250YWlucyhpKSl8fChudWxsPT10P3ZvaWQgMDp0Lm9wZW4pJiZ0LmhpZGUoKX1vblNlbGVjdFRpbWVzdGFtcChlKXtjb25zdHtpdGVtOnR9PWUuZGV0YWlsO3RoaXMudXBkYXRlVGFiRGF0YSh7dHM6dC52YWx1ZX0pfW5hdmlnYXRlVG8oZSl7bGV0IHQ7aWYoZS5zdGFydHNXaXRoKCJodHRwOi8vIil8fGUuc3RhcnRzV2l0aCgiaHR0cHM6Ly8iKSl7aWYodD17dXJsOmV9LGU9PT10aGlzLnRhYkRhdGEudXJsKXtjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJ3ci1jb2xsLXJlcGxheSIpO3JldHVybiB2b2lkKGUmJmUucmVmcmVzaCgpKX19ZWxzZSB0PWUuc3RhcnRzV2l0aChfaSk/dGhpcy5fc3RyaW5nVG9QYXJhbXMoZSk6e3F1ZXJ5OmUsdmlldzoicGFnZXMifTt0aGlzLnVwZGF0ZVRhYkRhdGEodCl9X3N0cmluZ1RvUGFyYW1zKGUpe2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyhlLnNsaWNlKDkpKSxpPXt1cmw6IiIsdHM6IiJ9O2Zvcihjb25zdCBlIG9mWyJxdWVyeSIsInZpZXciLCJjdXJyTGlzdCIsImN1cnJNaW1lIiwidXJsU2VhcmNoVHlwZSJdKXQuaGFzKGUpJiYoaVtlXT10LmdldChlKSk7cmV0dXJuIGl9X3BhcmFtc1RvU3RyaW5nKGUpe2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcztmb3IoY29uc3QgaSBvZlsicXVlcnkiLCJ2aWV3IiwiY3Vyckxpc3QiLCJjdXJyTWltZSIsInVybFNlYXJjaFR5cGUiXSlpIGluIGUmJnQuc2V0KGksU3RyaW5nKGVbaV0pKTtyZXR1cm4gdC50b1N0cmluZygpfW9uUmVmcmVzaChlLHQ9ITEpe2lmKGUmJmUucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnVBY3RpdmU9ITEsdGhpcy50YWJEYXRhLnVybCl7Y29uc3QgZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3Rvcigid3ItY29sbC1yZXBsYXkiKTtlJiZlLnJlZnJlc2goKX1lbHNlIHR8fHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX1vbkFib3V0KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWJvdXQtc2hvdyIpKX1vblNob3dJbmZvRGlhbG9nKCl7dmFyIGU7bnVsbD09PShlPXRoaXMuYXJjaGl2ZUluZm9EaWFsb2cudmFsdWUpfHx2b2lkIDA9PT1lfHxlLnNob3coKX1vbkhpZGVJbmZvRGlhbG9nKCl7dmFyIGU7bnVsbD09PShlPXRoaXMuYXJjaGl2ZUluZm9EaWFsb2cudmFsdWUpfHx2b2lkIDA9PT1lfHxlLmhpZGUoKX19dChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDaS5wcm90b3R5cGUsImluaXRlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ2kucHJvdG90eXBlLCJzb3VyY2VVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENpLnByb3RvdHlwZSwiZG93bmxvYWRVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6T2JqZWN0LGF0dHJpYnV0ZTohMX0pXSxDaS5wcm90b3R5cGUsImxvYWRJbmZvIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ2kucHJvdG90eXBlLCJzaG93U2lkZWJhciIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3QsYXR0cmlidXRlOiExfSldLENpLnByb3RvdHlwZSwiaXRlbUluZm8iLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENpLnByb3RvdHlwZSwiaXRlbSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwiaGFzU3RvcnkiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDaS5wcm90b3R5cGUsImlzTG9hZGluZyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3QsYXR0cmlidXRlOiExfSldLENpLnByb3RvdHlwZSwidGFiRGF0YSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ2kucHJvdG90eXBlLCJ1cmwiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENpLnByb3RvdHlwZSwidHMiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDaS5wcm90b3R5cGUsImlzRnVsbHNjcmVlbiIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwibWVudUFjdGl2ZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ2kucHJvdG90eXBlLCJlbWJlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwiZW1iZWREcm9wZG93bkFjdGl2ZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwiZWRpdGFibGUiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDaS5wcm90b3R5cGUsImJyb3dzYWJsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwiY2xlYXJhYmxlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ2kucHJvdG90eXBlLCJpc1Zpc2libGUiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENpLnByb3RvdHlwZSwiZmF2SWNvblVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ2kucHJvdG90eXBlLCJhcHBOYW1lIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxDaS5wcm90b3R5cGUsImFwcFZlcnNpb24iLHZvaWQgMCksdChbeWUoe3R5cGU6TnVtYmVyfSldLENpLnByb3RvdHlwZSwiYXV0b1VwZGF0ZUludGVydmFsIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxDaS5wcm90b3R5cGUsInN3TmFtZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwicmVwbGF5Tm90Rm91bmRFcnJvciIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpBcnJheX0pXSxDaS5wcm90b3R5cGUsIm11bHRpVHMiLHZvaWQgMCksY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ3ci1pdGVtIixDaSk7Y29uc3QgSWk9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTUwNSA0NDIuN0w0MDUuMyAzNDNjLTQuNS00LjUtMTAuNi03LTE3LTdIMzcyYzI3LjYtMzUuMyA0NC03OS43IDQ0LTEyOEM0MTYgOTMuMSAzMjIuOSAwIDIwOCAwUzAgOTMuMSAwIDIwOHM5My4xIDIwOCAyMDggMjA4YzQ4LjMgMCA5Mi43LTE2LjQgMTI4LTQ0djE2LjNjMCA2LjQgMi41IDEyLjUgNyAxN2w5OS43IDk5LjdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjYuMS0zNHpNMjA4IDMzNmMtNzAuNyAwLTEyOC01Ny4yLTEyOC0xMjggMC03MC43IDU3LjItMTI4IDEyOC0xMjggNzAuNyAwIDEyOCA1Ny4yIDEyOCAxMjggMCA3MC43LTU3LjIgMTI4LTEyOCAxMjh6Ii8+PC9zdmc+JztjbGFzcyBMaSBleHRlbmRzIG1le2dldCB0eXBlRmlsdGVyKCl7cmV0dXJuIiJ9Z2V0IGluZGV4UGFyYW1zKCl7cmV0dXJuIiJ9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuaXRlbXM9W10sdGhpcy5xdWVyeT0iIix0aGlzLmZpbHRlcmVkSXRlbXM9W10sdGhpcy5zb3J0ZWRJdGVtcz1bXSx0aGlzLmhpZGVIZWFkZXI9ITEsdGhpcy5kYXRlTmFtZT0iRGF0ZSBMb2FkZWQiLHRoaXMuaGVhZGVyTmFtZT0iTG9hZGVkIEFyY2hpdmVzIix0aGlzLl9kZWxldGluZz17fSx0aGlzLmhpZGVIZWFkZXI9IjEiPT09bG9jYWxTdG9yYWdlLmdldEl0ZW0oImluZGV4OmhpZGVIZWFkZXIiKX1nZXQgc29ydEtleXMoKXtyZXR1cm5be2tleToidGl0bGUiLG5hbWU6IlRpdGxlIn0se2tleToic291cmNlVXJsIixuYW1lOiJTb3VyY2UifSx7a2V5OiJjdGltZSIsbmFtZTp0aGlzLmRhdGVOYW1lfSx7a2V5OiJzaXplIixuYW1lOiJUb3RhbCBTaXplIn1dfWZpcnN0VXBkYXRlZCgpe3RoaXMubG9hZEl0ZW1zKCl9dXBkYXRlZChlKXtlLmhhcygiaGlkZUhlYWRlciIpJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiaW5kZXg6aGlkZUhlYWRlciIsdGhpcy5oaWRlSGVhZGVyPyIxIjoiMCIpLChlLmhhcygiaXRlbXMiKXx8ZS5oYXMoInF1ZXJ5IikpJiZ0aGlzLmZpbHRlcigpfWZpbHRlcigpe2lmKHRoaXMucXVlcnkpe3RoaXMuZmlsdGVyZWRJdGVtcz1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLml0ZW1zKShlLnNvdXJjZVVybC5pbmRleE9mKHRoaXMucXVlcnkpPj0wfHxlLmZpbGVuYW1lJiZlLmZpbGVuYW1lLmluZGV4T2YodGhpcy5xdWVyeSk+PTB8fEJvb2xlYW4oZS5sb2FkVXJsJiZlLmxvYWRVcmwuaW5kZXhPZih0aGlzLnF1ZXJ5KT49MCl8fGUudGl0bGUmJmUudGl0bGUuaW5kZXhPZih0aGlzLnF1ZXJ5KT49MCkmJnRoaXMuZmlsdGVyZWRJdGVtcy5wdXNoKGUpfWVsc2UgdGhpcy5maWx0ZXJlZEl0ZW1zPXRoaXMuaXRlbXN9bG9hZEl0ZW1zKCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCBlPXlpZWxkIGZldGNoKGAke09lfS9jb2xsLWluZGV4PyR7dGhpcy5pbmRleFBhcmFtc31gKTt0cnl7aWYoMjAwIT09ZS5zdGF0dXMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEFQSSBSZXNwb25zZSwgUmV0cnkiKTtjb25zdCB0PXlpZWxkIGUuanNvbigpO3RoaXMuaXRlbXM9dC5jb2xscy5tYXAoKGU9Pnt2YXIgdDtyZXR1cm4gZS50aXRsZT1udWxsIT09KHQ9ZS50aXRsZSkmJnZvaWQgMCE9PXQ/dDplLmZpbGVuYW1lLGV9KSksdGhpcy5fZGVsZXRpbmc9e30sdGhpcy5zb3J0ZWRJdGVtcz1bXX1jYXRjaChlKXtzZXRUaW1lb3V0KCgoKT0+dGhpcy5sb2FkSXRlbXMoKSksNTAwKX19KSl9b25EZWxldGVJdGVtKGUpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuc29ydGVkSXRlbXMpcmV0dXJuO2NvbnN0IHQ9TnVtYmVyKGUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sbC1pbmRleCIpKSxpPXRoaXMuc29ydGVkSXRlbXNbdF07aWYoIWl8fHRoaXMuX2RlbGV0aW5nW2kuc291cmNlVXJsXSlyZXR1cm47dGhpcy5fZGVsZXRpbmdbaS5zb3VyY2VVcmxdPSEwLHRoaXMucmVxdWVzdFVwZGF0ZSgpO2NvbnN0IG89eWllbGQgZmV0Y2goYCR7T2V9L2MvJHtpLmlkfWAse21ldGhvZDoiREVMRVRFIn0pO2lmKDIwMD09PW8uc3RhdHVzKXtjb25zdCBlPXlpZWxkIG8uanNvbigpO3RoaXMuaXRlbXM9ZS5jb2xsc31yZXR1cm4hMX0pKX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShMaS5jb21wU3R5bGVzKX1zdGF0aWMgZ2V0IGNvbXBTdHlsZXMoKXtyZXR1cm4gaGAKICAgICAgOmhvc3QgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CiAgICAgIC5zaXplIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CiAgICAgIH0KICAgICAgLmV4dHJhLXBhZGRpbmcgewogICAgICAgIHBhZGRpbmc6IDJlbTsKICAgICAgfQogICAgICAubm8tdG9wLXBhZGRpbmcgewogICAgICAgIHBhZGRpbmctdG9wOiAxZW07CiAgICAgIH0KICAgICAgLnBhbmVsLWhlYWRpbmcgewogICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgfQogICAgICAuaXMtbG9hZGluZyB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtOwogICAgICAgIGhlaWdodDogMS41ZW07CiAgICAgICAgYm9yZGVyOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQogICAgICBkaXYucGFuZWwuaXMtbGlnaHQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTsKICAgICAgfQoKICAgICAgZmEtaWNvbiB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgfQoKICAgICAgLnBhbmVsLWNvbG9yIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEwLCAyNDksIDIxNCk7CiAgICAgIH0KCiAgICAgIC5jb3B5IHsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAwLjRlbTsKICAgICAgICBwYWRkaW5nOiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KICAgICAgLmNvcHk6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7CiAgICAgIH0KICAgICAgLnNvcnQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAwLjNyZW0gMC4zcmVtIDAuM3JlbSAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOwogICAgICB9CiAgICAgIC5zb3J0LWhlYWRlciAuY29udHJvbCB7CiAgICAgICAgZmxleDogYXV0bzsKCiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjNyZW07CiAgICAgICAgd2lkdGg6IGluaXRpYWw7CiAgICAgIH0KICAgICAgd3Itc29ydGVyIHsKICAgICAgICBwYWRkaW5nOiAwLjNyZW07CiAgICAgIH0KICAgICAgYS5idXR0b24uaXMtc21hbGwuY29sbGFwc2UgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQogICAgICAuaWNvbi5pcy1sZWZ0IHsKICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOwogICAgICB9CiAgICAgIC5jb2xsLWJsb2NrIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgLmRlbGV0ZS1idXR0b24gewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwcHg7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgIH0KICAgICAgI3NvcnQtc2VsZWN0OjphZnRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICBoZWFkZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CiAgICAgIGhlYWRlci5jbG9zZWQgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgICAgaGVpZ2h0OiAyNjlweDsKICAgICAgICBtYXJnaW4tdG9wOiAtMjY5cHg7CiAgICAgIH0KICAgIGB9cmVuZGVySGVhZGVyKCl7cmV0dXJuIFFgPGgyIGNsYXNzPSJwYW5lbC1oZWFkaW5nIHBhbmVsLWNvbG9yIj4KICAgICAgPHNwYW4+JHt0aGlzLmhlYWRlck5hbWV9PC9zcGFuPgogICAgPC9oMj5gfXJlbmRlclNlYXJjaEhlYWRlcigpe3JldHVybiIifXJlbmRlcigpe3ZhciBlO2NvbnN0IHQ9dGhpcy5jaGlsZEVsZW1lbnRDb3VudD4wO3JldHVybiBRYAogICAgICA8aGVhZGVyIGNsYXNzPSIke3RoaXMuaGlkZUhlYWRlcj8iY2xvc2VkIjoiIn0iPgogICAgICAgIDxzbG90IG5hbWU9ImhlYWRlciI+PC9zbG90PgogICAgICA8L2hlYWRlcj4KICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gbm8tdG9wLXBhZGRpbmciPgogICAgICAgIDxkaXYgY2xhc3M9InNvcnQtaGVhZGVyIGlzLXNtYWxsIj4KICAgICAgICAgICR7dD9RYAogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuaGlkZUhlYWRlcj0hdGhpcy5oaWRlSGVhZGVyfSBjbGFzcz0iY29sbGFwc2UgYnV0dG9uIGlzLXNtYWxsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj48ZmEtaWNvbiAuc3ZnPSR7dGhpcy5oaWRlSGVhZGVyPyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMyMCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0xNDMgMjU2LjNMNyAxMjAuM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMjIuNi0yMi42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDk2LjQgOTYuNCA5Ni40LTk2LjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzEzIDg2LjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTEzNiAxMzZjLTkuNCA5LjUtMjQuNiA5LjUtMzQgLjF6bTM0IDE5MmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC0yMi42LTIyLjZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDE2MCAzNTIuMWwtOTYuNC05Ni40Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDI3OC4zYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwxMzYgMTM2YzkuNCA5LjUgMjQuNiA5LjUgMzQgLjF6Ii8+PC9zdmc+JzonPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNMTc3IDI1NS43bDEzNiAxMzZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTIyLjYgMjIuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTYwIDM1MS45bC05Ni40IDk2LjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDcgNDI1LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDEzNi0xMzZjOS40LTkuNSAyNC42LTkuNSAzNC0uMXptLTM0LTE5Mkw3IDE5OS43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyMi42IDIyLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsOTYuNC05Ni40IDk2LjQgOTYuNGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyMi42LTIyLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTEzNi0xMzZjLTkuMi05LjQtMjQuNC05LjQtMzMuOCAweiIvPjwvc3ZnPid9Pjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPiR7dGhpcy5oaWRlSGVhZGVyPyJTaG93ICI6IkhpZGUifSA8c3BhbiBjbGFzcz0iaXMtc3Itb25seSI+SGVhZGVyPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8L2J1dHRvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhbmVsIj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJIZWFkZXIoKX0KICAgICAgICAgICR7dGhpcy5pdGVtcy5sZW5ndGg/UWAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWJsb2NrIHNvcnQtaGVhZGVyIGlzLXNtYWxsIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclNlYXJjaEhlYWRlcigpfQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIGhhcy1pY29ucy1sZWZ0IGhhcy1hZGRvbnMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpbnB1dCBpcy1zbWFsbCIKICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHtlPT50aGlzLnF1ZXJ5PWUuY3VycmVudFRhcmdldC52YWx1ZX0iCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5xdWVyeX0iCiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGJ5IEFyY2hpdmUgVGl0bGUgb3IgU291cmNlIgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtbGVmdCBpcy1zbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbiAuc3ZnPSIke0lpfSI+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDx3ci1zb3J0ZXIKICAgICAgICAgICAgICAgICAgICBpZD0iaW5kZXgiCiAgICAgICAgICAgICAgICAgICAgc29ydEtleT0iY3RpbWUiCiAgICAgICAgICAgICAgICAgICAgP3NvcnREZXNjPSIkeyEwfSIKICAgICAgICAgICAgICAgICAgICAuc29ydEtleXM9IiR7dGhpcy5zb3J0S2V5c30iCiAgICAgICAgICAgICAgICAgICAgLmRhdGE9IiR7dGhpcy5maWx0ZXJlZEl0ZW1zfSIKICAgICAgICAgICAgICAgICAgICBAc29ydC1jaGFuZ2VkPSIke2U9PnRoaXMuc29ydGVkSXRlbXM9ZS5kZXRhaWwuc29ydGVkRGF0YX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC93ci1zb3J0ZXI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xsLWxpc3QiPgogICAgICAgICAgICAgICAgICAke251bGw9PT0oZT10aGlzLnNvcnRlZEl0ZW1zKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tYXAoKChlLHQpPT5RYAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbC1ibG9jayBwYW5lbC1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJJdGVtSW5mbyhlKX0KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLl9kZWxldGluZ1tlLnNvdXJjZVVybF0/UWAgPHNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJ1dHRvbiBkZWxldGUtYnV0dG9uIGlzLWxvYWRpbmcgaXMtc3RhdGljIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWxldGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPmA6UWAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJkZWxldGUgZGVsZXRlLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJVbmxvYWQgSXRlbSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iVW5sb2FkIEl0ZW0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1jb2xsLWluZGV4PSIke3R9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uRGVsZXRlSXRlbX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgKSl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOlFgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ibG9jayBleHRyYS1wYWRkaW5nIj4KICAgICAgICAgICAgICAgICAgJHtudWxsPT09dGhpcy5zb3J0ZWRJdGVtcz9RYDxpPkxvYWRpbmcgQXJjaGl2ZXMuLi48L2k+YDp0aGlzLnJlbmRlckVtcHR5KCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L3NlY3Rpb24+CiAgICBgfXJlbmRlckl0ZW1JbmZvKGUpe3JldHVybiBRYDx3ci1pdGVtLWluZm8gLml0ZW09JHtlfT48L3dyLWl0ZW0taW5mbz5gfXJlbmRlckVtcHR5KCl7cmV0dXJuIFFgCiAgICAgIDxwPgogICAgICAgIERvbid0IGhhdmUgYW55IHdlYiBhcmNoaXZlcyB5ZXQ/IENoZWNrIG91dAogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2VicmVjb3JkZXIubmV0L2FyY2hpdmV3ZWJwYWdlIiB0YXJnZXQ9Il9ibGFuayIKICAgICAgICAgID5BcmNoaXZlV2ViLnBhZ2U8L2EKICAgICAgICA+CiAgICAgICAgdG8gc2F2ZSBwYWdlcyBhcyB5b3UgYnJvd3NlIHRoZSB3ZWIsIG9yCiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93ZWJyZWNvcmRlci5uZXQvYnJvd3NlcnRyaXgiIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgPnNpZ24gdXAgZm9yIEJyb3dzZXJ0cml4PC9hCiAgICAgICAgPgogICAgICAgIHRvIGFyY2hpdmUgZW50aXJlIHdlYnNpdGVzIHdpdGggYXV0b21hdGVkIGNyYXdsaW5nIQogICAgICA8L3A+CiAgICBgfX10KFt5ZSh7dHlwZTpBcnJheX0pXSxMaS5wcm90b3R5cGUsIml0ZW1zIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxMaS5wcm90b3R5cGUsInF1ZXJ5Iix2b2lkIDApLHQoW3llKHt0eXBlOkFycmF5fSldLExpLnByb3RvdHlwZSwiZmlsdGVyZWRJdGVtcyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpBcnJheX0pXSxMaS5wcm90b3R5cGUsInNvcnRlZEl0ZW1zIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sTGkucHJvdG90eXBlLCJoaWRlSGVhZGVyIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxMaS5wcm90b3R5cGUsImRhdGVOYW1lIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxMaS5wcm90b3R5cGUsImhlYWRlck5hbWUiLHZvaWQgMCksdChbeGUoKV0sTGkucHJvdG90eXBlLCJfZGVsZXRpbmciLHZvaWQgMCksY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ3ci1pdGVtLWluZGV4IixMaSk7bGV0IEVpPWNsYXNzIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuZmlsZURpc3BsYXlOYW1lPSIiLHRoaXMuZmlsZT1udWxsLHRoaXMuZHJvcHBlZEZpbGU9bnVsbCx0aGlzLmhhc05hdGl2ZUZTPSEhd2luZG93LnNob3dPcGVuRmlsZVBpY2tlciYmIXFlLHRoaXMuc2hvd09wZW5GaWxlUGlja2VyT3B0aW9ucz17dHlwZXM6W3tkZXNjcmlwdGlvbjoiV0FSQywgV0FDWiwgYW5kIEhBUiBGaWxlcyIsYWNjZXB0OnsiYXBwbGljYXRpb24vd2FyYyI6WyIud2FyYyIsIi5neiJdLCJhcHBsaWNhdGlvbi9oYXIiOlsiLmhhciJdLCJhcHBsaWNhdGlvbi93YWN6IjpbIi53YWN6Il0sImFwcGxpY2F0aW9uL2pzb24iOlsiLmpzb24iXX19XX0sdGhpcy5uZXdGdWxsSW1wb3J0PSExLHRoaXMubm9IZWFkPSExfXVwZGF0ZWQoZSl7ZS5oYXMoImRyb3BwZWRGaWxlIikmJnRoaXMuZHJvcHBlZEZpbGUmJnRoaXMub25Ecm9wRmlsZSgpfW9uRHJvcEZpbGUoKXtjb25zdCBlPXRoaXMuc2hvd09wZW5GaWxlUGlja2VyT3B0aW9ucy50eXBlcy5tYXAoKGU9PmUuYWNjZXB0KSkubWFwKE9iamVjdC52YWx1ZXMpLmZsYXQoMikuc29tZSgoZT0+e3ZhciB0O3JldHVybiBudWxsPT09KHQ9dGhpcy5kcm9wcGVkRmlsZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQubmFtZS5lbmRzV2l0aChlKX0pKTtpZihlKXtpZihudWxsPT09dGhpcy5kcm9wcGVkRmlsZSlyZXR1cm47dGhpcy5zZXRGaWxlKHRoaXMuZHJvcHBlZEZpbGUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZC1kcm9wLWZpbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMub25TdGFydExvYWQoKX19b25DaG9vc2VGaWxlKGUpezAhPT1lLmN1cnJlbnRUYXJnZXQuZmlsZXMubGVuZ3RoJiZ0aGlzLnNldEZpbGUoZS5jdXJyZW50VGFyZ2V0LmZpbGVzWzBdKX1zZXRGaWxlKGUpe3ZhciB0O3RoaXMuZmlsZT1lLHFlJiYobnVsbD09PSh0PXdpbmRvdy5lbGVjdHJvbil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZ2V0UGF0aCkmJih0aGlzLmZpbGUucGF0aD13aW5kb3cuZWxlY3Ryb24uZ2V0UGF0aCh0aGlzLmZpbGUpKSx0aGlzLmZpbGVEaXNwbGF5TmFtZT0iZmlsZTovLyIrKGUucGF0aHx8ZS5uYW1lKX1vbkNob29zZU5hdGl2ZUZpbGUoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKCF0aGlzLmhhc05hdGl2ZUZTKXJldHVybjtjb25zdFtlXT15aWVsZCB3aW5kb3cuc2hvd09wZW5GaWxlUGlja2VyKHRoaXMuc2hvd09wZW5GaWxlUGlja2VyT3B0aW9ucyk7dGhpcy5maWxlSGFuZGxlPWUsdGhpcy5maWxlPXlpZWxkIGUuZ2V0RmlsZSgpLHRoaXMuZmlsZURpc3BsYXlOYW1lPSJmaWxlOi8vIitlLm5hbWV9KSl9cmFuZG9tSWQoKXtyZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTUpK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDE1KX1vblN0YXJ0TG9hZChlKXtlJiZlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD17c291cmNlVXJsOnRoaXMuZmlsZURpc3BsYXlOYW1lLG5ld0Z1bGxJbXBvcnQ6dGhpcy5uZXdGdWxsSW1wb3J0fTtyZXR1cm4gdGhpcy5maWxlJiYodC5pc0ZpbGU9ITAsdGhpcy5maWxlLnBhdGg/KHQubG9hZFVybD0iZmlsZTI6Ly8iK3RoaXMuZmlsZS5wYXRoLHQubm9DYWNoZT0hMCk6dGhpcy5maWxlSGFuZGxlPyh0LmxvYWRVcmw9dGhpcy5maWxlRGlzcGxheU5hbWUsdC5leHRyYT17ZmlsZUhhbmRsZTp0aGlzLmZpbGVIYW5kbGV9LHQubm9DYWNoZT0hMSk6KHQubG9hZFVybD1VUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMuZmlsZSksdC5ibG9iPXRoaXMuZmlsZSx0Lm5vQ2FjaGU9ITEpLHQuc2l6ZT10aGlzLmZpbGUuc2l6ZSx0Lm5hbWU9dGhpcy5maWxlRGlzcGxheU5hbWUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvYWQtc3RhcnQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp0fSkpLCExfW9uSW5wdXQoZSl7dGhpcy5maWxlRGlzcGxheU5hbWU9ZS5jdXJyZW50VGFyZ2V0LnZhbHVlLHRoaXMuZmlsZSYmdGhpcy5maWxlRGlzcGxheU5hbWUmJnRoaXMuZmlsZURpc3BsYXlOYW1lLnN0YXJ0c1dpdGgoImZpbGU6Ly8iKSYmKHRoaXMuZmlsZT1udWxsLHRoaXMuZmlsZURpc3BsYXlOYW1lPSIiKX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShoYAogICAgICA6aG9zdCB7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CiAgICAgIC5leHRyYS1wYWRkaW5nIHsKICAgICAgICBwYWRkaW5nOiAxLjVlbTsKICAgICAgfQogICAgICAubGVzcy1wYWRkaW5nIHsKICAgICAgICBwYWRkaW5nLXRvcDogMWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAxZW07CiAgICAgIH0KICAgICAgZGl2LmZpZWxkLmhhcy1hZGRvbnMgewogICAgICAgIGZsZXg6IGF1dG87CiAgICAgIH0KICAgICAgLnBhbmVsLWhlYWRpbmcgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZmYzZmY7CiAgICAgIH0KICAgICAgLm1lc3NhZ2UtaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZmM2ZmOwogICAgICAgIGNvbG9yOiBibGFjazsKICAgICAgfQogICAgICAuaGVhZGluZy1zaXplIHsKICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgIH0KICAgICAgZm9ybSB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgcC5jb250cm9sLmlzLWV4cGFuZGVkIHsKICAgICAgICB3aWR0aDogbWluLWNvbnRlbnQ7CiAgICAgIH0KICAgICAgaW5wdXQuaW5wdXQuZmlsZS1uYW1lOmludmFsaWQgewogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZWQ7CiAgICAgIH0KICAgICAgaW5wdXQuaW5wdXQuZmlsZS1uYW1lIHsKICAgICAgICBib3JkZXItd2lkdGg6IDFweDsKICAgICAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7CiAgICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgI2ZpbGVuYW1lIHsKICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7CiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OwogICAgICAgIH0KICAgICAgfQogICAgYCl9cmVuZGVyKCl7cmV0dXJuIFFgIDxzZWN0aW9uCiAgICAgIGNsYXNzPSJzZWN0aW9uICR7dGhpcy5ub0hlYWQ/ImlzLXBhZGRpbmdsZXNzIjoibGVzcy1wYWRkaW5nIn0iCiAgICA+CiAgICAgIDxkaXYgY2xhc3M9IiR7dGhpcy5ub0hlYWQ/IiI6InBhbmVsIn0iPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSIke3RoaXMubm9IZWFkPyJpcy1oaWRkZW4iOiJwYW5lbC1oZWFkaW5nIn0gaGVhZGluZy1zaXplIgogICAgICAgID4KICAgICAgICAgICR7dGhpcy5uZXdGdWxsSW1wb3J0PyJJbXBvcnQgRXhpc3RpbmciOiJMb2FkIn0gV2ViIEFyY2hpdmUKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iJHt0aGlzLm5vSGVhZD8iIjoicGFuZWwtYm9keSBleHRyYS1wYWRkaW5nIn0gZmlsZSBoYXMtbmFtZSIKICAgICAgICA+CiAgICAgICAgICA8Zm9ybSBjbGFzcz0iaXMtZmxleCIgQHN1Ym1pdD0iJHt0aGlzLm9uU3RhcnRMb2FkfSI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmlsZS1sYWJlbCI+CiAgICAgICAgICAgICAgJHt0aGlzLmhhc05hdGl2ZUZTPyIiOlFgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmaWxlLWlucHV0IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHtlPT5lLmN1cnJlbnRUYXJnZXQudmFsdWU9bnVsbH0iCiAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMub25DaG9vc2VGaWxlfQogICAgICAgICAgICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICAgICAgICAgICAgaWQ9ImZpbGV1cGxvYWQiCiAgICAgICAgICAgICAgICAgICAgbmFtZT0iZmlsZXVwbG9hZCIKICAgICAgICAgICAgICAgICAgLz5gfQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWN0YSIgQGNsaWNrPSIke3RoaXMub25DaG9vc2VOYXRpdmVGaWxlfSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1pY29uIj4KICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICBzaXplPSIwLjllbSIKICAgICAgICAgICAgICAgICAgICAuc3ZnPSR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTI5NiAzODRoLTgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYxOTJoLTg3LjdjLTE3LjggMC0yNi43LTIxLjUtMTQuMS0zNC4xTDI0Mi4zIDUuN2M3LjUtNy41IDE5LjgtNy41IDI3LjMgMGwxNTIuMiAxNTIuMmMxMi42IDEyLjYgMy43IDM0LjEtMTQuMSAzNC4xSDMyMHYxNjhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6bTIxNi04djExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMzc2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDEzNnY4YzAgMzAuOSAyNS4xIDU2IDU2IDU2aDgwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2di04aDEzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHptLTEyNCA4OGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIwem02NCAwYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMCA5IDIwIDIwIDIwIDIwLTkgMjAtMjB6Ii8+PC9zdmc+J30KICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWxhYmVsIGlzLWhpZGRlbi10b3VjaCI+IENob29zZSBGaWxlLi4uIDwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZCBoYXMtYWRkb25zIj4KICAgICAgICAgICAgICA8cCBjbGFzcz0iY29udHJvbCBpcy1leHBhbmRlZCI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgY2xhc3M9ImZpbGUtbmFtZSBpbnB1dCIKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgbmFtZT0iZmlsZW5hbWUiCiAgICAgICAgICAgICAgICAgIGlkPSJmaWxlbmFtZSIKICAgICAgICAgICAgICAgICAgcGF0dGVybj0iKChmaWxlfGh0dHB8aHR0cHN8aXBmc3xzMyk6Ly8uKi4od2FyY3x3YXJjLmd6fHppcHx3YWN6fGhhcnxqc29ufGNkeHxjZHhqKShbPyNdLiopPyl8KGdvb2dsZWRyaXZlOi8vLispfChzc2I6Ly8uKykiCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLmZpbGVEaXNwbGF5TmFtZX0iCiAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLm9uSW5wdXR9IgogICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9Im9mZiIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IiR7dGhpcy5uZXdGdWxsSW1wb3J0PyJDbGljayAnQ2hvb3NlIEZpbGUnIHRvIHNlbGVjdCBhIGxvY2FsIGFyY2hpdmUgdG8gaW1wb3J0IjoiRW50ZXIgYSBVUkwgb3IgY2xpY2sgJ0Nob29zZSBGaWxlJyB0byBzZWxlY3QgYSBXQVJDLCBXQUNaLCBDRFgsIG9yIEhBUiBmaWxlIn0iCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIGlzLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAke3RoaXMubmV3RnVsbEltcG9ydD8iSW1wb3J0IjoiTG9hZCJ9CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPmB9fTt2YXIgQWk7dChbeWUoe3R5cGU6U3RyaW5nfSldLEVpLnByb3RvdHlwZSwiZmlsZURpc3BsYXlOYW1lIix2b2lkIDApLHQoW3llKHthdHRyaWJ1dGU6ITF9KV0sRWkucHJvdG90eXBlLCJmaWxlIix2b2lkIDApLHQoW3llKHthdHRyaWJ1dGU6ITF9KV0sRWkucHJvdG90eXBlLCJkcm9wcGVkRmlsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLEVpLnByb3RvdHlwZSwiaGFzTmF0aXZlRlMiLHZvaWQgMCksdChbeWUoe3R5cGU6T2JqZWN0fSldLEVpLnByb3RvdHlwZSwic2hvd09wZW5GaWxlUGlja2VyT3B0aW9ucyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLEVpLnByb3RvdHlwZSwibmV3RnVsbEltcG9ydCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLEVpLnByb3RvdHlwZSwibm9IZWFkIix2b2lkIDApLEVpPXQoW2dlKCJ3ci1jaG9vc2VyIildLEVpKTtsZXQgVGk9QWk9Y2xhc3MgZXh0ZW5kcyBtZXtjb25zdHJ1Y3RvcihlPSJzdy5qcyIpe3N1cGVyKCksdGhpcy5pbml0ZWQ9ITEsdGhpcy5wYWdlUGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXMsdGhpcy5zb3VyY2VVcmw9bnVsbCx0aGlzLm5hdk1lbnVTaG93bj0hMSx0aGlzLnNob3dBYm91dD0hMSx0aGlzLnNob3dGaWxlRHJvcE92ZXJsYXk9ITEsdGhpcy5jb2xsVGl0bGU9bnVsbCx0aGlzLmxvYWRJbmZvPW51bGwsdGhpcy5lbWJlZD1udWxsLHRoaXMuY29sbFBhZ2VVcmw9IiIsdGhpcy5wYWdlVGl0bGU9IiIsdGhpcy5wYWdlUmVwbGF5PSExLHRoaXMuc291cmNlPW51bGwsdGhpcy5za2lwUnVmZmxlPSExLHRoaXMuc3dFcnJvck1zZz1udWxsLHRoaXMudXNlUnVmZmxlPSExLHRoaXMuZHJvcHBlZEZpbGU9bnVsbCx0aGlzLm1heWJlU3RhcnRGaWxlRHJvcD1lPT57dGhpcy5zb3VyY2VVcmx8fCh0aGlzLnNob3dGaWxlRHJvcE92ZXJsYXk9ITAsZS5wcmV2ZW50RGVmYXVsdCgpKX0sdGhpcy5zd05hbWU9ZSx0aGlzLnN3bWFuYWdlcj1udWxsLHRoaXMuc2tpcFJ1ZmZsZT0hMSx0aGlzLnVzZVJ1ZmZsZT0hMSx0aGlzLnNhZmFyaUtleWZyYW1lcygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwoZT0+e3RoaXMubWF5YmVTdGFydEZpbGVEcm9wKGUpfSkpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLChlPT57dGhpcy5tYXliZVN0YXJ0RmlsZURyb3AoZSl9KSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgoKT0+e3RoaXMuc2hvd0ZpbGVEcm9wT3ZlcmxheT0hMX0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLCgoKT0+e3RoaXMuc2hvd0ZpbGVEcm9wT3ZlcmxheT0hMX0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLChlPT57dmFyIHQ7dGhpcy5kcm9wcGVkRmlsZT0obnVsbD09PSh0PWUuZGF0YVRyYW5zZmVyKXx8dm9pZCAwPT09dD92b2lkIDA6dC5maWxlc1swXSl8fG51bGwsdGhpcy5zaG93RmlsZURyb3BPdmVybGF5PSExLGUucHJldmVudERlZmF1bHQoKX0pKX1nZXQgYXBwTmFtZSgpe3JldHVybiJSZXBsYXlXZWIucGFnZSJ9Z2V0IGhvbWVVcmwoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKEFpLmFwcFN0eWxlcyl9c3RhdGljIGdldCBhcHBTdHlsZXMoKXtyZXR1cm4gaGAKICAgICAgI3dybG9nbyB7CiAgICAgICAgbWF4LWhlaWdodDogMXJlbTsKICAgICAgfQogICAgICAubmF2YmFyIHsKICAgICAgICBoZWlnaHQ6IDEuNXJlbTsKICAgICAgfQogICAgICAubmF2YmFyLWJyYW5kIHsKICAgICAgICBoZWlnaHQ6IDEuNXJlbTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLndyLWxvZ28taXRlbSB7CiAgICAgICAgcGFkZGluZzogMCAwLjVyZW0gMCAwOwoKICAgICAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsKICAgICAgICAta2h0bWwtdXNlci1kcmFnOiBub25lOwogICAgICAgIC1tb3otdXNlci1kcmFnOiBub25lOwogICAgICAgIC1vLXVzZXItZHJhZzogbm9uZTsKICAgICAgICB1c2VyLWRyYWc6IG5vbmU7CiAgICAgIH0KICAgICAgLm5vLXdyYXAgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CiAgICAgIC5oYXMtYWxsY2FwcyB7CiAgICAgICAgZm9udC12YXJpYW50LWNhcHM6IHNtYWxsLWNhcHM7CiAgICAgIH0KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIG1pbi13aWR0aDogMHB4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KICAgICAgd3ItaXRlbSB7CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAubmF2YmFyIHsKICAgICAgICBwYWRkaW5nOiAwIDAuNWVtOwogICAgICB9CgogICAgICBkaXYubmF2YmFyLW1lbnUgZmEtaWNvbiB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHN1YjsKICAgICAgfQogICAgICAudGFnbGluZSB7CiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTsKICAgICAgfQoKICAgICAgLmRyb3AtZmlsZS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBpbnNldDogMDsKICAgICAgICB6LWluZGV4OiA1MDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7CiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7CiAgICAgIH0KCiAgICAgIC5kcm9wLWZpbGUtb3ZlcmxheTphZnRlciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29udGVudDogIiAiOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBib3JkZXI6IDVweCBkYXNoZWQgI2FhYTsKICAgICAgICBtYXJnaW46IDE1cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0MHB4KSB7CiAgICAgICAgLm1lbnUtb25seSB7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgYS5hcnJvdy1idXR0b24gewogICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7CiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7CiAgICAgICAgfQoKICAgICAgICAuaW5mby1tZW51IHsKICAgICAgICAgIHBhZGRpbmc6IDAgMWVtOwogICAgICAgIH0KCiAgICAgICAgLmxvZ28tdGV4dCB7CiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgfQoKICAgICAgICBhLm5hdmJhci1pdGVtLmxvZ28tdGV4dDpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODQwcHgpIHsKICAgICAgICAud2lkZS1vbmx5IHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB9CiAgICAgIH0KICAgIGB9Z2V0IG1haW5Mb2dvKCl7cmV0dXJuIEtlfXJlbmRlck5hdkJyYW5kKCl7cmV0dXJuIFFgIDxmYS1pY29uCiAgICAgIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjIiIHZpZXdCb3g9IjAgMCAxODkgMjQiPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZD0iTTAtLjAwMWgxODguODh2MjMuMDRIMHoiLz48L2NsaXBQYXRoPjxnIGNsaXAtcGF0aD0idXJsKCNhKSI+PHBhdGggZD0iTTMyLjk5NyAxMy43Mjh2NC40MzdoLTMuMDE0VjQuODc0aDUuOTM0cTIuMDQgMCAzLjA4OSAxLjAxIDEuMDY3IDEuMDExIDEuMDY3IDIuODA4IDAgMS41MTYtLjgwNSAyLjY1OWE3LjEgNy4xIDAgMCAxLTEuMzYyIDEuNDI5bDIuMjYgNC42NzN2LjcxMmgtMi45NTdsLTIuMzU0LTQuNDM3em0wLTYuNDc3djQuMzI0aDIuODI0cS41MzYtLjM4Ny44NDUtLjk3My4zNzQtLjY3NC4zNzQtMS41MzUgMC0uODgtLjQxMi0xLjM0OC0uMzkyLS40NjgtMS4xNDItLjQ2OHptMTcuOTMyIDEwLjkxNGgtOC4yMThWNC44NzRoOC4yMTh2Mi42NThoLTUuMjA0djIuOTJoNC43NzN2Mi4xMTZoLTQuNzczdjIuOTM5aDUuMjA0em01LjYwNC0zLjI5NXYzLjI5NUg1My41MlY0Ljg3NGg1LjIyMnExLjU5MiAwIDIuNjQuNTYxYTMuNDcgMy40NyAwIDAgMSAxLjU1NCAxLjY4NXEuNTI0IDEuMTA0LjUyNCAyLjc1MiAwIDEuNjEtLjUyNCAyLjczM2EzLjU4IDMuNTggMCAwIDEtMS41NTQgMS42ODVxLTEuMDQ4LjU4LTIuNjQuNTh6bTAtNy42MTl2NS4yNDJoMi4xMzVxLjg2IDAgMS4zMS0uNjc0LjQ2OC0uNjc1LjQ2OC0xLjk0NyAwLS44MjMtLjIwNi0xLjQwNC0uMjA2LS42LS42MTgtLjg5OWExLjQ3IDEuNDcgMCAwIDAtLjk1NC0uMzE4em0xNy4xOTQgMTAuOTE0aC03LjlWNC44NzRoMy4wMTR2MTAuNTU4aDQuODg2em0zNC4xNzggMGgtMi4zMDNsLTEuNzAzLTEyLjQ4NnYtLjgwNWgyLjkzOWwuOTcxIDcuNjEyIDIuMTE3LTUuNTE2aDEuMjE3bDIuMDg1IDUuNDExIDEuMDA0LTcuNTA3aDIuOTAydi44MDVsLTEuNjg1IDEyLjQ4NmgtMi4zNTlsLTIuNTI3LTYuMTIyLS4wNDctLjE1LS4wNDcuMTV6bTE5LjY5OSAwaC04LjIxOFY0Ljg3NGg4LjIxOHYyLjY1OEgxMjIuNHYyLjkyaDQuNzc0djIuMTE2SDEyMi40djIuOTM5aDUuMjA0em05LjAzIDBoLTYuNDM5VjQuODc0aDYuNDk2cTEuNjg0IDAgMi41ODMuODQyLjg5OC44MjQuODk4IDIuMjY1YTMuMjcgMy4yNyAwIDAgMS0uNzY3IDIuMTM0IDQuNSA0LjUgMCAwIDEtMS4wMzkuOTM5cS43ODUuMzM4IDEuMjgyLjkxNC44MjQuOTU1LjgyNCAyLjQzNCAwIDEuNzQxLS45NzMgMi43NTItLjk3NCAxLjAxMS0yLjg2NSAxLjAxMW0tMy40MjUtMTEuMDI2djMuNDQ0aDMuMDM1cS4zOC0uMzQ2LjYxNS0uNzg2LjI4LS41MjQuMjgxLTEuMTIzIDAtLjY5My0uMzU2LTEuMTA1LS4zMzYtLjQzLS45MzYtLjQzem0wIDUuMzE2djMuMzdoMi44NDVxLjY3MyAwIDEuMDExLS40MTIuMzU2LS40My4zNTYtMS4yMzYgMC0uODIzLS4zNTYtMS4yNzNhMS4xNSAxLjE1IDAgMCAwLS43NzMtLjQ0OXptMTIuODAxIDIuNDE1djMuMjk1aC0zLjAxNFY0Ljg3NGg1LjIyM3ExLjU5MSAwIDIuNjM5LjU2MWEzLjQ3IDMuNDcgMCAwIDEgMS41NTQgMS42ODVxLjUyNCAxLjEwNC41MjQgMi43NTIgMCAxLjYxLS41MjQgMi43MzNhMy41OCAzLjU4IDAgMCAxLTEuNTU0IDEuNjg1cS0xLjA0OC41OC0yLjYzOS41OHptMC03LjYxOXY1LjI0MmgyLjEzNHEuODYxIDAgMS4zMS0uNjc0LjQ2OC0uNjc1LjQ2OC0xLjk0NyAwLS44MjMtLjIwNi0xLjQwNC0uMjA2LS42LS42MTctLjg5OWExLjQ3IDEuNDcgMCAwIDAtLjk1NS0uMzE4em00MS43MDcgMTAuOTE0aC04LjIxOFY0Ljg3NGg4LjIxOHYyLjY1OGgtNS4yMDR2Mi45Mmg0Ljc3NHYyLjExNmgtNC43NzR2Mi45MzloNS4yMDR6TTc4Ljg0MiAxNS44NjJsLS43MzMgMi4zMDNoLTIuODY0di0uNjU1bDQuMjY4LTEyLjYzNmgyLjk5Nmw0LjIxMiAxMi41Nzl2LjcxMmgtMi45NzdsLS43MDYtMi4zMDN6bTMuNi0xLjk0N0w4MC45OCA5LjE0NmwtMS41MTggNC43Njl6bTguMjgzLS41MjJMODYuODUgNS42NnYtLjc4NmgyLjc3bDIuNTQ2IDUuODc0IDIuNTY1LTUuODc0aDIuNzUxdi44MDVsLTMuODcxIDcuNzQyLjAxNSA0Ljc0NGgtMi45MDF6bTY2Ljc5IDIuNDY5LS43MzMgMi4zMDNoLTIuODY0di0uNjU1bDQuMjY4LTEyLjYzNmgyLjk5Nmw0LjIxMiAxMi41Nzl2LjcxMmgtMi45NzdsLS43MDYtMi4zMDN6bTMuNi0xLjk0Ny0xLjQ2Mi00Ljc2OS0xLjUxOCA0Ljc2OXptMTEuNzA2IDQuNDM3cS0xLjk4NSAwLTMuMzMyLS42OTMtMS4zNDgtLjcxLTIuMDQxLTIuMjI3LS42OTMtMS41MzYtLjY5Mi0zLjk1IDAtMi4yODQuNzMtMy43ODIuNzQ5LTEuNTE2IDIuMTktMi4yNjV0My41NTctLjc0OXExLjYyOCAwIDMuMzEzLjQxMmwtLjUwNSAyLjQ3MWExNCAxNCAwIDAgMC0yLjY3Ny0uMjYycS0xLjIxNiAwLTIuMDIyLjQ0OS0uNzg2LjQzMi0xLjE5OCAxLjM2Ny0uMzkzLjkzNi0uMzkzIDIuNDM0IDAgMS41MzUuMzE4IDIuNDg5LjMxOC45NTYuOTczIDEuNDA0LjY1Ni40MyAxLjcwNC40MzFhOSA5IDAgMCAwIDEuMTQyLS4wNzV2LTMuMDdsLTIuMDIyLS40ODd2LTEuODM0aDQuNzM2djcuMzc1YTEyIDEyIDAgMCAxLTEuODcyLjQxMnEtLjk1NC4xNS0xLjkwOS4xNSIgc3R5bGU9ImZpbGw6IzE0MTIyZCIvPjxwYXRoIGQ9Ik02LjU0NCAxMC43OTZhLjIzOS4yMzkgMCAwIDEtLjIzNi0uMjgzIDUuMzIgNS4zMiAwIDAgMSAyLjk1OS0zLjgwMS4xMi4xMiAwIDAgMSAuMTMzLjAyMy4xMi4xMiAwIDAgMSAuMDI1LjEzM2MtLjQwOS45OTItLjY5IDIuMjc1LS43NzcgMy43MDJhLjI0LjI0IDAgMCAxLS4yMzkuMjI1em03LjA3LTMuOTI4YS4xMi4xMiAwIDAgMSAuMTU5LS4xNTcgNS4zMiA1LjMyIDAgMCAxIDIuOTU4IDMuODAzLjI0LjI0IDAgMCAxLS4wNTIuMTk1LjI0LjI0IDAgMCAxLS4xODMuMDg1Yy0uNDc1LjAwMi0xLjQyOS4wMDItMS44NjUuMDAyYS4yNC4yNCAwIDAgMS0uMjM5LS4yMjZjLS4wODctMS40MjctLjM2OC0yLjcxLS43NzgtMy43MDJtMi44ODIgNS4zNjhhLjIzOC4yMzggMCAwIDEgLjIzNi4yODIgNS4zMiA1LjMyIDAgMCAxLTIuOTU5IDMuODAxLjEyLjEyIDAgMCAxLS4xMzMtLjAyMy4xMi4xMiAwIDAgMS0uMDI1LS4xMzNjLjQwOS0uOTkyLjY5LTIuMjc1Ljc3Ny0zLjcwMmEuMjQuMjQgMCAwIDEgLjIzOS0uMjI1em0tNy4wNyAzLjkyN2EuMTIuMTIgMCAwIDEtLjE1OS4xNTcgNS4zMiA1LjMyIDAgMCAxLTIuOTU4LTMuODAzLjI0LjI0IDAgMCAxIC4wNTItLjE5NS4yNC4yNCAwIDAgMSAuMTgzLS4wODVsMS44NjUtLjAwMWMuMTI3IDAgLjIzMi4wOTkuMjM5LjIyNS4wODcgMS40MjcuMzY4IDIuNzEuNzc4IDMuNzAybS42NjYtMy42NzJhLjI0LjI0IDAgMCAxIC4yMzktLjI1NWgyLjM3OGEuMjQuMjQgMCAwIDEgLjIzOS4yNTVjLS4xMDIgMS41MTktLjQ0MiAyLjg0My0uOTU3IDMuNzE3YTIuMSAyLjEgMCAwIDEtLjM5Ny41MDkuMTIuMTIgMCAwIDEtLjE0OCAwIDIuMSAyLjEgMCAwIDEtLjM5Ny0uNTA5Yy0uNTE1LS44NzQtLjg1NS0yLjE5OC0uOTU3LTMuNzE3bTIuODU2LTEuOTUxYS4yNC4yNCAwIDAgMS0uMjM5LjI1NWwtMi4zNzguMDAxYS4yNC4yNCAwIDAgMS0uMjM5LS4yNTZjLjEwMi0xLjUxOS40NDItMi44NDMuOTU3LTMuNzE3LjEyMS0uMjA2LjI2MS0uMzkxLjM5Ny0uNTA5YS4xMi4xMiAwIDAgMSAuMTQ4IDBjLjEzNi4xMTguMjc2LjMwMy4zOTcuNTA5LjUxNS44NzQuODU1IDIuMTk4Ljk1NyAzLjcxNyIgc3R5bGU9ImZpbGw6IzA4OTFiMiIvPjxwYXRoIGQ9Ik0yMi44MzMgMTIuNzk5YS4yNC4yNCAwIDAgMSAuMTIyLjI0MWMtLjc0NiA1LjY0LTUuNTc4IDkuOTk5LTExLjQyMSA5Ljk5OS01Ljg2OSAwLTEwLjcxOC00LjM5Ny0xMS40My0xMC4wNzRhLjIzOC4yMzggMCAwIDEgLjM1Ny0uMjMzYy41MTguMyAxLjM4LjgwMyAxLjY5Ny45ODdhLjI0LjI0IDAgMCAwIC4yNDIgMGwxLjcwNi0xLjAwM2EuMjQuMjQgMCAwIDEgLjM1OC4xNjUgNy4yMDQgNy4yMDQgMCAwIDAgNy4wNyA1LjgzOCA3LjIxIDcuMjEgMCAwIDAgNy4wNTctNS43NjcuMjQuMjQgMCAwIDEgLjEyMS0uMTY0bDEuOTYxLTEuMDU5YS4yNC4yNCAwIDAgMSAuMjMuMDAxek0uMjI2IDEwLjIzOWEuMjQuMjQgMCAwIDEtLjEyMi0uMjRjLjc0Ni01LjY0MSA1LjU3OC0xMCAxMS40MjEtMTAgNS44NjkgMCAxMC43MTggNC4zOTggMTEuNDMgMTAuMDc1YS4yNC4yNCAwIDAgMS0uMTA3LjIyNi4yNC4yNCAwIDAgMS0uMjUuMDA3Yy0uNTE4LS4zLTEuMzgtLjgwMy0xLjY5Ny0uOTg4YS4yNC4yNCAwIDAgMC0uMjQyLjAwMWwtMS43MDYgMS4wMDNhLjI0LjI0IDAgMCAxLS4zNTgtLjE2NSA3LjIwNSA3LjIwNSAwIDAgMC03LjA3LTUuODM5IDcuMjEgNy4yMSAwIDAgMC03LjA1NyA1Ljc2Ny4yNC4yNCAwIDAgMS0uMTIxLjE2NGwtMS45NjEgMS4wNmEuMjQuMjQgMCAwIDEtLjIzMS0uMDAyeiIgc3R5bGU9ImZpbGw6IzRkN2MwZiIvPjwvZz48L3N2Zz5cbid9IgogICAgICBzaXplPSIiCiAgICAgIHdpZHRoPSI5LjVyZW0iCiAgICAgIGhlaWdodD0iMS4yNXJlbSIKICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICA+PC9mYS1pY29uPmB9cmVuZGVyTmF2QmFyKCl7cmV0dXJuIFFgIDxhCiAgICAgICAgaHJlZj0iI3NraXAtbWFpbi10YXJnZXQiCiAgICAgICAgQGNsaWNrPSR7dGhpcy5za2lwTWVudX0KICAgICAgICBjbGFzcz0ic2tpcC1saW5rIgogICAgICAgID5Ta2lwIG1haW4gbmF2aWdhdGlvbjwvYQogICAgICA+CiAgICAgIDxuYXYgY2xhc3M9Im5hdmJhciIgYXJpYS1sYWJlbD0ibWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2YmFyLWJyYW5kIj4KICAgICAgICAgICR7dGhpcy5lbWJlZD9RYAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hdmJhci1pdGVtIHdyLWxvZ28taXRlbSI+CiAgICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgICAgaWQ9IndybG9nbyIKICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjByZW0iCiAgICAgICAgICAgICAgICAgICAgLnN2Zz0ke3RoaXMubWFpbkxvZ299CiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgYDpRYAogICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgaHJlZj0iJHt0aGlzLmhvbWVVcmx9IgogICAgICAgICAgICAgICAgICBjbGFzcz0ibmF2YmFyLWl0ZW0gd3ItbG9nby1pdGVtIgogICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJSZXBsYXlXZWIucGFnZSBIb21lIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyTmF2QnJhbmQoKX0KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICR7dGhpcy5jb2xsVGl0bGU/UWAKICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9IiR7dGhpcy5jb2xsUGFnZVVybH0iCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJuby13cmFwIGlzLXNpemUtNiBoYXMtdGV4dC1ibGFjayIKICAgICAgICAgICAgICAgICAgICAgICAgPi8mbmJzcDsmbmJzcDs8aT4ke3RoaXMuY29sbFRpdGxlfTwvaT48L2EKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuby13cmFwIGlzLXNpemUtNiIKICAgICAgICAgICAgICAgICAgICAgICAgPiZuYnNwOyZuYnNwOy8mbmJzcDsKICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnBhZ2VSZXBsYXk/UWA8aT4ke3RoaXMucGFnZVRpdGxlfTwvaT5gOnRoaXMucGFnZVRpdGxlfQogICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgYH0KICAgICAgICAgIDxhCiAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgaWQ9Im1lbnUtYnV0dG9uIgogICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbk5hdk1lbnV9IgogICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICBjbGFzcz0ibmF2YmFyLWJ1cmdlciBidXJnZXIgJHt0aGlzLm5hdk1lbnVTaG93bj8iaXMtYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9Im1haW4gbWVudSIKICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIKICAgICAgICAgICAgYXJpYS1leHBhbmRlZD0iJHt0aGlzLm5hdk1lbnVTaG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNvdXJjZVVybD9RYGA6UWAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJuYXZiYXItbWVudSAke3RoaXMubmF2TWVudVNob3duPyJpcy1hY3RpdmUiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1zdGFydCI+CiAgICAgICAgICAgICAgICAke3FlP1FgCiAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJuYXZiYXItaXRlbSBhcnJvdy1idXR0b24iCiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJHbyBCYWNrIgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PndpbmRvdy5oaXN0b3J5LmJhY2soKX0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0iMS4wcmVtIgogICAgICAgICAgICAgICAgICAgICAgICAgIC5zdmc9IiR7WWV9IgogICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICA+PC9mYS1pY29uCiAgICAgICAgICAgICAgICAgICAgICAgID48c3BhbiBjbGFzcz0ibWVudS1vbmx5IGlzLXNpemUtNyI+Jm5ic3A7R28gQmFjazwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im5hdmJhci1pdGVtIGFycm93LWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IkdvIEZvcndhcmQiCiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+d2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpfSIKICAgICAgICAgICAgICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjByZW0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgLnN2Zz0iJHtRZX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZhLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPSJtZW51LW9ubHkgaXMtc2l6ZS03IgogICAgICAgICAgICAgICAgICAgICAgICAgID4mbmJzcDtHbyBGb3J3YXJkPC9zcGFuCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICR7dGhpcy5lbWJlZD9RYGA6UWAgPGRpdiBjbGFzcz0ibmF2YmFyLWVuZCI+JHt0aGlzLnJlbmRlck5hdkVuZCgpfTwvZGl2PmB9CiAgICAgICAgICAgIDwvZGl2PmB9CiAgICAgIDwvbmF2PgogICAgICA8cCBpZD0ic2tpcC1tYWluLXRhcmdldCIgdGFiaW5kZXg9Ii0xIiBjbGFzcz0iaXMtc3Itb25seSI+U2tpcHBlZDwvcD5gfXJlbmRlck5hdkVuZCgpe3JldHVybiBRYCA8YSBocmVmPSIvZG9jcyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJuYXZiYXItaXRlbSBpcy1zaXplLTYiPgogICAgICAgIDxmYS1pY29uIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTUwNCAyNTZjMCAxMzYuOTk3LTExMS4wNDMgMjQ4LTI0OCAyNDhTOCAzOTIuOTk3IDggMjU2QzggMTE5LjA4MyAxMTkuMDQzIDggMjU2IDhzMjQ4IDExMS4wODMgMjQ4IDI0OHpNMjYyLjY1NSA5MGMtNTQuNDk3IDAtODkuMjU1IDIyLjk1Ny0xMTYuNTQ5IDYzLjc1OC0zLjUzNiA1LjI4Ni0yLjM1MyAxMi40MTUgMi43MTUgMTYuMjU4bDM0LjY5OSAyNi4zMWM1LjIwNSAzLjk0NyAxMi42MjEgMy4wMDggMTYuNjY1LTIuMTIyIDE3Ljg2NC0yMi42NTggMzAuMTEzLTM1Ljc5NyA1Ny4zMDMtMzUuNzk3IDIwLjQyOSAwIDQ1LjY5OCAxMy4xNDggNDUuNjk4IDMyLjk1OCAwIDE0Ljk3Ni0xMi4zNjMgMjIuNjY3LTMyLjUzNCAzMy45NzZDMjQ3LjEyOCAyMzguNTI4IDIxNiAyNTQuOTQxIDIxNiAyOTZ2NGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDU2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEuMzMzYzAtMjguNDYyIDgzLjE4Ni0yOS42NDcgODMuMTg2LTEwNi42NjcgMC01OC4wMDItNjAuMTY1LTEwMi0xMTYuNTMxLTEwMnpNMjU2IDMzOGMtMjUuMzY1IDAtNDYgMjAuNjM1LTQ2IDQ2IDAgMjUuMzY0IDIwLjYzNSA0NiA0NiA0NnM0Ni0yMC42MzYgNDYtNDZjMC0yNS4zNjUtMjAuNjM1LTQ2LTQ2LTQ2eiIvPjwvc3ZnPid9IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9mYS1pY29uCiAgICAgICAgPjxzcGFuPiZuYnNwO1VzZXIgRG9jczwvc3Bhbj4KICAgICAgPC9hPgogICAgICA8IS0tCiAgICAtLSBOQjogdGhlIEFib3V0IG1vZGFsIGlzIGN1cnJlbnRseSBpbmFjY2Vzc2libGUgdG8gcGVvcGxlIHVzaW5nIGtleWJvYXJkcyBvciBzY3JlZW4gcmVhZGVycy4KICAgIC0tICBTaG91bGQgYWxsIHRoZSBKUyBhbmQgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFjY2Vzc2libGUgbW9kYWxzIGJlIGFkZGVkLCBvciBzaG91bGQgQWJvdXQgYmUgYSBub3JtYWwgcGFnZT8KICAgIC0tPgogICAgICA8YQogICAgICAgIGhyZWY9Ij90ZXJtcyIKICAgICAgICBAY2xpY2s9IiR7ZT0+e2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNob3dBYm91dD0hMH19IgogICAgICAgIGNsYXNzPSJuYXZiYXItaXRlbSBpcy1zaXplLTYiCiAgICAgICAgPkFib3V0CiAgICAgIDwvYT5gfXJlbmRlckNvbGwoKXtyZXR1cm4gUWAgPHdyLWl0ZW0KICAgICAgLmxvYWRJbmZvPSIke3RoaXMubG9hZEluZm99IgogICAgICBzb3VyY2VVcmw9IiR7dGhpcy5zb3VyY2VVcmx8fCIifSIKICAgICAgZW1iZWQ9IiR7JGUobnVsbD09PXRoaXMuZW1iZWQ/dm9pZCAwOnRoaXMuZW1iZWQpfSIKICAgICAgYXBwTmFtZT0iJHt0aGlzLmFwcE5hbWV9IgogICAgICBzd05hbWU9IiR7JGUodGhpcy5zd05hbWUpfSIKICAgICAgQHJlcGxheS1mYXZpY29ucz0ke3RoaXMub25GYXZJY29uc30KICAgICAgQHVwZGF0ZS10aXRsZT0ke3RoaXMub25UaXRsZX0KICAgICAgQGNvbGwtbG9hZGVkPSR7dGhpcy5vbkNvbGxMb2FkZWR9CiAgICAgIEBjb2xsLWxvYWQtY2FuY2VsPSR7dGhpcy5vbkNvbGxMb2FkQ2FuY2VsfQogICAgICBAYWJvdXQtc2hvdz0keygpPT50aGlzLnNob3dBYm91dD0hMH0KICAgID48L3dyLWl0ZW0+YH1yZW5kZXJIb21lSW5kZXgoKXtyZXR1cm4gUWAgPHdyLWl0ZW0taW5kZXg+CiAgICAgICR7cWU/IiI6UWAKICAgICAgICAgICAgPHAgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGFnbGluZSBpcy1zaXplLTUgaGFzLXRleHQtY2VudGVyZWQiPgogICAgICAgICAgICAgIEV4cGxvcmUgYW5kIFJlcGxheSBJbnRlcmFjdGl2ZSBBcmNoaXZlZCBXZWJwYWdlcyBEaXJlY3RseSBpbiB5b3VyCiAgICAgICAgICAgICAgQnJvd3Nlci4KICAgICAgICAgICAgICA8aQogICAgICAgICAgICAgICAgPjxhCiAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3dlYnJlY29yZGVyLm5ldC9yZXBsYXl3ZWJwYWdlLyIKICAgICAgICAgICAgICAgICAgPihMZWFybiBNb3JlKTwvYQogICAgICAgICAgICAgICAgPjwvaQogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgYH0KICAgICAgPHdyLWNob29zZXIKICAgICAgICBzbG90PSJoZWFkZXIiCiAgICAgICAgLmRyb3BwZWRGaWxlPSR7dGhpcy5kcm9wcGVkRmlsZX0KICAgICAgICBAZGlkLWRyb3AtZmlsZT0iJHsoKT0+dGhpcy5kcm9wcGVkRmlsZT1udWxsfSIKICAgICAgICBAbG9hZC1zdGFydD0ke3RoaXMub25TdGFydExvYWR9CiAgICAgID48L3dyLWNob29zZXI+CiAgICA8L3dyLWl0ZW0taW5kZXg+YH1yZW5kZXIoKXtyZXR1cm4gdGhpcy5pbml0ZWQ/dGhpcy5lbWJlZCYmdGhpcy5zd0Vycm9yTXNnP3RoaXMuc3dFcnJvck1zZzpRYAogICAgICAke3RoaXMuZW1iZWQmJiJmdWxsIiE9PXRoaXMuZW1iZWQ/IiI6dGhpcy5yZW5kZXJOYXZCYXIoKX0KICAgICAgJHt0aGlzLnNvdXJjZVVybD90aGlzLnJlbmRlckNvbGwoKTp0aGlzLnJlbmRlckhvbWVJbmRleCgpfQogICAgICAke3RoaXMuc2hvd0Fib3V0P3RoaXMucmVuZGVyQWJvdXQoKToiIn0KICAgICAgJHt0aGlzLnNob3dGaWxlRHJvcE92ZXJsYXk/dGhpcy5yZW5kZXJEcm9wRmlsZU92ZXJsYXkoKToiIn0KICAgIGA6UWBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuaW5pdFJvdXRlKCk7bGV0IGU9dGhpcy5zd05hbWU7Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO2xldCBpPSIiO3RoaXMudXNlUnVmZmxlJiZ0LnNldCgiaW5qZWN0U2NyaXB0cyIsInJ1ZmZsZS9ydWZmbGUuanMiKSx0aGlzLmVtYmVkJiZ0LnNldCgic2VydmVJbmRleCIsIjEiKSxpPXQudG9TdHJpbmcoKSxpLmxlbmd0aCYmKGUrPSI/IitpKSx0aGlzLnN3bWFuYWdlcj1uZXcgaXQoe25hbWU6ZSxhcHBOYW1lOnRoaXMuYXBwTmFtZX0pLHRoaXMuc3dtYW5hZ2VyLnJlZ2lzdGVyKCkuY2F0Y2goKCgpPT57dmFyIGU7cmV0dXJuIHRoaXMuc3dFcnJvck1zZz1udWxsPT09KGU9dGhpcy5zd21hbmFnZXIpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnJlbmRlckVycm9yUmVwb3J0KCl9KSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwoKCk9Pnt0aGlzLmluaXRSb3V0ZSgpfSkpfXVwZGF0ZWQoZSl7ZS5oYXMoInNvdXJjZVVybCIpJiYodGhpcy5jb2xsVGl0bGU9bnVsbCl9b25GYXZJY29ucyhlKXtXZShlLmRldGFpbCl9c2tpcE1lbnUoZSl7dmFyIHQ7ZS5wcmV2ZW50RGVmYXVsdCgpLG51bGw9PT0odD10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiI3NraXAtbWFpbi10YXJnZXQiKSl8fHZvaWQgMD09PXR8fHQuZm9jdXMoKX1vbk5hdk1lbnUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5uYXZNZW51U2hvd249IXRoaXMubmF2TWVudVNob3duLHRoaXMubmF2TWVudVNob3duJiYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChlPT57dmFyIHQ7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubmF2TWVudVNob3duPSExLG51bGw9PT0odD10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiI21lbnUtYnV0dG9uIikpfHx2b2lkIDA9PT10fHx0LmZvY3VzKCl9KSx7b25jZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIiwoZT0+e3ZhciB0OyJFc2NhcGUiPT1lLmtleSYmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLm5hdk1lbnVTaG93bj0hMSxudWxsPT09KHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIiNtZW51LWJ1dHRvbiIpKXx8dm9pZCAwPT09dHx8dC5mb2N1cygpKX0pLHtvbmNlOiEwfSkpfWluaXRSb3V0ZSgpe3RoaXMuaW5pdGVkPSEwLHRoaXMucGFnZVBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2NvbnN0IGU9dGhpcy5wYWdlUGFyYW1zLmdldCgic3RhdGUiKTtpZihlKXRyeXtjb25zdCB0PUpTT04ucGFyc2UoZSk7aWYodC5pZHMgaW5zdGFuY2VvZiBBcnJheSYmdC51c2VySWQmJiJvcGVuIj09PXQuYWN0aW9uKXJldHVybiB0aGlzLnBhZ2VQYXJhbXMuc2V0KCJzb3VyY2UiLCJnb29nbGVkcml2ZTovLyIrdC5pZHNbMF0pLHRoaXMucGFnZVBhcmFtcy5kZWxldGUoInN0YXRlIiksdm9pZCh3aW5kb3cubG9jYXRpb24uc2VhcmNoPXRoaXMucGFnZVBhcmFtcy50b1N0cmluZygpKX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX1pZih0aGlzLnNvdXJjZSl7dGhpcy5wYWdlUGFyYW1zLnNldCgic291cmNlIix0aGlzLnNvdXJjZSk7Y29uc3QgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtlLnNlYXJjaD10aGlzLnBhZ2VQYXJhbXMudG9TdHJpbmcoKSx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsZS5ocmVmKX1pZih0aGlzLnNvdXJjZVVybD10aGlzLnBhZ2VQYXJhbXMuZ2V0KCJzb3VyY2UiKXx8IiIsdGhpcy5lbWJlZD10aGlzLnBhZ2VQYXJhbXMuZ2V0KCJlbWJlZCIpfHwiIix0aGlzLmVtYmVkP3RoaXMudXNlUnVmZmxlPSIxIj09PXRoaXMucGFnZVBhcmFtcy5nZXQoInJ1ZmZsZSIpOnRoaXMudXNlUnVmZmxlPSF0aGlzLnNraXBSdWZmbGUsdGhpcy5wYWdlUGFyYW1zLmhhcygidGVybXMiKSYmKHRoaXMuc2hvd0Fib3V0PSEwKSx0aGlzLnBhZ2VQYXJhbXMuaGFzKCJlbWJlZCIpJiYodGhpcy5sb2FkSW5mb3x8KHRoaXMubG9hZEluZm89e30pKSx0aGlzLnBhZ2VQYXJhbXMuZ2V0KCJjb25maWciKSl0cnl7dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZz1KU09OLnBhcnNlKHRoaXMucGFnZVBhcmFtcy5nZXQoImNvbmZpZyIpfHwiIil9Y2F0Y2goZSl7Y29uc29sZS5sb2coImludmFsaWQgY29uZmlnOiAiK2UpfXRoaXMucGFnZVBhcmFtcy5nZXQoImJhc2VVcmxTb3VyY2VQcmVmaXgiKSYmKHRoaXMubG9hZEluZm8uZXh0cmFDb25maWc9dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZ3x8e30sdGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZy5iYXNlVXJsU291cmNlUHJlZml4PXRoaXMucGFnZVBhcmFtcy5nZXQoImJhc2VVcmxTb3VyY2VQcmVmaXgiKSksdGhpcy5wYWdlUGFyYW1zLmdldCgiYmFzZVBhZ2VVcmwiKSYmKHRoaXMubG9hZEluZm8uZXh0cmFDb25maWc9dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZ3x8e30sdGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZy5iYXNlVXJsPXRoaXMucGFnZVBhcmFtcy5nZXQoImJhc2VQYWdlVXJsIikpLHRoaXMucGFnZVBhcmFtcy5nZXQoImFkYmxvY2tVcmwiKSYmKHRoaXMubG9hZEluZm8uZXh0cmFDb25maWc9dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZ3x8e30sdGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZy5hZGJsb2NrVXJsPXRoaXMucGFnZVBhcmFtcy5nZXQoImFkYmxvY2tVcmwiKSksdGhpcy5wYWdlUGFyYW1zLmdldCgiY3VzdG9tQ29sbCIpJiYodGhpcy5sb2FkSW5mby5jdXN0b21Db2xsPXRoaXMucGFnZVBhcmFtcy5nZXQoImN1c3RvbUNvbGwiKSksIjEiPT09dGhpcy5wYWdlUGFyYW1zLmdldCgibm9XZWJXb3JrZXIiKSYmKHRoaXMubG9hZEluZm8ubm9XZWJXb3JrZXI9ITApLCIxIj09PXRoaXMucGFnZVBhcmFtcy5nZXQoIm5vQ2FjaGUiKSYmKHRoaXMubG9hZEluZm8ubm9DYWNoZT0hMCksIjEiPT09dGhpcy5wYWdlUGFyYW1zLmdldCgiaGlkZU9mZnNjcmVlbiIpJiYodGhpcy5sb2FkSW5mby5oaWRlT2Zmc2NyZWVuPSEwKSwiZWFnZXIiPT09dGhpcy5wYWdlUGFyYW1zLmdldCgibG9hZGluZyIpJiYodGhpcy5sb2FkSW5mby5sb2FkRWFnZXI9ITApLHRoaXMucGFnZVBhcmFtcy5nZXQoInN3TmFtZSIpJiYodGhpcy5zd05hbWU9dGhpcy5wYWdlUGFyYW1zLmdldCgic3dOYW1lIil8fHZvaWQgMCkscWUmJnRoaXMuc291cmNlVXJsLnN0YXJ0c1dpdGgoImZpbGU6Ly8iKSYmKHRoaXMubG9hZEluZm89e3NvdXJjZVVybDp0aGlzLnNvdXJjZVVybCxsb2FkVXJsOnRoaXMuc291cmNlVXJsLnJlcGxhY2UoImZpbGU6Ly8iLCJmaWxlMjovLyIpfSl9b25TdGFydExvYWQoZSl7dGhpcy5wYWdlUGFyYW1zLnNldCgic291cmNlIixlLmRldGFpbC5zb3VyY2VVcmwpO2NvbnN0IHQ9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7dC5zZWFyY2g9dGhpcy5wYWdlUGFyYW1zLnRvU3RyaW5nKCksdGhpcy5jb2xsUGFnZVVybD10LnRvU3RyaW5nKCksZS5kZXRhaWwuaXNGaWxlPyh3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sIiIsdGhpcy5jb2xsUGFnZVVybCksdGhpcy5zb3VyY2VVcmw9ZS5kZXRhaWwuc291cmNlVXJsLHRoaXMubG9hZEluZm89ZS5kZXRhaWwpOndpbmRvdy5sb2NhdGlvbi5zZWFyY2g9dGhpcy5wYWdlUGFyYW1zLnRvU3RyaW5nKCl9b25Db2xsTG9hZGVkKGUpe3RoaXMubG9hZEluZm89bnVsbCxlLmRldGFpbC5jb2xsSW5mbyYmKHRoaXMuY29sbFRpdGxlPWUuZGV0YWlsLmNvbGxJbmZvLm5hbWV8fGUuZGV0YWlsLmNvbGxJbmZvLnRpdGxlKSxlLmRldGFpbC5hbHJlYWR5TG9hZGVkfHxlLmRldGFpbC5zb3VyY2VVcmwhPT10aGlzLnNvdXJjZVVybCYmKHRoaXMucGFnZVBhcmFtcy5zZXQoInNvdXJjZSIsZS5kZXRhaWwuc291cmNlVXJsKSx3aW5kb3cubG9jYXRpb24uc2VhcmNoPXRoaXMucGFnZVBhcmFtcy50b1N0cmluZygpKX1vbkNvbGxMb2FkQ2FuY2VsKCl7dGhpcy5zb3VyY2VVcmw9bnVsbCx0aGlzLmxvYWRJbmZvPW51bGwsd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCIiLG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLm9yaWdpbil9b25UaXRsZShlKXtlLmRldGFpbC50aXRsZSYmKHRoaXMucGFnZVRpdGxlPWUuZGV0YWlsLnRpdGxlLHRoaXMucGFnZVJlcGxheT1lLmRldGFpbC5yZXBsYXlUaXRsZSxkb2N1bWVudC50aXRsZT0oZS5kZXRhaWwucmVwbGF5VGl0bGU/IkFyY2hpdmUgb2YgIjoiIikrdGhpcy5wYWdlVGl0bGUrIiB8ICIrdGhpcy5hcHBOYW1lKX1zYWZhcmlLZXlmcmFtZXMoKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKSxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiAgICBAa2V5ZnJhbWVzIHNwaW5Bcm91bmQge1xuICAgICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgICAiKSl9cmVuZGVyQWJvdXQoKXtyZXR1cm4gUWAKICAgICAgPGRpdiBjbGFzcz0ibW9kYWwgaXMtYWN0aXZlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1iYWNrZ3JvdW5kIiBAY2xpY2s9IiR7dGhpcy5vbkFib3V0Q2xvc2V9Ij48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNhcmQiPgogICAgICAgICAgICA8aGVhZGVyIGNsYXNzPSJtb2RhbC1jYXJkLWhlYWQiPgogICAgICAgICAgICAgIDxwIGNsYXNzPSJtb2RhbC1jYXJkLXRpdGxlIj5BYm91dCBSZXBsYXlXZWIucGFnZSAke3FlPyJBcHAiOiIifTwvcD4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZWxldGUiIGFyaWEtbGFiZWw9ImNsb3NlIiBAY2xpY2s9IiR7dGhpcy5vbkFib3V0Q2xvc2V9Ij48L2J1dHRvbj4KICAgICAgICAgICAgPC9oZWFkZXI+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJtb2RhbC1jYXJkLWJvZHkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGFzLXRleHQtY2VudGVyZWQiIHN0eWxlPSJ3aWR0aDogMjIwcHgiPgogICAgICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0iM3JlbSIKICAgICAgICAgICAgICAgICAgICAgICAgLnN2Zz0ke0tlfQogICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJSZXBsYXlXZWIucGFnZSBMb2dvIgogICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJpbWciCiAgICAgICAgICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiBzbWFsbGVyOyBtYXJnaW4tYm90dG9tOiAxZW0iPiR7cWU/IkFwcCI6IiJ9IHYke2plfTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAke3FlP1FgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGF5V2ViLnBhZ2UgQXBwIGlzIGEgc3RhbmRhbG9uZSBhcHAgZm9yIE1hYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93cyBhbmQgTGludXggdGhhdCBsb2FkcyB3ZWIgYXJjaGl2ZSBmaWxlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlZCBieSB0aGUgdXNlciBhbmQgcmVuZGVycyB0aGVtIGZvciByZXBsYXkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgYDpRYCA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcmVwbGF5d2ViLnBhZ2UiIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+UmVwbGF5V2ViLnBhZ2U8L2EKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGEgYnJvd3Nlci1iYXNlZCB2aWV3ZXIgdGhhdCBsb2FkcyB3ZWIgYXJjaGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgYW5kIHJlbmRlcnMgdGhlbSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxheSBpbiB0aGUgYnJvd3Nlci4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+YH0KICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICA8cD5GdWxsIHNvdXJjZSBjb2RlIGlzIGF2YWlsYWJsZSAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2VicmVjb3JkZXIvcmVwbGF5d2ViLnBhZ2UiIHRhcmdldD0iX2JsYW5rIj5vbiBHaXRIdWI8L2E+LgogICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICA8cD5TZWUgdGhlIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIuL2RvY3MiPmRvY3VtZW50YXRpb248L2E+IGZvciBtb3JlIGluZm8gb24gaG93IGl0IHdvcmtzLjwvcD4KCiAgICAgICAgICAgICAgICAgIDxwPlJlcGxheVdlYi5wYWdlIGlzIGRldmVsb3BlZCBieSA8YSBocmVmPSJodHRwczovL3dlYnJlY29yZGVyLm5ldC8iIHRhcmdldD0iX2JsYW5rIj5XZWJyZWNvcmRlcjwvYT4uPC9wPgoKICAgICAgICAgICAgICAgICAgPGgzPlByaXZhY3k8L2gzPgogICAgICAgICAgICAgICAgICA8cD48Yj5ObyBkYXRhIGlzIHVwbG9hZGVkIGFueXdoZXJlIGFuZCBubyBpbmZvcm1hdGlvbiBpcyBjb2xsZWN0ZWQuPC9iPjwvcD4KICAgICAgICAgICAgICAgICAgPHA+QWxsIGNvbnRlbnQgcmVuZGVyZWQgc3RheXMgZGlyZWN0bHkgaW4geW91ciBicm93c2VyLjxici8+V2hlbiBsb2FkaW5nIGFuIGFyY2hpdmUgZnJvbSBHb29nbGUgRHJpdmUsCiAgICAgICAgICAgICAgICAgIHRoZSBzaXRlIG1heSBhc2sgZm9yIGFjY291bnQgYXV0aG9yaXphdGlvbiB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUgb25seS48L3A+CgogICAgICAgICAgICAgICAgICA8aDQ+RGlzY2xhaW1lciBvZiBXYXJyYW50aWVzPC9oND4KICAgICAgICAgICAgICAgICAgPHA+VGhlIGFwcGxpY2F0aW9uIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgZ3VhcmFudGVlcy48L3A+CiAgICAgICAgICAgICAgICAgIDxkZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PkxlZ2FsZXNlOjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAwLjhyZW0iPkRJU0NMQUlNRVIgT0YgU09GVFdBUkUgV0FSUkFOVFkuIFdFQlJFQ09SREVSIFNPRlRXQVJFIFBST1ZJREVTIFRISVMgU09GVFdBUkUgVE8gWU9VICJBUyBBVkFJTEFCTEUiCiAgICAgICAgICAgICAgICAgICAgQU5EIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MsIElNUExJRUQgT1IgT1RIRVJXSVNFLAogICAgICAgICAgICAgICAgICAgIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIFdBUlJBTlRZIE9GIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS48L3A+CiAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGFzLXRleHQtY2VudGVyZWQiPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24gaXMtd2FybmluZyIgaHJlZj0iIyIgQGNsaWNrPSIke3RoaXMub25BYm91dENsb3NlfSI+Q2xvc2U8L2E+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj5gfW9uQWJvdXRDbG9zZSgpe3RoaXMuc2hvd0Fib3V0PSExfXJlbmRlckRyb3BGaWxlT3ZlcmxheSgpe3JldHVybiBRYAogICAgICA8ZGl2IGNsYXNzPSJkcm9wLWZpbGUtb3ZlcmxheSI+RHJvcCB0byBsb2FkIHdlYiBhcmNoaXZlPC9kaXY+CiAgICBgfX07ZnVuY3Rpb24gUGkoKXtyZXR1cm57YmFzZVVybDpudWxsLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2ZtOiEwLGhlYWRlcklkczohMCxoZWFkZXJQcmVmaXg6IiIsaGlnaGxpZ2h0Om51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnRMaXN0czohMSxzbWFydHlwYW50czohMSx0b2tlbml6ZXI6bnVsbCx3YWxrVG9rZW5zOm51bGwseGh0bWw6ITF9fXQoW3llKHt0eXBlOkJvb2xlYW59KV0sVGkucHJvdG90eXBlLCJpbml0ZWQiLHZvaWQgMCksdChbeWUoe3R5cGU6T2JqZWN0fSldLFRpLnByb3RvdHlwZSwicGFnZVBhcmFtcyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVGkucHJvdG90eXBlLCJzb3VyY2VVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxUaS5wcm90b3R5cGUsIm5hdk1lbnVTaG93biIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFRpLnByb3RvdHlwZSwic2hvd0Fib3V0Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sVGkucHJvdG90eXBlLCJzaG93RmlsZURyb3BPdmVybGF5Iix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUaS5wcm90b3R5cGUsImNvbGxUaXRsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3R9KV0sVGkucHJvdG90eXBlLCJsb2FkSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVGkucHJvdG90eXBlLCJlbWJlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVGkucHJvdG90eXBlLCJjb2xsUGFnZVVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVGkucHJvdG90eXBlLCJwYWdlVGl0bGUiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxUaS5wcm90b3R5cGUsInBhZ2VSZXBsYXkiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFRpLnByb3RvdHlwZSwic291cmNlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sVGkucHJvdG90eXBlLCJza2lwUnVmZmxlIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUaS5wcm90b3R5cGUsInN3RXJyb3JNc2ciLHZvaWQgMCksVGk9QWk9dChbZ2UoInJlcGxheS1hcHAtbWFpbiIpXSxUaSk7bGV0IERpPXtiYXNlVXJsOm51bGwsYnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAsaGVhZGVySWRzOiEwLGhlYWRlclByZWZpeDoiIixoaWdobGlnaHQ6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydExpc3RzOiExLHNtYXJ0eXBhbnRzOiExLHRva2VuaXplcjpudWxsLHdhbGtUb2tlbnM6bnVsbCx4aHRtbDohMX07Y29uc3QgRmk9L1smPD4iJ10vLE1pPS9bJjw+IiddL2csUmk9L1s8PiInXXwmKD8hIz9cdys7KS8sT2k9L1s8PiInXXwmKD8hIz9cdys7KS9nLFVpPXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsJyInOiImcXVvdDsiLCInIjoiJiMzOTsifSxCaT1lPT5VaVtlXTtmdW5jdGlvbiBOaShlLHQpe2lmKHQpe2lmKEZpLnRlc3QoZSkpcmV0dXJuIGUucmVwbGFjZShNaSxCaSl9ZWxzZSBpZihSaS50ZXN0KGUpKXJldHVybiBlLnJlcGxhY2UoT2ksQmkpO3JldHVybiBlfWNvbnN0IHFpPS8mKCMoPzpcZCspfCg/OiN4WzAtOUEtRmEtZl0rKXwoPzpcdyspKTs/L2dpO2Z1bmN0aW9uIGppKGUpe3JldHVybiBlLnJlcGxhY2UocWksKChlLHQpPT4iY29sb24iPT09KHQ9dC50b0xvd2VyQ2FzZSgpKT8iOiI6IiMiPT09dC5jaGFyQXQoMCk/IngiPT09dC5jaGFyQXQoMSk/U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh0LnN1YnN0cmluZygyKSwxNikpOlN0cmluZy5mcm9tQ2hhckNvZGUoK3Quc3Vic3RyaW5nKDEpKToiIikpfWNvbnN0IEhpPS8oXnxbXlxbXSlcXi9nO2Z1bmN0aW9uIFdpKGUsdCl7ZT1lLnNvdXJjZXx8ZSx0PXR8fCIiO2NvbnN0IGk9e3JlcGxhY2U6KHQsbyk9PihvPShvPW8uc291cmNlfHxvKS5yZXBsYWNlKEhpLCIkMSIpLGU9ZS5yZXBsYWNlKHQsbyksaSksZ2V0UmVnZXg6KCk9Pm5ldyBSZWdFeHAoZSx0KX07cmV0dXJuIGl9Y29uc3QgVmk9L1teXHc6XS9nLEdpPS9eJHxeW2Etel1bYS16MC05Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rpb24gS2koZSx0LGkpe2lmKGUpe2xldCBlO3RyeXtlPWRlY29kZVVSSUNvbXBvbmVudChqaShpKSkucmVwbGFjZShWaSwiIikudG9Mb3dlckNhc2UoKX1jYXRjaChlKXtyZXR1cm4gbnVsbH1pZigwPT09ZS5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHwwPT09ZS5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PWUuaW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH10JiYhR2kudGVzdChpKSYmKGk9ZnVuY3Rpb24oZSx0KXtZaVsiICIrZV18fChRaS50ZXN0KGUpP1lpWyIgIitlXT1lKyIvIjpZaVsiICIrZV09aW8oZSwiLyIsITApKTtlPVlpWyIgIitlXTtjb25zdCBpPS0xPT09ZS5pbmRleE9mKCI6Iik7cmV0dXJuIi8vIj09PXQuc3Vic3RyaW5nKDAsMik/aT90OmUucmVwbGFjZShaaSwiJDEiKSt0OiIvIj09PXQuY2hhckF0KDApP2k/dDplLnJlcGxhY2UoSmksIiQxIikrdDplK3R9KHQsaSkpO3RyeXtpPWVuY29kZVVSSShpKS5yZXBsYWNlKC8lMjUvZywiJSIpfWNhdGNoKGUpe3JldHVybiBudWxsfXJldHVybiBpfWNvbnN0IFlpPXt9LFFpPS9eW146XSs6XC8qW14vXSokLyxaaT0vXihbXjpdKzopW1xzXFNdKiQvLEppPS9eKFteOl0rOlwvKlteL10qKVtcc1xTXSokLztjb25zdCBYaT17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIGVvKGUpe2xldCB0LGksbz0xO2Zvcig7bzxhcmd1bWVudHMubGVuZ3RoO28rKylmb3IoaSBpbiB0PWFyZ3VtZW50c1tvXSx0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX1mdW5jdGlvbiB0byhlLHQpe2NvbnN0IGk9ZS5yZXBsYWNlKC9cfC9nLCgoZSx0LGkpPT57bGV0IG89ITEsbj10O2Zvcig7LS1uPj0wJiYiXFwiPT09aVtuXTspbz0hbztyZXR1cm4gbz8ifCI6IiB8In0pKSxvPWkuc3BsaXQoLyBcfC8pO2xldCBuPTA7aWYob1swXS50cmltKCl8fG8uc2hpZnQoKSxvW28ubGVuZ3RoLTFdLnRyaW0oKXx8by5wb3AoKSxvLmxlbmd0aD50KW8uc3BsaWNlKHQpO2Vsc2UgZm9yKDtvLmxlbmd0aDx0OylvLnB1c2goIiIpO2Zvcig7bjxvLmxlbmd0aDtuKyspb1tuXT1vW25dLnRyaW0oKS5yZXBsYWNlKC9cXFx8L2csInwiKTtyZXR1cm4gb31mdW5jdGlvbiBpbyhlLHQsaSl7Y29uc3Qgbz1lLmxlbmd0aDtpZigwPT09bylyZXR1cm4iIjtsZXQgbj0wO2Zvcig7bjxvOyl7Y29uc3Qgcj1lLmNoYXJBdChvLW4tMSk7aWYociE9PXR8fGkpe2lmKHI9PT10fHwhaSlicmVhaztuKyt9ZWxzZSBuKyt9cmV0dXJuIGUuc3Vic3RyKDAsby1uKX1mdW5jdGlvbiBvbyhlKXtlJiZlLnNhbml0aXplJiYhZS5zaWxlbnQmJmNvbnNvbGUud2FybigibWFya2VkKCk6IHNhbml0aXplIGFuZCBzYW5pdGl6ZXIgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNy4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnLyMvVVNJTkdfQURWQU5DRUQubWQjb3B0aW9ucyIpfWZ1bmN0aW9uIG5vKGUsdCl7aWYodDwxKXJldHVybiIiO2xldCBpPSIiO2Zvcig7dD4xOykxJnQmJihpKz1lKSx0Pj49MSxlKz1lO3JldHVybiBpK2V9ZnVuY3Rpb24gcm8oZSx0LGksbyl7Y29uc3Qgbj10LmhyZWYscj10LnRpdGxlP05pKHQudGl0bGUpOm51bGwscz1lWzFdLnJlcGxhY2UoL1xcKFtcW1xdXSkvZywiJDEiKTtpZigiISIhPT1lWzBdLmNoYXJBdCgwKSl7by5zdGF0ZS5pbkxpbms9ITA7Y29uc3QgZT17dHlwZToibGluayIscmF3OmksaHJlZjpuLHRpdGxlOnIsdGV4dDpzLHRva2VuczpvLmlubGluZVRva2VucyhzLFtdKX07cmV0dXJuIG8uc3RhdGUuaW5MaW5rPSExLGV9cmV0dXJue3R5cGU6ImltYWdlIixyYXc6aSxocmVmOm4sdGl0bGU6cix0ZXh0Ok5pKHMpfX1jbGFzcyBzb3tjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9ZXx8RGl9c3BhY2UoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLm5ld2xpbmUuZXhlYyhlKTtpZih0JiZ0WzBdLmxlbmd0aD4wKXJldHVybnt0eXBlOiJzcGFjZSIscmF3OnRbMF19fWNvZGUoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLmNvZGUuZXhlYyhlKTtpZih0KXtjb25zdCBlPXRbMF0ucmVwbGFjZSgvXiB7MSw0fS9nbSwiIik7cmV0dXJue3R5cGU6ImNvZGUiLHJhdzp0WzBdLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsdGV4dDp0aGlzLm9wdGlvbnMucGVkYW50aWM/ZTppbyhlLCJcbiIpfX19ZmVuY2VzKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5ibG9jay5mZW5jZXMuZXhlYyhlKTtpZih0KXtjb25zdCBlPXRbMF0saT1mdW5jdGlvbihlLHQpe2NvbnN0IGk9ZS5tYXRjaCgvXihccyspKD86YGBgKS8pO2lmKG51bGw9PT1pKXJldHVybiB0O2NvbnN0IG89aVsxXTtyZXR1cm4gdC5zcGxpdCgiXG4iKS5tYXAoKGU9Pntjb25zdCB0PWUubWF0Y2goL15ccysvKTtpZihudWxsPT09dClyZXR1cm4gZTtjb25zdFtpXT10O3JldHVybiBpLmxlbmd0aD49by5sZW5ndGg/ZS5zbGljZShvLmxlbmd0aCk6ZX0pKS5qb2luKCJcbiIpfShlLHRbM118fCIiKTtyZXR1cm57dHlwZToiY29kZSIscmF3OmUsbGFuZzp0WzJdP3RbMl0udHJpbSgpOnRbMl0sdGV4dDppfX19aGVhZGluZyhlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKGUpO2lmKHQpe2xldCBlPXRbMl0udHJpbSgpO2lmKC8jJC8udGVzdChlKSl7Y29uc3QgdD1pbyhlLCIjIik7dGhpcy5vcHRpb25zLnBlZGFudGljP2U9dC50cmltKCk6dCYmIS8gJC8udGVzdCh0KXx8KGU9dC50cmltKCkpfWNvbnN0IGk9e3R5cGU6ImhlYWRpbmciLHJhdzp0WzBdLGRlcHRoOnRbMV0ubGVuZ3RoLHRleHQ6ZSx0b2tlbnM6W119O3JldHVybiB0aGlzLmxleGVyLmlubGluZShpLnRleHQsaS50b2tlbnMpLGl9fWhyKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5ibG9jay5oci5leGVjKGUpO2lmKHQpcmV0dXJue3R5cGU6ImhyIixyYXc6dFswXX19YmxvY2txdW90ZShlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suYmxvY2txdW90ZS5leGVjKGUpO2lmKHQpe2NvbnN0IGU9dFswXS5yZXBsYWNlKC9eICo+ID8vZ20sIiIpO3JldHVybnt0eXBlOiJibG9ja3F1b3RlIixyYXc6dFswXSx0b2tlbnM6dGhpcy5sZXhlci5ibG9ja1Rva2VucyhlLFtdKSx0ZXh0OmV9fX1saXN0KGUpe2xldCB0PXRoaXMucnVsZXMuYmxvY2subGlzdC5leGVjKGUpO2lmKHQpe2xldCBpLG8sbixyLHMsYSxsLGMsZCxoLHUsZixwPXRbMV0udHJpbSgpO2NvbnN0IG09cC5sZW5ndGg+MSxiPXt0eXBlOiJsaXN0IixyYXc6IiIsb3JkZXJlZDptLHN0YXJ0Om0/K3Auc2xpY2UoMCwtMSk6IiIsbG9vc2U6ITEsaXRlbXM6W119O3A9bT9gXFxkezEsOX1cXCR7cC5zbGljZSgtMSl9YDpgXFwke3B9YCx0aGlzLm9wdGlvbnMucGVkYW50aWMmJihwPW0/cDoiWyorLV0iKTtjb25zdCBnPW5ldyBSZWdFeHAoYF4oIHswLDN9JHtwfSkoKD86IFteXFxuXSopPyg/OlxcbnwkKSlgKTtmb3IoO2UmJihmPSExLHQ9Zy5leGVjKGUpKSYmIXRoaXMucnVsZXMuYmxvY2suaHIudGVzdChlKTspe2lmKGk9dFswXSxlPWUuc3Vic3RyaW5nKGkubGVuZ3RoKSxjPXRbMl0uc3BsaXQoIlxuIiwxKVswXSxkPWUuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWM/KHI9Mix1PWMudHJpbUxlZnQoKSk6KHI9dFsyXS5zZWFyY2goL1teIF0vKSxyPXI+ND8xOnIsdT1jLnNsaWNlKHIpLHIrPXRbMV0ubGVuZ3RoKSxhPSExLCFjJiYvXiAqJC8udGVzdChkKSYmKGkrPWQrIlxuIixlPWUuc3Vic3RyaW5nKGQubGVuZ3RoKzEpLGY9ITApLCFmKXtjb25zdCB0PW5ldyBSZWdFeHAoYF4gezAsJHtNYXRoLm1pbigzLHItMSl9fSg/OlsqKy1dfFxcZHsxLDl9Wy4pXSlgKTtmb3IoO2UmJihoPWUuc3BsaXQoIlxuIiwxKVswXSxjPWgsdGhpcy5vcHRpb25zLnBlZGFudGljJiYoYz1jLnJlcGxhY2UoL14gezEsNH0oPz0oIHs0fSkqW14gXSkvZywiICAiKSksIXQudGVzdChjKSk7KXtpZihjLnNlYXJjaCgvW14gXS8pPj1yfHwhYy50cmltKCkpdSs9IlxuIitjLnNsaWNlKHIpO2Vsc2V7aWYoYSlicmVhazt1Kz0iXG4iK2N9YXx8Yy50cmltKCl8fChhPSEwKSxpKz1oKyJcbiIsZT1lLnN1YnN0cmluZyhoLmxlbmd0aCsxKX19Yi5sb29zZXx8KGw/Yi5sb29zZT0hMDovXG4gKlxuICokLy50ZXN0KGkpJiYobD0hMCkpLHRoaXMub3B0aW9ucy5nZm0mJihvPS9eXFtbIHhYXVxdIC8uZXhlYyh1KSxvJiYobj0iWyBdICIhPT1vWzBdLHU9dS5yZXBsYWNlKC9eXFtbIHhYXVxdICsvLCIiKSkpLGIuaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6aSx0YXNrOiEhbyxjaGVja2VkOm4sbG9vc2U6ITEsdGV4dDp1fSksYi5yYXcrPWl9Yi5pdGVtc1tiLml0ZW1zLmxlbmd0aC0xXS5yYXc9aS50cmltUmlnaHQoKSxiLml0ZW1zW2IuaXRlbXMubGVuZ3RoLTFdLnRleHQ9dS50cmltUmlnaHQoKSxiLnJhdz1iLnJhdy50cmltUmlnaHQoKTtjb25zdCB2PWIuaXRlbXMubGVuZ3RoO2ZvcihzPTA7czx2O3MrKyl7dGhpcy5sZXhlci5zdGF0ZS50b3A9ITEsYi5pdGVtc1tzXS50b2tlbnM9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhiLml0ZW1zW3NdLnRleHQsW10pO2NvbnN0IGU9Yi5pdGVtc1tzXS50b2tlbnMuZmlsdGVyKChlPT4ic3BhY2UiPT09ZS50eXBlKSksdD1lLmV2ZXJ5KChlPT57Y29uc3QgdD1lLnJhdy5zcGxpdCgiIik7bGV0IGk9MDtmb3IoY29uc3QgZSBvZiB0KWlmKCJcbiI9PT1lJiYoaSs9MSksaT4xKXJldHVybiEwO3JldHVybiExfSkpOyFiLmxvb3NlJiZlLmxlbmd0aCYmdCYmKGIubG9vc2U9ITAsYi5pdGVtc1tzXS5sb29zZT0hMCl9cmV0dXJuIGJ9fWh0bWwoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLmh0bWwuZXhlYyhlKTtpZih0KXtjb25zdCBlPXt0eXBlOiJodG1sIixyYXc6dFswXSxwcmU6IXRoaXMub3B0aW9ucy5zYW5pdGl6ZXImJigicHJlIj09PXRbMV18fCJzY3JpcHQiPT09dFsxXXx8InN0eWxlIj09PXRbMV0pLHRleHQ6dFswXX07cmV0dXJuIHRoaXMub3B0aW9ucy5zYW5pdGl6ZSYmKGUudHlwZT0icGFyYWdyYXBoIixlLnRleHQ9dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKHRbMF0pOk5pKHRbMF0pLGUudG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lKGUudGV4dCxlLnRva2VucykpLGV9fWRlZihlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suZGVmLmV4ZWMoZSk7aWYodCl7dFszXSYmKHRbM109dFszXS5zdWJzdHJpbmcoMSx0WzNdLmxlbmd0aC0xKSk7cmV0dXJue3R5cGU6ImRlZiIsdGFnOnRbMV0udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiICIpLHJhdzp0WzBdLGhyZWY6dFsyXSx0aXRsZTp0WzNdfX19dGFibGUoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLnRhYmxlLmV4ZWMoZSk7aWYodCl7Y29uc3QgZT17dHlwZToidGFibGUiLGhlYWRlcjp0byh0WzFdKS5tYXAoKGU9Pih7dGV4dDplfSkpKSxhbGlnbjp0WzJdLnJlcGxhY2UoL14gKnxcfCAqJC9nLCIiKS5zcGxpdCgvICpcfCAqLykscm93czp0WzNdP3RbM10ucmVwbGFjZSgvXG5bIFx0XSokLywiIikuc3BsaXQoIlxuIik6W119O2lmKGUuaGVhZGVyLmxlbmd0aD09PWUuYWxpZ24ubGVuZ3RoKXtlLnJhdz10WzBdO2xldCBpLG8sbixyLHM9ZS5hbGlnbi5sZW5ndGg7Zm9yKGk9MDtpPHM7aSsrKS9eICotKzogKiQvLnRlc3QoZS5hbGlnbltpXSk/ZS5hbGlnbltpXT0icmlnaHQiOi9eICo6LSs6ICokLy50ZXN0KGUuYWxpZ25baV0pP2UuYWxpZ25baV09ImNlbnRlciI6L14gKjotKyAqJC8udGVzdChlLmFsaWduW2ldKT9lLmFsaWduW2ldPSJsZWZ0IjplLmFsaWduW2ldPW51bGw7Zm9yKHM9ZS5yb3dzLmxlbmd0aCxpPTA7aTxzO2krKyllLnJvd3NbaV09dG8oZS5yb3dzW2ldLGUuaGVhZGVyLmxlbmd0aCkubWFwKChlPT4oe3RleHQ6ZX0pKSk7Zm9yKHM9ZS5oZWFkZXIubGVuZ3RoLG89MDtvPHM7bysrKWUuaGVhZGVyW29dLnRva2Vucz1bXSx0aGlzLmxleGVyLmlubGluZVRva2VucyhlLmhlYWRlcltvXS50ZXh0LGUuaGVhZGVyW29dLnRva2Vucyk7Zm9yKHM9ZS5yb3dzLmxlbmd0aCxvPTA7bzxzO28rKylmb3Iocj1lLnJvd3Nbb10sbj0wO248ci5sZW5ndGg7bisrKXJbbl0udG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKHJbbl0udGV4dCxyW25dLnRva2Vucyk7cmV0dXJuIGV9fX1saGVhZGluZyhlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyhlKTtpZih0KXtjb25zdCBlPXt0eXBlOiJoZWFkaW5nIixyYXc6dFswXSxkZXB0aDoiPSI9PT10WzJdLmNoYXJBdCgwKT8xOjIsdGV4dDp0WzFdLHRva2VuczpbXX07cmV0dXJuIHRoaXMubGV4ZXIuaW5saW5lKGUudGV4dCxlLnRva2VucyksZX19cGFyYWdyYXBoKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5ibG9jay5wYXJhZ3JhcGguZXhlYyhlKTtpZih0KXtjb25zdCBlPXt0eXBlOiJwYXJhZ3JhcGgiLHJhdzp0WzBdLHRleHQ6IlxuIj09PXRbMV0uY2hhckF0KHRbMV0ubGVuZ3RoLTEpP3RbMV0uc2xpY2UoMCwtMSk6dFsxXSx0b2tlbnM6W119O3JldHVybiB0aGlzLmxleGVyLmlubGluZShlLnRleHQsZS50b2tlbnMpLGV9fXRleHQoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLnRleHQuZXhlYyhlKTtpZih0KXtjb25zdCBlPXt0eXBlOiJ0ZXh0IixyYXc6dFswXSx0ZXh0OnRbMF0sdG9rZW5zOltdfTtyZXR1cm4gdGhpcy5sZXhlci5pbmxpbmUoZS50ZXh0LGUudG9rZW5zKSxlfX1lc2NhcGUoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmlubGluZS5lc2NhcGUuZXhlYyhlKTtpZih0KXJldHVybnt0eXBlOiJlc2NhcGUiLHJhdzp0WzBdLHRleHQ6TmkodFsxXSl9fXRhZyhlKXtjb25zdCB0PXRoaXMucnVsZXMuaW5saW5lLnRhZy5leGVjKGUpO2lmKHQpcmV0dXJuIXRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxhIC9pLnRlc3QodFswXSk/dGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITA6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmsmJi9ePFwvYT4vaS50ZXN0KHRbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITEpLCF0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePChwcmV8Y29kZXxrYmR8c2NyaXB0KShcc3w+KS9pLnRlc3QodFswXSk/dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jayYmL148XC8ocHJlfGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KHRbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSExKSx7dHlwZTp0aGlzLm9wdGlvbnMuc2FuaXRpemU/InRleHQiOiJodG1sIixyYXc6dFswXSxpbkxpbms6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmssaW5SYXdCbG9jazp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2ssdGV4dDp0aGlzLm9wdGlvbnMuc2FuaXRpemU/dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKHRbMF0pOk5pKHRbMF0pOnRbMF19fWxpbmsoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmlubGluZS5saW5rLmV4ZWMoZSk7aWYodCl7Y29uc3QgZT10WzJdLnRyaW0oKTtpZighdGhpcy5vcHRpb25zLnBlZGFudGljJiYvXjwvLnRlc3QoZSkpe2lmKCEvPiQvLnRlc3QoZSkpcmV0dXJuO2NvbnN0IHQ9aW8oZS5zbGljZSgwLC0xKSwiXFwiKTtpZigoZS5sZW5ndGgtdC5sZW5ndGgpJTI9PTApcmV0dXJufWVsc2V7Y29uc3QgZT1mdW5jdGlvbihlLHQpe2lmKC0xPT09ZS5pbmRleE9mKHRbMV0pKXJldHVybi0xO2NvbnN0IGk9ZS5sZW5ndGg7bGV0IG89MCxuPTA7Zm9yKDtuPGk7bisrKWlmKCJcXCI9PT1lW25dKW4rKztlbHNlIGlmKGVbbl09PT10WzBdKW8rKztlbHNlIGlmKGVbbl09PT10WzFdJiYoby0tLG88MCkpcmV0dXJuIG47cmV0dXJuLTF9KHRbMl0sIigpIik7aWYoZT4tMSl7Y29uc3QgaT0oMD09PXRbMF0uaW5kZXhPZigiISIpPzU6NCkrdFsxXS5sZW5ndGgrZTt0WzJdPXRbMl0uc3Vic3RyaW5nKDAsZSksdFswXT10WzBdLnN1YnN0cmluZygwLGkpLnRyaW0oKSx0WzNdPSIifX1sZXQgaT10WzJdLG89IiI7aWYodGhpcy5vcHRpb25zLnBlZGFudGljKXtjb25zdCBlPS9eKFteJyJdKlteXHNdKVxzKyhbJyJdKSguKilcMi8uZXhlYyhpKTtlJiYoaT1lWzFdLG89ZVszXSl9ZWxzZSBvPXRbM10/dFszXS5zbGljZSgxLC0xKToiIjtyZXR1cm4gaT1pLnRyaW0oKSwvXjwvLnRlc3QoaSkmJihpPXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmIS8+JC8udGVzdChlKT9pLnNsaWNlKDEpOmkuc2xpY2UoMSwtMSkpLHJvKHQse2hyZWY6aT9pLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIik6aSx0aXRsZTpvP28ucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKTpvfSx0WzBdLHRoaXMubGV4ZXIpfX1yZWZsaW5rKGUsdCl7bGV0IGk7aWYoKGk9dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKGUpKXx8KGk9dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWMoZSkpKXtsZXQgZT0oaVsyXXx8aVsxXSkucmVwbGFjZSgvXHMrL2csIiAiKTtpZihlPXRbZS50b0xvd2VyQ2FzZSgpXSwhZXx8IWUuaHJlZil7Y29uc3QgZT1pWzBdLmNoYXJBdCgwKTtyZXR1cm57dHlwZToidGV4dCIscmF3OmUsdGV4dDplfX1yZXR1cm4gcm8oaSxlLGlbMF0sdGhpcy5sZXhlcil9fWVtU3Ryb25nKGUsdCxpPSIiKXtsZXQgbz10aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5sRGVsaW0uZXhlYyhlKTtpZighbylyZXR1cm47aWYob1szXSYmaS5tYXRjaCgvW1xwe0x9XHB7Tn1dL3UpKXJldHVybjtjb25zdCBuPW9bMV18fG9bMl18fCIiO2lmKCFufHxuJiYoIiI9PT1pfHx0aGlzLnJ1bGVzLmlubGluZS5wdW5jdHVhdGlvbi5leGVjKGkpKSl7Y29uc3QgaT1vWzBdLmxlbmd0aC0xO2xldCBuLHIscz1pLGE9MDtjb25zdCBsPSIqIj09PW9bMF1bMF0/dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltQXN0OnRoaXMucnVsZXMuaW5saW5lLmVtU3Ryb25nLnJEZWxpbVVuZDtmb3IobC5sYXN0SW5kZXg9MCx0PXQuc2xpY2UoLTEqZS5sZW5ndGgraSk7bnVsbCE9KG89bC5leGVjKHQpKTspe2lmKG49b1sxXXx8b1syXXx8b1szXXx8b1s0XXx8b1s1XXx8b1s2XSwhbiljb250aW51ZTtpZihyPW4ubGVuZ3RoLG9bM118fG9bNF0pe3MrPXI7Y29udGludWV9aWYoKG9bNV18fG9bNl0pJiZpJTMmJiEoKGkrciklMykpe2ErPXI7Y29udGludWV9aWYocy09cixzPjApY29udGludWU7aWYocj1NYXRoLm1pbihyLHIrcythKSxNYXRoLm1pbihpLHIpJTIpe2NvbnN0IHQ9ZS5zbGljZSgxLGkrby5pbmRleCtyKTtyZXR1cm57dHlwZToiZW0iLHJhdzplLnNsaWNlKDAsaStvLmluZGV4K3IrMSksdGV4dDp0LHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2Vucyh0LFtdKX19Y29uc3QgdD1lLnNsaWNlKDIsaStvLmluZGV4K3ItMSk7cmV0dXJue3R5cGU6InN0cm9uZyIscmF3OmUuc2xpY2UoMCxpK28uaW5kZXgrcisxKSx0ZXh0OnQsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKHQsW10pfX19fWNvZGVzcGFuKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5pbmxpbmUuY29kZS5leGVjKGUpO2lmKHQpe2xldCBlPXRbMl0ucmVwbGFjZSgvXG4vZywiICIpO2NvbnN0IGk9L1teIF0vLnRlc3QoZSksbz0vXiAvLnRlc3QoZSkmJi8gJC8udGVzdChlKTtyZXR1cm4gaSYmbyYmKGU9ZS5zdWJzdHJpbmcoMSxlLmxlbmd0aC0xKSksZT1OaShlLCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzp0WzBdLHRleHQ6ZX19fWJyKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5pbmxpbmUuYnIuZXhlYyhlKTtpZih0KXJldHVybnt0eXBlOiJiciIscmF3OnRbMF19fWRlbChlKXtjb25zdCB0PXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKGUpO2lmKHQpcmV0dXJue3R5cGU6ImRlbCIscmF3OnRbMF0sdGV4dDp0WzJdLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2Vucyh0WzJdLFtdKX19YXV0b2xpbmsoZSx0KXtjb25zdCBpPXRoaXMucnVsZXMuaW5saW5lLmF1dG9saW5rLmV4ZWMoZSk7aWYoaSl7bGV0IGUsbztyZXR1cm4iQCI9PT1pWzJdPyhlPU5pKHRoaXMub3B0aW9ucy5tYW5nbGU/dChpWzFdKTppWzFdKSxvPSJtYWlsdG86IitlKTooZT1OaShpWzFdKSxvPWUpLHt0eXBlOiJsaW5rIixyYXc6aVswXSx0ZXh0OmUsaHJlZjpvLHRva2Vuczpbe3R5cGU6InRleHQiLHJhdzplLHRleHQ6ZX1dfX19dXJsKGUsdCl7bGV0IGk7aWYoaT10aGlzLnJ1bGVzLmlubGluZS51cmwuZXhlYyhlKSl7bGV0IGUsbztpZigiQCI9PT1pWzJdKWU9TmkodGhpcy5vcHRpb25zLm1hbmdsZT90KGlbMF0pOmlbMF0pLG89Im1haWx0bzoiK2U7ZWxzZXtsZXQgdDtkb3t0PWlbMF0saVswXT10aGlzLnJ1bGVzLmlubGluZS5fYmFja3BlZGFsLmV4ZWMoaVswXSlbMF19d2hpbGUodCE9PWlbMF0pO2U9TmkoaVswXSksbz0id3d3LiI9PT1pWzFdPyJodHRwOi8vIitlOmV9cmV0dXJue3R5cGU6ImxpbmsiLHJhdzppWzBdLHRleHQ6ZSxocmVmOm8sdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OmUsdGV4dDplfV19fX1pbmxpbmVUZXh0KGUsdCl7Y29uc3QgaT10aGlzLnJ1bGVzLmlubGluZS50ZXh0LmV4ZWMoZSk7aWYoaSl7bGV0IGU7cmV0dXJuIGU9dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoaVswXSk6TmkoaVswXSk6aVswXTpOaSh0aGlzLm9wdGlvbnMuc21hcnR5cGFudHM/dChpWzBdKTppWzBdKSx7dHlwZToidGV4dCIscmF3OmlbMF0sdGV4dDplfX19fWNvbnN0IGFvPXtuZXdsaW5lOi9eKD86ICooPzpcbnwkKSkrLyxjb2RlOi9eKCB7NH1bXlxuXSsoPzpcbig/OiAqKD86XG58JCkpKik/KSsvLGZlbmNlczovXiB7MCwzfShgezMsfSg/PVteYFxuXSpcbil8fnszLH0pKFteXG5dKilcbig/OnwoW1xzXFNdKj8pXG4pKD86IHswLDN9XDFbfmBdKiAqKD89XG58JCl8JCkvLGhyOi9eIHswLDN9KCg/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlwqICopezMsfSkoPzpcbit8JCkvLGhlYWRpbmc6L14gezAsM30oI3sxLDZ9KSg/PVxzfCQpKC4qKSg/OlxuK3wkKS8sYmxvY2txdW90ZTovXiggezAsM30+ID8ocGFyYWdyYXBofFteXG5dKikoPzpcbnwkKSkrLyxsaXN0Oi9eKCB7MCwzfWJ1bGwpKCBbXlxuXSs/KT8oPzpcbnwkKS8saHRtbDoiXiB7MCwzfSg/Ojwoc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSlbXFxzPl1bXFxzXFxTXSo/KD86PC9cXDE+W15cXG5dKlxcbit8JCl8Y29tbWVudFteXFxuXSooXFxuK3wkKXw8XFw/W1xcc1xcU10qPyg/OlxcPz5cXG4qfCQpfDwhW0EtWl1bXFxzXFxTXSo/KD86Plxcbip8JCl8PCFcXFtDREFUQVxcW1tcXHNcXFNdKj8oPzpcXF1cXF0+XFxuKnwkKXw8Lz8odGFnKSg/OiArfFxcbnwvPz4pW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCl8PCg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpKFthLXpdW1xcdy1dKikoPzphdHRyaWJ1dGUpKj8gKi8/Pig/PVsgXFx0XSooPzpcXG58JCkpW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCl8PC8oPyFzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVthLXpdW1xcdy1dKlxccyo+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKSkiLGRlZjovXiB7MCwzfVxbKGxhYmVsKVxdOiAqKD86XG4gKik/PD8oW15ccz5dKyk+Pyg/Oig/OiArKD86XG4gKik/fCAqXG4gKikodGl0bGUpKT8gKig/OlxuK3wkKS8sdGFibGU6WGksbGhlYWRpbmc6L14oW15cbl0rKVxuIHswLDN9KD0rfC0rKSAqKD86XG4rfCQpLyxfcGFyYWdyYXBoOi9eKFteXG5dKyg/OlxuKD8haHJ8aGVhZGluZ3xsaGVhZGluZ3xibG9ja3F1b3RlfGZlbmNlc3xsaXN0fGh0bWx8dGFibGV8ICtcbilbXlxuXSspKikvLHRleHQ6L15bXlxuXSsvLF9sYWJlbDovKD8hXHMqXF0pKD86XFwufFteXFtcXVxcXSkrLyxfdGl0bGU6Lyg/OiIoPzpcXCI/fFteIlxcXSkqInwnW14nXG5dKig/OlxuW14nXG5dKykqXG4/J3xcKFteKCldKlwpKS99O2FvLmRlZj1XaShhby5kZWYpLnJlcGxhY2UoImxhYmVsIixhby5fbGFiZWwpLnJlcGxhY2UoInRpdGxlIixhby5fdGl0bGUpLmdldFJlZ2V4KCksYW8uYnVsbGV0PS8oPzpbKistXXxcZHsxLDl9Wy4pXSkvLGFvLmxpc3RJdGVtU3RhcnQ9V2koL14oICopKGJ1bGwpICovKS5yZXBsYWNlKCJidWxsIixhby5idWxsZXQpLmdldFJlZ2V4KCksYW8ubGlzdD1XaShhby5saXN0KS5yZXBsYWNlKC9idWxsL2csYW8uYnVsbGV0KS5yZXBsYWNlKCJociIsIlxcbisoPz1cXDE/KD86KD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwqICopezMsfSkoPzpcXG4rfCQpKSIpLnJlcGxhY2UoImRlZiIsIlxcbisoPz0iK2FvLmRlZi5zb3VyY2UrIikiKS5nZXRSZWdleCgpLGFvLl90YWc9ImFkZHJlc3N8YXJ0aWNsZXxhc2lkZXxiYXNlfGJhc2Vmb250fGJsb2NrcXVvdGV8Ym9keXxjYXB0aW9ufGNlbnRlcnxjb2x8Y29sZ3JvdXB8ZGR8ZGV0YWlsc3xkaWFsb2d8ZGlyfGRpdnxkbHxkdHxmaWVsZHNldHxmaWdjYXB0aW9ufGZpZ3VyZXxmb290ZXJ8Zm9ybXxmcmFtZXxmcmFtZXNldHxoWzEtNl18aGVhZHxoZWFkZXJ8aHJ8aHRtbHxpZnJhbWV8bGVnZW5kfGxpfGxpbmt8bWFpbnxtZW51fG1lbnVpdGVtfG1ldGF8bmF2fG5vZnJhbWVzfG9sfG9wdGdyb3VwfG9wdGlvbnxwfHBhcmFtfHNlY3Rpb258c291cmNlfHN1bW1hcnl8dGFibGV8dGJvZHl8dGR8dGZvb3R8dGh8dGhlYWR8dGl0bGV8dHJ8dHJhY2t8dWwiLGFvLl9jb21tZW50PS88IS0tKD8hLT8+KVtcc1xTXSo/KD86LS0+fCQpLyxhby5odG1sPVdpKGFvLmh0bWwsImkiKS5yZXBsYWNlKCJjb21tZW50Iixhby5fY29tbWVudCkucmVwbGFjZSgidGFnIixhby5fdGFnKS5yZXBsYWNlKCJhdHRyaWJ1dGUiLC8gK1thLXpBLVo6X11bXHcuOi1dKig/OiAqPSAqIlteIlxuXSoifCAqPSAqJ1teJ1xuXSonfCAqPSAqW15ccyInPTw+YF0rKT8vKS5nZXRSZWdleCgpLGFvLnBhcmFncmFwaD1XaShhby5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsYW8uaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgifHRhYmxlIiwiIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLGFvLl90YWcpLmdldFJlZ2V4KCksYW8uYmxvY2txdW90ZT1XaShhby5ibG9ja3F1b3RlKS5yZXBsYWNlKCJwYXJhZ3JhcGgiLGFvLnBhcmFncmFwaCkuZ2V0UmVnZXgoKSxhby5ub3JtYWw9ZW8oe30sYW8pLGFvLmdmbT1lbyh7fSxhby5ub3JtYWwse3RhYmxlOiJeICooW15cXG4gXS4qXFx8LiopXFxuIHswLDN9KD86XFx8ICopPyg6Py0rOj8gKig/OlxcfCAqOj8tKzo/ICopKikoPzpcXHwgKik/KD86XFxuKCg/Oig/ISAqXFxufGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0bWwpLiooPzpcXG58JCkpKilcXG4qfCQpIn0pLGFvLmdmbS50YWJsZT1XaShhby5nZm0udGFibGUpLnJlcGxhY2UoImhyIixhby5ocikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSAiKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImNvZGUiLCIgezR9W15cXG5dIikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixhby5fdGFnKS5nZXRSZWdleCgpLGFvLmdmbS5wYXJhZ3JhcGg9V2koYW8uX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLGFvLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIsIiIpLnJlcGxhY2UoInRhYmxlIixhby5nZm0udGFibGUpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixhby5fdGFnKS5nZXRSZWdleCgpLGFvLnBlZGFudGljPWVvKHt9LGFvLm5vcm1hbCx7aHRtbDpXaSgiXiAqKD86Y29tbWVudCAqKD86XFxufFxccyokKXw8KHRhZylbXFxzXFxTXSs/PC9cXDE+ICooPzpcXG57Mix9fFxccyokKXw8dGFnKD86XCJbXlwiXSpcInwnW14nXSonfFxcc1teJ1wiLz5cXHNdKikqPy8/PiAqKD86XFxuezIsfXxcXHMqJCkpIikucmVwbGFjZSgiY29tbWVudCIsYW8uX2NvbW1lbnQpLnJlcGxhY2UoL3RhZy9nLCIoPyEoPzphfGVtfHN0cm9uZ3xzbWFsbHxzfGNpdGV8cXxkZm58YWJicnxkYXRhfHRpbWV8Y29kZXx2YXJ8c2FtcHxrYmR8c3VifHN1cHxpfGJ8dXxtYXJrfHJ1Ynl8cnR8cnB8YmRpfGJkb3xzcGFufGJyfHdicnxpbnN8ZGVsfGltZylcXGIpXFx3Kyg/ITp8W15cXHdcXHNAXSpAKVxcYiIpLmdldFJlZ2V4KCksZGVmOi9eICpcWyhbXlxdXSspXF06ICo8PyhbXlxzPl0rKT4/KD86ICsoWyIoXVteXG5dK1siKV0pKT8gKig/OlxuK3wkKS8saGVhZGluZzovXigjezEsNn0pKC4qKSg/OlxuK3wkKS8sZmVuY2VzOlhpLHBhcmFncmFwaDpXaShhby5ub3JtYWwuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLGFvLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5dIikucmVwbGFjZSgibGhlYWRpbmciLGFvLmxoZWFkaW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBsYWNlKCJ8bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgoKX0pO2NvbnN0IGxvPXtlc2NhcGU6L15cXChbISIjJCUmJygpKissXC0uLzo7PD0+P0BcW1xdXFxeX2B7fH1+XSkvLGF1dG9saW5rOi9ePChzY2hlbWU6W15cc1x4MDAtXHgxZjw+XSp8ZW1haWwpPi8sdXJsOlhpLHRhZzoiXmNvbW1lbnR8XjwvW2EtekEtWl1bXFx3Oi1dKlxccyo+fF48W2EtekEtWl1bXFx3LV0qKD86YXR0cmlidXRlKSo/XFxzKi8/PnxePFxcP1tcXHNcXFNdKj9cXD8+fF48IVthLXpBLVpdK1xcc1tcXHNcXFNdKj8+fF48IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4iLGxpbms6L14hP1xbKGxhYmVsKVxdXChccyooaHJlZikoPzpccysodGl0bGUpKT9ccypcKS8scmVmbGluazovXiE/XFsobGFiZWwpXF1cWyhyZWYpXF0vLG5vbGluazovXiE/XFsocmVmKVxdKD86XFtcXSk/LyxyZWZsaW5rU2VhcmNoOiJyZWZsaW5rfG5vbGluayg/IVxcKCkiLGVtU3Ryb25nOntsRGVsaW06L14oPzpcKisoPzooW3B1bmN0X10pfFteXHMqXSkpfF5fKyg/OihbcHVuY3QqXSl8KFteXHNfXSkpLyxyRGVsaW1Bc3Q6L15bXl8qXSo/XF9cX1teXypdKj9cKlteXypdKj8oPz1cX1xfKXxbcHVuY3RfXShcKispKD89W1xzXXwkKXxbXnB1bmN0Kl9cc10oXCorKSg/PVtwdW5jdF9cc118JCl8W3B1bmN0X1xzXShcKispKD89W15wdW5jdCpfXHNdKXxbXHNdKFwqKykoPz1bcHVuY3RfXSl8W3B1bmN0X10oXCorKSg/PVtwdW5jdF9dKXxbXnB1bmN0Kl9cc10oXCorKSg/PVtecHVuY3QqX1xzXSkvLHJEZWxpbVVuZDovXlteXypdKj9cKlwqW15fKl0qP1xfW15fKl0qPyg/PVwqXCopfFtwdW5jdCpdKFxfKykoPz1bXHNdfCQpfFtecHVuY3QqX1xzXShcXyspKD89W3B1bmN0KlxzXXwkKXxbcHVuY3QqXHNdKFxfKykoPz1bXnB1bmN0Kl9cc10pfFtcc10oXF8rKSg/PVtwdW5jdCpdKXxbcHVuY3QqXShcXyspKD89W3B1bmN0Kl0pL30sY29kZTovXihgKykoW15gXXxbXmBdW1xzXFNdKj9bXmBdKVwxKD8hYCkvLGJyOi9eKCB7Mix9fFxcKVxuKD8hXHMqJCkvLGRlbDpYaSx0ZXh0Oi9eKGArfFteYF0pKD86KD89IHsyLH1cbil8W1xzXFNdKj8oPzooPz1bXFw8IVxbYCpfXXxcYl98JCl8W14gXSg/PSB7Mix9XG4pKSkvLHB1bmN0dWF0aW9uOi9eKFtcc3B1bmN0dWF0aW9uXSkvfTtmdW5jdGlvbiBjbyhlKXtyZXR1cm4gZS5yZXBsYWNlKC8tLS0vZywi4oCUIikucmVwbGFjZSgvLS0vZywi4oCTIikucmVwbGFjZSgvKF58Wy1cdTIwMTQvKFxbeyJcc10pJy9nLCIkMeKAmCIpLnJlcGxhY2UoLycvZywi4oCZIikucmVwbGFjZSgvKF58Wy1cdTIwMTQvKFxbe1x1MjAxOFxzXSkiL2csIiQx4oCcIikucmVwbGFjZSgvIi9nLCLigJ0iKS5yZXBsYWNlKC9cLnszfS9nLCLigKYiKX1mdW5jdGlvbiBobyhlKXtsZXQgdCxpLG89IiI7Y29uc3Qgbj1lLmxlbmd0aDtmb3IodD0wO3Q8bjt0KyspaT1lLmNoYXJDb2RlQXQodCksTWF0aC5yYW5kb20oKT4uNSYmKGk9IngiK2kudG9TdHJpbmcoMTYpKSxvKz0iJiMiK2krIjsiO3JldHVybiBvfWxvLl9wdW5jdHVhdGlvbj0iIVwiIyQlJicoKStcXC0uLC86Ozw9Pj9AXFxbXFxdYF57fH1+Iixsby5wdW5jdHVhdGlvbj1XaShsby5wdW5jdHVhdGlvbikucmVwbGFjZSgvcHVuY3R1YXRpb24vZyxsby5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksbG8uYmxvY2tTa2lwPS9cW1teXF1dKj9cXVwoW15cKV0qP1wpfGBbXmBdKj9gfDxbXj5dKj8+L2csbG8uZXNjYXBlZEVtU3Q9L1xcXCp8XFxfL2csbG8uX2NvbW1lbnQ9V2koYW8uX2NvbW1lbnQpLnJlcGxhY2UoIig/Oi0tXHgzZXwkKSIsIi0tXHgzZSIpLmdldFJlZ2V4KCksbG8uZW1TdHJvbmcubERlbGltPVdpKGxvLmVtU3Ryb25nLmxEZWxpbSkucmVwbGFjZSgvcHVuY3QvZyxsby5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksbG8uZW1TdHJvbmcuckRlbGltQXN0PVdpKGxvLmVtU3Ryb25nLnJEZWxpbUFzdCwiZyIpLnJlcGxhY2UoL3B1bmN0L2csbG8uX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLGxvLmVtU3Ryb25nLnJEZWxpbVVuZD1XaShsby5lbVN0cm9uZy5yRGVsaW1VbmQsImciKS5yZXBsYWNlKC9wdW5jdC9nLGxvLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxsby5fZXNjYXBlcz0vXFwoWyEiIyQlJicoKSorLFwtLi86Ozw9Pj9AXFtcXVxcXl9ge3x9fl0pL2csbG8uX3NjaGVtZT0vW2EtekEtWl1bYS16QS1aMC05Ky4tXXsxLDMxfS8sbG8uX2VtYWlsPS9bYS16QS1aMC05LiEjJCUmJyorLz0/Xl9ge3x9fi1dKyhAKVthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSsoPyFbLV9dKS8sbG8uYXV0b2xpbms9V2kobG8uYXV0b2xpbmspLnJlcGxhY2UoInNjaGVtZSIsbG8uX3NjaGVtZSkucmVwbGFjZSgiZW1haWwiLGxvLl9lbWFpbCkuZ2V0UmVnZXgoKSxsby5fYXR0cmlidXRlPS9ccytbYS16QS1aOl9dW1x3LjotXSooPzpccyo9XHMqIlteIl0qInxccyo9XHMqJ1teJ10qJ3xccyo9XHMqW15ccyInPTw+YF0rKT8vLGxvLnRhZz1XaShsby50YWcpLnJlcGxhY2UoImNvbW1lbnQiLGxvLl9jb21tZW50KS5yZXBsYWNlKCJhdHRyaWJ1dGUiLGxvLl9hdHRyaWJ1dGUpLmdldFJlZ2V4KCksbG8uX2xhYmVsPS8oPzpcWyg/OlxcLnxbXlxbXF1cXF0pKlxdfFxcLnxgW15gXSpgfFteXFtcXVxcYF0pKj8vLGxvLl9ocmVmPS88KD86XFwufFteXG48PlxcXSkrPnxbXlxzXHgwMC1ceDFmXSovLGxvLl90aXRsZT0vIig/OlxcIj98W14iXFxdKSoifCcoPzpcXCc/fFteJ1xcXSkqJ3xcKCg/OlxcXCk/fFteKVxcXSkqXCkvLGxvLmxpbms9V2kobG8ubGluaykucmVwbGFjZSgibGFiZWwiLGxvLl9sYWJlbCkucmVwbGFjZSgiaHJlZiIsbG8uX2hyZWYpLnJlcGxhY2UoInRpdGxlIixsby5fdGl0bGUpLmdldFJlZ2V4KCksbG8ucmVmbGluaz1XaShsby5yZWZsaW5rKS5yZXBsYWNlKCJsYWJlbCIsbG8uX2xhYmVsKS5yZXBsYWNlKCJyZWYiLGFvLl9sYWJlbCkuZ2V0UmVnZXgoKSxsby5ub2xpbms9V2kobG8ubm9saW5rKS5yZXBsYWNlKCJyZWYiLGFvLl9sYWJlbCkuZ2V0UmVnZXgoKSxsby5yZWZsaW5rU2VhcmNoPVdpKGxvLnJlZmxpbmtTZWFyY2gsImciKS5yZXBsYWNlKCJyZWZsaW5rIixsby5yZWZsaW5rKS5yZXBsYWNlKCJub2xpbmsiLGxvLm5vbGluaykuZ2V0UmVnZXgoKSxsby5ub3JtYWw9ZW8oe30sbG8pLGxvLnBlZGFudGljPWVvKHt9LGxvLm5vcm1hbCx7c3Ryb25nOntzdGFydDovXl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMpX18oPyFfKXxeXCpcKig/PVxTKShbXHNcU10qP1xTKVwqXCooPyFcKikvLGVuZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xTXSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8hXykvLGVuZEFzdDovXCooPyFcKikvZyxlbmRVbmQ6L18oPyFfKS9nfSxsaW5rOldpKC9eIT9cWyhsYWJlbClcXVwoKC4qPylcKS8pLnJlcGxhY2UoImxhYmVsIixsby5fbGFiZWwpLmdldFJlZ2V4KCkscmVmbGluazpXaSgvXiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNlKCJsYWJlbCIsbG8uX2xhYmVsKS5nZXRSZWdleCgpfSksbG8uZ2ZtPWVvKHt9LGxvLm5vcm1hbCx7ZXNjYXBlOldpKGxvLmVzY2FwZSkucmVwbGFjZSgiXSkiLCJ+fF0pIikuZ2V0UmVnZXgoKSxfZXh0ZW5kZWRfZW1haWw6L1tBLVphLXowLTkuXystXSsoQClbYS16QS1aMC05LV9dKyg/OlwuW2EtekEtWjAtOS1fXSpbYS16QS1aMC05XSkrKD8hWy1fXSkvLHVybDovXigoPzpmdHB8aHR0cHM/KTpcL1wvfHd3d1wuKSg/OlthLXpBLVowLTlcLV0rXC4/KStbXlxzPF0qfF5lbWFpbC8sX2JhY2twZWRhbDovKD86W14/IS4sOjsqX34oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTldKzskKXxbPyEuLDo7Kl9+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0pKFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSksbG8uZ2ZtLnVybD1XaShsby5nZm0udXJsLCJpIikucmVwbGFjZSgiZW1haWwiLGxvLmdmbS5fZXh0ZW5kZWRfZW1haWwpLmdldFJlZ2V4KCksbG8uYnJlYWtzPWVvKHt9LGxvLmdmbSx7YnI6V2kobG8uYnIpLnJlcGxhY2UoInsyLH0iLCIqIikuZ2V0UmVnZXgoKSx0ZXh0OldpKGxvLmdmbS50ZXh0KS5yZXBsYWNlKCJcXGJfIiwiXFxiX3wgezIsfVxcbiIpLnJlcGxhY2UoL1x7MixcfS9nLCIqIikuZ2V0UmVnZXgoKX0pO2NsYXNzIHVve2NvbnN0cnVjdG9yKGUpe3RoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5zLmxpbmtzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5vcHRpb25zPWV8fERpLHRoaXMub3B0aW9ucy50b2tlbml6ZXI9dGhpcy5vcHRpb25zLnRva2VuaXplcnx8bmV3IHNvLHRoaXMudG9rZW5pemVyPXRoaXMub3B0aW9ucy50b2tlbml6ZXIsdGhpcy50b2tlbml6ZXIub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy50b2tlbml6ZXIubGV4ZXI9dGhpcyx0aGlzLmlubGluZVF1ZXVlPVtdLHRoaXMuc3RhdGU9e2luTGluazohMSxpblJhd0Jsb2NrOiExLHRvcDohMH07Y29uc3QgdD17YmxvY2s6YW8ubm9ybWFsLGlubGluZTpsby5ub3JtYWx9O3RoaXMub3B0aW9ucy5wZWRhbnRpYz8odC5ibG9jaz1hby5wZWRhbnRpYyx0LmlubGluZT1sby5wZWRhbnRpYyk6dGhpcy5vcHRpb25zLmdmbSYmKHQuYmxvY2s9YW8uZ2ZtLHRoaXMub3B0aW9ucy5icmVha3M/dC5pbmxpbmU9bG8uYnJlYWtzOnQuaW5saW5lPWxvLmdmbSksdGhpcy50b2tlbml6ZXIucnVsZXM9dH1zdGF0aWMgZ2V0IHJ1bGVzKCl7cmV0dXJue2Jsb2NrOmFvLGlubGluZTpsb319c3RhdGljIGxleChlLHQpe3JldHVybiBuZXcgdW8odCkubGV4KGUpfXN0YXRpYyBsZXhJbmxpbmUoZSx0KXtyZXR1cm4gbmV3IHVvKHQpLmlubGluZVRva2VucyhlKX1sZXgoZSl7bGV0IHQ7Zm9yKGU9ZS5yZXBsYWNlKC9cclxufFxyL2csIlxuIikucmVwbGFjZSgvXHQvZywiICAgICIpLHRoaXMuYmxvY2tUb2tlbnMoZSx0aGlzLnRva2Vucyk7dD10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRoaXMuaW5saW5lVG9rZW5zKHQuc3JjLHQudG9rZW5zKTtyZXR1cm4gdGhpcy50b2tlbnN9YmxvY2tUb2tlbnMoZSx0PVtdKXtsZXQgaSxvLG4scjtmb3IodGhpcy5vcHRpb25zLnBlZGFudGljJiYoZT1lLnJlcGxhY2UoL14gKyQvZ20sIiIpKTtlOylpZighKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5ibG9jayYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2suc29tZSgobz0+ISEoaT1vLmNhbGwoe2xleGVyOnRoaXN9LGUsdCkpJiYoZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKSwhMCkpKSkpaWYoaT10aGlzLnRva2VuaXplci5zcGFjZShlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksMT09PWkucmF3Lmxlbmd0aCYmdC5sZW5ndGg+MD90W3QubGVuZ3RoLTFdLnJhdys9IlxuIjp0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLmNvZGUoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLG89dFt0Lmxlbmd0aC0xXSwhb3x8InBhcmFncmFwaCIhPT1vLnR5cGUmJiJ0ZXh0IiE9PW8udHlwZT90LnB1c2goaSk6KG8ucmF3Kz0iXG4iK2kucmF3LG8udGV4dCs9IlxuIitpLnRleHQsdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9by50ZXh0KTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuZmVuY2VzKGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLmhlYWRpbmcoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuaHIoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuYmxvY2txdW90ZShlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksdC5wdXNoKGkpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci5saXN0KGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLmh0bWwoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuZGVmKGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSxvPXRbdC5sZW5ndGgtMV0sIW98fCJwYXJhZ3JhcGgiIT09by50eXBlJiYidGV4dCIhPT1vLnR5cGU/dGhpcy50b2tlbnMubGlua3NbaS50YWddfHwodGhpcy50b2tlbnMubGlua3NbaS50YWddPXtocmVmOmkuaHJlZix0aXRsZTppLnRpdGxlfSk6KG8ucmF3Kz0iXG4iK2kucmF3LG8udGV4dCs9IlxuIitpLnJhdyx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1vLnRleHQpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci50YWJsZShlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksdC5wdXNoKGkpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci5saGVhZGluZyhlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksdC5wdXNoKGkpO2Vsc2V7aWYobj1lLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydEJsb2NrKXtsZXQgdD0xLzA7Y29uc3QgaT1lLnNsaWNlKDEpO2xldCBvO3RoaXMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0QmxvY2suZm9yRWFjaCgoZnVuY3Rpb24oZSl7bz1lLmNhbGwoe2xleGVyOnRoaXN9LGkpLCJudW1iZXIiPT10eXBlb2YgbyYmbz49MCYmKHQ9TWF0aC5taW4odCxvKSl9KSksdDwxLzAmJnQ+PTAmJihuPWUuc3Vic3RyaW5nKDAsdCsxKSl9aWYodGhpcy5zdGF0ZS50b3AmJihpPXRoaXMudG9rZW5pemVyLnBhcmFncmFwaChuKSkpbz10W3QubGVuZ3RoLTFdLHImJiJwYXJhZ3JhcGgiPT09by50eXBlPyhvLnJhdys9IlxuIitpLnJhdyxvLnRleHQrPSJcbiIraS50ZXh0LHRoaXMuaW5saW5lUXVldWUucG9wKCksdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9by50ZXh0KTp0LnB1c2goaSkscj1uLmxlbmd0aCE9PWUubGVuZ3RoLGU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIudGV4dChlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksbz10W3QubGVuZ3RoLTFdLG8mJiJ0ZXh0Ij09PW8udHlwZT8oby5yYXcrPSJcbiIraS5yYXcsby50ZXh0Kz0iXG4iK2kudGV4dCx0aGlzLmlubGluZVF1ZXVlLnBvcCgpLHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPW8udGV4dCk6dC5wdXNoKGkpO2Vsc2UgaWYoZSl7Y29uc3QgdD0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK2UuY2hhckNvZGVBdCgwKTtpZih0aGlzLm9wdGlvbnMuc2lsZW50KXtjb25zb2xlLmVycm9yKHQpO2JyZWFrfXRocm93IG5ldyBFcnJvcih0KX19cmV0dXJuIHRoaXMuc3RhdGUudG9wPSEwLHR9aW5saW5lKGUsdCl7dGhpcy5pbmxpbmVRdWV1ZS5wdXNoKHtzcmM6ZSx0b2tlbnM6dH0pfWlubGluZVRva2VucyhlLHQ9W10pe2xldCBpLG8sbixyLHMsYSxsPWU7aWYodGhpcy50b2tlbnMubGlua3Mpe2NvbnN0IGU9T2JqZWN0LmtleXModGhpcy50b2tlbnMubGlua3MpO2lmKGUubGVuZ3RoPjApZm9yKDtudWxsIT0ocj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5leGVjKGwpKTspZS5pbmNsdWRlcyhyWzBdLnNsaWNlKHJbMF0ubGFzdEluZGV4T2YoIlsiKSsxLC0xKSkmJihsPWwuc2xpY2UoMCxyLmluZGV4KSsiWyIrbm8oImEiLHJbMF0ubGVuZ3RoLTIpKyJdIitsLnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmxhc3RJbmRleCkpfWZvcig7bnVsbCE9KHI9dGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5leGVjKGwpKTspbD1sLnNsaWNlKDAsci5pbmRleCkrIlsiK25vKCJhIixyWzBdLmxlbmd0aC0yKSsiXSIrbC5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmxhc3RJbmRleCk7Zm9yKDtudWxsIT0ocj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QuZXhlYyhsKSk7KWw9bC5zbGljZSgwLHIuaW5kZXgpKyIrKyIrbC5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QubGFzdEluZGV4KTtmb3IoO2U7KWlmKHN8fChhPSIiKSxzPSExLCEodGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmlubGluZSYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuaW5saW5lLnNvbWUoKG89PiEhKGk9by5jYWxsKHtsZXhlcjp0aGlzfSxlLHQpKSYmKGU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSksITApKSkpKWlmKGk9dGhpcy50b2tlbml6ZXIuZXNjYXBlKGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLnRhZyhlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksbz10W3QubGVuZ3RoLTFdLG8mJiJ0ZXh0Ij09PWkudHlwZSYmInRleHQiPT09by50eXBlPyhvLnJhdys9aS5yYXcsby50ZXh0Kz1pLnRleHQpOnQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIubGluayhlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksdC5wdXNoKGkpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci5yZWZsaW5rKGUsdGhpcy50b2tlbnMubGlua3MpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSxvPXRbdC5sZW5ndGgtMV0sbyYmInRleHQiPT09aS50eXBlJiYidGV4dCI9PT1vLnR5cGU/KG8ucmF3Kz1pLnJhdyxvLnRleHQrPWkudGV4dCk6dC5wdXNoKGkpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci5lbVN0cm9uZyhlLGwsYSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuY29kZXNwYW4oZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuYnIoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuZGVsKGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLmF1dG9saW5rKGUsaG8pKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZih0aGlzLnN0YXRlLmluTGlua3x8IShpPXRoaXMudG9rZW5pemVyLnVybChlLGhvKSkpe2lmKG49ZSx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUpe2xldCB0PTEvMDtjb25zdCBpPWUuc2xpY2UoMSk7bGV0IG87dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7bz1lLmNhbGwoe2xleGVyOnRoaXN9LGkpLCJudW1iZXIiPT10eXBlb2YgbyYmbz49MCYmKHQ9TWF0aC5taW4odCxvKSl9KSksdDwxLzAmJnQ+PTAmJihuPWUuc3Vic3RyaW5nKDAsdCsxKSl9aWYoaT10aGlzLnRva2VuaXplci5pbmxpbmVUZXh0KG4sY28pKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSwiXyIhPT1pLnJhdy5zbGljZSgtMSkmJihhPWkucmF3LnNsaWNlKC0xKSkscz0hMCxvPXRbdC5sZW5ndGgtMV0sbyYmInRleHQiPT09by50eXBlPyhvLnJhdys9aS5yYXcsby50ZXh0Kz1pLnRleHQpOnQucHVzaChpKTtlbHNlIGlmKGUpe2NvbnN0IHQ9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitlLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5vcHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcih0KTticmVha310aHJvdyBuZXcgRXJyb3IodCl9fWVsc2UgZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtyZXR1cm4gdH19Y2xhc3MgZm97Y29uc3RydWN0b3IoZSl7dGhpcy5vcHRpb25zPWV8fERpfWNvZGUoZSx0LGkpe2NvbnN0IG89KHR8fCIiKS5tYXRjaCgvXFMqLylbMF07aWYodGhpcy5vcHRpb25zLmhpZ2hsaWdodCl7Y29uc3QgdD10aGlzLm9wdGlvbnMuaGlnaGxpZ2h0KGUsbyk7bnVsbCE9dCYmdCE9PWUmJihpPSEwLGU9dCl9cmV0dXJuIGU9ZS5yZXBsYWNlKC9cbiQvLCIiKSsiXG4iLG8/JzxwcmU+PGNvZGUgY2xhc3M9IicrdGhpcy5vcHRpb25zLmxhbmdQcmVmaXgrTmkobywhMCkrJyI+JysoaT9lOk5pKGUsITApKSsiPC9jb2RlPjwvcHJlPlxuIjoiPHByZT48Y29kZT4iKyhpP2U6TmkoZSwhMCkpKyI8L2NvZGU+PC9wcmU+XG4ifWJsb2NrcXVvdGUoZSl7cmV0dXJuIjxibG9ja3F1b3RlPlxuIitlKyI8L2Jsb2NrcXVvdGU+XG4ifWh0bWwoZSl7cmV0dXJuIGV9aGVhZGluZyhlLHQsaSxvKXtyZXR1cm4gdGhpcy5vcHRpb25zLmhlYWRlcklkcz8iPGgiK3QrJyBpZD0iJyt0aGlzLm9wdGlvbnMuaGVhZGVyUHJlZml4K28uc2x1ZyhpKSsnIj4nK2UrIjwvaCIrdCsiPlxuIjoiPGgiK3QrIj4iK2UrIjwvaCIrdCsiPlxuIn1ocigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxoci8+XG4iOiI8aHI+XG4ifWxpc3QoZSx0LGkpe2NvbnN0IG89dD8ib2wiOiJ1bCI7cmV0dXJuIjwiK28rKHQmJjEhPT1pPycgc3RhcnQ9IicraSsnIic6IiIpKyI+XG4iK2UrIjwvIitvKyI+XG4ifWxpc3RpdGVtKGUpe3JldHVybiI8bGk+IitlKyI8L2xpPlxuIn1jaGVja2JveChlKXtyZXR1cm4iPGlucHV0ICIrKGU/J2NoZWNrZWQ9IiIgJzoiIikrJ2Rpc2FibGVkPSIiIHR5cGU9ImNoZWNrYm94IicrKHRoaXMub3B0aW9ucy54aHRtbD8iIC8iOiIiKSsiPiAifXBhcmFncmFwaChlKXtyZXR1cm4iPHA+IitlKyI8L3A+XG4ifXRhYmxlKGUsdCl7cmV0dXJuIHQmJih0PSI8dGJvZHk+Iit0KyI8L3Rib2R5PiIpLCI8dGFibGU+XG48dGhlYWQ+XG4iK2UrIjwvdGhlYWQ+XG4iK3QrIjwvdGFibGU+XG4ifXRhYmxlcm93KGUpe3JldHVybiI8dHI+XG4iK2UrIjwvdHI+XG4ifXRhYmxlY2VsbChlLHQpe2NvbnN0IGk9dC5oZWFkZXI/InRoIjoidGQiO3JldHVybih0LmFsaWduPyI8IitpKycgYWxpZ249IicrdC5hbGlnbisnIj4nOiI8IitpKyI+IikrZSsiPC8iK2krIj5cbiJ9c3Ryb25nKGUpe3JldHVybiI8c3Ryb25nPiIrZSsiPC9zdHJvbmc+In1lbShlKXtyZXR1cm4iPGVtPiIrZSsiPC9lbT4ifWNvZGVzcGFuKGUpe3JldHVybiI8Y29kZT4iK2UrIjwvY29kZT4ifWJyKCl7cmV0dXJuIHRoaXMub3B0aW9ucy54aHRtbD8iPGJyLz4iOiI8YnI+In1kZWwoZSl7cmV0dXJuIjxkZWw+IitlKyI8L2RlbD4ifWxpbmsoZSx0LGkpe2lmKG51bGw9PT0oZT1LaSh0aGlzLm9wdGlvbnMuc2FuaXRpemUsdGhpcy5vcHRpb25zLmJhc2VVcmwsZSkpKXJldHVybiBpO2xldCBvPSc8YSBocmVmPSInK05pKGUpKyciJztyZXR1cm4gdCYmKG8rPScgdGl0bGU9IicrdCsnIicpLG8rPSI+IitpKyI8L2E+IixvfWltYWdlKGUsdCxpKXtpZihudWxsPT09KGU9S2kodGhpcy5vcHRpb25zLnNhbml0aXplLHRoaXMub3B0aW9ucy5iYXNlVXJsLGUpKSlyZXR1cm4gaTtsZXQgbz0nPGltZyBzcmM9IicrZSsnIiBhbHQ9IicraSsnIic7cmV0dXJuIHQmJihvKz0nIHRpdGxlPSInK3QrJyInKSxvKz10aGlzLm9wdGlvbnMueGh0bWw/Ii8+IjoiPiIsb310ZXh0KGUpe3JldHVybiBlfX1jbGFzcyBwb3tzdHJvbmcoZSl7cmV0dXJuIGV9ZW0oZSl7cmV0dXJuIGV9Y29kZXNwYW4oZSl7cmV0dXJuIGV9ZGVsKGUpe3JldHVybiBlfWh0bWwoZSl7cmV0dXJuIGV9dGV4dChlKXtyZXR1cm4gZX1saW5rKGUsdCxpKXtyZXR1cm4iIitpfWltYWdlKGUsdCxpKXtyZXR1cm4iIitpfWJyKCl7cmV0dXJuIiJ9fWNsYXNzIG1ve2NvbnN0cnVjdG9yKCl7dGhpcy5zZWVuPXt9fXNlcmlhbGl6ZShlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnRyaW0oKS5yZXBsYWNlKC88WyFcL2Etel0uKj8+L2dpLCIiKS5yZXBsYWNlKC9bXHUyMDAwLVx1MjA2Rlx1MkUwMC1cdTJFN0ZcXCchIiMkJSYoKSorLC4vOjs8PT4/QFtcXV5ge3x9fl0vZywiIikucmVwbGFjZSgvXHMvZywiLSIpfWdldE5leHRTYWZlU2x1ZyhlLHQpe2xldCBpPWUsbz0wO2lmKHRoaXMuc2Vlbi5oYXNPd25Qcm9wZXJ0eShpKSl7bz10aGlzLnNlZW5bZV07ZG97bysrLGk9ZSsiLSIrb313aGlsZSh0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkoaSkpfXJldHVybiB0fHwodGhpcy5zZWVuW2VdPW8sdGhpcy5zZWVuW2ldPTApLGl9c2x1ZyhlLHQ9e30pe2NvbnN0IGk9dGhpcy5zZXJpYWxpemUoZSk7cmV0dXJuIHRoaXMuZ2V0TmV4dFNhZmVTbHVnKGksdC5kcnlydW4pfX1jbGFzcyBib3tjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9ZXx8RGksdGhpcy5vcHRpb25zLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcnx8bmV3IGZvLHRoaXMucmVuZGVyZXI9dGhpcy5vcHRpb25zLnJlbmRlcmVyLHRoaXMucmVuZGVyZXIub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy50ZXh0UmVuZGVyZXI9bmV3IHBvLHRoaXMuc2x1Z2dlcj1uZXcgbW99c3RhdGljIHBhcnNlKGUsdCl7cmV0dXJuIG5ldyBibyh0KS5wYXJzZShlKX1zdGF0aWMgcGFyc2VJbmxpbmUoZSx0KXtyZXR1cm4gbmV3IGJvKHQpLnBhcnNlSW5saW5lKGUpfXBhcnNlKGUsdD0hMCl7bGV0IGksbyxuLHIscyxhLGwsYyxkLGgsdSxmLHAsbSxiLGcsdix3LHkseD0iIjtjb25zdCBrPWUubGVuZ3RoO2ZvcihpPTA7aTxrO2krKylpZihoPWVbaV0sdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW2gudHlwZV0mJih5PXRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1toLnR5cGVdLmNhbGwoe3BhcnNlcjp0aGlzfSxoKSwhMSE9PXl8fCFbInNwYWNlIiwiaHIiLCJoZWFkaW5nIiwiY29kZSIsInRhYmxlIiwiYmxvY2txdW90ZSIsImxpc3QiLCJodG1sIiwicGFyYWdyYXBoIiwidGV4dCJdLmluY2x1ZGVzKGgudHlwZSkpKXgrPXl8fCIiO2Vsc2Ugc3dpdGNoKGgudHlwZSl7Y2FzZSJzcGFjZSI6Y29udGludWU7Y2FzZSJociI6eCs9dGhpcy5yZW5kZXJlci5ocigpO2NvbnRpbnVlO2Nhc2UiaGVhZGluZyI6eCs9dGhpcy5yZW5kZXJlci5oZWFkaW5nKHRoaXMucGFyc2VJbmxpbmUoaC50b2tlbnMpLGguZGVwdGgsamkodGhpcy5wYXJzZUlubGluZShoLnRva2Vucyx0aGlzLnRleHRSZW5kZXJlcikpLHRoaXMuc2x1Z2dlcik7Y29udGludWU7Y2FzZSJjb2RlIjp4Kz10aGlzLnJlbmRlcmVyLmNvZGUoaC50ZXh0LGgubGFuZyxoLmVzY2FwZWQpO2NvbnRpbnVlO2Nhc2UidGFibGUiOmZvcihjPSIiLGw9IiIscj1oLmhlYWRlci5sZW5ndGgsbz0wO288cjtvKyspbCs9dGhpcy5yZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShoLmhlYWRlcltvXS50b2tlbnMpLHtoZWFkZXI6ITAsYWxpZ246aC5hbGlnbltvXX0pO2ZvcihjKz10aGlzLnJlbmRlcmVyLnRhYmxlcm93KGwpLGQ9IiIscj1oLnJvd3MubGVuZ3RoLG89MDtvPHI7bysrKXtmb3IoYT1oLnJvd3Nbb10sbD0iIixzPWEubGVuZ3RoLG49MDtuPHM7bisrKWwrPXRoaXMucmVuZGVyZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUoYVtuXS50b2tlbnMpLHtoZWFkZXI6ITEsYWxpZ246aC5hbGlnbltuXX0pO2QrPXRoaXMucmVuZGVyZXIudGFibGVyb3cobCl9eCs9dGhpcy5yZW5kZXJlci50YWJsZShjLGQpO2NvbnRpbnVlO2Nhc2UiYmxvY2txdW90ZSI6ZD10aGlzLnBhcnNlKGgudG9rZW5zKSx4Kz10aGlzLnJlbmRlcmVyLmJsb2NrcXVvdGUoZCk7Y29udGludWU7Y2FzZSJsaXN0Ijpmb3IodT1oLm9yZGVyZWQsZj1oLnN0YXJ0LHA9aC5sb29zZSxyPWguaXRlbXMubGVuZ3RoLGQ9IiIsbz0wO288cjtvKyspYj1oLml0ZW1zW29dLGc9Yi5jaGVja2VkLHY9Yi50YXNrLG09IiIsYi50YXNrJiYodz10aGlzLnJlbmRlcmVyLmNoZWNrYm94KGcpLHA/Yi50b2tlbnMubGVuZ3RoPjAmJiJwYXJhZ3JhcGgiPT09Yi50b2tlbnNbMF0udHlwZT8oYi50b2tlbnNbMF0udGV4dD13KyIgIitiLnRva2Vuc1swXS50ZXh0LGIudG9rZW5zWzBdLnRva2VucyYmYi50b2tlbnNbMF0udG9rZW5zLmxlbmd0aD4wJiYidGV4dCI9PT1iLnRva2Vuc1swXS50b2tlbnNbMF0udHlwZSYmKGIudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0PXcrIiAiK2IudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0KSk6Yi50b2tlbnMudW5zaGlmdCh7dHlwZToidGV4dCIsdGV4dDp3fSk6bSs9dyksbSs9dGhpcy5wYXJzZShiLnRva2VucyxwKSxkKz10aGlzLnJlbmRlcmVyLmxpc3RpdGVtKG0sdixnKTt4Kz10aGlzLnJlbmRlcmVyLmxpc3QoZCx1LGYpO2NvbnRpbnVlO2Nhc2UiaHRtbCI6eCs9dGhpcy5yZW5kZXJlci5odG1sKGgudGV4dCk7Y29udGludWU7Y2FzZSJwYXJhZ3JhcGgiOngrPXRoaXMucmVuZGVyZXIucGFyYWdyYXBoKHRoaXMucGFyc2VJbmxpbmUoaC50b2tlbnMpKTtjb250aW51ZTtjYXNlInRleHQiOmZvcihkPWgudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoaC50b2tlbnMpOmgudGV4dDtpKzE8ayYmInRleHQiPT09ZVtpKzFdLnR5cGU7KWg9ZVsrK2ldLGQrPSJcbiIrKGgudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoaC50b2tlbnMpOmgudGV4dCk7eCs9dD90aGlzLnJlbmRlcmVyLnBhcmFncmFwaChkKTpkO2NvbnRpbnVlO2RlZmF1bHQ6e2NvbnN0IGU9J1Rva2VuIHdpdGggIicraC50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihlKTt0aHJvdyBuZXcgRXJyb3IoZSl9fXJldHVybiB4fXBhcnNlSW5saW5lKGUsdCl7dD10fHx0aGlzLnJlbmRlcmVyO2xldCBpLG8sbixyPSIiO2NvbnN0IHM9ZS5sZW5ndGg7Zm9yKGk9MDtpPHM7aSsrKWlmKG89ZVtpXSx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbby50eXBlXSYmKG49dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW28udHlwZV0uY2FsbCh7cGFyc2VyOnRoaXN9LG8pLCExIT09bnx8IVsiZXNjYXBlIiwiaHRtbCIsImxpbmsiLCJpbWFnZSIsInN0cm9uZyIsImVtIiwiY29kZXNwYW4iLCJiciIsImRlbCIsInRleHQiXS5pbmNsdWRlcyhvLnR5cGUpKSlyKz1ufHwiIjtlbHNlIHN3aXRjaChvLnR5cGUpe2Nhc2UiZXNjYXBlIjpjYXNlInRleHQiOnIrPXQudGV4dChvLnRleHQpO2JyZWFrO2Nhc2UiaHRtbCI6cis9dC5odG1sKG8udGV4dCk7YnJlYWs7Y2FzZSJsaW5rIjpyKz10Lmxpbmsoby5ocmVmLG8udGl0bGUsdGhpcy5wYXJzZUlubGluZShvLnRva2Vucyx0KSk7YnJlYWs7Y2FzZSJpbWFnZSI6cis9dC5pbWFnZShvLmhyZWYsby50aXRsZSxvLnRleHQpO2JyZWFrO2Nhc2Uic3Ryb25nIjpyKz10LnN0cm9uZyh0aGlzLnBhcnNlSW5saW5lKG8udG9rZW5zLHQpKTticmVhaztjYXNlImVtIjpyKz10LmVtKHRoaXMucGFyc2VJbmxpbmUoby50b2tlbnMsdCkpO2JyZWFrO2Nhc2UiY29kZXNwYW4iOnIrPXQuY29kZXNwYW4oby50ZXh0KTticmVhaztjYXNlImJyIjpyKz10LmJyKCk7YnJlYWs7Y2FzZSJkZWwiOnIrPXQuZGVsKHRoaXMucGFyc2VJbmxpbmUoby50b2tlbnMsdCkpO2JyZWFrO2RlZmF1bHQ6e2NvbnN0IGU9J1Rva2VuIHdpdGggIicrby50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihlKTt0aHJvdyBuZXcgRXJyb3IoZSl9fXJldHVybiByfX1mdW5jdGlvbiBnbyhlLHQsaSl7aWYobnVsbD09ZSl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZCgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkIG9yIG51bGwiKTtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJtYXJrZWQoKTogaW5wdXQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgIitPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkrIiwgc3RyaW5nIGV4cGVjdGVkIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQmJihpPXQsdD1udWxsKSxvbyh0PWVvKHt9LGdvLmRlZmF1bHRzLHR8fHt9KSksaSl7Y29uc3Qgbz10LmhpZ2hsaWdodDtsZXQgbjt0cnl7bj11by5sZXgoZSx0KX1jYXRjaChlKXtyZXR1cm4gaShlKX1jb25zdCByPWZ1bmN0aW9uKGUpe2xldCByO2lmKCFlKXRyeXt0LndhbGtUb2tlbnMmJmdvLndhbGtUb2tlbnMobix0LndhbGtUb2tlbnMpLHI9Ym8ucGFyc2Uobix0KX1jYXRjaCh0KXtlPXR9cmV0dXJuIHQuaGlnaGxpZ2h0PW8sZT9pKGUpOmkobnVsbCxyKX07aWYoIW98fG8ubGVuZ3RoPDMpcmV0dXJuIHIoKTtpZihkZWxldGUgdC5oaWdobGlnaHQsIW4ubGVuZ3RoKXJldHVybiByKCk7bGV0IHM9MDtyZXR1cm4gZ28ud2Fsa1Rva2VucyhuLChmdW5jdGlvbihlKXsiY29kZSI9PT1lLnR5cGUmJihzKyssc2V0VGltZW91dCgoKCk9PntvKGUudGV4dCxlLmxhbmcsKGZ1bmN0aW9uKHQsaSl7aWYodClyZXR1cm4gcih0KTtudWxsIT1pJiZpIT09ZS50ZXh0JiYoZS50ZXh0PWksZS5lc2NhcGVkPSEwKSxzLS0sMD09PXMmJnIoKX0pKX0pLDApKX0pKSx2b2lkKDA9PT1zJiZyKCkpfXRyeXtjb25zdCBpPXVvLmxleChlLHQpO3JldHVybiB0LndhbGtUb2tlbnMmJmdvLndhbGtUb2tlbnMoaSx0LndhbGtUb2tlbnMpLGJvLnBhcnNlKGksdCl9Y2F0Y2goZSl7aWYoZS5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLHQuc2lsZW50KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK05pKGUubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgZX19Z28ub3B0aW9ucz1nby5zZXRPcHRpb25zPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBlbyhnby5kZWZhdWx0cyxlKSx0PWdvLmRlZmF1bHRzLERpPXQsZ299LGdvLmdldERlZmF1bHRzPVBpLGdvLmRlZmF1bHRzPURpLGdvLnVzZT1mdW5jdGlvbiguLi5lKXtjb25zdCB0PWVvKHt9LC4uLmUpLGk9Z28uZGVmYXVsdHMuZXh0ZW5zaW9uc3x8e3JlbmRlcmVyczp7fSxjaGlsZFRva2Vuczp7fX07bGV0IG87ZS5mb3JFYWNoKChlPT57aWYoZS5leHRlbnNpb25zJiYobz0hMCxlLmV4dGVuc2lvbnMuZm9yRWFjaCgoZT0+e2lmKCFlLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJleHRlbnNpb24gbmFtZSByZXF1aXJlZCIpO2lmKGUucmVuZGVyZXIpe2NvbnN0IHQ9aS5yZW5kZXJlcnM/aS5yZW5kZXJlcnNbZS5uYW1lXTpudWxsO2kucmVuZGVyZXJzW2UubmFtZV09dD9mdW5jdGlvbiguLi5pKXtsZXQgbz1lLnJlbmRlcmVyLmFwcGx5KHRoaXMsaSk7cmV0dXJuITE9PT1vJiYobz10LmFwcGx5KHRoaXMsaSkpLG99OmUucmVuZGVyZXJ9aWYoZS50b2tlbml6ZXIpe2lmKCFlLmxldmVsfHwiYmxvY2siIT09ZS5sZXZlbCYmImlubGluZSIhPT1lLmxldmVsKXRocm93IG5ldyBFcnJvcigiZXh0ZW5zaW9uIGxldmVsIG11c3QgYmUgJ2Jsb2NrJyBvciAnaW5saW5lJyIpO2lbZS5sZXZlbF0/aVtlLmxldmVsXS51bnNoaWZ0KGUudG9rZW5pemVyKTppW2UubGV2ZWxdPVtlLnRva2VuaXplcl0sZS5zdGFydCYmKCJibG9jayI9PT1lLmxldmVsP2kuc3RhcnRCbG9jaz9pLnN0YXJ0QmxvY2sucHVzaChlLnN0YXJ0KTppLnN0YXJ0QmxvY2s9W2Uuc3RhcnRdOiJpbmxpbmUiPT09ZS5sZXZlbCYmKGkuc3RhcnRJbmxpbmU/aS5zdGFydElubGluZS5wdXNoKGUuc3RhcnQpOmkuc3RhcnRJbmxpbmU9W2Uuc3RhcnRdKSl9ZS5jaGlsZFRva2VucyYmKGkuY2hpbGRUb2tlbnNbZS5uYW1lXT1lLmNoaWxkVG9rZW5zKX0pKSksZS5yZW5kZXJlcil7Y29uc3QgaT1nby5kZWZhdWx0cy5yZW5kZXJlcnx8bmV3IGZvO2Zvcihjb25zdCB0IGluIGUucmVuZGVyZXIpe2NvbnN0IG89aVt0XTtpW3RdPSguLi5uKT0+e2xldCByPWUucmVuZGVyZXJbdF0uYXBwbHkoaSxuKTtyZXR1cm4hMT09PXImJihyPW8uYXBwbHkoaSxuKSkscn19dC5yZW5kZXJlcj1pfWlmKGUudG9rZW5pemVyKXtjb25zdCBpPWdvLmRlZmF1bHRzLnRva2VuaXplcnx8bmV3IHNvO2Zvcihjb25zdCB0IGluIGUudG9rZW5pemVyKXtjb25zdCBvPWlbdF07aVt0XT0oLi4ubik9PntsZXQgcj1lLnRva2VuaXplclt0XS5hcHBseShpLG4pO3JldHVybiExPT09ciYmKHI9by5hcHBseShpLG4pKSxyfX10LnRva2VuaXplcj1pfWlmKGUud2Fsa1Rva2Vucyl7Y29uc3QgaT1nby5kZWZhdWx0cy53YWxrVG9rZW5zO3Qud2Fsa1Rva2Vucz1mdW5jdGlvbih0KXtlLndhbGtUb2tlbnMuY2FsbCh0aGlzLHQpLGkmJmkuY2FsbCh0aGlzLHQpfX1vJiYodC5leHRlbnNpb25zPWkpLGdvLnNldE9wdGlvbnModCl9KSl9LGdvLndhbGtUb2tlbnM9ZnVuY3Rpb24oZSx0KXtmb3IoY29uc3QgaSBvZiBlKXN3aXRjaCh0LmNhbGwoZ28saSksaS50eXBlKXtjYXNlInRhYmxlIjpmb3IoY29uc3QgZSBvZiBpLmhlYWRlcilnby53YWxrVG9rZW5zKGUudG9rZW5zLHQpO2Zvcihjb25zdCBlIG9mIGkucm93cylmb3IoY29uc3QgaSBvZiBlKWdvLndhbGtUb2tlbnMoaS50b2tlbnMsdCk7YnJlYWs7Y2FzZSJsaXN0Ijpnby53YWxrVG9rZW5zKGkuaXRlbXMsdCk7YnJlYWs7ZGVmYXVsdDpnby5kZWZhdWx0cy5leHRlbnNpb25zJiZnby5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zJiZnby5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zW2kudHlwZV0/Z28uZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1tpLnR5cGVdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2dvLndhbGtUb2tlbnMoaVtlXSx0KX0pKTppLnRva2VucyYmZ28ud2Fsa1Rva2VucyhpLnRva2Vucyx0KX19LGdvLnBhcnNlSW5saW5lPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZC5wYXJzZUlubGluZSgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkIG9yIG51bGwiKTtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJtYXJrZWQucGFyc2VJbmxpbmUoKTogaW5wdXQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgIitPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkrIiwgc3RyaW5nIGV4cGVjdGVkIik7b28odD1lbyh7fSxnby5kZWZhdWx0cyx0fHx7fSkpO3RyeXtjb25zdCBpPXVvLmxleElubGluZShlLHQpO3JldHVybiB0LndhbGtUb2tlbnMmJmdvLndhbGtUb2tlbnMoaSx0LndhbGtUb2tlbnMpLGJvLnBhcnNlSW5saW5lKGksdCl9Y2F0Y2goZSl7aWYoZS5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLHQuc2lsZW50KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK05pKGUubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgZX19LGdvLlBhcnNlcj1ibyxnby5wYXJzZXI9Ym8ucGFyc2UsZ28uUmVuZGVyZXI9Zm8sZ28uVGV4dFJlbmRlcmVyPXBvLGdvLkxleGVyPXVvLGdvLmxleGVyPXVvLmxleCxnby5Ub2tlbml6ZXI9c28sZ28uU2x1Z2dlcj1tbyxnby5wYXJzZT1nbztnby5vcHRpb25zLGdvLnNldE9wdGlvbnMsZ28udXNlLGdvLndhbGtUb2tlbnMsZ28ucGFyc2VJbmxpbmUsYm8ucGFyc2UsdW8ubGV4O3ZhciB2bztsZXQgd289dm89Y2xhc3MgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2xsSW5mbz1udWxsLHRoaXMuY3VyYXRlZFBhZ2VNYXA9e30sdGhpcy5jdXJyTGlzdD0wLHRoaXMuYWN0aXZlPSExLHRoaXMuaXNTaWRlYmFyPSExLHRoaXMuc3BsaXREaXJlY3Rpb249ITEsdGhpcy5sYXN0U1Q9MCx0aGlzLmNsaWNrVGltZT0wLHRoaXMuc3BsaXR0ZXI9bnVsbH1yZWNhbGNTcGxpdHRlcihlKXt0aGlzLnNwbGl0RGlyZWN0aW9uPXRoaXMuaXNTaWRlYmFyfHxlPDc2OT8idmVydGljYWwiOiJob3Jpem9udGFsIn1maXJzdFVwZGF0ZWQoKXt0aGlzLnJlY2FsY1NwbGl0dGVyKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCksdGhpcy5vYnM9bmV3IFJlc2l6ZU9ic2VydmVyKChlPT57dGhpcy5yZWNhbGNTcGxpdHRlcihlWzBdLmNvbnRlbnRSZWN0LndpZHRoKX0pKSx0aGlzLm9icy5vYnNlcnZlKHRoaXMpfXVwZGF0ZWQoZSl7ZS5oYXMoImNvbGxJbmZvIikmJnRoaXMuZG9Mb2FkQ3VyYXRlZCgpLChlLmhhcygiY29sbEluZm8iKXx8ZS5oYXMoImlzU2lkZWJhciIpKSYmdGhpcy5yZWNhbGNTcGxpdHRlcihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpLGUuaGFzKCJzcGxpdERpcmVjdGlvbiIpJiZ0aGlzLmNvbmZpZ3VyZVNwbGl0dGVyKCksZS5oYXMoImN1cnJMaXN0IikmJnRoaXMuYWN0aXZlJiZ0aGlzLnNlbmRDaGFuZ2VFdmVudCh7Y3Vyckxpc3Q6dGhpcy5jdXJyTGlzdH0pfWNvbmZpZ3VyZVNwbGl0dGVyKCl7Y29uc3QgZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLnNpZGViYXIiKSx0PXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbi1jb250ZW50Iik7aWYodGhpcy5zcGxpdHRlcil7dHJ5e3RoaXMuc3BsaXR0ZXIuZGVzdHJveSgpfWNhdGNoKGUpe310aGlzLnNwbGl0dGVyPW51bGx9aWYoZSYmdCYmIXRoaXMuc3BsaXR0ZXIpe2NvbnN0IGk9e3NpemVzOlsyMCw4MF0sZ3V0dGVyU2l6ZTo0LGRpcmVjdGlvbjp0aGlzLnNwbGl0RGlyZWN0aW9ufTt0aGlzLnNwbGl0dGVyPWVpKFtlLHRdLGkpfX1kb0xvYWRDdXJhdGVkKCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZihudWxsPT10aGlzLmNvbGxJbmZvKXJldHVybjt0aGlzLmN1cmF0ZWRQYWdlTWFwPXt9O2NvbnN0IGU9e307Zm9yKGNvbnN0IHQgb2YgdGhpcy5jb2xsSW5mby5wYWdlcyllW3QuaWRdPXQ7Zm9yKGNvbnN0IGUgb2YgdGhpcy5jb2xsSW5mby5jdXJhdGVkUGFnZXMpe3RoaXMuY3VyYXRlZFBhZ2VNYXBbZS5saXN0XXx8KHRoaXMuY3VyYXRlZFBhZ2VNYXBbZS5saXN0XT1bXSk7Y29uc3QgdD1lLGk9dC51cmwsbz10LnRzLG49dC50aXRsZXx8dC51cmwscj1lLmRlc2M7dGhpcy5jdXJhdGVkUGFnZU1hcFtlLmxpc3RdLnB1c2goe3VybDppLHRzOm8sdGl0bGU6bixkZXNjOnJ9KX10aGlzLnNjcm9sbFRvTGlzdCgpfSkpfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKGhgCiAgICAgIDpob3N0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG1pbi13aWR0aDogMHB4OwoKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgOmhvc3QoLnNpZGViYXIpIC5jb2x1bW5zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgOmhvc3QoLnNpZGViYXIpIC5jb2x1bW4uc2lkZWJhci5pcy1vbmUtZmlmdGggewogICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgICR7dm8uc2lkZWJhclN0eWxlcyhkKCI6aG9zdCguc2lkZWJhcikiKSl9CgogICAgICAuZGVzYyBwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07CiAgICAgIH0KCiAgICAgIC5jb2x1bW5zIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAganVzdGlmeS1zZWxmOiBzdHJldGNoOwogICAgICAgIG1hcmdpbjogMWVtIDAgMCAwICFpbXBvcnRhbnQ7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmNvbHVtbi5tYWluLWNvbnRlbnQgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogMC43NWVtOwogICAgICB9CgogICAgICAuY29sdW1uLm1haW4tY29udGVudC5tYWluLXNjcm9sbCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMC43NWVtOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgdWwubWVudS1saXN0IGEuaXMtYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTViZTZmOwogICAgICB9CiAgICAgIG9sIHsKICAgICAgICBtYXJnaW4tbGVmdDogMzBweDsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHsKICAgICAgICAuY29sdW1ucyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAwLjc1ZW07CiAgICAgICAgfQoKICAgICAgICAuY29sdW1uLnNpZGViYXIgewogICAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICR7dm8uc2lkZWJhclN0eWxlcygpfQogICAgICB9CgogICAgICAuZ3V0dGVyLmd1dHRlci12ZXJ0aWNhbDpob3ZlciB7CiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplOwogICAgICB9CgogICAgICAuZ3V0dGVyLmd1dHRlci1ob3Jpem9udGFsOmhvdmVyIHsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgIH0KICAgIGApfXN0YXRpYyBzaWRlYmFyU3R5bGVzKGU9aGBgKXtyZXR1cm4gaGAKICAgICAgJHtlfSAuY29sdW1ucyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAke2V9IC5jb2x1bW4uc2lkZWJhciB7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtYXJnaW4tdG9wOiAwLjc1ZW07CiAgICAgIH0KCiAgICAgICR7ZX0gLmNvbHVtbi5tYWluLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwoKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7CgogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgJHtlfSAubWVudSB7CiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgIH0KICAgIGB9cmVuZGVyKCl7dmFyIGUsdDtjb25zdCBpPXRoaXMuY3Vyckxpc3Q7cmV0dXJuIFFgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iaXMtc3Itb25seSIKICAgICAgICByb2xlPSJoZWFkaW5nIgogICAgICAgIGFyaWEtbGV2ZWw9IiR7dGhpcy5pc1NpZGViYXI/IjIiOiIxIn0iCiAgICAgID4KICAgICAgICBTdG9yeSBmb3IgJHt0aGlzLmNvbGxJbmZvLnRpdGxlfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uIHNpZGViYXIgaXMtb25lLWZpZnRoIj4KICAgICAgICAgIDxhc2lkZSBjbGFzcz0ibWVudSI+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibWVudS1saXN0Ij4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICBocmVmPSIjbGlzdC0wIgogICAgICAgICAgICAgICAgICBkYXRhLWxpc3Q9IjAiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSIkezA9PT1pPyJpcy1hY3RpdmUiOiIifSBtZW51LWxhYmVsIGlzLXNpemUtNCIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5vbkNsaWNrU2Nyb2xsfQogICAgICAgICAgICAgICAgICA+JHtudWxsPT09KGU9dGhpcy5jb2xsSW5mbyl8fHZvaWQgMD09PWU/dm9pZCAwOmUudGl0bGV9PC9hCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im1lbnUtbGlzdCI+CiAgICAgICAgICAgICAgICAgICR7bnVsbD09PSh0PXRoaXMuY29sbEluZm8pfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lmxpc3RzLm1hcCgoZT0+UWAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMub25DbGlja1Njcm9sbH0KICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIjbGlzdC0ke2UuaWR9IgogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbGlzdD0iJHtlLmlkfSIKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iJHtpPT09ZS5pZD8iaXMtYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgPiR7ZS50aXRsZX08L2EKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPC9saT5gKSl9CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8L2FzaWRlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgQHNjcm9sbD0ke3RoaXMub25TY3JvbGx9IGNsYXNzPSJjb2x1bW4gbWFpbi1jb250ZW50IG1haW4tc2Nyb2xsIj4KICAgICAgICAgIDxzZWN0aW9uIGlkPSJsaXN0LTAiIGNsYXNzPSJkZXNjIj4KICAgICAgICAgICAgPGgyIGNsYXNzPSJoYXMtdGV4dC1jZW50ZXJlZCB0aXRsZSBpcy0zIj4KICAgICAgICAgICAgICAke3RoaXMuY29sbEluZm8udGl0bGV9CiAgICAgICAgICAgIDwvaDI+CgogICAgICAgICAgICAke3RoaXMuY29sbEluZm8uZGVzYz9FZShnbyh0aGlzLmNvbGxJbmZvLmRlc2MpKToiIn0KICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJMaXN0cygpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGlzdHMoKXt2YXIgZSx0O3JldHVybiBRYCAke251bGw9PT0odD1udWxsPT09KGU9dGhpcy5jb2xsSW5mbyl8fHZvaWQgMD09PWU/dm9pZCAwOmUubGlzdHMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lm1hcCgoZT0+UWAKICAgICAgICA8YXJ0aWNsZSBpZD0ibGlzdC0ke2UuaWR9Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgICA8aHIgLz4KICAgICAgICAgICAgPGgzPiR7ZS50aXRsZX08L2gzPgogICAgICAgICAgICA8cD4ke2UuZGVzY308L3A+CiAgICAgICAgICAgIDxvbD4KICAgICAgICAgICAgICAke3RoaXMuY3VyYXRlZFBhZ2VNYXBbZS5pZF0/dGhpcy5jdXJhdGVkUGFnZU1hcFtlLmlkXS5tYXAoKGU9PnRoaXMucmVuZGVyQ1BhZ2UoZSkpKTpRYGB9CiAgICAgICAgICAgIDwvb2w+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2FydGljbGU+CiAgICAgIGApKX1gfXJlbmRlckNQYWdlKGUpe2NvbnN0IHQ9bmV3IERhdGUoZS50cyksaT14dCh0LnRvSVNPU3RyaW5nKCkpO3JldHVybiBRYCA8bGk+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxhCiAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblJlcGxheX0iCiAgICAgICAgICBkYXRhLXVybD0iJHtlLnVybH0iCiAgICAgICAgICBkYXRhLXRzPSIke2l9IgogICAgICAgICAgaHJlZj0iJHtrdCgic3RvcnkiLGUudXJsLGkpfSIKICAgICAgICA+CiAgICAgICAgICA8cCBjbGFzcz0iaXMtc2l6ZS02IGhhcy10ZXh0LXdlaWdodC1ib2xkIGhhcy10ZXh0LWxpbmsiPiR7ZS50aXRsZX08L3A+CiAgICAgICAgICA8cCBjbGFzcz0iaGFzLXRleHQtZGFyayI+JHtlLnVybH08L3A+CiAgICAgICAgPC9hPgogICAgICAgIDxwPiR7QXQuZm9ybWF0KHQpfTwvcD4KICAgICAgICA8cD4ke2UuZGVzY308L3A+CiAgICAgIDwvZGl2PgogICAgICA8aHIgLz4KICAgIDwvbGk+YH1vblJlcGxheShlKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD17dXJsOmUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtdXJsIiksdHM6ZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS10cyIpfTtyZXR1cm4gdGhpcy5zZW5kQ2hhbmdlRXZlbnQodCksITF9c2VuZENoYW5nZUV2ZW50KGUpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGwtdGFiLW5hdiIse2RldGFpbDp7ZGF0YTplfX0pKX1vbkNsaWNrU2Nyb2xsKGUpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jdXJyTGlzdD1OdW1iZXIoZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1saXN0IikpLHRoaXMuc2Nyb2xsVG9MaXN0KCksITF9c2Nyb2xsVG9MaXN0KCl7dmFyIGUsdCxpO3RoaXMuY3Vyckxpc3Q+KG51bGwhPT0oaT1udWxsPT09KHQ9bnVsbD09PShlPXRoaXMuY29sbEluZm8pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmxpc3RzKXx8dm9pZCAwPT09dD92b2lkIDA6dC5sZW5ndGgpJiZ2b2lkIDAhPT1pP2k6MCkmJih0aGlzLmN1cnJMaXN0PTApO2NvbnN0IG89e2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifTt0aGlzLmNsaWNrVGltZT0obmV3IERhdGUpLmdldFRpbWUoKTtjb25zdCBuPXRoaXMucmVuZGVyUm9vdC5nZXRFbGVtZW50QnlJZCgibGlzdC0iK3RoaXMuY3Vyckxpc3QpO24mJm4uc2Nyb2xsSW50b1ZpZXcobyl9b25TY3JvbGwoZSl7Y29uc3QgdD1lLmN1cnJlbnRUYXJnZXQsaT10aGlzLnJlbmRlclJvb3QuZ2V0RWxlbWVudEJ5SWQoImxpc3QtIit0aGlzLmN1cnJMaXN0KTtpZighaSlyZXR1cm47bGV0IG89aTtjb25zdCBuPXQub2Zmc2V0VG9wLHI9dC5zY3JvbGxUb3A7aWYocj50aGlzLmxhc3RTVClmb3IoO28ubmV4dEVsZW1lbnRTaWJsaW5nJiZvLm5leHRFbGVtZW50U2libGluZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A8bjspbz1vLm5leHRFbGVtZW50U2libGluZztlbHNlIGZvcig7by5wcmV2aW91c0VsZW1lbnRTaWJsaW5nJiZvLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tPj1uOylvPW8ucHJldmlvdXNFbGVtZW50U2libGluZztpZih0aGlzLmxhc3RTVD1yLG8mJm8hPWkmJm8uaWQuc3RhcnRzV2l0aCgibGlzdC0iKSYmKHRoaXMuY3Vyckxpc3Q9TnVtYmVyKG8uaWQuc2xpY2UoNSkpKSwobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLmNsaWNrVGltZTwxZTMpcmV0dXJuO2NvbnN0IHM9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoYGFbZGF0YS1saXN0PSIke3RoaXMuY3Vyckxpc3R9Il1gKTtpZihzKXtjb25zdCBlPXtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In07cy5zY3JvbGxJbnRvVmlldyhlKX19fTt0KFt5ZSh7dHlwZTpPYmplY3R9KV0sd28ucHJvdG90eXBlLCJjb2xsSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3R9KV0sd28ucHJvdG90eXBlLCJjdXJhdGVkUGFnZU1hcCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sd28ucHJvdG90eXBlLCJjdXJyTGlzdCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLHdvLnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sd28ucHJvdG90eXBlLCJpc1NpZGViYXIiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSx3by5wcm90b3R5cGUsInNwbGl0RGlyZWN0aW9uIix2b2lkIDApLHdvPXZvPXQoW2dlKCJ3ci1jb2xsLXN0b3J5IildLHdvKTtjbGFzcyB5byBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnN0YXRlPSJ0cnlwdWJsaWMiLHRoaXMuc291cmNlVXJsPSIiLHRoaXMuc2NyaXB0TG9hZGVkPSExLHRoaXMuZXJyb3I9ITF9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3N0YXRlOnt0eXBlOlN0cmluZ30sc291cmNlVXJsOnt0eXBlOlN0cmluZ30sZXJyb3I6e3R5cGU6Qm9vbGVhbn0scmVhdXRoOnt0eXBlOkJvb2xlYW59fX11cGRhdGVkKGUpe2UuaGFzKCJzb3VyY2VVcmwiKSYmKHRoaXMuZXJyb3I9ITEsdGhpcy5zdGF0ZT0idHJ5cHVibGljIix0aGlzLnRyeVB1YmxpY0FjY2VzcygpLnRoZW4oKGU9PntlfHwodGhpcy5zdGF0ZT0idHJ5YXV0byIsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfSkpKX10cnlQdWJsaWNBY2Nlc3MoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBlPXRoaXMuc291cmNlVXJsLHQ9YGh0dHBzOi8vaGVscGVyLXByb3h5LndlYnJlY29yZGVyLndvcmtlcnMuZGV2L2cvJHtlLnNsaWNlKDE0KX1gO2xldCBpPW51bGw7dHJ5e2k9eWllbGQgZmV0Y2godCl9Y2F0Y2goZSl7cmV0dXJuITF9Y29uc3Qgbz15aWVsZCBpLmpzb24oKTtpZighby51cmx8fCFvLm5hbWV8fCFvLnNpemUpcmV0dXJuITE7aWYoby5zaXplPjE1ZTYpcmV0dXJuITE7Y29uc3Qgbj1vLnVybDt0cnl7Y29uc3QgZT1uZXcgQWJvcnRDb250cm9sbGVyLHQ9ZS5zaWduYWw7aWYoaT15aWVsZCBmZXRjaChuLHtzaWduYWw6dH0pLGUuYWJvcnQoKSwyMDAhPWkuc3RhdHVzKXJldHVybiExfWNhdGNoKGUpe3JldHVybiExfWNvbnN0IHI9by5uYW1lLHM9e3B1YmxpY1VybDpufSxhPU51bWJlcihvLnNpemUpO3JldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2FkLXJlYWR5Iix7ZGV0YWlsOntuYW1lOnIsZXh0cmE6cyxzaXplOmEsc291cmNlVXJsOmV9fSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0pKX1vbkxvYWQoKXt0aGlzLnNjcmlwdExvYWRlZD0hMCx0aGlzLmdhdXRoKCJub25lIiwoZT0+e2UuZXJyb3I/ImltcGxpY2l0b25seSIhPT10aGlzLnN0YXRlJiYodGhpcy5zdGF0ZT0idHJ5bWFudWFsIik6dGhpcy5hdXRoZWQoZSl9KSl9b25DbGlja0F1dGgoKXt0aGlzLmdhdXRoKCJzZWxlY3RfYWNjb3VudCIsKGU9PntlLmVycm9yfHx0aGlzLmF1dGhlZChlKX0pKX1hdXRoZWQoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PXRoaXMuc291cmNlVXJsLGk9YGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2RyaXZlL3YzL2ZpbGVzLyR7dC5zbGljZSgxNCl9YCxvPXtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHtlLmFjY2Vzc190b2tlbn1gfSxuPXlpZWxkIGZldGNoKGkrIj9maWVsZHM9bmFtZSxzaXplJnN1cHBvcnRzQWxsRHJpdmVzPXRydWUiLHtoZWFkZXJzOm99KTtpZig0MDQ9PT1uLnN0YXR1c3x8NDAzPT1uLnN0YXR1cylyZXR1cm4iaW1wbGljaXRvbmx5IiE9PXRoaXMuc3RhdGUmJih0aGlzLnN0YXRlPSJ0cnltYW51YWwiKSx2b2lkKHRoaXMuZXJyb3I9ITApO3RoaXMuZXJyb3I9ITE7Y29uc3Qgcj15aWVsZCBuLmpzb24oKSxzPXIubmFtZSxhPU51bWJlcihyLnNpemUpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvYWQtcmVhZHkiLHtkZXRhaWw6e3NvdXJjZVVybDp0LGhlYWRlcnM6byxzaXplOmEsbmFtZTpzfX0pKX0pKX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShoYGApfXJlbmRlcigpe3JldHVybiBRYCAke3RoaXMuc2NyaXB0KCl9CiAgICAkeyJ0cnltYW51YWwiIT09dGhpcy5zdGF0ZT9RYCA8cD5Db25uZWN0aW5nIHRvIEdvb2dsZSBEcml2ZS4uLjwvcD4gYDpRYAogICAgICAgICAgJHt0aGlzLmVycm9yP1FgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciBoYXMtdGV4dC1kYW5nZXIiPgogICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVhdXRoPyJTb21lIHJlc291cmNlcyBhcmUgbG9hZGVkIG9uIGRlbWFuZCBmcm9tIEdvb2dsZSBEcml2ZSwgd2hpY2ggcmVxdWlyZXMgcmVhdXRob3JpemF0aW9uLiI6IkNvdWxkIG5vdCBhY2Nlc3MgdGhpcyBmaWxlIHdpdGggdGhlIGN1cnJlbnQgR29vZ2xlIERyaXZlIGFjY291bnQuIn0KICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBHb29nbGUgRHJpdmUgYWNjb3VudHMsIGJlIHN1cmUgdG8KICAgICAgICAgICAgICAgICAgICBzZWxlY3QgdGhlIGNvcnJlY3Qgb25lLgogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJidXR0b24gaXMtd2FybmluZyBpcy1yb3VuZGVkIgogICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkNsaWNrQXV0aH0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgID48ZmEtaWNvbiAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0zMzkgMzE0LjlMMTc1LjQgMzJoMTYxLjJsMTYzLjYgMjgyLjlIMzM5em0tMTM3LjUgMjMuNkwxMjAuOSA0ODBoMzEwLjVMNTEyIDMzOC41SDIwMS41ek0xNTQuMSA2Ny40TDAgMzM4LjUgODAuNiA0ODAgMjM3IDIwOC44IDE1NC4xIDY3LjR6Ii8+PC9zdmc+J30iPjwvZmEtaWNvbgogICAgICAgICAgICA+PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5BdXRob3JpemUgR29vZ2xlIERyaXZlPC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgYH1gfXNjcmlwdCgpe2lmKCJ0cnlwdWJsaWMiPT09dGhpcy5zdGF0ZXx8dGhpcy5zY3JpcHRMb2FkZWQpcmV0dXJuIFFgYDtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3JldHVybiBlLm9ubG9hZD0oKT0+dGhpcy5vbkxvYWQoKSxlLnNyYz0iaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvcGxhdGZvcm0uanMiLGV9Z2F1dGgoZSx0KXtzZWxmLmdhcGkubG9hZCgiYXV0aDIiLCgoKT0+e3NlbGYuZ2FwaS5hdXRoMi5hdXRob3JpemUoe2NsaWVudF9pZDoiMTYwNzk4NDEyMjI3LXRrbzRjODJ1b3B1ZDExcTEwNWIybHZib2dzajc3aGxnLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIixzY29wZToiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kcml2ZS5maWxlIixyZXNwb25zZV90eXBlOiJ0b2tlbiIscHJvbXB0OmV9LHQpfSkpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLWdkcml2ZSIseW8pO2NvbnN0IHhvPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48c3R5bGU+XG5Aa2V5ZnJhbWVzIGEwX3QgeyAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTsgfSB9XG48L3N0eWxlPjxwYXRoIGQ9Ik02LjgwNyAxMS4yNDZoLTAuMDAxYy0wLjA3NCAwLTAuMTQ0LTAuMDMzLTAuMTkxLTAuMDljLTAuMDQ3LTAuMDU3LTAuMDY3LTAuMTMxLTAuMDU0LTAuMjA0Yy4zMzgtMS43MzUgMS40ODMtMy4yMDYgMy4wODItMy45NTljLjAzOC0wLjAxOCAuMDgzLTAuMDE1IC4xMTggLjAwOGMuMDM2IC4wMjIgLjA1NyAuMDYxIC4wNTggLjEwM2MuMDAxIC4wMTctMC4wMDMgLjAzNS0wLjAxMSAuMDVjLTAuNDI2IDEuMDM1LTAuNzE5IDIuMzcxLTAuODEgMy44NTZjLTAuMDA3IC4xMzItMC4xMTcgLjIzNi0wLjI0OSAuMjM2Wm03LjM2NC00LjA5MWMtMC4wMTktMC4wNDctMC4wMDgtMC4xMDEgLjAyNy0wLjEzOGMuMDM3LTAuMDM1IC4wOTItMC4wNDUgLjEzOS0wLjAyNWMxLjYgLjc1MyAyLjc0NSAyLjIyNCAzLjA4MSAzLjk2Yy4wMTIgLjA3Mi0wLjAwOCAuMTQ2LTAuMDU1IC4yMDNjLTAuMDQ3IC4wNTYtMC4xMTcgLjA4OS0wLjE5IC4wOWwtMS45NDIgLjAwMWMtMC4xMzIgMC0wLjI0Mi0wLjEwNC0wLjI0OS0wLjIzNmMtMC4wOTEtMS40ODUtMC4zODQtMi44MjEtMC44MTEtMy44NTVtMy4wMDIgNS41OTFjLjA3NCAwIC4xNDQgLjAzMyAuMTkyIC4wODljLjA0NyAuMDU3IC4wNjcgLjEzMiAuMDU0IC4yMDVjLTAuMzM2IDEuNzM2LTEuNDgxIDMuMjA4LTMuMDgyIDMuOTZjLTAuMDQ3IC4wMi0wLjEwMiAuMDEtMC4xMzktMC4wMjVjLTAuMDM1LTAuMDM3LTAuMDQ1LTAuMDkxLTAuMDI2LTAuMTM4Yy40MjYtMS4wMzMgLjcxOS0yLjM2OSAuODEtMy44NTZjLjAwOC0wLjEzMiAuMTE3LTAuMjM1IC4yNDktMC4yMzVabS03LjM2NCA0LjA5MWMuMDA3IC4wMTYgLjAxIC4wMzMgLjAxIC4wNWMtMC4wMDEgLjA0Mi0wLjAyMiAuMDgxLTAuMDU3IC4xMDRjLTAuMDM2IC4wMjMtMC4wOCAuMDI3LTAuMTE5IC4wMWMtMS41OTktMC43NTQtMi43NDQtMi4yMjUtMy4wODEtMy45NjFjLTAuMDEzLTAuMDczIC4wMDctMC4xNDcgLjA1NC0wLjIwNGMuMDQ4LTAuMDU2IC4xMTctMC4wODggLjE5MS0wLjA4OGMuNDk1LTAuMDAyIDEuNDg4LTAuMDAyIDEuOTQyLTAuMDAyYy4xMzIgMCAuMjQxIC4xMDMgLjI0OSAuMjM1Yy4wOTEgMS40ODcgLjM4NCAyLjgyMyAuODExIDMuODU2bS42OTQtMy44MjVjLTAuMDA1LTAuMDY5IC4wMTktMC4xMzYgLjA2Ni0wLjE4N2MuMDQ4LTAuMDUgLjExNC0wLjA3OCAuMTgzLTAuMDc4bDIuNDc3LTAuMDAxYy4xMzggLjAwMSAuMjQ5IC4xMTIgLjI0OSAuMjV2LjAxNmMtMC4xMDcgMS41ODMtMC40NjEgMi45NjItMC45OTcgMy44NzJjLTAuMTExIC4xOTgtMC4yNDkgLjM3NS0wLjQxNCAuNTMxYy0wLjA0NSAuMDM1LTAuMTA5IC4wMzUtMC4xNTQgMGMtMC4xNjQtMC4xNTUtMC4zMDQtMC4zMzQtMC40MTQtMC41MzFjLTAuNTM2LTAuOTEtMC44OS0yLjI4OS0wLjk5Ni0zLjg3Mm0yLjk3NS0yLjAzMnYuMDE2YzAgLjEzOC0wLjExMSAuMjQ5LTAuMjQ5IC4yNWgtMi40NzdjLTAuMTM4IDAtMC4yNS0wLjExMi0wLjI1LTAuMjVsLjAwMS0wLjAxNmMuMTA2LTEuNTgzIC40Ni0yLjk2MSAuOTk2LTMuODcyYy4xMjctMC4yMTQgLjI3Mi0wLjQwOCAuNDE0LTAuNTNjLjA0NS0wLjAzNSAuMTA5LTAuMDM1IC4xNTQgMGMuMTQyIC4xMjIgLjI4OCAuMzE2IC40MTQgLjUzYy41MzYgLjkxMSAuODkgMi4yODkgLjk5NyAzLjg3MiIgZmlsbD0iIzA4OTFiMiIvPjxwYXRoIGQ9Ik0yMy43NzQgMTMuMzMzYy4wOSAuMDUgLjE0IC4xNDkgLjEyOCAuMjVjLTAuNzc4IDUuODc2LTUuODExIDEwLjQxNy0xMS44OTcgMTAuNDE3Yy02LjExNCAwLTExLjE2NS00LjU4MS0xMS45MDctMTAuNDk1bC0wLjAwMS0wLjAyOGMuMDAxLTAuMTM3IC4xMTEtMC4yNDcgLjI0OC0wLjI0OGMuMDQ0IDAgLjA4NyAuMDEyIC4xMjUgLjAzNWMuNTQgLjMxMiAxLjQzOCAuODM1IDEuNzY4IDEuMDI4Yy4wNzggLjA0NSAuMTc0IC4wNDUgLjI1Mi0wLjAwMWwxLjc3Ny0xLjA0NGMuMDcxLTAuMDQyIC4xNTctMC4wNDYgLjIzMS0wLjAxMmMuMDc1IC4wMzUgLjEyOCAuMTAzIC4xNDIgLjE4NGMuNjkxIDMuNTI0IDMuNzc0IDYuMDY5IDcuMzY1IDYuMDgxYzMuNTYzLTAuMDExIDYuNjMtMi41MTggNy4zNTEtNi4wMDdjLjAxNC0wLjA3MyAuMDYxLTAuMTM2IC4xMjYtMC4xNzFsMi4wNDItMS4xMDNjLjA3NS0wLjA0MSAuMTY1LTAuMDQgLjI0IC4wMDFabS0yMy41NDgtMi42NjZjLTAuMDktMC4wNDktMC4xNDEtMC4xNDgtMC4xMjgtMC4yNWMuNzc4LTUuODc2IDUuODExLTEwLjQxNyAxMS44OTctMTAuNDE3YzYuMTE0IDAgMTEuMTY1IDQuNTgxIDExLjkwNyAxMC40OTVsLjAwMSAuMDI4Yy0wLjAwMSAuMTM3LTAuMTExIC4yNDctMC4yNDggLjI0OGMtMC4wNDQgMC0wLjA4Ny0wLjAxMi0wLjEyNS0wLjAzNWMtMC41OS0wLjM0MS0xLjE3OS0wLjY4NC0xLjc2OC0xLjAyOGMtMC4wNzgtMC4wNDUtMC4xNzQtMC4wNDUtMC4yNTIgLjAwMWwtMS43NzcgMS4wNDRjLTAuMDcxIC4wNDItMC4xNTcgLjA0Ni0wLjIzMSAuMDEyYy0wLjA3NS0wLjAzNS0wLjEyOC0wLjEwMy0wLjE0Mi0wLjE4NGMtMC42OTEtMy41MjQtMy43NzQtNi4wNjktNy4zNjUtNi4wODFjLTMuNTYzIC4wMTEtNi42MyAyLjUxOC03LjM1MSA2LjAwN2MtMC4wMTQgLjA3My0wLjA2MSAuMTM2LTAuMTI2IC4xNzFsLTIuMDQyIDEuMTAzYy0wLjA3NSAuMDQxLTAuMTY2IC4wNDEtMC4yNDEtMC4wMDFaIiBmaWxsPSIjNGQ3YzBmIiBzdHlsZT0iYW5pbWF0aW9uOiAzcyBsaW5lYXIgaW5maW5pdGUgYm90aCBhMF90O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyIvPjwvc3ZnPlxuJyxrbz1bImVycm9yZWQiLCJnb29nbGVkcml2ZSIsInBlcm1pc3Npb25fbmVlZGVkIl07Y2xhc3MgU28gZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2FkSW5mbz1udWxsLHRoaXMuc3RhdGU9IndhaXRpbmciLHRoaXMucHJvZ3Jlc3M9MCx0aGlzLnBlcmNlbnQ9MCx0aGlzLmN1cnJlbnRTaXplPTAsdGhpcy50b3RhbFNpemU9MCx0aGlzLnRvdGFsPTAsdGhpcy5jb2xsPSIiLHRoaXMudHJ5RmlsZUhhbmRsZT0hIXdpbmRvdy5zaG93T3BlbkZpbGVQaWNrZXIsdGhpcy5lcnJvckFsbG93UmV0cnk9ITEsdGhpcy5waW5nSW50ZXJ2YWw9MCx0aGlzLmZpbGVIYW5kbGU9bnVsbCx0aGlzLm5vV2ViV29ya2VyPSExfWZpcnN0VXBkYXRlZCgpe3RoaXMuaW5pdE1lc3NhZ2VzKCl9aW5pdE1lc3NhZ2VzKCl7aWYodGhpcy5ub1dlYldvcmtlcj1Cb29sZWFuKHRoaXMubG9hZEluZm8mJnRoaXMubG9hZEluZm8ubm9XZWJXb3JrZXIpLHRoaXMubm9XZWJXb3JrZXIpe2lmKCFuYXZpZ2F0b3Iuc2VydmljZVdvcmtlcilyZXR1cm47dGhpcy53b3JrZXI9bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXJ9ZWxzZSB0aGlzLndvcmtlcj1uZXcgV29ya2VyKHRoaXMuc3dOYW1lKTt0aGlzLndvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZT0+e3ZhciB0O3N3aXRjaChlLmRhdGEubXNnX3R5cGUpe2Nhc2UiY29sbFByb2dyZXNzIjppZihlLmRhdGEubmFtZT09PXRoaXMuY29sbCl7aWYodGhpcy5wZXJjZW50PWUuZGF0YS5wZXJjZW50LGUuZGF0YS5lcnJvcilpZih0aGlzLmVycm9yPWUuZGF0YS5lcnJvcix0aGlzLnN0YXRlPSJlcnJvcmVkIix0aGlzLmVycm9yQWxsb3dSZXRyeT0hMCx0aGlzLmZpbGVIYW5kbGU9ZS5kYXRhLmZpbGVIYW5kbGUsIm1pc3NpbmdfbG9jYWxfZmlsZSI9PT10aGlzLmVycm9yKXRoaXMudHJ5RmlsZUhhbmRsZT0hMTtlbHNlIGlmKCJwZXJtaXNzaW9uX25lZWRlZCI9PT10aGlzLmVycm9yJiZlLmRhdGEuZmlsZUhhbmRsZSl7dGhpcy5zdGF0ZT0icGVybWlzc2lvbl9uZWVkZWQiO2JyZWFrfWUuZGF0YS5jdXJyZW50U2l6ZSYmZS5kYXRhLnRvdGFsU2l6ZSYmKHRoaXMuY3VycmVudFNpemU9ZS5kYXRhLmN1cnJlbnRTaXplLHRoaXMudG90YWxTaXplPWUuZGF0YS50b3RhbFNpemUpLHRoaXMuZXh0cmFNc2c9ZS5kYXRhLmV4dHJhTXNnfWJyZWFrO2Nhc2UiY29sbEFkZGVkIjplLmRhdGEubmFtZT09PXRoaXMuY29sbCYmKHRoaXMudG90YWx8fCh0aGlzLnRvdGFsPTEwMCksdGhpcy5wcm9ncmVzcz10aGlzLnRvdGFsLHRoaXMucGVyY2VudD0xMDAsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC1sb2FkZWQiLHtkZXRhaWw6ZS5kYXRhfSkpLHRoaXMubm9XZWJXb3JrZXI/dGhpcy5waW5nSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5waW5nSW50ZXJ2YWwpOm51bGw9PT0odD10aGlzLndvcmtlcil8fHZvaWQgMD09PXR8fHQudGVybWluYXRlKCksdGhpcy53b3JrZXI9bnVsbCl9fSkpfWRvTG9hZCgpe3ZhciBlLHQ7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtsZXQgaSxvLG49dGhpcy5zb3VyY2VVcmwscj1udWxsO2lmKHRoaXMucGVyY2VudD10aGlzLmN1cnJlbnRTaXplPXRoaXMudG90YWxTaXplPTAsbnVsbD09PShlPXRoaXMubG9hZEluZm8pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN3RXJyb3IpcmV0dXJuIHRoaXMuc3RhdGU9ImVycm9yZWQiLHRoaXMuZXJyb3I9dGhpcy5sb2FkSW5mby5zd0Vycm9yLHZvaWQodGhpcy5lcnJvckFsbG93UmV0cnk9ITEpO3RyeXtjb25zdHtzY2hlbWU6ZSxob3N0OmkscGF0aDpvfT0kdChuKTtzd2l0Y2goZSl7Y2FzZSJnb29nbGVkcml2ZSI6dGhpcy5zdGF0ZT0iZ29vZ2xlZHJpdmUiLHI9bnVsbCE9PSh0PXlpZWxkIHRoaXMuZ29vZ2xlZHJpdmVJbml0KCkpJiZ2b2lkIDAhPT10P3Q6bnVsbDticmVhaztjYXNlInMzIjpyPXtzb3VyY2VVcmw6bixsb2FkVXJsOmBodHRwczovLyR7aX0uczMuYW1hem9uYXdzLmNvbSR7b31gLG5hbWU6dGhpcy5zb3VyY2VVcmx9O2JyZWFrO2Nhc2UiZmlsZSI6aWYoIXRoaXMubG9hZEluZm8mJiF0aGlzLnRyeUZpbGVIYW5kbGUpcmV0dXJuIHRoaXMuc3RhdGU9ImVycm9yZWQiLHRoaXMuZXJyb3I9IkZpbGUgVVJMcyBjYW4gbm90IGJlIGVudGVyZWQgZGlyZWN0bHkgb3Igc2hhcmVkLlxuWW91IGNhbiBzZWxlY3QgYSBmaWxlIHRvIHVwbG9hZCBmcm9tIHRoZSBtYWluIHBhZ2UgYnkgY2xpY2tpbmcgdGhlICdDaG9vc2UgRmlsZS4uLicgYnV0dG9uLiIsdm9pZCh0aGlzLmVycm9yQWxsb3dSZXRyeT0hMSk7cj10aGlzLmxvYWRJbmZvO2JyZWFrO2Nhc2UicHJveHkiOm49InByb3h5OiIrbi5zbGljZSg4KX19Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9cnx8KHI9e3NvdXJjZVVybDpufSksdGhpcy5zdGF0ZT0ic3RhcnRlZCIsdGhpcy5sb2FkSW5mbyYmKHIubmV3RnVsbEltcG9ydD10aGlzLmxvYWRJbmZvLm5ld0Z1bGxJbXBvcnQsci5sb2FkRWFnZXI9dGhpcy5sb2FkSW5mby5sb2FkRWFnZXIsci5ub0NhY2hlPXRoaXMubG9hZEluZm8ubm9DYWNoZSx0aGlzLmxvYWRJbmZvLmV4dHJhQ29uZmlnJiYobz10aGlzLmxvYWRJbmZvLmV4dHJhQ29uZmlnKSxuLnN0YXJ0c1dpdGgoInByb3h5OiIpJiYobnVsbD09bz92b2lkIDA6by5yZWNvcmRpbmcpJiYoaT0icmVjb3JkaW5ncHJveHkiKSk7Y29uc3Qgcz17bXNnX3R5cGU6ImFkZENvbGwiLG5hbWU6dGhpcy5jb2xsLGV4dHJhQ29uZmlnOm8sdHlwZTppLHNraXBFeGlzdGluZzohMCxmaWxlOnJ9O3lpZWxkIG90KCksdGhpcy53b3JrZXImJih0aGlzLm5vV2ViV29ya2VyPyhuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKHMpLHRoaXMucGluZ0ludGVydmFsPXNldEludGVydmFsKCgoKT0+e25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2Uoe21zZ190eXBlOiJwaW5nIn0pfSksMTVlMykpOnRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHMpKX0pKX1nb29nbGVkcml2ZUluaXQoKXtyZXR1cm4gdGhpcy5fZ2RXYWl0PW5ldyBQcm9taXNlKChlPT50aGlzLl9nZFJlc29sdmU9ZSkpLHRoaXMuX2dkV2FpdH1vbkxvYWRSZWFkeShlKXt0aGlzLl9nZFJlc29sdmUmJnRoaXMuX2dkUmVzb2x2ZShlLmRldGFpbCl9b25DYW5jZWwoKXt2YXIgZTtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKCF0aGlzLndvcmtlcilyZXR1cm47Y29uc3QgdD17bXNnX3R5cGU6ImNhbmNlbExvYWQiLG5hbWU6dGhpcy5jb2xsfTtpZighdGhpcy5ub1dlYldvcmtlcilyZXR1cm4gdGhpcy53b3JrZXIucG9zdE1lc3NhZ2UodCkseWllbGQgdGhpcy51cGRhdGVDb21wbGV0ZSx2b2lkIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGwtbG9hZC1jYW5jZWwiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpOyhudWxsPT09KGU9bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNvbnRyb2xsZXIpJiYobmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh0KSx0aGlzLnBpbmdJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLnBpbmdJbnRlcnZhbCkpfSkpfXVwZGF0ZWQoZSl7KEJvb2xlYW4odGhpcy5zb3VyY2VVcmwmJmUuaGFzKCJzb3VyY2VVcmwiKSl8fGUuaGFzKCJ0cnlGaWxlSGFuZGxlIikpJiZ0aGlzLmRvTG9hZCgpfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKGhgCiAgICAgIDpob3N0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWRpdiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiA0MDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtbGFiZWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBmb250LXNpemU6IGNhbGMoMS41cmVtIC8gMS41KTsKICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtOwogICAgICB9CgogICAgICAubG9hZGVkLXByb2cgewogICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMmVtOwogICAgICB9CgogICAgICBzZWN0aW9uLmNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICB9CgogICAgICAuZXh0cmEtbXNnIHsKICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgfQogICAgYCl9cmVuZGVyKCl7cmV0dXJuIFFgCiAgICAgIDxzZWN0aW9uIGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImlzLWp1c3RpZnktY29udGVudC1jZW50ZXIgaXMtZmxleCI+CiAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICBzaXplPSI1cmVtIgogICAgICAgICAgICBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMXJlbTsiCiAgICAgICAgICAgIC5zdmc9JHtrby5pbmNsdWRlcyh0aGlzLnN0YXRlKT9LZTp4b30KICAgICAgICAgICAgYXJpYS1sYWJlbD0iUmVwbGF5V2ViLnBhZ2UgTG9nbyIKICAgICAgICAgICAgcm9sZT0iaW1nIgogICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZW1iZWQ/IiI6UWAgPGRpdiBjbGFzcz0ibGV2ZWwiPgogICAgICAgICAgICAgIDxwIGNsYXNzPSJsZXZlbC1pdGVtIj5Mb2FkaW5nJm5ic3A7PGI+JHt0aGlzLnNvdXJjZVVybH08L2I+Li4uPC9wPgogICAgICAgICAgICA8L2Rpdj5gfQogICAgICAgIDxkaXYgY2xhc3M9ImxldmVsIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxldmVsLWl0ZW0gaGFzLXRleHQtY2VudGVyZWQiPgogICAgICAgICAgICAke3RoaXMucmVuZGVyQ29udGVudCgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIGB9cmVuZGVyQ29udGVudCgpe3N3aXRjaCh0aGlzLnN0YXRlKXtjYXNlImdvb2dsZWRyaXZlIjpyZXR1cm4gUWA8d3ItZ2RyaXZlCiAgICAgICAgICAuc291cmNlVXJsPSR7dGhpcy5zb3VyY2VVcmx9CiAgICAgICAgICBAbG9hZC1yZWFkeT0ke3RoaXMub25Mb2FkUmVhZHl9CiAgICAgICAgPjwvd3ItZ2RyaXZlPmA7Y2FzZSJzdGFydGVkIjpyZXR1cm4gUWAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZGl2Ij4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U2l6ZT90aGlzLnJlbmRlclByb2dyZXNzQmFyKCk6WH0KICAgICAgICAgICR7dGhpcy5lbWJlZD8iIjpRYCA8YnV0dG9uIEBjbGljaz0iJHt0aGlzLm9uQ2FuY2VsfSIgY2xhc3M9ImJ1dHRvbiBpcy1kYW5nZXIiPgogICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgPC9idXR0b24+YH0KICAgICAgICA8L2Rpdj5gO2Nhc2UiZXJyb3JlZCI6cmV0dXJuIFFgIDxkaXYgY2xhc3M9Imhhcy10ZXh0LWxlZnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3IgaGFzLXRleHQtZGFuZ2VyIj4ke3RoaXMuZXJyb3J9PC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAke3RoaXMuZXJyb3JBbGxvd1JldHJ5P1FgIDxhCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJidXR0b24gaXMtd2FybmluZyIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PndpbmRvdy5wYXJlbnQubG9jYXRpb24ucmVsb2FkKCl9CiAgICAgICAgICAgICAgICAgID5UcnkgQWdhaW48L2EKICAgICAgICAgICAgICAgID5gOiIifQogICAgICAgICAgICAke3RoaXMuZW1iZWQ/UWBgOlFgIDxhIGhyZWY9Ii8iIGNsYXNzPSJidXR0b24gaXMtd2FybmluZyI+QmFjazwvYT5gfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+YDtjYXNlInBlcm1pc3Npb25fbmVlZGVkIjpyZXR1cm4gUWAgPGRpdiBjbGFzcz0iaGFzLXRleHQtbGVmdCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSIiPgogICAgICAgICAgICBQZXJtaXNzaW9uIGlzIG5lZWRlZCB0byByZWxvYWQgdGhlIGFyY2hpdmUgZmlsZS4gKENsaWNrCiAgICAgICAgICAgIDxpPkNhbmNlbDwvaT4gdG8gY2FuY2VsIGxvYWRpbmcgdGhpcyBhcmNoaXZlLikKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9IiR7dGhpcy5vbkFza1Blcm1pc3Npb259IiBjbGFzcz0iYnV0dG9uIGlzLXByaW1hcnkiPgogICAgICAgICAgICBTaG93IFBlcm1pc3Npb24KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9ImJ1dHRvbiBpcy1kYW5nZXIiPkNhbmNlbDwvYT4KICAgICAgICA8L2Rpdj5gO2RlZmF1bHQ6cmV0dXJuIFFgYH19cmVuZGVyUHJvZ3Jlc3NCYXIoKXtjb25zdCBlPXRoaXMuY3VycmVudFNpemUmJnRoaXMudG90YWxTaXplP01hdGgubWF4KHRoaXMucGVyY2VudCx0aGlzLmN1cnJlbnRTaXplL3RoaXMudG90YWxTaXplKjEwMCk6dGhpcy5wZXJjZW50LHQ9ZT9NYXRoLm1heChlLDEpOnZvaWQgMDtyZXR1cm4gUWAKICAgICAgPHByb2dyZXNzCiAgICAgICAgaWQ9InByb2dyZXNzIgogICAgICAgIGNsYXNzPSJwcm9ncmVzcyBpcy1wcmltYXJ5IGlzLWxhcmdlIgogICAgICAgIHZhbHVlPSR7JGUodCl9CiAgICAgICAgbWF4PSIxMDAiCiAgICAgID48L3Byb2dyZXNzPgogICAgICAke3Q/UWAKICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJwcm9ncmVzcy1sYWJlbCIgZm9yPSJwcm9ncmVzcyIKICAgICAgICAgICAgICA+JHt0fSU8L2xhYmVsCiAgICAgICAgICAgID4KICAgICAgICAgIGA6WH0KICAgICAgJHt0aGlzLmN1cnJlbnRTaXplJiZ0aGlzLnRvdGFsU2l6ZT9RYCA8ZGl2IGNsYXNzPSJsb2FkZWQtcHJvZyI+CiAgICAgICAgICAgIExvYWRlZAogICAgICAgICAgICA8Yj4ke0V0KCkodGhpcy5jdXJyZW50U2l6ZSl9PC9iPgogICAgICAgICAgICBvZgoKICAgICAgICAgICAgPGI+JHtFdCgpKHRoaXMudG90YWxTaXplKX08L2I+CgogICAgICAgICAgICAke3RoaXMuZXh0cmFNc2cmJlFgIDxwIGNsYXNzPSJleHRyYS1tc2ciPigke3RoaXMuZXh0cmFNc2d9KTwvcD4gYH0KICAgICAgICAgIDwvZGl2PmA6UWBgfQogICAgYH1vbkFza1Blcm1pc3Npb24oKXt2YXIgZTtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpeyJncmFudGVkIj09PSh5aWVsZCBudWxsPT09KGU9dGhpcy5maWxlSGFuZGxlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5yZXF1ZXN0UGVybWlzc2lvbih7bW9kZToicmVhZCJ9KSkmJnRoaXMuZG9Mb2FkKCl9KSl9fXQoW3llKHt0eXBlOlN0cmluZ30pXSxTby5wcm90b3R5cGUsInNvdXJjZVVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3R9KV0sU28ucHJvdG90eXBlLCJsb2FkSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sU28ucHJvdG90eXBlLCJzdGF0ZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sU28ucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sU28ucHJvdG90eXBlLCJwZXJjZW50Iix2b2lkIDApLHQoW3llKHt0eXBlOk51bWJlcn0pXSxTby5wcm90b3R5cGUsImN1cnJlbnRTaXplIix2b2lkIDApLHQoW3llKHt0eXBlOk51bWJlcn0pXSxTby5wcm90b3R5cGUsInRvdGFsU2l6ZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sU28ucHJvdG90eXBlLCJlcnJvciIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sU28ucHJvdG90eXBlLCJ0b3RhbCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sU28ucHJvdG90eXBlLCJzdGF0dXMiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFNvLnByb3RvdHlwZSwiY29sbCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sU28ucHJvdG90eXBlLCJlbWJlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFNvLnByb3RvdHlwZSwidHJ5RmlsZUhhbmRsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFNvLnByb3RvdHlwZSwiZXJyb3JBbGxvd1JldHJ5Iix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxTby5wcm90b3R5cGUsImV4dHJhTXNnIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxTby5wcm90b3R5cGUsInN3TmFtZSIsdm9pZCAwKSxjdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLWxvYWRlciIsU28pO3ZhciAkbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU2Myksem89X193ZWJwYWNrX3JlcXVpcmVfXy5uKCRvKSxfbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDExMik7Y2xhc3MgQ28gZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5maWx0ZXJlZFBhZ2VzPVtdLHRoaXMuc29ydGVkUGFnZXM9W10sdGhpcy5xdWVyeT0iIix0aGlzLmZsZXg9bnVsbCx0aGlzLnRleHRQYWdlcz1udWxsLHRoaXMubmV3UXVlcnk9bnVsbCx0aGlzLmxvYWRpbmc9ITEsdGhpcy51cGRhdGluZ1NlYXJjaD0hMSx0aGlzLnNob3dBbGxQYWdlcz0hMSx0aGlzLmhhc0V4dHJhUGFnZXM9ITEsdGhpcy5jdXJyTGlzdD0wLHRoaXMuYWN0aXZlPSExLHRoaXMuZWRpdGFibGU9ITEsdGhpcy5jaGFuZ2VOZWVkZWQ9ITEsdGhpcy5zZWxlY3RlZFBhZ2VzPW5ldyBTZXQsdGhpcy5tZW51QWN0aXZlPSExLHRoaXMuc29ydEtleT0iZGF0ZSIsdGhpcy5zb3J0RGVzYz0hMCx0aGlzLmlzU2lkZWJhcj0hMSx0aGlzLnVybD0iIix0aGlzLnRzPSIiLHRoaXMuZWRpdGluZz0hMSx0aGlzLnRvRGVsZXRlUGFnZXM9bnVsbCx0aGlzLnRvRGVsZXRlUGFnZT1udWxsLHRoaXMuY29sbEluZm89bnVsbCx0aGlzLmFsbFNlbGVjdGVkPSExLHRoaXMuZGVmYXVsdEtleT0iIix0aGlzLmR5bmFtaWNQYWdlc1F1ZXJ5PSExLHRoaXMudG90YWxQYWdlcz0wLHRoaXMuZHluYW1pY1BhZ2VDb3VudD0xLHRoaXMuc2tpcFNjcm9sbE1vcmU9ITF9c3RhdGljIGdldCBzb3J0S2V5cygpe3JldHVyblt7a2V5OiIiLG5hbWU6IkJlc3QgTWF0Y2gifSx7a2V5OiJ0aXRsZSIsbmFtZToiVGl0bGUifSx7a2V5OiJkYXRlIixuYW1lOiJEYXRlIn1dfV90aW1lZFVwZGF0ZSgpe251bGwhPT10aGlzLm5ld1F1ZXJ5JiYodGhpcy5xdWVyeT10aGlzLm5ld1F1ZXJ5LHRoaXMubmV3UXVlcnk9bnVsbCx0aGlzLmZpbHRlcigpKX11cGRhdGVkKGUpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoZS5oYXMoImNvbGxJbmZvIik/dGhpcy51cGRhdGVUZXh0U2VhcmNoKCk6KGUuaGFzKCJxdWVyeSIpfHxlLmhhcygiY3Vyckxpc3QiKXx8ZS5oYXMoInNob3dBbGxQYWdlcyIpKSYmdGhpcy5maWx0ZXIoKSxlLmhhcygiYWN0aXZlIikmJnRoaXMuYWN0aXZlJiZ0aGlzLmNoYW5nZU5lZWRlZCYmdGhpcy5maWx0ZXIoKSxlLmhhcygicXVlcnkiKSl7dGhpcy5xdWVyeT8odGhpcy5zb3J0S2V5PSIiLHRoaXMuc29ydERlc2M9ITEpOih0aGlzLnNvcnRLZXk9ImRhdGUiLHRoaXMuc29ydERlc2M9ITApO2NvbnN0IGU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIndyLXNvcnRlciIpO2UmJihlLnNvcnRLZXk9dGhpcy5zb3J0S2V5LGUuc29ydERlc2M9dGhpcy5zb3J0RGVzYyl9aWYoZS5oYXMoInNvcnRlZFBhZ2VzIikmJnRoaXMuaXNTaWRlYmFyKXtjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCIuY3VycmVudCIpO2lmKGUpe2NvbnN0IHQ9e2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifTtzZXRUaW1lb3V0KCgoKT0+ZS5zY3JvbGxJbnRvVmlldyh0KSksMTAwKX19fSkpfW9uQ2hhbmdlUXVlcnkoZSl7dGhpcy5uZXdRdWVyeT1lLmN1cnJlbnRUYXJnZXQudmFsdWUsdGhpcy5faXZhbCYmd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9pdmFsKSx0aGlzLl9pdmFsPXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5fdGltZWRVcGRhdGUoKSksMjUwKX1maWx0ZXIoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKHRoaXMubG9hZGluZylyZXR1cm47aWYodGhpcy5hY3RpdmV8fCh0aGlzLmNoYW5nZU5lZWRlZD0hMCksdGhpcy5sb2FkaW5nPSEwLHRoaXMuZmxleCYmdGhpcy5xdWVyeSYmdGhpcy50ZXh0UGFnZXMpe2NvbnN0IGU9eWllbGQgdGhpcy5mbGV4LnNlYXJjaEFzeW5jKHRoaXMucXVlcnksMjUpO3RoaXMuZmlsdGVyZWRQYWdlcz1lLm1hcCgoZT0+dGhpcy50ZXh0UGFnZXNbZV0pKX1lbHNlIHRoaXMuc2hvd0FsbFBhZ2VzJiZ0aGlzLmhhc0V4dHJhUGFnZXM/dGhpcy5maWx0ZXJlZFBhZ2VzPVsuLi50aGlzLnRleHRQYWdlc106dGhpcy5keW5hbWljUGFnZXNRdWVyeXx8KHRoaXMuZmlsdGVyZWRQYWdlcz1bLi4udGhpcy5jb2xsSW5mby5wYWdlc10pO2lmKHRoaXMudG90YWxQYWdlcz10aGlzLmZpbHRlcmVkUGFnZXMubGVuZ3RoLHRoaXMuZHluYW1pY1BhZ2VzUXVlcnkpe2lmKHRoaXMucXVlcnkpdGhpcy5oYXNFeHRyYVBhZ2VzPSExO2Vsc2V7Y29uc3QgZT10aGlzLmNvbGxJbmZvLnBhZ2VzLmZpbHRlcigoZT0+ZS5pc1NlZWQpKTt0aGlzLmZpbHRlcmVkUGFnZXM9dGhpcy5zaG93QWxsUGFnZXN8fCFlLmxlbmd0aD9bLi4udGhpcy5jb2xsSW5mby5wYWdlc106ZSx0aGlzLmhhc0V4dHJhUGFnZXM9ZS5sZW5ndGg8dGhpcy5jb2xsSW5mby5wYWdlcy5sZW5ndGh9dGhpcy5keW5hbWljUGFnZUNvdW50PTEseWllbGQgdGhpcy5hZGREeW5hbWljUGFnZXMoKX0wIT09dGhpcy5jdXJyTGlzdCYmKHlpZWxkIHRoaXMuZmlsdGVyQ3VyYXRlZCgpKTtmb3IoY29uc3QgZSBvZiB0aGlzLmZpbHRlcmVkUGFnZXMpe2NvbnN0e3RpbWVzdGFtcDp0LGRhdGU6aX09eXQoZSk7aWYobnVsbD09aSl0aHJvdyBuZXcgRXJyb3IoIlBhZ2UgZGF0ZSBpcyBudWxsIik7ZS50aW1lc3RhbXA9dCxlLmRhdGU9aX10aGlzLmxvYWRpbmc9ITEsdGhpcy5jaGFuZ2VOZWVkZWQ9ITE7Y29uc3QgZT17cXVlcnk6dGhpcy5xdWVyeSxjdXJyTGlzdDp0aGlzLmN1cnJMaXN0fTt0aGlzLnNlbmRDaGFuZ2VFdmVudChlKX0pKX1hZGREeW5hbWljUGFnZXMoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtczt0aGlzLnF1ZXJ5JiZlLnNldCgic2VhcmNoIix0aGlzLnF1ZXJ5KSxlLnNldCgicGFnZSIsdGhpcy5keW5hbWljUGFnZUNvdW50KyIiKSxlLnNldCgicGFnZVNpemUiLCIyNSIpO2NvbnN0IHQ9eWllbGQgZmV0Y2goYCR7dGhpcy5jb2xsSW5mby5hcGlQcmVmaXh9L3BhZ2VzPyR7ZS50b1N0cmluZygpfWApLGk9eWllbGQgdC5qc29uKCk7aWYoIWkucGFnZXMpcmV0dXJuO2kucGFnZXMubGVuZ3RofHwodGhpcy5za2lwU2Nyb2xsTW9yZT0hMCk7Y29uc3Qgbz1uZXcgU2V0O3RoaXMuZmlsdGVyZWRQYWdlcy5mb3JFYWNoKChlPT5vLmFkZChlLmlkKSkpO2NvbnN0IG49W107Zm9yKGNvbnN0e2lkOmUsdXJsOnQsdGl0bGU6cixtaW1lOnMsc3RhdHVzOmEsdHM6bCxmYXZJY29uVXJsOmMsd2Fjemhhc2g6ZCxpc1NlZWQ6aH1vZiBpLnBhZ2VzKXtpZihvLmhhcyhlKSljb250aW51ZTtpZighdGhpcy5zaG93QWxsUGFnZXMmJnRoaXMuaGFzRXh0cmFQYWdlcyYmIXRoaXMucXVlcnkmJiFoKWNvbnRpbnVlO2xldCBpO2k9InN0cmluZyI9PXR5cGVvZiBsP25ldyBEYXRlKGwpLmdldFRpbWUoKTpsO2NvbnN0IHU9e2lkOmUsdXJsOnQsdGl0bGU6cixtaW1lOnMsc3RhdHVzOmEsdHM6aSxmYXZJY29uVXJsOmMsd2Fjemhhc2g6ZH07bi5wdXNoKHUpfW4ubGVuZ3RoJiYodGhpcy5maWx0ZXJlZFBhZ2VzPVsuLi50aGlzLmZpbHRlcmVkUGFnZXMsLi4ubl0pLHRoaXMudG90YWxQYWdlcz10aGlzLmZpbHRlcmVkUGFnZXMubGVuZ3RofSkpfWZpbHRlckN1cmF0ZWQoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9eWllbGQgZmV0Y2goYCR7dGhpcy5jb2xsSW5mby5hcGlQcmVmaXh9L2N1cmF0ZWQvJHt0aGlzLmN1cnJMaXN0fWApLHQ9KHlpZWxkIGUuanNvbigpKS5jdXJhdGVkO3RoaXMuZmlsdGVyZWRQYWdlcz10fSkpfXNlbmRDaGFuZ2VFdmVudChlKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsLXRhYi1uYXYiLHtkZXRhaWw6e2RhdGE6ZX19KSl9YWRkUGFnZXMoZSl7dmFyIHQ7Y29uc3QgaT1uZXcgX28uSW5kZXg7cmV0dXJuIHRoaXMuZmxleD1pLHRoaXMudGV4dFBhZ2VzPWUsdGhpcy5keW5hbWljUGFnZXNRdWVyeXx8KHRoaXMuaGFzRXh0cmFQYWdlcz1Cb29sZWFuKHRoaXMudGV4dFBhZ2VzJiYobnVsbD09PSh0PXRoaXMuY29sbEluZm8pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnBhZ2VzKSYmdGhpcy50ZXh0UGFnZXMubGVuZ3RoPnRoaXMuY29sbEluZm8ucGFnZXMubGVuZ3RoKSksdGhpcy5jb2xsSW5mbyYmKHRoaXMuZHluYW1pY1BhZ2VzUXVlcnk9dGhpcy5jb2xsSW5mby5jYW5RdWVyeVBhZ2VzfHwhMSksUHJvbWlzZS5hbGwoZS5tYXAoKChlLHQpPT57bGV0IG89ZS51cmw7cmV0dXJuIGUudGl0bGUmJihvKz0iICIrZS50aXRsZSksZS50ZXh0JiYobys9IiAiK2UudGV4dCksaS5hZGRBc3luYyh0LG8pfSkpKX11cGRhdGVUZXh0U2VhcmNoKCl7dmFyIGUsdCxvLHI7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZih0aGlzLnVwZGF0aW5nU2VhcmNoKXJldHVybjt0aGlzLnVwZGF0aW5nU2VhcmNoPSEwO2xldCBpPTA7dHJ5e2NvbnN0IGM9eWllbGQgY2FjaGVzLm9wZW4oImNhY2hlOiIrdGhpcy5jb2xsSW5mby5jb2xsKSxkPWAke3RoaXMuY29sbEluZm8uYXBpUHJlZml4fS90ZXh0SW5kZXhgO2xldCBoPXlpZWxkIGMubWF0Y2goZCk7aCYmTnVtYmVyKGguaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikpfHwoaD15aWVsZCBmZXRjaChkKSwyMDA9PT1oLnN0YXR1cyYmTnVtYmVyKGguaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikpJiZjLnB1dChkLGguY2xvbmUoKSkpO2NvbnN0IHU9W107dHJ5e2Zvcih2YXIgcyxhPSEwLGw9bih6bygpKGguYm9keS5nZXRSZWFkZXIoKSkpO3M9eWllbGQgbC5uZXh0KCksIShlPXMuZG9uZSk7YT0hMCl7cj1zLnZhbHVlLGE9ITE7Y29uc3QgZT1yO2UudXJsJiYoZS5pZD0rK2ksdS5wdXNoKGUpKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7YXx8ZXx8IShvPWwucmV0dXJuKXx8KHlpZWxkIG8uY2FsbChsKSl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fXlpZWxkIHRoaXMuYWRkUGFnZXModSl9Y2F0Y2goZSl7Y29uc29sZS53YXJuKGUpfWZpbmFsbHl7MD09PWkmJih5aWVsZCB0aGlzLmFkZFBhZ2VzKHRoaXMuY29sbEluZm8ucGFnZXMpKSx0aGlzLnVwZGF0aW5nU2VhcmNoPSExfXlpZWxkIHRoaXMuZmlsdGVyKCl9KSl9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgOmhvc3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGZsZXg6IDEgMSBhdXRvOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBtaW4td2lkdGg6IDBweDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgZGl2W3JvbGU9Im1haW4iXSwKICAgICAgI2NvbnRlbnRzIGRpdltyb2xlPSJjb21wbGVtZW50YXJ5Il0gewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1haW4uY29sdW1ucyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAganVzdGlmeS1zZWxmOiBzdHJldGNoOwogICAgICAgIG1pbi1oZWlnaHQ6IDBweDsKICAgICAgICBtYXJnaW46IDBweDsKICAgICAgfQoKICAgICAgLmhlYWRlci5jb2x1bW5zIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICAgIH0KICAgICAgLmhlYWRlciBhIHsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgLmNvbHVtbi5wYWdldGl0bGUgewogICAgICAgIHBhZGRpbmctbGVmdDogMC4yNWVtOwogICAgICB9CgogICAgICAuY29sdW1uLm1haW4tY29udGVudCB7CiAgICAgICAgbWluLWhlaWdodDogMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogMC41ZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTsKICAgICAgfQoKICAgICAgLnRodW1ibmFpbCB7CiAgICAgICAgd2lkdGg6IDZyZW07CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7CiAgICAgIH0KCiAgICAgIC5pbmRleC1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCByZ2IoMjM3LCAyMzcsIDIzNyk7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5kZXgtYmFyLWxhYmVsIHsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtZm9udC1zaXplLXgtc21hbGwpOwogICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1zZW1pYm9sZCk7CiAgICAgICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNTAwKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zbC1zcGFjaW5nLTJ4LXNtYWxsKTsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmluZGV4LWJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbGFyZ2UpOwogICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1zZW1pYm9sZCk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2wtc3BhY2luZy1sYXJnZSk7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLmluZGV4LWJhci10aXRsZTpob3ZlciArIC5lZGl0SWNvbiB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5lZGl0SWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICB0b3A6IDhweDsKICAgICAgfQoKICAgICAgLmluZGV4LWJhci1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICAgICAgcGFkZGluZy1yaWdodDogMC43NWVtOwogICAgICB9CgogICAgICAuaW5kZXgtYmFyLW1lbnUgewogICAgICAgIG1hcmdpbi10b3A6IDFyZW07CiAgICAgIH0KCiAgICAgICNmaWx0ZXItbGFiZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgICAgfQoKICAgICAgLm51bS1yZXN1bHRzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICBsaW5lLWhlaWdodDogMi41OwogICAgICB9CgogICAgICAuYXNjOmFmdGVyIHsKICAgICAgICBjb250ZW50OiAi4pa8IjsKICAgICAgICBmb250LXNpemU6IDAuNzVlbTsKICAgICAgfQogICAgICAuZGVzYzphZnRlciB7CiAgICAgICAgY29udGVudDogIuKWsiI7CiAgICAgICAgZm9udC1zaXplOiAwLjc1ZW07CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7CiAgICAgICAgLm1haW4uY29sdW1ucyB7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KICAgICAgICAuaW5kZXgtYmFyLW1lbnUgewogICAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICR7Q28uc2lkZWJhclN0eWxlcygpfQogICAgICB9CgogICAgICAke0NvLnNpZGViYXJTdHlsZXMoZGA6aG9zdCguc2lkZWJhcilgKX0KCiAgICAgIC5tb2JpbGUtbGlzdHMgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuY29sdW1ucy5pcy1oaWRkZW4tbW9iaWxlLAogICAgICA6aG9zdCguc2lkZWJhcikgLmlzLWhpZGRlbi1tb2JpbGUgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgOmhvc3QoLnNpZGViYXIpIC5tb2JpbGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuY29sdW1ucyB7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuc2Nyb2xsZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiBhdXRvOwoKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtOwogICAgICAgIG1pbi1oZWlnaHQ6IDBweDsKICAgICAgfQoKICAgICAgLnBhZ2UtZW50cnkgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNywgMjQzLCAyNTUpOwogICAgICB9CgogICAgICAuaXMtZGlzYWJsZWQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuNjU7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiBmaXQtY29udGVudDsKCiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtOwogICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCByZ2IoMjM3LCAyMzcsIDIzNyk7CiAgICAgIH0KCiAgICAgIC5jaGVjay1zZWxlY3QgewogICAgICAgIHBhZGRpbmc6IDAgMWVtIDAgMC41ZW07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYmFyIHsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5mbGV4LWF1dG8gewogICAgICAgIGZsZXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5pbmRleC1iYXItZGVzY3JpcHRpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXNsLWxpbmUtaGVpZ2h0LW5vcm1hbCk7CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXNsLXBhbmVsLWJvcmRlci1jb2xvcik7CiAgICAgIH0KICAgIGApfXN0YXRpYyBzaWRlYmFyU3R5bGVzKGU9aGBgKXtyZXR1cm4gaGAKICAgICAgJHtlfSAubWFpbi5jb2x1bW5zIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgICR7ZX0gLmluZGV4LWJhci1tZW51IHsKICAgICAgICBtYXgtaGVpZ2h0OiA3NXB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWFyZ2luLXRvcDogMC43NWVtOwogICAgICB9CgogICAgICAke2V9IC5jb2x1bW4ubWFpbi1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKCiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgIH0KCiAgICAgICR7ZX0gLm1vYmlsZS1oZWFkZXIgewogICAgICAgIG1hcmdpbjogMC41cmVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDsKICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAke2V9IC5tZW51IHsKICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgfQogICAgYH1vblNlbGVjdExpc3QoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY3Vyckxpc3Q9TnVtYmVyKGUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtbGlzdCIpKX1vblNlbGVjdExpc3REcm9wKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmN1cnJMaXN0PU51bWJlcihlLmN1cnJlbnRUYXJnZXQudmFsdWUpfXJlbmRlcigpe2NvbnN0IGU9dGhpcy5jdXJyTGlzdDtyZXR1cm4gUWAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJpcy1zci1vbmx5IgogICAgICAgIHJvbGU9ImhlYWRpbmciCiAgICAgICAgYXJpYS1sZXZlbD0iJHt0aGlzLmlzU2lkZWJhcj8iMiI6IjEifSIKICAgICAgPgogICAgICAgIFBhZ2VzIGluICR7dGhpcy5jb2xsSW5mby50aXRsZX0KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1iYXIgbm90aWZpY2F0aW9uIGlzLW1hcmdpbmxlc3MiPgogICAgICAgICR7dGhpcy5pc1NpZGViYXI/UWA8aDMgY2xhc3M9ImlzLXNyLW9ubHkiPlNlYXJjaCBhbmQgRmlsdGVyIFBhZ2VzPC9oMz5gOiIifQogICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIGZsZXgtYXV0byI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJjb250cm9sIGhhcy1pY29ucy1sZWZ0ICR7dGhpcy5sb2FkaW5nPyJpcy1sb2FkaW5nIjoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIGNsYXNzPSJpbnB1dCIKICAgICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy5vbkNoYW5nZVF1ZXJ5fSIKICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5xdWVyeX0iCiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGJ5IFBhZ2UgVVJMLCBUaXRsZSwgb3IgVGV4dCIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtbGVmdCIKICAgICAgICAgICAgICA+PGZhLWljb24gLnN2Zz0iJHtJaX0iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2ZhLWljb24KICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbiBjb2x1bW5zIj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iY29sdW1uIGluZGV4LWJhciBpcy1vbmUtZmlmdGggJHt0aGlzLmlzU2lkZWJhcj8iaXMtaGlkZGVuLW1vYmlsZSI6IiJ9IgogICAgICAgID4KICAgICAgICAgICR7dGhpcy5lZGl0YWJsZSYmdGhpcy5lZGl0aW5nP1FgCiAgICAgICAgICAgICAgICA8Zm9ybSBAc3VibWl0PSIke3RoaXMub25VcGRhdGVUaXRsZX0iPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICBpZD0idGl0bGVFZGl0IgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpbnB1dCIKICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iJHskZSh0aGlzLmNvbGxJbmZvLnRpdGxlKX0iCiAgICAgICAgICAgICAgICAgICAgQGJsdXI9IiR7dGhpcy5vblVwZGF0ZVRpdGxlfSIKICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICBgOlFgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9ImluZGV4LWJhci1sYWJlbCAke3RoaXMuY29sbEluZm8uZGVzY3JpcHRpb24/ImlzLWhpZGRlbi1tb2JpbGUiOiJpcy1zci1vbmx5In0iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIENvbGxlY3Rpb24gTmFtZQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJpbmRleC1iYXItdGl0bGUiCiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0iJHsoKT0+dGhpcy5lZGl0aW5nPSEwfSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmNvbGxJbmZvLm5hbWV8fHRoaXMuY29sbEluZm8udGl0bGV9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy5jb2xsSW5mby5kZXNjcmlwdGlvbj9RYCA8ZGl2IGNsYXNzPSJpbmRleC1iYXItbGFiZWwgIGlzLWhpZGRlbi1tb2JpbGUiPgogICAgICAgICAgICAgICAgICAgICAgICBBYm91dCBUaGlzIENvbGxlY3Rpb24KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaW5kZXgtYmFyLWRlc2NyaXB0aW9uICBpcy1oaWRkZW4tbW9iaWxlIgogICAgICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9IiR7KCk9PnRoaXMuZWRpdGluZz0hMH0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ci1jb2xsLWRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9JHt0aGlzLmNvbGxJbmZvLmRlc2NyaXB0aW9ufQogICAgICAgICAgICAgICAgICAgICAgICA+PC93ci1jb2xsLWRlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDpRYGB9YH0KICAgICAgICAgICR7dGhpcy5lZGl0YWJsZT9RYDxmYS1pY29uIGNsYXNzPSJlZGl0SWNvbiIgLnN2Zz0iJHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzYgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNNDAyLjYgODMuMmw5MC4yIDkwLjJjMy44IDMuOCAzLjggMTAgMCAxMy44TDI3NC40IDQwNS42bC05Mi44IDEwLjNjLTEyLjQgMS40LTIyLjktOS4xLTIxLjUtMjEuNWwxMC4zLTkyLjhMMzg4LjggODMuMmMzLjgtMy44IDEwLTMuOCAxMy44IDB6bTE2Mi0yMi45bC00OC44LTQ4LjhjLTE1LjItMTUuMi0zOS45LTE1LjItNTUuMiAwbC0zNS40IDM1LjRjLTMuOCAzLjgtMy44IDEwIDAgMTMuOGw5MC4yIDkwLjJjMy44IDMuOCAxMCAzLjggMTMuOCAwbDM1LjQtMzUuNGMxNS4yLTE1LjMgMTUuMi00MCAwLTU1LjJ6TTM4NCAzNDYuMlY0NDhINjRWMTI4aDIyOS44YzMuMiAwIDYuMi0xLjMgOC41LTMuNWw0MC00MGM3LjYtNy42IDIuMi0yMC41LTguNS0yMC41SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA2LjJjMC0xMC43LTEyLjktMTYtMjAuNS04LjVsLTQwIDQwYy0yLjIgMi4zLTMuNSA1LjMtMy41IDguNXoiLz48L3N2Zz4nfSI+PC9mYS1pY29uPmA6UWBgfQogICAgICAgICAgJHt0aGlzLmhhc0V4dHJhUGFnZXM/UWAgPHNwYW4gY2xhc3M9ImNoZWNrLXNlbGVjdCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNoZWNrYm94Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke2U9PnRoaXMuc2hvd0FsbFBhZ2VzPWUuY3VycmVudFRhcmdldC5jaGVja2VkfQogICAgICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgICAgIC5jaGVja2VkPSIke3RoaXMuc2hvd0FsbFBhZ2VzfSIKICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgU2hvdyBOb24tU2VlZCBQYWdlcwogICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICA8L3NwYW4+YDoiIn0KCiAgICAgICAgICA8c3BhbgogICAgICAgICAgICBjbGFzcz0ibnVtLXJlc3VsdHMgaXMtaGlkZGVuLW1vYmlsZSIKICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgIGFyaWEtYXRvbWljPSJ0cnVlIgogICAgICAgICAgICA+JHt0aGlzLmZvcm1hdFJlc3VsdHMoKX08L3NwYW4KICAgICAgICAgID4KICAgICAgICAgICR7dGhpcy5lZGl0YWJsZT9RYCA8ZGl2IGNsYXNzPSJpbmRleC1iYXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyRG93bmxvYWRNZW51KCl9CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5jb2xsSW5mby5saXN0cy5sZW5ndGg/UWAKICAgICAgICAgICAgICAgIDxwIGlkPSJmaWx0ZXItbGFiZWwiIGNsYXNzPSJtZW51LWxhYmVsIj5GaWx0ZXIgQnkgTGlzdDo8L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmRleC1iYXItbWVudSBtZW51Ij4KICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9IiNsaXN0LTAiCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbGlzdD0iMCIKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7MD09PWU/ImlzLWFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9uU2VsZWN0TGlzdH0KICAgICAgICAgICAgICAgICAgICAgICAgPjxpPkFsbCBQYWdlczwvaT48L2EKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5jb2xsSW5mby5saXN0cy5tYXAoKHQ9PlFgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5vblNlbGVjdExpc3R9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIjbGlzdC0ke3QuaWR9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1saXN0PSIke3QuaWR9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7ZT09PXQuaWQ/ImlzLWFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPiR7dC50aXRsZX08L2EKICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+YCkpfQogICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4gbWFpbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImlzLXNyLW9ubHkiCiAgICAgICAgICAgIHJvbGU9ImhlYWRpbmciCiAgICAgICAgICAgIGFyaWEtbGV2ZWw9IiR7dGhpcy5pc1NpZGViYXI/IjMiOiIyIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIFBhZ2UgTGlzdAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuZGVyUGFnZXMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5yZW5kZXJEZWxldGVNb2RhbCgpfQogICAgYH1yZW5kZXJEb3dubG9hZE1lbnUoKXtyZXR1cm4gUWAgPGRpdiBjbGFzcz0iZHJvcGRvd24gJHt0aGlzLm1lbnVBY3RpdmU/ImlzLWFjdGl2ZSI6IiJ9Ij4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24tdHJpZ2dlciI+CiAgICAgICAgPGJ1dHRvbgogICAgICAgICAgQGNsaWNrPSIke3RoaXMub25NZW51fSIKICAgICAgICAgIGNsYXNzPSJidXR0b24gaXMtc21hbGwiCiAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJ0cnVlIgogICAgICAgICAgYXJpYS1leHBhbmRlZD0iJHt0aGlzLm1lbnVBY3RpdmV9IgogICAgICAgICAgYXJpYS1jb250cm9scz0iZHJvcGRvd24tbWVudSIKICAgICAgICA+CiAgICAgICAgICA8c3Bhbj5Eb3dubG9hZDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgICAgPGZhLWljb24gLnN2Zz0iJHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNMTQzIDM1Mi4zTDcgMjE2LjNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDIyLjYtMjIuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw5Ni40IDk2LjQgOTYuNC05Ni40YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjYgMjIuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTM2IDEzNmMtOS4yIDkuNC0yNC40IDkuNC0zMy44IDB6Ii8+PC9zdmc+J30iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2ZhLWljb24+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93bi1tZW51IiBpZD0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24tY29udGVudCI+CiAgICAgICAgICA8YQogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgIEBjbGljaz0iJHtlPT50aGlzLm9uRG93bmxvYWQoZSwid2FjeiIpfSIKICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iCiAgICAgICAgICA+CiAgICAgICAgICAgIERvd25sb2FkICR7MD09PXRoaXMuc2VsZWN0ZWRQYWdlcy5zaXplPyJBbGwiOiJTZWxlY3RlZCJ9IGFzCiAgICAgICAgICAgIFdBQ1ogKFdlYiBBcmNoaXZlIENvbGxlY3Rpb24gWmlwKQogICAgICAgICAgPC9hPgogICAgICAgICAgPGEKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBocmVmPSIjIgogICAgICAgICAgICBAY2xpY2s9IiR7ZT0+dGhpcy5vbkRvd25sb2FkKGUsIndhcmMiKX0iCiAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1pdGVtIgogICAgICAgICAgPgogICAgICAgICAgICBEb3dubG9hZCAkezA9PT10aGlzLnNlbGVjdGVkUGFnZXMuc2l6ZT8iQWxsIjoiU2VsZWN0ZWQifSBhcwogICAgICAgICAgICBXQVJDIDEuMSBPbmx5CiAgICAgICAgICA8L2E+CiAgICAgICAgICA8YQogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgIEBjbGljaz0iJHtlPT50aGlzLm9uRG93bmxvYWQoZSwid2FyYzEuMCIpfSIKICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iCiAgICAgICAgICA+CiAgICAgICAgICAgIERvd25sb2FkICR7MD09PXRoaXMuc2VsZWN0ZWRQYWdlcy5zaXplPyJBbGwiOiJTZWxlY3RlZCJ9IGFzCiAgICAgICAgICAgIFdBUkMgMS4wIE9ubHkKICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj5gfXJlbmRlclBhZ2VIZWFkZXIoKXtyZXR1cm4gUWAKICAgICAgJHshdGhpcy5pc1NpZGViYXImJnRoaXMuZWRpdGFibGUmJnRoaXMuZmlsdGVyZWRQYWdlcy5sZW5ndGg/UWAgPGRpdiBjbGFzcz0iY2hlY2stc2VsZWN0Ij4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjaGVja2JveCI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5vblNlbGVjdEFsbH0KICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgLmNoZWNrZWQ9IiR7dGhpcy5hbGxTZWxlY3RlZH0iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDwvZGl2PmA6UWBgfQoKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIGNvbHVtbnMgaXMtaGlkZGVuLW1vYmlsZSI+CiAgICAgICAgJHt0aGlzLnF1ZXJ5P1FgIDxhCiAgICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25Tb3J0fSIKICAgICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICAgIGRhdGEta2V5PSIiCiAgICAgICAgICAgICAgY2xhc3M9ImNvbHVtbiBpcy0xICR7IiI9PT10aGlzLnNvcnRLZXk/dGhpcy5zb3J0RGVzYz8iZGVzYyI6ImFzYyI6IiJ9IgogICAgICAgICAgICAgID5NYXRjaDwvYQogICAgICAgICAgICA+YDoiIn0KCiAgICAgICAgPGEKICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblNvcnR9IgogICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgIGRhdGEta2V5PSJkYXRlIgogICAgICAgICAgY2xhc3M9ImNvbHVtbiBpcy0yICR7ImRhdGUiPT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2M/ImRlc2MiOiJhc2MiOiIifSIKICAgICAgICAgID5EYXRlPC9hCiAgICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbiB0aHVtYm5haWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InNyLW9ubHkiPlBhZ2UgdGh1bWJuYWlsIG9yIGZhdmljb248L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGEKICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblNvcnR9IgogICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgIGRhdGEta2V5PSJ0aXRsZSIKICAgICAgICAgIGNsYXNzPSJjb2x1bW4gaXMtNiBwYWdldGl0bGUgJHt0aGlzLnF1ZXJ5PyJpcy01IjoiaXMtNiJ9ICR7InRpdGxlIj09PXRoaXMuc29ydEtleT90aGlzLnNvcnREZXNjPyJkZXNjIjoiYXNjIjoiIn0iCiAgICAgICAgICA+UGFnZSBUaXRsZTwvYQogICAgICAgID4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJpcy1oaWRkZW4tdGFibGV0IG1vYmlsZS1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im51bS1yZXN1bHRzIiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1hdG9taWM9InRydWUiPgogICAgICAgICAgJHt0aGlzLmZvcm1hdFJlc3VsdHMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8d3Itc29ydGVyCiAgICAgICAgICBpZD0icGFnZXMiCiAgICAgICAgICAuc29ydEtleT0iJHt0aGlzLnNvcnRLZXl9IgogICAgICAgICAgLnNvcnREZXNjPSIke3RoaXMuc29ydERlc2N9IgogICAgICAgICAgLnNvcnRLZXlzPSIke0NvLnNvcnRLZXlzfSIKICAgICAgICAgIC5kYXRhPSIke3RoaXMuZmlsdGVyZWRQYWdlc30iCiAgICAgICAgICAucGFnZVJlc3VsdHM9IiR7dGhpcy5keW5hbWljUGFnZXNRdWVyeT90aGlzLnRvdGFsUGFnZXM6MTAwfSIKICAgICAgICAgIEBzb3J0LWNoYW5nZWQ9IiR7dGhpcy5vblNvcnRDaGFuZ2VkfSIKICAgICAgICAgIGNsYXNzPSIke3RoaXMuZmlsdGVyZWRQYWdlcy5sZW5ndGg/IiI6ImlzLWhpZGRlbiJ9IgogICAgICAgID4KICAgICAgICA8L3dyLXNvcnRlcj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRlbGV0ZU1vZGFsKCl7cmV0dXJuIHRoaXMudG9EZWxldGVQYWdlcz9RYCA8d3ItbW9kYWwKICAgICAgYmdDbGFzcz0iaGFzLWJhY2tncm91bmQtZ3JleS1saWdodGVyIgogICAgICBAbW9kYWwtY2xvc2VkPSIkeygpPT50aGlzLnRvRGVsZXRlUGFnZXM9dGhpcy50b0RlbGV0ZVBhZ2U9bnVsbH0iCiAgICAgIHRpdGxlPSJDb25maXJtIERlbGV0ZSIKICAgID4KICAgICAgJHt0aGlzLnRvRGVsZXRlUGFnZT9RYCA8cD4KICAgICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgcGFnZQogICAgICAgICAgICA8Yj4ke3RoaXMudG9EZWxldGVQYWdlLnRpdGxlfTwvYj4/IChTaXplOgogICAgICAgICAgICA8Yj4ke0V0KCkodGhpcy50b0RlbGV0ZVBhZ2Uuc2l6ZSl9PC9iPikKICAgICAgICAgIDwvcD5gOlFgCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlCiAgICAgICAgICAgICAgPGIKICAgICAgICAgICAgICAgID4ke0FycmF5LmlzQXJyYXkodGhpcy50b0RlbGV0ZVBhZ2VzKT9uZXcgU2V0KHRoaXMudG9EZWxldGVQYWdlKS5zaXplOnRoaXMudG9EZWxldGVQYWdlcy5zaXplfTwvYgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBzZWxlY3RlZCBwYWdlcz8KICAgICAgICAgICAgPC9wPgogICAgICAgICAgYH0KICAgICAgPHA+VGhpcyBvcGVyYXRpb24gY2FuIG5vdCBiZSB1bmRvbmUuPC9wPgoKICAgICAgPGJ1dHRvbiBAY2xpY2s9IiR7dGhpcy5vbkRlbGV0ZVBhZ2VzfSIgY2xhc3M9ImJ1dHRvbiBpcy1kYW5nZXIiPgogICAgICAgIERlbGV0ZQogICAgICA8L2J1dHRvbj4KICAgICAgPGJ1dHRvbgogICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy50b0RlbGV0ZVBhZ2VzPXRoaXMudG9EZWxldGVQYWdlPW51bGx9IgogICAgICAgIGNsYXNzPSJidXR0b24iCiAgICAgID4KICAgICAgICBDYW5jZWwKICAgICAgPC9idXR0b24+CiAgICA8L3dyLW1vZGFsPmA6UWBgfWlzQ3VyclBhZ2UoZSl7aWYodGhpcy5pc1NpZGViYXImJmUudXJsPT09dGhpcy51cmwpe2xldCB0PWUudGltZXN0YW1wO3JldHVybiF0JiZlLmRhdGU/dD14dChlLmRhdGUpOiJzdHJpbmciPT10eXBlb2YgZS50cyYmKHQ9eHQoZS50cykpLHQ9PT10aGlzLnRzfXJldHVybiExfXJlbmRlclBhZ2VzKCl7cmV0dXJuIFFgCiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIGhhcy10ZXh0LXdlaWdodC1ib2xkIj4KICAgICAgICAke3RoaXMucmVuZGVyUGFnZUhlYWRlcigpfQogICAgICA8L2Rpdj4KICAgICAgPHVsIGNsYXNzPSJzY3JvbGxlciIgQHNjcm9sbD0iJHt0aGlzLm9uU2Nyb2xsfSI+CiAgICAgICAgJHt0aGlzLnNvcnRlZFBhZ2VzLmxlbmd0aD9RYCAke3RoaXMuc29ydGVkUGFnZXMubWFwKCgoZSx0KT0+e2NvbnN0IGk9dGhpcy5zZWxlY3RlZFBhZ2VzLmhhcyhlLmlkKTtyZXR1cm4gUWAgPGxpIGNsYXNzPSJwYWdlLWVudHJ5ICR7aT8ic2VsZWN0ZWQiOiIifSI+CiAgICAgICAgICAgICAgICA8d3ItcGFnZS1lbnRyeQogICAgICAgICAgICAgICAgICAuaW5kZXg9IiR7dGhpcy5xdWVyeXx8dGhpcy5pc1NpZGViYXI/dCsxOjB9IgogICAgICAgICAgICAgICAgICA/ZWRpdGFibGU9IiR7dGhpcy5lZGl0YWJsZX0iCiAgICAgICAgICAgICAgICAgID9zZWxlY3RlZD0iJHtpfSIKICAgICAgICAgICAgICAgICAgP2lzQ3VycmVudD0iJHt0aGlzLmlzQ3VyclBhZ2UoZSl9IgogICAgICAgICAgICAgICAgICA/aXNTaWRlYmFyPSIke3RoaXMuaXNTaWRlYmFyfSIKICAgICAgICAgICAgICAgICAgLnBhZ2U9IiR7ZX0iCiAgICAgICAgICAgICAgICAgIHBpZD0iJHtlLmlkfSIKICAgICAgICAgICAgICAgICAgQHNlbC1wYWdlPSIke3RoaXMub25TZWxlY3RUb2dnbGV9IgogICAgICAgICAgICAgICAgICBAZGVsZXRlLXBhZ2U9IiR7dGhpcy5vbkRlbGV0ZUNvbmZpcm19IgogICAgICAgICAgICAgICAgICByZXBsYXlQcmVmaXg9IiR7dGhpcy5jb2xsSW5mby5yZXBsYXlQcmVmaXh9IgogICAgICAgICAgICAgICAgICBxdWVyeT0iJHt0aGlzLnF1ZXJ5fSIKICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pc1NpZGViYXI/InNpZGViYXIiOiIifSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDwvd3ItcGFnZS1lbnRyeT4KICAgICAgICAgICAgICA8L2xpPmB9KSl9YDpRYDxwIGNsYXNzPSJtb2JpbGUtaGVhZGVyIj4ke3RoaXMuZ2V0Tm9SZXN1bHRzTWVzc2FnZSgpfTwvcD5gfQogICAgICA8L3VsPgogICAgYH1vblVwZGF0ZVRpdGxlKGUpe2lmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLmVkaXRpbmc9ITEsIXRoaXMuZWRpdGFibGUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIiN0aXRsZUVkaXQiKTtpZighKG51bGw9PXQ/dm9pZCAwOnQudmFsdWUudHJpbSgpKSlyZXR1cm47Y29uc3QgaT10LnZhbHVlLG89SlNPTi5zdHJpbmdpZnkoe3RpdGxlOml9KTtmZXRjaChgJHt0aGlzLmNvbGxJbmZvLmFwaVByZWZpeH0vbWV0YWRhdGFgLHttZXRob2Q6IlBPU1QiLGJvZHk6b30pLnRoZW4oKGU9PnsyMDA9PT1lLnN0YXR1cyYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC11cGRhdGUiLHtkZXRhaWw6e3RpdGxlOml9fSkpfSkpfW9uTWVudShlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubWVudUFjdGl2ZT0hdGhpcy5tZW51QWN0aXZlLHRoaXMubWVudUFjdGl2ZSYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgoKT0+e3RoaXMubWVudUFjdGl2ZT0hMX0pLHtvbmNlOiEwfSl9b25Tb3J0KGUpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEta2V5Iil8fCIiO3Q9PT10aGlzLnNvcnRLZXk/dGhpcy5zb3J0RGVzYz0hdGhpcy5zb3J0RGVzYzoodGhpcy5zb3J0RGVzYz0hMSx0aGlzLnNvcnRLZXk9dCl9b25Tb3J0Q2hhbmdlZChlKXt0aGlzLnNvcnRlZFBhZ2VzPWUuZGV0YWlsLnNvcnRlZERhdGEsdGhpcy5zb3J0S2V5PWUuZGV0YWlsLnNvcnRLZXksdGhpcy5zb3J0RGVzYz1lLmRldGFpbC5zb3J0RGVzYyx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCgpPT50aGlzLnNraXBTY3JvbGxNb3JlPSExKSl9b25TZWxlY3RUb2dnbGUoZSl7Y29uc3R7cGFnZTp0LHNlbGVjdGVkOml9PWUuZGV0YWlsO2k/dGhpcy5zZWxlY3RlZFBhZ2VzLmFkZCh0KTp0aGlzLnNlbGVjdGVkUGFnZXMuZGVsZXRlKHQpLHRoaXMuYWxsU2VsZWN0ZWQ9dGhpcy5zZWxlY3RlZFBhZ2VzLnNpemU9PT10aGlzLnNvcnRlZFBhZ2VzLmxlbmd0aCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1vblNlbGVjdEFsbChlKXt0aGlzLmFsbFNlbGVjdGVkPWUuY3VycmVudFRhcmdldC5jaGVja2VkLHRoaXMuYWxsU2VsZWN0ZWQ/dGhpcy5zb3J0ZWRQYWdlcy5mb3JFYWNoKChlPT57dGhpcy5zZWxlY3RlZFBhZ2VzLmFkZChlLmlkKX0pKTp0aGlzLnNlbGVjdGVkUGFnZXMuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1vbkRvd25sb2FkKGUsdCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgaT10aGlzLnNlbGVjdGVkUGFnZXMuc2l6ZT4wLG89bmV3IFVSTFNlYXJjaFBhcmFtcztvLnNldCgicGFnZXMiLGk/QXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkUGFnZXMua2V5cygpKS5qb2luKCIsIik6ImFsbCIpLG8uc2V0KCJmb3JtYXQiLHQpLHRoaXMuY29sbEluZm8uZmlsZW5hbWUmJm8uc2V0KCJmaWxlbmFtZSIsdGhpcy5jb2xsSW5mby5maWxlbmFtZSksd2luZG93LmxvY2F0aW9uLmhyZWY9YCR7dGhpcy5jb2xsSW5mby5hcGlQcmVmaXh9L2RsP2Arby50b1N0cmluZygpfSkpfW9uRGVsZXRlQ29uZmlybShlKXtjb25zdCB0PWUuY3VycmVudFRhcmdldC5wYWdlO3RoaXMuc2VsZWN0ZWRQYWdlcy5oYXModC5pZCk/KHRoaXMudG9EZWxldGVQYWdlcz10aGlzLnNlbGVjdGVkUGFnZXMsdGhpcy50b0RlbGV0ZVBhZ2U9bnVsbCk6KHRoaXMudG9EZWxldGVQYWdlcz1bdC5pZF0sdGhpcy50b0RlbGV0ZVBhZ2U9dCl9b25EZWxldGVQYWdlcygpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT17fTtmb3IoY29uc3QgdCBvZiB0aGlzLnRvRGVsZXRlUGFnZXMpe2NvbnN0IGk9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoYHdyLXBhZ2UtZW50cnlbcGlkPSIke3R9Il1gKTtpJiYoaS5kZWxldGluZz0hMCxlW3RdPWkpfWZvcihjb25zdCB0IG9mIHRoaXMudG9EZWxldGVQYWdlcyl7Y29uc3QgaT15aWVsZCBmZXRjaChgJHt0aGlzLmNvbGxJbmZvLmFwaVByZWZpeH0vcGFnZS8ke3R9YCx7bWV0aG9kOiJERUxFVEUifSksbz15aWVsZCBpLmpzb24oKTtpZihvLmVycm9yKXtjb25zb2xlLndhcm4oby5lcnJvcik7Y29udGludWV9Y29uc3Qgbj1lW3RdO2lmKCFuKWNvbnRpbnVlO2NvbnN0IHI9dGhpcy5jb2xsSW5mby5wYWdlcy5pbmRleE9mKG4pO3I8MHx8dGhpcy5jb2xsSW5mby5wYWdlcy5zcGxpY2UociwxKX10aGlzLnRvRGVsZXRlUGFnZXM9bnVsbCx0aGlzLnRvRGVsZXRlUGFnZT1udWxsLHRoaXMudXBkYXRlVGV4dFNlYXJjaCgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfSkpfWZvcm1hdFJlc3VsdHMoKXtjb25zdCBlPXRoaXMudG90YWxQYWdlcztyZXR1cm4gZT09PXRoaXMuc29ydGVkUGFnZXMubGVuZ3RoP2Ake2V9IFBhZ2UkezEhPT1lPyJzIjoiIn1gOmAke3RoaXMuc29ydGVkUGFnZXMubGVuZ3RofSBvZiAke2V9IFBhZ2VzIFNob3duYH1nZXROb1Jlc3VsdHNNZXNzYWdlKCl7dmFyIGU7cmV0dXJuKG51bGw9PT0oZT10aGlzLmNvbGxJbmZvKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wYWdlcy5sZW5ndGgpP3RoaXMudXBkYXRpbmdTZWFyY2g/IkluaXRpYWxpemluZyBTZWFyY2guLi4iOnRoaXMubG9hZGluZz8iU2VhcmNoaW5nLi4uIjp0aGlzLnF1ZXJ5P1FgPHNwYW4gY2xhc3M9ImZpeC10ZXh0LXdyYXBwaW5nIgogICAgICAgID5ObyBtYXRjaGluZyBwYWdlcyBmb3VuZC4gVHJ5IGNoYW5naW5nIHRoZSBzZWFyY2ggcXVlcnksIG9yCiAgICAgICAgPGEgaHJlZj0iI3ZpZXc9cmVzb3VyY2VzIj5icm93c2UgYnkgVVJMPC9hPi48L3NwYW4KICAgICAgPmA6Ik5vIFBhZ2VzIEZvdW5kIjpRYDxzcGFuIGNsYXNzPSJmaXgtdGV4dC13cmFwcGluZyIKICAgICAgICA+Tm8gUGFnZXMgYXJlIGRlZmluZWQgaW4gdGhpcyBhcmNoaXZlLiBUaGUgYXJjaGl2ZSBtYXkgYmUgZW1wdHkuCiAgICAgICAgPGEgaHJlZj0iI3ZpZXc9cmVzb3VyY2VzIj5UcnkgYnJvd3NpbmcgYnkgVVJMPC9hPi48L3NwYW4KICAgICAgPmB9b25TY3JvbGwoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PWUuY3VycmVudFRhcmdldDtpZih0LnNjcm9sbEhlaWdodC10LnNjcm9sbFRvcC10LmNsaWVudEhlaWdodDw0MCYmIXRoaXMuc2tpcFNjcm9sbE1vcmUpe3RoaXMuc2tpcFNjcm9sbE1vcmU9ITAsdGhpcy5keW5hbWljUGFnZXNRdWVyeSYmKHRoaXMuZHluYW1pY1BhZ2VDb3VudCs9MSx5aWVsZCB0aGlzLmFkZER5bmFtaWNQYWdlcygpKTtjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJ3ci1zb3J0ZXIiKTtlJiZlLmdldE1vcmUoMjUpfX0pKX19dChbeWUoe3R5cGU6QXJyYXl9KV0sQ28ucHJvdG90eXBlLCJmaWx0ZXJlZFBhZ2VzIix2b2lkIDApLHQoW3llKHt0eXBlOkFycmF5fSldLENvLnByb3RvdHlwZSwic29ydGVkUGFnZXMiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENvLnByb3RvdHlwZSwicXVlcnkiLHZvaWQgMCksdChbeWUoe2F0dHJpYnV0ZTohMX0pXSxDby5wcm90b3R5cGUsImZsZXgiLHZvaWQgMCksdChbeWUoe2F0dHJpYnV0ZTohMX0pXSxDby5wcm90b3R5cGUsInRleHRQYWdlcyIsdm9pZCAwKSx0KFt5ZSgpXSxDby5wcm90b3R5cGUsIm5ld1F1ZXJ5Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJsb2FkaW5nIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJ1cGRhdGluZ1NlYXJjaCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENvLnByb3RvdHlwZSwic2hvd0FsbFBhZ2VzIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJoYXNFeHRyYVBhZ2VzIix2b2lkIDApLHQoW3llKHt0eXBlOk51bWJlcn0pXSxDby5wcm90b3R5cGUsImN1cnJMaXN0Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDby5wcm90b3R5cGUsImVkaXRhYmxlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJjaGFuZ2VOZWVkZWQiLHZvaWQgMCksdChbeWUoe2F0dHJpYnV0ZTohMX0pXSxDby5wcm90b3R5cGUsInNlbGVjdGVkUGFnZXMiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDby5wcm90b3R5cGUsIm1lbnVBY3RpdmUiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENvLnByb3RvdHlwZSwic29ydEtleSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENvLnByb3RvdHlwZSwic29ydERlc2MiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDby5wcm90b3R5cGUsImlzU2lkZWJhciIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ28ucHJvdG90eXBlLCJ1cmwiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENvLnByb3RvdHlwZSwidHMiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDby5wcm90b3R5cGUsImVkaXRpbmciLHZvaWQgMCksdChbeWUoe3R5cGU6QXJyYXl9KV0sQ28ucHJvdG90eXBlLCJ0b0RlbGV0ZVBhZ2VzIix2b2lkIDApLHQoW3llKHt0eXBlOk9iamVjdH0pXSxDby5wcm90b3R5cGUsInRvRGVsZXRlUGFnZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3R9KV0sQ28ucHJvdG90eXBlLCJjb2xsSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENvLnByb3RvdHlwZSwiYWxsU2VsZWN0ZWQiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENvLnByb3RvdHlwZSwiZGVmYXVsdEtleSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENvLnByb3RvdHlwZSwiZHluYW1pY1BhZ2VzUXVlcnkiLHZvaWQgMCksdChbeWUoe3R5cGU6TnVtYmVyfSldLENvLnByb3RvdHlwZSwidG90YWxQYWdlcyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sQ28ucHJvdG90eXBlLCJkeW5hbWljUGFnZUNvdW50Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJza2lwU2Nyb2xsTW9yZSIsdm9pZCAwKSxjdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLXBhZ2UtdmlldyIsQ28pO2NvbnN0IElvPW5ldyBSZWdFeHAoYFske1siLSIsIlsiLCJdIiwiLyIsInsiLCJ9IiwiKCIsIikiLCIqIiwiKyIsIj8iLCIuIiwiXFwiLCJeIiwiJCIsInwiXS5qb2luKCJcXCIpfV1gLCJnIiksTG89ZT0+ZS5yZXBsYWNlKElvLCJcXCQmIik7Y2xhc3MgRW8gZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm5bImtleXdvcmRzIiwiZGVsaW1pdGVyIl19Z2V0IGtleXdvcmRzKCl7dmFyIGU7cmV0dXJuIG51bGwhPT0oZT10aGlzLmdldEF0dHJpYnV0ZSgia2V5d29yZHMiKSkmJnZvaWQgMCE9PWU/ZToiIn1zZXQga2V5d29yZHMoZSl7dGhpcy5zZXRBdHRyaWJ1dGUoImtleXdvcmRzIixlKX1nZXQgZGVsaW1pdGVyKCl7dmFyIGU7cmV0dXJuIG51bGwhPT0oZT10aGlzLmdldEF0dHJpYnV0ZSgiZGVsaW1pdGVyIikpJiZ2b2lkIDAhPT1lP2U6IiJ9c2V0IGRlbGltaXRlcihlKXt0aGlzLnNldEF0dHJpYnV0ZSgiZGVsaW1pdGVyIixlKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSx0LGkpeyJrZXl3b3JkcyIhPT1lJiYiZGVsaW1pdGVyIiE9PWV8fGkhPT10JiZ0aGlzLl9yZW5kZXIoKX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX3JlbmRlcigpLHRoaXMuX19vYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcigoKCk9Pnt0aGlzLl9yZW5kZXIoKX0pKSx0aGlzLl9fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl9fb2JzZXJ2ZXImJih0aGlzLl9fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuX19vYnNlcnZlcj12b2lkIDApfV9yZW5kZXIoKXtpZighdGhpcy5zaGFkb3dSb290KXJldHVybjtjb25zdCBlPXRoaXMudGV4dENvbnRlbnR8fCIiLHQ9dGhpcy5nZXRBdHRyaWJ1dGUoImtleXdvcmRzIiksaT10aGlzLmdldEF0dHJpYnV0ZSgiZGVsaW1pdGVyIil8fC9ccysvO2lmKCF0KXJldHVybiB2b2lkKHRoaXMuc2hhZG93Um9vdC50ZXh0Q29udGVudD1lKTtjb25zdCBvPWUudG9Mb3dlckNhc2UoKSxuPXQudG9Mb3dlckNhc2UoKS5zcGxpdChpKS5zb3J0KCgoZSx0KT0+dC5sZW5ndGgtZS5sZW5ndGgpKSxyPW5ldyBSZWdFeHAoYCR7bi5tYXAoTG8pLmpvaW4oInwiKX1gLCJnaSIpLHM9ZS5zcGxpdChyKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2xldCBsPTA7Zm9yKGNvbnN0IHQgb2YgcylpZihhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpKSxsKz10Lmxlbmd0aCxsPG8ubGVuZ3RoKXtjb25zdCB0PW8uc3Vic3RyaW5nKGwpLGk9bi5maW5kKChlPT50LnN0YXJ0c1dpdGgoZSkpKTtpZihpKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1hcmsiKTt0LnRleHRDb250ZW50PWUuc3Vic3RyKGwsaS5sZW5ndGgpLGEuYXBwZW5kQ2hpbGQodCksbCs9aS5sZW5ndGh9fXRoaXMuc2hhZG93Um9vdC5pbm5lckhUTUw9YFxuICAgICAgPHN0eWxlPlxuICAgICAgICBtYXJrIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0ta2V5d29yZC1tYXJrLWNvbG9yKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1rZXl3b3JkLW1hcmstYmFja2dyb3VuZCwgeWVsbG93KTtcbiAgICAgICAgfVxuICAgICAgPC9zdHlsZT5cbiAgICAgICR7YS5pbm5lckhUTUx9XG4gICAgYH19Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJrZXl3b3JkLW1hcmsiLEVvKTtjbGFzcyBBbyBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnF1ZXJ5PSIiLHRoaXMudGV4dFNuaXBwZXQ9IiIsdGhpcy5wYWdlPW51bGwsdGhpcy5yZXBsYXlQcmVmaXg9IiIsdGhpcy5kZWxldGluZz0hMSx0aGlzLnNlbGVjdGVkPSExLHRoaXMuZWRpdGFibGU9ITEsdGhpcy5pbmRleD0wLHRoaXMuaXNDdXJyZW50PSExLHRoaXMuaXNTaWRlYmFyPSExLHRoaXMudGh1bWJuYWlsVmFsaWQ9ITAsdGhpcy5pY29uVmFsaWQ9ITB9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgOmhvc3QgewogICAgICAgIG1pbi1oZWlnaHQ6IG1pbi1jb250ZW50OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICA6aG9zdCguc2lkZWJhcikgLmNvbHVtbiB7CiAgICAgICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jaGVjay1zZWxlY3QgewogICAgICAgIHBhZGRpbmc6IDAgMWVtIDAgMC41ZW07CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1hcmdpbjogYXV0byAwIGF1dG8gMDsKICAgICAgfQoKICAgICAgLmNvbHVtbnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBPdmVycmlkZSBCdWxtYSB0byBhZGQgdGhlIHRpbmllc3QgbWFyZ2luLCBzbyB0aGUgZm9jdXMgaW5kaWNhdG9yIGlzbid0IG9ic2N1cmVkICovCiAgICAgIC5jb2x1bW5zIHsKICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0wLjc1cmVtICsgMnB4KTsKICAgICAgfQogICAgICAuY29sdW1uczpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKC0wLjc1cmVtICsgMnB4KTsKICAgICAgfQoKICAgICAgLmZhdmljb24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207CiAgICAgIH0KCiAgICAgIC5tZWRpYS1sZWZ0IC5mYXZpY29uIHsKICAgICAgICB3aWR0aDogMnJlbTsKICAgICAgICBoZWlnaHQ6IDJyZW07CiAgICAgIH0KICAgICAgLm1lZGlhLWxlZnQgaW1nLmZhdmljb24gewogICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMXB4IDFweCAycHggZ3JleSk7CiAgICAgIH0KCiAgICAgIC5tZWRpYS1jb250ZW50IC5mYXZpY29uIHsKICAgICAgICB3aWR0aDogMS4xNXJlbTsKICAgICAgICBoZWlnaHQ6IDEuMTVyZW07CiAgICAgICAgbWFyZ2luOiAwIDAuMjVyZW07CiAgICAgIH0KCiAgICAgIC5tZWRpYS1sZWZ0IHsKICAgICAgICB3aWR0aDogNnJlbTsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuZGVsZXRlLWJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDEsIDcwLCAxMDQpOwogICAgICB9CgogICAgICAuaXMtbG9hZGluZyB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtOwogICAgICAgIGhlaWdodDogMS41ZW07CiAgICAgICAgYm9yZGVyOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAke0FvLnNpZGViYXJTdHlsZXMoKX0KICAgICAgfQoKICAgICAgJHtBby5zaWRlYmFyU3R5bGVzKGRgOmhvc3QoLnNpZGViYXIpYCl9CgogICAgICAuY3VycmVudCBhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA3LCAyNDMsIDI1NSk7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuY3VycmVudCAuY3Vyci1wYWdlIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICB9CgogICAgICAuaXMtaW5saW5lLWRhdGUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZWRpYS1jb250ZW50IGEgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuY29sLWRhdGUgewogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KICAgIGApfXN0YXRpYyBzaWRlYmFyU3R5bGVzKGU9aGBgKXtyZXR1cm4gaGAKICAgICAgJHtlfSAuY29sLWRhdGUgewogICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI0cHggKyAxcmVtKTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgICR7ZX0gLmNvbC1kYXRlIGRpdiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lOwogICAgICB9CiAgICAgICR7ZX0gLmNvbC1pbmRleCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAke2V9IC5jb2x1bW5zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgfQogICAgICAke2V9IC5pcy1pbmxpbmUtZGF0ZSB7CiAgICAgICAgZGlzcGxheTogaW5pdGlhbCAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAke2V9IC5tZWRpYS1sZWZ0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07CiAgICAgIH0KICAgIGB9dXBkYXRlZChlKXsoZS5oYXMoInBhZ2UiKXx8ZS5oYXMoInF1ZXJ5IikpJiYodGhpcy51cGRhdGVTbmlwcGV0KCksdGhpcy5kZWxldGluZz0hMSl9cmVuZGVyKCl7Y29uc3QgZT10aGlzLnBhZ2Use2RhdGU6dH09eXQoZSksaT0ibnVtYmVyIj09dHlwZW9mIGUuc2l6ZSxvPXRoaXMuZWRpdGFibGUmJiF0aGlzLmlzU2lkZWJhcjtyZXR1cm4gUWAKICAgICAgJHtvP1FgIDxkaXYgY2xhc3M9ImNoZWNrLXNlbGVjdCI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY2hlY2tib3giPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMub25TZW5kU2VsVG9nZ2xlfQogICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICAuY2hlY2tlZD0iJHt0aGlzLnNlbGVjdGVkfSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgPC9kaXY+YDoiIn0KCiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbnMiPgogICAgICAgICR7dGhpcy5pbmRleD9RYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbiBjb2wtaW5kZXggaXMtMSBpcy1zaXplLTciPiR7dGhpcy5pbmRleH0uPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uIGNvbC1kYXRlIGlzLTIiPgogICAgICAgICAgPGRpdj4ke3Q/VHQuZm9ybWF0KHQpOiIifTwvZGl2PgogICAgICAgICAgPGRpdj4ke3Q/UHQuZm9ybWF0KHQpOiIifTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSI+CiAgICAgICAgICAgIDxmaWd1cmUgY2xhc3M9Im1lZGlhLWxlZnQiPiR7dGhpcy5yZW5kZXJQYWdlSWNvbigpfTwvZmlndXJlPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jb250ZW50ICR7dGhpcy5pc0N1cnJlbnQ/ImN1cnJlbnQiOiIifSI+CiAgICAgICAgICAgICAgPGRpdiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIke3RoaXMuaXNTaWRlYmFyPyI0IjoiMyJ9Ij4KICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0iJHt0aGlzLm9uUmVsb2FkfSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25SZXBsYXl9IgogICAgICAgICAgICAgICAgICBocmVmPSIke2t0KCJwYWdlcyIsdGhpcy5wYWdlLnVybCx0aGlzLnBhZ2UudGltZXN0YW1wLHRoaXMucGFnZS53YWN6aGFzaCl9IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaXMtc2l6ZS02IGhhcy10ZXh0LXdlaWdodC1ib2xkIGhhcy10ZXh0LWxpbmsgdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgPGtleXdvcmQtbWFyayBrZXl3b3Jkcz0iJHt0aGlzLnF1ZXJ5fSIKICAgICAgICAgICAgICAgICAgICAgID4ke2UudGl0bGV8fGUudXJsfTwva2V5d29yZC1tYXJrCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJoYXMtdGV4dC1kYXJrIHRleHQiPgogICAgICAgICAgICAgICAgICAgIDxrZXl3b3JkLW1hcmsga2V5d29yZHM9IiR7dGhpcy5xdWVyeX0iCiAgICAgICAgICAgICAgICAgICAgICA+JHtlLnVybH08L2tleXdvcmQtbWFyawogICAgICAgICAgICAgICAgICAgID4ke3RoaXMudGh1bWJuYWlsVmFsaWQ/dGhpcy5yZW5kZXJGYXZpY29uKCk6IiJ9CiAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Imhhcy10ZXh0LWdyZXktZGFyayB0ZXh0IGlzLWlubGluZS1kYXRlIj4KICAgICAgICAgICAgICAgICAgICAke3Q/QXQuZm9ybWF0KHQpOiIifQogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAke3RoaXMudGV4dFNuaXBwZXQ/UWAgPGRpdiBjbGFzcz0idGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICA8a2V5d29yZC1tYXJrIGtleXdvcmRzPSIke3RoaXMucXVlcnl9IgogICAgICAgICAgICAgICAgICAgICAgICA+JHt0aGlzLnRleHRTbmlwcGV0fTwva2V5d29yZC1tYXJrCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDpRYGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgJHtpP1FgIDxkaXYgY2xhc3M9Im1lZGlhLXJpZ2h0IiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAyZW0iPgogICAgICAgICAgICAgICAgICAgICR7RXQoKShlLnNpemUpfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICAke28/UWAgJHt0aGlzLmRlbGV0aW5nP1FgCiAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnV0dG9uIGlzLWxvYWRpbmcgZGVsZXRlLWJ1dHRvbiBpcy1zdGF0aWMiCiAgICAgICAgICAgICAgICAgID48L2J1dHRvbj4KICAgICAgICAgICAgICAgIGA6UWAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblNlbmREZWxldGVQYWdlfSIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRlbGV0ZSBkZWxldGUtYnV0dG9uIgogICAgICAgICAgICAgICAgPjwvYnV0dG9uPmB9YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFJlcGxheVByZWZpeCgpe2NvbnN0IGU9dGhpcy5wYWdlLndhY3poYXNoP2A6JHt0aGlzLnBhZ2Uud2Fjemhhc2h9L2A6IiIsdD10aGlzLnBhZ2UudGltZXN0YW1wfHwiIjtyZXR1cm4gdGhpcy5yZXBsYXlQcmVmaXgrIi8iK2UrdCsiaWRfIn1yZW5kZXJQYWdlSWNvbigpe3JldHVybiB0aGlzLnRodW1ibmFpbFZhbGlkP1FgPGltZwogICAgICBjbGFzcz0idGh1bWJuYWlsIgogICAgICBAZXJyb3I9JHsoKT0+dGhpcy50aHVtYm5haWxWYWxpZD0hMX0KICAgICAgc3JjPSR7YCR7dGhpcy5nZXRSZXBsYXlQcmVmaXgoKX0vdXJuOnRodW1ibmFpbDoke3RoaXMucGFnZS51cmx9YH0KICAgICAgbG9hZGluZz0ibGF6eSIKICAgIC8+YDp0aGlzLnJlbmRlckZhdmljb24oKX1yZW5kZXJGYXZpY29uKCl7aWYodGhpcy5pY29uVmFsaWQmJnRoaXMucGFnZS5mYXZJY29uVXJsKXJldHVybiBRYDxpbWcKICAgICAgY2xhc3M9ImZhdmljb24iCiAgICAgIEBlcnJvcj0keygpPT50aGlzLmljb25WYWxpZD0hMX0KICAgICAgc3JjPSR7YCR7dGhpcy5nZXRSZXBsYXlQcmVmaXgoKX0vJHt0aGlzLnBhZ2UuZmF2SWNvblVybH1gfQogICAgICBsb2FkaW5nPSJsYXp5IgogICAgLz5gfXVwZGF0ZVNuaXBwZXQoKXtjb25zdCBlPXRoaXMudGV4dFNuaXBwZXQ7aWYoIXRoaXMucXVlcnl8fCF0aGlzLnBhZ2UudGV4dClyZXR1cm4gdGhpcy50ZXh0U25pcHBldD1udWxsLHZvaWQgdGhpcy5yZXF1ZXN0VXBkYXRlKCJ0ZXh0U25pcHBldCIsZSk7bGV0IHQ9dGhpcy5wYWdlLnRleHQsaT10aGlzLnF1ZXJ5LG89dC5pbmRleE9mKHRoaXMucXVlcnkpO2lmKG88MCl7Y29uc3Qgbj10LnRvTG93ZXJDYXNlKCkscj1pLnRvTG93ZXJDYXNlKCk7aWYobz1uLmluZGV4T2YociksbzwwKXJldHVybiB0aGlzLnRleHRTbmlwcGV0PW51bGwsdm9pZCB0aGlzLnJlcXVlc3RVcGRhdGUoInRleHRTbmlwcGV0IixlKTt0PW4saT1yfWxldCBuPW87bz1NYXRoLm1heChvLTEwMCwwKSxuPU1hdGgubWluKG4rMjAwLHQubGVuZ3RoKSwwPT09byYmbj09PXQubGVuZ3RoP3RoaXMudGV4dFNuaXBwZXQ9dDp0aGlzLnRleHRTbmlwcGV0PSIuLi4iK3Quc2xpY2UobyxuKSsiLi4uIix0aGlzLnJlcXVlc3RVcGRhdGUoInRleHRTbmlwcGV0IixlKX1vblJlcGxheShlLHQ9ITEpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCBpPXt1cmw6dGhpcy5wYWdlLnVybCx0czp0aGlzLnBhZ2UudGltZXN0YW1wLHdhY3poYXNoOnRoaXMucGFnZS53YWN6aGFzaH07cmV0dXJuIHRoaXMuc2VuZENoYW5nZUV2ZW50KGksdCksITF9b25SZWxvYWQoZSl7cmV0dXJuIHRoaXMub25SZXBsYXkoZSwhMCl9c2VuZENoYW5nZUV2ZW50KGUsdCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC10YWItbmF2Iix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e2RhdGE6ZSxyZWxvYWQ6dH19KSl9b25TZW5kRGVsZXRlUGFnZSgpe2NvbnN0IGU9dGhpcy5wYWdlO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1wYWdlIix7ZGV0YWlsOntwYWdlOmV9fSkpfW9uU2VuZFNlbFRvZ2dsZShlKXtjb25zdCB0PXRoaXMucGFnZS5pZCxpPWUuY3VycmVudFRhcmdldC5jaGVja2VkO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbC1wYWdlIix7ZGV0YWlsOntwYWdlOnQsc2VsZWN0ZWQ6aX19KSl9fXQoW3llKHt0eXBlOlN0cmluZ30pXSxBby5wcm90b3R5cGUsInF1ZXJ5Iix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxBby5wcm90b3R5cGUsInRleHRTbmlwcGV0Iix2b2lkIDApLHQoW3llKHt0eXBlOk9iamVjdH0pXSxBby5wcm90b3R5cGUsInBhZ2UiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLEFvLnByb3RvdHlwZSwicmVwbGF5UHJlZml4Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQW8ucHJvdG90eXBlLCJkZWxldGluZyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLEFvLnByb3RvdHlwZSwic2VsZWN0ZWQiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxBby5wcm90b3R5cGUsImVkaXRhYmxlIix2b2lkIDApLHQoW3llKHt0eXBlOk51bWJlcn0pXSxBby5wcm90b3R5cGUsImluZGV4Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQW8ucHJvdG90eXBlLCJpc0N1cnJlbnQiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxBby5wcm90b3R5cGUsImlzU2lkZWJhciIsdm9pZCAwKSx0KFt4ZSgpXSxBby5wcm90b3R5cGUsInRodW1ibmFpbFZhbGlkIix2b2lkIDApLHQoW3hlKCldLEFvLnByb3RvdHlwZSwiaWNvblZhbGlkIix2b2lkIDApLGN1c3RvbUVsZW1lbnRzLmRlZmluZSgid3ItcGFnZS1lbnRyeSIsQW8pO2NsYXNzIFRvIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29sbEluZm89bnVsbCx0aGlzLnNvdXJjZVVybD1udWxsLHRoaXMudXJsPSIiLHRoaXMudHM9IiIsdGhpcy53YWN6aGFzaD0iIix0aGlzLnJlcGxheVVybD0iIix0aGlzLnJlcGxheVRTPSIiLHRoaXMuYWN0dWFsVFM9IiIsdGhpcy50aXRsZT0iIix0aGlzLmlmcmFtZVVybD1udWxsLHRoaXMuc2hvd0F1dGg9ITEsdGhpcy5yZXBsYXlOb3RGb3VuZEVycm9yPSExLHRoaXMuYXV0aEZpbGVIYW5kbGU9bnVsbCx0aGlzLnJlYXV0aFdhaXQ9bnVsbCx0aGlzLl9sb2FkUG9sbD1udWxsfWZpcnN0VXBkYXRlZCgpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZT0+dGhpcy5vblJlcGxheU1lc3NhZ2UoZSkpKSxuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZT0+dGhpcy5oYW5kbGVTV01lc3NhZ2UoZSkpKX1oYW5kbGVTV01lc3NhZ2UoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZigiYXV0aG5lZWRlZCI9PT1lLmRhdGEudHlwZSYmdGhpcy5jb2xsSW5mbyYmZS5kYXRhLmNvbGw9PT10aGlzLmNvbGxJbmZvLmNvbGwpe2lmKGUuZGF0YS5maWxlSGFuZGxlKXt0aGlzLmF1dGhGaWxlSGFuZGxlPWUuZGF0YS5maWxlSGFuZGxlO3RyeXtpZigiZ3JhbnRlZCI9PT0oeWllbGQgdGhpcy5hdXRoRmlsZUhhbmRsZS5yZXF1ZXN0UGVybWlzc2lvbih7bW9kZToicmVhZCJ9KSkpcmV0dXJuIHRoaXMuc2hvd0F1dGg9ITEsdGhpcy5yZWF1dGhXYWl0PW51bGwsdm9pZCB0aGlzLnJlZnJlc2goKX1jYXRjaChlKXtjb25zb2xlLndhcm4oZSl9fWVsc2UgdGhpcy5hdXRoRmlsZUhhbmRsZT1udWxsO3RoaXMucmVhdXRoV2FpdD95aWVsZCB0aGlzLnJlYXV0aFdhaXQ6dGhpcy5zaG93QXV0aD0hMH1lbHNlIGUuZGF0YS50eXBlJiZ3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGUuZGF0YSl9KSl9ZG9TZXRJZnJhbWVVcmwoKXt0aGlzLmlmcmFtZVVybD10aGlzLnVybCYmdGhpcy5jb2xsSW5mbz9gJHt0aGlzLmNvbGxJbmZvLnJlcGxheVByZWZpeH0vJHt0aGlzLndhY3poYXNoP2A6JHt0aGlzLndhY3poYXNofS9gOiIifSR7dGhpcy50c3x8IiJ9bXBfLyR7dGhpcy51cmx9YDoiIn11cGRhdGVkKGUpe2lmKChlLmhhcygic291cmNlVXJsIil8fGUuaGFzKCJjb2xsSW5mbyIpKSYmKHRoaXMucmVhdXRoV2FpdD1udWxsKSwhdGhpcy51cmx8fHRoaXMucmVwbGF5VXJsPT10aGlzLnVybCYmdGhpcy5yZXBsYXlUUz09dGhpcy50c3x8IWUuaGFzKCJ1cmwiKSYmIWUuaGFzKCJ0cyIpfHwodGhpcy5yZXBsYXlVcmw9dGhpcy51cmwsdGhpcy5yZXBsYXlUUz10aGlzLnRzLHRoaXMuc2hvd0F1dGg9ITEsdGhpcy5yZWF1dGhXYWl0PW51bGwsdGhpcy5kb1NldElmcmFtZVVybCgpKSx0aGlzLmlmcmFtZVVybCYmZS5oYXMoImlmcmFtZVVybCIpKXt0aGlzLndhaXRGb3JMb2FkKCk7Y29uc3QgZT17dGl0bGU6IkFyY2hpdmVkIFBhZ2UiLHJlcGxheVRpdGxlOiExfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1cGRhdGUtdGl0bGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDplfSkpfWlmKHRoaXMucmVwbGF5VXJsJiZlLmhhcygicmVwbGF5VXJsIil8fHRoaXMucmVwbGF5VFMmJmUuaGFzKCJyZXBsYXlUUyIpKXtjb25zdCBlPXt1cmw6dGhpcy5yZXBsYXlVcmwsdHM6dGhpcy5yZXBsYXlUU307dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC10YWItbmF2Iix7ZGV0YWlsOntyZXBsYWNlTG9jOiEwLGRhdGE6ZSxyZXBsYXlOb3RGb3VuZEVycm9yOnRoaXMucmVwbGF5Tm90Rm91bmRFcnJvcn19KSl9aWYodGhpcy50aXRsZSYmKGUuaGFzKCJ0aXRsZSIpfHxlLmhhcygiYWN0dWFsVFMiKSkpe2NvbnN0IGU9e3RpdGxlOnRoaXMudGl0bGUsdXJsOnRoaXMucmVwbGF5VXJsLHRzOnRoaXMuYWN0dWFsVFMscmVwbGF5VGl0bGU6ITB9O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVwZGF0ZS10aXRsZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOmV9KSl9fXNldERpc2FibGVQb2ludGVyKGUpe2NvbnN0IHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoImlmcmFtZSIpO3QmJih0LnN0eWxlLnBvaW50ZXJFdmVudHM9ZT8ibm9uZSI6ImFsbCIpfW9uUmVwbGF5TWVzc2FnZShlKXtjb25zdCB0PXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJpZnJhbWUiKTtpZih0JiZlLnNvdXJjZT09PXQuY29udGVudFdpbmRvdylpZigibG9hZCI9PT1lLmRhdGEud2JfdHlwZXx8InJlcGxhY2UtdXJsIj09PWUuZGF0YS53Yl90eXBlfHwiYXJjaGl2ZS1ub3QtZm91bmQiPT09ZS5kYXRhLndiX3R5cGUpe2lmKHRoaXMucmVwbGF5VFM9ZS5kYXRhLmlzX2xpdmU/IiI6ZS5kYXRhLnRzLHRoaXMuYWN0dWFsVFM9ZS5kYXRhLnRzLHRoaXMucmVwbGF5VXJsPWUuZGF0YS51cmwsdGhpcy50aXRsZT1lLmRhdGEudGl0bGV8fHRoaXMudGl0bGUsdGhpcy5yZXBsYXlOb3RGb3VuZEVycm9yPSJhcmNoaXZlLW5vdC1mb3VuZCI9PT1lLmRhdGEud2JfdHlwZSx0aGlzLmNsZWFyTG9hZGluZyh0LmNvbnRlbnRXaW5kb3cpLGUuZGF0YS5pY29ucyl7Y29uc3QgdD1lLmRhdGEuaWNvbnM7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVwbGF5LWZhdmljb25zIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e2ljb25zOnR9fSkpfX1lbHNlIGlmKCJ0aXRsZSI9PT1lLmRhdGEud2JfdHlwZSl0aGlzLnRpdGxlPWUuZGF0YS50aXRsZTtlbHNle2NvbnN0IHQ9T2JqZWN0LmFzc2lnbih7dHlwZTplLmRhdGEud2JfdHlwZX0sZS5kYXRhKTtkZWxldGUgdC53Yl90eXBlLHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UodCl9fW9uUmVBdXRoZWQoZSl7dGhpcy5yZWF1dGhXYWl0PSgoKT0+aSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKHRoaXMuYXV0aEZpbGVIYW5kbGUpe2lmKCJncmFudGVkIiE9PSh5aWVsZCB0aGlzLmF1dGhGaWxlSGFuZGxlLnJlcXVlc3RQZXJtaXNzaW9uKHttb2RlOiJyZWFkIn0pKSlyZXR1cm4gdm9pZCh0aGlzLnJlYXV0aFdhaXQ9bnVsbCk7dGhpcy5hdXRoRmlsZUhhbmRsZT1udWxsfWVsc2V7Y29uc3QgdD1lLmRldGFpbC5oZWFkZXJzO3lpZWxkIGZldGNoKGAke3RoaXMuY29sbEluZm8uYXBpUHJlZml4fS91cGRhdGVBdXRoYCx7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtoZWFkZXJzOnR9KX0pfXRoaXMuc2hvd0F1dGgmJih0aGlzLnNob3dBdXRoPSExLHRoaXMucmVhdXRoV2FpdD1udWxsKSx0aGlzLnJlZnJlc2goKX0pKSkoKX13YWl0Rm9yTG9hZCgpe3RoaXMuc2V0TG9hZGluZygpLHRoaXMuX2xvYWRQb2xsPXdpbmRvdy5zZXRJbnRlcnZhbCgoKCk9Pntjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJpZnJhbWUiKTsobnVsbD09ZT92b2lkIDA6ZS5jb250ZW50RG9jdW1lbnQpJiZlLmNvbnRlbnRXaW5kb3cmJigiY29tcGxldGUiIT09ZS5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZXx8ZS5jb250ZW50V2luZG93Ll9XQldvbWJhdCl8fHRoaXMuY2xlYXJMb2FkaW5nKG51bGw9PWU/dm9pZCAwOmUuY29udGVudFdpbmRvdyl9KSw1ZTMpfWNsZWFyTG9hZGluZyhlKXtpZih0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBsYXktbG9hZGluZyIse2RldGFpbDp7bG9hZGluZzohMX19KSksdGhpcy5fbG9hZFBvbGwmJih3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9sb2FkUG9sbCksdGhpcy5fbG9hZFBvbGw9bnVsbCksZSl0cnl7ZS5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCgoKT0+e3RoaXMuc2V0TG9hZGluZygpfSkpfWNhdGNoKGUpe319c2V0TG9hZGluZygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcGxheS1sb2FkaW5nIix7ZGV0YWlsOntsb2FkaW5nOiEwfX0pKX1yZWZyZXNoKCl7dmFyIGU7Y29uc3QgdD10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiaWZyYW1lIik7aWYoIXQpcmV0dXJuO2NvbnN0IGk9dGhpcy5pZnJhbWVVcmw7dGhpcy5kb1NldElmcmFtZVVybCgpLGkhPT10aGlzLmlmcmFtZVVybCYmdGhpcy51cmwhPT10aGlzLnJlcGxheVVybHx8KHRoaXMud2FpdEZvckxvYWQoKSxudWxsPT09KGU9dC5jb250ZW50V2luZG93KXx8dm9pZCAwPT09ZXx8ZS5sb2NhdGlvbi5yZWxvYWQoKSl9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5pZnJhbWUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMHB4OwogICAgICB9CgogICAgICAuaWZyYW1lLW1haW4gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5pbnRyby1wYW5lbCAucGFuZWwtaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAxZW07CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuaWZyYW1lLW1haW4ubW9kYWwtYmcgewogICAgICAgIHotaW5kZXg6IDIwMDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7CiAgICAgIH0KCiAgICAgICN3cmxvZ28gewogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC5pbnRyby1wYW5lbCAucGFuZWwtYmxvY2sgewogICAgICAgIHBhZGRpbmc6IDFlbTsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVlbTsKICAgICAgfQoKICAgICAgZGl2LmludHJvLXBhbmVsLnBhbmVsIHsKICAgICAgICBtaW4td2lkdGg6IDQwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWFyZ2luOiAzZW07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIGApfXJlbmRlcigpe2NvbnN0IGU9YFJlcGxheSBvZiAke3RoaXMudGl0bGU/YCR7dGhpcy50aXRsZX06YDoiIn0gJHt0aGlzLnVybH1gO3JldHVybiBRYCA8aDEgaWQ9InJlcGxheS1oZWFkaW5nIiBjbGFzcz0iaXMtc3Itb25seSI+JHtlfTwvaDE+CgogICAgICAke3RoaXMuaWZyYW1lVXJsP1FgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlmcmFtZS1jb250YWluZXIiPgogICAgICAgICAgICAgIDxpZnJhbWUKICAgICAgICAgICAgICAgIGNsYXNzPSJpZnJhbWUtbWFpbiIKICAgICAgICAgICAgICAgIG5hbWU9Il9fX3diX3JlcGxheV90b3BfZnJhbWUiCiAgICAgICAgICAgICAgICBAbWVzc2FnZT0iJHt0aGlzLm9uUmVwbGF5TWVzc2FnZX0iCiAgICAgICAgICAgICAgICBhbGxvdz0iYXV0b3BsYXkgJ3NlbGYnOyBmdWxsc2NyZWVuIgogICAgICAgICAgICAgICAgYWxsb3dmdWxsc2NyZWVuCiAgICAgICAgICAgICAgICBzcmM9IiR7dGhpcy5pZnJhbWVVcmx9IgogICAgICAgICAgICAgICAgdGl0bGU9IiR7ZX0iCiAgICAgICAgICAgICAgPjwvaWZyYW1lPgoKICAgICAgICAgICAgICAke3RoaXMuc2hvd0F1dGg/UWAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpZnJhbWUtbWFpbiBtb2RhbC1iZyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbCBpbnRyby1wYW5lbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYW5lbC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IndybG9nbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9IjEuNXJlbSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdmc9JHtLZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbiBOZWVkZWQKICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmF1dGhGaWxlSGFuZGxlP1FgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGFyY2hpdmUgaXMgbG9hZGVkIGZyb20gYSBsb2NhbCBmaWxlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+JHt0aGlzLmF1dGhGaWxlSGFuZGxlLm5hbWV9PC9iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBicm93c2VyIG5lZWRzIHRvIGNvbmZpcm0geW91ciBwZXJtaXNzaW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBjb250aW51ZSBsb2FkaW5nIGZyb20gdGhpcyBmaWxlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnV0dG9uIGlzLXdhcm5pbmcgaXMtcm91bmRlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uUmVBdXRoZWR9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgQ29uZmlybWF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA6UWAgPHdyLWdkcml2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zb3VyY2VVcmw9IiR7dGhpcy5zb3VyY2VVcmx9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPSJ0cnltYW51YWwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlYXV0aD0iJHshMH0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGxvYWQtcmVhZHk9IiR7dGhpcy5vblJlQXV0aGVkfSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvd3ItZ2RyaXZlPmB9CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDpRYCA8ZGl2IGNsYXNzPSJwYW5lbCBpbnRyby1wYW5lbCI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYW5lbC1oZWFkaW5nIj5SZXBsYXkgV2ViIFBhZ2U8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWJsb2NrIj4KICAgICAgICAgICAgICA8cD5FbnRlciBhIFVSTCBhYm92ZSB0byByZXBsYXkgaXQgZnJvbSB0aGUgd2ViIGFyY2hpdmUhPC9wPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgKE9yLCBjaGVjayBvdXQgPGEgaHJlZj0iI3ZpZXc9cGFnZXMiPlBhZ2VzPC9hPiBvcgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3ZpZXc9cmVzb3VyY2VzIj5VUkxzPC9hPiB0byBleHBsb3JlIHRoZSBjb250ZW50cyBvZgogICAgICAgICAgICAgICAgdGhpcyBhcmNoaXZlLikKICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+YH1gfX10KFt5ZSh7dHlwZTpPYmplY3R9KV0sVG8ucHJvdG90eXBlLCJjb2xsSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJzb3VyY2VVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFRvLnByb3RvdHlwZSwidXJsIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUby5wcm90b3R5cGUsInRzIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUby5wcm90b3R5cGUsIndhY3poYXNoIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUby5wcm90b3R5cGUsInJlcGxheVVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJyZXBsYXlUUyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJhY3R1YWxUUyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJpZnJhbWVVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxUby5wcm90b3R5cGUsInNob3dBdXRoIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sVG8ucHJvdG90eXBlLCJyZXBsYXlOb3RGb3VuZEVycm9yIix2b2lkIDApLHQoW3llKHt0eXBlOk9iamVjdH0pXSxUby5wcm90b3R5cGUsImF1dGhGaWxlSGFuZGxlIix2b2lkIDApLGN1c3RvbUVsZW1lbnRzLmRlZmluZSgid3ItY29sbC1yZXBsYXkiLFRvKTtsZXQgUG89Y2xhc3MgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zb3J0ZWREYXRhPVtdLHRoaXMuZGF0YT1bXSx0aGlzLnBhZ2VSZXN1bHRzPTAsdGhpcy5udW1SZXN1bHRzPTAsdGhpcy5zb3J0S2V5PW51bGwsdGhpcy5zb3J0RGVzYz1udWxsfWZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuaWQpe2NvbnN0IGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5pZH06c29ydEtleWApO251bGwhPT1lJiYodGhpcy5zb3J0S2V5PWUpO2NvbnN0IHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5pZH06c29ydERlc2NgKTtudWxsIT09dCYmKHRoaXMuc29ydERlc2M9IjEiPT09dCl9fXVwZGF0ZWQoZSl7Y29uc3QgdD1lLmhhcygic29ydEtleSIpLGk9ZS5oYXMoInNvcnREZXNjIiksbz1lLmhhcygiZGF0YSIpO3QmJm51bGwhPT10aGlzLnNvcnRLZXkmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke3RoaXMuaWR9OnNvcnRLZXlgLHRoaXMuc29ydEtleSksaSYmbnVsbCE9PXRoaXMuc29ydERlc2MmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke3RoaXMuaWR9OnNvcnREZXNjYCx0aGlzLnNvcnREZXNjPyIxIjoiMCIpLCh0fHxpfHxvKSYmdGhpcy5zb3J0RGF0YSgpfXNvcnREYXRhKCl7dGhpcy5zb3J0ZWREYXRhPVsuLi50aGlzLmRhdGFdLHRoaXMubnVtUmVzdWx0cz10aGlzLnBhZ2VSZXN1bHRzLCIiPT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2MmJnRoaXMuc29ydGVkRGF0YS5yZXZlcnNlKCk6dGhpcy5zb3J0ZWREYXRhLnNvcnQoKChlLHQpPT5lW3RoaXMuc29ydEtleV09PT10W3RoaXMuc29ydEtleV0/MDp0aGlzLnNvcnREZXNjPT1lW3RoaXMuc29ydEtleV08dFt0aGlzLnNvcnRLZXldPzE6LTEpKSx0aGlzLnNlbmRTb3J0Q2hhbmdlZCgpfXNlbmRTb3J0Q2hhbmdlZCgpe2NvbnN0IGU9e3NvcnRLZXk6dGhpcy5zb3J0S2V5LHNvcnREZXNjOnRoaXMuc29ydERlc2Msc29ydGVkRGF0YTp0aGlzLm51bVJlc3VsdHM/dGhpcy5zb3J0ZWREYXRhLnNsaWNlKDAsdGhpcy5udW1SZXN1bHRzKTp0aGlzLnNvcnRlZERhdGF9O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNvcnQtY2hhbmdlZCIse2RldGFpbDplfSkpfWdldE1vcmUoZT0xMDApe3RoaXMucGFnZVJlc3VsdHMmJnRoaXMubnVtUmVzdWx0cz49dGhpcy5zb3J0ZWREYXRhLmxlbmd0aHx8KHRoaXMubnVtUmVzdWx0cys9ZSx0aGlzLnNlbmRTb3J0Q2hhbmdlZCgpKX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShoYAogICAgICA6aG9zdCB7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgYnV0dG9uLmJ1dHRvbi5pcy1zbWFsbCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICBgKX1yZW5kZXIoKXt2YXIgZTtyZXR1cm4gUWAKICAgIDxkaXYgY2xhc3M9InNlbGVjdCBpcy1zbWFsbCI+CiAgICAgIDxzZWxlY3QgaWQ9InNvcnQtc2VsZWN0IiBAY2hhbmdlPSR7ZT0+dGhpcy5zb3J0S2V5PWUuY3VycmVudFRhcmdldC52YWx1ZX0+CgogICAgICAke251bGw9PT0oZT10aGlzLnNvcnRLZXlzKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tYXAoKGU9PlFgCiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIke2Uua2V5fSIgP3NlbGVjdGVkPSIke2Uua2V5PT09dGhpcy5zb3J0S2V5fSI+CiAgICAgICAgICAgIFNvcnQgQnk6ICR7ZS5uYW1lfQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgYCkpfQogICAgICA8L3NlbGVjdD4KICAgIDwvZGl2PgogICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zb3J0RGVzYz0hdGhpcy5zb3J0RGVzY30gY2xhc3M9ImJ1dHRvbiBpcy1zbWFsbCI+CiAgICAgIDxzcGFuPk9yZGVyOjwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9ImlzLXNyLW9ubHkiPiR7dGhpcy5zb3J0RGVzYz8iQXNjZW5kaW5nIjoiRGVzY2VuZGluZyJ9PC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+PGZhLWljb24gYXJpYS1oaWRkZW49InRydWUiIC5zdmc9JHt0aGlzLnNvcnREZXNjPyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMyMCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0yNzkgMjI0SDQxYy0yMS40IDAtMzIuMS0yNS45LTE3LTQxTDE0MyA2NGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMTkgMTE5YzE1LjIgMTUuMSA0LjUgNDEtMTYuOSA0MXoiLz48L3N2Zz4nOic8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMyMCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik00MSAyODhoMjM4YzIxLjQgMCAzMi4xIDI1LjkgMTcgNDFMMTc3IDQ0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMjQgMzI5Yy0xNS4xLTE1LjEtNC40LTQxIDE3LTQxeiIvPjwvc3ZnPid9Pjwvc3Bhbj4KICAgIDwvYnV0dG9uPmB9fTt0KFt5ZSh7YXR0cmlidXRlOiExfSldLFBvLnByb3RvdHlwZSwic29ydGVkRGF0YSIsdm9pZCAwKSx0KFt5ZSh7YXR0cmlidXRlOiExfSldLFBvLnByb3RvdHlwZSwiZGF0YSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUG8ucHJvdG90eXBlLCJpZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sUG8ucHJvdG90eXBlLCJwYWdlUmVzdWx0cyIsdm9pZCAwKSx0KFt5ZSh7YXR0cmlidXRlOiExfSldLFBvLnByb3RvdHlwZSwibnVtUmVzdWx0cyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUG8ucHJvdG90eXBlLCJzb3J0S2V5Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sUG8ucHJvdG90eXBlLCJzb3J0RGVzYyIsdm9pZCAwKSx0KFt5ZSh7YXR0cmlidXRlOiExfSldLFBvLnByb3RvdHlwZSwic29ydEtleXMiLHZvaWQgMCksUG89dChbZ2UoIndyLXNvcnRlciIpXSxQbyk7Y2xhc3MgRG8gZXh0ZW5kcyBtZXtzdGF0aWMgZ2V0IGZpbHRlcnMoKXtyZXR1cm5be25hbWU6IkhUTUwiLGZpbHRlcjoidGV4dC9odG1sLHRleHQveGh0bWwifSx7bmFtZToiSW1hZ2VzIixmaWx0ZXI6ImltYWdlLyJ9LHtuYW1lOiJBdWRpby9WaWRlbyIsZmlsdGVyOiJhdWRpby8sdmlkZW8vIn0se25hbWU6IlBERiIsZmlsdGVyOiJhcHBsaWNhdGlvbi9wZGYifSx7bmFtZToiSmF2YXNjcmlwdCIsZmlsdGVyOiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCJ9LHtuYW1lOiJDU1MiLGZpbHRlcjoidGV4dC9jc3MifSx7bmFtZToiRm9udHMiLGZpbHRlcjoiZm9udC8sYXBwbGljYXRpb24vZm9udC13b2ZmIn0se25hbWU6IlBsYWluIFRleHQiLGZpbHRlcjoidGV4dC9wbGFpbiJ9LHtuYW1lOiJKU09OIixmaWx0ZXI6ImFwcGxpY2F0aW9uL2pzb24ifSx7bmFtZToiREFTSC9ITFMiLGZpbHRlcjoiYXBwbGljYXRpb24vZGFzaCt4bWwsYXBwbGljYXRpb24veC1tcGVnVVJMLGFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsIn0se25hbWU6IkFsbCBVUkxzIixmaWx0ZXI6IiJ9XX1zdGF0aWMgZ2V0IHNvcnRLZXlzKCl7cmV0dXJuW3trZXk6InVybCIsbmFtZToiVVJMIn0se2tleToidHMiLG5hbWU6IkRhdGUifSx7a2V5OiJtaW1lIixuYW1lOiJNZWRpYSBUeXBlIn0se2tleToic3RhdHVzIixuYW1lOiJTdGF0dXMifV19Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuY29sbEluZm89bnVsbCx0aGlzLmlzU2lkZWJhcj0hMSx0aGlzLmN1cnJNaW1lPSIiLHRoaXMucXVlcnk9IiIsdGhpcy51cmxTZWFyY2hUeXBlPSIiLHRoaXMuZmlsdGVyZWRSZXN1bHRzPVtdLHRoaXMuc29ydGVkUmVzdWx0cz1bXSx0aGlzLnJlc3VsdHM9W10sdGhpcy5uZXdRdWVyeT1udWxsLHRoaXMudHJ5TW9yZT0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5zb3J0S2V5PSJ1cmwiLHRoaXMuc29ydERlc2M9ITF9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NvbGxJbmZvOnt0eXBlOk9iamVjdH0saXNTaWRlYmFyOnt0eXBlOkJvb2xlYW59LGN1cnJNaW1lOnt0eXBlOlN0cmluZ30scXVlcnk6e3R5cGU6U3RyaW5nfSx1cmxTZWFyY2hUeXBlOnt0eXBlOlN0cmluZ30sZmlsdGVyZWRSZXN1bHRzOnt0eXBlOkFycmF5fSxzb3J0ZWRSZXN1bHRzOnt0eXBlOkFycmF5fSxsb2FkaW5nOnt0eXBlOkJvb2xlYW59LHNvcnRLZXk6e3R5cGU6U3RyaW5nfSxzb3J0RGVzYzp7dHlwZTpCb29sZWFufX19Zmlyc3RVcGRhdGVkKCl7IiI9PT10aGlzLnVybFNlYXJjaFR5cGUmJih0aGlzLnVybFNlYXJjaFR5cGU9InByZWZpeCIpfV90aW1lZFVwZGF0ZSgpe251bGwhPT10aGlzLm5ld1F1ZXJ5JiYodGhpcy5xdWVyeT10aGlzLm5ld1F1ZXJ5LHRoaXMubmV3UXVlcnk9bnVsbCl9dXBkYXRlZChlKXtpZihlLmhhcygicXVlcnkiKXx8ZS5oYXMoInVybFNlYXJjaFR5cGUiKXx8ZS5oYXMoImN1cnJNaW1lIikpe3RoaXMuZG9Mb2FkUmVzb3VyY2VzKCk7Y29uc3QgdD17cXVlcnk6dGhpcy5xdWVyeSx1cmxTZWFyY2hUeXBlOnRoaXMudXJsU2VhcmNoVHlwZSxjdXJyTWltZTp0aGlzLmN1cnJNaW1lfSxpPSFlLmhhcygiY3Vyck1pbWUiKSYmIWUuaGFzKCJ1cmxTZWFyY2hUeXBlIik7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC10YWItbmF2Iix7ZGV0YWlsOntyZXBsYWNlTG9jOmksZGF0YTp0fX0pKX0oZS5oYXMoInNvcnRLZXkiKXx8ZS5oYXMoInNvcnREZXNjIikpJiZ0aGlzLmZpbHRlcigpfWRvTG9hZFJlc291cmNlcyhlPSExKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKGUmJighdGhpcy50cnlNb3JlfHwhdGhpcy5yZXN1bHRzLmxlbmd0aCkpcmV0dXJuO2lmKHRoaXMubG9hZGluZylyZXR1cm47dGhpcy5sb2FkaW5nPSEwO2NvbnN0IHQ9ImNvbnRhaW5zIiE9PXRoaXMudXJsU2VhcmNoVHlwZT90aGlzLnF1ZXJ5OiIiLGk9dCYmInByZWZpeCI9PT10aGlzLnVybFNlYXJjaFR5cGU/MTowLG89dGhpcy5jdXJyTWltZSxuPW5ldyBVUkxTZWFyY2hQYXJhbXMoe21pbWU6byx1cmw6dCxwcmVmaXg6U3RyaW5nKGkpLGNvdW50OlN0cmluZygxMDApfSk7aWYoZSl7Y29uc3QgZT10aGlzLnJlc3VsdHNbdGhpcy5yZXN1bHRzLmxlbmd0aC0xXTtuLnNldCgiZnJvbU1pbWUiLGUubWltZSksbi5zZXQoImZyb21VcmwiLGUudXJsKSxuLnNldCgiZnJvbVN0YXR1cyIsZS5zdGF0dXMpLG4uc2V0KCJmcm9tVHMiLFN0cmluZyhuZXcgRGF0ZShlLmRhdGUpLmdldFRpbWUoKSkpfWNvbnN0IHI9eWllbGQgZmV0Y2goYCR7dGhpcy5jb2xsSW5mby5hcGlQcmVmaXh9L3VybHM/JHtuLnRvU3RyaW5nKCl9YCkscz15aWVsZCByLmpzb24oKTt0aGlzLnJlc3VsdHM9ZT90aGlzLnJlc3VsdHMuY29uY2F0KHMudXJscyk6cy51cmxzLHRoaXMudHJ5TW9yZT1zLnVybHMubGVuZ3RoPj0xMDAsdGhpcy5maWx0ZXIoKSx0aGlzLmxvYWRpbmc9ITF9KSl9b25DaGFuZ2VUeXBlU2VhcmNoKGUpe3RoaXMuY3Vyck1pbWU9ZS5jdXJyZW50VGFyZ2V0LnZhbHVlfW9uQ2hhbmdlUXVlcnkoZSl7dGhpcy5uZXdRdWVyeT1lLmN1cnJlbnRUYXJnZXQudmFsdWUsdGhpcy5faXZhbCYmd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9pdmFsKSx0aGlzLl9pdmFsPXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5fdGltZWRVcGRhdGUoKSksMjUwKX1vbkNsaWNrVXJsVHlwZShlKXt0aGlzLnVybFNlYXJjaFR5cGU9ZS5jdXJyZW50VGFyZ2V0LnZhbHVlfWZpbHRlcigpe2NvbnN0IGU9W10sdD0iY29udGFpbnMiPT09dGhpcy51cmxTZWFyY2hUeXBlP3RoaXMucXVlcnk6IiI7Zm9yKGNvbnN0IGkgb2YgdGhpcy5yZXN1bHRzKSghdHx8aS51cmwuaW5kZXhPZih0KT49MCkmJmUucHVzaChpKTt0aGlzLmZpbHRlcmVkUmVzdWx0cz1lfW9uU2Nyb2xsKGUpe2NvbnN0IHQ9ZS5jdXJyZW50VGFyZ2V0LGk9dC5zY3JvbGxIZWlnaHQtdC5zY3JvbGxUb3AtdC5jbGllbnRIZWlnaHQ7dGhpcy50cnlNb3JlJiZpPDQwJiZ0aGlzLmRvTG9hZFJlc291cmNlcyghMCl9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgOmhvc3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIG1pbi13aWR0aDogMHB4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KICAgICAgOmhvc3QoLnNpZGViYXIpIC5pcy1oaWRkZW4tdGFibGV0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuaXMtaGlkZGVuLW1vYmlsZSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdCguc2lkZWJhcikgLmxldmVsLAogICAgICA6aG9zdCguc2lkZWJhcikgLmxldmVsLWxlZnQsCiAgICAgIDpob3N0KC5zaWRlYmFyKSAubGV2ZWwtcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuY29sdW1ucyB7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuY29sdW1uIHsKICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubm90aWZpY2F0aW9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAuYWxsLXJlc3VsdHMgewogICAgICAgIG1hcmdpbjogMCAwIDAgMC41ZW07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KICAgICAgLm1haW4tc2Nyb2xsIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIH0KICAgICAgLm1pbmloZWFkIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgICAgLmNvbHVtbnMgewogICAgICAgIG1hcmdpbjogMHB4OwogICAgICB9CiAgICAgIHRoZWFkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIHRhYmxlIHRoOm5vdChbYWxpZ25dKSB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAucmVzdWx0IHsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggI2RiZGJkYiBzb2xpZDsKICAgICAgICBtaW4taGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgICAucmVzdWx0cy1oZWFkIHsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggI2RiZGJkYiBzb2xpZDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgLnJlc3VsdHMtaGVhZCBhIHsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgIH0KICAgICAgLmFsbC1yZXN1bHRzIC5jb2x1bW4gewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KICAgICAgZGl2LnNvcnQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50OwogICAgICAgIG1pbi1oZWlnaHQ6IGZpdC1jb250ZW50OwogICAgICB9CiAgICAgIC5mbGV4LWF1dG8gewogICAgICAgIGZsZXg6IGF1dG87CiAgICAgIH0KICAgICAgLmFzYzphZnRlciB7CiAgICAgICAgY29udGVudDogIuKWvCI7CiAgICAgICAgZm9udC1zaXplOiAwLjc1ZW07CiAgICAgIH0KICAgICAgLmRlc2M6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICLilrIiOwogICAgICAgIGZvbnQtc2l6ZTogMC43NWVtOwogICAgICB9CiAgICAgIC5udW0tcmVzdWx0cyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgIGApfXJlbmRlcigpe3JldHVybiBRYAogICAgICA8ZGl2CiAgICAgICAgcm9sZT0iaGVhZGluZyIKICAgICAgICBhcmlhLWxldmVsPSIke3RoaXMuaXNTaWRlYmFyPyIyIjoiMSJ9IgogICAgICAgIGNsYXNzPSJpcy1zci1vbmx5IgogICAgICA+CiAgICAgICAgVVJMcyBpbiAke3RoaXMuY29sbEluZm8udGl0bGV9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdgogICAgICAgIHJvbGU9ImhlYWRpbmciCiAgICAgICAgYXJpYS1sZXZlbD0iJHt0aGlzLmlzU2lkZWJhcj8iMyI6IjIifSIKICAgICAgICBjbGFzcz0iaXMtc3Itb25seSIKICAgICAgPgogICAgICAgIFNlYXJjaCBhbmQgRmlsdGVyCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24gbGV2ZWwgaXMtbWFyZ2lubGVzcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGV2ZWwtbGVmdCBmbGV4LWF1dG8iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGV2ZWwtaXRlbSBmbGV4LWF1dG8iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXMtaGlkZGVuLW1vYmlsZSI+U2VhcmNoOiZuYnNwOyZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0Ij4KICAgICAgICAgICAgICA8c2VsZWN0IEBjaGFuZ2U9IiR7dGhpcy5vbkNoYW5nZVR5cGVTZWFyY2h9Ij4KICAgICAgICAgICAgICAgICR7RG8uZmlsdGVycy5tYXAoKGU9PlFgCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbgogICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IiR7ZS5maWx0ZXJ9IgogICAgICAgICAgICAgICAgICAgICAgP3NlbGVjdGVkPSIke2UuZmlsdGVyPT09dGhpcy5jdXJyTWltZX0iCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtlLm5hbWV9CiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgIGApKX0KICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIGZsZXgtYXV0byI+CiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImNvbnRyb2wgaGFzLWljb25zLWxlZnQgJHt0aGlzLmxvYWRpbmc/ImlzLWxvYWRpbmciOiIifSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImlucHV0IgogICAgICAgICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy5vbkNoYW5nZVF1ZXJ5fSIKICAgICAgICAgICAgICAgICAgLnZhbHVlPSIke3RoaXMucXVlcnl9IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgVVJMIHRvIFNlYXJjaCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1sZWZ0IgogICAgICAgICAgICAgICAgICA+PGZhLWljb24gLnN2Zz0iJHtJaX0iPjwvZmEtaWNvbgogICAgICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIGxldmVsLXJpZ2h0Ij4KICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAxZW0iIGNsYXNzPSJjb250cm9sIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJyYWRpbyBoYXMtdGV4dC1sZWZ0IgogICAgICAgICAgICAgID48aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InJhZGlvIgogICAgICAgICAgICAgICAgbmFtZT0idXJsdHlwZSIKICAgICAgICAgICAgICAgIHZhbHVlPSJjb250YWlucyIKICAgICAgICAgICAgICAgID9jaGVja2VkPSIkeyJjb250YWlucyI9PT10aGlzLnVybFNlYXJjaFR5cGV9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25DbGlja1VybFR5cGV9IgogICAgICAgICAgICAgIC8+Jm5ic3A7Q29udGFpbnM8L2xhYmVsCiAgICAgICAgICAgID4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJyYWRpbyBoYXMtdGV4dC1sZWZ0IgogICAgICAgICAgICAgID48aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InJhZGlvIgogICAgICAgICAgICAgICAgbmFtZT0idXJsdHlwZSIKICAgICAgICAgICAgICAgIHZhbHVlPSJwcmVmaXgiCiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0iJHsicHJlZml4Ij09PXRoaXMudXJsU2VhcmNoVHlwZX0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkNsaWNrVXJsVHlwZX0iCiAgICAgICAgICAgICAgLz4mbmJzcDtQcmVmaXg8L2xhYmVsCiAgICAgICAgICAgID4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJyYWRpbyBoYXMtdGV4dC1sZWZ0IgogICAgICAgICAgICAgID48aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InJhZGlvIgogICAgICAgICAgICAgICAgbmFtZT0idXJsdHlwZSIKICAgICAgICAgICAgICAgIHZhbHVlPSJleGFjdCIKICAgICAgICAgICAgICAgID9jaGVja2VkPSIkeyJleGFjdCI9PT10aGlzLnVybFNlYXJjaFR5cGV9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25DbGlja1VybFR5cGV9IgogICAgICAgICAgICAgIC8+Jm5ic3A7RXhhY3Q8L2xhYmVsCiAgICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICBpZD0ibnVtLXJlc3VsdHMiCiAgICAgICAgICAgICAgY2xhc3M9Im51bS1yZXN1bHRzIgogICAgICAgICAgICAgIGlzLXB1bGxlZC1yaWdodAogICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgIGFyaWEtYXRvbWljPSJ0cnVlIgogICAgICAgICAgICAgID4ke3RoaXMuZmlsdGVyZWRSZXN1bHRzLmxlbmd0aH0gUmVzdWx0KHMpPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNvcnQtaGVhZGVyIGlzLWhpZGRlbi10YWJsZXQiPgogICAgICAgIDx3ci1zb3J0ZXIKICAgICAgICAgIGlkPSJ1cmxzIgogICAgICAgICAgLnNvcnRLZXk9IiR7dGhpcy5zb3J0S2V5fSIKICAgICAgICAgIC5zb3J0RGVzYz0iJHt0aGlzLnNvcnREZXNjfSIKICAgICAgICAgIC5zb3J0S2V5cz0iJHtEby5zb3J0S2V5c30iCiAgICAgICAgICAuZGF0YT0iJHt0aGlzLmZpbHRlcmVkUmVzdWx0c30iCiAgICAgICAgICBAc29ydC1jaGFuZ2VkPSIke3RoaXMub25Tb3J0Q2hhbmdlZH0iCiAgICAgICAgPgogICAgICAgIDwvd3Itc29ydGVyPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYKICAgICAgICByb2xlPSJoZWFkaW5nIgogICAgICAgIGFyaWEtbGV2ZWw9IiR7dGhpcy5pc1NpZGViYXI/IjMiOiIyIn0iCiAgICAgICAgaWQ9InJlc3VsdHMtaGVhZGluZyIKICAgICAgICBjbGFzcz0iaXMtc3Itb25seSIKICAgICAgPgogICAgICAgIFJlc3VsdHMKICAgICAgPC9kaXY+CgogICAgICA8dGFibGUgY2xhc3M9ImFsbC1yZXN1bHRzIiBhcmlhLWxhYmVsbGVkYnk9InJlc3VsdHMtaGVhZGluZyBudW0tcmVzdWx0cyI+CiAgICAgICAgPHRoZWFkPgogICAgICAgICAgPHRyIGNsYXNzPSJjb2x1bW5zIHJlc3VsdHMtaGVhZCBoYXMtdGV4dC13ZWlnaHQtYm9sZCI+CiAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0iY29sdW1uIGNvbC11cmwgaXMtNiBpcy1oaWRkZW4tbW9iaWxlIj4KICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uU29ydH0iCiAgICAgICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICAgICAgZGF0YS1rZXk9InVybCIKICAgICAgICAgICAgICAgIGNsYXNzPSIkeyJ1cmwiPT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2M/ImRlc2MiOiJhc2MiOiIifSIKICAgICAgICAgICAgICAgID5VUkw8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0iY29sdW1uIGNvbC10cyBpcy0yIGlzLWhpZGRlbi1tb2JpbGUiPgogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICBocmVmPSIjIgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25Tb3J0fSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBkYXRhLWtleT0idHMiCiAgICAgICAgICAgICAgICBjbGFzcz0iJHsidHMiPT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2M/ImRlc2MiOiJhc2MiOiIifSIKICAgICAgICAgICAgICAgID5EYXRlPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L3RoPgogICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9ImNvbHVtbiBjb2wtbWltZSBpcy0zIGlzLWhpZGRlbi1tb2JpbGUiPgogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICBocmVmPSIjIgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25Tb3J0fSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBkYXRhLWtleT0ibWltZSIKICAgICAgICAgICAgICAgIGNsYXNzPSIkeyJtaW1lIj09PXRoaXMuc29ydEtleT90aGlzLnNvcnREZXNjPyJkZXNjIjoiYXNjIjoiIn0iCiAgICAgICAgICAgICAgICA+TWVkaWEgVHlwZTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJjb2x1bW4gY29sLXN0YXR1cyBpcy0xIGlzLWhpZGRlbi1tb2JpbGUiPgogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICBocmVmPSIjIgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25Tb3J0fSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBkYXRhLWtleT0ic3RhdHVzIgogICAgICAgICAgICAgICAgY2xhc3M9IiR7InN0YXR1cyI9PT10aGlzLnNvcnRLZXk/dGhpcy5zb3J0RGVzYz8iZGVzYyI6ImFzYyI6IiJ9IgogICAgICAgICAgICAgICAgPlN0YXR1czwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC90aD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90aGVhZD4KCiAgICAgICAgPHRib2R5IGNsYXNzPSJtYWluLXNjcm9sbCIgQHNjcm9sbD0iJHt0aGlzLm9uU2Nyb2xsfSI+CiAgICAgICAgICAke3RoaXMuc29ydGVkUmVzdWx0cy5sZW5ndGg/dGhpcy5zb3J0ZWRSZXN1bHRzLm1hcCgoZT0+UWAKICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJjb2x1bW5zIHJlc3VsdCI+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2x1bW4gY29sLXVybCBpcy02Ij4KICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJtaW5paGVhZCBpcy1oaWRkZW4tdGFibGV0Ij5VUkw8L3A+CiAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblJlcGxheX0iCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdXJsPSIke2UudXJsfSIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cz0iJHtlLnRzfSIKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iJHtrdCgicmVzb3VyY2VzIixlLnVybCxlLnRzKX0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxrZXl3b3JkLW1hcmsga2V5d29yZHM9IiR7dGhpcy5xdWVyeX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgPiR7ZS51cmx9PC9rZXl3b3JkLW1hcmsKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2x1bW4gY29sLXRzIGlzLTIiPgogICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1pbmloZWFkIGlzLWhpZGRlbi10YWJsZXQiPkRhdGU8L3A+CiAgICAgICAgICAgICAgICAgICAgICAke0F0LmZvcm1hdChuZXcgRGF0ZShlLmRhdGUpKX0KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sdW1uIGNvbC1taW1lIGlzLTMiPgogICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1pbmloZWFkIGlzLWhpZGRlbi10YWJsZXQiPk1lZGlhIFR5cGU8L3A+CiAgICAgICAgICAgICAgICAgICAgICAke2UubWltZX0KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sdW1uIGNvbC1zdGF0dXMgaXMtMSI+CiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWluaWhlYWQgaXMtaGlkZGVuLXRhYmxldCI+U3RhdHVzPC9wPgogICAgICAgICAgICAgICAgICAgICAgJHtlLnN0YXR1c30KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgYCkpOlFgPHRyIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI0Ij48aT5ObyBSZXN1bHRzIEZvdW5kLjwvaT48L3RkPgogICAgICAgICAgICAgIDwvdHI+YH0KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgYH1vblNvcnQoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHQ9ZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1rZXkiKTt0PT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2M9IXRoaXMuc29ydERlc2M6KHRoaXMuc29ydERlc2M9ITEsdGhpcy5zb3J0S2V5PXQpfW9uU29ydENoYW5nZWQoZSl7dGhpcy5zb3J0ZWRSZXN1bHRzPWUuZGV0YWlsLnNvcnRlZERhdGEsdGhpcy5zb3J0S2V5PWUuZGV0YWlsLnNvcnRLZXksdGhpcy5zb3J0RGVzYz1lLmRldGFpbC5zb3J0RGVzY31vblJlcGxheShlKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD17dXJsOmUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtdXJsIiksdHM6ZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS10cyIpfTtyZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC10YWItbmF2Iix7ZGV0YWlsOntkYXRhOnR9fSkpLCExfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLWNvbGwtcmVzb3VyY2VzIixEbyk7Y29uc3QgRm89ZG9jdW1lbnQuY3VycmVudFNjcmlwdCYmZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7bGV0IE1vPSIiO2NsYXNzIFJvIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudXJsPSIiLHRoaXMudHM9IiIsdGhpcy5xdWVyeT0iIix0aGlzLnZpZXc9InJlcGxheSIsdGhpcy5lbWJlZD1udWxsLHRoaXMucmVwbGF5YmFzZT0iLi9yZXBsYXkvIix0aGlzLnN3TmFtZT0ic3cuanMiLHRoaXMuY29sbD0iIix0aGlzLmNvbmZpZz0iIix0aGlzLmluaXRlZD0hMSx0aGlzLnBhcmFtU3RyaW5nPW51bGwsdGhpcy5kZWVwTGluaz0hMSx0aGlzLnVwZGF0ZUZhdmljb25zPSExLHRoaXMuc2FuZGJveD0hMSx0aGlzLm5vU2FuZGJveD1udWxsLHRoaXMubm9XZWJXb3JrZXI9ITEsdGhpcy5ub0NhY2hlPSExLHRoaXMudXNlQWRibG9jaz0hMSx0aGlzLmFkYmxvY2tSdWxlc1VybD0iLi9hZGJsb2NrL2FkYmxvY2suZ3oiLHRoaXMubmV3V2luZG93QmFzZT0iIix0aGlzLmxvYWRpbmc9IiIsdGhpcy51c2VSdWZmbGU9ITEsdGhpcy5yZXBsYXlmaWxlPU1vLHRoaXMubWFpbkVsZW1lbnROYW1lPSJyZXBsYXktYXBwLW1haW4iLHRoaXMuYXBwTmFtZT0iUmVwbGF5V2ViLnBhZ2UiLHRoaXMuY3VzdG9tQ29uZmlnPW51bGwsdGhpcy5yZWxvYWRDb3VudD0wfXN0YXRpYyBzZXREZWZhdWx0UmVwbGF5RmlsZShlKXtNbz1lfWRvUmVnaXN0ZXIoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9bmV3IFVSTCh0aGlzLnJlcGxheWJhc2Usd2luZG93LmxvY2F0aW9uLmhyZWYpO2lmKHRoaXMuaXNDcm9zc09yaWdpbj1lLm9yaWdpbiE9PXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sdGhpcy5pc0Nyb3NzT3JpZ2luKXJldHVybiB2b2lkKHRoaXMuaW5pdGVkPSEwKTtjb25zdCB0PXRoaXMuc3dOYW1lKyI/c2VydmVJbmRleD0xIixpPXRoaXMuYXBwTmFtZSxvPXRoaXMucmVwbGF5YmFzZSxuPXRoaXMucmVxdWlyZVN1YmRvbWFpbklmcmFtZTt0aGlzLnN3bWFuYWdlcj1uZXcgaXQoe25hbWU6dCxzY29wZTpvLHJlcXVpcmVTdWJkb21haW5JZnJhbWU6bixhcHBOYW1lOml9KTt0cnl7eWllbGQgdGhpcy5zd21hbmFnZXIucmVnaXN0ZXIoKSx0aGlzLmluaXRlZD0hMH1jYXRjaChlKXt0aGlzLmVycm9yTWVzc2FnZT10aGlzLnN3bWFuYWdlci5yZW5kZXJFcnJvclJlcG9ydCgpfX0pKX1mdWxsUmVsb2FkKCl7dmFyIGU7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZighKG51bGw9PT0oZT10aGlzLmlmcmFtZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY29udGVudFdpbmRvdykpcmV0dXJuITE7Y29uc3QgdD1PZSsiL2MvIit0aGlzLmNvbGwrIj9yZWxvYWQ9MSI7cmV0dXJuIDIwMD09PSh5aWVsZCB0aGlzLmlmcmFtZS5jb250ZW50V2luZG93LmZldGNoKHQse21ldGhvZDoiREVMRVRFIn0pKS5zdGF0dXMmJih0aGlzLmlmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlbG9hZCgpLCEwKX0pKX1oYW5kbGVNZXNzYWdlKGUpe2lmKHRoaXMuaWZyYW1lJiZlLnNvdXJjZT09PXRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3cpc3dpdGNoKGUuZGF0YS50eXBlKXtjYXNlInVybGNoYW5nZSI6dGhpcy5kZWVwTGluayYmdGhpcy5oYW5kbGVVcmxDaGFuZ2VNZXNzYWdlKGUuZGF0YSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicndwLXVybC1jaGFuZ2UiLHtkZXRhaWw6ZS5kYXRhfSkpO2JyZWFrO2Nhc2UicGFnZS1sb2FkaW5nIjp0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyd3AtcGFnZS1sb2FkaW5nIix7ZGV0YWlsOmUuZGF0YX0pKTticmVhaztjYXNlImZhdmljb25zIjp0aGlzLnVwZGF0ZUZhdmljb25zJiZXZShlLmRhdGEpfX1oYW5kbGVVcmxDaGFuZ2VNZXNzYWdlKGUpe2NvbnN0e3VybDp0LHRzOmksdmlldzpvLHF1ZXJ5Om4sdGl0bGU6cn09ZTtyJiYodGhpcy50aXRsZT1yKTtjb25zdCBzPXt9O3QmJihzLnVybD10KSxpJiYocy50cz1pKSxuJiYocy5xdWVyeT1uKSxvJiYhdCYmKHMudmlldz1vKTtjb25zdCBhPW5ldyBVUkxTZWFyY2hQYXJhbXMocyksbD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtsLmhhc2g9IiMiK2EudG9TdHJpbmcoKSx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sIiIsbCl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5ub1NhbmRib3gmJmNvbnNvbGUud2FybigiVGhlIG5vU2FuZGJveCBmbGFnIGlzIGRlcHJlY2F0ZWQuIFJlcGxheVdlYi5wYWdlIGRvZXMgbm90IGFkZCBhIHNhbmRib3ggYnkgZGVmYXVsdC4gVG8gZW5hYmxlIHNhbmRib3hpbmcsIHVzZSAnc2FuZGJveCcgZmxhZyBpbnN0ZWFkLiBUaGlzIG1heSByZXN1bHQgaW4gUERGcyBub3QgbG9hZGluZyBhbmQgcGFnZXMgb3BlbmluZyBpbiBuZXcgd2luZG93cywgYnV0IG1heSBiZSBtb3JlIHNlY3VyZSBpbiBzb21lIHNpdHVhdGlvbnMiKSx0aGlzLmRvUmVnaXN0ZXIoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKGU9PnRoaXMuaGFuZGxlTWVzc2FnZShlKSkpLHRoaXMuZGVlcExpbmsmJih0aGlzLnVwZGF0ZUZyb21IYXNoKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLCgoKT0+dGhpcy51cGRhdGVGcm9tSGFzaCgpKSkpLHRoaXMubG9hZEJyb3dzZXJEZWZhdWx0cygpfWxvYWRCcm93c2VyRGVmYXVsdHMoKXt2YXIgZTt2b2lkIDAhPT13aW5kb3cuR2VzdHVyZUV2ZW50JiZ2b2lkIDA9PT13aW5kb3cuU2hhcmVkV29ya2VyJiYodGhpcy5ub1dlYldvcmtlcj0hMCksKG51bGw9PT0oZT1uYXZpZ2F0b3Iuc3RvcmFnZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZXN0aW1hdGUpfHwodGhpcy5ub0NhY2hlPSEwKX11cGRhdGVGcm9tSGFzaCgpe2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKSk7ZS5oYXMoInVybCIpJiYodGhpcy51cmw9ZS5nZXQoInVybCIpKSxlLmhhcygidHMiKSYmKHRoaXMudHM9ZS5nZXQoInRzIikpLGUuaGFzKCJxdWVyeSIpJiYodGhpcy5xdWVyeT1lLmdldCgicXVlcnkiKSksZS5oYXMoInZpZXciKSYmKHRoaXMudmlldz1lLmdldCgidmlldyIpKX1tZXJnZUNvbmZpZ3MoKXtpZighdGhpcy5jdXN0b21Db25maWcpcmV0dXJuIHRoaXMuY29uZmlnO2lmKHRoaXMuY29uZmlnKXtjb25zdCBlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmN1c3RvbUNvbmZpZyksSlNPTi5wYXJzZSh0aGlzLmNvbmZpZykpO3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1yZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21Db25maWcpfXVwZGF0ZWQoZSl7aWYoZS5oYXMoInVybCIpfHxlLmhhcygidHMiKXx8ZS5oYXMoInF1ZXJ5Iil8fGUuaGFzKCJ2aWV3Iil8fGUuaGFzKCJzb3VyY2UiKXx8ZS5oYXMoInNyYyIpKXt0aGlzLmVtYmVkPXRoaXMuZW1iZWR8fCJkZWZhdWx0Iix0aGlzLnNyYyYmKHRoaXMuc291cmNlPXRoaXMuc3JjKTtjb25zdCBlPW5ldyBVUkwodGhpcy5zb3VyY2UsZG9jdW1lbnQuYmFzZVVSSSksdD10aGlzLm1lcmdlQ29uZmlncygpLGk9e3NvdXJjZTplLGN1c3RvbUNvbGw6dGhpcy5jb2xsLGNvbmZpZzp0LGJhc2VQYWdlVXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0sYmFzZVVybFNvdXJjZVByZWZpeDp0aGlzLm5ld1dpbmRvd0Jhc2UsZW1iZWQ6dGhpcy5lbWJlZH07dGhpcy5kZWVwTGlua3x8aS5iYXNlVXJsU291cmNlUHJlZml4fHwoaS5iYXNlVXJsU291cmNlUHJlZml4PSJodHRwczovL3JlcGxheXdlYi5wYWdlLyIpLHRoaXMubm9XZWJXb3JrZXImJihpLm5vV2ViV29ya2VyPSIxIiksdGhpcy5ub0NhY2hlJiYoaS5ub0NhY2hlPSIxIiksdGhpcy5oaWRlT2Zmc2NyZWVuJiYoaS5oaWRlT2Zmc2NyZWVuPSIxIiksImVhZ2VyIj09PXRoaXMubG9hZGluZyYmKGkubG9hZGluZz0iZWFnZXIiKSwic3cuanMiIT09dGhpcy5zd05hbWUmJihpLnN3TmFtZT10aGlzLnN3TmFtZSksdGhpcy51c2VSdWZmbGUmJihpLnJ1ZmZsZT0iMSIpLHRoaXMudXNlQWRibG9jayYmdGhpcy5hZGJsb2NrUnVsZXNVcmwmJihpLmFkYmxvY2tVcmw9dGhpcy5hZGJsb2NrUnVsZXNVcmwpLHRoaXMucGFyYW1TdHJpbmc9bmV3IFVSTFNlYXJjaFBhcmFtcyhpKS50b1N0cmluZygpO2NvbnN0IG89e3VybDp0aGlzLnVybCx0czp0aGlzLnRzLHF1ZXJ5OnRoaXMucXVlcnl9O3RoaXMudXJsfHwoby52aWV3PXRoaXMudmlldyksdGhpcy5oYXNoU3RyaW5nPW5ldyBVUkxTZWFyY2hQYXJhbXMobykudG9TdHJpbmcoKX19c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgLmxvZ28gewogICAgICAgIG1hcmdpbjogMWVtOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQogICAgICAuZXJyb3IgewogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLmZ1bGwtd2lkdGggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIGlmcmFtZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBtYXJnaW46IDBweDsKICAgICAgfQogICAgICA6aG9zdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICBgKX1yZW5kZXIoKXtyZXR1cm4gUWAKICAgICAgJHt0aGlzLnBhcmFtU3RyaW5nJiZ0aGlzLmhhc2hTdHJpbmcmJnRoaXMuaW5pdGVkP1FgCiAgICAgICAgICAgIDxpZnJhbWUKICAgICAgICAgICAgICBzYW5kYm94PSIkeyRlKHRoaXMuc2FuZGJveD8iYWxsb3ctZG93bmxvYWRzIGFsbG93LW1vZGFscyBhbGxvdy1vcmllbnRhdGlvbi1sb2NrIGFsbG93LXBvaW50ZXItbG9jayAgICAgICAgIGFsbG93LXBvcHVwcyBhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3ggYWxsb3ctcHJlc2VudGF0aW9uIGFsbG93LXNjcmlwdHMgICAgICAgICBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1mb3JtcyI6dm9pZCAwKX0iCiAgICAgICAgICAgICAgQGxvYWQ9IiR7dGhpcy5vbkxvYWR9IgogICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnJlcGxheWJhc2V9JHt0aGlzLnJlcGxheWZpbGV9PyR7dGhpcy5wYXJhbVN0cmluZ30jJHt0aGlzLmhhc2hTdHJpbmd9IgogICAgICAgICAgICAgIGFsbG93PSJhdXRvcGxheSAqOyBmdWxsc2NyZWVuIgogICAgICAgICAgICAgIHRpdGxlPSJSZXBsYXkgb2YgJHt0aGlzLnRpdGxlP2Ake3RoaXMudGl0bGV9OmA6IiJ9ICR7dGhpcy51cmx9IgogICAgICAgICAgICA+PC9pZnJhbWU+CiAgICAgICAgICBgOlFgYH0KICAgICAgJHt0aGlzLmVycm9yTWVzc2FnZX0KICAgIGB9b25Mb2FkKGUpe2lmKHRoaXMuaXNDcm9zc09yaWdpbilyZXR1cm47Y29uc3QgdD1lLnRhcmdldC5jb250ZW50V2luZG93LGk9ZS50YXJnZXQuY29udGVudERvY3VtZW50O2lmKHQubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXImJiF0Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXImJnRoaXMucmVsb2FkQ291bnQ8PTIpcmV0dXJuIHRoaXMucmVsb2FkQ291bnQrKyx2b2lkIHNldFRpbWVvdXQoKCgpPT50LmxvY2F0aW9uLnJlbG9hZCgpKSwxMDApO2lmKHRoaXMucmVsb2FkQ291bnQ9MCx0LmN1c3RvbUVsZW1lbnRzLmdldCh0aGlzLm1haW5FbGVtZW50TmFtZSkpcmV0dXJuO2NvbnN0IG89aS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtvLnNyYz1GbyxpLmhlYWQuYXBwZW5kQ2hpbGQobyl9fXQoW3llKHt0eXBlOlN0cmluZ30pXSxSby5wcm90b3R5cGUsInVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJ0cyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJxdWVyeSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJzb3VyY2UiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwic3JjIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxSby5wcm90b3R5cGUsInZpZXciLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwiZW1iZWQiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwicmVwbGF5YmFzZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJzd05hbWUiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwidGl0bGUiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwiY29sbCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJjb25maWciLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsImluaXRlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJwYXJhbVN0cmluZyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJoYXNoU3RyaW5nIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sUm8ucHJvdG90eXBlLCJkZWVwTGluayIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFJvLnByb3RvdHlwZSwidXBkYXRlRmF2aWNvbnMiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsInNhbmRib3giLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsIm5vU2FuZGJveCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFJvLnByb3RvdHlwZSwibm9XZWJXb3JrZXIiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsIm5vQ2FjaGUiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsImhpZGVPZmZzY3JlZW4iLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsInVzZUFkYmxvY2siLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwiYWRibG9ja1J1bGVzVXJsIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxSby5wcm90b3R5cGUsIm5ld1dpbmRvd0Jhc2UiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwiZXJyb3JNZXNzYWdlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sUm8ucHJvdG90eXBlLCJyZXF1aXJlU3ViZG9tYWluSWZyYW1lIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxSby5wcm90b3R5cGUsImxvYWRpbmciLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsInVzZVJ1ZmZsZSIsdm9pZCAwKSx0KFtTZSgiaWZyYW1lIildLFJvLnByb3RvdHlwZSwiaWZyYW1lIix2b2lkIDApLGZ1bmN0aW9uKCl7aSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2N1c3RvbUVsZW1lbnRzLmRlZmluZSgicmVwbGF5LXdlYi1wYWdlIixSbyl9KSl9KCk7Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNvbnN0IE9vPVN5bWJvbC5mb3IoIiIpLFVvPWU9PntpZihlPy5yPT09T28pcmV0dXJuIGU/Ll8kbGl0U3RhdGljJH0sQm89KGUsLi4udCk9Pih7XyRsaXRTdGF0aWMkOnQucmVkdWNlKCgodCxpLG8pPT50KyhlPT57aWYodm9pZCAwIT09ZS5fJGxpdFN0YXRpYyQpcmV0dXJuIGUuXyRsaXRTdGF0aWMkO3Rocm93IEVycm9yKGBWYWx1ZSBwYXNzZWQgdG8gJ2xpdGVyYWwnIGZ1bmN0aW9uIG11c3QgYmUgYSAnbGl0ZXJhbCcgcmVzdWx0OiAke2V9LiBVc2UgJ3Vuc2FmZVN0YXRpYycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dFxuICAgICAgICAgICAgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LmApfSkoaSkrZVtvKzFdKSxlWzBdKSxyOk9vfSksTm89bmV3IE1hcCxxbz1lPT4odCwuLi5pKT0+e2NvbnN0IG89aS5sZW5ndGg7bGV0IG4scjtjb25zdCBzPVtdLGE9W107bGV0IGwsYz0wLGQ9ITE7Zm9yKDtjPG87KXtmb3IobD10W2NdO2M8byYmdm9pZCAwIT09KHI9aVtjXSxuPVVvKHIpKTspbCs9bit0WysrY10sZD0hMDtjIT09byYmYS5wdXNoKHIpLHMucHVzaChsKSxjKyt9aWYoYz09PW8mJnMucHVzaCh0W29dKSxkKXtjb25zdCBlPXMuam9pbigiJCRsaXQkJCIpO3ZvaWQgMD09PSh0PU5vLmdldChlKSkmJihzLnJhdz1zLE5vLnNldChlLHQ9cykpLGk9YX1yZXR1cm4gZSh0LC4uLmkpfSxqbz1xbyhRKSxIbz0ocW8oWiksZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpKTtmdW5jdGlvbiBXbyhlKXtjb25zdCB0PSImIitlKyI7IjtIby5pbm5lckhUTUw9dDtjb25zdCBpPUhvLnRleHRDb250ZW50O3JldHVybig1OSE9PWkuY2hhckNvZGVBdChpLmxlbmd0aC0xKXx8InNlbWkiPT09ZSkmJihpIT09dCYmaSl9ZnVuY3Rpb24gVm8oZSx0LGksbyl7Y29uc3Qgbj1lLmxlbmd0aDtsZXQgcixzPTA7aWYodD10PDA/LXQ+bj8wOm4rdDp0Pm4/bjp0LGk9aT4wP2k6MCxvLmxlbmd0aDwxZTQpcj1BcnJheS5mcm9tKG8pLHIudW5zaGlmdCh0LGkpLGUuc3BsaWNlKC4uLnIpO2Vsc2UgZm9yKGkmJmUuc3BsaWNlKHQsaSk7czxvLmxlbmd0aDspcj1vLnNsaWNlKHMscysxZTQpLHIudW5zaGlmdCh0LDApLGUuc3BsaWNlKC4uLnIpLHMrPTFlNCx0Kz0xZTR9ZnVuY3Rpb24gR28oZSx0KXtyZXR1cm4gZS5sZW5ndGg+MD8oVm8oZSxlLmxlbmd0aCwwLHQpLGUpOnR9Y29uc3QgS289e30uaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gWW8oZSx0KXtsZXQgaTtmb3IoaSBpbiB0KXtjb25zdCBvPShLby5jYWxsKGUsaSk/ZVtpXTp2b2lkIDApfHwoZVtpXT17fSksbj10W2ldO2xldCByO2lmKG4pZm9yKHIgaW4gbil7S28uY2FsbChvLHIpfHwob1tyXT1bXSk7Y29uc3QgZT1uW3JdO1FvKG9bcl0sQXJyYXkuaXNBcnJheShlKT9lOmU/W2VdOltdKX19fWZ1bmN0aW9uIFFvKGUsdCl7bGV0IGk9LTE7Y29uc3Qgbz1bXTtmb3IoOysraTx0Lmxlbmd0aDspKCJhZnRlciI9PT10W2ldLmFkZD9lOm8pLnB1c2godFtpXSk7Vm8oZSwwLDAsbyl9ZnVuY3Rpb24gWm8oZSx0KXtsZXQgaTtmb3IoaSBpbiB0KXtjb25zdCBvPShLby5jYWxsKGUsaSk/ZVtpXTp2b2lkIDApfHwoZVtpXT17fSksbj10W2ldO2xldCByO2lmKG4pZm9yKHIgaW4gbilvW3JdPW5bcl19fWNvbnN0IEpvPXsnIic6InF1b3QiLCImIjoiYW1wIiwiPCI6Imx0IiwiPiI6Imd0In07ZnVuY3Rpb24gWG8oZSl7cmV0dXJuIGUucmVwbGFjZSgvWyImPD5dL2csKGZ1bmN0aW9uKGUpe3JldHVybiImIitKb1tlXSsiOyJ9KSl9ZnVuY3Rpb24gZW4oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvXiB8ICQvZywiIikudG9Mb3dlckNhc2UoKS50b1VwcGVyQ2FzZSgpfWNvbnN0IHRuPXBuKC9bQS1aYS16XS8pLG9uPXBuKC9bXGRBLVphLXpdLyksbm49cG4oL1sjLScqK1wtLTk9P0EtWl4tfl0vKTtmdW5jdGlvbiBybihlKXtyZXR1cm4gbnVsbCE9PWUmJihlPDMyfHwxMjc9PT1lKX1jb25zdCBzbj1wbigvXGQvKSxhbj1wbigvW1xkQS1GYS1mXS8pLGxuPXBuKC9bIS0vOi1AWy1gey1+XS8pO2Z1bmN0aW9uIGNuKGUpe3JldHVybiBudWxsIT09ZSYmZTwtMn1mdW5jdGlvbiBkbihlKXtyZXR1cm4gbnVsbCE9PWUmJihlPDB8fDMyPT09ZSl9ZnVuY3Rpb24gaG4oZSl7cmV0dXJuLTI9PT1lfHwtMT09PWV8fDMyPT09ZX1jb25zdCB1bj1wbigvXHB7UH18XHB7U30vdSksZm49cG4oL1xzLyk7ZnVuY3Rpb24gcG4oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dCYmdD4tMSYmZS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUodCkpfX1mdW5jdGlvbiBtbihlLHQpe2NvbnN0IGk9WG8oZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtsZXQgaT0tMSxvPTAsbj0wO2Zvcig7KytpPGUubGVuZ3RoOyl7Y29uc3Qgcj1lLmNoYXJDb2RlQXQoaSk7bGV0IHM9IiI7aWYoMzc9PT1yJiZvbihlLmNoYXJDb2RlQXQoaSsxKSkmJm9uKGUuY2hhckNvZGVBdChpKzIpKSluPTI7ZWxzZSBpZihyPDEyOCkvWyEjJCYtOz0/LVpfYS16fl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShyKSl8fChzPVN0cmluZy5mcm9tQ2hhckNvZGUocikpO2Vsc2UgaWYocj41NTI5NSYmcjw1NzM0NCl7Y29uc3QgdD1lLmNoYXJDb2RlQXQoaSsxKTtyPDU2MzIwJiZ0PjU2MzE5JiZ0PDU3MzQ0PyhzPVN0cmluZy5mcm9tQ2hhckNvZGUocix0KSxuPTEpOnM9Iu+/vSJ9ZWxzZSBzPVN0cmluZy5mcm9tQ2hhckNvZGUocik7cyYmKHQucHVzaChlLnNsaWNlKG8saSksZW5jb2RlVVJJQ29tcG9uZW50KHMpKSxvPWkrbisxLHM9IiIpLG4mJihpKz1uLG49MCl9cmV0dXJuIHQuam9pbigiIikrZS5zbGljZShvKX0oZXx8IiIpKTtpZighdClyZXR1cm4gaTtjb25zdCBvPWkuaW5kZXhPZigiOiIpLG49aS5pbmRleE9mKCI/Iikscj1pLmluZGV4T2YoIiMiKSxzPWkuaW5kZXhPZigiLyIpO3JldHVybiBvPDB8fHM+LTEmJm8+c3x8bj4tMSYmbz5ufHxyPi0xJiZvPnJ8fHQudGVzdChpLnNsaWNlKDAsbykpP2k6IiJ9Y29uc3QgYm49e30uaGFzT3duUHJvcGVydHksZ249L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSx2bj0vXmh0dHBzPyQvaTtmdW5jdGlvbiB3bihlKXtjb25zdCB0PWV8fHt9O2xldCBpPSEwO2NvbnN0IG89e30sbj1bW11dLHI9W10scz1bXSxhPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9e307bGV0IGk9LTE7Zm9yKDsrK2k8ZS5sZW5ndGg7KVpvKHQsZVtpXSk7cmV0dXJuIHR9KFt7ZW50ZXI6e2Jsb2NrUXVvdGU6ZnVuY3Rpb24oKXtzLnB1c2goITEpLHcoKSxiKCI8YmxvY2txdW90ZT4iKX0sY29kZUZlbmNlZDpmdW5jdGlvbigpe3coKSxiKCI8cHJlPjxjb2RlIiksdSgiZmVuY2VzQ291bnQiLDApfSxjb2RlRmVuY2VkRmVuY2VJbmZvOnAsY29kZUZlbmNlZEZlbmNlTWV0YTpwLGNvZGVJbmRlbnRlZDpmdW5jdGlvbigpe3coKSxiKCI8cHJlPjxjb2RlPiIpfSxjb2RlVGV4dDpmdW5jdGlvbigpe3UoImluQ29kZVRleHQiLCEwKSxiKCI8Y29kZT4iKX0sY29udGVudDpmdW5jdGlvbigpe3UoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX0sZGVmaW5pdGlvbjpmdW5jdGlvbigpe3AoKSxyLnB1c2goe30pfSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6ZnVuY3Rpb24oKXtwKCksdSgiaWdub3JlRW5jb2RlIiwhMCl9LGRlZmluaXRpb25MYWJlbFN0cmluZzpwLGRlZmluaXRpb25UaXRsZVN0cmluZzpwLGVtcGhhc2lzOmZ1bmN0aW9uKCl7YigiPGVtPiIpfSxodG1sRmxvdzpmdW5jdGlvbigpe3coKSxJKCl9LGh0bWxUZXh0OkksaW1hZ2U6ZnVuY3Rpb24oKXtyLnB1c2goe2ltYWdlOiEwfSksaT12b2lkIDB9LGxhYmVsOnAsbGluazpmdW5jdGlvbigpe3IucHVzaCh7fSl9LGxpc3RJdGVtTWFya2VyOmZ1bmN0aW9uKCl7ZigiZXhwZWN0Rmlyc3RJdGVtIik/YigiPiIpOmsoKTt3KCksYigiPGxpPiIpLHUoImV4cGVjdEZpcnN0SXRlbSIpLHUoImxhc3RXYXNUYWciKX0sbGlzdEl0ZW1WYWx1ZTpmdW5jdGlvbihlKXtpZihmKCJleHBlY3RGaXJzdEl0ZW0iKSl7Y29uc3QgdD1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZShlKSwxMCk7MSE9PXQmJmIoJyBzdGFydD0iJyt5KFN0cmluZyh0KSkrJyInKX19LGxpc3RPcmRlcmVkOmZ1bmN0aW9uKGUpe3MucHVzaCghZS5fbG9vc2UpLHcoKSxiKCI8b2wiKSx1KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX0sbGlzdFVub3JkZXJlZDpmdW5jdGlvbihlKXtzLnB1c2goIWUuX2xvb3NlKSx3KCksYigiPHVsIiksdSgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9LHBhcmFncmFwaDpmdW5jdGlvbigpe3Nbcy5sZW5ndGgtMV18fCh3KCksYigiPHA+IikpO3UoInNsdXJwQWxsTGluZUVuZGluZ3MiKX0scmVmZXJlbmNlOnAscmVzb3VyY2U6ZnVuY3Rpb24oKXtwKCkscltyLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj0iIn0scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpmdW5jdGlvbigpe3AoKSx1KCJpZ25vcmVFbmNvZGUiLCEwKX0scmVzb3VyY2VUaXRsZVN0cmluZzpwLHNldGV4dEhlYWRpbmc6ZnVuY3Rpb24oKXtwKCksdSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfSxzdHJvbmc6ZnVuY3Rpb24oKXtiKCI8c3Ryb25nPiIpfX0sZXhpdDp7YXR4SGVhZGluZzpmdW5jdGlvbigpe2IoIjwvaCIrZigiaGVhZGluZ1JhbmsiKSsiPiIpLHUoImhlYWRpbmdSYW5rIil9LGF0eEhlYWRpbmdTZXF1ZW5jZTpmdW5jdGlvbihlKXtpZihmKCJoZWFkaW5nUmFuayIpKXJldHVybjt1KCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShlKS5sZW5ndGgpLHcoKSxiKCI8aCIrZigiaGVhZGluZ1JhbmsiKSsiPiIpfSxhdXRvbGlua0VtYWlsOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5zbGljZVNlcmlhbGl6ZShlKTtiKCc8YSBocmVmPSInK21uKCJtYWlsdG86Iit0KSsnIj4nKSxnKHkodCkpLGIoIjwvYT4iKX0sYXV0b2xpbmtQcm90b2NvbDpmdW5jdGlvbihlKXtjb25zdCBpPXRoaXMuc2xpY2VTZXJpYWxpemUoZSk7YignPGEgaHJlZj0iJyttbihpLHQuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6Z24pKyciPicpLGcoeShpKSksYigiPC9hPiIpfSxibG9ja1F1b3RlOmZ1bmN0aW9uKCl7cy5wb3AoKSx3KCksYigiPC9ibG9ja3F1b3RlPiIpLHUoInNsdXJwQWxsTGluZUVuZGluZ3MiKX0sY2hhcmFjdGVyRXNjYXBlVmFsdWU6eixjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpMLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6TCxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpmdW5jdGlvbihlKXtjb25zdCB0PXRoaXMuc2xpY2VTZXJpYWxpemUoZSk7Zyh5KGYoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT9mdW5jdGlvbihlLHQpe2NvbnN0IGk9TnVtYmVyLnBhcnNlSW50KGUsdCk7cmV0dXJuIGk8OXx8MTE9PT1pfHxpPjEzJiZpPDMyfHxpPjEyNiYmaTwxNjB8fGk+NTUyOTUmJmk8NTczNDR8fGk+NjQ5NzUmJmk8NjUwMDh8fCEoNjU1MzUmfmkpfHw2NTUzND09KDY1NTM1JmkpfHxpPjExMTQxMTE/Iu+/vSI6U3RyaW5nLmZyb21Db2RlUG9pbnQoaSl9KHQsImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPT09ZigiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpPzEwOjE2KTpXbyh0KSkpLHUoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKX0sY29kZUZlbmNlZDpTLGNvZGVGZW5jZWRGZW5jZTpmdW5jdGlvbigpe2NvbnN0IGU9ZigiZmVuY2VzQ291bnQiKXx8MDtlfHwoYigiPiIpLHUoInNsdXJwT25lTGluZUVuZGluZyIsITApKTt1KCJmZW5jZXNDb3VudCIsZSsxKX0sY29kZUZlbmNlZEZlbmNlSW5mbzpmdW5jdGlvbigpe2IoJyBjbGFzcz0ibGFuZ3VhZ2UtJyttKCkrJyInKX0sY29kZUZlbmNlZEZlbmNlTWV0YTp4LGNvZGVGbG93VmFsdWU6ZnVuY3Rpb24oZSl7Zyh5KHRoaXMuc2xpY2VTZXJpYWxpemUoZSkpKSx1KCJmbG93Q29kZVNlZW5EYXRhIiwhMCl9LGNvZGVJbmRlbnRlZDpTLGNvZGVUZXh0OmZ1bmN0aW9uKCl7dSgiaW5Db2RlVGV4dCIpLGIoIjwvY29kZT4iKX0sY29kZVRleHREYXRhOnosZGF0YTp6LGRlZmluaXRpb246ZnVuY3Rpb24oKXtjb25zdCBlPWVuKHJbci5sZW5ndGgtMV0ubGFiZWxJZCk7bSgpLGJuLmNhbGwobyxlKXx8KG9bZV09cltyLmxlbmd0aC0xXSk7ci5wb3AoKX0sZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOmZ1bmN0aW9uKCl7cltyLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj1tKCksdSgiaWdub3JlRW5jb2RlIil9LGRlZmluaXRpb25MYWJlbFN0cmluZzpmdW5jdGlvbihlKXttKCkscltyLmxlbmd0aC0xXS5sYWJlbElkPXRoaXMuc2xpY2VTZXJpYWxpemUoZSl9LGRlZmluaXRpb25UaXRsZVN0cmluZzpmdW5jdGlvbigpe3Jbci5sZW5ndGgtMV0udGl0bGU9bSgpfSxlbXBoYXNpczpmdW5jdGlvbigpe2IoIjwvZW0+Iil9LGhhcmRCcmVha0VzY2FwZTpfLGhhcmRCcmVha1RyYWlsaW5nOl8saHRtbEZsb3c6QyxodG1sRmxvd0RhdGE6eixodG1sVGV4dDpDLGh0bWxUZXh0RGF0YTp6LGltYWdlOiQsbGFiZWw6ZnVuY3Rpb24oKXtyW3IubGVuZ3RoLTFdLmxhYmVsPW0oKX0sbGFiZWxUZXh0OmZ1bmN0aW9uKGUpe3Jbci5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKGUpfSxsaW5lRW5kaW5nOmZ1bmN0aW9uKGUpe2lmKGYoInNsdXJwQWxsTGluZUVuZGluZ3MiKSlyZXR1cm47aWYoZigic2x1cnBPbmVMaW5lRW5kaW5nIikpcmV0dXJuIHZvaWQgdSgic2x1cnBPbmVMaW5lRW5kaW5nIik7aWYoZigiaW5Db2RlVGV4dCIpKXJldHVybiB2b2lkIGcoIiAiKTtnKHkodGhpcy5zbGljZVNlcmlhbGl6ZShlKSkpfSxsaW5rOiQsbGlzdE9yZGVyZWQ6ZnVuY3Rpb24oKXtrKCkscy5wb3AoKSx2KCksYigiPC9vbD4iKX0sbGlzdFVub3JkZXJlZDpmdW5jdGlvbigpe2soKSxzLnBvcCgpLHYoKSxiKCI8L3VsPiIpfSxwYXJhZ3JhcGg6ZnVuY3Rpb24oKXtzW3MubGVuZ3RoLTFdP3UoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKTpiKCI8L3A+Iil9LHJlZmVyZW5jZTp4LHJlZmVyZW5jZVN0cmluZzpmdW5jdGlvbihlKXtyW3IubGVuZ3RoLTFdLnJlZmVyZW5jZUlkPXRoaXMuc2xpY2VTZXJpYWxpemUoZSl9LHJlc291cmNlOngscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpmdW5jdGlvbigpe3Jbci5sZW5ndGgtMV0uZGVzdGluYXRpb249bSgpLHUoImlnbm9yZUVuY29kZSIpfSxyZXNvdXJjZVRpdGxlU3RyaW5nOmZ1bmN0aW9uKCl7cltyLmxlbmd0aC0xXS50aXRsZT1tKCl9LHNldGV4dEhlYWRpbmc6ZnVuY3Rpb24oKXtjb25zdCBlPW0oKTt3KCksYigiPGgiK2YoImhlYWRpbmdSYW5rIikrIj4iKSxnKGUpLGIoIjwvaCIrZigiaGVhZGluZ1JhbmsiKSsiPiIpLHUoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx1KCJoZWFkaW5nUmFuayIpfSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOmZ1bmN0aW9uKGUpe3UoImhlYWRpbmdSYW5rIiw2MT09PXRoaXMuc2xpY2VTZXJpYWxpemUoZSkuY2hhckNvZGVBdCgwKT8xOjIpfSxzZXRleHRIZWFkaW5nVGV4dDpmdW5jdGlvbigpe3UoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX0sc3Ryb25nOmZ1bmN0aW9uKCl7YigiPC9zdHJvbmc+Iil9LHRoZW1hdGljQnJlYWs6ZnVuY3Rpb24oKXt3KCksYigiPGhyIC8+Iil9fX0sLi4udC5odG1sRXh0ZW5zaW9uc3x8W11dKSxsPXtkZWZpbml0aW9uczpvLHRpZ2h0U3RhY2s6c30sYz17YnVmZmVyOnAsZW5jb2RlOnksZ2V0RGF0YTpmLGxpbmVFbmRpbmdJZk5lZWRlZDp3LG9wdGlvbnM6dCxyYXc6ZyxyZXN1bWU6bSxzZXREYXRhOnUsdGFnOmJ9O2xldCBkPXQuZGVmYXVsdExpbmVFbmRpbmc7cmV0dXJuIGZ1bmN0aW9uKGUpe2xldCB0PS0xLGk9MDtjb25zdCBvPVtdO2xldCByPVtdLHM9W107Zm9yKDsrK3Q8ZS5sZW5ndGg7KWR8fCJsaW5lRW5kaW5nIiE9PWVbdF1bMV0udHlwZSYmImxpbmVFbmRpbmdCbGFuayIhPT1lW3RdWzFdLnR5cGV8fChkPWVbdF1bMl0uc2xpY2VTZXJpYWxpemUoZVt0XVsxXSkpLCJsaXN0T3JkZXJlZCIhPT1lW3RdWzFdLnR5cGUmJiJsaXN0VW5vcmRlcmVkIiE9PWVbdF1bMV0udHlwZXx8KCJlbnRlciI9PT1lW3RdWzBdP28ucHVzaCh0KTpoKGUuc2xpY2Uoby5wb3AoKSx0KSkpLCJkZWZpbml0aW9uIj09PWVbdF1bMV0udHlwZSYmKCJlbnRlciI9PT1lW3RdWzBdPyhzPUdvKHMsZS5zbGljZShpLHQpKSxpPXQpOihyPUdvKHIsZS5zbGljZShpLHQrMSkpLGk9dCsxKSk7cj1HbyhyLHMpLHI9R28ocixlLnNsaWNlKGkpKSx0PS0xO2NvbnN0IGw9cjthLmVudGVyLm51bGwmJmEuZW50ZXIubnVsbC5jYWxsKGMpO2Zvcig7Kyt0PGUubGVuZ3RoOyl7Y29uc3QgZT1hW2xbdF1bMF1dLGk9bFt0XVsxXS50eXBlLG89ZVtpXTtibi5jYWxsKGUsaSkmJm8mJm8uY2FsbCh7c2xpY2VTZXJpYWxpemU6bFt0XVsyXS5zbGljZVNlcmlhbGl6ZSwuLi5jfSxsW3RdWzFdKX1hLmV4aXQubnVsbCYmYS5leGl0Lm51bGwuY2FsbChjKTtyZXR1cm4gblswXS5qb2luKCIiKX07ZnVuY3Rpb24gaChlKXtjb25zdCB0PWUubGVuZ3RoO2xldCBpLG89MCxuPTAscj0hMTtmb3IoOysrbzx0Oyl7Y29uc3QgdD1lW29dO2lmKHRbMV0uX2NvbnRhaW5lcilpPXZvaWQgMCwiZW50ZXIiPT09dFswXT9uKys6bi0tO2Vsc2Ugc3dpdGNoKHRbMV0udHlwZSl7Y2FzZSJsaXN0SXRlbVByZWZpeCI6ImV4aXQiPT09dFswXSYmKGk9ITApO2JyZWFrO2Nhc2UibGluZVByZWZpeCI6YnJlYWs7Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOiJlbnRlciIhPT10WzBdfHxufHwoaT9pPXZvaWQgMDpyPSEwKTticmVhaztkZWZhdWx0Omk9dm9pZCAwfX1lWzBdWzFdLl9sb29zZT1yfWZ1bmN0aW9uIHUoZSx0KXtsW2VdPXR9ZnVuY3Rpb24gZihlKXtyZXR1cm4gbFtlXX1mdW5jdGlvbiBwKCl7bi5wdXNoKFtdKX1mdW5jdGlvbiBtKCl7cmV0dXJuIG4ucG9wKCkuam9pbigiIil9ZnVuY3Rpb24gYihlKXtpJiYodSgibGFzdFdhc1RhZyIsITApLG5bbi5sZW5ndGgtMV0ucHVzaChlKSl9ZnVuY3Rpb24gZyhlKXt1KCJsYXN0V2FzVGFnIiksbltuLmxlbmd0aC0xXS5wdXNoKGUpfWZ1bmN0aW9uIHYoKXtnKGR8fCJcbiIpfWZ1bmN0aW9uIHcoKXtjb25zdCBlPW5bbi5sZW5ndGgtMV0sdD1lW2UubGVuZ3RoLTFdLGk9dD90LmNoYXJDb2RlQXQodC5sZW5ndGgtMSk6bnVsbDsxMCE9PWkmJjEzIT09aSYmbnVsbCE9PWkmJnYoKX1mdW5jdGlvbiB5KGUpe3JldHVybiBmKCJpZ25vcmVFbmNvZGUiKT9lOlhvKGUpfWZ1bmN0aW9uIHgoKXttKCl9ZnVuY3Rpb24gaygpe2YoImxhc3RXYXNUYWciKSYmIWYoInNsdXJwQWxsTGluZUVuZGluZ3MiKSYmdygpLGIoIjwvbGk+IiksdSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFMoKXtjb25zdCBlPWYoImZlbmNlc0NvdW50Iik7dm9pZCAwIT09ZSYmZTwyJiZsLnRpZ2h0U3RhY2subGVuZ3RoPjAmJiFmKCJsYXN0V2FzVGFnIikmJnYoKSxmKCJmbG93Q29kZVNlZW5EYXRhIikmJncoKSxiKCI8L2NvZGU+PC9wcmU+Iiksdm9pZCAwIT09ZSYmZTwyJiZ3KCksdSgiZmxvd0NvZGVTZWVuRGF0YSIpLHUoImZlbmNlc0NvdW50IiksdSgic2x1cnBPbmVMaW5lRW5kaW5nIil9ZnVuY3Rpb24gJCgpe2xldCBlPXIubGVuZ3RoLTE7Y29uc3Qgbj1yW2VdLHM9bi5yZWZlcmVuY2VJZHx8bi5sYWJlbElkLGE9dm9pZCAwPT09bi5kZXN0aW5hdGlvbj9vW2VuKHMpXTpuO2ZvcihpPSEwO2UtLTspaWYocltlXS5pbWFnZSl7aT12b2lkIDA7YnJlYWt9bi5pbWFnZT8oYignPGltZyBzcmM9IicrbW4oYS5kZXN0aW5hdGlvbix0LmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOnZuKSsnIiBhbHQ9IicpLGcobi5sYWJlbCksYignIicpKTpiKCc8YSBocmVmPSInK21uKGEuZGVzdGluYXRpb24sdC5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpnbikrJyInKSxiKGEudGl0bGU/JyB0aXRsZT0iJythLnRpdGxlKyciJzoiIiksbi5pbWFnZT9iKCIgLz4iKTooYigiPiIpLGcobi5sYWJlbCksYigiPC9hPiIpKSxyLnBvcCgpfWZ1bmN0aW9uIHooZSl7Zyh5KHRoaXMuc2xpY2VTZXJpYWxpemUoZSkpKX1mdW5jdGlvbiBfKCl7YigiPGJyIC8+Iil9ZnVuY3Rpb24gQygpe3UoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIEkoKXt0LmFsbG93RGFuZ2Vyb3VzSHRtbCYmdSgiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gTChlKXt1KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixlLnR5cGUpfX1mdW5jdGlvbiB5bihlLHQsaSxvKXtjb25zdCBuPW8/by0xOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtsZXQgcj0wO3JldHVybiBmdW5jdGlvbihvKXtpZihobihvKSlyZXR1cm4gZS5lbnRlcihpKSxzKG8pO3JldHVybiB0KG8pfTtmdW5jdGlvbiBzKG8pe3JldHVybiBobihvKSYmcisrPG4/KGUuY29uc3VtZShvKSxzKTooZS5leGl0KGkpLHQobykpfX1jb25zdCB4bj17dG9rZW5pemU6ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5jb250ZW50SW5pdGlhbCwoZnVuY3Rpb24oaSl7aWYobnVsbD09PWkpcmV0dXJuIHZvaWQgZS5jb25zdW1lKGkpO3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGkpLGUuZXhpdCgibGluZUVuZGluZyIpLHluKGUsdCwibGluZVByZWZpeCIpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJwYXJhZ3JhcGgiKSxvKHQpfSkpO2xldCBpO3JldHVybiB0O2Z1bmN0aW9uIG8odCl7Y29uc3Qgbz1lLmVudGVyKCJjaHVua1RleHQiLHtjb250ZW50VHlwZToidGV4dCIscHJldmlvdXM6aX0pO3JldHVybiBpJiYoaS5uZXh0PW8pLGk9byxuKHQpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIG51bGw9PT10PyhlLmV4aXQoImNodW5rVGV4dCIpLGUuZXhpdCgicGFyYWdyYXBoIiksdm9pZCBlLmNvbnN1bWUodCkpOmNuKHQpPyhlLmNvbnN1bWUodCksZS5leGl0KCJjaHVua1RleHQiKSxvKTooZS5jb25zdW1lKHQpLG4pfX19O2NvbnN0IGtuPXt0b2tlbml6ZTpmdW5jdGlvbihlKXtjb25zdCB0PXRoaXMsaT1bXTtsZXQgbyxuLHIscz0wO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7aWYoczxpLmxlbmd0aCl7Y29uc3Qgbj1pW3NdO3JldHVybiB0LmNvbnRhaW5lclN0YXRlPW5bMV0sZS5hdHRlbXB0KG5bMF0uY29udGludWF0aW9uLGwsYykobyl9cmV0dXJuIGMobyl9ZnVuY3Rpb24gbChlKXtpZihzKyssdC5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93KXt0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLG8mJnYoKTtjb25zdCBpPXQuZXZlbnRzLmxlbmd0aDtsZXQgbixyPWk7Zm9yKDtyLS07KWlmKCJleGl0Ij09PXQuZXZlbnRzW3JdWzBdJiYiY2h1bmtGbG93Ij09PXQuZXZlbnRzW3JdWzFdLnR5cGUpe249dC5ldmVudHNbcl1bMV0uZW5kO2JyZWFrfWcocyk7bGV0IGE9aTtmb3IoO2E8dC5ldmVudHMubGVuZ3RoOyl0LmV2ZW50c1thXVsxXS5lbmQ9ey4uLm59LGErKztyZXR1cm4gVm8odC5ldmVudHMscisxLDAsdC5ldmVudHMuc2xpY2UoaSkpLHQuZXZlbnRzLmxlbmd0aD1hLGMoZSl9cmV0dXJuIGEoZSl9ZnVuY3Rpb24gYyhuKXtpZihzPT09aS5sZW5ndGgpe2lmKCFvKXJldHVybiB1KG4pO2lmKG8uY3VycmVudENvbnN0cnVjdCYmby5jdXJyZW50Q29uc3RydWN0LmNvbmNyZXRlKXJldHVybiBwKG4pO3QuaW50ZXJydXB0PUJvb2xlYW4oby5jdXJyZW50Q29uc3RydWN0JiYhby5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5jaGVjayhTbixkLGgpKG4pfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIG8mJnYoKSxnKHMpLHUoZSl9ZnVuY3Rpb24gaChlKXtyZXR1cm4gdC5wYXJzZXIubGF6eVt0Lm5vdygpLmxpbmVdPXMhPT1pLmxlbmd0aCxyPXQubm93KCkub2Zmc2V0LHAoZSl9ZnVuY3Rpb24gdShpKXtyZXR1cm4gdC5jb250YWluZXJTdGF0ZT17fSxlLmF0dGVtcHQoU24sZixwKShpKX1mdW5jdGlvbiBmKGUpe3JldHVybiBzKyssaS5wdXNoKFt0LmN1cnJlbnRDb25zdHJ1Y3QsdC5jb250YWluZXJTdGF0ZV0pLHUoZSl9ZnVuY3Rpb24gcChpKXtyZXR1cm4gbnVsbD09PWk/KG8mJnYoKSxnKDApLHZvaWQgZS5jb25zdW1lKGkpKToobz1vfHx0LnBhcnNlci5mbG93KHQubm93KCkpLGUuZW50ZXIoImNodW5rRmxvdyIse190b2tlbml6ZXI6byxjb250ZW50VHlwZToiZmxvdyIscHJldmlvdXM6bn0pLG0oaSkpfWZ1bmN0aW9uIG0oaSl7cmV0dXJuIG51bGw9PT1pPyhiKGUuZXhpdCgiY2h1bmtGbG93IiksITApLGcoMCksdm9pZCBlLmNvbnN1bWUoaSkpOmNuKGkpPyhlLmNvbnN1bWUoaSksYihlLmV4aXQoImNodW5rRmxvdyIpKSxzPTAsdC5pbnRlcnJ1cHQ9dm9pZCAwLGEpOihlLmNvbnN1bWUoaSksbSl9ZnVuY3Rpb24gYihlLGkpe2NvbnN0IGE9dC5zbGljZVN0cmVhbShlKTtpZihpJiZhLnB1c2gobnVsbCksZS5wcmV2aW91cz1uLG4mJihuLm5leHQ9ZSksbj1lLG8uZGVmaW5lU2tpcChlLnN0YXJ0KSxvLndyaXRlKGEpLHQucGFyc2VyLmxhenlbZS5zdGFydC5saW5lXSl7bGV0IGU9by5ldmVudHMubGVuZ3RoO2Zvcig7ZS0tOylpZihvLmV2ZW50c1tlXVsxXS5zdGFydC5vZmZzZXQ8ciYmKCFvLmV2ZW50c1tlXVsxXS5lbmR8fG8uZXZlbnRzW2VdWzFdLmVuZC5vZmZzZXQ+cikpcmV0dXJuO2NvbnN0IGk9dC5ldmVudHMubGVuZ3RoO2xldCBuLGEsbD1pO2Zvcig7bC0tOylpZigiZXhpdCI9PT10LmV2ZW50c1tsXVswXSYmImNodW5rRmxvdyI9PT10LmV2ZW50c1tsXVsxXS50eXBlKXtpZihuKXthPXQuZXZlbnRzW2xdWzFdLmVuZDticmVha31uPSEwfWZvcihnKHMpLGU9aTtlPHQuZXZlbnRzLmxlbmd0aDspdC5ldmVudHNbZV1bMV0uZW5kPXsuLi5hfSxlKys7Vm8odC5ldmVudHMsbCsxLDAsdC5ldmVudHMuc2xpY2UoaSkpLHQuZXZlbnRzLmxlbmd0aD1lfX1mdW5jdGlvbiBnKG8pe2xldCBuPWkubGVuZ3RoO2Zvcig7bi0tID5vOyl7Y29uc3Qgbz1pW25dO3QuY29udGFpbmVyU3RhdGU9b1sxXSxvWzBdLmV4aXQuY2FsbCh0LGUpfWkubGVuZ3RoPW99ZnVuY3Rpb24gdigpe28ud3JpdGUoW251bGxdKSxuPXZvaWQgMCxvPXZvaWQgMCx0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwfX19LFNuPXt0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIHluKGUsZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZG9jdW1lbnQsdCxpKSwibGluZVByZWZpeCIsdGhpcy5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KX19O2NvbnN0ICRuPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGhuKHQpP3luKGUsbywibGluZVByZWZpeCIpKHQpOm8odCl9O2Z1bmN0aW9uIG8oZSl7cmV0dXJuIG51bGw9PT1lfHxjbihlKT90KGUpOmkoZSl9fX07Y2xhc3Mgem57Y29uc3RydWN0b3IoZSl7dGhpcy5sZWZ0PWU/Wy4uLmVdOltdLHRoaXMucmlnaHQ9W119Z2V0KGUpe2lmKGU8MHx8ZT49dGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ2Fubm90IGFjY2VzcyBpbmRleCBgIitlKyJgIGluIGEgc3BsaWNlIGJ1ZmZlciBvZiBzaXplIGAiKyh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKSsiYCIpO3JldHVybiBlPHRoaXMubGVmdC5sZW5ndGg/dGhpcy5sZWZ0W2VdOnRoaXMucmlnaHRbdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoLTFdfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aH1zaGlmdCgpe3JldHVybiB0aGlzLnNldEN1cnNvcigwKSx0aGlzLnJpZ2h0LnBvcCgpfXNsaWNlKGUsdCl7Y29uc3QgaT1udWxsPT10P051bWJlci5QT1NJVElWRV9JTkZJTklUWTp0O3JldHVybiBpPHRoaXMubGVmdC5sZW5ndGg/dGhpcy5sZWZ0LnNsaWNlKGUsaSk6ZT50aGlzLmxlZnQubGVuZ3RoP3RoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtaSt0aGlzLmxlZnQubGVuZ3RoLHRoaXMucmlnaHQubGVuZ3RoLWUrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpOnRoaXMubGVmdC5zbGljZShlKS5jb25jYXQodGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pK3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKSl9c3BsaWNlKGUsdCxpKXtjb25zdCBvPXR8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyhlKSk7Y29uc3Qgbj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1vLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7cmV0dXJuIGkmJl9uKHRoaXMubGVmdCxpKSxuLnJldmVyc2UoKX1wb3AoKXtyZXR1cm4gdGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucG9wKCl9cHVzaChlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHRoaXMubGVmdC5wdXNoKGUpfXB1c2hNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksX24odGhpcy5sZWZ0LGUpfXVuc2hpZnQoZSl7dGhpcy5zZXRDdXJzb3IoMCksdGhpcy5yaWdodC5wdXNoKGUpfXVuc2hpZnRNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKDApLF9uKHRoaXMucmlnaHQsZS5yZXZlcnNlKCkpfXNldEN1cnNvcihlKXtpZighKGU9PT10aGlzLmxlZnQubGVuZ3RofHxlPnRoaXMubGVmdC5sZW5ndGgmJjA9PT10aGlzLnJpZ2h0Lmxlbmd0aHx8ZTwwJiYwPT09dGhpcy5sZWZ0Lmxlbmd0aCkpaWYoZTx0aGlzLmxlZnQubGVuZ3RoKXtjb25zdCB0PXRoaXMubGVmdC5zcGxpY2UoZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO19uKHRoaXMucmlnaHQsdC5yZXZlcnNlKCkpfWVsc2V7Y29uc3QgdD10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLWUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtfbih0aGlzLmxlZnQsdC5yZXZlcnNlKCkpfX19ZnVuY3Rpb24gX24oZSx0KXtsZXQgaT0wO2lmKHQubGVuZ3RoPDFlNCllLnB1c2goLi4udCk7ZWxzZSBmb3IoO2k8dC5sZW5ndGg7KWUucHVzaCguLi50LnNsaWNlKGksaSsxZTQpKSxpKz0xZTR9ZnVuY3Rpb24gQ24oZSl7Y29uc3QgdD17fTtsZXQgaSxvLG4scixzLGEsbCxjPS0xO2NvbnN0IGQ9bmV3IHpuKGUpO2Zvcig7KytjPGQubGVuZ3RoOyl7Zm9yKDtjIGluIHQ7KWM9dFtjXTtpZihpPWQuZ2V0KGMpLGMmJiJjaHVua0Zsb3ciPT09aVsxXS50eXBlJiYibGlzdEl0ZW1QcmVmaXgiPT09ZC5nZXQoYy0xKVsxXS50eXBlJiYoYT1pWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPGEubGVuZ3RoJiYibGluZUVuZGluZ0JsYW5rIj09PWFbbl1bMV0udHlwZSYmKG4rPTIpLG48YS5sZW5ndGgmJiJjb250ZW50Ij09PWFbbl1bMV0udHlwZSkpZm9yKDsrK248YS5sZW5ndGgmJiJjb250ZW50IiE9PWFbbl1bMV0udHlwZTspImNodW5rVGV4dCI9PT1hW25dWzFdLnR5cGUmJihhW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKCJlbnRlciI9PT1pWzBdKWlbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKHQsSW4oZCxjKSksYz10W2NdLGw9ITApO2Vsc2UgaWYoaVsxXS5fY29udGFpbmVyKXtmb3Iobj1jLG89dm9pZCAwO24tLSYmKHI9ZC5nZXQobiksImxpbmVFbmRpbmciPT09clsxXS50eXBlfHwibGluZUVuZGluZ0JsYW5rIj09PXJbMV0udHlwZSk7KSJlbnRlciI9PT1yWzBdJiYobyYmKGQuZ2V0KG8pWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIpLHJbMV0udHlwZT0ibGluZUVuZGluZyIsbz1uKTtvJiYoaVsxXS5lbmQ9ey4uLmQuZ2V0KG8pWzFdLnN0YXJ0fSxzPWQuc2xpY2UobyxjKSxzLnVuc2hpZnQoaSksZC5zcGxpY2UobyxjLW8rMSxzKSl9fXJldHVybiBWbyhlLDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGQuc2xpY2UoMCkpLCFsfWZ1bmN0aW9uIEluKGUsdCl7Y29uc3QgaT1lLmdldCh0KVsxXSxvPWUuZ2V0KHQpWzJdO2xldCBuPXQtMTtjb25zdCByPVtdLHM9aS5fdG9rZW5pemVyfHxvLnBhcnNlcltpLmNvbnRlbnRUeXBlXShpLnN0YXJ0KSxhPXMuZXZlbnRzLGw9W10sYz17fTtsZXQgZCxoLHU9LTEsZj1pLHA9MCxtPTA7Y29uc3QgYj1bbV07Zm9yKDtmOyl7Zm9yKDtlLmdldCgrK24pWzFdIT09ZjspO3IucHVzaChuKSxmLl90b2tlbml6ZXJ8fChkPW8uc2xpY2VTdHJlYW0oZiksZi5uZXh0fHxkLnB1c2gobnVsbCksaCYmcy5kZWZpbmVTa2lwKGYuc3RhcnQpLGYuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtJiYocy5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtPSEwKSxzLndyaXRlKGQpLGYuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtJiYocy5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtPXZvaWQgMCkpLGg9ZixmPWYubmV4dH1mb3IoZj1pOysrdTxhLmxlbmd0aDspImV4aXQiPT09YVt1XVswXSYmImVudGVyIj09PWFbdS0xXVswXSYmYVt1XVsxXS50eXBlPT09YVt1LTFdWzFdLnR5cGUmJmFbdV1bMV0uc3RhcnQubGluZSE9PWFbdV1bMV0uZW5kLmxpbmUmJihtPXUrMSxiLnB1c2gobSksZi5fdG9rZW5pemVyPXZvaWQgMCxmLnByZXZpb3VzPXZvaWQgMCxmPWYubmV4dCk7Zm9yKHMuZXZlbnRzPVtdLGY/KGYuX3Rva2VuaXplcj12b2lkIDAsZi5wcmV2aW91cz12b2lkIDApOmIucG9wKCksdT1iLmxlbmd0aDt1LS07KXtjb25zdCB0PWEuc2xpY2UoYlt1XSxiW3UrMV0pLGk9ci5wb3AoKTtsLnB1c2goW2ksaSt0Lmxlbmd0aC0xXSksZS5zcGxpY2UoaSwyLHQpfWZvcihsLnJldmVyc2UoKSx1PS0xOysrdTxsLmxlbmd0aDspY1twK2xbdV1bMF1dPXArbFt1XVsxXSxwKz1sW3VdWzFdLWxbdV1bMF0tMTtyZXR1cm4gY31jb25zdCBMbj17cmVzb2x2ZTpmdW5jdGlvbihlKXtyZXR1cm4gQ24oZSksZX0sdG9rZW5pemU6ZnVuY3Rpb24oZSx0KXtsZXQgaTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoImNvbnRlbnQiKSxpPWUuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLG8odCl9O2Z1bmN0aW9uIG8odCl7cmV0dXJuIG51bGw9PT10P24odCk6Y24odCk/ZS5jaGVjayhFbixyLG4pKHQpOihlLmNvbnN1bWUodCksbyl9ZnVuY3Rpb24gbihpKXtyZXR1cm4gZS5leGl0KCJjaHVua0NvbnRlbnQiKSxlLmV4aXQoImNvbnRlbnQiKSx0KGkpfWZ1bmN0aW9uIHIodCl7cmV0dXJuIGUuY29uc3VtZSh0KSxlLmV4aXQoImNodW5rQ29udGVudCIpLGkubmV4dD1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6aX0pLGk9aS5uZXh0LG99fX0sRW49e3BhcnRpYWw6ITAsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZXhpdCgiY2h1bmtDb250ZW50IiksZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxpbmVFbmRpbmciKSx5bihlLG4sImxpbmVQcmVmaXgiKX07ZnVuY3Rpb24gbihuKXtpZihudWxsPT09bnx8Y24obikpcmV0dXJuIGkobik7Y29uc3Qgcj1vLmV2ZW50c1tvLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIW8ucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKSYmciYmImxpbmVQcmVmaXgiPT09clsxXS50eXBlJiZyWzJdLnNsaWNlU2VyaWFsaXplKHJbMV0sITApLmxlbmd0aD49ND90KG4pOmUuaW50ZXJydXB0KG8ucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxpLHQpKG4pfX19O2NvbnN0IEFuPXt0b2tlbml6ZTpmdW5jdGlvbihlKXtjb25zdCB0PXRoaXMsaT1lLmF0dGVtcHQoJG4sKGZ1bmN0aW9uKG8pe2lmKG51bGw9PT1vKXJldHVybiB2b2lkIGUuY29uc3VtZShvKTtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZ0JsYW5rIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZ0JsYW5rIiksdC5jdXJyZW50Q29uc3RydWN0PXZvaWQgMCxpfSksZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsbyx5bihlLGUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csbyxlLmF0dGVtcHQoTG4sbykpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gaTtmdW5jdGlvbiBvKG8pe2lmKG51bGwhPT1vKXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLHQuY3VycmVudENvbnN0cnVjdD12b2lkIDAsaTtlLmNvbnN1bWUobyl9fX07Y29uc3QgVG49e3Jlc29sdmVBbGw6TW4oKX0sUG49Rm4oInN0cmluZyIpLERuPUZuKCJ0ZXh0Iik7ZnVuY3Rpb24gRm4oZSl7cmV0dXJue3Jlc29sdmVBbGw6TW4oInRleHQiPT09ZT9Sbjp2b2lkIDApLHRva2VuaXplOmZ1bmN0aW9uKHQpe2NvbnN0IGk9dGhpcyxvPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbZV0sbj10LmF0dGVtcHQobyxyLHMpO3JldHVybiByO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGwoZSk/bihlKTpzKGUpfWZ1bmN0aW9uIHMoZSl7aWYobnVsbCE9PWUpcmV0dXJuIHQuZW50ZXIoImRhdGEiKSx0LmNvbnN1bWUoZSksYTt0LmNvbnN1bWUoZSl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gbChlKT8odC5leGl0KCJkYXRhIiksbihlKSk6KHQuY29uc3VtZShlKSxhKX1mdW5jdGlvbiBsKGUpe2lmKG51bGw9PT1lKXJldHVybiEwO2NvbnN0IHQ9b1tlXTtsZXQgbj0tMTtpZih0KWZvcig7KytuPHQubGVuZ3RoOyl7Y29uc3QgZT10W25dO2lmKCFlLnByZXZpb3VzfHxlLnByZXZpb3VzLmNhbGwoaSxpLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fX1mdW5jdGlvbiBNbihlKXtyZXR1cm4gZnVuY3Rpb24odCxpKXtsZXQgbyxuPS0xO2Zvcig7KytuPD10Lmxlbmd0aDspdm9pZCAwPT09bz90W25dJiYiZGF0YSI9PT10W25dWzFdLnR5cGUmJihvPW4sbisrKTp0W25dJiYiZGF0YSI9PT10W25dWzFdLnR5cGV8fChuIT09bysyJiYodFtvXVsxXS5lbmQ9dFtuLTFdWzFdLmVuZCx0LnNwbGljZShvKzIsbi1vLTIpLG49bysyKSxvPXZvaWQgMCk7cmV0dXJuIGU/ZSh0LGkpOnR9fWZ1bmN0aW9uIFJuKGUsdCl7bGV0IGk9MDtmb3IoOysraTw9ZS5sZW5ndGg7KWlmKChpPT09ZS5sZW5ndGh8fCJsaW5lRW5kaW5nIj09PWVbaV1bMV0udHlwZSkmJiJkYXRhIj09PWVbaS0xXVsxXS50eXBlKXtjb25zdCBvPWVbaS0xXVsxXSxuPXQuc2xpY2VTdHJlYW0obyk7bGV0IHIscz1uLmxlbmd0aCxhPS0xLGw9MDtmb3IoO3MtLTspe2NvbnN0IGU9bltzXTtpZigic3RyaW5nIj09dHlwZW9mIGUpe2ZvcihhPWUubGVuZ3RoOzMyPT09ZS5jaGFyQ29kZUF0KGEtMSk7KWwrKyxhLS07aWYoYSlicmVhazthPS0xfWVsc2UgaWYoLTI9PT1lKXI9ITAsbCsrO2Vsc2UgaWYoLTEhPT1lKXtzKys7YnJlYWt9fWlmKGwpe2NvbnN0IG49e3R5cGU6aT09PWUubGVuZ3RofHxyfHxsPDI/ImxpbmVTdWZmaXgiOiJoYXJkQnJlYWtUcmFpbGluZyIsc3RhcnQ6e19idWZmZXJJbmRleDpzP2E6by5zdGFydC5fYnVmZmVySW5kZXgrYSxfaW5kZXg6by5zdGFydC5faW5kZXgrcyxsaW5lOm8uZW5kLmxpbmUsY29sdW1uOm8uZW5kLmNvbHVtbi1sLG9mZnNldDpvLmVuZC5vZmZzZXQtbH0sZW5kOnsuLi5vLmVuZH19O28uZW5kPXsuLi5uLnN0YXJ0fSxvLnN0YXJ0Lm9mZnNldD09PW8uZW5kLm9mZnNldD9PYmplY3QuYXNzaWduKG8sbik6KGUuc3BsaWNlKGksMCxbImVudGVyIixuLHRdLFsiZXhpdCIsbix0XSksaSs9Mil9aSsrfXJldHVybiBlfWNvbnN0IE9uPXtuYW1lOiJ0aGVtYXRpY0JyZWFrIix0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7bGV0IG8sbj0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigidGhlbWF0aWNCcmVhayIpLGZ1bmN0aW9uKGUpe3JldHVybiBvPWUscihlKX0odCl9O2Z1bmN0aW9uIHIocil7cmV0dXJuIHI9PT1vPyhlLmVudGVyKCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxzKHIpKTpuPj0zJiYobnVsbD09PXJ8fGNuKHIpKT8oZS5leGl0KCJ0aGVtYXRpY0JyZWFrIiksdChyKSk6aShyKX1mdW5jdGlvbiBzKHQpe3JldHVybiB0PT09bz8oZS5jb25zdW1lKHQpLG4rKyxzKTooZS5leGl0KCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxobih0KT95bihlLHIsIndoaXRlc3BhY2UiKSh0KTpyKHQpKX19fTtjb25zdCBVbj17Y29udGludWF0aW9uOnt0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO3JldHVybiBvLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLGUuY2hlY2soJG4sKGZ1bmN0aW9uKGkpe3JldHVybiBvLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPW8uY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fG8uY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSx5bihlLHQsImxpc3RJdGVtSW5kZW50IixvLmNvbnRhaW5lclN0YXRlLnNpemUrMSkoaSl9KSwoZnVuY3Rpb24oaSl7aWYoby5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8IWhuKGkpKXJldHVybiBvLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxvLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLG4oaSk7cmV0dXJuIG8uY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXM9dm9pZCAwLG8uY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT12b2lkIDAsZS5hdHRlbXB0KE5uLHQsbikoaSl9KSk7ZnVuY3Rpb24gbihuKXtyZXR1cm4gby5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PSEwLG8uaW50ZXJydXB0PXZvaWQgMCx5bihlLGUuYXR0ZW1wdChVbix0LGkpLCJsaW5lUHJlZml4IixvLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG4pfX19LGV4aXQ6ZnVuY3Rpb24oZSl7ZS5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSl9LG5hbWU6Imxpc3QiLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXMsbj1vLmV2ZW50c1tvLmV2ZW50cy5sZW5ndGgtMV07bGV0IHI9biYmImxpbmVQcmVmaXgiPT09blsxXS50eXBlP25bMl0uc2xpY2VTZXJpYWxpemUoblsxXSwhMCkubGVuZ3RoOjAscz0wO3JldHVybiBmdW5jdGlvbih0KXtjb25zdCBuPW8uY29udGFpbmVyU3RhdGUudHlwZXx8KDQyPT09dHx8NDM9PT10fHw0NT09PXQ/Imxpc3RVbm9yZGVyZWQiOiJsaXN0T3JkZXJlZCIpO2lmKCJsaXN0VW5vcmRlcmVkIj09PW4/IW8uY29udGFpbmVyU3RhdGUubWFya2VyfHx0PT09by5jb250YWluZXJTdGF0ZS5tYXJrZXI6c24odCkpe2lmKG8uY29udGFpbmVyU3RhdGUudHlwZXx8KG8uY29udGFpbmVyU3RhdGUudHlwZT1uLGUuZW50ZXIobix7X2NvbnRhaW5lcjohMH0pKSwibGlzdFVub3JkZXJlZCI9PT1uKXJldHVybiBlLmVudGVyKCJsaXN0SXRlbVByZWZpeCIpLDQyPT09dHx8NDU9PT10P2UuY2hlY2soT24saSxsKSh0KTpsKHQpO2lmKCFvLmludGVycnVwdHx8NDk9PT10KXJldHVybiBlLmVudGVyKCJsaXN0SXRlbVByZWZpeCIpLGUuZW50ZXIoImxpc3RJdGVtVmFsdWUiKSxhKHQpfXJldHVybiBpKHQpfTtmdW5jdGlvbiBhKHQpe3JldHVybiBzbih0KSYmKytzPDEwPyhlLmNvbnN1bWUodCksYSk6KCFvLmludGVycnVwdHx8czwyKSYmKG8uY29udGFpbmVyU3RhdGUubWFya2VyP3Q9PT1vLmNvbnRhaW5lclN0YXRlLm1hcmtlcjo0MT09PXR8fDQ2PT09dCk/KGUuZXhpdCgibGlzdEl0ZW1WYWx1ZSIpLGwodCkpOmkodCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZS5lbnRlcigibGlzdEl0ZW1NYXJrZXIiKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaXN0SXRlbU1hcmtlciIpLG8uY29udGFpbmVyU3RhdGUubWFya2VyPW8uY29udGFpbmVyU3RhdGUubWFya2VyfHx0LGUuY2hlY2soJG4sby5pbnRlcnJ1cHQ/aTpjLGUuYXR0ZW1wdChCbixoLGQpKX1mdW5jdGlvbiBjKGUpe3JldHVybiBvLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9ITAscisrLGgoZSl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gaG4odCk/KGUuZW50ZXIoImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpLGgpOmkodCl9ZnVuY3Rpb24gaChpKXtyZXR1cm4gby5jb250YWluZXJTdGF0ZS5zaXplPXIrby5zbGljZVNlcmlhbGl6ZShlLmV4aXQoImxpc3RJdGVtUHJlZml4IiksITApLmxlbmd0aCx0KGkpfX19LEJuPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIHluKGUsKGZ1bmN0aW9uKGUpe2NvbnN0IG49by5ldmVudHNbby5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFobihlKSYmbiYmImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSI9PT1uWzFdLnR5cGU/dChlKTppKGUpfSksImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsby5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo1KX19LE5uPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIHluKGUsKGZ1bmN0aW9uKGUpe2NvbnN0IG49by5ldmVudHNbby5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBuJiYibGlzdEl0ZW1JbmRlbnQiPT09blsxXS50eXBlJiZuWzJdLnNsaWNlU2VyaWFsaXplKG5bMV0sITApLmxlbmd0aD09PW8uY29udGFpbmVyU3RhdGUuc2l6ZT90KGUpOmkoZSl9KSwibGlzdEl0ZW1JbmRlbnQiLG8uY29udGFpbmVyU3RhdGUuc2l6ZSsxKX19O2NvbnN0IHFuPXtjb250aW51YXRpb246e3Rva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKGhuKHQpKXJldHVybiB5bihlLG4sImxpbmVQcmVmaXgiLG8ucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkodCk7cmV0dXJuIG4odCl9O2Z1bmN0aW9uIG4obyl7cmV0dXJuIGUuYXR0ZW1wdChxbix0LGkpKG8pfX19LGV4aXQ6ZnVuY3Rpb24oZSl7ZS5leGl0KCJibG9ja1F1b3RlIil9LG5hbWU6ImJsb2NrUXVvdGUiLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDYyPT09dCl7Y29uc3QgaT1vLmNvbnRhaW5lclN0YXRlO3JldHVybiBpLm9wZW58fChlLmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLGkub3Blbj0hMCksZS5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLGUuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSxlLmNvbnN1bWUodCksZS5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksbn1yZXR1cm4gaSh0KX07ZnVuY3Rpb24gbihpKXtyZXR1cm4gaG4oaSk/KGUuZW50ZXIoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksZS5jb25zdW1lKGkpLGUuZXhpdCgiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSxlLmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSx0KTooZS5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksdChpKSl9fX07ZnVuY3Rpb24gam4oZSx0LGksbyxuLHIscyxhLGwpe2NvbnN0IGM9bHx8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2xldCBkPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDYwPT09dClyZXR1cm4gZS5lbnRlcihvKSxlLmVudGVyKG4pLGUuZW50ZXIociksZS5jb25zdW1lKHQpLGUuZXhpdChyKSxoO2lmKG51bGw9PT10fHwzMj09PXR8fDQxPT09dHx8cm4odCkpcmV0dXJuIGkodCk7cmV0dXJuIGUuZW50ZXIobyksZS5lbnRlcihzKSxlLmVudGVyKGEpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxwKHQpfTtmdW5jdGlvbiBoKGkpe3JldHVybiA2Mj09PWk/KGUuZW50ZXIociksZS5jb25zdW1lKGkpLGUuZXhpdChyKSxlLmV4aXQobiksZS5leGl0KG8pLHQpOihlLmVudGVyKGEpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx1KGkpKX1mdW5jdGlvbiB1KHQpe3JldHVybiA2Mj09PXQ/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoYSksaCh0KSk6bnVsbD09PXR8fDYwPT09dHx8Y24odCk/aSh0KTooZS5jb25zdW1lKHQpLDkyPT09dD9mOnUpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIDYwPT09dHx8NjI9PT10fHw5Mj09PXQ/KGUuY29uc3VtZSh0KSx1KTp1KHQpfWZ1bmN0aW9uIHAobil7cmV0dXJuIGR8fG51bGwhPT1uJiY0MSE9PW4mJiFkbihuKT9kPGMmJjQwPT09bj8oZS5jb25zdW1lKG4pLGQrKyxwKTo0MT09PW4/KGUuY29uc3VtZShuKSxkLS0scCk6bnVsbD09PW58fDMyPT09bnx8NDA9PT1ufHxybihuKT9pKG4pOihlLmNvbnN1bWUobiksOTI9PT1uP206cCk6KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoYSksZS5leGl0KHMpLGUuZXhpdChvKSx0KG4pKX1mdW5jdGlvbiBtKHQpe3JldHVybiA0MD09PXR8fDQxPT09dHx8OTI9PT10PyhlLmNvbnN1bWUodCkscCk6cCh0KX19ZnVuY3Rpb24gSG4oZSx0LGksbyxuLHIpe2NvbnN0IHM9dGhpcztsZXQgYSxsPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKG8pLGUuZW50ZXIobiksZS5jb25zdW1lKHQpLGUuZXhpdChuKSxlLmVudGVyKHIpLGN9O2Z1bmN0aW9uIGMoaCl7cmV0dXJuIGw+OTk5fHxudWxsPT09aHx8OTE9PT1ofHw5Mz09PWgmJiFhfHw5ND09PWgmJiFsJiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBzLnBhcnNlci5jb25zdHJ1Y3RzP2koaCk6OTM9PT1oPyhlLmV4aXQociksZS5lbnRlcihuKSxlLmNvbnN1bWUoaCksZS5leGl0KG4pLGUuZXhpdChvKSx0KTpjbihoKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShoKSxlLmV4aXQoImxpbmVFbmRpbmciKSxjKTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGQoaCkpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIG51bGw9PT10fHw5MT09PXR8fDkzPT09dHx8Y24odCl8fGwrKz45OTk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxjKHQpKTooZS5jb25zdW1lKHQpLGF8fChhPSFobih0KSksOTI9PT10P2g6ZCl9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gOTE9PT10fHw5Mj09PXR8fDkzPT09dD8oZS5jb25zdW1lKHQpLGwrKyxkKTpkKHQpfX1mdW5jdGlvbiBXbihlLHQsaSxvLG4scil7bGV0IHM7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDM0PT09dHx8Mzk9PT10fHw0MD09PXQpcmV0dXJuIGUuZW50ZXIobyksZS5lbnRlcihuKSxlLmNvbnN1bWUodCksZS5leGl0KG4pLHM9NDA9PT10PzQxOnQsYTtyZXR1cm4gaSh0KX07ZnVuY3Rpb24gYShpKXtyZXR1cm4gaT09PXM/KGUuZW50ZXIobiksZS5jb25zdW1lKGkpLGUuZXhpdChuKSxlLmV4aXQobyksdCk6KGUuZW50ZXIociksbChpKSl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdD09PXM/KGUuZXhpdChyKSxhKHMpKTpudWxsPT09dD9pKHQpOmNuKHQpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHQpLGUuZXhpdCgibGluZUVuZGluZyIpLHluKGUsbCwibGluZVByZWZpeCIpKTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGModCkpfWZ1bmN0aW9uIGModCl7cmV0dXJuIHQ9PT1zfHxudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxsKHQpKTooZS5jb25zdW1lKHQpLDkyPT09dD9kOmMpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQ9PT1zfHw5Mj09PXQ/KGUuY29uc3VtZSh0KSxjKTpjKHQpfX1mdW5jdGlvbiBWbihlLHQpe2xldCBpO3JldHVybiBmdW5jdGlvbiBvKG4pe2lmKGNuKG4pKXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG4pLGUuZXhpdCgibGluZUVuZGluZyIpLGk9ITAsbztpZihobihuKSlyZXR1cm4geW4oZSxvLGk/ImxpbmVQcmVmaXgiOiJsaW5lU3VmZml4Iikobik7cmV0dXJuIHQobil9fWNvbnN0IEduPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO2xldCBuO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiZGVmaW5pdGlvbiIpLGZ1bmN0aW9uKHQpe3JldHVybiBIbi5jYWxsKG8sZSxyLGksImRlZmluaXRpb25MYWJlbCIsImRlZmluaXRpb25MYWJlbE1hcmtlciIsImRlZmluaXRpb25MYWJlbFN0cmluZyIpKHQpfSh0KX07ZnVuY3Rpb24gcih0KXtyZXR1cm4gbj1lbihvLnNsaWNlU2VyaWFsaXplKG8uZXZlbnRzW28uZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpLDU4PT09dD8oZS5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxzKTppKHQpfWZ1bmN0aW9uIHModCl7cmV0dXJuIGRuKHQpP1ZuKGUsYSkodCk6YSh0KX1mdW5jdGlvbiBhKHQpe3JldHVybiBqbihlLGwsaSwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJkZWZpbml0aW9uRGVzdGluYXRpb25SYXciLCJkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmciKSh0KX1mdW5jdGlvbiBsKHQpe3JldHVybiBlLmF0dGVtcHQoS24sYyxjKSh0KX1mdW5jdGlvbiBjKHQpe3JldHVybiBobih0KT95bihlLGQsIndoaXRlc3BhY2UiKSh0KTpkKHQpfWZ1bmN0aW9uIGQocil7cmV0dXJuIG51bGw9PT1yfHxjbihyKT8oZS5leGl0KCJkZWZpbml0aW9uIiksby5wYXJzZXIuZGVmaW5lZC5wdXNoKG4pLHQocikpOmkocil9fX0sS249e3BhcnRpYWw6ITAsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZG4odCk/Vm4oZSxvKSh0KTppKHQpfTtmdW5jdGlvbiBvKHQpe3JldHVybiBXbihlLG4saSwiZGVmaW5pdGlvblRpdGxlIiwiZGVmaW5pdGlvblRpdGxlTWFya2VyIiwiZGVmaW5pdGlvblRpdGxlU3RyaW5nIikodCl9ZnVuY3Rpb24gbih0KXtyZXR1cm4gaG4odCk/eW4oZSxyLCJ3aGl0ZXNwYWNlIikodCk6cih0KX1mdW5jdGlvbiByKGUpe3JldHVybiBudWxsPT09ZXx8Y24oZSk/dChlKTppKGUpfX19O2NvbnN0IFluPXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJjb2RlSW5kZW50ZWQiKSx5bihlLG4sImxpbmVQcmVmaXgiLDUpKHQpfTtmdW5jdGlvbiBuKGUpe2NvbnN0IHQ9by5ldmVudHNbby5ldmVudHMubGVuZ3RoLTFdO3JldHVybiB0JiYibGluZVByZWZpeCI9PT10WzFdLnR5cGUmJnRbMl0uc2xpY2VTZXJpYWxpemUodFsxXSwhMCkubGVuZ3RoPj00P3IoZSk6aShlKX1mdW5jdGlvbiByKHQpe3JldHVybiBudWxsPT09dD9hKHQpOmNuKHQpP2UuYXR0ZW1wdChRbixyLGEpKHQpOihlLmVudGVyKCJjb2RlRmxvd1ZhbHVlIikscyh0KSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gbnVsbD09PXR8fGNuKHQpPyhlLmV4aXQoImNvZGVGbG93VmFsdWUiKSxyKHQpKTooZS5jb25zdW1lKHQpLHMpfWZ1bmN0aW9uIGEoaSl7cmV0dXJuIGUuZXhpdCgiY29kZUluZGVudGVkIiksdChpKX19fSxRbj17cGFydGlhbDohMCx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO3JldHVybiBuO2Z1bmN0aW9uIG4odCl7cmV0dXJuIG8ucGFyc2VyLmxhenlbby5ub3coKS5saW5lXT9pKHQpOmNuKHQpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHQpLGUuZXhpdCgibGluZUVuZGluZyIpLG4pOnluKGUsciwibGluZVByZWZpeCIsNSkodCl9ZnVuY3Rpb24gcihlKXtjb25zdCByPW8uZXZlbnRzW28uZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gciYmImxpbmVQcmVmaXgiPT09clsxXS50eXBlJiZyWzJdLnNsaWNlU2VyaWFsaXplKHJbMV0sITApLmxlbmd0aD49ND90KGUpOmNuKGUpP24oZSk6aShlKX19fTtjb25zdCBabj17bmFtZToiaGVhZGluZ0F0eCIscmVzb2x2ZTpmdW5jdGlvbihlLHQpe2xldCBpLG8sbj1lLmxlbmd0aC0yLHI9Mzsid2hpdGVzcGFjZSI9PT1lW3JdWzFdLnR5cGUmJihyKz0yKTtuLTI+ciYmIndoaXRlc3BhY2UiPT09ZVtuXVsxXS50eXBlJiYobi09Mik7ImF0eEhlYWRpbmdTZXF1ZW5jZSI9PT1lW25dWzFdLnR5cGUmJihyPT09bi0xfHxuLTQ+ciYmIndoaXRlc3BhY2UiPT09ZVtuLTJdWzFdLnR5cGUpJiYobi09cisxPT09bj8yOjQpO24+ciYmKGk9e3R5cGU6ImF0eEhlYWRpbmdUZXh0IixzdGFydDplW3JdWzFdLnN0YXJ0LGVuZDplW25dWzFdLmVuZH0sbz17dHlwZToiY2h1bmtUZXh0IixzdGFydDplW3JdWzFdLnN0YXJ0LGVuZDplW25dWzFdLmVuZCxjb250ZW50VHlwZToidGV4dCJ9LFZvKGUscixuLXIrMSxbWyJlbnRlciIsaSx0XSxbImVudGVyIixvLHRdLFsiZXhpdCIsbyx0XSxbImV4aXQiLGksdF1dKSk7cmV0dXJuIGV9LHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtsZXQgbz0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiYXR4SGVhZGluZyIpLGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxuKHQpfSh0KX07ZnVuY3Rpb24gbih0KXtyZXR1cm4gMzU9PT10JiZvKys8Nj8oZS5jb25zdW1lKHQpLG4pOm51bGw9PT10fHxkbih0KT8oZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxyKHQpKTppKHQpfWZ1bmN0aW9uIHIoaSl7cmV0dXJuIDM1PT09aT8oZS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIikscyhpKSk6bnVsbD09PWl8fGNuKGkpPyhlLmV4aXQoImF0eEhlYWRpbmciKSx0KGkpKTpobihpKT95bihlLHIsIndoaXRlc3BhY2UiKShpKTooZS5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxhKGkpKX1mdW5jdGlvbiBzKHQpe3JldHVybiAzNT09PXQ/KGUuY29uc3VtZSh0KSxzKTooZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxyKHQpKX1mdW5jdGlvbiBhKHQpe3JldHVybiBudWxsPT09dHx8MzU9PT10fHxkbih0KT8oZS5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLHIodCkpOihlLmNvbnN1bWUodCksYSl9fX07Y29uc3QgSm49e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOmZ1bmN0aW9uKGUsdCl7bGV0IGksbyxuLHI9ZS5sZW5ndGg7Zm9yKDtyLS07KWlmKCJlbnRlciI9PT1lW3JdWzBdKXtpZigiY29udGVudCI9PT1lW3JdWzFdLnR5cGUpe2k9cjticmVha30icGFyYWdyYXBoIj09PWVbcl1bMV0udHlwZSYmKG89cil9ZWxzZSJjb250ZW50Ij09PWVbcl1bMV0udHlwZSYmZS5zcGxpY2UociwxKSxufHwiZGVmaW5pdGlvbiIhPT1lW3JdWzFdLnR5cGV8fChuPXIpO2NvbnN0IHM9e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi5lW29dWzFdLnN0YXJ0fSxlbmQ6ey4uLmVbZS5sZW5ndGgtMV1bMV0uZW5kfX07ZVtvXVsxXS50eXBlPSJzZXRleHRIZWFkaW5nVGV4dCIsbj8oZS5zcGxpY2UobywwLFsiZW50ZXIiLHMsdF0pLGUuc3BsaWNlKG4rMSwwLFsiZXhpdCIsZVtpXVsxXSx0XSksZVtpXVsxXS5lbmQ9ey4uLmVbbl1bMV0uZW5kfSk6ZVtpXVsxXT1zO3JldHVybiBlLnB1c2goWyJleGl0IixzLHRdKSxlfSx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO2xldCBuO3JldHVybiBmdW5jdGlvbih0KXtsZXQgcyxhPW8uZXZlbnRzLmxlbmd0aDtmb3IoO2EtLTspaWYoImxpbmVFbmRpbmciIT09by5ldmVudHNbYV1bMV0udHlwZSYmImxpbmVQcmVmaXgiIT09by5ldmVudHNbYV1bMV0udHlwZSYmImNvbnRlbnQiIT09by5ldmVudHNbYV1bMV0udHlwZSl7cz0icGFyYWdyYXBoIj09PW8uZXZlbnRzW2FdWzFdLnR5cGU7YnJlYWt9aWYoIW8ucGFyc2VyLmxhenlbby5ub3coKS5saW5lXSYmKG8uaW50ZXJydXB0fHxzKSlyZXR1cm4gZS5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmUiKSxuPXQsZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxyKHQpfSh0KTtyZXR1cm4gaSh0KX07ZnVuY3Rpb24gcih0KXtyZXR1cm4gdD09PW4/KGUuY29uc3VtZSh0KSxyKTooZS5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksaG4odCk/eW4oZSxzLCJsaW5lU3VmZml4IikodCk6cyh0KSl9ZnVuY3Rpb24gcyhvKXtyZXR1cm4gbnVsbD09PW98fGNuKG8pPyhlLmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksdChvKSk6aShvKX19fTtjb25zdCBYbj1bImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQiLCJibG9ja3F1b3RlIiwiYm9keSIsImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0YWlscyIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiZnJhbWUiLCJmcmFtZXNldCIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJociIsImh0bWwiLCJpZnJhbWUiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYWluIiwibWVudSIsIm1lbnVpdGVtIiwibmF2Iiwibm9mcmFtZXMiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwicCIsInBhcmFtIiwic2VhcmNoIiwic2VjdGlvbiIsInN1bW1hcnkiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCJdLGVyPVsicHJlIiwic2NyaXB0Iiwic3R5bGUiLCJ0ZXh0YXJlYSJdLHRyPXtjb25jcmV0ZTohMCxuYW1lOiJodG1sRmxvdyIscmVzb2x2ZVRvOmZ1bmN0aW9uKGUpe2xldCB0PWUubGVuZ3RoO2Zvcig7dC0tJiYoImVudGVyIiE9PWVbdF1bMF18fCJodG1sRmxvdyIhPT1lW3RdWzFdLnR5cGUpOyk7dD4xJiYibGluZVByZWZpeCI9PT1lW3QtMl1bMV0udHlwZSYmKGVbdF1bMV0uc3RhcnQ9ZVt0LTJdWzFdLnN0YXJ0LGVbdCsxXVsxXS5zdGFydD1lW3QtMl1bMV0uc3RhcnQsZS5zcGxpY2UodC0yLDIpKTtyZXR1cm4gZX0sdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztsZXQgbixyLHMsYSxsO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoImh0bWxGbG93IiksZS5lbnRlcigiaHRtbEZsb3dEYXRhIiksZS5jb25zdW1lKHQpLGN9KHQpfTtmdW5jdGlvbiBjKGEpe3JldHVybiAzMz09PWE/KGUuY29uc3VtZShhKSxkKTo0Nz09PWE/KGUuY29uc3VtZShhKSxyPSEwLGYpOjYzPT09YT8oZS5jb25zdW1lKGEpLG49MyxvLmludGVycnVwdD90OkQpOnRuKGEpPyhlLmNvbnN1bWUoYSkscz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEpLHApOmkoYSl9ZnVuY3Rpb24gZChyKXtyZXR1cm4gNDU9PT1yPyhlLmNvbnN1bWUociksbj0yLGgpOjkxPT09cj8oZS5jb25zdW1lKHIpLG49NSxhPTAsdSk6dG4ocik/KGUuY29uc3VtZShyKSxuPTQsby5pbnRlcnJ1cHQ/dDpEKTppKHIpfWZ1bmN0aW9uIGgobil7cmV0dXJuIDQ1PT09bj8oZS5jb25zdW1lKG4pLG8uaW50ZXJydXB0P3Q6RCk6aShuKX1mdW5jdGlvbiB1KG4pe2NvbnN0IHI9IkNEQVRBWyI7cmV0dXJuIG49PT1yLmNoYXJDb2RlQXQoYSsrKT8oZS5jb25zdW1lKG4pLDY9PT1hP28uaW50ZXJydXB0P3Q6Xzp1KTppKG4pfWZ1bmN0aW9uIGYodCl7cmV0dXJuIHRuKHQpPyhlLmNvbnN1bWUodCkscz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLHApOmkodCl9ZnVuY3Rpb24gcChhKXtpZihudWxsPT09YXx8NDc9PT1hfHw2Mj09PWF8fGRuKGEpKXtjb25zdCBsPTQ3PT09YSxjPXMudG9Mb3dlckNhc2UoKTtyZXR1cm4gbHx8cnx8IWVyLmluY2x1ZGVzKGMpP1huLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSk/KG49NixsPyhlLmNvbnN1bWUoYSksbSk6by5pbnRlcnJ1cHQ/dChhKTpfKGEpKToobj03LG8uaW50ZXJydXB0JiYhby5wYXJzZXIubGF6eVtvLm5vdygpLmxpbmVdP2koYSk6cj9iKGEpOmcoYSkpOihuPTEsby5pbnRlcnJ1cHQ/dChhKTpfKGEpKX1yZXR1cm4gNDU9PT1hfHxvbihhKT8oZS5jb25zdW1lKGEpLHMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYSkscCk6aShhKX1mdW5jdGlvbiBtKG4pe3JldHVybiA2Mj09PW4/KGUuY29uc3VtZShuKSxvLmludGVycnVwdD90Ol8pOmkobil9ZnVuY3Rpb24gYih0KXtyZXR1cm4gaG4odCk/KGUuY29uc3VtZSh0KSxiKTokKHQpfWZ1bmN0aW9uIGcodCl7cmV0dXJuIDQ3PT09dD8oZS5jb25zdW1lKHQpLCQpOjU4PT09dHx8OTU9PT10fHx0bih0KT8oZS5jb25zdW1lKHQpLHYpOmhuKHQpPyhlLmNvbnN1bWUodCksZyk6JCh0KX1mdW5jdGlvbiB2KHQpe3JldHVybiA0NT09PXR8fDQ2PT09dHx8NTg9PT10fHw5NT09PXR8fG9uKHQpPyhlLmNvbnN1bWUodCksdik6dyh0KX1mdW5jdGlvbiB3KHQpe3JldHVybiA2MT09PXQ/KGUuY29uc3VtZSh0KSx5KTpobih0KT8oZS5jb25zdW1lKHQpLHcpOmcodCl9ZnVuY3Rpb24geSh0KXtyZXR1cm4gbnVsbD09PXR8fDYwPT09dHx8NjE9PT10fHw2Mj09PXR8fDk2PT09dD9pKHQpOjM0PT09dHx8Mzk9PT10PyhlLmNvbnN1bWUodCksbD10LHgpOmhuKHQpPyhlLmNvbnN1bWUodCkseSk6ayh0KX1mdW5jdGlvbiB4KHQpe3JldHVybiB0PT09bD8oZS5jb25zdW1lKHQpLGw9bnVsbCxTKTpudWxsPT09dHx8Y24odCk/aSh0KTooZS5jb25zdW1lKHQpLHgpfWZ1bmN0aW9uIGsodCl7cmV0dXJuIG51bGw9PT10fHwzND09PXR8fDM5PT09dHx8NDc9PT10fHw2MD09PXR8fDYxPT09dHx8NjI9PT10fHw5Nj09PXR8fGRuKHQpP3codCk6KGUuY29uc3VtZSh0KSxrKX1mdW5jdGlvbiBTKGUpe3JldHVybiA0Nz09PWV8fDYyPT09ZXx8aG4oZSk/ZyhlKTppKGUpfWZ1bmN0aW9uICQodCl7cmV0dXJuIDYyPT09dD8oZS5jb25zdW1lKHQpLHopOmkodCl9ZnVuY3Rpb24geih0KXtyZXR1cm4gbnVsbD09PXR8fGNuKHQpP18odCk6aG4odCk/KGUuY29uc3VtZSh0KSx6KTppKHQpfWZ1bmN0aW9uIF8odCl7cmV0dXJuIDQ1PT09dCYmMj09PW4/KGUuY29uc3VtZSh0KSxFKTo2MD09PXQmJjE9PT1uPyhlLmNvbnN1bWUodCksQSk6NjI9PT10JiY0PT09bj8oZS5jb25zdW1lKHQpLEYpOjYzPT09dCYmMz09PW4/KGUuY29uc3VtZSh0KSxEKTo5Mz09PXQmJjU9PT1uPyhlLmNvbnN1bWUodCksUCk6IWNuKHQpfHw2IT09biYmNyE9PW4/bnVsbD09PXR8fGNuKHQpPyhlLmV4aXQoImh0bWxGbG93RGF0YSIpLEModCkpOihlLmNvbnN1bWUodCksXyk6KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksZS5jaGVjayhpcixNLEMpKHQpKX1mdW5jdGlvbiBDKHQpe3JldHVybiBlLmNoZWNrKG9yLEksTSkodCl9ZnVuY3Rpb24gSSh0KXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxpbmVFbmRpbmciKSxMfWZ1bmN0aW9uIEwodCl7cmV0dXJuIG51bGw9PT10fHxjbih0KT9DKHQpOihlLmVudGVyKCJodG1sRmxvd0RhdGEiKSxfKHQpKX1mdW5jdGlvbiBFKHQpe3JldHVybiA0NT09PXQ/KGUuY29uc3VtZSh0KSxEKTpfKHQpfWZ1bmN0aW9uIEEodCl7cmV0dXJuIDQ3PT09dD8oZS5jb25zdW1lKHQpLHM9IiIsVCk6Xyh0KX1mdW5jdGlvbiBUKHQpe2lmKDYyPT09dCl7Y29uc3QgaT1zLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGVyLmluY2x1ZGVzKGkpPyhlLmNvbnN1bWUodCksRik6Xyh0KX1yZXR1cm4gdG4odCkmJnMubGVuZ3RoPDg/KGUuY29uc3VtZSh0KSxzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLFQpOl8odCl9ZnVuY3Rpb24gUCh0KXtyZXR1cm4gOTM9PT10PyhlLmNvbnN1bWUodCksRCk6Xyh0KX1mdW5jdGlvbiBEKHQpe3JldHVybiA2Mj09PXQ/KGUuY29uc3VtZSh0KSxGKTo0NT09PXQmJjI9PT1uPyhlLmNvbnN1bWUodCksRCk6Xyh0KX1mdW5jdGlvbiBGKHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksTSh0KSk6KGUuY29uc3VtZSh0KSxGKX1mdW5jdGlvbiBNKGkpe3JldHVybiBlLmV4aXQoImh0bWxGbG93IiksdChpKX19fSxpcj17cGFydGlhbDohMCx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLGUuYXR0ZW1wdCgkbix0LGkpfX19LG9yPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKGNuKHQpKXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHQpLGUuZXhpdCgibGluZUVuZGluZyIpLG47cmV0dXJuIGkodCl9O2Z1bmN0aW9uIG4oZSl7cmV0dXJuIG8ucGFyc2VyLmxhenlbby5ub3coKS5saW5lXT9pKGUpOnQoZSl9fX07Y29uc3QgbnI9e3BhcnRpYWw6ITAsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztyZXR1cm4gZnVuY3Rpb24odCl7aWYobnVsbD09PXQpcmV0dXJuIGkodCk7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaW5lRW5kaW5nIiksbn07ZnVuY3Rpb24gbihlKXtyZXR1cm4gby5wYXJzZXIubGF6eVtvLm5vdygpLmxpbmVdP2koZSk6dChlKX19fSxycj17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcyxuPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtsZXQgbj0wO3JldHVybiBzO2Z1bmN0aW9uIHModCl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaW5lRW5kaW5nIiksbH1mdW5jdGlvbiBsKHQpe3JldHVybiBlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSxobih0KT95bihlLGMsImxpbmVQcmVmaXgiLG8ucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkodCk6Yyh0KX1mdW5jdGlvbiBjKHQpe3JldHVybiB0PT09cj8oZS5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxkKHQpKTppKHQpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQ9PT1yPyhuKyssZS5jb25zdW1lKHQpLGQpOm4+PWE/KGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxobih0KT95bihlLGgsIndoaXRlc3BhY2UiKSh0KTpoKHQpKTppKHQpfWZ1bmN0aW9uIGgobyl7cmV0dXJuIG51bGw9PT1vfHxjbihvKT8oZS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSx0KG8pKTppKG8pfX19O2xldCByLHM9MCxhPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdCBpPW8uZXZlbnRzW28uZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gcz1pJiYibGluZVByZWZpeCI9PT1pWzFdLnR5cGU/aVsyXS5zbGljZVNlcmlhbGl6ZShpWzFdLCEwKS5sZW5ndGg6MCxyPXQsZS5lbnRlcigiY29kZUZlbmNlZCIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksbCh0KX0odCl9O2Z1bmN0aW9uIGwodCl7cmV0dXJuIHQ9PT1yPyhhKyssZS5jb25zdW1lKHQpLGwpOmE8Mz9pKHQpOihlLmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksaG4odCk/eW4oZSxjLCJ3aGl0ZXNwYWNlIikodCk6Yyh0KSl9ZnVuY3Rpb24gYyhpKXtyZXR1cm4gbnVsbD09PWl8fGNuKGkpPyhlLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLG8uaW50ZXJydXB0P3QoaSk6ZS5jaGVjayhucixmLHYpKGkpKTooZS5lbnRlcigiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxkKGkpKX1mdW5jdGlvbiBkKHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxjKHQpKTpobih0KT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLHluKGUsaCwid2hpdGVzcGFjZSIpKHQpKTo5Nj09PXQmJnQ9PT1yP2kodCk6KGUuY29uc3VtZSh0KSxkKX1mdW5jdGlvbiBoKHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/Yyh0KTooZS5lbnRlcigiY29kZUZlbmNlZEZlbmNlTWV0YSIpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx1KHQpKX1mdW5jdGlvbiB1KHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxjKHQpKTo5Nj09PXQmJnQ9PT1yP2kodCk6KGUuY29uc3VtZSh0KSx1KX1mdW5jdGlvbiBmKHQpe3JldHVybiBlLmF0dGVtcHQobix2LHApKHQpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaW5lRW5kaW5nIiksbX1mdW5jdGlvbiBtKHQpe3JldHVybiBzPjAmJmhuKHQpP3luKGUsYiwibGluZVByZWZpeCIscysxKSh0KTpiKHQpfWZ1bmN0aW9uIGIodCl7cmV0dXJuIG51bGw9PT10fHxjbih0KT9lLmNoZWNrKG5yLGYsdikodCk6KGUuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxnKHQpKX1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLGIodCkpOihlLmNvbnN1bWUodCksZyl9ZnVuY3Rpb24gdihpKXtyZXR1cm4gZS5leGl0KCJjb2RlRmVuY2VkIiksdChpKX19fTtjb25zdCBzcj17bmFtZToiY2hhcmFjdGVyUmVmZXJlbmNlIix0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO2xldCBuLHIscz0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKHQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksYX07ZnVuY3Rpb24gYSh0KXtyZXR1cm4gMzU9PT10PyhlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksZS5jb25zdW1lKHQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLGwpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49MzEscj1vbixjKHQpKX1mdW5jdGlvbiBsKHQpe3JldHVybiA4OD09PXR8fDEyMD09PXQ/KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksZS5jb25zdW1lKHQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NixyPWFuLGMpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxyPXNuLGModCkpfWZ1bmN0aW9uIGMoYSl7aWYoNTk9PT1hJiZzKXtjb25zdCBuPWUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKTtyZXR1cm4gciE9PW9ufHxXbyhvLnNsaWNlU2VyaWFsaXplKG4pKT8oZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGEpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSx0KTppKGEpfXJldHVybiByKGEpJiZzKys8bj8oZS5jb25zdW1lKGEpLGMpOmkoYSl9fX07Y29uc3QgYXI9e25hbWU6ImNoYXJhY3RlckVzY2FwZSIsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIiksZS5lbnRlcigiZXNjYXBlTWFya2VyIiksZS5jb25zdW1lKHQpLGUuZXhpdCgiZXNjYXBlTWFya2VyIiksb307ZnVuY3Rpb24gbyhvKXtyZXR1cm4gbG4obyk/KGUuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksZS5jb25zdW1lKG8pLGUuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxlLmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLHQpOmkobyl9fX07Y29uc3QgbHI9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGkpLGUuZXhpdCgibGluZUVuZGluZyIpLHluKGUsdCwibGluZVByZWZpeCIpfX19O2Z1bmN0aW9uIGNyKGUsdCxpKXtjb25zdCBvPVtdO2xldCBuPS0xO2Zvcig7KytuPGUubGVuZ3RoOyl7Y29uc3Qgcj1lW25dLnJlc29sdmVBbGw7ciYmIW8uaW5jbHVkZXMocikmJih0PXIodCxpKSxvLnB1c2gocikpfXJldHVybiB0fWNvbnN0IGRyPXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDpmdW5jdGlvbihlKXtsZXQgdD0tMTtjb25zdCBpPVtdO2Zvcig7Kyt0PGUubGVuZ3RoOyl7Y29uc3Qgbz1lW3RdWzFdO2lmKGkucHVzaChlW3RdKSwibGFiZWxJbWFnZSI9PT1vLnR5cGV8fCJsYWJlbExpbmsiPT09by50eXBlfHwibGFiZWxFbmQiPT09by50eXBlKXtjb25zdCBlPSJsYWJlbEltYWdlIj09PW8udHlwZT80OjI7by50eXBlPSJkYXRhIix0Kz1lfX1lLmxlbmd0aCE9PWkubGVuZ3RoJiZWbyhlLDAsZS5sZW5ndGgsaSk7cmV0dXJuIGV9LHJlc29sdmVUbzpmdW5jdGlvbihlLHQpe2xldCBpLG8sbixyLHM9ZS5sZW5ndGgsYT0wO2Zvcig7cy0tOylpZihpPWVbc11bMV0sbyl7aWYoImxpbmsiPT09aS50eXBlfHwibGFiZWxMaW5rIj09PWkudHlwZSYmaS5faW5hY3RpdmUpYnJlYWs7ImVudGVyIj09PWVbc11bMF0mJiJsYWJlbExpbmsiPT09aS50eXBlJiYoaS5faW5hY3RpdmU9ITApfWVsc2UgaWYobil7aWYoImVudGVyIj09PWVbc11bMF0mJigibGFiZWxJbWFnZSI9PT1pLnR5cGV8fCJsYWJlbExpbmsiPT09aS50eXBlKSYmIWkuX2JhbGFuY2VkJiYobz1zLCJsYWJlbExpbmsiIT09aS50eXBlKSl7YT0yO2JyZWFrfX1lbHNlImxhYmVsRW5kIj09PWkudHlwZSYmKG49cyk7Y29uc3QgbD17dHlwZToibGFiZWxMaW5rIj09PWVbb11bMV0udHlwZT8ibGluayI6ImltYWdlIixzdGFydDp7Li4uZVtvXVsxXS5zdGFydH0sZW5kOnsuLi5lW2UubGVuZ3RoLTFdWzFdLmVuZH19LGM9e3R5cGU6ImxhYmVsIixzdGFydDp7Li4uZVtvXVsxXS5zdGFydH0sZW5kOnsuLi5lW25dWzFdLmVuZH19LGQ9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLmVbbythKzJdWzFdLmVuZH0sZW5kOnsuLi5lW24tMl1bMV0uc3RhcnR9fTtyZXR1cm4gcj1bWyJlbnRlciIsbCx0XSxbImVudGVyIixjLHRdXSxyPUdvKHIsZS5zbGljZShvKzEsbythKzMpKSxyPUdvKHIsW1siZW50ZXIiLGQsdF1dKSxyPUdvKHIsY3IodC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsZS5zbGljZShvK2ErNCxuLTMpLHQpKSxyPUdvKHIsW1siZXhpdCIsZCx0XSxlW24tMl0sZVtuLTFdLFsiZXhpdCIsYyx0XV0pLHI9R28ocixlLnNsaWNlKG4rMSkpLHI9R28ocixbWyJleGl0IixsLHRdXSksVm8oZSxvLGUubGVuZ3RoLHIpLGV9LHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7bGV0IG4scixzPW8uZXZlbnRzLmxlbmd0aDtmb3IoO3MtLTspaWYoKCJsYWJlbEltYWdlIj09PW8uZXZlbnRzW3NdWzFdLnR5cGV8fCJsYWJlbExpbmsiPT09by5ldmVudHNbc11bMV0udHlwZSkmJiFvLmV2ZW50c1tzXVsxXS5fYmFsYW5jZWQpe249by5ldmVudHNbc11bMV07YnJlYWt9cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKCFuKXJldHVybiBpKHQpO2lmKG4uX2luYWN0aXZlKXJldHVybiBkKHQpO3JldHVybiByPW8ucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoZW4oby5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOm8ubm93KCl9KSkpLGUuZW50ZXIoImxhYmVsRW5kIiksZS5lbnRlcigibGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUodCksZS5leGl0KCJsYWJlbE1hcmtlciIpLGUuZXhpdCgibGFiZWxFbmQiKSxhfTtmdW5jdGlvbiBhKHQpe3JldHVybiA0MD09PXQ/ZS5hdHRlbXB0KGhyLGMscj9jOmQpKHQpOjkxPT09dD9lLmF0dGVtcHQodXIsYyxyP2w6ZCkodCk6cj9jKHQpOmQodCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZS5hdHRlbXB0KGZyLGMsZCkodCl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gdChlKX1mdW5jdGlvbiBkKGUpe3JldHVybiBuLl9iYWxhbmNlZD0hMCxpKGUpfX19LGhyPXt0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJyZXNvdXJjZSIpLGUuZW50ZXIoInJlc291cmNlTWFya2VyIiksZS5jb25zdW1lKHQpLGUuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxvfTtmdW5jdGlvbiBvKHQpe3JldHVybiBkbih0KT9WbihlLG4pKHQpOm4odCl9ZnVuY3Rpb24gbih0KXtyZXR1cm4gNDE9PT10P2ModCk6am4oZSxyLHMsInJlc291cmNlRGVzdGluYXRpb24iLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwicmVzb3VyY2VEZXN0aW5hdGlvblJhdyIsInJlc291cmNlRGVzdGluYXRpb25TdHJpbmciLDMyKSh0KX1mdW5jdGlvbiByKHQpe3JldHVybiBkbih0KT9WbihlLGEpKHQpOmModCl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gaShlKX1mdW5jdGlvbiBhKHQpe3JldHVybiAzND09PXR8fDM5PT09dHx8NDA9PT10P1duKGUsbCxpLCJyZXNvdXJjZVRpdGxlIiwicmVzb3VyY2VUaXRsZU1hcmtlciIsInJlc291cmNlVGl0bGVTdHJpbmciKSh0KTpjKHQpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIGRuKHQpP1ZuKGUsYykodCk6Yyh0KX1mdW5jdGlvbiBjKG8pe3JldHVybiA0MT09PW8/KGUuZW50ZXIoInJlc291cmNlTWFya2VyIiksZS5jb25zdW1lKG8pLGUuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxlLmV4aXQoInJlc291cmNlIiksdCk6aShvKX19fSx1cj17dG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEhuLmNhbGwobyxlLG4sciwicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIikodCl9O2Z1bmN0aW9uIG4oZSl7cmV0dXJuIG8ucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoZW4oby5zbGljZVNlcmlhbGl6ZShvLmV2ZW50c1tvLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSk/dChlKTppKGUpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGkoZSl9fX0sZnI9e3Rva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoInJlZmVyZW5jZSIpLGUuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZSh0KSxlLmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLG99O2Z1bmN0aW9uIG8obyl7cmV0dXJuIDkzPT09bz8oZS5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKG8pLGUuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksZS5leGl0KCJyZWZlcmVuY2UiKSx0KTppKG8pfX19O2NvbnN0IHByPXtuYW1lOiJsYWJlbFN0YXJ0SW1hZ2UiLHJlc29sdmVBbGw6ZHIucmVzb2x2ZUFsbCx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigibGFiZWxJbWFnZSIpLGUuZW50ZXIoImxhYmVsSW1hZ2VNYXJrZXIiKSxlLmNvbnN1bWUodCksZS5leGl0KCJsYWJlbEltYWdlTWFya2VyIiksbn07ZnVuY3Rpb24gbih0KXtyZXR1cm4gOTE9PT10PyhlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbEltYWdlIikscik6aSh0KX1mdW5jdGlvbiByKGUpe3JldHVybiA5ND09PWUmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIG8ucGFyc2VyLmNvbnN0cnVjdHM/aShlKTp0KGUpfX19O2Z1bmN0aW9uIG1yKGUpe3JldHVybiBudWxsPT09ZXx8ZG4oZSl8fGZuKGUpPzE6dW4oZSk/Mjp2b2lkIDB9Y29uc3QgYnI9e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDpmdW5jdGlvbihlLHQpe2xldCBpLG8sbixyLHMsYSxsLGMsZD0tMTtmb3IoOysrZDxlLmxlbmd0aDspaWYoImVudGVyIj09PWVbZF1bMF0mJiJhdHRlbnRpb25TZXF1ZW5jZSI9PT1lW2RdWzFdLnR5cGUmJmVbZF1bMV0uX2Nsb3NlKWZvcihpPWQ7aS0tOylpZigiZXhpdCI9PT1lW2ldWzBdJiYiYXR0ZW50aW9uU2VxdWVuY2UiPT09ZVtpXVsxXS50eXBlJiZlW2ldWzFdLl9vcGVuJiZ0LnNsaWNlU2VyaWFsaXplKGVbaV1bMV0pLmNoYXJDb2RlQXQoMCk9PT10LnNsaWNlU2VyaWFsaXplKGVbZF1bMV0pLmNoYXJDb2RlQXQoMCkpe2lmKChlW2ldWzFdLl9jbG9zZXx8ZVtkXVsxXS5fb3BlbikmJihlW2RdWzFdLmVuZC5vZmZzZXQtZVtkXVsxXS5zdGFydC5vZmZzZXQpJTMmJiEoKGVbaV1bMV0uZW5kLm9mZnNldC1lW2ldWzFdLnN0YXJ0Lm9mZnNldCtlW2RdWzFdLmVuZC5vZmZzZXQtZVtkXVsxXS5zdGFydC5vZmZzZXQpJTMpKWNvbnRpbnVlO2E9ZVtpXVsxXS5lbmQub2Zmc2V0LWVbaV1bMV0uc3RhcnQub2Zmc2V0PjEmJmVbZF1bMV0uZW5kLm9mZnNldC1lW2RdWzFdLnN0YXJ0Lm9mZnNldD4xPzI6MTtjb25zdCBoPXsuLi5lW2ldWzFdLmVuZH0sdT17Li4uZVtkXVsxXS5zdGFydH07Z3IoaCwtYSksZ3IodSxhKSxyPXt0eXBlOmE+MT8ic3Ryb25nU2VxdWVuY2UiOiJlbXBoYXNpc1NlcXVlbmNlIixzdGFydDpoLGVuZDp7Li4uZVtpXVsxXS5lbmR9fSxzPXt0eXBlOmE+MT8ic3Ryb25nU2VxdWVuY2UiOiJlbXBoYXNpc1NlcXVlbmNlIixzdGFydDp7Li4uZVtkXVsxXS5zdGFydH0sZW5kOnV9LG49e3R5cGU6YT4xPyJzdHJvbmdUZXh0IjoiZW1waGFzaXNUZXh0IixzdGFydDp7Li4uZVtpXVsxXS5lbmR9LGVuZDp7Li4uZVtkXVsxXS5zdGFydH19LG89e3R5cGU6YT4xPyJzdHJvbmciOiJlbXBoYXNpcyIsc3RhcnQ6ey4uLnIuc3RhcnR9LGVuZDp7Li4ucy5lbmR9fSxlW2ldWzFdLmVuZD17Li4uci5zdGFydH0sZVtkXVsxXS5zdGFydD17Li4ucy5lbmR9LGw9W10sZVtpXVsxXS5lbmQub2Zmc2V0LWVbaV1bMV0uc3RhcnQub2Zmc2V0JiYobD1HbyhsLFtbImVudGVyIixlW2ldWzFdLHRdLFsiZXhpdCIsZVtpXVsxXSx0XV0pKSxsPUdvKGwsW1siZW50ZXIiLG8sdF0sWyJlbnRlciIscix0XSxbImV4aXQiLHIsdF0sWyJlbnRlciIsbix0XV0pLGw9R28obCxjcih0LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCxlLnNsaWNlKGkrMSxkKSx0KSksbD1HbyhsLFtbImV4aXQiLG4sdF0sWyJlbnRlciIscyx0XSxbImV4aXQiLHMsdF0sWyJleGl0IixvLHRdXSksZVtkXVsxXS5lbmQub2Zmc2V0LWVbZF1bMV0uc3RhcnQub2Zmc2V0PyhjPTIsbD1HbyhsLFtbImVudGVyIixlW2RdWzFdLHRdLFsiZXhpdCIsZVtkXVsxXSx0XV0pKTpjPTAsVm8oZSxpLTEsZC1pKzMsbCksZD1pK2wubGVuZ3RoLWMtMjticmVha31kPS0xO2Zvcig7KytkPGUubGVuZ3RoOykiYXR0ZW50aW9uU2VxdWVuY2UiPT09ZVtkXVsxXS50eXBlJiYoZVtkXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIGV9LHRva2VuaXplOmZ1bmN0aW9uKGUsdCl7Y29uc3QgaT10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxvPXRoaXMucHJldmlvdXMsbj1tcihvKTtsZXQgcjtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxlLmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLHModCl9O2Z1bmN0aW9uIHMoYSl7aWYoYT09PXIpcmV0dXJuIGUuY29uc3VtZShhKSxzO2NvbnN0IGw9ZS5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLGM9bXIoYSksZD0hY3x8Mj09PWMmJm58fGkuaW5jbHVkZXMoYSksaD0hbnx8Mj09PW4mJmN8fGkuaW5jbHVkZXMobyk7cmV0dXJuIGwuX29wZW49Qm9vbGVhbig0Mj09PXI/ZDpkJiYobnx8IWgpKSxsLl9jbG9zZT1Cb29sZWFuKDQyPT09cj9oOmgmJihjfHwhZCkpLHQoYSl9fX07ZnVuY3Rpb24gZ3IoZSx0KXtlLmNvbHVtbis9dCxlLm9mZnNldCs9dCxlLl9idWZmZXJJbmRleCs9dH1jb25zdCB2cj17bmFtZToiYXV0b2xpbmsiLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtsZXQgbz0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiYXV0b2xpbmsiKSxlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLG59O2Z1bmN0aW9uIG4odCl7cmV0dXJuIHRuKHQpPyhlLmNvbnN1bWUodCkscik6NjQ9PT10P2kodCk6bCh0KX1mdW5jdGlvbiByKGUpe3JldHVybiA0Mz09PWV8fDQ1PT09ZXx8NDY9PT1lfHxvbihlKT8obz0xLHMoZSkpOmwoZSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gNTg9PT10PyhlLmNvbnN1bWUodCksbz0wLGEpOig0Mz09PXR8fDQ1PT09dHx8NDY9PT10fHxvbih0KSkmJm8rKzwzMj8oZS5jb25zdW1lKHQpLHMpOihvPTAsbCh0KSl9ZnVuY3Rpb24gYShvKXtyZXR1cm4gNjI9PT1vPyhlLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKSxlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShvKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5leGl0KCJhdXRvbGluayIpLHQpOm51bGw9PT1vfHwzMj09PW98fDYwPT09b3x8cm4obyk/aShvKTooZS5jb25zdW1lKG8pLGEpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIDY0PT09dD8oZS5jb25zdW1lKHQpLGMpOm5uKHQpPyhlLmNvbnN1bWUodCksbCk6aSh0KX1mdW5jdGlvbiBjKGUpe3JldHVybiBvbihlKT9kKGUpOmkoZSl9ZnVuY3Rpb24gZChpKXtyZXR1cm4gNDY9PT1pPyhlLmNvbnN1bWUoaSksbz0wLGMpOjYyPT09aT8oZS5leGl0KCJhdXRvbGlua1Byb3RvY29sIikudHlwZT0iYXV0b2xpbmtFbWFpbCIsZS5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxlLmNvbnN1bWUoaSksZS5leGl0KCJhdXRvbGlua01hcmtlciIpLGUuZXhpdCgiYXV0b2xpbmsiKSx0KTpoKGkpfWZ1bmN0aW9uIGgodCl7aWYoKDQ1PT09dHx8b24odCkpJiZvKys8NjMpe2NvbnN0IGk9NDU9PT10P2g6ZDtyZXR1cm4gZS5jb25zdW1lKHQpLGl9cmV0dXJuIGkodCl9fX07Y29uc3Qgd3I9e25hbWU6Imh0bWxUZXh0Iix0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO2xldCBuLHIscztyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoImh0bWxUZXh0IiksZS5lbnRlcigiaHRtbFRleHREYXRhIiksZS5jb25zdW1lKHQpLGF9O2Z1bmN0aW9uIGEodCl7cmV0dXJuIDMzPT09dD8oZS5jb25zdW1lKHQpLGwpOjQ3PT09dD8oZS5jb25zdW1lKHQpLHkpOjYzPT09dD8oZS5jb25zdW1lKHQpLHYpOnRuKHQpPyhlLmNvbnN1bWUodCksUyk6aSh0KX1mdW5jdGlvbiBsKHQpe3JldHVybiA0NT09PXQ/KGUuY29uc3VtZSh0KSxjKTo5MT09PXQ/KGUuY29uc3VtZSh0KSxyPTAsZik6dG4odCk/KGUuY29uc3VtZSh0KSxnKTppKHQpfWZ1bmN0aW9uIGModCl7cmV0dXJuIDQ1PT09dD8oZS5jb25zdW1lKHQpLHUpOmkodCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbnVsbD09PXQ/aSh0KTo0NT09PXQ/KGUuY29uc3VtZSh0KSxoKTpjbih0KT8ocz1kLFQodCkpOihlLmNvbnN1bWUodCksZCl9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gNDU9PT10PyhlLmNvbnN1bWUodCksdSk6ZCh0KX1mdW5jdGlvbiB1KGUpe3JldHVybiA2Mj09PWU/QShlKTo0NT09PWU/aChlKTpkKGUpfWZ1bmN0aW9uIGYodCl7Y29uc3Qgbz0iQ0RBVEFbIjtyZXR1cm4gdD09PW8uY2hhckNvZGVBdChyKyspPyhlLmNvbnN1bWUodCksNj09PXI/cDpmKTppKHQpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIG51bGw9PT10P2kodCk6OTM9PT10PyhlLmNvbnN1bWUodCksbSk6Y24odCk/KHM9cCxUKHQpKTooZS5jb25zdW1lKHQpLHApfWZ1bmN0aW9uIG0odCl7cmV0dXJuIDkzPT09dD8oZS5jb25zdW1lKHQpLGIpOnAodCl9ZnVuY3Rpb24gYih0KXtyZXR1cm4gNjI9PT10P0EodCk6OTM9PT10PyhlLmNvbnN1bWUodCksYik6cCh0KX1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsPT09dHx8NjI9PT10P0EodCk6Y24odCk/KHM9ZyxUKHQpKTooZS5jb25zdW1lKHQpLGcpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PT10P2kodCk6NjM9PT10PyhlLmNvbnN1bWUodCksdyk6Y24odCk/KHM9dixUKHQpKTooZS5jb25zdW1lKHQpLHYpfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIDYyPT09ZT9BKGUpOnYoZSl9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdG4odCk/KGUuY29uc3VtZSh0KSx4KTppKHQpfWZ1bmN0aW9uIHgodCl7cmV0dXJuIDQ1PT09dHx8b24odCk/KGUuY29uc3VtZSh0KSx4KTprKHQpfWZ1bmN0aW9uIGsodCl7cmV0dXJuIGNuKHQpPyhzPWssVCh0KSk6aG4odCk/KGUuY29uc3VtZSh0KSxrKTpBKHQpfWZ1bmN0aW9uIFModCl7cmV0dXJuIDQ1PT09dHx8b24odCk/KGUuY29uc3VtZSh0KSxTKTo0Nz09PXR8fDYyPT09dHx8ZG4odCk/JCh0KTppKHQpfWZ1bmN0aW9uICQodCl7cmV0dXJuIDQ3PT09dD8oZS5jb25zdW1lKHQpLEEpOjU4PT09dHx8OTU9PT10fHx0bih0KT8oZS5jb25zdW1lKHQpLHopOmNuKHQpPyhzPSQsVCh0KSk6aG4odCk/KGUuY29uc3VtZSh0KSwkKTpBKHQpfWZ1bmN0aW9uIHoodCl7cmV0dXJuIDQ1PT09dHx8NDY9PT10fHw1OD09PXR8fDk1PT09dHx8b24odCk/KGUuY29uc3VtZSh0KSx6KTpfKHQpfWZ1bmN0aW9uIF8odCl7cmV0dXJuIDYxPT09dD8oZS5jb25zdW1lKHQpLEMpOmNuKHQpPyhzPV8sVCh0KSk6aG4odCk/KGUuY29uc3VtZSh0KSxfKTokKHQpfWZ1bmN0aW9uIEModCl7cmV0dXJuIG51bGw9PT10fHw2MD09PXR8fDYxPT09dHx8NjI9PT10fHw5Nj09PXQ/aSh0KTozND09PXR8fDM5PT09dD8oZS5jb25zdW1lKHQpLG49dCxJKTpjbih0KT8ocz1DLFQodCkpOmhuKHQpPyhlLmNvbnN1bWUodCksQyk6KGUuY29uc3VtZSh0KSxMKX1mdW5jdGlvbiBJKHQpe3JldHVybiB0PT09bj8oZS5jb25zdW1lKHQpLG49dm9pZCAwLEUpOm51bGw9PT10P2kodCk6Y24odCk/KHM9SSxUKHQpKTooZS5jb25zdW1lKHQpLEkpfWZ1bmN0aW9uIEwodCl7cmV0dXJuIG51bGw9PT10fHwzND09PXR8fDM5PT09dHx8NjA9PT10fHw2MT09PXR8fDk2PT09dD9pKHQpOjQ3PT09dHx8NjI9PT10fHxkbih0KT8kKHQpOihlLmNvbnN1bWUodCksTCl9ZnVuY3Rpb24gRShlKXtyZXR1cm4gNDc9PT1lfHw2Mj09PWV8fGRuKGUpPyQoZSk6aShlKX1mdW5jdGlvbiBBKG8pe3JldHVybiA2Mj09PW8/KGUuY29uc3VtZShvKSxlLmV4aXQoImh0bWxUZXh0RGF0YSIpLGUuZXhpdCgiaHRtbFRleHQiKSx0KTppKG8pfWZ1bmN0aW9uIFQodCl7cmV0dXJuIGUuZXhpdCgiaHRtbFRleHREYXRhIiksZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxpbmVFbmRpbmciKSxQfWZ1bmN0aW9uIFAodCl7cmV0dXJuIGhuKHQpP3luKGUsRCwibGluZVByZWZpeCIsby5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KSh0KTpEKHQpfWZ1bmN0aW9uIEQodCl7cmV0dXJuIGUuZW50ZXIoImh0bWxUZXh0RGF0YSIpLHModCl9fX07Y29uc3QgeXI9e25hbWU6ImxhYmVsU3RhcnRMaW5rIixyZXNvbHZlQWxsOmRyLnJlc29sdmVBbGwsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoImxhYmVsTGluayIpLGUuZW50ZXIoImxhYmVsTWFya2VyIiksZS5jb25zdW1lKHQpLGUuZXhpdCgibGFiZWxNYXJrZXIiKSxlLmV4aXQoImxhYmVsTGluayIpLG59O2Z1bmN0aW9uIG4oZSl7cmV0dXJuIDk0PT09ZSYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gby5wYXJzZXIuY29uc3RydWN0cz9pKGUpOnQoZSl9fX07Y29uc3QgeHI9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiaGFyZEJyZWFrRXNjYXBlIiksZS5jb25zdW1lKHQpLG99O2Z1bmN0aW9uIG8obyl7cmV0dXJuIGNuKG8pPyhlLmV4aXQoImhhcmRCcmVha0VzY2FwZSIpLHQobykpOmkobyl9fX07Y29uc3Qga3I9e25hbWU6ImNvZGVUZXh0IixwcmV2aW91czpmdW5jdGlvbihlKXtyZXR1cm4gOTYhPT1lfHwiY2hhcmFjdGVyRXNjYXBlIj09PXRoaXMuZXZlbnRzW3RoaXMuZXZlbnRzLmxlbmd0aC0xXVsxXS50eXBlfSxyZXNvbHZlOmZ1bmN0aW9uKGUpe2xldCB0LGksbz1lLmxlbmd0aC00LG49MztpZighKCJsaW5lRW5kaW5nIiE9PWVbbl1bMV0udHlwZSYmInNwYWNlIiE9PWVbbl1bMV0udHlwZXx8ImxpbmVFbmRpbmciIT09ZVtvXVsxXS50eXBlJiYic3BhY2UiIT09ZVtvXVsxXS50eXBlKSlmb3IodD1uOysrdDxvOylpZigiY29kZVRleHREYXRhIj09PWVbdF1bMV0udHlwZSl7ZVtuXVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLGVbb11bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixuKz0yLG8tPTI7YnJlYWt9dD1uLTEsbysrO2Zvcig7Kyt0PD1vOyl2b2lkIDA9PT1pP3QhPT1vJiYibGluZUVuZGluZyIhPT1lW3RdWzFdLnR5cGUmJihpPXQpOnQhPT1vJiYibGluZUVuZGluZyIhPT1lW3RdWzFdLnR5cGV8fChlW2ldWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsdCE9PWkrMiYmKGVbaV1bMV0uZW5kPWVbdC0xXVsxXS5lbmQsZS5zcGxpY2UoaSsyLHQtaS0yKSxvLT10LWktMix0PWkrMiksaT12b2lkIDApO3JldHVybiBlfSx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7bGV0IG8sbixyPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJjb2RlVGV4dCIpLGUuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxzKHQpfTtmdW5jdGlvbiBzKHQpe3JldHVybiA5Nj09PXQ/KGUuY29uc3VtZSh0KSxyKysscyk6KGUuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGEodCkpfWZ1bmN0aW9uIGEodCl7cmV0dXJuIG51bGw9PT10P2kodCk6MzI9PT10PyhlLmVudGVyKCJzcGFjZSIpLGUuY29uc3VtZSh0KSxlLmV4aXQoInNwYWNlIiksYSk6OTY9PT10PyhuPWUuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxvPTAsYyh0KSk6Y24odCk/KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaW5lRW5kaW5nIiksYSk6KGUuZW50ZXIoImNvZGVUZXh0RGF0YSIpLGwodCkpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIG51bGw9PT10fHwzMj09PXR8fDk2PT09dHx8Y24odCk/KGUuZXhpdCgiY29kZVRleHREYXRhIiksYSh0KSk6KGUuY29uc3VtZSh0KSxsKX1mdW5jdGlvbiBjKGkpe3JldHVybiA5Nj09PWk/KGUuY29uc3VtZShpKSxvKyssYyk6bz09PXI/KGUuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGUuZXhpdCgiY29kZVRleHQiKSx0KGkpKToobi50eXBlPSJjb2RlVGV4dERhdGEiLGwoaSkpfX19O2NvbnN0IFNyPXs0MjpVbiw0MzpVbiw0NTpVbiw0ODpVbiw0OTpVbiw1MDpVbiw1MTpVbiw1MjpVbiw1MzpVbiw1NDpVbiw1NTpVbiw1NjpVbiw1NzpVbiw2Mjpxbn0sJHI9ezkxOkdufSx6cj17Wy0yXTpZbixbLTFdOlluLDMyOllufSxfcj17MzU6Wm4sNDI6T24sNDU6W0puLE9uXSw2MDp0ciw2MTpKbiw5NTpPbiw5NjpyciwxMjY6cnJ9LENyPXszODpzciw5Mjphcn0sSXI9e1stNV06bHIsWy00XTpscixbLTNdOmxyLDMzOnByLDM4OnNyLDQyOmJyLDYwOlt2cix3cl0sOTE6eXIsOTI6W3hyLGFyXSw5Mzpkciw5NTpiciw5Njprcn0sTHI9e251bGw6W2JyLFRuXX0sRXI9e251bGw6WzQyLDk1XX0sQXI9e251bGw6W119O2Z1bmN0aW9uIFRyKGUsdCxpKXtsZXQgbz17X2J1ZmZlckluZGV4Oi0xLF9pbmRleDowLGxpbmU6aSYmaS5saW5lfHwxLGNvbHVtbjppJiZpLmNvbHVtbnx8MSxvZmZzZXQ6aSYmaS5vZmZzZXR8fDB9O2NvbnN0IG49e30scj1bXTtsZXQgcz1bXSxhPVtdLGw9ITA7Y29uc3QgYz17YXR0ZW1wdDp2KChmdW5jdGlvbihlLHQpe3coZSx0LmZyb20pfSkpLGNoZWNrOnYoZyksY29uc3VtZTpmdW5jdGlvbihlKXtjbihlKT8oby5saW5lKyssby5jb2x1bW49MSxvLm9mZnNldCs9LTM9PT1lPzI6MSx5KCkpOi0xIT09ZSYmKG8uY29sdW1uKyssby5vZmZzZXQrKyk7by5fYnVmZmVySW5kZXg8MD9vLl9pbmRleCsrOihvLl9idWZmZXJJbmRleCsrLG8uX2J1ZmZlckluZGV4PT09c1tvLl9pbmRleF0ubGVuZ3RoJiYoby5fYnVmZmVySW5kZXg9LTEsby5faW5kZXgrKykpO2QucHJldmlvdXM9ZSxsPSEwfSxlbnRlcjpmdW5jdGlvbihlLHQpe2NvbnN0IGk9dHx8e307cmV0dXJuIGkudHlwZT1lLGkuc3RhcnQ9cCgpLGQuZXZlbnRzLnB1c2goWyJlbnRlciIsaSxkXSksYS5wdXNoKGkpLGl9LGV4aXQ6ZnVuY3Rpb24oZSl7Y29uc3QgdD1hLnBvcCgpO3JldHVybiB0LmVuZD1wKCksZC5ldmVudHMucHVzaChbImV4aXQiLHQsZF0pLHR9LGludGVycnVwdDp2KGcse2ludGVycnVwdDohMH0pfSxkPXtjb2RlOm51bGwsY29udGFpbmVyU3RhdGU6e30sZGVmaW5lU2tpcDpmdW5jdGlvbihlKXtuW2UubGluZV09ZS5jb2x1bW4seSgpfSxldmVudHM6W10sbm93OnAscGFyc2VyOmUscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTpmdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihlLHQpe2xldCBpPS0xO2NvbnN0IG89W107bGV0IG47Zm9yKDsrK2k8ZS5sZW5ndGg7KXtjb25zdCByPWVbaV07bGV0IHM7aWYoInN0cmluZyI9PXR5cGVvZiByKXM9cjtlbHNlIHN3aXRjaChyKXtjYXNlLTU6cz0iXHIiO2JyZWFrO2Nhc2UtNDpzPSJcbiI7YnJlYWs7Y2FzZS0zOnM9IlxyXG4iO2JyZWFrO2Nhc2UtMjpzPXQ/IiAiOiJcdCI7YnJlYWs7Y2FzZS0xOmlmKCF0JiZuKWNvbnRpbnVlO3M9IiAiO2JyZWFrO2RlZmF1bHQ6cz1TdHJpbmcuZnJvbUNoYXJDb2RlKHIpfW49LTI9PT1yLG8ucHVzaChzKX1yZXR1cm4gby5qb2luKCIiKX0oZihlKSx0KX0sc2xpY2VTdHJlYW06Zix3cml0ZTpmdW5jdGlvbihlKXtpZihzPUdvKHMsZSksbSgpLG51bGwhPT1zW3MubGVuZ3RoLTFdKXJldHVybltdO3JldHVybiB3KHQsMCksZC5ldmVudHM9Y3IocixkLmV2ZW50cyxkKSxkLmV2ZW50c319O2xldCBoLHU9dC50b2tlbml6ZS5jYWxsKGQsYyk7cmV0dXJuIHQucmVzb2x2ZUFsbCYmci5wdXNoKHQpLGQ7ZnVuY3Rpb24gZihlKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtjb25zdCBpPXQuc3RhcnQuX2luZGV4LG89dC5zdGFydC5fYnVmZmVySW5kZXgsbj10LmVuZC5faW5kZXgscj10LmVuZC5fYnVmZmVySW5kZXg7bGV0IHM7aWYoaT09PW4pcz1bZVtpXS5zbGljZShvLHIpXTtlbHNle2lmKHM9ZS5zbGljZShpLG4pLG8+LTEpe2NvbnN0IGU9c1swXTsic3RyaW5nIj09dHlwZW9mIGU/c1swXT1lLnNsaWNlKG8pOnMuc2hpZnQoKX1yPjAmJnMucHVzaChlW25dLnNsaWNlKDAscikpfXJldHVybiBzfShzLGUpfWZ1bmN0aW9uIHAoKXtjb25zdHtfYnVmZmVySW5kZXg6ZSxfaW5kZXg6dCxsaW5lOmksY29sdW1uOm4sb2Zmc2V0OnJ9PW87cmV0dXJue19idWZmZXJJbmRleDplLF9pbmRleDp0LGxpbmU6aSxjb2x1bW46bixvZmZzZXQ6cn19ZnVuY3Rpb24gbSgpe2xldCBlO2Zvcig7by5faW5kZXg8cy5sZW5ndGg7KXtjb25zdCB0PXNbby5faW5kZXhdO2lmKCJzdHJpbmciPT10eXBlb2YgdClmb3IoZT1vLl9pbmRleCxvLl9idWZmZXJJbmRleDwwJiYoby5fYnVmZmVySW5kZXg9MCk7by5faW5kZXg9PT1lJiZvLl9idWZmZXJJbmRleDx0Lmxlbmd0aDspYih0LmNoYXJDb2RlQXQoby5fYnVmZmVySW5kZXgpKTtlbHNlIGIodCl9fWZ1bmN0aW9uIGIoZSl7bD12b2lkIDAsaD1lLHU9dShlKX1mdW5jdGlvbiBnKGUsdCl7dC5yZXN0b3JlKCl9ZnVuY3Rpb24gdihlLHQpe3JldHVybiBmdW5jdGlvbihpLG4scil7bGV0IHMsaCx1LGY7cmV0dXJuIEFycmF5LmlzQXJyYXkoaSk/bShpKToidG9rZW5pemUiaW4gaT9tKFtpXSk6ZnVuY3Rpb24oZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdCh0KXtjb25zdCBpPW51bGwhPT10JiZlW3RdLG89bnVsbCE9PXQmJmUubnVsbDtyZXR1cm4gbShbLi4uQXJyYXkuaXNBcnJheShpKT9pOmk/W2ldOltdLC4uLkFycmF5LmlzQXJyYXkobyk/bzpvP1tvXTpbXV0pKHQpfX0oaSk7ZnVuY3Rpb24gbShlKXtyZXR1cm4gcz1lLGg9MCwwPT09ZS5sZW5ndGg/cjpiKGVbaF0pfWZ1bmN0aW9uIGIoZSl7cmV0dXJuIGZ1bmN0aW9uKGkpe2Y9ZnVuY3Rpb24oKXtjb25zdCBlPXAoKSx0PWQucHJldmlvdXMsaT1kLmN1cnJlbnRDb25zdHJ1Y3Qsbj1kLmV2ZW50cy5sZW5ndGgscj1BcnJheS5mcm9tKGEpO3JldHVybntmcm9tOm4scmVzdG9yZTpzfTtmdW5jdGlvbiBzKCl7bz1lLGQucHJldmlvdXM9dCxkLmN1cnJlbnRDb25zdHJ1Y3Q9aSxkLmV2ZW50cy5sZW5ndGg9bixhPXIseSgpfX0oKSx1PWUsZS5wYXJ0aWFsfHwoZC5jdXJyZW50Q29uc3RydWN0PWUpO2lmKGUubmFtZSYmZC5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoZS5uYW1lKSlyZXR1cm4gdihpKTtyZXR1cm4gZS50b2tlbml6ZS5jYWxsKHQ/T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKGQpLHQpOmQsYyxnLHYpKGkpfX1mdW5jdGlvbiBnKHQpe3JldHVybiBsPSEwLGUodSxmKSxufWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGw9ITAsZi5yZXN0b3JlKCksKytoPHMubGVuZ3RoP2Ioc1toXSk6cn19fWZ1bmN0aW9uIHcoZSx0KXtlLnJlc29sdmVBbGwmJiFyLmluY2x1ZGVzKGUpJiZyLnB1c2goZSksZS5yZXNvbHZlJiZWbyhkLmV2ZW50cyx0LGQuZXZlbnRzLmxlbmd0aC10LGUucmVzb2x2ZShkLmV2ZW50cy5zbGljZSh0KSxkKSksZS5yZXNvbHZlVG8mJihkLmV2ZW50cz1lLnJlc29sdmVUbyhkLmV2ZW50cyxkKSl9ZnVuY3Rpb24geSgpe28ubGluZSBpbiBuJiZvLmNvbHVtbjwyJiYoby5jb2x1bW49bltvLmxpbmVdLG8ub2Zmc2V0Kz1uW28ubGluZV0tMSl9fWZ1bmN0aW9uIFByKHQpe2NvbnN0IGk9e2NvbnN0cnVjdHM6ZnVuY3Rpb24oZSl7Y29uc3QgdD17fTtsZXQgaT0tMTtmb3IoOysraTxlLmxlbmd0aDspWW8odCxlW2ldKTtyZXR1cm4gdH0oW2UsLi4uKHR8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6byh4biksZGVmaW5lZDpbXSxkb2N1bWVudDpvKGtuKSxmbG93Om8oQW4pLGxhenk6e30sc3RyaW5nOm8oUG4pLHRleHQ6byhEbil9O3JldHVybiBpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBUcihpLGUsdCl9fX1jb25zdCBEcj0vW1wwXHRcblxyXS9nO2Z1bmN0aW9uIEZyKGUsdCxpKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihpPXQsdD12b2lkIDApLHduKGkpKGZ1bmN0aW9uKGUpe2Zvcig7IUNuKGUpOyk7cmV0dXJuIGV9KFByKGkpLmRvY3VtZW50KCkud3JpdGUoZnVuY3Rpb24oKXtsZXQgZSx0PTEsaT0iIixvPSEwO3JldHVybiBmdW5jdGlvbihuLHIscyl7Y29uc3QgYT1bXTtsZXQgbCxjLGQsaCx1O2ZvcihuPWkrKCJzdHJpbmciPT10eXBlb2Ygbj9uLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKHJ8fHZvaWQgMCkuZGVjb2RlKG4pKSxkPTAsaT0iIixvJiYoNjUyNzk9PT1uLmNoYXJDb2RlQXQoMCkmJmQrKyxvPXZvaWQgMCk7ZDxuLmxlbmd0aDspe2lmKERyLmxhc3RJbmRleD1kLGw9RHIuZXhlYyhuKSxoPWwmJnZvaWQgMCE9PWwuaW5kZXg/bC5pbmRleDpuLmxlbmd0aCx1PW4uY2hhckNvZGVBdChoKSwhbCl7aT1uLnNsaWNlKGQpO2JyZWFrfWlmKDEwPT09dSYmZD09PWgmJmUpYS5wdXNoKC0zKSxlPXZvaWQgMDtlbHNlIHN3aXRjaChlJiYoYS5wdXNoKC01KSxlPXZvaWQgMCksZDxoJiYoYS5wdXNoKG4uc2xpY2UoZCxoKSksdCs9aC1kKSx1KXtjYXNlIDA6YS5wdXNoKDY1NTMzKSx0Kys7YnJlYWs7Y2FzZSA5OmZvcihjPTQqTWF0aC5jZWlsKHQvNCksYS5wdXNoKC0yKTt0Kys8YzspYS5wdXNoKC0xKTticmVhaztjYXNlIDEwOmEucHVzaCgtNCksdD0xO2JyZWFrO2RlZmF1bHQ6ZT0hMCx0PTF9ZD1oKzF9cmV0dXJuIHMmJihlJiZhLnB1c2goLTUpLGkmJmEucHVzaChpKSxhLnB1c2gobnVsbCkpLGF9fSgpKGUsdCwhMCkpKSl9ZnVuY3Rpb24gTXIoZSl7bGV0IHQ9KGV8fHt9KS5zaW5nbGVUaWxkZTtjb25zdCBpPXtuYW1lOiJzdHJpa2V0aHJvdWdoIix0b2tlbml6ZTpmdW5jdGlvbihlLGksbyl7Y29uc3Qgbj10aGlzLnByZXZpb3VzLHI9dGhpcy5ldmVudHM7bGV0IHM9MDtyZXR1cm4gZnVuY3Rpb24odCl7aWYoMTI2PT09biYmImNoYXJhY3RlckVzY2FwZSIhPT1yW3IubGVuZ3RoLTFdWzFdLnR5cGUpcmV0dXJuIG8odCk7cmV0dXJuIGUuZW50ZXIoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLGEodCl9O2Z1bmN0aW9uIGEocil7Y29uc3QgbD1tcihuKTtpZigxMjY9PT1yKXJldHVybiBzPjE/byhyKTooZS5jb25zdW1lKHIpLHMrKyxhKTtpZihzPDImJiF0KXJldHVybiBvKHIpO2NvbnN0IGM9ZS5leGl0KCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSxkPW1yKHIpO3JldHVybiBjLl9vcGVuPSFkfHwyPT09ZCYmQm9vbGVhbihsKSxjLl9jbG9zZT0hbHx8Mj09PWwmJkJvb2xlYW4oZCksaShyKX19LHJlc29sdmVBbGw6ZnVuY3Rpb24oZSx0KXtsZXQgaT0tMTtmb3IoOysraTxlLmxlbmd0aDspaWYoImVudGVyIj09PWVbaV1bMF0mJiJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiPT09ZVtpXVsxXS50eXBlJiZlW2ldWzFdLl9jbG9zZSl7bGV0IG89aTtmb3IoO28tLTspaWYoImV4aXQiPT09ZVtvXVswXSYmInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSI9PT1lW29dWzFdLnR5cGUmJmVbb11bMV0uX29wZW4mJmVbaV1bMV0uZW5kLm9mZnNldC1lW2ldWzFdLnN0YXJ0Lm9mZnNldD09ZVtvXVsxXS5lbmQub2Zmc2V0LWVbb11bMV0uc3RhcnQub2Zmc2V0KXtlW2ldWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSIsZVtvXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiO2NvbnN0IG49e3R5cGU6InN0cmlrZXRocm91Z2giLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZVtvXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sZVtpXVsxXS5lbmQpfSxyPXt0eXBlOiJzdHJpa2V0aHJvdWdoVGV4dCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxlW29dWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sZVtpXVsxXS5zdGFydCl9LHM9W1siZW50ZXIiLG4sdF0sWyJlbnRlciIsZVtvXVsxXSx0XSxbImV4aXQiLGVbb11bMV0sdF0sWyJlbnRlciIscix0XV0sYT10LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbDthJiZWbyhzLHMubGVuZ3RoLDAsY3IoYSxlLnNsaWNlKG8rMSxpKSx0KSksVm8ocyxzLmxlbmd0aCwwLFtbImV4aXQiLHIsdF0sWyJlbnRlciIsZVtpXVsxXSx0XSxbImV4aXQiLGVbaV1bMV0sdF0sWyJleGl0IixuLHRdXSksVm8oZSxvLTEsaS1vKzMscyksaT1vK3MubGVuZ3RoLTI7YnJlYWt9fWk9LTE7Zm9yKDsrK2k8ZS5sZW5ndGg7KSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiPT09ZVtpXVsxXS50eXBlJiYoZVtpXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIGV9fTtyZXR1cm4gbnVsbD09dCYmKHQ9ITApLHt0ZXh0OnsxMjY6aX0saW5zaWRlU3Bhbjp7bnVsbDpbaV19LGF0dGVudGlvbk1hcmtlcnM6e251bGw6WzEyNl19fX1sZXQgUnI9Y2xhc3MgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy52YWx1ZT0iIn1yZW5kZXIoKXtyZXR1cm4gam9gJHsoZT0+KHtfJGxpdFN0YXRpYyQ6ZSxyOk9vfSkpKEZyKHRoaXMudmFsdWUse2V4dGVuc2lvbnM6W01yKCldLGh0bWxFeHRlbnNpb25zOlt7ZW50ZXI6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPGRlbD4iKX19LGV4aXQ6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPC9kZWw+Iil9fX1dfSkpfWB9fTtSci5zdHlsZXM9W2hgCiAgICAgIGgxLAogICAgICBoMiwKICAgICAgaDMsCiAgICAgIGg0LAogICAgICBoNSwKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgfQoKICAgICAgYSB7CiAgICAgICAgY29sb3I6IHZhcigtLWxpbmspOwogICAgICB9CgogICAgICBhOmhvdmVyLAogICAgICBhOmFjdGl2ZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgcCB7CiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIHA6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgYF0sdChbeWUoe3R5cGU6U3RyaW5nfSldLFJyLnByb3RvdHlwZSwidmFsdWUiLHZvaWQgMCksUnI9dChbZ2UoIndyLWNvbGwtZGVzY3JpcHRpb24iKV0sUnIpO3ZhciBPcj1oYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTYwMCk7CiAgfQoKICAuaWNvbi1idXR0b24gewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICBjb2xvcjogaW5oZXJpdDsKICAgIHBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgY29sb3I7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgfQoKICAuaWNvbi1idXR0b246aG92ZXI6bm90KC5pY29uLWJ1dHRvbi0tZGlzYWJsZWQpLAogIC5pY29uLWJ1dHRvbjpmb2N1cy12aXNpYmxlOm5vdCguaWNvbi1idXR0b24tLWRpc2FibGVkKSB7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApOwogIH0KCiAgLmljb24tYnV0dG9uOmFjdGl2ZTpub3QoLmljb24tYnV0dG9uLS1kaXNhYmxlZCkgewogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNzAwKTsKICB9CgogIC5pY29uLWJ1dHRvbjpmb2N1cyB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgLmljb24tYnV0dG9uLS1kaXNhYmxlZCB7CiAgICBvcGFjaXR5OiAwLjU7CiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogIH0KCiAgLmljb24tYnV0dG9uOmZvY3VzLXZpc2libGUgewogICAgb3V0bGluZTogdmFyKC0tc2wtZm9jdXMtcmluZyk7CiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tc2wtZm9jdXMtcmluZy1vZmZzZXQpOwogIH0KCiAgLmljb24tYnV0dG9uX19pY29uIHsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KYCxVcj1oYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiAxZW07CiAgICBoZWlnaHQ6IDFlbTsKICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7CiAgfQoKICBzdmcgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB3aWR0aDogMTAwJTsKICB9CmA7ZnVuY3Rpb24gQnIoZSx0KXtjb25zdCBpPXdpKHt3YWl0VW50aWxGaXJzdFVwZGF0ZTohMX0sdCk7cmV0dXJuKHQsbyk9Pntjb25zdHt1cGRhdGU6bn09dCxyPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07dC51cGRhdGU9ZnVuY3Rpb24oZSl7ci5mb3JFYWNoKCh0PT57Y29uc3Qgbj10O2lmKGUuaGFzKG4pKXtjb25zdCB0PWUuZ2V0KG4pLHI9dGhpc1tuXTt0IT09ciYmKGkud2FpdFVudGlsRmlyc3RVcGRhdGUmJiF0aGlzLmhhc1VwZGF0ZWR8fHRoaXNbb10odCxyKSl9fSkpLG4uY2FsbCh0aGlzLGUpfX19dmFyIE5yPWhgCiAgOmhvc3QgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIDpob3N0ICosCiAgOmhvc3QgKjo6YmVmb3JlLAogIDpob3N0ICo6OmFmdGVyIHsKICAgIGJveC1zaXppbmc6IGluaGVyaXQ7CiAgfQoKICBbaGlkZGVuXSB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgfQpgLHFyPWNsYXNzIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5lbnRyaWVzKHRoaXMuY29uc3RydWN0b3IuZGVwZW5kZW5jaWVzKS5mb3JFYWNoKCgoW2UsdF0pPT57dGhpcy5jb25zdHJ1Y3Rvci5kZWZpbmUoZSx0KX0pKX1lbWl0KGUsdCl7Y29uc3QgaT1uZXcgQ3VzdG9tRXZlbnQoZSx3aSh7YnViYmxlczohMCxjYW5jZWxhYmxlOiExLGNvbXBvc2VkOiEwLGRldGFpbDp7fX0sdCkpO3JldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoaSksaX1zdGF0aWMgZGVmaW5lKGUsdD10aGlzLGk9e30pe2NvbnN0IG89Y3VzdG9tRWxlbWVudHMuZ2V0KGUpO2lmKCFvKXJldHVybiB2b2lkIGN1c3RvbUVsZW1lbnRzLmRlZmluZShlLGNsYXNzIGV4dGVuZHMgdHt9LGkpO2xldCBuPSIgKHVua25vd24gdmVyc2lvbikiLHI9bjsidmVyc2lvbiJpbiB0JiZ0LnZlcnNpb24mJihuPSIgdiIrdC52ZXJzaW9uKSwidmVyc2lvbiJpbiBvJiZvLnZlcnNpb24mJihyPSIgdiIrby52ZXJzaW9uKSxuJiZyJiZuPT09cnx8Y29uc29sZS53YXJuKGBBdHRlbXB0ZWQgdG8gcmVnaXN0ZXIgPCR7ZX0+JHtufSwgYnV0IDwke2V9PiR7cn0gaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkLmApfX07cXIudmVyc2lvbj0iMi4xNS4xIixxci5kZXBlbmRlbmNpZXM9e30seGkoW3llKCldLHFyLnByb3RvdHlwZSwiZGlyIiwyKSx4aShbeWUoKV0scXIucHJvdG90eXBlLCJsYW5nIiwyKTt2YXIganIsSHI9U3ltYm9sKCksV3I9U3ltYm9sKCksVnI9bmV3IE1hcCxHcj1jbGFzcyBleHRlbmRzIHFye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmluaXRpYWxSZW5kZXI9ITEsdGhpcy5zdmc9bnVsbCx0aGlzLmxhYmVsPSIiLHRoaXMubGlicmFyeT0iZGVmYXVsdCJ9YXN5bmMgcmVzb2x2ZUljb24oZSx0KXt2YXIgaTtsZXQgbztpZihudWxsPT10P3ZvaWQgMDp0LnNwcml0ZVNoZWV0KXt0aGlzLnN2Zz1RYDxzdmcgcGFydD0ic3ZnIj4KICAgICAgICA8dXNlIHBhcnQ9InVzZSIgaHJlZj0iJHtlfSI+PC91c2U+CiAgICAgIDwvc3ZnPmAsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtjb25zdCBpPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJbcGFydD0nc3ZnJ10iKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5tdXRhdG9yJiZ0Lm11dGF0b3IoaSksdGhpcy5zdmd9dHJ5e2lmKG89YXdhaXQgZmV0Y2goZSx7bW9kZToiY29ycyJ9KSwhby5vaylyZXR1cm4gNDEwPT09by5zdGF0dXM/SHI6V3J9Y2F0Y2goZSl7cmV0dXJuIFdyfXRyeXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuaW5uZXJIVE1MPWF3YWl0IG8udGV4dCgpO2NvbnN0IHQ9ZS5maXJzdEVsZW1lbnRDaGlsZDtpZigic3ZnIiE9PShudWxsPT0oaT1udWxsPT10P3ZvaWQgMDp0LnRhZ05hbWUpP3ZvaWQgMDppLnRvTG93ZXJDYXNlKCkpKXJldHVybiBIcjtqcnx8KGpyPW5ldyBET01QYXJzZXIpO2NvbnN0IG49anIucGFyc2VGcm9tU3RyaW5nKHQub3V0ZXJIVE1MLCJ0ZXh0L2h0bWwiKS5ib2R5LnF1ZXJ5U2VsZWN0b3IoInN2ZyIpO3JldHVybiBuPyhuLnBhcnQuYWRkKCJzdmciKSxkb2N1bWVudC5hZG9wdE5vZGUobikpOkhyfWNhdGNoKGUpe3JldHVybiBIcn19Y29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZTtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGU9dGhpcyxhaS5wdXNoKGUpfWZpcnN0VXBkYXRlZCgpe3RoaXMuaW5pdGlhbFJlbmRlcj0hMCx0aGlzLnNldEljb24oKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBlO3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZT10aGlzLGFpPWFpLmZpbHRlcigodD0+dCE9PWUpKX1nZXRJY29uU291cmNlKCl7Y29uc3QgZT1saSh0aGlzLmxpYnJhcnkpO3JldHVybiB0aGlzLm5hbWUmJmU/e3VybDplLnJlc29sdmVyKHRoaXMubmFtZSksZnJvbUxpYnJhcnk6ITB9Ont1cmw6dGhpcy5zcmMsZnJvbUxpYnJhcnk6ITF9fWhhbmRsZUxhYmVsQ2hhbmdlKCl7InN0cmluZyI9PXR5cGVvZiB0aGlzLmxhYmVsJiZ0aGlzLmxhYmVsLmxlbmd0aD4wPyh0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsImltZyIpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0aGlzLmxhYmVsKSx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSk6KHRoaXMucmVtb3ZlQXR0cmlidXRlKCJyb2xlIiksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbGFiZWwiKSx0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIikpfWFzeW5jIHNldEljb24oKXt2YXIgZTtjb25zdHt1cmw6dCxmcm9tTGlicmFyeTppfT10aGlzLmdldEljb25Tb3VyY2UoKSxvPWk/bGkodGhpcy5saWJyYXJ5KTp2b2lkIDA7aWYoIXQpcmV0dXJuIHZvaWQodGhpcy5zdmc9bnVsbCk7bGV0IG49VnIuZ2V0KHQpO2lmKG58fChuPXRoaXMucmVzb2x2ZUljb24odCxvKSxWci5zZXQodCxuKSksIXRoaXMuaW5pdGlhbFJlbmRlcilyZXR1cm47Y29uc3Qgcj1hd2FpdCBuO2lmKHI9PT1XciYmVnIuZGVsZXRlKHQpLHQ9PT10aGlzLmdldEljb25Tb3VyY2UoKS51cmwpaWYoKChlLHQpPT52b2lkIDA9PT10P3ZvaWQgMCE9PWU/Ll8kbGl0VHlwZSQ6ZT8uXyRsaXRUeXBlJD09PXQpKHIpKXRoaXMuc3ZnPXI7ZWxzZSBzd2l0Y2gocil7Y2FzZSBXcjpjYXNlIEhyOnRoaXMuc3ZnPW51bGwsdGhpcy5lbWl0KCJzbC1lcnJvciIpO2JyZWFrO2RlZmF1bHQ6dGhpcy5zdmc9ci5jbG9uZU5vZGUoITApLG51bGw9PShlPW51bGw9PW8/dm9pZCAwOm8ubXV0YXRvcil8fGUuY2FsbChvLHRoaXMuc3ZnKSx0aGlzLmVtaXQoInNsLWxvYWQiKX19cmVuZGVyKCl7cmV0dXJuIHRoaXMuc3ZnfX07R3Iuc3R5bGVzPVtOcixVcl0seGkoW3hlKCldLEdyLnByb3RvdHlwZSwic3ZnIiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sR3IucHJvdG90eXBlLCJuYW1lIiwyKSx4aShbeWUoKV0sR3IucHJvdG90eXBlLCJzcmMiLDIpLHhpKFt5ZSgpXSxHci5wcm90b3R5cGUsImxhYmVsIiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sR3IucHJvdG90eXBlLCJsaWJyYXJ5IiwyKSx4aShbQnIoImxhYmVsIildLEdyLnByb3RvdHlwZSwiaGFuZGxlTGFiZWxDaGFuZ2UiLDEpLHhpKFtCcihbIm5hbWUiLCJzcmMiLCJsaWJyYXJ5Il0pXSxHci5wcm90b3R5cGUsInNldEljb24iLDEpOwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqLwpjb25zdCBLcj1DZShjbGFzcyBleHRlbmRzIElle2NvbnN0cnVjdG9yKGUpe2lmKHN1cGVyKGUpLGUudHlwZSE9PXplfHwiY2xhc3MiIT09ZS5uYW1lfHxlLnN0cmluZ3M/Lmxlbmd0aD4yKXRocm93IEVycm9yKCJgY2xhc3NNYXAoKWAgY2FuIG9ubHkgYmUgdXNlZCBpbiB0aGUgYGNsYXNzYCBhdHRyaWJ1dGUgYW5kIG11c3QgYmUgdGhlIG9ubHkgcGFydCBpbiB0aGUgYXR0cmlidXRlLiIpfXJlbmRlcihlKXtyZXR1cm4iICIrT2JqZWN0LmtleXMoZSkuZmlsdGVyKCh0PT5lW3RdKSkuam9pbigiICIpKyIgIn11cGRhdGUoZSxbdF0pe2lmKHZvaWQgMD09PXRoaXMuc3Qpe3RoaXMuc3Q9bmV3IFNldCx2b2lkIDAhPT1lLnN0cmluZ3MmJih0aGlzLm50PW5ldyBTZXQoZS5zdHJpbmdzLmpvaW4oIiAiKS5zcGxpdCgvXHMvKS5maWx0ZXIoKGU9PiIiIT09ZSkpKSk7Zm9yKGNvbnN0IGUgaW4gdCl0W2VdJiYhdGhpcy5udD8uaGFzKGUpJiZ0aGlzLnN0LmFkZChlKTtyZXR1cm4gdGhpcy5yZW5kZXIodCl9Y29uc3QgaT1lLmVsZW1lbnQuY2xhc3NMaXN0O2Zvcihjb25zdCBlIG9mIHRoaXMuc3QpZSBpbiB0fHwoaS5yZW1vdmUoZSksdGhpcy5zdC5kZWxldGUoZSkpO2Zvcihjb25zdCBlIGluIHQpe2NvbnN0IG89ISF0W2VdO289PT10aGlzLnN0LmhhcyhlKXx8dGhpcy5udD8uaGFzKGUpfHwobz8oaS5hZGQoZSksdGhpcy5zdC5hZGQoZSkpOihpLnJlbW92ZShlKSx0aGlzLnN0LmRlbGV0ZShlKSkpfXJldHVybiBKfX0pO3ZhciBZcj1jbGFzcyBleHRlbmRzIHFye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmhhc0ZvY3VzPSExLHRoaXMubGFiZWw9IiIsdGhpcy5kaXNhYmxlZD0hMX1oYW5kbGVCbHVyKCl7dGhpcy5oYXNGb2N1cz0hMSx0aGlzLmVtaXQoInNsLWJsdXIiKX1oYW5kbGVGb2N1cygpe3RoaXMuaGFzRm9jdXM9ITAsdGhpcy5lbWl0KCJzbC1mb2N1cyIpfWhhbmRsZUNsaWNrKGUpe3RoaXMuZGlzYWJsZWQmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSl9Y2xpY2soKXt0aGlzLmJ1dHRvbi5jbGljaygpfWZvY3VzKGUpe3RoaXMuYnV0dG9uLmZvY3VzKGUpfWJsdXIoKXt0aGlzLmJ1dHRvbi5ibHVyKCl9cmVuZGVyKCl7Y29uc3QgZT0hIXRoaXMuaHJlZix0PWU/Qm9gYWA6Qm9gYnV0dG9uYDtyZXR1cm4gam9gCiAgICAgIDwke3R9CiAgICAgICAgcGFydD0iYmFzZSIKICAgICAgICBjbGFzcz0ke0tyKHsiaWNvbi1idXR0b24iOiEwLCJpY29uLWJ1dHRvbi0tZGlzYWJsZWQiOiFlJiZ0aGlzLmRpc2FibGVkLCJpY29uLWJ1dHRvbi0tZm9jdXNlZCI6dGhpcy5oYXNGb2N1c30pfQogICAgICAgID9kaXNhYmxlZD0keyRlKGU/dm9pZCAwOnRoaXMuZGlzYWJsZWQpfQogICAgICAgIHR5cGU9JHskZShlP3ZvaWQgMDoiYnV0dG9uIil9CiAgICAgICAgaHJlZj0keyRlKGU/dGhpcy5ocmVmOnZvaWQgMCl9CiAgICAgICAgdGFyZ2V0PSR7JGUoZT90aGlzLnRhcmdldDp2b2lkIDApfQogICAgICAgIGRvd25sb2FkPSR7JGUoZT90aGlzLmRvd25sb2FkOnZvaWQgMCl9CiAgICAgICAgcmVsPSR7JGUoZSYmdGhpcy50YXJnZXQ/Im5vcmVmZXJyZXIgbm9vcGVuZXIiOnZvaWQgMCl9CiAgICAgICAgcm9sZT0keyRlKGU/dm9pZCAwOiJidXR0b24iKX0KICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZD8idHJ1ZSI6ImZhbHNlIn0KICAgICAgICBhcmlhLWxhYmVsPSIke3RoaXMubGFiZWx9IgogICAgICAgIHRhYmluZGV4PSR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0KICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlQmx1cn0KICAgICAgICBAZm9jdXM9JHt0aGlzLmhhbmRsZUZvY3VzfQogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgID4KICAgICAgICA8c2wtaWNvbgogICAgICAgICAgY2xhc3M9Imljb24tYnV0dG9uX19pY29uIgogICAgICAgICAgbmFtZT0keyRlKHRoaXMubmFtZSl9CiAgICAgICAgICBsaWJyYXJ5PSR7JGUodGhpcy5saWJyYXJ5KX0KICAgICAgICAgIHNyYz0keyRlKHRoaXMuc3JjKX0KICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgID48L3NsLWljb24+CiAgICAgIDwvJHt0fT4KICAgIGB9fTtZci5zdHlsZXM9W05yLE9yXSxZci5kZXBlbmRlbmNpZXM9eyJzbC1pY29uIjpHcn0seGkoW1NlKCIuaWNvbi1idXR0b24iKV0sWXIucHJvdG90eXBlLCJidXR0b24iLDIpLHhpKFt4ZSgpXSxZci5wcm90b3R5cGUsImhhc0ZvY3VzIiwyKSx4aShbeWUoKV0sWXIucHJvdG90eXBlLCJuYW1lIiwyKSx4aShbeWUoKV0sWXIucHJvdG90eXBlLCJsaWJyYXJ5IiwyKSx4aShbeWUoKV0sWXIucHJvdG90eXBlLCJzcmMiLDIpLHhpKFt5ZSgpXSxZci5wcm90b3R5cGUsImhyZWYiLDIpLHhpKFt5ZSgpXSxZci5wcm90b3R5cGUsInRhcmdldCIsMikseGkoW3llKCldLFlyLnByb3RvdHlwZSwiZG93bmxvYWQiLDIpLHhpKFt5ZSgpXSxZci5wcm90b3R5cGUsImxhYmVsIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFlyLnByb3RvdHlwZSwiZGlzYWJsZWQiLDIpO3ZhciBRcj1uZXcgTWFwLFpyPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEpyKGUpe3JldHVybiBudWxsIT1lP2U6e2tleWZyYW1lczpbXSxvcHRpb25zOntkdXJhdGlvbjowfX19ZnVuY3Rpb24gWHIoZSx0KXtyZXR1cm4icnRsIj09PXQudG9Mb3dlckNhc2UoKT97a2V5ZnJhbWVzOmUucnRsS2V5ZnJhbWVzfHxlLmtleWZyYW1lcyxvcHRpb25zOmUub3B0aW9uc306ZX1mdW5jdGlvbiBlcyhlLHQpe1FyLnNldChlLEpyKHQpKX1mdW5jdGlvbiB0cyhlLHQsaSl7Y29uc3Qgbz1aci5nZXQoZSk7aWYobnVsbD09bz92b2lkIDA6b1t0XSlyZXR1cm4gWHIob1t0XSxpLmRpcik7Y29uc3Qgbj1Rci5nZXQodCk7cmV0dXJuIG4/WHIobixpLmRpcik6e2tleWZyYW1lczpbXSxvcHRpb25zOntkdXJhdGlvbjowfX19ZnVuY3Rpb24gaXMoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoKGk9PntlLmFkZEV2ZW50TGlzdGVuZXIodCwoZnVuY3Rpb24gbyhuKXtuLnRhcmdldD09PWUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxvKSxpKCkpfSkpfSkpfWZ1bmN0aW9uIG9zKGUsdCxpKXtyZXR1cm4gbmV3IFByb21pc2UoKG89PntpZigobnVsbD09aT92b2lkIDA6aS5kdXJhdGlvbik9PT0xLzApdGhyb3cgbmV3IEVycm9yKCJQcm9taXNlLWJhc2VkIGFuaW1hdGlvbnMgbXVzdCBiZSBmaW5pdGUuIik7Y29uc3Qgbj1lLmFuaW1hdGUodCx5aSh3aSh7fSxpKSx7ZHVyYXRpb246cnMoKT8wOmkuZHVyYXRpb259KSk7bi5hZGRFdmVudExpc3RlbmVyKCJjYW5jZWwiLG8se29uY2U6ITB9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaCIsbyx7b25jZTohMH0pfSkpfWZ1bmN0aW9uIG5zKGUpe3JldHVybihlPWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKS5pbmRleE9mKCJtcyIpPi0xP3BhcnNlRmxvYXQoZSk6ZS5pbmRleE9mKCJzIik+LTE/MWUzKnBhcnNlRmxvYXQoZSk6cGFyc2VGbG9hdChlKX1mdW5jdGlvbiBycygpe3JldHVybiB3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzfWZ1bmN0aW9uIHNzKGUpe3JldHVybiBQcm9taXNlLmFsbChlLmdldEFuaW1hdGlvbnMoKS5tYXAoKGU9Pm5ldyBQcm9taXNlKCh0PT57ZS5jYW5jZWwoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KSkpKSl9Y29uc3QgYXM9bmV3IFNldCxscz1uZXcgTXV0YXRpb25PYnNlcnZlcihwcyksY3M9bmV3IE1hcDtsZXQgZHMsaHM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcnx8Imx0ciIsdXM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmd8fG5hdmlnYXRvci5sYW5ndWFnZTtmdW5jdGlvbiBmcyguLi5lKXtlLm1hcCgoZT0+e2NvbnN0IHQ9ZS4kY29kZS50b0xvd2VyQ2FzZSgpO2NzLmhhcyh0KT9jcy5zZXQodCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY3MuZ2V0KHQpKSxlKSk6Y3Muc2V0KHQsZSksZHN8fChkcz1lKX0pKSxwcygpfWZ1bmN0aW9uIHBzKCl7aHM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcnx8Imx0ciIsdXM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmd8fG5hdmlnYXRvci5sYW5ndWFnZSxbLi4uYXMua2V5cygpXS5tYXAoKGU9PnsiZnVuY3Rpb24iPT10eXBlb2YgZS5yZXF1ZXN0VXBkYXRlJiZlLnJlcXVlc3RVcGRhdGUoKX0pKX1scy5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJkaXIiLCJsYW5nIl19KTtjbGFzcyBtc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmhvc3Q9ZSx0aGlzLmhvc3QuYWRkQ29udHJvbGxlcih0aGlzKX1ob3N0Q29ubmVjdGVkKCl7YXMuYWRkKHRoaXMuaG9zdCl9aG9zdERpc2Nvbm5lY3RlZCgpe2FzLmRlbGV0ZSh0aGlzLmhvc3QpfWRpcigpe3JldHVybmAke3RoaXMuaG9zdC5kaXJ8fGhzfWAudG9Mb3dlckNhc2UoKX1sYW5nKCl7cmV0dXJuYCR7dGhpcy5ob3N0Lmxhbmd8fHVzfWAudG9Mb3dlckNhc2UoKX1nZXRUcmFuc2xhdGlvbkRhdGEoZSl7dmFyIHQsaTtjb25zdCBvPW5ldyBJbnRsLkxvY2FsZShlLnJlcGxhY2UoL18vZywiLSIpKSxuPW51bGw9PW8/dm9pZCAwOm8ubGFuZ3VhZ2UudG9Mb3dlckNhc2UoKSxyPW51bGwhPT0oaT1udWxsPT09KHQ9bnVsbD09bz92b2lkIDA6by5yZWdpb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnRvTG93ZXJDYXNlKCkpJiZ2b2lkIDAhPT1pP2k6IiI7cmV0dXJue2xvY2FsZTpvLGxhbmd1YWdlOm4scmVnaW9uOnIscHJpbWFyeTpjcy5nZXQoYCR7bn0tJHtyfWApLHNlY29uZGFyeTpjcy5nZXQobil9fWV4aXN0cyhlLHQpe3ZhciBpO2NvbnN0e3ByaW1hcnk6byxzZWNvbmRhcnk6bn09dGhpcy5nZXRUcmFuc2xhdGlvbkRhdGEobnVsbCE9PShpPXQubGFuZykmJnZvaWQgMCE9PWk/aTp0aGlzLmxhbmcoKSk7cmV0dXJuIHQ9T2JqZWN0LmFzc2lnbih7aW5jbHVkZUZhbGxiYWNrOiExfSx0KSwhIShvJiZvW2VdfHxuJiZuW2VdfHx0LmluY2x1ZGVGYWxsYmFjayYmZHMmJmRzW2VdKX10ZXJtKGUsLi4udCl7Y29uc3R7cHJpbWFyeTppLHNlY29uZGFyeTpvfT10aGlzLmdldFRyYW5zbGF0aW9uRGF0YSh0aGlzLmxhbmcoKSk7bGV0IG47aWYoaSYmaVtlXSluPWlbZV07ZWxzZSBpZihvJiZvW2VdKW49b1tlXTtlbHNle2lmKCFkc3x8IWRzW2VdKXJldHVybiBjb25zb2xlLmVycm9yKGBObyB0cmFuc2xhdGlvbiBmb3VuZCBmb3I6ICR7U3RyaW5nKGUpfWApLFN0cmluZyhlKTtuPWRzW2VdfXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuP24oLi4udCk6bn1kYXRlKGUsdCl7cmV0dXJuIGU9bmV3IERhdGUoZSksbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sYW5nKCksdCkuZm9ybWF0KGUpfW51bWJlcihlLHQpe3JldHVybiBlPU51bWJlcihlKSxpc05hTihlKT8iIjpuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5sYW5nKCksdCkuZm9ybWF0KGUpfXJlbGF0aXZlVGltZShlLHQsaSl7cmV0dXJuIG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdCh0aGlzLmxhbmcoKSxpKS5mb3JtYXQoZSx0KX19dmFyIGJzPXskY29kZToiZW4iLCRuYW1lOiJFbmdsaXNoIiwkZGlyOiJsdHIiLGNhcm91c2VsOiJDYXJvdXNlbCIsY2xlYXJFbnRyeToiQ2xlYXIgZW50cnkiLGNsb3NlOiJDbG9zZSIsY29waWVkOiJDb3BpZWQiLGNvcHk6IkNvcHkiLGN1cnJlbnRWYWx1ZToiQ3VycmVudCB2YWx1ZSIsZXJyb3I6IkVycm9yIixnb1RvU2xpZGU6KGUsdCk9PmBHbyB0byBzbGlkZSAke2V9IG9mICR7dH1gLGhpZGVQYXNzd29yZDoiSGlkZSBwYXNzd29yZCIsbG9hZGluZzoiTG9hZGluZyIsbmV4dFNsaWRlOiJOZXh0IHNsaWRlIixudW1PcHRpb25zU2VsZWN0ZWQ6ZT0+MD09PWU/Ik5vIG9wdGlvbnMgc2VsZWN0ZWQiOjE9PT1lPyIxIG9wdGlvbiBzZWxlY3RlZCI6YCR7ZX0gb3B0aW9ucyBzZWxlY3RlZGAscHJldmlvdXNTbGlkZToiUHJldmlvdXMgc2xpZGUiLHByb2dyZXNzOiJQcm9ncmVzcyIscmVtb3ZlOiJSZW1vdmUiLHJlc2l6ZToiUmVzaXplIixzY3JvbGxUb0VuZDoiU2Nyb2xsIHRvIGVuZCIsc2Nyb2xsVG9TdGFydDoiU2Nyb2xsIHRvIHN0YXJ0IixzZWxlY3RBQ29sb3JGcm9tVGhlU2NyZWVuOiJTZWxlY3QgYSBjb2xvciBmcm9tIHRoZSBzY3JlZW4iLHNob3dQYXNzd29yZDoiU2hvdyBwYXNzd29yZCIsc2xpZGVOdW06ZT0+YFNsaWRlICR7ZX1gLHRvZ2dsZUNvbG9yRm9ybWF0OiJUb2dnbGUgY29sb3IgZm9ybWF0In07ZnMoYnMpO3ZhciBncz1icyx2cz1jbGFzcyBleHRlbmRzIG1ze307ZnMoZ3MpO3ZhciB3cz1jbGFzc3tjb25zdHJ1Y3RvcihlLC4uLnQpe3RoaXMuc2xvdE5hbWVzPVtdLHRoaXMuaGFuZGxlU2xvdENoYW5nZT1lPT57Y29uc3QgdD1lLnRhcmdldDsodGhpcy5zbG90TmFtZXMuaW5jbHVkZXMoIltkZWZhdWx0XSIpJiYhdC5uYW1lfHx0Lm5hbWUmJnRoaXMuc2xvdE5hbWVzLmluY2x1ZGVzKHQubmFtZSkpJiZ0aGlzLmhvc3QucmVxdWVzdFVwZGF0ZSgpfSwodGhpcy5ob3N0PWUpLmFkZENvbnRyb2xsZXIodGhpcyksdGhpcy5zbG90TmFtZXM9dH1oYXNEZWZhdWx0U2xvdCgpe3JldHVyblsuLi50aGlzLmhvc3QuY2hpbGROb2Rlc10uc29tZSgoZT0+e2lmKGUubm9kZVR5cGU9PT1lLlRFWFRfTk9ERSYmIiIhPT1lLnRleHRDb250ZW50LnRyaW0oKSlyZXR1cm4hMDtpZihlLm5vZGVUeXBlPT09ZS5FTEVNRU5UX05PREUpe2NvbnN0IHQ9ZTtpZigic2wtdmlzdWFsbHktaGlkZGVuIj09PXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiExO2lmKCF0Lmhhc0F0dHJpYnV0ZSgic2xvdCIpKXJldHVybiEwfXJldHVybiExfSkpfWhhc05hbWVkU2xvdChlKXtyZXR1cm4gbnVsbCE9PXRoaXMuaG9zdC5xdWVyeVNlbGVjdG9yKGA6c2NvcGUgPiBbc2xvdD0iJHtlfSJdYCl9dGVzdChlKXtyZXR1cm4iW2RlZmF1bHRdIj09PWU/dGhpcy5oYXNEZWZhdWx0U2xvdCgpOnRoaXMuaGFzTmFtZWRTbG90KGUpfWhvc3RDb25uZWN0ZWQoKXt0aGlzLmhvc3Quc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJzbG90Y2hhbmdlIix0aGlzLmhhbmRsZVNsb3RDaGFuZ2UpfWhvc3REaXNjb25uZWN0ZWQoKXt0aGlzLmhvc3Quc2hhZG93Um9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJzbG90Y2hhbmdlIix0aGlzLmhhbmRsZVNsb3RDaGFuZ2UpfX07dmFyIHlzPWhgCiAgOmhvc3QgewogICAgZGlzcGxheTogY29udGVudHM7CgogICAgLyogRm9yIGJldHRlciBEWCwgd2UnbGwgcmVzZXQgdGhlIG1hcmdpbiBoZXJlIHNvIHRoZSBiYXNlIHBhcnQgY2FuIGluaGVyaXQgaXQgKi8KICAgIG1hcmdpbjogMDsKICB9CgogIC5hbGVydCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgIGJvcmRlcjogc29saWQgdmFyKC0tc2wtcGFuZWwtYm9yZGVyLXdpZHRoKSB2YXIoLS1zbC1wYW5lbC1ib3JkZXItY29sb3IpOwogICAgYm9yZGVyLXRvcC13aWR0aDogY2FsYyh2YXIoLS1zbC1wYW5lbC1ib3JkZXItd2lkdGgpICogMyk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgICBmb250LWZhbWlseTogdmFyKC0tc2wtZm9udC1zYW5zKTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtZm9udC1zaXplLXNtYWxsKTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpOwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgICBtYXJnaW46IGluaGVyaXQ7CiAgfQoKICAuYWxlcnQ6bm90KC5hbGVydC0taGFzLWljb24pIC5hbGVydF9faWNvbiwKICAuYWxlcnQ6bm90KC5hbGVydC0tY2xvc2FibGUpIC5hbGVydF9fY2xvc2UtYnV0dG9uIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAuYWxlcnRfX2ljb24gewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtZm9udC1zaXplLWxhcmdlKTsKICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zbC1zcGFjaW5nLWxhcmdlKTsKICB9CgogIC5hbGVydC0tcHJpbWFyeSB7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgfQoKICAuYWxlcnQtLXByaW1hcnkgLmFsZXJ0X19pY29uIHsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgfQoKICAuYWxlcnQtLXN1Y2Nlc3MgewogICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc2wtY29sb3Itc3VjY2Vzcy02MDApOwogIH0KCiAgLmFsZXJ0LS1zdWNjZXNzIC5hbGVydF9faWNvbiB7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3Itc3VjY2Vzcy02MDApOwogIH0KCiAgLmFsZXJ0LS1uZXV0cmFsIHsKICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICB9CgogIC5hbGVydC0tbmV1dHJhbCAuYWxlcnRfX2ljb24gewogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICB9CgogIC5hbGVydC0td2FybmluZyB7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTYwMCk7CiAgfQoKICAuYWxlcnQtLXdhcm5pbmcgLmFsZXJ0X19pY29uIHsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTYwMCk7CiAgfQoKICAuYWxlcnQtLWRhbmdlciB7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICB9CgogIC5hbGVydC0tZGFuZ2VyIC5hbGVydF9faWNvbiB7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItZGFuZ2VyLTYwMCk7CiAgfQoKICAuYWxlcnRfX21lc3NhZ2UgewogICAgZmxleDogMSAxIGF1dG87CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmctbGFyZ2UpOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CgogIC5hbGVydF9fY2xvc2UtYnV0dG9uIHsKICAgIGZsZXg6IDAgMCBhdXRvOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBmb250LXNpemU6IHZhcigtLXNsLWZvbnQtc2l6ZS1tZWRpdW0pOwogICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1zbC1zcGFjaW5nLW1lZGl1bSk7CiAgfQpgLHhzPU9iamVjdC5hc3NpZ24oZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikse2NsYXNzTmFtZToic2wtdG9hc3Qtc3RhY2sifSksa3M9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5oYXNTbG90Q29udHJvbGxlcj1uZXcgd3ModGhpcywiaWNvbiIsInN1ZmZpeCIpLHRoaXMubG9jYWxpemU9bmV3IHZzKHRoaXMpLHRoaXMub3Blbj0hMSx0aGlzLmNsb3NhYmxlPSExLHRoaXMudmFyaWFudD0icHJpbWFyeSIsdGhpcy5kdXJhdGlvbj0xLzB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5iYXNlLmhpZGRlbj0hdGhpcy5vcGVufXJlc3RhcnRBdXRvSGlkZSgpe2NsZWFyVGltZW91dCh0aGlzLmF1dG9IaWRlVGltZW91dCksdGhpcy5vcGVuJiZ0aGlzLmR1cmF0aW9uPDEvMCYmKHRoaXMuYXV0b0hpZGVUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5oaWRlKCkpLHRoaXMuZHVyYXRpb24pKX1oYW5kbGVDbG9zZUNsaWNrKCl7dGhpcy5oaWRlKCl9aGFuZGxlTW91c2VNb3ZlKCl7dGhpcy5yZXN0YXJ0QXV0b0hpZGUoKX1hc3luYyBoYW5kbGVPcGVuQ2hhbmdlKCl7aWYodGhpcy5vcGVuKXt0aGlzLmVtaXQoInNsLXNob3ciKSx0aGlzLmR1cmF0aW9uPDEvMCYmdGhpcy5yZXN0YXJ0QXV0b0hpZGUoKSxhd2FpdCBzcyh0aGlzLmJhc2UpLHRoaXMuYmFzZS5oaWRkZW49ITE7Y29uc3R7a2V5ZnJhbWVzOmUsb3B0aW9uczp0fT10cyh0aGlzLCJhbGVydC5zaG93Iix7ZGlyOnRoaXMubG9jYWxpemUuZGlyKCl9KTthd2FpdCBvcyh0aGlzLmJhc2UsZSx0KSx0aGlzLmVtaXQoInNsLWFmdGVyLXNob3ciKX1lbHNle3RoaXMuZW1pdCgic2wtaGlkZSIpLGNsZWFyVGltZW91dCh0aGlzLmF1dG9IaWRlVGltZW91dCksYXdhaXQgc3ModGhpcy5iYXNlKTtjb25zdHtrZXlmcmFtZXM6ZSxvcHRpb25zOnR9PXRzKHRoaXMsImFsZXJ0LmhpZGUiLHtkaXI6dGhpcy5sb2NhbGl6ZS5kaXIoKX0pO2F3YWl0IG9zKHRoaXMuYmFzZSxlLHQpLHRoaXMuYmFzZS5oaWRkZW49ITAsdGhpcy5lbWl0KCJzbC1hZnRlci1oaWRlIil9fWhhbmRsZUR1cmF0aW9uQ2hhbmdlKCl7dGhpcy5yZXN0YXJ0QXV0b0hpZGUoKX1hc3luYyBzaG93KCl7aWYoIXRoaXMub3BlbilyZXR1cm4gdGhpcy5vcGVuPSEwLGlzKHRoaXMsInNsLWFmdGVyLXNob3ciKX1hc3luYyBoaWRlKCl7aWYodGhpcy5vcGVuKXJldHVybiB0aGlzLm9wZW49ITEsaXModGhpcywic2wtYWZ0ZXItaGlkZSIpfWFzeW5jIHRvYXN0KCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT57bnVsbD09PXhzLnBhcmVudEVsZW1lbnQmJmRvY3VtZW50LmJvZHkuYXBwZW5kKHhzKSx4cy5hcHBlbmRDaGlsZCh0aGlzKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5jbGllbnRXaWR0aCx0aGlzLnNob3coKX0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInNsLWFmdGVyLWhpZGUiLCgoKT0+e3hzLnJlbW92ZUNoaWxkKHRoaXMpLGUoKSxudWxsPT09eHMucXVlcnlTZWxlY3Rvcigic2wtYWxlcnQiKSYmeHMucmVtb3ZlKCl9KSx7b25jZTohMH0pfSkpfXJlbmRlcigpe3JldHVybiBRYAogICAgICA8ZGl2CiAgICAgICAgcGFydD0iYmFzZSIKICAgICAgICBjbGFzcz0ke0tyKHthbGVydDohMCwiYWxlcnQtLW9wZW4iOnRoaXMub3BlbiwiYWxlcnQtLWNsb3NhYmxlIjp0aGlzLmNsb3NhYmxlLCJhbGVydC0taGFzLWljb24iOnRoaXMuaGFzU2xvdENvbnRyb2xsZXIudGVzdCgiaWNvbiIpLCJhbGVydC0tcHJpbWFyeSI6InByaW1hcnkiPT09dGhpcy52YXJpYW50LCJhbGVydC0tc3VjY2VzcyI6InN1Y2Nlc3MiPT09dGhpcy52YXJpYW50LCJhbGVydC0tbmV1dHJhbCI6Im5ldXRyYWwiPT09dGhpcy52YXJpYW50LCJhbGVydC0td2FybmluZyI6Indhcm5pbmciPT09dGhpcy52YXJpYW50LCJhbGVydC0tZGFuZ2VyIjoiZGFuZ2VyIj09PXRoaXMudmFyaWFudH0pfQogICAgICAgIHJvbGU9ImFsZXJ0IgogICAgICAgIGFyaWEtaGlkZGVuPSR7dGhpcy5vcGVuPyJmYWxzZSI6InRydWUifQogICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLmhhbmRsZU1vdXNlTW92ZX0KICAgICAgPgogICAgICAgIDxkaXYgcGFydD0iaWNvbiIgY2xhc3M9ImFsZXJ0X19pY29uIj4KICAgICAgICAgIDxzbG90IG5hbWU9Imljb24iPjwvc2xvdD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBwYXJ0PSJtZXNzYWdlIiBjbGFzcz0iYWxlcnRfX21lc3NhZ2UiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmNsb3NhYmxlP1FgCiAgICAgICAgICAgICAgPHNsLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgICBwYXJ0PSJjbG9zZS1idXR0b24iCiAgICAgICAgICAgICAgICBleHBvcnRwYXJ0cz0iYmFzZTpjbG9zZS1idXR0b25fX2Jhc2UiCiAgICAgICAgICAgICAgICBjbGFzcz0iYWxlcnRfX2Nsb3NlLWJ1dHRvbiIKICAgICAgICAgICAgICAgIG5hbWU9IngtbGciCiAgICAgICAgICAgICAgICBsaWJyYXJ5PSJzeXN0ZW0iCiAgICAgICAgICAgICAgICBsYWJlbD0ke3RoaXMubG9jYWxpemUudGVybSgiY2xvc2UiKX0KICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xvc2VDbGlja30KICAgICAgICAgICAgICA+PC9zbC1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfX07a3Muc3R5bGVzPVtOcix5c10sa3MuZGVwZW5kZW5jaWVzPXsic2wtaWNvbi1idXR0b24iOllyfSx4aShbU2UoJ1twYXJ0fj0iYmFzZSJdJyldLGtzLnByb3RvdHlwZSwiYmFzZSIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxrcy5wcm90b3R5cGUsIm9wZW4iLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sa3MucHJvdG90eXBlLCJjbG9zYWJsZSIsMikseGkoW3llKHtyZWZsZWN0OiEwfSldLGtzLnByb3RvdHlwZSwidmFyaWFudCIsMikseGkoW3llKHt0eXBlOk51bWJlcn0pXSxrcy5wcm90b3R5cGUsImR1cmF0aW9uIiwyKSx4aShbQnIoIm9wZW4iLHt3YWl0VW50aWxGaXJzdFVwZGF0ZTohMH0pXSxrcy5wcm90b3R5cGUsImhhbmRsZU9wZW5DaGFuZ2UiLDEpLHhpKFtCcigiZHVyYXRpb24iKV0sa3MucHJvdG90eXBlLCJoYW5kbGVEdXJhdGlvbkNoYW5nZSIsMSksZXMoImFsZXJ0LnNob3ciLHtrZXlmcmFtZXM6W3tvcGFjaXR5OjAsc2NhbGU6Ljh9LHtvcGFjaXR5OjEsc2NhbGU6MX1dLG9wdGlvbnM6e2R1cmF0aW9uOjI1MCxlYXNpbmc6ImVhc2UifX0pLGVzKCJhbGVydC5oaWRlIix7a2V5ZnJhbWVzOlt7b3BhY2l0eToxLHNjYWxlOjF9LHtvcGFjaXR5OjAsc2NhbGU6Ljh9XSxvcHRpb25zOntkdXJhdGlvbjoyNTAsZWFzaW5nOiJlYXNlIn19KTtrcy5kZWZpbmUoInNsLWFsZXJ0Iik7dmFyIFNzPWhgCiAgOmhvc3QgewogICAgLS10cmFjay13aWR0aDogMnB4OwogICAgLS10cmFjay1jb2xvcjogcmdiKDEyOCAxMjggMTI4IC8gMjUlKTsKICAgIC0taW5kaWNhdG9yLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgICAtLXNwZWVkOiAyczsKCiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIHdpZHRoOiAxZW07CiAgICBoZWlnaHQ6IDFlbTsKICAgIGZsZXg6IG5vbmU7CiAgfQoKICAuc3Bpbm5lciB7CiAgICBmbGV4OiAxIDEgYXV0bzsKICAgIGhlaWdodDogMTAwJTsKICAgIHdpZHRoOiAxMDAlOwogIH0KCiAgLnNwaW5uZXJfX3RyYWNrLAogIC5zcGlubmVyX19pbmRpY2F0b3IgewogICAgZmlsbDogbm9uZTsKICAgIHN0cm9rZS13aWR0aDogdmFyKC0tdHJhY2std2lkdGgpOwogICAgcjogY2FsYygwLjVlbSAtIHZhcigtLXRyYWNrLXdpZHRoKSAvIDIpOwogICAgY3g6IDAuNWVtOwogICAgY3k6IDAuNWVtOwogICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICB9CgogIC5zcGlubmVyX190cmFjayB7CiAgICBzdHJva2U6IHZhcigtLXRyYWNrLWNvbG9yKTsKICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlOwogIH0KCiAgLnNwaW5uZXJfX2luZGljYXRvciB7CiAgICBzdHJva2U6IHZhcigtLWluZGljYXRvci1jb2xvcik7CiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICBzdHJva2UtZGFzaGFycmF5OiAxNTAlIDc1JTsKICAgIGFuaW1hdGlvbjogc3BpbiB2YXIoLS1zcGVlZCkgbGluZWFyIGluZmluaXRlOwogIH0KCiAgQGtleWZyYW1lcyBzcGluIHsKICAgIDAlIHsKICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAuMDVlbSwgM2VtOwogICAgfQoKICAgIDUwJSB7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1MGRlZyk7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEuMzc1ZW0sIDEuMzc1ZW07CiAgICB9CgogICAgMTAwJSB7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpOwogICAgICBzdHJva2UtZGFzaGFycmF5OiAwLjA1ZW0sIDNlbTsKICAgIH0KICB9CmAsJHM9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2NhbGl6ZT1uZXcgdnModGhpcyl9cmVuZGVyKCl7cmV0dXJuIFFgCiAgICAgIDxzdmcgcGFydD0iYmFzZSIgY2xhc3M9InNwaW5uZXIiIHJvbGU9InByb2dyZXNzYmFyIiBhcmlhLWxhYmVsPSR7dGhpcy5sb2NhbGl6ZS50ZXJtKCJsb2FkaW5nIil9PgogICAgICAgIDxjaXJjbGUgY2xhc3M9InNwaW5uZXJfX3RyYWNrIj48L2NpcmNsZT4KICAgICAgICA8Y2lyY2xlIGNsYXNzPSJzcGlubmVyX19pbmRpY2F0b3IiPjwvY2lyY2xlPgogICAgICA8L3N2Zz4KICAgIGB9fTskcy5zdHlsZXM9W05yLFNzXTt2YXIgenM9bmV3IFdlYWtNYXAsX3M9bmV3IFdlYWtNYXAsQ3M9bmV3IFdlYWtNYXAsSXM9bmV3IFdlYWtTZXQsTHM9bmV3IFdlYWtNYXAsRXM9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmhhbmRsZUZvcm1EYXRhPWU9Pntjb25zdCB0PXRoaXMub3B0aW9ucy5kaXNhYmxlZCh0aGlzLmhvc3QpLGk9dGhpcy5vcHRpb25zLm5hbWUodGhpcy5ob3N0KSxvPXRoaXMub3B0aW9ucy52YWx1ZSh0aGlzLmhvc3QpLG49InNsLWJ1dHRvbiI9PT10aGlzLmhvc3QudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3RoaXMuaG9zdC5pc0Nvbm5lY3RlZCYmIXQmJiFuJiYic3RyaW5nIj09dHlwZW9mIGkmJmkubGVuZ3RoPjAmJnZvaWQgMCE9PW8mJihBcnJheS5pc0FycmF5KG8pP28uZm9yRWFjaCgodD0+e2UuZm9ybURhdGEuYXBwZW5kKGksdC50b1N0cmluZygpKX0pKTplLmZvcm1EYXRhLmFwcGVuZChpLG8udG9TdHJpbmcoKSkpfSx0aGlzLmhhbmRsZUZvcm1TdWJtaXQ9ZT0+e3ZhciB0O2NvbnN0IGk9dGhpcy5vcHRpb25zLmRpc2FibGVkKHRoaXMuaG9zdCksbz10aGlzLm9wdGlvbnMucmVwb3J0VmFsaWRpdHk7dGhpcy5mb3JtJiYhdGhpcy5mb3JtLm5vVmFsaWRhdGUmJihudWxsPT0odD16cy5nZXQodGhpcy5mb3JtKSl8fHQuZm9yRWFjaCgoZT0+e3RoaXMuc2V0VXNlckludGVyYWN0ZWQoZSwhMCl9KSkpLCF0aGlzLmZvcm18fHRoaXMuZm9ybS5ub1ZhbGlkYXRlfHxpfHxvKHRoaXMuaG9zdCl8fChlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9LHRoaXMuaGFuZGxlRm9ybVJlc2V0PSgpPT57dGhpcy5vcHRpb25zLnNldFZhbHVlKHRoaXMuaG9zdCx0aGlzLm9wdGlvbnMuZGVmYXVsdFZhbHVlKHRoaXMuaG9zdCkpLHRoaXMuc2V0VXNlckludGVyYWN0ZWQodGhpcy5ob3N0LCExKSxMcy5zZXQodGhpcy5ob3N0LFtdKX0sdGhpcy5oYW5kbGVJbnRlcmFjdGlvbj1lPT57Y29uc3QgdD1Mcy5nZXQodGhpcy5ob3N0KTt0LmluY2x1ZGVzKGUudHlwZSl8fHQucHVzaChlLnR5cGUpLHQubGVuZ3RoPT09dGhpcy5vcHRpb25zLmFzc3VtZUludGVyYWN0aW9uT24ubGVuZ3RoJiZ0aGlzLnNldFVzZXJJbnRlcmFjdGVkKHRoaXMuaG9zdCwhMCl9LHRoaXMuY2hlY2tGb3JtVmFsaWRpdHk9KCk9PntpZih0aGlzLmZvcm0mJiF0aGlzLmZvcm0ubm9WYWxpZGF0ZSl7Y29uc3QgZT10aGlzLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgiKiIpO2Zvcihjb25zdCB0IG9mIGUpaWYoImZ1bmN0aW9uIj09dHlwZW9mIHQuY2hlY2tWYWxpZGl0eSYmIXQuY2hlY2tWYWxpZGl0eSgpKXJldHVybiExfXJldHVybiEwfSx0aGlzLnJlcG9ydEZvcm1WYWxpZGl0eT0oKT0+e2lmKHRoaXMuZm9ybSYmIXRoaXMuZm9ybS5ub1ZhbGlkYXRlKXtjb25zdCBlPXRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIqIik7Zm9yKGNvbnN0IHQgb2YgZSlpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5yZXBvcnRWYWxpZGl0eSYmIXQucmVwb3J0VmFsaWRpdHkoKSlyZXR1cm4hMX1yZXR1cm4hMH0sKHRoaXMuaG9zdD1lKS5hZGRDb250cm9sbGVyKHRoaXMpLHRoaXMub3B0aW9ucz13aSh7Zm9ybTplPT57Y29uc3QgdD1lLmZvcm07aWYodCl7Y29uc3QgaT1lLmdldFJvb3ROb2RlKCkucXVlcnlTZWxlY3RvcihgIyR7dH1gKTtpZihpKXJldHVybiBpfXJldHVybiBlLmNsb3Nlc3QoImZvcm0iKX0sbmFtZTplPT5lLm5hbWUsdmFsdWU6ZT0+ZS52YWx1ZSxkZWZhdWx0VmFsdWU6ZT0+ZS5kZWZhdWx0VmFsdWUsZGlzYWJsZWQ6ZT0+e3ZhciB0O3JldHVybiBudWxsIT0odD1lLmRpc2FibGVkKSYmdH0scmVwb3J0VmFsaWRpdHk6ZT0+ImZ1bmN0aW9uIiE9dHlwZW9mIGUucmVwb3J0VmFsaWRpdHl8fGUucmVwb3J0VmFsaWRpdHkoKSxjaGVja1ZhbGlkaXR5OmU9PiJmdW5jdGlvbiIhPXR5cGVvZiBlLmNoZWNrVmFsaWRpdHl8fGUuY2hlY2tWYWxpZGl0eSgpLHNldFZhbHVlOihlLHQpPT5lLnZhbHVlPXQsYXNzdW1lSW50ZXJhY3Rpb25PbjpbInNsLWlucHV0Il19LHQpfWhvc3RDb25uZWN0ZWQoKXtjb25zdCBlPXRoaXMub3B0aW9ucy5mb3JtKHRoaXMuaG9zdCk7ZSYmdGhpcy5hdHRhY2hGb3JtKGUpLExzLnNldCh0aGlzLmhvc3QsW10pLHRoaXMub3B0aW9ucy5hc3N1bWVJbnRlcmFjdGlvbk9uLmZvckVhY2goKGU9Pnt0aGlzLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcihlLHRoaXMuaGFuZGxlSW50ZXJhY3Rpb24pfSkpfWhvc3REaXNjb25uZWN0ZWQoKXt0aGlzLmRldGFjaEZvcm0oKSxMcy5kZWxldGUodGhpcy5ob3N0KSx0aGlzLm9wdGlvbnMuYXNzdW1lSW50ZXJhY3Rpb25Pbi5mb3JFYWNoKChlPT57dGhpcy5ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0aGlzLmhhbmRsZUludGVyYWN0aW9uKX0pKX1ob3N0VXBkYXRlZCgpe2NvbnN0IGU9dGhpcy5vcHRpb25zLmZvcm0odGhpcy5ob3N0KTtlfHx0aGlzLmRldGFjaEZvcm0oKSxlJiZ0aGlzLmZvcm0hPT1lJiYodGhpcy5kZXRhY2hGb3JtKCksdGhpcy5hdHRhY2hGb3JtKGUpKSx0aGlzLmhvc3QuaGFzVXBkYXRlZCYmdGhpcy5zZXRWYWxpZGl0eSh0aGlzLmhvc3QudmFsaWRpdHkudmFsaWQpfWF0dGFjaEZvcm0oZSl7ZT8odGhpcy5mb3JtPWUsenMuaGFzKHRoaXMuZm9ybSk/enMuZ2V0KHRoaXMuZm9ybSkuYWRkKHRoaXMuaG9zdCk6enMuc2V0KHRoaXMuZm9ybSxuZXcgU2V0KFt0aGlzLmhvc3RdKSksdGhpcy5mb3JtLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1kYXRhIix0aGlzLmhhbmRsZUZvcm1EYXRhKSx0aGlzLmZvcm0uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0Iix0aGlzLmhhbmRsZUZvcm1TdWJtaXQpLHRoaXMuZm9ybS5hZGRFdmVudExpc3RlbmVyKCJyZXNldCIsdGhpcy5oYW5kbGVGb3JtUmVzZXQpLF9zLmhhcyh0aGlzLmZvcm0pfHwoX3Muc2V0KHRoaXMuZm9ybSx0aGlzLmZvcm0ucmVwb3J0VmFsaWRpdHkpLHRoaXMuZm9ybS5yZXBvcnRWYWxpZGl0eT0oKT0+dGhpcy5yZXBvcnRGb3JtVmFsaWRpdHkoKSksQ3MuaGFzKHRoaXMuZm9ybSl8fChDcy5zZXQodGhpcy5mb3JtLHRoaXMuZm9ybS5jaGVja1ZhbGlkaXR5KSx0aGlzLmZvcm0uY2hlY2tWYWxpZGl0eT0oKT0+dGhpcy5jaGVja0Zvcm1WYWxpZGl0eSgpKSk6dGhpcy5mb3JtPXZvaWQgMH1kZXRhY2hGb3JtKCl7aWYoIXRoaXMuZm9ybSlyZXR1cm47Y29uc3QgZT16cy5nZXQodGhpcy5mb3JtKTtlJiYoZS5kZWxldGUodGhpcy5ob3N0KSxlLnNpemU8PTAmJih0aGlzLmZvcm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9ybWRhdGEiLHRoaXMuaGFuZGxlRm9ybURhdGEpLHRoaXMuZm9ybS5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWJtaXQiLHRoaXMuaGFuZGxlRm9ybVN1Ym1pdCksdGhpcy5mb3JtLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2V0Iix0aGlzLmhhbmRsZUZvcm1SZXNldCksX3MuaGFzKHRoaXMuZm9ybSkmJih0aGlzLmZvcm0ucmVwb3J0VmFsaWRpdHk9X3MuZ2V0KHRoaXMuZm9ybSksX3MuZGVsZXRlKHRoaXMuZm9ybSkpLENzLmhhcyh0aGlzLmZvcm0pJiYodGhpcy5mb3JtLmNoZWNrVmFsaWRpdHk9Q3MuZ2V0KHRoaXMuZm9ybSksQ3MuZGVsZXRlKHRoaXMuZm9ybSkpLHRoaXMuZm9ybT12b2lkIDApKX1zZXRVc2VySW50ZXJhY3RlZChlLHQpe3Q/SXMuYWRkKGUpOklzLmRlbGV0ZShlKSxlLnJlcXVlc3RVcGRhdGUoKX1kb0FjdGlvbihlLHQpe2lmKHRoaXMuZm9ybSl7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtpLnR5cGU9ZSxpLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS5zdHlsZS53aWR0aD0iMCIsaS5zdHlsZS5oZWlnaHQ9IjAiLGkuc3R5bGUuY2xpcFBhdGg9Imluc2V0KDUwJSkiLGkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsaS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiLHQmJihpLm5hbWU9dC5uYW1lLGkudmFsdWU9dC52YWx1ZSxbImZvcm1hY3Rpb24iLCJmb3JtZW5jdHlwZSIsImZvcm1tZXRob2QiLCJmb3Jtbm92YWxpZGF0ZSIsImZvcm10YXJnZXQiXS5mb3JFYWNoKChlPT57dC5oYXNBdHRyaWJ1dGUoZSkmJmkuc2V0QXR0cmlidXRlKGUsdC5nZXRBdHRyaWJ1dGUoZSkpfSkpKSx0aGlzLmZvcm0uYXBwZW5kKGkpLGkuY2xpY2soKSxpLnJlbW92ZSgpfX1nZXRGb3JtKCl7dmFyIGU7cmV0dXJuIG51bGwhPShlPXRoaXMuZm9ybSk/ZTpudWxsfXJlc2V0KGUpe3RoaXMuZG9BY3Rpb24oInJlc2V0IixlKX1zdWJtaXQoZSl7dGhpcy5kb0FjdGlvbigic3VibWl0IixlKX1zZXRWYWxpZGl0eShlKXtjb25zdCB0PXRoaXMuaG9zdCxpPUJvb2xlYW4oSXMuaGFzKHQpKSxvPUJvb2xlYW4odC5yZXF1aXJlZCk7dC50b2dnbGVBdHRyaWJ1dGUoImRhdGEtcmVxdWlyZWQiLG8pLHQudG9nZ2xlQXR0cmlidXRlKCJkYXRhLW9wdGlvbmFsIiwhbyksdC50b2dnbGVBdHRyaWJ1dGUoImRhdGEtaW52YWxpZCIsIWUpLHQudG9nZ2xlQXR0cmlidXRlKCJkYXRhLXZhbGlkIixlKSx0LnRvZ2dsZUF0dHJpYnV0ZSgiZGF0YS11c2VyLWludmFsaWQiLCFlJiZpKSx0LnRvZ2dsZUF0dHJpYnV0ZSgiZGF0YS11c2VyLXZhbGlkIixlJiZpKX11cGRhdGVWYWxpZGl0eSgpe2NvbnN0IGU9dGhpcy5ob3N0O3RoaXMuc2V0VmFsaWRpdHkoZS52YWxpZGl0eS52YWxpZCl9ZW1pdEludmFsaWRFdmVudChlKXtjb25zdCB0PW5ldyBDdXN0b21FdmVudCgic2wtaW52YWxpZCIse2J1YmJsZXM6ITEsY29tcG9zZWQ6ITEsY2FuY2VsYWJsZTohMCxkZXRhaWw6e319KTtlfHx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5ob3N0LmRpc3BhdGNoRXZlbnQodCl8fG51bGw9PWV8fGUucHJldmVudERlZmF1bHQoKX19LEFzPU9iamVjdC5mcmVlemUoe2JhZElucHV0OiExLGN1c3RvbUVycm9yOiExLHBhdHRlcm5NaXNtYXRjaDohMSxyYW5nZU92ZXJmbG93OiExLHJhbmdlVW5kZXJmbG93OiExLHN0ZXBNaXNtYXRjaDohMSx0b29Mb25nOiExLHRvb1Nob3J0OiExLHR5cGVNaXNtYXRjaDohMSx2YWxpZDohMCx2YWx1ZU1pc3Npbmc6ITF9KSxUcz0oT2JqZWN0LmZyZWV6ZSh5aSh3aSh7fSxBcykse3ZhbGlkOiExLHZhbHVlTWlzc2luZzohMH0pKSxPYmplY3QuZnJlZXplKHlpKHdpKHt9LEFzKSx7dmFsaWQ6ITEsY3VzdG9tRXJyb3I6ITB9KSksaGAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogYXV0bzsKICAgIGN1cnNvcjogcG9pbnRlcjsKICB9CgogIC5idXR0b24gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1zbC1pbnB1dC1ib3JkZXItd2lkdGgpOwogICAgZm9udC1mYW1pbHk6IHZhcigtLXNsLWlucHV0LWZvbnQtZmFtaWx5KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1zZW1pYm9sZCk7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIHBhZGRpbmc6IDA7CiAgICB0cmFuc2l0aW9uOgogICAgICB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgYmFja2dyb3VuZC1jb2xvciwKICAgICAgdmFyKC0tc2wtdHJhbnNpdGlvbi14LWZhc3QpIGNvbG9yLAogICAgICB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgYm9yZGVyLAogICAgICB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgYm94LXNoYWRvdzsKICAgIGN1cnNvcjogaW5oZXJpdDsKICB9CgogIC5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIgewogICAgYm9yZGVyOiAwOwogIH0KCiAgLmJ1dHRvbjpmb2N1cyB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgLmJ1dHRvbjpmb2N1cy12aXNpYmxlIHsKICAgIG91dGxpbmU6IHZhcigtLXNsLWZvY3VzLXJpbmcpOwogICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXNsLWZvY3VzLXJpbmctb2Zmc2V0KTsKICB9CgogIC5idXR0b24tLWRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNTsKICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgfQoKICAvKiBXaGVuIGRpc2FibGVkLCBwcmV2ZW50IG1vdXNlIGV2ZW50cyBmcm9tIGJ1YmJsaW5nIHVwIGZyb20gY2hpbGRyZW4gKi8KICAuYnV0dG9uLS1kaXNhYmxlZCAqIHsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmJ1dHRvbl9fcHJlZml4LAogIC5idXR0b25fX3N1ZmZpeCB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYnV0dG9uX19sYWJlbCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQoKICAuYnV0dG9uX19sYWJlbDo6c2xvdHRlZChzbC1pY29uKSB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDsKICB9CgogIC8qCiAgICogU3RhbmRhcmQgYnV0dG9ucwogICAqLwoKICAvKiBEZWZhdWx0ICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1kZWZhdWx0IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMzAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLWRlZmF1bHQ6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTUwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS0zMDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNzAwKTsKICB9CgogIC5idXR0b24tLXN0YW5kYXJkLmJ1dHRvbi0tZGVmYXVsdDphY3RpdmU6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTEwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNDAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgfQoKICAvKiBQcmltYXJ5ICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1wcmltYXJ5IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLXByaW1hcnk6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTUwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNTAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1wcmltYXJ5OmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAvKiBTdWNjZXNzICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1zdWNjZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3Itc3VjY2Vzcy02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLXN1Y2Nlc3M6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTUwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNTAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1zdWNjZXNzOmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3Itc3VjY2Vzcy02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAvKiBOZXV0cmFsICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1uZXV0cmFsIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLW5ldXRyYWw6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTUwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNTAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1uZXV0cmFsOmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAvKiBXYXJuaW5nICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXdhcm5pbmctNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3Itd2FybmluZy02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQogIC5idXR0b24tLXN0YW5kYXJkLmJ1dHRvbi0td2FybmluZzpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXdhcm5pbmctNTAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3Itd2FybmluZy01MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLXdhcm5pbmc6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3Itd2FybmluZy02MDApOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTYwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIERhbmdlciAqLwogIC5idXR0b24tLXN0YW5kYXJkLmJ1dHRvbi0tZGFuZ2VyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLWRhbmdlci02MDApOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1kYW5nZXI6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNTAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItZGFuZ2VyLTUwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC5idXR0b24tLXN0YW5kYXJkLmJ1dHRvbi0tZGFuZ2VyOmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLWRhbmdlci02MDApOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLyoKICAgKiBPdXRsaW5lIGJ1dHRvbnMKICAgKi8KCiAgLmJ1dHRvbi0tb3V0bGluZSB7CiAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgYm9yZGVyOiBzb2xpZCAxcHg7CiAgfQoKICAvKiBEZWZhdWx0ICovCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLWRlZmF1bHQgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTMwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC03MDApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLWRlZmF1bHQ6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSwKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tZGVmYXVsdC5idXR0b24tLWNoZWNrZWQ6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLWRlZmF1bHQ6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIFByaW1hcnkgKi8KICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tcHJpbWFyeSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tcHJpbWFyeTpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpLAogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1wcmltYXJ5LmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLXByaW1hcnk6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIFN1Y2Nlc3MgKi8KICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tc3VjY2VzcyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTYwMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tc3VjY2Vzczpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpLAogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1zdWNjZXNzLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLXN1Y2Nlc3M6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIE5ldXRyYWwgKi8KICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tbmV1dHJhbCB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTYwMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tbmV1dHJhbDpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpLAogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1uZXV0cmFsLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLW5ldXRyYWw6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIFdhcm5pbmcgKi8KICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0td2FybmluZyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXdhcm5pbmctNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTYwMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0td2FybmluZzpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpLAogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS13YXJuaW5nLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXdhcm5pbmctNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLXdhcm5pbmc6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIERhbmdlciAqLwogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1kYW5nZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICB9CgogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1kYW5nZXI6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSwKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tZGFuZ2VyLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLWRhbmdlci02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tZGFuZ2VyOmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItZGFuZ2VyLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNzAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsKICAgIC5idXR0b24uYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgICAgb3V0bGluZTogc29saWQgMnB4IHRyYW5zcGFyZW50OwogICAgfQogIH0KCiAgLyoKICAgKiBUZXh0IGJ1dHRvbnMKICAgKi8KCiAgLmJ1dHRvbi0tdGV4dCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApOwogIH0KCiAgLmJ1dHRvbi0tdGV4dDpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTUwMCk7CiAgfQoKICAuYnV0dG9uLS10ZXh0OmZvY3VzLXZpc2libGU6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS01MDApOwogIH0KCiAgLmJ1dHRvbi0tdGV4dDphY3RpdmU6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS03MDApOwogIH0KCiAgLyoKICAgKiBTaXplIG1vZGlmaWVycwogICAqLwoKICAuYnV0dG9uLS1zbWFsbCB7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiB2YXIoLS1zbC1pbnB1dC1oZWlnaHQtc21hbGwpOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1idXR0b24tZm9udC1zaXplLXNtYWxsKTsKICAgIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLXNsLWlucHV0LWhlaWdodC1zbWFsbCkgLSB2YXIoLS1zbC1pbnB1dC1ib3JkZXItd2lkdGgpICogMik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1pbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsKTsKICB9CgogIC5idXR0b24tLW1lZGl1bSB7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiB2YXIoLS1zbC1pbnB1dC1oZWlnaHQtbWVkaXVtKTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0pOwogICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tc2wtaW5wdXQtaGVpZ2h0LW1lZGl1bSkgLSB2YXIoLS1zbC1pbnB1dC1ib3JkZXItd2lkdGgpICogMik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1pbnB1dC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgfQoKICAuYnV0dG9uLS1sYXJnZSB7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiB2YXIoLS1zbC1pbnB1dC1oZWlnaHQtbGFyZ2UpOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1idXR0b24tZm9udC1zaXplLWxhcmdlKTsKICAgIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLXNsLWlucHV0LWhlaWdodC1sYXJnZSkgLSB2YXIoLS1zbC1pbnB1dC1ib3JkZXItd2lkdGgpICogMik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1pbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlKTsKICB9CgogIC8qCiAgICogUGlsbCBtb2RpZmllcgogICAqLwoKICAuYnV0dG9uLS1waWxsLmJ1dHRvbi0tc21hbGwgewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtaW5wdXQtaGVpZ2h0LXNtYWxsKTsKICB9CgogIC5idXR0b24tLXBpbGwuYnV0dG9uLS1tZWRpdW0gewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtaW5wdXQtaGVpZ2h0LW1lZGl1bSk7CiAgfQoKICAuYnV0dG9uLS1waWxsLmJ1dHRvbi0tbGFyZ2UgewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtaW5wdXQtaGVpZ2h0LWxhcmdlKTsKICB9CgogIC8qCiAgICogQ2lyY2xlIG1vZGlmaWVyCiAgICovCgogIC5idXR0b24tLWNpcmNsZSB7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBwYWRkaW5nLXJpZ2h0OiAwOwogIH0KCiAgLmJ1dHRvbi0tY2lyY2xlLmJ1dHRvbi0tc21hbGwgewogICAgd2lkdGg6IHZhcigtLXNsLWlucHV0LWhlaWdodC1zbWFsbCk7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgfQoKICAuYnV0dG9uLS1jaXJjbGUuYnV0dG9uLS1tZWRpdW0gewogICAgd2lkdGg6IHZhcigtLXNsLWlucHV0LWhlaWdodC1tZWRpdW0pOwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogIH0KCiAgLmJ1dHRvbi0tY2lyY2xlLmJ1dHRvbi0tbGFyZ2UgewogICAgd2lkdGg6IHZhcigtLXNsLWlucHV0LWhlaWdodC1sYXJnZSk7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgfQoKICAuYnV0dG9uLS1jaXJjbGUgLmJ1dHRvbl9fcHJlZml4LAogIC5idXR0b24tLWNpcmNsZSAuYnV0dG9uX19zdWZmaXgsCiAgLmJ1dHRvbi0tY2lyY2xlIC5idXR0b25fX2NhcmV0IHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAvKgogICAqIENhcmV0IG1vZGlmaWVyCiAgICovCgogIC5idXR0b24tLWNhcmV0IC5idXR0b25fX3N1ZmZpeCB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KCiAgLmJ1dHRvbi0tY2FyZXQgLmJ1dHRvbl9fY2FyZXQgewogICAgaGVpZ2h0OiBhdXRvOwogIH0KCiAgLyoKICAgKiBMb2FkaW5nIG1vZGlmaWVyCiAgICovCgogIC5idXR0b24tLWxvYWRpbmcgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgY3Vyc29yOiB3YWl0OwogIH0KCiAgLmJ1dHRvbi0tbG9hZGluZyAuYnV0dG9uX19wcmVmaXgsCiAgLmJ1dHRvbi0tbG9hZGluZyAuYnV0dG9uX19sYWJlbCwKICAuYnV0dG9uLS1sb2FkaW5nIC5idXR0b25fX3N1ZmZpeCwKICAuYnV0dG9uLS1sb2FkaW5nIC5idXR0b25fX2NhcmV0IHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICB9CgogIC5idXR0b24tLWxvYWRpbmcgc2wtc3Bpbm5lciB7CiAgICAtLWluZGljYXRvci1jb2xvcjogY3VycmVudENvbG9yOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgZm9udC1zaXplOiAxZW07CiAgICBoZWlnaHQ6IDFlbTsKICAgIHdpZHRoOiAxZW07CiAgICB0b3A6IGNhbGMoNTAlIC0gMC41ZW0pOwogICAgbGVmdDogY2FsYyg1MCUgLSAwLjVlbSk7CiAgfQoKICAvKgogICAqIEJhZGdlcwogICAqLwoKICAuYnV0dG9uIDo6c2xvdHRlZChzbC1iYWRnZSkgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgcmlnaHQ6IDA7CiAgICB0cmFuc2xhdGU6IDUwJSAtNTAlOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYnV0dG9uLS1ydGwgOjpzbG90dGVkKHNsLWJhZGdlKSB7CiAgICByaWdodDogYXV0bzsKICAgIGxlZnQ6IDA7CiAgICB0cmFuc2xhdGU6IC01MCUgLTUwJTsKICB9CgogIC8qCiAgICogQnV0dG9uIHNwYWNpbmcKICAgKi8KCiAgLmJ1dHRvbi0taGFzLWxhYmVsLmJ1dHRvbi0tc21hbGwgLmJ1dHRvbl9fbGFiZWwgewogICAgcGFkZGluZzogMCB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTsKICB9CgogIC5idXR0b24tLWhhcy1sYWJlbC5idXR0b24tLW1lZGl1bSAuYnV0dG9uX19sYWJlbCB7CiAgICBwYWRkaW5nOiAwIHZhcigtLXNsLXNwYWNpbmctbWVkaXVtKTsKICB9CgogIC5idXR0b24tLWhhcy1sYWJlbC5idXR0b24tLWxhcmdlIC5idXR0b25fX2xhYmVsIHsKICAgIHBhZGRpbmc6IDAgdmFyKC0tc2wtc3BhY2luZy1sYXJnZSk7CiAgfQoKICAuYnV0dG9uLS1oYXMtcHJlZml4LmJ1dHRvbi0tc21hbGwgewogICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtcHJlZml4LmJ1dHRvbi0tc21hbGwgLmJ1dHRvbl9fbGFiZWwgewogICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtcHJlZml4LmJ1dHRvbi0tbWVkaXVtIHsKICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTsKICB9CgogIC5idXR0b24tLWhhcy1wcmVmaXguYnV0dG9uLS1tZWRpdW0gLmJ1dHRvbl9fbGFiZWwgewogICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNsLXNwYWNpbmctc21hbGwpOwogIH0KCiAgLmJ1dHRvbi0taGFzLXByZWZpeC5idXR0b24tLWxhcmdlIHsKICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTsKICB9CgogIC5idXR0b24tLWhhcy1wcmVmaXguYnV0dG9uLS1sYXJnZSAuYnV0dG9uX19sYWJlbCB7CiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2wtc3BhY2luZy1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tc21hbGwsCiAgLmJ1dHRvbi0tY2FyZXQuYnV0dG9uLS1zbWFsbCB7CiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tc21hbGwgLmJ1dHRvbl9fbGFiZWwsCiAgLmJ1dHRvbi0tY2FyZXQuYnV0dG9uLS1zbWFsbCAuYnV0dG9uX19sYWJlbCB7CiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tbWVkaXVtLAogIC5idXR0b24tLWNhcmV0LmJ1dHRvbi0tbWVkaXVtIHsKICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2wtc3BhY2luZy1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tbWVkaXVtIC5idXR0b25fX2xhYmVsLAogIC5idXR0b24tLWNhcmV0LmJ1dHRvbi0tbWVkaXVtIC5idXR0b25fX2xhYmVsIHsKICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2wtc3BhY2luZy1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tbGFyZ2UsCiAgLmJ1dHRvbi0tY2FyZXQuYnV0dG9uLS1sYXJnZSB7CiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNsLXNwYWNpbmctc21hbGwpOwogIH0KCiAgLmJ1dHRvbi0taGFzLXN1ZmZpeC5idXR0b24tLWxhcmdlIC5idXR0b25fX2xhYmVsLAogIC5idXR0b24tLWNhcmV0LmJ1dHRvbi0tbGFyZ2UgLmJ1dHRvbl9fbGFiZWwgewogICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTsKICB9CgogIC8qCiAgICogQnV0dG9uIGdyb3VwcyBzdXBwb3J0IGEgdmFyaWV0eSBvZiBidXR0b24gdHlwZXMgKGUuZy4gYnV0dG9ucyB3aXRoIHRvb2x0aXBzLCBidXR0b25zIGFzIGRyb3Bkb3duIHRyaWdnZXJzLCBldGMuKS4KICAgKiBUaGlzIG1lYW5zIGJ1dHRvbnMgYXJlbid0IGFsd2F5cyBkaXJlY3QgZGVzY2VuZGFudHMgb2YgdGhlIGJ1dHRvbiBncm91cCwgdGh1cyB3ZSBjYW4ndCB0YXJnZXQgdGhlbSB3aXRoIHRoZQogICAqIDo6c2xvdHRlZCBzZWxlY3Rvci4gVG8gd29yayBhcm91bmQgdGhpcywgdGhlIGJ1dHRvbiBncm91cCBjb21wb25lbnQgZG9lcyBzb21lIG1hZ2ljIHRvIGFkZCB0aGVzZSBzcGVjaWFsIGNsYXNzZXMgdG8KICAgKiBidXR0b25zIGFuZCB3ZSBzdHlsZSB0aGVtIGhlcmUgaW5zdGVhZC4KICAgKi8KCiAgOmhvc3QoW2RhdGEtc2wtYnV0dG9uLWdyb3VwX19idXR0b24tLWZpcnN0XTpub3QoW2RhdGEtc2wtYnV0dG9uLWdyb3VwX19idXR0b24tLWxhc3RdKSkgLmJ1dHRvbiB7CiAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogMDsKICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogMDsKICB9CgogIDpob3N0KFtkYXRhLXNsLWJ1dHRvbi1ncm91cF9fYnV0dG9uLS1pbm5lcl0pIC5idXR0b24gewogICAgYm9yZGVyLXJhZGl1czogMDsKICB9CgogIDpob3N0KFtkYXRhLXNsLWJ1dHRvbi1ncm91cF9fYnV0dG9uLS1sYXN0XTpub3QoW2RhdGEtc2wtYnV0dG9uLWdyb3VwX19idXR0b24tLWZpcnN0XSkpIC5idXR0b24gewogICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogMDsKICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiAwOwogIH0KCiAgLyogQWxsIGV4Y2VwdCB0aGUgZmlyc3QgKi8KICA6aG9zdChbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbl06bm90KFtkYXRhLXNsLWJ1dHRvbi1ncm91cF9fYnV0dG9uLS1maXJzdF0pKSB7CiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tc2wtaW5wdXQtYm9yZGVyLXdpZHRoKSk7CiAgfQoKICAvKiBBZGQgYSB2aXN1YWwgc2VwYXJhdG9yIGJldHdlZW4gc29saWQgYnV0dG9ucyAqLwogIDpob3N0KAogICAgICBbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbl06bm90KAogICAgICAgICAgW2RhdGEtc2wtYnV0dG9uLWdyb3VwX19idXR0b24tLWZpcnN0XSwKICAgICAgICAgIFtkYXRhLXNsLWJ1dHRvbi1ncm91cF9fYnV0dG9uLS1yYWRpb10sCiAgICAgICAgICBbdmFyaWFudD0nZGVmYXVsdCddCiAgICAgICAgKTpub3QoOmhvdmVyKQogICAgKQogICAgLmJ1dHRvbjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGluc2V0LWlubGluZS1zdGFydDogMDsKICAgIGJvdHRvbTogMDsKICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiKDEyOCAxMjggMTI4IC8gMzMlKTsKICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsKICB9CgogIC8qIEJ1bXAgaG92ZXJlZCwgZm9jdXNlZCwgYW5kIGNoZWNrZWQgYnV0dG9ucyB1cCBzbyB0aGVpciBmb2N1cyByaW5nIGlzbid0IGNsaXBwZWQgKi8KICA6aG9zdChbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbi0taG92ZXJdKSB7CiAgICB6LWluZGV4OiAxOwogIH0KCiAgLyogRm9jdXMgYW5kIGNoZWNrZWQgYXJlIGFsd2F5cyBvbiB0b3AgKi8KICA6aG9zdChbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbi0tZm9jdXNdKSwKICA6aG9zdChbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbl1bY2hlY2tlZF0pIHsKICAgIHotaW5kZXg6IDI7CiAgfQpgKSxQcz1jbGFzcyBleHRlbmRzIHFye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmZvcm1Db250cm9sQ29udHJvbGxlcj1uZXcgRXModGhpcyx7YXNzdW1lSW50ZXJhY3Rpb25PbjpbImNsaWNrIl19KSx0aGlzLmhhc1Nsb3RDb250cm9sbGVyPW5ldyB3cyh0aGlzLCJbZGVmYXVsdF0iLCJwcmVmaXgiLCJzdWZmaXgiKSx0aGlzLmxvY2FsaXplPW5ldyB2cyh0aGlzKSx0aGlzLmhhc0ZvY3VzPSExLHRoaXMuaW52YWxpZD0hMSx0aGlzLnRpdGxlPSIiLHRoaXMudmFyaWFudD0iZGVmYXVsdCIsdGhpcy5zaXplPSJtZWRpdW0iLHRoaXMuY2FyZXQ9ITEsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5vdXRsaW5lPSExLHRoaXMucGlsbD0hMSx0aGlzLmNpcmNsZT0hMSx0aGlzLnR5cGU9ImJ1dHRvbiIsdGhpcy5uYW1lPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5ocmVmPSIiLHRoaXMucmVsPSJub3JlZmVycmVyIG5vb3BlbmVyIn1nZXQgdmFsaWRpdHkoKXtyZXR1cm4gdGhpcy5pc0J1dHRvbigpP3RoaXMuYnV0dG9uLnZhbGlkaXR5OkFzfWdldCB2YWxpZGF0aW9uTWVzc2FnZSgpe3JldHVybiB0aGlzLmlzQnV0dG9uKCk/dGhpcy5idXR0b24udmFsaWRhdGlvbk1lc3NhZ2U6IiJ9Zmlyc3RVcGRhdGVkKCl7dGhpcy5pc0J1dHRvbigpJiZ0aGlzLmZvcm1Db250cm9sQ29udHJvbGxlci51cGRhdGVWYWxpZGl0eSgpfWhhbmRsZUJsdXIoKXt0aGlzLmhhc0ZvY3VzPSExLHRoaXMuZW1pdCgic2wtYmx1ciIpfWhhbmRsZUZvY3VzKCl7dGhpcy5oYXNGb2N1cz0hMCx0aGlzLmVtaXQoInNsLWZvY3VzIil9aGFuZGxlQ2xpY2soKXsic3VibWl0Ij09PXRoaXMudHlwZSYmdGhpcy5mb3JtQ29udHJvbENvbnRyb2xsZXIuc3VibWl0KHRoaXMpLCJyZXNldCI9PT10aGlzLnR5cGUmJnRoaXMuZm9ybUNvbnRyb2xDb250cm9sbGVyLnJlc2V0KHRoaXMpfWhhbmRsZUludmFsaWQoZSl7dGhpcy5mb3JtQ29udHJvbENvbnRyb2xsZXIuc2V0VmFsaWRpdHkoITEpLHRoaXMuZm9ybUNvbnRyb2xDb250cm9sbGVyLmVtaXRJbnZhbGlkRXZlbnQoZSl9aXNCdXR0b24oKXtyZXR1cm4hdGhpcy5ocmVmfWlzTGluaygpe3JldHVybiEhdGhpcy5ocmVmfWhhbmRsZURpc2FibGVkQ2hhbmdlKCl7dGhpcy5pc0J1dHRvbigpJiZ0aGlzLmZvcm1Db250cm9sQ29udHJvbGxlci5zZXRWYWxpZGl0eSh0aGlzLmRpc2FibGVkKX1jbGljaygpe3RoaXMuYnV0dG9uLmNsaWNrKCl9Zm9jdXMoZSl7dGhpcy5idXR0b24uZm9jdXMoZSl9Ymx1cigpe3RoaXMuYnV0dG9uLmJsdXIoKX1jaGVja1ZhbGlkaXR5KCl7cmV0dXJuIXRoaXMuaXNCdXR0b24oKXx8dGhpcy5idXR0b24uY2hlY2tWYWxpZGl0eSgpfWdldEZvcm0oKXtyZXR1cm4gdGhpcy5mb3JtQ29udHJvbENvbnRyb2xsZXIuZ2V0Rm9ybSgpfXJlcG9ydFZhbGlkaXR5KCl7cmV0dXJuIXRoaXMuaXNCdXR0b24oKXx8dGhpcy5idXR0b24ucmVwb3J0VmFsaWRpdHkoKX1zZXRDdXN0b21WYWxpZGl0eShlKXt0aGlzLmlzQnV0dG9uKCkmJih0aGlzLmJ1dHRvbi5zZXRDdXN0b21WYWxpZGl0eShlKSx0aGlzLmZvcm1Db250cm9sQ29udHJvbGxlci51cGRhdGVWYWxpZGl0eSgpKX1yZW5kZXIoKXtjb25zdCBlPXRoaXMuaXNMaW5rKCksdD1lP0JvYGFgOkJvYGJ1dHRvbmA7cmV0dXJuIGpvYAogICAgICA8JHt0fQogICAgICAgIHBhcnQ9ImJhc2UiCiAgICAgICAgY2xhc3M9JHtLcih7YnV0dG9uOiEwLCJidXR0b24tLWRlZmF1bHQiOiJkZWZhdWx0Ij09PXRoaXMudmFyaWFudCwiYnV0dG9uLS1wcmltYXJ5IjoicHJpbWFyeSI9PT10aGlzLnZhcmlhbnQsImJ1dHRvbi0tc3VjY2VzcyI6InN1Y2Nlc3MiPT09dGhpcy52YXJpYW50LCJidXR0b24tLW5ldXRyYWwiOiJuZXV0cmFsIj09PXRoaXMudmFyaWFudCwiYnV0dG9uLS13YXJuaW5nIjoid2FybmluZyI9PT10aGlzLnZhcmlhbnQsImJ1dHRvbi0tZGFuZ2VyIjoiZGFuZ2VyIj09PXRoaXMudmFyaWFudCwiYnV0dG9uLS10ZXh0IjoidGV4dCI9PT10aGlzLnZhcmlhbnQsImJ1dHRvbi0tc21hbGwiOiJzbWFsbCI9PT10aGlzLnNpemUsImJ1dHRvbi0tbWVkaXVtIjoibWVkaXVtIj09PXRoaXMuc2l6ZSwiYnV0dG9uLS1sYXJnZSI6ImxhcmdlIj09PXRoaXMuc2l6ZSwiYnV0dG9uLS1jYXJldCI6dGhpcy5jYXJldCwiYnV0dG9uLS1jaXJjbGUiOnRoaXMuY2lyY2xlLCJidXR0b24tLWRpc2FibGVkIjp0aGlzLmRpc2FibGVkLCJidXR0b24tLWZvY3VzZWQiOnRoaXMuaGFzRm9jdXMsImJ1dHRvbi0tbG9hZGluZyI6dGhpcy5sb2FkaW5nLCJidXR0b24tLXN0YW5kYXJkIjohdGhpcy5vdXRsaW5lLCJidXR0b24tLW91dGxpbmUiOnRoaXMub3V0bGluZSwiYnV0dG9uLS1waWxsIjp0aGlzLnBpbGwsImJ1dHRvbi0tcnRsIjoicnRsIj09PXRoaXMubG9jYWxpemUuZGlyKCksImJ1dHRvbi0taGFzLWxhYmVsIjp0aGlzLmhhc1Nsb3RDb250cm9sbGVyLnRlc3QoIltkZWZhdWx0XSIpLCJidXR0b24tLWhhcy1wcmVmaXgiOnRoaXMuaGFzU2xvdENvbnRyb2xsZXIudGVzdCgicHJlZml4IiksImJ1dHRvbi0taGFzLXN1ZmZpeCI6dGhpcy5oYXNTbG90Q29udHJvbGxlci50ZXN0KCJzdWZmaXgiKX0pfQogICAgICAgID9kaXNhYmxlZD0keyRlKGU/dm9pZCAwOnRoaXMuZGlzYWJsZWQpfQogICAgICAgIHR5cGU9JHskZShlP3ZvaWQgMDp0aGlzLnR5cGUpfQogICAgICAgIHRpdGxlPSR7dGhpcy50aXRsZX0KICAgICAgICBuYW1lPSR7JGUoZT92b2lkIDA6dGhpcy5uYW1lKX0KICAgICAgICB2YWx1ZT0keyRlKGU/dm9pZCAwOnRoaXMudmFsdWUpfQogICAgICAgIGhyZWY9JHskZShlP3RoaXMuaHJlZjp2b2lkIDApfQogICAgICAgIHRhcmdldD0keyRlKGU/dGhpcy50YXJnZXQ6dm9pZCAwKX0KICAgICAgICBkb3dubG9hZD0keyRlKGU/dGhpcy5kb3dubG9hZDp2b2lkIDApfQogICAgICAgIHJlbD0keyRlKGU/dGhpcy5yZWw6dm9pZCAwKX0KICAgICAgICByb2xlPSR7JGUoZT92b2lkIDA6ImJ1dHRvbiIpfQogICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkPyJ0cnVlIjoiZmFsc2UifQogICAgICAgIHRhYmluZGV4PSR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0KICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlQmx1cn0KICAgICAgICBAZm9jdXM9JHt0aGlzLmhhbmRsZUZvY3VzfQogICAgICAgIEBpbnZhbGlkPSR7dGhpcy5pc0J1dHRvbigpP3RoaXMuaGFuZGxlSW52YWxpZDpudWxsfQogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgID4KICAgICAgICA8c2xvdCBuYW1lPSJwcmVmaXgiIHBhcnQ9InByZWZpeCIgY2xhc3M9ImJ1dHRvbl9fcHJlZml4Ij48L3Nsb3Q+CiAgICAgICAgPHNsb3QgcGFydD0ibGFiZWwiIGNsYXNzPSJidXR0b25fX2xhYmVsIj48L3Nsb3Q+CiAgICAgICAgPHNsb3QgbmFtZT0ic3VmZml4IiBwYXJ0PSJzdWZmaXgiIGNsYXNzPSJidXR0b25fX3N1ZmZpeCI+PC9zbG90PgogICAgICAgICR7dGhpcy5jYXJldD9qb2AgPHNsLWljb24gcGFydD0iY2FyZXQiIGNsYXNzPSJidXR0b25fX2NhcmV0IiBsaWJyYXJ5PSJzeXN0ZW0iIG5hbWU9ImNhcmV0Ij48L3NsLWljb24+IGA6IiJ9CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/am9gPHNsLXNwaW5uZXIgcGFydD0ic3Bpbm5lciI+PC9zbC1zcGlubmVyPmA6IiJ9CiAgICAgIDwvJHt0fT4KICAgIGB9fTtQcy5zdHlsZXM9W05yLFRzXSxQcy5kZXBlbmRlbmNpZXM9eyJzbC1pY29uIjpHciwic2wtc3Bpbm5lciI6JHN9LHhpKFtTZSgiLmJ1dHRvbiIpXSxQcy5wcm90b3R5cGUsImJ1dHRvbiIsMikseGkoW3hlKCldLFBzLnByb3RvdHlwZSwiaGFzRm9jdXMiLDIpLHhpKFt4ZSgpXSxQcy5wcm90b3R5cGUsImludmFsaWQiLDIpLHhpKFt5ZSgpXSxQcy5wcm90b3R5cGUsInRpdGxlIiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sUHMucHJvdG90eXBlLCJ2YXJpYW50IiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sUHMucHJvdG90eXBlLCJzaXplIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFBzLnByb3RvdHlwZSwiY2FyZXQiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sUHMucHJvdG90eXBlLCJkaXNhYmxlZCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxQcy5wcm90b3R5cGUsImxvYWRpbmciLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sUHMucHJvdG90eXBlLCJvdXRsaW5lIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFBzLnByb3RvdHlwZSwicGlsbCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxQcy5wcm90b3R5cGUsImNpcmNsZSIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwidHlwZSIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwibmFtZSIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwidmFsdWUiLDIpLHhpKFt5ZSgpXSxQcy5wcm90b3R5cGUsImhyZWYiLDIpLHhpKFt5ZSgpXSxQcy5wcm90b3R5cGUsInRhcmdldCIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwicmVsIiwyKSx4aShbeWUoKV0sUHMucHJvdG90eXBlLCJkb3dubG9hZCIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwiZm9ybSIsMikseGkoW3llKHthdHRyaWJ1dGU6ImZvcm1hY3Rpb24ifSldLFBzLnByb3RvdHlwZSwiZm9ybUFjdGlvbiIsMikseGkoW3llKHthdHRyaWJ1dGU6ImZvcm1lbmN0eXBlIn0pXSxQcy5wcm90b3R5cGUsImZvcm1FbmN0eXBlIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiZm9ybW1ldGhvZCJ9KV0sUHMucHJvdG90eXBlLCJmb3JtTWV0aG9kIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiZm9ybW5vdmFsaWRhdGUiLHR5cGU6Qm9vbGVhbn0pXSxQcy5wcm90b3R5cGUsImZvcm1Ob1ZhbGlkYXRlIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiZm9ybXRhcmdldCJ9KV0sUHMucHJvdG90eXBlLCJmb3JtVGFyZ2V0IiwyKSx4aShbQnIoImRpc2FibGVkIix7d2FpdFVudGlsRmlyc3RVcGRhdGU6ITB9KV0sUHMucHJvdG90eXBlLCJoYW5kbGVEaXNhYmxlZENoYW5nZSIsMSk7UHMuZGVmaW5lKCJzbC1idXR0b24iKTt2YXIgRHM9aGAKICA6aG9zdCB7CiAgICAtLW1heC13aWR0aDogMjByZW07CiAgICAtLWhpZGUtZGVsYXk6IDBtczsKICAgIC0tc2hvdy1kZWxheTogMTUwbXM7CgogICAgZGlzcGxheTogY29udGVudHM7CiAgfQoKICAudG9vbHRpcCB7CiAgICAtLWFycm93LXNpemU6IHZhcigtLXNsLXRvb2x0aXAtYXJyb3ctc2l6ZSk7CiAgICAtLWFycm93LWNvbG9yOiB2YXIoLS1zbC10b29sdGlwLWJhY2tncm91bmQtY29sb3IpOwogIH0KCiAgLnRvb2x0aXA6OnBhcnQocG9wdXApIHsKICAgIHotaW5kZXg6IHZhcigtLXNsLXotaW5kZXgtdG9vbHRpcCk7CiAgfQoKICAudG9vbHRpcFtwbGFjZW1lbnRePSd0b3AnXTo6cGFydChwb3B1cCkgewogICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tOwogIH0KCiAgLnRvb2x0aXBbcGxhY2VtZW50Xj0nYm90dG9tJ106OnBhcnQocG9wdXApIHsKICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsKICB9CgogIC50b29sdGlwW3BsYWNlbWVudF49J2xlZnQnXTo6cGFydChwb3B1cCkgewogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7CiAgfQoKICAudG9vbHRpcFtwbGFjZW1lbnRePSdyaWdodCddOjpwYXJ0KHBvcHVwKSB7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0OwogIH0KCiAgLnRvb2x0aXBfX2JvZHkgewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC10b29sdGlwLWJvcmRlci1yYWRpdXMpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1zbC10b29sdGlwLWZvbnQtZmFtaWx5KTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtdG9vbHRpcC1mb250LXNpemUpOwogICAgZm9udC13ZWlnaHQ6IHZhcigtLXNsLXRvb2x0aXAtZm9udC13ZWlnaHQpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLXNsLXRvb2x0aXAtbGluZS1oZWlnaHQpOwogICAgdGV4dC1hbGlnbjogc3RhcnQ7CiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgY29sb3I6IHZhcigtLXNsLXRvb2x0aXAtY29sb3IpOwogICAgcGFkZGluZzogdmFyKC0tc2wtdG9vbHRpcC1wYWRkaW5nKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogIH0KYCxGcz1oYAogIDpob3N0IHsKICAgIC0tYXJyb3ctY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMTAwMCk7CiAgICAtLWFycm93LXNpemU6IDZweDsKCiAgICAvKgogICAgICogVGhlc2UgcHJvcGVydGllcyBhcmUgY29tcHV0ZWQgdG8gYWNjb3VudCBmb3IgdGhlIGFycm93J3MgZGltZW5zaW9ucyBhZnRlciBiZWluZyByb3RhdGVkIDQ1wrouIFRoZSBjb25zdGFudAogICAgICogMC43MDcxIGlzIGRlcml2ZWQgZnJvbSBzaW4oNDUpLCB3aGljaCBpcyB0aGUgZGlhZ29uYWwgc2l6ZSBvZiB0aGUgYXJyb3cncyBjb250YWluZXIgYWZ0ZXIgcm90YXRpbmcuCiAgICAgKi8KICAgIC0tYXJyb3ctc2l6ZS1kaWFnb25hbDogY2FsYyh2YXIoLS1hcnJvdy1zaXplKSAqIDAuNzA3MSk7CiAgICAtLWFycm93LXBhZGRpbmctb2Zmc2V0OiBjYWxjKHZhcigtLWFycm93LXNpemUtZGlhZ29uYWwpIC0gdmFyKC0tYXJyb3ctc2l6ZSkpOwoKICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogIH0KCiAgLnBvcHVwIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgIG1heC13aWR0aDogdmFyKC0tYXV0by1zaXplLWF2YWlsYWJsZS13aWR0aCwgbm9uZSk7CiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1hdXRvLXNpemUtYXZhaWxhYmxlLWhlaWdodCwgbm9uZSk7CiAgfQoKICAucG9wdXAtLWZpeGVkIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICB9CgogIC5wb3B1cDpub3QoLnBvcHVwLS1hY3RpdmUpIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAucG9wdXBfX2Fycm93IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiBjYWxjKHZhcigtLWFycm93LXNpemUtZGlhZ29uYWwpICogMik7CiAgICBoZWlnaHQ6IGNhbGModmFyKC0tYXJyb3ctc2l6ZS1kaWFnb25hbCkgKiAyKTsKICAgIHJvdGF0ZTogNDVkZWc7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hcnJvdy1jb2xvcik7CiAgICB6LWluZGV4OiAtMTsKICB9CgogIC8qIEhvdmVyIGJyaWRnZSAqLwogIC5wb3B1cC1ob3Zlci1icmlkZ2U6bm90KC5wb3B1cC1ob3Zlci1icmlkZ2UtLXZpc2libGUpIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAucG9wdXAtaG92ZXItYnJpZGdlIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IGNhbGModmFyKC0tc2wtei1pbmRleC1kcm9wZG93bikgLSAxKTsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogMDsKICAgIGNsaXAtcGF0aDogcG9seWdvbigKICAgICAgdmFyKC0taG92ZXItYnJpZGdlLXRvcC1sZWZ0LXgsIDApIHZhcigtLWhvdmVyLWJyaWRnZS10b3AtbGVmdC15LCAwKSwKICAgICAgdmFyKC0taG92ZXItYnJpZGdlLXRvcC1yaWdodC14LCAwKSB2YXIoLS1ob3Zlci1icmlkZ2UtdG9wLXJpZ2h0LXksIDApLAogICAgICB2YXIoLS1ob3Zlci1icmlkZ2UtYm90dG9tLXJpZ2h0LXgsIDApIHZhcigtLWhvdmVyLWJyaWRnZS1ib3R0b20tcmlnaHQteSwgMCksCiAgICAgIHZhcigtLWhvdmVyLWJyaWRnZS1ib3R0b20tbGVmdC14LCAwKSB2YXIoLS1ob3Zlci1icmlkZ2UtYm90dG9tLWxlZnQteSwgMCkKICAgICk7CiAgfQpgO2NvbnN0IE1zPU1hdGgubWluLFJzPU1hdGgubWF4LE9zPU1hdGgucm91bmQsVXM9TWF0aC5mbG9vcixCcz1lPT4oe3g6ZSx5OmV9KSxOcz17bGVmdDoicmlnaHQiLHJpZ2h0OiJsZWZ0Iixib3R0b206InRvcCIsdG9wOiJib3R0b20ifSxxcz17c3RhcnQ6ImVuZCIsZW5kOiJzdGFydCJ9O2Z1bmN0aW9uIGpzKGUsdCxpKXtyZXR1cm4gUnMoZSxNcyh0LGkpKX1mdW5jdGlvbiBIcyhlLHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCk6ZX1mdW5jdGlvbiBXcyhlKXtyZXR1cm4gZS5zcGxpdCgiLSIpWzBdfWZ1bmN0aW9uIFZzKGUpe3JldHVybiBlLnNwbGl0KCItIilbMV19ZnVuY3Rpb24gR3MoZSl7cmV0dXJuIngiPT09ZT8ieSI6IngifWZ1bmN0aW9uIEtzKGUpe3JldHVybiJ5Ij09PWU/ImhlaWdodCI6IndpZHRoIn1mdW5jdGlvbiBZcyhlKXtyZXR1cm5bInRvcCIsImJvdHRvbSJdLmluY2x1ZGVzKFdzKGUpKT8ieSI6IngifWZ1bmN0aW9uIFFzKGUpe3JldHVybiBHcyhZcyhlKSl9ZnVuY3Rpb24gWnMoZSl7cmV0dXJuIGUucmVwbGFjZSgvc3RhcnR8ZW5kL2csKGU9PnFzW2VdKSl9ZnVuY3Rpb24gSnMoZSl7cmV0dXJuIGUucmVwbGFjZSgvbGVmdHxyaWdodHxib3R0b218dG9wL2csKGU9Pk5zW2VdKSl9ZnVuY3Rpb24gWHMoZSl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBlP2Z1bmN0aW9uKGUpe3JldHVybnt0b3A6MCxyaWdodDowLGJvdHRvbTowLGxlZnQ6MCwuLi5lfX0oZSk6e3RvcDplLHJpZ2h0OmUsYm90dG9tOmUsbGVmdDplfX1mdW5jdGlvbiBlYShlKXtjb25zdHt4OnQseTppLHdpZHRoOm8saGVpZ2h0Om59PWU7cmV0dXJue3dpZHRoOm8saGVpZ2h0Om4sdG9wOmksbGVmdDp0LHJpZ2h0OnQrbyxib3R0b206aStuLHg6dCx5Oml9fWZ1bmN0aW9uIHRhKGUsdCxpKXtsZXR7cmVmZXJlbmNlOm8sZmxvYXRpbmc6bn09ZTtjb25zdCByPVlzKHQpLHM9UXModCksYT1LcyhzKSxsPVdzKHQpLGM9InkiPT09cixkPW8ueCtvLndpZHRoLzItbi53aWR0aC8yLGg9by55K28uaGVpZ2h0LzItbi5oZWlnaHQvMix1PW9bYV0vMi1uW2FdLzI7bGV0IGY7c3dpdGNoKGwpe2Nhc2UidG9wIjpmPXt4OmQseTpvLnktbi5oZWlnaHR9O2JyZWFrO2Nhc2UiYm90dG9tIjpmPXt4OmQseTpvLnkrby5oZWlnaHR9O2JyZWFrO2Nhc2UicmlnaHQiOmY9e3g6by54K28ud2lkdGgseTpofTticmVhaztjYXNlImxlZnQiOmY9e3g6by54LW4ud2lkdGgseTpofTticmVhaztkZWZhdWx0OmY9e3g6by54LHk6by55fX1zd2l0Y2goVnModCkpe2Nhc2Uic3RhcnQiOmZbc10tPXUqKGkmJmM/LTE6MSk7YnJlYWs7Y2FzZSJlbmQiOmZbc10rPXUqKGkmJmM/LTE6MSl9cmV0dXJuIGZ9YXN5bmMgZnVuY3Rpb24gaWEoZSx0KXt2YXIgaTt2b2lkIDA9PT10JiYodD17fSk7Y29uc3R7eDpvLHk6bixwbGF0Zm9ybTpyLHJlY3RzOnMsZWxlbWVudHM6YSxzdHJhdGVneTpsfT1lLHtib3VuZGFyeTpjPSJjbGlwcGluZ0FuY2VzdG9ycyIscm9vdEJvdW5kYXJ5OmQ9InZpZXdwb3J0IixlbGVtZW50Q29udGV4dDpoPSJmbG9hdGluZyIsYWx0Qm91bmRhcnk6dT0hMSxwYWRkaW5nOmY9MH09SHModCxlKSxwPVhzKGYpLG09YVt1PyJmbG9hdGluZyI9PT1oPyJyZWZlcmVuY2UiOiJmbG9hdGluZyI6aF0sYj1lYShhd2FpdCByLmdldENsaXBwaW5nUmVjdCh7ZWxlbWVudDpudWxsPT0oaT1hd2FpdChudWxsPT1yLmlzRWxlbWVudD92b2lkIDA6ci5pc0VsZW1lbnQobSkpKXx8aT9tOm0uY29udGV4dEVsZW1lbnR8fGF3YWl0KG51bGw9PXIuZ2V0RG9jdW1lbnRFbGVtZW50P3ZvaWQgMDpyLmdldERvY3VtZW50RWxlbWVudChhLmZsb2F0aW5nKSksYm91bmRhcnk6Yyxyb290Qm91bmRhcnk6ZCxzdHJhdGVneTpsfSkpLGc9ImZsb2F0aW5nIj09PWg/e3g6byx5Om4sd2lkdGg6cy5mbG9hdGluZy53aWR0aCxoZWlnaHQ6cy5mbG9hdGluZy5oZWlnaHR9OnMucmVmZXJlbmNlLHY9YXdhaXQobnVsbD09ci5nZXRPZmZzZXRQYXJlbnQ/dm9pZCAwOnIuZ2V0T2Zmc2V0UGFyZW50KGEuZmxvYXRpbmcpKSx3PWF3YWl0KG51bGw9PXIuaXNFbGVtZW50P3ZvaWQgMDpyLmlzRWxlbWVudCh2KSkmJmF3YWl0KG51bGw9PXIuZ2V0U2NhbGU/dm9pZCAwOnIuZ2V0U2NhbGUodikpfHx7eDoxLHk6MX0seT1lYShyLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0P2F3YWl0IHIuY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3Qoe2VsZW1lbnRzOmEscmVjdDpnLG9mZnNldFBhcmVudDp2LHN0cmF0ZWd5Omx9KTpnKTtyZXR1cm57dG9wOihiLnRvcC15LnRvcCtwLnRvcCkvdy55LGJvdHRvbTooeS5ib3R0b20tYi5ib3R0b20rcC5ib3R0b20pL3cueSxsZWZ0OihiLmxlZnQteS5sZWZ0K3AubGVmdCkvdy54LHJpZ2h0Oih5LnJpZ2h0LWIucmlnaHQrcC5yaWdodCkvdy54fX1mdW5jdGlvbiBvYShlKXtyZXR1cm4gc2EoZSk/KGUubm9kZU5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpOiIjZG9jdW1lbnQifWZ1bmN0aW9uIG5hKGUpe3ZhciB0O3JldHVybihudWxsPT1lfHxudWxsPT0odD1lLm93bmVyRG9jdW1lbnQpP3ZvaWQgMDp0LmRlZmF1bHRWaWV3KXx8d2luZG93fWZ1bmN0aW9uIHJhKGUpe3ZhciB0O3JldHVybiBudWxsPT0odD0oc2EoZSk/ZS5vd25lckRvY3VtZW50OmUuZG9jdW1lbnQpfHx3aW5kb3cuZG9jdW1lbnQpP3ZvaWQgMDp0LmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBzYShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIE5vZGV8fGUgaW5zdGFuY2VvZiBuYShlKS5Ob2RlfWZ1bmN0aW9uIGFhKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRWxlbWVudHx8ZSBpbnN0YW5jZW9mIG5hKGUpLkVsZW1lbnR9ZnVuY3Rpb24gbGEoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8ZSBpbnN0YW5jZW9mIG5hKGUpLkhUTUxFbGVtZW50fWZ1bmN0aW9uIGNhKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgU2hhZG93Um9vdCYmKGUgaW5zdGFuY2VvZiBTaGFkb3dSb290fHxlIGluc3RhbmNlb2YgbmEoZSkuU2hhZG93Um9vdCl9ZnVuY3Rpb24gZGEoZSl7Y29uc3R7b3ZlcmZsb3c6dCxvdmVyZmxvd1g6aSxvdmVyZmxvd1k6byxkaXNwbGF5Om59PW1hKGUpO3JldHVybi9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbnxjbGlwLy50ZXN0KHQrbytpKSYmIVsiaW5saW5lIiwiY29udGVudHMiXS5pbmNsdWRlcyhuKX1mdW5jdGlvbiBoYShlKXtyZXR1cm5bInRhYmxlIiwidGQiLCJ0aCJdLmluY2x1ZGVzKG9hKGUpKX1mdW5jdGlvbiB1YShlKXtjb25zdCB0PWZhKCksaT1tYShlKTtyZXR1cm4ibm9uZSIhPT1pLnRyYW5zZm9ybXx8Im5vbmUiIT09aS5wZXJzcGVjdGl2ZXx8ISFpLmNvbnRhaW5lclR5cGUmJiJub3JtYWwiIT09aS5jb250YWluZXJUeXBlfHwhdCYmISFpLmJhY2tkcm9wRmlsdGVyJiYibm9uZSIhPT1pLmJhY2tkcm9wRmlsdGVyfHwhdCYmISFpLmZpbHRlciYmIm5vbmUiIT09aS5maWx0ZXJ8fFsidHJhbnNmb3JtIiwicGVyc3BlY3RpdmUiLCJmaWx0ZXIiXS5zb21lKChlPT4oaS53aWxsQ2hhbmdlfHwiIikuaW5jbHVkZXMoZSkpKXx8WyJwYWludCIsImxheW91dCIsInN0cmljdCIsImNvbnRlbnQiXS5zb21lKChlPT4oaS5jb250YWlufHwiIikuaW5jbHVkZXMoZSkpKX1mdW5jdGlvbiBmYSgpe3JldHVybiEoInVuZGVmaW5lZCI9PXR5cGVvZiBDU1N8fCFDU1Muc3VwcG9ydHMpJiZDU1Muc3VwcG9ydHMoIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIiwibm9uZSIpfWZ1bmN0aW9uIHBhKGUpe3JldHVyblsiaHRtbCIsImJvZHkiLCIjZG9jdW1lbnQiXS5pbmNsdWRlcyhvYShlKSl9ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIG5hKGUpLmdldENvbXB1dGVkU3R5bGUoZSl9ZnVuY3Rpb24gYmEoZSl7cmV0dXJuIGFhKGUpP3tzY3JvbGxMZWZ0OmUuc2Nyb2xsTGVmdCxzY3JvbGxUb3A6ZS5zY3JvbGxUb3B9OntzY3JvbGxMZWZ0OmUucGFnZVhPZmZzZXQsc2Nyb2xsVG9wOmUucGFnZVlPZmZzZXR9fWZ1bmN0aW9uIGdhKGUpe2lmKCJodG1sIj09PW9hKGUpKXJldHVybiBlO2NvbnN0IHQ9ZS5hc3NpZ25lZFNsb3R8fGUucGFyZW50Tm9kZXx8Y2EoZSkmJmUuaG9zdHx8cmEoZSk7cmV0dXJuIGNhKHQpP3QuaG9zdDp0fWZ1bmN0aW9uIHZhKGUpe2NvbnN0IHQ9Z2EoZSk7cmV0dXJuIHBhKHQpP2Uub3duZXJEb2N1bWVudD9lLm93bmVyRG9jdW1lbnQuYm9keTplLmJvZHk6bGEodCkmJmRhKHQpP3Q6dmEodCl9ZnVuY3Rpb24gd2EoZSx0LGkpe3ZhciBvO3ZvaWQgMD09PXQmJih0PVtdKSx2b2lkIDA9PT1pJiYoaT0hMCk7Y29uc3Qgbj12YShlKSxyPW49PT0obnVsbD09KG89ZS5vd25lckRvY3VtZW50KT92b2lkIDA6by5ib2R5KSxzPW5hKG4pO3JldHVybiByP3QuY29uY2F0KHMscy52aXN1YWxWaWV3cG9ydHx8W10sZGEobik/bjpbXSxzLmZyYW1lRWxlbWVudCYmaT93YShzLmZyYW1lRWxlbWVudCk6W10pOnQuY29uY2F0KG4sd2EobixbXSxpKSl9ZnVuY3Rpb24geWEoZSl7Y29uc3QgdD1tYShlKTtsZXQgaT1wYXJzZUZsb2F0KHQud2lkdGgpfHwwLG89cGFyc2VGbG9hdCh0LmhlaWdodCl8fDA7Y29uc3Qgbj1sYShlKSxyPW4/ZS5vZmZzZXRXaWR0aDppLHM9bj9lLm9mZnNldEhlaWdodDpvLGE9T3MoaSkhPT1yfHxPcyhvKSE9PXM7cmV0dXJuIGEmJihpPXIsbz1zKSx7d2lkdGg6aSxoZWlnaHQ6bywkOmF9fWZ1bmN0aW9uIHhhKGUpe3JldHVybiBhYShlKT9lOmUuY29udGV4dEVsZW1lbnR9ZnVuY3Rpb24ga2EoZSl7Y29uc3QgdD14YShlKTtpZighbGEodCkpcmV0dXJuIEJzKDEpO2NvbnN0IGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7d2lkdGg6byxoZWlnaHQ6biwkOnJ9PXlhKHQpO2xldCBzPShyP09zKGkud2lkdGgpOmkud2lkdGgpL28sYT0ocj9PcyhpLmhlaWdodCk6aS5oZWlnaHQpL247cmV0dXJuIHMmJk51bWJlci5pc0Zpbml0ZShzKXx8KHM9MSksYSYmTnVtYmVyLmlzRmluaXRlKGEpfHwoYT0xKSx7eDpzLHk6YX19Y29uc3QgU2E9QnMoMCk7ZnVuY3Rpb24gJGEoZSl7Y29uc3QgdD1uYShlKTtyZXR1cm4gZmEoKSYmdC52aXN1YWxWaWV3cG9ydD97eDp0LnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQseTp0LnZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcH06U2F9ZnVuY3Rpb24gemEoZSx0LGksbyl7dm9pZCAwPT09dCYmKHQ9ITEpLHZvaWQgMD09PWkmJihpPSExKTtjb25zdCBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj14YShlKTtsZXQgcz1CcygxKTt0JiYobz9hYShvKSYmKHM9a2EobykpOnM9a2EoZSkpO2NvbnN0IGE9ZnVuY3Rpb24oZSx0LGkpe3JldHVybiB2b2lkIDA9PT10JiYodD0hMSksISghaXx8dCYmaSE9PW5hKGUpKSYmdH0ocixpLG8pPyRhKHIpOkJzKDApO2xldCBsPShuLmxlZnQrYS54KS9zLngsYz0obi50b3ArYS55KS9zLnksZD1uLndpZHRoL3MueCxoPW4uaGVpZ2h0L3MueTtpZihyKXtjb25zdCBlPW5hKHIpLHQ9byYmYWEobyk/bmEobyk6bztsZXQgaT1lLG49aS5mcmFtZUVsZW1lbnQ7Zm9yKDtuJiZvJiZ0IT09aTspe2NvbnN0IGU9a2EobiksdD1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89bWEobikscj10LmxlZnQrKG4uY2xpZW50TGVmdCtwYXJzZUZsb2F0KG8ucGFkZGluZ0xlZnQpKSplLngscz10LnRvcCsobi5jbGllbnRUb3ArcGFyc2VGbG9hdChvLnBhZGRpbmdUb3ApKSplLnk7bCo9ZS54LGMqPWUueSxkKj1lLngsaCo9ZS55LGwrPXIsYys9cyxpPW5hKG4pLG49aS5mcmFtZUVsZW1lbnR9fXJldHVybiBlYSh7d2lkdGg6ZCxoZWlnaHQ6aCx4OmwseTpjfSl9Y29uc3QgX2E9WyI6cG9wb3Zlci1vcGVuIiwiOm1vZGFsIl07ZnVuY3Rpb24gQ2EoZSl7cmV0dXJuIF9hLnNvbWUoKHQ9Pnt0cnl7cmV0dXJuIGUubWF0Y2hlcyh0KX1jYXRjaChlKXtyZXR1cm4hMX19KSl9ZnVuY3Rpb24gSWEoZSl7cmV0dXJuIHphKHJhKGUpKS5sZWZ0K2JhKGUpLnNjcm9sbExlZnR9ZnVuY3Rpb24gTGEoZSx0LGkpe2xldCBvO2lmKCJ2aWV3cG9ydCI9PT10KW89ZnVuY3Rpb24oZSx0KXtjb25zdCBpPW5hKGUpLG89cmEoZSksbj1pLnZpc3VhbFZpZXdwb3J0O2xldCByPW8uY2xpZW50V2lkdGgscz1vLmNsaWVudEhlaWdodCxhPTAsbD0wO2lmKG4pe3I9bi53aWR0aCxzPW4uaGVpZ2h0O2NvbnN0IGU9ZmEoKTsoIWV8fGUmJiJmaXhlZCI9PT10KSYmKGE9bi5vZmZzZXRMZWZ0LGw9bi5vZmZzZXRUb3ApfXJldHVybnt3aWR0aDpyLGhlaWdodDpzLHg6YSx5Omx9fShlLGkpO2Vsc2UgaWYoImRvY3VtZW50Ij09PXQpbz1mdW5jdGlvbihlKXtjb25zdCB0PXJhKGUpLGk9YmEoZSksbz1lLm93bmVyRG9jdW1lbnQuYm9keSxuPVJzKHQuc2Nyb2xsV2lkdGgsdC5jbGllbnRXaWR0aCxvLnNjcm9sbFdpZHRoLG8uY2xpZW50V2lkdGgpLHI9UnModC5zY3JvbGxIZWlnaHQsdC5jbGllbnRIZWlnaHQsby5zY3JvbGxIZWlnaHQsby5jbGllbnRIZWlnaHQpO2xldCBzPS1pLnNjcm9sbExlZnQrSWEoZSk7Y29uc3QgYT0taS5zY3JvbGxUb3A7cmV0dXJuInJ0bCI9PT1tYShvKS5kaXJlY3Rpb24mJihzKz1Scyh0LmNsaWVudFdpZHRoLG8uY2xpZW50V2lkdGgpLW4pLHt3aWR0aDpuLGhlaWdodDpyLHg6cyx5OmF9fShyYShlKSk7ZWxzZSBpZihhYSh0KSlvPWZ1bmN0aW9uKGUsdCl7Y29uc3QgaT16YShlLCEwLCJmaXhlZCI9PT10KSxvPWkudG9wK2UuY2xpZW50VG9wLG49aS5sZWZ0K2UuY2xpZW50TGVmdCxyPWxhKGUpP2thKGUpOkJzKDEpO3JldHVybnt3aWR0aDplLmNsaWVudFdpZHRoKnIueCxoZWlnaHQ6ZS5jbGllbnRIZWlnaHQqci55LHg6bipyLngseTpvKnIueX19KHQsaSk7ZWxzZXtjb25zdCBpPSRhKGUpO289ey4uLnQseDp0LngtaS54LHk6dC55LWkueX19cmV0dXJuIGVhKG8pfWZ1bmN0aW9uIEVhKGUsdCl7Y29uc3QgaT1nYShlKTtyZXR1cm4hKGk9PT10fHwhYWEoaSl8fHBhKGkpKSYmKCJmaXhlZCI9PT1tYShpKS5wb3NpdGlvbnx8RWEoaSx0KSl9ZnVuY3Rpb24gQWEoZSx0LGkpe2NvbnN0IG89bGEodCksbj1yYSh0KSxyPSJmaXhlZCI9PT1pLHM9emEoZSwhMCxyLHQpO2xldCBhPXtzY3JvbGxMZWZ0OjAsc2Nyb2xsVG9wOjB9O2NvbnN0IGw9QnMoMCk7aWYob3x8IW8mJiFyKWlmKCgiYm9keSIhPT1vYSh0KXx8ZGEobikpJiYoYT1iYSh0KSksbyl7Y29uc3QgZT16YSh0LCEwLHIsdCk7bC54PWUueCt0LmNsaWVudExlZnQsbC55PWUueSt0LmNsaWVudFRvcH1lbHNlIG4mJihsLng9SWEobikpO3JldHVybnt4OnMubGVmdCthLnNjcm9sbExlZnQtbC54LHk6cy50b3ArYS5zY3JvbGxUb3AtbC55LHdpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fX1mdW5jdGlvbiBUYShlKXtyZXR1cm4ic3RhdGljIj09PW1hKGUpLnBvc2l0aW9ufWZ1bmN0aW9uIFBhKGUsdCl7cmV0dXJuIGxhKGUpJiYiZml4ZWQiIT09bWEoZSkucG9zaXRpb24/dD90KGUpOmUub2Zmc2V0UGFyZW50Om51bGx9ZnVuY3Rpb24gRGEoZSx0KXtjb25zdCBpPW5hKGUpO2lmKENhKGUpKXJldHVybiBpO2lmKCFsYShlKSl7bGV0IHQ9Z2EoZSk7Zm9yKDt0JiYhcGEodCk7KXtpZihhYSh0KSYmIVRhKHQpKXJldHVybiB0O3Q9Z2EodCl9cmV0dXJuIGl9bGV0IG89UGEoZSx0KTtmb3IoO28mJmhhKG8pJiZUYShvKTspbz1QYShvLHQpO3JldHVybiBvJiZwYShvKSYmVGEobykmJiF1YShvKT9pOm98fGZ1bmN0aW9uKGUpe2xldCB0PWdhKGUpO2Zvcig7bGEodCkmJiFwYSh0KTspe2lmKHVhKHQpKXJldHVybiB0O3Q9Z2EodCl9cmV0dXJuIG51bGx9KGUpfHxpfWNvbnN0IEZhPXtjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdDpmdW5jdGlvbihlKXtsZXR7ZWxlbWVudHM6dCxyZWN0Omksb2Zmc2V0UGFyZW50Om8sc3RyYXRlZ3k6bn09ZTtjb25zdCByPSJmaXhlZCI9PT1uLHM9cmEobyksYT0hIXQmJkNhKHQuZmxvYXRpbmcpO2lmKG89PT1zfHxhJiZyKXJldHVybiBpO2xldCBsPXtzY3JvbGxMZWZ0OjAsc2Nyb2xsVG9wOjB9LGM9QnMoMSk7Y29uc3QgZD1CcygwKSxoPWxhKG8pO2lmKChofHwhaCYmIXIpJiYoKCJib2R5IiE9PW9hKG8pfHxkYShzKSkmJihsPWJhKG8pKSxsYShvKSkpe2NvbnN0IGU9emEobyk7Yz1rYShvKSxkLng9ZS54K28uY2xpZW50TGVmdCxkLnk9ZS55K28uY2xpZW50VG9wfXJldHVybnt3aWR0aDppLndpZHRoKmMueCxoZWlnaHQ6aS5oZWlnaHQqYy55LHg6aS54KmMueC1sLnNjcm9sbExlZnQqYy54K2QueCx5OmkueSpjLnktbC5zY3JvbGxUb3AqYy55K2QueX19LGdldERvY3VtZW50RWxlbWVudDpyYSxnZXRDbGlwcGluZ1JlY3Q6ZnVuY3Rpb24oZSl7bGV0e2VsZW1lbnQ6dCxib3VuZGFyeTppLHJvb3RCb3VuZGFyeTpvLHN0cmF0ZWd5Om59PWU7Y29uc3Qgcj1bLi4uImNsaXBwaW5nQW5jZXN0b3JzIj09PWk/Q2EodCk/W106ZnVuY3Rpb24oZSx0KXtjb25zdCBpPXQuZ2V0KGUpO2lmKGkpcmV0dXJuIGk7bGV0IG89d2EoZSxbXSwhMSkuZmlsdGVyKChlPT5hYShlKSYmImJvZHkiIT09b2EoZSkpKSxuPW51bGw7Y29uc3Qgcj0iZml4ZWQiPT09bWEoZSkucG9zaXRpb247bGV0IHM9cj9nYShlKTplO2Zvcig7YWEocykmJiFwYShzKTspe2NvbnN0IHQ9bWEocyksaT11YShzKTtpfHwiZml4ZWQiIT09dC5wb3NpdGlvbnx8KG49bnVsbCksKHI/IWkmJiFuOiFpJiYic3RhdGljIj09PXQucG9zaXRpb24mJm4mJlsiYWJzb2x1dGUiLCJmaXhlZCJdLmluY2x1ZGVzKG4ucG9zaXRpb24pfHxkYShzKSYmIWkmJkVhKGUscykpP289by5maWx0ZXIoKGU9PmUhPT1zKSk6bj10LHM9Z2Eocyl9cmV0dXJuIHQuc2V0KGUsbyksb30odCx0aGlzLl9jKTpbXS5jb25jYXQoaSksb10scz1yWzBdLGE9ci5yZWR1Y2UoKChlLGkpPT57Y29uc3Qgbz1MYSh0LGksbik7cmV0dXJuIGUudG9wPVJzKG8udG9wLGUudG9wKSxlLnJpZ2h0PU1zKG8ucmlnaHQsZS5yaWdodCksZS5ib3R0b209TXMoby5ib3R0b20sZS5ib3R0b20pLGUubGVmdD1ScyhvLmxlZnQsZS5sZWZ0KSxlfSksTGEodCxzLG4pKTtyZXR1cm57d2lkdGg6YS5yaWdodC1hLmxlZnQsaGVpZ2h0OmEuYm90dG9tLWEudG9wLHg6YS5sZWZ0LHk6YS50b3B9fSxnZXRPZmZzZXRQYXJlbnQ6RGEsZ2V0RWxlbWVudFJlY3RzOmFzeW5jIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5nZXRPZmZzZXRQYXJlbnR8fERhLGk9dGhpcy5nZXREaW1lbnNpb25zLG89YXdhaXQgaShlLmZsb2F0aW5nKTtyZXR1cm57cmVmZXJlbmNlOkFhKGUucmVmZXJlbmNlLGF3YWl0IHQoZS5mbG9hdGluZyksZS5zdHJhdGVneSksZmxvYXRpbmc6e3g6MCx5OjAsd2lkdGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHR9fX0sZ2V0Q2xpZW50UmVjdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LmZyb20oZS5nZXRDbGllbnRSZWN0cygpKX0sZ2V0RGltZW5zaW9uczpmdW5jdGlvbihlKXtjb25zdHt3aWR0aDp0LGhlaWdodDppfT15YShlKTtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6aX19LGdldFNjYWxlOmthLGlzRWxlbWVudDphYSxpc1JUTDpmdW5jdGlvbihlKXtyZXR1cm4icnRsIj09PW1hKGUpLmRpcmVjdGlvbn19O2Z1bmN0aW9uIE1hKGUsdCxpLG8pe3ZvaWQgMD09PW8mJihvPXt9KTtjb25zdHthbmNlc3RvclNjcm9sbDpuPSEwLGFuY2VzdG9yUmVzaXplOnI9ITAsZWxlbWVudFJlc2l6ZTpzPSJmdW5jdGlvbiI9PXR5cGVvZiBSZXNpemVPYnNlcnZlcixsYXlvdXRTaGlmdDphPSJmdW5jdGlvbiI9PXR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcixhbmltYXRpb25GcmFtZTpsPSExfT1vLGM9eGEoZSksZD1ufHxyP1suLi5jP3dhKGMpOltdLC4uLndhKHQpXTpbXTtkLmZvckVhY2goKGU9PntuJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaSx7cGFzc2l2ZTohMH0pLHImJmUuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixpKX0pKTtjb25zdCBoPWMmJmE/ZnVuY3Rpb24oZSx0KXtsZXQgaSxvPW51bGw7Y29uc3Qgbj1yYShlKTtmdW5jdGlvbiByKCl7dmFyIGU7Y2xlYXJUaW1lb3V0KGkpLG51bGw9PShlPW8pfHxlLmRpc2Nvbm5lY3QoKSxvPW51bGx9cmV0dXJuIGZ1bmN0aW9uIHMoYSxsKXt2b2lkIDA9PT1hJiYoYT0hMSksdm9pZCAwPT09bCYmKGw9MSkscigpO2NvbnN0e2xlZnQ6Yyx0b3A6ZCx3aWR0aDpoLGhlaWdodDp1fT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGF8fHQoKSwhaHx8IXUpcmV0dXJuO2NvbnN0IGY9e3Jvb3RNYXJnaW46LVVzKGQpKyJweCAiKy1VcyhuLmNsaWVudFdpZHRoLShjK2gpKSsicHggIistVXMobi5jbGllbnRIZWlnaHQtKGQrdSkpKyJweCAiKy1VcyhjKSsicHgiLHRocmVzaG9sZDpScygwLE1zKDEsbCkpfHwxfTtsZXQgcD0hMDtmdW5jdGlvbiBtKGUpe2NvbnN0IHQ9ZVswXS5pbnRlcnNlY3Rpb25SYXRpbztpZih0IT09bCl7aWYoIXApcmV0dXJuIHMoKTt0P3MoITEsdCk6aT1zZXRUaW1lb3V0KCgoKT0+e3MoITEsMWUtNyl9KSwxZTMpfXA9ITF9dHJ5e289bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKG0sey4uLmYscm9vdDpuLm93bmVyRG9jdW1lbnR9KX1jYXRjaChlKXtvPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihtLGYpfW8ub2JzZXJ2ZShlKX0oITApLHJ9KGMsaSk6bnVsbDtsZXQgdSxmPS0xLHA9bnVsbDtzJiYocD1uZXcgUmVzaXplT2JzZXJ2ZXIoKGU9PntsZXRbb109ZTtvJiZvLnRhcmdldD09PWMmJnAmJihwLnVub2JzZXJ2ZSh0KSxjYW5jZWxBbmltYXRpb25GcmFtZShmKSxmPXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt2YXIgZTtudWxsPT0oZT1wKXx8ZS5vYnNlcnZlKHQpfSkpKSxpKCl9KSksYyYmIWwmJnAub2JzZXJ2ZShjKSxwLm9ic2VydmUodCkpO2xldCBtPWw/emEoZSk6bnVsbDtyZXR1cm4gbCYmZnVuY3Rpb24gdCgpe2NvbnN0IG89emEoZSk7IW18fG8ueD09PW0ueCYmby55PT09bS55JiZvLndpZHRoPT09bS53aWR0aCYmby5oZWlnaHQ9PT1tLmhlaWdodHx8aSgpO209byx1PXJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX0oKSxpKCksKCk9Pnt2YXIgZTtkLmZvckVhY2goKGU9PntuJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaSksciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGkpfSkpLG51bGw9PWh8fGgoKSxudWxsPT0oZT1wKXx8ZS5kaXNjb25uZWN0KCkscD1udWxsLGwmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHUpfX1jb25zdCBSYT1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9MCkse25hbWU6Im9mZnNldCIsb3B0aW9uczplLGFzeW5jIGZuKHQpe3ZhciBpLG87Y29uc3R7eDpuLHk6cixwbGFjZW1lbnQ6cyxtaWRkbGV3YXJlRGF0YTphfT10LGw9YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSx0KXtjb25zdHtwbGFjZW1lbnQ6aSxwbGF0Zm9ybTpvLGVsZW1lbnRzOm59PWUscj1hd2FpdChudWxsPT1vLmlzUlRMP3ZvaWQgMDpvLmlzUlRMKG4uZmxvYXRpbmcpKSxzPVdzKGkpLGE9VnMoaSksbD0ieSI9PT1ZcyhpKSxjPVsibGVmdCIsInRvcCJdLmluY2x1ZGVzKHMpPy0xOjEsZD1yJiZsPy0xOjEsaD1Icyh0LGUpO2xldHttYWluQXhpczp1LGNyb3NzQXhpczpmLGFsaWdubWVudEF4aXM6cH09Im51bWJlciI9PXR5cGVvZiBoP3ttYWluQXhpczpoLGNyb3NzQXhpczowLGFsaWdubWVudEF4aXM6bnVsbH06e21haW5BeGlzOjAsY3Jvc3NBeGlzOjAsYWxpZ25tZW50QXhpczpudWxsLC4uLmh9O3JldHVybiBhJiYibnVtYmVyIj09dHlwZW9mIHAmJihmPSJlbmQiPT09YT8tMSpwOnApLGw/e3g6ZipkLHk6dSpjfTp7eDp1KmMseTpmKmR9fSh0LGUpO3JldHVybiBzPT09KG51bGw9PShpPWEub2Zmc2V0KT92b2lkIDA6aS5wbGFjZW1lbnQpJiZudWxsIT0obz1hLmFycm93KSYmby5hbGlnbm1lbnRPZmZzZXQ/e306e3g6bitsLngseTpyK2wueSxkYXRhOnsuLi5sLHBsYWNlbWVudDpzfX19fX0sT2E9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSx7bmFtZToic2hpZnQiLG9wdGlvbnM6ZSxhc3luYyBmbih0KXtjb25zdHt4OmkseTpvLHBsYWNlbWVudDpufT10LHttYWluQXhpczpyPSEwLGNyb3NzQXhpczpzPSExLGxpbWl0ZXI6YT17Zm46ZT0+e2xldHt4OnQseTppfT1lO3JldHVybnt4OnQseTppfX19LC4uLmx9PUhzKGUsdCksYz17eDppLHk6b30sZD1hd2FpdCBpYSh0LGwpLGg9WXMoV3MobikpLHU9R3MoaCk7bGV0IGY9Y1t1XSxwPWNbaF07aWYocil7Y29uc3QgZT0ieSI9PT11PyJib3R0b20iOiJyaWdodCI7Zj1qcyhmK2RbInkiPT09dT8idG9wIjoibGVmdCJdLGYsZi1kW2VdKX1pZihzKXtjb25zdCBlPSJ5Ij09PWg/ImJvdHRvbSI6InJpZ2h0IjtwPWpzKHArZFsieSI9PT1oPyJ0b3AiOiJsZWZ0Il0scCxwLWRbZV0pfWNvbnN0IG09YS5mbih7Li4udCxbdV06ZixbaF06cH0pO3JldHVybnsuLi5tLGRhdGE6e3g6bS54LWkseTptLnktb319fX19LFVhPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSkse25hbWU6ImZsaXAiLG9wdGlvbnM6ZSxhc3luYyBmbih0KXt2YXIgaSxvO2NvbnN0e3BsYWNlbWVudDpuLG1pZGRsZXdhcmVEYXRhOnIscmVjdHM6cyxpbml0aWFsUGxhY2VtZW50OmEscGxhdGZvcm06bCxlbGVtZW50czpjfT10LHttYWluQXhpczpkPSEwLGNyb3NzQXhpczpoPSEwLGZhbGxiYWNrUGxhY2VtZW50czp1LGZhbGxiYWNrU3RyYXRlZ3k6Zj0iYmVzdEZpdCIsZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbjpwPSJub25lIixmbGlwQWxpZ25tZW50Om09ITAsLi4uYn09SHMoZSx0KTtpZihudWxsIT0oaT1yLmFycm93KSYmaS5hbGlnbm1lbnRPZmZzZXQpcmV0dXJue307Y29uc3QgZz1XcyhuKSx2PVdzKGEpPT09YSx3PWF3YWl0KG51bGw9PWwuaXNSVEw/dm9pZCAwOmwuaXNSVEwoYy5mbG9hdGluZykpLHk9dXx8KHZ8fCFtP1tKcyhhKV06ZnVuY3Rpb24oZSl7Y29uc3QgdD1KcyhlKTtyZXR1cm5bWnMoZSksdCxacyh0KV19KGEpKTt1fHwibm9uZSI9PT1wfHx5LnB1c2goLi4uZnVuY3Rpb24oZSx0LGksbyl7Y29uc3Qgbj1WcyhlKTtsZXQgcj1mdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz1bImxlZnQiLCJyaWdodCJdLG49WyJyaWdodCIsImxlZnQiXSxyPVsidG9wIiwiYm90dG9tIl0scz1bImJvdHRvbSIsInRvcCJdO3N3aXRjaChlKXtjYXNlInRvcCI6Y2FzZSJib3R0b20iOnJldHVybiBpP3Q/bjpvOnQ/bzpuO2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6cmV0dXJuIHQ/cjpzO2RlZmF1bHQ6cmV0dXJuW119fShXcyhlKSwic3RhcnQiPT09aSxvKTtyZXR1cm4gbiYmKHI9ci5tYXAoKGU9PmUrIi0iK24pKSx0JiYocj1yLmNvbmNhdChyLm1hcChacykpKSkscn0oYSxtLHAsdykpO2NvbnN0IHg9W2EsLi4ueV0saz1hd2FpdCBpYSh0LGIpLFM9W107bGV0ICQ9KG51bGw9PShvPXIuZmxpcCk/dm9pZCAwOm8ub3ZlcmZsb3dzKXx8W107aWYoZCYmUy5wdXNoKGtbZ10pLGgpe2NvbnN0IGU9ZnVuY3Rpb24oZSx0LGkpe3ZvaWQgMD09PWkmJihpPSExKTtjb25zdCBvPVZzKGUpLG49UXMoZSkscj1LcyhuKTtsZXQgcz0ieCI9PT1uP289PT0oaT8iZW5kIjoic3RhcnQiKT8icmlnaHQiOiJsZWZ0Ijoic3RhcnQiPT09bz8iYm90dG9tIjoidG9wIjtyZXR1cm4gdC5yZWZlcmVuY2Vbcl0+dC5mbG9hdGluZ1tyXSYmKHM9SnMocykpLFtzLEpzKHMpXX0obixzLHcpO1MucHVzaChrW2VbMF1dLGtbZVsxXV0pfWlmKCQ9Wy4uLiQse3BsYWNlbWVudDpuLG92ZXJmbG93czpTfV0sIVMuZXZlcnkoKGU9PmU8PTApKSl7dmFyIHosXztjb25zdCBlPSgobnVsbD09KHo9ci5mbGlwKT92b2lkIDA6ei5pbmRleCl8fDApKzEsdD14W2VdO2lmKHQpcmV0dXJue2RhdGE6e2luZGV4OmUsb3ZlcmZsb3dzOiR9LHJlc2V0OntwbGFjZW1lbnQ6dH19O2xldCBpPW51bGw9PShfPSQuZmlsdGVyKChlPT5lLm92ZXJmbG93c1swXTw9MCkpLnNvcnQoKChlLHQpPT5lLm92ZXJmbG93c1sxXS10Lm92ZXJmbG93c1sxXSkpWzBdKT92b2lkIDA6Xy5wbGFjZW1lbnQ7aWYoIWkpc3dpdGNoKGYpe2Nhc2UiYmVzdEZpdCI6e3ZhciBDO2NvbnN0IGU9bnVsbD09KEM9JC5tYXAoKGU9PltlLnBsYWNlbWVudCxlLm92ZXJmbG93cy5maWx0ZXIoKGU9PmU+MCkpLnJlZHVjZSgoKGUsdCk9PmUrdCksMCldKSkuc29ydCgoKGUsdCk9PmVbMV0tdFsxXSkpWzBdKT92b2lkIDA6Q1swXTtlJiYoaT1lKTticmVha31jYXNlImluaXRpYWxQbGFjZW1lbnQiOmk9YX1pZihuIT09aSlyZXR1cm57cmVzZXQ6e3BsYWNlbWVudDppfX19cmV0dXJue319fX0sQmE9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSx7bmFtZToic2l6ZSIsb3B0aW9uczplLGFzeW5jIGZuKHQpe2NvbnN0e3BsYWNlbWVudDppLHJlY3RzOm8scGxhdGZvcm06bixlbGVtZW50czpyfT10LHthcHBseTpzPSgoKT0+e30pLC4uLmF9PUhzKGUsdCksbD1hd2FpdCBpYSh0LGEpLGM9V3MoaSksZD1WcyhpKSxoPSJ5Ij09PVlzKGkpLHt3aWR0aDp1LGhlaWdodDpmfT1vLmZsb2F0aW5nO2xldCBwLG07InRvcCI9PT1jfHwiYm90dG9tIj09PWM/KHA9YyxtPWQ9PT0oYXdhaXQobnVsbD09bi5pc1JUTD92b2lkIDA6bi5pc1JUTChyLmZsb2F0aW5nKSk/InN0YXJ0IjoiZW5kIik/ImxlZnQiOiJyaWdodCIpOihtPWMscD0iZW5kIj09PWQ/InRvcCI6ImJvdHRvbSIpO2NvbnN0IGI9Zi1sLnRvcC1sLmJvdHRvbSxnPXUtbC5sZWZ0LWwucmlnaHQsdj1NcyhmLWxbcF0sYiksdz1Ncyh1LWxbbV0sZykseT0hdC5taWRkbGV3YXJlRGF0YS5zaGlmdDtsZXQgeD12LGs9dztpZihoP2s9ZHx8eT9Ncyh3LGcpOmc6eD1kfHx5P01zKHYsYik6Yix5JiYhZCl7Y29uc3QgZT1ScyhsLmxlZnQsMCksdD1ScyhsLnJpZ2h0LDApLGk9UnMobC50b3AsMCksbz1ScyhsLmJvdHRvbSwwKTtoP2s9dS0yKigwIT09ZXx8MCE9PXQ/ZSt0OlJzKGwubGVmdCxsLnJpZ2h0KSk6eD1mLTIqKDAhPT1pfHwwIT09bz9pK286UnMobC50b3AsbC5ib3R0b20pKX1hd2FpdCBzKHsuLi50LGF2YWlsYWJsZVdpZHRoOmssYXZhaWxhYmxlSGVpZ2h0Onh9KTtjb25zdCBTPWF3YWl0IG4uZ2V0RGltZW5zaW9ucyhyLmZsb2F0aW5nKTtyZXR1cm4gdSE9PVMud2lkdGh8fGYhPT1TLmhlaWdodD97cmVzZXQ6e3JlY3RzOiEwfX06e319fX0sTmE9ZT0+KHtuYW1lOiJhcnJvdyIsb3B0aW9uczplLGFzeW5jIGZuKHQpe2NvbnN0e3g6aSx5Om8scGxhY2VtZW50Om4scmVjdHM6cixwbGF0Zm9ybTpzLGVsZW1lbnRzOmEsbWlkZGxld2FyZURhdGE6bH09dCx7ZWxlbWVudDpjLHBhZGRpbmc6ZD0wfT1IcyhlLHQpfHx7fTtpZihudWxsPT1jKXJldHVybnt9O2NvbnN0IGg9WHMoZCksdT17eDppLHk6b30sZj1RcyhuKSxwPUtzKGYpLG09YXdhaXQgcy5nZXREaW1lbnNpb25zKGMpLGI9InkiPT09ZixnPWI/InRvcCI6ImxlZnQiLHY9Yj8iYm90dG9tIjoicmlnaHQiLHc9Yj8iY2xpZW50SGVpZ2h0IjoiY2xpZW50V2lkdGgiLHk9ci5yZWZlcmVuY2VbcF0rci5yZWZlcmVuY2VbZl0tdVtmXS1yLmZsb2F0aW5nW3BdLHg9dVtmXS1yLnJlZmVyZW5jZVtmXSxrPWF3YWl0KG51bGw9PXMuZ2V0T2Zmc2V0UGFyZW50P3ZvaWQgMDpzLmdldE9mZnNldFBhcmVudChjKSk7bGV0IFM9az9rW3ddOjA7UyYmYXdhaXQobnVsbD09cy5pc0VsZW1lbnQ/dm9pZCAwOnMuaXNFbGVtZW50KGspKXx8KFM9YS5mbG9hdGluZ1t3XXx8ci5mbG9hdGluZ1twXSk7Y29uc3QgJD15LzIteC8yLHo9Uy8yLW1bcF0vMi0xLF89TXMoaFtnXSx6KSxDPU1zKGhbdl0seiksST1fLEw9Uy1tW3BdLUMsRT1TLzItbVtwXS8yKyQsQT1qcyhJLEUsTCksVD0hbC5hcnJvdyYmbnVsbCE9VnMobikmJkUhPT1BJiZyLnJlZmVyZW5jZVtwXS8yLShFPEk/XzpDKS1tW3BdLzI8MCxQPVQ/RTxJP0UtSTpFLUw6MDtyZXR1cm57W2ZdOnVbZl0rUCxkYXRhOntbZl06QSxjZW50ZXJPZmZzZXQ6RS1BLVAsLi4uVCYme2FsaWdubWVudE9mZnNldDpQfX0scmVzZXQ6VH19fSkscWE9KGUsdCxpKT0+e2NvbnN0IG89bmV3IE1hcCxuPXtwbGF0Zm9ybTpGYSwuLi5pfSxyPXsuLi5uLnBsYXRmb3JtLF9jOm99O3JldHVybihhc3luYyhlLHQsaSk9Pntjb25zdHtwbGFjZW1lbnQ6bz0iYm90dG9tIixzdHJhdGVneTpuPSJhYnNvbHV0ZSIsbWlkZGxld2FyZTpyPVtdLHBsYXRmb3JtOnN9PWksYT1yLmZpbHRlcihCb29sZWFuKSxsPWF3YWl0KG51bGw9PXMuaXNSVEw/dm9pZCAwOnMuaXNSVEwodCkpO2xldCBjPWF3YWl0IHMuZ2V0RWxlbWVudFJlY3RzKHtyZWZlcmVuY2U6ZSxmbG9hdGluZzp0LHN0cmF0ZWd5Om59KSx7eDpkLHk6aH09dGEoYyxvLGwpLHU9byxmPXt9LHA9MDtmb3IobGV0IGk9MDtpPGEubGVuZ3RoO2krKyl7Y29uc3R7bmFtZTpyLGZuOm19PWFbaV0se3g6Yix5OmcsZGF0YTp2LHJlc2V0Ond9PWF3YWl0IG0oe3g6ZCx5OmgsaW5pdGlhbFBsYWNlbWVudDpvLHBsYWNlbWVudDp1LHN0cmF0ZWd5Om4sbWlkZGxld2FyZURhdGE6ZixyZWN0czpjLHBsYXRmb3JtOnMsZWxlbWVudHM6e3JlZmVyZW5jZTplLGZsb2F0aW5nOnR9fSk7ZD1udWxsIT1iP2I6ZCxoPW51bGwhPWc/ZzpoLGY9ey4uLmYsW3JdOnsuLi5mW3JdLC4uLnZ9fSx3JiZwPD01MCYmKHArKywib2JqZWN0Ij09dHlwZW9mIHcmJih3LnBsYWNlbWVudCYmKHU9dy5wbGFjZW1lbnQpLHcucmVjdHMmJihjPSEwPT09dy5yZWN0cz9hd2FpdCBzLmdldEVsZW1lbnRSZWN0cyh7cmVmZXJlbmNlOmUsZmxvYXRpbmc6dCxzdHJhdGVneTpufSk6dy5yZWN0cyksKHt4OmQseTpofT10YShjLHUsbCkpKSxpPS0xKX1yZXR1cm57eDpkLHk6aCxwbGFjZW1lbnQ6dSxzdHJhdGVneTpuLG1pZGRsZXdhcmVEYXRhOmZ9fSkoZSx0LHsuLi5uLHBsYXRmb3JtOnJ9KX07ZnVuY3Rpb24gamEoZSl7cmV0dXJuIFdhKGUpfWZ1bmN0aW9uIEhhKGUpe3JldHVybiBlLmFzc2lnbmVkU2xvdD9lLmFzc2lnbmVkU2xvdDplLnBhcmVudE5vZGUgaW5zdGFuY2VvZiBTaGFkb3dSb290P2UucGFyZW50Tm9kZS5ob3N0OmUucGFyZW50Tm9kZX1mdW5jdGlvbiBXYShlKXtmb3IobGV0IHQ9ZTt0O3Q9SGEodCkpaWYodCBpbnN0YW5jZW9mIEVsZW1lbnQmJiJub25lIj09PWdldENvbXB1dGVkU3R5bGUodCkuZGlzcGxheSlyZXR1cm4gbnVsbDtmb3IobGV0IHQ9SGEoZSk7dDt0PUhhKHQpKXtpZighKHQgaW5zdGFuY2VvZiBFbGVtZW50KSljb250aW51ZTtjb25zdCBlPWdldENvbXB1dGVkU3R5bGUodCk7aWYoImNvbnRlbnRzIiE9PWUuZGlzcGxheSl7aWYoInN0YXRpYyIhPT1lLnBvc2l0aW9ufHwibm9uZSIhPT1lLmZpbHRlcilyZXR1cm4gdDtpZigiQk9EWSI9PT10LnRhZ05hbWUpcmV0dXJuIHR9fXJldHVybiBudWxsfXZhciBWYT1jbGFzcyBleHRlbmRzIHFye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmFjdGl2ZT0hMSx0aGlzLnBsYWNlbWVudD0idG9wIix0aGlzLnN0cmF0ZWd5PSJhYnNvbHV0ZSIsdGhpcy5kaXN0YW5jZT0wLHRoaXMuc2tpZGRpbmc9MCx0aGlzLmFycm93PSExLHRoaXMuYXJyb3dQbGFjZW1lbnQ9ImFuY2hvciIsdGhpcy5hcnJvd1BhZGRpbmc9MTAsdGhpcy5mbGlwPSExLHRoaXMuZmxpcEZhbGxiYWNrUGxhY2VtZW50cz0iIix0aGlzLmZsaXBGYWxsYmFja1N0cmF0ZWd5PSJiZXN0LWZpdCIsdGhpcy5mbGlwUGFkZGluZz0wLHRoaXMuc2hpZnQ9ITEsdGhpcy5zaGlmdFBhZGRpbmc9MCx0aGlzLmF1dG9TaXplUGFkZGluZz0wLHRoaXMuaG92ZXJCcmlkZ2U9ITEsdGhpcy51cGRhdGVIb3ZlckJyaWRnZT0oKT0+e2lmKHRoaXMuaG92ZXJCcmlkZ2UmJnRoaXMuYW5jaG9yRWwpe2NvbnN0IGU9dGhpcy5hbmNob3JFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PXRoaXMucG9wdXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IGk9MCxvPTAsbj0wLHI9MCxzPTAsYT0wLGw9MCxjPTA7dGhpcy5wbGFjZW1lbnQuaW5jbHVkZXMoInRvcCIpfHx0aGlzLnBsYWNlbWVudC5pbmNsdWRlcygiYm90dG9tIik/ZS50b3A8dC50b3A/KGk9ZS5sZWZ0LG89ZS5ib3R0b20sbj1lLnJpZ2h0LHI9ZS5ib3R0b20scz10LmxlZnQsYT10LnRvcCxsPXQucmlnaHQsYz10LnRvcCk6KGk9dC5sZWZ0LG89dC5ib3R0b20sbj10LnJpZ2h0LHI9dC5ib3R0b20scz1lLmxlZnQsYT1lLnRvcCxsPWUucmlnaHQsYz1lLnRvcCk6ZS5sZWZ0PHQubGVmdD8oaT1lLnJpZ2h0LG89ZS50b3Asbj10LmxlZnQscj10LnRvcCxzPWUucmlnaHQsYT1lLmJvdHRvbSxsPXQubGVmdCxjPXQuYm90dG9tKTooaT10LnJpZ2h0LG89dC50b3Asbj1lLmxlZnQscj1lLnRvcCxzPXQucmlnaHQsYT10LmJvdHRvbSxsPWUubGVmdCxjPWUuYm90dG9tKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLWhvdmVyLWJyaWRnZS10b3AtbGVmdC14IixgJHtpfXB4YCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ob3Zlci1icmlkZ2UtdG9wLWxlZnQteSIsYCR7b31weGApLHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0taG92ZXItYnJpZGdlLXRvcC1yaWdodC14IixgJHtufXB4YCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ob3Zlci1icmlkZ2UtdG9wLXJpZ2h0LXkiLGAke3J9cHhgKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLWhvdmVyLWJyaWRnZS1ib3R0b20tbGVmdC14IixgJHtzfXB4YCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ob3Zlci1icmlkZ2UtYm90dG9tLWxlZnQteSIsYCR7YX1weGApLHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0taG92ZXItYnJpZGdlLWJvdHRvbS1yaWdodC14IixgJHtsfXB4YCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ob3Zlci1icmlkZ2UtYm90dG9tLXJpZ2h0LXkiLGAke2N9cHhgKX19fWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuc3RhcnQoKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdG9wKCl9YXN5bmMgdXBkYXRlZChlKXtzdXBlci51cGRhdGVkKGUpLGUuaGFzKCJhY3RpdmUiKSYmKHRoaXMuYWN0aXZlP3RoaXMuc3RhcnQoKTp0aGlzLnN0b3AoKSksZS5oYXMoImFuY2hvciIpJiZ0aGlzLmhhbmRsZUFuY2hvckNoYW5nZSgpLHRoaXMuYWN0aXZlJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlcG9zaXRpb24oKSl9YXN5bmMgaGFuZGxlQW5jaG9yQ2hhbmdlKCl7aWYoYXdhaXQgdGhpcy5zdG9wKCksdGhpcy5hbmNob3ImJiJzdHJpbmciPT10eXBlb2YgdGhpcy5hbmNob3Ipe2NvbnN0IGU9dGhpcy5nZXRSb290Tm9kZSgpO3RoaXMuYW5jaG9yRWw9ZS5nZXRFbGVtZW50QnlJZCh0aGlzLmFuY2hvcil9ZWxzZSB0aGlzLmFuY2hvciBpbnN0YW5jZW9mIEVsZW1lbnR8fGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYiZ2V0Qm91bmRpbmdDbGllbnRSZWN0ImluIGUmJighKCJjb250ZXh0RWxlbWVudCJpbiBlKXx8ZSBpbnN0YW5jZW9mIEVsZW1lbnQpfSh0aGlzLmFuY2hvcik/dGhpcy5hbmNob3JFbD10aGlzLmFuY2hvcjp0aGlzLmFuY2hvckVsPXRoaXMucXVlcnlTZWxlY3RvcignW3Nsb3Q9ImFuY2hvciJdJyk7dGhpcy5hbmNob3JFbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCYmKHRoaXMuYW5jaG9yRWw9dGhpcy5hbmNob3JFbC5hc3NpZ25lZEVsZW1lbnRzKHtmbGF0dGVuOiEwfSlbMF0pLHRoaXMuYW5jaG9yRWwmJnRoaXMuc3RhcnQoKX1zdGFydCgpe3RoaXMuYW5jaG9yRWwmJih0aGlzLmNsZWFudXA9TWEodGhpcy5hbmNob3JFbCx0aGlzLnBvcHVwLCgoKT0+e3RoaXMucmVwb3NpdGlvbigpfSkpKX1hc3luYyBzdG9wKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT57dGhpcy5jbGVhbnVwPyh0aGlzLmNsZWFudXAoKSx0aGlzLmNsZWFudXA9dm9pZCAwLHRoaXMucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWN1cnJlbnQtcGxhY2VtZW50IiksdGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1hdXRvLXNpemUtYXZhaWxhYmxlLXdpZHRoIiksdGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1hdXRvLXNpemUtYXZhaWxhYmxlLWhlaWdodCIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PmUoKSkpKTplKCl9KSl9cmVwb3NpdGlvbigpe2lmKCF0aGlzLmFjdGl2ZXx8IXRoaXMuYW5jaG9yRWwpcmV0dXJuO2NvbnN0IGU9W1JhKHttYWluQXhpczp0aGlzLmRpc3RhbmNlLGNyb3NzQXhpczp0aGlzLnNraWRkaW5nfSldO3RoaXMuc3luYz9lLnB1c2goQmEoe2FwcGx5Oih7cmVjdHM6ZX0pPT57Y29uc3QgdD0id2lkdGgiPT09dGhpcy5zeW5jfHwiYm90aCI9PT10aGlzLnN5bmMsaT0iaGVpZ2h0Ij09PXRoaXMuc3luY3x8ImJvdGgiPT09dGhpcy5zeW5jO3RoaXMucG9wdXAuc3R5bGUud2lkdGg9dD9gJHtlLnJlZmVyZW5jZS53aWR0aH1weGA6IiIsdGhpcy5wb3B1cC5zdHlsZS5oZWlnaHQ9aT9gJHtlLnJlZmVyZW5jZS5oZWlnaHR9cHhgOiIifX0pKToodGhpcy5wb3B1cC5zdHlsZS53aWR0aD0iIix0aGlzLnBvcHVwLnN0eWxlLmhlaWdodD0iIiksdGhpcy5mbGlwJiZlLnB1c2goVWEoe2JvdW5kYXJ5OnRoaXMuZmxpcEJvdW5kYXJ5LGZhbGxiYWNrUGxhY2VtZW50czp0aGlzLmZsaXBGYWxsYmFja1BsYWNlbWVudHMsZmFsbGJhY2tTdHJhdGVneToiYmVzdC1maXQiPT09dGhpcy5mbGlwRmFsbGJhY2tTdHJhdGVneT8iYmVzdEZpdCI6ImluaXRpYWxQbGFjZW1lbnQiLHBhZGRpbmc6dGhpcy5mbGlwUGFkZGluZ30pKSx0aGlzLnNoaWZ0JiZlLnB1c2goT2Eoe2JvdW5kYXJ5OnRoaXMuc2hpZnRCb3VuZGFyeSxwYWRkaW5nOnRoaXMuc2hpZnRQYWRkaW5nfSkpLHRoaXMuYXV0b1NpemU/ZS5wdXNoKEJhKHtib3VuZGFyeTp0aGlzLmF1dG9TaXplQm91bmRhcnkscGFkZGluZzp0aGlzLmF1dG9TaXplUGFkZGluZyxhcHBseTooe2F2YWlsYWJsZVdpZHRoOmUsYXZhaWxhYmxlSGVpZ2h0OnR9KT0+eyJ2ZXJ0aWNhbCI9PT10aGlzLmF1dG9TaXplfHwiYm90aCI9PT10aGlzLmF1dG9TaXplP3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tYXV0by1zaXplLWF2YWlsYWJsZS1oZWlnaHQiLGAke3R9cHhgKTp0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWF1dG8tc2l6ZS1hdmFpbGFibGUtaGVpZ2h0IiksImhvcml6b250YWwiPT09dGhpcy5hdXRvU2l6ZXx8ImJvdGgiPT09dGhpcy5hdXRvU2l6ZT90aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLWF1dG8tc2l6ZS1hdmFpbGFibGUtd2lkdGgiLGAke2V9cHhgKTp0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWF1dG8tc2l6ZS1hdmFpbGFibGUtd2lkdGgiKX19KSk6KHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tYXV0by1zaXplLWF2YWlsYWJsZS13aWR0aCIpLHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tYXV0by1zaXplLWF2YWlsYWJsZS1oZWlnaHQiKSksdGhpcy5hcnJvdyYmZS5wdXNoKE5hKHtlbGVtZW50OnRoaXMuYXJyb3dFbCxwYWRkaW5nOnRoaXMuYXJyb3dQYWRkaW5nfSkpO2NvbnN0IHQ9ImFic29sdXRlIj09PXRoaXMuc3RyYXRlZ3k/ZT0+RmEuZ2V0T2Zmc2V0UGFyZW50KGUsamEpOkZhLmdldE9mZnNldFBhcmVudDtxYSh0aGlzLmFuY2hvckVsLHRoaXMucG9wdXAse3BsYWNlbWVudDp0aGlzLnBsYWNlbWVudCxtaWRkbGV3YXJlOmUsc3RyYXRlZ3k6dGhpcy5zdHJhdGVneSxwbGF0Zm9ybTp5aSh3aSh7fSxGYSkse2dldE9mZnNldFBhcmVudDp0fSl9KS50aGVuKCgoe3g6ZSx5OnQsbWlkZGxld2FyZURhdGE6aSxwbGFjZW1lbnQ6b30pPT57Y29uc3Qgbj0icnRsIj09PWdldENvbXB1dGVkU3R5bGUodGhpcykuZGlyZWN0aW9uLHI9e3RvcDoiYm90dG9tIixyaWdodDoibGVmdCIsYm90dG9tOiJ0b3AiLGxlZnQ6InJpZ2h0In1bby5zcGxpdCgiLSIpWzBdXTtpZih0aGlzLnNldEF0dHJpYnV0ZSgiZGF0YS1jdXJyZW50LXBsYWNlbWVudCIsbyksT2JqZWN0LmFzc2lnbih0aGlzLnBvcHVwLnN0eWxlLHtsZWZ0OmAke2V9cHhgLHRvcDpgJHt0fXB4YH0pLHRoaXMuYXJyb3cpe2NvbnN0IGU9aS5hcnJvdy54LHQ9aS5hcnJvdy55O2xldCBvPSIiLHM9IiIsYT0iIixsPSIiO2lmKCJzdGFydCI9PT10aGlzLmFycm93UGxhY2VtZW50KXtjb25zdCBpPSJudW1iZXIiPT10eXBlb2YgZT9gY2FsYygke3RoaXMuYXJyb3dQYWRkaW5nfXB4IC0gdmFyKC0tYXJyb3ctcGFkZGluZy1vZmZzZXQpKWA6IiI7bz0ibnVtYmVyIj09dHlwZW9mIHQ/YGNhbGMoJHt0aGlzLmFycm93UGFkZGluZ31weCAtIHZhcigtLWFycm93LXBhZGRpbmctb2Zmc2V0KSlgOiIiLHM9bj9pOiIiLGw9bj8iIjppfWVsc2UgaWYoImVuZCI9PT10aGlzLmFycm93UGxhY2VtZW50KXtjb25zdCBpPSJudW1iZXIiPT10eXBlb2YgZT9gY2FsYygke3RoaXMuYXJyb3dQYWRkaW5nfXB4IC0gdmFyKC0tYXJyb3ctcGFkZGluZy1vZmZzZXQpKWA6IiI7cz1uPyIiOmksbD1uP2k6IiIsYT0ibnVtYmVyIj09dHlwZW9mIHQ/YGNhbGMoJHt0aGlzLmFycm93UGFkZGluZ31weCAtIHZhcigtLWFycm93LXBhZGRpbmctb2Zmc2V0KSlgOiIifWVsc2UiY2VudGVyIj09PXRoaXMuYXJyb3dQbGFjZW1lbnQ/KGw9Im51bWJlciI9PXR5cGVvZiBlPyJjYWxjKDUwJSAtIHZhcigtLWFycm93LXNpemUtZGlhZ29uYWwpKSI6IiIsbz0ibnVtYmVyIj09dHlwZW9mIHQ/ImNhbGMoNTAlIC0gdmFyKC0tYXJyb3ctc2l6ZS1kaWFnb25hbCkpIjoiIik6KGw9Im51bWJlciI9PXR5cGVvZiBlP2Ake2V9cHhgOiIiLG89Im51bWJlciI9PXR5cGVvZiB0P2Ake3R9cHhgOiIiKTtPYmplY3QuYXNzaWduKHRoaXMuYXJyb3dFbC5zdHlsZSx7dG9wOm8scmlnaHQ6cyxib3R0b206YSxsZWZ0OmwsW3JdOiJjYWxjKHZhcigtLWFycm93LXNpemUtZGlhZ29uYWwpICogLTEpIn0pfX0pKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLnVwZGF0ZUhvdmVyQnJpZGdlKCkpKSx0aGlzLmVtaXQoInNsLXJlcG9zaXRpb24iKX1yZW5kZXIoKXtyZXR1cm4gUWAKICAgICAgPHNsb3QgbmFtZT0iYW5jaG9yIiBAc2xvdGNoYW5nZT0ke3RoaXMuaGFuZGxlQW5jaG9yQ2hhbmdlfT48L3Nsb3Q+CgogICAgICA8c3BhbgogICAgICAgIHBhcnQ9ImhvdmVyLWJyaWRnZSIKICAgICAgICBjbGFzcz0ke0tyKHsicG9wdXAtaG92ZXItYnJpZGdlIjohMCwicG9wdXAtaG92ZXItYnJpZGdlLS12aXNpYmxlIjp0aGlzLmhvdmVyQnJpZGdlJiZ0aGlzLmFjdGl2ZX0pfQogICAgICA+PC9zcGFuPgoKICAgICAgPGRpdgogICAgICAgIHBhcnQ9InBvcHVwIgogICAgICAgIGNsYXNzPSR7S3Ioe3BvcHVwOiEwLCJwb3B1cC0tYWN0aXZlIjp0aGlzLmFjdGl2ZSwicG9wdXAtLWZpeGVkIjoiZml4ZWQiPT09dGhpcy5zdHJhdGVneSwicG9wdXAtLWhhcy1hcnJvdyI6dGhpcy5hcnJvd30pfQogICAgICA+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgICR7dGhpcy5hcnJvdz9RYDxkaXYgcGFydD0iYXJyb3ciIGNsYXNzPSJwb3B1cF9fYXJyb3ciIHJvbGU9InByZXNlbnRhdGlvbiI+PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfX07VmEuc3R5bGVzPVtOcixGc10seGkoW1NlKCIucG9wdXAiKV0sVmEucHJvdG90eXBlLCJwb3B1cCIsMikseGkoW1NlKCIucG9wdXBfX2Fycm93IildLFZhLnByb3RvdHlwZSwiYXJyb3dFbCIsMikseGkoW3llKCldLFZhLnByb3RvdHlwZSwiYW5jaG9yIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFZhLnByb3RvdHlwZSwiYWN0aXZlIiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sVmEucHJvdG90eXBlLCJwbGFjZW1lbnQiLDIpLHhpKFt5ZSh7cmVmbGVjdDohMH0pXSxWYS5wcm90b3R5cGUsInN0cmF0ZWd5IiwyKSx4aShbeWUoe3R5cGU6TnVtYmVyfSldLFZhLnByb3RvdHlwZSwiZGlzdGFuY2UiLDIpLHhpKFt5ZSh7dHlwZTpOdW1iZXJ9KV0sVmEucHJvdG90eXBlLCJza2lkZGluZyIsMikseGkoW3llKHt0eXBlOkJvb2xlYW59KV0sVmEucHJvdG90eXBlLCJhcnJvdyIsMikseGkoW3llKHthdHRyaWJ1dGU6ImFycm93LXBsYWNlbWVudCJ9KV0sVmEucHJvdG90eXBlLCJhcnJvd1BsYWNlbWVudCIsMikseGkoW3llKHthdHRyaWJ1dGU6ImFycm93LXBhZGRpbmciLHR5cGU6TnVtYmVyfSldLFZhLnByb3RvdHlwZSwiYXJyb3dQYWRkaW5nIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbn0pXSxWYS5wcm90b3R5cGUsImZsaXAiLDIpLHhpKFt5ZSh7YXR0cmlidXRlOiJmbGlwLWZhbGxiYWNrLXBsYWNlbWVudHMiLGNvbnZlcnRlcjp7ZnJvbUF0dHJpYnV0ZTplPT5lLnNwbGl0KCIgIikubWFwKChlPT5lLnRyaW0oKSkpLmZpbHRlcigoZT0+IiIhPT1lKSksdG9BdHRyaWJ1dGU6ZT0+ZS5qb2luKCIgIil9fSldLFZhLnByb3RvdHlwZSwiZmxpcEZhbGxiYWNrUGxhY2VtZW50cyIsMikseGkoW3llKHthdHRyaWJ1dGU6ImZsaXAtZmFsbGJhY2stc3RyYXRlZ3kifSldLFZhLnByb3RvdHlwZSwiZmxpcEZhbGxiYWNrU3RyYXRlZ3kiLDIpLHhpKFt5ZSh7dHlwZTpPYmplY3R9KV0sVmEucHJvdG90eXBlLCJmbGlwQm91bmRhcnkiLDIpLHhpKFt5ZSh7YXR0cmlidXRlOiJmbGlwLXBhZGRpbmciLHR5cGU6TnVtYmVyfSldLFZhLnByb3RvdHlwZSwiZmxpcFBhZGRpbmciLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFufSldLFZhLnByb3RvdHlwZSwic2hpZnQiLDIpLHhpKFt5ZSh7dHlwZTpPYmplY3R9KV0sVmEucHJvdG90eXBlLCJzaGlmdEJvdW5kYXJ5IiwyKSx4aShbeWUoe2F0dHJpYnV0ZToic2hpZnQtcGFkZGluZyIsdHlwZTpOdW1iZXJ9KV0sVmEucHJvdG90eXBlLCJzaGlmdFBhZGRpbmciLDIpLHhpKFt5ZSh7YXR0cmlidXRlOiJhdXRvLXNpemUifSldLFZhLnByb3RvdHlwZSwiYXV0b1NpemUiLDIpLHhpKFt5ZSgpXSxWYS5wcm90b3R5cGUsInN5bmMiLDIpLHhpKFt5ZSh7dHlwZTpPYmplY3R9KV0sVmEucHJvdG90eXBlLCJhdXRvU2l6ZUJvdW5kYXJ5IiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiYXV0by1zaXplLXBhZGRpbmciLHR5cGU6TnVtYmVyfSldLFZhLnByb3RvdHlwZSwiYXV0b1NpemVQYWRkaW5nIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiaG92ZXItYnJpZGdlIix0eXBlOkJvb2xlYW59KV0sVmEucHJvdG90eXBlLCJob3ZlckJyaWRnZSIsMik7dmFyIEdhPWNsYXNzIGV4dGVuZHMgcXJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMubG9jYWxpemU9bmV3IHZzKHRoaXMpLHRoaXMuY29udGVudD0iIix0aGlzLnBsYWNlbWVudD0idG9wIix0aGlzLmRpc2FibGVkPSExLHRoaXMuZGlzdGFuY2U9OCx0aGlzLm9wZW49ITEsdGhpcy5za2lkZGluZz0wLHRoaXMudHJpZ2dlcj0iaG92ZXIgZm9jdXMiLHRoaXMuaG9pc3Q9ITEsdGhpcy5oYW5kbGVCbHVyPSgpPT57dGhpcy5oYXNUcmlnZ2VyKCJmb2N1cyIpJiZ0aGlzLmhpZGUoKX0sdGhpcy5oYW5kbGVDbGljaz0oKT0+e3RoaXMuaGFzVHJpZ2dlcigiY2xpY2siKSYmKHRoaXMub3Blbj90aGlzLmhpZGUoKTp0aGlzLnNob3coKSl9LHRoaXMuaGFuZGxlRm9jdXM9KCk9Pnt0aGlzLmhhc1RyaWdnZXIoImZvY3VzIikmJnRoaXMuc2hvdygpfSx0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93bj1lPT57IkVzY2FwZSI9PT1lLmtleSYmKGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5oaWRlKCkpfSx0aGlzLmhhbmRsZU1vdXNlT3Zlcj0oKT0+e2lmKHRoaXMuaGFzVHJpZ2dlcigiaG92ZXIiKSl7Y29uc3QgZT1ucyhnZXRDb21wdXRlZFN0eWxlKHRoaXMpLmdldFByb3BlcnR5VmFsdWUoIi0tc2hvdy1kZWxheSIpKTtjbGVhclRpbWVvdXQodGhpcy5ob3ZlclRpbWVvdXQpLHRoaXMuaG92ZXJUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5zaG93KCkpLGUpfX0sdGhpcy5oYW5kbGVNb3VzZU91dD0oKT0+e2lmKHRoaXMuaGFzVHJpZ2dlcigiaG92ZXIiKSl7Y29uc3QgZT1ucyhnZXRDb21wdXRlZFN0eWxlKHRoaXMpLmdldFByb3BlcnR5VmFsdWUoIi0taGlkZS1kZWxheSIpKTtjbGVhclRpbWVvdXQodGhpcy5ob3ZlclRpbWVvdXQpLHRoaXMuaG92ZXJUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5oaWRlKCkpLGUpfX0sdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmhhbmRsZUJsdXIsITApLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuaGFuZGxlRm9jdXMsITApLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2spLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIix0aGlzLmhhbmRsZU1vdXNlT3ZlciksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsdGhpcy5oYW5kbGVNb3VzZU91dCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZTtudWxsPT0oZT10aGlzLmNsb3NlV2F0Y2hlcil8fGUuZGVzdHJveSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRLZXlEb3duKX1maXJzdFVwZGF0ZWQoKXt0aGlzLmJvZHkuaGlkZGVuPSF0aGlzLm9wZW4sdGhpcy5vcGVuJiYodGhpcy5wb3B1cC5hY3RpdmU9ITAsdGhpcy5wb3B1cC5yZXBvc2l0aW9uKCkpfWhhc1RyaWdnZXIoZSl7cmV0dXJuIHRoaXMudHJpZ2dlci5zcGxpdCgiICIpLmluY2x1ZGVzKGUpfWFzeW5jIGhhbmRsZU9wZW5DaGFuZ2UoKXt2YXIgZSx0O2lmKHRoaXMub3Blbil7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47dGhpcy5lbWl0KCJzbC1zaG93IiksIkNsb3NlV2F0Y2hlciJpbiB3aW5kb3c/KG51bGw9PShlPXRoaXMuY2xvc2VXYXRjaGVyKXx8ZS5kZXN0cm95KCksdGhpcy5jbG9zZVdhdGNoZXI9bmV3IENsb3NlV2F0Y2hlcix0aGlzLmNsb3NlV2F0Y2hlci5vbmNsb3NlPSgpPT57dGhpcy5oaWRlKCl9KTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93biksYXdhaXQgc3ModGhpcy5ib2R5KSx0aGlzLmJvZHkuaGlkZGVuPSExLHRoaXMucG9wdXAuYWN0aXZlPSEwO2NvbnN0e2tleWZyYW1lczp0LG9wdGlvbnM6aX09dHModGhpcywidG9vbHRpcC5zaG93Iix7ZGlyOnRoaXMubG9jYWxpemUuZGlyKCl9KTthd2FpdCBvcyh0aGlzLnBvcHVwLnBvcHVwLHQsaSksdGhpcy5wb3B1cC5yZXBvc2l0aW9uKCksdGhpcy5lbWl0KCJzbC1hZnRlci1zaG93Iil9ZWxzZXt0aGlzLmVtaXQoInNsLWhpZGUiKSxudWxsPT0odD10aGlzLmNsb3NlV2F0Y2hlcil8fHQuZGVzdHJveSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRLZXlEb3duKSxhd2FpdCBzcyh0aGlzLmJvZHkpO2NvbnN0e2tleWZyYW1lczplLG9wdGlvbnM6aX09dHModGhpcywidG9vbHRpcC5oaWRlIix7ZGlyOnRoaXMubG9jYWxpemUuZGlyKCl9KTthd2FpdCBvcyh0aGlzLnBvcHVwLnBvcHVwLGUsaSksdGhpcy5wb3B1cC5hY3RpdmU9ITEsdGhpcy5ib2R5LmhpZGRlbj0hMCx0aGlzLmVtaXQoInNsLWFmdGVyLWhpZGUiKX19YXN5bmMgaGFuZGxlT3B0aW9uc0NoYW5nZSgpe3RoaXMuaGFzVXBkYXRlZCYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5wb3B1cC5yZXBvc2l0aW9uKCkpfWhhbmRsZURpc2FibGVkQ2hhbmdlKCl7dGhpcy5kaXNhYmxlZCYmdGhpcy5vcGVuJiZ0aGlzLmhpZGUoKX1hc3luYyBzaG93KCl7aWYoIXRoaXMub3BlbilyZXR1cm4gdGhpcy5vcGVuPSEwLGlzKHRoaXMsInNsLWFmdGVyLXNob3ciKX1hc3luYyBoaWRlKCl7aWYodGhpcy5vcGVuKXJldHVybiB0aGlzLm9wZW49ITEsaXModGhpcywic2wtYWZ0ZXItaGlkZSIpfXJlbmRlcigpe3JldHVybiBRYAogICAgICA8c2wtcG9wdXAKICAgICAgICBwYXJ0PSJiYXNlIgogICAgICAgIGV4cG9ydHBhcnRzPSIKICAgICAgICAgIHBvcHVwOmJhc2VfX3BvcHVwLAogICAgICAgICAgYXJyb3c6YmFzZV9fYXJyb3cKICAgICAgICAiCiAgICAgICAgY2xhc3M9JHtLcih7dG9vbHRpcDohMCwidG9vbHRpcC0tb3BlbiI6dGhpcy5vcGVufSl9CiAgICAgICAgcGxhY2VtZW50PSR7dGhpcy5wbGFjZW1lbnR9CiAgICAgICAgZGlzdGFuY2U9JHt0aGlzLmRpc3RhbmNlfQogICAgICAgIHNraWRkaW5nPSR7dGhpcy5za2lkZGluZ30KICAgICAgICBzdHJhdGVneT0ke3RoaXMuaG9pc3Q/ImZpeGVkIjoiYWJzb2x1dGUifQogICAgICAgIGZsaXAKICAgICAgICBzaGlmdAogICAgICAgIGFycm93CiAgICAgICAgaG92ZXItYnJpZGdlCiAgICAgID4KICAgICAgICAkeyIifQogICAgICAgIDxzbG90IHNsb3Q9ImFuY2hvciIgYXJpYS1kZXNjcmliZWRieT0idG9vbHRpcCI+PC9zbG90PgoKICAgICAgICAkeyIifQogICAgICAgIDxkaXYgcGFydD0iYm9keSIgaWQ9InRvb2x0aXAiIGNsYXNzPSJ0b29sdGlwX19ib2R5IiByb2xlPSJ0b29sdGlwIiBhcmlhLWxpdmU9JHt0aGlzLm9wZW4/InBvbGl0ZSI6Im9mZiJ9PgogICAgICAgICAgPHNsb3QgbmFtZT0iY29udGVudCI+JHt0aGlzLmNvbnRlbnR9PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICA8L3NsLXBvcHVwPgogICAgYH19O0dhLnN0eWxlcz1bTnIsRHNdLEdhLmRlcGVuZGVuY2llcz17InNsLXBvcHVwIjpWYX0seGkoW1NlKCJzbG90Om5vdChbbmFtZV0pIildLEdhLnByb3RvdHlwZSwiZGVmYXVsdFNsb3QiLDIpLHhpKFtTZSgiLnRvb2x0aXBfX2JvZHkiKV0sR2EucHJvdG90eXBlLCJib2R5IiwyKSx4aShbU2UoInNsLXBvcHVwIildLEdhLnByb3RvdHlwZSwicG9wdXAiLDIpLHhpKFt5ZSgpXSxHYS5wcm90b3R5cGUsImNvbnRlbnQiLDIpLHhpKFt5ZSgpXSxHYS5wcm90b3R5cGUsInBsYWNlbWVudCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxHYS5wcm90b3R5cGUsImRpc2FibGVkIiwyKSx4aShbeWUoe3R5cGU6TnVtYmVyfSldLEdhLnByb3RvdHlwZSwiZGlzdGFuY2UiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sR2EucHJvdG90eXBlLCJvcGVuIiwyKSx4aShbeWUoe3R5cGU6TnVtYmVyfSldLEdhLnByb3RvdHlwZSwic2tpZGRpbmciLDIpLHhpKFt5ZSgpXSxHYS5wcm90b3R5cGUsInRyaWdnZXIiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFufSldLEdhLnByb3RvdHlwZSwiaG9pc3QiLDIpLHhpKFtCcigib3BlbiIse3dhaXRVbnRpbEZpcnN0VXBkYXRlOiEwfSldLEdhLnByb3RvdHlwZSwiaGFuZGxlT3BlbkNoYW5nZSIsMSkseGkoW0JyKFsiY29udGVudCIsImRpc3RhbmNlIiwiaG9pc3QiLCJwbGFjZW1lbnQiLCJza2lkZGluZyJdKV0sR2EucHJvdG90eXBlLCJoYW5kbGVPcHRpb25zQ2hhbmdlIiwxKSx4aShbQnIoImRpc2FibGVkIildLEdhLnByb3RvdHlwZSwiaGFuZGxlRGlzYWJsZWRDaGFuZ2UiLDEpLGVzKCJ0b29sdGlwLnNob3ciLHtrZXlmcmFtZXM6W3tvcGFjaXR5OjAsc2NhbGU6Ljh9LHtvcGFjaXR5OjEsc2NhbGU6MX1dLG9wdGlvbnM6e2R1cmF0aW9uOjE1MCxlYXNpbmc6ImVhc2UifX0pLGVzKCJ0b29sdGlwLmhpZGUiLHtrZXlmcmFtZXM6W3tvcGFjaXR5OjEsc2NhbGU6MX0se29wYWNpdHk6MCxzY2FsZTouOH1dLG9wdGlvbnM6e2R1cmF0aW9uOjE1MCxlYXNpbmc6ImVhc2UifX0pO3ZhciBLYT1oYAogIDpob3N0IHsKICAgIC0tZXJyb3ItY29sb3I6IHZhcigtLXNsLWNvbG9yLWRhbmdlci02MDApOwogICAgLS1zdWNjZXNzLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTYwMCk7CgogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KCiAgLmNvcHktYnV0dG9uX19idXR0b24gewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICBjb2xvcjogaW5oZXJpdDsKICAgIHBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgY29sb3I7CiAgfQoKICAuY29weS1idXR0b24tLXN1Y2Nlc3MgLmNvcHktYnV0dG9uX19idXR0b24gewogICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IpOwogIH0KCiAgLmNvcHktYnV0dG9uLS1lcnJvciAuY29weS1idXR0b25fX2J1dHRvbiB7CiAgICBjb2xvcjogdmFyKC0tZXJyb3ItY29sb3IpOwogIH0KCiAgLmNvcHktYnV0dG9uX19idXR0b246Zm9jdXMtdmlzaWJsZSB7CiAgICBvdXRsaW5lOiB2YXIoLS1zbC1mb2N1cy1yaW5nKTsKICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1zbC1mb2N1cy1yaW5nLW9mZnNldCk7CiAgfQoKICAuY29weS1idXR0b25fX2J1dHRvbltkaXNhYmxlZF0gewogICAgb3BhY2l0eTogMC41OwogICAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50OwogIH0KCiAgc2xvdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICB9CmAsWWE9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2NhbGl6ZT1uZXcgdnModGhpcyksdGhpcy5pc0NvcHlpbmc9ITEsdGhpcy5zdGF0dXM9InJlc3QiLHRoaXMudmFsdWU9IiIsdGhpcy5mcm9tPSIiLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5jb3B5TGFiZWw9IiIsdGhpcy5zdWNjZXNzTGFiZWw9IiIsdGhpcy5lcnJvckxhYmVsPSIiLHRoaXMuZmVlZGJhY2tEdXJhdGlvbj0xZTMsdGhpcy50b29sdGlwUGxhY2VtZW50PSJ0b3AiLHRoaXMuaG9pc3Q9ITF9YXN5bmMgaGFuZGxlQ29weSgpe2lmKHRoaXMuZGlzYWJsZWR8fHRoaXMuaXNDb3B5aW5nKXJldHVybjt0aGlzLmlzQ29weWluZz0hMDtsZXQgZT10aGlzLnZhbHVlO2lmKHRoaXMuZnJvbSl7Y29uc3QgdD10aGlzLmdldFJvb3ROb2RlKCksaT10aGlzLmZyb20uaW5jbHVkZXMoIi4iKSxvPXRoaXMuZnJvbS5pbmNsdWRlcygiWyIpJiZ0aGlzLmZyb20uaW5jbHVkZXMoIl0iKTtsZXQgbj10aGlzLmZyb20scj0iIjtpP1tuLHJdPXRoaXMuZnJvbS50cmltKCkuc3BsaXQoIi4iKTpvJiYoW24scl09dGhpcy5mcm9tLnRyaW0oKS5yZXBsYWNlKC9cXSQvLCIiKS5zcGxpdCgiWyIpKTtjb25zdCBzPSJnZXRFbGVtZW50QnlJZCJpbiB0P3QuZ2V0RWxlbWVudEJ5SWQobik6bnVsbDtzP2U9bz9zLmdldEF0dHJpYnV0ZShyKXx8IiI6aT9zW3JdfHwiIjpzLnRleHRDb250ZW50fHwiIjoodGhpcy5zaG93U3RhdHVzKCJlcnJvciIpLHRoaXMuZW1pdCgic2wtZXJyb3IiKSl9aWYoZSl0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZSksdGhpcy5zaG93U3RhdHVzKCJzdWNjZXNzIiksdGhpcy5lbWl0KCJzbC1jb3B5Iix7ZGV0YWlsOnt2YWx1ZTplfX0pfWNhdGNoKGUpe3RoaXMuc2hvd1N0YXR1cygiZXJyb3IiKSx0aGlzLmVtaXQoInNsLWVycm9yIil9ZWxzZSB0aGlzLnNob3dTdGF0dXMoImVycm9yIiksdGhpcy5lbWl0KCJzbC1lcnJvciIpfWFzeW5jIHNob3dTdGF0dXMoZSl7Y29uc3QgdD10aGlzLmNvcHlMYWJlbHx8dGhpcy5sb2NhbGl6ZS50ZXJtKCJjb3B5IiksaT10aGlzLnN1Y2Nlc3NMYWJlbHx8dGhpcy5sb2NhbGl6ZS50ZXJtKCJjb3BpZWQiKSxvPXRoaXMuZXJyb3JMYWJlbHx8dGhpcy5sb2NhbGl6ZS50ZXJtKCJlcnJvciIpLG49InN1Y2Nlc3MiPT09ZT90aGlzLnN1Y2Nlc3NJY29uOnRoaXMuZXJyb3JJY29uLHI9dHModGhpcywiY29weS5pbiIse2RpcjoibHRyIn0pLHM9dHModGhpcywiY29weS5vdXQiLHtkaXI6Imx0ciJ9KTt0aGlzLnRvb2x0aXAuY29udGVudD0ic3VjY2VzcyI9PT1lP2k6byxhd2FpdCB0aGlzLmNvcHlJY29uLmFuaW1hdGUocy5rZXlmcmFtZXMscy5vcHRpb25zKS5maW5pc2hlZCx0aGlzLmNvcHlJY29uLmhpZGRlbj0hMCx0aGlzLnN0YXR1cz1lLG4uaGlkZGVuPSExLGF3YWl0IG4uYW5pbWF0ZShyLmtleWZyYW1lcyxyLm9wdGlvbnMpLmZpbmlzaGVkLHNldFRpbWVvdXQoKGFzeW5jKCk9Pnthd2FpdCBuLmFuaW1hdGUocy5rZXlmcmFtZXMscy5vcHRpb25zKS5maW5pc2hlZCxuLmhpZGRlbj0hMCx0aGlzLnN0YXR1cz0icmVzdCIsdGhpcy5jb3B5SWNvbi5oaWRkZW49ITEsYXdhaXQgdGhpcy5jb3B5SWNvbi5hbmltYXRlKHIua2V5ZnJhbWVzLHIub3B0aW9ucykuZmluaXNoZWQsdGhpcy50b29sdGlwLmNvbnRlbnQ9dCx0aGlzLmlzQ29weWluZz0hMX0pLHRoaXMuZmVlZGJhY2tEdXJhdGlvbil9cmVuZGVyKCl7Y29uc3QgZT10aGlzLmNvcHlMYWJlbHx8dGhpcy5sb2NhbGl6ZS50ZXJtKCJjb3B5Iik7cmV0dXJuIFFgCiAgICAgIDxzbC10b29sdGlwCiAgICAgICAgY2xhc3M9JHtLcih7ImNvcHktYnV0dG9uIjohMCwiY29weS1idXR0b24tLXN1Y2Nlc3MiOiJzdWNjZXNzIj09PXRoaXMuc3RhdHVzLCJjb3B5LWJ1dHRvbi0tZXJyb3IiOiJlcnJvciI9PT10aGlzLnN0YXR1c30pfQogICAgICAgIGNvbnRlbnQ9JHtlfQogICAgICAgIHBsYWNlbWVudD0ke3RoaXMudG9vbHRpcFBsYWNlbWVudH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgID9ob2lzdD0ke3RoaXMuaG9pc3R9CiAgICAgICAgZXhwb3J0cGFydHM9IgogICAgICAgICAgYmFzZTp0b29sdGlwX19iYXNlLAogICAgICAgICAgYmFzZV9fcG9wdXA6dG9vbHRpcF9fYmFzZV9fcG9wdXAsCiAgICAgICAgICBiYXNlX19hcnJvdzp0b29sdGlwX19iYXNlX19hcnJvdywKICAgICAgICAgIGJvZHk6dG9vbHRpcF9fYm9keQogICAgICAgICIKICAgICAgPgogICAgICAgIDxidXR0b24KICAgICAgICAgIGNsYXNzPSJjb3B5LWJ1dHRvbl9fYnV0dG9uIgogICAgICAgICAgcGFydD0iYnV0dG9uIgogICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29weX0KICAgICAgICA+CiAgICAgICAgICA8c2xvdCBwYXJ0PSJjb3B5LWljb24iIG5hbWU9ImNvcHktaWNvbiI+CiAgICAgICAgICAgIDxzbC1pY29uIGxpYnJhcnk9InN5c3RlbSIgbmFtZT0iY29weSI+PC9zbC1pY29uPgogICAgICAgICAgPC9zbG90PgogICAgICAgICAgPHNsb3QgcGFydD0ic3VjY2Vzcy1pY29uIiBuYW1lPSJzdWNjZXNzLWljb24iIGhpZGRlbj4KICAgICAgICAgICAgPHNsLWljb24gbGlicmFyeT0ic3lzdGVtIiBuYW1lPSJjaGVjayI+PC9zbC1pY29uPgogICAgICAgICAgPC9zbG90PgogICAgICAgICAgPHNsb3QgcGFydD0iZXJyb3ItaWNvbiIgbmFtZT0iZXJyb3ItaWNvbiIgaGlkZGVuPgogICAgICAgICAgICA8c2wtaWNvbiBsaWJyYXJ5PSJzeXN0ZW0iIG5hbWU9IngtbGciPjwvc2wtaWNvbj4KICAgICAgICAgIDwvc2xvdD4KICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9zbC10b29sdGlwPgogICAgYH19O1lhLnN0eWxlcz1bTnIsS2FdLFlhLmRlcGVuZGVuY2llcz17InNsLWljb24iOkdyLCJzbC10b29sdGlwIjpHYX0seGkoW1NlKCdzbG90W25hbWU9ImNvcHktaWNvbiJdJyldLFlhLnByb3RvdHlwZSwiY29weUljb24iLDIpLHhpKFtTZSgnc2xvdFtuYW1lPSJzdWNjZXNzLWljb24iXScpXSxZYS5wcm90b3R5cGUsInN1Y2Nlc3NJY29uIiwyKSx4aShbU2UoJ3Nsb3RbbmFtZT0iZXJyb3ItaWNvbiJdJyldLFlhLnByb3RvdHlwZSwiZXJyb3JJY29uIiwyKSx4aShbU2UoInNsLXRvb2x0aXAiKV0sWWEucHJvdG90eXBlLCJ0b29sdGlwIiwyKSx4aShbeGUoKV0sWWEucHJvdG90eXBlLCJpc0NvcHlpbmciLDIpLHhpKFt4ZSgpXSxZYS5wcm90b3R5cGUsInN0YXR1cyIsMikseGkoW3llKCldLFlhLnByb3RvdHlwZSwidmFsdWUiLDIpLHhpKFt5ZSgpXSxZYS5wcm90b3R5cGUsImZyb20iLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sWWEucHJvdG90eXBlLCJkaXNhYmxlZCIsMikseGkoW3llKHthdHRyaWJ1dGU6ImNvcHktbGFiZWwifSldLFlhLnByb3RvdHlwZSwiY29weUxhYmVsIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToic3VjY2Vzcy1sYWJlbCJ9KV0sWWEucHJvdG90eXBlLCJzdWNjZXNzTGFiZWwiLDIpLHhpKFt5ZSh7YXR0cmlidXRlOiJlcnJvci1sYWJlbCJ9KV0sWWEucHJvdG90eXBlLCJlcnJvckxhYmVsIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiZmVlZGJhY2stZHVyYXRpb24iLHR5cGU6TnVtYmVyfSldLFlhLnByb3RvdHlwZSwiZmVlZGJhY2tEdXJhdGlvbiIsMikseGkoW3llKHthdHRyaWJ1dGU6InRvb2x0aXAtcGxhY2VtZW50In0pXSxZYS5wcm90b3R5cGUsInRvb2x0aXBQbGFjZW1lbnQiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFufSldLFlhLnByb3RvdHlwZSwiaG9pc3QiLDIpLGVzKCJjb3B5LmluIix7a2V5ZnJhbWVzOlt7c2NhbGU6Ii4yNSIsb3BhY2l0eToiLjI1In0se3NjYWxlOiIxIixvcGFjaXR5OiIxIn1dLG9wdGlvbnM6e2R1cmF0aW9uOjEwMH19KSxlcygiY29weS5vdXQiLHtrZXlmcmFtZXM6W3tzY2FsZToiMSIsb3BhY2l0eToiMSJ9LHtzY2FsZToiLjI1IixvcGFjaXR5OiIwIn1dLG9wdGlvbnM6e2R1cmF0aW9uOjEwMH19KTtZYS5kZWZpbmUoInNsLWNvcHktYnV0dG9uIik7dmFyIFFhPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIFphKGUpe2xldCB0PVFhLmdldChlKTtyZXR1cm4gdHx8KHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSxudWxsKSxRYS5zZXQoZSx0KSksdH1mdW5jdGlvbiBKYShlKXtjb25zdCB0PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpLGk9TnVtYmVyKGUuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKTtpZihlLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKSYmKGlzTmFOKGkpfHxpPD0tMSkpcmV0dXJuITE7aWYoZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpcmV0dXJuITE7aWYoZS5jbG9zZXN0KCJbaW5lcnRdIikpcmV0dXJuITE7aWYoImlucHV0Ij09PXQmJiJyYWRpbyI9PT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpJiYhZS5oYXNBdHRyaWJ1dGUoImNoZWNrZWQiKSlyZXR1cm4hMTtpZighZnVuY3Rpb24oZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUuY2hlY2tWaXNpYmlsaXR5KXJldHVybiBlLmNoZWNrVmlzaWJpbGl0eSh7Y2hlY2tPcGFjaXR5OiExLGNoZWNrVmlzaWJpbGl0eUNTUzohMH0pO2NvbnN0IHQ9WmEoZSk7cmV0dXJuImhpZGRlbiIhPT10LnZpc2liaWxpdHkmJiJub25lIiE9PXQuZGlzcGxheX0oZSkpcmV0dXJuITE7aWYoKCJhdWRpbyI9PT10fHwidmlkZW8iPT09dCkmJmUuaGFzQXR0cmlidXRlKCJjb250cm9scyIpKXJldHVybiEwO2lmKGUuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpKXJldHVybiEwO2lmKGUuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKSYmImZhbHNlIiE9PWUuZ2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKSlyZXR1cm4hMDtyZXR1cm4hIVsiYnV0dG9uIiwiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSIsImEiLCJhdWRpbyIsInZpZGVvIiwic3VtbWFyeSIsImlmcmFtZSJdLmluY2x1ZGVzKHQpfHxmdW5jdGlvbihlKXtjb25zdCB0PVphKGUpLHtvdmVyZmxvd1k6aSxvdmVyZmxvd1g6b309dDtyZXR1cm4ic2Nyb2xsIj09PWl8fCJzY3JvbGwiPT09b3x8ImF1dG8iPT09aSYmImF1dG8iPT09byYmKGUuc2Nyb2xsSGVpZ2h0PmUuY2xpZW50SGVpZ2h0JiYiYXV0byI9PT1pfHwhKCEoZS5zY3JvbGxXaWR0aD5lLmNsaWVudFdpZHRoKXx8ImF1dG8iIT09bykpfShlKX1mdW5jdGlvbiBYYShlKXtjb25zdCB0PW5ldyBXZWFrTWFwLGk9W107cmV0dXJuIGZ1bmN0aW9uIG8obil7aWYobiBpbnN0YW5jZW9mIEVsZW1lbnQpe2lmKG4uaGFzQXR0cmlidXRlKCJpbmVydCIpfHxuLmNsb3Nlc3QoIltpbmVydF0iKSlyZXR1cm47aWYodC5oYXMobikpcmV0dXJuO3Quc2V0KG4sITApLCFpLmluY2x1ZGVzKG4pJiZKYShuKSYmaS5wdXNoKG4pLG4gaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnQmJmZ1bmN0aW9uKGUsdCl7dmFyIGk7cmV0dXJuKG51bGw9PShpPWUuZ2V0Um9vdE5vZGUoe2NvbXBvc2VkOiEwfSkpP3ZvaWQgMDppLmhvc3QpIT09dH0obixlKSYmbi5hc3NpZ25lZEVsZW1lbnRzKHtmbGF0dGVuOiEwfSkuZm9yRWFjaCgoZT0+e28oZSl9KSksbnVsbCE9PW4uc2hhZG93Um9vdCYmIm9wZW4iPT09bi5zaGFkb3dSb290Lm1vZGUmJm8obi5zaGFkb3dSb290KX1mb3IoY29uc3QgZSBvZiBuLmNoaWxkcmVuKW8oZSl9KGUpLGkuc29ydCgoKGUsdCk9Pntjb25zdCBpPU51bWJlcihlLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSl8fDA7cmV0dXJuKE51bWJlcih0LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSl8fDApLWl9KSl9ZnVuY3Rpb24qZWwoZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50KXtudWxsIT1lJiYoeWllbGQgZSwic2hhZG93Um9vdCJpbiBlJiZlLnNoYWRvd1Jvb3QmJiJjbG9zZWQiIT09ZS5zaGFkb3dSb290Lm1vZGUmJih5aWVsZCpTaShlbChlLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCkpKSl9dmFyIHRsPVtdLGlsPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMudGFiRGlyZWN0aW9uPSJmb3J3YXJkIix0aGlzLmhhbmRsZUZvY3VzSW49KCk9Pnt0aGlzLmlzQWN0aXZlKCkmJnRoaXMuY2hlY2tGb2N1cygpfSx0aGlzLmhhbmRsZUtleURvd249ZT0+e3ZhciB0O2lmKCJUYWIiIT09ZS5rZXl8fHRoaXMuaXNFeHRlcm5hbEFjdGl2YXRlZClyZXR1cm47aWYoIXRoaXMuaXNBY3RpdmUoKSlyZXR1cm47Y29uc3QgaT1bLi4uZWwoKV0ucG9wKCk7aWYodGhpcy5wcmV2aW91c0ZvY3VzPWksdGhpcy5wcmV2aW91c0ZvY3VzJiZ0aGlzLnBvc3NpYmx5SGFzVGFiYmFibGVDaGlsZHJlbih0aGlzLnByZXZpb3VzRm9jdXMpKXJldHVybjtlLnNoaWZ0S2V5P3RoaXMudGFiRGlyZWN0aW9uPSJiYWNrd2FyZCI6dGhpcy50YWJEaXJlY3Rpb249ImZvcndhcmQiO2NvbnN0IG89WGEodGhpcy5lbGVtZW50KTtsZXQgbj1vLmZpbmRJbmRleCgoZT0+ZT09PWkpKTt0aGlzLnByZXZpb3VzRm9jdXM9dGhpcy5jdXJyZW50Rm9jdXM7Y29uc3Qgcj0iZm9yd2FyZCI9PT10aGlzLnRhYkRpcmVjdGlvbj8xOi0xO2Zvcig7Oyl7bityPj1vLmxlbmd0aD9uPTA6bityPDA/bj1vLmxlbmd0aC0xOm4rPXIsdGhpcy5wcmV2aW91c0ZvY3VzPXRoaXMuY3VycmVudEZvY3VzO2NvbnN0IGk9b1tuXTtpZigiYmFja3dhcmQiPT09dGhpcy50YWJEaXJlY3Rpb24mJnRoaXMucHJldmlvdXNGb2N1cyYmdGhpcy5wb3NzaWJseUhhc1RhYmJhYmxlQ2hpbGRyZW4odGhpcy5wcmV2aW91c0ZvY3VzKSlyZXR1cm47aWYoaSYmdGhpcy5wb3NzaWJseUhhc1RhYmJhYmxlQ2hpbGRyZW4oaSkpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSx0aGlzLmN1cnJlbnRGb2N1cz1pLG51bGw9PSh0PXRoaXMuY3VycmVudEZvY3VzKXx8dC5mb2N1cyh7cHJldmVudFNjcm9sbDohMX0pO2NvbnN0IHM9Wy4uLmVsKCldO2lmKHMuaW5jbHVkZXModGhpcy5jdXJyZW50Rm9jdXMpfHwhcy5pbmNsdWRlcyh0aGlzLnByZXZpb3VzRm9jdXMpKWJyZWFrfXNldFRpbWVvdXQoKCgpPT50aGlzLmNoZWNrRm9jdXMoKSkpfSx0aGlzLmhhbmRsZUtleVVwPSgpPT57dGhpcy50YWJEaXJlY3Rpb249ImZvcndhcmQifSx0aGlzLmVsZW1lbnQ9ZSx0aGlzLmVsZW1lbnRzV2l0aFRhYmJhYmxlQ29udHJvbHM9WyJpZnJhbWUiXX1hY3RpdmF0ZSgpe3RsLnB1c2godGhpcy5lbGVtZW50KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIix0aGlzLmhhbmRsZUZvY3VzSW4pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuaGFuZGxlS2V5VXApfWRlYWN0aXZhdGUoKXt0bD10bC5maWx0ZXIoKGU9PmUhPT10aGlzLmVsZW1lbnQpKSx0aGlzLmN1cnJlbnRGb2N1cz1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLHRoaXMuaGFuZGxlRm9jdXNJbiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oYW5kbGVLZXlVcCl9aXNBY3RpdmUoKXtyZXR1cm4gdGxbdGwubGVuZ3RoLTFdPT09dGhpcy5lbGVtZW50fWFjdGl2YXRlRXh0ZXJuYWwoKXt0aGlzLmlzRXh0ZXJuYWxBY3RpdmF0ZWQ9ITB9ZGVhY3RpdmF0ZUV4dGVybmFsKCl7dGhpcy5pc0V4dGVybmFsQWN0aXZhdGVkPSExfWNoZWNrRm9jdXMoKXtpZih0aGlzLmlzQWN0aXZlKCkmJiF0aGlzLmlzRXh0ZXJuYWxBY3RpdmF0ZWQpe2NvbnN0IGU9WGEodGhpcy5lbGVtZW50KTtpZighdGhpcy5lbGVtZW50Lm1hdGNoZXMoIjpmb2N1cy13aXRoaW4iKSl7Y29uc3QgdD1lWzBdLGk9ZVtlLmxlbmd0aC0xXSxvPSJmb3J3YXJkIj09PXRoaXMudGFiRGlyZWN0aW9uP3Q6aTsiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09bz92b2lkIDA6by5mb2N1cykmJih0aGlzLmN1cnJlbnRGb2N1cz1vLG8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITF9KSl9fX1wb3NzaWJseUhhc1RhYmJhYmxlQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuZWxlbWVudHNXaXRoVGFiYmFibGVDb250cm9scy5pbmNsdWRlcyhlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl8fGUuaGFzQXR0cmlidXRlKCJjb250cm9scyIpfX07dmFyIG9sPW5ldyBTZXQ7ZnVuY3Rpb24gbmwoZSl7aWYob2wuYWRkKGUpLCFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbC1zY3JvbGwtbG9jayIpKXtjb25zdCBlPWZ1bmN0aW9uKCl7Y29uc3QgZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7cmV0dXJuIE1hdGguYWJzKHdpbmRvdy5pbm5lcldpZHRoLWUpfSgpK2Z1bmN0aW9uKCl7Y29uc3QgZT1OdW1iZXIoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5wYWRkaW5nUmlnaHQucmVwbGFjZSgvcHgvLCIiKSk7cmV0dXJuIGlzTmFOKGUpfHwhZT8wOmV9KCk7bGV0IHQ9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLnNjcm9sbGJhckd1dHRlcjt0JiYiYXV0byIhPT10fHwodD0ic3RhYmxlIiksZTw9MCYmKHQ9InJldmVydCIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zbC1zY3JvbGwtbG9jay1ndXR0ZXIiLHQpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzbC1zY3JvbGwtbG9jayIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zbC1zY3JvbGwtbG9jay1zaXplIixgJHtlfXB4YCl9fWZ1bmN0aW9uIHJsKGUpe29sLmRlbGV0ZShlKSwwPT09b2wuc2l6ZSYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJzbC1zY3JvbGwtbG9jayIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1zbC1zY3JvbGwtbG9jay1zaXplIikpfXZhciBzbD1oYAogIDpob3N0IHsKICAgIC0td2lkdGg6IDMxcmVtOwogICAgLS1oZWFkZXItc3BhY2luZzogdmFyKC0tc2wtc3BhY2luZy1sYXJnZSk7CiAgICAtLWJvZHktc3BhY2luZzogdmFyKC0tc2wtc3BhY2luZy1sYXJnZSk7CiAgICAtLWZvb3Rlci1zcGFjaW5nOiB2YXIoLS1zbC1zcGFjaW5nLWxhcmdlKTsKCiAgICBkaXNwbGF5OiBjb250ZW50czsKICB9CgogIC5kaWFsb2cgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogMDsKICAgIHotaW5kZXg6IHZhcigtLXNsLXotaW5kZXgtZGlhbG9nKTsKICB9CgogIC5kaWFsb2dfX3BhbmVsIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgei1pbmRleDogMjsKICAgIHdpZHRoOiB2YXIoLS13aWR0aCk7CiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNsLXNwYWNpbmctMngtbGFyZ2UpKTsKICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLXNsLXNwYWNpbmctMngtbGFyZ2UpKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLXBhbmVsLWJhY2tncm91bmQtY29sb3IpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtYm9yZGVyLXJhZGl1cy1tZWRpdW0pOwogICAgYm94LXNoYWRvdzogdmFyKC0tc2wtc2hhZG93LXgtbGFyZ2UpOwogIH0KCiAgLmRpYWxvZ19fcGFuZWw6Zm9jdXMgewogICAgb3V0bGluZTogbm9uZTsKICB9CgogIC8qIEVuc3VyZSB0aGVyZSdzIGVub3VnaCB2ZXJ0aWNhbCBwYWRkaW5nIGZvciBwaG9uZXMgdGhhdCBkb24ndCB1cGRhdGUgdmggd2hlbiBjaHJvbWUgYXBwZWFycyAoZS5nLiBpUGhvbmUpICovCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHsKICAgIC5kaWFsb2dfX3BhbmVsIHsKICAgICAgbWF4LWhlaWdodDogODB2aDsKICAgIH0KICB9CgogIC5kaWFsb2ctLW9wZW4gLmRpYWxvZ19fcGFuZWwgewogICAgZGlzcGxheTogZmxleDsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAuZGlhbG9nX19oZWFkZXIgewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KCiAgLmRpYWxvZ19fdGl0bGUgewogICAgZmxleDogMSAxIGF1dG87CiAgICBmb250OiBpbmhlcml0OwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbGFyZ2UpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLXNsLWxpbmUtaGVpZ2h0LWRlbnNlKTsKICAgIHBhZGRpbmc6IHZhcigtLWhlYWRlci1zcGFjaW5nKTsKICAgIG1hcmdpbjogMDsKICB9CgogIC5kaWFsb2dfX2hlYWRlci1hY3Rpb25zIHsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGp1c3RpZnktY29udGVudDogZW5kOwogICAgZ2FwOiB2YXIoLS1zbC1zcGFjaW5nLTJ4LXNtYWxsKTsKICAgIHBhZGRpbmc6IDAgdmFyKC0taGVhZGVyLXNwYWNpbmcpOwogIH0KCiAgLmRpYWxvZ19faGVhZGVyLWFjdGlvbnMgc2wtaWNvbi1idXR0b24sCiAgLmRpYWxvZ19faGVhZGVyLWFjdGlvbnMgOjpzbG90dGVkKHNsLWljb24tYnV0dG9uKSB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbWVkaXVtKTsKICB9CgogIC5kaWFsb2dfX2JvZHkgewogICAgZmxleDogMSAxIGF1dG87CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmc6IHZhcigtLWJvZHktc3BhY2luZyk7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICB9CgogIC5kaWFsb2dfX2Zvb3RlciB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgcGFkZGluZzogdmFyKC0tZm9vdGVyLXNwYWNpbmcpOwogIH0KCiAgLmRpYWxvZ19fZm9vdGVyIDo6c2xvdHRlZChzbC1idXR0b246bm90KDpmaXJzdC1vZi10eXBlKSkgewogICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2wtc3BhY2luZy14LXNtYWxsKTsKICB9CgogIC5kaWFsb2c6bm90KC5kaWFsb2ctLWhhcy1mb290ZXIpIC5kaWFsb2dfX2Zvb3RlciB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KCiAgLmRpYWxvZ19fb3ZlcmxheSB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIGJvdHRvbTogMDsKICAgIGxlZnQ6IDA7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1vdmVybGF5LWJhY2tncm91bmQtY29sb3IpOwogIH0KCiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsKICAgIC5kaWFsb2dfX3BhbmVsIHsKICAgICAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICAgIH0KICB9CmAsYWw9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5oYXNTbG90Q29udHJvbGxlcj1uZXcgd3ModGhpcywiZm9vdGVyIiksdGhpcy5sb2NhbGl6ZT1uZXcgdnModGhpcyksdGhpcy5tb2RhbD1uZXcgaWwodGhpcyksdGhpcy5vcGVuPSExLHRoaXMubGFiZWw9IiIsdGhpcy5ub0hlYWRlcj0hMSx0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93bj1lPT57IkVzY2FwZSI9PT1lLmtleSYmdGhpcy5tb2RhbC5pc0FjdGl2ZSgpJiZ0aGlzLm9wZW4mJihlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMucmVxdWVzdENsb3NlKCJrZXlib2FyZCIpKX19Zmlyc3RVcGRhdGVkKCl7dGhpcy5kaWFsb2cuaGlkZGVuPSF0aGlzLm9wZW4sdGhpcy5vcGVuJiYodGhpcy5hZGRPcGVuTGlzdGVuZXJzKCksdGhpcy5tb2RhbC5hY3RpdmF0ZSgpLG5sKHRoaXMpKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBlO3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb2RhbC5kZWFjdGl2YXRlKCkscmwodGhpcyksbnVsbD09KGU9dGhpcy5jbG9zZVdhdGNoZXIpfHxlLmRlc3Ryb3koKX1yZXF1ZXN0Q2xvc2UoZSl7aWYodGhpcy5lbWl0KCJzbC1yZXF1ZXN0LWNsb3NlIix7Y2FuY2VsYWJsZTohMCxkZXRhaWw6e3NvdXJjZTplfX0pLmRlZmF1bHRQcmV2ZW50ZWQpe2NvbnN0IGU9dHModGhpcywiZGlhbG9nLmRlbnlDbG9zZSIse2Rpcjp0aGlzLmxvY2FsaXplLmRpcigpfSk7b3ModGhpcy5wYW5lbCxlLmtleWZyYW1lcyxlLm9wdGlvbnMpfWVsc2UgdGhpcy5oaWRlKCl9YWRkT3Blbkxpc3RlbmVycygpe3ZhciBlOyJDbG9zZVdhdGNoZXIiaW4gd2luZG93PyhudWxsPT0oZT10aGlzLmNsb3NlV2F0Y2hlcil8fGUuZGVzdHJveSgpLHRoaXMuY2xvc2VXYXRjaGVyPW5ldyBDbG9zZVdhdGNoZXIsdGhpcy5jbG9zZVdhdGNoZXIub25jbG9zZT0oKT0+dGhpcy5yZXF1ZXN0Q2xvc2UoImtleWJvYXJkIikpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRLZXlEb3duKX1yZW1vdmVPcGVuTGlzdGVuZXJzKCl7dmFyIGU7bnVsbD09KGU9dGhpcy5jbG9zZVdhdGNoZXIpfHxlLmRlc3Ryb3koKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93bil9YXN5bmMgaGFuZGxlT3BlbkNoYW5nZSgpe2lmKHRoaXMub3Blbil7dGhpcy5lbWl0KCJzbC1zaG93IiksdGhpcy5hZGRPcGVuTGlzdGVuZXJzKCksdGhpcy5vcmlnaW5hbFRyaWdnZXI9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCx0aGlzLm1vZGFsLmFjdGl2YXRlKCksbmwodGhpcyk7Y29uc3QgZT10aGlzLnF1ZXJ5U2VsZWN0b3IoIlthdXRvZm9jdXNdIik7ZSYmZS5yZW1vdmVBdHRyaWJ1dGUoImF1dG9mb2N1cyIpLGF3YWl0IFByb21pc2UuYWxsKFtzcyh0aGlzLmRpYWxvZyksc3ModGhpcy5vdmVybGF5KV0pLHRoaXMuZGlhbG9nLmhpZGRlbj0hMSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5lbWl0KCJzbC1pbml0aWFsLWZvY3VzIix7Y2FuY2VsYWJsZTohMH0pLmRlZmF1bHRQcmV2ZW50ZWR8fChlP2UuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KTp0aGlzLnBhbmVsLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSkpLGUmJmUuc2V0QXR0cmlidXRlKCJhdXRvZm9jdXMiLCIiKX0pKTtjb25zdCB0PXRzKHRoaXMsImRpYWxvZy5zaG93Iix7ZGlyOnRoaXMubG9jYWxpemUuZGlyKCl9KSxpPXRzKHRoaXMsImRpYWxvZy5vdmVybGF5LnNob3ciLHtkaXI6dGhpcy5sb2NhbGl6ZS5kaXIoKX0pO2F3YWl0IFByb21pc2UuYWxsKFtvcyh0aGlzLnBhbmVsLHQua2V5ZnJhbWVzLHQub3B0aW9ucyksb3ModGhpcy5vdmVybGF5LGkua2V5ZnJhbWVzLGkub3B0aW9ucyldKSx0aGlzLmVtaXQoInNsLWFmdGVyLXNob3ciKX1lbHNle3RoaXMuZW1pdCgic2wtaGlkZSIpLHRoaXMucmVtb3ZlT3Blbkxpc3RlbmVycygpLHRoaXMubW9kYWwuZGVhY3RpdmF0ZSgpLGF3YWl0IFByb21pc2UuYWxsKFtzcyh0aGlzLmRpYWxvZyksc3ModGhpcy5vdmVybGF5KV0pO2NvbnN0IGU9dHModGhpcywiZGlhbG9nLmhpZGUiLHtkaXI6dGhpcy5sb2NhbGl6ZS5kaXIoKX0pLHQ9dHModGhpcywiZGlhbG9nLm92ZXJsYXkuaGlkZSIse2Rpcjp0aGlzLmxvY2FsaXplLmRpcigpfSk7YXdhaXQgUHJvbWlzZS5hbGwoW29zKHRoaXMub3ZlcmxheSx0LmtleWZyYW1lcyx0Lm9wdGlvbnMpLnRoZW4oKCgpPT57dGhpcy5vdmVybGF5LmhpZGRlbj0hMH0pKSxvcyh0aGlzLnBhbmVsLGUua2V5ZnJhbWVzLGUub3B0aW9ucykudGhlbigoKCk9Pnt0aGlzLnBhbmVsLmhpZGRlbj0hMH0pKV0pLHRoaXMuZGlhbG9nLmhpZGRlbj0hMCx0aGlzLm92ZXJsYXkuaGlkZGVuPSExLHRoaXMucGFuZWwuaGlkZGVuPSExLHJsKHRoaXMpO2NvbnN0IGk9dGhpcy5vcmlnaW5hbFRyaWdnZXI7ImZ1bmN0aW9uIj09dHlwZW9mKG51bGw9PWk/dm9pZCAwOmkuZm9jdXMpJiZzZXRUaW1lb3V0KCgoKT0+aS5mb2N1cygpKSksdGhpcy5lbWl0KCJzbC1hZnRlci1oaWRlIil9fWFzeW5jIHNob3coKXtpZighdGhpcy5vcGVuKXJldHVybiB0aGlzLm9wZW49ITAsaXModGhpcywic2wtYWZ0ZXItc2hvdyIpfWFzeW5jIGhpZGUoKXtpZih0aGlzLm9wZW4pcmV0dXJuIHRoaXMub3Blbj0hMSxpcyh0aGlzLCJzbC1hZnRlci1oaWRlIil9cmVuZGVyKCl7cmV0dXJuIFFgCiAgICAgIDxkaXYKICAgICAgICBwYXJ0PSJiYXNlIgogICAgICAgIGNsYXNzPSR7S3Ioe2RpYWxvZzohMCwiZGlhbG9nLS1vcGVuIjp0aGlzLm9wZW4sImRpYWxvZy0taGFzLWZvb3RlciI6dGhpcy5oYXNTbG90Q29udHJvbGxlci50ZXN0KCJmb290ZXIiKX0pfQogICAgICA+CiAgICAgICAgPGRpdiBwYXJ0PSJvdmVybGF5IiBjbGFzcz0iZGlhbG9nX19vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5yZXF1ZXN0Q2xvc2UoIm92ZXJsYXkiKX0gdGFiaW5kZXg9Ii0xIj48L2Rpdj4KCiAgICAgICAgPGRpdgogICAgICAgICAgcGFydD0icGFuZWwiCiAgICAgICAgICBjbGFzcz0iZGlhbG9nX19wYW5lbCIKICAgICAgICAgIHJvbGU9ImRpYWxvZyIKICAgICAgICAgIGFyaWEtbW9kYWw9InRydWUiCiAgICAgICAgICBhcmlhLWhpZGRlbj0ke3RoaXMub3Blbj8iZmFsc2UiOiJ0cnVlIn0KICAgICAgICAgIGFyaWEtbGFiZWw9JHskZSh0aGlzLm5vSGVhZGVyP3RoaXMubGFiZWw6dm9pZCAwKX0KICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0keyRlKHRoaXMubm9IZWFkZXI/dm9pZCAwOiJ0aXRsZSIpfQogICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgID4KICAgICAgICAgICR7dGhpcy5ub0hlYWRlcj8iIjpRYAogICAgICAgICAgICAgICAgPGhlYWRlciBwYXJ0PSJoZWFkZXIiIGNsYXNzPSJkaWFsb2dfX2hlYWRlciI+CiAgICAgICAgICAgICAgICAgIDxoMiBwYXJ0PSJ0aXRsZSIgY2xhc3M9ImRpYWxvZ19fdGl0bGUiIGlkPSJ0aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT0ibGFiZWwiPiAke3RoaXMubGFiZWwubGVuZ3RoPjA/dGhpcy5sYWJlbDpTdHJpbmcuZnJvbUNoYXJDb2RlKDY1Mjc5KX0gPC9zbG90PgogICAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICAgICAgICA8ZGl2IHBhcnQ9ImhlYWRlci1hY3Rpb25zIiBjbGFzcz0iZGlhbG9nX19oZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT0iaGVhZGVyLWFjdGlvbnMiPjwvc2xvdD4KICAgICAgICAgICAgICAgICAgICA8c2wtaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICAgIHBhcnQ9ImNsb3NlLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHBhcnRzPSJiYXNlOmNsb3NlLWJ1dHRvbl9fYmFzZSIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2dfX2Nsb3NlIgogICAgICAgICAgICAgICAgICAgICAgbmFtZT0ieC1sZyIKICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPSR7dGhpcy5sb2NhbGl6ZS50ZXJtKCJjbG9zZSIpfQogICAgICAgICAgICAgICAgICAgICAgbGlicmFyeT0ic3lzdGVtIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnJlcXVlc3RDbG9zZSgiY2xvc2UtYnV0dG9uIil9IgogICAgICAgICAgICAgICAgICAgID48L3NsLWljb24tYnV0dG9uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvaGVhZGVyPgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAkeyIifQogICAgICAgICAgPGRpdiBwYXJ0PSJib2R5IiBjbGFzcz0iZGlhbG9nX19ib2R5IiB0YWJpbmRleD0iLTEiPjxzbG90Pjwvc2xvdD48L2Rpdj4KCiAgICAgICAgICA8Zm9vdGVyIHBhcnQ9ImZvb3RlciIgY2xhc3M9ImRpYWxvZ19fZm9vdGVyIj4KICAgICAgICAgICAgPHNsb3QgbmFtZT0iZm9vdGVyIj48L3Nsb3Q+CiAgICAgICAgICA8L2Zvb3Rlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX07YWwuc3R5bGVzPVtOcixzbF0sYWwuZGVwZW5kZW5jaWVzPXsic2wtaWNvbi1idXR0b24iOllyfSx4aShbU2UoIi5kaWFsb2ciKV0sYWwucHJvdG90eXBlLCJkaWFsb2ciLDIpLHhpKFtTZSgiLmRpYWxvZ19fcGFuZWwiKV0sYWwucHJvdG90eXBlLCJwYW5lbCIsMikseGkoW1NlKCIuZGlhbG9nX19vdmVybGF5IildLGFsLnByb3RvdHlwZSwib3ZlcmxheSIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxhbC5wcm90b3R5cGUsIm9wZW4iLDIpLHhpKFt5ZSh7cmVmbGVjdDohMH0pXSxhbC5wcm90b3R5cGUsImxhYmVsIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToibm8taGVhZGVyIix0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxhbC5wcm90b3R5cGUsIm5vSGVhZGVyIiwyKSx4aShbQnIoIm9wZW4iLHt3YWl0VW50aWxGaXJzdFVwZGF0ZTohMH0pXSxhbC5wcm90b3R5cGUsImhhbmRsZU9wZW5DaGFuZ2UiLDEpLGVzKCJkaWFsb2cuc2hvdyIse2tleWZyYW1lczpbe29wYWNpdHk6MCxzY2FsZTouOH0se29wYWNpdHk6MSxzY2FsZToxfV0sb3B0aW9uczp7ZHVyYXRpb246MjUwLGVhc2luZzoiZWFzZSJ9fSksZXMoImRpYWxvZy5oaWRlIix7a2V5ZnJhbWVzOlt7b3BhY2l0eToxLHNjYWxlOjF9LHtvcGFjaXR5OjAsc2NhbGU6Ljh9XSxvcHRpb25zOntkdXJhdGlvbjoyNTAsZWFzaW5nOiJlYXNlIn19KSxlcygiZGlhbG9nLmRlbnlDbG9zZSIse2tleWZyYW1lczpbe3NjYWxlOjF9LHtzY2FsZToxLjAyfSx7c2NhbGU6MX1dLG9wdGlvbnM6e2R1cmF0aW9uOjI1MH19KSxlcygiZGlhbG9nLm92ZXJsYXkuc2hvdyIse2tleWZyYW1lczpbe29wYWNpdHk6MH0se29wYWNpdHk6MX1dLG9wdGlvbnM6e2R1cmF0aW9uOjI1MH19KSxlcygiZGlhbG9nLm92ZXJsYXkuaGlkZSIse2tleWZyYW1lczpbe29wYWNpdHk6MX0se29wYWNpdHk6MH1dLG9wdGlvbnM6e2R1cmF0aW9uOjI1MH19KTthbC5kZWZpbmUoInNsLWRpYWxvZyIpO3ZhciBsbD1oYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CgogIC5kcm9wZG93bjo6cGFydChwb3B1cCkgewogICAgei1pbmRleDogdmFyKC0tc2wtei1pbmRleC1kcm9wZG93bik7CiAgfQoKICAuZHJvcGRvd25bZGF0YS1jdXJyZW50LXBsYWNlbWVudF49J3RvcCddOjpwYXJ0KHBvcHVwKSB7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207CiAgfQoKICAuZHJvcGRvd25bZGF0YS1jdXJyZW50LXBsYWNlbWVudF49J2JvdHRvbSddOjpwYXJ0KHBvcHVwKSB7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7CiAgfQoKICAuZHJvcGRvd25bZGF0YS1jdXJyZW50LXBsYWNlbWVudF49J2xlZnQnXTo6cGFydChwb3B1cCkgewogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7CiAgfQoKICAuZHJvcGRvd25bZGF0YS1jdXJyZW50LXBsYWNlbWVudF49J3JpZ2h0J106OnBhcnQocG9wdXApIHsKICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7CiAgfQoKICAuZHJvcGRvd25fX3RyaWdnZXIgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQoKICAuZHJvcGRvd25fX3BhbmVsIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1zbC1mb250LXNhbnMpOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbWVkaXVtKTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpOwogICAgYm94LXNoYWRvdzogdmFyKC0tc2wtc2hhZG93LWxhcmdlKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNsLWJvcmRlci1yYWRpdXMtbWVkaXVtKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmRyb3Bkb3duLS1vcGVuIC5kcm9wZG93bl9fcGFuZWwgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb2ludGVyLWV2ZW50czogYWxsOwogIH0KCiAgLyogV2hlbiB1c2VycyBzbG90IGEgbWVudSwgbWFrZSBzdXJlIGl0IGNvbmZvcm1zIHRvIHRoZSBwb3B1cCdzIGF1dG8tc2l6ZSAqLwogIDo6c2xvdHRlZChzbC1tZW51KSB7CiAgICBtYXgtd2lkdGg6IHZhcigtLWF1dG8tc2l6ZS1hdmFpbGFibGUtd2lkdGgpICFpbXBvcnRhbnQ7CiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1hdXRvLXNpemUtYXZhaWxhYmxlLWhlaWdodCkgIWltcG9ydGFudDsKICB9CmAsY2w9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2NhbGl6ZT1uZXcgdnModGhpcyksdGhpcy5vcGVuPSExLHRoaXMucGxhY2VtZW50PSJib3R0b20tc3RhcnQiLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5zdGF5T3Blbk9uU2VsZWN0PSExLHRoaXMuZGlzdGFuY2U9MCx0aGlzLnNraWRkaW5nPTAsdGhpcy5ob2lzdD0hMSx0aGlzLnN5bmM9dm9pZCAwLHRoaXMuaGFuZGxlS2V5RG93bj1lPT57dGhpcy5vcGVuJiYiRXNjYXBlIj09PWUua2V5JiYoZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhpZGUoKSx0aGlzLmZvY3VzT25UcmlnZ2VyKCkpfSx0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93bj1lPT57dmFyIHQ7aWYoIkVzY2FwZSI9PT1lLmtleSYmdGhpcy5vcGVuJiYhdGhpcy5jbG9zZVdhdGNoZXIpcmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5mb2N1c09uVHJpZ2dlcigpLHZvaWQgdGhpcy5oaWRlKCk7aWYoIlRhYiI9PT1lLmtleSl7aWYodGhpcy5vcGVuJiYic2wtbWVudS1pdGVtIj09PShudWxsPT0odD1kb2N1bWVudC5hY3RpdmVFbGVtZW50KT92b2lkIDA6dC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWRlKCksdm9pZCB0aGlzLmZvY3VzT25UcmlnZ2VyKCk7c2V0VGltZW91dCgoKCk9Pnt2YXIgZSx0LGk7Y29uc3Qgbz0obnVsbD09KGU9dGhpcy5jb250YWluaW5nRWxlbWVudCk/dm9pZCAwOmUuZ2V0Um9vdE5vZGUoKSlpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/bnVsbD09KGk9bnVsbD09KHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk/dm9pZCAwOnQuc2hhZG93Um9vdCk/dm9pZCAwOmkuYWN0aXZlRWxlbWVudDpkb2N1bWVudC5hY3RpdmVFbGVtZW50O3RoaXMuY29udGFpbmluZ0VsZW1lbnQmJihudWxsPT1vP3ZvaWQgMDpvLmNsb3Nlc3QodGhpcy5jb250YWluaW5nRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKT09PXRoaXMuY29udGFpbmluZ0VsZW1lbnR8fHRoaXMuaGlkZSgpfSkpfX0sdGhpcy5oYW5kbGVEb2N1bWVudE1vdXNlRG93bj1lPT57Y29uc3QgdD1lLmNvbXBvc2VkUGF0aCgpO3RoaXMuY29udGFpbmluZ0VsZW1lbnQmJiF0LmluY2x1ZGVzKHRoaXMuY29udGFpbmluZ0VsZW1lbnQpJiZ0aGlzLmhpZGUoKX0sdGhpcy5oYW5kbGVQYW5lbFNlbGVjdD1lPT57Y29uc3QgdD1lLnRhcmdldDt0aGlzLnN0YXlPcGVuT25TZWxlY3R8fCJzbC1tZW51IiE9PXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpfHwodGhpcy5oaWRlKCksdGhpcy5mb2N1c09uVHJpZ2dlcigpKX19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29udGFpbmluZ0VsZW1lbnR8fCh0aGlzLmNvbnRhaW5pbmdFbGVtZW50PXRoaXMpfWZpcnN0VXBkYXRlZCgpe3RoaXMucGFuZWwuaGlkZGVuPSF0aGlzLm9wZW4sdGhpcy5vcGVuJiYodGhpcy5hZGRPcGVuTGlzdGVuZXJzKCksdGhpcy5wb3B1cC5hY3RpdmU9ITApfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJlbW92ZU9wZW5MaXN0ZW5lcnMoKSx0aGlzLmhpZGUoKX1mb2N1c09uVHJpZ2dlcigpe2NvbnN0IGU9dGhpcy50cmlnZ2VyLmFzc2lnbmVkRWxlbWVudHMoe2ZsYXR0ZW46ITB9KVswXTsiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09ZT92b2lkIDA6ZS5mb2N1cykmJmUuZm9jdXMoKX1nZXRNZW51KCl7cmV0dXJuIHRoaXMucGFuZWwuYXNzaWduZWRFbGVtZW50cyh7ZmxhdHRlbjohMH0pLmZpbmQoKGU9PiJzbC1tZW51Ij09PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSl9aGFuZGxlVHJpZ2dlckNsaWNrKCl7dGhpcy5vcGVuP3RoaXMuaGlkZSgpOih0aGlzLnNob3coKSx0aGlzLmZvY3VzT25UcmlnZ2VyKCkpfWFzeW5jIGhhbmRsZVRyaWdnZXJLZXlEb3duKGUpe2lmKFsiICIsIkVudGVyIl0uaW5jbHVkZXMoZS5rZXkpKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksdm9pZCB0aGlzLmhhbmRsZVRyaWdnZXJDbGljaygpO2NvbnN0IHQ9dGhpcy5nZXRNZW51KCk7aWYodCl7Y29uc3QgaT10LmdldEFsbEl0ZW1zKCksbz1pWzBdLG49aVtpLmxlbmd0aC0xXTtbIkFycm93RG93biIsIkFycm93VXAiLCJIb21lIiwiRW5kIl0uaW5jbHVkZXMoZS5rZXkpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub3Blbnx8KHRoaXMuc2hvdygpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUpLGkubGVuZ3RoPjAmJnRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKCk9PnsiQXJyb3dEb3duIiE9PWUua2V5JiYiSG9tZSIhPT1lLmtleXx8KHQuc2V0Q3VycmVudEl0ZW0obyksby5mb2N1cygpKSwiQXJyb3dVcCIhPT1lLmtleSYmIkVuZCIhPT1lLmtleXx8KHQuc2V0Q3VycmVudEl0ZW0obiksbi5mb2N1cygpKX0pKSl9fWhhbmRsZVRyaWdnZXJLZXlVcChlKXsiICI9PT1lLmtleSYmZS5wcmV2ZW50RGVmYXVsdCgpfWhhbmRsZVRyaWdnZXJTbG90Q2hhbmdlKCl7dGhpcy51cGRhdGVBY2Nlc3NpYmxlVHJpZ2dlcigpfXVwZGF0ZUFjY2Vzc2libGVUcmlnZ2VyKCl7Y29uc3QgZT10aGlzLnRyaWdnZXIuYXNzaWduZWRFbGVtZW50cyh7ZmxhdHRlbjohMH0pLmZpbmQoKGU9PmZ1bmN0aW9uKGUpe3ZhciB0LGk7Y29uc3Qgbz1YYShlKTtyZXR1cm57c3RhcnQ6bnVsbCE9KHQ9b1swXSk/dDpudWxsLGVuZDpudWxsIT0oaT1vW28ubGVuZ3RoLTFdKT9pOm51bGx9fShlKS5zdGFydCkpO2xldCB0O2lmKGUpe3N3aXRjaChlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl7Y2FzZSJzbC1idXR0b24iOmNhc2Uic2wtaWNvbi1idXR0b24iOnQ9ZS5idXR0b247YnJlYWs7ZGVmYXVsdDp0PWV9dC5zZXRBdHRyaWJ1dGUoImFyaWEtaGFzcG9wdXAiLCJ0cnVlIiksdC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLHRoaXMub3Blbj8idHJ1ZSI6ImZhbHNlIil9fWFzeW5jIHNob3coKXtpZighdGhpcy5vcGVuKXJldHVybiB0aGlzLm9wZW49ITAsaXModGhpcywic2wtYWZ0ZXItc2hvdyIpfWFzeW5jIGhpZGUoKXtpZih0aGlzLm9wZW4pcmV0dXJuIHRoaXMub3Blbj0hMSxpcyh0aGlzLCJzbC1hZnRlci1oaWRlIil9cmVwb3NpdGlvbigpe3RoaXMucG9wdXAucmVwb3NpdGlvbigpfWFkZE9wZW5MaXN0ZW5lcnMoKXt2YXIgZTt0aGlzLnBhbmVsLmFkZEV2ZW50TGlzdGVuZXIoInNsLXNlbGVjdCIsdGhpcy5oYW5kbGVQYW5lbFNlbGVjdCksIkNsb3NlV2F0Y2hlciJpbiB3aW5kb3c/KG51bGw9PShlPXRoaXMuY2xvc2VXYXRjaGVyKXx8ZS5kZXN0cm95KCksdGhpcy5jbG9zZVdhdGNoZXI9bmV3IENsb3NlV2F0Y2hlcix0aGlzLmNsb3NlV2F0Y2hlci5vbmNsb3NlPSgpPT57dGhpcy5oaWRlKCksdGhpcy5mb2N1c09uVHJpZ2dlcigpfSk6dGhpcy5wYW5lbC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRLZXlEb3duKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRNb3VzZURvd24pfXJlbW92ZU9wZW5MaXN0ZW5lcnMoKXt2YXIgZTt0aGlzLnBhbmVsJiYodGhpcy5wYW5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJzbC1zZWxlY3QiLHRoaXMuaGFuZGxlUGFuZWxTZWxlY3QpLHRoaXMucGFuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVEb2N1bWVudEtleURvd24pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5oYW5kbGVEb2N1bWVudE1vdXNlRG93biksbnVsbD09KGU9dGhpcy5jbG9zZVdhdGNoZXIpfHxlLmRlc3Ryb3koKX1hc3luYyBoYW5kbGVPcGVuQ2hhbmdlKCl7aWYodGhpcy5kaXNhYmxlZCl0aGlzLm9wZW49ITE7ZWxzZSBpZih0aGlzLnVwZGF0ZUFjY2Vzc2libGVUcmlnZ2VyKCksdGhpcy5vcGVuKXt0aGlzLmVtaXQoInNsLXNob3ciKSx0aGlzLmFkZE9wZW5MaXN0ZW5lcnMoKSxhd2FpdCBzcyh0aGlzKSx0aGlzLnBhbmVsLmhpZGRlbj0hMSx0aGlzLnBvcHVwLmFjdGl2ZT0hMDtjb25zdHtrZXlmcmFtZXM6ZSxvcHRpb25zOnR9PXRzKHRoaXMsImRyb3Bkb3duLnNob3ciLHtkaXI6dGhpcy5sb2NhbGl6ZS5kaXIoKX0pO2F3YWl0IG9zKHRoaXMucG9wdXAucG9wdXAsZSx0KSx0aGlzLmVtaXQoInNsLWFmdGVyLXNob3ciKX1lbHNle3RoaXMuZW1pdCgic2wtaGlkZSIpLHRoaXMucmVtb3ZlT3Blbkxpc3RlbmVycygpLGF3YWl0IHNzKHRoaXMpO2NvbnN0e2tleWZyYW1lczplLG9wdGlvbnM6dH09dHModGhpcywiZHJvcGRvd24uaGlkZSIse2Rpcjp0aGlzLmxvY2FsaXplLmRpcigpfSk7YXdhaXQgb3ModGhpcy5wb3B1cC5wb3B1cCxlLHQpLHRoaXMucGFuZWwuaGlkZGVuPSEwLHRoaXMucG9wdXAuYWN0aXZlPSExLHRoaXMuZW1pdCgic2wtYWZ0ZXItaGlkZSIpfX1yZW5kZXIoKXtyZXR1cm4gUWAKICAgICAgPHNsLXBvcHVwCiAgICAgICAgcGFydD0iYmFzZSIKICAgICAgICBpZD0iZHJvcGRvd24iCiAgICAgICAgcGxhY2VtZW50PSR7dGhpcy5wbGFjZW1lbnR9CiAgICAgICAgZGlzdGFuY2U9JHt0aGlzLmRpc3RhbmNlfQogICAgICAgIHNraWRkaW5nPSR7dGhpcy5za2lkZGluZ30KICAgICAgICBzdHJhdGVneT0ke3RoaXMuaG9pc3Q/ImZpeGVkIjoiYWJzb2x1dGUifQogICAgICAgIGZsaXAKICAgICAgICBzaGlmdAogICAgICAgIGF1dG8tc2l6ZT0idmVydGljYWwiCiAgICAgICAgYXV0by1zaXplLXBhZGRpbmc9IjEwIgogICAgICAgIHN5bmM9JHskZSh0aGlzLnN5bmM/dGhpcy5zeW5jOnZvaWQgMCl9CiAgICAgICAgY2xhc3M9JHtLcih7ZHJvcGRvd246ITAsImRyb3Bkb3duLS1vcGVuIjp0aGlzLm9wZW59KX0KICAgICAgPgogICAgICAgIDxzbG90CiAgICAgICAgICBuYW1lPSJ0cmlnZ2VyIgogICAgICAgICAgc2xvdD0iYW5jaG9yIgogICAgICAgICAgcGFydD0idHJpZ2dlciIKICAgICAgICAgIGNsYXNzPSJkcm9wZG93bl9fdHJpZ2dlciIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlVHJpZ2dlckNsaWNrfQogICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZVRyaWdnZXJLZXlEb3dufQogICAgICAgICAgQGtleXVwPSR7dGhpcy5oYW5kbGVUcmlnZ2VyS2V5VXB9CiAgICAgICAgICBAc2xvdGNoYW5nZT0ke3RoaXMuaGFuZGxlVHJpZ2dlclNsb3RDaGFuZ2V9CiAgICAgICAgPjwvc2xvdD4KCiAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj0ke3RoaXMub3Blbj8iZmFsc2UiOiJ0cnVlIn0gYXJpYS1sYWJlbGxlZGJ5PSJkcm9wZG93biI+CiAgICAgICAgICA8c2xvdCBwYXJ0PSJwYW5lbCIgY2xhc3M9ImRyb3Bkb3duX19wYW5lbCI+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICA8L3NsLXBvcHVwPgogICAgYH19O2NsLnN0eWxlcz1bTnIsbGxdLGNsLmRlcGVuZGVuY2llcz17InNsLXBvcHVwIjpWYX0seGkoW1NlKCIuZHJvcGRvd24iKV0sY2wucHJvdG90eXBlLCJwb3B1cCIsMikseGkoW1NlKCIuZHJvcGRvd25fX3RyaWdnZXIiKV0sY2wucHJvdG90eXBlLCJ0cmlnZ2VyIiwyKSx4aShbU2UoIi5kcm9wZG93bl9fcGFuZWwiKV0sY2wucHJvdG90eXBlLCJwYW5lbCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxjbC5wcm90b3R5cGUsIm9wZW4iLDIpLHhpKFt5ZSh7cmVmbGVjdDohMH0pXSxjbC5wcm90b3R5cGUsInBsYWNlbWVudCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxjbC5wcm90b3R5cGUsImRpc2FibGVkIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToic3RheS1vcGVuLW9uLXNlbGVjdCIsdHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sY2wucHJvdG90eXBlLCJzdGF5T3Blbk9uU2VsZWN0IiwyKSx4aShbeWUoe2F0dHJpYnV0ZTohMX0pXSxjbC5wcm90b3R5cGUsImNvbnRhaW5pbmdFbGVtZW50IiwyKSx4aShbeWUoe3R5cGU6TnVtYmVyfSldLGNsLnByb3RvdHlwZSwiZGlzdGFuY2UiLDIpLHhpKFt5ZSh7dHlwZTpOdW1iZXJ9KV0sY2wucHJvdG90eXBlLCJza2lkZGluZyIsMikseGkoW3llKHt0eXBlOkJvb2xlYW59KV0sY2wucHJvdG90eXBlLCJob2lzdCIsMikseGkoW3llKHtyZWZsZWN0OiEwfSldLGNsLnByb3RvdHlwZSwic3luYyIsMikseGkoW0JyKCJvcGVuIix7d2FpdFVudGlsRmlyc3RVcGRhdGU6ITB9KV0sY2wucHJvdG90eXBlLCJoYW5kbGVPcGVuQ2hhbmdlIiwxKSxlcygiZHJvcGRvd24uc2hvdyIse2tleWZyYW1lczpbe29wYWNpdHk6MCxzY2FsZTouOX0se29wYWNpdHk6MSxzY2FsZToxfV0sb3B0aW9uczp7ZHVyYXRpb246MTAwLGVhc2luZzoiZWFzZSJ9fSksZXMoImRyb3Bkb3duLmhpZGUiLHtrZXlmcmFtZXM6W3tvcGFjaXR5OjEsc2NhbGU6MX0se29wYWNpdHk6MCxzY2FsZTouOX1dLG9wdGlvbnM6e2R1cmF0aW9uOjEwMCxlYXNpbmc6ImVhc2UifX0pO2NsLmRlZmluZSgic2wtZHJvcGRvd24iKTt2YXIgZGw9aGAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJhY2tncm91bmQ6IHZhcigtLXNsLXBhbmVsLWJhY2tncm91bmQtY29sb3IpOwogICAgYm9yZGVyOiBzb2xpZCB2YXIoLS1zbC1wYW5lbC1ib3JkZXItd2lkdGgpIHZhcigtLXNsLXBhbmVsLWJvcmRlci1jb2xvcik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgICBwYWRkaW5nOiB2YXIoLS1zbC1zcGFjaW5nLXgtc21hbGwpIDA7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7CiAgfQoKICA6OnNsb3R0ZWQoc2wtZGl2aWRlcikgewogICAgLS1zcGFjaW5nOiB2YXIoLS1zbC1zcGFjaW5nLXgtc21hbGwpOwogIH0KYCxobD1jbGFzcyBleHRlbmRzIHFye2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm1lbnUiKX1oYW5kbGVDbGljayhlKXtjb25zdCB0PVsibWVudWl0ZW0iLCJtZW51aXRlbWNoZWNrYm94Il0saT1lLmNvbXBvc2VkUGF0aCgpLmZpbmQoKGU9Pnt2YXIgaTtyZXR1cm4gdC5pbmNsdWRlcygobnVsbD09KGk9bnVsbD09ZT92b2lkIDA6ZS5nZXRBdHRyaWJ1dGUpP3ZvaWQgMDppLmNhbGwoZSwicm9sZSIpKXx8IiIpfSkpO2lmKCFpKXJldHVybjtjb25zdCBvPWk7ImNoZWNrYm94Ij09PW8udHlwZSYmKG8uY2hlY2tlZD0hby5jaGVja2VkKSx0aGlzLmVtaXQoInNsLXNlbGVjdCIse2RldGFpbDp7aXRlbTpvfX0pfWhhbmRsZUtleURvd24oZSl7aWYoIkVudGVyIj09PWUua2V5fHwiICI9PT1lLmtleSl7Y29uc3QgdD10aGlzLmdldEN1cnJlbnRJdGVtKCk7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksbnVsbD09dHx8dC5jbGljaygpfWVsc2UgaWYoWyJBcnJvd0Rvd24iLCJBcnJvd1VwIiwiSG9tZSIsIkVuZCJdLmluY2x1ZGVzKGUua2V5KSl7Y29uc3QgdD10aGlzLmdldEFsbEl0ZW1zKCksaT10aGlzLmdldEN1cnJlbnRJdGVtKCk7bGV0IG89aT90LmluZGV4T2YoaSk6MDt0Lmxlbmd0aD4wJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksIkFycm93RG93biI9PT1lLmtleT9vKys6IkFycm93VXAiPT09ZS5rZXk/by0tOiJIb21lIj09PWUua2V5P289MDoiRW5kIj09PWUua2V5JiYobz10Lmxlbmd0aC0xKSxvPDAmJihvPXQubGVuZ3RoLTEpLG8+dC5sZW5ndGgtMSYmKG89MCksdGhpcy5zZXRDdXJyZW50SXRlbSh0W29dKSx0W29dLmZvY3VzKCkpfX1oYW5kbGVNb3VzZURvd24oZSl7Y29uc3QgdD1lLnRhcmdldDt0aGlzLmlzTWVudUl0ZW0odCkmJnRoaXMuc2V0Q3VycmVudEl0ZW0odCl9aGFuZGxlU2xvdENoYW5nZSgpe2NvbnN0IGU9dGhpcy5nZXRBbGxJdGVtcygpO2UubGVuZ3RoPjAmJnRoaXMuc2V0Q3VycmVudEl0ZW0oZVswXSl9aXNNZW51SXRlbShlKXt2YXIgdDtyZXR1cm4ic2wtbWVudS1pdGVtIj09PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpfHxbIm1lbnVpdGVtIiwibWVudWl0ZW1jaGVja2JveCIsIm1lbnVpdGVtcmFkaW8iXS5pbmNsdWRlcyhudWxsIT0odD1lLmdldEF0dHJpYnV0ZSgicm9sZSIpKT90OiIiKX1nZXRBbGxJdGVtcygpe3JldHVyblsuLi50aGlzLmRlZmF1bHRTbG90LmFzc2lnbmVkRWxlbWVudHMoe2ZsYXR0ZW46ITB9KV0uZmlsdGVyKChlPT4hKGUuaW5lcnR8fCF0aGlzLmlzTWVudUl0ZW0oZSkpKSl9Z2V0Q3VycmVudEl0ZW0oKXtyZXR1cm4gdGhpcy5nZXRBbGxJdGVtcygpLmZpbmQoKGU9PiIwIj09PWUuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKSl9c2V0Q3VycmVudEl0ZW0oZSl7dGhpcy5nZXRBbGxJdGVtcygpLmZvckVhY2goKHQ9Pnt0LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHQ9PT1lPyIwIjoiLTEiKX0pKX1yZW5kZXIoKXtyZXR1cm4gUWAKICAgICAgPHNsb3QKICAgICAgICBAc2xvdGNoYW5nZT0ke3RoaXMuaGFuZGxlU2xvdENoYW5nZX0KICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfQogICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVLZXlEb3dufQogICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZU1vdXNlRG93bn0KICAgICAgPjwvc2xvdD4KICAgIGB9fTtobC5zdHlsZXM9W05yLGRsXSx4aShbU2UoInNsb3QiKV0saGwucHJvdG90eXBlLCJkZWZhdWx0U2xvdCIsMik7aGwuZGVmaW5lKCJzbC1tZW51Iik7dmFyIHVsPWhgCiAgOmhvc3QgewogICAgLS1zdWJtZW51LW9mZnNldDogLTJweDsKCiAgICBkaXNwbGF5OiBibG9jazsKICB9CgogIDpob3N0KFtpbmVydF0pIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAubWVudS1pdGVtIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1zbC1mb250LXNhbnMpOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbWVkaXVtKTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLXNsLWxpbmUtaGVpZ2h0LW5vcm1hbCk7CiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2wtbGV0dGVyLXNwYWNpbmctbm9ybWFsKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgICBwYWRkaW5nOiB2YXIoLS1zbC1zcGFjaW5nLTJ4LXNtYWxsKSB2YXIoLS1zbC1zcGFjaW5nLTJ4LXNtYWxsKTsKICAgIHRyYW5zaXRpb246IHZhcigtLXNsLXRyYW5zaXRpb24tZmFzdCkgZmlsbDsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgfQoKICAubWVudS1pdGVtLm1lbnUtaXRlbS0tZGlzYWJsZWQgewogICAgb3V0bGluZTogbm9uZTsKICAgIG9wYWNpdHk6IDAuNTsKICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgfQoKICAubWVudS1pdGVtLm1lbnUtaXRlbS0tbG9hZGluZyB7CiAgICBvdXRsaW5lOiBub25lOwogICAgY3Vyc29yOiB3YWl0OwogIH0KCiAgLm1lbnUtaXRlbS5tZW51LWl0ZW0tLWxvYWRpbmcgKjpub3Qoc2wtc3Bpbm5lcikgewogICAgb3BhY2l0eTogMC41OwogIH0KCiAgLm1lbnUtaXRlbS0tbG9hZGluZyBzbC1zcGlubmVyIHsKICAgIC0taW5kaWNhdG9yLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAtLXRyYWNrLXdpZHRoOiAxcHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBmb250LXNpemU6IDAuNzVlbTsKICAgIHRvcDogY2FsYyg1MCUgLSAwLjVlbSk7CiAgICBsZWZ0OiAwLjY1cmVtOwogICAgb3BhY2l0eTogMTsKICB9CgogIC5tZW51LWl0ZW0gLm1lbnUtaXRlbV9fbGFiZWwgewogICAgZmxleDogMSAxIGF1dG87CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQoKICAubWVudS1pdGVtIC5tZW51LWl0ZW1fX3ByZWZpeCB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KCiAgLm1lbnUtaXRlbSAubWVudS1pdGVtX19wcmVmaXg6OnNsb3R0ZWQoKikgewogICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAubWVudS1pdGVtIC5tZW51LWl0ZW1fX3N1ZmZpeCB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KCiAgLm1lbnUtaXRlbSAubWVudS1pdGVtX19zdWZmaXg6OnNsb3R0ZWQoKikgewogICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2wtc3BhY2luZy14LXNtYWxsKTsKICB9CgogIC8qIFNhZmUgdHJpYW5nbGUgKi8KICAubWVudS1pdGVtLS1zdWJtZW51LWV4cGFuZGVkOjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IGNhbGModmFyKC0tc2wtei1pbmRleC1kcm9wZG93bikgLSAxKTsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogMDsKICAgIGNsaXAtcGF0aDogcG9seWdvbigKICAgICAgdmFyKC0tc2FmZS10cmlhbmdsZS1jdXJzb3IteCwgMCkgdmFyKC0tc2FmZS10cmlhbmdsZS1jdXJzb3IteSwgMCksCiAgICAgIHZhcigtLXNhZmUtdHJpYW5nbGUtc3VibWVudS1zdGFydC14LCAwKSB2YXIoLS1zYWZlLXRyaWFuZ2xlLXN1Ym1lbnUtc3RhcnQteSwgMCksCiAgICAgIHZhcigtLXNhZmUtdHJpYW5nbGUtc3VibWVudS1lbmQteCwgMCkgdmFyKC0tc2FmZS10cmlhbmdsZS1zdWJtZW51LWVuZC15LCAwKQogICAgKTsKICB9CgogIDpob3N0KDpmb2N1cy12aXNpYmxlKSB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgOmhvc3QoOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddLCA6Zm9jdXMtdmlzaWJsZSkpIC5tZW51LWl0ZW0sCiAgLm1lbnUtaXRlbS0tc3VibWVudS1leHBhbmRlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTEwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0xMDAwKTsKICB9CgogIDpob3N0KDpmb2N1cy12aXNpYmxlKSAubWVudS1pdGVtIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAubWVudS1pdGVtIC5tZW51LWl0ZW1fX2NoZWNrLAogIC5tZW51LWl0ZW0gLm1lbnUtaXRlbV9fY2hldnJvbiB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMS41ZW07CiAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgfQoKICAubWVudS1pdGVtLS1jaGVja2VkIC5tZW51LWl0ZW1fX2NoZWNrLAogIC5tZW51LWl0ZW0tLWhhcy1zdWJtZW51IC5tZW51LWl0ZW1fX2NoZXZyb24gewogICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICB9CgogIC8qIEFkZCBlbGV2YXRpb24gYW5kIHotaW5kZXggdG8gc3VibWVudXMgKi8KICBzbC1wb3B1cDo6cGFydChwb3B1cCkgewogICAgYm94LXNoYWRvdzogdmFyKC0tc2wtc2hhZG93LWxhcmdlKTsKICAgIHotaW5kZXg6IHZhcigtLXNsLXotaW5kZXgtZHJvcGRvd24pOwogICAgbWFyZ2luLWxlZnQ6IHZhcigtLXN1Ym1lbnUtb2Zmc2V0KTsKICB9CgogIC5tZW51LWl0ZW0tLXJ0bCBzbC1wb3B1cDo6cGFydChwb3B1cCkgewogICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1zdWJtZW51LW9mZnNldCkpOwogIH0KCiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsKICAgIDpob3N0KDpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSkpIC5tZW51LWl0ZW0sCiAgICA6aG9zdCg6Zm9jdXMtdmlzaWJsZSkgLm1lbnUtaXRlbSB7CiAgICAgIG91dGxpbmU6IGRhc2hlZCAxcHggU2VsZWN0ZWRJdGVtOwogICAgICBvdXRsaW5lLW9mZnNldDogLTFweDsKICAgIH0KICB9CgogIDo6c2xvdHRlZChzbC1tZW51KSB7CiAgICBtYXgtd2lkdGg6IHZhcigtLWF1dG8tc2l6ZS1hdmFpbGFibGUtd2lkdGgpICFpbXBvcnRhbnQ7CiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1hdXRvLXNpemUtYXZhaWxhYmxlLWhlaWdodCkgIWltcG9ydGFudDsKICB9CmAsZmw9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMucG9wdXBSZWY9dXQoKSx0aGlzLmVuYWJsZVN1Ym1lbnVUaW1lcj0tMSx0aGlzLmlzQ29ubmVjdGVkPSExLHRoaXMuaXNQb3B1cENvbm5lY3RlZD0hMSx0aGlzLnNraWRkaW5nPTAsdGhpcy5zdWJtZW51T3BlbkRlbGF5PTEwMCx0aGlzLmhhbmRsZU1vdXNlTW92ZT1lPT57dGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCItLXNhZmUtdHJpYW5nbGUtY3Vyc29yLXgiLGAke2UuY2xpZW50WH1weGApLHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zYWZlLXRyaWFuZ2xlLWN1cnNvci15IixgJHtlLmNsaWVudFl9cHhgKX0sdGhpcy5oYW5kbGVNb3VzZU92ZXI9KCk9Pnt0aGlzLmhhc1Nsb3RDb250cm9sbGVyLnRlc3QoInN1Ym1lbnUiKSYmdGhpcy5lbmFibGVTdWJtZW51KCl9LHRoaXMuaGFuZGxlS2V5RG93bj1lPT57c3dpdGNoKGUua2V5KXtjYXNlIkVzY2FwZSI6Y2FzZSJUYWIiOnRoaXMuZGlzYWJsZVN1Ym1lbnUoKTticmVhaztjYXNlIkFycm93TGVmdCI6ZS50YXJnZXQhPT10aGlzLmhvc3QmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhvc3QuZm9jdXMoKSx0aGlzLmRpc2FibGVTdWJtZW51KCkpO2JyZWFrO2Nhc2UiQXJyb3dSaWdodCI6Y2FzZSJFbnRlciI6Y2FzZSIgIjp0aGlzLmhhbmRsZVN1Ym1lbnVFbnRyeShlKX19LHRoaXMuaGFuZGxlQ2xpY2s9ZT0+e3ZhciB0O2UudGFyZ2V0PT09dGhpcy5ob3N0PyhlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk6ZS50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50JiYoInNsLW1lbnUtaXRlbSI9PT1lLnRhcmdldC50YWdOYW1lfHwobnVsbD09KHQ9ZS50YXJnZXQucm9sZSk/dm9pZCAwOnQuc3RhcnRzV2l0aCgibWVudWl0ZW0iKSkpJiZ0aGlzLmRpc2FibGVTdWJtZW51KCl9LHRoaXMuaGFuZGxlRm9jdXNPdXQ9ZT0+e2UucmVsYXRlZFRhcmdldCYmZS5yZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCYmdGhpcy5ob3N0LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCl8fHRoaXMuZGlzYWJsZVN1Ym1lbnUoKX0sdGhpcy5oYW5kbGVQb3B1cE1vdXNlb3Zlcj1lPT57ZS5zdG9wUHJvcGFnYXRpb24oKX0sdGhpcy5oYW5kbGVQb3B1cFJlcG9zaXRpb249KCk9Pntjb25zdCBlPXRoaXMuaG9zdC5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoInNsb3RbbmFtZT0nc3VibWVudSddIiksdD1udWxsPT1lP3ZvaWQgMDplLmFzc2lnbmVkRWxlbWVudHMoe2ZsYXR0ZW46ITB9KS5maWx0ZXIoKGU9PiJzbC1tZW51Ij09PWUubG9jYWxOYW1lKSlbMF0saT0icnRsIj09PXRoaXMubG9jYWxpemUuZGlyKCk7aWYoIXQpcmV0dXJuO2NvbnN0e2xlZnQ6byx0b3A6bix3aWR0aDpyLGhlaWdodDpzfT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zYWZlLXRyaWFuZ2xlLXN1Ym1lbnUtc3RhcnQteCIsYCR7aT9vK3I6b31weGApLHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zYWZlLXRyaWFuZ2xlLXN1Ym1lbnUtc3RhcnQteSIsYCR7bn1weGApLHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zYWZlLXRyaWFuZ2xlLXN1Ym1lbnUtZW5kLXgiLGAke2k/bytyOm99cHhgKSx0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoIi0tc2FmZS10cmlhbmdsZS1zdWJtZW51LWVuZC15IixgJHtuK3N9cHhgKX0sKHRoaXMuaG9zdD1lKS5hZGRDb250cm9sbGVyKHRoaXMpLHRoaXMuaGFzU2xvdENvbnRyb2xsZXI9dCx0aGlzLmxvY2FsaXplPWl9aG9zdENvbm5lY3RlZCgpe3RoaXMuaGFzU2xvdENvbnRyb2xsZXIudGVzdCgic3VibWVudSIpJiYhdGhpcy5ob3N0LmRpc2FibGVkJiZ0aGlzLmFkZExpc3RlbmVycygpfWhvc3REaXNjb25uZWN0ZWQoKXt0aGlzLnJlbW92ZUxpc3RlbmVycygpfWhvc3RVcGRhdGVkKCl7dGhpcy5oYXNTbG90Q29udHJvbGxlci50ZXN0KCJzdWJtZW51IikmJiF0aGlzLmhvc3QuZGlzYWJsZWQ/KHRoaXMuYWRkTGlzdGVuZXJzKCksdGhpcy51cGRhdGVTa2lkZGluZygpKTp0aGlzLnJlbW92ZUxpc3RlbmVycygpfWFkZExpc3RlbmVycygpe3RoaXMuaXNDb25uZWN0ZWR8fCh0aGlzLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksdGhpcy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdGhpcy5oYW5kbGVNb3VzZU92ZXIpLHRoaXMuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLHRoaXMuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGljayksdGhpcy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iix0aGlzLmhhbmRsZUZvY3VzT3V0KSx0aGlzLmlzQ29ubmVjdGVkPSEwKSx0aGlzLmlzUG9wdXBDb25uZWN0ZWR8fHRoaXMucG9wdXBSZWYudmFsdWUmJih0aGlzLnBvcHVwUmVmLnZhbHVlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdGhpcy5oYW5kbGVQb3B1cE1vdXNlb3ZlciksdGhpcy5wb3B1cFJlZi52YWx1ZS5hZGRFdmVudExpc3RlbmVyKCJzbC1yZXBvc2l0aW9uIix0aGlzLmhhbmRsZVBvcHVwUmVwb3NpdGlvbiksdGhpcy5pc1BvcHVwQ29ubmVjdGVkPSEwKX1yZW1vdmVMaXN0ZW5lcnMoKXt0aGlzLmlzQ29ubmVjdGVkJiYodGhpcy5ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLHRoaXMuaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMuaGFuZGxlTW91c2VPdmVyKSx0aGlzLmhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSx0aGlzLmhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2spLHRoaXMuaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1c291dCIsdGhpcy5oYW5kbGVGb2N1c091dCksdGhpcy5pc0Nvbm5lY3RlZD0hMSksdGhpcy5pc1BvcHVwQ29ubmVjdGVkJiZ0aGlzLnBvcHVwUmVmLnZhbHVlJiYodGhpcy5wb3B1cFJlZi52YWx1ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMuaGFuZGxlUG9wdXBNb3VzZW92ZXIpLHRoaXMucG9wdXBSZWYudmFsdWUucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2wtcmVwb3NpdGlvbiIsdGhpcy5oYW5kbGVQb3B1cFJlcG9zaXRpb24pLHRoaXMuaXNQb3B1cENvbm5lY3RlZD0hMSl9aGFuZGxlU3VibWVudUVudHJ5KGUpe2NvbnN0IHQ9dGhpcy5ob3N0LnJlbmRlclJvb3QucXVlcnlTZWxlY3Rvcigic2xvdFtuYW1lPSdzdWJtZW51J10iKTtpZighdClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJDYW5ub3QgYWN0aXZhdGUgYSBzdWJtZW51IGlmIG5vIGNvcnJlc3BvbmRpbmcgbWVudWl0ZW0gY2FuIGJlIGZvdW5kLiIsdGhpcyk7bGV0IGk9bnVsbDtmb3IoY29uc3QgZSBvZiB0LmFzc2lnbmVkRWxlbWVudHMoKSlpZihpPWUucXVlcnlTZWxlY3RvckFsbCgic2wtbWVudS1pdGVtLCBbcm9sZV49J21lbnVpdGVtJ10iKSwwIT09aS5sZW5ndGgpYnJlYWs7aWYoaSYmMCE9PWkubGVuZ3RoKXtpWzBdLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIik7Zm9yKGxldCBlPTE7ZSE9PWkubGVuZ3RoOysrZSlpW2VdLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpO3RoaXMucG9wdXBSZWYudmFsdWUmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnBvcHVwUmVmLnZhbHVlLmFjdGl2ZT9pWzBdaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmaVswXS5mb2N1cygpOih0aGlzLmVuYWJsZVN1Ym1lbnUoITEpLHRoaXMuaG9zdC51cGRhdGVDb21wbGV0ZS50aGVuKCgoKT0+e2lbMF1pbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZpWzBdLmZvY3VzKCl9KSksdGhpcy5ob3N0LnJlcXVlc3RVcGRhdGUoKSkpfX1zZXRTdWJtZW51U3RhdGUoZSl7dGhpcy5wb3B1cFJlZi52YWx1ZSYmdGhpcy5wb3B1cFJlZi52YWx1ZS5hY3RpdmUhPT1lJiYodGhpcy5wb3B1cFJlZi52YWx1ZS5hY3RpdmU9ZSx0aGlzLmhvc3QucmVxdWVzdFVwZGF0ZSgpKX1lbmFibGVTdWJtZW51KGU9ITApe2U/KHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5lbmFibGVTdWJtZW51VGltZXIpLHRoaXMuZW5hYmxlU3VibWVudVRpbWVyPXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+e3RoaXMuc2V0U3VibWVudVN0YXRlKCEwKX0pLHRoaXMuc3VibWVudU9wZW5EZWxheSkpOnRoaXMuc2V0U3VibWVudVN0YXRlKCEwKX1kaXNhYmxlU3VibWVudSgpe3dpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5lbmFibGVTdWJtZW51VGltZXIpLHRoaXMuc2V0U3VibWVudVN0YXRlKCExKX11cGRhdGVTa2lkZGluZygpe3ZhciBlO2lmKCEobnVsbD09KGU9dGhpcy5ob3N0LnBhcmVudEVsZW1lbnQpP3ZvaWQgMDplLmNvbXB1dGVkU3R5bGVNYXApKXJldHVybjtjb25zdCB0PXRoaXMuaG9zdC5wYXJlbnRFbGVtZW50LmNvbXB1dGVkU3R5bGVNYXAoKSxpPVsicGFkZGluZy10b3AiLCJib3JkZXItdG9wLXdpZHRoIiwibWFyZ2luLXRvcCJdLnJlZHVjZSgoKGUsaSk9Pnt2YXIgbztjb25zdCBuPW51bGwhPShvPXQuZ2V0KGkpKT9vOm5ldyBDU1NVbml0VmFsdWUoMCwicHgiKTtyZXR1cm4gZS0obiBpbnN0YW5jZW9mIENTU1VuaXRWYWx1ZT9uOm5ldyBDU1NVbml0VmFsdWUoMCwicHgiKSkudG8oInB4IikudmFsdWV9KSwwKTt0aGlzLnNraWRkaW5nPWl9aXNFeHBhbmRlZCgpe3JldHVybiEhdGhpcy5wb3B1cFJlZi52YWx1ZSYmdGhpcy5wb3B1cFJlZi52YWx1ZS5hY3RpdmV9cmVuZGVyU3VibWVudSgpe2NvbnN0IGU9Imx0ciI9PT10aGlzLmxvY2FsaXplLmRpcigpO3JldHVybiB0aGlzLmlzQ29ubmVjdGVkP1FgCiAgICAgIDxzbC1wb3B1cAogICAgICAgICR7bXQodGhpcy5wb3B1cFJlZil9CiAgICAgICAgcGxhY2VtZW50PSR7ZT8icmlnaHQtc3RhcnQiOiJsZWZ0LXN0YXJ0In0KICAgICAgICBhbmNob3I9ImFuY2hvciIKICAgICAgICBmbGlwCiAgICAgICAgZmxpcC1mYWxsYmFjay1zdHJhdGVneT0iYmVzdC1maXQiCiAgICAgICAgc2tpZGRpbmc9IiR7dGhpcy5za2lkZGluZ30iCiAgICAgICAgc3RyYXRlZ3k9ImZpeGVkIgogICAgICAgIGF1dG8tc2l6ZT0idmVydGljYWwiCiAgICAgICAgYXV0by1zaXplLXBhZGRpbmc9IjEwIgogICAgICA+CiAgICAgICAgPHNsb3QgbmFtZT0ic3VibWVudSI+PC9zbG90PgogICAgICA8L3NsLXBvcHVwPgogICAgYDpRYCA8c2xvdCBuYW1lPSJzdWJtZW51IiBoaWRkZW4+PC9zbG90PiBgfX0scGw9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPSJub3JtYWwiLHRoaXMuY2hlY2tlZD0hMSx0aGlzLnZhbHVlPSIiLHRoaXMubG9hZGluZz0hMSx0aGlzLmRpc2FibGVkPSExLHRoaXMubG9jYWxpemU9bmV3IHZzKHRoaXMpLHRoaXMuaGFzU2xvdENvbnRyb2xsZXI9bmV3IHdzKHRoaXMsInN1Ym1lbnUiKSx0aGlzLnN1Ym1lbnVDb250cm9sbGVyPW5ldyBmbCh0aGlzLHRoaXMuaGFzU2xvdENvbnRyb2xsZXIsdGhpcy5sb2NhbGl6ZSksdGhpcy5oYW5kbGVIb3N0Q2xpY2s9ZT0+e3RoaXMuZGlzYWJsZWQmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9LHRoaXMuaGFuZGxlTW91c2VPdmVyPWU9Pnt0aGlzLmZvY3VzKCksZS5zdG9wUHJvcGFnYXRpb24oKX19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlSG9zdENsaWNrKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdGhpcy5oYW5kbGVNb3VzZU92ZXIpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUhvc3RDbGljayksdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMuaGFuZGxlTW91c2VPdmVyKX1oYW5kbGVEZWZhdWx0U2xvdENoYW5nZSgpe2NvbnN0IGU9dGhpcy5nZXRUZXh0TGFiZWwoKTt2b2lkIDAhPT10aGlzLmNhY2hlZFRleHRMYWJlbD9lIT09dGhpcy5jYWNoZWRUZXh0TGFiZWwmJih0aGlzLmNhY2hlZFRleHRMYWJlbD1lLHRoaXMuZW1pdCgic2xvdGNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITEsY2FuY2VsYWJsZTohMX0pKTp0aGlzLmNhY2hlZFRleHRMYWJlbD1lfWhhbmRsZUNoZWNrZWRDaGFuZ2UoKXtpZih0aGlzLmNoZWNrZWQmJiJjaGVja2JveCIhPT10aGlzLnR5cGUpcmV0dXJuIHRoaXMuY2hlY2tlZD0hMSx2b2lkIGNvbnNvbGUuZXJyb3IoJ1RoZSBjaGVja2VkIGF0dHJpYnV0ZSBjYW4gb25seSBiZSB1c2VkIG9uIG1lbnUgaXRlbXMgd2l0aCB0eXBlPSJjaGVja2JveCInLHRoaXMpOyJjaGVja2JveCI9PT10aGlzLnR5cGU/dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsdGhpcy5jaGVja2VkPyJ0cnVlIjoiZmFsc2UiKTp0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIil9aGFuZGxlRGlzYWJsZWRDaGFuZ2UoKXt0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIsdGhpcy5kaXNhYmxlZD8idHJ1ZSI6ImZhbHNlIil9aGFuZGxlVHlwZUNoYW5nZSgpeyJjaGVja2JveCI9PT10aGlzLnR5cGU/KHRoaXMuc2V0QXR0cmlidXRlKCJyb2xlIiwibWVudWl0ZW1jaGVja2JveCIpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiLHRoaXMuY2hlY2tlZD8idHJ1ZSI6ImZhbHNlIikpOih0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm1lbnVpdGVtIiksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIpKX1nZXRUZXh0TGFiZWwoKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIiI7Y29uc3QgdD1lLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KTtsZXQgaT0iIjtyZXR1cm5bLi4udF0uZm9yRWFjaCgoZT0+e2Uubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKGkrPWUudGV4dENvbnRlbnQpfSkpLGl9KHRoaXMuZGVmYXVsdFNsb3QpfWlzU3VibWVudSgpe3JldHVybiB0aGlzLmhhc1Nsb3RDb250cm9sbGVyLnRlc3QoInN1Ym1lbnUiKX1yZW5kZXIoKXtjb25zdCBlPSJydGwiPT09dGhpcy5sb2NhbGl6ZS5kaXIoKSx0PXRoaXMuc3VibWVudUNvbnRyb2xsZXIuaXNFeHBhbmRlZCgpO3JldHVybiBRYAogICAgICA8ZGl2CiAgICAgICAgaWQ9ImFuY2hvciIKICAgICAgICBwYXJ0PSJiYXNlIgogICAgICAgIGNsYXNzPSR7S3IoeyJtZW51LWl0ZW0iOiEwLCJtZW51LWl0ZW0tLXJ0bCI6ZSwibWVudS1pdGVtLS1jaGVja2VkIjp0aGlzLmNoZWNrZWQsIm1lbnUtaXRlbS0tZGlzYWJsZWQiOnRoaXMuZGlzYWJsZWQsIm1lbnUtaXRlbS0tbG9hZGluZyI6dGhpcy5sb2FkaW5nLCJtZW51LWl0ZW0tLWhhcy1zdWJtZW51Ijp0aGlzLmlzU3VibWVudSgpLCJtZW51LWl0ZW0tLXN1Ym1lbnUtZXhwYW5kZWQiOnR9KX0KICAgICAgICA/YXJpYS1oYXNwb3B1cD0iJHt0aGlzLmlzU3VibWVudSgpfSIKICAgICAgICA/YXJpYS1leHBhbmRlZD0iJHshIXR9IgogICAgICA+CiAgICAgICAgPHNwYW4gcGFydD0iY2hlY2tlZC1pY29uIiBjbGFzcz0ibWVudS1pdGVtX19jaGVjayI+CiAgICAgICAgICA8c2wtaWNvbiBuYW1lPSJjaGVjayIgbGlicmFyeT0ic3lzdGVtIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zbC1pY29uPgogICAgICAgIDwvc3Bhbj4KCiAgICAgICAgPHNsb3QgbmFtZT0icHJlZml4IiBwYXJ0PSJwcmVmaXgiIGNsYXNzPSJtZW51LWl0ZW1fX3ByZWZpeCI+PC9zbG90PgoKICAgICAgICA8c2xvdCBwYXJ0PSJsYWJlbCIgY2xhc3M9Im1lbnUtaXRlbV9fbGFiZWwiIEBzbG90Y2hhbmdlPSR7dGhpcy5oYW5kbGVEZWZhdWx0U2xvdENoYW5nZX0+PC9zbG90PgoKICAgICAgICA8c2xvdCBuYW1lPSJzdWZmaXgiIHBhcnQ9InN1ZmZpeCIgY2xhc3M9Im1lbnUtaXRlbV9fc3VmZml4Ij48L3Nsb3Q+CgogICAgICAgIDxzcGFuIHBhcnQ9InN1Ym1lbnUtaWNvbiIgY2xhc3M9Im1lbnUtaXRlbV9fY2hldnJvbiI+CiAgICAgICAgICA8c2wtaWNvbiBuYW1lPSR7ZT8iY2hldnJvbi1sZWZ0IjoiY2hldnJvbi1yaWdodCJ9IGxpYnJhcnk9InN5c3RlbSIgYXJpYS1oaWRkZW49InRydWUiPjwvc2wtaWNvbj4KICAgICAgICA8L3NwYW4+CgogICAgICAgICR7dGhpcy5zdWJtZW51Q29udHJvbGxlci5yZW5kZXJTdWJtZW51KCl9CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/UWAgPHNsLXNwaW5uZXIgcGFydD0ic3Bpbm5lciIgZXhwb3J0cGFydHM9ImJhc2U6c3Bpbm5lcl9fYmFzZSI+PC9zbC1zcGlubmVyPiBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9fTtwbC5zdHlsZXM9W05yLHVsXSxwbC5kZXBlbmRlbmNpZXM9eyJzbC1pY29uIjpHciwic2wtcG9wdXAiOlZhLCJzbC1zcGlubmVyIjokc30seGkoW1NlKCJzbG90Om5vdChbbmFtZV0pIildLHBsLnByb3RvdHlwZSwiZGVmYXVsdFNsb3QiLDIpLHhpKFtTZSgiLm1lbnUtaXRlbSIpXSxwbC5wcm90b3R5cGUsIm1lbnVJdGVtIiwyKSx4aShbeWUoKV0scGwucHJvdG90eXBlLCJ0eXBlIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHBsLnByb3RvdHlwZSwiY2hlY2tlZCIsMikseGkoW3llKCldLHBsLnByb3RvdHlwZSwidmFsdWUiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0scGwucHJvdG90eXBlLCJsb2FkaW5nIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHBsLnByb3RvdHlwZSwiZGlzYWJsZWQiLDIpLHhpKFtCcigiY2hlY2tlZCIpXSxwbC5wcm90b3R5cGUsImhhbmRsZUNoZWNrZWRDaGFuZ2UiLDEpLHhpKFtCcigiZGlzYWJsZWQiKV0scGwucHJvdG90eXBlLCJoYW5kbGVEaXNhYmxlZENoYW5nZSIsMSkseGkoW0JyKCJ0eXBlIildLHBsLnByb3RvdHlwZSwiaGFuZGxlVHlwZUNoYW5nZSIsMSk7cGwuZGVmaW5lKCJzbC1tZW51LWl0ZW0iKX0pKCk7dmFyIF9fd2VicGFja19leHBvcnRfdGFyZ2V0X189c2VsZjtmb3IodmFyIGkgaW4gX193ZWJwYWNrX2V4cG9ydHNfXylfX3dlYnBhY2tfZXhwb3J0X3RhcmdldF9fW2ldPV9fd2VicGFja19leHBvcnRzX19baV07X193ZWJwYWNrX2V4cG9ydHNfXy5fX2VzTW9kdWxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoX193ZWJwYWNrX2V4cG9ydF90YXJnZXRfXywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSgpOw=="></script><meta name=referrer content=no-referrer><link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAAAAAgAAAAAQAgAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAANqNaf/wro//99jI//zz7v/+2Mb/8rSX/+umhv/Rflj/0X1Y/9+Ucv/wro//8K6P//Cuj//wro//+ODU//THsv/QfVj/3pVy//nczv/87+f/9b6k/+qlhP/VhF//0X1Y/92Sb//wro//8K+P//CvkP/wr5D/8K+Q//TJtP/66N7/0YBa/9B+V//Th2L/3J2A/9WGYf/SgVv/35Rx/9+Vcv/UhV//1YVf/9uPa//oo4L/8K6P//Cuj//21cX//PPu/++tjf/oo4L/7bee/+WggP/wzr7/9Mm0//Cuj//wsZP/8LSY/9qTcf/ThmP/04Zi/+usjv/0yrb//PXx//rt5f/0up//87md//3WxP/3w6r/8K+Q//nm3P/89fD//Pfz//338//99/P//Pfz//339P/99/P//ffz//349P/1zbn//tjH//7Yx//+2Mf//dbE//fZy//99/P//Pfz//z38//79O//+/Pu//rx7f/67+n/+uzk//jf0v/zxa7/8K6P//jHsf/80r///dTC//3ayf/89/P//Pfz/+Gtlf/Sgl3/0H1W/9B9Vv/QfFb/245q/+agfv/qpoX/7aqK//Cuj//wro//87ea/+61mv/elnX/7c/A//z28v/ir5f/0H1X/9OBW//dkm//4Zh1/9uOav/RgFr/0H5X/9F+WP/km3n/6aSD/9eIZP/QfVf/0X1X/9B9V//WkG//7sq4//LZzP/ywKn/8K+P//CvkP/wr4//7KmJ/9SEXv/RfVj/0X1Y/9GAWf/Rflf/0X1X/9F+WP/ajWn/6aqM//bUw//67eb//Pfz//np4P/zxK3/8K6P//CvkP/nooH/0H1Y/9F9WP/Rflf/0X5X/9F/Wf/xwqv/9cu3//z07//89/P/+/Pu//bTwv/xuJ3/9tbH//jk2f/xt5v/8K6P/9WFYP/QfVj/0X5X/9F9V//blHP/+dTC//z28v/89/P/+OTY//G1mf/wr5D/8K+Q//Cvj//1zbn/+/Dq//G2m//ajWn/0X1Y/9F9V//RfVf/3JBs//jh1f/89/P/+ODT//CvkP/wr4//8K+Q//CvkP/wr5D/8K6P//vv6P/55dr/14dj/9F9WP/QfVf/0X5X/9aGYf/78u3//Pby//G1mf/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/54tb/9OLY/9F+WP/Rflj/2oxo/9F+V//QfVf/+/Tv//rq4f/wro//8K+P//CvkP/wr4//8K+Q//CvkP/wr5D/9dfI/9eTcv/RfVj/4JZz/+2qiv/VhF//0H1W//bn3//449j/8K6P//Cuj//wro//8K6P//Cuj//wro//5Z59/9SGYv/RgVv/455+//Cuj/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAANGAWv/uqor/8a6P//Guj//xt5z//Pj0//z49P/89fD//tnI///Yx//3xKz/8K2O//Guj//vq4v/0X9Z/9F9WP/RfVj/0X1Y/9B9V//imHb/8a6P//Cuj//wro//8a6P//Guj//xro//8K6P//Ctjv/339P//ffz//TKtv/wrY7/0H1Y/9mNaf/wro//8K+Q//G4nP/9+PT//ff0//zp3///2Mb//tfE//Gxk//wr5D/8a+P/92Sb//Qflj/0X5Y/9F9WP/QfVf/249s//Cujv/wr5D/8K+Q//Cuj//wr5D/8K+Q//CvkP/wr5D/8K+Q//C0l//89vL/+/Pv//CxlP/Rflj/0H1X/9+Vcv/wro7/87yi//z38//9+PT//eXa//7Yxv/0u5//8K6P//Guj//jmnj/0H1X/9F9WP/RfVj/0H1X/9uQbf/wro7/8K+P//GukP/xr5D/8K6Q//Cvj//wr5D/8K+Q//CvkP/wr5D/8KyN//no3//99/P/9c68/9F9WP/QfVj/0H1X/9uTcf/50Lz//O/o//348//759z/87ic//Cujv/sqYj/249r/9B9V//QfVj/0X1Y/9B9WP/bjmv/762N//Cvj//wro//8K+P//Cvj//wr5D/8K+Q//GvkP/wr5D/8K+Q//CvkP/wrY7/+OPY//338//449j/0H5X/9B+V//Qflf/0H5X/9B/Wf/doIL/57yo/+i9qf/flXP/14pm/899V//Qflf/0H1X/9SEXv/Sglz/z31W/899Vv/Qflf/1YZh/9yRbv/jm3n/7KiI//Cuj//wro//8K6Q//Cvj//wr5D/8K+Q/++tjf/67+j//ffz//vu5//WiGT/z31W/9B+V//Rflf/0H5X/9F+V//Rflf/0X5X/9B+V//QfVb/0H5Y/9mMaP/noH//8K6P//Gvj//rp4b/4Jd0/9ODXf/Rflf/0X5X/9B+V//PfVb/14hk/+unh//wro//8K6Q//Cuj//wro//88Kq//339P/89/T/+/Dq//Ctjv/tqYn/5J17/96Vcv/fnoD/25Z1/9mMaP/clHL/5ryp/+7Ovv/vspb/8K6O//Cuj//wr4//8K6P//Cvj//wro//76yN/9eJZf/Rflf/0X5X/9F+V//Rflf/0YFb/+yoh//wro//8K6P//C1mf/77+n//ff0//z49P/56uH/8K6P//CvkP/wr4//762N//zSv//918b/8bOW//Cujv/ywKf/+/Dq//zz7v/10L3/8LGT/++sjP/wsZP/8bid//K7of/xvKP/67KX/9aScv/WkHD/1Y5t/9WNbP/VjGr/3Zt8//K/p//21MP//PPu//339P/99/T//fjz//fay//wrY7/8K6P//Cvj//vrY3//NK+//7Yxv/6zbf/8K2O//Cvj//wspT/99zO//z38//89fH/+/Dp//z38//8+PT//ffz//338//9+PP//ff0//z39P/9+PT//fj0//349P/9+fT//ffz//338//99/P//fjz//349P/9+PP/8ryk//nKtP/3xKv/9b+l//nKtP/+2Mb//tjH//7Yx//zuZ7/8K+Q//Cujv/1z73//PXx//338//99/P//Pf0//z38//99/P//ff0//338//99/P//Pfz//338//99/T//Pfz//338//99/T//Pfz//338//9+PT//fj0//XTwf/wrY7//tjH//7Yx//+2Mf//tjH//7Yx//+2Mf//tjH//vRvf/vrY//+OHW//338//99/P//Pfz//z38//99/P//ffz//339P/99/P//Pj0//348//89/P//ff0//338//99/T//ffz//338//99/P//fj0//vw6f/zyLP/8K2O//Guj//+2Mf//tjH//7Yx//+2Mb//tjH//7Yx//+2Mf//tjG//nh1f/99/P//Pfz//338//99/P//Pfz//z49P/89vL/+vHr//nw6v/57un/+e7o//jt5//46+X/9unh//fn3v/55dv/99zO//XPvf/yvqX/762O//Cuj//wr5D/8K6P//7Yx//+2Mb//tjG//7Yx//+2Mf//tjG//7Yx//+2sr//Pfz//338//89/P//ff0//nt5//ispv/1Y9u/9CAWv/PfFb/z3xV/898Vf/PfFX/z3tV/897Vf/Wh2L/7qqJ//Ctjf/wro7/8K6P//Cvj//wr5D/8K6P//CvkP/xro//8bOW//S7of/3w6v//tfG//vPu//808D//dXD//zg0v/89/P//ff0//z38//89/T/2Jh6/9B+WP/Rflf/0X1X/9F+V//Rflf/0X5Y/9F+WP/Rflf/0X5X/9F/Wf/WiGP/25Bs/9+Wc//jm3j/5Z99/+iigP/uq4v/8K6P//Guj//wro//8K+Q//Cuj//4yLH/+Mmz/++sjP/vq4v/6LGX//ry7f/89/P//Pfz//z38//bn4L/0H1X/9F+V//RfVf/0X5X/9F9V//QfVf/0H9Y/9SEX//Rf1n/0H1W/9F9V//Rflf/0H5X/9B+V//PfVf/0H1X/9KBXP/oooH/8a6P//Cuj//wr5D/8K+P//O3m//0ybP/3pd2/9GAWv/QfVf/1Ipn/+rJuP/89fH//ffz//vz7v/hr5f/0H1X/9B+V//Qflf/2Yxp/+agf//wro3/8K+Q//Cujv/qpoX/4ph2/9WGYv/QfVf/0X5X/9F+V//RfVj/0X1X/9B+WP/mn37/8K6P//Cujv/mn37/1ohj/898Vv/QfVf/0H5X/9F9V//QfVf/0H1W/9SKZ//mvKj/+Ozm//z38//z4NX/4qqP/+ynh//wro//8K+Q//CvkP/wr5D/8K+Q//CvkP/wr4//8K6P/+KZd//Qflf/0X5X/9F9WP/RfVj/0X1Y/9F/Wf/uqor/2Ipm/9B9V//Rflf/0X5X/9F+V//Rflf/0X1X/9F9V//Rflf/0X5X/899Vv/VhmL/7r6n//nl2//89/P/+ejf//PFr//wro7/8K+P//CvkP/wr5D/8K+P//CvkP/wr4//8K6P/+CXdf/QfVf/0X5Y/9F+WP/RfVj/0X1Y/9SFYP/Qflf/0X1X/9F+WP/Rflf/0H1X/9F9V//RfVf/0H1X/899V//ajWn/6KKC//Ctjf/yvqX/9tbG//vy7P/89/P//Pfz//rt5v/0ybX/8K6P//CvkP/wr5D/8K+Q//CvkP/wr5D/8K6O/9aIZP/Rflj/0X1Y/9F+WP/RfVj/0H1X/9F+V//Rflj/0X5X/9F+WP/RfVf/0H5X/9GAWv/dk3D/7amI//Cuj//0yrf/+uzl//z49P/89/P//Pfz//z38//89/P//Pfz//z49P/67eb/88aw//Ctjv/wr4//8K+Q//CvkP/wr4//6KKC/899V//Rflj/0X5Y/9F9WP/Rflf/0X1X/9F9WP/Rflf/0X5X/9B9WP/Xj23/+M+8//K2mv/xuZ7/+uvj//339P/99/P//Pfz//338//89/P//Pjz//no3v/zxbD/8ryj//nn3f/89/P/+efd//G7of/wro7/8K+P//CvkP/wro//1YVh/9F9WP/QfVj/0X1Y/9F+V//Rflf/0X5Y/9F+V//Rflf/0YJd//nRvf/+2Mb/9cm0//v07//89/P//Pfz//z38//89/P//Pfz//np4f/ywan/8K2O//GvkP/wr5D/8K2O//XPvf/89/L//Pbz//XRwP/wro7/8K+Q//Cuj//elHH/0X1Y/9B9WP/RfVj/0X5X/9F9V//Rflf/0X1X/9F+V//ipYj//tjG//zYxv/78+7//ffz//z38//89/P//Pfz//v18P/0zLn/762O//Cvj//wr5D/8K+Q//CvkP/wr5D/8K6O//PDrP/89vH//Pfz//fbzv/wrY7/8K6P/+Scev/QfVj/0X1Y/9F9WP/Rflj/0X5X/9F+V//RfVj/0H1X/+uyl//zu6H/+efc//z38//89/P//Pfz//z38//56+L/8bic//Cuj//wr5D/8K+Q//CvkP/wr5D/8a+P//CvkP/wr5D/8K6O//TNuf/99/P//ffz//bSwf/wrY7/5J17/9B+WP/Rflj/0X1Y/9B9V//Rflf/0H1X/9F9V//PfFb/6qSE//K/p//89/P//Pfz//z38//89/P/+eXb//Cwkv/wr4//8K+P//CvkP/wr5D/8K+P//CvkP/wr5D/8K+Q//CvkP/wr5D/8K6P//vx6//99/P//ffz//K+pf/hmHb/0X1Y/9F9WP/RfVj/0X1X/9F+V//Rflf/0X5X/9B9V//oooH/9tjJ//z38//8+PP//Pfz//vx6v/wspT/8K+P//CvkP/xr4//8K+P//CvkP/xr5D/8K+Q//CvkP/wr5D/8K+Q//Cvj//wro7/99zO//338//89/P/+ufe/9mLZ//Rflj/0X1Y/9F9WP/RfVf/0H5X/9F9V//Rflj/0H5X/+GXdP/56eD//Pfz//z38//89/P/9Mq2//Cuj//wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8a+Q//CvkP/wr5D/8K+Q//Cvj//1z7z//ffz//338//47eb/0H9Z/9F9WP/Rflj/0X1Y/899Vv/Rflf/0X5Y/9F+V//Rflj/1YZh//vz7f/89/P//Pfz//z18P/wr5H/8a+Q//GvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//TKtf/99/P//Pfz/+Gulv/RfVj/0X5Y/9F+WP/Qfln/2o1p/9F9V//RfVj/0X5X/9F+V//PfVf/+vLt//z38//89/P/+ePY//Ctjv/wr5D/8K+P//CvkP/wr5D/8K+Q//Cvj//xr4//8K+Q//GvkP/wr5D/8K+Q//CvkP/wr5D/9Miz//338//t0MH/0H1W/9F9WP/RfVj/z31X/+KZd//tqIj/0X9Z/9F+WP/Rflf/0X5X/899Vv/58Ov//Pfz//z38//21sf/8a6P//GvkP/wr5D/8K+P//CvkP/wr5D/8K+Q//GvkP/xr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/1zLn/7tHC/9CAWv/Rflf/0X1Y/9B9V//ek3D/8a6P//Cujv/lnn3/0H1X/9F9V//Rflf/z3tU//Xl3P/89/P//Pfz//XQv//wr4//8K+P//CvkP/wr5D/8K+P//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr4//762N/+CfgP/QfVf/0H5X/9B+V//QfVf/4Zd1//Cuj//wro//8K6P//Cuj//imnj/0H1X/9F+V//QfVf/68u7//z38//89/P/8826//Cuj//wro//8a6P//Cuj//xro//8a6P//Guj//xro//8K6P//Guj//xro//8K2O/+Obev/Tg17/0H5Y/9B+WP/Qflj/1Ipo/+u3n//xro7/8a6P//Guj/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAADRf1n/4pl2//Ctjv/xrY7/8a2O//Gtjv/wsJL/99zO//z48//8+PT//Pf0//z28v/+3Mz//9jH///Yxv/80r7/8bGT//Gtjv/xrY7/8a2O//Csjf/ThF7/0H1Y/9F+WP/Rflj/0X1Y/9F9WP/QfVj/0H9Z/+afff/xrY7/8a2O//Ctjv/wrY7/8K2O//Gtjv/xrY7/8K2O//Gtjv/wrY7/8a2O/++sjf/34NX//ffy//349P/1z73/8K2O//Guj//QfVj/1YZh/+yoiP/xr4//8a+Q//GvkP/wspT/997S//349P/8+PT//Pj0//zp3///18X//9nH///Zx//3xKz/8K2O//CukP/wr5D/8K6P/+KZd//PfFb/0X1Y/9F+WP/RfVj/0X1Y/9B9WP/Qflj/3pJw/++sjP/wr5D/8K+Q//CvkP/wro//8K+P//CvkP/xr5D/8a+Q//GvkP/wr5D/8K+Q//Cuj//wtpr/+uvi//338//78Or/8r6l//Cujv/Rflj/0H1X/9qOav/wro//8a+P//GvkP/wsZP/99zO//349P/99/T//Pjz//3dz///2cb//9nG//zTv//wr5D/8K+P//GvkP/xr4//6qWE/9KDXf/Qflj/0X5Y/9F+WP/Rflj/0H1Y/898Vv/ZjGj/7quL//Cvj//wr5D/8K+Q//GvkP/wrpD/8K+P//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wro//9dPB//z28v/99/P/9tnL//Cwkv/Rflj/0X5Y/898V//flXH/76yM//Cvjv/wsZP/+NvN//349P/9+PT//Pby//7by///2cf//dXB//K3mv/wro//8a+Q//Guj//tqIj/2Itn/9F9WP/Rflj/0X1Y/9F9WP/QfVf/0H5Z/9mMaf/vrY3/8K+P//Cuj//xro//8a+Q//GvkP/xr5D/8K+Q//Gvj//wr5D/8K+Q//GvkP/wr5D/8K+Q//CvkP/wrY7/88Su//vz7f/89/P/++/p//G2m//RfVj/0X1Y/9B9WP/Qf1n/3pNw/++ylP/5ybP//OPX//z38v/9+PT//Pfy//7dzf/808D/9Lug//Cuj//wro//8K6O/+ijgf/YiWX/0H1X/9B+WP/RfVj/0H5Y/9B9WP/Qf1n/3pNx/+6ri//wr4//8K+P//Cvj//wr5D/8K+Q//GvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wro//8r6l//vx6//99/P//Pjz//PGsf/RfVj/0X1Y/9F9WP/QfVj/0X5Y/9aMaf/xw6z//d3P//z08P/9+PP//Pjz//nayv/xspX/8K6O//Gvj//tq4r/3pNw/9KBXP/Qflf/0H5Y/9F9WP/RfVj/0H5Y/899V//Yimb/6aSD/++tjv/xr4//8K6O//Cvj//wro//8K+P//Cvj//wr5D/8K+Q//Cvj//xr5D/8K+Q//CvkP/wr5D/8K+Q//CukP/wro//8r6l//vx6//9+PT//ffz//fazP/Qflf/0H5X/9B+V//Qflf/0X5X/9B+V//PfFb/2pV0/+vGs//04Nf/9uTb//PXyv/rpYT/5p9+/9uPbP/Qfln/z31W/9F+V//Rflf/0H5X/9KAW//Rf1r/0H5X/9B+V//PfVb/znxV/9B/Wf/XiWX/35d0/+iigf/sp4f/7aqK/++tjf/wro//8K6P//Cuj//wro//8K+Q//GvkP/wr5D/8K+Q//CvkP/wro//88Wv//zz7v/99/P//ffz//no3v/PfVb/0H5X/9B+V//Qflf/0H5X/9F+V//Qflf/0H1W/898VP/Qf1n/04Vg/9SGYv/Rf1n/z31W/899V//Qflf/0H5X/899Vv/UhF//3ZJv/+affv/knXv/3pRx/9mMZ//SgVz/z31W/9B+V//QfVf/z31W/899Vv/SgVv/1ohk/9yRbv/lnnz/7quL//Cujv/wro//8K6Q//CukP/wrpD/8K+Q//CvkP/wr5D/9tbG//z28//89/T//Pfz//rr4//flnP/04Nd/898Vv/PfVf/0X5X/9B+V//Qflf/0X5X/9F+V//Rflf/0X5X/9F+V//Rflj/0H1X/898Vv/PfVb/1ohk/+Scev/tqYj/762N//Cuj//xr4//8K2N/+6riv/sp4f/4Zl2/9GBWv/QfVf/0X5Y/9F+V//Rflf/0X5Y/9B+V//Rf1r/2Yxp/+2qiv/wro7/8K6P//Guj//wrpD/8K6P//Cujv/xtpr/++7n//z39P/89/P//fj0//rq4v/wrY7/8K2N/+mjgv/elHH/14lk/9OFX//Th2P/0oVh/9KEX//SgVv/0oJc/9OFYP/XlHX/36mQ/+azm//sq43/8K6O//Cujv/wro//8K6P//CvkP/wro//8K+Q//Cvj//xro//8K6P/+2pif/Vh2L/0H1X/9F+V//RfVf/0X5X/9F+V//Rflf/0H1X/9aJZf/uq4v/8K6P//Cuj//wro//8K6O/++wk//34dX//ff0//349P/8+PT//Pj0//jk2f/wrY7/8K6P//Cuj//xr4//8K6O/+6tjf/3zLj/9cq1//LBqf/ppYX/66aG/+6wk//22Mr//PXx//328v/43tH/8r6m//Ctjv/wro//8K6P//Cuj//wro//8K6P//Cuj//wro//8K6O//Ctjv/qpYX/0oJc/9B9Vv/QfVf/0H1X/9B9V//QfVf/0H1X/899V//ajmr/76uM//Ctjv/wro//8r+n//jh1f/99/T//ff0//339P/99/T//fjz//XVxP/xrY7/8K+P//GvkP/wr5D/8K+P/++sjP/5zLf//tjH//7Yxv/1v6X/8K2N//Cuj//wsJL/9My4//z07//99/P/+/Hq//fdz//xuZ//76uL/++qiv/wsZP/8bqg//LAqf/zxK3/88aw//LHsv/xxK3/462T/9ughf/bnoL/2Zx//9mafP/ZmHv/2Jd5/9iXd//anH7/7bmh//XRv//55dv/+/Ls//338//9+PT//ff0//349P/9+PT//fjz//LAqf/wrY7/8K+Q//CvkP/wr5D/8K+Q/++sjf/5y7X//tjH//7Yxv/808D/8bOV//Guj//wr5D/762N//G7of/56N///PXw//338//99/L/+uri//rw6P/89/P//Pj1//349P/9+PT//fjz//338//9+PT//fjz//349f/8+PX//fj1//359f/9+fX//fn1//359f/9+vX//fj0//338//99/P//ffz//339P/9+PP//fj0//349P/9+PP/+unf//Gzl//ytZj/8LGT//Cuj//vrY3/762O//K5nf/91cP//tjG//7Yx//+18X/9sOr//Cuj//wr5D/8K+Q//Ctjv/wsZT/99/T//z28v/99/P//ffz//338//99/P//Pfz//z38//99/P//ffz//z38//99/P//ffz//338//99/P//ffz//338//99/P//ffz//z38//99/P//ffz//338//89/P//ffz//z38//9+PT//fj0//349P/89e//9Mu3//GukP/81MD//NO///zQvP/5zLb/+s65//3Vwv/+2Mb//tjH//7Yx//+2Mf//NPA//Gylf/wro//8K6P//Cuj//32Mn//PLs//z38//89/P//ffz//z38//89/P//ffz//z38//99/T//fj0//349P/99/T//ffz//338//89/P//ffz//339P/99/T//fj0//z48//99/T//ffz//348//89/P//ffz//339P/9+PT//fj0//z49P/21sb/8K+R//Cuj//+2Mf//tjH//7Yx//+2Mf//tjH//7Yxv/+2Mf//tjH//7Yx//+2Mb//tjH//fGr//vrI3/8bWa//nl3P/9+PT//Pfz//338//99/P//Pfz//z38//99/P//ffz//z38//99/T//ffz//338//9+PT//Pfz//349P/89/P//ffz//339P/99/P//ff0//339P/99/T//ffz//338//9+PP//ffz//348//99/L/+u/o//TNuf/vrIz/8K6P//Guj//+2Mb//tjH//7Yx//+2Mf//tjH//7Yx//+2Mf//tjH//7Yx//+2Mf//tjG//3Xxf/yuZ7/+ODU//338//89/P//ff0//339P/89/P//Pjz//z38//8+PP//ffz//338//99/P//ffz//z38//99/P//ffz//348//99/P//Pfz//338//89/P//Pfz//338//9+PP//fj0//349P/89vL/+u3m//jg1P/1z73/8bmf//Ctjv/wr5D/8K6P//Guj//+2Mf//tjH//7Yx//+2Mf//tjH//7Yx//+2Mf//tjH//7Yx//+2Mf//tjG//7Xxf/749f//Pfy//338//89/P//ffz//339P/8+PP//ffz//z38//8+PX//fj1//v08P/57uj/9+zk//fr4//36eL/9+ni//bo4f/26OD/9ebd//Xj2//z4df/8dvQ//ff0//328z/9tPB//PGsf/yu6H/8bSY//Cxk//wro//8K6O//Cvj//wr4//8K6P//Guj//+2Mf//tjH//7Yx//+2Mb//tjH//7Yx//+2Mf//tjH//7Yxv/+2Mf//tjG//7ZyP/79vL//Pfz//338//89/P//Pfz//339P/99vP/9+ri/+rJuf/coof/1Ipo/9CAW//PfFb/znxV/857VP/Oe1P/zntT/856U//PelT/znpT/856U//PfFX/3pJu/++riv/wrI3/8K2N//Cujv/wro//8K6P//CvkP/wr5D/8K+Q//Cuj//wr5D/8K6P//Guj//4yLH/+s25//zTwP/+18b//tjH//7Yx//+2Mf//tjH//7Yxv/+2Mf//tfF//3k2f/89/P//ffz//338//89/P//ffz//338//x2s7/15Jz/899Vv/QfVf/0H1X/9B+V//RfVf/0X5X/9F+V//Rflj/0X5Y/9F+V//Rflf/0X5X/9B+V//ThF7/45p4/+iigf/sqIj/76yN//Cuj//wro//8K+P//Cvj//wro//8K6P//Cuj//wr5D/8K6P//Guj//wr4//8bCS//Cwk//ytJf/+Mex//7Yxv/5yrT/+cy3//vSvv/81MD/+9K+//vr4f/89/P//ff0//348//89/T//ffz//z49P/anH//0H1X/9B+WP/Rflf/0X5X/9F9V//Rflf/0X1X/9F+V//Rflf/0X5Y/9F+WP/RfVf/0X5Y/9F+WP/Qflf/0X9Z/9KBW//Sglz/04Ne/9WHYv/ZjGj/3JFu/9+Vcv/hmXb/5qB+/++sjf/wro7/8K6P//Guj//wrY7/8K+Q//Cvj//xro//8raZ//zUwP/6zbn/8K+Q/+6ri//vq4v/7aiI//PXyf/89PD//Pfz//z39P/89/P//Pfz//z49P/bn4L/0H1X/9F+V//RfVf/0X1X/9F+V//RfVj/0X5X/9F+V//Rflj/0H1X/9B/WP/Rf1n/0X9Z/9F+WP/Rflf/0X1Y/9F+WP/Rflf/0X5X/9B+V//Qflf/0H1X/899V//PfVf/z3xW/9iLZ//rqIf/8K6O//Guj//wrY7/8K+Q//CvkP/wr5D/766P//nLtf/+18X/9sWt/+yoiP/jm3j/2o5q/9WKZ//jtqD/9eTb//338//99/P//ffz//338//05Nv/2p6B/9B+WP/Rflf/0X5X/9F9V//Rflf/0H1X/899V//UhF//249s/+GYdf/knXv/45t5/9+Vcv/bj2v/1oZi/9F/Wf/QfVb/0H5X/9F+V//Qflf/0H5X/9B+V//RfVj/0X1Y/9B9V//UhV//5p9+//Ctj//wrY7/8a+Q//CvkP/xr4//8K6O//S7oP/0ybP/3p5+/9ODXv/Rf1n/0H1X/9F+WP/Rf1n/1I1r/+W8p//68ez//fj0//348//99/P/+Ozl/+S5pP/Pflj/0H1W/9B+WP/PfVf/1Ydi/+Sde//tqYn/76yM//Gvj//wr5D/8K+P//Cuj//vrIz/7amJ/+qkhP/ek3H/0YBa/9B+V//Qflf/0X5X/9F+V//QfVf/0X1Y/9B9V//Rflj/0oJc/+mjg//wrY7/8K+P//Cujv/uq4r/56B+/9eKZf/OfFX/z31X/9F9V//Rflf/0X1X/9F+V//Rflf/0H5X/897Vf/ShmP/5ryp//Xl3P/68ez//Pfz//z49P/04tj/3KCE/9iOa//mn37/8K2N//Cujv/wr4//8a+Q//CvkP/xr5D/8K+Q//CvkP/xr5D/8K+Q//Gujv/wro7/6qWF/9WGYv/Qflf/0H5X/9F+V//Rflj/0X1Y/9F9WP/Rflj/0X1Y/9KBXP/xrY7/76yN/+WefP/Yi2f/0H5Y/9B9V//Rflf/0X5X/9F+V//Qflf/0X5X/9F9V//Rflf/0H5X/9F+V//QfVf/z31W/9SJZv/eqI7/6si3//nu5//8+PT/+/Pu//jh1f/0yLP/8LOW/++tjv/wr4//8K+P//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr4//8K6P/+yoiP/Yi2f/0H1W/9B+V//Rflj/0X5Y/9F9WP/RfVj/0X1Y/9F9WP/vq4z/3ZNw/9F/Wv/RfVf/0X1X/9F+WP/Rflf/0X5Y/9F9V//Rflj/0X5X/9F9V//RfVf/0X5X/9F+V//RfVj/0H5X/898Vv/UhmH/5qGB//C1mf/10L7/+/Dp//z38//89e//+erh//TMuf/wro//8K2N//CvkP/wr5D/8K+Q//Cvj//wr4//8K+Q//CvkP/wr5D/8K+Q//Guj//sp4f/1YZh/9B+WP/Rflj/0X5Y/9F9WP/Rflj/0X1Y/9F9WP/dk3D/z31X/9B+V//RfVj/0X1X/9F+V//Rflf/0X1X/9F+V//RfVf/0X1X/9F9V//Rflf/0H1X/9B9V//SgFv/2Ipm/+ehgP/xro7/8K+Q//Czlv/xu6H/9tfI//z07//8+PP//Pfz//z49P/78Or/9Mq3//G0l//xro//8K+P//CvkP/xr5D/8K+P//GvkP/wr5D/8K6P//CvkP/wro7/45x6/9B/Wf/Rflj/0X1Y/9F9WP/Qflj/0X1Y/9F9WP/PfVf/0X1X/9F9V//RfVf/0X1X/9F9V//Rflj/0X1X/9F9WP/QfVf/0H1X/9B9V//PfVf/1YVg/9+Ucf/pooL/76yM//Cvkf/ywar/9tbG//np4P/89/L//Pfz//z38//99/P//Pfz//z38//89/P//Pfy//np4P/1z7z/8bab//Ctjv/wr5D/8K+Q//CvkP/wr4//8K+P//CvkP/wr5D/7quM/9eJZf/QfVj/0X5Y/9F+WP/Rflj/0X1Y/9F9WP/Rflf/0X1X/9F+V//Rflj/0X5X/9F+V//Rflj/0X5Y/9F+V//Rflf/z3xW/9OGYv/jnHv/7amJ//Ctjf/vrI3/8sGq//jm3f/88uz//Pfy//z48//89/P//Pfz//z38//9+PP//Pfz//348//89/P//Pj0//z49P/89vL/+u3k//TLuP/vrY3/8K6O//Gvj//wr5D/8K+Q//CvkP/wr5D/8a6P/+ihgf/PfFb/0X5Y/9F9WP/Rflj/0X1Y/9F9WP/Rflj/0X1X/9F+V//QfVj/0X5X/9F+V//Rflf/0X5Y/9F+WP/Qf1r/4aKE//rUwv/zu5//8K2O//Cylf/22Mn//Pby//339P/99/P//Pfz//z48//99/P//Pfz//338//9+PP//fby//vx6v/339P/8sCp//XSwv/78On//fby//z49P/56d//8r+m//Cvkf/wro7/8K+P//CvkP/wr5D/8K+P//Cvj//VhmL/0H1Y/9F9WP/QfVj/0X5Y/9F9WP/Rflf/0X1X/9F9V//RfVj/0X5X/9F+V//Rflf/0X5X/898Vv/hpIf/+tTB//7Yxv/2wqn/8byi//nm3P/89/P//Pfz//z38//89/P//Pfz//z38//89/P//Pfz//z38//67eb/9dTD//K7ov/wrY7/8K2O//Ctjf/xuZ//99rM//z18P/9+PP/+/Ls//bYyf/xt5z/8K2N//Cvj//wr5D/8K+P//Cujv/imXf/z31X/9B+WP/Rflj/0H1Y/9F9WP/Rflj/0X5X/9F+V//RfVj/0X5Y/9F+WP/Rflf/0H1X/9aMaf/71cP//tjG//7Yxv/2ybT/+uvi//z38//89/P//Pfz//z38//89/P//Pfz//z48//89/P/+/Xw//XVxP/xtJj/8K+Q//Cuj//xr5D/8K+Q//CvkP/wro//8LCR//PIs//79fH//Pjz//338//66+P/8r+n//Cujv/wr5D/8K+P//Cujv/qpYT/0X5Z/9F9WP/QfVj/0H1Y/9F9WP/Rflf/0X5X/9F9WP/Rflf/0X1X/9F+V//Rflf/z31W/+u4n//+2Mb//tfG//3Yxv/67eb//Pfz//338//89/P//Pfz//338//89/P//Pfz//z28f/56N7/8r6l/++tjf/wro//8K+Q//GvkP/wr5D/8K+Q//CvkP/wr5D/8K+P/++sjf/yv6b/++/p//z38//99/P/+vDp//K+pv/wrY7/8K6Q//Cuj//sqIj/04Nd/9B9WP/Rflj/0X1Y/9F9WP/Rflf/0X5X/9F+V//Rflf/0X1X/9F9V//Rflf/04Vh//bNuP/81cL/+Mu1//rm2//89/P//Pfz//338//89/P//Pfz//338//89/P/+/Dq//XRwP/wspX/8K2O//Cvj//wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wro//88St//vx7P/99/P//Pfz//vv6v/ywKj/8K2N//Cuj//tqYj/1IVf/9F+WP/RfVj/0X1Y/9F9WP/Rflf/0X5X/9B+WP/Rflj/0X1Y/9F+WP/Rflf/141q//G4nf/wspX/9Mm1//v07//89/P//Pfz//z48//8+PP//Pfz//338//67+n/8sGp//Cvj//wr5D/8K+P//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//Gvj//xr4//8K+Q//CvkP/wr5D/8K6O//bUxP/9+PT//ffz//338//77OT/8rme//Gujv/sqYj/1IVf/9F+WP/Rflj/0X1Y/9F+WP/Rflf/0H5X/9F+WP/Rflf/0X5X/9F+V//QfVf/2Yxo/+6qi//xsZP/+ODU//z38//89/P//Pfz//z38//89/P//Pfz//rr4//xtpv/8K2N//Cvj//wr5D/8K+Q//CvkP/xr5D/8K+Q//Cvj//wr5D/8a+Q//CvkP/xr5D/8K+Q//CvkP/xr5D/8K+P/++wkv/78+7//Pfz//338//99/P/99vN//Cwkf/sp4f/0oBc/9F9WP/Rflj/0X1Y/9F+WP/Rflf/0H5X/9F+V//QfVf/0X1X/9F9V//QfVf/2Ytn/+6riv/xuJ7/+/Ls//z38//89/P//Pfz//z38//89/P/+enh//G5n//wro7/8K+Q//CvkP/wr4//8K+P//GvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CsjP/328z//Pjz//338//99/P//PPu//PBqf/ooYD/0H1X/9F9WP/RfVj/0X1Y/9F9WP/RfVf/0X5X/9F+V//RfVj/0X5X/9F+WP/Rflf/14lk/+2piP/zybT//Pf0//z38//8+PP//Pfz//z38//79O7/9Miz//Cuj//wr5D/8K+Q//Gvj//xr5D/8K+P//Cvj//wr5D/8a+Q//GvkP/xr5D/8a+Q//CvkP/wr5D/8K+Q//Cvj//wr4//8K+Q//Cujv/yxK7//fj0//339P/89/P//ffz//rn3v/ckW3/0H1X/9F9WP/Rflj/0X1Y/9F9WP/Rflf/0X1X/9B+V//RfVj/0X1X/9F+V//Rflf/0oJc/+umhf/33M///Pfz//338//89/P//Pfz//z38//45dz/76+R//Cvj//xr5D/8a+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//GvkP/xr5D/8K+Q//CvkP/xr5D/8K+P//Guj//xuZ///Pbx//338//99/P//ffz//rw6//Sg17/0X1Y/9F9WP/Qflj/0X1Y/9F9WP/QfVf/0X1X/9F9V//RfVf/0X1X/9F9V//Qflj/z31X/+Sbef/56uL//Pfz//z38//89/P//Pfz//z49P/zw6z/8K2O//CvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/xr5D/8a+Q//CvkP/wr5D/8K+Q//GvkP/wr5D/8K+Q//GvkP/wr5D/8K+Q//Cvj//xtpr/+/Ls//338//99/P//Pfy/+W7pv/Pe1X/0X5Y/9F+WP/Rflj/0X1Y/9F9WP/PfFb/0X1X/9F+V//Rflj/0X5X/9F+V//Rflj/0H5Y/9aHYv/78ev//Pfz//z38//89/P//Pfz//vw6//vrY3/8K+P//CvkP/wr5D/8a+Q//Cvj//wr5D/8K+Q//GvkP/wr5D/8K+Q//GvkP/wr4//8K+Q//Cvj//xr5D/8K+Q//CvkP/wr5D/8K+Q//Gvj//xtJj/+/Dp//348//8+PP/89/U/9OJZ//Rflj/0X5Y/9F9WP/Rflj/0X1Y/9GAWv/ckW7/0H1X/9F+V//QfVj/0X5X/9F+V//Rflf/0X5Y/899Vv/57+n//Pfz//338//89/P//Pfz//fbzf/wrIz/8a+Q//Cvj//xr4//8K+Q//CvkP/wr5D/8K+Q//GvkP/wr4//8K+P//GvkP/wr5D/8a+Q//GvkP/wr5D/8K+P//CvkP/xr5D/8K+Q//GvkP/xtJj/+u/o//338//57uf/3qSJ/9B9V//Rflj/0X1Y/9F9WP/QfVj/0H9a/+Weff/rpob/1INe/9F9V//RfVj/0X5X/9F+V//Rflf/0X5X/899V//47+n//Pfz//z38//89/P//Pj0//TJtf/wro//8a+Q//GvkP/wr5D/8a+Q//Gvj//wr4//8K+Q//CvkP/wr5D/8K+Q//GvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//CvkP/xr5D/8K+Q//CvkP/xtJj/+/Dq//rx7P/hsJj/0H9Z/9F+V//Rflj/0X5Y/9B+WP/Qfln/35Ry//Csjf/wrY3/4Zd1/9B+WP/RfVj/0X5Y/9F+WP/Rflf/0X5X/897Vf/36+X//Pfz//338//89/P//Pfz//K+pv/xro//8a+Q//CvkP/wr5D/8a+Q//CvkP/xr5D/8K+Q//Cvj//wr5D/8K+Q//CvkP/xr5D/8K+Q//CvkP/wr5D/8a+Q//GvkP/wr5D/8K+Q//Cvj//xtpv/+Oni/92jiP/Qfln/0H5X/9F+V//RfVj/0X1Y/898V//ekm//7qyL//Guj//xrY7/76yM/9iLaP/QfVf/0X1X/9F+V//Rflf/0X5X/856Uv/z4NX//Pfz//z38//89/P//Pbx//K5n//xr4//8K+P//GvkP/wr5D/8K+Q//GvkP/wr4//8K+Q//CvkP/wr5D/8K+Q//GvkP/wr5D/8K+Q//CvkP/wr5D/8K+Q//GvkP/wr4//8K+P/++tjf/srpD/2pt9/9B9V//Rflf/0H5X/9F+V//Rflj/0X9a/9+Vc//xro//8K6P//Cuj//wrY7/8K6O/+2pif/Yi2b/0H1W/9F9V//Rflf/0X1X/897Vf/pxbT//Pfz//z38//89/P//Pbx//K4nf/wr4//8K6P//Cuj//xro//8a6P//Cuj//wro//8K6P//Cuj//wro//8K6P//Cuj//wro//8K6P//Cuj//wro//8K6P//Cuj//wro7/66eH/9+Wc//Tgl3/0H1W/9B+V//Qflf/0H5X/898Vv/UiGX/5J18//Ctjf/xro//8a6P//Guj//wro//8a6P//Cuj//tqYn/2Itn/9B+WP/Rflf/0X5X/9B9V//cpYr//Pj0//z48//89/P//PXx/+yxlf/xro//8a6P//Guj//xro//8a6P//Cuj//xro//8a6P//Guj//xro//8a6P//Guj//wro//8K6P//Guj//xro//8a6P/++sjf/glnT/04Re/89/WP/Qfln/0H5Z/9B+Wf/Qfln/0H5Z/92ih//z2Mv/8K+R//Guj//xro//8a6P//GvkP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" type=image/x-icon data-sf-original-href=https://ghostarchive.org/favicon.ico><link rel=canonical href=https://ghostarchive.org/archive/vA9DJ><body><script type=application/json data-single-file-options>{"saveUrl":"https://ghostarchive.org/archive/vA9DJ","saveDate":1788666058263,"visitDate":1788665274218,"filenameTemplate":"𐄪/{bookmark-pathname}/{url-href}/{page-title} {year-utc}.{month-utc}.{day-utc}-{hours-utc}.{minutes-utc}.{seconds-utc}.{filename-extension}","filenameReplacedCharacters":["~","+","?","%","*",":","|","\"","<",">","\\\\","\u0000-\u001f",""],"filenameReplacementCharacter":"_","filenameReplacementCharacters":["~","+","?","%","*",":","|",""","<",">","\"],"filenameMaxLengthUnit":"chars","filenameMaxLength":"65536","replaceEmojisInFilename":false,"compressContent":false,"selfExtractingArchive":false,"disableCompression":false,"extractDataFromPage":true,"referrer":"","title":"Answers - HedgeDoc | Ghostarchive","info":{"description":"","lang":"","author":"","creator":"","publisher":"","heading":""}}</script><div id=mw-wrapper><div id=mw-header-container class=ts-container><div id=mw-header class=ts-inner><div id=user-tools></div><div id=p-logo-text role=banner class=mw-portlet><a id=p-banner href=https://ghostarchive.org/ class="mw-wiki-title wordmark"><img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvgAAACQCAMAAABKxO/PAAACB1BMVEX////y8vK4uLno6On7/PzExMXW1tdxcnQgISQrLC/w8PDX19eIiYozNDfKysvb29yMjY+1tbbs7OyhoqNISUx9fX/n5+elpadOT1KysrPx8fFlZmh7fH3+/v7k5OTGxsenp6iGh4hnaGpaWl1BQkU4OTxFRkhYWVtiYmRrbG52dnh+f4GRkZOZmZuio6Surq/l5eU+P0H19fa9vr/9/f3u7u+/v8CJiYuxsrPg4OCrq61jZGaEhIatra7U1NX39/fh4eKWl5h0dXbHx8j29vagoKHp6eqdnZ+enqD5+flwcXP8/PyHiInS09PLzMyOj5CTk5VMTU9vb3Hg4eFqa22VlpepqquTlJXt7e2jpKXQ0NG9vb6Dg4WPkJGAgYJtbnDS0tJ/gIJRUlSFhYdgYWOcnZ6Xl5lVVlj7+/vd3d6oqaru7u6vr7BUVFeqq6z09PTAwMH4+PjFxsaKioyCg4Tr6+vY2NjZ2tq8vL23uLl5enzc3N13d3nMzc3f39/R0dH19fXa2tteX2GSkpTT09Tn5+ji4uPv7/DLy8tzdHZcXV/j4+S2t7ihoaLCwsOQkJLPz9B8fH5paWv6+vq6uruzs7SmpqeYmJqkpKavsLHOzs+Li42Njo/z8/PJycrIyMm5ubq7u7yUlZbExcV4eXvZ2dnm5uaampuoqKmam5zq6uq2trebnJ3RYkvgAAAe5ElEQVR42u1d+UMUxxJeZdEZcKMImiW4XuwCiomsAglowIPnEYy6ahJvDRIRhXgbjKLIE4ygxCPGiBdqYjS+P/KxO0dX3z17OBD7+wlmunv7+Ka7urqqOhDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0KAxZWqe31XQUEQwf5rfVfiXIJg/3TDMAr+roaGCwhkhw/jI71r8GzBz1nhPjqPI74poSDG7uCQ1VnP8rsikx9yPw4aNUr/roiHGJ1PLnLGa53dd/Edk/oKFixaXh6MhM1YRrqxasrR6xrJPP1ueP3OKLGdN6by4gVDjd1MmDlasLKr1uw446uo/D4Ox+sLv+viMhsbpIYMLs2LV6i+bmlkZ16xdFyZSx/xuzMTB1PFOXe93JVy0/GdOpUkMVo3flfITGzZWGCqoWLdpM5l3I53sK7/bM1HQuiXZHev8roaLrxlTmt918hFbVymx3kIhmXsbnWa73y2aKFhk9YdMUnxvyKfHqjLdsprmJYz4jkm8m9u5i+6NaAVX7KEUNt8opPlAMc3uj2/9roiDrfRYVadXUvA7O3/Zbr8blR4KtuALX/WeldPqIuMvagsa9u7bH6M66gBZwt6Dh8orcMHxsN+tmiD43u6PNr8r4mD3kentCXxO+yG9ko66BXS0+t2qNHCsGGNsxxctRIJI4dowTvxdzIKC+W0gTaff7ZoYaHE7d6bfVcFQuA6M1fH0igAlbPS7Pd6xNQon+xkcvh7GqB/llHUCTCQ1fjdsYqDL7ZDP/a4KjtZ2NFbpaTMXAUbE/W6OZ5RCQi8+wU1X2wjXhc2cVEBmmu13yyYGut0OCR3zuy44VqKxmppWAZWQOhNm766ItbDyPwqTFnwll2OKUJKTfjdtQmAm6N6VflcGRx6q2am0CkhA7kwuO7fgPFD1tgZJ6tZ50jH8CBV32u/GTQjMgOup35XBEUQ1O5NWAZj0O6kW+JNAzDPOBqXpI+dke5kmTXwMmzG9wXm/q4MjU+JXg6aF/G6MF+SVgJrPUMkRceZ8nlHThUlJ/J965B99ergIeW9s8ruhOMwMiX8GNG2R343xgGYoo/0cUcrTYluh8Y76Lk1G4m/JnT16O0b8Cr9biiNT4gfmuAVEW9IrwRdcBkOyRHXK67XS84w7rkxC4iftjHJE/PkGjqt+txVDKFPi9y1xeH/N77Z4wLdgQPo3K2fbb+XguFdNQuKn9Lk5Iv5/CeKnaRqQI2RM/PHOSx5ZRmc1p5vfB1wH4xFdoZ5vwMryNfvt5CO+ZbKVG+K3ksYe5oSSCLJA/EAgONjndzs84QYck1+85LyZysIxyJt0xD9s5JD41kcF7f8mlB1jVog/yQDPqz36nVnm3NvZLycb8TvNXBLfEoFngzlmyO8GQ3yIxP8P4H3IWziESGocp7NfTjLiz3U4mRPi77YmfEzSH/a7yQAfIPFPwnOVWx4zr05m4hjZTi7i17n2eTkh/u1U0Sthpxjf+d1mgA+Q+NBvpMxr5pHUfpj9bnIRv8PIKfFTnpzmsUAAWGvHJpDT+YdH/AI44Rd6zf1JMtdn7HeTi/hmTom/N1XylvG/FoLunjhO5x8g8X8FA9HtPfuUM3d4512a+Ah33XmlDvT3Tb8bjfDBEf8EGIcsu8Zq4rvoSxWcSP19D3T4J3632sUHR/zPwTCE7me1aE18F8tTBRen/v4N9Hh6bn65wIdG/N1wwv9vdsvWxHdhuV5Z4QdOg01V2O9Wu/jQiP8lJH6Wg3lr4juw7FQd3xNouj5hDLo+NOLDI/RsnyRyiX+/Ib/0Vn2nV7v31kunHvz+8OEfj3pGvcrGtbMLrzR1zhVZx+SS+JY82WP/Nwr6XMnzAWG0+jr8NzLc0KBo8TPl0pkHKwv5x5M84tcO/FJa1NPkwfJs/uMc22I0d9Z/se/rgYy8ljfDCf+bLFeQTfzNt/qdp21zHiiT/+vHHbCuscXFNYo5Bz4bcu0EYlVPbl0hfzNytHocqOyyahzFmXbE/dRHZTo7qAiIpuvF6TySn/Tofur+/6wqVW6iuE6cr3bvE+RlVLL44Q1WIibxI1uXOk8rbhYruZBfS0Yqee7+m7/vzOilDZi9b3B25+H1+3rQg9aL9b2d8JO8n3dhNH+M6cod2XrTHczQzVNpk38BJJMn8zQFsIjfvB2PNBV9oeL0UvcybtAIfyaf7U7v6aYzRlflwzRnDQkyDZA0lipltfv/d6DsfaqFDP5gsdfxcB5e4pZhPuJnq331PRUDb/V8Oh2D+JHSKJbN3CSTWAu62ol1zC7WjIcrh8q7+yvDcWf80cfwynoQ7y5vr+ov747aKf5klF+M18gwD6YpnmNR07JtSM0g/ghN4DapZ/LT7wwOQrcl1B+JszNCU7zjMt4bmfoiVqVKaXL/bwBlKzmdHyvcFHYy1Nstw2o4i5ezPsFs0fS5ZEKa+J1DVLbYKL+OkZ1dbsTVx87D+/xORRrEb9kJaHPJUpNOZTaquQsSgLxIO1goDxTx8w6xGlgpWa/yTYOPmCiSxcAuXjagTWkyZMi0Y2pSpZSAJ3AVkjidB//qOgdj0hl7U48biTrWMzM/7+a1qZ1MShK/eRkrm/ma9TOR4bEn/XCUfndrz+9VxNdGdgJy+5NXxk7Xv8H7kMCpx1iW4fhSIIgf/IzTBWJXpB9QwvjiA38ff7kYz83fSQ0iE+DE9GU/vlwCcqFJnPtxuGjMsB+sBes/4MkbULoo3l7TEZq5KTHlb/LpUlb7hww+yBiGBPHzOUtlglpiTyyromamEfdtGaec+DlUwoUoK0XoGf47Xe6vRMOEuOw9Su0fMH++5+wS4MSvCXMHQRA7uPmmm+obp89bpmKx+xdxJJEal/cld2wmVLmZ0FJ/zpDgUIbdYLtewZn9Bihe5HS+jlGdZC+UUk8Zxib7XHqEOhIUN78kUmPEb75s8ECZoK9kJIJfVWT3rSr8bfXYICmerHg+D6thZSm5A3di0n7XOS4jRfIewI1LieerBWHAQ+OnDAeYAkb8ZyKBhSupD4SdJOVXwOMgtPQyhpixDgfcueYl+jLcmbLXfXT/vAVU3th5DJkeZ1vSOG73CpeZvfysrGsKxh//Qj+lDGSDzpF82YJk9wT3EoICaVgIiV/D3hiQPWfhD0aaPiLN9/DlW3Zbh9FsdpmKZhaxFRBfuRNWwZ+gyA6vZq7TYYX+yXCAKUDiOwdloaqDl/uppY0XrrHQHY6NxBxxFX7xMZaCzpWIVsGnjkkeLSDlTI9vSVhj2LMeUHuBpMeYeOOBwGuT+RhDnq38rXjlPurF1sm1RAZA/Ca7fLNyXvWqEvLHzhEZu+jKUGE3jsGgTQc5jXWtxmgBoLWaUelZoMyPPY4JJgRmPYwpIP5Lm4OnLM1gsCiM9RQ70njgpDtp0zv8nXBA7tF577gvcQWGHfOTDgKfK+LPtriAh66AQdUETufrH69eUoL11LhMU1tOU83oxzPW2Dw+B8XAzTBGJKlGRcT/3KpbSaNdr158F2QSkuXwk0Xr2vCvI0E15BZ83cdprf2tMvz5DlpvnmAPMY/ZAW+DggUFz3yMCVwxcETvgJdbMe0y+2zEPT1JMDSt9TA/bezlsoNQB9dZYzSLypAr4ls3gu0nnh4ElZccdNZegRLpPcxT1AVe/m57YKuJdXIPykDqMwllv9kF3u3EQiEz94KzbwPuUyqjQBDucXnhiG1hjNbM29GHSSNu6Eni8W5e+KFGvWVVAEH8A/ikVwh/vIuV393CmWtYrx/DwsljPhSwljx3tSafu4K+yCrxIxYHyQgsd0Dd5aYiwIT2rqWJGypaU7v7EVJbPYDJn9oy+l1K9H3utJJaQnHi38Pl3ilw2bnMriOYiBhnE1BXn2AXELBas4N6buseTUqgfQsKfRrwgNOwrWk4oUiAET9BKdzXg7esWxEHXSp+yiw+COehBLEFRRfTkBNUJMUKWrjKEfGtS6Yo1Q00W5A7ne9EaR+nBI8fLEq7yvY2SPFme7XrZ2z55lqd1k7FbYfENynP6zwQHIITEjaCSmBInqdh+ew4THbEya3k82b7q6OdRfrA3Pl7wAPmQmZm/1omSPzLjB0E2JczdHrH0LEN52w3D64ZZ/F3SBE4QmZL2cOXU6XliPiWuEYr61+Cum+XloIqlzJ0QiruvakPKHYJJnZk8kuskoLvzvXPGaOfA2ImGGdqj0B1OReGoGMSBvED/wMFsEPYWBq3Euq5LRWyLLiB4UF7wANgALUc3N8CiD+Pda7cC36d/i7QOsZ10MMussBFQ/TVUFNBbZz5peWG+J9YRdKHi2tA1eVO5/ilw3BT0LI2HJuHneA4EuIWTxVFxE+wpIYV4Oc5Nl3oQIRF/ClwlmIZ19ZaayC1Aei084wx8kChwYtuBubL7eaWaT8Il/sr5Mtm1FFcAxF4DmRsw16h3PT0kgxtQ6/XuSH+x6kSVzHeQGPTBbJiMKOFX4VJb9gNCXm7jwcR/wXzPdAIcTanT4TEx24//oPx3iIjreKy1XBxlqUgNAXycgsLNuMbWY91IXVEQYI4MGS1gY6oBLvu1fDDhTE/oY0IpelqMFmfeW6Ib8mnFxlv4HZvuqwY+JVUiE/UHN3/bW8VlTmigOWZ46iHjHuYxD8Pm8B4vyP1hvJP+MnOsp35m2Dq9HK3EibjZ9/xWUp8cLswqdKrRU26y/+FYVh/bPMDeoSe8lc876FvOsoJ8a0Qiyar+QVe+h4euPQKU7qr+PyAJ8iIf1/UoSmg+ExM4mPHt3QbdlsvdpLPnZ0D21UNyE/iO9twYG4oigHtpp3aOq3hnxXk8tA8u6HpeT0ulEiJD8b+b+LVYfRKZCMGrqDDp014QK9290hOiG/fljDyy9cXOgdf580+UffP652XCkfzp3btgX3/RlIOOKtZIky42fniSwLeIHU9RGYMnH3kpxLiw13NOuqtddxRRT52btWJMYt8Dor0QnxMjw/sxUVw2m+G4hXhyqqy/u5ENOaUg0vOcp9bcFxIvDmA8oqCXEFHGhNub2DwCMwwUqEvskf8PkMRMpUaIP6oMOELJ9l2j1WVEh+Zt3A85GXED0DrWHLTZx93UNbVzsZh6BqNZ0cgfz3dUoopC5Qu9hUYWCeBydNy4qM9G3nyBs6URdv1FvjjkBKYE71RpmC4mgvicyzNGZBYCCLiS2ZyN2iP1xs3pcRHe1eO/k9KfDg/k3ORdeAYo3awFYYqngU8ALPV2a+UJST8dexSCTnx0RxAnNeBa1fFkyG0W4F2CxvweoW6pFv3XBC/zVCFxOkcEf+cMJ0bps306pckJf7HbgKO/k9K/AiYzaJE/az1hLKgGjaU4ekq5Zswp9oJ1hEB8038PFROfKT6JYS7fJRV7JsHI95iX+4mom7dMkkuB8S/pj5splgNjYgv9nz/3UnmVcSXE38qqiw7gZT4AeiJhIcNtRXTlNb7Y0MV3sIdz8Dyqt59tXvrm/2kZfGSv0+9JidVOfGRJE+cpALackxDbMBDMKyMY9QiOUccjCAHxJ9hqKNHWJIq8d0lxtNBZhJS4r9CdWU738uJ/wloL+7eU8wZ6irV7iv35n84Fct83UvWdzBnmBmxQk58dI7dgb8AhujiA0h4hIHLnr9QnWP+LgqXkH3iW1FFjHjZ9OoZ298W//7tl11dj76w8Gh5456/oSQkXtgUiY8UJ+sCHiEl/lVUV/YMKSc+PAXDfY2tWYqy4cF3lGYoHk20lbcv3rF0zuqzy45u2nN8eenFfSPPR695vUp9ClbwwjR7ihdsVk58d2Um5ax+lFUS7Qc4pRKyJ8MnLnyYX1D2iW8FyTT5MTmwgL1CPyBF4p9yk3kMVKVAfCC3sR0IFIgPHfuh5aFlq0pri9ChV6YRXkhgu9vLnrJC28idzBRy4v/oJiBMVcFcKNHCQ9dz4hXUIji4e4NXUPaJv0pKwR2gZiKnc1Xio9PgtwGPkBIfjCbbGEKB+NitGIDLP6ee0Lbpf0m+tfRRDElhevLBgj6P7Ig8cuIjtzViMwa2EJLgD3D1JM/yDzM24mYjR7+TdeLbmqkLgiTwGEJ407ki8ZHVwB8Bj5ASfxBVle3brUJ86KeIzGafWiNDs+iMm/h1ILvA4ouoR/VKAhodsVPIiY+iBRDEB4yV3IMMTrpo2bPgK4NGOTv4VtaJb5nZJkRJaqFVvsDpXJX4aDI66rW2UuK/zgbxgekh2NVYC9VjOjnih9rpqgdg2pldXnKCgEMcxa6c+A/cBAQ/APHFR/TYmsV4XcQKvvUbq6BsE9/WWoun3oegWiLvOUXio62RN5vkgALxB7JBfEzR5Z52hlP/DtKpN7lpsx77Bte4nfCQE3hScHxyMiA+mAklccxAiBnm93diP81843PG8U62iW8rWsU6VHBQJ7zpXJH4aBrztl8LvDfiQxFju/1sWuo/luk2Oi3OegBmGLLam2QIbIqzT3wQ2EXiC1yEUnKO0nfuMCico5mfbeJbYocsGhXcmwsGV5H4qA2er698T8SH6pSQHa/BOsYcYSRGUoVw658WYIwGTxd0AE9ftulcJsSHlgjiLfcblJDrNXyYDshBu4RlmfgnDe5wQkCdazk/mSLx0aGdZ3+690V8eP5j7SlbUj0fZ+kcNrpJ+wPZBu6M4sG0CThRcno5A+LDSFdXhdUAUrJASK6nznGpo4csE78Rm9S4CELF0yA3mSLxQeQ1j4Fm3hvxYUQhy07F0vQwLWiBs07Ww51hxqJeLkXJKfGBHMWI/QQB7I9Fglpwo4Ej1EekyDLxrYO1s9J0MEgK/w4yReKDaD1eheL3RXxsVzmIeopZ5kW1wU0PlzA+jCnnyynxe0CVVgVE+BklFBumzicCUZKczC7xZ1pFyS/Mht0f455PKhIfRJaeF/CG90b8maDBydBoPwmqewElzX70GzxAY0z5doicEh87XxCKC8BkoU9c4ch/MeKTG5PsEt+a1yoUUsJA4Nx71xSJDyL1ebljKIn3RnzoP5y8HWmLYIaALoI1HkdAjvkYH5Qvwsop8SMggJHQeO4YSiZeGZLA45uuwF9mlfi2fdr/FJL+CKrEdTpXJD4wJPMa1f/9ER+G6Lll9xRvPgdbs08DWccTA2KuYq6cEh+LWi+6frcQJVO4LBnziCIOA7NK/FvqffkU1okX6F2R+DD6TczblP/+iN8CtrfltiVfESctPIRR8wn3giCwhTSMXYq+O7klPvBEYRlxuADzpcI1YBGo1yQ6Gw1HFk4JK+1hVQHUYC3kpFG1x4dX6H4b8IL3R3xsUutMRQUI8SKmnAFJuzO9iozGDey+ll/VMmWX+KTH0Gao5hM40N91E+FiQt4I8zuAUQ0J1w9E/Eyv/nFNeNUKgqp83kGKKvGhctpsCHjAeyQ+WKUN63BxOy/pfWhxsjaQdfxlQCjIDAEV4neiFJw5m2ukhvsURrkOs8fQeEHJ5XwHb50AdrF/4W9QF4tEKzXYc5ra3UxQs82z5URrsiROFLzLJC76/blEn6JKvGJnAEZqbNNupIKW3eQYNgjwF2u4hAk3e/+kd70D7oqlFJQKEJ9zcgtcF/rYKdBuk9J/YE4ap+T1xk4gUkohpiYbWDFzN7ee7VxI2Ke2apIOrlZbxE6CRDTJ2T12R1Ib3/qnkbhlATSfc9gM/L7ZHxQy3pKpGeB+Pokd/KSYei/OD5LVK49Gx8YBrCZXFXLA8LfsFEALy4njiIKA0BY58KCDSyFk+YHd4pey/WpjbVY2uRlIAyO0dmR87+kbqxy1QFb4lbUmW9pFXj8SDxPcpy7RyU5Vu5ZqPyI+++ZQGKqcfYqKtMVVATFOEsQX3SyOna+aPAuQpLiYnq9KK2bJZc6U54DEv8JMMQ0l4Ggr0KdPS0un4WUEnHO7K5wElv6XNeUjK2byYwqjX/MkHNM4ZhtJjqqml8dFQsr+h5LCsAjSnG1GQXJHSWwnUBaOVwbYHrHNIX5130sNa7DL4MSnHTPx9mxnSb2tye2FmaZ3Yu027AfkAdkg8dleUmCnxbF3fuMmYEhLP8H6sO8SmOPOMcTsnqISK14wkhmXE2+AneSfgYzgWEcoT0Hg9JkTHgFtTWTnLK2EQV47HabyWeqQhDhjQDl+YxcMjphrmAmQVlxq+HIBq6I4fiIRYaSK/uqGU+vh96q9TQG/PHXXDUlyaE7D/mZB6A+OQvu2m4Bl2QzDsMRYa0aP89YkrzKwiMIINeAeG1JqbriNwlTGfZ6iTyAb+5hyDixiBVOORavfNllhA6TrTfdK6JkWGbG7ACdQK0rPsfIBjuJsAeoI+kVpi+FxtdknTBohLvQ2Fp/C9Jp5toFSBj5adzAX1ZA4aPtp7EIw5ra8B73n2KyAnQVjCYtUgV9YRSeY7w4xtRu351BKLkCHJ9R9EfCKkjjqxdoHMcObAtlxd1Td2zoXI9qYxUqBRuautLQXBoX2t6PDTwOBG00vNjmf0Ds8E7hqgKMwBXF12DIcik4mt4mGk6wsgl8d5Tkde3knzxJsTjxy9gAqh+RcvMavlpzBv1CrrxjaFHBCaIBF6hS7GKDPYFw/EzgPJ6/vSfrdDzuvVlM5nZsBieFFs1KIUnaewdpebL2/cbzE8HhzgBvbwYMvCDZJM8JoApsV2cYxQKgAOSC1R0Cu5FiUAnuPi8wEYCaUitunQYs7ZYnXM1sQ7y9rQyRcktntDn3Yjc+Gue08M1nnWXw5rWQHLwcX0nNCJQCPX6Yu4Qp0Ca7Cv8NOt6MZVhyuouQtJvyjuxBpZTXm+D2O6I4ZS70cwNpods1LJEs4ABb61ojROrW9YEzkI9zCuhAdx3SyFBBkt4NdKvicmBFTYPAnUWQJC2fdtAqW8H9L21N+Wl6KGFeJvdGhUlK43vBlN56kZIxt5ADv84wxP2tgbm1UMvcUJ++BJKFGNOnfRwdcrFOHGvftDhBM9LA7Qzxi5PnBYCNW46H/5ofBp7NVzfqjdhPxiwcJybAFqtwOyC+2bH1siFFFKk3rQLXZxziXwGiGGItSLbx+d8eKgARIOXpRljSAE4WFsLdrj9ioJ67SNjr2H+8dmBIM1H4yeP1dNRk0M/Ebawo6P/JyCE9X9TAfqnYig1NnJfAUXxX39tH9CU9wjeiyq+PcP9bZ86k7r8b+YjUigobJ/M7+pOqQeQNTJ3iCEZBhHPE1qj3XfP0PYtoILf1C5gn1z6ttjFDYbY3Orqnl6sKfiYr1b1l4Zli873hgiDAP29if7L1NeCUnnowNw292d/7RdqIKa0dA1L7gzNJF+Hpp/vnmujgUq1Ogmvn0hZghQJn0O1NCa5fwV3A6r2cUcCTOppBhRm3Rcoj3C2YFpXiuJwozsS6u5ChKMVXArlmNxxe1o3IOsPMsYNUooWD7lsIyXhjpKF81nB83uEgqF15E+bGpzWi5YEG5LghqDfeBD6KcsTLiHVbxT/ijmQp5VFPC+6lQicAPZ5+dSNEyrG7I4GJ11uILNhcrxeMPzWLepFpr8rNYYdsHBYXSx92DN/nFfcabL4r5vxDnXiL1iE68XdkEpJ/7g/zIQEtF3bud8BGiIdoW/nOIk6kEa/4hQfHWzk00CyaXnS7Be4HXqONsXKPYvcEnnN+Iebn1TY6mLeIbIIzwjAWcD61FlC0loI4KErCiiXROZyY1X/Zx67+G+wPnBOviSmIGTshdB12UcH+Rr4jpNgRYKvqYUhDbT19vZ+XZFFSuQUrfUCuqQNJ24aHgvehQyVIfe1B9DTC1VduyHVUzEJm5cAeb/LGhbfmiHZZNATMUiya6yyvbSqIxpyBLw+tcDZW8RyuZIgxSsG2NCrooTcVX9cLJuGDB2yV09c394nOO0w9BntBRLxZ/LoViJd3lQ0PlHSVxYZOScLSrZqyiraNyqH+osjvhSjcz0DmHFSC7srw71VPuiiqTwq79SnzI4T27OTUYH6uS5A8kKuJu+XOxdjmjmUA1CCW3d69QHSvCHUPJJsSdJohcAqxzPvEVjmSW22G8PRWfZjumpoOC6++Orv55x6ry/rJDS+ccefLN8meD92WZeqcuaFpzg9h9BW+saVow1W7nvhcfFdZMIXbFm2dfuZr/7hKv1NPTurbsGgrHYyWViw9+WajCyUhn47xuJHiF7r2Q1j0Q+Wvjuv6SWPjeovXeRMfed6d6C9fUYc2+f77zav7FO9w8DUWnRq/NfUrK6sdONBzOfzcuyAwXjdy5lLeCfB9ZsaHz6wW/jSn0wLUvFpWnPqVo/+WjDNGooSj/6pXZxD60dkpN4Uc9ttXQ3otnru+sY4zm+rGUd39LaX3vtYE+oo4teTNH6x/wHMpSGJeyYtKbrUnUTN1WVZFqT/m6ZVkPqPnvwoaPeoqWF20dVL3w5d+I7DsvZY7TD16lvSudiO3R0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQyBL+DwSi3vzDiR/5AAAAAElFTkSuQmCC style=padding-left:5px data-sf-original-src=https://ghostarchive.org/ga2.png width=200></a></div><div id=p-search class=mw-portlet><h3 dir=ltr lang=en><label for=searchInput>Search</label></h3><form id=searchform action=/search method=GET enctype=text/plain><div id=simpleSearch><div id=searchInput-container><input id=searchInput name=term type=text value=https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0></div><input id=searchButton type=submit name=go value=Go title="Search the archives for this URL" class=searchButton></div></form></div></div><div class=visualClear></div></div><div id=mw-header-hack class=color-bar><div class=color-middle-container><div class=color-middle></div></div><div class=color-left></div><div class=color-right></div></div><div id=mw-header-nav-hack><div class=color-bar><div class=color-middle-container><div class=color-middle></div></div><div class=color-left></div><div class=color-right></div></div></div><div id=menus-cover></div><div id=mw-content-container class=ts-container><div id=mw-content-block class=ts-inner><div id=mw-content-wrapper><div id=mw-content><div id=content role=main class=mw-body><div id=bodyContentOuter><div id=bodyContent><br><replay-web-page style=width:100%;height:75vh;display:block embed=replayonly source=https://ghostarchive.org/chimurai4/vA9DJ.warc url=https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0 nosandbox=no><template shadowrootmode=open><iframe allow="autoplay *; fullscreen" title="Replay of https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0" data-sf-original-src="https://ghostarchive.org/archive/replay/?source=https%3A%2F%2Fghostarchive.org%2Fchimurai4%2FvA9DJ.warc&customColl=&config=&basePageUrl=https%3A%2F%2Fghostarchive.org%2Farchive%2FvA9DJ&baseUrlSourcePrefix=https%3A%2F%2Freplayweb.page%2F&embed=replayonly#url=https%3A%2F%2Fdoc.anagora.org%2Fs%2F%25F0%2596%25A3%25A0%25E2%259A%25AA%25E2%258A%259A%25F0%2596%25A3%25A0%25E2%259A%25AA%25F0%2594%2597%25A2%25E2%259A%25AA%25F0%259F%259E%258B%25E2%259A%25AA%25F0%2594%2597%25A2%25E2%259A%25AA%25F0%2596%25A3%25A0%25E2%258A%259A%25E1%25B3%2580%25E2%2586%2580%25D0%25B8n%25E2%25B5%2599%25EA%2597%25B3%25F0%2596%25A3%2593%25E1%2597%25B1%25E1%2597%25B4%25E1%25B4%25A5%25DF%25A6%25E2%259A%25AA%25F0%2594%2597%25A2%25E2%259A%25AA%25F0%259F%259E%258B%25E2%259A%25AA%25F0%2594%2597%25A2%25E2%259A%25AA%25DF%25A6%25E1%25B4%25A5%25E1%2597%25B1%25E1%2597%25B4%25F0%2596%25A3%2593%25EA%2597%25B3%25E2%25B5%2599%25D0%25B8n%25E2%2586%2580%25E1%25B3%2580%25E2%258A%259A%25F0%2596%25A3%25A0%25E2%259A%25AA%25F0%2594%2597%25A2%25E2%259A%25AA%25F0%259F%259E%258B%25E2%259A%25AA%25F0%2594%2597%25A2%25E2%259A%25AA%25F0%2596%25A3%25A0%25E2%258A%259A%25E2%259A%25AA%25F0%2596%25A3%25A0&ts=&query=" sandbox="allow-popups allow-top-navigation-by-user-activation allow-scripts allow-modals allow-popups allow-downloads allow-pointer-lock allow-presentation" srcdoc="<!DOCTYPE html> <html><meta charset=utf-8><script data-sf-original-src=./ui.js src=data:,></script><script data-sf-original-src=https://ghostarchive.org/replay-web-page234/ui.js src="data:application/javascript;base64,LyohICd1aS5qcyBpcyBwYXJ0IG9mIFJlcGxheVdlYi5wYWdlIChodHRwczovL3JlcGxheXdlYi5wYWdlKSBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyNSwgV2VicmVjb3JkZXIgU29mdHdhcmUuIExpY2Vuc2VkIHVuZGVyIHRoZSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4nICovKCgpPT57dmFyIF9fd2VicGFja19tb2R1bGVzX189ezQ5NTooZSx0LGkpPT57InVzZSBzdHJpY3QiO2kuZCh0LHtBOigpPT5yfSk7dmFyIG89aSgzMTQpLG49aS5uKG8pKCkoKGZ1bmN0aW9uKGUpe3JldHVybiBlWzFdfSkpO24ucHVzaChbZS5pZCwnOnJvb3QsXG46aG9zdCxcbi5zbC10aGVtZS1saWdodCB7XG4gIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG5cbiAgLS1zbC1jb2xvci1ncmF5LTUwOiBoc2woMCAwJSA5Ny41JSk7XG4gIC0tc2wtY29sb3ItZ3JheS0xMDA6IGhzbCgyNDAgNC44JSA5NS45JSk7XG4gIC0tc2wtY29sb3ItZ3JheS0yMDA6IGhzbCgyNDAgNS45JSA5MCUpO1xuICAtLXNsLWNvbG9yLWdyYXktMzAwOiBoc2woMjQwIDQuOSUgODMuOSUpO1xuICAtLXNsLWNvbG9yLWdyYXktNDAwOiBoc2woMjQwIDUlIDY0LjklKTtcbiAgLS1zbC1jb2xvci1ncmF5LTUwMDogaHNsKDI0MCAzLjglIDQ2LjElKTtcbiAgLS1zbC1jb2xvci1ncmF5LTYwMDogaHNsKDI0MCA1LjIlIDMzLjklKTtcbiAgLS1zbC1jb2xvci1ncmF5LTcwMDogaHNsKDI0MCA1LjMlIDI2LjElKTtcbiAgLS1zbC1jb2xvci1ncmF5LTgwMDogaHNsKDI0MCAzLjclIDE1LjklKTtcbiAgLS1zbC1jb2xvci1ncmF5LTkwMDogaHNsKDI0MCA1LjklIDEwJSk7XG4gIC0tc2wtY29sb3ItZ3JheS05NTA6IGhzbCgyNDAgNy4zJSA4JSk7XG5cbiAgLS1zbC1jb2xvci1yZWQtNTA6IGhzbCgwIDg1LjclIDk3LjMlKTtcbiAgLS1zbC1jb2xvci1yZWQtMTAwOiBoc2woMCA5My4zJSA5NC4xJSk7XG4gIC0tc2wtY29sb3ItcmVkLTIwMDogaHNsKDAgOTYuMyUgODkuNCUpO1xuICAtLXNsLWNvbG9yLXJlZC0zMDA6IGhzbCgwIDkzLjUlIDgxLjglKTtcbiAgLS1zbC1jb2xvci1yZWQtNDAwOiBoc2woMCA5MC42JSA3MC44JSk7XG4gIC0tc2wtY29sb3ItcmVkLTUwMDogaHNsKDAgODQuMiUgNjAuMiUpO1xuICAtLXNsLWNvbG9yLXJlZC02MDA6IGhzbCgwIDcyLjIlIDUwLjYlKTtcbiAgLS1zbC1jb2xvci1yZWQtNzAwOiBoc2woMCA3My43JSA0MS44JSk7XG4gIC0tc2wtY29sb3ItcmVkLTgwMDogaHNsKDAgNzAlIDM1LjMlKTtcbiAgLS1zbC1jb2xvci1yZWQtOTAwOiBoc2woMCA2Mi44JSAzMC42JSk7XG4gIC0tc2wtY29sb3ItcmVkLTk1MDogaHNsKDAgNjAlIDE5LjYlKTtcblxuICAtLXNsLWNvbG9yLW9yYW5nZS01MDogaHNsKDMzLjMgMTAwJSA5Ni41JSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTEwMDogaHNsKDM0LjMgMTAwJSA5MS44JSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTIwMDogaHNsKDMyLjEgOTcuNyUgODMuMSUpO1xuICAtLXNsLWNvbG9yLW9yYW5nZS0zMDA6IGhzbCgzMC43IDk3LjIlIDcyLjQlKTtcbiAgLS1zbC1jb2xvci1vcmFuZ2UtNDAwOiBoc2woMjcgOTYlIDYxJSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTUwMDogaHNsKDI0LjYgOTUlIDUzLjElKTtcbiAgLS1zbC1jb2xvci1vcmFuZ2UtNjAwOiBoc2woMjAuNSA5MC4yJSA0OC4yJSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTcwMDogaHNsKDE3LjUgODguMyUgNDAuNCUpO1xuICAtLXNsLWNvbG9yLW9yYW5nZS04MDA6IGhzbCgxNSA3OS4xJSAzMy43JSk7XG4gIC0tc2wtY29sb3Itb3JhbmdlLTkwMDogaHNsKDE1LjMgNzQuNiUgMjcuOCUpO1xuICAtLXNsLWNvbG9yLW9yYW5nZS05NTA6IGhzbCgxNS4yIDY5LjElIDE5JSk7XG5cbiAgLS1zbC1jb2xvci1hbWJlci01MDogaHNsKDQ4IDEwMCUgOTYuMSUpO1xuICAtLXNsLWNvbG9yLWFtYmVyLTEwMDogaHNsKDQ4IDk2LjUlIDg4LjglKTtcbiAgLS1zbC1jb2xvci1hbWJlci0yMDA6IGhzbCg0OCA5Ni42JSA3Ni43JSk7XG4gIC0tc2wtY29sb3ItYW1iZXItMzAwOiBoc2woNDUuOSA5Ni43JSA2NC41JSk7XG4gIC0tc2wtY29sb3ItYW1iZXItNDAwOiBoc2woNDMuMyA5Ni40JSA1Ni4zJSk7XG4gIC0tc2wtY29sb3ItYW1iZXItNTAwOiBoc2woMzcuNyA5Mi4xJSA1MC4yJSk7XG4gIC0tc2wtY29sb3ItYW1iZXItNjAwOiBoc2woMzIuMSA5NC42JSA0My43JSk7XG4gIC0tc2wtY29sb3ItYW1iZXItNzAwOiBoc2woMjYgOTAuNSUgMzcuMSUpO1xuICAtLXNsLWNvbG9yLWFtYmVyLTgwMDogaHNsKDIyLjcgODIuNSUgMzEuNCUpO1xuICAtLXNsLWNvbG9yLWFtYmVyLTkwMDogaHNsKDIxLjcgNzcuOCUgMjYuNSUpO1xuICAtLXNsLWNvbG9yLWFtYmVyLTk1MDogaHNsKDIyLjkgNzQuMSUgMTYuNyUpO1xuXG4gIC0tc2wtY29sb3IteWVsbG93LTUwOiBoc2woNTQuNSA5MS43JSA5NS4zJSk7XG4gIC0tc2wtY29sb3IteWVsbG93LTEwMDogaHNsKDU0LjkgOTYuNyUgODglKTtcbiAgLS1zbC1jb2xvci15ZWxsb3ctMjAwOiBoc2woNTIuOCA5OC4zJSA3Ni45JSk7XG4gIC0tc2wtY29sb3IteWVsbG93LTMwMDogaHNsKDUwLjQgOTcuOCUgNjMuNSUpO1xuICAtLXNsLWNvbG9yLXllbGxvdy00MDA6IGhzbCg0Ny45IDk1LjglIDUzLjElKTtcbiAgLS1zbC1jb2xvci15ZWxsb3ctNTAwOiBoc2woNDUuNCA5My40JSA0Ny41JSk7XG4gIC0tc2wtY29sb3IteWVsbG93LTYwMDogaHNsKDQwLjYgOTYuMSUgNDAuNCUpO1xuICAtLXNsLWNvbG9yLXllbGxvdy03MDA6IGhzbCgzNS41IDkxLjclIDMyLjklKTtcbiAgLS1zbC1jb2xvci15ZWxsb3ctODAwOiBoc2woMzEuOCA4MSUgMjguOCUpO1xuICAtLXNsLWNvbG9yLXllbGxvdy05MDA6IGhzbCgyOC40IDcyLjUlIDI1LjclKTtcbiAgLS1zbC1jb2xvci15ZWxsb3ctOTUwOiBoc2woMzMuMSA2OSUgMTMuOSUpO1xuXG4gIC0tc2wtY29sb3ItbGltZS01MDogaHNsKDc4LjMgOTIlIDk1LjElKTtcbiAgLS1zbC1jb2xvci1saW1lLTEwMDogaHNsKDc5LjYgODkuMSUgODkuMiUpO1xuICAtLXNsLWNvbG9yLWxpbWUtMjAwOiBoc2woODAuOSA4OC41JSA3OS42JSk7XG4gIC0tc2wtY29sb3ItbGltZS0zMDA6IGhzbCg4MiA4NC41JSA2Ny4xJSk7XG4gIC0tc2wtY29sb3ItbGltZS00MDA6IGhzbCg4Mi43IDc4JSA1NS41JSk7XG4gIC0tc2wtY29sb3ItbGltZS01MDA6IGhzbCg4My43IDgwLjUlIDQ0LjMlKTtcbiAgLS1zbC1jb2xvci1saW1lLTYwMDogaHNsKDg0LjggODUuMiUgMzQuNSUpO1xuICAtLXNsLWNvbG9yLWxpbWUtNzAwOiBoc2woODUuOSA3OC40JSAyNy4zJSk7XG4gIC0tc2wtY29sb3ItbGltZS04MDA6IGhzbCg4Ni4zIDY5JSAyMi43JSk7XG4gIC0tc2wtY29sb3ItbGltZS05MDA6IGhzbCg4Ny42IDYxLjIlIDIwLjIlKTtcbiAgLS1zbC1jb2xvci1saW1lLTk1MDogaHNsKDg2LjUgNjAuNiUgMTMuOSUpO1xuXG4gIC0tc2wtY29sb3ItZ3JlZW4tNTA6IGhzbCgxMzguNSA3Ni41JSA5Ni43JSk7XG4gIC0tc2wtY29sb3ItZ3JlZW4tMTAwOiBoc2woMTQwLjYgODQuMiUgOTIuNSUpO1xuICAtLXNsLWNvbG9yLWdyZWVuLTIwMDogaHNsKDE0MSA3OC45JSA4NS4xJSk7XG4gIC0tc2wtY29sb3ItZ3JlZW4tMzAwOiBoc2woMTQxLjcgNzYuNiUgNzMuMSUpO1xuICAtLXNsLWNvbG9yLWdyZWVuLTQwMDogaHNsKDE0MS45IDY5LjIlIDU4JSk7XG4gIC0tc2wtY29sb3ItZ3JlZW4tNTAwOiBoc2woMTQyLjEgNzAuNiUgNDUuMyUpO1xuICAtLXNsLWNvbG9yLWdyZWVuLTYwMDogaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKTtcbiAgLS1zbC1jb2xvci1ncmVlbi03MDA6IGhzbCgxNDIuNCA3MS44JSAyOS4yJSk7XG4gIC0tc2wtY29sb3ItZ3JlZW4tODAwOiBoc2woMTQyLjggNjQuMiUgMjQuMSUpO1xuICAtLXNsLWNvbG9yLWdyZWVuLTkwMDogaHNsKDE0My44IDYxLjIlIDIwLjIlKTtcbiAgLS1zbC1jb2xvci1ncmVlbi05NTA6IGhzbCgxNDQuMyA2MC43JSAxMiUpO1xuXG4gIC0tc2wtY29sb3ItZW1lcmFsZC01MDogaHNsKDE1MS44IDgxJSA5NS45JSk7XG4gIC0tc2wtY29sb3ItZW1lcmFsZC0xMDA6IGhzbCgxNDkuMyA4MC40JSA5MCUpO1xuICAtLXNsLWNvbG9yLWVtZXJhbGQtMjAwOiBoc2woMTUyLjQgNzYlIDgwLjQlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTMwMDogaHNsKDE1Ni4yIDcxLjYlIDY2LjklKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTQwMDogaHNsKDE1OC4xIDY0LjQlIDUxLjYlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTUwMDogaHNsKDE2MC4xIDg0LjElIDM5LjQlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTYwMDogaHNsKDE2MS40IDkzLjUlIDMwLjQlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTcwMDogaHNsKDE2Mi45IDkzLjUlIDI0LjMlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTgwMDogaHNsKDE2My4xIDg4LjElIDE5LjglKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTkwMDogaHNsKDE2NC4yIDg1LjclIDE2LjUlKTtcbiAgLS1zbC1jb2xvci1lbWVyYWxkLTk1MDogaHNsKDE2NC4zIDg3LjUlIDkuNCUpO1xuXG4gIC0tc2wtY29sb3ItdGVhbC01MDogaHNsKDE2Ni4yIDc2LjUlIDk2LjclKTtcbiAgLS1zbC1jb2xvci10ZWFsLTEwMDogaHNsKDE2Ny4yIDg1LjUlIDg5LjIlKTtcbiAgLS1zbC1jb2xvci10ZWFsLTIwMDogaHNsKDE2OC40IDgzLjglIDc4LjIlKTtcbiAgLS1zbC1jb2xvci10ZWFsLTMwMDogaHNsKDE3MC42IDc2LjklIDY0LjMlKTtcbiAgLS1zbC1jb2xvci10ZWFsLTQwMDogaHNsKDE3Mi41IDY2JSA1MC40JSk7XG4gIC0tc2wtY29sb3ItdGVhbC01MDA6IGhzbCgxNzMuNCA4MC40JSA0MCUpO1xuICAtLXNsLWNvbG9yLXRlYWwtNjAwOiBoc2woMTc0LjcgODMuOSUgMzEuNiUpO1xuICAtLXNsLWNvbG9yLXRlYWwtNzAwOiBoc2woMTc1LjMgNzcuNCUgMjYuMSUpO1xuICAtLXNsLWNvbG9yLXRlYWwtODAwOiBoc2woMTc2LjEgNjkuNCUgMjEuOCUpO1xuICAtLXNsLWNvbG9yLXRlYWwtOTAwOiBoc2woMTc1LjkgNjAuOCUgMTklKTtcbiAgLS1zbC1jb2xvci10ZWFsLTk1MDogaHNsKDE3Ni41IDU4LjYlIDExLjQlKTtcblxuICAtLXNsLWNvbG9yLWN5YW4tNTA6IGhzbCgxODMuMiAxMDAlIDk2LjMlKTtcbiAgLS1zbC1jb2xvci1jeWFuLTEwMDogaHNsKDE4NS4xIDk1LjklIDkwLjQlKTtcbiAgLS1zbC1jb2xvci1jeWFuLTIwMDogaHNsKDE4Ni4yIDkzLjUlIDgxLjglKTtcbiAgLS1zbC1jb2xvci1jeWFuLTMwMDogaHNsKDE4NyA5Mi40JSA2OSUpO1xuICAtLXNsLWNvbG9yLWN5YW4tNDAwOiBoc2woMTg3LjkgODUuNyUgNTMuMyUpO1xuICAtLXNsLWNvbG9yLWN5YW4tNTAwOiBoc2woMTg4LjcgOTQuNSUgNDIuNyUpO1xuICAtLXNsLWNvbG9yLWN5YW4tNjAwOiBoc2woMTkxLjYgOTEuNCUgMzYuNSUpO1xuICAtLXNsLWNvbG9yLWN5YW4tNzAwOiBoc2woMTkyLjkgODIuMyUgMzElKTtcbiAgLS1zbC1jb2xvci1jeWFuLTgwMDogaHNsKDE5NC40IDY5LjYlIDI3LjElKTtcbiAgLS1zbC1jb2xvci1jeWFuLTkwMDogaHNsKDE5Ni40IDYzLjYlIDIzLjclKTtcbiAgLS1zbC1jb2xvci1jeWFuLTk1MDogaHNsKDE5Ni44IDYxJSAxNi4xJSk7XG5cbiAgLS1zbC1jb2xvci1za3ktNTA6IGhzbCgyMDQgMTAwJSA5Ny4xJSk7XG4gIC0tc2wtY29sb3Itc2t5LTEwMDogaHNsKDIwNCA5My44JSA5My43JSk7XG4gIC0tc2wtY29sb3Itc2t5LTIwMDogaHNsKDIwMC42IDk0LjQlIDg2LjElKTtcbiAgLS1zbC1jb2xvci1za3ktMzAwOiBoc2woMTk5LjQgOTUuNSUgNzMuOSUpO1xuICAtLXNsLWNvbG9yLXNreS00MDA6IGhzbCgxOTguNCA5My4yJSA1OS42JSk7XG4gIC0tc2wtY29sb3Itc2t5LTUwMDogaHNsKDE5OC42IDg4LjclIDQ4LjQlKTtcbiAgLS1zbC1jb2xvci1za3ktNjAwOiBoc2woMjAwLjQgOTglIDM5LjQlKTtcbiAgLS1zbC1jb2xvci1za3ktNzAwOiBoc2woMjAxLjMgOTYuMyUgMzIuMiUpO1xuICAtLXNsLWNvbG9yLXNreS04MDA6IGhzbCgyMDEgOTAlIDI3LjUlKTtcbiAgLS1zbC1jb2xvci1za3ktOTAwOiBoc2woMjAyIDgwLjMlIDIzLjklKTtcbiAgLS1zbC1jb2xvci1za3ktOTUwOiBoc2woMjAyLjMgNzMuOCUgMTYuNSUpO1xuXG4gIC0tc2wtY29sb3ItYmx1ZS01MDogaHNsKDIxMy44IDEwMCUgOTYuOSUpO1xuICAtLXNsLWNvbG9yLWJsdWUtMTAwOiBoc2woMjE0LjMgOTQuNiUgOTIuNyUpO1xuICAtLXNsLWNvbG9yLWJsdWUtMjAwOiBoc2woMjEzLjMgOTYuOSUgODcuMyUpO1xuICAtLXNsLWNvbG9yLWJsdWUtMzAwOiBoc2woMjExLjcgOTYuNCUgNzguNCUpO1xuICAtLXNsLWNvbG9yLWJsdWUtNDAwOiBoc2woMjEzLjEgOTMuOSUgNjcuOCUpO1xuICAtLXNsLWNvbG9yLWJsdWUtNTAwOiBoc2woMjE3LjIgOTEuMiUgNTkuOCUpO1xuICAtLXNsLWNvbG9yLWJsdWUtNjAwOiBoc2woMjIxLjIgODMuMiUgNTMuMyUpO1xuICAtLXNsLWNvbG9yLWJsdWUtNzAwOiBoc2woMjI0LjMgNzYuMyUgNDglKTtcbiAgLS1zbC1jb2xvci1ibHVlLTgwMDogaHNsKDIyNS45IDcwLjclIDQwLjIlKTtcbiAgLS1zbC1jb2xvci1ibHVlLTkwMDogaHNsKDIyNC40IDY0LjMlIDMyLjklKTtcbiAgLS1zbC1jb2xvci1ibHVlLTk1MDogaHNsKDIyNi4yIDU1LjMlIDE4LjQlKTtcblxuICAtLXNsLWNvbG9yLWluZGlnby01MDogaHNsKDIyNS45IDEwMCUgOTYuNyUpO1xuICAtLXNsLWNvbG9yLWluZGlnby0xMDA6IGhzbCgyMjYuNSAxMDAlIDkzLjklKTtcbiAgLS1zbC1jb2xvci1pbmRpZ28tMjAwOiBoc2woMjI4IDk2LjUlIDg4LjglKTtcbiAgLS1zbC1jb2xvci1pbmRpZ28tMzAwOiBoc2woMjI5LjcgOTMuNSUgODEuOCUpO1xuICAtLXNsLWNvbG9yLWluZGlnby00MDA6IGhzbCgyMzQuNSA4OS41JSA3My45JSk7XG4gIC0tc2wtY29sb3ItaW5kaWdvLTUwMDogaHNsKDIzOC43IDgzLjUlIDY2LjclKTtcbiAgLS1zbC1jb2xvci1pbmRpZ28tNjAwOiBoc2woMjQzLjQgNzUuNCUgNTguNiUpO1xuICAtLXNsLWNvbG9yLWluZGlnby03MDA6IGhzbCgyNDQuNSA1Ny45JSA1MC42JSk7XG4gIC0tc2wtY29sb3ItaW5kaWdvLTgwMDogaHNsKDI0My43IDU0LjUlIDQxLjQlKTtcbiAgLS1zbC1jb2xvci1pbmRpZ28tOTAwOiBoc2woMjQyLjIgNDcuNCUgMzQuMyUpO1xuICAtLXNsLWNvbG9yLWluZGlnby05NTA6IGhzbCgyNDMuNSA0My42JSAyMi45JSk7XG5cbiAgLS1zbC1jb2xvci12aW9sZXQtNTA6IGhzbCgyNTAgMTAwJSA5Ny42JSk7XG4gIC0tc2wtY29sb3ItdmlvbGV0LTEwMDogaHNsKDI1MS40IDkxLjMlIDk1LjUlKTtcbiAgLS1zbC1jb2xvci12aW9sZXQtMjAwOiBoc2woMjUwLjUgOTUuMiUgOTEuOCUpO1xuICAtLXNsLWNvbG9yLXZpb2xldC0zMDA6IGhzbCgyNTIuNSA5NC43JSA4NS4xJSk7XG4gIC0tc2wtY29sb3ItdmlvbGV0LTQwMDogaHNsKDI1NS4xIDkxLjclIDc2LjMlKTtcbiAgLS1zbC1jb2xvci12aW9sZXQtNTAwOiBoc2woMjU4LjMgODkuNSUgNjYuMyUpO1xuICAtLXNsLWNvbG9yLXZpb2xldC02MDA6IGhzbCgyNjIuMSA4My4zJSA1Ny44JSk7XG4gIC0tc2wtY29sb3ItdmlvbGV0LTcwMDogaHNsKDI2My40IDcwJSA1MC40JSk7XG4gIC0tc2wtY29sb3ItdmlvbGV0LTgwMDogaHNsKDI2My40IDY5LjMlIDQyLjIlKTtcbiAgLS1zbC1jb2xvci12aW9sZXQtOTAwOiBoc2woMjYzLjUgNjcuNCUgMzQuOSUpO1xuICAtLXNsLWNvbG9yLXZpb2xldC05NTA6IGhzbCgyNjUuMSA2MS41JSAyMS40JSk7XG5cbiAgLS1zbC1jb2xvci1wdXJwbGUtNTA6IGhzbCgyNzAgMTAwJSA5OCUpO1xuICAtLXNsLWNvbG9yLXB1cnBsZS0xMDA6IGhzbCgyNjguNyAxMDAlIDk1LjUlKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtMjAwOiBoc2woMjY4LjYgMTAwJSA5MS44JSk7XG4gIC0tc2wtY29sb3ItcHVycGxlLTMwMDogaHNsKDI2OS4yIDk3LjQlIDg1LjElKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtNDAwOiBoc2woMjcwIDk1LjIlIDc1LjMlKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtNTAwOiBoc2woMjcwLjcgOTElIDY1LjElKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtNjAwOiBoc2woMjcxLjUgODEuMyUgNTUuOSUpO1xuICAtLXNsLWNvbG9yLXB1cnBsZS03MDA6IGhzbCgyNzIuMSA3MS43JSA0Ny4xJSk7XG4gIC0tc2wtY29sb3ItcHVycGxlLTgwMDogaHNsKDI3Mi45IDY3LjIlIDM5LjQlKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtOTAwOiBoc2woMjczLjYgNjUuNiUgMzIlKTtcbiAgLS1zbC1jb2xvci1wdXJwbGUtOTUwOiBoc2woMjc2IDU5LjUlIDE2LjUlKTtcblxuICAtLXNsLWNvbG9yLWZ1Y2hzaWEtNTA6IGhzbCgyODkuMSAxMDAlIDk3LjglKTtcbiAgLS1zbC1jb2xvci1mdWNoc2lhLTEwMDogaHNsKDI4NyAxMDAlIDk1LjUlKTtcbiAgLS1zbC1jb2xvci1mdWNoc2lhLTIwMDogaHNsKDI4OC4zIDk1LjglIDkwLjYlKTtcbiAgLS1zbC1jb2xvci1mdWNoc2lhLTMwMDogaHNsKDI5MS4xIDkzLjElIDgyLjklKTtcbiAgLS1zbC1jb2xvci1mdWNoc2lhLTQwMDogaHNsKDI5MiA5MS40JSA3Mi41JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS01MDA6IGhzbCgyOTIuMiA4NC4xJSA2MC42JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS02MDA6IGhzbCgyOTMuNCA2OS41JSA0OC44JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS03MDA6IGhzbCgyOTQuNyA3Mi40JSAzOS44JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS04MDA6IGhzbCgyOTUuNCA3MC4yJSAzMi45JSk7XG4gIC0tc2wtY29sb3ItZnVjaHNpYS05MDA6IGhzbCgyOTYuNyA2My42JSAyOCUpO1xuICAtLXNsLWNvbG9yLWZ1Y2hzaWEtOTUwOiBoc2woMjk3LjEgNTYuOCUgMTQuNSUpO1xuXG4gIC0tc2wtY29sb3ItcGluay01MDogaHNsKDMyNy4zIDczLjMlIDk3LjElKTtcbiAgLS1zbC1jb2xvci1waW5rLTEwMDogaHNsKDMyNS43IDc3LjglIDk0LjclKTtcbiAgLS1zbC1jb2xvci1waW5rLTIwMDogaHNsKDMyNS45IDg0LjYlIDg5LjglKTtcbiAgLS1zbC1jb2xvci1waW5rLTMwMDogaHNsKDMyNy40IDg3LjElIDgxLjglKTtcbiAgLS1zbC1jb2xvci1waW5rLTQwMDogaHNsKDMyOC42IDg1LjUlIDcwLjIlKTtcbiAgLS1zbC1jb2xvci1waW5rLTUwMDogaHNsKDMzMC40IDgxLjIlIDYwLjQlKTtcbiAgLS1zbC1jb2xvci1waW5rLTYwMDogaHNsKDMzMy4zIDcxLjQlIDUwLjYlKTtcbiAgLS1zbC1jb2xvci1waW5rLTcwMDogaHNsKDMzNS4xIDc3LjYlIDQyJSk7XG4gIC0tc2wtY29sb3ItcGluay04MDA6IGhzbCgzMzUuOCA3NC40JSAzNS4zJSk7XG4gIC0tc2wtY29sb3ItcGluay05MDA6IGhzbCgzMzUuOSA2OSUgMzAuNCUpO1xuICAtLXNsLWNvbG9yLXBpbmstOTUwOiBoc2woMzM2LjIgNjUuNCUgMTUuOSUpO1xuXG4gIC0tc2wtY29sb3Itcm9zZS01MDogaHNsKDM1NS43IDEwMCUgOTcuMyUpO1xuICAtLXNsLWNvbG9yLXJvc2UtMTAwOiBoc2woMzU1LjYgMTAwJSA5NC43JSk7XG4gIC0tc2wtY29sb3Itcm9zZS0yMDA6IGhzbCgzNTIuNyA5Ni4xJSA5MCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtMzAwOiBoc2woMzUyLjYgOTUuNyUgODEuOCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtNDAwOiBoc2woMzUxLjMgOTQuNSUgNzEuNCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtNTAwOiBoc2woMzQ5LjcgODkuMiUgNjAuMiUpO1xuICAtLXNsLWNvbG9yLXJvc2UtNjAwOiBoc2woMzQ2LjggNzcuMiUgNDkuOCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtNzAwOiBoc2woMzQ1LjMgODIuNyUgNDAuOCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtODAwOiBoc2woMzQzLjQgNzkuNyUgMzQuNyUpO1xuICAtLXNsLWNvbG9yLXJvc2UtOTAwOiBoc2woMzQxLjUgNzUuNSUgMzAuNCUpO1xuICAtLXNsLWNvbG9yLXJvc2UtOTUwOiBoc2woMzQxLjMgNzAuMSUgMTcuMSUpO1xuXG4gIC0tc2wtY29sb3ItcHJpbWFyeS01MDogdmFyKC0tc2wtY29sb3Itc2t5LTUwKTtcbiAgLS1zbC1jb2xvci1wcmltYXJ5LTEwMDogdmFyKC0tc2wtY29sb3Itc2t5LTEwMCk7XG4gIC0tc2wtY29sb3ItcHJpbWFyeS0yMDA6IHZhcigtLXNsLWNvbG9yLXNreS0yMDApO1xuICAtLXNsLWNvbG9yLXByaW1hcnktMzAwOiB2YXIoLS1zbC1jb2xvci1za3ktMzAwKTtcbiAgLS1zbC1jb2xvci1wcmltYXJ5LTQwMDogdmFyKC0tc2wtY29sb3Itc2t5LTQwMCk7XG4gIC0tc2wtY29sb3ItcHJpbWFyeS01MDA6IHZhcigtLXNsLWNvbG9yLXNreS01MDApO1xuICAtLXNsLWNvbG9yLXByaW1hcnktNjAwOiB2YXIoLS1zbC1jb2xvci1za3ktNjAwKTtcbiAgLS1zbC1jb2xvci1wcmltYXJ5LTcwMDogdmFyKC0tc2wtY29sb3Itc2t5LTcwMCk7XG4gIC0tc2wtY29sb3ItcHJpbWFyeS04MDA6IHZhcigtLXNsLWNvbG9yLXNreS04MDApO1xuICAtLXNsLWNvbG9yLXByaW1hcnktOTAwOiB2YXIoLS1zbC1jb2xvci1za3ktOTAwKTtcbiAgLS1zbC1jb2xvci1wcmltYXJ5LTk1MDogdmFyKC0tc2wtY29sb3Itc2t5LTk1MCk7XG5cbiAgLS1zbC1jb2xvci1zdWNjZXNzLTUwOiB2YXIoLS1zbC1jb2xvci1ncmVlbi01MCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy0xMDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTEwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy0yMDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTIwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy0zMDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTMwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy00MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTQwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy01MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTUwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy02MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTYwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy03MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTcwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy04MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTgwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy05MDA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTkwMCk7XG4gIC0tc2wtY29sb3Itc3VjY2Vzcy05NTA6IHZhcigtLXNsLWNvbG9yLWdyZWVuLTk1MCk7XG5cbiAgLS1zbC1jb2xvci13YXJuaW5nLTUwOiB2YXIoLS1zbC1jb2xvci1hbWJlci01MCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy0xMDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTEwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy0yMDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTIwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy0zMDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTMwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy00MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTQwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy01MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTUwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy02MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTYwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy03MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTcwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy04MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTgwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy05MDA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTkwMCk7XG4gIC0tc2wtY29sb3Itd2FybmluZy05NTA6IHZhcigtLXNsLWNvbG9yLWFtYmVyLTk1MCk7XG5cbiAgLS1zbC1jb2xvci1kYW5nZXItNTA6IHZhcigtLXNsLWNvbG9yLXJlZC01MCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTEwMDogdmFyKC0tc2wtY29sb3ItcmVkLTEwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTIwMDogdmFyKC0tc2wtY29sb3ItcmVkLTIwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTMwMDogdmFyKC0tc2wtY29sb3ItcmVkLTMwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTQwMDogdmFyKC0tc2wtY29sb3ItcmVkLTQwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTUwMDogdmFyKC0tc2wtY29sb3ItcmVkLTUwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTYwMDogdmFyKC0tc2wtY29sb3ItcmVkLTYwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTcwMDogdmFyKC0tc2wtY29sb3ItcmVkLTcwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTgwMDogdmFyKC0tc2wtY29sb3ItcmVkLTgwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTkwMDogdmFyKC0tc2wtY29sb3ItcmVkLTkwMCk7XG4gIC0tc2wtY29sb3ItZGFuZ2VyLTk1MDogdmFyKC0tc2wtY29sb3ItcmVkLTk1MCk7XG5cbiAgLS1zbC1jb2xvci1uZXV0cmFsLTUwOiB2YXIoLS1zbC1jb2xvci1ncmF5LTUwKTtcbiAgLS1zbC1jb2xvci1uZXV0cmFsLTEwMDogdmFyKC0tc2wtY29sb3ItZ3JheS0xMDApO1xuICAtLXNsLWNvbG9yLW5ldXRyYWwtMjAwOiB2YXIoLS1zbC1jb2xvci1ncmF5LTIwMCk7XG4gIC0tc2wtY29sb3ItbmV1dHJhbC0zMDA6IHZhcigtLXNsLWNvbG9yLWdyYXktMzAwKTtcbiAgLS1zbC1jb2xvci1uZXV0cmFsLTQwMDogdmFyKC0tc2wtY29sb3ItZ3JheS00MDApO1xuICAtLXNsLWNvbG9yLW5ldXRyYWwtNTAwOiB2YXIoLS1zbC1jb2xvci1ncmF5LTUwMCk7XG4gIC0tc2wtY29sb3ItbmV1dHJhbC02MDA6IHZhcigtLXNsLWNvbG9yLWdyYXktNjAwKTtcbiAgLS1zbC1jb2xvci1uZXV0cmFsLTcwMDogdmFyKC0tc2wtY29sb3ItZ3JheS03MDApO1xuICAtLXNsLWNvbG9yLW5ldXRyYWwtODAwOiB2YXIoLS1zbC1jb2xvci1ncmF5LTgwMCk7XG4gIC0tc2wtY29sb3ItbmV1dHJhbC05MDA6IHZhcigtLXNsLWNvbG9yLWdyYXktOTAwKTtcbiAgLS1zbC1jb2xvci1uZXV0cmFsLTk1MDogdmFyKC0tc2wtY29sb3ItZ3JheS05NTApO1xuXG4gIC0tc2wtY29sb3ItbmV1dHJhbC0wOiBoc2woMCwgMCUsIDEwMCUpO1xuICAtLXNsLWNvbG9yLW5ldXRyYWwtMTAwMDogaHNsKDAsIDAlLCAwJSk7XG5cbiAgLS1zbC1ib3JkZXItcmFkaXVzLXNtYWxsOiAwLjE4NzVyZW07XG4gIC0tc2wtYm9yZGVyLXJhZGl1cy1tZWRpdW06IDAuMjVyZW07XG4gIC0tc2wtYm9yZGVyLXJhZGl1cy1sYXJnZTogMC41cmVtO1xuICAtLXNsLWJvcmRlci1yYWRpdXMteC1sYXJnZTogMXJlbTtcblxuICAtLXNsLWJvcmRlci1yYWRpdXMtY2lyY2xlOiA1MCU7XG4gIC0tc2wtYm9yZGVyLXJhZGl1cy1waWxsOiA5OTk5cHg7XG5cbiAgLS1zbC1zaGFkb3cteC1zbWFsbDogMCAxcHggMnB4IGhzbCgyNDAgMy44JSA0Ni4xJSAvIDYlKTtcbiAgLS1zbC1zaGFkb3ctc21hbGw6IDAgMXB4IDJweCBoc2woMjQwIDMuOCUgNDYuMSUgLyAxMiUpO1xuICAtLXNsLXNoYWRvdy1tZWRpdW06IDAgMnB4IDRweCBoc2woMjQwIDMuOCUgNDYuMSUgLyAxMiUpO1xuICAtLXNsLXNoYWRvdy1sYXJnZTogMCAycHggOHB4IGhzbCgyNDAgMy44JSA0Ni4xJSAvIDEyJSk7XG4gIC0tc2wtc2hhZG93LXgtbGFyZ2U6IDAgNHB4IDE2cHggaHNsKDI0MCAzLjglIDQ2LjElIC8gMTIlKTtcblxuICAtLXNsLXNwYWNpbmctM3gtc21hbGw6IDAuMTI1cmVtO1xuICAtLXNsLXNwYWNpbmctMngtc21hbGw6IDAuMjVyZW07XG4gIC0tc2wtc3BhY2luZy14LXNtYWxsOiAwLjVyZW07XG4gIC0tc2wtc3BhY2luZy1zbWFsbDogMC43NXJlbTtcbiAgLS1zbC1zcGFjaW5nLW1lZGl1bTogMXJlbTtcbiAgLS1zbC1zcGFjaW5nLWxhcmdlOiAxLjI1cmVtO1xuICAtLXNsLXNwYWNpbmcteC1sYXJnZTogMS43NXJlbTtcbiAgLS1zbC1zcGFjaW5nLTJ4LWxhcmdlOiAyLjI1cmVtO1xuICAtLXNsLXNwYWNpbmctM3gtbGFyZ2U6IDNyZW07XG4gIC0tc2wtc3BhY2luZy00eC1sYXJnZTogNC41cmVtO1xuXG4gIC0tc2wtdHJhbnNpdGlvbi14LXNsb3c6IDEwMDBtcztcbiAgLS1zbC10cmFuc2l0aW9uLXNsb3c6IDUwMG1zO1xuICAtLXNsLXRyYW5zaXRpb24tbWVkaXVtOiAyNTBtcztcbiAgLS1zbC10cmFuc2l0aW9uLWZhc3Q6IDE1MG1zO1xuICAtLXNsLXRyYW5zaXRpb24teC1mYXN0OiA1MG1zO1xuXG4gIC0tc2wtZm9udC1tb25vOiBTRk1vbm8tUmVndWxhciwgQ29uc29sYXMsICJMaWJlcmF0aW9uIE1vbm8iLCBNZW5sbywgbW9ub3NwYWNlO1xuICAtLXNsLWZvbnQtc2FuczogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sXG4gICAgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgIkFwcGxlIENvbG9yIEVtb2ppIiwgIlNlZ29lIFVJIEVtb2ppIixcbiAgICAiU2Vnb2UgVUkgU3ltYm9sIjtcbiAgLS1zbC1mb250LXNlcmlmOiBHZW9yZ2lhLCAiVGltZXMgTmV3IFJvbWFuIiwgc2VyaWY7XG5cbiAgLS1zbC1mb250LXNpemUtMngtc21hbGw6IDAuNjI1cmVtO1xuICAtLXNsLWZvbnQtc2l6ZS14LXNtYWxsOiAwLjc1cmVtO1xuICAtLXNsLWZvbnQtc2l6ZS1zbWFsbDogMC44NzVyZW07XG4gIC0tc2wtZm9udC1zaXplLW1lZGl1bTogMXJlbTtcbiAgLS1zbC1mb250LXNpemUtbGFyZ2U6IDEuMjVyZW07XG4gIC0tc2wtZm9udC1zaXplLXgtbGFyZ2U6IDEuNXJlbTtcbiAgLS1zbC1mb250LXNpemUtMngtbGFyZ2U6IDIuMjVyZW07XG4gIC0tc2wtZm9udC1zaXplLTN4LWxhcmdlOiAzcmVtO1xuICAtLXNsLWZvbnQtc2l6ZS00eC1sYXJnZTogNC41cmVtO1xuXG4gIC0tc2wtZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDtcbiAgLS1zbC1mb250LXdlaWdodC1ub3JtYWw6IDQwMDtcbiAgLS1zbC1mb250LXdlaWdodC1zZW1pYm9sZDogNTAwO1xuICAtLXNsLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcblxuICAtLXNsLWxldHRlci1zcGFjaW5nLWRlbnNlcjogLTAuMDNlbTtcbiAgLS1zbC1sZXR0ZXItc3BhY2luZy1kZW5zZTogLTAuMDE1ZW07XG4gIC0tc2wtbGV0dGVyLXNwYWNpbmctbm9ybWFsOiBub3JtYWw7XG4gIC0tc2wtbGV0dGVyLXNwYWNpbmctbG9vc2U6IDAuMDc1ZW07XG4gIC0tc2wtbGV0dGVyLXNwYWNpbmctbG9vc2VyOiAwLjE1ZW07XG5cbiAgLS1zbC1saW5lLWhlaWdodC1kZW5zZXI6IDE7XG4gIC0tc2wtbGluZS1oZWlnaHQtZGVuc2U6IDEuNDtcbiAgLS1zbC1saW5lLWhlaWdodC1ub3JtYWw6IDEuODtcbiAgLS1zbC1saW5lLWhlaWdodC1sb29zZTogMi4yO1xuICAtLXNsLWxpbmUtaGVpZ2h0LWxvb3NlcjogMi42O1xuXG4gIC0tc2wtZm9jdXMtcmluZy1jb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApO1xuICAtLXNsLWZvY3VzLXJpbmctc3R5bGU6IHNvbGlkO1xuICAtLXNsLWZvY3VzLXJpbmctd2lkdGg6IDNweDtcbiAgLS1zbC1mb2N1cy1yaW5nOiB2YXIoLS1zbC1mb2N1cy1yaW5nLXN0eWxlKSB2YXIoLS1zbC1mb2N1cy1yaW5nLXdpZHRoKVxuICAgIHZhcigtLXNsLWZvY3VzLXJpbmctY29sb3IpO1xuICAtLXNsLWZvY3VzLXJpbmctb2Zmc2V0OiAxcHg7XG5cbiAgLS1zbC1idXR0b24tZm9udC1zaXplLXNtYWxsOiB2YXIoLS1zbC1mb250LXNpemUteC1zbWFsbCk7XG4gIC0tc2wtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW06IHZhcigtLXNsLWZvbnQtc2l6ZS1zbWFsbCk7XG4gIC0tc2wtYnV0dG9uLWZvbnQtc2l6ZS1sYXJnZTogdmFyKC0tc2wtZm9udC1zaXplLW1lZGl1bSk7XG5cbiAgLS1zbC1pbnB1dC1oZWlnaHQtc21hbGw6IDEuODc1cmVtO1xuICAtLXNsLWlucHV0LWhlaWdodC1tZWRpdW06IDIuNXJlbTtcbiAgLS1zbC1pbnB1dC1oZWlnaHQtbGFyZ2U6IDMuMTI1cmVtO1xuXG4gIC0tc2wtaW5wdXQtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTtcbiAgLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yLWZvY3VzOiB2YXIoLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgLS1zbC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTEwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTMwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTQwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLWNvbG9yLWZvY3VzOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTUwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTMwMCk7XG4gIC0tc2wtaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG4gIC0tc2wtaW5wdXQtcmVxdWlyZWQtY29udGVudDogIioiO1xuICAtLXNsLWlucHV0LXJlcXVpcmVkLWNvbnRlbnQtb2Zmc2V0OiAtMnB4O1xuICAtLXNsLWlucHV0LXJlcXVpcmVkLWNvbnRlbnQtY29sb3I6IHZhcigtLXNsLWlucHV0LWxhYmVsLWNvbG9yKTtcblxuICAtLXNsLWlucHV0LWJvcmRlci1yYWRpdXMtc21hbGw6IHZhcigtLXNsLWJvcmRlci1yYWRpdXMtbWVkaXVtKTtcbiAgLS1zbC1pbnB1dC1ib3JkZXItcmFkaXVzLW1lZGl1bTogdmFyKC0tc2wtYm9yZGVyLXJhZGl1cy1tZWRpdW0pO1xuICAtLXNsLWlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2U6IHZhcigtLXNsLWJvcmRlci1yYWRpdXMtbWVkaXVtKTtcblxuICAtLXNsLWlucHV0LWZvbnQtZmFtaWx5OiB2YXIoLS1zbC1mb250LXNhbnMpO1xuICAtLXNsLWlucHV0LWZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpO1xuICAtLXNsLWlucHV0LWZvbnQtc2l6ZS1zbWFsbDogdmFyKC0tc2wtZm9udC1zaXplLXNtYWxsKTtcbiAgLS1zbC1pbnB1dC1mb250LXNpemUtbWVkaXVtOiB2YXIoLS1zbC1mb250LXNpemUtbWVkaXVtKTtcbiAgLS1zbC1pbnB1dC1mb250LXNpemUtbGFyZ2U6IHZhcigtLXNsLWZvbnQtc2l6ZS1sYXJnZSk7XG4gIC0tc2wtaW5wdXQtbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNsLWxldHRlci1zcGFjaW5nLW5vcm1hbCk7XG5cbiAgLS1zbC1pbnB1dC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC03MDApO1xuICAtLXNsLWlucHV0LWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7XG4gIC0tc2wtaW5wdXQtY29sb3ItZm9jdXM6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNzAwKTtcbiAgLS1zbC1pbnB1dC1jb2xvci1kaXNhYmxlZDogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC05MDApO1xuICAtLXNsLWlucHV0LWljb24tY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNTAwKTtcbiAgLS1zbC1pbnB1dC1pY29uLWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTYwMCk7XG4gIC0tc2wtaW5wdXQtaWNvbi1jb2xvci1mb2N1czogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC02MDApO1xuICAtLXNsLWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTUwMCk7XG4gIC0tc2wtaW5wdXQtcGxhY2Vob2xkZXItY29sb3ItZGlzYWJsZWQ6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTtcbiAgLS1zbC1pbnB1dC1zcGFjaW5nLXNtYWxsOiB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTtcbiAgLS1zbC1pbnB1dC1zcGFjaW5nLW1lZGl1bTogdmFyKC0tc2wtc3BhY2luZy1tZWRpdW0pO1xuICAtLXNsLWlucHV0LXNwYWNpbmctbGFyZ2U6IHZhcigtLXNsLXNwYWNpbmctbGFyZ2UpO1xuXG4gIC0tc2wtaW5wdXQtZm9jdXMtcmluZy1jb2xvcjogaHNsKDE5OC42IDg4LjclIDQ4LjQlIC8gNDAlKTtcbiAgLS1zbC1pbnB1dC1mb2N1cy1yaW5nLW9mZnNldDogMDtcblxuICAtLXNsLWlucHV0LWZpbGxlZC1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTEwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWJhY2tncm91bmQtY29sb3ItaG92ZXI6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMTAwKTtcbiAgLS1zbC1pbnB1dC1maWxsZWQtYmFja2dyb3VuZC1jb2xvci1mb2N1czogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0xMDApO1xuICAtLXNsLWlucHV0LWZpbGxlZC1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTEwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTgwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWNvbG9yLWhvdmVyOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTgwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWNvbG9yLWZvY3VzOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7XG4gIC0tc2wtaW5wdXQtZmlsbGVkLWNvbG9yLWRpc2FibGVkOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTgwMCk7XG5cbiAgLS1zbC1pbnB1dC1sYWJlbC1mb250LXNpemUtc21hbGw6IHZhcigtLXNsLWZvbnQtc2l6ZS1zbWFsbCk7XG4gIC0tc2wtaW5wdXQtbGFiZWwtZm9udC1zaXplLW1lZGl1bTogdmFyKC0tc2wtZm9udC1zaXplLW1lZGl1bSk7XG4gIC0tc2wtaW5wdXQtbGFiZWwtZm9udC1zaXplLWxhcmdlOiB2YXIoLS1zbC1mb250LXNpemUtbGFyZ2UpO1xuICAtLXNsLWlucHV0LWxhYmVsLWNvbG9yOiBpbmhlcml0O1xuXG4gIC0tc2wtaW5wdXQtaGVscC10ZXh0LWZvbnQtc2l6ZS1zbWFsbDogdmFyKC0tc2wtZm9udC1zaXplLXgtc21hbGwpO1xuICAtLXNsLWlucHV0LWhlbHAtdGV4dC1mb250LXNpemUtbWVkaXVtOiB2YXIoLS1zbC1mb250LXNpemUtc21hbGwpO1xuICAtLXNsLWlucHV0LWhlbHAtdGV4dC1mb250LXNpemUtbGFyZ2U6IHZhcigtLXNsLWZvbnQtc2l6ZS1tZWRpdW0pO1xuICAtLXNsLWlucHV0LWhlbHAtdGV4dC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC01MDApO1xuXG4gIC0tc2wtdG9nZ2xlLXNpemUtc21hbGw6IDAuODc1cmVtO1xuICAtLXNsLXRvZ2dsZS1zaXplLW1lZGl1bTogMS4xMjVyZW07XG4gIC0tc2wtdG9nZ2xlLXNpemUtbGFyZ2U6IDEuMzc1cmVtO1xuXG4gIC0tc2wtb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yOiBoc2woMjQwIDMuOCUgNDYuMSUgLyAzMyUpO1xuXG4gIC0tc2wtcGFuZWwtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTtcbiAgLS1zbC1wYW5lbC1ib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMjAwKTtcbiAgLS1zbC1wYW5lbC1ib3JkZXItd2lkdGg6IDFweDtcblxuICAtLXNsLXRvb2x0aXAtYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtYm9yZGVyLXJhZGl1cy1tZWRpdW0pO1xuICAtLXNsLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC04MDApO1xuICAtLXNsLXRvb2x0aXAtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7XG4gIC0tc2wtdG9vbHRpcC1mb250LWZhbWlseTogdmFyKC0tc2wtZm9udC1zYW5zKTtcbiAgLS1zbC10b29sdGlwLWZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpO1xuICAtLXNsLXRvb2x0aXAtZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtc21hbGwpO1xuICAtLXNsLXRvb2x0aXAtbGluZS1oZWlnaHQ6IHZhcigtLXNsLWxpbmUtaGVpZ2h0LWRlbnNlKTtcbiAgLS1zbC10b29sdGlwLXBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmctMngtc21hbGwpIHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7XG4gIC0tc2wtdG9vbHRpcC1hcnJvdy1zaXplOiA2cHg7XG5cbiAgLS1zbC16LWluZGV4LWRyYXdlcjogNzAwO1xuICAtLXNsLXotaW5kZXgtZGlhbG9nOiA4MDA7XG4gIC0tc2wtei1pbmRleC1kcm9wZG93bjogOTAwO1xuICAtLXNsLXotaW5kZXgtdG9hc3Q6IDk1MDtcbiAgLS1zbC16LWluZGV4LXRvb2x0aXA6IDEwMDA7XG59XG5cbkBzdXBwb3J0cyAoc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlKSB7XG4gIC5zbC1zY3JvbGwtbG9jayB7XG4gICAgc2Nyb2xsYmFyLWd1dHRlcjogdmFyKC0tc2wtc2Nyb2xsLWxvY2stZ3V0dGVyKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnNsLXNjcm9sbC1sb2NrIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxufVxuXG5Ac3VwcG9ydHMgbm90IChzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGUpIHtcbiAgLnNsLXNjcm9sbC1sb2NrIGJvZHkge1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNsLXNjcm9sbC1sb2NrLXNpemUpICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zbC10b2FzdC1zdGFjayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBpbnNldC1pbmxpbmUtZW5kOiAwO1xuICB6LWluZGV4OiB2YXIoLS1zbC16LWluZGV4LXRvYXN0KTtcbiAgd2lkdGg6IDI4cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uc2wtdG9hc3Qtc3RhY2sgc2wtYWxlcnQge1xuICBtYXJnaW46IHZhcigtLXNsLXNwYWNpbmctbWVkaXVtKTtcbn1cblxuLnNsLXRvYXN0LXN0YWNrIHNsLWFsZXJ0OjpwYXJ0KGJhc2UpIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2wtc2hhZG93LWxhcmdlKTtcbn1cbicsIiJdKTtjb25zdCByPW59LDk4OTooZSx0LGkpPT57InVzZSBzdHJpY3QiO2kuZCh0LHtBOigpPT5hfSk7dmFyIG89aSgzMTQpLG49aS5uKG8pLHI9aSg0OTUpLHM9bigpKChmdW5jdGlvbihlKXtyZXR1cm4gZVsxXX0pKTtzLmkoci5BKSxzLnB1c2goW2UuaWQsJy5pbnB1dDo6cGxhY2Vob2xkZXIsLnRleHRhcmVhOjpwbGFjZWhvbGRlciwuc2VsZWN0IHNlbGVjdDo6cGxhY2Vob2xkZXJ7b3BhY2l0eToxfWE6Zm9jdXN7Y29sb3I6IzM2MzYzNn0uZmlsZS1sYWJlbDpmb2N1cy13aXRoaW4gLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtjb2xvcjojMzYzNjM2fS5idXR0b24uaXMtcHJpbWFyeTpmb2N1cywuYnV0dG9uLmlzLXByaW1hcnk6aG92ZXIsLmJ1dHRvbi5pcy1wcmltYXJ5OmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTggIWltcG9ydGFudDtjb2xvcjojZmZmICFpbXBvcnRhbnR9LnJlcGxheS1iYXIgLmJ1dHRvbnttYXJnaW46MCAxcHh9LnJlcGxheS1iYXIgLmJ1dHRvbjpmb2N1c3tib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDtvdXRsaW5lOjFweCBkb3R0ZWQgIzQ4NzZmZjtvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBhdXRvIDFweH0uc2tpcC1saW5re2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O3dpZHRoOjFweDt3b3JkLXdyYXA6bm9ybWFsICFpbXBvcnRhbnR9LnNraXAtbGluazpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzowIDAgMnB4IDJweCByZ2JhKDAsMCwwLC42KTtjbGlwOmF1dG8gIWltcG9ydGFudDtjbGlwLXBhdGg6bm9uZTtjb2xvcjojZmZmO2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MS4zZW07Zm9udC13ZWlnaHQ6Ym9sZDtoZWlnaHQ6YXV0bztsZWZ0OjVweDtsaW5lLWhlaWdodDpub3JtYWw7cGFkZGluZzoxNXB4IDIzcHggMTRweDt0ZXh0LWRlY29yYXRpb246bm9uZTt0b3A6NXB4O3dpZHRoOmF1dG87ei1pbmRleDoxMDAwMDB9Lm1haW4tc2Nyb2xse2ZsZXg6MTtzY3JvbGwtYmVoYXZpb3I6c21vb3RoO292ZXJmbG93LXk6YXV0bzttYXgtaGVpZ2h0OjEwMHZoO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3cteDpoaWRkZW59LyohIGJ1bG1hLmlvIHYwLjkuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9qZ3RobXMvYnVsbWEgKi8ucGFnaW5hdGlvbi1wcmV2aW91cywucGFnaW5hdGlvbi1uZXh0LC5wYWdpbmF0aW9uLWxpbmssLnBhZ2luYXRpb24tZWxsaXBzaXMsLmZpbGUtY3RhLC5maWxlLW5hbWUsLnNlbGVjdCBzZWxlY3QsLnRleHRhcmVhLC5pbnB1dCwuYnV0dG9uey1tb3otYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJhZGl1czo0cHg7Ym94LXNoYWRvdzpub25lO2Rpc3BsYXk6aW5saW5lLWZsZXg7Zm9udC1zaXplOjFyZW07aGVpZ2h0OjIuNWVtO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2xpbmUtaGVpZ2h0OjEuNTtwYWRkaW5nLWJvdHRvbTpjYWxjKC41ZW0gLSAxcHgpO3BhZGRpbmctbGVmdDpjYWxjKC43NWVtIC0gMXB4KTtwYWRkaW5nLXJpZ2h0OmNhbGMoLjc1ZW0gLSAxcHgpO3BhZGRpbmctdG9wOmNhbGMoLjVlbSAtIDFweCk7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246dG9wfS5wYWdpbmF0aW9uLXByZXZpb3VzOmZvY3VzLC5wYWdpbmF0aW9uLW5leHQ6Zm9jdXMsLnBhZ2luYXRpb24tbGluazpmb2N1cywucGFnaW5hdGlvbi1lbGxpcHNpczpmb2N1cywuZmlsZS1jdGE6Zm9jdXMsLmZpbGUtbmFtZTpmb2N1cywuc2VsZWN0IHNlbGVjdDpmb2N1cywudGV4dGFyZWE6Zm9jdXMsLmlucHV0OmZvY3VzLC5idXR0b246Zm9jdXMsLmlzLWZvY3VzZWQucGFnaW5hdGlvbi1wcmV2aW91cywuaXMtZm9jdXNlZC5wYWdpbmF0aW9uLW5leHQsLmlzLWZvY3VzZWQucGFnaW5hdGlvbi1saW5rLC5pcy1mb2N1c2VkLnBhZ2luYXRpb24tZWxsaXBzaXMsLmlzLWZvY3VzZWQuZmlsZS1jdGEsLmlzLWZvY3VzZWQuZmlsZS1uYW1lLC5zZWxlY3Qgc2VsZWN0LmlzLWZvY3VzZWQsLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWZvY3VzZWQuaW5wdXQsLmlzLWZvY3VzZWQuYnV0dG9uLC5wYWdpbmF0aW9uLXByZXZpb3VzOmFjdGl2ZSwucGFnaW5hdGlvbi1uZXh0OmFjdGl2ZSwucGFnaW5hdGlvbi1saW5rOmFjdGl2ZSwucGFnaW5hdGlvbi1lbGxpcHNpczphY3RpdmUsLmZpbGUtY3RhOmFjdGl2ZSwuZmlsZS1uYW1lOmFjdGl2ZSwuc2VsZWN0IHNlbGVjdDphY3RpdmUsLnRleHRhcmVhOmFjdGl2ZSwuaW5wdXQ6YWN0aXZlLC5idXR0b246YWN0aXZlLC5pcy1hY3RpdmUucGFnaW5hdGlvbi1wcmV2aW91cywuaXMtYWN0aXZlLnBhZ2luYXRpb24tbmV4dCwuaXMtYWN0aXZlLnBhZ2luYXRpb24tbGluaywuaXMtYWN0aXZlLnBhZ2luYXRpb24tZWxsaXBzaXMsLmlzLWFjdGl2ZS5maWxlLWN0YSwuaXMtYWN0aXZlLmZpbGUtbmFtZSwuc2VsZWN0IHNlbGVjdC5pcy1hY3RpdmUsLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtYWN0aXZlLmlucHV0LC5pcy1hY3RpdmUuYnV0dG9ue291dGxpbmU6bm9uZX1bZGlzYWJsZWRdLnBhZ2luYXRpb24tcHJldmlvdXMsW2Rpc2FibGVkXS5wYWdpbmF0aW9uLW5leHQsW2Rpc2FibGVkXS5wYWdpbmF0aW9uLWxpbmssW2Rpc2FibGVkXS5wYWdpbmF0aW9uLWVsbGlwc2lzLFtkaXNhYmxlZF0uZmlsZS1jdGEsW2Rpc2FibGVkXS5maWxlLW5hbWUsLnNlbGVjdCBzZWxlY3RbZGlzYWJsZWRdLFtkaXNhYmxlZF0udGV4dGFyZWEsW2Rpc2FibGVkXS5pbnB1dCxbZGlzYWJsZWRdLmJ1dHRvbixmaWVsZHNldFtkaXNhYmxlZF0gLnBhZ2luYXRpb24tcHJldmlvdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5wYWdpbmF0aW9uLW5leHQsZmllbGRzZXRbZGlzYWJsZWRdIC5wYWdpbmF0aW9uLWxpbmssZmllbGRzZXRbZGlzYWJsZWRdIC5wYWdpbmF0aW9uLWVsbGlwc2lzLGZpZWxkc2V0W2Rpc2FibGVkXSAuZmlsZS1jdGEsZmllbGRzZXRbZGlzYWJsZWRdIC5maWxlLW5hbWUsZmllbGRzZXRbZGlzYWJsZWRdIC5zZWxlY3Qgc2VsZWN0LC5zZWxlY3QgZmllbGRzZXRbZGlzYWJsZWRdIHNlbGVjdCxmaWVsZHNldFtkaXNhYmxlZF0gLnRleHRhcmVhLGZpZWxkc2V0W2Rpc2FibGVkXSAuaW5wdXQsZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b257Y3Vyc29yOm5vdC1hbGxvd2VkfS5pcy11bnNlbGVjdGFibGUsLnRhYnMsLnBhZ2luYXRpb24tcHJldmlvdXMsLnBhZ2luYXRpb24tbmV4dCwucGFnaW5hdGlvbi1saW5rLC5wYWdpbmF0aW9uLWVsbGlwc2lzLC5icmVhZGNydW1iLC5maWxlLC5idXR0b257LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5uYXZiYXItbGluazpub3QoLmlzLWFycm93bGVzcyk6OmFmdGVyLC5zZWxlY3Q6bm90KC5pcy1tdWx0aXBsZSk6bm90KC5pcy1sb2FkaW5nKTo6YWZ0ZXJ7Ym9yZGVyOjNweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yaWdodDowO2JvcmRlci10b3A6MDtjb250ZW50OiIgIjtkaXNwbGF5OmJsb2NrO2hlaWdodDouNjI1ZW07bWFyZ2luLXRvcDotMC40Mzc1ZW07cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt3aWR0aDouNjI1ZW19LnRhYnM6bm90KDpsYXN0LWNoaWxkKSwucGFnaW5hdGlvbjpub3QoOmxhc3QtY2hpbGQpLC5tZXNzYWdlOm5vdCg6bGFzdC1jaGlsZCksLmxldmVsOm5vdCg6bGFzdC1jaGlsZCksLmJyZWFkY3J1bWI6bm90KDpsYXN0LWNoaWxkKSwuYmxvY2s6bm90KDpsYXN0LWNoaWxkKSwudGl0bGU6bm90KDpsYXN0LWNoaWxkKSwuc3VidGl0bGU6bm90KDpsYXN0LWNoaWxkKSwudGFibGUtY29udGFpbmVyOm5vdCg6bGFzdC1jaGlsZCksLnRhYmxlOm5vdCg6bGFzdC1jaGlsZCksLnByb2dyZXNzOm5vdCg6bGFzdC1jaGlsZCksLm5vdGlmaWNhdGlvbjpub3QoOmxhc3QtY2hpbGQpLC5jb250ZW50Om5vdCg6bGFzdC1jaGlsZCksLmJveDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MS41cmVtfS5tb2RhbC1jbG9zZSwuZGVsZXRley13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjIpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6OTk5OXB4O2N1cnNvcjpwb2ludGVyO3BvaW50ZXItZXZlbnRzOmF1dG87ZGlzcGxheTppbmxpbmUtYmxvY2s7ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDtmb250LXNpemU6MDtoZWlnaHQ6MjBweDttYXgtaGVpZ2h0OjIwcHg7bWF4LXdpZHRoOjIwcHg7bWluLWhlaWdodDoyMHB4O21pbi13aWR0aDoyMHB4O291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjp0b3A7d2lkdGg6MjBweH0ubW9kYWwtY2xvc2U6OmJlZm9yZSwuZGVsZXRlOjpiZWZvcmUsLm1vZGFsLWNsb3NlOjphZnRlciwuZGVsZXRlOjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2xlZnQ6NTAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcn0ubW9kYWwtY2xvc2U6OmJlZm9yZSwuZGVsZXRlOjpiZWZvcmV7aGVpZ2h0OjJweDt3aWR0aDo1MCV9Lm1vZGFsLWNsb3NlOjphZnRlciwuZGVsZXRlOjphZnRlcntoZWlnaHQ6NTAlO3dpZHRoOjJweH0ubW9kYWwtY2xvc2U6aG92ZXIsLmRlbGV0ZTpob3ZlciwubW9kYWwtY2xvc2U6Zm9jdXMsLmRlbGV0ZTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjMpfS5tb2RhbC1jbG9zZTphY3RpdmUsLmRlbGV0ZTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC40KX0uaXMtc21hbGwubW9kYWwtY2xvc2UsLmlzLXNtYWxsLmRlbGV0ZXtoZWlnaHQ6MTZweDttYXgtaGVpZ2h0OjE2cHg7bWF4LXdpZHRoOjE2cHg7bWluLWhlaWdodDoxNnB4O21pbi13aWR0aDoxNnB4O3dpZHRoOjE2cHh9LmlzLW1lZGl1bS5tb2RhbC1jbG9zZSwuaXMtbWVkaXVtLmRlbGV0ZXtoZWlnaHQ6MjRweDttYXgtaGVpZ2h0OjI0cHg7bWF4LXdpZHRoOjI0cHg7bWluLWhlaWdodDoyNHB4O21pbi13aWR0aDoyNHB4O3dpZHRoOjI0cHh9LmlzLWxhcmdlLm1vZGFsLWNsb3NlLC5pcy1sYXJnZS5kZWxldGV7aGVpZ2h0OjMycHg7bWF4LWhlaWdodDozMnB4O21heC13aWR0aDozMnB4O21pbi1oZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDt3aWR0aDozMnB4fS5jb250cm9sLmlzLWxvYWRpbmc6OmFmdGVyLC5zZWxlY3QuaXMtbG9hZGluZzo6YWZ0ZXIsLmxvYWRlciwuYnV0dG9uLmlzLWxvYWRpbmc6OmFmdGVye2FuaW1hdGlvbjpzcGluQXJvdW5kIDUwMG1zIGluZmluaXRlIGxpbmVhcjtib3JkZXI6MnB4IHNvbGlkICNkYmRiZGI7Ym9yZGVyLXJhZGl1czo5OTk5cHg7Ym9yZGVyLXJpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MWVtO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjFlbX0uaGVyby12aWRlbywuaXMtb3ZlcmxheSwubW9kYWwtYmFja2dyb3VuZCwubW9kYWwsLmltYWdlLmlzLXNxdWFyZSBpbWcsLmltYWdlLmlzLXNxdWFyZSAuaGFzLXJhdGlvLC5pbWFnZS5pcy0xYnkxIGltZywuaW1hZ2UuaXMtMWJ5MSAuaGFzLXJhdGlvLC5pbWFnZS5pcy01Ynk0IGltZywuaW1hZ2UuaXMtNWJ5NCAuaGFzLXJhdGlvLC5pbWFnZS5pcy00YnkzIGltZywuaW1hZ2UuaXMtNGJ5MyAuaGFzLXJhdGlvLC5pbWFnZS5pcy0zYnkyIGltZywuaW1hZ2UuaXMtM2J5MiAuaGFzLXJhdGlvLC5pbWFnZS5pcy01YnkzIGltZywuaW1hZ2UuaXMtNWJ5MyAuaGFzLXJhdGlvLC5pbWFnZS5pcy0xNmJ5OSBpbWcsLmltYWdlLmlzLTE2Ynk5IC5oYXMtcmF0aW8sLmltYWdlLmlzLTJieTEgaW1nLC5pbWFnZS5pcy0yYnkxIC5oYXMtcmF0aW8sLmltYWdlLmlzLTNieTEgaW1nLC5pbWFnZS5pcy0zYnkxIC5oYXMtcmF0aW8sLmltYWdlLmlzLTRieTUgaW1nLC5pbWFnZS5pcy00Ynk1IC5oYXMtcmF0aW8sLmltYWdlLmlzLTNieTQgaW1nLC5pbWFnZS5pcy0zYnk0IC5oYXMtcmF0aW8sLmltYWdlLmlzLTJieTMgaW1nLC5pbWFnZS5pcy0yYnkzIC5oYXMtcmF0aW8sLmltYWdlLmlzLTNieTUgaW1nLC5pbWFnZS5pcy0zYnk1IC5oYXMtcmF0aW8sLmltYWdlLmlzLTlieTE2IGltZywuaW1hZ2UuaXMtOWJ5MTYgLmhhcy1yYXRpbywuaW1hZ2UuaXMtMWJ5MiBpbWcsLmltYWdlLmlzLTFieTIgLmhhcy1yYXRpbywuaW1hZ2UuaXMtMWJ5MyBpbWcsLmltYWdlLmlzLTFieTMgLmhhcy1yYXRpb3tib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ubmF2YmFyLWJ1cmdlcnstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2NvbG9yOmN1cnJlbnRDb2xvcjtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxZW07bWFyZ2luOjA7cGFkZGluZzowfS8qISBtaW5pcmVzZXQuY3NzIHYwLjAuNiB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9qZ3RobXMvbWluaXJlc2V0LmNzcyAqL2h0bWwsYm9keSxwLG9sLHVsLGxpLGRsLGR0LGRkLGJsb2NrcXVvdGUsZmlndXJlLGZpZWxkc2V0LGxlZ2VuZCx0ZXh0YXJlYSxwcmUsaWZyYW1lLGhyLGgxLGgyLGgzLGg0LGg1LGg2e21hcmdpbjowO3BhZGRpbmc6MH1oMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6MTAwJTtmb250LXdlaWdodDpub3JtYWx9dWx7bGlzdC1zdHlsZTpub25lfWJ1dHRvbixpbnB1dCxzZWxlY3QsdGV4dGFyZWF7bWFyZ2luOjB9aHRtbHtib3gtc2l6aW5nOmJvcmRlci1ib3h9KiwqOjpiZWZvcmUsKjo6YWZ0ZXJ7Ym94LXNpemluZzppbmhlcml0fWltZyx2aWRlb3toZWlnaHQ6YXV0bzttYXgtd2lkdGg6MTAwJX1pZnJhbWV7Ym9yZGVyOjB9dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9dGQsdGh7cGFkZGluZzowfXRkOm5vdChbYWxpZ25dKSx0aDpub3QoW2FsaWduXSl7dGV4dC1hbGlnbjppbmhlcml0fWh0bWx7YmFja2dyb3VuZC1jb2xvcjojZmZmO2ZvbnQtc2l6ZToxNnB4Oy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO21pbi13aWR0aDozMDBweDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OnNjcm9sbDt0ZXh0LXJlbmRlcmluZzpvcHRpbWl6ZUxlZ2liaWxpdHk7dGV4dC1zaXplLWFkanVzdDoxMDAlfWFydGljbGUsYXNpZGUsZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLHNlY3Rpb257ZGlzcGxheTpibG9ja31ib2R5LGJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mYW1pbHk6QmxpbmtNYWNTeXN0ZW1Gb250LC1hcHBsZS1zeXN0ZW0sIlNlZ29lIFVJIiwiUm9ib3RvIiwiT3h5Z2VuIiwiVWJ1bnR1IiwiQ2FudGFyZWxsIiwiRmlyYSBTYW5zIiwiRHJvaWQgU2FucyIsIkhlbHZldGljYSBOZXVlIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWZ9Y29kZSxwcmV7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmF1dG87Zm9udC1mYW1pbHk6bW9ub3NwYWNlfWJvZHl7Y29sb3I6IzRhNGE0YTtmb250LXNpemU6MWVtO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjV9YXtjb2xvcjojNDg3NmZmO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lfWEgc3Ryb25ne2NvbG9yOmN1cnJlbnRDb2xvcn1hOmhvdmVye2NvbG9yOiMzNjM2MzZ9Y29kZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Y29sb3I6I2RhMTAzOTtmb250LXNpemU6Ljg3NWVtO2ZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nOi4yNWVtIC41ZW0gLjI1ZW19aHJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlcjpub25lO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjJweDttYXJnaW46MS41cmVtIDB9aW1ne2hlaWdodDphdXRvO21heC13aWR0aDoxMDAlfWlucHV0W3R5cGU9Y2hlY2tib3hdLGlucHV0W3R5cGU9cmFkaW9de3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXNtYWxse2ZvbnQtc2l6ZTouODc1ZW19c3Bhbntmb250LXN0eWxlOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1zdHJvbmd7Y29sb3I6IzM2MzYzNjtmb250LXdlaWdodDo3MDB9ZmllbGRzZXR7Ym9yZGVyOm5vbmV9cHJley13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNGE0YTRhO2ZvbnQtc2l6ZTouODc1ZW07b3ZlcmZsb3cteDphdXRvO3BhZGRpbmc6MS4yNXJlbSAxLjVyZW07d2hpdGUtc3BhY2U6cHJlO3dvcmQtd3JhcDpub3JtYWx9cHJlIGNvZGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOmN1cnJlbnRDb2xvcjtmb250LXNpemU6MWVtO3BhZGRpbmc6MH10YWJsZSB0ZCx0YWJsZSB0aHt2ZXJ0aWNhbC1hbGlnbjp0b3B9dGFibGUgdGQ6bm90KFthbGlnbl0pLHRhYmxlIHRoOm5vdChbYWxpZ25dKXt0ZXh0LWFsaWduOmluaGVyaXR9dGFibGUgdGh7Y29sb3I6IzM2MzYzNn1Aa2V5ZnJhbWVzIHNwaW5Bcm91bmR7ZnJvbXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRve3RyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKX19LmJveHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIC41ZW0gMWVtIC0wLjEyNWVtIHJnYmEoMTAsMTAsMTAsLjEpLDAgMHB4IDAgMXB4IHJnYmEoMTAsMTAsMTAsLjAyKTtjb2xvcjojNGE0YTRhO2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxLjI1cmVtfWEuYm94OmhvdmVyLGEuYm94OmZvY3Vze2JveC1zaGFkb3c6MCAuNWVtIDFlbSAtMC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4xKSwwIDAgMCAxcHggIzQ4NzZmZn1hLmJveDphY3RpdmV7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgxMCwxMCwxMCwuMiksMCAwIDAgMXB4ICM0ODc2ZmZ9LmJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNkYmRiZGI7Ym9yZGVyLXdpZHRoOjFweDtjb2xvcjojMzYzNjM2O2N1cnNvcjpwb2ludGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy1ib3R0b206Y2FsYyguNWVtIC0gMXB4KTtwYWRkaW5nLWxlZnQ6MWVtO3BhZGRpbmctcmlnaHQ6MWVtO3BhZGRpbmctdG9wOmNhbGMoLjVlbSAtIDFweCk7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5idXR0b24gc3Ryb25ne2NvbG9yOmluaGVyaXR9LmJ1dHRvbiAuaWNvbiwuYnV0dG9uIC5pY29uLmlzLXNtYWxsLC5idXR0b24gLmljb24uaXMtbWVkaXVtLC5idXR0b24gLmljb24uaXMtbGFyZ2V7aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5idXR0b24gLmljb246Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tbGVmdDpjYWxjKC0wLjVlbSAtIDFweCk7bWFyZ2luLXJpZ2h0Oi4yNWVtfS5idXR0b24gLmljb246bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDouMjVlbTttYXJnaW4tcmlnaHQ6Y2FsYygtMC41ZW0gLSAxcHgpfS5idXR0b24gLmljb246Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZHttYXJnaW4tbGVmdDpjYWxjKC0wLjVlbSAtIDFweCk7bWFyZ2luLXJpZ2h0OmNhbGMoLTAuNWVtIC0gMXB4KX0uYnV0dG9uOmhvdmVyLC5idXR0b24uaXMtaG92ZXJlZHtib3JkZXItY29sb3I6I2I1YjViNTtjb2xvcjojMzYzNjM2fS5idXR0b246Zm9jdXMsLmJ1dHRvbi5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjojNDg1ZmM3O2NvbG9yOiMzNjM2MzZ9LmJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSksLmJ1dHRvbi5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDcyLDExOCwyNTUsLjI1KX0uYnV0dG9uOmFjdGl2ZSwuYnV0dG9uLmlzLWFjdGl2ZXtib3JkZXItY29sb3I6IzRhNGE0YTtjb2xvcjojMzYzNjM2fS5idXR0b24uaXMtdGV4dHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzRhNGE0YTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5idXR0b24uaXMtdGV4dDpob3ZlciwuYnV0dG9uLmlzLXRleHQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXRleHQ6Zm9jdXMsLmJ1dHRvbi5pcy10ZXh0LmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiMzNjM2MzZ9LmJ1dHRvbi5pcy10ZXh0OmFjdGl2ZSwuYnV0dG9uLmlzLXRleHQuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtjb2xvcjojMzYzNjM2fS5idXR0b24uaXMtdGV4dFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtdGV4dHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtZ2hvc3R7YmFja2dyb3VuZDpub25lO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiM0ODc2ZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmJ1dHRvbi5pcy1naG9zdDpob3ZlciwuYnV0dG9uLmlzLWdob3N0LmlzLWhvdmVyZWR7Y29sb3I6IzQ4NzZmZjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5idXR0b24uaXMtd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy13aGl0ZTpob3ZlciwuYnV0dG9uLmlzLXdoaXRlLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy13aGl0ZTpmb2N1cywuYnV0dG9uLmlzLXdoaXRlLmlzLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLXdoaXRlOmZvY3VzOm5vdCg6YWN0aXZlKSwuYnV0dG9uLmlzLXdoaXRlLmlzLWZvY3VzZWQ6bm90KDphY3RpdmUpe2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDI1NSwyNTUsLjI1KX0uYnV0dG9uLmlzLXdoaXRlOmFjdGl2ZSwuYnV0dG9uLmlzLXdoaXRlLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLXdoaXRlW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy13aGl0ZS5pcy1pbnZlcnRlZDpob3ZlciwuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXdoaXRlLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzBhMGEwYSAjMGEwYTBhICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy13aGl0ZS5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtd2hpdGUuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtd2hpdGUuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy13aGl0ZS5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy13aGl0ZS5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjMGEwYTBhICMwYTBhMGEgIWltcG9ydGFudH0uYnV0dG9uLmlzLXdoaXRlLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy13aGl0ZS5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy13aGl0ZS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiMwYTBhMGE7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtd2hpdGUuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLXdoaXRlLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6IzBhMGEwYTtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzBhMGEwYX0uYnV0dG9uLmlzLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtYmxhY2s6aG92ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6IzA0MDQwNDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtYmxhY2s6Zm9jdXMsLmJ1dHRvbi5pcy1ibGFjay5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1ibGFjazpmb2N1czpub3QoOmFjdGl2ZSksLmJ1dHRvbi5pcy1ibGFjay5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4yNSl9LmJ1dHRvbi5pcy1ibGFjazphY3RpdmUsLmJ1dHRvbi5pcy1ibGFjay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1ibGFja1tkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZX0uYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMGEwYTBhfS5idXR0b24uaXMtYmxhY2suaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2YyZjJmMn0uYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy1ibGFjay5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtYmxhY2suaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojMGEwYTBhO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWJsYWNrLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWJsYWNrLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2JvcmRlci1jb2xvcjojMGEwYTBhO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICMwYTBhMGEgIzBhMGEwYSAhaW1wb3J0YW50fS5idXR0b24uaXMtYmxhY2suaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtYmxhY2suaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1ibGFjay5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtYmxhY2suaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojMGEwYTBhO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojMGEwYTBhfS5idXR0b24uaXMtYmxhY2suaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwYTBhMGF9LmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjMGEwYTBhICMwYTBhMGEgIWltcG9ydGFudH0uYnV0dG9uLmlzLWJsYWNrLmlzLWludmVydGVkLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1ibGFjay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1saWdodDpob3ZlciwuYnV0dG9uLmlzLWxpZ2h0LmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojYzdmOGNjO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtbGlnaHQ6Zm9jdXMsLmJ1dHRvbi5pcy1saWdodC5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtbGlnaHQ6Zm9jdXM6bm90KDphY3RpdmUpLC5idXR0b24uaXMtbGlnaHQuaXMtZm9jdXNlZDpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyMTAsMjQ5LDIxNCwuMjUpfS5idXR0b24uaXMtbGlnaHQ6YWN0aXZlLC5idXR0b24uaXMtbGlnaHQuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2JjZjZjMjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLWxpZ2h0W2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtjb2xvcjojZDJmOWQ2fS5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2QyZjlkNn0uYnV0dG9uLmlzLWxpZ2h0LmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwuNykgcmdiYSgwLDAsMCwuNykgIWltcG9ydGFudH0uYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2QyZjlkNjtjb2xvcjojZDJmOWQ2fS5idXR0b24uaXMtbGlnaHQuaXMtb3V0bGluZWQ6aG92ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtbGlnaHQuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1saWdodC5pcy1vdXRsaW5lZC5pcy1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6I2QyZjlkNjtib3JkZXItY29sb3I6I2QyZjlkNjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2QyZjlkNiAjZDJmOWQ2ICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1saWdodC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLC43KSByZ2JhKDAsMCwwLC43KSAhaW1wb3J0YW50fS5idXR0b24uaXMtbGlnaHQuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWxpZ2h0LmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2QyZjlkNjtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2QyZjlkNn0uYnV0dG9uLmlzLWxpZ2h0LmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWxpZ2h0LmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWxpZ2h0LmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtjb2xvcjojZDJmOWQ2fS5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2QyZjlkNiAjZDJmOWQ2ICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1saWdodC5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtbGlnaHQuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3gtc2hhZG93Om5vbmU7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1kYXJre2JhY2tncm91bmQtY29sb3I6IzQ1OTU1ODtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtZGFyazpob3ZlciwuYnV0dG9uLmlzLWRhcmsuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0MThjNTM7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhcms6Zm9jdXMsLmJ1dHRvbi5pcy1kYXJrLmlzLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhcms6Zm9jdXM6bm90KDphY3RpdmUpLC5idXR0b24uaXMtZGFyay5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDY5LDE0OSw4OCwuMjUpfS5idXR0b24uaXMtZGFyazphY3RpdmUsLmJ1dHRvbi5pcy1kYXJrLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZDg0NGU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhcmtbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZX0uYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiM0NTk1NTh9LmJ1dHRvbi5pcy1kYXJrLmlzLWludmVydGVkOmhvdmVyLC5idXR0b24uaXMtZGFyay5pcy1pbnZlcnRlZC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2YyZjJmMn0uYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojNDU5NTU4fS5idXR0b24uaXMtZGFyay5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtZGFyay5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiM0NTk1NTg7Y29sb3I6IzQ1OTU1OH0uYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWQ6aG92ZXIsLmJ1dHRvbi5pcy1kYXJrLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1kYXJrLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtZGFyay5pcy1vdXRsaW5lZC5pcy1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6IzQ1OTU1ODtib3JkZXItY29sb3I6IzQ1OTU1ODtjb2xvcjojZmZmfS5idXR0b24uaXMtZGFyay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICM0NTk1NTggIzQ1OTU1OCAhaW1wb3J0YW50fS5idXR0b24uaXMtZGFyay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy1kYXJrLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZmZmICNmZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhcmsuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojNDU5NTU4O2JveC1zaGFkb3c6bm9uZTtjb2xvcjojNDU5NTU4fS5idXR0b24uaXMtZGFyay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQ6aG92ZXIsLmJ1dHRvbi5pcy1kYXJrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1kYXJrLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtZGFyay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojNDU5NTU4fS5idXR0b24uaXMtZGFyay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy1kYXJrLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjNDU5NTU4ICM0NTk1NTggIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhcmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojZmZmO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojZmZmfS5idXR0b24uaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXByaW1hcnk6aG92ZXIsLmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojNGNiYTY3O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1wcmltYXJ5OmZvY3VzLC5idXR0b24uaXMtcHJpbWFyeS5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1wcmltYXJ5OmZvY3VzOm5vdCg6YWN0aXZlKSwuYnV0dG9uLmlzLXByaW1hcnkuaXMtZm9jdXNlZDpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg4NSwxOTAsMTExLC4yNSl9LmJ1dHRvbi5pcy1wcmltYXJ5OmFjdGl2ZSwuYnV0dG9uLmlzLXByaW1hcnkuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzQ1YjQ2MTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtcHJpbWFyeVtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzU1YmU2Zn0uYnV0dG9uLmlzLXByaW1hcnkuaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWludmVydGVkLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyfS5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM1NWJlNmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6IzU1YmU2Zjtjb2xvcjojNTViZTZmfS5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXByaW1hcnkuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1wcmltYXJ5LmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmO2JvcmRlci1jb2xvcjojNTViZTZmO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzU1YmU2ZiAjNTViZTZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtcHJpbWFyeS5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiM1NWJlNmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM1NWJlNmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2ZmZjtjb2xvcjojZmZmfS5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXByaW1hcnkuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiM1NWJlNmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICM1NWJlNmYgIzU1YmU2ZiAhaW1wb3J0YW50fS5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtcHJpbWFyeS5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1wcmltYXJ5LmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2YwZjlmMjtjb2xvcjojMmY3YTQxfS5idXR0b24uaXMtcHJpbWFyeS5pcy1saWdodDpob3ZlciwuYnV0dG9uLmlzLXByaW1hcnkuaXMtbGlnaHQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlN2Y2ZWI7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzJmN2E0MX0uYnV0dG9uLmlzLXByaW1hcnkuaXMtbGlnaHQ6YWN0aXZlLC5idXR0b24uaXMtcHJpbWFyeS5pcy1saWdodC5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZGVmMmUzO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMyZjdhNDF9LmJ1dHRvbi5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtbGluazpob3ZlciwuYnV0dG9uLmlzLWxpbmsuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiMzYjZjZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWxpbms6Zm9jdXMsLmJ1dHRvbi5pcy1saW5rLmlzLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWxpbms6Zm9jdXM6bm90KDphY3RpdmUpLC5idXR0b24uaXMtbGluay5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDcyLDExOCwyNTUsLjI1KX0uYnV0dG9uLmlzLWxpbms6YWN0aXZlLC5idXR0b24uaXMtbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMmY2M2ZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1saW5rW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmV9LmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojNDg3NmZmfS5idXR0b24uaXMtbGluay5pcy1pbnZlcnRlZDpob3ZlciwuYnV0dG9uLmlzLWxpbmsuaXMtaW52ZXJ0ZWQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjJ9LmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzQ4NzZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZmZmICNmZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWxpbmsuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojNDg3NmZmO2NvbG9yOiM0ODc2ZmZ9LmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtbGluay5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtbGluay5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWxpbmsuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Ym9yZGVyLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtb3V0bGluZWQuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjNDg3NmZmICM0ODc2ZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWxpbmsuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtbGluay5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saW5rLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6IzQ4NzZmZjtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzQ4NzZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtbGluay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtbGluay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWxpbmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzQ4NzZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtbGluay5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzQ4NzZmZiAjNDg3NmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1saW5rLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2ZmZjtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWxpbmsuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZWJmMGZmO2NvbG9yOiMwMDM3ZGJ9LmJ1dHRvbi5pcy1saW5rLmlzLWxpZ2h0OmhvdmVyLC5idXR0b24uaXMtbGluay5pcy1saWdodC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2RlZTZmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojMDAzN2RifS5idXR0b24uaXMtbGluay5pcy1saWdodDphY3RpdmUsLmJ1dHRvbi5pcy1saW5rLmlzLWxpZ2h0LmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkMWRkZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzAwMzdkYn0uYnV0dG9uLmlzLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtaW5mbzpob3ZlciwuYnV0dG9uLmlzLWluZm8uaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlM2YyZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1pbmZvOmZvY3VzLC5idXR0b24uaXMtaW5mby5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtaW5mbzpmb2N1czpub3QoOmFjdGl2ZSksLmJ1dHRvbi5pcy1pbmZvLmlzLWZvY3VzZWQ6bm90KDphY3RpdmUpe2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjQwLDI0OCwyNTUsLjI1KX0uYnV0dG9uLmlzLWluZm86YWN0aXZlLC5idXR0b24uaXMtaW5mby5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDdlY2ZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtaW5mb1tkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtaW5mby5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2NvbG9yOiNmMGY4ZmZ9LmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkOmhvdmVyLC5idXR0b24uaXMtaW5mby5pcy1pbnZlcnRlZC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmMGY4ZmZ9LmJ1dHRvbi5pcy1pbmZvLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwuNykgcmdiYSgwLDAsMCwuNykgIWltcG9ydGFudH0uYnV0dG9uLmlzLWluZm8uaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjojZjBmOGZmO2NvbG9yOiNmMGY4ZmZ9LmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtaW5mby5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtaW5mby5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLWluZm8uaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmY7Ym9yZGVyLWNvbG9yOiNmMGY4ZmY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2YwZjhmZiAjZjBmOGZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtaW5mby5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtaW5mby5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLWluZm8uaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsLjcpIHJnYmEoMCwwLDAsLjcpICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1pbmZvLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2YwZjhmZjtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2YwZjhmZn0uYnV0dG9uLmlzLWluZm8uaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC43KTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLWluZm8uaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQ6aG92ZXIsLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWhvdmVyZWQsLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtaW5mby5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1mb2N1c2Vke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6I2YwZjhmZn0uYnV0dG9uLmlzLWluZm8uaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtaG92ZXJlZDo6YWZ0ZXIsLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtaW5mby5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2YwZjhmZiAjZjBmOGZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVkW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ1dHRvbi5pcy1pbmZvLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Ym94LXNoYWRvdzpub25lO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtaW5mby5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmY7Y29sb3I6IzAwNGY5NH0uYnV0dG9uLmlzLWluZm8uaXMtbGlnaHQ6aG92ZXIsLmJ1dHRvbi5pcy1pbmZvLmlzLWxpZ2h0LmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZTNmMmZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMwMDRmOTR9LmJ1dHRvbi5pcy1pbmZvLmlzLWxpZ2h0OmFjdGl2ZSwuYnV0dG9uLmlzLWluZm8uaXMtbGlnaHQuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2Q3ZWNmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojMDA0Zjk0fS5idXR0b24uaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLXN1Y2Nlc3M6aG92ZXIsLmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojM2VjNDg3O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1zdWNjZXNzOmZvY3VzLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1mb2N1c2Vke2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1zdWNjZXNzOmZvY3VzOm5vdCg6YWN0aXZlKSwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtZm9jdXNlZDpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg3MiwxOTksMTQyLC4yNSl9LmJ1dHRvbi5pcy1zdWNjZXNzOmFjdGl2ZSwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzNhYmI4MTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtc3VjY2Vzc1tkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzQ4Yzc4ZX0uYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWludmVydGVkLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM0OGM3OGV9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2ZmZiAjZmZmICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6IzQ4Yzc4ZTtjb2xvcjojNDhjNzhlfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1zdWNjZXNzLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlO2JvcmRlci1jb2xvcjojNDhjNzhlO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgIzQ4Yzc4ZSAjNDhjNzhlICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmYgI2ZmZiAhaW1wb3J0YW50fS5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtc3VjY2Vzcy5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiM0OGM3OGU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM0OGM3OGV9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2ZmZjtjb2xvcjojZmZmfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiM0OGM3OGV9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICM0OGM3OGUgIzQ4Yzc4ZSAhaW1wb3J0YW50fS5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtc3VjY2Vzcy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1zdWNjZXNzLmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2VmZmFmNTtjb2xvcjojMjU3OTUzfS5idXR0b24uaXMtc3VjY2Vzcy5pcy1saWdodDpob3ZlciwuYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtbGlnaHQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlNmY3ZWY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzI1Nzk1M30uYnV0dG9uLmlzLXN1Y2Nlc3MuaXMtbGlnaHQ6YWN0aXZlLC5idXR0b24uaXMtc3VjY2Vzcy5pcy1saWdodC5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZGNmNGU5O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMyNTc5NTN9LmJ1dHRvbi5pcy13YXJuaW5ne2JhY2tncm91bmQtY29sb3I6I2ZmZDk3NTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLXdhcm5pbmc6aG92ZXIsLmJ1dHRvbi5pcy13YXJuaW5nLmlzLWhvdmVyZWR7YmFja2dyb3VuZC1jb2xvcjojZmZkNTY4O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtd2FybmluZzpmb2N1cywuYnV0dG9uLmlzLXdhcm5pbmcuaXMtZm9jdXNlZHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLXdhcm5pbmc6Zm9jdXM6bm90KDphY3RpdmUpLC5idXR0b24uaXMtd2FybmluZy5pcy1mb2N1c2VkOm5vdCg6YWN0aXZlKXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDI1NSwyMTcsMTE3LC4yNSl9LmJ1dHRvbi5pcy13YXJuaW5nOmFjdGl2ZSwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZmZDI1Yztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLXdhcm5pbmdbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZX0uYnV0dG9uLmlzLXdhcm5pbmcuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtjb2xvcjojZmZkOTc1fS5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZDpob3ZlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtaW52ZXJ0ZWQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojZmZkOTc1fS5idXR0b24uaXMtd2FybmluZy5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsLjcpIHJnYmEoMCwwLDAsLjcpICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2ZmZDk3NTtjb2xvcjojZmZkOTc1fS5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtb3V0bGluZWQuaXMtaG92ZXJlZCwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtb3V0bGluZWQ6Zm9jdXMsLmJ1dHRvbi5pcy13YXJuaW5nLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2JvcmRlci1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmQ5NzUgI2ZmZDk3NSAhaW1wb3J0YW50fS5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpmb2N1czo6YWZ0ZXIsLmJ1dHRvbi5pcy13YXJuaW5nLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLC43KSByZ2JhKDAsMCwwLC43KSAhaW1wb3J0YW50fS5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtd2FybmluZy5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmQ5NzU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmQ5NzV9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLWludmVydGVkLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmhvdmVyLC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpmb2N1cywuYnV0dG9uLmlzLXdhcm5pbmcuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtZm9jdXNlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2NvbG9yOiNmZmQ5NzV9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6aG92ZXI6OmFmdGVyLC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLXdhcm5pbmcuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1mb2N1c2VkOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKSByZ2JhKDAsMCwwLDApICNmZmQ5NzUgI2ZmZDk3NSAhaW1wb3J0YW50fS5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtd2FybmluZy5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjcpO2JveC1zaGFkb3c6bm9uZTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uYnV0dG9uLmlzLXdhcm5pbmcuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmZmOWViO2NvbG9yOiM5NDZiMDB9LmJ1dHRvbi5pcy13YXJuaW5nLmlzLWxpZ2h0OmhvdmVyLC5idXR0b24uaXMtd2FybmluZy5pcy1saWdodC5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2ZmZjZkZTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojOTQ2YjAwfS5idXR0b24uaXMtd2FybmluZy5pcy1saWdodDphY3RpdmUsLmJ1dHRvbi5pcy13YXJuaW5nLmlzLWxpZ2h0LmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYyZDE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6Izk0NmIwMH0uYnV0dG9uLmlzLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhbmdlcjpob3ZlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1ob3ZlcmVke2JhY2tncm91bmQtY29sb3I6I2YwM2E1Zjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5idXR0b24uaXMtZGFuZ2VyOmZvY3VzLC5idXR0b24uaXMtZGFuZ2VyLmlzLWZvY3VzZWR7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhbmdlcjpmb2N1czpub3QoOmFjdGl2ZSksLmJ1dHRvbi5pcy1kYW5nZXIuaXMtZm9jdXNlZDpub3QoOmFjdGl2ZSl7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyNDEsNzAsMTA0LC4yNSl9LmJ1dHRvbi5pcy1kYW5nZXI6YWN0aXZlLC5idXR0b24uaXMtZGFuZ2VyLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjJlNTU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhbmdlcltkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93Om5vbmV9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiNmMTQ2Njh9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQ6aG92ZXIsLmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjJ9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmMTQ2Njh9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZmZmICNmZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2YxNDY2OH0uYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4O2JvcmRlci1jb2xvcjojZjE0NjY4O2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtb3V0bGluZWQuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZjE0NjY4ICNmMTQ2NjggIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmhvdmVyOjphZnRlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWhvdmVyZWQ6OmFmdGVyLC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVkLmlzLWxvYWRpbmc6Zm9jdXM6OmFmdGVyLC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVkLmlzLWxvYWRpbmcuaXMtZm9jdXNlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjZmZmICNmZmYgIWltcG9ydGFudH0uYnV0dG9uLmlzLWRhbmdlci5pcy1vdXRsaW5lZFtkaXNhYmxlZF0sZmllbGRzZXRbZGlzYWJsZWRdIC5idXR0b24uaXMtZGFuZ2VyLmlzLW91dGxpbmVke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItY29sb3I6I2YxNDY2ODtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2YxNDY2OH0uYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6I2ZmZn0uYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZDpob3ZlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1ob3ZlcmVkLC5idXR0b24uaXMtZGFuZ2VyLmlzLWludmVydGVkLmlzLW91dGxpbmVkOmZvY3VzLC5idXR0b24uaXMtZGFuZ2VyLmlzLWludmVydGVkLmlzLW91dGxpbmVkLmlzLWZvY3VzZWR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiNmMTQ2Njh9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZzpob3Zlcjo6YWZ0ZXIsLmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWQuaXMtbG9hZGluZy5pcy1ob3ZlcmVkOjphZnRlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nOmZvY3VzOjphZnRlciwuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZC5pcy1sb2FkaW5nLmlzLWZvY3VzZWQ6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApIHJnYmEoMCwwLDAsMCkgI2YxNDY2OCAjZjE0NjY4ICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtaW52ZXJ0ZWQuaXMtb3V0bGluZWRbZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9uLmlzLWRhbmdlci5pcy1pbnZlcnRlZC5pcy1vdXRsaW5lZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmVlY2YwO2NvbG9yOiNjYzBmMzV9LmJ1dHRvbi5pcy1kYW5nZXIuaXMtbGlnaHQ6aG92ZXIsLmJ1dHRvbi5pcy1kYW5nZXIuaXMtbGlnaHQuaXMtaG92ZXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZGUwZTY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2NjMGYzNX0uYnV0dG9uLmlzLWRhbmdlci5pcy1saWdodDphY3RpdmUsLmJ1dHRvbi5pcy1kYW5nZXIuaXMtbGlnaHQuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZjZDRkYztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojY2MwZjM1fS5idXR0b24uaXMtc21hbGx7Zm9udC1zaXplOi43NXJlbX0uYnV0dG9uLmlzLXNtYWxsOm5vdCguaXMtcm91bmRlZCl7Ym9yZGVyLXJhZGl1czoycHh9LmJ1dHRvbi5pcy1ub3JtYWx7Zm9udC1zaXplOjFyZW19LmJ1dHRvbi5pcy1tZWRpdW17Zm9udC1zaXplOjEuMjVyZW19LmJ1dHRvbi5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5idXR0b25bZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2RiZGJkYjtib3gtc2hhZG93Om5vbmU7b3BhY2l0eTouNX0uYnV0dG9uLmlzLWZ1bGx3aWR0aHtkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJX0uYnV0dG9uLmlzLWxvYWRpbmd7Y29sb3I6cmdiYSgwLDAsMCwwKSAhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmV9LmJ1dHRvbi5pcy1sb2FkaW5nOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OmNhbGMoNTAlIC0gMWVtKi41KTt0b3A6Y2FsYyg1MCUgLSAxZW0qLjUpO3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnR9LmJ1dHRvbi5pcy1zdGF0aWN7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1jb2xvcjojZGJkYmRiO2NvbG9yOiM3YTdhN2E7Ym94LXNoYWRvdzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmV9LmJ1dHRvbi5pcy1yb3VuZGVke2JvcmRlci1yYWRpdXM6OTk5OXB4O3BhZGRpbmctbGVmdDpjYWxjKDFlbSArIC4yNWVtKTtwYWRkaW5nLXJpZ2h0OmNhbGMoMWVtICsgLjI1ZW0pfS5idXR0b25ze2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmJ1dHRvbnMgLmJ1dHRvbnttYXJnaW4tYm90dG9tOi41cmVtfS5idXR0b25zIC5idXR0b246bm90KDpsYXN0LWNoaWxkKTpub3QoLmlzLWZ1bGx3aWR0aCl7bWFyZ2luLXJpZ2h0Oi41cmVtfS5idXR0b25zOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTotMC41cmVtfS5idXR0b25zOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToxcmVtfS5idXR0b25zLmFyZS1zbWFsbCAuYnV0dG9uOm5vdCguaXMtbm9ybWFsKTpub3QoLmlzLW1lZGl1bSk6bm90KC5pcy1sYXJnZSl7Zm9udC1zaXplOi43NXJlbX0uYnV0dG9ucy5hcmUtc21hbGwgLmJ1dHRvbjpub3QoLmlzLW5vcm1hbCk6bm90KC5pcy1tZWRpdW0pOm5vdCguaXMtbGFyZ2UpOm5vdCguaXMtcm91bmRlZCl7Ym9yZGVyLXJhZGl1czoycHh9LmJ1dHRvbnMuYXJlLW1lZGl1bSAuYnV0dG9uOm5vdCguaXMtc21hbGwpOm5vdCguaXMtbm9ybWFsKTpub3QoLmlzLWxhcmdlKXtmb250LXNpemU6MS4yNXJlbX0uYnV0dG9ucy5hcmUtbGFyZ2UgLmJ1dHRvbjpub3QoLmlzLXNtYWxsKTpub3QoLmlzLW5vcm1hbCk6bm90KC5pcy1tZWRpdW0pe2ZvbnQtc2l6ZToxLjVyZW19LmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO21hcmdpbi1yaWdodDotMXB4fS5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbjpob3ZlciwuYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b24uaXMtaG92ZXJlZHt6LWluZGV4OjJ9LmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uOmZvY3VzLC5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbi5pcy1mb2N1c2VkLC5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbjphY3RpdmUsLmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uLmlzLWFjdGl2ZSwuYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b24uaXMtc2VsZWN0ZWR7ei1pbmRleDozfS5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbjpmb2N1czpob3ZlciwuYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b24uaXMtZm9jdXNlZDpob3ZlciwuYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b246YWN0aXZlOmhvdmVyLC5idXR0b25zLmhhcy1hZGRvbnMgLmJ1dHRvbi5pcy1hY3RpdmU6aG92ZXIsLmJ1dHRvbnMuaGFzLWFkZG9ucyAuYnV0dG9uLmlzLXNlbGVjdGVkOmhvdmVye3otaW5kZXg6NH0uYnV0dG9ucy5oYXMtYWRkb25zIC5idXR0b24uaXMtZXhwYW5kZWR7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX0uYnV0dG9ucy5pcy1jZW50ZXJlZHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5idXR0b25zLmlzLWNlbnRlcmVkOm5vdCguaGFzLWFkZG9ucykgLmJ1dHRvbjpub3QoLmlzLWZ1bGx3aWR0aCl7bWFyZ2luLWxlZnQ6LjI1cmVtO21hcmdpbi1yaWdodDouMjVyZW19LmJ1dHRvbnMuaXMtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5idXR0b25zLmlzLXJpZ2h0Om5vdCguaGFzLWFkZG9ucykgLmJ1dHRvbjpub3QoLmlzLWZ1bGx3aWR0aCl7bWFyZ2luLWxlZnQ6LjI1cmVtO21hcmdpbi1yaWdodDouMjVyZW19LmNvbnRhaW5lcntmbGV4LWdyb3c6MTttYXJnaW46MCBhdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG99LmNvbnRhaW5lci5pcy1mbHVpZHttYXgtd2lkdGg6bm9uZSAhaW1wb3J0YW50O3BhZGRpbmctbGVmdDozMnB4O3BhZGRpbmctcmlnaHQ6MzJweDt3aWR0aDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCl7LmNvbnRhaW5lcnttYXgtd2lkdGg6OTYwcHh9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmNvbnRhaW5lci5pcy13aWRlc2NyZWVuOm5vdCguaXMtbWF4LWRlc2t0b3Ape21heC13aWR0aDoxMTUycHh9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MDdweCl7LmNvbnRhaW5lci5pcy1mdWxsaGQ6bm90KC5pcy1tYXgtZGVza3RvcCk6bm90KC5pcy1tYXgtd2lkZXNjcmVlbil7bWF4LXdpZHRoOjEzNDRweH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29udGFpbmVyOm5vdCguaXMtbWF4LWRlc2t0b3Ape21heC13aWR0aDoxMTUycHh9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmNvbnRhaW5lcjpub3QoLmlzLW1heC1kZXNrdG9wKTpub3QoLmlzLW1heC13aWRlc2NyZWVuKXttYXgtd2lkdGg6MTM0NHB4fX0uY29udGVudCBsaStsaXttYXJnaW4tdG9wOi4yNWVtfS5jb250ZW50IHA6bm90KDpsYXN0LWNoaWxkKSwuY29udGVudCBkbDpub3QoOmxhc3QtY2hpbGQpLC5jb250ZW50IG9sOm5vdCg6bGFzdC1jaGlsZCksLmNvbnRlbnQgdWw6bm90KDpsYXN0LWNoaWxkKSwuY29udGVudCBibG9ja3F1b3RlOm5vdCg6bGFzdC1jaGlsZCksLmNvbnRlbnQgcHJlOm5vdCg6bGFzdC1jaGlsZCksLmNvbnRlbnQgdGFibGU6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjFlbX0uY29udGVudCBoMSwuY29udGVudCBoMiwuY29udGVudCBoMywuY29udGVudCBoNCwuY29udGVudCBoNSwuY29udGVudCBoNntjb2xvcjojMzYzNjM2O2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjEyNX0uY29udGVudCBoMXtmb250LXNpemU6MmVtO21hcmdpbi1ib3R0b206LjVlbX0uY29udGVudCBoMTpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tdG9wOjFlbX0uY29udGVudCBoMntmb250LXNpemU6MS43NWVtO21hcmdpbi1ib3R0b206LjU3MTRlbX0uY29udGVudCBoMjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tdG9wOjEuMTQyOGVtfS5jb250ZW50IGgze2ZvbnQtc2l6ZToxLjVlbTttYXJnaW4tYm90dG9tOi42NjY2ZW19LmNvbnRlbnQgaDM6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDoxLjMzMzNlbX0uY29udGVudCBoNHtmb250LXNpemU6MS4yNWVtO21hcmdpbi1ib3R0b206LjhlbX0uY29udGVudCBoNXtmb250LXNpemU6MS4xMjVlbTttYXJnaW4tYm90dG9tOi44ODg4ZW19LmNvbnRlbnQgaDZ7Zm9udC1zaXplOjFlbTttYXJnaW4tYm90dG9tOjFlbX0uY29udGVudCBibG9ja3F1b3Rle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtib3JkZXItbGVmdDo1cHggc29saWQgI2RiZGJkYjtwYWRkaW5nOjEuMjVlbSAxLjVlbX0uY29udGVudCBvbHtsaXN0LXN0eWxlLXBvc2l0aW9uOm91dHNpZGU7bWFyZ2luLWxlZnQ6MmVtO21hcmdpbi10b3A6MWVtfS5jb250ZW50IG9sOm5vdChbdHlwZV0pe2xpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsfS5jb250ZW50IG9sOm5vdChbdHlwZV0pLmlzLWxvd2VyLWFscGhhe2xpc3Qtc3R5bGUtdHlwZTpsb3dlci1hbHBoYX0uY29udGVudCBvbDpub3QoW3R5cGVdKS5pcy1sb3dlci1yb21hbntsaXN0LXN0eWxlLXR5cGU6bG93ZXItcm9tYW59LmNvbnRlbnQgb2w6bm90KFt0eXBlXSkuaXMtdXBwZXItYWxwaGF7bGlzdC1zdHlsZS10eXBlOnVwcGVyLWFscGhhfS5jb250ZW50IG9sOm5vdChbdHlwZV0pLmlzLXVwcGVyLXJvbWFue2xpc3Qtc3R5bGUtdHlwZTp1cHBlci1yb21hbn0uY29udGVudCB1bHtsaXN0LXN0eWxlOmRpc2Mgb3V0c2lkZTttYXJnaW4tbGVmdDoyZW07bWFyZ2luLXRvcDoxZW19LmNvbnRlbnQgdWwgdWx7bGlzdC1zdHlsZS10eXBlOmNpcmNsZTttYXJnaW4tdG9wOi41ZW19LmNvbnRlbnQgdWwgdWwgdWx7bGlzdC1zdHlsZS10eXBlOnNxdWFyZX0uY29udGVudCBkZHttYXJnaW4tbGVmdDoyZW19LmNvbnRlbnQgZmlndXJle21hcmdpbi1sZWZ0OjJlbTttYXJnaW4tcmlnaHQ6MmVtO3RleHQtYWxpZ246Y2VudGVyfS5jb250ZW50IGZpZ3VyZTpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tdG9wOjJlbX0uY29udGVudCBmaWd1cmU6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjJlbX0uY29udGVudCBmaWd1cmUgaW1ne2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jb250ZW50IGZpZ3VyZSBmaWdjYXB0aW9ue2ZvbnQtc3R5bGU6aXRhbGljfS5jb250ZW50IHByZXstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdmVyZmxvdy14OmF1dG87cGFkZGluZzoxLjI1ZW0gMS41ZW07d2hpdGUtc3BhY2U6cHJlO3dvcmQtd3JhcDpub3JtYWx9LmNvbnRlbnQgc3VwLC5jb250ZW50IHN1Yntmb250LXNpemU6NzUlfS5jb250ZW50IHRhYmxle3dpZHRoOjEwMCV9LmNvbnRlbnQgdGFibGUgdGQsLmNvbnRlbnQgdGFibGUgdGh7Ym9yZGVyOjFweCBzb2xpZCAjZGJkYmRiO2JvcmRlci13aWR0aDowIDAgMXB4O3BhZGRpbmc6LjVlbSAuNzVlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmNvbnRlbnQgdGFibGUgdGh7Y29sb3I6IzM2MzYzNn0uY29udGVudCB0YWJsZSB0aDpub3QoW2FsaWduXSl7dGV4dC1hbGlnbjppbmhlcml0fS5jb250ZW50IHRhYmxlIHRoZWFkIHRkLC5jb250ZW50IHRhYmxlIHRoZWFkIHRoe2JvcmRlci13aWR0aDowIDAgMnB4O2NvbG9yOiMzNjM2MzZ9LmNvbnRlbnQgdGFibGUgdGZvb3QgdGQsLmNvbnRlbnQgdGFibGUgdGZvb3QgdGh7Ym9yZGVyLXdpZHRoOjJweCAwIDA7Y29sb3I6IzM2MzYzNn0uY29udGVudCB0YWJsZSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkLC5jb250ZW50IHRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGh7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5jb250ZW50IC50YWJzIGxpK2xpe21hcmdpbi10b3A6MH0uY29udGVudC5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5jb250ZW50LmlzLW5vcm1hbHtmb250LXNpemU6MXJlbX0uY29udGVudC5pcy1tZWRpdW17Zm9udC1zaXplOjEuMjVyZW19LmNvbnRlbnQuaXMtbGFyZ2V7Zm9udC1zaXplOjEuNXJlbX0uaWNvbnthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDoxLjVyZW07d2lkdGg6MS41cmVtfS5pY29uLmlzLXNtYWxse2hlaWdodDoxcmVtO3dpZHRoOjFyZW19Lmljb24uaXMtbWVkaXVte2hlaWdodDoycmVtO3dpZHRoOjJyZW19Lmljb24uaXMtbGFyZ2V7aGVpZ2h0OjNyZW07d2lkdGg6M3JlbX0uaWNvbi10ZXh0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtd3JhcDp3cmFwO2xpbmUtaGVpZ2h0OjEuNXJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9Lmljb24tdGV4dCAuaWNvbntmbGV4LWdyb3c6MDtmbGV4LXNocmluazowfS5pY29uLXRleHQgLmljb246bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjI1ZW19Lmljb24tdGV4dCAuaWNvbjpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDouMjVlbX1kaXYuaWNvbi10ZXh0e2Rpc3BsYXk6ZmxleH0uaW1hZ2V7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uaW1hZ2UgaW1ne2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OmF1dG87d2lkdGg6MTAwJX0uaW1hZ2UgaW1nLmlzLXJvdW5kZWR7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LmltYWdlLmlzLWZ1bGx3aWR0aHt3aWR0aDoxMDAlfS5pbWFnZS5pcy1zcXVhcmUgaW1nLC5pbWFnZS5pcy1zcXVhcmUgLmhhcy1yYXRpbywuaW1hZ2UuaXMtMWJ5MSBpbWcsLmltYWdlLmlzLTFieTEgLmhhcy1yYXRpbywuaW1hZ2UuaXMtNWJ5NCBpbWcsLmltYWdlLmlzLTVieTQgLmhhcy1yYXRpbywuaW1hZ2UuaXMtNGJ5MyBpbWcsLmltYWdlLmlzLTRieTMgLmhhcy1yYXRpbywuaW1hZ2UuaXMtM2J5MiBpbWcsLmltYWdlLmlzLTNieTIgLmhhcy1yYXRpbywuaW1hZ2UuaXMtNWJ5MyBpbWcsLmltYWdlLmlzLTVieTMgLmhhcy1yYXRpbywuaW1hZ2UuaXMtMTZieTkgaW1nLC5pbWFnZS5pcy0xNmJ5OSAuaGFzLXJhdGlvLC5pbWFnZS5pcy0yYnkxIGltZywuaW1hZ2UuaXMtMmJ5MSAuaGFzLXJhdGlvLC5pbWFnZS5pcy0zYnkxIGltZywuaW1hZ2UuaXMtM2J5MSAuaGFzLXJhdGlvLC5pbWFnZS5pcy00Ynk1IGltZywuaW1hZ2UuaXMtNGJ5NSAuaGFzLXJhdGlvLC5pbWFnZS5pcy0zYnk0IGltZywuaW1hZ2UuaXMtM2J5NCAuaGFzLXJhdGlvLC5pbWFnZS5pcy0yYnkzIGltZywuaW1hZ2UuaXMtMmJ5MyAuaGFzLXJhdGlvLC5pbWFnZS5pcy0zYnk1IGltZywuaW1hZ2UuaXMtM2J5NSAuaGFzLXJhdGlvLC5pbWFnZS5pcy05YnkxNiBpbWcsLmltYWdlLmlzLTlieTE2IC5oYXMtcmF0aW8sLmltYWdlLmlzLTFieTIgaW1nLC5pbWFnZS5pcy0xYnkyIC5oYXMtcmF0aW8sLmltYWdlLmlzLTFieTMgaW1nLC5pbWFnZS5pcy0xYnkzIC5oYXMtcmF0aW97aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uaW1hZ2UuaXMtc3F1YXJlLC5pbWFnZS5pcy0xYnkxe3BhZGRpbmctdG9wOjEwMCV9LmltYWdlLmlzLTVieTR7cGFkZGluZy10b3A6ODAlfS5pbWFnZS5pcy00Ynkze3BhZGRpbmctdG9wOjc1JX0uaW1hZ2UuaXMtM2J5MntwYWRkaW5nLXRvcDo2Ni42NjY2JX0uaW1hZ2UuaXMtNWJ5M3twYWRkaW5nLXRvcDo2MCV9LmltYWdlLmlzLTE2Ynk5e3BhZGRpbmctdG9wOjU2LjI1JX0uaW1hZ2UuaXMtMmJ5MXtwYWRkaW5nLXRvcDo1MCV9LmltYWdlLmlzLTNieTF7cGFkZGluZy10b3A6MzMuMzMzMyV9LmltYWdlLmlzLTRieTV7cGFkZGluZy10b3A6MTI1JX0uaW1hZ2UuaXMtM2J5NHtwYWRkaW5nLXRvcDoxMzMuMzMzMyV9LmltYWdlLmlzLTJieTN7cGFkZGluZy10b3A6MTUwJX0uaW1hZ2UuaXMtM2J5NXtwYWRkaW5nLXRvcDoxNjYuNjY2NiV9LmltYWdlLmlzLTlieTE2e3BhZGRpbmctdG9wOjE3Ny43Nzc3JX0uaW1hZ2UuaXMtMWJ5MntwYWRkaW5nLXRvcDoyMDAlfS5pbWFnZS5pcy0xYnkze3BhZGRpbmctdG9wOjMwMCV9LmltYWdlLmlzLTE2eDE2e2hlaWdodDoxNnB4O3dpZHRoOjE2cHh9LmltYWdlLmlzLTI0eDI0e2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9LmltYWdlLmlzLTMyeDMye2hlaWdodDozMnB4O3dpZHRoOjMycHh9LmltYWdlLmlzLTQ4eDQ4e2hlaWdodDo0OHB4O3dpZHRoOjQ4cHh9LmltYWdlLmlzLTY0eDY0e2hlaWdodDo2NHB4O3dpZHRoOjY0cHh9LmltYWdlLmlzLTk2eDk2e2hlaWdodDo5NnB4O3dpZHRoOjk2cHh9LmltYWdlLmlzLTEyOHgxMjh7aGVpZ2h0OjEyOHB4O3dpZHRoOjEyOHB4fS5ub3RpZmljYXRpb257YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1yYWRpdXM6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MS4yNXJlbSAyLjVyZW0gMS4yNXJlbSAxLjVyZW19Lm5vdGlmaWNhdGlvbiBhOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duLWl0ZW0pe2NvbG9yOmN1cnJlbnRDb2xvcjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5ub3RpZmljYXRpb24gc3Ryb25ne2NvbG9yOmN1cnJlbnRDb2xvcn0ubm90aWZpY2F0aW9uIGNvZGUsLm5vdGlmaWNhdGlvbiBwcmV7YmFja2dyb3VuZDojZmZmfS5ub3RpZmljYXRpb24gcHJlIGNvZGV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApfS5ub3RpZmljYXRpb24+LmRlbGV0ZXtyaWdodDouNXJlbTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjVyZW19Lm5vdGlmaWNhdGlvbiAudGl0bGUsLm5vdGlmaWNhdGlvbiAuc3VidGl0bGUsLm5vdGlmaWNhdGlvbiAuY29udGVudHtjb2xvcjpjdXJyZW50Q29sb3J9Lm5vdGlmaWNhdGlvbi5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0ubm90aWZpY2F0aW9uLmlzLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtjb2xvcjojZmZmfS5ub3RpZmljYXRpb24uaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5ub3RpZmljYXRpb24uaXMtZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTg7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLmlzLXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmO2NvbG9yOiNmZmZ9Lm5vdGlmaWNhdGlvbi5pcy1wcmltYXJ5LmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2YwZjlmMjtjb2xvcjojMmY3YTQxfS5ub3RpZmljYXRpb24uaXMtbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLmlzLWxpbmsuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZWJmMGZmO2NvbG9yOiMwMDM3ZGJ9Lm5vdGlmaWNhdGlvbi5pcy1pbmZve2JhY2tncm91bmQtY29sb3I6I2YwZjhmZjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubm90aWZpY2F0aW9uLmlzLWluZm8uaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOiMwMDRmOTR9Lm5vdGlmaWNhdGlvbi5pcy1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZTtjb2xvcjojZmZmfS5ub3RpZmljYXRpb24uaXMtc3VjY2Vzcy5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNlZmZhZjU7Y29sb3I6IzI1Nzk1M30ubm90aWZpY2F0aW9uLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5ub3RpZmljYXRpb24uaXMtd2FybmluZy5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY5ZWI7Y29sb3I6Izk0NmIwMH0ubm90aWZpY2F0aW9uLmlzLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLmlzLWRhbmdlci5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmZWVjZjA7Y29sb3I6I2NjMGYzNX0ucHJvZ3Jlc3N7LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo5OTk5cHg7ZGlzcGxheTpibG9jaztoZWlnaHQ6MXJlbTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3dpZHRoOjEwMCV9LnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNlZGVkZWR9LnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6IzRhNGE0YX0ucHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6IzRhNGE0YX0ucHJvZ3Jlc3M6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzRhNGE0YTtib3JkZXI6bm9uZX0ucHJvZ3Jlc3MuaXMtd2hpdGU6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5wcm9ncmVzcy5pcy13aGl0ZTo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5wcm9ncmVzcy5pcy13aGl0ZTo6LW1zLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5wcm9ncmVzcy5pcy13aGl0ZTppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBoc2woMCwgMCUsIDEwMCUpIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLWJsYWNrOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6IzBhMGEwYX0ucHJvZ3Jlc3MuaXMtYmxhY2s6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6IzBhMGEwYX0ucHJvZ3Jlc3MuaXMtYmxhY2s6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzBhMGEwYX0ucHJvZ3Jlc3MuaXMtYmxhY2s6aW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgaHNsKDAsIDAlLCA0JSkgMzAlLCBoc2woMCwgMCUsIDkzJSkgMzAlKX0ucHJvZ3Jlc3MuaXMtbGlnaHQ6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2fS5wcm9ncmVzcy5pcy1saWdodDo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2fS5wcm9ncmVzcy5pcy1saWdodDo6LW1zLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2fS5wcm9ncmVzcy5pcy1saWdodDppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZDJmOWQ2IDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLWRhcms6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4fS5wcm9ncmVzcy5pcy1kYXJrOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTh9LnByb2dyZXNzLmlzLWRhcms6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzQ1OTU1OH0ucHJvZ3Jlc3MuaXMtZGFyazppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNDU5NTU4IDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLXByaW1hcnk6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmfS5wcm9ncmVzcy5pcy1wcmltYXJ5OjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmZ9LnByb2dyZXNzLmlzLXByaW1hcnk6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zn0ucHJvZ3Jlc3MuaXMtcHJpbWFyeTppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNTViZTZmIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLWxpbms6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmfS5wcm9ncmVzcy5pcy1saW5rOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmZ9LnByb2dyZXNzLmlzLWxpbms6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZn0ucHJvZ3Jlc3MuaXMtbGluazppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNDg3NmZmIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLWluZm86Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmfS5wcm9ncmVzcy5pcy1pbmZvOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmZ9LnByb2dyZXNzLmlzLWluZm86Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6I2YwZjhmZn0ucHJvZ3Jlc3MuaXMtaW5mbzppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZjBmOGZmIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzLmlzLXN1Y2Nlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlfS5wcm9ncmVzcy5pcy1zdWNjZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGV9LnByb2dyZXNzLmlzLXN1Y2Nlc3M6Oi1tcy1maWxse2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZX0ucHJvZ3Jlc3MuaXMtc3VjY2VzczppbmRldGVybWluYXRle2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBoc2woMTUzLCA1MyUsIDUzJSkgMzAlLCBoc2woMCwgMCUsIDkzJSkgMzAlKX0ucHJvZ3Jlc3MuaXMtd2FybmluZzo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzV9LnByb2dyZXNzLmlzLXdhcm5pbmc6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZDk3NX0ucHJvZ3Jlc3MuaXMtd2FybmluZzo6LW1zLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1fS5wcm9ncmVzcy5pcy13YXJuaW5nOmluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmZmQ5NzUgMzAlLCBoc2woMCwgMCUsIDkzJSkgMzAlKX0ucHJvZ3Jlc3MuaXMtZGFuZ2VyOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6I2YxNDY2OH0ucHJvZ3Jlc3MuaXMtZGFuZ2VyOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njh9LnByb2dyZXNzLmlzLWRhbmdlcjo6LW1zLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4fS5wcm9ncmVzcy5pcy1kYW5nZXI6aW5kZXRlcm1pbmF0ZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwgaHNsKDM0OCwgODYlLCA2MSUpIDMwJSwgaHNsKDAsIDAlLCA5MyUpIDMwJSl9LnByb2dyZXNzOmluZGV0ZXJtaW5hdGV7YW5pbWF0aW9uLWR1cmF0aW9uOjEuNXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tbmFtZTptb3ZlSW5kZXRlcm1pbmF0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjtiYWNrZ3JvdW5kLWNvbG9yOiNlZGVkZWQ7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGhzbCgwLCAwJSwgMjklKSAzMCUsIGhzbCgwLCAwJSwgOTMlKSAzMCUpO2JhY2tncm91bmQtcG9zaXRpb246dG9wIGxlZnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxNTAlIDE1MCV9LnByb2dyZXNzOmluZGV0ZXJtaW5hdGU6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0ucHJvZ3Jlc3M6aW5kZXRlcm1pbmF0ZTo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfS5wcm9ncmVzczppbmRldGVybWluYXRlOjotbXMtZmlsbHthbmltYXRpb24tbmFtZTpub25lfS5wcm9ncmVzcy5pcy1zbWFsbHtoZWlnaHQ6Ljc1cmVtfS5wcm9ncmVzcy5pcy1tZWRpdW17aGVpZ2h0OjEuMjVyZW19LnByb2dyZXNzLmlzLWxhcmdle2hlaWdodDoxLjVyZW19QGtleWZyYW1lcyBtb3ZlSW5kZXRlcm1pbmF0ZXtmcm9te2JhY2tncm91bmQtcG9zaXRpb246MjAwJSAwfXRve2JhY2tncm91bmQtcG9zaXRpb246LTIwMCUgMH19LnRhYmxle2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMzYzNjM2fS50YWJsZSB0ZCwudGFibGUgdGh7Ym9yZGVyOjFweCBzb2xpZCAjZGJkYmRiO2JvcmRlci13aWR0aDowIDAgMXB4O3BhZGRpbmc6LjVlbSAuNzVlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnRhYmxlIHRkLmlzLXdoaXRlLC50YWJsZSB0aC5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0udGFibGUgdGQuaXMtYmxhY2ssLnRhYmxlIHRoLmlzLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtib3JkZXItY29sb3I6IzBhMGEwYTtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1saWdodCwudGFibGUgdGguaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2O2JvcmRlci1jb2xvcjojZDJmOWQ2O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS50YWJsZSB0ZC5pcy1kYXJrLC50YWJsZSB0aC5pcy1kYXJre2JhY2tncm91bmQtY29sb3I6IzQ1OTU1ODtib3JkZXItY29sb3I6IzQ1OTU1ODtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1wcmltYXJ5LC50YWJsZSB0aC5pcy1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zjtib3JkZXItY29sb3I6IzU1YmU2Zjtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1saW5rLC50YWJsZSB0aC5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtib3JkZXItY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1pbmZvLC50YWJsZSB0aC5pcy1pbmZve2JhY2tncm91bmQtY29sb3I6I2YwZjhmZjtib3JkZXItY29sb3I6I2YwZjhmZjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0udGFibGUgdGQuaXMtc3VjY2VzcywudGFibGUgdGguaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGU7Ym9yZGVyLWNvbG9yOiM0OGM3OGU7Y29sb3I6I2ZmZn0udGFibGUgdGQuaXMtd2FybmluZywudGFibGUgdGguaXMtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzU7Ym9yZGVyLWNvbG9yOiNmZmQ5NzU7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LnRhYmxlIHRkLmlzLWRhbmdlciwudGFibGUgdGguaXMtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtib3JkZXItY29sb3I6I2YxNDY2ODtjb2xvcjojZmZmfS50YWJsZSB0ZC5pcy1uYXJyb3csLnRhYmxlIHRoLmlzLW5hcnJvd3t3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MSV9LnRhYmxlIHRkLmlzLXNlbGVjdGVkLC50YWJsZSB0aC5pcy1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Y29sb3I6I2ZmZn0udGFibGUgdGQuaXMtc2VsZWN0ZWQgYSwudGFibGUgdGQuaXMtc2VsZWN0ZWQgc3Ryb25nLC50YWJsZSB0aC5pcy1zZWxlY3RlZCBhLC50YWJsZSB0aC5pcy1zZWxlY3RlZCBzdHJvbmd7Y29sb3I6Y3VycmVudENvbG9yfS50YWJsZSB0ZC5pcy12Y2VudGVyZWQsLnRhYmxlIHRoLmlzLXZjZW50ZXJlZHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnRhYmxlIHRoe2NvbG9yOiMzNjM2MzZ9LnRhYmxlIHRoOm5vdChbYWxpZ25dKXt0ZXh0LWFsaWduOmluaGVyaXR9LnRhYmxlIHRyLmlzLXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zjtjb2xvcjojZmZmfS50YWJsZSB0ci5pcy1zZWxlY3RlZCBhLC50YWJsZSB0ci5pcy1zZWxlY3RlZCBzdHJvbmd7Y29sb3I6Y3VycmVudENvbG9yfS50YWJsZSB0ci5pcy1zZWxlY3RlZCB0ZCwudGFibGUgdHIuaXMtc2VsZWN0ZWQgdGh7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6Y3VycmVudENvbG9yfS50YWJsZSB0aGVhZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9LnRhYmxlIHRoZWFkIHRkLC50YWJsZSB0aGVhZCB0aHtib3JkZXItd2lkdGg6MCAwIDJweDtjb2xvcjojMzYzNjM2fS50YWJsZSB0Zm9vdHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9LnRhYmxlIHRmb290IHRkLC50YWJsZSB0Zm9vdCB0aHtib3JkZXItd2lkdGg6MnB4IDAgMDtjb2xvcjojMzYzNjM2fS50YWJsZSB0Ym9keXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9LnRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQsLnRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGh7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS50YWJsZS5pcy1ib3JkZXJlZCB0ZCwudGFibGUuaXMtYm9yZGVyZWQgdGh7Ym9yZGVyLXdpZHRoOjFweH0udGFibGUuaXMtYm9yZGVyZWQgdHI6bGFzdC1jaGlsZCB0ZCwudGFibGUuaXMtYm9yZGVyZWQgdHI6bGFzdC1jaGlsZCB0aHtib3JkZXItYm90dG9tLXdpZHRoOjFweH0udGFibGUuaXMtZnVsbHdpZHRoe3dpZHRoOjEwMCV9LnRhYmxlLmlzLWhvdmVyYWJsZSB0Ym9keSB0cjpub3QoLmlzLXNlbGVjdGVkKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9LnRhYmxlLmlzLWhvdmVyYWJsZS5pcy1zdHJpcGVkIHRib2R5IHRyOm5vdCguaXMtc2VsZWN0ZWQpOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYX0udGFibGUuaXMtaG92ZXJhYmxlLmlzLXN0cmlwZWQgdGJvZHkgdHI6bm90KC5pcy1zZWxlY3RlZCk6aG92ZXI6bnRoLWNoaWxkKGV2ZW4pe2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNX0udGFibGUuaXMtbmFycm93IHRkLC50YWJsZS5pcy1uYXJyb3cgdGh7cGFkZGluZzouMjVlbSAuNWVtfS50YWJsZS5pcy1zdHJpcGVkIHRib2R5IHRyOm5vdCguaXMtc2VsZWN0ZWQpOm50aC1jaGlsZChldmVuKXtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9LnRhYmxlLWNvbnRhaW5lcnstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdmVyZmxvdzphdXRvO292ZXJmbG93LXk6aGlkZGVuO21heC13aWR0aDoxMDAlfS50YWdze2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LnRhZ3MgLnRhZ3ttYXJnaW4tYm90dG9tOi41cmVtfS50YWdzIC50YWc6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjVyZW19LnRhZ3M6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOi0wLjVyZW19LnRhZ3M6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjFyZW19LnRhZ3MuYXJlLW1lZGl1bSAudGFnOm5vdCguaXMtbm9ybWFsKTpub3QoLmlzLWxhcmdlKXtmb250LXNpemU6MXJlbX0udGFncy5hcmUtbGFyZ2UgLnRhZzpub3QoLmlzLW5vcm1hbCk6bm90KC5pcy1tZWRpdW0pe2ZvbnQtc2l6ZToxLjI1cmVtfS50YWdzLmlzLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnRhZ3MuaXMtY2VudGVyZWQgLnRhZ3ttYXJnaW4tcmlnaHQ6LjI1cmVtO21hcmdpbi1sZWZ0Oi4yNXJlbX0udGFncy5pcy1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnRhZ3MuaXMtcmlnaHQgLnRhZzpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDouNXJlbX0udGFncy5pcy1yaWdodCAudGFnOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjB9LnRhZ3MuaGFzLWFkZG9ucyAudGFne21hcmdpbi1yaWdodDowfS50YWdzLmhhcy1hZGRvbnMgLnRhZzpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LnRhZ3MuaGFzLWFkZG9ucyAudGFnOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS50YWc6bm90KGJvZHkpe2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6IzRhNGE0YTtkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtc2l6ZTouNzVyZW07aGVpZ2h0OjJlbTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xpbmUtaGVpZ2h0OjEuNTtwYWRkaW5nLWxlZnQ6Ljc1ZW07cGFkZGluZy1yaWdodDouNzVlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LnRhZzpub3QoYm9keSkgLmRlbGV0ZXttYXJnaW4tbGVmdDouMjVyZW07bWFyZ2luLXJpZ2h0Oi0wLjM3NXJlbX0udGFnOm5vdChib2R5KS5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0udGFnOm5vdChib2R5KS5pcy1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Y29sb3I6I2ZmZn0udGFnOm5vdChib2R5KS5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LnRhZzpub3QoYm9keSkuaXMtZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTg7Y29sb3I6I2ZmZn0udGFnOm5vdChib2R5KS5pcy1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zjtjb2xvcjojZmZmfS50YWc6bm90KGJvZHkpLmlzLXByaW1hcnkuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjBmOWYyO2NvbG9yOiMyZjdhNDF9LnRhZzpub3QoYm9keSkuaXMtbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0udGFnOm5vdChib2R5KS5pcy1saW5rLmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2ViZjBmZjtjb2xvcjojMDAzN2RifS50YWc6bm90KGJvZHkpLmlzLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS50YWc6bm90KGJvZHkpLmlzLWluZm8uaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOiMwMDRmOTR9LnRhZzpub3QoYm9keSkuaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGU7Y29sb3I6I2ZmZn0udGFnOm5vdChib2R5KS5pcy1zdWNjZXNzLmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2VmZmFmNTtjb2xvcjojMjU3OTUzfS50YWc6bm90KGJvZHkpLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS50YWc6bm90KGJvZHkpLmlzLXdhcm5pbmcuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmZmOWViO2NvbG9yOiM5NDZiMDB9LnRhZzpub3QoYm9keSkuaXMtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtjb2xvcjojZmZmfS50YWc6bm90KGJvZHkpLmlzLWRhbmdlci5pcy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmZWVjZjA7Y29sb3I6I2NjMGYzNX0udGFnOm5vdChib2R5KS5pcy1ub3JtYWx7Zm9udC1zaXplOi43NXJlbX0udGFnOm5vdChib2R5KS5pcy1tZWRpdW17Zm9udC1zaXplOjFyZW19LnRhZzpub3QoYm9keSkuaXMtbGFyZ2V7Zm9udC1zaXplOjEuMjVyZW19LnRhZzpub3QoYm9keSkgLmljb246Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tbGVmdDotMC4zNzVlbTttYXJnaW4tcmlnaHQ6LjE4NzVlbX0udGFnOm5vdChib2R5KSAuaWNvbjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi4xODc1ZW07bWFyZ2luLXJpZ2h0Oi0wLjM3NWVtfS50YWc6bm90KGJvZHkpIC5pY29uOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGR7bWFyZ2luLWxlZnQ6LTAuMzc1ZW07bWFyZ2luLXJpZ2h0Oi0wLjM3NWVtfS50YWc6bm90KGJvZHkpLmlzLWRlbGV0ZXttYXJnaW4tbGVmdDoxcHg7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjJlbX0udGFnOm5vdChib2R5KS5pcy1kZWxldGU6OmJlZm9yZSwudGFnOm5vdChib2R5KS5pcy1kZWxldGU6OmFmdGVye2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztsZWZ0OjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXJ9LnRhZzpub3QoYm9keSkuaXMtZGVsZXRlOjpiZWZvcmV7aGVpZ2h0OjFweDt3aWR0aDo1MCV9LnRhZzpub3QoYm9keSkuaXMtZGVsZXRlOjphZnRlcntoZWlnaHQ6NTAlO3dpZHRoOjFweH0udGFnOm5vdChib2R5KS5pcy1kZWxldGU6aG92ZXIsLnRhZzpub3QoYm9keSkuaXMtZGVsZXRlOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2U4ZThlOH0udGFnOm5vdChib2R5KS5pcy1kZWxldGU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2RiZGJkYn0udGFnOm5vdChib2R5KS5pcy1yb3VuZGVke2JvcmRlci1yYWRpdXM6OTk5OXB4fWEudGFnOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnRpdGxlLC5zdWJ0aXRsZXt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LnRpdGxlIGVtLC50aXRsZSBzcGFuLC5zdWJ0aXRsZSBlbSwuc3VidGl0bGUgc3Bhbntmb250LXdlaWdodDppbmhlcml0fS50aXRsZSBzdWIsLnN1YnRpdGxlIHN1Yntmb250LXNpemU6Ljc1ZW19LnRpdGxlIHN1cCwuc3VidGl0bGUgc3Vwe2ZvbnQtc2l6ZTouNzVlbX0udGl0bGUgLnRhZywuc3VidGl0bGUgLnRhZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LnRpdGxle2NvbG9yOiMzNjM2MzY7Zm9udC1zaXplOjJyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuMTI1fS50aXRsZSBzdHJvbmd7Y29sb3I6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0fS50aXRsZTpub3QoLmlzLXNwYWNlZCkrLnN1YnRpdGxle21hcmdpbi10b3A6LTEuMjVyZW19LnRpdGxlLmlzLTF7Zm9udC1zaXplOjNyZW19LnRpdGxlLmlzLTJ7Zm9udC1zaXplOjIuNXJlbX0udGl0bGUuaXMtM3tmb250LXNpemU6MnJlbX0udGl0bGUuaXMtNHtmb250LXNpemU6MS41cmVtfS50aXRsZS5pcy01e2ZvbnQtc2l6ZToxLjI1cmVtfS50aXRsZS5pcy02e2ZvbnQtc2l6ZToxcmVtfS50aXRsZS5pcy03e2ZvbnQtc2l6ZTouNzVyZW19LnN1YnRpdGxle2NvbG9yOiM0YTRhNGE7Zm9udC1zaXplOjEuMjVyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMjV9LnN1YnRpdGxlIHN0cm9uZ3tjb2xvcjojMzYzNjM2O2ZvbnQtd2VpZ2h0OjYwMH0uc3VidGl0bGU6bm90KC5pcy1zcGFjZWQpKy50aXRsZXttYXJnaW4tdG9wOi0xLjI1cmVtfS5zdWJ0aXRsZS5pcy0xe2ZvbnQtc2l6ZTozcmVtfS5zdWJ0aXRsZS5pcy0ye2ZvbnQtc2l6ZToyLjVyZW19LnN1YnRpdGxlLmlzLTN7Zm9udC1zaXplOjJyZW19LnN1YnRpdGxlLmlzLTR7Zm9udC1zaXplOjEuNXJlbX0uc3VidGl0bGUuaXMtNXtmb250LXNpemU6MS4yNXJlbX0uc3VidGl0bGUuaXMtNntmb250LXNpemU6MXJlbX0uc3VidGl0bGUuaXMtN3tmb250LXNpemU6Ljc1cmVtfS5oZWFkaW5ne2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6MXB4O21hcmdpbi1ib3R0b206NXB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ubnVtYmVye2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo5OTk5cHg7ZGlzcGxheTppbmxpbmUtZmxleDtmb250LXNpemU6MS4yNXJlbTtoZWlnaHQ6MmVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXJpZ2h0OjEuNXJlbTttaW4td2lkdGg6Mi41ZW07cGFkZGluZzouMjVyZW0gLjVyZW07dGV4dC1hbGlnbjpjZW50ZXI7dmVydGljYWwtYWxpZ246dG9wfS5zZWxlY3Qgc2VsZWN0LC50ZXh0YXJlYSwuaW5wdXR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZGJkYmRiO2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOiMzNjM2MzZ9LnNlbGVjdCBzZWxlY3Q6Oi1tb3otcGxhY2Vob2xkZXIsLnRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyLC5pbnB1dDo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojNzU3NTc1fS5zZWxlY3Qgc2VsZWN0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLC50ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwuaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6Izc1NzU3NX0uc2VsZWN0IHNlbGVjdDotbW96LXBsYWNlaG9sZGVyLC50ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyLC5pbnB1dDotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM3NTc1NzV9LnNlbGVjdCBzZWxlY3Q6LW1zLWlucHV0LXBsYWNlaG9sZGVyLC50ZXh0YXJlYTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsLmlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojNzU3NTc1fS5zZWxlY3Qgc2VsZWN0OmhvdmVyLC50ZXh0YXJlYTpob3ZlciwuaW5wdXQ6aG92ZXIsLnNlbGVjdCBzZWxlY3QuaXMtaG92ZXJlZCwuaXMtaG92ZXJlZC50ZXh0YXJlYSwuaXMtaG92ZXJlZC5pbnB1dHtib3JkZXItY29sb3I6I2I1YjViNX0uc2VsZWN0IHNlbGVjdDpmb2N1cywudGV4dGFyZWE6Zm9jdXMsLmlucHV0OmZvY3VzLC5zZWxlY3Qgc2VsZWN0LmlzLWZvY3VzZWQsLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWZvY3VzZWQuaW5wdXQsLnNlbGVjdCBzZWxlY3Q6YWN0aXZlLC50ZXh0YXJlYTphY3RpdmUsLmlucHV0OmFjdGl2ZSwuc2VsZWN0IHNlbGVjdC5pcy1hY3RpdmUsLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtYWN0aXZlLmlucHV0e2JvcmRlci1jb2xvcjojNDg3NmZmO2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoNzIsMTE4LDI1NSwuMjUpfS5zZWxlY3Qgc2VsZWN0W2Rpc2FibGVkXSxbZGlzYWJsZWRdLnRleHRhcmVhLFtkaXNhYmxlZF0uaW5wdXQsZmllbGRzZXRbZGlzYWJsZWRdIC5zZWxlY3Qgc2VsZWN0LC5zZWxlY3QgZmllbGRzZXRbZGlzYWJsZWRdIHNlbGVjdCxmaWVsZHNldFtkaXNhYmxlZF0gLnRleHRhcmVhLGZpZWxkc2V0W2Rpc2FibGVkXSAuaW5wdXR7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1jb2xvcjojZjVmNWY1O2JveC1zaGFkb3c6bm9uZTtjb2xvcjojN2E3YTdhfS5zZWxlY3Qgc2VsZWN0W2Rpc2FibGVkXTo6LW1vei1wbGFjZWhvbGRlcixbZGlzYWJsZWRdLnRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyLFtkaXNhYmxlZF0uaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5zZWxlY3Qgc2VsZWN0OjotbW96LXBsYWNlaG9sZGVyLC5zZWxlY3QgZmllbGRzZXRbZGlzYWJsZWRdIHNlbGVjdDo6LW1vei1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLnRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6IzcwNzA3MH0uc2VsZWN0IHNlbGVjdFtkaXNhYmxlZF06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsW2Rpc2FibGVkXS50ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixbZGlzYWJsZWRdLmlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuc2VsZWN0IHNlbGVjdDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwuc2VsZWN0IGZpZWxkc2V0W2Rpc2FibGVkXSBzZWxlY3Q6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC50ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLmlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiM3MDcwNzB9LnNlbGVjdCBzZWxlY3RbZGlzYWJsZWRdOi1tb3otcGxhY2Vob2xkZXIsW2Rpc2FibGVkXS50ZXh0YXJlYTotbW96LXBsYWNlaG9sZGVyLFtkaXNhYmxlZF0uaW5wdXQ6LW1vei1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLnNlbGVjdCBzZWxlY3Q6LW1vei1wbGFjZWhvbGRlciwuc2VsZWN0IGZpZWxkc2V0W2Rpc2FibGVkXSBzZWxlY3Q6LW1vei1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLnRleHRhcmVhOi1tb3otcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5pbnB1dDotbW96LXBsYWNlaG9sZGVye2NvbG9yOiM3MDcwNzB9LnNlbGVjdCBzZWxlY3RbZGlzYWJsZWRdOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixbZGlzYWJsZWRdLnRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixbZGlzYWJsZWRdLmlucHV0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixmaWVsZHNldFtkaXNhYmxlZF0gLnNlbGVjdCBzZWxlY3Q6LW1zLWlucHV0LXBsYWNlaG9sZGVyLC5zZWxlY3QgZmllbGRzZXRbZGlzYWJsZWRdIHNlbGVjdDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC50ZXh0YXJlYTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6IzcwNzA3MH0udGV4dGFyZWEsLmlucHV0e2JveC1zaGFkb3c6aW5zZXQgMCAuMDYyNWVtIC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4wNSk7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX1bcmVhZG9ubHldLnRleHRhcmVhLFtyZWFkb25seV0uaW5wdXR7Ym94LXNoYWRvdzpub25lfS5pcy13aGl0ZS50ZXh0YXJlYSwuaXMtd2hpdGUuaW5wdXR7Ym9yZGVyLWNvbG9yOiNmZmZ9LmlzLXdoaXRlLnRleHRhcmVhOmZvY3VzLC5pcy13aGl0ZS5pbnB1dDpmb2N1cywuaXMtd2hpdGUuaXMtZm9jdXNlZC50ZXh0YXJlYSwuaXMtd2hpdGUuaXMtZm9jdXNlZC5pbnB1dCwuaXMtd2hpdGUudGV4dGFyZWE6YWN0aXZlLC5pcy13aGl0ZS5pbnB1dDphY3RpdmUsLmlzLXdoaXRlLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtd2hpdGUuaXMtYWN0aXZlLmlucHV0e2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDI1NSwyNTUsLjI1KX0uaXMtYmxhY2sudGV4dGFyZWEsLmlzLWJsYWNrLmlucHV0e2JvcmRlci1jb2xvcjojMGEwYTBhfS5pcy1ibGFjay50ZXh0YXJlYTpmb2N1cywuaXMtYmxhY2suaW5wdXQ6Zm9jdXMsLmlzLWJsYWNrLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWJsYWNrLmlzLWZvY3VzZWQuaW5wdXQsLmlzLWJsYWNrLnRleHRhcmVhOmFjdGl2ZSwuaXMtYmxhY2suaW5wdXQ6YWN0aXZlLC5pcy1ibGFjay5pcy1hY3RpdmUudGV4dGFyZWEsLmlzLWJsYWNrLmlzLWFjdGl2ZS5pbnB1dHtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4yNSl9LmlzLWxpZ2h0LnRleHRhcmVhLC5pcy1saWdodC5pbnB1dHtib3JkZXItY29sb3I6I2QyZjlkNn0uaXMtbGlnaHQudGV4dGFyZWE6Zm9jdXMsLmlzLWxpZ2h0LmlucHV0OmZvY3VzLC5pcy1saWdodC5pcy1mb2N1c2VkLnRleHRhcmVhLC5pcy1saWdodC5pcy1mb2N1c2VkLmlucHV0LC5pcy1saWdodC50ZXh0YXJlYTphY3RpdmUsLmlzLWxpZ2h0LmlucHV0OmFjdGl2ZSwuaXMtbGlnaHQuaXMtYWN0aXZlLnRleHRhcmVhLC5pcy1saWdodC5pcy1hY3RpdmUuaW5wdXR7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyMTAsMjQ5LDIxNCwuMjUpfS5pcy1kYXJrLnRleHRhcmVhLC5pcy1kYXJrLmlucHV0e2JvcmRlci1jb2xvcjojNDU5NTU4fS5pcy1kYXJrLnRleHRhcmVhOmZvY3VzLC5pcy1kYXJrLmlucHV0OmZvY3VzLC5pcy1kYXJrLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWRhcmsuaXMtZm9jdXNlZC5pbnB1dCwuaXMtZGFyay50ZXh0YXJlYTphY3RpdmUsLmlzLWRhcmsuaW5wdXQ6YWN0aXZlLC5pcy1kYXJrLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtZGFyay5pcy1hY3RpdmUuaW5wdXR7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg2OSwxNDksODgsLjI1KX0uaXMtcHJpbWFyeS50ZXh0YXJlYSwuaXMtcHJpbWFyeS5pbnB1dHtib3JkZXItY29sb3I6IzU1YmU2Zn0uaXMtcHJpbWFyeS50ZXh0YXJlYTpmb2N1cywuaXMtcHJpbWFyeS5pbnB1dDpmb2N1cywuaXMtcHJpbWFyeS5pcy1mb2N1c2VkLnRleHRhcmVhLC5pcy1wcmltYXJ5LmlzLWZvY3VzZWQuaW5wdXQsLmlzLXByaW1hcnkudGV4dGFyZWE6YWN0aXZlLC5pcy1wcmltYXJ5LmlucHV0OmFjdGl2ZSwuaXMtcHJpbWFyeS5pcy1hY3RpdmUudGV4dGFyZWEsLmlzLXByaW1hcnkuaXMtYWN0aXZlLmlucHV0e2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoODUsMTkwLDExMSwuMjUpfS5pcy1saW5rLnRleHRhcmVhLC5pcy1saW5rLmlucHV0e2JvcmRlci1jb2xvcjojNDg3NmZmfS5pcy1saW5rLnRleHRhcmVhOmZvY3VzLC5pcy1saW5rLmlucHV0OmZvY3VzLC5pcy1saW5rLmlzLWZvY3VzZWQudGV4dGFyZWEsLmlzLWxpbmsuaXMtZm9jdXNlZC5pbnB1dCwuaXMtbGluay50ZXh0YXJlYTphY3RpdmUsLmlzLWxpbmsuaW5wdXQ6YWN0aXZlLC5pcy1saW5rLmlzLWFjdGl2ZS50ZXh0YXJlYSwuaXMtbGluay5pcy1hY3RpdmUuaW5wdXR7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg3MiwxMTgsMjU1LC4yNSl9LmlzLWluZm8udGV4dGFyZWEsLmlzLWluZm8uaW5wdXR7Ym9yZGVyLWNvbG9yOiNmMGY4ZmZ9LmlzLWluZm8udGV4dGFyZWE6Zm9jdXMsLmlzLWluZm8uaW5wdXQ6Zm9jdXMsLmlzLWluZm8uaXMtZm9jdXNlZC50ZXh0YXJlYSwuaXMtaW5mby5pcy1mb2N1c2VkLmlucHV0LC5pcy1pbmZvLnRleHRhcmVhOmFjdGl2ZSwuaXMtaW5mby5pbnB1dDphY3RpdmUsLmlzLWluZm8uaXMtYWN0aXZlLnRleHRhcmVhLC5pcy1pbmZvLmlzLWFjdGl2ZS5pbnB1dHtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDI0MCwyNDgsMjU1LC4yNSl9LmlzLXN1Y2Nlc3MudGV4dGFyZWEsLmlzLXN1Y2Nlc3MuaW5wdXR7Ym9yZGVyLWNvbG9yOiM0OGM3OGV9LmlzLXN1Y2Nlc3MudGV4dGFyZWE6Zm9jdXMsLmlzLXN1Y2Nlc3MuaW5wdXQ6Zm9jdXMsLmlzLXN1Y2Nlc3MuaXMtZm9jdXNlZC50ZXh0YXJlYSwuaXMtc3VjY2Vzcy5pcy1mb2N1c2VkLmlucHV0LC5pcy1zdWNjZXNzLnRleHRhcmVhOmFjdGl2ZSwuaXMtc3VjY2Vzcy5pbnB1dDphY3RpdmUsLmlzLXN1Y2Nlc3MuaXMtYWN0aXZlLnRleHRhcmVhLC5pcy1zdWNjZXNzLmlzLWFjdGl2ZS5pbnB1dHtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDcyLDE5OSwxNDIsLjI1KX0uaXMtd2FybmluZy50ZXh0YXJlYSwuaXMtd2FybmluZy5pbnB1dHtib3JkZXItY29sb3I6I2ZmZDk3NX0uaXMtd2FybmluZy50ZXh0YXJlYTpmb2N1cywuaXMtd2FybmluZy5pbnB1dDpmb2N1cywuaXMtd2FybmluZy5pcy1mb2N1c2VkLnRleHRhcmVhLC5pcy13YXJuaW5nLmlzLWZvY3VzZWQuaW5wdXQsLmlzLXdhcm5pbmcudGV4dGFyZWE6YWN0aXZlLC5pcy13YXJuaW5nLmlucHV0OmFjdGl2ZSwuaXMtd2FybmluZy5pcy1hY3RpdmUudGV4dGFyZWEsLmlzLXdhcm5pbmcuaXMtYWN0aXZlLmlucHV0e2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDIxNywxMTcsLjI1KX0uaXMtZGFuZ2VyLnRleHRhcmVhLC5pcy1kYW5nZXIuaW5wdXR7Ym9yZGVyLWNvbG9yOiNmMTQ2Njh9LmlzLWRhbmdlci50ZXh0YXJlYTpmb2N1cywuaXMtZGFuZ2VyLmlucHV0OmZvY3VzLC5pcy1kYW5nZXIuaXMtZm9jdXNlZC50ZXh0YXJlYSwuaXMtZGFuZ2VyLmlzLWZvY3VzZWQuaW5wdXQsLmlzLWRhbmdlci50ZXh0YXJlYTphY3RpdmUsLmlzLWRhbmdlci5pbnB1dDphY3RpdmUsLmlzLWRhbmdlci5pcy1hY3RpdmUudGV4dGFyZWEsLmlzLWRhbmdlci5pcy1hY3RpdmUuaW5wdXR7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyNDEsNzAsMTA0LC4yNSl9LmlzLXNtYWxsLnRleHRhcmVhLC5pcy1zbWFsbC5pbnB1dHtib3JkZXItcmFkaXVzOjJweDtmb250LXNpemU6Ljc1cmVtfS5pcy1tZWRpdW0udGV4dGFyZWEsLmlzLW1lZGl1bS5pbnB1dHtmb250LXNpemU6MS4yNXJlbX0uaXMtbGFyZ2UudGV4dGFyZWEsLmlzLWxhcmdlLmlucHV0e2ZvbnQtc2l6ZToxLjVyZW19LmlzLWZ1bGx3aWR0aC50ZXh0YXJlYSwuaXMtZnVsbHdpZHRoLmlucHV0e2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0uaXMtaW5saW5lLnRleHRhcmVhLC5pcy1pbmxpbmUuaW5wdXR7ZGlzcGxheTppbmxpbmU7d2lkdGg6YXV0b30uaW5wdXQuaXMtcm91bmRlZHtib3JkZXItcmFkaXVzOjk5OTlweDtwYWRkaW5nLWxlZnQ6Y2FsYyhjYWxjKDAuNzVlbSAtIDFweCkgKyAuMzc1ZW0pO3BhZGRpbmctcmlnaHQ6Y2FsYyhjYWxjKDAuNzVlbSAtIDFweCkgKyAuMzc1ZW0pfS5pbnB1dC5pcy1zdGF0aWN7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6bm9uZTtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LnRleHRhcmVhe2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjEwMCU7cGFkZGluZzpjYWxjKC43NWVtIC0gMXB4KTtyZXNpemU6dmVydGljYWx9LnRleHRhcmVhOm5vdChbcm93c10pe21heC1oZWlnaHQ6NDBlbTttaW4taGVpZ2h0OjhlbX0udGV4dGFyZWFbcm93c117aGVpZ2h0OmluaXRpYWx9LnRleHRhcmVhLmhhcy1maXhlZC1zaXple3Jlc2l6ZTpub25lfS5yYWRpbywuY2hlY2tib3h7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MS4yNTtwb3NpdGlvbjpyZWxhdGl2ZX0ucmFkaW8gaW5wdXQsLmNoZWNrYm94IGlucHV0e2N1cnNvcjpwb2ludGVyfS5yYWRpbzpob3ZlciwuY2hlY2tib3g6aG92ZXJ7Y29sb3I6IzM2MzYzNn1bZGlzYWJsZWRdLnJhZGlvLFtkaXNhYmxlZF0uY2hlY2tib3gsZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpbyxmaWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94LC5yYWRpbyBpbnB1dFtkaXNhYmxlZF0sLmNoZWNrYm94IGlucHV0W2Rpc2FibGVkXXtjb2xvcjojN2E3YTdhO2N1cnNvcjpub3QtYWxsb3dlZH0ucmFkaW8rLnJhZGlve21hcmdpbi1sZWZ0Oi41ZW19LnNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnNlbGVjdDpub3QoLmlzLW11bHRpcGxlKXtoZWlnaHQ6Mi41ZW19LnNlbGVjdDpub3QoLmlzLW11bHRpcGxlKTpub3QoLmlzLWxvYWRpbmcpOjphZnRlcntib3JkZXItY29sb3I6IzQ4NzZmZjtyaWdodDoxLjEyNWVtO3otaW5kZXg6NH0uc2VsZWN0LmlzLXJvdW5kZWQgc2VsZWN0e2JvcmRlci1yYWRpdXM6OTk5OXB4O3BhZGRpbmctbGVmdDoxZW19LnNlbGVjdCBzZWxlY3R7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztmb250LXNpemU6MWVtO21heC13aWR0aDoxMDAlO291dGxpbmU6bm9uZX0uc2VsZWN0IHNlbGVjdDo6LW1zLWV4cGFuZHtkaXNwbGF5Om5vbmV9LnNlbGVjdCBzZWxlY3RbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuc2VsZWN0IHNlbGVjdDpob3Zlcntib3JkZXItY29sb3I6I2Y1ZjVmNX0uc2VsZWN0IHNlbGVjdDpub3QoW211bHRpcGxlXSl7cGFkZGluZy1yaWdodDoyLjVlbX0uc2VsZWN0IHNlbGVjdFttdWx0aXBsZV17aGVpZ2h0OmF1dG87cGFkZGluZzowfS5zZWxlY3Qgc2VsZWN0W211bHRpcGxlXSBvcHRpb257cGFkZGluZzouNWVtIDFlbX0uc2VsZWN0Om5vdCguaXMtbXVsdGlwbGUpOm5vdCguaXMtbG9hZGluZyk6aG92ZXI6OmFmdGVye2JvcmRlci1jb2xvcjojMzYzNjM2fS5zZWxlY3QuaXMtd2hpdGU6bm90KDpob3Zlcik6OmFmdGVye2JvcmRlci1jb2xvcjojZmZmfS5zZWxlY3QuaXMtd2hpdGUgc2VsZWN0e2JvcmRlci1jb2xvcjojZmZmfS5zZWxlY3QuaXMtd2hpdGUgc2VsZWN0OmhvdmVyLC5zZWxlY3QuaXMtd2hpdGUgc2VsZWN0LmlzLWhvdmVyZWR7Ym9yZGVyLWNvbG9yOiNmMmYyZjJ9LnNlbGVjdC5pcy13aGl0ZSBzZWxlY3Q6Zm9jdXMsLnNlbGVjdC5pcy13aGl0ZSBzZWxlY3QuaXMtZm9jdXNlZCwuc2VsZWN0LmlzLXdoaXRlIHNlbGVjdDphY3RpdmUsLnNlbGVjdC5pcy13aGl0ZSBzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDI1NSwyNTUsLjI1KX0uc2VsZWN0LmlzLWJsYWNrOm5vdCg6aG92ZXIpOjphZnRlcntib3JkZXItY29sb3I6IzBhMGEwYX0uc2VsZWN0LmlzLWJsYWNrIHNlbGVjdHtib3JkZXItY29sb3I6IzBhMGEwYX0uc2VsZWN0LmlzLWJsYWNrIHNlbGVjdDpob3Zlciwuc2VsZWN0LmlzLWJsYWNrIHNlbGVjdC5pcy1ob3ZlcmVke2JvcmRlci1jb2xvcjojMDAwfS5zZWxlY3QuaXMtYmxhY2sgc2VsZWN0OmZvY3VzLC5zZWxlY3QuaXMtYmxhY2sgc2VsZWN0LmlzLWZvY3VzZWQsLnNlbGVjdC5pcy1ibGFjayBzZWxlY3Q6YWN0aXZlLC5zZWxlY3QuaXMtYmxhY2sgc2VsZWN0LmlzLWFjdGl2ZXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4yNSl9LnNlbGVjdC5pcy1saWdodDpub3QoOmhvdmVyKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNkMmY5ZDZ9LnNlbGVjdC5pcy1saWdodCBzZWxlY3R7Ym9yZGVyLWNvbG9yOiNkMmY5ZDZ9LnNlbGVjdC5pcy1saWdodCBzZWxlY3Q6aG92ZXIsLnNlbGVjdC5pcy1saWdodCBzZWxlY3QuaXMtaG92ZXJlZHtib3JkZXItY29sb3I6I2JjZjZjMn0uc2VsZWN0LmlzLWxpZ2h0IHNlbGVjdDpmb2N1cywuc2VsZWN0LmlzLWxpZ2h0IHNlbGVjdC5pcy1mb2N1c2VkLC5zZWxlY3QuaXMtbGlnaHQgc2VsZWN0OmFjdGl2ZSwuc2VsZWN0LmlzLWxpZ2h0IHNlbGVjdC5pcy1hY3RpdmV7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSgyMTAsMjQ5LDIxNCwuMjUpfS5zZWxlY3QuaXMtZGFyazpub3QoOmhvdmVyKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM0NTk1NTh9LnNlbGVjdC5pcy1kYXJrIHNlbGVjdHtib3JkZXItY29sb3I6IzQ1OTU1OH0uc2VsZWN0LmlzLWRhcmsgc2VsZWN0OmhvdmVyLC5zZWxlY3QuaXMtZGFyayBzZWxlY3QuaXMtaG92ZXJlZHtib3JkZXItY29sb3I6IzNkODQ0ZX0uc2VsZWN0LmlzLWRhcmsgc2VsZWN0OmZvY3VzLC5zZWxlY3QuaXMtZGFyayBzZWxlY3QuaXMtZm9jdXNlZCwuc2VsZWN0LmlzLWRhcmsgc2VsZWN0OmFjdGl2ZSwuc2VsZWN0LmlzLWRhcmsgc2VsZWN0LmlzLWFjdGl2ZXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDY5LDE0OSw4OCwuMjUpfS5zZWxlY3QuaXMtcHJpbWFyeTpub3QoOmhvdmVyKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM1NWJlNmZ9LnNlbGVjdC5pcy1wcmltYXJ5IHNlbGVjdHtib3JkZXItY29sb3I6IzU1YmU2Zn0uc2VsZWN0LmlzLXByaW1hcnkgc2VsZWN0OmhvdmVyLC5zZWxlY3QuaXMtcHJpbWFyeSBzZWxlY3QuaXMtaG92ZXJlZHtib3JkZXItY29sb3I6IzQ1YjQ2MX0uc2VsZWN0LmlzLXByaW1hcnkgc2VsZWN0OmZvY3VzLC5zZWxlY3QuaXMtcHJpbWFyeSBzZWxlY3QuaXMtZm9jdXNlZCwuc2VsZWN0LmlzLXByaW1hcnkgc2VsZWN0OmFjdGl2ZSwuc2VsZWN0LmlzLXByaW1hcnkgc2VsZWN0LmlzLWFjdGl2ZXtib3gtc2hhZG93OjAgMCAwIC4xMjVlbSByZ2JhKDg1LDE5MCwxMTEsLjI1KX0uc2VsZWN0LmlzLWxpbms6bm90KDpob3Zlcik6OmFmdGVye2JvcmRlci1jb2xvcjojNDg3NmZmfS5zZWxlY3QuaXMtbGluayBzZWxlY3R7Ym9yZGVyLWNvbG9yOiM0ODc2ZmZ9LnNlbGVjdC5pcy1saW5rIHNlbGVjdDpob3Zlciwuc2VsZWN0LmlzLWxpbmsgc2VsZWN0LmlzLWhvdmVyZWR7Ym9yZGVyLWNvbG9yOiMyZjYzZmZ9LnNlbGVjdC5pcy1saW5rIHNlbGVjdDpmb2N1cywuc2VsZWN0LmlzLWxpbmsgc2VsZWN0LmlzLWZvY3VzZWQsLnNlbGVjdC5pcy1saW5rIHNlbGVjdDphY3RpdmUsLnNlbGVjdC5pcy1saW5rIHNlbGVjdC5pcy1hY3RpdmV7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg3MiwxMTgsMjU1LC4yNSl9LnNlbGVjdC5pcy1pbmZvOm5vdCg6aG92ZXIpOjphZnRlcntib3JkZXItY29sb3I6I2YwZjhmZn0uc2VsZWN0LmlzLWluZm8gc2VsZWN0e2JvcmRlci1jb2xvcjojZjBmOGZmfS5zZWxlY3QuaXMtaW5mbyBzZWxlY3Q6aG92ZXIsLnNlbGVjdC5pcy1pbmZvIHNlbGVjdC5pcy1ob3ZlcmVke2JvcmRlci1jb2xvcjojZDdlY2ZmfS5zZWxlY3QuaXMtaW5mbyBzZWxlY3Q6Zm9jdXMsLnNlbGVjdC5pcy1pbmZvIHNlbGVjdC5pcy1mb2N1c2VkLC5zZWxlY3QuaXMtaW5mbyBzZWxlY3Q6YWN0aXZlLC5zZWxlY3QuaXMtaW5mbyBzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjQwLDI0OCwyNTUsLjI1KX0uc2VsZWN0LmlzLXN1Y2Nlc3M6bm90KDpob3Zlcik6OmFmdGVye2JvcmRlci1jb2xvcjojNDhjNzhlfS5zZWxlY3QuaXMtc3VjY2VzcyBzZWxlY3R7Ym9yZGVyLWNvbG9yOiM0OGM3OGV9LnNlbGVjdC5pcy1zdWNjZXNzIHNlbGVjdDpob3Zlciwuc2VsZWN0LmlzLXN1Y2Nlc3Mgc2VsZWN0LmlzLWhvdmVyZWR7Ym9yZGVyLWNvbG9yOiMzYWJiODF9LnNlbGVjdC5pcy1zdWNjZXNzIHNlbGVjdDpmb2N1cywuc2VsZWN0LmlzLXN1Y2Nlc3Mgc2VsZWN0LmlzLWZvY3VzZWQsLnNlbGVjdC5pcy1zdWNjZXNzIHNlbGVjdDphY3RpdmUsLnNlbGVjdC5pcy1zdWNjZXNzIHNlbGVjdC5pcy1hY3RpdmV7Ym94LXNoYWRvdzowIDAgMCAuMTI1ZW0gcmdiYSg3MiwxOTksMTQyLC4yNSl9LnNlbGVjdC5pcy13YXJuaW5nOm5vdCg6aG92ZXIpOjphZnRlcntib3JkZXItY29sb3I6I2ZmZDk3NX0uc2VsZWN0LmlzLXdhcm5pbmcgc2VsZWN0e2JvcmRlci1jb2xvcjojZmZkOTc1fS5zZWxlY3QuaXMtd2FybmluZyBzZWxlY3Q6aG92ZXIsLnNlbGVjdC5pcy13YXJuaW5nIHNlbGVjdC5pcy1ob3ZlcmVke2JvcmRlci1jb2xvcjojZmZkMjVjfS5zZWxlY3QuaXMtd2FybmluZyBzZWxlY3Q6Zm9jdXMsLnNlbGVjdC5pcy13YXJuaW5nIHNlbGVjdC5pcy1mb2N1c2VkLC5zZWxlY3QuaXMtd2FybmluZyBzZWxlY3Q6YWN0aXZlLC5zZWxlY3QuaXMtd2FybmluZyBzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjU1LDIxNywxMTcsLjI1KX0uc2VsZWN0LmlzLWRhbmdlcjpub3QoOmhvdmVyKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmMTQ2Njh9LnNlbGVjdC5pcy1kYW5nZXIgc2VsZWN0e2JvcmRlci1jb2xvcjojZjE0NjY4fS5zZWxlY3QuaXMtZGFuZ2VyIHNlbGVjdDpob3Zlciwuc2VsZWN0LmlzLWRhbmdlciBzZWxlY3QuaXMtaG92ZXJlZHtib3JkZXItY29sb3I6I2VmMmU1NX0uc2VsZWN0LmlzLWRhbmdlciBzZWxlY3Q6Zm9jdXMsLnNlbGVjdC5pcy1kYW5nZXIgc2VsZWN0LmlzLWZvY3VzZWQsLnNlbGVjdC5pcy1kYW5nZXIgc2VsZWN0OmFjdGl2ZSwuc2VsZWN0LmlzLWRhbmdlciBzZWxlY3QuaXMtYWN0aXZle2JveC1zaGFkb3c6MCAwIDAgLjEyNWVtIHJnYmEoMjQxLDcwLDEwNCwuMjUpfS5zZWxlY3QuaXMtc21hbGx7Ym9yZGVyLXJhZGl1czoycHg7Zm9udC1zaXplOi43NXJlbX0uc2VsZWN0LmlzLW1lZGl1bXtmb250LXNpemU6MS4yNXJlbX0uc2VsZWN0LmlzLWxhcmdle2ZvbnQtc2l6ZToxLjVyZW19LnNlbGVjdC5pcy1kaXNhYmxlZDo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM3YTdhN2F9LnNlbGVjdC5pcy1mdWxsd2lkdGh7d2lkdGg6MTAwJX0uc2VsZWN0LmlzLWZ1bGx3aWR0aCBzZWxlY3R7d2lkdGg6MTAwJX0uc2VsZWN0LmlzLWxvYWRpbmc6OmFmdGVye21hcmdpbi10b3A6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDouNjI1ZW07dG9wOi42MjVlbTt0cmFuc2Zvcm06bm9uZX0uc2VsZWN0LmlzLWxvYWRpbmcuaXMtc21hbGw6YWZ0ZXJ7Zm9udC1zaXplOi43NXJlbX0uc2VsZWN0LmlzLWxvYWRpbmcuaXMtbWVkaXVtOmFmdGVye2ZvbnQtc2l6ZToxLjI1cmVtfS5zZWxlY3QuaXMtbG9hZGluZy5pcy1sYXJnZTphZnRlcntmb250LXNpemU6MS41cmVtfS5maWxle2FsaWduLWl0ZW1zOnN0cmV0Y2g7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3Bvc2l0aW9uOnJlbGF0aXZlfS5maWxlLmlzLXdoaXRlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6IzBhMGEwYX0uZmlsZS5pcy13aGl0ZTpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtd2hpdGUuaXMtaG92ZXJlZCAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiMwYTBhMGF9LmZpbGUuaXMtd2hpdGU6Zm9jdXMgLmZpbGUtY3RhLC5maWxlLmlzLXdoaXRlLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSgyNTUsMjU1LDI1NSwuMjUpO2NvbG9yOiMwYTBhMGF9LmZpbGUuaXMtd2hpdGU6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy13aGl0ZS5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2YyZjJmMjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojMGEwYTBhfS5maWxlLmlzLWJsYWNrIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1ibGFjazpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtYmxhY2suaXMtaG92ZXJlZCAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojMDQwNDA0O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmZpbGUuaXMtYmxhY2s6Zm9jdXMgLmZpbGUtY3RhLC5maWxlLmlzLWJsYWNrLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSgxMCwxMCwxMCwuMjUpO2NvbG9yOiNmZmZ9LmZpbGUuaXMtYmxhY2s6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1ibGFjay5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzAwMDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWxpZ2h0IC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmZpbGUuaXMtbGlnaHQ6aG92ZXIgLmZpbGUtY3RhLC5maWxlLmlzLWxpZ2h0LmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2M3ZjhjYztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1saWdodDpmb2N1cyAuZmlsZS1jdGEsLmZpbGUuaXMtbGlnaHQuaXMtZm9jdXNlZCAuZmlsZS1jdGF7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzowIDAgLjVlbSByZ2JhKDIxMCwyNDksMjE0LC4yNSk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmZpbGUuaXMtbGlnaHQ6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1saWdodC5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2JjZjZjMjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1kYXJrIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1kYXJrOmhvdmVyIC5maWxlLWN0YSwuZmlsZS5pcy1kYXJrLmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzQxOGM1Mztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWRhcms6Zm9jdXMgLmZpbGUtY3RhLC5maWxlLmlzLWRhcmsuaXMtZm9jdXNlZCAuZmlsZS1jdGF7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzowIDAgLjVlbSByZ2JhKDY5LDE0OSw4OCwuMjUpO2NvbG9yOiNmZmZ9LmZpbGUuaXMtZGFyazphY3RpdmUgLmZpbGUtY3RhLC5maWxlLmlzLWRhcmsuaXMtYWN0aXZlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiMzZDg0NGU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1wcmltYXJ5IC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1wcmltYXJ5OmhvdmVyIC5maWxlLWN0YSwuZmlsZS5pcy1wcmltYXJ5LmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzRjYmE2Nztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLXByaW1hcnk6Zm9jdXMgLmZpbGUtY3RhLC5maWxlLmlzLXByaW1hcnkuaXMtZm9jdXNlZCAuZmlsZS1jdGF7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzowIDAgLjVlbSByZ2JhKDg1LDE5MCwxMTEsLjI1KTtjb2xvcjojZmZmfS5maWxlLmlzLXByaW1hcnk6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1wcmltYXJ5LmlzLWFjdGl2ZSAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojNDViNDYxO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmZpbGUuaXMtbGluayAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmZpbGUuaXMtbGluazpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtbGluay5pcy1ob3ZlcmVkIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiMzYjZjZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1saW5rOmZvY3VzIC5maWxlLWN0YSwuZmlsZS5pcy1saW5rLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSg3MiwxMTgsMjU1LC4yNSk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1saW5rOmFjdGl2ZSAuZmlsZS1jdGEsLmZpbGUuaXMtbGluay5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzJmNjNmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWluZm8gLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2YwZjhmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1pbmZvOmhvdmVyIC5maWxlLWN0YSwuZmlsZS5pcy1pbmZvLmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2UzZjJmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1pbmZvOmZvY3VzIC5maWxlLWN0YSwuZmlsZS5pcy1pbmZvLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSgyNDAsMjQ4LDI1NSwuMjUpO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5maWxlLmlzLWluZm86YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1pbmZvLmlzLWFjdGl2ZSAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojZDdlY2ZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5maWxlLmlzLXN1Y2Nlc3MgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLXN1Y2Nlc3M6aG92ZXIgLmZpbGUtY3RhLC5maWxlLmlzLXN1Y2Nlc3MuaXMtaG92ZXJlZCAuZmlsZS1jdGF7YmFja2dyb3VuZC1jb2xvcjojM2VjNDg3O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2NvbG9yOiNmZmZ9LmZpbGUuaXMtc3VjY2Vzczpmb2N1cyAuZmlsZS1jdGEsLmZpbGUuaXMtc3VjY2Vzcy5pcy1mb2N1c2VkIC5maWxlLWN0YXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjAgMCAuNWVtIHJnYmEoNzIsMTk5LDE0MiwuMjUpO2NvbG9yOiNmZmZ9LmZpbGUuaXMtc3VjY2VzczphY3RpdmUgLmZpbGUtY3RhLC5maWxlLmlzLXN1Y2Nlc3MuaXMtYWN0aXZlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiMzYWJiODE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy13YXJuaW5nIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmZpbGUuaXMtd2FybmluZzpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtd2FybmluZy5pcy1ob3ZlcmVkIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ1Njg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LmZpbGUuaXMtd2FybmluZzpmb2N1cyAuZmlsZS1jdGEsLmZpbGUuaXMtd2FybmluZy5pcy1mb2N1c2VkIC5maWxlLWN0YXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtib3gtc2hhZG93OjAgMCAuNWVtIHJnYmEoMjU1LDIxNywxMTcsLjI1KTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy13YXJuaW5nOmFjdGl2ZSAuZmlsZS1jdGEsLmZpbGUuaXMtd2FybmluZy5pcy1hY3RpdmUgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2ZmZDI1Yztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uZmlsZS5pcy1kYW5nZXIgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWRhbmdlcjpob3ZlciAuZmlsZS1jdGEsLmZpbGUuaXMtZGFuZ2VyLmlzLWhvdmVyZWQgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2YwM2E1Zjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwKTtjb2xvcjojZmZmfS5maWxlLmlzLWRhbmdlcjpmb2N1cyAuZmlsZS1jdGEsLmZpbGUuaXMtZGFuZ2VyLmlzLWZvY3VzZWQgLmZpbGUtY3Rhe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JveC1zaGFkb3c6MCAwIC41ZW0gcmdiYSgyNDEsNzAsMTA0LC4yNSk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1kYW5nZXI6YWN0aXZlIC5maWxlLWN0YSwuZmlsZS5pcy1kYW5nZXIuaXMtYWN0aXZlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjJlNTU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2ZmZn0uZmlsZS5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5maWxlLmlzLW5vcm1hbHtmb250LXNpemU6MXJlbX0uZmlsZS5pcy1tZWRpdW17Zm9udC1zaXplOjEuMjVyZW19LmZpbGUuaXMtbWVkaXVtIC5maWxlLWljb24gLmZhe2ZvbnQtc2l6ZToyMXB4fS5maWxlLmlzLWxhcmdle2ZvbnQtc2l6ZToxLjVyZW19LmZpbGUuaXMtbGFyZ2UgLmZpbGUtaWNvbiAuZmF7Zm9udC1zaXplOjI4cHh9LmZpbGUuaGFzLW5hbWUgLmZpbGUtY3Rhe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0uZmlsZS5oYXMtbmFtZSAuZmlsZS1uYW1le2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LmZpbGUuaGFzLW5hbWUuaXMtZW1wdHkgLmZpbGUtY3Rhe2JvcmRlci1yYWRpdXM6NHB4fS5maWxlLmhhcy1uYW1lLmlzLWVtcHR5IC5maWxlLW5hbWV7ZGlzcGxheTpub25lfS5maWxlLmlzLWJveGVkIC5maWxlLWxhYmVse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmlsZS5pcy1ib3hlZCAuZmlsZS1jdGF7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDphdXRvO3BhZGRpbmc6MWVtIDNlbX0uZmlsZS5pcy1ib3hlZCAuZmlsZS1uYW1le2JvcmRlci13aWR0aDowIDFweCAxcHh9LmZpbGUuaXMtYm94ZWQgLmZpbGUtaWNvbntoZWlnaHQ6MS41ZW07d2lkdGg6MS41ZW19LmZpbGUuaXMtYm94ZWQgLmZpbGUtaWNvbiAuZmF7Zm9udC1zaXplOjIxcHh9LmZpbGUuaXMtYm94ZWQuaXMtc21hbGwgLmZpbGUtaWNvbiAuZmF7Zm9udC1zaXplOjE0cHh9LmZpbGUuaXMtYm94ZWQuaXMtbWVkaXVtIC5maWxlLWljb24gLmZhe2ZvbnQtc2l6ZToyOHB4fS5maWxlLmlzLWJveGVkLmlzLWxhcmdlIC5maWxlLWljb24gLmZhe2ZvbnQtc2l6ZTozNXB4fS5maWxlLmlzLWJveGVkLmhhcy1uYW1lIC5maWxlLWN0YXtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwfS5maWxlLmlzLWJveGVkLmhhcy1uYW1lIC5maWxlLW5hbWV7Ym9yZGVyLXJhZGl1czowIDAgNHB4IDRweDtib3JkZXItd2lkdGg6MCAxcHggMXB4fS5maWxlLmlzLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmZpbGUuaXMtZnVsbHdpZHRoIC5maWxlLWxhYmVse3dpZHRoOjEwMCV9LmZpbGUuaXMtZnVsbHdpZHRoIC5maWxlLW5hbWV7ZmxleC1ncm93OjE7bWF4LXdpZHRoOm5vbmV9LmZpbGUuaXMtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5maWxlLmlzLXJpZ2h0IC5maWxlLWN0YXtib3JkZXItcmFkaXVzOjAgNHB4IDRweCAwfS5maWxlLmlzLXJpZ2h0IC5maWxlLW5hbWV7Ym9yZGVyLXJhZGl1czo0cHggMCAwIDRweDtib3JkZXItd2lkdGg6MXB4IDAgMXB4IDFweDtvcmRlcjotMX0uZmlsZS1sYWJlbHthbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6ZmxleDtjdXJzb3I6cG9pbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LmZpbGUtbGFiZWw6aG92ZXIgLmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2VlZTtjb2xvcjojMzYzNjM2fS5maWxlLWxhYmVsOmhvdmVyIC5maWxlLW5hbWV7Ym9yZGVyLWNvbG9yOiNkNWQ1ZDV9LmZpbGUtbGFiZWw6YWN0aXZlIC5maWxlLWN0YXtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7Y29sb3I6IzM2MzYzNn0uZmlsZS1sYWJlbDphY3RpdmUgLmZpbGUtbmFtZXtib3JkZXItY29sb3I6I2NmY2ZjZn0uZmlsZS1pbnB1dHtoZWlnaHQ6MTAwJTtsZWZ0OjA7b3BhY2l0eTowO291dGxpbmU6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5maWxlLWN0YSwuZmlsZS1uYW1le2JvcmRlci1jb2xvcjojZGJkYmRiO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxZW07cGFkZGluZy1sZWZ0OjFlbTtwYWRkaW5nLXJpZ2h0OjFlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LmZpbGUtY3Rhe2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNGE0YTRhfS5maWxlLW5hbWV7Ym9yZGVyLWNvbG9yOiNkYmRiZGI7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxcHggMXB4IDFweCAwO2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjE2ZW07b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246aW5oZXJpdDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5maWxlLWljb257YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MWVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXJpZ2h0Oi41ZW07d2lkdGg6MWVtfS5maWxlLWljb24gLmZhe2ZvbnQtc2l6ZToxNHB4fS5sYWJlbHtjb2xvcjojMzYzNjM2O2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NzAwfS5sYWJlbDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206LjVlbX0ubGFiZWwuaXMtc21hbGx7Zm9udC1zaXplOi43NXJlbX0ubGFiZWwuaXMtbWVkaXVte2ZvbnQtc2l6ZToxLjI1cmVtfS5sYWJlbC5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5oZWxwe2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi43NXJlbTttYXJnaW4tdG9wOi4yNXJlbX0uaGVscC5pcy13aGl0ZXtjb2xvcjojZmZmfS5oZWxwLmlzLWJsYWNre2NvbG9yOiMwYTBhMGF9LmhlbHAuaXMtbGlnaHR7Y29sb3I6I2QyZjlkNn0uaGVscC5pcy1kYXJre2NvbG9yOiM0NTk1NTh9LmhlbHAuaXMtcHJpbWFyeXtjb2xvcjojNTViZTZmfS5oZWxwLmlzLWxpbmt7Y29sb3I6IzQ4NzZmZn0uaGVscC5pcy1pbmZve2NvbG9yOiNmMGY4ZmZ9LmhlbHAuaXMtc3VjY2Vzc3tjb2xvcjojNDhjNzhlfS5oZWxwLmlzLXdhcm5pbmd7Y29sb3I6I2ZmZDk3NX0uaGVscC5pcy1kYW5nZXJ7Y29sb3I6I2YxNDY2OH0uZmllbGQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0uZmllbGQuaGFzLWFkZG9uc3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LTFweH0uZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIC5idXR0b24sLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSAuaW5wdXQsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSAuc2VsZWN0IHNlbGVjdHtib3JkZXItcmFkaXVzOjB9LmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6Zmlyc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSAuYnV0dG9uLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sOmZpcnN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkgLmlucHV0LC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sOmZpcnN0LWNoaWxkOm5vdCg6b25seS1jaGlsZCkgLnNlbGVjdCBzZWxlY3R7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sOmxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSAuYnV0dG9uLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sOmxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSAuaW5wdXQsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2w6bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIC5zZWxlY3Qgc2VsZWN0e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjB9LmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmJ1dHRvbjpub3QoW2Rpc2FibGVkXSkuaXMtaG92ZXJlZCwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pOmhvdmVyLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5pbnB1dDpub3QoW2Rpc2FibGVkXSkuaXMtaG92ZXJlZCwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuc2VsZWN0IHNlbGVjdDpub3QoW2Rpc2FibGVkXSk6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLmlzLWhvdmVyZWR7ei1pbmRleDoyfS5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5idXR0b246bm90KFtkaXNhYmxlZF0pOmZvY3VzLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5idXR0b246bm90KFtkaXNhYmxlZF0pLmlzLWZvY3VzZWQsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5idXR0b246bm90KFtkaXNhYmxlZF0pLmlzLWFjdGl2ZSwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pOmZvY3VzLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5pbnB1dDpub3QoW2Rpc2FibGVkXSkuaXMtZm9jdXNlZCwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pLmlzLWFjdGl2ZSwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuc2VsZWN0IHNlbGVjdDpub3QoW2Rpc2FibGVkXSk6Zm9jdXMsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLmlzLWZvY3VzZWQsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuc2VsZWN0IHNlbGVjdDpub3QoW2Rpc2FibGVkXSkuaXMtYWN0aXZle3otaW5kZXg6M30uZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpmb2N1czpob3ZlciwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuYnV0dG9uOm5vdChbZGlzYWJsZWRdKS5pcy1mb2N1c2VkOmhvdmVyLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpob3ZlciwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuYnV0dG9uOm5vdChbZGlzYWJsZWRdKS5pcy1hY3RpdmU6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmlucHV0Om5vdChbZGlzYWJsZWRdKTpmb2N1czpob3ZlciwuZmllbGQuaGFzLWFkZG9ucyAuY29udHJvbCAuaW5wdXQ6bm90KFtkaXNhYmxlZF0pLmlzLWZvY3VzZWQ6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmlucHV0Om5vdChbZGlzYWJsZWRdKTphY3RpdmU6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLmlucHV0Om5vdChbZGlzYWJsZWRdKS5pcy1hY3RpdmU6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pOmZvY3VzOmhvdmVyLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5zZWxlY3Qgc2VsZWN0Om5vdChbZGlzYWJsZWRdKS5pcy1mb2N1c2VkOmhvdmVyLC5maWVsZC5oYXMtYWRkb25zIC5jb250cm9sIC5zZWxlY3Qgc2VsZWN0Om5vdChbZGlzYWJsZWRdKTphY3RpdmU6aG92ZXIsLmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wgLnNlbGVjdCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLmlzLWFjdGl2ZTpob3Zlcnt6LWluZGV4OjR9LmZpZWxkLmhhcy1hZGRvbnMgLmNvbnRyb2wuaXMtZXhwYW5kZWR7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX0uZmllbGQuaGFzLWFkZG9ucy5oYXMtYWRkb25zLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmZpZWxkLmhhcy1hZGRvbnMuaGFzLWFkZG9ucy1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmZpZWxkLmhhcy1hZGRvbnMuaGFzLWFkZG9ucy1mdWxsd2lkdGggLmNvbnRyb2x7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MH0uZmllbGQuaXMtZ3JvdXBlZHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmZpZWxkLmlzLWdyb3VwZWQ+LmNvbnRyb2x7ZmxleC1zaHJpbms6MH0uZmllbGQuaXMtZ3JvdXBlZD4uY29udHJvbDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MDttYXJnaW4tcmlnaHQ6Ljc1cmVtfS5maWVsZC5pcy1ncm91cGVkPi5jb250cm9sLmlzLWV4cGFuZGVke2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjF9LmZpZWxkLmlzLWdyb3VwZWQuaXMtZ3JvdXBlZC1jZW50ZXJlZHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5maWVsZC5pcy1ncm91cGVkLmlzLWdyb3VwZWQtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5maWVsZC5pcy1ncm91cGVkLmlzLWdyb3VwZWQtbXVsdGlsaW5le2ZsZXgtd3JhcDp3cmFwfS5maWVsZC5pcy1ncm91cGVkLmlzLWdyb3VwZWQtbXVsdGlsaW5lPi5jb250cm9sOmxhc3QtY2hpbGQsLmZpZWxkLmlzLWdyb3VwZWQuaXMtZ3JvdXBlZC1tdWx0aWxpbmU+LmNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0uZmllbGQuaXMtZ3JvdXBlZC5pcy1ncm91cGVkLW11bHRpbGluZTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206LTAuNzVyZW19LmZpZWxkLmlzLWdyb3VwZWQuaXMtZ3JvdXBlZC1tdWx0aWxpbmU6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5maWVsZC5pcy1ob3Jpem9udGFse2Rpc3BsYXk6ZmxleH19LmZpZWxkLWxhYmVsIC5sYWJlbHtmb250LXNpemU6aW5oZXJpdH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmZpZWxkLWxhYmVse21hcmdpbi1ib3R0b206LjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuZmllbGQtbGFiZWx7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXJpZ2h0OjEuNXJlbTt0ZXh0LWFsaWduOnJpZ2h0fS5maWVsZC1sYWJlbC5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtO3BhZGRpbmctdG9wOi4zNzVlbX0uZmllbGQtbGFiZWwuaXMtbm9ybWFse3BhZGRpbmctdG9wOi4zNzVlbX0uZmllbGQtbGFiZWwuaXMtbWVkaXVte2ZvbnQtc2l6ZToxLjI1cmVtO3BhZGRpbmctdG9wOi4zNzVlbX0uZmllbGQtbGFiZWwuaXMtbGFyZ2V7Zm9udC1zaXplOjEuNXJlbTtwYWRkaW5nLXRvcDouMzc1ZW19fS5maWVsZC1ib2R5IC5maWVsZCAuZmllbGR7bWFyZ2luLWJvdHRvbTowfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuZmllbGQtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1iYXNpczowO2ZsZXgtZ3Jvdzo1O2ZsZXgtc2hyaW5rOjF9LmZpZWxkLWJvZHkgLmZpZWxke21hcmdpbi1ib3R0b206MH0uZmllbGQtYm9keT4uZmllbGR7ZmxleC1zaHJpbms6MX0uZmllbGQtYm9keT4uZmllbGQ6bm90KC5pcy1uYXJyb3cpe2ZsZXgtZ3JvdzoxfS5maWVsZC1ib2R5Pi5maWVsZDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouNzVyZW19fS5jb250cm9se2JveC1zaXppbmc6Ym9yZGVyLWJveDtjbGVhcjpib3RoO2ZvbnQtc2l6ZToxcmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246aW5oZXJpdH0uY29udHJvbC5oYXMtaWNvbnMtbGVmdCAuaW5wdXQ6Zm9jdXN+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLWxlZnQgLnNlbGVjdDpmb2N1c34uaWNvbiwuY29udHJvbC5oYXMtaWNvbnMtcmlnaHQgLmlucHV0OmZvY3Vzfi5pY29uLC5jb250cm9sLmhhcy1pY29ucy1yaWdodCAuc2VsZWN0OmZvY3Vzfi5pY29ue2NvbG9yOiM0YTRhNGF9LmNvbnRyb2wuaGFzLWljb25zLWxlZnQgLmlucHV0LmlzLXNtYWxsfi5pY29uLC5jb250cm9sLmhhcy1pY29ucy1sZWZ0IC5zZWxlY3QuaXMtc21hbGx+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLXJpZ2h0IC5pbnB1dC5pcy1zbWFsbH4uaWNvbiwuY29udHJvbC5oYXMtaWNvbnMtcmlnaHQgLnNlbGVjdC5pcy1zbWFsbH4uaWNvbntmb250LXNpemU6Ljc1cmVtfS5jb250cm9sLmhhcy1pY29ucy1sZWZ0IC5pbnB1dC5pcy1tZWRpdW1+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLWxlZnQgLnNlbGVjdC5pcy1tZWRpdW1+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLXJpZ2h0IC5pbnB1dC5pcy1tZWRpdW1+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLXJpZ2h0IC5zZWxlY3QuaXMtbWVkaXVtfi5pY29ue2ZvbnQtc2l6ZToxLjI1cmVtfS5jb250cm9sLmhhcy1pY29ucy1sZWZ0IC5pbnB1dC5pcy1sYXJnZX4uaWNvbiwuY29udHJvbC5oYXMtaWNvbnMtbGVmdCAuc2VsZWN0LmlzLWxhcmdlfi5pY29uLC5jb250cm9sLmhhcy1pY29ucy1yaWdodCAuaW5wdXQuaXMtbGFyZ2V+Lmljb24sLmNvbnRyb2wuaGFzLWljb25zLXJpZ2h0IC5zZWxlY3QuaXMtbGFyZ2V+Lmljb257Zm9udC1zaXplOjEuNXJlbX0uY29udHJvbC5oYXMtaWNvbnMtbGVmdCAuaWNvbiwuY29udHJvbC5oYXMtaWNvbnMtcmlnaHQgLmljb257Y29sb3I6I2RiZGJkYjtoZWlnaHQ6Mi41ZW07cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoyLjVlbTt6LWluZGV4OjR9LmNvbnRyb2wuaGFzLWljb25zLWxlZnQgLmlucHV0LC5jb250cm9sLmhhcy1pY29ucy1sZWZ0IC5zZWxlY3Qgc2VsZWN0e3BhZGRpbmctbGVmdDoyLjVlbX0uY29udHJvbC5oYXMtaWNvbnMtbGVmdCAuaWNvbi5pcy1sZWZ0e2xlZnQ6MH0uY29udHJvbC5oYXMtaWNvbnMtcmlnaHQgLmlucHV0LC5jb250cm9sLmhhcy1pY29ucy1yaWdodCAuc2VsZWN0IHNlbGVjdHtwYWRkaW5nLXJpZ2h0OjIuNWVtfS5jb250cm9sLmhhcy1pY29ucy1yaWdodCAuaWNvbi5pcy1yaWdodHtyaWdodDowfS5jb250cm9sLmlzLWxvYWRpbmc6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7cmlnaHQ6LjYyNWVtO3RvcDouNjI1ZW07ei1pbmRleDo0fS5jb250cm9sLmlzLWxvYWRpbmcuaXMtc21hbGw6YWZ0ZXJ7Zm9udC1zaXplOi43NXJlbX0uY29udHJvbC5pcy1sb2FkaW5nLmlzLW1lZGl1bTphZnRlcntmb250LXNpemU6MS4yNXJlbX0uY29udHJvbC5pcy1sb2FkaW5nLmlzLWxhcmdlOmFmdGVye2ZvbnQtc2l6ZToxLjVyZW19LmJyZWFkY3J1bWJ7Zm9udC1zaXplOjFyZW07d2hpdGUtc3BhY2U6bm93cmFwfS5icmVhZGNydW1iIGF7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiM0ODc2ZmY7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowIC43NWVtfS5icmVhZGNydW1iIGE6aG92ZXJ7Y29sb3I6IzM2MzYzNn0uYnJlYWRjcnVtYiBsaXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fS5icmVhZGNydW1iIGxpOmZpcnN0LWNoaWxkIGF7cGFkZGluZy1sZWZ0OjB9LmJyZWFkY3J1bWIgbGkuaXMtYWN0aXZlIGF7Y29sb3I6IzM2MzYzNjtjdXJzb3I6ZGVmYXVsdDtwb2ludGVyLWV2ZW50czpub25lfS5icmVhZGNydW1iIGxpK2xpOjpiZWZvcmV7Y29sb3I6I2I1YjViNTtjb250ZW50OiIvIn0uYnJlYWRjcnVtYiB1bCwuYnJlYWRjcnVtYiBvbHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uYnJlYWRjcnVtYiAuaWNvbjpmaXJzdC1jaGlsZHttYXJnaW4tcmlnaHQ6LjVlbX0uYnJlYWRjcnVtYiAuaWNvbjpsYXN0LWNoaWxke21hcmdpbi1sZWZ0Oi41ZW19LmJyZWFkY3J1bWIuaXMtY2VudGVyZWQgb2wsLmJyZWFkY3J1bWIuaXMtY2VudGVyZWQgdWx7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYnJlYWRjcnVtYi5pcy1yaWdodCBvbCwuYnJlYWRjcnVtYi5pcy1yaWdodCB1bHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmJyZWFkY3J1bWIuaXMtc21hbGx7Zm9udC1zaXplOi43NXJlbX0uYnJlYWRjcnVtYi5pcy1tZWRpdW17Zm9udC1zaXplOjEuMjVyZW19LmJyZWFkY3J1bWIuaXMtbGFyZ2V7Zm9udC1zaXplOjEuNXJlbX0uYnJlYWRjcnVtYi5oYXMtYXJyb3ctc2VwYXJhdG9yIGxpK2xpOjpiZWZvcmV7Y29udGVudDoi4oaSIn0uYnJlYWRjcnVtYi5oYXMtYnVsbGV0LXNlcGFyYXRvciBsaStsaTo6YmVmb3Jle2NvbnRlbnQ6IuKAoiJ9LmJyZWFkY3J1bWIuaGFzLWRvdC1zZXBhcmF0b3IgbGkrbGk6OmJlZm9yZXtjb250ZW50OiLCtyJ9LmJyZWFkY3J1bWIuaGFzLXN1Y2NlZWRzLXNlcGFyYXRvciBsaStsaTo6YmVmb3Jle2NvbnRlbnQ6IuKJuyJ9LmNhcmR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6LjI1cmVtO2JveC1zaGFkb3c6MCAuNWVtIDFlbSAtMC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4xKSwwIDBweCAwIDFweCByZ2JhKDEwLDEwLDEwLC4wMik7Y29sb3I6IzRhNGE0YTttYXgtd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uY2FyZC1mb290ZXI6Zmlyc3QtY2hpbGQsLmNhcmQtY29udGVudDpmaXJzdC1jaGlsZCwuY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtfS5jYXJkLWZvb3RlcjpsYXN0LWNoaWxkLC5jYXJkLWNvbnRlbnQ6bGFzdC1jaGlsZCwuY2FyZC1oZWFkZXI6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW19LmNhcmQtaGVhZGVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKTthbGlnbi1pdGVtczpzdHJldGNoO2JveC1zaGFkb3c6MCAuMTI1ZW0gLjI1ZW0gcmdiYSgxMCwxMCwxMCwuMSk7ZGlzcGxheTpmbGV4fS5jYXJkLWhlYWRlci10aXRsZXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6IzM2MzYzNjtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmc6Ljc1cmVtIDFyZW19LmNhcmQtaGVhZGVyLXRpdGxlLmlzLWNlbnRlcmVke2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNhcmQtaGVhZGVyLWljb257LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjpjdXJyZW50Q29sb3I7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MWVtO21hcmdpbjowO3BhZGRpbmc6MDthbGlnbi1pdGVtczpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzouNzVyZW0gMXJlbX0uY2FyZC1pbWFnZXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXJkLWltYWdlOmZpcnN0LWNoaWxkIGltZ3tib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW19LmNhcmQtaW1hZ2U6bGFzdC1jaGlsZCBpbWd7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtfS5jYXJkLWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO3BhZGRpbmc6MS41cmVtfS5jYXJkLWZvb3RlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLXRvcDoxcHggc29saWQgI2VkZWRlZDthbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6ZmxleH0uY2FyZC1mb290ZXItaXRlbXthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzouNzVyZW19LmNhcmQtZm9vdGVyLWl0ZW06bm90KDpsYXN0LWNoaWxkKXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNlZGVkZWR9LmNhcmQgLm1lZGlhOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToxLjVyZW19LmRyb3Bkb3due2Rpc3BsYXk6aW5saW5lLWZsZXg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246dG9wfS5kcm9wZG93bi5pcy1hY3RpdmUgLmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLmlzLWhvdmVyYWJsZTpob3ZlciAuZHJvcGRvd24tbWVudXtkaXNwbGF5OmJsb2NrfS5kcm9wZG93bi5pcy1yaWdodCAuZHJvcGRvd24tbWVudXtsZWZ0OmF1dG87cmlnaHQ6MH0uZHJvcGRvd24uaXMtdXAgLmRyb3Bkb3duLW1lbnV7Ym90dG9tOjEwMCU7cGFkZGluZy1ib3R0b206NHB4O3BhZGRpbmctdG9wOmluaXRpYWw7dG9wOmF1dG99LmRyb3Bkb3duLW1lbnV7ZGlzcGxheTpub25lO2xlZnQ6MDttaW4td2lkdGg6MTJyZW07cGFkZGluZy10b3A6NHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO3otaW5kZXg6MjB9LmRyb3Bkb3duLWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O2JveC1zaGFkb3c6MCAuNWVtIDFlbSAtMC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4xKSwwIDBweCAwIDFweCByZ2JhKDEwLDEwLDEwLC4wMik7cGFkZGluZy1ib3R0b206LjVyZW07cGFkZGluZy10b3A6LjVyZW19LmRyb3Bkb3duLWl0ZW17Y29sb3I6IzRhNGE0YTtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtwYWRkaW5nOi4zNzVyZW0gMXJlbTtwb3NpdGlvbjpyZWxhdGl2ZX1hLmRyb3Bkb3duLWl0ZW0sYnV0dG9uLmRyb3Bkb3duLWl0ZW17cGFkZGluZy1yaWdodDozcmVtO3RleHQtYWxpZ246aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6MTAwJX1hLmRyb3Bkb3duLWl0ZW06aG92ZXIsYnV0dG9uLmRyb3Bkb3duLWl0ZW06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiMwYTBhMGF9YS5kcm9wZG93bi1pdGVtLmlzLWFjdGl2ZSxidXR0b24uZHJvcGRvd24taXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmO2NvbG9yOiNmZmZ9LmRyb3Bkb3duLWRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjojZWRlZGVkO2JvcmRlcjpub25lO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDttYXJnaW46LjVyZW0gMH0ubGV2ZWx7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5sZXZlbCBjb2Rle2JvcmRlci1yYWRpdXM6NHB4fS5sZXZlbCBpbWd7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wfS5sZXZlbC5pcy1tb2JpbGV7ZGlzcGxheTpmbGV4fS5sZXZlbC5pcy1tb2JpbGUgLmxldmVsLWxlZnQsLmxldmVsLmlzLW1vYmlsZSAubGV2ZWwtcmlnaHR7ZGlzcGxheTpmbGV4fS5sZXZlbC5pcy1tb2JpbGUgLmxldmVsLWxlZnQrLmxldmVsLXJpZ2h0e21hcmdpbi10b3A6MH0ubGV2ZWwuaXMtbW9iaWxlIC5sZXZlbC1pdGVtOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTowO21hcmdpbi1yaWdodDouNzVyZW19LmxldmVsLmlzLW1vYmlsZSAubGV2ZWwtaXRlbTpub3QoLmlzLW5hcnJvdyl7ZmxleC1ncm93OjF9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5sZXZlbHtkaXNwbGF5OmZsZXh9LmxldmVsPi5sZXZlbC1pdGVtOm5vdCguaXMtbmFycm93KXtmbGV4LWdyb3c6MX19LmxldmVsLWl0ZW17YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWJhc2lzOmF1dG87ZmxleC1ncm93OjA7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5sZXZlbC1pdGVtIC50aXRsZSwubGV2ZWwtaXRlbSAuc3VidGl0bGV7bWFyZ2luLWJvdHRvbTowfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsubGV2ZWwtaXRlbTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206Ljc1cmVtfX0ubGV2ZWwtbGVmdCwubGV2ZWwtcmlnaHR7ZmxleC1iYXNpczphdXRvO2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjB9LmxldmVsLWxlZnQgLmxldmVsLWl0ZW0uaXMtZmxleGlibGUsLmxldmVsLXJpZ2h0IC5sZXZlbC1pdGVtLmlzLWZsZXhpYmxle2ZsZXgtZ3JvdzoxfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsubGV2ZWwtbGVmdCAubGV2ZWwtaXRlbTpub3QoOmxhc3QtY2hpbGQpLC5sZXZlbC1yaWdodCAubGV2ZWwtaXRlbTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouNzVyZW19fS5sZXZlbC1sZWZ0e2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmxldmVsLWxlZnQrLmxldmVsLXJpZ2h0e21hcmdpbi10b3A6MS41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmxldmVsLWxlZnR7ZGlzcGxheTpmbGV4fX0ubGV2ZWwtcmlnaHR7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmxldmVsLXJpZ2h0e2Rpc3BsYXk6ZmxleH19Lm1lZGlhe2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246aW5oZXJpdH0ubWVkaWEgLmNvbnRlbnQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0ubWVkaWEgLm1lZGlhe2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjE5LDIxOSwyMTksLjUpO2Rpc3BsYXk6ZmxleDtwYWRkaW5nLXRvcDouNzVyZW19Lm1lZGlhIC5tZWRpYSAuY29udGVudDpub3QoOmxhc3QtY2hpbGQpLC5tZWRpYSAubWVkaWEgLmNvbnRyb2w6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi41cmVtfS5tZWRpYSAubWVkaWEgLm1lZGlhe3BhZGRpbmctdG9wOi41cmVtfS5tZWRpYSAubWVkaWEgLm1lZGlhKy5tZWRpYXttYXJnaW4tdG9wOi41cmVtfS5tZWRpYSsubWVkaWF7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyMTksMjE5LDIxOSwuNSk7bWFyZ2luLXRvcDoxcmVtO3BhZGRpbmctdG9wOjFyZW19Lm1lZGlhLmlzLWxhcmdlKy5tZWRpYXttYXJnaW4tdG9wOjEuNXJlbTtwYWRkaW5nLXRvcDoxLjVyZW19Lm1lZGlhLWxlZnQsLm1lZGlhLXJpZ2h0e2ZsZXgtYmFzaXM6YXV0bztmbGV4LWdyb3c6MDtmbGV4LXNocmluazowfS5tZWRpYS1sZWZ0e21hcmdpbi1yaWdodDoxcmVtfS5tZWRpYS1yaWdodHttYXJnaW4tbGVmdDoxcmVtfS5tZWRpYS1jb250ZW50e2ZsZXgtYmFzaXM6YXV0bztmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO3RleHQtYWxpZ246aW5oZXJpdH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lm1lZGlhLWNvbnRlbnR7b3ZlcmZsb3cteDphdXRvfX0ubWVudXtmb250LXNpemU6MXJlbX0ubWVudS5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5tZW51LmlzLW1lZGl1bXtmb250LXNpemU6MS4yNXJlbX0ubWVudS5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5tZW51LWxpc3R7bGluZS1oZWlnaHQ6MS4yNX0ubWVudS1saXN0IGF7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6IzRhNGE0YTtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjVlbSAuNzVlbX0ubWVudS1saXN0IGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiMzNjM2MzZ9Lm1lbnUtbGlzdCBhLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0ubWVudS1saXN0IGxpIHVse2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZGJkYmRiO21hcmdpbjouNzVlbTtwYWRkaW5nLWxlZnQ6Ljc1ZW19Lm1lbnUtbGFiZWx7Y29sb3I6IzdhN2E3YTtmb250LXNpemU6Ljc1ZW07bGV0dGVyLXNwYWNpbmc6LjFlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lm1lbnUtbGFiZWw6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDoxZW19Lm1lbnUtbGFiZWw6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjFlbX0ubWVzc2FnZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjFyZW19Lm1lc3NhZ2Ugc3Ryb25ne2NvbG9yOmN1cnJlbnRDb2xvcn0ubWVzc2FnZSBhOm5vdCguYnV0dG9uKTpub3QoLnRhZyk6bm90KC5kcm9wZG93bi1pdGVtKXtjb2xvcjpjdXJyZW50Q29sb3I7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ubWVzc2FnZS5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5tZXNzYWdlLmlzLW1lZGl1bXtmb250LXNpemU6MS4yNXJlbX0ubWVzc2FnZS5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5tZXNzYWdlLmlzLXdoaXRle2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWVzc2FnZS5pcy13aGl0ZSAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwYTBhMGF9Lm1lc3NhZ2UuaXMtd2hpdGUgLm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6I2ZmZn0ubWVzc2FnZS5pcy1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmF9Lm1lc3NhZ2UuaXMtYmxhY2sgLm1lc3NhZ2UtaGVhZGVye2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtjb2xvcjojZmZmfS5tZXNzYWdlLmlzLWJsYWNrIC5tZXNzYWdlLWJvZHl7Ym9yZGVyLWNvbG9yOiMwYTBhMGF9Lm1lc3NhZ2UuaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZjZmZWY3fS5tZXNzYWdlLmlzLWxpZ2h0IC5tZXNzYWdlLWhlYWRlcntiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm1lc3NhZ2UuaXMtbGlnaHQgLm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6I2QyZjlkNn0ubWVzc2FnZS5pcy1kYXJre2JhY2tncm91bmQtY29sb3I6I2Y4ZmNmOX0ubWVzc2FnZS5pcy1kYXJrIC5tZXNzYWdlLWhlYWRlcntiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTg7Y29sb3I6I2ZmZn0ubWVzc2FnZS5pcy1kYXJrIC5tZXNzYWdlLWJvZHl7Ym9yZGVyLWNvbG9yOiM0NTk1NTh9Lm1lc3NhZ2UuaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY5ZjJ9Lm1lc3NhZ2UuaXMtcHJpbWFyeSAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmO2NvbG9yOiNmZmZ9Lm1lc3NhZ2UuaXMtcHJpbWFyeSAubWVzc2FnZS1ib2R5e2JvcmRlci1jb2xvcjojNTViZTZmO2NvbG9yOiMyZjdhNDF9Lm1lc3NhZ2UuaXMtbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiNlYmYwZmZ9Lm1lc3NhZ2UuaXMtbGluayAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmO2NvbG9yOiNmZmZ9Lm1lc3NhZ2UuaXMtbGluayAubWVzc2FnZS1ib2R5e2JvcmRlci1jb2xvcjojNDg3NmZmO2NvbG9yOiMwMDM3ZGJ9Lm1lc3NhZ2UuaXMtaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmZ9Lm1lc3NhZ2UuaXMtaW5mbyAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5tZXNzYWdlLmlzLWluZm8gLm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6I2YwZjhmZjtjb2xvcjojMDA0Zjk0fS5tZXNzYWdlLmlzLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojZWZmYWY1fS5tZXNzYWdlLmlzLXN1Y2Nlc3MgLm1lc3NhZ2UtaGVhZGVye2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZTtjb2xvcjojZmZmfS5tZXNzYWdlLmlzLXN1Y2Nlc3MgLm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6IzQ4Yzc4ZTtjb2xvcjojMjU3OTUzfS5tZXNzYWdlLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZmOWVifS5tZXNzYWdlLmlzLXdhcm5pbmcgLm1lc3NhZ2UtaGVhZGVye2JhY2tncm91bmQtY29sb3I6I2ZmZDk3NTtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubWVzc2FnZS5pcy13YXJuaW5nIC5tZXNzYWdlLWJvZHl7Ym9yZGVyLWNvbG9yOiNmZmQ5NzU7Y29sb3I6Izk0NmIwMH0ubWVzc2FnZS5pcy1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZmVlY2YwfS5tZXNzYWdlLmlzLWRhbmdlciAubWVzc2FnZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4O2NvbG9yOiNmZmZ9Lm1lc3NhZ2UuaXMtZGFuZ2VyIC5tZXNzYWdlLWJvZHl7Ym9yZGVyLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2NjMGYzNX0ubWVzc2FnZS1oZWFkZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6IzRhNGE0YTtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwO2NvbG9yOiNmZmY7ZGlzcGxheTpmbGV4O2ZvbnQtd2VpZ2h0OjcwMDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtsaW5lLWhlaWdodDoxLjI1O3BhZGRpbmc6Ljc1ZW0gMWVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5tZXNzYWdlLWhlYWRlciAuZGVsZXRle2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWxlZnQ6Ljc1ZW19Lm1lc3NhZ2UtaGVhZGVyKy5tZXNzYWdlLWJvZHl7Ym9yZGVyLXdpZHRoOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9Lm1lc3NhZ2UtYm9keXtib3JkZXItY29sb3I6I2RiZGJkYjtib3JkZXItcmFkaXVzOjRweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjAgMCAwIDRweDtjb2xvcjojNGE0YTRhO3BhZGRpbmc6MS4yNWVtIDEuNWVtfS5tZXNzYWdlLWJvZHkgY29kZSwubWVzc2FnZS1ib2R5IHByZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm1lc3NhZ2UtYm9keSBwcmUgY29kZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9Lm1vZGFse2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5Om5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6NDB9Lm1vZGFsLmlzLWFjdGl2ZXtkaXNwbGF5OmZsZXh9Lm1vZGFsLWJhY2tncm91bmR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC44Nil9Lm1vZGFsLWNvbnRlbnQsLm1vZGFsLWNhcmR7bWFyZ2luOjAgMjBweDttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAxNjBweCk7b3ZlcmZsb3c6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KXsubW9kYWwtY29udGVudCwubW9kYWwtY2FyZHttYXJnaW46MCBhdXRvO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDQwcHgpO3dpZHRoOjY0MHB4fX0ubW9kYWwtY2xvc2V7YmFja2dyb3VuZDpub25lO2hlaWdodDo0MHB4O3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjIwcHg7dG9wOjIwcHg7d2lkdGg6NDBweH0ubW9kYWwtY2FyZHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDQwcHgpO292ZXJmbG93OmhpZGRlbjstbXMtb3ZlcmZsb3cteTp2aXNpYmxlfS5tb2RhbC1jYXJkLWhlYWQsLm1vZGFsLWNhcmQtZm9vdHthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2Rpc3BsYXk6ZmxleDtmbGV4LXNocmluazowO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0ubW9kYWwtY2FyZC1oZWFke2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkYmRiZGI7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4fS5tb2RhbC1jYXJkLXRpdGxle2NvbG9yOiMzNjM2MzY7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MDtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjF9Lm1vZGFsLWNhcmQtZm9vdHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RiZGJkYn0ubW9kYWwtY2FyZC1mb290IC5idXR0b246bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjVlbX0ubW9kYWwtY2FyZC1ib2R5ey13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2JhY2tncm91bmQtY29sb3I6I2ZmZjtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO292ZXJmbG93OmF1dG87cGFkZGluZzoyMHB4fS5uYXZiYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO21pbi1oZWlnaHQ6MnJlbTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjMwfS5uYXZiYXIuaXMtd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiMwYTBhMGF9Lm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5re2NvbG9yOiMwYTBhMGF9Lm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Y29sb3I6IzBhMGEwYX0ubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6IzBhMGEwYX0ubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItYnVyZ2Vye2NvbG9yOiMwYTBhMGF9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluaywubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItZW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjojMGEwYTBhfS5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluay5pcy1hY3RpdmUsLm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Y29sb3I6IzBhMGEwYX0ubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOjphZnRlciwubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiMwYTBhMGF9Lm5hdmJhci5pcy13aGl0ZSAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXdoaXRlIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246aG92ZXIgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi5pcy1hY3RpdmUgLm5hdmJhci1saW5re2JhY2tncm91bmQtY29sb3I6I2YyZjJmMjtjb2xvcjojMGEwYTBhfS5uYXZiYXIuaXMtd2hpdGUgLm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX19Lm5hdmJhci5pcy1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMDtjb2xvcjojZmZmfS5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6OmFmdGVye2JvcmRlci1jb2xvcjojZmZmfS5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1idXJnZXJ7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NDBweCl7Lm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0Pi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1lbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1lbmQgLm5hdmJhci1saW5re2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMDtjb2xvcjojZmZmfS5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6OmFmdGVyLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLWJsYWNrIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246Zm9jdXMgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtYmxhY2sgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpob3ZlciAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1ibGFjayAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzBhMGEwYTtjb2xvcjojZmZmfX0ubmF2YmFyLmlzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2QyZjlkNjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmt7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNiY2Y2YzI7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1saWdodCAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1idXJnZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1saWdodCAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluaywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmsuaXMtYWN0aXZlLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1saWdodCAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYmNmNmMyO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6OmFmdGVyLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1saWdodCAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246aG92ZXIgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtbGlnaHQgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi5pcy1hY3RpdmUgLm5hdmJhci1saW5re2JhY2tncm91bmQtY29sb3I6I2JjZjZjMjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLWxpZ2h0IC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2O2NvbG9yOnJnYmEoMCwwLDAsLjcpfX0ubmF2YmFyLmlzLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4O2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGlua3tjb2xvcjojZmZmfS5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2Q4NDRlO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1idXJnZXJ7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NDBweCl7Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItc3RhcnQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluaywubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1lbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmsuaXMtYWN0aXZlLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItZW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2Q4NDRlO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOjphZnRlciwubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhcmsgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpmb2N1cyAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1kYXJrIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246aG92ZXIgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtZGFyayAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojM2Q4NDRlO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYXJrIC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4O2NvbG9yOiNmZmZ9fS5uYXZiYXIuaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1icmFuZD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5re2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0NWI0NjE7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6OmFmdGVye2JvcmRlci1jb2xvcjojZmZmfS5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWJ1cmdlcntjb2xvcjojZmZmfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0MHB4KXsubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWVuZD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjojZmZmfS5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluay5pcy1hY3RpdmUsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0NWI0NjE7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6OmFmdGVyLC5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6OmFmdGVye2JvcmRlci1jb2xvcjojZmZmfS5uYXZiYXIuaXMtcHJpbWFyeSAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpob3ZlciAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1wcmltYXJ5IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtYWN0aXZlIC5uYXZiYXItbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiM0NWI0NjE7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXByaW1hcnkgLm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Y29sb3I6I2ZmZn19Lm5hdmJhci5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmfS5uYXZiYXIuaXMtbGluayAubmF2YmFyLWJyYW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzJmNjNmZjtjb2xvcjojZmZmfS5uYXZiYXIuaXMtbGluayAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm5hdmJhci5pcy1saW5rIC5uYXZiYXItYnVyZ2Vye2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIuaXMtbGluayAubmF2YmFyLXN0YXJ0Pi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1saW5rIC5uYXZiYXItZW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQgLm5hdmJhci1saW5re2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1saW5rIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLWVuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzJmNjNmZjtjb2xvcjojZmZmfS5uYXZiYXIuaXMtbGluayAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazo6YWZ0ZXIsLm5hdmJhci5pcy1saW5rIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm5hdmJhci5pcy1saW5rIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246Zm9jdXMgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtbGluayAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmhvdmVyIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWxpbmsgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi5pcy1hY3RpdmUgLm5hdmJhci1saW5re2JhY2tncm91bmQtY29sb3I6IzJmNjNmZjtjb2xvcjojZmZmfS5uYXZiYXIuaXMtbGluayAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmfX0ubmF2YmFyLmlzLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWJyYW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLWluZm8gLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmt7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1pbmZvIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWluZm8gLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWluZm8gLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkN2VjZmY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1pbmZvIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1pbmZvIC5uYXZiYXItYnVyZ2Vye2NvbG9yOnJnYmEoMCwwLDAsLjcpfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0MHB4KXsubmF2YmFyLmlzLWluZm8gLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLWluZm8gLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWluZm8gLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmsuaXMtYWN0aXZlLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWluZm8gLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItZW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDdlY2ZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazo6YWZ0ZXIsLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtaW5mbyAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWluZm8gLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpob3ZlciAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1pbmZvIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtYWN0aXZlIC5uYXZiYXItbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiNkN2VjZmY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy1pbmZvIC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfX0ubmF2YmFyLmlzLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGlua3tjb2xvcjojZmZmfS5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2FiYjgxO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1idXJnZXJ7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NDBweCl7Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItc3RhcnQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluaywubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1lbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZCAubmF2YmFyLWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmsuaXMtYWN0aXZlLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItZW5kIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojM2FiYjgxO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOjphZnRlciwubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLXN1Y2Nlc3MgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bjpmb2N1cyAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246aG92ZXIgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtc3VjY2VzcyAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojM2FiYjgxO2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1zdWNjZXNzIC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbS5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlO2NvbG9yOiNmZmZ9fS5uYXZiYXIuaXMtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzU7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGlua3tjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZmZDI1Yztjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1icmFuZCAubmF2YmFyLWxpbms6OmFmdGVye2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1idXJnZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLXN0YXJ0Pi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmssLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kPi5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1lbmQgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluay5pcy1hY3RpdmUsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6Zm9jdXMsLm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQyNWM7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItc3RhcnQgLm5hdmJhci1saW5rOjphZnRlciwubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyl9Lm5hdmJhci5pcy13YXJuaW5nIC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd246Zm9jdXMgLm5hdmJhci1saW5rLC5uYXZiYXIuaXMtd2FybmluZyAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmhvdmVyIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi5pcy1hY3RpdmUgLm5hdmJhci1saW5re2JhY2tncm91bmQtY29sb3I6I2ZmZDI1Yztjb2xvcjpyZ2JhKDAsMCwwLC43KX0ubmF2YmFyLmlzLXdhcm5pbmcgLm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzU7Y29sb3I6cmdiYSgwLDAsMCwuNyl9fS5uYXZiYXIuaXMtZGFuZ2Vye2JhY2tncm91bmQtY29sb3I6I2YxNDY2ODtjb2xvcjojZmZmfS5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5re2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1icmFuZD5hLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQ+YS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWJyYW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItYnJhbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjJlNTU7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWJyYW5kIC5uYXZiYXItbGluazo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1idXJnZXJ7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4NDBweCl7Lm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1zdGFydD4ubmF2YmFyLWl0ZW0sLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1zdGFydCAubmF2YmFyLWxpbmssLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1lbmQ+Lm5hdmJhci1pdGVtLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItZW5kIC5uYXZiYXItbGlua3tjb2xvcjojZmZmfS5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItc3RhcnQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0PmEubmF2YmFyLWl0ZW06aG92ZXIsLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1zdGFydD5hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazpob3ZlciwubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluay5pcy1hY3RpdmUsLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1lbmQ+YS5uYXZiYXItaXRlbTpmb2N1cywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWVuZD5hLm5hdmJhci1pdGVtOmhvdmVyLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItZW5kPmEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtZGFuZ2VyIC5uYXZiYXItZW5kIC5uYXZiYXItbGluazpmb2N1cywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWVuZCAubmF2YmFyLWxpbms6aG92ZXIsLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZjJlNTU7Y29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLXN0YXJ0IC5uYXZiYXItbGluazo6YWZ0ZXIsLm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1lbmQgLm5hdmJhci1saW5rOjphZnRlcntib3JkZXItY29sb3I6I2ZmZn0ubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmhvdmVyIC5uYXZiYXItbGluaywubmF2YmFyLmlzLWRhbmdlciAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojZWYyZTU1O2NvbG9yOiNmZmZ9Lm5hdmJhci5pcy1kYW5nZXIgLm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2ZmZn19Lm5hdmJhcj4uY29udGFpbmVye2FsaWduLWl0ZW1zOnN0cmV0Y2g7ZGlzcGxheTpmbGV4O21pbi1oZWlnaHQ6MnJlbTt3aWR0aDoxMDAlfS5uYXZiYXIuaGFzLXNoYWRvd3tib3gtc2hhZG93OjAgMnB4IDAgMCAjZjVmNWY1fS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLC5uYXZiYXIuaXMtZml4ZWQtdG9we2xlZnQ6MDtwb3NpdGlvbjpmaXhlZDtyaWdodDowO3otaW5kZXg6MzB9Lm5hdmJhci5pcy1maXhlZC1ib3R0b217Ym90dG9tOjB9Lm5hdmJhci5pcy1maXhlZC1ib3R0b20uaGFzLXNoYWRvd3tib3gtc2hhZG93OjAgLTJweCAwIDAgI2Y1ZjVmNX0ubmF2YmFyLmlzLWZpeGVkLXRvcHt0b3A6MH1odG1sLmhhcy1uYXZiYXItZml4ZWQtdG9wLGJvZHkuaGFzLW5hdmJhci1maXhlZC10b3B7cGFkZGluZy10b3A6MnJlbX1odG1sLmhhcy1uYXZiYXItZml4ZWQtYm90dG9tLGJvZHkuaGFzLW5hdmJhci1maXhlZC1ib3R0b217cGFkZGluZy1ib3R0b206MnJlbX0ubmF2YmFyLWJyYW5kLC5uYXZiYXItdGFic3thbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6ZmxleDtmbGV4LXNocmluazowO21pbi1oZWlnaHQ6MnJlbX0ubmF2YmFyLWJyYW5kIGEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci1icmFuZCBhLm5hdmJhci1pdGVtOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0ubmF2YmFyLXRhYnN7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7bWF4LXdpZHRoOjEwMHZ3O292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbn0ubmF2YmFyLWJ1cmdlcntjb2xvcjojNGE0YTRhO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjJyZW07cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MnJlbTttYXJnaW4tbGVmdDphdXRvfS5uYXZiYXItYnVyZ2VyIHNwYW57YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7ZGlzcGxheTpibG9jaztoZWlnaHQ6MXB4O2xlZnQ6Y2FsYyg1MCUgLSA4cHgpO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zaXRpb24tZHVyYXRpb246ODZtczt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3Isb3BhY2l0eSx0cmFuc2Zvcm07dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7d2lkdGg6MTZweH0ubmF2YmFyLWJ1cmdlciBzcGFuOm50aC1jaGlsZCgxKXt0b3A6Y2FsYyg1MCUgLSA2cHgpfS5uYXZiYXItYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDIpe3RvcDpjYWxjKDUwJSAtIDFweCl9Lm5hdmJhci1idXJnZXIgc3BhbjpudGgtY2hpbGQoMyl7dG9wOmNhbGMoNTAlICsgNHB4KX0ubmF2YmFyLWJ1cmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA1KX0ubmF2YmFyLWJ1cmdlci5pcy1hY3RpdmUgc3BhbjpudGgtY2hpbGQoMSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KSByb3RhdGUoNDVkZWcpfS5uYXZiYXItYnVyZ2VyLmlzLWFjdGl2ZSBzcGFuOm50aC1jaGlsZCgyKXtvcGFjaXR5OjB9Lm5hdmJhci1idXJnZXIuaXMtYWN0aXZlIHNwYW46bnRoLWNoaWxkKDMpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpIHJvdGF0ZSgtNDVkZWcpfS5uYXZiYXItbWVudXtkaXNwbGF5Om5vbmV9Lm5hdmJhci1pdGVtLC5uYXZiYXItbGlua3tjb2xvcjojNGE0YTRhO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS41O3BhZGRpbmc6LjVyZW0gLjc1cmVtO3Bvc2l0aW9uOnJlbGF0aXZlfS5uYXZiYXItaXRlbSAuaWNvbjpvbmx5LWNoaWxkLC5uYXZiYXItbGluayAuaWNvbjpvbmx5LWNoaWxke21hcmdpbi1sZWZ0Oi0wLjI1cmVtO21hcmdpbi1yaWdodDotMC4yNXJlbX1hLm5hdmJhci1pdGVtLC5uYXZiYXItbGlua3tjdXJzb3I6cG9pbnRlcn1hLm5hdmJhci1pdGVtOmZvY3VzLGEubmF2YmFyLWl0ZW06Zm9jdXMtd2l0aGluLGEubmF2YmFyLWl0ZW06aG92ZXIsYS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXItbGluazpmb2N1cy13aXRoaW4sLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2NvbG9yOiM0ODc2ZmZ9Lm5hdmJhci1pdGVte2ZsZXgtZ3JvdzowO2ZsZXgtc2hyaW5rOjB9Lm5hdmJhci1pdGVtIGltZ3ttYXgtaGVpZ2h0OjEuNzVyZW19Lm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bntwYWRkaW5nOjB9Lm5hdmJhci1pdGVtLmlzLWV4cGFuZGVke2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjF9Lm5hdmJhci1pdGVtLmlzLXRhYntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDApO21pbi1oZWlnaHQ6MnJlbTtwYWRkaW5nLWJvdHRvbTpjYWxjKC41cmVtIC0gMXB4KX0ubmF2YmFyLWl0ZW0uaXMtdGFiOmZvY3VzLC5uYXZiYXItaXRlbS5pcy10YWI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1ib3R0b20tY29sb3I6IzQ4NzZmZn0ubmF2YmFyLWl0ZW0uaXMtdGFiLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNDg3NmZmO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDozcHg7Y29sb3I6IzQ4NzZmZjtwYWRkaW5nLWJvdHRvbTpjYWxjKC41cmVtIC0gM3B4KX0ubmF2YmFyLWNvbnRlbnR7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX0ubmF2YmFyLWxpbms6bm90KC5pcy1hcnJvd2xlc3Mpe3BhZGRpbmctcmlnaHQ6Mi41ZW19Lm5hdmJhci1saW5rOm5vdCguaXMtYXJyb3dsZXNzKTo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiM0ODc2ZmY7bWFyZ2luLXRvcDotMC4zNzVlbTtyaWdodDoxLjEyNWVtfS5uYXZiYXItZHJvcGRvd257Zm9udC1zaXplOi44NzVyZW07cGFkZGluZy1ib3R0b206LjVyZW07cGFkZGluZy10b3A6LjVyZW19Lm5hdmJhci1kcm9wZG93biAubmF2YmFyLWl0ZW17cGFkZGluZy1sZWZ0OjEuNXJlbTtwYWRkaW5nLXJpZ2h0OjEuNXJlbX0ubmF2YmFyLWRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlcjpub25lO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MnB4O21hcmdpbjouNXJlbSAwfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDgzOXB4KXsubmF2YmFyPi5jb250YWluZXJ7ZGlzcGxheTpibG9ja30ubmF2YmFyLWJyYW5kIC5uYXZiYXItaXRlbSwubmF2YmFyLXRhYnMgLm5hdmJhci1pdGVte2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9Lm5hdmJhci1saW5rOjphZnRlcntkaXNwbGF5Om5vbmV9Lm5hdmJhci1tZW51e2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3gtc2hhZG93OjAgOHB4IDE2cHggcmdiYSgxMCwxMCwxMCwuMSk7cGFkZGluZzouNXJlbSAwfS5uYXZiYXItbWVudS5pcy1hY3RpdmV7ZGlzcGxheTpibG9ja30ubmF2YmFyLmlzLWZpeGVkLWJvdHRvbS10b3VjaCwubmF2YmFyLmlzLWZpeGVkLXRvcC10b3VjaHtsZWZ0OjA7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt6LWluZGV4OjMwfS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLXRvdWNoe2JvdHRvbTowfS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLXRvdWNoLmhhcy1zaGFkb3d7Ym94LXNoYWRvdzowIC0ycHggM3B4IHJnYmEoMTAsMTAsMTAsLjEpfS5uYXZiYXIuaXMtZml4ZWQtdG9wLXRvdWNoe3RvcDowfS5uYXZiYXIuaXMtZml4ZWQtdG9wIC5uYXZiYXItbWVudSwubmF2YmFyLmlzLWZpeGVkLXRvcC10b3VjaCAubmF2YmFyLW1lbnV7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMnJlbSk7b3ZlcmZsb3c6YXV0b31odG1sLmhhcy1uYXZiYXItZml4ZWQtdG9wLXRvdWNoLGJvZHkuaGFzLW5hdmJhci1maXhlZC10b3AtdG91Y2h7cGFkZGluZy10b3A6MnJlbX1odG1sLmhhcy1uYXZiYXItZml4ZWQtYm90dG9tLXRvdWNoLGJvZHkuaGFzLW5hdmJhci1maXhlZC1ib3R0b20tdG91Y2h7cGFkZGluZy1ib3R0b206MnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5uYXZiYXIsLm5hdmJhci1tZW51LC5uYXZiYXItc3RhcnQsLm5hdmJhci1lbmR7YWxpZ24taXRlbXM6c3RyZXRjaDtkaXNwbGF5OmZsZXh9Lm5hdmJhcnttaW4taGVpZ2h0OjJyZW19Lm5hdmJhci5pcy1zcGFjZWR7cGFkZGluZzoxcmVtIDJyZW19Lm5hdmJhci5pcy1zcGFjZWQgLm5hdmJhci1zdGFydCwubmF2YmFyLmlzLXNwYWNlZCAubmF2YmFyLWVuZHthbGlnbi1pdGVtczpjZW50ZXJ9Lm5hdmJhci5pcy1zcGFjZWQgYS5uYXZiYXItaXRlbSwubmF2YmFyLmlzLXNwYWNlZCAubmF2YmFyLWxpbmt7Ym9yZGVyLXJhZGl1czo0cHh9Lm5hdmJhci5pcy10cmFuc3BhcmVudCBhLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXIuaXMtdHJhbnNwYXJlbnQgYS5uYXZiYXItaXRlbTpob3ZlciwubmF2YmFyLmlzLXRyYW5zcGFyZW50IGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXIuaXMtdHJhbnNwYXJlbnQgLm5hdmJhci1saW5rOmZvY3VzLC5uYXZiYXIuaXMtdHJhbnNwYXJlbnQgLm5hdmJhci1saW5rOmhvdmVyLC5uYXZiYXIuaXMtdHJhbnNwYXJlbnQgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCkgIWltcG9ydGFudH0ubmF2YmFyLmlzLXRyYW5zcGFyZW50IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtYWN0aXZlIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXRyYW5zcGFyZW50IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtaG92ZXJhYmxlOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLmlzLXRyYW5zcGFyZW50IC5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24uaXMtaG92ZXJhYmxlOmZvY3VzLXdpdGhpbiAubmF2YmFyLWxpbmssLm5hdmJhci5pcy10cmFuc3BhcmVudCAubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWhvdmVyYWJsZTpob3ZlciAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApICFpbXBvcnRhbnR9Lm5hdmJhci5pcy10cmFuc3BhcmVudCAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW06Zm9jdXMsLm5hdmJhci5pcy10cmFuc3BhcmVudCAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2NvbG9yOiMwYTBhMGF9Lm5hdmJhci5pcy10cmFuc3BhcmVudCAubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNDg3NmZmfS5uYXZiYXItYnVyZ2Vye2Rpc3BsYXk6bm9uZX0ubmF2YmFyLWl0ZW0sLm5hdmJhci1saW5re2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9Lm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bnthbGlnbi1pdGVtczpzdHJldGNofS5uYXZiYXItaXRlbS5oYXMtZHJvcGRvd24tdXAgLm5hdmJhci1saW5rOjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKDEzNWRlZykgdHJhbnNsYXRlKDAuMjVlbSwgLTAuMjVlbSl9Lm5hdmJhci1pdGVtLmhhcy1kcm9wZG93bi11cCAubmF2YmFyLWRyb3Bkb3due2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNkYmRiZGI7Ym9yZGVyLXJhZGl1czo2cHggNnB4IDAgMDtib3JkZXItdG9wOm5vbmU7Ym90dG9tOjEwMCU7Ym94LXNoYWRvdzowIC04cHggOHB4IHJnYmEoMTAsMTAsMTAsLjEpO3RvcDphdXRvfS5uYXZiYXItaXRlbS5pcy1hY3RpdmUgLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmZvY3VzIC5uYXZiYXItZHJvcGRvd24sLm5hdmJhci1pdGVtLmlzLWhvdmVyYWJsZTpmb2N1cy13aXRoaW4gLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmhvdmVyIC5uYXZiYXItZHJvcGRvd257ZGlzcGxheTpibG9ja30ubmF2YmFyLmlzLXNwYWNlZCAubmF2YmFyLWl0ZW0uaXMtYWN0aXZlIC5uYXZiYXItZHJvcGRvd24sLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSAubmF2YmFyLWRyb3Bkb3duLmlzLWJveGVkLC5uYXZiYXIuaXMtc3BhY2VkIC5uYXZiYXItaXRlbS5pcy1ob3ZlcmFibGU6Zm9jdXMgLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmZvY3VzIC5uYXZiYXItZHJvcGRvd24uaXMtYm94ZWQsLm5hdmJhci5pcy1zcGFjZWQgLm5hdmJhci1pdGVtLmlzLWhvdmVyYWJsZTpmb2N1cy13aXRoaW4gLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmZvY3VzLXdpdGhpbiAubmF2YmFyLWRyb3Bkb3duLmlzLWJveGVkLC5uYXZiYXIuaXMtc3BhY2VkIC5uYXZiYXItaXRlbS5pcy1ob3ZlcmFibGU6aG92ZXIgLm5hdmJhci1kcm9wZG93biwubmF2YmFyLWl0ZW0uaXMtaG92ZXJhYmxlOmhvdmVyIC5uYXZiYXItZHJvcGRvd24uaXMtYm94ZWR7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG87dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9Lm5hdmJhci1tZW51e2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjB9Lm5hdmJhci1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDttYXJnaW4tcmlnaHQ6YXV0b30ubmF2YmFyLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luLWxlZnQ6YXV0b30ubmF2YmFyLWRyb3Bkb3due2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcDoycHggc29saWQgI2RiZGJkYjtib3gtc2hhZG93OjAgOHB4IDhweCByZ2JhKDEwLDEwLDEwLC4xKTtkaXNwbGF5Om5vbmU7Zm9udC1zaXplOi44NzVyZW07bGVmdDowO21pbi13aWR0aDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO3otaW5kZXg6MjB9Lm5hdmJhci1kcm9wZG93biAubmF2YmFyLWl0ZW17cGFkZGluZzouMzc1cmVtIDFyZW07d2hpdGUtc3BhY2U6bm93cmFwfS5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbXtwYWRkaW5nLXJpZ2h0OjNyZW19Lm5hdmJhci1kcm9wZG93biBhLm5hdmJhci1pdGVtOmZvY3VzLC5uYXZiYXItZHJvcGRvd24gYS5uYXZiYXItaXRlbTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Y29sb3I6IzBhMGEwYX0ubmF2YmFyLWRyb3Bkb3duIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTtjb2xvcjojNDg3NmZmfS5uYXZiYXIuaXMtc3BhY2VkIC5uYXZiYXItZHJvcGRvd24sLm5hdmJhci1kcm9wZG93bi5pcy1ib3hlZHtib3JkZXItcmFkaXVzOjZweDtib3JkZXItdG9wOm5vbmU7Ym94LXNoYWRvdzowIDhweCA4cHggcmdiYSgxMCwxMCwxMCwuMSksMCAwIDAgMXB4IHJnYmEoMTAsMTAsMTAsLjEpO2Rpc3BsYXk6YmxvY2s7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOmNhbGMoMTAwJSArICgtNHB4KSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCk7dHJhbnNpdGlvbi1kdXJhdGlvbjo4Nm1zO3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eSx0cmFuc2Zvcm19Lm5hdmJhci1kcm9wZG93bi5pcy1yaWdodHtsZWZ0OmF1dG87cmlnaHQ6MH0ubmF2YmFyLWRpdmlkZXJ7ZGlzcGxheTpibG9ja30ubmF2YmFyPi5jb250YWluZXIgLm5hdmJhci1icmFuZCwuY29udGFpbmVyPi5uYXZiYXIgLm5hdmJhci1icmFuZHttYXJnaW4tbGVmdDotMC43NXJlbX0ubmF2YmFyPi5jb250YWluZXIgLm5hdmJhci1tZW51LC5jb250YWluZXI+Lm5hdmJhciAubmF2YmFyLW1lbnV7bWFyZ2luLXJpZ2h0Oi0wLjc1cmVtfS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLWRlc2t0b3AsLm5hdmJhci5pcy1maXhlZC10b3AtZGVza3RvcHtsZWZ0OjA7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt6LWluZGV4OjMwfS5uYXZiYXIuaXMtZml4ZWQtYm90dG9tLWRlc2t0b3B7Ym90dG9tOjB9Lm5hdmJhci5pcy1maXhlZC1ib3R0b20tZGVza3RvcC5oYXMtc2hhZG93e2JveC1zaGFkb3c6MCAtMnB4IDNweCByZ2JhKDEwLDEwLDEwLC4xKX0ubmF2YmFyLmlzLWZpeGVkLXRvcC1kZXNrdG9we3RvcDowfWh0bWwuaGFzLW5hdmJhci1maXhlZC10b3AtZGVza3RvcCxib2R5Lmhhcy1uYXZiYXItZml4ZWQtdG9wLWRlc2t0b3B7cGFkZGluZy10b3A6MnJlbX1odG1sLmhhcy1uYXZiYXItZml4ZWQtYm90dG9tLWRlc2t0b3AsYm9keS5oYXMtbmF2YmFyLWZpeGVkLWJvdHRvbS1kZXNrdG9we3BhZGRpbmctYm90dG9tOjJyZW19aHRtbC5oYXMtc3BhY2VkLW5hdmJhci1maXhlZC10b3AsYm9keS5oYXMtc3BhY2VkLW5hdmJhci1maXhlZC10b3B7cGFkZGluZy10b3A6NHJlbX1odG1sLmhhcy1zcGFjZWQtbmF2YmFyLWZpeGVkLWJvdHRvbSxib2R5Lmhhcy1zcGFjZWQtbmF2YmFyLWZpeGVkLWJvdHRvbXtwYWRkaW5nLWJvdHRvbTo0cmVtfWEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5uYXZiYXItbGluay5pcy1hY3RpdmV7Y29sb3I6IzBhMGEwYX1hLm5hdmJhci1pdGVtLmlzLWFjdGl2ZTpub3QoOmZvY3VzKTpub3QoOmhvdmVyKSwubmF2YmFyLWxpbmsuaXMtYWN0aXZlOm5vdCg6Zm9jdXMpOm5vdCg6aG92ZXIpe2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0ubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmZvY3VzIC5uYXZiYXItbGluaywubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duOmhvdmVyIC5uYXZiYXItbGluaywubmF2YmFyLWl0ZW0uaGFzLWRyb3Bkb3duLmlzLWFjdGl2ZSAubmF2YmFyLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhfX0uaGVyby5pcy1mdWxsaGVpZ2h0LXdpdGgtbmF2YmFye21pbi1oZWlnaHQ6Y2FsYygxMDB2aCAtIDJyZW0pfS5wYWdpbmF0aW9ue2ZvbnQtc2l6ZToxcmVtO21hcmdpbjotMC4yNXJlbX0ucGFnaW5hdGlvbi5pcy1zbWFsbHtmb250LXNpemU6Ljc1cmVtfS5wYWdpbmF0aW9uLmlzLW1lZGl1bXtmb250LXNpemU6MS4yNXJlbX0ucGFnaW5hdGlvbi5pcy1sYXJnZXtmb250LXNpemU6MS41cmVtfS5wYWdpbmF0aW9uLmlzLXJvdW5kZWQgLnBhZ2luYXRpb24tcHJldmlvdXMsLnBhZ2luYXRpb24uaXMtcm91bmRlZCAucGFnaW5hdGlvbi1uZXh0e3BhZGRpbmctbGVmdDoxZW07cGFkZGluZy1yaWdodDoxZW07Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnBhZ2luYXRpb24uaXMtcm91bmRlZCAucGFnaW5hdGlvbi1saW5re2JvcmRlci1yYWRpdXM6OTk5OXB4fS5wYWdpbmF0aW9uLC5wYWdpbmF0aW9uLWxpc3R7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLW5leHQsLnBhZ2luYXRpb24tbGluaywucGFnaW5hdGlvbi1lbGxpcHNpc3tmb250LXNpemU6MWVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOi4yNXJlbTtwYWRkaW5nLWxlZnQ6LjVlbTtwYWRkaW5nLXJpZ2h0Oi41ZW07dGV4dC1hbGlnbjpjZW50ZXJ9LnBhZ2luYXRpb24tcHJldmlvdXMsLnBhZ2luYXRpb24tbmV4dCwucGFnaW5hdGlvbi1saW5re2JvcmRlci1jb2xvcjojZGJkYmRiO2NvbG9yOiMzNjM2MzY7bWluLXdpZHRoOjIuNWVtfS5wYWdpbmF0aW9uLXByZXZpb3VzOmhvdmVyLC5wYWdpbmF0aW9uLW5leHQ6aG92ZXIsLnBhZ2luYXRpb24tbGluazpob3Zlcntib3JkZXItY29sb3I6I2I1YjViNTtjb2xvcjojMzYzNjM2fS5wYWdpbmF0aW9uLXByZXZpb3VzOmZvY3VzLC5wYWdpbmF0aW9uLW5leHQ6Zm9jdXMsLnBhZ2luYXRpb24tbGluazpmb2N1c3tib3JkZXItY29sb3I6IzQ4NWZjN30ucGFnaW5hdGlvbi1wcmV2aW91czphY3RpdmUsLnBhZ2luYXRpb24tbmV4dDphY3RpdmUsLnBhZ2luYXRpb24tbGluazphY3RpdmV7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgxMCwxMCwxMCwuMil9LnBhZ2luYXRpb24tcHJldmlvdXNbZGlzYWJsZWRdLC5wYWdpbmF0aW9uLW5leHRbZGlzYWJsZWRdLC5wYWdpbmF0aW9uLWxpbmtbZGlzYWJsZWRde2JhY2tncm91bmQtY29sb3I6I2RiZGJkYjtib3JkZXItY29sb3I6I2RiZGJkYjtib3gtc2hhZG93Om5vbmU7Y29sb3I6IzdhN2E3YTtvcGFjaXR5Oi41fS5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLW5leHR7cGFkZGluZy1sZWZ0Oi43NWVtO3BhZGRpbmctcmlnaHQ6Ljc1ZW07d2hpdGUtc3BhY2U6bm93cmFwfS5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudHtiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Ym9yZGVyLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0ucGFnaW5hdGlvbi1lbGxpcHNpc3tjb2xvcjojYjViNWI1O3BvaW50ZXItZXZlbnRzOm5vbmV9LnBhZ2luYXRpb24tbGlzdHtmbGV4LXdyYXA6d3JhcH0ucGFnaW5hdGlvbi1saXN0IGxpe2xpc3Qtc3R5bGU6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LnBhZ2luYXRpb257ZmxleC13cmFwOndyYXB9LnBhZ2luYXRpb24tcHJldmlvdXMsLnBhZ2luYXRpb24tbmV4dHtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxfS5wYWdpbmF0aW9uLWxpc3QgbGl7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5wYWdpbmF0aW9uLWxpc3R7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtvcmRlcjoxfS5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLW5leHQsLnBhZ2luYXRpb24tbGluaywucGFnaW5hdGlvbi1lbGxpcHNpc3ttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDowfS5wYWdpbmF0aW9uLXByZXZpb3Vze29yZGVyOjJ9LnBhZ2luYXRpb24tbmV4dHtvcmRlcjozfS5wYWdpbmF0aW9ue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjB9LnBhZ2luYXRpb24uaXMtY2VudGVyZWQgLnBhZ2luYXRpb24tcHJldmlvdXN7b3JkZXI6MX0ucGFnaW5hdGlvbi5pcy1jZW50ZXJlZCAucGFnaW5hdGlvbi1saXN0e2p1c3RpZnktY29udGVudDpjZW50ZXI7b3JkZXI6Mn0ucGFnaW5hdGlvbi5pcy1jZW50ZXJlZCAucGFnaW5hdGlvbi1uZXh0e29yZGVyOjN9LnBhZ2luYXRpb24uaXMtcmlnaHQgLnBhZ2luYXRpb24tcHJldmlvdXN7b3JkZXI6MX0ucGFnaW5hdGlvbi5pcy1yaWdodCAucGFnaW5hdGlvbi1uZXh0e29yZGVyOjJ9LnBhZ2luYXRpb24uaXMtcmlnaHQgLnBhZ2luYXRpb24tbGlzdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7b3JkZXI6M319LnBhbmVse2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaGFkb3c6MCAuNWVtIDFlbSAtMC4xMjVlbSByZ2JhKDEwLDEwLDEwLC4xKSwwIDBweCAwIDFweCByZ2JhKDEwLDEwLDEwLC4wMik7Zm9udC1zaXplOjFyZW19LnBhbmVsOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToxLjVyZW19LnBhbmVsLmlzLXdoaXRlIC5wYW5lbC1oZWFkaW5ne2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMGEwYTBhfS5wYW5lbC5pcy13aGl0ZSAucGFuZWwtdGFicyBhLmlzLWFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOiNmZmZ9LnBhbmVsLmlzLXdoaXRlIC5wYW5lbC1ibG9jay5pcy1hY3RpdmUgLnBhbmVsLWljb257Y29sb3I6I2ZmZn0ucGFuZWwuaXMtYmxhY2sgLnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2NvbG9yOiNmZmZ9LnBhbmVsLmlzLWJsYWNrIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6IzBhMGEwYX0ucGFuZWwuaXMtYmxhY2sgLnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojMGEwYTBhfS5wYW5lbC5pcy1saWdodCAucGFuZWwtaGVhZGluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNkMmY5ZDY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9LnBhbmVsLmlzLWxpZ2h0IC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6I2QyZjlkNn0ucGFuZWwuaXMtbGlnaHQgLnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojZDJmOWQ2fS5wYW5lbC5pcy1kYXJrIC5wYW5lbC1oZWFkaW5ne2JhY2tncm91bmQtY29sb3I6IzQ1OTU1ODtjb2xvcjojZmZmfS5wYW5lbC5pcy1kYXJrIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6IzQ1OTU1OH0ucGFuZWwuaXMtZGFyayAucGFuZWwtYmxvY2suaXMtYWN0aXZlIC5wYW5lbC1pY29ue2NvbG9yOiM0NTk1NTh9LnBhbmVsLmlzLXByaW1hcnkgLnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmO2NvbG9yOiNmZmZ9LnBhbmVsLmlzLXByaW1hcnkgLnBhbmVsLXRhYnMgYS5pcy1hY3RpdmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNTViZTZmfS5wYW5lbC5pcy1wcmltYXJ5IC5wYW5lbC1ibG9jay5pcy1hY3RpdmUgLnBhbmVsLWljb257Y29sb3I6IzU1YmU2Zn0ucGFuZWwuaXMtbGluayAucGFuZWwtaGVhZGluZ3tiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmY7Y29sb3I6I2ZmZn0ucGFuZWwuaXMtbGluayAucGFuZWwtdGFicyBhLmlzLWFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOiM0ODc2ZmZ9LnBhbmVsLmlzLWxpbmsgLnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojNDg3NmZmfS5wYW5lbC5pcy1pbmZvIC5wYW5lbC1oZWFkaW5ne2JhY2tncm91bmQtY29sb3I6I2YwZjhmZjtjb2xvcjpyZ2JhKDAsMCwwLC43KX0ucGFuZWwuaXMtaW5mbyAucGFuZWwtdGFicyBhLmlzLWFjdGl2ZXtib3JkZXItYm90dG9tLWNvbG9yOiNmMGY4ZmZ9LnBhbmVsLmlzLWluZm8gLnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojZjBmOGZmfS5wYW5lbC5pcy1zdWNjZXNzIC5wYW5lbC1oZWFkaW5ne2JhY2tncm91bmQtY29sb3I6IzQ4Yzc4ZTtjb2xvcjojZmZmfS5wYW5lbC5pcy1zdWNjZXNzIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6IzQ4Yzc4ZX0ucGFuZWwuaXMtc3VjY2VzcyAucGFuZWwtYmxvY2suaXMtYWN0aXZlIC5wYW5lbC1pY29ue2NvbG9yOiM0OGM3OGV9LnBhbmVsLmlzLXdhcm5pbmcgLnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5wYW5lbC5pcy13YXJuaW5nIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZDk3NX0ucGFuZWwuaXMtd2FybmluZyAucGFuZWwtYmxvY2suaXMtYWN0aXZlIC5wYW5lbC1pY29ue2NvbG9yOiNmZmQ5NzV9LnBhbmVsLmlzLWRhbmdlciAucGFuZWwtaGVhZGluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmMTQ2Njg7Y29sb3I6I2ZmZn0ucGFuZWwuaXMtZGFuZ2VyIC5wYW5lbC10YWJzIGEuaXMtYWN0aXZle2JvcmRlci1ib3R0b20tY29sb3I6I2YxNDY2OH0ucGFuZWwuaXMtZGFuZ2VyIC5wYW5lbC1ibG9jay5pcy1hY3RpdmUgLnBhbmVsLWljb257Y29sb3I6I2YxNDY2OH0ucGFuZWwtdGFiczpub3QoOmxhc3QtY2hpbGQpLC5wYW5lbC1ibG9jazpub3QoOmxhc3QtY2hpbGQpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZGVkZWR9LnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1jb2xvcjojZWRlZGVkO2JvcmRlci1yYWRpdXM6NnB4IDZweCAwIDA7Y29sb3I6IzM2MzYzNjtmb250LXNpemU6MS4yNWVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxLjI1O3BhZGRpbmc6Ljc1ZW0gMWVtfS5wYW5lbC10YWJze2FsaWduLWl0ZW1zOmZsZXgtZW5kO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6Ljg3NWVtO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnBhbmVsLXRhYnMgYXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGJkYmRiO21hcmdpbi1ib3R0b206LTFweDtwYWRkaW5nOi41ZW19LnBhbmVsLXRhYnMgYS5pcy1hY3RpdmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjojNGE0YTRhO2NvbG9yOiMzNjM2MzZ9LnBhbmVsLWxpc3QgYXtjb2xvcjojNGE0YTRhfS5wYW5lbC1saXN0IGE6aG92ZXJ7Y29sb3I6IzQ4NzZmZn0ucGFuZWwtYmxvY2t7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiMzNjM2MzY7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6LjVlbSAuNzVlbX0ucGFuZWwtYmxvY2sgaW5wdXRbdHlwZT1jaGVja2JveF17bWFyZ2luLXJpZ2h0Oi43NWVtfS5wYW5lbC1ibG9jaz4uY29udHJvbHtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO3dpZHRoOjEwMCV9LnBhbmVsLWJsb2NrLmlzLXdyYXBwZWR7ZmxleC13cmFwOndyYXB9LnBhbmVsLWJsb2NrLmlzLWFjdGl2ZXtib3JkZXItbGVmdC1jb2xvcjojNDg3NmZmO2NvbG9yOiMzNjM2MzZ9LnBhbmVsLWJsb2NrLmlzLWFjdGl2ZSAucGFuZWwtaWNvbntjb2xvcjojNDg3NmZmfS5wYW5lbC1ibG9jazpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweH1hLnBhbmVsLWJsb2NrLGxhYmVsLnBhbmVsLWJsb2Nre2N1cnNvcjpwb2ludGVyfWEucGFuZWwtYmxvY2s6aG92ZXIsbGFiZWwucGFuZWwtYmxvY2s6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1fS5wYW5lbC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxNHB4O2hlaWdodDoxZW07bGluZS1oZWlnaHQ6MWVtO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcDt3aWR0aDoxZW07Y29sb3I6IzdhN2E3YTttYXJnaW4tcmlnaHQ6Ljc1ZW19LnBhbmVsLWljb24gLmZhe2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXR9LnRhYnN7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7YWxpZ24taXRlbXM6c3RyZXRjaDtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjFyZW07anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47b3ZlcmZsb3c6aGlkZGVuO292ZXJmbG93LXg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9LnRhYnMgYXthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGJkYmRiO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHg7Y29sb3I6IzRhNGE0YTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW4tYm90dG9tOi0xcHg7cGFkZGluZzouNWVtIDFlbTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnRhYnMgYTpob3Zlcntib3JkZXItYm90dG9tLWNvbG9yOiMzNjM2MzY7Y29sb3I6IzM2MzYzNn0udGFicyBsaXtkaXNwbGF5OmJsb2NrfS50YWJzIGxpLmlzLWFjdGl2ZSBhe2JvcmRlci1ib3R0b20tY29sb3I6IzQ4NzZmZjtjb2xvcjojNDg3NmZmfS50YWJzIHVse2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItYm90dG9tLWNvbG9yOiNkYmRiZGI7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOjFweDtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0udGFicyB1bC5pcy1sZWZ0e3BhZGRpbmctcmlnaHQ6Ljc1ZW19LnRhYnMgdWwuaXMtY2VudGVye2ZsZXg6bm9uZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctbGVmdDouNzVlbTtwYWRkaW5nLXJpZ2h0Oi43NWVtfS50YWJzIHVsLmlzLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nLWxlZnQ6Ljc1ZW19LnRhYnMgLmljb246Zmlyc3QtY2hpbGR7bWFyZ2luLXJpZ2h0Oi41ZW19LnRhYnMgLmljb246bGFzdC1jaGlsZHttYXJnaW4tbGVmdDouNWVtfS50YWJzLmlzLWNlbnRlcmVkIHVse2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnRhYnMuaXMtcmlnaHQgdWx7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS50YWJzLmlzLWJveGVkIGF7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDB9LnRhYnMuaXMtYm94ZWQgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGJkYmRifS50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhe2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2RiZGJkYjtib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsMCkgIWltcG9ydGFudH0udGFicy5pcy1mdWxsd2lkdGggbGl7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MH0udGFicy5pcy10b2dnbGUgYXtib3JkZXItY29sb3I6I2RiZGJkYjtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDttYXJnaW4tYm90dG9tOjA7cG9zaXRpb246cmVsYXRpdmV9LnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1jb2xvcjojYjViNWI1O3otaW5kZXg6Mn0udGFicy5pcy10b2dnbGUgbGkrbGl7bWFyZ2luLWxlZnQ6LTFweH0udGFicy5pcy10b2dnbGUgbGk6Zmlyc3QtY2hpbGQgYXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweH0udGFicy5pcy10b2dnbGUgbGk6bGFzdC1jaGlsZCBhe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0cHh9LnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhe2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtib3JkZXItY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmO3otaW5kZXg6MX0udGFicy5pcy10b2dnbGUgdWx7Ym9yZGVyLWJvdHRvbTpub25lfS50YWJzLmlzLXRvZ2dsZS5pcy10b2dnbGUtcm91bmRlZCBsaTpmaXJzdC1jaGlsZCBhe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OTk5OXB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6OTk5OXB4O3BhZGRpbmctbGVmdDoxLjI1ZW19LnRhYnMuaXMtdG9nZ2xlLmlzLXRvZ2dsZS1yb3VuZGVkIGxpOmxhc3QtY2hpbGQgYXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo5OTk5cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OTk5OXB4O3BhZGRpbmctcmlnaHQ6MS4yNWVtfS50YWJzLmlzLXNtYWxse2ZvbnQtc2l6ZTouNzVyZW19LnRhYnMuaXMtbWVkaXVte2ZvbnQtc2l6ZToxLjI1cmVtfS50YWJzLmlzLWxhcmdle2ZvbnQtc2l6ZToxLjVyZW19LmNvbHVtbntkaXNwbGF5OmJsb2NrO2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO3BhZGRpbmc6Ljc1cmVtfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW5hcnJvd3tmbGV4Om5vbmU7d2lkdGg6dW5zZXR9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtZnVsbHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy10aHJlZS1xdWFydGVyc3tmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLXR3by10aGlyZHN7ZmxleDpub25lO3dpZHRoOjY2LjY2NjYlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLWhhbGZ7ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vbmUtdGhpcmR7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9uZS1xdWFydGVye2ZsZXg6bm9uZTt3aWR0aDoyNSV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb25lLWZpZnRoe2ZsZXg6bm9uZTt3aWR0aDoyMCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtdHdvLWZpZnRoc3tmbGV4Om5vbmU7d2lkdGg6NDAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLXRocmVlLWZpZnRoc3tmbGV4Om5vbmU7d2lkdGg6NjAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLWZvdXItZmlmdGhze2ZsZXg6bm9uZTt3aWR0aDo4MCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLXF1YXJ0ZXJze21hcmdpbi1sZWZ0Ojc1JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkc3ttYXJnaW4tbGVmdDo2Ni42NjY2JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtaGFsZnttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb2Zmc2V0LW9uZS10aGlyZHttYXJnaW4tbGVmdDozMy4zMzMzJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtb25lLXF1YXJ0ZXJ7bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC1vbmUtZmlmdGh7bWFyZ2luLWxlZnQ6MjAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC10d28tZmlmdGhze21hcmdpbi1sZWZ0OjQwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhze21hcmdpbi1sZWZ0OjYwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHN7bWFyZ2luLWxlZnQ6ODAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTB7ZmxleDpub25lO3dpZHRoOjAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0we21hcmdpbi1sZWZ0OjAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTF7ZmxleDpub25lO3dpZHRoOjguMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTJ7ZmxleDpub25lO3dpZHRoOjE2LjY2NjY2Njc0JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY3NCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtM3tmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy00e2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzMzMzNyV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTV7ZmxleDpub25lO3dpZHRoOjQxLjY2NjY2Njc0JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY3NCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtNntmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC02e21hcmdpbi1sZWZ0OjUwJX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy03e2ZsZXg6bm9uZTt3aWR0aDo1OC4zMzMzMzMzNyV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTh7ZmxleDpub25lO3dpZHRoOjY2LjY2NjY2Njc0JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY3NCV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtOXtmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy0xMHtmbGV4Om5vbmU7d2lkdGg6ODMuMzMzMzMzMzclfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzNyV9LmNvbHVtbnMuaXMtbW9iaWxlPi5jb2x1bW4uaXMtMTF7ZmxleDpub25lO3dpZHRoOjkxLjY2NjY2Njc0JX0uY29sdW1ucy5pcy1tb2JpbGU+LmNvbHVtbi5pcy1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NzQlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLTEye2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW5zLmlzLW1vYmlsZT4uY29sdW1uLmlzLW9mZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuY29sdW1uLmlzLW5hcnJvdy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOnVuc2V0fS5jb2x1bW4uaXMtZnVsbC1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjEwMCV9LmNvbHVtbi5pcy10aHJlZS1xdWFydGVycy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLXR3by10aGlyZHMtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2JX0uY29sdW1uLmlzLWhhbGYtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo1MCV9LmNvbHVtbi5pcy1vbmUtdGhpcmQtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzJX0uY29sdW1uLmlzLW9uZS1xdWFydGVyLW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW4uaXMtb25lLWZpZnRoLW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6MjAlfS5jb2x1bW4uaXMtdHdvLWZpZnRocy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjQwJX0uY29sdW1uLmlzLXRocmVlLWZpZnRocy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjYwJX0uY29sdW1uLmlzLWZvdXItZmlmdGhzLW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6ODAlfS5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLXF1YXJ0ZXJzLW1vYmlsZXttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkcy1tb2JpbGV7bWFyZ2luLWxlZnQ6NjYuNjY2NiV9LmNvbHVtbi5pcy1vZmZzZXQtaGFsZi1tb2JpbGV7bWFyZ2luLWxlZnQ6NTAlfS5jb2x1bW4uaXMtb2Zmc2V0LW9uZS10aGlyZC1tb2JpbGV7bWFyZ2luLWxlZnQ6MzMuMzMzMyV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLXF1YXJ0ZXItbW9iaWxle21hcmdpbi1sZWZ0OjI1JX0uY29sdW1uLmlzLW9mZnNldC1vbmUtZmlmdGgtbW9iaWxle21hcmdpbi1sZWZ0OjIwJX0uY29sdW1uLmlzLW9mZnNldC10d28tZmlmdGhzLW1vYmlsZXttYXJnaW4tbGVmdDo0MCV9LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhzLW1vYmlsZXttYXJnaW4tbGVmdDo2MCV9LmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHMtbW9iaWxle21hcmdpbi1sZWZ0OjgwJX0uY29sdW1uLmlzLTAtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDowJX0uY29sdW1uLmlzLW9mZnNldC0wLW1vYmlsZXttYXJnaW4tbGVmdDowJX0uY29sdW1uLmlzLTEtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC0xLW1vYmlsZXttYXJnaW4tbGVmdDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTItbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDoxNi42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtMi1tb2JpbGV7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtMy1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9mZnNldC0zLW1vYmlsZXttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy00LW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6MzMuMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTQtbW9iaWxle21hcmdpbi1sZWZ0OjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTUtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo0MS42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtNS1tb2JpbGV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtNi1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1uLmlzLW9mZnNldC02LW1vYmlsZXttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbi5pcy03LW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6NTguMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTctbW9iaWxle21hcmdpbi1sZWZ0OjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTgtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtOC1tb2JpbGV7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtOS1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLW9mZnNldC05LW1vYmlsZXttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy0xMC1tb2JpbGV7ZmxleDpub25lO3dpZHRoOjgzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC0xMC1tb2JpbGV7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtMTEtbW9iaWxle2ZsZXg6bm9uZTt3aWR0aDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtMTEtbW9iaWxle21hcmdpbi1sZWZ0OjkxLjY2NjY2Njc0JX0uY29sdW1uLmlzLTEyLW1vYmlsZXtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLW9mZnNldC0xMi1tb2JpbGV7bWFyZ2luLWxlZnQ6MTAwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5jb2x1bW4uaXMtbmFycm93LC5jb2x1bW4uaXMtbmFycm93LXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6dW5zZXR9LmNvbHVtbi5pcy1mdWxsLC5jb2x1bW4uaXMtZnVsbC10YWJsZXR7ZmxleDpub25lO3dpZHRoOjEwMCV9LmNvbHVtbi5pcy10aHJlZS1xdWFydGVycywuY29sdW1uLmlzLXRocmVlLXF1YXJ0ZXJzLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW4uaXMtdHdvLXRoaXJkcywuY29sdW1uLmlzLXR3by10aGlyZHMtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2JX0uY29sdW1uLmlzLWhhbGYsLmNvbHVtbi5pcy1oYWxmLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb25lLXRoaXJkLC5jb2x1bW4uaXMtb25lLXRoaXJkLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MzMuMzMzMyV9LmNvbHVtbi5pcy1vbmUtcXVhcnRlciwuY29sdW1uLmlzLW9uZS1xdWFydGVyLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW4uaXMtb25lLWZpZnRoLC5jb2x1bW4uaXMtb25lLWZpZnRoLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MjAlfS5jb2x1bW4uaXMtdHdvLWZpZnRocywuY29sdW1uLmlzLXR3by1maWZ0aHMtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo0MCV9LmNvbHVtbi5pcy10aHJlZS1maWZ0aHMsLmNvbHVtbi5pcy10aHJlZS1maWZ0aHMtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo2MCV9LmNvbHVtbi5pcy1mb3VyLWZpZnRocywuY29sdW1uLmlzLWZvdXItZmlmdGhzLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6ODAlfS5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLXF1YXJ0ZXJzLC5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLXF1YXJ0ZXJzLXRhYmxldHttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkcywuY29sdW1uLmlzLW9mZnNldC10d28tdGhpcmRzLXRhYmxldHttYXJnaW4tbGVmdDo2Ni42NjY2JX0uY29sdW1uLmlzLW9mZnNldC1oYWxmLC5jb2x1bW4uaXMtb2Zmc2V0LWhhbGYtdGFibGV0e21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtdGhpcmQsLmNvbHVtbi5pcy1vZmZzZXQtb25lLXRoaXJkLXRhYmxldHttYXJnaW4tbGVmdDozMy4zMzMzJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtcXVhcnRlciwuY29sdW1uLmlzLW9mZnNldC1vbmUtcXVhcnRlci10YWJsZXR7bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW4uaXMtb2Zmc2V0LW9uZS1maWZ0aCwuY29sdW1uLmlzLW9mZnNldC1vbmUtZmlmdGgtdGFibGV0e21hcmdpbi1sZWZ0OjIwJX0uY29sdW1uLmlzLW9mZnNldC10d28tZmlmdGhzLC5jb2x1bW4uaXMtb2Zmc2V0LXR3by1maWZ0aHMtdGFibGV0e21hcmdpbi1sZWZ0OjQwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1maWZ0aHMsLmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhzLXRhYmxldHttYXJnaW4tbGVmdDo2MCV9LmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHMsLmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHMtdGFibGV0e21hcmdpbi1sZWZ0OjgwJX0uY29sdW1uLmlzLTAsLmNvbHVtbi5pcy0wLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MCV9LmNvbHVtbi5pcy1vZmZzZXQtMCwuY29sdW1uLmlzLW9mZnNldC0wLXRhYmxldHttYXJnaW4tbGVmdDowJX0uY29sdW1uLmlzLTEsLmNvbHVtbi5pcy0xLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMSwuY29sdW1uLmlzLW9mZnNldC0xLXRhYmxldHttYXJnaW4tbGVmdDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTIsLmNvbHVtbi5pcy0yLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTIsLmNvbHVtbi5pcy1vZmZzZXQtMi10YWJsZXR7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtMywuY29sdW1uLmlzLTMtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDoyNSV9LmNvbHVtbi5pcy1vZmZzZXQtMywuY29sdW1uLmlzLW9mZnNldC0zLXRhYmxldHttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy00LC5jb2x1bW4uaXMtNC10YWJsZXR7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC00LC5jb2x1bW4uaXMtb2Zmc2V0LTQtdGFibGV0e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTUsLmNvbHVtbi5pcy01LXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTUsLmNvbHVtbi5pcy1vZmZzZXQtNS10YWJsZXR7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtNiwuY29sdW1uLmlzLTYtdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo1MCV9LmNvbHVtbi5pcy1vZmZzZXQtNiwuY29sdW1uLmlzLW9mZnNldC02LXRhYmxldHttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbi5pcy03LC5jb2x1bW4uaXMtNy10YWJsZXR7ZmxleDpub25lO3dpZHRoOjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC03LC5jb2x1bW4uaXMtb2Zmc2V0LTctdGFibGV0e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTgsLmNvbHVtbi5pcy04LXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTgsLmNvbHVtbi5pcy1vZmZzZXQtOC10YWJsZXR7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtOSwuY29sdW1uLmlzLTktdGFibGV0e2ZsZXg6bm9uZTt3aWR0aDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtOSwuY29sdW1uLmlzLW9mZnNldC05LXRhYmxldHttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy0xMCwuY29sdW1uLmlzLTEwLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTEwLC5jb2x1bW4uaXMtb2Zmc2V0LTEwLXRhYmxldHttYXJnaW4tbGVmdDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy0xMSwuY29sdW1uLmlzLTExLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6OTEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTExLC5jb2x1bW4uaXMtb2Zmc2V0LTExLXRhYmxldHttYXJnaW4tbGVmdDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy0xMiwuY29sdW1uLmlzLTEyLXRhYmxldHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLW9mZnNldC0xMiwuY29sdW1uLmlzLW9mZnNldC0xMi10YWJsZXR7bWFyZ2luLWxlZnQ6MTAwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1uLmlzLW5hcnJvdy10b3VjaHtmbGV4Om5vbmU7d2lkdGg6dW5zZXR9LmNvbHVtbi5pcy1mdWxsLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW4uaXMtdGhyZWUtcXVhcnRlcnMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLXR3by10aGlyZHMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjY2LjY2NjYlfS5jb2x1bW4uaXMtaGFsZi10b3VjaHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb25lLXRoaXJkLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzJX0uY29sdW1uLmlzLW9uZS1xdWFydGVyLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDoyNSV9LmNvbHVtbi5pcy1vbmUtZmlmdGgtdG91Y2h7ZmxleDpub25lO3dpZHRoOjIwJX0uY29sdW1uLmlzLXR3by1maWZ0aHMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjQwJX0uY29sdW1uLmlzLXRocmVlLWZpZnRocy10b3VjaHtmbGV4Om5vbmU7d2lkdGg6NjAlfS5jb2x1bW4uaXMtZm91ci1maWZ0aHMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjgwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1xdWFydGVycy10b3VjaHttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkcy10b3VjaHttYXJnaW4tbGVmdDo2Ni42NjY2JX0uY29sdW1uLmlzLW9mZnNldC1oYWxmLXRvdWNoe21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtdGhpcmQtdG91Y2h7bWFyZ2luLWxlZnQ6MzMuMzMzMyV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLXF1YXJ0ZXItdG91Y2h7bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW4uaXMtb2Zmc2V0LW9uZS1maWZ0aC10b3VjaHttYXJnaW4tbGVmdDoyMCV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLWZpZnRocy10b3VjaHttYXJnaW4tbGVmdDo0MCV9LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhzLXRvdWNoe21hcmdpbi1sZWZ0OjYwJX0uY29sdW1uLmlzLW9mZnNldC1mb3VyLWZpZnRocy10b3VjaHttYXJnaW4tbGVmdDo4MCV9LmNvbHVtbi5pcy0wLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDowJX0uY29sdW1uLmlzLW9mZnNldC0wLXRvdWNoe21hcmdpbi1sZWZ0OjAlfS5jb2x1bW4uaXMtMS10b3VjaHtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMS10b3VjaHttYXJnaW4tbGVmdDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTItdG91Y2h7ZmxleDpub25lO3dpZHRoOjE2LjY2NjY2Njc0JX0uY29sdW1uLmlzLW9mZnNldC0yLXRvdWNoe21hcmdpbi1sZWZ0OjE2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTMtdG91Y2h7ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9mZnNldC0zLXRvdWNoe21hcmdpbi1sZWZ0OjI1JX0uY29sdW1uLmlzLTQtdG91Y2h7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC00LXRvdWNoe21hcmdpbi1sZWZ0OjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTUtdG91Y2h7ZmxleDpub25lO3dpZHRoOjQxLjY2NjY2Njc0JX0uY29sdW1uLmlzLW9mZnNldC01LXRvdWNoe21hcmdpbi1sZWZ0OjQxLjY2NjY2Njc0JX0uY29sdW1uLmlzLTYtdG91Y2h7ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1uLmlzLW9mZnNldC02LXRvdWNoe21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLTctdG91Y2h7ZmxleDpub25lO3dpZHRoOjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC03LXRvdWNoe21hcmdpbi1sZWZ0OjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTgtdG91Y2h7ZmxleDpub25lO3dpZHRoOjY2LjY2NjY2Njc0JX0uY29sdW1uLmlzLW9mZnNldC04LXRvdWNoe21hcmdpbi1sZWZ0OjY2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTktdG91Y2h7ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLW9mZnNldC05LXRvdWNoe21hcmdpbi1sZWZ0Ojc1JX0uY29sdW1uLmlzLTEwLXRvdWNoe2ZsZXg6bm9uZTt3aWR0aDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMTAtdG91Y2h7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtMTEtdG91Y2h7ZmxleDpub25lO3dpZHRoOjkxLjY2NjY2Njc0JX0uY29sdW1uLmlzLW9mZnNldC0xMS10b3VjaHttYXJnaW4tbGVmdDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy0xMi10b3VjaHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLW9mZnNldC0xMi10b3VjaHttYXJnaW4tbGVmdDoxMDAlfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW4uaXMtbmFycm93LWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOnVuc2V0fS5jb2x1bW4uaXMtZnVsbC1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW4uaXMtdGhyZWUtcXVhcnRlcnMtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW4uaXMtdHdvLXRoaXJkcy1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2JX0uY29sdW1uLmlzLWhhbGYtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb25lLXRoaXJkLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMlfS5jb2x1bW4uaXMtb25lLXF1YXJ0ZXItZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW4uaXMtb25lLWZpZnRoLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjIwJX0uY29sdW1uLmlzLXR3by1maWZ0aHMtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NDAlfS5jb2x1bW4uaXMtdGhyZWUtZmlmdGhzLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjYwJX0uY29sdW1uLmlzLWZvdXItZmlmdGhzLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjgwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1xdWFydGVycy1kZXNrdG9we21hcmdpbi1sZWZ0Ojc1JX0uY29sdW1uLmlzLW9mZnNldC10d28tdGhpcmRzLWRlc2t0b3B7bWFyZ2luLWxlZnQ6NjYuNjY2NiV9LmNvbHVtbi5pcy1vZmZzZXQtaGFsZi1kZXNrdG9we21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtdGhpcmQtZGVza3RvcHttYXJnaW4tbGVmdDozMy4zMzMzJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtcXVhcnRlci1kZXNrdG9we21hcmdpbi1sZWZ0OjI1JX0uY29sdW1uLmlzLW9mZnNldC1vbmUtZmlmdGgtZGVza3RvcHttYXJnaW4tbGVmdDoyMCV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLWZpZnRocy1kZXNrdG9we21hcmdpbi1sZWZ0OjQwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1maWZ0aHMtZGVza3RvcHttYXJnaW4tbGVmdDo2MCV9LmNvbHVtbi5pcy1vZmZzZXQtZm91ci1maWZ0aHMtZGVza3RvcHttYXJnaW4tbGVmdDo4MCV9LmNvbHVtbi5pcy0wLWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjAlfS5jb2x1bW4uaXMtb2Zmc2V0LTAtZGVza3RvcHttYXJnaW4tbGVmdDowJX0uY29sdW1uLmlzLTEtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMS1kZXNrdG9we21hcmdpbi1sZWZ0OjguMzMzMzMzMzclfS5jb2x1bW4uaXMtMi1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDoxNi42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtMi1kZXNrdG9we21hcmdpbi1sZWZ0OjE2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTMtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6MjUlfS5jb2x1bW4uaXMtb2Zmc2V0LTMtZGVza3RvcHttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy00LWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC00LWRlc2t0b3B7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzclfS5jb2x1bW4uaXMtNS1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo0MS42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtNS1kZXNrdG9we21hcmdpbi1sZWZ0OjQxLjY2NjY2Njc0JX0uY29sdW1uLmlzLTYtZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb2Zmc2V0LTYtZGVza3RvcHttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbi5pcy03LWRlc2t0b3B7ZmxleDpub25lO3dpZHRoOjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC03LWRlc2t0b3B7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzclfS5jb2x1bW4uaXMtOC1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo2Ni42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtOC1kZXNrdG9we21hcmdpbi1sZWZ0OjY2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTktZGVza3RvcHtmbGV4Om5vbmU7d2lkdGg6NzUlfS5jb2x1bW4uaXMtb2Zmc2V0LTktZGVza3RvcHttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy0xMC1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMTAtZGVza3RvcHttYXJnaW4tbGVmdDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy0xMS1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy1vZmZzZXQtMTEtZGVza3RvcHttYXJnaW4tbGVmdDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy0xMi1kZXNrdG9we2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW4uaXMtb2Zmc2V0LTEyLWRlc2t0b3B7bWFyZ2luLWxlZnQ6MTAwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1uLmlzLW5hcnJvdy13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDp1bnNldH0uY29sdW1uLmlzLWZ1bGwtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLXRocmVlLXF1YXJ0ZXJzLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLXR3by10aGlyZHMtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NiV9LmNvbHVtbi5pcy1oYWxmLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1uLmlzLW9uZS10aGlyZC13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzJX0uY29sdW1uLmlzLW9uZS1xdWFydGVyLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9uZS1maWZ0aC13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDoyMCV9LmNvbHVtbi5pcy10d28tZmlmdGhzLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjQwJX0uY29sdW1uLmlzLXRocmVlLWZpZnRocy13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDo2MCV9LmNvbHVtbi5pcy1mb3VyLWZpZnRocy13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDo4MCV9LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtcXVhcnRlcnMtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLXRoaXJkcy13aWRlc2NyZWVue21hcmdpbi1sZWZ0OjY2LjY2NjYlfS5jb2x1bW4uaXMtb2Zmc2V0LWhhbGYtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo1MCV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLXRoaXJkLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6MzMuMzMzMyV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLXF1YXJ0ZXItd2lkZXNjcmVlbnttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLWZpZnRoLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6MjAlfS5jb2x1bW4uaXMtb2Zmc2V0LXR3by1maWZ0aHMtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo0MCV9LmNvbHVtbi5pcy1vZmZzZXQtdGhyZWUtZmlmdGhzLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6NjAlfS5jb2x1bW4uaXMtb2Zmc2V0LWZvdXItZmlmdGhzLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6ODAlfS5jb2x1bW4uaXMtMC13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDowJX0uY29sdW1uLmlzLW9mZnNldC0wLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6MCV9LmNvbHVtbi5pcy0xLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjguMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTEtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTItd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTItd2lkZXNjcmVlbnttYXJnaW4tbGVmdDoxNi42NjY2NjY3NCV9LmNvbHVtbi5pcy0zLXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9mZnNldC0zLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW4uaXMtNC13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtNC13aWRlc2NyZWVue21hcmdpbi1sZWZ0OjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTUtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTUtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo0MS42NjY2NjY3NCV9LmNvbHVtbi5pcy02LXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjUwJX0uY29sdW1uLmlzLW9mZnNldC02LXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6NTAlfS5jb2x1bW4uaXMtNy13aWRlc2NyZWVue2ZsZXg6bm9uZTt3aWR0aDo1OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtNy13aWRlc2NyZWVue21hcmdpbi1sZWZ0OjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLTgtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTgtd2lkZXNjcmVlbnttYXJnaW4tbGVmdDo2Ni42NjY2NjY3NCV9LmNvbHVtbi5pcy05LXdpZGVzY3JlZW57ZmxleDpub25lO3dpZHRoOjc1JX0uY29sdW1uLmlzLW9mZnNldC05LXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6NzUlfS5jb2x1bW4uaXMtMTAtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtb2Zmc2V0LTEwLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzclfS5jb2x1bW4uaXMtMTEtd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6OTEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTExLXdpZGVzY3JlZW57bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtMTItd2lkZXNjcmVlbntmbGV4Om5vbmU7d2lkdGg6MTAwJX0uY29sdW1uLmlzLW9mZnNldC0xMi13aWRlc2NyZWVue21hcmdpbi1sZWZ0OjEwMCV9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmNvbHVtbi5pcy1uYXJyb3ctZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDp1bnNldH0uY29sdW1uLmlzLWZ1bGwtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5jb2x1bW4uaXMtdGhyZWUtcXVhcnRlcnMtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo3NSV9LmNvbHVtbi5pcy10d28tdGhpcmRzLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NiV9LmNvbHVtbi5pcy1oYWxmLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6NTAlfS5jb2x1bW4uaXMtb25lLXRoaXJkLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6MzMuMzMzMyV9LmNvbHVtbi5pcy1vbmUtcXVhcnRlci1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjI1JX0uY29sdW1uLmlzLW9uZS1maWZ0aC1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjIwJX0uY29sdW1uLmlzLXR3by1maWZ0aHMtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo0MCV9LmNvbHVtbi5pcy10aHJlZS1maWZ0aHMtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo2MCV9LmNvbHVtbi5pcy1mb3VyLWZpZnRocy1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjgwJX0uY29sdW1uLmlzLW9mZnNldC10aHJlZS1xdWFydGVycy1mdWxsaGR7bWFyZ2luLWxlZnQ6NzUlfS5jb2x1bW4uaXMtb2Zmc2V0LXR3by10aGlyZHMtZnVsbGhke21hcmdpbi1sZWZ0OjY2LjY2NjYlfS5jb2x1bW4uaXMtb2Zmc2V0LWhhbGYtZnVsbGhke21hcmdpbi1sZWZ0OjUwJX0uY29sdW1uLmlzLW9mZnNldC1vbmUtdGhpcmQtZnVsbGhke21hcmdpbi1sZWZ0OjMzLjMzMzMlfS5jb2x1bW4uaXMtb2Zmc2V0LW9uZS1xdWFydGVyLWZ1bGxoZHttYXJnaW4tbGVmdDoyNSV9LmNvbHVtbi5pcy1vZmZzZXQtb25lLWZpZnRoLWZ1bGxoZHttYXJnaW4tbGVmdDoyMCV9LmNvbHVtbi5pcy1vZmZzZXQtdHdvLWZpZnRocy1mdWxsaGR7bWFyZ2luLWxlZnQ6NDAlfS5jb2x1bW4uaXMtb2Zmc2V0LXRocmVlLWZpZnRocy1mdWxsaGR7bWFyZ2luLWxlZnQ6NjAlfS5jb2x1bW4uaXMtb2Zmc2V0LWZvdXItZmlmdGhzLWZ1bGxoZHttYXJnaW4tbGVmdDo4MCV9LmNvbHVtbi5pcy0wLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6MCV9LmNvbHVtbi5pcy1vZmZzZXQtMC1mdWxsaGR7bWFyZ2luLWxlZnQ6MCV9LmNvbHVtbi5pcy0xLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMS1mdWxsaGR7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy0yLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6MTYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTItZnVsbGhke21hcmdpbi1sZWZ0OjE2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTMtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDoyNSV9LmNvbHVtbi5pcy1vZmZzZXQtMy1mdWxsaGR7bWFyZ2luLWxlZnQ6MjUlfS5jb2x1bW4uaXMtNC1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjMzLjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC00LWZ1bGxoZHttYXJnaW4tbGVmdDozMy4zMzMzMzMzNyV9LmNvbHVtbi5pcy01LWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6NDEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTUtZnVsbGhke21hcmdpbi1sZWZ0OjQxLjY2NjY2Njc0JX0uY29sdW1uLmlzLTYtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo1MCV9LmNvbHVtbi5pcy1vZmZzZXQtNi1mdWxsaGR7bWFyZ2luLWxlZnQ6NTAlfS5jb2x1bW4uaXMtNy1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjU4LjMzMzMzMzM3JX0uY29sdW1uLmlzLW9mZnNldC03LWZ1bGxoZHttYXJnaW4tbGVmdDo1OC4zMzMzMzMzNyV9LmNvbHVtbi5pcy04LWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTgtZnVsbGhke21hcmdpbi1sZWZ0OjY2LjY2NjY2Njc0JX0uY29sdW1uLmlzLTktZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo3NSV9LmNvbHVtbi5pcy1vZmZzZXQtOS1mdWxsaGR7bWFyZ2luLWxlZnQ6NzUlfS5jb2x1bW4uaXMtMTAtZnVsbGhke2ZsZXg6bm9uZTt3aWR0aDo4My4zMzMzMzMzNyV9LmNvbHVtbi5pcy1vZmZzZXQtMTAtZnVsbGhke21hcmdpbi1sZWZ0OjgzLjMzMzMzMzM3JX0uY29sdW1uLmlzLTExLWZ1bGxoZHtmbGV4Om5vbmU7d2lkdGg6OTEuNjY2NjY2NzQlfS5jb2x1bW4uaXMtb2Zmc2V0LTExLWZ1bGxoZHttYXJnaW4tbGVmdDo5MS42NjY2NjY3NCV9LmNvbHVtbi5pcy0xMi1mdWxsaGR7ZmxleDpub25lO3dpZHRoOjEwMCV9LmNvbHVtbi5pcy1vZmZzZXQtMTItZnVsbGhke21hcmdpbi1sZWZ0OjEwMCV9fS5jb2x1bW5ze21hcmdpbi1sZWZ0Oi0wLjc1cmVtO21hcmdpbi1yaWdodDotMC43NXJlbTttYXJnaW4tdG9wOi0wLjc1cmVtfS5jb2x1bW5zOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTotMC43NXJlbX0uY29sdW1uczpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206Y2FsYygxLjVyZW0gLSAwLjc1cmVtKX0uY29sdW1ucy5pcy1jZW50ZXJlZHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jb2x1bW5zLmlzLWdhcGxlc3N7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDttYXJnaW4tdG9wOjB9LmNvbHVtbnMuaXMtZ2FwbGVzcz4uY29sdW1ue21hcmdpbjowO3BhZGRpbmc6MCAhaW1wb3J0YW50fS5jb2x1bW5zLmlzLWdhcGxlc3M6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjEuNXJlbX0uY29sdW1ucy5pcy1nYXBsZXNzOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5jb2x1bW5zLmlzLW1vYmlsZXtkaXNwbGF5OmZsZXh9LmNvbHVtbnMuaXMtbXVsdGlsaW5le2ZsZXgtd3JhcDp3cmFwfS5jb2x1bW5zLmlzLXZjZW50ZXJlZHthbGlnbi1pdGVtczpjZW50ZXJ9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5jb2x1bW5zOm5vdCguaXMtZGVza3RvcCl7ZGlzcGxheTpmbGV4fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLWRlc2t0b3B7ZGlzcGxheTpmbGV4fX0uY29sdW1ucy5pcy12YXJpYWJsZXstLWNvbHVtbkdhcDogMC43NXJlbTttYXJnaW4tbGVmdDpjYWxjKC0xKnZhcigtLWNvbHVtbkdhcCkpO21hcmdpbi1yaWdodDpjYWxjKC0xKnZhcigtLWNvbHVtbkdhcCkpfS5jb2x1bW5zLmlzLXZhcmlhYmxlPi5jb2x1bW57cGFkZGluZy1sZWZ0OnZhcigtLWNvbHVtbkdhcCk7cGFkZGluZy1yaWdodDp2YXIoLS1jb2x1bW5HYXApfS5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTB7LS1jb2x1bW5HYXA6IDByZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTAtbW9iaWxley0tY29sdW1uR2FwOiAwcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMC10YWJsZXR7LS1jb2x1bW5HYXA6IDByZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KWFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTAtdGFibGV0LW9ubHl7LS1jb2x1bW5HYXA6IDByZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMC10b3VjaHstLWNvbHVtbkdhcDogMHJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLWRlc2t0b3B7LS1jb2x1bW5HYXA6IDByZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweClhbmQgKG1heC13aWR0aDogMTIxNXB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLWRlc2t0b3Atb25seXstLWNvbHVtbkdhcDogMHJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLXdpZGVzY3JlZW57LS1jb2x1bW5HYXA6IDByZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLXdpZGVzY3JlZW4tb25seXstLWNvbHVtbkdhcDogMHJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwOHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0wLWZ1bGxoZHstLWNvbHVtbkdhcDogMHJlbX19LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMXstLWNvbHVtbkdhcDogMC4yNXJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMS1tb2JpbGV7LS1jb2x1bW5HYXA6IDAuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0xLXRhYmxldHstLWNvbHVtbkdhcDogMC4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMS10YWJsZXQtb25seXstLWNvbHVtbkdhcDogMC4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0xLXRvdWNoey0tY29sdW1uR2FwOiAwLjI1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtZGVza3RvcHstLWNvbHVtbkdhcDogMC4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtZGVza3RvcC1vbmx5ey0tY29sdW1uR2FwOiAwLjI1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtd2lkZXNjcmVlbnstLWNvbHVtbkdhcDogMC4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtd2lkZXNjcmVlbi1vbmx5ey0tY29sdW1uR2FwOiAwLjI1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTEtZnVsbGhkey0tY29sdW1uR2FwOiAwLjI1cmVtfX0uY29sdW1ucy5pcy12YXJpYWJsZS5pcy0yey0tY29sdW1uR2FwOiAwLjVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTItbW9iaWxley0tY29sdW1uR2FwOiAwLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0yLXRhYmxldHstLWNvbHVtbkdhcDogMC41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0yLXRhYmxldC1vbmx5ey0tY29sdW1uR2FwOiAwLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMi10b3VjaHstLWNvbHVtbkdhcDogMC41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTItZGVza3RvcHstLWNvbHVtbkdhcDogMC41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMi1kZXNrdG9wLW9ubHl7LS1jb2x1bW5HYXA6IDAuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0yLXdpZGVzY3JlZW57LS1jb2x1bW5HYXA6IDAuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTItd2lkZXNjcmVlbi1vbmx5ey0tY29sdW1uR2FwOiAwLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMi1mdWxsaGR7LS1jb2x1bW5HYXA6IDAuNXJlbX19LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtM3stLWNvbHVtbkdhcDogMC43NXJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMy1tb2JpbGV7LS1jb2x1bW5HYXA6IDAuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0zLXRhYmxldHstLWNvbHVtbkdhcDogMC43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtMy10YWJsZXQtb25seXstLWNvbHVtbkdhcDogMC43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy0zLXRvdWNoey0tY29sdW1uR2FwOiAwLjc1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtZGVza3RvcHstLWNvbHVtbkdhcDogMC43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtZGVza3RvcC1vbmx5ey0tY29sdW1uR2FwOiAwLjc1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtd2lkZXNjcmVlbnstLWNvbHVtbkdhcDogMC43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtd2lkZXNjcmVlbi1vbmx5ey0tY29sdW1uR2FwOiAwLjc1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTMtZnVsbGhkey0tY29sdW1uR2FwOiAwLjc1cmVtfX0uY29sdW1ucy5pcy12YXJpYWJsZS5pcy00ey0tY29sdW1uR2FwOiAxcmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy00LW1vYmlsZXstLWNvbHVtbkdhcDogMXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTQtdGFibGV0ey0tY29sdW1uR2FwOiAxcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy00LXRhYmxldC1vbmx5ey0tY29sdW1uR2FwOiAxcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTQtdG91Y2h7LS1jb2x1bW5HYXA6IDFyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC1kZXNrdG9wey0tY29sdW1uR2FwOiAxcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC1kZXNrdG9wLW9ubHl7LS1jb2x1bW5HYXA6IDFyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC13aWRlc2NyZWVuey0tY29sdW1uR2FwOiAxcmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpYW5kIChtYXgtd2lkdGg6IDE0MDdweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC13aWRlc2NyZWVuLW9ubHl7LS1jb2x1bW5HYXA6IDFyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNC1mdWxsaGR7LS1jb2x1bW5HYXA6IDFyZW19fS5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTV7LS1jb2x1bW5HYXA6IDEuMjVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTUtbW9iaWxley0tY29sdW1uR2FwOiAxLjI1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNS10YWJsZXR7LS1jb2x1bW5HYXA6IDEuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KWFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTUtdGFibGV0LW9ubHl7LS1jb2x1bW5HYXA6IDEuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNS10b3VjaHstLWNvbHVtbkdhcDogMS4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LWRlc2t0b3B7LS1jb2x1bW5HYXA6IDEuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweClhbmQgKG1heC13aWR0aDogMTIxNXB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LWRlc2t0b3Atb25seXstLWNvbHVtbkdhcDogMS4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LXdpZGVzY3JlZW57LS1jb2x1bW5HYXA6IDEuMjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LXdpZGVzY3JlZW4tb25seXstLWNvbHVtbkdhcDogMS4yNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwOHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy01LWZ1bGxoZHstLWNvbHVtbkdhcDogMS4yNXJlbX19LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNnstLWNvbHVtbkdhcDogMS41cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy02LW1vYmlsZXstLWNvbHVtbkdhcDogMS41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNi10YWJsZXR7LS1jb2x1bW5HYXA6IDEuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNi10YWJsZXQtb25seXstLWNvbHVtbkdhcDogMS41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTYtdG91Y2h7LS1jb2x1bW5HYXA6IDEuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy02LWRlc2t0b3B7LS1jb2x1bW5HYXA6IDEuNXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTYtZGVza3RvcC1vbmx5ey0tY29sdW1uR2FwOiAxLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNi13aWRlc2NyZWVuey0tY29sdW1uR2FwOiAxLjVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy02LXdpZGVzY3JlZW4tb25seXstLWNvbHVtbkdhcDogMS41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTYtZnVsbGhkey0tY29sdW1uR2FwOiAxLjVyZW19fS5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTd7LS1jb2x1bW5HYXA6IDEuNzVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTctbW9iaWxley0tY29sdW1uR2FwOiAxLjc1cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNy10YWJsZXR7LS1jb2x1bW5HYXA6IDEuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KWFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTctdGFibGV0LW9ubHl7LS1jb2x1bW5HYXA6IDEuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtNy10b3VjaHstLWNvbHVtbkdhcDogMS43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LWRlc2t0b3B7LS1jb2x1bW5HYXA6IDEuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweClhbmQgKG1heC13aWR0aDogMTIxNXB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LWRlc2t0b3Atb25seXstLWNvbHVtbkdhcDogMS43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LXdpZGVzY3JlZW57LS1jb2x1bW5HYXA6IDEuNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LXdpZGVzY3JlZW4tb25seXstLWNvbHVtbkdhcDogMS43NXJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwOHB4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy03LWZ1bGxoZHstLWNvbHVtbkdhcDogMS43NXJlbX19LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtOHstLWNvbHVtbkdhcDogMnJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtOC1tb2JpbGV7LS1jb2x1bW5HYXA6IDJyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy04LXRhYmxldHstLWNvbHVtbkdhcDogMnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmNvbHVtbnMuaXMtdmFyaWFibGUuaXMtOC10YWJsZXQtb25seXstLWNvbHVtbkdhcDogMnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuY29sdW1ucy5pcy12YXJpYWJsZS5pcy04LXRvdWNoey0tY29sdW1uR2FwOiAycmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtZGVza3RvcHstLWNvbHVtbkdhcDogMnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtZGVza3RvcC1vbmx5ey0tY29sdW1uR2FwOiAycmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtd2lkZXNjcmVlbnstLWNvbHVtbkdhcDogMnJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtd2lkZXNjcmVlbi1vbmx5ey0tY29sdW1uR2FwOiAycmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5jb2x1bW5zLmlzLXZhcmlhYmxlLmlzLTgtZnVsbGhkey0tY29sdW1uR2FwOiAycmVtfX0udGlsZXthbGlnbi1pdGVtczpzdHJldGNoO2Rpc3BsYXk6YmxvY2s7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjE7bWluLWhlaWdodDptaW4tY29udGVudH0udGlsZS5pcy1hbmNlc3RvcnttYXJnaW4tbGVmdDotMC43NXJlbTttYXJnaW4tcmlnaHQ6LTAuNzVyZW07bWFyZ2luLXRvcDotMC43NXJlbX0udGlsZS5pcy1hbmNlc3RvcjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206LTAuNzVyZW19LnRpbGUuaXMtYW5jZXN0b3I6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOi43NXJlbX0udGlsZS5pcy1jaGlsZHttYXJnaW46MCAhaW1wb3J0YW50fS50aWxlLmlzLXBhcmVudHtwYWRkaW5nOi43NXJlbX0udGlsZS5pcy12ZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnRpbGUuaXMtdmVydGljYWw+LnRpbGUuaXMtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tYm90dG9tOjEuNXJlbSAhaW1wb3J0YW50fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsudGlsZTpub3QoLmlzLWNoaWxkKXtkaXNwbGF5OmZsZXh9LnRpbGUuaXMtMXtmbGV4Om5vbmU7d2lkdGg6OC4zMzMzMzMzNyV9LnRpbGUuaXMtMntmbGV4Om5vbmU7d2lkdGg6MTYuNjY2NjY2NzQlfS50aWxlLmlzLTN7ZmxleDpub25lO3dpZHRoOjI1JX0udGlsZS5pcy00e2ZsZXg6bm9uZTt3aWR0aDozMy4zMzMzMzMzNyV9LnRpbGUuaXMtNXtmbGV4Om5vbmU7d2lkdGg6NDEuNjY2NjY2NzQlfS50aWxlLmlzLTZ7ZmxleDpub25lO3dpZHRoOjUwJX0udGlsZS5pcy03e2ZsZXg6bm9uZTt3aWR0aDo1OC4zMzMzMzMzNyV9LnRpbGUuaXMtOHtmbGV4Om5vbmU7d2lkdGg6NjYuNjY2NjY2NzQlfS50aWxlLmlzLTl7ZmxleDpub25lO3dpZHRoOjc1JX0udGlsZS5pcy0xMHtmbGV4Om5vbmU7d2lkdGg6ODMuMzMzMzMzMzclfS50aWxlLmlzLTExe2ZsZXg6bm9uZTt3aWR0aDo5MS42NjY2NjY3NCV9LnRpbGUuaXMtMTJ7ZmxleDpub25lO3dpZHRoOjEwMCV9fS5oYXMtdGV4dC13aGl0ZXtjb2xvcjojZmZmICFpbXBvcnRhbnR9YS5oYXMtdGV4dC13aGl0ZTpob3ZlcixhLmhhcy10ZXh0LXdoaXRlOmZvY3Vze2NvbG9yOiNlNmU2ZTYgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZmZmICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWJsYWNre2NvbG9yOiMwYTBhMGEgIWltcG9ydGFudH1hLmhhcy10ZXh0LWJsYWNrOmhvdmVyLGEuaGFzLXRleHQtYmxhY2s6Zm9jdXN7Y29sb3I6IzAwMCAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1ibGFja3tiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGEgIWltcG9ydGFudH0uaGFzLXRleHQtbGlnaHR7Y29sb3I6I2QyZjlkNiAhaW1wb3J0YW50fWEuaGFzLXRleHQtbGlnaHQ6aG92ZXIsYS5oYXMtdGV4dC1saWdodDpmb2N1c3tjb2xvcjojYTVmM2FkICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2QyZjlkNiAhaW1wb3J0YW50fS5oYXMtdGV4dC1kYXJre2NvbG9yOiM0NTk1NTggIWltcG9ydGFudH1hLmhhcy10ZXh0LWRhcms6aG92ZXIsYS5oYXMtdGV4dC1kYXJrOmZvY3Vze2NvbG9yOiMzNTcyNDMgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTggIWltcG9ydGFudH0uaGFzLXRleHQtcHJpbWFyeXtjb2xvcjojNTViZTZmICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1wcmltYXJ5OmhvdmVyLGEuaGFzLXRleHQtcHJpbWFyeTpmb2N1c3tjb2xvcjojM2VhMjU3ICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojNTViZTZmICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXByaW1hcnktbGlnaHR7Y29sb3I6I2YwZjlmMiAhaW1wb3J0YW50fWEuaGFzLXRleHQtcHJpbWFyeS1saWdodDpob3ZlcixhLmhhcy10ZXh0LXByaW1hcnktbGlnaHQ6Zm9jdXN7Y29sb3I6I2NiZWJkMyAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1wcmltYXJ5LWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2YwZjlmMiAhaW1wb3J0YW50fS5oYXMtdGV4dC1wcmltYXJ5LWRhcmt7Y29sb3I6IzJmN2E0MSAhaW1wb3J0YW50fWEuaGFzLXRleHQtcHJpbWFyeS1kYXJrOmhvdmVyLGEuaGFzLXRleHQtcHJpbWFyeS1kYXJrOmZvY3Vze2NvbG9yOiMzZDlmNTUgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtcHJpbWFyeS1kYXJre2JhY2tncm91bmQtY29sb3I6IzJmN2E0MSAhaW1wb3J0YW50fS5oYXMtdGV4dC1saW5re2NvbG9yOiM0ODc2ZmYgIWltcG9ydGFudH1hLmhhcy10ZXh0LWxpbms6aG92ZXIsYS5oYXMtdGV4dC1saW5rOmZvY3Vze2NvbG9yOiMxNTUwZmYgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiM0ODc2ZmYgIWltcG9ydGFudH0uaGFzLXRleHQtbGluay1saWdodHtjb2xvcjojZWJmMGZmICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1saW5rLWxpZ2h0OmhvdmVyLGEuaGFzLXRleHQtbGluay1saWdodDpmb2N1c3tjb2xvcjojYjhjYWZmICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWxpbmstbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZWJmMGZmICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWxpbmstZGFya3tjb2xvcjojMDAzN2RiICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1saW5rLWRhcms6aG92ZXIsYS5oYXMtdGV4dC1saW5rLWRhcms6Zm9jdXN7Y29sb3I6IzBmNGNmZiAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1saW5rLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojMDAzN2RiICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWluZm97Y29sb3I6I2YwZjhmZiAhaW1wb3J0YW50fWEuaGFzLXRleHQtaW5mbzpob3ZlcixhLmhhcy10ZXh0LWluZm86Zm9jdXN7Y29sb3I6I2JkZTBmZiAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1pbmZve2JhY2tncm91bmQtY29sb3I6I2YwZjhmZiAhaW1wb3J0YW50fS5oYXMtdGV4dC1pbmZvLWxpZ2h0e2NvbG9yOiNmMGY4ZmYgIWltcG9ydGFudH1hLmhhcy10ZXh0LWluZm8tbGlnaHQ6aG92ZXIsYS5oYXMtdGV4dC1pbmZvLWxpZ2h0OmZvY3Vze2NvbG9yOiNiZGUwZmYgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtaW5mby1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmYgIWltcG9ydGFudH0uaGFzLXRleHQtaW5mby1kYXJre2NvbG9yOiMwMDRmOTQgIWltcG9ydGFudH1hLmhhcy10ZXh0LWluZm8tZGFyazpob3ZlcixhLmhhcy10ZXh0LWluZm8tZGFyazpmb2N1c3tjb2xvcjojMDA2YWM3ICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWluZm8tZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiMwMDRmOTQgIWltcG9ydGFudH0uaGFzLXRleHQtc3VjY2Vzc3tjb2xvcjojNDhjNzhlICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1zdWNjZXNzOmhvdmVyLGEuaGFzLXRleHQtc3VjY2Vzczpmb2N1c3tjb2xvcjojMzRhODczICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXN1Y2Nlc3MtbGlnaHR7Y29sb3I6I2VmZmFmNSAhaW1wb3J0YW50fWEuaGFzLXRleHQtc3VjY2Vzcy1saWdodDpob3ZlcixhLmhhcy10ZXh0LXN1Y2Nlc3MtbGlnaHQ6Zm9jdXN7Y29sb3I6I2M4ZWVkZCAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1zdWNjZXNzLWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2VmZmFmNSAhaW1wb3J0YW50fS5oYXMtdGV4dC1zdWNjZXNzLWRhcmt7Y29sb3I6IzI1Nzk1MyAhaW1wb3J0YW50fWEuaGFzLXRleHQtc3VjY2Vzcy1kYXJrOmhvdmVyLGEuaGFzLXRleHQtc3VjY2Vzcy1kYXJrOmZvY3Vze2NvbG9yOiMzMWEwNmUgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtc3VjY2Vzcy1kYXJre2JhY2tncm91bmQtY29sb3I6IzI1Nzk1MyAhaW1wb3J0YW50fS5oYXMtdGV4dC13YXJuaW5ne2NvbG9yOiNmZmQ5NzUgIWltcG9ydGFudH1hLmhhcy10ZXh0LXdhcm5pbmc6aG92ZXIsYS5oYXMtdGV4dC13YXJuaW5nOmZvY3Vze2NvbG9yOiNmZmNiNDIgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzUgIWltcG9ydGFudH0uaGFzLXRleHQtd2FybmluZy1saWdodHtjb2xvcjojZmZmOWViICFpbXBvcnRhbnR9YS5oYXMtdGV4dC13YXJuaW5nLWxpZ2h0OmhvdmVyLGEuaGFzLXRleHQtd2FybmluZy1saWdodDpmb2N1c3tjb2xvcjojZmZlYmI4ICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLXdhcm5pbmctbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmZmOWViICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdhcm5pbmctZGFya3tjb2xvcjojOTQ2YjAwICFpbXBvcnRhbnR9YS5oYXMtdGV4dC13YXJuaW5nLWRhcms6aG92ZXIsYS5oYXMtdGV4dC13YXJuaW5nLWRhcms6Zm9jdXN7Y29sb3I6I2M3OTAwMCAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC13YXJuaW5nLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojOTQ2YjAwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWRhbmdlcntjb2xvcjojZjE0NjY4ICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1kYW5nZXI6aG92ZXIsYS5oYXMtdGV4dC1kYW5nZXI6Zm9jdXN7Y29sb3I6I2VlMTc0MiAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWRhbmdlci1saWdodHtjb2xvcjojZmVlY2YwICFpbXBvcnRhbnR9YS5oYXMtdGV4dC1kYW5nZXItbGlnaHQ6aG92ZXIsYS5oYXMtdGV4dC1kYW5nZXItbGlnaHQ6Zm9jdXN7Y29sb3I6I2ZhYmRjOSAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1kYW5nZXItbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZmVlY2YwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWRhbmdlci1kYXJre2NvbG9yOiNjYzBmMzUgIWltcG9ydGFudH1hLmhhcy10ZXh0LWRhbmdlci1kYXJrOmhvdmVyLGEuaGFzLXRleHQtZGFuZ2VyLWRhcms6Zm9jdXN7Y29sb3I6I2VlMjA0OSAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1kYW5nZXItZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiNjYzBmMzUgIWltcG9ydGFudH0uaGFzLXRleHQtYmxhY2stYmlze2NvbG9yOiMxMjEyMTIgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtYmxhY2stYmlze2JhY2tncm91bmQtY29sb3I6IzEyMTIxMiAhaW1wb3J0YW50fS5oYXMtdGV4dC1ibGFjay10ZXJ7Y29sb3I6IzI0MjQyNCAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1ibGFjay10ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjQyNDI0ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWdyZXktZGFya2Vye2NvbG9yOiMzNjM2MzYgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtZ3JleS1kYXJrZXJ7YmFja2dyb3VuZC1jb2xvcjojMzYzNjM2ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWdyZXktZGFya3tjb2xvcjojNGE0YTRhICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWdyZXktZGFya3tiYWNrZ3JvdW5kLWNvbG9yOiM0YTRhNGEgIWltcG9ydGFudH0uaGFzLXRleHQtZ3JleXtjb2xvcjojN2E3YTdhICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLWdyZXl7YmFja2dyb3VuZC1jb2xvcjojN2E3YTdhICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWdyZXktbGlnaHR7Y29sb3I6I2I1YjViNSAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1ncmV5LWxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2I1YjViNSAhaW1wb3J0YW50fS5oYXMtdGV4dC1ncmV5LWxpZ2h0ZXJ7Y29sb3I6I2RiZGJkYiAhaW1wb3J0YW50fS5oYXMtYmFja2dyb3VuZC1ncmV5LWxpZ2h0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZGJkYmRiICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdoaXRlLXRlcntjb2xvcjojZjVmNWY1ICFpbXBvcnRhbnR9Lmhhcy1iYWNrZ3JvdW5kLXdoaXRlLXRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjUgIWltcG9ydGFudH0uaGFzLXRleHQtd2hpdGUtYmlze2NvbG9yOiNmYWZhZmEgIWltcG9ydGFudH0uaGFzLWJhY2tncm91bmQtd2hpdGUtYmlze2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYSAhaW1wb3J0YW50fS5pcy1mbGV4LWRpcmVjdGlvbi1yb3d7ZmxleC1kaXJlY3Rpb246cm93ICFpbXBvcnRhbnR9LmlzLWZsZXgtZGlyZWN0aW9uLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlICFpbXBvcnRhbnR9LmlzLWZsZXgtZGlyZWN0aW9uLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4gIWltcG9ydGFudH0uaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UgIWltcG9ydGFudH0uaXMtZmxleC13cmFwLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwICFpbXBvcnRhbnR9LmlzLWZsZXgtd3JhcC13cmFwe2ZsZXgtd3JhcDp3cmFwICFpbXBvcnRhbnR9LmlzLWZsZXgtd3JhcC13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSAhaW1wb3J0YW50fS5pcy1qdXN0aWZ5LWNvbnRlbnQtZmxleC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCAhaW1wb3J0YW50fS5pcy1qdXN0aWZ5LWNvbnRlbnQtZmxleC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kICFpbXBvcnRhbnR9LmlzLWp1c3RpZnktY29udGVudC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlciAhaW1wb3J0YW50fS5pcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50fS5pcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQgIWltcG9ydGFudH0uaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWV2ZW5seXtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtZXZlbmx5ICFpbXBvcnRhbnR9LmlzLWp1c3RpZnktY29udGVudC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6c3RhcnQgIWltcG9ydGFudH0uaXMtanVzdGlmeS1jb250ZW50LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZW5kICFpbXBvcnRhbnR9LmlzLWp1c3RpZnktY29udGVudC1sZWZ0e2p1c3RpZnktY29udGVudDpsZWZ0ICFpbXBvcnRhbnR9LmlzLWp1c3RpZnktY29udGVudC1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6cmlnaHQgIWltcG9ydGFudH0uaXMtYWxpZ24tY29udGVudC1mbGV4LXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LWZsZXgtZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQgIWltcG9ydGFudH0uaXMtYWxpZ24tY29udGVudC1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIgIWltcG9ydGFudH0uaXMtYWxpZ24tY29udGVudC1zcGFjZS1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LXNwYWNlLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LXNwYWNlLWV2ZW5seXthbGlnbi1jb250ZW50OnNwYWNlLWV2ZW5seSAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoICFpbXBvcnRhbnR9LmlzLWFsaWduLWNvbnRlbnQtc3RhcnR7YWxpZ24tY29udGVudDpzdGFydCAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LWVuZHthbGlnbi1jb250ZW50OmVuZCAhaW1wb3J0YW50fS5pcy1hbGlnbi1jb250ZW50LWJhc2VsaW5le2FsaWduLWNvbnRlbnQ6YmFzZWxpbmUgIWltcG9ydGFudH0uaXMtYWxpZ24taXRlbXMtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNoICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLWZsZXgtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCAhaW1wb3J0YW50fS5pcy1hbGlnbi1pdGVtcy1mbGV4LWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCAhaW1wb3J0YW50fS5pcy1hbGlnbi1pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLXN0YXJ0e2FsaWduLWl0ZW1zOnN0YXJ0ICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLWVuZHthbGlnbi1pdGVtczplbmQgIWltcG9ydGFudH0uaXMtYWxpZ24taXRlbXMtc2VsZi1zdGFydHthbGlnbi1pdGVtczpzZWxmLXN0YXJ0ICFpbXBvcnRhbnR9LmlzLWFsaWduLWl0ZW1zLXNlbGYtZW5ke2FsaWduLWl0ZW1zOnNlbGYtZW5kICFpbXBvcnRhbnR9LmlzLWFsaWduLXNlbGYtYXV0b3thbGlnbi1zZWxmOmF1dG8gIWltcG9ydGFudH0uaXMtYWxpZ24tc2VsZi1mbGV4LXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCAhaW1wb3J0YW50fS5pcy1hbGlnbi1zZWxmLWZsZXgtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQgIWltcG9ydGFudH0uaXMtYWxpZ24tc2VsZi1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIgIWltcG9ydGFudH0uaXMtYWxpZ24tc2VsZi1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lICFpbXBvcnRhbnR9LmlzLWFsaWduLXNlbGYtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ggIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTB7ZmxleC1ncm93OjAgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTF7ZmxleC1ncm93OjEgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTJ7ZmxleC1ncm93OjIgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTN7ZmxleC1ncm93OjMgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTR7ZmxleC1ncm93OjQgIWltcG9ydGFudH0uaXMtZmxleC1ncm93LTV7ZmxleC1ncm93OjUgIWltcG9ydGFudH0uaXMtZmxleC1zaHJpbmstMHtmbGV4LXNocmluazowICFpbXBvcnRhbnR9LmlzLWZsZXgtc2hyaW5rLTF7ZmxleC1zaHJpbms6MSAhaW1wb3J0YW50fS5pcy1mbGV4LXNocmluay0ye2ZsZXgtc2hyaW5rOjIgIWltcG9ydGFudH0uaXMtZmxleC1zaHJpbmstM3tmbGV4LXNocmluazozICFpbXBvcnRhbnR9LmlzLWZsZXgtc2hyaW5rLTR7ZmxleC1zaHJpbms6NCAhaW1wb3J0YW50fS5pcy1mbGV4LXNocmluay01e2ZsZXgtc2hyaW5rOjUgIWltcG9ydGFudH0uaXMtY2xlYXJmaXg6OmFmdGVye2NsZWFyOmJvdGg7Y29udGVudDoiICI7ZGlzcGxheTp0YWJsZX0uaXMtcHVsbGVkLWxlZnR7ZmxvYXQ6bGVmdCAhaW1wb3J0YW50fS5pcy1wdWxsZWQtcmlnaHR7ZmxvYXQ6cmlnaHQgIWltcG9ydGFudH0uaXMtcmFkaXVzbGVzc3tib3JkZXItcmFkaXVzOjAgIWltcG9ydGFudH0uaXMtc2hhZG93bGVzc3tib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH0uaXMtY2xpY2thYmxle2N1cnNvcjpwb2ludGVyICFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6YWxsICFpbXBvcnRhbnR9LmlzLWNsaXBwZWR7b3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnR9LmlzLXJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnR9LmlzLW1hcmdpbmxlc3N7bWFyZ2luOjAgIWltcG9ydGFudH0uaXMtcGFkZGluZ2xlc3N7cGFkZGluZzowICFpbXBvcnRhbnR9Lm0tMHttYXJnaW46MCAhaW1wb3J0YW50fS5tdC0we21hcmdpbi10b3A6MCAhaW1wb3J0YW50fS5tci0we21hcmdpbi1yaWdodDowICFpbXBvcnRhbnR9Lm1iLTB7bWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnR9Lm1sLTB7bWFyZ2luLWxlZnQ6MCAhaW1wb3J0YW50fS5teC0we21hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6MCAhaW1wb3J0YW50fS5teS0we21hcmdpbi10b3A6MCAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50fS5tLTF7bWFyZ2luOi4yNXJlbSAhaW1wb3J0YW50fS5tdC0xe21hcmdpbi10b3A6LjI1cmVtICFpbXBvcnRhbnR9Lm1yLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSAhaW1wb3J0YW50fS5tYi0xe21hcmdpbi1ib3R0b206LjI1cmVtICFpbXBvcnRhbnR9Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtICFpbXBvcnRhbnR9Lm14LTF7bWFyZ2luLWxlZnQ6LjI1cmVtICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0Oi4yNXJlbSAhaW1wb3J0YW50fS5teS0xe21hcmdpbi10b3A6LjI1cmVtICFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTouMjVyZW0gIWltcG9ydGFudH0ubS0ye21hcmdpbjouNXJlbSAhaW1wb3J0YW50fS5tdC0ye21hcmdpbi10b3A6LjVyZW0gIWltcG9ydGFudH0ubXItMnttYXJnaW4tcmlnaHQ6LjVyZW0gIWltcG9ydGFudH0ubWItMnttYXJnaW4tYm90dG9tOi41cmVtICFpbXBvcnRhbnR9Lm1sLTJ7bWFyZ2luLWxlZnQ6LjVyZW0gIWltcG9ydGFudH0ubXgtMnttYXJnaW4tbGVmdDouNXJlbSAhaW1wb3J0YW50O21hcmdpbi1yaWdodDouNXJlbSAhaW1wb3J0YW50fS5teS0ye21hcmdpbi10b3A6LjVyZW0gIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi41cmVtICFpbXBvcnRhbnR9Lm0tM3ttYXJnaW46Ljc1cmVtICFpbXBvcnRhbnR9Lm10LTN7bWFyZ2luLXRvcDouNzVyZW0gIWltcG9ydGFudH0ubXItM3ttYXJnaW4tcmlnaHQ6Ljc1cmVtICFpbXBvcnRhbnR9Lm1iLTN7bWFyZ2luLWJvdHRvbTouNzVyZW0gIWltcG9ydGFudH0ubWwtM3ttYXJnaW4tbGVmdDouNzVyZW0gIWltcG9ydGFudH0ubXgtM3ttYXJnaW4tbGVmdDouNzVyZW0gIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6Ljc1cmVtICFpbXBvcnRhbnR9Lm15LTN7bWFyZ2luLXRvcDouNzVyZW0gIWltcG9ydGFudDttYXJnaW4tYm90dG9tOi43NXJlbSAhaW1wb3J0YW50fS5tLTR7bWFyZ2luOjFyZW0gIWltcG9ydGFudH0ubXQtNHttYXJnaW4tdG9wOjFyZW0gIWltcG9ydGFudH0ubXItNHttYXJnaW4tcmlnaHQ6MXJlbSAhaW1wb3J0YW50fS5tYi00e21hcmdpbi1ib3R0b206MXJlbSAhaW1wb3J0YW50fS5tbC00e21hcmdpbi1sZWZ0OjFyZW0gIWltcG9ydGFudH0ubXgtNHttYXJnaW4tbGVmdDoxcmVtICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OjFyZW0gIWltcG9ydGFudH0ubXktNHttYXJnaW4tdG9wOjFyZW0gIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjFyZW0gIWltcG9ydGFudH0ubS01e21hcmdpbjoxLjVyZW0gIWltcG9ydGFudH0ubXQtNXttYXJnaW4tdG9wOjEuNXJlbSAhaW1wb3J0YW50fS5tci01e21hcmdpbi1yaWdodDoxLjVyZW0gIWltcG9ydGFudH0ubWItNXttYXJnaW4tYm90dG9tOjEuNXJlbSAhaW1wb3J0YW50fS5tbC01e21hcmdpbi1sZWZ0OjEuNXJlbSAhaW1wb3J0YW50fS5teC01e21hcmdpbi1sZWZ0OjEuNXJlbSAhaW1wb3J0YW50O21hcmdpbi1yaWdodDoxLjVyZW0gIWltcG9ydGFudH0ubXktNXttYXJnaW4tdG9wOjEuNXJlbSAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MS41cmVtICFpbXBvcnRhbnR9Lm0tNnttYXJnaW46M3JlbSAhaW1wb3J0YW50fS5tdC02e21hcmdpbi10b3A6M3JlbSAhaW1wb3J0YW50fS5tci02e21hcmdpbi1yaWdodDozcmVtICFpbXBvcnRhbnR9Lm1iLTZ7bWFyZ2luLWJvdHRvbTozcmVtICFpbXBvcnRhbnR9Lm1sLTZ7bWFyZ2luLWxlZnQ6M3JlbSAhaW1wb3J0YW50fS5teC02e21hcmdpbi1sZWZ0OjNyZW0gIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6M3JlbSAhaW1wb3J0YW50fS5teS02e21hcmdpbi10b3A6M3JlbSAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206M3JlbSAhaW1wb3J0YW50fS5tLWF1dG97bWFyZ2luOmF1dG8gIWltcG9ydGFudH0ubXQtYXV0b3ttYXJnaW4tdG9wOmF1dG8gIWltcG9ydGFudH0ubXItYXV0b3ttYXJnaW4tcmlnaHQ6YXV0byAhaW1wb3J0YW50fS5tYi1hdXRve21hcmdpbi1ib3R0b206YXV0byAhaW1wb3J0YW50fS5tbC1hdXRve21hcmdpbi1sZWZ0OmF1dG8gIWltcG9ydGFudH0ubXgtYXV0b3ttYXJnaW4tbGVmdDphdXRvICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8gIWltcG9ydGFudH0ubXktYXV0b3ttYXJnaW4tdG9wOmF1dG8gIWltcG9ydGFudDttYXJnaW4tYm90dG9tOmF1dG8gIWltcG9ydGFudH0ucC0we3BhZGRpbmc6MCAhaW1wb3J0YW50fS5wdC0we3BhZGRpbmctdG9wOjAgIWltcG9ydGFudH0ucHItMHtwYWRkaW5nLXJpZ2h0OjAgIWltcG9ydGFudH0ucGItMHtwYWRkaW5nLWJvdHRvbTowICFpbXBvcnRhbnR9LnBsLTB7cGFkZGluZy1sZWZ0OjAgIWltcG9ydGFudH0ucHgtMHtwYWRkaW5nLWxlZnQ6MCAhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6MCAhaW1wb3J0YW50fS5weS0we3BhZGRpbmctdG9wOjAgIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowICFpbXBvcnRhbnR9LnAtMXtwYWRkaW5nOi4yNXJlbSAhaW1wb3J0YW50fS5wdC0xe3BhZGRpbmctdG9wOi4yNXJlbSAhaW1wb3J0YW50fS5wci0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtICFpbXBvcnRhbnR9LnBiLTF7cGFkZGluZy1ib3R0b206LjI1cmVtICFpbXBvcnRhbnR9LnBsLTF7cGFkZGluZy1sZWZ0Oi4yNXJlbSAhaW1wb3J0YW50fS5weC0xe3BhZGRpbmctbGVmdDouMjVyZW0gIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSAhaW1wb3J0YW50fS5weS0xe3BhZGRpbmctdG9wOi4yNXJlbSAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOi4yNXJlbSAhaW1wb3J0YW50fS5wLTJ7cGFkZGluZzouNXJlbSAhaW1wb3J0YW50fS5wdC0ye3BhZGRpbmctdG9wOi41cmVtICFpbXBvcnRhbnR9LnByLTJ7cGFkZGluZy1yaWdodDouNXJlbSAhaW1wb3J0YW50fS5wYi0ye3BhZGRpbmctYm90dG9tOi41cmVtICFpbXBvcnRhbnR9LnBsLTJ7cGFkZGluZy1sZWZ0Oi41cmVtICFpbXBvcnRhbnR9LnB4LTJ7cGFkZGluZy1sZWZ0Oi41cmVtICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDouNXJlbSAhaW1wb3J0YW50fS5weS0ye3BhZGRpbmctdG9wOi41cmVtICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206LjVyZW0gIWltcG9ydGFudH0ucC0ze3BhZGRpbmc6Ljc1cmVtICFpbXBvcnRhbnR9LnB0LTN7cGFkZGluZy10b3A6Ljc1cmVtICFpbXBvcnRhbnR9LnByLTN7cGFkZGluZy1yaWdodDouNzVyZW0gIWltcG9ydGFudH0ucGItM3twYWRkaW5nLWJvdHRvbTouNzVyZW0gIWltcG9ydGFudH0ucGwtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtICFpbXBvcnRhbnR9LnB4LTN7cGFkZGluZy1sZWZ0Oi43NXJlbSAhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6Ljc1cmVtICFpbXBvcnRhbnR9LnB5LTN7cGFkZGluZy10b3A6Ljc1cmVtICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206Ljc1cmVtICFpbXBvcnRhbnR9LnAtNHtwYWRkaW5nOjFyZW0gIWltcG9ydGFudH0ucHQtNHtwYWRkaW5nLXRvcDoxcmVtICFpbXBvcnRhbnR9LnByLTR7cGFkZGluZy1yaWdodDoxcmVtICFpbXBvcnRhbnR9LnBiLTR7cGFkZGluZy1ib3R0b206MXJlbSAhaW1wb3J0YW50fS5wbC00e3BhZGRpbmctbGVmdDoxcmVtICFpbXBvcnRhbnR9LnB4LTR7cGFkZGluZy1sZWZ0OjFyZW0gIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjFyZW0gIWltcG9ydGFudH0ucHktNHtwYWRkaW5nLXRvcDoxcmVtICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MXJlbSAhaW1wb3J0YW50fS5wLTV7cGFkZGluZzoxLjVyZW0gIWltcG9ydGFudH0ucHQtNXtwYWRkaW5nLXRvcDoxLjVyZW0gIWltcG9ydGFudH0ucHItNXtwYWRkaW5nLXJpZ2h0OjEuNXJlbSAhaW1wb3J0YW50fS5wYi01e3BhZGRpbmctYm90dG9tOjEuNXJlbSAhaW1wb3J0YW50fS5wbC01e3BhZGRpbmctbGVmdDoxLjVyZW0gIWltcG9ydGFudH0ucHgtNXtwYWRkaW5nLWxlZnQ6MS41cmVtICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDoxLjVyZW0gIWltcG9ydGFudH0ucHktNXtwYWRkaW5nLXRvcDoxLjVyZW0gIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbToxLjVyZW0gIWltcG9ydGFudH0ucC02e3BhZGRpbmc6M3JlbSAhaW1wb3J0YW50fS5wdC02e3BhZGRpbmctdG9wOjNyZW0gIWltcG9ydGFudH0ucHItNntwYWRkaW5nLXJpZ2h0OjNyZW0gIWltcG9ydGFudH0ucGItNntwYWRkaW5nLWJvdHRvbTozcmVtICFpbXBvcnRhbnR9LnBsLTZ7cGFkZGluZy1sZWZ0OjNyZW0gIWltcG9ydGFudH0ucHgtNntwYWRkaW5nLWxlZnQ6M3JlbSAhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6M3JlbSAhaW1wb3J0YW50fS5weS02e3BhZGRpbmctdG9wOjNyZW0gIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTozcmVtICFpbXBvcnRhbnR9LnAtYXV0b3twYWRkaW5nOmF1dG8gIWltcG9ydGFudH0ucHQtYXV0b3twYWRkaW5nLXRvcDphdXRvICFpbXBvcnRhbnR9LnByLWF1dG97cGFkZGluZy1yaWdodDphdXRvICFpbXBvcnRhbnR9LnBiLWF1dG97cGFkZGluZy1ib3R0b206YXV0byAhaW1wb3J0YW50fS5wbC1hdXRve3BhZGRpbmctbGVmdDphdXRvICFpbXBvcnRhbnR9LnB4LWF1dG97cGFkZGluZy1sZWZ0OmF1dG8gIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OmF1dG8gIWltcG9ydGFudH0ucHktYXV0b3twYWRkaW5nLXRvcDphdXRvICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206YXV0byAhaW1wb3J0YW50fS5pcy1zaXplLTF7Zm9udC1zaXplOjNyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS0ye2ZvbnQtc2l6ZToyLjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS0ze2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNHtmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNXtmb250LXNpemU6MS4yNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTZ7Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03e2ZvbnQtc2l6ZTouNzVyZW0gIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmlzLXNpemUtMS1tb2JpbGV7Zm9udC1zaXplOjNyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS0yLW1vYmlsZXtmb250LXNpemU6Mi41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMy1tb2JpbGV7Zm9udC1zaXplOjJyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS00LW1vYmlsZXtmb250LXNpemU6MS41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNS1tb2JpbGV7Zm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS02LW1vYmlsZXtmb250LXNpemU6MXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTctbW9iaWxle2ZvbnQtc2l6ZTouNzVyZW0gIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpLHByaW50ey5pcy1zaXplLTEtdGFibGV0e2ZvbnQtc2l6ZTozcmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMi10YWJsZXR7Zm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTMtdGFibGV0e2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNC10YWJsZXR7Zm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTUtdGFibGV0e2ZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNi10YWJsZXR7Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03LXRhYmxldHtmb250LXNpemU6Ljc1cmVtICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLXNpemUtMS10b3VjaHtmb250LXNpemU6M3JlbSAhaW1wb3J0YW50fS5pcy1zaXplLTItdG91Y2h7Zm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTMtdG91Y2h7Zm9udC1zaXplOjJyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS00LXRvdWNoe2ZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS01LXRvdWNoe2ZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNi10b3VjaHtmb250LXNpemU6MXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTctdG91Y2h7Zm9udC1zaXplOi43NXJlbSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1zaXplLTEtZGVza3RvcHtmb250LXNpemU6M3JlbSAhaW1wb3J0YW50fS5pcy1zaXplLTItZGVza3RvcHtmb250LXNpemU6Mi41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMy1kZXNrdG9we2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNC1kZXNrdG9we2ZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS01LWRlc2t0b3B7Zm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS02LWRlc2t0b3B7Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03LWRlc2t0b3B7Zm9udC1zaXplOi43NXJlbSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5pcy1zaXplLTEtd2lkZXNjcmVlbntmb250LXNpemU6M3JlbSAhaW1wb3J0YW50fS5pcy1zaXplLTItd2lkZXNjcmVlbntmb250LXNpemU6Mi41cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMy13aWRlc2NyZWVue2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNC13aWRlc2NyZWVue2ZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS01LXdpZGVzY3JlZW57Zm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS02LXdpZGVzY3JlZW57Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03LXdpZGVzY3JlZW57Zm9udC1zaXplOi43NXJlbSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5pcy1zaXplLTEtZnVsbGhke2ZvbnQtc2l6ZTozcmVtICFpbXBvcnRhbnR9LmlzLXNpemUtMi1mdWxsaGR7Zm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTMtZnVsbGhke2ZvbnQtc2l6ZToycmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNC1mdWxsaGR7Zm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50fS5pcy1zaXplLTUtZnVsbGhke2ZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnR9LmlzLXNpemUtNi1mdWxsaGR7Zm9udC1zaXplOjFyZW0gIWltcG9ydGFudH0uaXMtc2l6ZS03LWZ1bGxoZHtmb250LXNpemU6Ljc1cmVtICFpbXBvcnRhbnR9fS5oYXMtdGV4dC1jZW50ZXJlZHt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fS5oYXMtdGV4dC1qdXN0aWZpZWR7dGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhhcy10ZXh0LWNlbnRlcmVkLW1vYmlsZXt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7Lmhhcy10ZXh0LWNlbnRlcmVkLXRhYmxldHt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtY2VudGVyZWQtdGFibGV0LW9ubHl7dGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtY2VudGVyZWQtdG91Y2h7dGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaGFzLXRleHQtY2VudGVyZWQtZGVza3RvcHt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7Lmhhcy10ZXh0LWNlbnRlcmVkLWRlc2t0b3Atb25seXt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5oYXMtdGV4dC1jZW50ZXJlZC13aWRlc2NyZWVue3RleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaGFzLXRleHQtY2VudGVyZWQtd2lkZXNjcmVlbi1vbmx5e3RleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7Lmhhcy10ZXh0LWNlbnRlcmVkLWZ1bGxoZHt0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhhcy10ZXh0LWp1c3RpZmllZC1tb2JpbGV7dGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGFzLXRleHQtanVzdGlmaWVkLXRhYmxldHt0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7Lmhhcy10ZXh0LWp1c3RpZmllZC10YWJsZXQtb25seXt0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtanVzdGlmaWVkLXRvdWNoe3RleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtZGVza3RvcHt0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtZGVza3RvcC1vbmx5e3RleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtd2lkZXNjcmVlbnt0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtd2lkZXNjcmVlbi1vbmx5e3RleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5oYXMtdGV4dC1qdXN0aWZpZWQtZnVsbGhke3RleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhhcy10ZXh0LWxlZnQtbW9iaWxle3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7Lmhhcy10ZXh0LWxlZnQtdGFibGV0e3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtbGVmdC10YWJsZXQtb25seXt0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtbGVmdC10b3VjaHt0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaGFzLXRleHQtbGVmdC1kZXNrdG9we3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7Lmhhcy10ZXh0LWxlZnQtZGVza3RvcC1vbmx5e3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5oYXMtdGV4dC1sZWZ0LXdpZGVzY3JlZW57dGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaGFzLXRleHQtbGVmdC13aWRlc2NyZWVuLW9ubHl7dGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7Lmhhcy10ZXh0LWxlZnQtZnVsbGhke3RleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhhcy10ZXh0LXJpZ2h0LW1vYmlsZXt0ZXh0LWFsaWduOnJpZ2h0ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGFzLXRleHQtcmlnaHQtdGFibGV0e3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7Lmhhcy10ZXh0LXJpZ2h0LXRhYmxldC1vbmx5e3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGFzLXRleHQtcmlnaHQtdG91Y2h7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5oYXMtdGV4dC1yaWdodC1kZXNrdG9we3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5oYXMtdGV4dC1yaWdodC1kZXNrdG9wLW9ubHl7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5oYXMtdGV4dC1yaWdodC13aWRlc2NyZWVue3RleHQtYWxpZ246cmlnaHQgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5oYXMtdGV4dC1yaWdodC13aWRlc2NyZWVuLW9ubHl7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5oYXMtdGV4dC1yaWdodC1mdWxsaGR7dGV4dC1hbGlnbjpyaWdodCAhaW1wb3J0YW50fX0uaXMtY2FwaXRhbGl6ZWR7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZSAhaW1wb3J0YW50fS5pcy1sb3dlcmNhc2V7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlICFpbXBvcnRhbnR9LmlzLXVwcGVyY2FzZXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UgIWltcG9ydGFudH0uaXMtaXRhbGlje2ZvbnQtc3R5bGU6aXRhbGljICFpbXBvcnRhbnR9LmlzLXVuZGVybGluZWR7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSAhaW1wb3J0YW50fS5oYXMtdGV4dC13ZWlnaHQtbGlnaHR7Zm9udC13ZWlnaHQ6MzAwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdlaWdodC1ub3JtYWx7Zm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdlaWdodC1tZWRpdW17Zm9udC13ZWlnaHQ6NTAwICFpbXBvcnRhbnR9Lmhhcy10ZXh0LXdlaWdodC1zZW1pYm9sZHtmb250LXdlaWdodDo2MDAgIWltcG9ydGFudH0uaGFzLXRleHQtd2VpZ2h0LWJvbGR7Zm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnR9LmlzLWZhbWlseS1wcmltYXJ5e2ZvbnQtZmFtaWx5OkJsaW5rTWFjU3lzdGVtRm9udCwtYXBwbGUtc3lzdGVtLCJTZWdvZSBVSSIsIlJvYm90byIsIk94eWdlbiIsIlVidW50dSIsIkNhbnRhcmVsbCIsIkZpcmEgU2FucyIsIkRyb2lkIFNhbnMiLCJIZWx2ZXRpY2EgTmV1ZSIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmICFpbXBvcnRhbnR9LmlzLWZhbWlseS1zZWNvbmRhcnl7Zm9udC1mYW1pbHk6QmxpbmtNYWNTeXN0ZW1Gb250LC1hcHBsZS1zeXN0ZW0sIlNlZ29lIFVJIiwiUm9ib3RvIiwiT3h5Z2VuIiwiVWJ1bnR1IiwiQ2FudGFyZWxsIiwiRmlyYSBTYW5zIiwiRHJvaWQgU2FucyIsIkhlbHZldGljYSBOZXVlIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWYgIWltcG9ydGFudH0uaXMtZmFtaWx5LXNhbnMtc2VyaWZ7Zm9udC1mYW1pbHk6QmxpbmtNYWNTeXN0ZW1Gb250LC1hcHBsZS1zeXN0ZW0sIlNlZ29lIFVJIiwiUm9ib3RvIiwiT3h5Z2VuIiwiVWJ1bnR1IiwiQ2FudGFyZWxsIiwiRmlyYSBTYW5zIiwiRHJvaWQgU2FucyIsIkhlbHZldGljYSBOZXVlIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWYgIWltcG9ydGFudH0uaXMtZmFtaWx5LW1vbm9zcGFjZXtmb250LWZhbWlseTptb25vc3BhY2UgIWltcG9ydGFudH0uaXMtZmFtaWx5LWNvZGV7Zm9udC1mYW1pbHk6bW9ub3NwYWNlICFpbXBvcnRhbnR9LmlzLWJsb2Nre2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmlzLWJsb2NrLW1vYmlsZXtkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaXMtYmxvY2stdGFibGV0e2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWJsb2NrLXRhYmxldC1vbmx5e2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtYmxvY2stdG91Y2h7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1ibG9jay1kZXNrdG9we2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5pcy1ibG9jay1kZXNrdG9wLW9ubHl7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5pcy1ibG9jay13aWRlc2NyZWVue2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5pcy1ibG9jay13aWRlc2NyZWVuLW9ubHl7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5pcy1ibG9jay1mdWxsaGR7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX0uaXMtZmxleHtkaXNwbGF5OmZsZXggIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmlzLWZsZXgtbW9iaWxle2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmlzLWZsZXgtdGFibGV0e2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtZmxleC10YWJsZXQtb25seXtkaXNwbGF5OmZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtZmxleC10b3VjaHtkaXNwbGF5OmZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaXMtZmxleC1kZXNrdG9we2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmlzLWZsZXgtZGVza3RvcC1vbmx5e2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5pcy1mbGV4LXdpZGVzY3JlZW57ZGlzcGxheTpmbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaXMtZmxleC13aWRlc2NyZWVuLW9ubHl7ZGlzcGxheTpmbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmlzLWZsZXgtZnVsbGhke2Rpc3BsYXk6ZmxleCAhaW1wb3J0YW50fX0uaXMtaW5saW5le2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5pcy1pbmxpbmUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaXMtaW5saW5lLXRhYmxldHtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtaW5saW5lLXRhYmxldC1vbmx5e2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWlubGluZS10b3VjaHtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1pbmxpbmUtZGVza3RvcHtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmlzLWlubGluZS1kZXNrdG9wLW9ubHl7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuaXMtaW5saW5lLXdpZGVzY3JlZW57ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5pcy1pbmxpbmUtd2lkZXNjcmVlbi1vbmx5e2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmlzLWlubGluZS1mdWxsaGR7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudH19LmlzLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaXMtaW5saW5lLWJsb2NrLW1vYmlsZXtkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmlzLWlubGluZS1ibG9jay10YWJsZXR7ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWlubGluZS1ibG9jay10YWJsZXQtb25seXtkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5pcy1pbmxpbmUtYmxvY2stdG91Y2h7ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaXMtaW5saW5lLWJsb2NrLWRlc2t0b3B7ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5pcy1pbmxpbmUtYmxvY2stZGVza3RvcC1vbmx5e2Rpc3BsYXk6aW5saW5lLWJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweCl7LmlzLWlubGluZS1ibG9jay13aWRlc2NyZWVue2Rpc3BsYXk6aW5saW5lLWJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaXMtaW5saW5lLWJsb2NrLXdpZGVzY3JlZW4tb25seXtkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5pcy1pbmxpbmUtYmxvY2stZnVsbGhke2Rpc3BsYXk6aW5saW5lLWJsb2NrICFpbXBvcnRhbnR9fS5pcy1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5pcy1pbmxpbmUtZmxleC1tb2JpbGV7ZGlzcGxheTppbmxpbmUtZmxleCAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7LmlzLWlubGluZS1mbGV4LXRhYmxldHtkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KWFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5pcy1pbmxpbmUtZmxleC10YWJsZXQtb25seXtkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWlubGluZS1mbGV4LXRvdWNoe2Rpc3BsYXk6aW5saW5lLWZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KXsuaXMtaW5saW5lLWZsZXgtZGVza3RvcHtkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweClhbmQgKG1heC13aWR0aDogMTIxNXB4KXsuaXMtaW5saW5lLWZsZXgtZGVza3RvcC1vbmx5e2Rpc3BsYXk6aW5saW5lLWZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuaXMtaW5saW5lLWZsZXgtd2lkZXNjcmVlbntkaXNwbGF5OmlubGluZS1mbGV4ICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMTZweClhbmQgKG1heC13aWR0aDogMTQwN3B4KXsuaXMtaW5saW5lLWZsZXgtd2lkZXNjcmVlbi1vbmx5e2Rpc3BsYXk6aW5saW5lLWZsZXggIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwOHB4KXsuaXMtaW5saW5lLWZsZXgtZnVsbGhke2Rpc3BsYXk6aW5saW5lLWZsZXggIWltcG9ydGFudH19LmlzLWhpZGRlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudH0uaXMtc3Itb25seXtib3JkZXI6bm9uZSAhaW1wb3J0YW50O2NsaXA6cmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O2hlaWdodDouMDFlbSAhaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O3BhZGRpbmc6MCAhaW1wb3J0YW50O3Bvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwICFpbXBvcnRhbnQ7d2lkdGg6LjAxZW0gIWltcG9ydGFudH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmlzLWhpZGRlbi1tb2JpbGV7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaXMtaGlkZGVuLXRhYmxldHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWhpZGRlbi10YWJsZXQtb25seXtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtaGlkZGVuLXRvdWNoe2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1oaWRkZW4tZGVza3RvcHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KWFuZCAobWF4LXdpZHRoOiAxMjE1cHgpey5pcy1oaWRkZW4tZGVza3RvcC1vbmx5e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjE2cHgpey5pcy1oaWRkZW4td2lkZXNjcmVlbntkaXNwbGF5Om5vbmUgIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5pcy1oaWRkZW4td2lkZXNjcmVlbi1vbmx5e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDA4cHgpey5pcy1oaWRkZW4tZnVsbGhke2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX0uaXMtaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnR9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5pcy1pbnZpc2libGUtbW9iaWxle3Zpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaXMtaW52aXNpYmxlLXRhYmxldHt2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweClhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaXMtaW52aXNpYmxlLXRhYmxldC1vbmx5e3Zpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7LmlzLWludmlzaWJsZS10b3VjaHt2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpey5pcy1pbnZpc2libGUtZGVza3RvcHt2aXNpYmlsaXR5OmhpZGRlbiAhaW1wb3J0YW50fX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpYW5kIChtYXgtd2lkdGg6IDEyMTVweCl7LmlzLWludmlzaWJsZS1kZXNrdG9wLW9ubHl7dmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KXsuaXMtaW52aXNpYmxlLXdpZGVzY3JlZW57dmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudH19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIxNnB4KWFuZCAobWF4LXdpZHRoOiAxNDA3cHgpey5pcy1pbnZpc2libGUtd2lkZXNjcmVlbi1vbmx5e3Zpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnR9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDhweCl7LmlzLWludmlzaWJsZS1mdWxsaGR7dmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudH19Lmhlcm97YWxpZ24taXRlbXM6c3RyZXRjaDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5oZXJvIC5uYXZiYXJ7YmFja2dyb3VuZDpub25lfS5oZXJvIC50YWJzIHVse2JvcmRlci1ib3R0b206bm9uZX0uaGVyby5pcy13aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzBhMGEwYX0uaGVyby5pcy13aGl0ZSBhOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duLWl0ZW0pOm5vdCgudGFnKTpub3QoLnBhZ2luYXRpb24tbGluay5pcy1jdXJyZW50KSwuaGVyby5pcy13aGl0ZSBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy13aGl0ZSAudGl0bGV7Y29sb3I6IzBhMGEwYX0uaGVyby5pcy13aGl0ZSAuc3VidGl0bGV7Y29sb3I6cmdiYSgxMCwxMCwxMCwuOSl9Lmhlcm8uaXMtd2hpdGUgLnN1YnRpdGxlIGE6bm90KC5idXR0b24pLC5oZXJvLmlzLXdoaXRlIC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6IzBhMGEwYX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5oZXJvLmlzLXdoaXRlIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9fS5oZXJvLmlzLXdoaXRlIC5uYXZiYXItaXRlbSwuaGVyby5pcy13aGl0ZSAubmF2YmFyLWxpbmt7Y29sb3I6cmdiYSgxMCwxMCwxMCwuNyl9Lmhlcm8uaXMtd2hpdGUgYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy13aGl0ZSBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwuaGVyby5pcy13aGl0ZSAubmF2YmFyLWxpbms6aG92ZXIsLmhlcm8uaXMtd2hpdGUgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Y29sb3I6IzBhMGEwYX0uaGVyby5pcy13aGl0ZSAudGFicyBhe2NvbG9yOiMwYTBhMGE7b3BhY2l0eTouOX0uaGVyby5pcy13aGl0ZSAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy13aGl0ZSAudGFicyBsaS5pcy1hY3RpdmUgYXtjb2xvcjojZmZmICFpbXBvcnRhbnQ7b3BhY2l0eToxfS5oZXJvLmlzLXdoaXRlIC50YWJzLmlzLWJveGVkIGEsLmhlcm8uaXMtd2hpdGUgLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6IzBhMGEwYX0uaGVyby5pcy13aGl0ZSAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLXdoaXRlIC50YWJzLmlzLXRvZ2dsZSBhOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMCwxMCwxMCwuMSl9Lmhlcm8uaXMtd2hpdGUgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtd2hpdGUgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtd2hpdGUgLnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLXdoaXRlIC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwYTBhMGE7Ym9yZGVyLWNvbG9yOiMwYTBhMGE7Y29sb3I6I2ZmZn0uaGVyby5pcy13aGl0ZS5pcy1ib2xke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgI2U4ZTNlNCAwJSwgaHNsKDAsIDAlLCAxMDAlKSA3MSUsIHdoaXRlIDEwMCUpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaGVyby5pcy13aGl0ZS5pcy1ib2xkIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICNlOGUzZTQgMCUsIGhzbCgwLCAwJSwgMTAwJSkgNzElLCB3aGl0ZSAxMDAlKX19Lmhlcm8uaXMtYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhO2NvbG9yOiNmZmZ9Lmhlcm8uaXMtYmxhY2sgYTpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bi1pdGVtKTpub3QoLnRhZyk6bm90KC5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudCksLmhlcm8uaXMtYmxhY2sgc3Ryb25ne2NvbG9yOmluaGVyaXR9Lmhlcm8uaXMtYmxhY2sgLnRpdGxle2NvbG9yOiNmZmZ9Lmhlcm8uaXMtYmxhY2sgLnN1YnRpdGxle2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpfS5oZXJvLmlzLWJsYWNrIC5zdWJ0aXRsZSBhOm5vdCguYnV0dG9uKSwuaGVyby5pcy1ibGFjayAuc3VidGl0bGUgc3Ryb25ne2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1ibGFjayAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1jb2xvcjojMGEwYTBhfX0uaGVyby5pcy1ibGFjayAubmF2YmFyLWl0ZW0sLmhlcm8uaXMtYmxhY2sgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5oZXJvLmlzLWJsYWNrIGEubmF2YmFyLWl0ZW06aG92ZXIsLmhlcm8uaXMtYmxhY2sgYS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLmhlcm8uaXMtYmxhY2sgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWJsYWNrIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmZ9Lmhlcm8uaXMtYmxhY2sgLnRhYnMgYXtjb2xvcjojZmZmO29wYWNpdHk6Ljl9Lmhlcm8uaXMtYmxhY2sgLnRhYnMgYTpob3ZlcntvcGFjaXR5OjF9Lmhlcm8uaXMtYmxhY2sgLnRhYnMgbGkuaXMtYWN0aXZlIGF7Y29sb3I6IzBhMGEwYSAhaW1wb3J0YW50O29wYWNpdHk6MX0uaGVyby5pcy1ibGFjayAudGFicy5pcy1ib3hlZCBhLC5oZXJvLmlzLWJsYWNrIC50YWJzLmlzLXRvZ2dsZSBhe2NvbG9yOiNmZmZ9Lmhlcm8uaXMtYmxhY2sgLnRhYnMuaXMtYm94ZWQgYTpob3ZlciwuaGVyby5pcy1ibGFjayAudGFicy5pcy10b2dnbGUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjEpfS5oZXJvLmlzLWJsYWNrIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWJsYWNrIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhOmhvdmVyLC5oZXJvLmlzLWJsYWNrIC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYSwuaGVyby5pcy1ibGFjayAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiMwYTBhMGF9Lmhlcm8uaXMtYmxhY2suaXMtYm9sZHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsIGJsYWNrIDAlLCBoc2woMCwgMCUsIDQlKSA3MSUsICMxODE2MTYgMTAwJSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLmlzLWJsYWNrLmlzLWJvbGQgLm5hdmJhci1tZW51e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgYmxhY2sgMCUsIGhzbCgwLCAwJSwgNCUpIDcxJSwgIzE4MTYxNiAxMDAlKX19Lmhlcm8uaXMtbGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWxpZ2h0IGE6bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24taXRlbSk6bm90KC50YWcpOm5vdCgucGFnaW5hdGlvbi1saW5rLmlzLWN1cnJlbnQpLC5oZXJvLmlzLWxpZ2h0IHN0cm9uZ3tjb2xvcjppbmhlcml0fS5oZXJvLmlzLWxpZ2h0IC50aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uaGVyby5pcy1saWdodCAuc3VidGl0bGV7Y29sb3I6cmdiYSgwLDAsMCwuOSl9Lmhlcm8uaXMtbGlnaHQgLnN1YnRpdGxlIGE6bm90KC5idXR0b24pLC5oZXJvLmlzLWxpZ2h0IC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1saWdodCAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1jb2xvcjojZDJmOWQ2fX0uaGVyby5pcy1saWdodCAubmF2YmFyLWl0ZW0sLmhlcm8uaXMtbGlnaHQgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWxpZ2h0IGEubmF2YmFyLWl0ZW06aG92ZXIsLmhlcm8uaXMtbGlnaHQgYS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLmhlcm8uaXMtbGlnaHQgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWxpZ2h0IC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYmNmNmMyO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWxpZ2h0IC50YWJzIGF7Y29sb3I6cmdiYSgwLDAsMCwuNyk7b3BhY2l0eTouOX0uaGVyby5pcy1saWdodCAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy1saWdodCAudGFicyBsaS5pcy1hY3RpdmUgYXtjb2xvcjojZDJmOWQ2ICFpbXBvcnRhbnQ7b3BhY2l0eToxfS5oZXJvLmlzLWxpZ2h0IC50YWJzLmlzLWJveGVkIGEsLmhlcm8uaXMtbGlnaHQgLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtbGlnaHQgLnRhYnMuaXMtYm94ZWQgYTpob3ZlciwuaGVyby5pcy1saWdodCAudGFicy5pcy10b2dnbGUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjEpfS5oZXJvLmlzLWxpZ2h0IC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWxpZ2h0IC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhOmhvdmVyLC5oZXJvLmlzLWxpZ2h0IC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYSwuaGVyby5pcy1saWdodCAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6I2QyZjlkNn0uaGVyby5pcy1saWdodC5pcy1ib2xke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgI2E2ZjhhMCAwJSwgI2QyZjlkNiA3MSUsICNlOGZkZWQgMTAwJSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLmlzLWxpZ2h0LmlzLWJvbGQgLm5hdmJhci1tZW51e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgI2E2ZjhhMCAwJSwgI2QyZjlkNiA3MSUsICNlOGZkZWQgMTAwJSl9fS5oZXJvLmlzLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojNDU5NTU4O2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFyayBhOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duLWl0ZW0pOm5vdCgudGFnKTpub3QoLnBhZ2luYXRpb24tbGluay5pcy1jdXJyZW50KSwuaGVyby5pcy1kYXJrIHN0cm9uZ3tjb2xvcjppbmhlcml0fS5oZXJvLmlzLWRhcmsgLnRpdGxle2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFyayAuc3VidGl0bGV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSl9Lmhlcm8uaXMtZGFyayAuc3VidGl0bGUgYTpub3QoLmJ1dHRvbiksLmhlcm8uaXMtZGFyayAuc3VidGl0bGUgc3Ryb25ne2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1kYXJrIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTk1NTh9fS5oZXJvLmlzLWRhcmsgLm5hdmJhci1pdGVtLC5oZXJvLmlzLWRhcmsgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5oZXJvLmlzLWRhcmsgYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy1kYXJrIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5oZXJvLmlzLWRhcmsgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWRhcmsgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZDg0NGU7Y29sb3I6I2ZmZn0uaGVyby5pcy1kYXJrIC50YWJzIGF7Y29sb3I6I2ZmZjtvcGFjaXR5Oi45fS5oZXJvLmlzLWRhcmsgLnRhYnMgYTpob3ZlcntvcGFjaXR5OjF9Lmhlcm8uaXMtZGFyayAudGFicyBsaS5pcy1hY3RpdmUgYXtjb2xvcjojNDU5NTU4ICFpbXBvcnRhbnQ7b3BhY2l0eToxfS5oZXJvLmlzLWRhcmsgLnRhYnMuaXMtYm94ZWQgYSwuaGVyby5pcy1kYXJrIC50YWJzLmlzLXRvZ2dsZSBhe2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFyayAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLWRhcmsgLnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC4xKX0uaGVyby5pcy1kYXJrIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWRhcmsgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtZGFyayAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtZGFyayAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiM0NTk1NTh9Lmhlcm8uaXMtZGFyay5pcy1ib2xke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgIzJkN2EzMiAwJSwgIzQ1OTU1OCA3MSUsICM0N2FkNzAgMTAwJSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLmlzLWRhcmsuaXMtYm9sZCAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjMmQ3YTMyIDAlLCAjNDU5NTU4IDcxJSwgIzQ3YWQ3MCAxMDAlKX19Lmhlcm8uaXMtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiM1NWJlNmY7Y29sb3I6I2ZmZn0uaGVyby5pcy1wcmltYXJ5IGE6bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24taXRlbSk6bm90KC50YWcpOm5vdCgucGFnaW5hdGlvbi1saW5rLmlzLWN1cnJlbnQpLC5oZXJvLmlzLXByaW1hcnkgc3Ryb25ne2NvbG9yOmluaGVyaXR9Lmhlcm8uaXMtcHJpbWFyeSAudGl0bGV7Y29sb3I6I2ZmZn0uaGVyby5pcy1wcmltYXJ5IC5zdWJ0aXRsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KX0uaGVyby5pcy1wcmltYXJ5IC5zdWJ0aXRsZSBhOm5vdCguYnV0dG9uKSwuaGVyby5pcy1wcmltYXJ5IC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpey5oZXJvLmlzLXByaW1hcnkgLm5hdmJhci1tZW51e2JhY2tncm91bmQtY29sb3I6IzU1YmU2Zn19Lmhlcm8uaXMtcHJpbWFyeSAubmF2YmFyLWl0ZW0sLmhlcm8uaXMtcHJpbWFyeSAubmF2YmFyLWxpbmt7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNyl9Lmhlcm8uaXMtcHJpbWFyeSBhLm5hdmJhci1pdGVtOmhvdmVyLC5oZXJvLmlzLXByaW1hcnkgYS5uYXZiYXItaXRlbS5pcy1hY3RpdmUsLmhlcm8uaXMtcHJpbWFyeSAubmF2YmFyLWxpbms6aG92ZXIsLmhlcm8uaXMtcHJpbWFyeSAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzQ1YjQ2MTtjb2xvcjojZmZmfS5oZXJvLmlzLXByaW1hcnkgLnRhYnMgYXtjb2xvcjojZmZmO29wYWNpdHk6Ljl9Lmhlcm8uaXMtcHJpbWFyeSAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy1wcmltYXJ5IC50YWJzIGxpLmlzLWFjdGl2ZSBhe2NvbG9yOiM1NWJlNmYgIWltcG9ydGFudDtvcGFjaXR5OjF9Lmhlcm8uaXMtcHJpbWFyeSAudGFicy5pcy1ib3hlZCBhLC5oZXJvLmlzLXByaW1hcnkgLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6I2ZmZn0uaGVyby5pcy1wcmltYXJ5IC50YWJzLmlzLWJveGVkIGE6aG92ZXIsLmhlcm8uaXMtcHJpbWFyeSAudGFicy5pcy10b2dnbGUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTAsMTAsMTAsLjEpfS5oZXJvLmlzLXByaW1hcnkgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtcHJpbWFyeSAudGFicy5pcy1ib3hlZCBsaS5pcy1hY3RpdmUgYTpob3ZlciwuaGVyby5pcy1wcmltYXJ5IC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYSwuaGVyby5pcy1wcmltYXJ5IC50YWJzLmlzLXRvZ2dsZSBsaS5pcy1hY3RpdmUgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmY7Y29sb3I6IzU1YmU2Zn0uaGVyby5pcy1wcmltYXJ5LmlzLWJvbGR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjMzNhZDNkIDAlLCAjNTViZTZmIDcxJSwgIzYyY2E4ZCAxMDAlKX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhlcm8uaXMtcHJpbWFyeS5pcy1ib2xkIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICMzM2FkM2QgMCUsICM1NWJlNmYgNzElLCAjNjJjYThkIDEwMCUpfX0uaGVyby5pcy1saW5re2JhY2tncm91bmQtY29sb3I6IzQ4NzZmZjtjb2xvcjojZmZmfS5oZXJvLmlzLWxpbmsgYTpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bi1pdGVtKTpub3QoLnRhZyk6bm90KC5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudCksLmhlcm8uaXMtbGluayBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy1saW5rIC50aXRsZXtjb2xvcjojZmZmfS5oZXJvLmlzLWxpbmsgLnN1YnRpdGxle2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpfS5oZXJvLmlzLWxpbmsgLnN1YnRpdGxlIGE6bm90KC5idXR0b24pLC5oZXJvLmlzLWxpbmsgLnN1YnRpdGxlIHN0cm9uZ3tjb2xvcjojZmZmfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7Lmhlcm8uaXMtbGluayAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1jb2xvcjojNDg3NmZmfX0uaGVyby5pcy1saW5rIC5uYXZiYXItaXRlbSwuaGVyby5pcy1saW5rIC5uYXZiYXItbGlua3tjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KX0uaGVyby5pcy1saW5rIGEubmF2YmFyLWl0ZW06aG92ZXIsLmhlcm8uaXMtbGluayBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwuaGVyby5pcy1saW5rIC5uYXZiYXItbGluazpob3ZlciwuaGVyby5pcy1saW5rIC5uYXZiYXItbGluay5pcy1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMmY2M2ZmO2NvbG9yOiNmZmZ9Lmhlcm8uaXMtbGluayAudGFicyBhe2NvbG9yOiNmZmY7b3BhY2l0eTouOX0uaGVyby5pcy1saW5rIC50YWJzIGE6aG92ZXJ7b3BhY2l0eToxfS5oZXJvLmlzLWxpbmsgLnRhYnMgbGkuaXMtYWN0aXZlIGF7Y29sb3I6IzQ4NzZmZiAhaW1wb3J0YW50O29wYWNpdHk6MX0uaGVyby5pcy1saW5rIC50YWJzLmlzLWJveGVkIGEsLmhlcm8uaXMtbGluayAudGFicy5pcy10b2dnbGUgYXtjb2xvcjojZmZmfS5oZXJvLmlzLWxpbmsgLnRhYnMuaXMtYm94ZWQgYTpob3ZlciwuaGVyby5pcy1saW5rIC50YWJzLmlzLXRvZ2dsZSBhOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMCwxMCwxMCwuMSl9Lmhlcm8uaXMtbGluayAudGFicy5pcy1ib3hlZCBsaS5pcy1hY3RpdmUgYSwuaGVyby5pcy1saW5rIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhOmhvdmVyLC5oZXJvLmlzLWxpbmsgLnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWxpbmsgLnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2ZmZjtjb2xvcjojNDg3NmZmfS5oZXJvLmlzLWxpbmsuaXMtYm9sZHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICMxNTc3ZmYgMCUsICM0ODc2ZmYgNzElLCAjNjI2ZmZmIDEwMCUpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaGVyby5pcy1saW5rLmlzLWJvbGQgLm5hdmJhci1tZW51e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgIzE1NzdmZiAwJSwgIzQ4NzZmZiA3MSUsICM2MjZmZmYgMTAwJSl9fS5oZXJvLmlzLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjBmOGZmO2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWluZm8gYTpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bi1pdGVtKTpub3QoLnRhZyk6bm90KC5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudCksLmhlcm8uaXMtaW5mbyBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy1pbmZvIC50aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uaGVyby5pcy1pbmZvIC5zdWJ0aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC45KX0uaGVyby5pcy1pbmZvIC5zdWJ0aXRsZSBhOm5vdCguYnV0dG9uKSwuaGVyby5pcy1pbmZvIC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1pbmZvIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiNmMGY4ZmZ9fS5oZXJvLmlzLWluZm8gLm5hdmJhci1pdGVtLC5oZXJvLmlzLWluZm8gLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLWluZm8gYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy1pbmZvIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5oZXJvLmlzLWluZm8gLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWluZm8gLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNkN2VjZmY7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtaW5mbyAudGFicyBhe2NvbG9yOnJnYmEoMCwwLDAsLjcpO29wYWNpdHk6Ljl9Lmhlcm8uaXMtaW5mbyAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy1pbmZvIC50YWJzIGxpLmlzLWFjdGl2ZSBhe2NvbG9yOiNmMGY4ZmYgIWltcG9ydGFudDtvcGFjaXR5OjF9Lmhlcm8uaXMtaW5mbyAudGFicy5pcy1ib3hlZCBhLC5oZXJvLmlzLWluZm8gLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtaW5mbyAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLWluZm8gLnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC4xKX0uaGVyby5pcy1pbmZvIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWluZm8gLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtaW5mbyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtaW5mbyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6I2YwZjhmZn0uaGVyby5pcy1pbmZvLmlzLWJvbGR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjYmRlYmZmIDAlLCAjZjBmOGZmIDcxJSwgd2hpdGUgMTAwJSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLmlzLWluZm8uaXMtYm9sZCAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjYmRlYmZmIDAlLCAjZjBmOGZmIDcxJSwgd2hpdGUgMTAwJSl9fS5oZXJvLmlzLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojNDhjNzhlO2NvbG9yOiNmZmZ9Lmhlcm8uaXMtc3VjY2VzcyBhOm5vdCguYnV0dG9uKTpub3QoLmRyb3Bkb3duLWl0ZW0pOm5vdCgudGFnKTpub3QoLnBhZ2luYXRpb24tbGluay5pcy1jdXJyZW50KSwuaGVyby5pcy1zdWNjZXNzIHN0cm9uZ3tjb2xvcjppbmhlcml0fS5oZXJvLmlzLXN1Y2Nlc3MgLnRpdGxle2NvbG9yOiNmZmZ9Lmhlcm8uaXMtc3VjY2VzcyAuc3VidGl0bGV7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSl9Lmhlcm8uaXMtc3VjY2VzcyAuc3VidGl0bGUgYTpub3QoLmJ1dHRvbiksLmhlcm8uaXMtc3VjY2VzcyAuc3VidGl0bGUgc3Ryb25ne2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1zdWNjZXNzIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiM0OGM3OGV9fS5oZXJvLmlzLXN1Y2Nlc3MgLm5hdmJhci1pdGVtLC5oZXJvLmlzLXN1Y2Nlc3MgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5oZXJvLmlzLXN1Y2Nlc3MgYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy1zdWNjZXNzIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5oZXJvLmlzLXN1Y2Nlc3MgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLXN1Y2Nlc3MgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzYWJiODE7Y29sb3I6I2ZmZn0uaGVyby5pcy1zdWNjZXNzIC50YWJzIGF7Y29sb3I6I2ZmZjtvcGFjaXR5Oi45fS5oZXJvLmlzLXN1Y2Nlc3MgLnRhYnMgYTpob3ZlcntvcGFjaXR5OjF9Lmhlcm8uaXMtc3VjY2VzcyAudGFicyBsaS5pcy1hY3RpdmUgYXtjb2xvcjojNDhjNzhlICFpbXBvcnRhbnQ7b3BhY2l0eToxfS5oZXJvLmlzLXN1Y2Nlc3MgLnRhYnMuaXMtYm94ZWQgYSwuaGVyby5pcy1zdWNjZXNzIC50YWJzLmlzLXRvZ2dsZSBhe2NvbG9yOiNmZmZ9Lmhlcm8uaXMtc3VjY2VzcyAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLXN1Y2Nlc3MgLnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC4xKX0uaGVyby5pcy1zdWNjZXNzIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLXN1Y2Nlc3MgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtc3VjY2VzcyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtc3VjY2VzcyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiM0OGM3OGV9Lmhlcm8uaXMtc3VjY2Vzcy5pcy1ib2xke2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE0MWRlZywgIzI5YjM1ZSAwJSwgaHNsKDE1MywgNTMlLCA1MyUpIDcxJSwgIzU2ZDJhZiAxMDAlKX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhlcm8uaXMtc3VjY2Vzcy5pcy1ib2xkIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICMyOWIzNWUgMCUsIGhzbCgxNTMsIDUzJSwgNTMlKSA3MSUsICM1NmQyYWYgMTAwJSl9fS5oZXJvLmlzLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZkOTc1O2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLXdhcm5pbmcgYTpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bi1pdGVtKTpub3QoLnRhZyk6bm90KC5wYWdpbmF0aW9uLWxpbmsuaXMtY3VycmVudCksLmhlcm8uaXMtd2FybmluZyBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy13YXJuaW5nIC50aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC43KX0uaGVyby5pcy13YXJuaW5nIC5zdWJ0aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC45KX0uaGVyby5pcy13YXJuaW5nIC5zdWJ0aXRsZSBhOm5vdCguYnV0dG9uKSwuaGVyby5pcy13YXJuaW5nIC5zdWJ0aXRsZSBzdHJvbmd7Y29sb3I6cmdiYSgwLDAsMCwuNyl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy13YXJuaW5nIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ5NzV9fS5oZXJvLmlzLXdhcm5pbmcgLm5hdmJhci1pdGVtLC5oZXJvLmlzLXdhcm5pbmcgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5oZXJvLmlzLXdhcm5pbmcgYS5uYXZiYXItaXRlbTpob3ZlciwuaGVyby5pcy13YXJuaW5nIGEubmF2YmFyLWl0ZW0uaXMtYWN0aXZlLC5oZXJvLmlzLXdhcm5pbmcgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLXdhcm5pbmcgLm5hdmJhci1saW5rLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQyNWM7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtd2FybmluZyAudGFicyBhe2NvbG9yOnJnYmEoMCwwLDAsLjcpO29wYWNpdHk6Ljl9Lmhlcm8uaXMtd2FybmluZyAudGFicyBhOmhvdmVye29wYWNpdHk6MX0uaGVyby5pcy13YXJuaW5nIC50YWJzIGxpLmlzLWFjdGl2ZSBhe2NvbG9yOiNmZmQ5NzUgIWltcG9ydGFudDtvcGFjaXR5OjF9Lmhlcm8uaXMtd2FybmluZyAudGFicy5pcy1ib3hlZCBhLC5oZXJvLmlzLXdhcm5pbmcgLnRhYnMuaXMtdG9nZ2xlIGF7Y29sb3I6cmdiYSgwLDAsMCwuNyl9Lmhlcm8uaXMtd2FybmluZyAudGFicy5pcy1ib3hlZCBhOmhvdmVyLC5oZXJvLmlzLXdhcm5pbmcgLnRhYnMuaXMtdG9nZ2xlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEwLDEwLDEwLC4xKX0uaGVyby5pcy13YXJuaW5nIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLXdhcm5pbmcgLnRhYnMuaXMtYm94ZWQgbGkuaXMtYWN0aXZlIGE6aG92ZXIsLmhlcm8uaXMtd2FybmluZyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGEsLmhlcm8uaXMtd2FybmluZyAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNyk7Y29sb3I6I2ZmZDk3NX0uaGVyby5pcy13YXJuaW5nLmlzLWJvbGR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjZmZhYjQyIDAlLCAjZmZkOTc1IDcxJSwgI2ZmZjM4ZiAxMDAlKX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lmhlcm8uaXMtd2FybmluZy5pcy1ib2xkIC5uYXZiYXItbWVudXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxNDFkZWcsICNmZmFiNDIgMCUsICNmZmQ5NzUgNzElLCAjZmZmMzhmIDEwMCUpfX0uaGVyby5pcy1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZjE0NjY4O2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFuZ2VyIGE6bm90KC5idXR0b24pOm5vdCguZHJvcGRvd24taXRlbSk6bm90KC50YWcpOm5vdCgucGFnaW5hdGlvbi1saW5rLmlzLWN1cnJlbnQpLC5oZXJvLmlzLWRhbmdlciBzdHJvbmd7Y29sb3I6aW5oZXJpdH0uaGVyby5pcy1kYW5nZXIgLnRpdGxle2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFuZ2VyIC5zdWJ0aXRsZXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KX0uaGVyby5pcy1kYW5nZXIgLnN1YnRpdGxlIGE6bm90KC5idXR0b24pLC5oZXJvLmlzLWRhbmdlciAuc3VidGl0bGUgc3Ryb25ne2NvbG9yOiNmZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KXsuaGVyby5pcy1kYW5nZXIgLm5hdmJhci1tZW51e2JhY2tncm91bmQtY29sb3I6I2YxNDY2OH19Lmhlcm8uaXMtZGFuZ2VyIC5uYXZiYXItaXRlbSwuaGVyby5pcy1kYW5nZXIgLm5hdmJhci1saW5re2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjcpfS5oZXJvLmlzLWRhbmdlciBhLm5hdmJhci1pdGVtOmhvdmVyLC5oZXJvLmlzLWRhbmdlciBhLm5hdmJhci1pdGVtLmlzLWFjdGl2ZSwuaGVyby5pcy1kYW5nZXIgLm5hdmJhci1saW5rOmhvdmVyLC5oZXJvLmlzLWRhbmdlciAubmF2YmFyLWxpbmsuaXMtYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2VmMmU1NTtjb2xvcjojZmZmfS5oZXJvLmlzLWRhbmdlciAudGFicyBhe2NvbG9yOiNmZmY7b3BhY2l0eTouOX0uaGVyby5pcy1kYW5nZXIgLnRhYnMgYTpob3ZlcntvcGFjaXR5OjF9Lmhlcm8uaXMtZGFuZ2VyIC50YWJzIGxpLmlzLWFjdGl2ZSBhe2NvbG9yOiNmMTQ2NjggIWltcG9ydGFudDtvcGFjaXR5OjF9Lmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLWJveGVkIGEsLmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLXRvZ2dsZSBhe2NvbG9yOiNmZmZ9Lmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLWJveGVkIGE6aG92ZXIsLmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLXRvZ2dsZSBhOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgxMCwxMCwxMCwuMSl9Lmhlcm8uaXMtZGFuZ2VyIC50YWJzLmlzLWJveGVkIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWRhbmdlciAudGFicy5pcy1ib3hlZCBsaS5pcy1hY3RpdmUgYTpob3ZlciwuaGVyby5pcy1kYW5nZXIgLnRhYnMuaXMtdG9nZ2xlIGxpLmlzLWFjdGl2ZSBhLC5oZXJvLmlzLWRhbmdlciAudGFicy5pcy10b2dnbGUgbGkuaXMtYWN0aXZlIGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiNmMTQ2Njh9Lmhlcm8uaXMtZGFuZ2VyLmlzLWJvbGR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjZmEwYTYyIDAlLCBoc2woMzQ4LCA4NiUsIDYxJSkgNzElLCAjZjc1OTVmIDEwMCUpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaGVyby5pcy1kYW5nZXIuaXMtYm9sZCAubmF2YmFyLW1lbnV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTQxZGVnLCAjZmEwYTYyIDAlLCBoc2woMzQ4LCA4NiUsIDYxJSkgNzElLCAjZjc1OTVmIDEwMCUpfX0uaGVyby5pcy1zbWFsbCAuaGVyby1ib2R5e3BhZGRpbmc6MS41cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGVyby5pcy1tZWRpdW0gLmhlcm8tYm9keXtwYWRkaW5nOjlyZW0gNC41cmVtfX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkscHJpbnR7Lmhlcm8uaXMtbGFyZ2UgLmhlcm8tYm9keXtwYWRkaW5nOjE4cmVtIDZyZW19fS5oZXJvLmlzLWhhbGZoZWlnaHQgLmhlcm8tYm9keSwuaGVyby5pcy1mdWxsaGVpZ2h0IC5oZXJvLWJvZHksLmhlcm8uaXMtZnVsbGhlaWdodC13aXRoLW5hdmJhciAuaGVyby1ib2R5e2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9Lmhlcm8uaXMtaGFsZmhlaWdodCAuaGVyby1ib2R5Pi5jb250YWluZXIsLmhlcm8uaXMtZnVsbGhlaWdodCAuaGVyby1ib2R5Pi5jb250YWluZXIsLmhlcm8uaXMtZnVsbGhlaWdodC13aXRoLW5hdmJhciAuaGVyby1ib2R5Pi5jb250YWluZXJ7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MX0uaGVyby5pcy1oYWxmaGVpZ2h0e21pbi1oZWlnaHQ6NTB2aH0uaGVyby5pcy1mdWxsaGVpZ2h0e21pbi1oZWlnaHQ6MTAwdmh9Lmhlcm8tdmlkZW97b3ZlcmZsb3c6aGlkZGVufS5oZXJvLXZpZGVvIHZpZGVve2xlZnQ6NTAlO21pbi1oZWlnaHQ6MTAwJTttaW4td2lkdGg6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKX0uaGVyby12aWRlby5pcy10cmFuc3BhcmVudHtvcGFjaXR5Oi4zfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuaGVyby12aWRlb3tkaXNwbGF5Om5vbmV9fS5oZXJvLWJ1dHRvbnN7bWFyZ2luLXRvcDoxLjVyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5oZXJvLWJ1dHRvbnMgLmJ1dHRvbntkaXNwbGF5OmZsZXh9Lmhlcm8tYnV0dG9ucyAuYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbTouNzVyZW19fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGVyby1idXR0b25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5oZXJvLWJ1dHRvbnMgLmJ1dHRvbjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDoxLjVyZW19fS5oZXJvLWhlYWQsLmhlcm8tZm9vdHtmbGV4LWdyb3c6MDtmbGV4LXNocmluazowfS5oZXJvLWJvZHl7ZmxleC1ncm93OjE7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjNyZW0gMS41cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSxwcmludHsuaGVyby1ib2R5e3BhZGRpbmc6M3JlbSAzcmVtfX0uc2VjdGlvbntwYWRkaW5nOjNyZW0gMS41cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCl7LnNlY3Rpb257cGFkZGluZzozcmVtIDNyZW19LnNlY3Rpb24uaXMtbWVkaXVte3BhZGRpbmc6OXJlbSA0LjVyZW19LnNlY3Rpb24uaXMtbGFyZ2V7cGFkZGluZzoxOHJlbSA2cmVtfX0uZm9vdGVye2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtwYWRkaW5nOjNyZW0gMS41cmVtIDZyZW19Omhvc3R7LS1wcmltYXJ5OiAjNTViZTZmOy0taW5mbzogI2YwZjhmZjstLXdhcm5pbmc6ICNmZmQ5NzU7LS1saW5rOiAjNDg3NmZmO2ZvbnQtc2l6ZToxNnB4Oy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO21pbi13aWR0aDozMDBweDt0ZXh0LXJlbmRlcmluZzpvcHRpbWl6ZUxlZ2liaWxpdHk7dGV4dC1zaXplLWFkanVzdDoxMDAlO2ZvbnQtZmFtaWx5OkJsaW5rTWFjU3lzdGVtRm9udCwtYXBwbGUtc3lzdGVtLCJTZWdvZSBVSSIsIlJvYm90byIsIk94eWdlbiIsIlVidW50dSIsIkNhbnRhcmVsbCIsIkZpcmEgU2FucyIsIkRyb2lkIFNhbnMiLCJIZWx2ZXRpY2EgTmV1ZSIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2NvbG9yOiM0YTRhNGE7Zm9udC1zaXplOjFlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uc3Itb25seXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwYWRkaW5nOjA7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO2NsaXA6cmVjdCgwLCAwLCAwLCAwKTt3aGl0ZS1zcGFjZTpub3dyYXA7Ym9yZGVyLXdpZHRoOjB9JywiIl0pO2NvbnN0IGE9c30sMzE0OmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKChmdW5jdGlvbih0KXt2YXIgaT1lKHQpO3JldHVybiB0WzJdPyJAbWVkaWEgIi5jb25jYXQodFsyXSwiIHsiKS5jb25jYXQoaSwifSIpOml9KSkuam9pbigiIil9LHQuaT1mdW5jdGlvbihlLGksbyl7InN0cmluZyI9PXR5cGVvZiBlJiYoZT1bW251bGwsZSwiIl1dKTt2YXIgbj17fTtpZihvKWZvcih2YXIgcj0wO3I8dGhpcy5sZW5ndGg7cisrKXt2YXIgcz10aGlzW3JdWzBdO251bGwhPXMmJihuW3NdPSEwKX1mb3IodmFyIGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIGw9W10uY29uY2F0KGVbYV0pO28mJm5bbFswXV18fChpJiYobFsyXT9sWzJdPSIiLmNvbmNhdChpLCIgYW5kICIpLmNvbmNhdChsWzJdKTpsWzJdPWkpLHQucHVzaChsKSl9fSx0fX0sNTYzOmZ1bmN0aW9uKGUsdCl7InVzZSBzdHJpY3QiO3ZhciBpPXRoaXMmJnRoaXMuX19hd2FpdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBpPyh0aGlzLnY9ZSx0aGlzKTpuZXcgaShlKX0sbz10aGlzJiZ0aGlzLl9fYXN5bmNHZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCxvKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIG4scj1vLmFwcGx5KGUsdHx8W10pLHM9W107cmV0dXJuIG49e30sYSgibmV4dCIpLGEoInRocm93IiksYSgicmV0dXJuIiksbltTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbjtmdW5jdGlvbiBhKGUpe3JbZV0mJihuW2VdPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSxvKXtzLnB1c2goW2UsdCxpLG9dKT4xfHxsKGUsdCl9KSl9KX1mdW5jdGlvbiBsKGUsdCl7dHJ5eyhvPXJbZV0odCkpLnZhbHVlIGluc3RhbmNlb2YgaT9Qcm9taXNlLnJlc29sdmUoby52YWx1ZS52KS50aGVuKGMsZCk6aChzWzBdWzJdLG8pfWNhdGNoKGUpe2goc1swXVszXSxlKX12YXIgb31mdW5jdGlvbiBjKGUpe2woIm5leHQiLGUpfWZ1bmN0aW9uIGQoZSl7bCgidGhyb3ciLGUpfWZ1bmN0aW9uIGgoZSx0KXtlKHQpLHMuc2hpZnQoKSxzLmxlbmd0aCYmbChzWzBdWzBdLHNbMF1bMV0pfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gbyh0aGlzLGFyZ3VtZW50cywoZnVuY3Rpb24qKCl7Y29uc3QgdD0vXHI/XG4vLG89bmV3IFRleHREZWNvZGVyO2xldCBuPSIiLHI9ZS5yZWFkKCk7Zm9yKDs7KXtjb25zdHtkb25lOnMsdmFsdWU6YX09eWllbGQgaShyKTtpZihzKXJldHVybiBuLmxlbmd0aD4wJiYoeWllbGQgeWllbGQgaShKU09OLnBhcnNlKG4pKSkseWllbGQgaSh2b2lkIDApO24rPW8uZGVjb2RlKGEse3N0cmVhbTohMH0pO2NvbnN0IGw9bi5zcGxpdCh0KTtuPWwucG9wKCk7Zm9yKGNvbnN0IGUgb2YgbCl5aWVsZCB5aWVsZCBpKEpTT04ucGFyc2UoZSkpO3I9ZS5yZWFkKCl9fSkpfX0sMTEyOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7bW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18ubm1kKG1vZHVsZSksCi8qKiEKICogRmxleFNlYXJjaC5qcyB2MC43LjMxIChCdW5kbGUpCiAqIENvcHlyaWdodCAyMDE4LTIwMjIgTmV4dGFwcHMgR21iSAogKiBBdXRob3I6IFRob21hcyBXaWxrZXJsaW5nCiAqIExpY2VuY2U6IEFwYWNoZS0yLjAKICogaHR0cHM6Ly9naXRodWIuY29tL25leHRhcHBzLWRlL2ZsZXhzZWFyY2gKICovCmZ1bmN0aW9uIF9mKHNlbGYpeyJ1c2Ugc3RyaWN0Ijt0cnl7bW9kdWxlJiYoc2VsZj1tb2R1bGUpfWNhdGNoKGUpe312YXIgdDtmdW5jdGlvbiB1KGUpe3JldHVybiB2b2lkIDA9PT1lfHxlfWZ1bmN0aW9uIGFhKGUpe2NvbnN0IHQ9QXJyYXkoZSk7Zm9yKGxldCBpPTA7aTxlO2krKyl0W2ldPXYoKTtyZXR1cm4gdH1mdW5jdGlvbiB2KCl7cmV0dXJuIE9iamVjdC5jcmVhdGUobnVsbCl9ZnVuY3Rpb24gYmEoZSx0KXtyZXR1cm4gdC5sZW5ndGgtZS5sZW5ndGh9ZnVuY3Rpb24geChlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGV9ZnVuY3Rpb24gQyhlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGV9ZnVuY3Rpb24gRChlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX1mdW5jdGlvbiBjYShlLHQpe3ZhciBpPWRhO2lmKGUmJih0JiYoZT1FKGUsdCkpLHRoaXMuSCYmKGU9RShlLHRoaXMuSCkpLHRoaXMuSiYmMTxlLmxlbmd0aCYmKGU9RShlLHRoaXMuSikpLGl8fCIiPT09aSkpe2lmKGU9ZS5zcGxpdChpKSx0aGlzLmZpbHRlcil7dD10aGlzLmZpbHRlcixpPWUubGVuZ3RoO2NvbnN0IG89W107Zm9yKGxldCBuPTAscj0wO248aTtuKyspe2NvbnN0IGk9ZVtuXTtpJiYhdFtpXSYmKG9bcisrXT1pKX1lPW99cmV0dXJuIGV9cmV0dXJuIGV9c2VsZi5fZmFjdG9yeT1fZjtjb25zdCBkYT0vW1xwe1p9XHB7U31ccHtQfVxwe0N9XSsvdSxlYT0vW1x1MDMwMC1cdTAzNmZdL2c7ZnVuY3Rpb24gZmEoZSx0KXtjb25zdCBpPU9iamVjdC5rZXlzKGUpLG89aS5sZW5ndGgsbj1bXTtsZXQgcj0iIixzPTA7Zm9yKGxldCBhLGwsYz0wO2M8bztjKyspYT1pW2NdLChsPWVbYV0pPyhuW3MrK109Rih0PyIoPyFcXGIpIithKyIoXFxifF8pIjphKSxuW3MrK109bCk6cis9KHI/InwiOiIiKSthO3JldHVybiByJiYobltzKytdPUYodD8iKD8hXFxiKSgiK3IrIikoXFxifF8pIjoiKCIrcisiKSIpLG5bc109IiIpLG59ZnVuY3Rpb24gRShlLHQpe2ZvcihsZXQgaT0wLG89dC5sZW5ndGg7aTxvJiYoZT1lLnJlcGxhY2UodFtpXSx0W2krMV0pKTtpKz0yKTtyZXR1cm4gZX1mdW5jdGlvbiBGKGUpe3JldHVybiBuZXcgUmVnRXhwKGUsImciKX1mdW5jdGlvbiBoYShlKXtsZXQgdD0iIixpPSIiO2ZvcihsZXQgbyxuPTAscj1lLmxlbmd0aDtuPHI7bisrKShvPWVbbl0pIT09aSYmKHQrPWk9byk7cmV0dXJuIHR9dmFyIGphPXtlbmNvZGU6aWEsRjohMSxHOiIifTtmdW5jdGlvbiBpYShlKXtyZXR1cm4gY2EuY2FsbCh0aGlzLCgiIitlKS50b0xvd2VyQ2FzZSgpLCExKX1jb25zdCBrYT17fSxHPXt9O2Z1bmN0aW9uIGxhKGUpe0koZSwiYWRkIiksSShlLCJhcHBlbmQiKSxJKGUsInNlYXJjaCIpLEkoZSwidXBkYXRlIiksSShlLCJyZW1vdmUiKX1mdW5jdGlvbiBJKGUsdCl7ZVt0KyJBc3luYyJdPWZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzLGk9YXJndW1lbnRzO3ZhciBvPWlbaS5sZW5ndGgtMV07bGV0IG47cmV0dXJuIEQobykmJihuPW8sZGVsZXRlIGlbaS5sZW5ndGgtMV0pLG89bmV3IFByb21pc2UoKGZ1bmN0aW9uKG8pe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5hc3luYz0hMDtjb25zdCBuPWVbdF0uYXBwbHkoZSxpKTtlLmFzeW5jPSExLG8obil9KSl9KSksbj8oby50aGVuKG4pLHRoaXMpOm99fWZ1bmN0aW9uIG1hKGUsdCxpLG8pe2NvbnN0IG49ZS5sZW5ndGg7bGV0IHIscyxhPVtdLGw9MDtvJiYobz1bXSk7Zm9yKGxldCBjPW4tMTswPD1jO2MtLSl7Y29uc3QgZD1lW2NdLGg9ZC5sZW5ndGgsdT12KCk7bGV0IGY9IXI7Zm9yKGxldCBlPTA7ZTxoO2UrKyl7Y29uc3QgaD1kW2VdLHA9aC5sZW5ndGg7aWYocClmb3IobGV0IGUsZCxtPTA7bTxwO20rKylpZihkPWhbbV0scil7aWYocltkXSl7aWYoIWMpaWYoaSlpLS07ZWxzZSBpZihhW2wrK109ZCxsPT09dClyZXR1cm4gYTsoY3x8bykmJih1W2RdPTEpLGY9ITB9aWYobyYmKGU9KHNbZF18fDApKzEsc1tkXT1lLGU8bikpe2NvbnN0IHQ9b1tlLTJdfHwob1tlLTJdPVtdKTt0W3QubGVuZ3RoXT1kfX1lbHNlIHVbZF09MX1pZihvKXJ8fChzPXUpO2Vsc2UgaWYoIWYpcmV0dXJuW107cj11fWlmKG8pZm9yKGxldCBlLG4scz1vLmxlbmd0aC0xOzA8PXM7cy0tKXtlPW9bc10sbj1lLmxlbmd0aDtmb3IobGV0IG8scz0wO3M8bjtzKyspaWYobz1lW3NdLCFyW29dKXtpZihpKWktLTtlbHNlIGlmKGFbbCsrXT1vLGw9PT10KXJldHVybiBhO3Jbb109MX19cmV0dXJuIGF9ZnVuY3Rpb24gbmEoZSx0KXtjb25zdCBpPXYoKSxvPXYoKSxuPVtdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlbZVt0XV09MTtmb3IobGV0IGUscj0wO3I8dC5sZW5ndGg7cisrKXtlPXRbcl07Zm9yKGxldCB0LHI9MDtyPGUubGVuZ3RoO3IrKyl0PWVbcl0saVt0XSYmIW9bdF0mJihvW3RdPTEsbltuLmxlbmd0aF09dCl9cmV0dXJuIG59ZnVuY3Rpb24gSihlKXt0aGlzLmw9ITAhPT1lJiZlLHRoaXMuY2FjaGU9digpLHRoaXMuaD1bXX1mdW5jdGlvbiBvYShlLHQsaSl7QyhlKSYmKGU9ZS5xdWVyeSk7bGV0IG89dGhpcy5jYWNoZS5nZXQoZSk7cmV0dXJuIG98fChvPXRoaXMuc2VhcmNoKGUsdCxpKSx0aGlzLmNhY2hlLnNldChlLG8pKSxvfUoucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe2lmKCF0aGlzLmNhY2hlW2VdKXt2YXIgaT10aGlzLmgubGVuZ3RoO2ZvcihpPT09dGhpcy5sP2RlbGV0ZSB0aGlzLmNhY2hlW3RoaXMuaFtpLTFdXTppKyssLS1pOzA8aTtpLS0pdGhpcy5oW2ldPXRoaXMuaFtpLTFdO3RoaXMuaFswXT1lfXRoaXMuY2FjaGVbZV09dH0sSi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5jYWNoZVtlXTtpZih0aGlzLmwmJnQmJihlPXRoaXMuaC5pbmRleE9mKGUpKSl7Y29uc3QgdD10aGlzLmhbZS0xXTt0aGlzLmhbZS0xXT10aGlzLmhbZV0sdGhpcy5oW2VdPXR9cmV0dXJuIHR9O2NvbnN0IHFhPXttZW1vcnk6e2NoYXJzZXQ6ImxhdGluOmV4dHJhIixEOjMsQjo0LG06ITF9LHBlcmZvcm1hbmNlOntEOjMsQjozLHM6ITEsY29udGV4dDp7ZGVwdGg6MixEOjF9fSxtYXRjaDp7Y2hhcnNldDoibGF0aW46ZXh0cmEiLEc6InJldmVyc2UifSxzY29yZTp7Y2hhcnNldDoibGF0aW46YWR2YW5jZWQiLEQ6MjAsQjozLGNvbnRleHQ6e2RlcHRoOjMsRDo5fX0sZGVmYXVsdDp7fX07ZnVuY3Rpb24gcmEoZSx0LGksbyxuLHIscyl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtjb25zdCBhPWUoaT9pKyIuIitvOm8sSlNPTi5zdHJpbmdpZnkocykpO2EmJmEudGhlbj9hLnRoZW4oKGZ1bmN0aW9uKCl7dC5leHBvcnQoZSx0LGksbixyKzEpfSkpOnQuZXhwb3J0KGUsdCxpLG4scisxKX0pKX1mdW5jdGlvbiBLKGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgSykpcmV0dXJuIG5ldyBLKGUpO3ZhciBpO2lmKGUpe3goZSk/ZT1xYVtlXTooaT1lLnByZXNldCkmJihlPU9iamVjdC5hc3NpZ24oe30saVtpXSxlKSksaT1lLmNoYXJzZXQ7dmFyIG89ZS5sYW5nO3goaSkmJigtMT09PWkuaW5kZXhPZigiOiIpJiYoaSs9IjpkZWZhdWx0IiksaT1HW2ldKSx4KG8pJiYobz1rYVtvXSl9ZWxzZSBlPXt9O2xldCBuLHIscz1lLmNvbnRleHR8fHt9O2lmKHRoaXMuZW5jb2RlPWUuZW5jb2RlfHxpJiZpLmVuY29kZXx8aWEsdGhpcy5yZWdpc3Rlcj10fHx2KCksdGhpcy5EPW49ZS5yZXNvbHV0aW9ufHw5LHRoaXMuRz10PWkmJmkuR3x8ZS50b2tlbml6ZXx8InN0cmljdCIsdGhpcy5kZXB0aD0ic3RyaWN0Ij09PXQmJnMuZGVwdGgsdGhpcy5sPXUocy5iaWRpcmVjdGlvbmFsKSx0aGlzLnM9cj11KGUub3B0aW1pemUpLHRoaXMubT11KGUuZmFzdHVwZGF0ZSksdGhpcy5CPWUubWlubGVuZ3RofHwxLHRoaXMuQz1lLmJvb3N0LHRoaXMubWFwPXI/YWEobik6digpLHRoaXMuQT1uPXMucmVzb2x1dGlvbnx8MSx0aGlzLmg9cj9hYShuKTp2KCksdGhpcy5GPWkmJmkuRnx8ZS5ydGwsdGhpcy5IPSh0PWUubWF0Y2hlcnx8byYmby5IKSYmZmEodCwhMSksdGhpcy5KPSh0PWUuc3RlbW1lcnx8byYmby5KKSYmZmEodCwhMCksaT10PWUuZmlsdGVyfHxvJiZvLmZpbHRlcil7aT10LG89digpO2ZvcihsZXQgZT0wLHQ9aS5sZW5ndGg7ZTx0O2UrKylvW2lbZV1dPTE7aT1vfXRoaXMuZmlsdGVyPWksdGhpcy5jYWNoZT0odD1lLmNhY2hlKSYmbmV3IEoodCl9ZnVuY3Rpb24gTChlLHQsaSxvLG4pe3JldHVybiBpJiYxPGU/dCsob3x8MCk8PWU/aSsobnx8MCk6KGUtMSkvKHQrKG98fDApKSooaSsobnx8MCkpKzF8MDowfWZ1bmN0aW9uIE0oZSx0LGksbyxuLHIscyl7bGV0IGE9cz9lLmg6ZS5tYXA7KCF0W2ldfHxzJiYhdFtpXVtzXSkmJihlLnMmJihhPWFbb10pLHM/KCh0PXRbaV18fCh0W2ldPXYoKSkpW3NdPTEsYT1hW3NdfHwoYVtzXT12KCkpKTp0W2ldPTEsYT1hW2ldfHwoYVtpXT1bXSksZS5zfHwoYT1hW29dfHwoYVtvXT1bXSkpLHImJmEuaW5jbHVkZXMobil8fChhW2EubGVuZ3RoXT1uLGUubSYmKChlPWUucmVnaXN0ZXJbbl18fChlLnJlZ2lzdGVyW25dPVtdKSlbZS5sZW5ndGhdPWEpKSl9ZnVuY3Rpb24gc2EoZSx0LGksbyxuLHIscyxhKXtsZXQgbD1bXSxjPWE/ZS5oOmUubWFwO2lmKGUuc3x8KGM9dWEoYyxzLGEsZS5sKSksYyl7bGV0IGk9MDtjb25zdCBkPU1hdGgubWluKGMubGVuZ3RoLGE/ZS5BOmUuRCk7Zm9yKGxldCB0LGgsdT0wLGY9MDt1PGQmJiEoKHQ9Y1t1XSkmJihlLnMmJih0PXVhKHQscyxhLGUubCkpLG4mJnQmJnImJihoPXQubGVuZ3RoLGg8PW4/KG4tPWgsdD1udWxsKToodD10LnNsaWNlKG4pLG49MCkpLHQmJihsW2krK109dCxyJiYoZis9dC5sZW5ndGgsZj49bykpKSk7dSsrKTtpZihpKXJldHVybiByP3RhKGwsbywwKTp2b2lkKHRbdC5sZW5ndGhdPWwpfXJldHVybiFpJiZsfWZ1bmN0aW9uIHRhKGUsdCxpKXtyZXR1cm4gZT0xPT09ZS5sZW5ndGg/ZVswXTpbXS5jb25jYXQuYXBwbHkoW10sZSksaXx8ZS5sZW5ndGg+dD9lLnNsaWNlKGksaSt0KTplfWZ1bmN0aW9uIHVhKGUsdCxpLG8pe3JldHVybiBpP2U9KGU9ZVsobz1vJiZ0PmkpP3Q6aV0pJiZlW28/aTp0XTplPWVbdF0sZX1mdW5jdGlvbiBOKGUsdCxpLG8sbil7bGV0IHI9MDtpZihlLmNvbnN0cnVjdG9yPT09QXJyYXkpaWYobiktMSE9PSh0PWUuaW5kZXhPZih0KSk/MTxlLmxlbmd0aCYmKGUuc3BsaWNlKHQsMSkscisrKTpyKys7ZWxzZXtuPU1hdGgubWluKGUubGVuZ3RoLGkpO2ZvcihsZXQgcyxhPTA7YTxuO2ErKykocz1lW2FdKSYmKHI9TihzLHQsaSxvLG4pLG98fHJ8fGRlbGV0ZSBlW2FdKX1lbHNlIGZvcihsZXQgcyBpbiBlKShyPU4oZVtzXSx0LGksbyxuKSl8fGRlbGV0ZSBlW3NdO3JldHVybiByfWZ1bmN0aW9uIHZhKGUpe2U9ZS5kYXRhO3ZhciB0PXNlbGYuX2luZGV4O2NvbnN0IGk9ZS5hcmdzO3ZhciBvPWUudGFzaztpZigiaW5pdCI9PT1vKW89ZS5vcHRpb25zfHx7fSxlPWUuZmFjdG9yeSx0PW8uZW5jb2RlLG8uY2FjaGU9ITEsdCYmMD09PXQuaW5kZXhPZigiZnVuY3Rpb24iKSYmKG8uZW5jb2RlPUZ1bmN0aW9uKCJyZXR1cm4gIit0KSgpKSxlPyhGdW5jdGlvbigicmV0dXJuICIrZSkoKShzZWxmKSxzZWxmLl9pbmRleD1uZXcgc2VsZi5GbGV4U2VhcmNoLkluZGV4KG8pLGRlbGV0ZSBzZWxmLkZsZXhTZWFyY2gpOnNlbGYuX2luZGV4PW5ldyBLKG8pO2Vsc2UgZT1lLmlkLHQ9dFtvXS5hcHBseSh0LGkpLHBvc3RNZXNzYWdlKCJzZWFyY2giPT09bz97aWQ6ZSxtc2c6dH06e2lkOmV9KX10PUsucHJvdG90eXBlLHQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkKGUsdCwhMCl9LHQuYWRkPWZ1bmN0aW9uKGUsdCxpLG8pe2lmKHQmJihlfHwwPT09ZSkpe2lmKCFvJiYhaSYmdGhpcy5yZWdpc3RlcltlXSlyZXR1cm4gdGhpcy51cGRhdGUoZSx0KTtpZihvPSh0PXRoaXMuZW5jb2RlKHQpKS5sZW5ndGgpe2NvbnN0IGM9digpLGQ9digpLGg9dGhpcy5kZXB0aCx1PXRoaXMuRDtmb3IobGV0IGY9MDtmPG87ZisrKXtsZXQgcD10W3RoaXMuRj9vLTEtZjpmXTt2YXIgbj1wLmxlbmd0aDtpZihwJiZuPj10aGlzLkImJihofHwhZFtwXSkpe3ZhciByPUwodSxvLGYpLHM9IiI7c3dpdGNoKHRoaXMuRyl7Y2FzZSJmdWxsIjppZigyPG4pe2ZvcihyPTA7cjxuO3IrKylmb3IodmFyIGE9bjthPnI7YS0tKWlmKGEtcj49dGhpcy5CKXt2YXIgbD1MKHUsbyxmLG4scik7TSh0aGlzLGQscz1wLnN1YnN0cmluZyhyLGEpLGwsZSxpKX1icmVha31jYXNlInJldmVyc2UiOmlmKDE8bil7Zm9yKGE9bi0xOzA8YTthLS0pKHM9cFthXStzKS5sZW5ndGg+PXRoaXMuQiYmTSh0aGlzLGQscyxMKHUsbyxmLG4sYSksZSxpKTtzPSIifWNhc2UiZm9yd2FyZCI6aWYoMTxuKXtmb3IoYT0wO2E8bjthKyspKHMrPXBbYV0pLmxlbmd0aD49dGhpcy5CJiZNKHRoaXMsZCxzLHIsZSxpKTticmVha31kZWZhdWx0OmlmKHRoaXMuQyYmKHI9TWF0aC5taW4oci90aGlzLkModCxwLGYpfDAsdS0xKSksTSh0aGlzLGQscCxyLGUsaSksaCYmMTxvJiZmPG8tMSlmb3Iobj12KCkscz10aGlzLkEscj1wLGE9TWF0aC5taW4oaCsxLG8tZiksbltyXT0xLGw9MTtsPGE7bCsrKWlmKChwPXRbdGhpcy5GP28tMS1mLWw6ZitsXSkmJnAubGVuZ3RoPj10aGlzLkImJiFuW3BdKXtuW3BdPTE7Y29uc3QgdD10aGlzLmwmJnA+cjtNKHRoaXMsYyx0P3I6cCxMKHMrKG8vMj5zPzA6MSksbyxmLGEtMSxsLTEpLGUsaSx0P3A6cil9fX19dGhpcy5tfHwodGhpcy5yZWdpc3RlcltlXT0xKX19cmV0dXJuIHRoaXN9LHQuc2VhcmNoPWZ1bmN0aW9uKGUsdCxpKXtpfHwoIXQmJkMoZSk/ZT0oaT1lKS5xdWVyeTpDKHQpJiYoaT10KSk7bGV0IG8sbixyLHM9W10sYT0wO2lmKGkpe2U9aS5xdWVyeXx8ZSx0PWkubGltaXQsYT1pLm9mZnNldHx8MDt2YXIgbD1pLmNvbnRleHQ7bj1pLnN1Z2dlc3R9aWYoZSYmKG89KGU9dGhpcy5lbmNvZGUoIiIrZSkpLmxlbmd0aCwxPG8pKXtpPXYoKTt2YXIgYz1bXTtmb3IobGV0IHQscj0wLGE9MDtyPG87cisrKWlmKCh0PWVbcl0pJiZ0Lmxlbmd0aD49dGhpcy5CJiYhaVt0XSl7aWYoISh0aGlzLnN8fG58fHRoaXMubWFwW3RdKSlyZXR1cm4gcztjW2ErK109dCxpW3RdPTF9bz0oZT1jKS5sZW5ndGh9aWYoIW8pcmV0dXJuIHM7dHx8KHQ9MTAwKSxpPTAsKGw9dGhpcy5kZXB0aCYmMTxvJiYhMSE9PWwpPyhyPWVbMF0saT0xKToxPG8mJmUuc29ydChiYSk7Zm9yKGxldCBkLGg7aTxvO2krKyl7aWYoaD1lW2ldLGw/KGQ9c2EodGhpcyxzLG4sdCxhLDI9PT1vLGgsciksbiYmITE9PT1kJiZzLmxlbmd0aHx8KHI9aCkpOmQ9c2EodGhpcyxzLG4sdCxhLDE9PT1vLGgpLGQpcmV0dXJuIGQ7aWYobiYmaT09PW8tMSl7aWYoIShjPXMubGVuZ3RoKSl7aWYobCl7bD0wLGk9LTE7Y29udGludWV9cmV0dXJuIHN9aWYoMT09PWMpcmV0dXJuIHRhKHNbMF0sdCxhKX19cmV0dXJuIG1hKHMsdCxhLG4pfSx0LmNvbnRhaW49ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLnJlZ2lzdGVyW2VdfSx0LnVwZGF0ZT1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnJlbW92ZShlKS5hZGQoZSx0KX0sdC5yZW1vdmU9ZnVuY3Rpb24oZSx0KXtjb25zdCBpPXRoaXMucmVnaXN0ZXJbZV07aWYoaSl7aWYodGhpcy5tKWZvcihsZXQgdCxvPTA7bzxpLmxlbmd0aDtvKyspdD1pW29dLHQuc3BsaWNlKHQuaW5kZXhPZihlKSwxKTtlbHNlIE4odGhpcy5tYXAsZSx0aGlzLkQsdGhpcy5zKSx0aGlzLmRlcHRoJiZOKHRoaXMuaCxlLHRoaXMuQSx0aGlzLnMpO2lmKHR8fGRlbGV0ZSB0aGlzLnJlZ2lzdGVyW2VdLHRoaXMuY2FjaGUpe3Q9dGhpcy5jYWNoZTtmb3IobGV0IGksbyxuPTA7bjx0LmgubGVuZ3RoO24rKylvPXQuaFtuXSxpPXQuY2FjaGVbb10saS5pbmNsdWRlcyhlKSYmKHQuaC5zcGxpY2Uobi0tLDEpLGRlbGV0ZSB0LmNhY2hlW29dKX19cmV0dXJuIHRoaXN9LHQuc2VhcmNoQ2FjaGU9b2EsdC5leHBvcnQ9ZnVuY3Rpb24oZSx0LGksbyxuKXtsZXQgcixzO3N3aXRjaChufHwobj0wKSl7Y2FzZSAwOmlmKHI9InJlZyIsdGhpcy5tKXtzPXYoKTtmb3IobGV0IGUgaW4gdGhpcy5yZWdpc3RlcilzW2VdPTF9ZWxzZSBzPXRoaXMucmVnaXN0ZXI7YnJlYWs7Y2FzZSAxOnI9ImNmZyIscz17ZG9jOjAsb3B0OnRoaXMucz8xOjB9O2JyZWFrO2Nhc2UgMjpyPSJtYXAiLHM9dGhpcy5tYXA7YnJlYWs7Y2FzZSAzOnI9ImN0eCIscz10aGlzLmg7YnJlYWs7ZGVmYXVsdDpyZXR1cm59cmV0dXJuIHJhKGUsdHx8dGhpcyxpLHIsbyxuLHMpLCEwfSx0LmltcG9ydD1mdW5jdGlvbihlLHQpe2lmKHQpc3dpdGNoKHgodCkmJih0PUpTT04ucGFyc2UodCkpLGUpe2Nhc2UiY2ZnIjp0aGlzLnM9ISF0Lm9wdDticmVhaztjYXNlInJlZyI6dGhpcy5tPSExLHRoaXMucmVnaXN0ZXI9dDticmVhaztjYXNlIm1hcCI6dGhpcy5tYXA9dDticmVhaztjYXNlImN0eCI6dGhpcy5oPXR9fSxsYShLLnByb3RvdHlwZSk7bGV0IHdhPTA7ZnVuY3Rpb24gTyhlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBPKSlyZXR1cm4gbmV3IE8oZSk7dmFyIHQ7ZT9EKHQ9ZS5lbmNvZGUpJiYoZS5lbmNvZGU9dC50b1N0cmluZygpKTplPXt9LCh0PShzZWxmfHx3aW5kb3cpLl9mYWN0b3J5KSYmKHQ9dC50b1N0cmluZygpKTtjb25zdCBpPSJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93JiZzZWxmLmV4cG9ydHMsbz10aGlzO3RoaXMubz14YSh0LGksZS53b3JrZXIpLHRoaXMuaD12KCksdGhpcy5vJiYoaT90aGlzLm8ub24oIm1lc3NhZ2UiLChmdW5jdGlvbihlKXtvLmhbZS5pZF0oZS5tc2cpLGRlbGV0ZSBvLmhbZS5pZF19KSk6dGhpcy5vLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtlPWUuZGF0YSxvLmhbZS5pZF0oZS5tc2cpLGRlbGV0ZSBvLmhbZS5pZF19LHRoaXMuby5wb3N0TWVzc2FnZSh7dGFzazoiaW5pdCIsZmFjdG9yeTp0LG9wdGlvbnM6ZX0pKX1mdW5jdGlvbiBQKGUpe08ucHJvdG90eXBlW2VdPU8ucHJvdG90eXBlW2UrIkFzeW5jIl09ZnVuY3Rpb24oKXtjb25zdCB0PXRoaXMsaT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7dmFyIG89aVtpLmxlbmd0aC0xXTtsZXQgbjtyZXR1cm4gRChvKSYmKG49byxpLnNwbGljZShpLmxlbmd0aC0xLDEpKSxvPW5ldyBQcm9taXNlKChmdW5jdGlvbihvKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuaFsrK3dhXT1vLHQuby5wb3N0TWVzc2FnZSh7dGFzazplLGlkOndhLGFyZ3M6aX0pfSkpfSkpLG4/KG8udGhlbihuKSx0aGlzKTpvfX1mdW5jdGlvbiB4YShhLGIsYyl7bGV0IGQ7dHJ5e2Q9Yj9ldmFsKCduZXcgKHJlcXVpcmUoIndvcmtlcl90aHJlYWRzIilbIldvcmtlciJdKSgiLi4vZGlzdC9ub2RlL25vZGUuanMiKScpOmE/bmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFsib25tZXNzYWdlPSIrdmEudG9TdHJpbmcoKV0se3R5cGU6InRleHQvamF2YXNjcmlwdCJ9KSkpOm5ldyBXb3JrZXIoeChjKT9jOiJ3b3JrZXIvd29ya2VyLmpzIix7dHlwZToibW9kdWxlIn0pfWNhdGNoKGUpe31yZXR1cm4gZH1mdW5jdGlvbiBRKGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFEpKXJldHVybiBuZXcgUShlKTt2YXIgdCxpPWUuZG9jdW1lbnR8fGUuZG9jfHxlO3RoaXMuSz1bXSx0aGlzLmg9W10sdGhpcy5BPVtdLHRoaXMucmVnaXN0ZXI9digpLHRoaXMua2V5PSh0PWkua2V5fHxpLmlkKSYmUyh0LHRoaXMuQSl8fCJpZCIsdGhpcy5tPXUoZS5mYXN0dXBkYXRlKSx0aGlzLkM9KHQ9aS5zdG9yZSkmJiEwIT09dCYmW10sdGhpcy5zdG9yZT10JiZ2KCksdGhpcy5JPSh0PWkudGFnKSYmUyh0LHRoaXMuQSksdGhpcy5sPXQmJnYoKSx0aGlzLmNhY2hlPSh0PWUuY2FjaGUpJiZuZXcgSih0KSxlLmNhY2hlPSExLHRoaXMubz1lLndvcmtlcix0aGlzLmFzeW5jPSExLHQ9digpO2xldCBvPWkuaW5kZXh8fGkuZmllbGR8fGk7eChvKSYmKG89W29dKTtmb3IobGV0IGksbixyPTA7cjxvLmxlbmd0aDtyKyspaT1vW3JdLHgoaSl8fChuPWksaT1pLmZpZWxkKSxuPUMobik/T2JqZWN0LmFzc2lnbih7fSxlLG4pOmUsdGhpcy5vJiYodFtpXT1uZXcgTyhuKSx0W2ldLm98fCh0aGlzLm89ITEpKSx0aGlzLm98fCh0W2ldPW5ldyBLKG4sdGhpcy5yZWdpc3RlcikpLHRoaXMuS1tyXT1TKGksdGhpcy5BKSx0aGlzLmhbcl09aTtpZih0aGlzLkMpZm9yKHgoZT1pLnN0b3JlKSYmKGU9W2VdKSxpPTA7aTxlLmxlbmd0aDtpKyspdGhpcy5DW2ldPVMoZVtpXSx0aGlzLkEpO3RoaXMuaW5kZXg9dH1mdW5jdGlvbiBTKGUsdCl7Y29uc3QgaT1lLnNwbGl0KCI6Iik7bGV0IG89MDtmb3IobGV0IG49MDtuPGkubGVuZ3RoO24rKykwPD0oZT1pW25dKS5pbmRleE9mKCJbXSIpJiYoZT1lLnN1YnN0cmluZygwLGUubGVuZ3RoLTIpKSYmKHRbb109ITApLGUmJihpW28rK109ZSk7cmV0dXJuIG88aS5sZW5ndGgmJihpLmxlbmd0aD1vKSwxPG8/aTppWzBdfWZ1bmN0aW9uIFQoZSx0KXtpZih4KHQpKWU9ZVt0XTtlbHNlIGZvcihsZXQgaT0wO2UmJmk8dC5sZW5ndGg7aSsrKWU9ZVt0W2ldXTtyZXR1cm4gZX1mdW5jdGlvbiBVKGUsdCxpLG8sbil7aWYoZT1lW25dLG89PT1pLmxlbmd0aC0xKXRbbl09ZTtlbHNlIGlmKGUpaWYoZS5jb25zdHJ1Y3Rvcj09PUFycmF5KWZvcih0PXRbbl09QXJyYXkoZS5sZW5ndGgpLG49MDtuPGUubGVuZ3RoO24rKylVKGUsdCxpLG8sbik7ZWxzZSB0PXRbbl18fCh0W25dPXYoKSksbj1pWysrb10sVShlLHQsaSxvLG4pfWZ1bmN0aW9uIFYoZSx0LGksbyxuLHIscyxhKXtpZihlPWVbc10paWYobz09PXQubGVuZ3RoLTEpe2lmKGUuY29uc3RydWN0b3I9PT1BcnJheSl7aWYoaVtvXSl7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyluLmFkZChyLGVbdF0sITAsITApO3JldHVybn1lPWUuam9pbigiICIpfW4uYWRkKHIsZSxhLCEwKX1lbHNlIGlmKGUuY29uc3RydWN0b3I9PT1BcnJheSlmb3Iocz0wO3M8ZS5sZW5ndGg7cysrKVYoZSx0LGksbyxuLHIscyxhKTtlbHNlIHM9dFsrK29dLFYoZSx0LGksbyxuLHIscyxhKX1mdW5jdGlvbiB5YShlLHQsaSxvKXtsZXQgbj10aGlzLmxbZV0scj1uJiZuLmxlbmd0aC1pO2lmKHImJjA8cilyZXR1cm4ocj50fHxpKSYmKG49bi5zbGljZShpLGkrdCkpLG8mJihuPXphLmNhbGwodGhpcyxuKSkse3RhZzplLHJlc3VsdDpufX1mdW5jdGlvbiB6YShlKXtjb25zdCB0PUFycmF5KGUubGVuZ3RoKTtmb3IobGV0IGksbz0wO288ZS5sZW5ndGg7bysrKWk9ZVtvXSx0W29dPXtpZDppLGRvYzp0aGlzLnN0b3JlW2ldfTtyZXR1cm4gdH1QKCJhZGQiKSxQKCJhcHBlbmQiKSxQKCJzZWFyY2giKSxQKCJ1cGRhdGUiKSxQKCJyZW1vdmUiKSx0PVEucHJvdG90eXBlLHQuYWRkPWZ1bmN0aW9uKGUsdCxpKXtpZihDKGUpJiYoZT1UKHQ9ZSx0aGlzLmtleSkpLHQmJihlfHwwPT09ZSkpe2lmKCFpJiZ0aGlzLnJlZ2lzdGVyW2VdKXJldHVybiB0aGlzLnVwZGF0ZShlLHQpO2ZvcihsZXQgbyxuLHI9MDtyPHRoaXMuaC5sZW5ndGg7cisrKW49dGhpcy5oW3JdLG89dGhpcy5LW3JdLHgobykmJihvPVtvXSksVih0LG8sdGhpcy5BLDAsdGhpcy5pbmRleFtuXSxlLG9bMF0saSk7aWYodGhpcy5JKXtsZXQgbz1UKHQsdGhpcy5JKSxuPXYoKTt4KG8pJiYobz1bb10pO2ZvcihsZXQgdCxyLHM9MDtzPG8ubGVuZ3RoO3MrKylpZih0PW9bc10sIW5bdF0mJihuW3RdPTEscj10aGlzLmxbdF18fCh0aGlzLmxbdF09W10pLCFpfHwhci5pbmNsdWRlcyhlKSkmJihyW3IubGVuZ3RoXT1lLHRoaXMubSkpe2NvbnN0IHQ9dGhpcy5yZWdpc3RlcltlXXx8KHRoaXMucmVnaXN0ZXJbZV09W10pO3RbdC5sZW5ndGhdPXJ9fWlmKHRoaXMuc3RvcmUmJighaXx8IXRoaXMuc3RvcmVbZV0pKXtsZXQgaTtpZih0aGlzLkMpe2k9digpO2ZvcihsZXQgZSxvPTA7bzx0aGlzLkMubGVuZ3RoO28rKyllPXRoaXMuQ1tvXSx4KGUpP2lbZV09dFtlXTpVKHQsaSxlLDAsZVswXSl9dGhpcy5zdG9yZVtlXT1pfHx0fX1yZXR1cm4gdGhpc30sdC5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5hZGQoZSx0LCEwKX0sdC51cGRhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5yZW1vdmUoZSkuYWRkKGUsdCl9LHQucmVtb3ZlPWZ1bmN0aW9uKGUpe2lmKEMoZSkmJihlPVQoZSx0aGlzLmtleSkpLHRoaXMucmVnaXN0ZXJbZV0pe2Zvcih2YXIgdD0wO3Q8dGhpcy5oLmxlbmd0aCYmKHRoaXMuaW5kZXhbdGhpcy5oW3RdXS5yZW1vdmUoZSwhdGhpcy5vKSwhdGhpcy5tKTt0KyspO2lmKHRoaXMuSSYmIXRoaXMubSlmb3IobGV0IGkgaW4gdGhpcy5sKXtjb25zdCBvPSh0PXRoaXMubFtpXSkuaW5kZXhPZihlKTstMSE9PW8mJigxPHQubGVuZ3RoP3Quc3BsaWNlKG8sMSk6ZGVsZXRlIHRoaXMubFtpXSl9dGhpcy5zdG9yZSYmZGVsZXRlIHRoaXMuc3RvcmVbZV0sZGVsZXRlIHRoaXMucmVnaXN0ZXJbZV19cmV0dXJuIHRoaXN9LHQuc2VhcmNoPWZ1bmN0aW9uKGUsdCxpLG8pe2l8fCghdCYmQyhlKT8oaT1lLGU9IiIpOkModCkmJihpPXQsdD0wKSk7bGV0IG4scixzLGEsbCxjLGQ9W10saD1bXSx1PTA7aWYoaSlpZihpLmNvbnN0cnVjdG9yPT09QXJyYXkpcz1pLGk9bnVsbDtlbHNle2lmKGU9aS5xdWVyeXx8ZSxzPShuPWkucGx1Y2spfHxpLmluZGV4fHxpLmZpZWxkLGE9aS50YWcscj10aGlzLnN0b3JlJiZpLmVucmljaCxsPSJhbmQiPT09aS5ib29sLHQ9aS5saW1pdHx8dHx8MTAwLGM9aS5vZmZzZXR8fDAsYSYmKHgoYSkmJihhPVthXSksIWUpKXtmb3IobGV0IGUsaT0wO2k8YS5sZW5ndGg7aSsrKShlPXlhLmNhbGwodGhpcyxhW2ldLHQsYyxyKSkmJihkW2QubGVuZ3RoXT1lLHUrKyk7cmV0dXJuIHU/ZDpbXX14KHMpJiYocz1bc10pfXN8fChzPXRoaXMuaCksbD1sJiYoMTxzLmxlbmd0aHx8YSYmMTxhLmxlbmd0aCk7Y29uc3QgZj0hbyYmKHRoaXMub3x8dGhpcy5hc3luYykmJltdO2ZvcihsZXQgbixyLHAsbT0wO208cy5sZW5ndGg7bSsrKXtsZXQgYjtpZihyPXNbbV0seChyKXx8KGI9cixyPWIuZmllbGQsZT1iLnF1ZXJ5fHxlLHQ9Yi5saW1pdHx8dCksZilmW21dPXRoaXMuaW5kZXhbcl0uc2VhcmNoQXN5bmMoZSx0LGJ8fGkpO2Vsc2V7aWYobj1vP29bbV06dGhpcy5pbmRleFtyXS5zZWFyY2goZSx0LGJ8fGkpLHA9biYmbi5sZW5ndGgsYSYmcCl7Y29uc3QgZT1bXTtsZXQgaT0wO2wmJihlWzBdPVtuXSk7Zm9yKGxldCB0LG8sbj0wO248YS5sZW5ndGg7bisrKXQ9YVtuXSwocD0obz10aGlzLmxbdF0pJiZvLmxlbmd0aCkmJihpKyssZVtlLmxlbmd0aF09bD9bb106byk7aSYmKG49bD9tYShlLHR8fDEwMCxjfHwwKTpuYShuLGUpLHA9bi5sZW5ndGgpfWlmKHApaFt1XT1yLGRbdSsrXT1uO2Vsc2UgaWYobClyZXR1cm5bXX19aWYoZil7Y29uc3Qgbz10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obil7UHJvbWlzZS5hbGwoZikudGhlbigoZnVuY3Rpb24ocil7bihvLnNlYXJjaChlLHQsaSxyKSl9KSl9KSl9aWYoIXUpcmV0dXJuW107aWYobiYmKCFyfHwhdGhpcy5zdG9yZSkpcmV0dXJuIGRbMF07Zm9yKGxldCBlLHQ9MDt0PGgubGVuZ3RoO3QrKyl7aWYoZT1kW3RdLGUubGVuZ3RoJiZyJiYoZT16YS5jYWxsKHRoaXMsZSkpLG4pcmV0dXJuIGU7ZFt0XT17ZmllbGQ6aFt0XSxyZXN1bHQ6ZX19cmV0dXJuIGR9LHQuY29udGFpbj1mdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMucmVnaXN0ZXJbZV19LHQuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnN0b3JlW2VdfSx0LnNldD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnN0b3JlW2VdPXQsdGhpc30sdC5zZWFyY2hDYWNoZT1vYSx0LmV4cG9ydD1mdW5jdGlvbihlLHQsaSxvLG4pe2lmKG58fChuPTApLG98fChvPTApLG88dGhpcy5oLmxlbmd0aCl7Y29uc3QgaT10aGlzLmhbb10scj10aGlzLmluZGV4W2ldO3Q9dGhpcyxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3IuZXhwb3J0KGUsdCxuP2k6IiIsbyxuKyspfHwobysrLG49MSx0LmV4cG9ydChlLHQsaSxvLG4pKX0pKX1lbHNle2xldCB0LHI7c3dpdGNoKG4pe2Nhc2UgMTp0PSJ0YWciLHI9dGhpcy5sO2JyZWFrO2Nhc2UgMjp0PSJzdG9yZSIscj10aGlzLnN0b3JlO2JyZWFrO2RlZmF1bHQ6cmV0dXJufXJhKGUsdGhpcyxpLHQsbyxuLHIpfX0sdC5pbXBvcnQ9ZnVuY3Rpb24oZSx0KXtpZih0KXN3aXRjaCh4KHQpJiYodD1KU09OLnBhcnNlKHQpKSxlKXtjYXNlInRhZyI6dGhpcy5sPXQ7YnJlYWs7Y2FzZSJyZWciOnRoaXMubT0hMSx0aGlzLnJlZ2lzdGVyPXQ7Zm9yKGxldCBlLGk9MDtpPHRoaXMuaC5sZW5ndGg7aSsrKWU9dGhpcy5pbmRleFt0aGlzLmhbaV1dLGUucmVnaXN0ZXI9dCxlLm09ITE7YnJlYWs7Y2FzZSJzdG9yZSI6dGhpcy5zdG9yZT10O2JyZWFrO2RlZmF1bHQ6Y29uc3QgaT0oZT1lLnNwbGl0KCIuIikpWzBdO2U9ZVsxXSxpJiZlJiZ0aGlzLmluZGV4W2ldLmltcG9ydChlLHQpfX0sbGEoUS5wcm90b3R5cGUpO3ZhciBCYT17ZW5jb2RlOkFhLEY6ITEsRzoiIn07Y29uc3QgQ2E9W0YoIlvDoMOhw6LDo8Okw6VdIiksImEiLEYoIlvDqMOpw6rDq10iKSwiZSIsRigiW8Osw63DrsOvXSIpLCJpIixGKCJbw7LDs8O0w7XDtsWRXSIpLCJvIixGKCJbw7nDusO7w7zFsV0iKSwidSIsRigiW8O9xbfDv10iKSwieSIsRigiw7EiKSwibiIsRigiW8OnY10iKSwiayIsRigiw58iKSwicyIsRigiICYgIiksIiBhbmQgIl07ZnVuY3Rpb24gQWEoZSl7dmFyIHQ9ZT0iIitlO3JldHVybiB0Lm5vcm1hbGl6ZSYmKHQ9dC5ub3JtYWxpemUoIk5GRCIpLnJlcGxhY2UoZWEsIiIpKSxjYS5jYWxsKHRoaXMsdC50b0xvd2VyQ2FzZSgpLCFlLm5vcm1hbGl6ZSYmQ2EpfXZhciBFYT17ZW5jb2RlOkRhLEY6ITEsRzoic3RyaWN0In07Y29uc3QgRmE9L1teYS16MC05XSsvLEdhPXtiOiJwIix2OiJmIix3OiJmIix6OiJzIix4OiJzIizDnzoicyIsZDoidCIsbjoibSIsYzoiayIsZzoiayIsajoiayIscToiayIsaToiZSIseToiZSIsdToibyJ9O2Z1bmN0aW9uIERhKGUpe2NvbnN0IHQ9W107aWYoZT1BYS5jYWxsKHRoaXMsZSkuam9pbigiICIpKXtjb25zdCBpPWUuc3BsaXQoRmEpLG89aS5sZW5ndGg7Zm9yKGxldCBuLHI9MCxzPTA7cjxvO3IrKylpZigoZT1pW3JdKSYmKCF0aGlzLmZpbHRlcnx8IXRoaXMuZmlsdGVyW2VdKSl7bj1lWzBdO2xldCBpPUdhW25dfHxuLG89aTtmb3IobGV0IHQ9MTt0PGUubGVuZ3RoO3QrKyl7bj1lW3RdO2NvbnN0IHI9R2Fbbl18fG47ciYmciE9PW8mJihpKz1yLG89cil9dFtzKytdPWl9fXJldHVybiB0fXZhciBJYT17ZW5jb2RlOkhhLEY6ITEsRzoiIn07Y29uc3QgSmE9W0YoImFlIiksImEiLEYoIm9lIiksIm8iLEYoInNoIiksInMiLEYoInRoIiksInQiLEYoInBoIiksImYiLEYoInBmIiksImYiLEYoIig/IVthZW9dKWgoPyFbYWVvXSkiKSwiIixGKCIoPyFeW2Flb10paCg/IV5bYWVvXSkiKSwiIl07ZnVuY3Rpb24gSGEoZSx0KXtyZXR1cm4gZSYmKDI8KGU9RGEuY2FsbCh0aGlzLGUpLmpvaW4oIiAiKSkubGVuZ3RoJiYoZT1FKGUsSmEpKSx0fHwoMTxlLmxlbmd0aCYmKGU9aGEoZSkpLGUmJihlPWUuc3BsaXQoIiAiKSkpKSxlfHxbXX12YXIgTGE9e2VuY29kZTpLYSxGOiExLEc6IiJ9O2NvbnN0IE1hPUYoIig/IVxcYilbYWVvXSIpO2Z1bmN0aW9uIEthKGUpe3JldHVybiBlJiYoMTwoZT1IYS5jYWxsKHRoaXMsZSwhMCkpLmxlbmd0aCYmKGU9ZS5yZXBsYWNlKE1hLCIiKSksMTxlLmxlbmd0aCYmKGU9aGEoZSkpLGUmJihlPWUuc3BsaXQoIiAiKSkpLGV8fFtdfUdbImxhdGluOmRlZmF1bHQiXT1qYSxHWyJsYXRpbjpzaW1wbGUiXT1CYSxHWyJsYXRpbjpiYWxhbmNlIl09RWEsR1sibGF0aW46YWR2YW5jZWQiXT1JYSxHWyJsYXRpbjpleHRyYSJdPUxhO2NvbnN0IFc9c2VsZjtsZXQgWTtjb25zdCBaPXtJbmRleDpLLERvY3VtZW50OlEsV29ya2VyOk8scmVnaXN0ZXJDaGFyc2V0OmZ1bmN0aW9uKGUsdCl7R1tlXT10fSxyZWdpc3Rlckxhbmd1YWdlOmZ1bmN0aW9uKGUsdCl7a2FbZV09dH19OyhZPVcuZGVmaW5lKSYmWS5hbWQ/WShbXSwoZnVuY3Rpb24oKXtyZXR1cm4gWn0pKTpXLmV4cG9ydHM/Vy5leHBvcnRzPVo6Vy5GbGV4U2VhcmNoPVp9KHRoaXMpfSw0MzE6ZT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCB0PVsiQiIsImtCIiwiTUIiLCJHQiIsIlRCIiwiUEIiLCJFQiIsIlpCIiwiWUIiXSxpPVsiQiIsImtpQiIsIk1pQiIsIkdpQiIsIlRpQiIsIlBpQiIsIkVpQiIsIlppQiIsIllpQiJdLG89WyJiIiwia2JpdCIsIk1iaXQiLCJHYml0IiwiVGJpdCIsIlBiaXQiLCJFYml0IiwiWmJpdCIsIlliaXQiXSxuPVsiYiIsImtpYml0IiwiTWliaXQiLCJHaWJpdCIsIlRpYml0IiwiUGliaXQiLCJFaWJpdCIsIlppYml0IiwiWWliaXQiXSxyPShlLHQsaSk9PntsZXQgbz1lO3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8QXJyYXkuaXNBcnJheSh0KT9vPWUudG9Mb2NhbGVTdHJpbmcodCxpKTohMCE9PXQmJnZvaWQgMD09PWl8fChvPWUudG9Mb2NhbGVTdHJpbmcodm9pZCAwLGkpKSxvfTtlLmV4cG9ydHM9KGUscyk9PntpZighTnVtYmVyLmlzRmluaXRlKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgZmluaXRlIG51bWJlciwgZ290ICR7dHlwZW9mIGV9OiAke2V9YCk7Y29uc3QgYT0ocz1PYmplY3QuYXNzaWduKHtiaXRzOiExLGJpbmFyeTohMX0scykpLmJpdHM/cy5iaW5hcnk/bjpvOnMuYmluYXJ5P2k6dDtpZihzLnNpZ25lZCYmMD09PWUpcmV0dXJuYCAwICR7YVswXX1gO2NvbnN0IGw9ZTwwLGM9bD8iLSI6cy5zaWduZWQ/IisiOiIiO2xldCBkO2lmKGwmJihlPS1lKSx2b2lkIDAhPT1zLm1pbmltdW1GcmFjdGlvbkRpZ2l0cyYmKGQ9e21pbmltdW1GcmFjdGlvbkRpZ2l0czpzLm1pbmltdW1GcmFjdGlvbkRpZ2l0c30pLHZvaWQgMCE9PXMubWF4aW11bUZyYWN0aW9uRGlnaXRzJiYoZD1PYmplY3QuYXNzaWduKHttYXhpbXVtRnJhY3Rpb25EaWdpdHM6cy5tYXhpbXVtRnJhY3Rpb25EaWdpdHN9LGQpKSxlPDEpe3JldHVybiBjK3IoZSxzLmxvY2FsZSxkKSsiICIrYVswXX1jb25zdCBoPU1hdGgubWluKE1hdGguZmxvb3Iocy5iaW5hcnk/TWF0aC5sb2coZSkvTWF0aC5sb2coMTAyNCk6TWF0aC5sb2cxMChlKS8zKSxhLmxlbmd0aC0xKTtlLz1NYXRoLnBvdyhzLmJpbmFyeT8xMDI0OjFlMyxoKSxkfHwoZT1lLnRvUHJlY2lzaW9uKDMpKTtyZXR1cm4gYytyKE51bWJlcihlKSxzLmxvY2FsZSxkKSsiICIrYVtoXX19fSxfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX189e307ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhlKXt2YXIgdD1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bZV07aWYodm9pZCAwIT09dClyZXR1cm4gdC5leHBvcnRzO3ZhciBpPV9fd2VicGFja19tb2R1bGVfY2FjaGVfX1tlXT17aWQ6ZSxsb2FkZWQ6ITEsZXhwb3J0czp7fX07cmV0dXJuIF9fd2VicGFja19tb2R1bGVzX19bZV0uY2FsbChpLmV4cG9ydHMsaSxpLmV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyksaS5sb2FkZWQ9ITAsaS5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18ubj1lPT57dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZCh0LHthOnR9KSx0fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQ9KGUsdCk9Pntmb3IodmFyIGkgaW4gdClfX3dlYnBhY2tfcmVxdWlyZV9fLm8odCxpKSYmIV9fd2VicGFja19yZXF1aXJlX18ubyhlLGkpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLHtlbnVtZXJhYmxlOiEwLGdldDp0W2ldfSl9LF9fd2VicGFja19yZXF1aXJlX18ubz0oZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCksX193ZWJwYWNrX3JlcXVpcmVfXy5yPWU9PnsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxfX3dlYnBhY2tfcmVxdWlyZV9fLm5tZD1lPT4oZS5wYXRocz1bXSxlLmNoaWxkcmVufHwoZS5jaGlsZHJlbj1bXSksZSk7dmFyIF9fd2VicGFja19leHBvcnRzX189e307KCgpPT57InVzZSBzdHJpY3QiO19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7Q2hvb3NlcjooKT0+RWksQ29sbDooKT0+Q2ksQ29sbEluZGV4OigpPT5MaSxDb2xsSW5mbzooKT0+emksRW1iZWQ6KCk9PlJvLEZhSWNvbjooKT0+VmUsR0RyaXZlOigpPT55byxJU19BUFA6KCk9PnFlLEl0ZW06KCk9PkNpLEl0ZW1JbmRleDooKT0+TGksSXRlbUluZm86KCk9PnppLExpdEVsZW1lbnQ6KCk9Pm1lLExvYWRlcjooKT0+U28sUGFnZUVudHJ5OigpPT5BbyxQYWdlczooKT0+Q28sUmVwbGF5OigpPT5UbyxSZXBsYXlXZWJBcHA6KCk9PlRpLFJlcGxheVdlYlBhZ2U6KCk9PlJvLFNXTWFuYWdlcjooKT0+aXQsU29ydGVyOigpPT5QbyxTdG9yeTooKT0+d28sVVJMUmVzb3VyY2VzOigpPT5EbyxWRVJTSU9OOigpPT5qZSxXck1vZGFsOigpPT5HZSxhcGlQcmVmaXg6KCk9Pk9lLGNsaWNrT25TcGFjZWJhclByZXNzOigpPT5IZSxjc3M6KCk9PmgsZGF0ZUZvcm1hdHRlcjooKT0+VHQsZGF0ZVRpbWVGb3JtYXR0ZXI6KCk9PkF0LGRpZ2VzdE1lc3NhZ2U6KCk9Pmd0LGdldERhdGVGcm9tVFM6KCk9Pnd0LGdldFBhZ2VEYXRlVFM6KCk9Pnl0LGdldFJlcGxheUxpbms6KCk9Pmt0LGdldFRTOigpPT54dCxodG1sOigpPT5RLHBhcnNlVVJMU2NoZW1lSG9zdFBhdGg6KCk9PiR0LHJlcGxheVByZWZpeDooKT0+VWUscndwSWNvbjooKT0+YnQscndwTG9nb0FuaW1hdGVkOigpPT54byxzZXJ2aWNlV29ya2VyQWN0aXZhdGVkOigpPT5vdCxzb3VyY2VUb0lkOigpPT5TdCx0aW1lRm9ybWF0dGVyOigpPT5QdCx0c1RvRGF0ZTooKT0+dnQsdW5zYWZlQ1NTOigpPT5kLHVuc2FmZVNWRzooKT0+VGUsdXBkYXRlRmF2aWNvbkxpbmtzOigpPT5XZSx3cmFwQ3NzOigpPT5OZX0pO3ZhciBlPXt9O19fd2VicGFja19yZXF1aXJlX18ucihlKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZSx7YXR0ZW50aW9uTWFya2VyczooKT0+RXIsY29udGVudEluaXRpYWw6KCk9PiRyLGRpc2FibGU6KCk9PkFyLGRvY3VtZW50OigpPT5TcixmbG93OigpPT5fcixmbG93SW5pdGlhbDooKT0+enIsaW5zaWRlU3BhbjooKT0+THIsc3RyaW5nOigpPT5Dcix0ZXh0OigpPT5Jcn0pO2Z1bmN0aW9uIHQoZSx0LGksbyl7dmFyIG4scj1hcmd1bWVudHMubGVuZ3RoLHM9cjwzP3Q6bnVsbD09PW8/bz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsaSk6bztpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKXM9UmVmbGVjdC5kZWNvcmF0ZShlLHQsaSxvKTtlbHNlIGZvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKShuPWVbYV0pJiYocz0ocjwzP24ocyk6cj4zP24odCxpLHMpOm4odCxpKSl8fHMpO3JldHVybiByPjMmJnMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkscyksc31mdW5jdGlvbiBpKGUsdCxpLG8pe3JldHVybiBuZXcoaXx8KGk9UHJvbWlzZSkpKChmdW5jdGlvbihuLHIpe2Z1bmN0aW9uIHMoZSl7dHJ5e2woby5uZXh0KGUpKX1jYXRjaChlKXtyKGUpfX1mdW5jdGlvbiBhKGUpe3RyeXtsKG8udGhyb3coZSkpfWNhdGNoKGUpe3IoZSl9fWZ1bmN0aW9uIGwoZSl7dmFyIHQ7ZS5kb25lP24oZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2YgaT90Om5ldyBpKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKHMsYSl9bCgobz1vLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfU9iamVjdC5jcmVhdGU7ZnVuY3Rpb24gbyhlKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsaT10JiZlW3RdLG89MDtpZihpKXJldHVybiBpLmNhbGwoZSk7aWYoZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aClyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiBlJiZvPj1lLmxlbmd0aCYmKGU9dm9pZCAwKSx7dmFsdWU6ZSYmZVtvKytdLGRvbmU6IWV9fX07dGhyb3cgbmV3IFR5cGVFcnJvcih0PyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX1mdW5jdGlvbiBuKGUpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgdCxpPWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdO3JldHVybiBpP2kuY2FsbChlKTooZT1vKGUpLHQ9e30sbigibmV4dCIpLG4oInRocm93IiksbigicmV0dXJuIiksdFtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdCk7ZnVuY3Rpb24gbihpKXt0W2ldPWVbaV0mJmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obyxuKXsoZnVuY3Rpb24oZSx0LGksbyl7UHJvbWlzZS5yZXNvbHZlKG8pLnRoZW4oKGZ1bmN0aW9uKHQpe2Uoe3ZhbHVlOnQsZG9uZTppfSl9KSx0KX0pKG8sbiwodD1lW2ldKHQpKS5kb25lLHQudmFsdWUpfSkpfX19T2JqZWN0LmNyZWF0ZTsKLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi8KY29uc3Qgcj1nbG9iYWxUaGlzLHM9ci5TaGFkb3dSb290JiYodm9pZCAwPT09ci5TaGFkeUNTU3x8ci5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpJiYiYWRvcHRlZFN0eWxlU2hlZXRzImluIERvY3VtZW50LnByb3RvdHlwZSYmInJlcGxhY2UiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUsYT1TeW1ib2woKSxsPW5ldyBXZWFrTWFwO2NsYXNzIGN7Y29uc3RydWN0b3IoZSx0LGkpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGkhPT1hKXRocm93IEVycm9yKCJDU1NSZXN1bHQgaXMgbm90IGNvbnN0cnVjdGFibGUuIFVzZSBgdW5zYWZlQ1NTYCBvciBgY3NzYCBpbnN0ZWFkLiIpO3RoaXMuY3NzVGV4dD1lLHRoaXMudD10fWdldCBzdHlsZVNoZWV0KCl7bGV0IGU9dGhpcy5vO2NvbnN0IHQ9dGhpcy50O2lmKHMmJnZvaWQgMD09PWUpe2NvbnN0IGk9dm9pZCAwIT09dCYmMT09PXQubGVuZ3RoO2kmJihlPWwuZ2V0KHQpKSx2b2lkIDA9PT1lJiYoKHRoaXMubz1lPW5ldyBDU1NTdHlsZVNoZWV0KS5yZXBsYWNlU3luYyh0aGlzLmNzc1RleHQpLGkmJmwuc2V0KHQsZSkpfXJldHVybiBlfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzVGV4dH19Y29uc3QgZD1lPT5uZXcgYygic3RyaW5nIj09dHlwZW9mIGU/ZTplKyIiLHZvaWQgMCxhKSxoPShlLC4uLnQpPT57Y29uc3QgaT0xPT09ZS5sZW5ndGg/ZVswXTp0LnJlZHVjZSgoKHQsaSxvKT0+dCsoZT0+e2lmKCEwPT09ZS5fJGNzc1Jlc3VsdCQpcmV0dXJuIGUuY3NzVGV4dDtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIGU7dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK2UrIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoaSkrZVtvKzFdKSxlWzBdKTtyZXR1cm4gbmV3IGMoaSxlLGEpfSx1PShlLHQpPT57aWYocyllLmFkb3B0ZWRTdHlsZVNoZWV0cz10Lm1hcCgoZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/ZTplLnN0eWxlU2hlZXQpKTtlbHNlIGZvcihjb25zdCBpIG9mIHQpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxvPXIubGl0Tm9uY2U7dm9pZCAwIT09byYmdC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixvKSx0LnRleHRDb250ZW50PWkuY3NzVGV4dCxlLmFwcGVuZENoaWxkKHQpfX0sZj1zP2U9PmU6ZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgdD0iIjtmb3IoY29uc3QgaSBvZiBlLmNzc1J1bGVzKXQrPWkuY3NzVGV4dDtyZXR1cm4gZCh0KX0pKGUpOmUse2lzOnAsZGVmaW5lUHJvcGVydHk6bSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6YixnZXRPd25Qcm9wZXJ0eU5hbWVzOmcsZ2V0T3duUHJvcGVydHlTeW1ib2xzOnYsZ2V0UHJvdG90eXBlT2Y6d309T2JqZWN0LHk9Z2xvYmFsVGhpcyx4PXkudHJ1c3RlZFR5cGVzLGs9eD94LmVtcHR5U2NyaXB0OiIiLFM9eS5yZWFjdGl2ZUVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQsJD0oZSx0KT0+ZSx6PXt0b0F0dHJpYnV0ZShlLHQpe3N3aXRjaCh0KXtjYXNlIEJvb2xlYW46ZT1lP2s6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmU9bnVsbD09ZT9lOkpTT04uc3RyaW5naWZ5KGUpfXJldHVybiBlfSxmcm9tQXR0cmlidXRlKGUsdCl7bGV0IGk9ZTtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOmk9bnVsbCE9PWU7YnJlYWs7Y2FzZSBOdW1iZXI6aT1udWxsPT09ZT9udWxsOk51bWJlcihlKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtpPUpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7aT1udWxsfX1yZXR1cm4gaX19LF89KGUsdCk9PiFwKGUsdCksQz17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjp6LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpffTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIikseS5saXRQcm9wZXJ0eU1ldGFkYXRhPz89bmV3IFdlYWtNYXA7Y2xhc3MgSSBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBhZGRJbml0aWFsaXplcihlKXt0aGlzLl8kRWkoKSwodGhpcy5sPz89W10pLnB1c2goZSl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5maW5hbGl6ZSgpLHRoaXMuXyRFaCYmWy4uLnRoaXMuXyRFaC5rZXlzKCldfXN0YXRpYyBjcmVhdGVQcm9wZXJ0eShlLHQ9Qyl7aWYodC5zdGF0ZSYmKHQuYXR0cmlidXRlPSExKSx0aGlzLl8kRWkoKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChlLHQpLCF0Lm5vQWNjZXNzb3Ipe2NvbnN0IGk9U3ltYm9sKCksbz10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihlLGksdCk7dm9pZCAwIT09byYmbSh0aGlzLnByb3RvdHlwZSxlLG8pfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGUsdCxpKXtjb25zdHtnZXQ6byxzZXQ6bn09Yih0aGlzLnByb3RvdHlwZSxlKT8/e2dldCgpe3JldHVybiB0aGlzW3RdfSxzZXQoZSl7dGhpc1t0XT1lfX07cmV0dXJue2dldCgpe3JldHVybiBvPy5jYWxsKHRoaXMpfSxzZXQodCl7Y29uc3Qgcj1vPy5jYWxsKHRoaXMpO24uY2FsbCh0aGlzLHQpLHRoaXMucmVxdWVzdFVwZGF0ZShlLHIsaSl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGUpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKT8/Q31zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoJCgiZWxlbWVudFByb3BlcnRpZXMiKSkpcmV0dXJuO2NvbnN0IGU9dyh0aGlzKTtlLmZpbmFsaXplKCksdm9pZCAwIT09ZS5sJiYodGhpcy5sPVsuLi5lLmxdKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzPW5ldyBNYXAoZS5lbGVtZW50UHJvcGVydGllcyl9c3RhdGljIGZpbmFsaXplKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eSgkKCJmaW5hbGl6ZWQiKSkpcmV0dXJuO2lmKHRoaXMuZmluYWxpemVkPSEwLHRoaXMuXyRFaSgpLHRoaXMuaGFzT3duUHJvcGVydHkoJCgicHJvcGVydGllcyIpKSl7Y29uc3QgZT10aGlzLnByb3BlcnRpZXMsdD1bLi4uZyhlKSwuLi52KGUpXTtmb3IoY29uc3QgaSBvZiB0KXRoaXMuY3JlYXRlUHJvcGVydHkoaSxlW2ldKX1jb25zdCBlPXRoaXNbU3ltYm9sLm1ldGFkYXRhXTtpZihudWxsIT09ZSl7Y29uc3QgdD1saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChlKTtpZih2b2lkIDAhPT10KWZvcihjb25zdFtlLGldb2YgdCl0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChlLGkpfXRoaXMuXyRFaD1uZXcgTWFwO2Zvcihjb25zdFtlLHRdb2YgdGhpcy5lbGVtZW50UHJvcGVydGllcyl7Y29uc3QgaT10aGlzLl8kRXUoZSx0KTt2b2lkIDAhPT1pJiZ0aGlzLl8kRWguc2V0KGksZSl9dGhpcy5lbGVtZW50U3R5bGVzPXRoaXMuZmluYWxpemVTdHlsZXModGhpcy5zdHlsZXMpfXN0YXRpYyBmaW5hbGl6ZVN0eWxlcyhlKXtjb25zdCB0PVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IGk9bmV3IFNldChlLmZsYXQoMS8wKS5yZXZlcnNlKCkpO2Zvcihjb25zdCBlIG9mIGkpdC51bnNoaWZ0KGYoZSkpfWVsc2Ugdm9pZCAwIT09ZSYmdC5wdXNoKGYoZSkpO3JldHVybiB0fXN0YXRpYyBfJEV1KGUsdCl7Y29uc3QgaT10LmF0dHJpYnV0ZTtyZXR1cm4hMT09PWk/dm9pZCAwOiJzdHJpbmciPT10eXBlb2YgaT9pOiJzdHJpbmciPT10eXBlb2YgZT9lLnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKChlPT50aGlzLmVuYWJsZVVwZGF0aW5nPWUpKSx0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLl8kRV8oKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNvbnN0cnVjdG9yLmw/LmZvckVhY2goKGU9PmUodGhpcykpKX1hZGRDb250cm9sbGVyKGUpeyh0aGlzLl8kRU8/Pz1uZXcgU2V0KS5hZGQoZSksdm9pZCAwIT09dGhpcy5yZW5kZXJSb290JiZ0aGlzLmlzQ29ubmVjdGVkJiZlLmhvc3RDb25uZWN0ZWQ/LigpfXJlbW92ZUNvbnRyb2xsZXIoZSl7dGhpcy5fJEVPPy5kZWxldGUoZSl9XyRFXygpe2NvbnN0IGU9bmV3IE1hcCx0PXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGNvbnN0IGkgb2YgdC5rZXlzKCkpdGhpcy5oYXNPd25Qcm9wZXJ0eShpKSYmKGUuc2V0KGksdGhpc1tpXSksZGVsZXRlIHRoaXNbaV0pO2Uuc2l6ZT4wJiYodGhpcy5fJEVwPWUpfWNyZWF0ZVJlbmRlclJvb3QoKXtjb25zdCBlPXRoaXMuc2hhZG93Um9vdD8/dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuIHUoZSx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLGV9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSx0aGlzLl8kRU8/LmZvckVhY2goKGU9PmUuaG9zdENvbm5lY3RlZD8uKCkpKX1lbmFibGVVcGRhdGluZyhlKXt9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl8kRU8/LmZvckVhY2goKGU9PmUuaG9zdERpc2Nvbm5lY3RlZD8uKCkpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSx0LGkpe3RoaXMuXyRBSyhlLGkpfV8kRUMoZSx0KXtjb25zdCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZ2V0KGUpLG89dGhpcy5jb25zdHJ1Y3Rvci5fJEV1KGUsaSk7aWYodm9pZCAwIT09byYmITA9PT1pLnJlZmxlY3Qpe2NvbnN0IG49KHZvaWQgMCE9PWkuY29udmVydGVyPy50b0F0dHJpYnV0ZT9pLmNvbnZlcnRlcjp6KS50b0F0dHJpYnV0ZSh0LGkudHlwZSk7dGhpcy5fJEVtPWUsbnVsbD09bj90aGlzLnJlbW92ZUF0dHJpYnV0ZShvKTp0aGlzLnNldEF0dHJpYnV0ZShvLG4pLHRoaXMuXyRFbT1udWxsfX1fJEFLKGUsdCl7Y29uc3QgaT10aGlzLmNvbnN0cnVjdG9yLG89aS5fJEVoLmdldChlKTtpZih2b2lkIDAhPT1vJiZ0aGlzLl8kRW0hPT1vKXtjb25zdCBlPWkuZ2V0UHJvcGVydHlPcHRpb25zKG8pLG49ImZ1bmN0aW9uIj09dHlwZW9mIGUuY29udmVydGVyP3tmcm9tQXR0cmlidXRlOmUuY29udmVydGVyfTp2b2lkIDAhPT1lLmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZT9lLmNvbnZlcnRlcjp6O3RoaXMuXyRFbT1vLHRoaXNbb109bi5mcm9tQXR0cmlidXRlKHQsZS50eXBlKSx0aGlzLl8kRW09bnVsbH19cmVxdWVzdFVwZGF0ZShlLHQsaSl7aWYodm9pZCAwIT09ZSl7aWYoaT8/PXRoaXMuY29uc3RydWN0b3IuZ2V0UHJvcGVydHlPcHRpb25zKGUpLCEoaS5oYXNDaGFuZ2VkPz9fKSh0aGlzW2VdLHQpKXJldHVybjt0aGlzLlAoZSx0LGkpfSExPT09dGhpcy5pc1VwZGF0ZVBlbmRpbmcmJih0aGlzLl8kRVM9dGhpcy5fJEVUKCkpfVAoZSx0LGkpe3RoaXMuXyRBTC5oYXMoZSl8fHRoaXMuXyRBTC5zZXQoZSx0KSwhMD09PWkucmVmbGVjdCYmdGhpcy5fJEVtIT09ZSYmKHRoaXMuXyRFaj8/PW5ldyBTZXQpLmFkZChlKX1hc3luYyBfJEVUKCl7dGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e2F3YWl0IHRoaXMuXyRFU31jYXRjaChlKXtQcm9taXNlLnJlamVjdChlKX1jb25zdCBlPXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gbnVsbCE9ZSYmYXdhaXQgZSwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IoY29uc3RbZSx0XW9mIHRoaXMuXyRFcCl0aGlzW2VdPXQ7dGhpcy5fJEVwPXZvaWQgMH1jb25zdCBlPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7aWYoZS5zaXplPjApZm9yKGNvbnN0W3QsaV1vZiBlKSEwIT09aS53cmFwcGVkfHx0aGlzLl8kQUwuaGFzKHQpfHx2b2lkIDA9PT10aGlzW3RdfHx0aGlzLlAodCx0aGlzW3RdLGkpfWxldCBlPSExO2NvbnN0IHQ9dGhpcy5fJEFMO3RyeXtlPXRoaXMuc2hvdWxkVXBkYXRlKHQpLGU/KHRoaXMud2lsbFVwZGF0ZSh0KSx0aGlzLl8kRU8/LmZvckVhY2goKGU9PmUuaG9zdFVwZGF0ZT8uKCkpKSx0aGlzLnVwZGF0ZSh0KSk6dGhpcy5fJEVVKCl9Y2F0Y2godCl7dGhyb3cgZT0hMSx0aGlzLl8kRVUoKSx0fWUmJnRoaXMuXyRBRSh0KX13aWxsVXBkYXRlKGUpe31fJEFFKGUpe3RoaXMuXyRFTz8uZm9yRWFjaCgoZT0+ZS5ob3N0VXBkYXRlZD8uKCkpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQoZSkpLHRoaXMudXBkYXRlZChlKX1fJEVVKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKGUpe3JldHVybiEwfXVwZGF0ZShlKXt0aGlzLl8kRWomJj10aGlzLl8kRWouZm9yRWFjaCgoZT0+dGhpcy5fJEVDKGUsdGhpc1tlXSkpKSx0aGlzLl8kRVUoKX11cGRhdGVkKGUpe31maXJzdFVwZGF0ZWQoZSl7fX1JLmVsZW1lbnRTdHlsZXM9W10sSS5zaGFkb3dSb290T3B0aW9ucz17bW9kZToib3BlbiJ9LElbJCgiZWxlbWVudFByb3BlcnRpZXMiKV09bmV3IE1hcCxJWyQoImZpbmFsaXplZCIpXT1uZXcgTWFwLFM/Lih7UmVhY3RpdmVFbGVtZW50Okl9KSwoeS5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCIyLjAuNCIpOwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqLwpjb25zdCBMPWdsb2JhbFRoaXMsRT1MLnRydXN0ZWRUeXBlcyxBPUU/RS5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDplPT5lfSk6dm9pZCAwLFQ9IiRsaXQkIixQPWBsaXQkJHtNYXRoLnJhbmRvbSgpLnRvRml4ZWQoOSkuc2xpY2UoMil9JGAsRD0iPyIrUCxGPWA8JHtEfT5gLE09ZG9jdW1lbnQsUj0oKT0+TS5jcmVhdGVDb21tZW50KCIiKSxPPWU9Pm51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlLFU9QXJyYXkuaXNBcnJheSxCPWU9PlUoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlPy5bU3ltYm9sLml0ZXJhdG9yXSxOPSJbIFx0XG5cZlxyXSIscT0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxqPS8tLT4vZyxIPS8+L2csVz1SZWdFeHAoYD58JHtOfSg/OihbXlxccyInPj0vXSspKCR7Tn0qPSR7Tn0qKD86W14gXHRcblxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSxWPS8nL2csRz0vIi9nLEs9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLFk9ZT0+KHQsLi4uaSk9Pih7XyRsaXRUeXBlJDplLHN0cmluZ3M6dCx2YWx1ZXM6aX0pLFE9WSgxKSxaPVkoMiksSj1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSxYPVN5bWJvbC5mb3IoImxpdC1ub3RoaW5nIiksZWU9bmV3IFdlYWtNYXAsdGU9TS5jcmVhdGVUcmVlV2Fsa2VyKE0sMTI5KTtmdW5jdGlvbiBpZShlLHQpe2lmKCFBcnJheS5pc0FycmF5KGUpfHwhZS5oYXNPd25Qcm9wZXJ0eSgicmF3IikpdGhyb3cgRXJyb3IoImludmFsaWQgdGVtcGxhdGUgc3RyaW5ncyBhcnJheSIpO3JldHVybiB2b2lkIDAhPT1BP0EuY3JlYXRlSFRNTCh0KTp0fWNvbnN0IG9lPShlLHQpPT57Y29uc3QgaT1lLmxlbmd0aC0xLG89W107bGV0IG4scj0yPT09dD8iPHN2Zz4iOiIiLHM9cTtmb3IobGV0IHQ9MDt0PGk7dCsrKXtjb25zdCBpPWVbdF07bGV0IGEsbCxjPS0xLGQ9MDtmb3IoO2Q8aS5sZW5ndGgmJihzLmxhc3RJbmRleD1kLGw9cy5leGVjKGkpLG51bGwhPT1sKTspZD1zLmxhc3RJbmRleCxzPT09cT8iIS0tIj09PWxbMV0/cz1qOnZvaWQgMCE9PWxbMV0/cz1IOnZvaWQgMCE9PWxbMl0/KEsudGVzdChsWzJdKSYmKG49UmVnRXhwKCI8LyIrbFsyXSwiZyIpKSxzPVcpOnZvaWQgMCE9PWxbM10mJihzPVcpOnM9PT1XPyI+Ij09PWxbMF0/KHM9bj8/cSxjPS0xKTp2b2lkIDA9PT1sWzFdP2M9LTI6KGM9cy5sYXN0SW5kZXgtbFsyXS5sZW5ndGgsYT1sWzFdLHM9dm9pZCAwPT09bFszXT9XOiciJz09PWxbM10/RzpWKTpzPT09R3x8cz09PVY/cz1XOnM9PT1qfHxzPT09SD9zPXE6KHM9VyxuPXZvaWQgMCk7Y29uc3QgaD1zPT09VyYmZVt0KzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO3IrPXM9PT1xP2krRjpjPj0wPyhvLnB1c2goYSksaS5zbGljZSgwLGMpK1QraS5zbGljZShjKStQK2gpOmkrUCsoLTI9PT1jP3Q6aCl9cmV0dXJuW2llKGUscisoZVtpXXx8Ijw/PiIpKygyPT09dD8iPC9zdmc+IjoiIikpLG9dfTtjbGFzcyBuZXtjb25zdHJ1Y3Rvcih7c3RyaW5nczplLF8kbGl0VHlwZSQ6dH0saSl7bGV0IG87dGhpcy5wYXJ0cz1bXTtsZXQgbj0wLHI9MDtjb25zdCBzPWUubGVuZ3RoLTEsYT10aGlzLnBhcnRzLFtsLGNdPW9lKGUsdCk7aWYodGhpcy5lbD1uZS5jcmVhdGVFbGVtZW50KGwsaSksdGUuY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LDI9PT10KXtjb25zdCBlPXRoaXMuZWwuY29udGVudC5maXJzdENoaWxkO2UucmVwbGFjZVdpdGgoLi4uZS5jaGlsZE5vZGVzKX1mb3IoO251bGwhPT0obz10ZS5uZXh0Tm9kZSgpKSYmYS5sZW5ndGg8czspe2lmKDE9PT1vLm5vZGVUeXBlKXtpZihvLmhhc0F0dHJpYnV0ZXMoKSlmb3IoY29uc3QgZSBvZiBvLmdldEF0dHJpYnV0ZU5hbWVzKCkpaWYoZS5lbmRzV2l0aChUKSl7Y29uc3QgdD1jW3IrK10saT1vLmdldEF0dHJpYnV0ZShlKS5zcGxpdChQKSxzPS8oWy4/QF0pPyguKikvLmV4ZWModCk7YS5wdXNoKHt0eXBlOjEsaW5kZXg6bixuYW1lOnNbMl0sc3RyaW5nczppLGN0b3I6Ii4iPT09c1sxXT9jZToiPyI9PT1zWzFdP2RlOiJAIj09PXNbMV0/aGU6bGV9KSxvLnJlbW92ZUF0dHJpYnV0ZShlKX1lbHNlIGUuc3RhcnRzV2l0aChQKSYmKGEucHVzaCh7dHlwZTo2LGluZGV4Om59KSxvLnJlbW92ZUF0dHJpYnV0ZShlKSk7aWYoSy50ZXN0KG8udGFnTmFtZSkpe2NvbnN0IGU9by50ZXh0Q29udGVudC5zcGxpdChQKSx0PWUubGVuZ3RoLTE7aWYodD4wKXtvLnRleHRDb250ZW50PUU/RS5lbXB0eVNjcmlwdDoiIjtmb3IobGV0IGk9MDtpPHQ7aSsrKW8uYXBwZW5kKGVbaV0sUigpKSx0ZS5uZXh0Tm9kZSgpLGEucHVzaCh7dHlwZToyLGluZGV4Oisrbn0pO28uYXBwZW5kKGVbdF0sUigpKX19fWVsc2UgaWYoOD09PW8ubm9kZVR5cGUpaWYoby5kYXRhPT09RClhLnB1c2goe3R5cGU6MixpbmRleDpufSk7ZWxzZXtsZXQgZT0tMTtmb3IoOy0xIT09KGU9by5kYXRhLmluZGV4T2YoUCxlKzEpKTspYS5wdXNoKHt0eXBlOjcsaW5kZXg6bn0pLGUrPVAubGVuZ3RoLTF9bisrfX1zdGF0aWMgY3JlYXRlRWxlbWVudChlLHQpe2NvbnN0IGk9TS5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBpLmlubmVySFRNTD1lLGl9fWZ1bmN0aW9uIHJlKGUsdCxpPWUsbyl7aWYodD09PUopcmV0dXJuIHQ7bGV0IG49dm9pZCAwIT09bz9pLl8kQ28/LltvXTppLl8kQ2w7Y29uc3Qgcj1PKHQpP3ZvaWQgMDp0Ll8kbGl0RGlyZWN0aXZlJDtyZXR1cm4gbj8uY29uc3RydWN0b3IhPT1yJiYobj8uXyRBTz8uKCExKSx2b2lkIDA9PT1yP249dm9pZCAwOihuPW5ldyByKGUpLG4uXyRBVChlLGksbykpLHZvaWQgMCE9PW8/KGkuXyRDbz8/PVtdKVtvXT1uOmkuXyRDbD1uKSx2b2lkIDAhPT1uJiYodD1yZShlLG4uXyRBUyhlLHQudmFsdWVzKSxuLG8pKSx0fWNsYXNzIHNle2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fJEFWPVtdLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFEPWUsdGhpcy5fJEFNPXR9Z2V0IHBhcmVudE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFNLnBhcmVudE5vZGV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9dShlKXtjb25zdHtlbDp7Y29udGVudDp0fSxwYXJ0czppfT10aGlzLl8kQUQsbz0oZT8uY3JlYXRpb25TY29wZT8/TSkuaW1wb3J0Tm9kZSh0LCEwKTt0ZS5jdXJyZW50Tm9kZT1vO2xldCBuPXRlLm5leHROb2RlKCkscj0wLHM9MCxhPWlbMF07Zm9yKDt2b2lkIDAhPT1hOyl7aWYocj09PWEuaW5kZXgpe2xldCB0OzI9PT1hLnR5cGU/dD1uZXcgYWUobixuLm5leHRTaWJsaW5nLHRoaXMsZSk6MT09PWEudHlwZT90PW5ldyBhLmN0b3IobixhLm5hbWUsYS5zdHJpbmdzLHRoaXMsZSk6Nj09PWEudHlwZSYmKHQ9bmV3IHVlKG4sdGhpcyxlKSksdGhpcy5fJEFWLnB1c2godCksYT1pWysrc119ciE9PWE/LmluZGV4JiYobj10ZS5uZXh0Tm9kZSgpLHIrKyl9cmV0dXJuIHRlLmN1cnJlbnROb2RlPU0sb31wKGUpe2xldCB0PTA7Zm9yKGNvbnN0IGkgb2YgdGhpcy5fJEFWKXZvaWQgMCE9PWkmJih2b2lkIDAhPT1pLnN0cmluZ3M/KGkuXyRBSShlLGksdCksdCs9aS5zdHJpbmdzLmxlbmd0aC0yKTppLl8kQUkoZVt0XSkpLHQrK319Y2xhc3MgYWV7Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IoZSx0LGksbyl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPVgsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUE9ZSx0aGlzLl8kQUI9dCx0aGlzLl8kQU09aSx0aGlzLm9wdGlvbnM9byx0aGlzLl8kQ3Y9bz8uaXNDb25uZWN0ZWQ/PyEwfWdldCBwYXJlbnROb2RlKCl7bGV0IGU9dGhpcy5fJEFBLnBhcmVudE5vZGU7Y29uc3QgdD10aGlzLl8kQU07cmV0dXJuIHZvaWQgMCE9PXQmJjExPT09ZT8ubm9kZVR5cGUmJihlPXQucGFyZW50Tm9kZSksZX1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSShlLHQ9dGhpcyl7ZT1yZSh0aGlzLGUsdCksTyhlKT9lPT09WHx8bnVsbD09ZXx8IiI9PT1lPyh0aGlzLl8kQUghPT1YJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9WCk6ZSE9PXRoaXMuXyRBSCYmZSE9PUomJnRoaXMuXyhlKTp2b2lkIDAhPT1lLl8kbGl0VHlwZSQ/dGhpcy4kKGUpOnZvaWQgMCE9PWUubm9kZVR5cGU/dGhpcy5UKGUpOkIoZSk/dGhpcy5rKGUpOnRoaXMuXyhlKX1TKGUpe3JldHVybiB0aGlzLl8kQUEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLl8kQUIpfVQoZSl7dGhpcy5fJEFIIT09ZSYmKHRoaXMuXyRBUigpLHRoaXMuXyRBSD10aGlzLlMoZSkpfV8oZSl7dGhpcy5fJEFIIT09WCYmTyh0aGlzLl8kQUgpP3RoaXMuXyRBQS5uZXh0U2libGluZy5kYXRhPWU6dGhpcy5UKE0uY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuXyRBSD1lfSQoZSl7Y29uc3R7dmFsdWVzOnQsXyRsaXRUeXBlJDppfT1lLG89Im51bWJlciI9PXR5cGVvZiBpP3RoaXMuXyRBQyhlKToodm9pZCAwPT09aS5lbCYmKGkuZWw9bmUuY3JlYXRlRWxlbWVudChpZShpLmgsaS5oWzBdKSx0aGlzLm9wdGlvbnMpKSxpKTtpZih0aGlzLl8kQUg/Ll8kQUQ9PT1vKXRoaXMuXyRBSC5wKHQpO2Vsc2V7Y29uc3QgZT1uZXcgc2Uobyx0aGlzKSxpPWUudSh0aGlzLm9wdGlvbnMpO2UucCh0KSx0aGlzLlQoaSksdGhpcy5fJEFIPWV9fV8kQUMoZSl7bGV0IHQ9ZWUuZ2V0KGUuc3RyaW5ncyk7cmV0dXJuIHZvaWQgMD09PXQmJmVlLnNldChlLnN0cmluZ3MsdD1uZXcgbmUoZSkpLHR9ayhlKXtVKHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2NvbnN0IHQ9dGhpcy5fJEFIO2xldCBpLG89MDtmb3IoY29uc3QgbiBvZiBlKW89PT10Lmxlbmd0aD90LnB1c2goaT1uZXcgYWUodGhpcy5TKFIoKSksdGhpcy5TKFIoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTppPXRbb10saS5fJEFJKG4pLG8rKztvPHQubGVuZ3RoJiYodGhpcy5fJEFSKGkmJmkuXyRBQi5uZXh0U2libGluZyxvKSx0Lmxlbmd0aD1vKX1fJEFSKGU9dGhpcy5fJEFBLm5leHRTaWJsaW5nLHQpe2Zvcih0aGlzLl8kQVA/LighMSwhMCx0KTtlJiZlIT09dGhpcy5fJEFCOyl7Y29uc3QgdD1lLm5leHRTaWJsaW5nO2UucmVtb3ZlKCksZT10fX1zZXRDb25uZWN0ZWQoZSl7dm9pZCAwPT09dGhpcy5fJEFNJiYodGhpcy5fJEN2PWUsdGhpcy5fJEFQPy4oZSkpfX1jbGFzcyBsZXtnZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLHQsaSxvLG4pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD1YLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5lbGVtZW50PWUsdGhpcy5uYW1lPXQsdGhpcy5fJEFNPW8sdGhpcy5vcHRpb25zPW4saS5sZW5ndGg+Mnx8IiIhPT1pWzBdfHwiIiE9PWlbMV0/KHRoaXMuXyRBSD1BcnJheShpLmxlbmd0aC0xKS5maWxsKG5ldyBTdHJpbmcpLHRoaXMuc3RyaW5ncz1pKTp0aGlzLl8kQUg9WH1fJEFJKGUsdD10aGlzLGksbyl7Y29uc3Qgbj10aGlzLnN0cmluZ3M7bGV0IHI9ITE7aWYodm9pZCAwPT09billPXJlKHRoaXMsZSx0LDApLHI9IU8oZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1KLHImJih0aGlzLl8kQUg9ZSk7ZWxzZXtjb25zdCBvPWU7bGV0IHMsYTtmb3IoZT1uWzBdLHM9MDtzPG4ubGVuZ3RoLTE7cysrKWE9cmUodGhpcyxvW2krc10sdCxzKSxhPT09SiYmKGE9dGhpcy5fJEFIW3NdKSxyfHw9IU8oYSl8fGEhPT10aGlzLl8kQUhbc10sYT09PVg/ZT1YOmUhPT1YJiYoZSs9KGE/PyIiKStuW3MrMV0pLHRoaXMuXyRBSFtzXT1hfXImJiFvJiZ0aGlzLmooZSl9aihlKXtlPT09WD90aGlzLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSk6dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSh0aGlzLm5hbWUsZT8/IiIpfX1jbGFzcyBjZSBleHRlbmRzIGxle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKGUpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPWU9PT1YP3ZvaWQgMDplfX1jbGFzcyBkZSBleHRlbmRzIGxle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1qKGUpe3RoaXMuZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUodGhpcy5uYW1lLCEhZSYmZSE9PVgpfX1jbGFzcyBoZSBleHRlbmRzIGxle2NvbnN0cnVjdG9yKGUsdCxpLG8sbil7c3VwZXIoZSx0LGksbyxuKSx0aGlzLnR5cGU9NX1fJEFJKGUsdD10aGlzKXtpZigoZT1yZSh0aGlzLGUsdCwwKT8/WCk9PT1KKXJldHVybjtjb25zdCBpPXRoaXMuXyRBSCxvPWU9PT1YJiZpIT09WHx8ZS5jYXB0dXJlIT09aS5jYXB0dXJlfHxlLm9uY2UhPT1pLm9uY2V8fGUucGFzc2l2ZSE9PWkucGFzc2l2ZSxuPWUhPT1YJiYoaT09PVh8fG8pO28mJnRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGkpLG4mJnRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGUpLHRoaXMuXyRBSD1lfWhhbmRsZUV2ZW50KGUpeyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl8kQUg/dGhpcy5fJEFILmNhbGwodGhpcy5vcHRpb25zPy5ob3N0Pz90aGlzLmVsZW1lbnQsZSk6dGhpcy5fJEFILmhhbmRsZUV2ZW50KGUpfX1jbGFzcyB1ZXtjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5lbGVtZW50PWUsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09dCx0aGlzLm9wdGlvbnM9aX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKGUpe3JlKHRoaXMsZSl9fWNvbnN0IGZlPXtQOlQsQTpQLEM6RCxNOjEsTDpvZSxSOnNlLEQ6QixWOnJlLEk6YWUsSDpsZSxOOmRlLFU6aGUsQjpjZSxGOnVlfSxwZT1MLmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7cGU/LihuZSxhZSksKEwubGl0SHRtbFZlcnNpb25zPz89W10pLnB1c2goIjMuMS40Iik7Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNsYXNzIG1lIGV4dGVuZHMgSXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW5kZXJPcHRpb25zPXtob3N0OnRoaXN9LHRoaXMuXyREbz12b2lkIDB9Y3JlYXRlUmVuZGVyUm9vdCgpe2NvbnN0IGU9c3VwZXIuY3JlYXRlUmVuZGVyUm9vdCgpO3JldHVybiB0aGlzLnJlbmRlck9wdGlvbnMucmVuZGVyQmVmb3JlPz89ZS5maXJzdENoaWxkLGV9dXBkYXRlKGUpe2NvbnN0IHQ9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKGUpLHRoaXMuXyREbz0oKGUsdCxpKT0+e2NvbnN0IG89aT8ucmVuZGVyQmVmb3JlPz90O2xldCBuPW8uXyRsaXRQYXJ0JDtpZih2b2lkIDA9PT1uKXtjb25zdCBlPWk/LnJlbmRlckJlZm9yZT8/bnVsbDtvLl8kbGl0UGFydCQ9bj1uZXcgYWUodC5pbnNlcnRCZWZvcmUoUigpLGUpLGUsdm9pZCAwLGk/P3t9KX1yZXR1cm4gbi5fJEFJKGUpLG59KSh0LHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gSn19bWUuXyRsaXRFbGVtZW50JD0hMCxtZS5maW5hbGl6ZWQ9ITAsZ2xvYmFsVGhpcy5saXRFbGVtZW50SHlkcmF0ZVN1cHBvcnQ/Lih7TGl0RWxlbWVudDptZX0pO2NvbnN0IGJlPWdsb2JhbFRoaXMubGl0RWxlbWVudFBvbHlmaWxsU3VwcG9ydDtiZT8uKHtMaXRFbGVtZW50Om1lfSk7KGdsb2JhbFRoaXMubGl0RWxlbWVudFZlcnNpb25zPz89W10pLnB1c2goIjQuMC42Iik7Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNvbnN0IGdlPWU9Pih0LGkpPT57dm9pZCAwIT09aT9pLmFkZEluaXRpYWxpemVyKCgoKT0+e2N1c3RvbUVsZW1lbnRzLmRlZmluZShlLHQpfSkpOmN1c3RvbUVsZW1lbnRzLmRlZmluZShlLHQpfSx2ZT17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjp6LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpffSx3ZT0oZT12ZSx0LGkpPT57Y29uc3R7a2luZDpvLG1ldGFkYXRhOm59PWk7bGV0IHI9Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChuKTtpZih2b2lkIDA9PT1yJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KG4scj1uZXcgTWFwKSxyLnNldChpLm5hbWUsZSksImFjY2Vzc29yIj09PW8pe2NvbnN0e25hbWU6b309aTtyZXR1cm57c2V0KGkpe2NvbnN0IG49dC5nZXQuY2FsbCh0aGlzKTt0LnNldC5jYWxsKHRoaXMsaSksdGhpcy5yZXF1ZXN0VXBkYXRlKG8sbixlKX0saW5pdCh0KXtyZXR1cm4gdm9pZCAwIT09dCYmdGhpcy5QKG8sdm9pZCAwLGUpLHR9fX1pZigic2V0dGVyIj09PW8pe2NvbnN0e25hbWU6b309aTtyZXR1cm4gZnVuY3Rpb24oaSl7Y29uc3Qgbj10aGlzW29dO3QuY2FsbCh0aGlzLGkpLHRoaXMucmVxdWVzdFVwZGF0ZShvLG4sZSl9fXRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICIrbyl9O2Z1bmN0aW9uIHllKGUpe3JldHVybih0LGkpPT4ib2JqZWN0Ij09dHlwZW9mIGk/d2UoZSx0LGkpOigoZSx0LGkpPT57Y29uc3Qgbz10Lmhhc093blByb3BlcnR5KGkpO3JldHVybiB0LmNvbnN0cnVjdG9yLmNyZWF0ZVByb3BlcnR5KGksbz97Li4uZSx3cmFwcGVkOiEwfTplKSxvP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKTp2b2lkIDB9KShlLHQsaSl9Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmZ1bmN0aW9uIHhlKGUpe3JldHVybiB5ZSh7Li4uZSxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX0KLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi8KY29uc3Qga2U9KGUsdCxpKT0+KGkuY29uZmlndXJhYmxlPSEwLGkuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiYib2JqZWN0IiE9dHlwZW9mIHQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsaSksaSk7Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmZ1bmN0aW9uIFNlKGUsdCl7cmV0dXJuKGksbyxuKT0+e2NvbnN0IHI9dD0+dC5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKGUpPz9udWxsO2lmKHQpe2NvbnN0e2dldDplLHNldDp0fT0ib2JqZWN0Ij09dHlwZW9mIG8/aTpuPz8oKCk9Pntjb25zdCBlPVN5bWJvbCgpO3JldHVybntnZXQoKXtyZXR1cm4gdGhpc1tlXX0sc2V0KHQpe3RoaXNbZV09dH19fSkoKTtyZXR1cm4ga2UoaSxvLHtnZXQoKXtsZXQgaT1lLmNhbGwodGhpcyk7cmV0dXJuIHZvaWQgMD09PWkmJihpPXIodGhpcyksKG51bGwhPT1pfHx0aGlzLmhhc1VwZGF0ZWQpJiZ0LmNhbGwodGhpcyxpKSksaX19KX1yZXR1cm4ga2UoaSxvLHtnZXQoKXtyZXR1cm4gcih0aGlzKX19KX19Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNvbnN0ICRlPWU9PmU/P1gsemU9MSxfZT0yLENlPWU9PiguLi50KT0+KHtfJGxpdERpcmVjdGl2ZSQ6ZSx2YWx1ZXM6dH0pO2NsYXNzIElle2NvbnN0cnVjdG9yKGUpe31nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFUKGUsdCxpKXt0aGlzLl8kQ3Q9ZSx0aGlzLl8kQU09dCx0aGlzLl8kQ2k9aX1fJEFTKGUsdCl7cmV0dXJuIHRoaXMudXBkYXRlKGUsdCl9dXBkYXRlKGUsdCl7cmV0dXJuIHRoaXMucmVuZGVyKC4uLnQpfX0KLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi8KY2xhc3MgTGUgZXh0ZW5kcyBJZXtjb25zdHJ1Y3RvcihlKXtpZihzdXBlcihlKSx0aGlzLml0PVgsZS50eXBlIT09X2UpdGhyb3cgRXJyb3IodGhpcy5jb25zdHJ1Y3Rvci5kaXJlY3RpdmVOYW1lKyIoKSBjYW4gb25seSBiZSB1c2VkIGluIGNoaWxkIGJpbmRpbmdzIil9cmVuZGVyKGUpe2lmKGU9PT1YfHxudWxsPT1lKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PUopcmV0dXJuIGU7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IEVycm9yKHRoaXMuY29uc3RydWN0b3IuZGlyZWN0aXZlTmFtZSsiKCkgY2FsbGVkIHdpdGggYSBub24tc3RyaW5nIHZhbHVlIik7aWYoZT09PXRoaXMuaXQpcmV0dXJuIHRoaXMuX3Q7dGhpcy5pdD1lO2NvbnN0IHQ9W2VdO3JldHVybiB0LnJhdz10LHRoaXMuX3Q9e18kbGl0VHlwZSQ6dGhpcy5jb25zdHJ1Y3Rvci5yZXN1bHRUeXBlLHN0cmluZ3M6dCx2YWx1ZXM6W119fX1MZS5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIixMZS5yZXN1bHRUeXBlPTE7Y29uc3QgRWU9Q2UoTGUpOwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqLwpjbGFzcyBBZSBleHRlbmRzIExle31BZS5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVTVkciLEFlLnJlc3VsdFR5cGU9Mjtjb25zdCBUZT1DZShBZSksUGU9ImltcG9ydGFudCIsRGU9IiAhIitQZSxGZT1DZShjbGFzcyBleHRlbmRzIElle2NvbnN0cnVjdG9yKGUpe2lmKHN1cGVyKGUpLGUudHlwZSE9PXplfHwic3R5bGUiIT09ZS5uYW1lfHxlLnN0cmluZ3M/Lmxlbmd0aD4yKXRocm93IEVycm9yKCJUaGUgYHN0eWxlTWFwYCBkaXJlY3RpdmUgbXVzdCBiZSB1c2VkIGluIHRoZSBgc3R5bGVgIGF0dHJpYnV0ZSBhbmQgbXVzdCBiZSB0aGUgb25seSBwYXJ0IGluIHRoZSBhdHRyaWJ1dGUuIil9cmVuZGVyKGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKCh0LGkpPT57Y29uc3Qgbz1lW2ldO3JldHVybiBudWxsPT1vP3Q6dCtgJHtpPWkuaW5jbHVkZXMoIi0iKT9pOmkucmVwbGFjZSgvKD86Xih3ZWJraXR8bW96fG1zfG8pfCkoPz1bQS1aXSkvZywiLSQmIikudG9Mb3dlckNhc2UoKX06JHtvfTtgfSksIiIpfXVwZGF0ZShlLFt0XSl7Y29uc3R7c3R5bGU6aX09ZS5lbGVtZW50O2lmKHZvaWQgMD09PXRoaXMuZnQpcmV0dXJuIHRoaXMuZnQ9bmV3IFNldChPYmplY3Qua2V5cyh0KSksdGhpcy5yZW5kZXIodCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5mdCludWxsPT10W2VdJiYodGhpcy5mdC5kZWxldGUoZSksZS5pbmNsdWRlcygiLSIpP2kucmVtb3ZlUHJvcGVydHkoZSk6aVtlXT1udWxsKTtmb3IoY29uc3QgZSBpbiB0KXtjb25zdCBvPXRbZV07aWYobnVsbCE9byl7dGhpcy5mdC5hZGQoZSk7Y29uc3QgdD0ic3RyaW5nIj09dHlwZW9mIG8mJm8uZW5kc1dpdGgoRGUpO2UuaW5jbHVkZXMoIi0iKXx8dD9pLnNldFByb3BlcnR5KGUsdD9vLnNsaWNlKDAsLTExKTpvLHQ/UGU6IiIpOmlbZV09b319cmV0dXJuIEp9fSk7dmFyIE1lLFJlPV9fd2VicGFja19yZXF1aXJlX18oOTg5KTtjb25zdCBPZT0iLi93L2FwaSIsVWU9Ii4vdyIsQmU9ZChSZS5BKTtmdW5jdGlvbiBOZShlKXtyZXR1cm5bQmUsZV19Y29uc3QgcWU9d2luZG93LklTX0FQUHx8KG51bGw9PT0oTWU9d2luZG93LmVsZWN0cm9uKXx8dm9pZCAwPT09TWU/dm9pZCAwOk1lLklTX0FQUCl8fHdpbmRvdy5tYXRjaE1lZGlhKCIoZGlzcGxheS1tb2RlOiBzdGFuZGFsb25lKSIpLm1hdGNoZXMsamU9IjIuMy40IjtmdW5jdGlvbiBIZShlKXsiICI9PWUua2V5JiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUudGFyZ2V0LmNsaWNrKCkpfWZ1bmN0aW9uIFdlKGUpe2NvbnN0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgibGlua1tyZWwqPSdpY29uJ10iKTtmb3IoY29uc3QgZSBvZiBpKXQucmVtb3ZlQ2hpbGQoZSk7Zm9yKGNvbnN0IGkgb2YgZS5pY29ucyl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7ZS5yZWw9aS5yZWwsZS5ocmVmPWkuaHJlZix0LmFwcGVuZENoaWxkKGUpfX1jbGFzcyBWZSBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnNpemU9IjEuMWVtIix0aGlzLndpZHRoPW51bGwsdGhpcy5oZWlnaHQ9bnVsbH1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57c3ZnOnt0eXBlOlN0cmluZ30sc2l6ZTp7dHlwZTpTdHJpbmd9LHdpZHRoOnt0eXBlOlN0cmluZ30saGVpZ2h0Ont0eXBlOlN0cmluZ319fXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIGhgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTsKICAgICAgfQogICAgICA6aG9zdCBzdmcgewogICAgICAgIGZpbGw6IHZhcigtLWZhLWljb24tZmlsbC1jb2xvciwgY3VycmVudGNvbG9yKTsKICAgICAgICB3aWR0aDogdmFyKC0tZmEtaWNvbi13aWR0aCwgMTlweCk7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1mYS1pY29uLWhlaWdodCwgMTlweCk7CiAgICAgIH0KICAgIGB9cmVuZGVyKCl7aWYoIXRoaXMuc3ZnKXJldHVybiBRYGA7Y29uc3QgZT17fTtyZXR1cm4gdGhpcy5zaXplPyhlLndpZHRoPXRoaXMuc2l6ZSxlLmhlaWdodD10aGlzLnNpemUpOih0aGlzLndpZHRoJiYoZS53aWR0aD10aGlzLndpZHRoKSx0aGlzLmhlaWdodCYmKGUuaGVpZ2h0PXRoaXMuaGVpZ2h0KSksUWA8c3ZnIHN0eWxlPSIke0ZlKGUpfSI+CiAgICAgIDxnPgogICAgICAgICR7VGUodGhpcy5zdmcpfQogICAgICA8L2c+CiAgICA8L3N2Zz5gfX1jbGFzcyBHZSBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRpdGxlPSIiLHRoaXMuYmdDbGFzcz0iIix0aGlzLm5vQmdDbG9zZT0hMX1zdGF0aWMgZ2V0IHByb3BlcnRpZXMoKXtyZXR1cm57dGl0bGU6e3R5cGU6U3RyaW5nfSxiZ0NsYXNzOnt0eXBlOlN0cmluZ30sbm9CZ0Nsb3NlOnt0eXBlOkJvb2xlYW59fX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShoYAogICAgICAubW9kYWwtYmFja2dyb3VuZCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpOwogICAgICB9CgogICAgICAubW9kYWwtY2FyZC1oZWFkIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLCAjOTdhMWZmKTsKICAgICAgfQoKICAgICAgLm1vZGFsLWNhcmQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogdmFyKC0tbW9kYWwtd2lkdGgsIDY0MHB4KTsKICAgICAgfQogICAgYCl9cmVuZGVyKCl7cmV0dXJuIFFgIDxkaXYgY2xhc3M9Im1vZGFsIGlzLWFjdGl2ZSI+CiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibW9kYWwtYmFja2dyb3VuZCIKICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLm5vQmdDbG9zZSYmdGhpcy5vbkNsb3NlKCl9IgogICAgICA+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNhcmQiPgogICAgICAgIDxoZWFkZXIKICAgICAgICAgIGNsYXNzPSJtb2RhbC1jYXJkLWhlYWQgJHt0aGlzLmJnQ2xhc3N9IgogICAgICAgID4KICAgICAgICAgIDxwIGNsYXNzPSJtb2RhbC1jYXJkLXRpdGxlIGlzLTMiPiR7dGhpcy50aXRsZX08L3A+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJkZWxldGUiCiAgICAgICAgICAgIGFyaWEtbGFiZWw9ImNsb3NlIgogICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkNsb3NlfSIKICAgICAgICAgID48L2J1dHRvbj4KICAgICAgICA8L2hlYWRlcj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ibW9kYWwtY2FyZC1ib2R5Ij4KICAgICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICA8L3NlY3Rpb24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+YH1vbkNsb3NlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibW9kYWwtY2xvc2VkIikpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoImZhLWljb24iLFZlKSxjdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLW1vZGFsIixHZSk7Y29uc3QgS2U9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik02LjgwNyAxMS4yNDZoLS4wMDFhLjI1LjI1IDAgMCAxLS4yNDUtLjI5NCA1LjU1IDUuNTUgMCAwIDEgMy4wODItMy45NTkuMTI0LjEyNCAwIDAgMSAuMTc2LjExMS4xLjEgMCAwIDEtLjAxMS4wNWMtLjQyNiAxLjAzNS0uNzE5IDIuMzcxLS44MSAzLjg1NmEuMjUuMjUgMCAwIDEtLjI0OS4yMzZ6bTcuMzY0LTQuMDkxYS4xMy4xMyAwIDAgMSAuMDI3LS4xMzguMTMuMTMgMCAwIDEgLjEzOS0uMDI1IDUuNTQgNS41NCAwIDAgMSAzLjA4MSAzLjk2LjI1Mi4yNTIgMCAwIDEtLjI0NS4yOTNsLTEuOTQyLjAwMWEuMjUuMjUgMCAwIDEtLjI0OS0uMjM2Yy0uMDkxLTEuNDg1LS4zODQtMi44MjEtLjgxMS0zLjg1NW0zLjAwMiA1LjU5MWMuMDc0IDAgLjE0NC4wMzMuMTkyLjA4OWEuMjUuMjUgMCAwIDEgLjA1NC4yMDVBNS41NCA1LjU0IDAgMCAxIDE0LjMzNyAxN2EuMTMuMTMgMCAwIDEtLjEzOS0uMDI1LjEzLjEzIDAgMCAxLS4wMjYtLjEzOGMuNDI2LTEuMDMzLjcxOS0yLjM2OS44MS0zLjg1NmEuMjUuMjUgMCAwIDEgLjI0OS0uMjM1em0tNy4zNjQgNC4wOTFxLjAxLjAyNC4wMS4wNWEuMTI2LjEyNiAwIDAgMS0uMTc2LjExNCA1LjU1IDUuNTUgMCAwIDEtMy4wODEtMy45NjEuMjUuMjUgMCAwIDEgLjA1NC0uMjA0LjI1LjI1IDAgMCAxIC4xOTEtLjA4OGMuNDk1LS4wMDIgMS40ODgtLjAwMiAxLjk0Mi0uMDAyYS4yNS4yNSAwIDAgMSAuMjQ5LjIzNWMuMDkxIDEuNDg3LjM4NCAyLjgyMy44MTEgMy44NTZtLjY5NC0zLjgyNWEuMjUuMjUgMCAwIDEgLjA2Ni0uMTg3LjI1LjI1IDAgMCAxIC4xODMtLjA3OGwyLjQ3Ny0uMDAxYS4yNS4yNSAwIDAgMSAuMjQ5LjI1di4wMTZjLS4xMDcgMS41ODMtLjQ2MSAyLjk2Mi0uOTk3IDMuODcycS0uMTY2LjI5Ny0uNDE0LjUzMWEuMTI2LjEyNiAwIDAgMS0uMTU0IDAgMi4yIDIuMiAwIDAgMS0uNDE0LS41MzFjLS41MzYtLjkxLS44OS0yLjI4OS0uOTk2LTMuODcybTIuOTc1LTIuMDMydi4wMTZhLjI1LjI1IDAgMCAxLS4yNDkuMjVoLTIuNDc3YS4yNS4yNSAwIDAgMS0uMjUtLjI1bC4wMDEtLjAxNmMuMTA2LTEuNTgzLjQ2LTIuOTYxLjk5Ni0zLjg3Mi4xMjctLjIxNC4yNzItLjQwOC40MTQtLjUzYS4xMjYuMTI2IDAgMCAxIC4xNTQgMGMuMTQyLjEyMi4yODguMzE2LjQxNC41My41MzYuOTExLjg5IDIuMjg5Ljk5NyAzLjg3MiIgc3R5bGU9ImZpbGw6IzA4OTFiMiIvPjxwYXRoIGQ9Ik0yMy43NzQgMTMuMzMzYy4wOS4wNS4xNC4xNDkuMTI4LjI1QzIzLjEyNCAxOS40NTkgMTguMDkxIDI0IDEyLjAwNSAyNCA1Ljg5MSAyNCAuODQgMTkuNDE5LjA5OCAxMy41MDVsLS4wMDEtLjAyOGEuMjUuMjUgMCAwIDEgLjI0OC0uMjQ4LjI0LjI0IDAgMCAxIC4xMjUuMDM1Yy41NC4zMTIgMS40MzguODM1IDEuNzY4IDEuMDI4YS4yNS4yNSAwIDAgMCAuMjUyLS4wMDFsMS43NzctMS4wNDRhLjI1LjI1IDAgMCAxIC4zNzMuMTcyIDcuNTMgNy41MyAwIDAgMCA3LjM2NSA2LjA4MSA3LjUzIDcuNTMgMCAwIDAgNy4zNTEtNi4wMDcuMjUuMjUgMCAwIDEgLjEyNi0uMTcxbDIuMDQyLTEuMTAzYS4yNS4yNSAwIDAgMSAuMjQuMDAxek0uMjI2IDEwLjY2N2EuMjUuMjUgMCAwIDEtLjEyOC0uMjVDLjg3NiA0LjU0MSA1LjkwOSAwIDExLjk5NSAwYzYuMTE0IDAgMTEuMTY1IDQuNTgxIDExLjkwNyAxMC40OTVsLjAwMS4wMjhhLjI1LjI1IDAgMCAxLS4yNDguMjQ4LjI0LjI0IDAgMCAxLS4xMjUtLjAzNSA1MTYgNTE2IDAgMCAxLTEuNzY4LTEuMDI4LjI1LjI1IDAgMCAwLS4yNTIuMDAxbC0xLjc3NyAxLjA0NGEuMjUuMjUgMCAwIDEtLjM3My0uMTcyQTcuNTMgNy41MyAwIDAgMCAxMS45OTUgNC41YTcuNTMgNy41MyAwIDAgMC03LjM1MSA2LjAwNy4yNS4yNSAwIDAgMS0uMTI2LjE3MWwtMi4wNDIgMS4xMDNhLjI1LjI1IDAgMCAxLS4yNDEtLjAwMXoiIHN0eWxlPSJmaWxsOiM0ZDdjMGYiLz48L3N2Zz5cbicsWWU9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQ4IDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTI1Ny41IDQ0NS4xbC0yMi4yIDIyLjJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwyMDEuNCA0NC43YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjIgMjIuMmM5LjUgOS41IDkuMyAyNS0uNCAzNC4zTDEzNi42IDIxNkg0MjRjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMTM2LjZsMTIwLjUgMTE0LjhjOS44IDkuMyAxMCAyNC44LjQgMzQuM3oiLz48L3N2Zz4nLFFlPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0xOTAuNSA2Ni45bDIyLjItMjIuMmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw0NDEgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0Ni42IDQ2Ny4zYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuMi0yMi4yYy05LjUtOS41LTkuMy0yNSAuNC0zNC4zTDMxMS40IDI5NkgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR2LTMyYzAtMTMuMyAxMC43LTI0IDI0LTI0aDI4Ny40TDE5MC45IDEwMS4yYy05LjgtOS4zLTEwLTI0LjgtLjQtMzQuM3oiLz48L3N2Zz4nO3ZhciBaZTtmdW5jdGlvbiBKZShlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgaT10LnJlZ2lzdHJhdGlvbk9wdGlvbnM7dm9pZCAwPT09aSYmKGk9e30pLGRlbGV0ZSB0LnJlZ2lzdHJhdGlvbk9wdGlvbnM7dmFyIG89ZnVuY3Rpb24oZSl7Zm9yKHZhciBpPVtdLG89YXJndW1lbnRzLmxlbmd0aC0xO28tLSA+MDspaVtvXT1hcmd1bWVudHNbbysxXTt0JiZ0W2VdJiZ0W2VdLmFwcGx5KHQsaSl9OyJzZXJ2aWNlV29ya2VyImluIG5hdmlnYXRvciYmWmUudGhlbigoZnVuY3Rpb24oKXtCb29sZWFuKCJsb2NhbGhvc3QiPT09d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfHwiWzo6MV0iPT09d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfHx3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUubWF0Y2goL14xMjcoPzpcLig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykpezN9JC8pKT8oIWZ1bmN0aW9uKGUsdCxpKXtmZXRjaChlKS50aGVuKChmdW5jdGlvbihvKXs0MDQ9PT1vLnN0YXR1cz8odCgiZXJyb3IiLG5ldyBFcnJvcigiU2VydmljZSB3b3JrZXIgbm90IGZvdW5kIGF0ICIrZSkpLHR0KCkpOi0xPT09by5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikuaW5kZXhPZigiamF2YXNjcmlwdCIpPyh0KCJlcnJvciIsbmV3IEVycm9yKCJFeHBlY3RlZCAiK2UrIiB0byBoYXZlIGphdmFzY3JpcHQgY29udGVudC10eXBlLCBidXQgcmVjZWl2ZWQgIitvLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkpLHR0KCkpOmV0KGUsdCxpKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIFhlKHQsZSl9KSl9KGUsbyxpKSxuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeS50aGVuKChmdW5jdGlvbihlKXtvKCJyZWFkeSIsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBYZShvLGUpfSkpKTooZXQoZSxvLGkpLG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlYWR5LnRoZW4oKGZ1bmN0aW9uKGUpe28oInJlYWR5IixlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIFhlKG8sZSl9KSkpfSkpfWZ1bmN0aW9uIFhlKGUsdCl7bmF2aWdhdG9yLm9uTGluZXx8ZSgib2ZmbGluZSIpLGUoImVycm9yIix0KX1mdW5jdGlvbiBldChlLHQsaSl7bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoZSxpKS50aGVuKChmdW5jdGlvbihlKXt0KCJyZWdpc3RlcmVkIixlKSxlLndhaXRpbmc/dCgidXBkYXRlZCIsZSk6ZS5vbnVwZGF0ZWZvdW5kPWZ1bmN0aW9uKCl7dCgidXBkYXRlZm91bmQiLGUpO3ZhciBpPWUuaW5zdGFsbGluZztpLm9uc3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXsiaW5zdGFsbGVkIj09PWkuc3RhdGUmJihuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyP3QoInVwZGF0ZWQiLGUpOnQoImNhY2hlZCIsZSkpfX19KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBYZSh0LGUpfSkpfWZ1bmN0aW9uIHR0KCl7InNlcnZpY2VXb3JrZXIiaW4gbmF2aWdhdG9yJiZuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeS50aGVuKChmdW5jdGlvbihlKXtlLnVucmVnaXN0ZXIoKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIFhlKGVtaXQsZSl9KSl9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJihaZT0idW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2U/bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZSl9KSk6e3RoZW46ZnVuY3Rpb24oZSl7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixlKX19KTtjbGFzcyBpdHtjb25zdHJ1Y3Rvcih7bmFtZTplPSJzdy5qcyIsc2NvcGU6dD0iLi8iLGFwcE5hbWU6aT0iUmVwbGF5V2ViLnBhZ2UiLHJlcXVpcmVTdWJkb21haW5JZnJhbWU6bz0hMX09e30pe3RoaXMuZXJyb3JNc2c9bnVsbCx0aGlzLm5hbWU9ZSx0aGlzLnNjb3BlPXQsdGhpcy5hcHBOYW1lPWksdGhpcy5yZXF1aXJlU3ViZG9tYWluSWZyYW1lPW99c2V0QXBwTmFtZShlKXt0aGlzLmFwcE5hbWU9ZX1yZWdpc3Rlcigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7bGV0IGUsdDtjb25zdCBpPW5ldyBQcm9taXNlKCgoaSxvKT0+e2U9aSx0PW99KSk7dGhpcy5lcnJvck1zZz10aGlzLmdldFNXRXJyb3JNc2coKSx0aGlzLmVycm9yTXNnJiYoY29uc29sZS5lcnJvcih0aGlzLmVycm9yTXNnKSx0KHRoaXMuZXJyb3JNc2cpKTtjb25zdCBvPWU9Pntjb25zb2xlLmVycm9yKCJFcnJvciBkdXJpbmcgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uOiIsZSksdGhpcy5lcnJvck1zZz10aGlzLmdldENyb3NzT3JpZ2luSWZyYW1lTXNnKCksdGhpcy5lcnJvck1zZ3x8KHRoaXMuZXJyb3JNc2c9YCR7dGhpcy5hcHBOYW1lfSBjb3VsZCBub3QgYmUgbG9hZGVkIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yOlxuJHtlLnRvU3RyaW5nKCl9YCksdCh0aGlzLmVycm9yTXNnKX07cmV0dXJuIEplKHRoaXMuc2NvcGUrdGhpcy5uYW1lLHtyZWdpc3RyYXRpb25PcHRpb25zOntzY29wZTp0aGlzLnNjb3BlfSxyZWdpc3RlcmVkKCl7Y29uc29sZS5sb2coIlNlcnZpY2Ugd29ya2VyIGlzIHJlZ2lzdGVyZWQiKSxlKCl9LGVycm9yKGUpe28oZSl9fSksaX0pKX1nZXRDcm9zc09yaWdpbklmcmFtZU1zZygpe3JldHVybiB0aGlzLmlzQ3Jvc3NPcmlnaW5JZnJhbWUoKT9gICAgICAgU29ycnksIFNlcnZpY2UgV29ya2VycyBjYW4gbm90IGJlIHVzZWQgaW4gY3Jvc3Mtb3JpZ2luIGlmcmFtZXMuXG4gICAgICBUaGlzIHdlYiBhcmNoaXZlIGVtYmVkIGlzIGxvYWRlZCBmcm9tICR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0gYnV0IHRoZSB0b3AgcGFnZSBpcyBvbiBhIGRpZmZlcmVudCBvcmlnaW4uXG4gICAgICBUaGUgZW1iZWQgbXVzdCBiZSBsb2FkZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4gb3IgYSBzdWJkb21haW4uYDpudWxsfWlzQ3Jvc3NPcmlnaW5JZnJhbWUoKXtpZih3aW5kb3cucGFyZW50PT09d2luZG93KXJldHVybiExO3RyeXtyZXR1cm4iIj09PXdpbmRvdy50b3AubG9jYXRpb24uaHJlZn1jYXRjaChlKXtyZXR1cm4hMH19Z2V0U1dFcnJvck1zZygpe2lmKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyKXJldHVybiB0aGlzLnJlcXVpcmVTdWJkb21haW5JZnJhbWUmJiF0aGlzLmlzQ3Jvc3NPcmlnaW5JZnJhbWUoKT9gU29ycnksIGR1ZSB0byBzZWN1cml0eSBzZXR0aW5ncywgdGhpcyAke3RoaXMuYXBwTmFtZX0gZW1iZWQgb25seSBiZSB2aWV3ZWQgd2l0aGluIGEgc3ViZG9tYWluIGlmcmFtZS5gOm51bGw7Y29uc3QgZT10aGlzLmdldENyb3NzT3JpZ2luSWZyYW1lTXNnKCk7cmV0dXJuIGV8fCh3aW5kb3cuaXNTZWN1cmVDb250ZXh0PyJNb3pBcHBlYXJhbmNlImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZT8iU29ycnksIFNlcnZpY2UgV29ya2VycyBhcmUgZGlzYWJsZWQgaW4gRmlyZWZveCBpbiBQcml2YXRlIE1vZGUuIFBsZWFzZSB0cnkgbG9hZGluZyB0aGlzIHBhZ2UgaW4gcmVndWxhciBtb2RlIGluc3RlYWQuIjpgU29ycnksICR7dGhpcy5hcHBOYW1lfSB3b24ndCB3b3JrIGluIHRoaXMgYnJvd3NlciBhcyBTZXJ2aWNlIFdvcmtlcnMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyB3aW5kb3cuXG4gIFBsZWFzZSB0cnkgYSBkaWZmZXJlbnQgYnJvd3Nlci5gOmBcbiAgICAgIFNvcnJ5LCB0aGUgJHt0aGlzLmFwcE5hbWV9IHN5c3RlbSBtdXN0IGJlIGxvYWRlZCBmcm9tIGFuIEhUVFBTIFVSTCAob3IgbG9jYWxob3N0KSwgYnV0IHdhcyBsb2FkZWQgZnJvbTogJHt3aW5kb3cubG9jYXRpb24uaG9zdH0uXG4gICAgICBQbGVhc2UgdHJ5IGxvYWRpbmcgdGhpcyBwYWdlIGZyb20gYW4gSFRUUFMgVVJMYCl9cmVuZGVyRXJyb3JSZXBvcnQoZT0iIil7Y29uc3QgdD10aGlzLmVycm9yTXNnfHxlO3JldHVybiB0P1FgCiAgICAgIDxzZWN0aW9uIGNsYXNzPSJpcy1mdWxsd2lkdGgiPgogICAgICAgIDxkaXYgY2xhc3M9Imhhcy10ZXh0LWNlbnRlcmVkIj4KICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgIHN0eWxlPSJtYXJnaW46IDFlbTtmbGV4LWdyb3c6IDE7IgogICAgICAgICAgICBpZD0id3Jsb2dvIgogICAgICAgICAgICBzaXplPSIyLjVyZW0iCiAgICAgICAgICAgIC5zdmc9JHtLZX0KICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUtd3JhcDsgdGV4dC1hbGlnbjogY2VudGVyIj4ke3R9PC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIGA6IiJ9fWZ1bmN0aW9uIG90KCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyfHwoeWllbGQgbmV3IFByb21pc2UoKGU9PntuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJjb250cm9sbGVyY2hhbmdlIiwoKCk9PntlKCl9KSl9KSkpfSkpfQovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMjAgR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqLwpjb25zdHtJOm50fT1mZSxydD0oZSx0KT0+e2NvbnN0IGk9ZS5fJEFOO2lmKHZvaWQgMD09PWkpcmV0dXJuITE7Zm9yKGNvbnN0IGUgb2YgaSllLl8kQU8/Lih0LCExKSxydChlLHQpO3JldHVybiEwfSxzdD1lPT57bGV0IHQsaTtkb3tpZih2b2lkIDA9PT0odD1lLl8kQU0pKWJyZWFrO2k9dC5fJEFOLGkuZGVsZXRlKGUpLGU9dH13aGlsZSgwPT09aT8uc2l6ZSl9LGF0PWU9Pntmb3IobGV0IHQ7dD1lLl8kQU07ZT10KXtsZXQgaT10Ll8kQU47aWYodm9pZCAwPT09aSl0Ll8kQU49aT1uZXcgU2V0O2Vsc2UgaWYoaS5oYXMoZSkpYnJlYWs7aS5hZGQoZSksZHQodCl9fTtmdW5jdGlvbiBsdChlKXt2b2lkIDAhPT10aGlzLl8kQU4/KHN0KHRoaXMpLHRoaXMuXyRBTT1lLGF0KHRoaXMpKTp0aGlzLl8kQU09ZX1mdW5jdGlvbiBjdChlLHQ9ITEsaT0wKXtjb25zdCBvPXRoaXMuXyRBSCxuPXRoaXMuXyRBTjtpZih2b2lkIDAhPT1uJiYwIT09bi5zaXplKWlmKHQpaWYoQXJyYXkuaXNBcnJheShvKSlmb3IobGV0IGU9aTtlPG8ubGVuZ3RoO2UrKylydChvW2VdLCExKSxzdChvW2VdKTtlbHNlIG51bGwhPW8mJihydChvLCExKSxzdChvKSk7ZWxzZSBydCh0aGlzLGUpfWNvbnN0IGR0PWU9PntlLnR5cGU9PV9lJiYoZS5fJEFQPz89Y3QsZS5fJEFRPz89bHQpfTtjbGFzcyBodCBleHRlbmRzIElle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQoZSx0LGkpe3N1cGVyLl8kQVQoZSx0LGkpLGF0KHRoaXMpLHRoaXMuaXNDb25uZWN0ZWQ9ZS5fJEFVfV8kQU8oZSx0PSEwKXtlIT09dGhpcy5pc0Nvbm5lY3RlZCYmKHRoaXMuaXNDb25uZWN0ZWQ9ZSxlP3RoaXMucmVjb25uZWN0ZWQ/LigpOnRoaXMuZGlzY29ubmVjdGVkPy4oKSksdCYmKHJ0KHRoaXMsZSksc3QodGhpcykpfXNldFZhbHVlKGUpe2lmKChlPT52b2lkIDA9PT1lLnN0cmluZ3MpKHRoaXMuXyRDdCkpdGhpcy5fJEN0Ll8kQUkoZSx0aGlzKTtlbHNle2NvbnN0IHQ9Wy4uLnRoaXMuXyRDdC5fJEFIXTt0W3RoaXMuXyRDaV09ZSx0aGlzLl8kQ3QuXyRBSSh0LHRoaXMsMCl9fWRpc2Nvbm5lY3RlZCgpe31yZWNvbm5lY3RlZCgpe319Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNvbnN0IHV0PSgpPT5uZXcgZnQ7Y2xhc3MgZnR7fWNvbnN0IHB0PW5ldyBXZWFrTWFwLG10PUNlKGNsYXNzIGV4dGVuZHMgaHR7cmVuZGVyKGUpe3JldHVybiBYfXVwZGF0ZShlLFt0XSl7Y29uc3QgaT10IT09dGhpcy5ZO3JldHVybiBpJiZ2b2lkIDAhPT10aGlzLlkmJnRoaXMucnQodm9pZCAwKSwoaXx8dGhpcy5sdCE9PXRoaXMuY3QpJiYodGhpcy5ZPXQsdGhpcy5odD1lLm9wdGlvbnM/Lmhvc3QsdGhpcy5ydCh0aGlzLmN0PWUuZWxlbWVudCkpLFh9cnQoZSl7aWYodGhpcy5pc0Nvbm5lY3RlZHx8KGU9dm9pZCAwKSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5ZKXtjb25zdCB0PXRoaXMuaHQ/P2dsb2JhbFRoaXM7bGV0IGk9cHQuZ2V0KHQpO3ZvaWQgMD09PWkmJihpPW5ldyBXZWFrTWFwLHB0LnNldCh0LGkpKSx2b2lkIDAhPT1pLmdldCh0aGlzLlkpJiZ0aGlzLlkuY2FsbCh0aGlzLmh0LHZvaWQgMCksaS5zZXQodGhpcy5ZLGUpLHZvaWQgMCE9PWUmJnRoaXMuWS5jYWxsKHRoaXMuaHQsZSl9ZWxzZSB0aGlzLlkudmFsdWU9ZX1nZXQgbHQoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5ZP3B0LmdldCh0aGlzLmh0Pz9nbG9iYWxUaGlzKT8uZ2V0KHRoaXMuWSk6dGhpcy5ZPy52YWx1ZX1kaXNjb25uZWN0ZWQoKXt0aGlzLmx0PT09dGhpcy5jdCYmdGhpcy5ydCh2b2lkIDApfXJlY29ubmVjdGVkKCl7dGhpcy5ydCh0aGlzLmN0KX19KSxidD0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik05LjAxNCA4LjVjLS4wNDggMS0uMjQgMS44Ni0uNDk3IDIuNDctLjE1LjM1Ny0uMzA0LjU4Mi0uNDI0LjcwMWExIDEgMCAwIDEtLjA3LjA2MiAxIDEgMCAwIDEtLjA3LS4wNjJjLS4xMi0uMTItLjI3My0uMzQzLS40MjQtLjctLjI1Ny0uNjEtLjQ0OC0xLjQ3Mi0uNDk3LTIuNDcxek0xMC4wMTggOC41Yy0uMDUyIDEuMTgzLS4yODggMi4yMzYtLjYzOCAyLjk5OUEzLjc2IDMuNzYgMCAwIDAgMTEuNzUgOC41ek02LjY2NiAxMS40OTlBMy43NiAzLjc2IDAgMCAxIDQuMjk2IDguNWgxLjczMmMuMDUzIDEuMTgzLjI4OCAyLjIzNi42MzggMi45OTlNNy4wMzIgNy41Yy4wNDktMSAuMjQtMS44Ni40OTctMi40Ny4xNS0uMzU3LjMwNS0uNTgxLjQyNC0uNzAxYTEgMSAwIDAgMSAuMDctLjA2MnEuMDI2LjAxOC4wNy4wNjJjLjEyLjEyLjI3NC4zNDQuNDI0LjcuMjU4LjYxLjQ0OSAxLjQ3Mi40OTcgMi40NzF6TTYuMDI4IDcuNUg0LjI5NWEzLjc2IDMuNzYgMCAwIDEgMi4zNzEtMi45OTljLS4zNS43NjMtLjU4NSAxLjgxNi0uNjM4IDIuOTk5TTkuMzggNC41MDFBMy43NiAzLjc2IDAgMCAxIDExLjc1IDcuNWgtMS43MzNjLS4wNTItMS4xODMtLjI4OC0yLjIzNi0uNjM4LTIuOTk5Ii8+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMTIuOTIxIDkuMDc4QTUuMDEgNS4wMSAwIDAgMSA4LjAyMyAxM2E1LjAxIDUuMDEgMCAwIDEtNC45ODEtNC40MmwtMS41MzguOTItMS40OC0uODg2Qy4zMzcgMTIuNzQ1IDMuNzk4IDE2IDguMDIzIDE2YzQuMTA0IDAgNy40ODktMy4wNzMgNy45NjUtNy4wMzhMMTQuNTQyIDh6TTE2LjAyMyA3LjM4NkMxNS43MSAzLjI1NSAxMi4yNDcgMCA4LjAyMyAwIDMuOTIgMCAuNTMzIDMuMDczLjA1NyA3LjAzOEwxLjUwNCA4bDEuNjIxLTEuMDc4QTUuMDEgNS4wMSAwIDAgMSA4LjAyMyAzYTUuMDEgNS4wMSAwIDAgMSA0Ljk4MSA0LjQybDEuNTM4LS45MnoiLz48L3N2Zz5cbic7ZnVuY3Rpb24gZ3QoZSx0KXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGk9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGUpLG89eWllbGQgY3J5cHRvLnN1YnRsZS5kaWdlc3QodCxpKSxuPUFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkobykpLm1hcCgoZT0+ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKSkuam9pbigiIik7cmV0dXJuIG59KSl9ZnVuY3Rpb24gdnQoZSl7aWYoIWUpcmV0dXJuIiI7ZS5sZW5ndGg8MTQmJihlKz0iMDAwMDAxMDEwMDAwMDAiLnN1YnN0cihlLmxlbmd0aCkpO2NvbnN0IHQ9ZS5zdWJzdHJpbmcoMCw0KSsiLSIrZS5zdWJzdHJpbmcoNCw2KSsiLSIrZS5zdWJzdHJpbmcoNiw4KSsiVCIrZS5zdWJzdHJpbmcoOCwxMCkrIjoiK2Uuc3Vic3RyaW5nKDEwLDEyKSsiOiIrZS5zdWJzdHJpbmcoMTIsMTQpKyItMDA6MDAiO3JldHVybiBuZXcgRGF0ZSh0KX1mdW5jdGlvbiB3dChlKXtsZXQgdD1udWxsO3Q9bmV3IERhdGUoZSk7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiBEYXRlP3h0KHQudG9JU09TdHJpbmcoKSk6IiJ9ZnVuY3Rpb24geXQoZSl7bGV0IHQ9bnVsbDt0cnl7dD1uZXcgRGF0ZShlLnRzfHxlLmRhdGUpfWNhdGNoKGUpe31jb25zdCBpPXQmJnQgaW5zdGFuY2VvZiBEYXRlP3h0KHQudG9JU09TdHJpbmcoKSk6IiI7cmV0dXJue2RhdGU6dCx0aW1lc3RhbXA6aX19ZnVuY3Rpb24geHQoZSl7cmV0dXJuIGUucmVwbGFjZSgvWy06VF0vZywiIikuc2xpY2UoMCwxNCl9ZnVuY3Rpb24ga3QoZSx0LGksbyl7Y29uc3Qgbj1uZXcgVVJMU2VhcmNoUGFyYW1zO3JldHVybiBuLnNldCgidmlldyIsZSksbi5zZXQoInVybCIsdCksbi5zZXQoInRzIixpKSxvJiZuLnNldCgid2Fjemhhc2giLG8pLCIjIituLnRvU3RyaW5nKCl9ZnVuY3Rpb24gU3QoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt0cnl7bmV3IFVSTChlKX1jYXRjaCh0KXtlPW5ldyBVUkwoZSxkb2N1bWVudC5iYXNlVVJJKS5ocmVmfWNvbnN0IHQ9ImlkLSIrKHlpZWxkIGd0KGUsIlNIQS0yNTYiKSkuc2xpY2UoMCwxMik7cmV0dXJue3VybDplLGl0ZW06dH19KSl9ZnVuY3Rpb24gJHQoZSl7bGV0IHQ9ZS5pbmRleE9mKCI6Ly8iKSxpPTAsbz0iIixuPSIiLHI9IiI7cmV0dXJuIHQ+PTA/KG89ZS5zbGljZSgwLHQpLHQrPTMpOih0KyssZS5zdGFydHNXaXRoKCIvLyIpJiYodCs9MikpLGk9ZS5pbmRleE9mKCIvIix0KSxpPjA/KG49ZS5zbGljZSh0LGkpLHI9ZS5zbGljZShpKSk6KG49ZS5zbGljZSh0KSxyPSIiKSx7c2NoZW1lOm8saG9zdDpuLHBhdGg6cn19Y29uc3QgenQ9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTIxNiAwaDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0djE2OGg4Ny43YzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDI2OS43IDM3OC4zYy03LjUgNy41LTE5LjggNy41LTI3LjMgMEw5MC4xIDIyNi4xYy0xMi42LTEyLjYtMy43LTM0LjEgMTQuMS0zNC4xSDE5MlYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMjk2IDM3NnYxMTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxNDYuN2w0OSA0OWMyMC4xIDIwLjEgNTIuNSAyMC4xIDcyLjYgMGw0OS00OUg0ODhjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bS0xMjQgODhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHptNjQgMGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIweiIvPjwvc3ZnPicsX3Q9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHptLTYgNDAwSDU0YTYgNiAwIDAgMS02LTZWODZhNiA2IDAgMCAxIDYtNmg0MDRhNiA2IDAgMCAxIDYgNnYzNDBhNiA2IDAgMCAxLTYgNnptLTQyLTkydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0wLTk2djI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0wLTk2djI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjA0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyem0tMjUyIDEyYzAgMTkuODgyLTE2LjExOCAzNi0zNiAzNnMtMzYtMTYuMTE4LTM2LTM2IDE2LjExOC0zNiAzNi0zNiAzNiAxNi4xMTggMzYgMzZ6bTAgOTZjMCAxOS44ODItMTYuMTE4IDM2LTM2IDM2cy0zNi0xNi4xMTgtMzYtMzYgMTYuMTE4LTM2IDM2LTM2IDM2IDE2LjExOCAzNiAzNnptMCA5NmMwIDE5Ljg4Mi0xNi4xMTggMzYtMzYgMzZzLTM2LTE2LjExOC0zNi0zNiAxNi4xMTgtMzYgMzYtMzYgMzYgMTYuMTE4IDM2IDM2eiIvPjwvc3ZnPicsQ3Q9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTc2IDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTUyOCAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHYzMjBjMCAyNi41IDIxLjUgNDggNDggNDhoMTkybC0xNiA0OGgtNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMjcyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0aC03MmwtMTYtNDhoMTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMTYgMzUySDY0VjY0aDQ0OHYyODh6Ii8+PC9zdmc+JyxJdD0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNMjAwIDI4OEg4OGMtMjEuNCAwLTMyLjEgMjUuOC0xNyA0MWwzMi45IDMxLTk5LjIgOTkuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMjUuNCAyNS40YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwTDE1MiA0MDhsMzEuMSAzM2MxNS4xIDE1LjEgNDAuOSA0LjQgNDAuOS0xN1YzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTExMi02NGgxMTJjMjEuNCAwIDMyLjEtMjUuOSAxNy00MWwtMzMtMzEgOTkuMy05OS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQ4MS45IDQuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMzYwIDEwNGwtMzEuMS0zM0MzMTMuOCA1NS45IDI4OCA2Ni42IDI4OCA4OHYxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjR6bTk2IDEzNmwzMy0zMS4xYzE1LjEtMTUuMSA0LjQtNDAuOS0xNy00MC45SDMxMmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTEyYzAgMjEuNCAyNS45IDMyLjEgNDEgMTdsMzEtMzIuOSA5OS4zIDk5LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMjUuNC0yNS40YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQwOCAzNjB6TTE4MyA3MS4xTDE1MiAxMDQgNTIuNyA0LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDQuNyAzMC4xYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNkwxMDQgMTUybC0zMyAzMS4xQzU1LjkgMTk4LjIgNjYuNiAyMjQgODggMjI0aDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY4OGMwLTIxLjMtMjUuOS0zMi00MS0xNi45eiIvPjwvc3ZnPic7dmFyIEx0PV9fd2VicGFja19yZXF1aXJlX18oNDMxKSxFdD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oTHQpO2NvbnN0IEF0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFsuLi5uYXZpZ2F0b3IubGFuZ3VhZ2VzXSx7bW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCIseWVhcjoibnVtZXJpYyIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQifSksVHQ9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoWy4uLm5hdmlnYXRvci5sYW5ndWFnZXNdLHttb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iix5ZWFyOiJudW1lcmljIn0pLFB0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFsuLi5uYXZpZ2F0b3IubGFuZ3VhZ2VzXSx7aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQifSk7Y2xhc3MgRHQgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2xsSW5mbz1udWxsLHRoaXMudHM9bnVsbCx0aGlzLnVybD1udWxsLHRoaXMuYWN0aXZlPSExfWdldCByZW5kZXJSb290KCl7cmV0dXJuIHRoaXN9c3RhdGljIGdldCBlbWJlZFN0eWxlcygpe3JldHVybiBoYAogICAgICByd3AtZW1iZWQtcmVjZWlwdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAuaWNvbiB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wOwogICAgICB9CgogICAgICAjZW1iZWQtZHJvcGRvd24gewogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA1MHB4KTsKICAgICAgICBwYWRkaW5nLXRvcDogMDsKICAgICAgICBtYXJnaW4tdG9wOiAtMC41cmVtOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgbGluZWFyOwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKDApOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC4xNSwgMCwgMC4xLCAxKTsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCA4cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkpOwogICAgICB9CgogICAgICAuZHJvcGRvd24uaXMtYWN0aXZlICNlbWJlZC1kcm9wZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICBidXR0b24uZW1iZWQtaW5mbyB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7CiAgICAgICAgaGVpZ2h0OiA0MnB4OwogICAgICAgIGJvcmRlci1jb2xvcjogI2QxZDVkYTsKICAgICAgICBib3JkZXItd2lkdGg6IDFweDsKICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkpOwogICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDUwbXM7CiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICBidXR0b24uZW1iZWQtaW5mbzphY3RpdmUgewogICAgICAgIGNvbG9yOiBpbml0aWFsOwogICAgICB9CgogICAgICBidXR0b24uZW1iZWQtaW5mbzpob3ZlciB7CiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMikpOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMSk7CiAgICAgIH0KCiAgICAgIGJ1dHRvbi5lbWJlZC1pbmZvOmhvdmVyOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMjVyZW0pOwogICAgICB9CgogICAgICAuZW1iZWQtaW5mby1idXR0b250ZXh0IHsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIHRleHQtYWxpZ246IHN0YXJ0OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLmVtYmVkLWluZm8tZHJvcCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHBhZGRpbmc6IDFyZW07CiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07CiAgICAgICAgbWF4LXdpZHRoOiAzOHJlbTsKICAgICAgICBtYXgtaGVpZ2h0OiA0MnJlbTsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7CiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDsKICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmVtYmVkLWluZm8tZHJvcCA+IHAgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWRyb3AgPiBoMiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7CiAgICAgICAgY29sb3I6ICMyNDI5MmU7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWRyb3Atc3RhdHNjb250YWluZXIgPiBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAjMzk0MTQ2OwogICAgICB9CgogICAgICAuZW1iZWQtaW5mby1kcm9wLXN0YXRzY29udGFpbmVyID4gcCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiBibGFjazsKICAgICAgfQoKICAgICAgLmVtYmVkLWluZm8tZHJvcCBhIHsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWRyb3AgLnNob3ctaGFzaCB7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5lbWJlZC1pbmZvLWRyb3AgLnNob3cta2V5IHsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHdoaXRlc3BhY2U6IG5vd3JhcDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CgogICAgICAuZW1iZWQtbG9nbyB7CiAgICAgICAgbWFyZ2luOiAwLjVyZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDAuNXJlbTsKICAgICAgfQogICAgYH1yZW5kZXIoKXt2YXIgZSx0LGksbztjb25zdHtudW1WYWxpZDpuPTAsbnVtSW52YWxpZDpyPTAsZG9tYWluOnMsY2VydEZpbmdlcnByaW50OmEsZGF0YXBhY2thZ2VIYXNoOmwscHVibGljS2V5OmMsc29mdHdhcmU6ZH09bnVsbCE9PSh0PW51bGw9PT0oZT10aGlzLmNvbGxJbmZvKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS52ZXJpZnkpJiZ2b2lkIDAhPT10P3Q6e30saD1udWxsPT09KGk9dGhpcy5jb2xsSW5mbyl8fHZvaWQgMD09PWk/dm9pZCAwOmkuc291cmNlVXJsLHU9YT9gaHR0cHM6Ly9jcnQuc2gvP3E9JHthfWA6IiIsZj10aGlzLnRzP0F0LmZvcm1hdCh2dCh0aGlzLnRzKSk6IiI7cmV0dXJuIFFgCiAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duIG1iLTQgJHt0aGlzLmFjdGl2ZT8iaXMtYWN0aXZlIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLXRyaWdnZXIgZW1iZWQtaW5mby1jb250YWluZXIiPgogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0iZW1iZWQtaW5mbyBpcy1zbWFsbCBpcy1yb3VuZGVkIG10LTQiCiAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9InRydWUiCiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9ImVtYmVkLWRyb3Bkb3duIgogICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkVtYmVkRHJvcH0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgY2xhc3M9ImVtYmVkLWxvZ28iCiAgICAgICAgICAgICAgc2l6ZT0iMS41cmVtIgogICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgIC5zdmc9JHtLZX0KICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtYmVkLWluZm8tYnV0dG9udGV4dCI+CiAgICAgICAgICAgICAgVGhpcyBlbWJlZCBpcyBwYXJ0IG9mIGEgd2ViIGFyY2hpdmUuIENsaWNrIGhlcmUgdG8gbGVhcm4gbW9yZS4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1zbWFsbCBtci00IG1sLTIiPgogICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICB0aXRsZT0iVG9nZ2xlIgogICAgICAgICAgICAgICAgLnN2Zz0iJHt0aGlzLmFjdGl2ZT8nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2hldnJvbi1kb3VibGUtdXAiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTcuNjQ2IDIuNjQ2YS41LjUgMCAwIDEgLjcwOCAwbDYgNmEuNS41IDAgMCAxLS43MDguNzA4TDggMy43MDcgMi4zNTQgOS4zNTRhLjUuNSAwIDEgMS0uNzA4LS43MDhsNi02eiIvPlxuICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjY0NiA2LjY0NmEuNS41IDAgMCAxIC43MDggMGw2IDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDcuNzA3bC01LjY0NiA1LjY0N2EuNS41IDAgMCAxLS43MDgtLjcwOGw2LTZ6Ii8+XG48L3N2Zz4nOic8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1jaGV2cm9uLWRvdWJsZS1kb3duIiB2aWV3Qm94PSIwIDAgMTYgMTYiPlxuICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjY0NiA2LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDEyLjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHoiLz5cbiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMS42NDYgMi42NDZhLjUuNSAwIDAgMSAuNzA4IDBMOCA4LjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHoiLz5cbjwvc3ZnPid9IgogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLW1lbnUgZW1iZWQtaW5mby1jb250YWluZXIiCiAgICAgICAgICBpZD0iZW1iZWQtZHJvcGRvd24iCiAgICAgICAgICByb2xlPSJtZW51IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQgZW1iZWQtaW5mby1kcm9wIj4KICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTQiPgogICAgICAgICAgICAgIEV2ZW4gaWYgdGhlIG9yaWdpbmFsIHBhZ2UgZ29lcyBvZmZsaW5lIG9yIGlzIGNoYW5nZWQsIHRoZSBjb250ZW50CiAgICAgICAgICAgICAgYmVsb3cgd2lsbCByZW1haW4gdW5jaGFuZ2VkIGFzIGl0IGlzIGxvYWRlZCBmcm9tIGEgd2ViIGFyY2hpdmUuCiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPGhyIGNsYXNzPSJkcm9wZG93bi1kaXZpZGVyIiAvPgogICAgICAgICAgICA8aDIgY2xhc3M9Im10LTQiPkdldCBBIENvcHkhPC9oMj4KICAgICAgICAgICAgPHAgY2xhc3M9Im10LTIiPgogICAgICAgICAgICAgIEFmdGVyIGRvd25sb2FkaW5nLCB0aGlzIHdlYiBhcmNoaXZlIGNhbiBiZSBsb2FkZWQgYW5kIHZpZXdlZAogICAgICAgICAgICAgIGRpcmVjdGx5IGluIHlvdXIgYnJvd3NlciB2aWEKICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgc3R5bGU9IndoaXRlLXNwYWNlOiBub3dyYXA7IgogICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3JlcGxheXdlYi5wYWdlIgogICAgICAgICAgICAgICAgPlJlcGxheVdlYi5wYWdlPC9hCiAgICAgICAgICAgICAgPi4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAke2g/UWAKICAgICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgICBocmVmPSIke2h9IgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJidXR0b24gaXMtcHJpbWFyeSBtdC00IgogICAgICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1zbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgIC5zdmc9IiR7enR9IgogICAgICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+RG93bmxvYWQgQXJjaGl2ZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIgbXQtNCIgLz4KICAgICAgICAgICAgICAgIGA6WH0KICAgICAgICAgICAgPGgyIGNsYXNzPSJtdC00Ij5UZWNobmljYWwgSW5mb3JtYXRpb248L2gyPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbWJlZC1pbmZvLWRyb3Atc3RhdHNjb250YWluZXIgbWItNCI+CiAgICAgICAgICAgICAgJHt0aGlzLnVybD9RYAogICAgICAgICAgICAgICAgICAgIDxoMz5PcmlnaW5hbCBVUkw6PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIke3RoaXMudXJsfSI+JHt0aGlzLnVybH08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICBgOlh9CiAgICAgICAgICAgICAgPGgzIGNsYXNzPSJtdC0yIj5BcmNoaXZlZCBPbjo8L2gzPgogICAgICAgICAgICAgIDxwPiR7Zn08L3A+CiAgICAgICAgICAgICAgJHtzP1FgCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJtdC0yIj5PYnNlcnZlZCBCeTo8L2gzPgogICAgICAgICAgICAgICAgICAgIDxwPiR7c308L3A+CiAgICAgICAgICAgICAgICAgICAgJHt1P1FgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIke3V9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPlZpZXcgQ2VydGlmaWNhdGU8L2EKICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5gOiIifQogICAgICAgICAgICAgICAgICBgOmQ/UWAgPGgzIGNsYXNzPSJtdC0yIj5DcmVhdGVkIFdpdGg6PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cD4ke2R9PC9wPmA6IiJ9CiAgICAgICAgICAgICAgJHshcyYmYz9RYCA8aDMgY2xhc3M9Im10LTIiPk9ic2VydmVyIFB1YmxpYyBLZXk6PC9oMz4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2hvdy1rZXkiPiR7Y308L3A+YDoiIn0KICAgICAgICAgICAgICA8aDMgY2xhc3M9Im10LTIiPlZhbGlkYXRpb246PC9oMz4KICAgICAgICAgICAgICAke24+MHx8cj4wP1FgIDxwPgogICAgICAgICAgICAgICAgICAgICR7bn0gaGFzaGVzCiAgICAgICAgICAgICAgICAgICAgdmVyaWZpZWQke3I/UWAsICR7cn0gaW52YWxpZGA6IiJ9CiAgICAgICAgICAgICAgICAgIDwvcD5gOlFgIDxwPk5vdCBBdmFpbGFibGU8L3A+IGB9CiAgICAgICAgICAgICAgPGgzIGNsYXNzPSJtdC0yIj5QYWNrYWdlIEhhc2g6PC9oMz4KICAgICAgICAgICAgICA8cCBjbGFzcz0ic2hvdy1oYXNoIj4ke2x9PC9wPgogICAgICAgICAgICAgICR7bnVsbCE9KG51bGw9PT0obz10aGlzLmNvbGxJbmZvKXx8dm9pZCAwPT09bz92b2lkIDA6by5zaXplKT9RYAogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0ibXQtMiI+U2l6ZTwvaDM+CiAgICAgICAgICAgICAgICAgICAgPHA+JHtFdCgpKE51bWJlcih0aGlzLmNvbGxJbmZvLnNpemV8fDApKX08L3A+CiAgICAgICAgICAgICAgICAgIGA6WH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7aD9RYGA6IiJ9CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0iaXMtc2l6ZS03IGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtYWxpZ24taXRlbXMtY2VudGVyIgogICAgICAgICAgICAgIHN0eWxlPSJtYXJnaW4tdG9wOiA0MHB4IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3dlYnJlY29yZGVyLm5ldC8iCiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IldlYnJlY29yZGVyIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgICAgIHNpemU9IiIKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjFyZW0iCiAgICAgICAgICAgICAgICAgICAgd2lkdGg9IjEwcmVtIgogICAgICAgICAgICAgICAgICAgIC5zdmc9JHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMTQyIDk2Ij48cGF0aCBkPSJNMjkuNDM4IDI0LjQzOEMyMi40NzQgMjkuOTM1IDE4IDM4LjQ0OSAxOCA0OGMwIDE2LjU1NyAxMy40NDMgMzAgMzAgMzBoMjZjMTYuNTU3IDAgMzAtMTMuNDQzIDMwLTMwdi03YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY3YzAgMjYuNDkyLTIxLjUwOCA0OC00OCA0OEg0OEMyMS41MDggOTYgMCA3NC40OTIgMCA0OGMwLTE0LjUxNyA2LjQ1OC0yNy41MzkgMTYuNjU3LTM2LjM0M2wtOS45NS05Ljk1QTEuMDAyIDEuMDAyIDAgMCAxIDcuNDE0IDBINDBhMSAxIDAgMCAxIDEgMXYzMi41ODZhMS4wMDIgMS4wMDIgMCAwIDEtMS43MDcuNzA3eiIgZmlsbD0iIzA4OGVhZiIvPjxwYXRoIGQ9Ik0xNDQuNTYyIDcxLjU2MkMxNTEuNTI2IDY2LjA2NSAxNTYgNTcuNTUxIDE1NiA0OGMwLTE2LjU1Ny0xMy40NDMtMzAtMzAtMzBoLTI2Yy0xNi41NTcgMC0zMCAxMy40NDMtMzAgMzB2N2EyIDIgMCAwIDEtMiAySDU0YTIgMiAwIDAgMS0yLTJ2LTdjMC0yNi40OTIgMjEuNTA4LTQ4IDQ4LTQ4aDI2YzI2LjQ5MiAwIDQ4IDIxLjUwOCA0OCA0OCAwIDE0LjUxNy02LjQ1OCAyNy41MzktMTYuNjU3IDM2LjM0M2w5Ljk1IDkuOTVhMS4wMDIgMS4wMDIgMCAwIDEtLjcwNyAxLjcwN0gxMzRhMSAxIDAgMCAxLTEtMVY2Mi40MTRhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN3oiIGZpbGw9IiM0ZDdjMGYiLz48cGF0aCBkPSJNMjQwLjQ5NyA5NC42ODVoLTE2LjE3NUwyMTIuMzU1IDYuOTdWMS4zMTVoMjAuNjQ2bDYuODIyIDUzLjQ3N0wyNTQuNyAxNi4wNDRoOC41NDhsMTQuNjQ1IDM4LjAwOSA3LjA1My01Mi43MzhoMjAuMzg0VjYuOTdsLTExLjgzNiA4Ny43MTVoLTE2LjU3bC0xNy43NTMtNDMuMDAzLS4zMjktMS4wNTUtLjMyOSAxLjA1NXptMTM4LjM4NyAwaC01Ny43MzFWMS4zMTVoNTcuNzMxdjE4LjY3NGgtMzYuNTU5djIwLjUxNWgzMy41MzV2MTQuODZoLTMzLjUzNXYyMC42NDdoMzYuNTU5em02My40MzggMGgtNDUuMjM5VjEuMzE1aDQ1LjYzM3ExMS44MzYgMCAxOC4xNDggNS45MTggNi4zMTMgNS43ODYgNi4zMTMgMTUuOTEyIDAgOC40MTYtNS4zOTIgMTQuOTkyLTIuOTc1IDMuNzE5LTcuMjk2IDYuNTk2IDUuNTEgMi4zNzIgOS4wMDUgNi40MjMgNS43ODcgNi43MDcgNS43ODcgMTcuMDk2IDAgMTIuMjMtNi44MzkgMTkuMzMyLTYuODM3IDcuMTAxLTIwLjEyIDcuMTAxbS0yNC4wNjYtNDAuMTF2MjMuNjcyaDE5Ljk4OXE0LjczNCAwIDcuMTAyLTIuODk0IDIuNDk4LTMuMDI0IDIuNDk4LTguNjc5IDAtNS43ODYtMi40OTgtOC45NDMtMi0yLjYzLTUuNDI5LTMuMTU2em0wLTM3LjM0OHYyNC4xOThoMjEuMzI0YTIwLjcgMjAuNyAwIDAgMCA0LjMyLTUuNTI0IDE2LjQ2IDE2LjQ2IDAgMCAwIDEuOTczLTcuODlxMC00Ljg2Ni0yLjQ5OS03Ljc1OS0yLjM2Ny0zLjAyNS02LjU3NS0zLjAyNXptODkuOTI3IDQ2LjI5MXYzMS4xNjdoLTIxLjE3MlYxLjMxNWg0MS42ODdxMTQuMzM0IDAgMjEuNjk5IDcuMTAxIDcuNDk2IDcuMTAyIDcuNDk2IDE5LjcyNiAwIDEwLjY1My01LjY1NSAxOC42NzQtMy42NzcgNS4yNTQtOS41NyAxMC4wNDFsMTUuODgyIDMyLjgzMXY0Ljk5N2gtMjAuNzc4bC0xNi41MzctMzEuMTY3em0wLTQ1LjUwMnYzMC4zNzhoMTkuODQzYTE5LjcgMTkuNyAwIDAgMCA1LjkzMy02LjgzOHEyLjYzLTQuNzM0IDIuNjMtMTAuNzgzIDAtNi4xODEtMi44OTMtOS40NjktMi43NjItMy4yODgtOC4wMjItMy4yODh6bTEyNS45NzQgNzYuNjY5aC01Ny43MzJWMS4zMTVoNTcuNzMydjE4LjY3NGgtMzYuNTU5djIwLjUxNWgzMy41MzR2MTQuODZoLTMzLjUzNHYyMC42NDdoMzYuNTU5ek02ODguNzgzIDk2cS0xMy4xNTEgMC0yMi4yMjUtNC43MzQtOS4wNzQtNC44NjYtMTMuOTQtMTUuNTE4VDY0Ny43NTMgNDh0NC45OTctMjcuNzQ4IDE0LjIwMy0xNS4zODZRNjc2LjE1OCAwIDY4OS4wNDYgMHE1LjI2IDAgOS45OTQuNTI2IDQuNzM0LjUyNyA4LjgxMSAxLjcxbC0yLjg5MyAxOC4wMTZxLTYuMTgtMS4zMTUtMTMuNTQ1LTEuMzE1LTcuNDk2IDAtMTIuNDkzIDMuMDI1LTQuODY2IDMuMDI0LTcuNDk2IDkuNDY4LTIuNDk5IDYuMzEyLTIuNDk5IDE2LjU3dDIuNDk5IDE2LjcwMXEyLjQ5OSA2LjQ0NCA3LjM2NCA5LjQ2OSA0Ljg2NiAyLjg5MyAxMS45NjcgMi44OTMgNy40OTYgMCAxNC41OTgtMS40NDdsMi44OTMgMTguMTQ4YTY3IDY3IDAgMCAxLTkuMzM3IDEuNzFxLTQuNzM1LjUyNi0xMC4xMjYuNTI2bTY5LjA0NiAwcS0xMi4zNjEgMC0yMC43NzgtNC43MzQtOC4yODUtNC43MzQtMTIuNjI1LTE1LjI1NS00LjM0LTEwLjUyLTQuMzQtMjcuODggMC0xNy40OSA0LjM0LTI4LjAxMSA0LjM0LTEwLjY1MiAxMi42MjUtMTUuMzg2UTc0NS40NjcgMCA3NTcuODI5IDB0MjAuNTE1IDQuNzM0cTguMjg1IDQuNzM0IDEyLjYyNSAxNS4zODYgNC40NzEgMTAuNTIxIDQuNDcxIDI4LjAxMSAwIDE3LjIyOC00LjM0IDI3Ljc0OC00LjM0IDEwLjUyMS0xMi43NTYgMTUuMzg3UTc3MC4wNTkgOTYgNzU3LjgyOSA5Nm0wLTE2LjgzM3E1LjI2IDAgOC44MTEtMi40OTkgMy41NS0yLjYzIDUuNTIzLTkuMzM3IDIuMTA0LTYuODM3IDIuMTA0LTE5LjIgMC0xMi4yMy0yLjEwNC0xOS4wNjgtMS45NzItNi45Ny01LjUyMy05LjYtMy41NS0yLjc2Mi04LjgxMS0yLjYzLTUuNTIzLjEzMS05LjIwNiAyLjc2MS0zLjU1IDIuNS01LjUyMyA5LjMzNy0xLjg0IDYuODM5LTEuODQxIDE5LjIgMCAxMi4zNjMgMS45NzMgMTkuMiAxLjk3MiA2LjgzOSA1LjUyMyA5LjMzNyAzLjY4MiAyLjQ5OSA5LjA3NCAyLjQ5OW03NS4zOTItMTUuNjQ5djMxLjE2N2gtMjEuMTcyVjEuMzE1aDQxLjY4N3ExNC4zMzQgMCAyMS42OTkgNy4xMDEgNy40OTYgNy4xMDIgNy40OTYgMTkuNzI2IDAgMTAuNjUzLTUuNjU1IDE4LjY3NC0zLjY3NyA1LjI1NC05LjU3IDEwLjA0MWwxNS44ODIgMzIuODMxdjQuOTk3SDg2Mi44MWwtMTYuNTM3LTMxLjE2N3ptMC00NS41MDJ2MzAuMzc4aDE5Ljg0M2ExOS43IDE5LjcgMCAwIDAgNS45MzMtNi44MzhxMi42My00LjczNCAyLjYzLTEwLjc4MyAwLTYuMTgxLTIuODkzLTkuNDY5LTIuNzYzLTMuMjg4LTguMDIyLTMuMjg4em0xMDEuNTEzIDc2LjY2OWgtMzMuMjcxVjEuMzE1aDMzLjc5N3ExMS45NjggMCAyMC4yNTMgNC45OTcgOC40MTYgNC44NjYgMTIuNzU2IDE1LjM4NyA0LjQ3MSAxMC4zODkgNC40NzEgMjYuODI3IDAgMTYuMDQ0LTQuNDcxIDI2LjMwMS00LjM0IDEwLjI1OC0xMi43NTYgMTUuMTI0LTguNDE2IDQuNzM0LTIwLjc3OSA0LjczNG0tMTIuMDk4LTc2LjUzN3Y1OS43MDRoMTEuNzA0cTUuNzg1IDAgOS42LTMuMjg4IDMuODEzLTMuMjg3IDUuNjU1LTkuNzMxIDEuODQtNi41NzYgMS44NDEtMTYuMzA3IDAtMTQuOTkyLTQuMjA4LTIyLjYxOS00LjIwOS03Ljc2LTEyLjg4OC03Ljc1OXpNMTA0Ny4yIDk0LjY4NWgtNTcuNzM1VjEuMzE1aDU3LjczNXYxOC42NzRoLTM2LjU2djIwLjUxNWgzMy41M3YxNC44NmgtMzMuNTN2MjAuNjQ3aDM2LjU2em0zOS4zNy0zMS4xNjd2MzEuMTY3aC0yMS4xOFYxLjMxNWg0MS42OWM5LjU2IDAgMTYuNzkgMi4zNjcgMjEuNyA3LjEwMXE3LjUgNy4xMDIgNy41IDE5LjcyNmMwIDcuMTAyLTEuODkgMTMuMzI2LTUuNjYgMTguNjc0cS0zLjY3NSA1LjI1NC05LjU3IDEwLjA0MWwxNS44OCAzMi44MzF2NC45OTdoLTIwLjc3bC0xNi41NC0zMS4xNjd6bTAtNDUuNTAydjMwLjM3OGgxOS44NGExOS42NSAxOS42NSAwIDAgMCA1LjkzLTYuODM4YzEuNzYtMy4xNTYgMi42My02Ljc1MSAyLjYzLTEwLjc4MyAwLTQuMTIxLS45Ni03LjI3Ny0yLjg5LTkuNDY5LTEuODQtMi4xOTItNC41MS0zLjI4OC04LjAyLTMuMjg4eiIgZmlsbD0iY3VycmVudENvbG9yIi8+PC9zdmc+J30KICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSIiCiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImNvbG9yOiMwMDEyMTk7IgogICAgICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgY2xhc3M9Imhhcy10ZXh0LWJsYWNrIgogICAgICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayIKICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYnJlY29yZGVyL3JlcGxheXdlYi5wYWdlIgogICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJSZXBsYXlXZWIucGFnZSBzb3VyY2UgY29kZSIKICAgICAgICAgICAgICAgICAgPlNvdXJjZSBDb2RlCiAgICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1lbnUtbG9nbyBtbC0xIgogICAgICAgICAgICAgICAgICAgIHNpemU9IjFyZW0iCiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgLnN2Zz0keyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ5NiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0xNjUuOSAzOTcuNGMwIDItMi4zIDMuNi01LjIgMy42LTMuMy4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUuMy02LjIgMi4zem00NC4yLTEuN2MtMi45LjctNC45IDIuNi00LjYgNC45LjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjQ0LjggOEMxMDYuMSA4IDAgMTEzLjMgMCAyNTJjMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xQzQyOC4yIDQ1Ny44IDQ5NiAzNjIuOSA0OTYgMjUyIDQ5NiAxMTMuMyAzODMuNSA4IDI0NC44IDh6TTk3LjIgMzUyLjljLTEuMyAxLTEgMy4zLjcgNS4yIDEuNiAxLjYgMy45IDIuMyA1LjIgMSAxLjMtMSAxLTMuMy0uNy01LjItMS42LTEuNi0zLjktMi4zLTUuMi0xem0tMTAuOC04LjFjLS43IDEuMy4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNi43IDQuMy0uNy43LTEuMy0uMy0yLjktMi4zLTMuOS0yLS42LTMuNi0uMy00LjMuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMuNy00LjMtMS4zLTYuMi0yLjItMi4zLTUuMi0yLjYtNi41LTF6bS0xMS40LTE0LjdjLTEuNiAxLTEuNiAzLjYgMCA1LjkgMS42IDIuMyA0LjMgMy4zIDUuNiAyLjMgMS42LTEuMyAxLjYtMy45IDAtNi4yLTEuNC0yLjMtNC0zLjMtNS42LTJ6Ii8+PC9zdmc+J30KICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1vbkVtYmVkRHJvcChlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuYWN0aXZlPSF0aGlzLmFjdGl2ZX19dChbeWUoe3R5cGU6T2JqZWN0fSldLER0LnByb3RvdHlwZSwiY29sbEluZm8iLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLER0LnByb3RvdHlwZSwidHMiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLER0LnByb3RvdHlwZSwidXJsIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sRHQucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJyd3AtZW1iZWQtcmVjZWlwdCIsRHQpO3ZhciBGdD0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6bnVsbCxNdD1udWxsPT09RnQsUnQ9TXQ/dm9pZCAwOkZ0LmRvY3VtZW50LE90PSJhZGRFdmVudExpc3RlbmVyIixVdD0icmVtb3ZlRXZlbnRMaXN0ZW5lciIsQnQ9ImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsTnQ9Il9hIixxdD0iX2IiLGp0PSJfYyIsSHQ9Imhvcml6b250YWwiLFd0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LFZ0PU10PyJjYWxjIjpbIiIsIi13ZWJraXQtIiwiLW1vei0iLCItby0iXS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3ZhciB0PVJ0LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LnN0eWxlLmNzc1RleHQ9IndpZHRoOiIrZSsiY2FsYyg5cHgpIiwhIXQuc3R5bGUubGVuZ3RofSkpLnNoaWZ0KCkrImNhbGMiLEd0PWZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIFN0cmluZ30sS3Q9ZnVuY3Rpb24oZSl7aWYoR3QoZSkpe3ZhciB0PVJ0LnF1ZXJ5U2VsZWN0b3IoZSk7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJTZWxlY3RvciAiK2UrIiBkaWQgbm90IG1hdGNoIGEgRE9NIGVsZW1lbnQiKTtyZXR1cm4gdH1yZXR1cm4gZX0sWXQ9ZnVuY3Rpb24oZSx0LGkpe3ZhciBvPWVbdF07cmV0dXJuIHZvaWQgMCE9PW8/bzppfSxRdD1mdW5jdGlvbihlLHQsaSxvKXtpZih0KXtpZigiZW5kIj09PW8pcmV0dXJuIDA7aWYoImNlbnRlciI9PT1vKXJldHVybiBlLzJ9ZWxzZSBpZihpKXtpZigic3RhcnQiPT09bylyZXR1cm4gMDtpZigiY2VudGVyIj09PW8pcmV0dXJuIGUvMn1yZXR1cm4gZX0sWnQ9ZnVuY3Rpb24oZSx0KXt2YXIgaT1SdC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gaS5jbGFzc05hbWU9Imd1dHRlciBndXR0ZXItIit0LGl9LEp0PWZ1bmN0aW9uKGUsdCxpKXt2YXIgbz17fTtyZXR1cm4gR3QodCk/b1tlXT10Om9bZV09VnQrIigiK3QrIiUgLSAiK2krInB4KSIsb30sWHQ9ZnVuY3Rpb24oZSx0KXt2YXIgaTtyZXR1cm4oaT17fSlbZV09dCsicHgiLGl9O2NvbnN0IGVpPWZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwPT09dCYmKHQ9e30pLE10KXJldHVybnt9O3ZhciBpLG8sbixyLHMsYSxsPWU7QXJyYXkuZnJvbSYmKGw9QXJyYXkuZnJvbShsKSk7dmFyIGM9S3QobFswXSkucGFyZW50Tm9kZSxkPWdldENvbXB1dGVkU3R5bGU/Z2V0Q29tcHV0ZWRTdHlsZShjKTpudWxsLGg9ZD9kLmZsZXhEaXJlY3Rpb246bnVsbCx1PVl0KHQsInNpemVzIil8fGwubWFwKChmdW5jdGlvbigpe3JldHVybiAxMDAvbC5sZW5ndGh9KSksZj1ZdCh0LCJtaW5TaXplIiwxMDApLHA9QXJyYXkuaXNBcnJheShmKT9mOmwubWFwKChmdW5jdGlvbigpe3JldHVybiBmfSkpLG09WXQodCwibWF4U2l6ZSIsMS8wKSxiPUFycmF5LmlzQXJyYXkobSk/bTpsLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gbX0pKSxnPVl0KHQsImV4cGFuZFRvTWluIiwhMSksdj1ZdCh0LCJndXR0ZXJTaXplIiwxMCksdz1ZdCh0LCJndXR0ZXJBbGlnbiIsImNlbnRlciIpLHk9WXQodCwic25hcE9mZnNldCIsMzApLHg9WXQodCwiZHJhZ0ludGVydmFsIiwxKSxrPVl0KHQsImRpcmVjdGlvbiIsSHQpLFM9WXQodCwiY3Vyc29yIixrPT09SHQ/ImNvbC1yZXNpemUiOiJyb3ctcmVzaXplIiksJD1ZdCh0LCJndXR0ZXIiLFp0KSx6PVl0KHQsImVsZW1lbnRTdHlsZSIsSnQpLF89WXQodCwiZ3V0dGVyU3R5bGUiLFh0KTtmdW5jdGlvbiBDKGUsdCxvLG4pe3ZhciByPXooaSx0LG8sbik7T2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5zdHlsZVt0XT1yW3RdfSkpfWZ1bmN0aW9uIEkoKXtyZXR1cm4gYS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNpemV9KSl9ZnVuY3Rpb24gTChlKXtyZXR1cm4idG91Y2hlcyJpbiBlP2UudG91Y2hlc1swXVtvXTplW29dfWZ1bmN0aW9uIEUoZSl7dmFyIHQ9YVt0aGlzLmFdLGk9YVt0aGlzLmJdLG89dC5zaXplK2kuc2l6ZTt0LnNpemU9ZS90aGlzLnNpemUqbyxpLnNpemU9by1lL3RoaXMuc2l6ZSpvLEModC5lbGVtZW50LHQuc2l6ZSx0aGlzW3F0XSx0LmkpLEMoaS5lbGVtZW50LGkuc2l6ZSx0aGlzW2p0XSxpLmkpfWZ1bmN0aW9uIEEoZSl7dmFyIGksbz1hW3RoaXMuYV0sbj1hW3RoaXMuYl07dGhpcy5kcmFnZ2luZyYmKGk9TChlKS10aGlzLnN0YXJ0Kyh0aGlzW3F0XS10aGlzLmRyYWdPZmZzZXQpLHg+MSYmKGk9TWF0aC5yb3VuZChpL3gpKngpLGk8PW8ubWluU2l6ZSt5K3RoaXNbcXRdP2k9by5taW5TaXplK3RoaXNbcXRdOmk+PXRoaXMuc2l6ZS0obi5taW5TaXplK3krdGhpc1tqdF0pJiYoaT10aGlzLnNpemUtKG4ubWluU2l6ZSt0aGlzW2p0XSkpLGk+PW8ubWF4U2l6ZS15K3RoaXNbcXRdP2k9by5tYXhTaXplK3RoaXNbcXRdOmk8PXRoaXMuc2l6ZS0obi5tYXhTaXplLXkrdGhpc1tqdF0pJiYoaT10aGlzLnNpemUtKG4ubWF4U2l6ZSt0aGlzW2p0XSkpLEUuY2FsbCh0aGlzLGkpLFl0KHQsIm9uRHJhZyIsV3QpKEkoKSkpfWZ1bmN0aW9uIFQoKXt2YXIgZT1hW3RoaXMuYV0uZWxlbWVudCx0PWFbdGhpcy5iXS5lbGVtZW50LG89ZVtCdF0oKSxzPXRbQnRdKCk7dGhpcy5zaXplPW9baV0rc1tpXSt0aGlzW3F0XSt0aGlzW2p0XSx0aGlzLnN0YXJ0PW9bbl0sdGhpcy5lbmQ9b1tyXX1mdW5jdGlvbiBQKGUpe3ZhciB0PWZ1bmN0aW9uKGUpe2lmKCFnZXRDb21wdXRlZFN0eWxlKXJldHVybiBudWxsO3ZhciB0PWdldENvbXB1dGVkU3R5bGUoZSk7aWYoIXQpcmV0dXJuIG51bGw7dmFyIGk9ZVtzXTtyZXR1cm4gMD09PWk/bnVsbDppLT1rPT09SHQ/cGFyc2VGbG9hdCh0LnBhZGRpbmdMZWZ0KStwYXJzZUZsb2F0KHQucGFkZGluZ1JpZ2h0KTpwYXJzZUZsb2F0KHQucGFkZGluZ1RvcCkrcGFyc2VGbG9hdCh0LnBhZGRpbmdCb3R0b20pfShjKTtpZihudWxsPT09dClyZXR1cm4gZTtpZihwLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0fSksMCk+dClyZXR1cm4gZTt2YXIgaT0wLG89W10sbj1lLm1hcCgoZnVuY3Rpb24obixyKXt2YXIgcz10Km4vMTAwLGE9UXQodiwwPT09cixyPT09ZS5sZW5ndGgtMSx3KSxsPXBbcl0rYTtyZXR1cm4gczxsPyhpKz1sLXMsby5wdXNoKDApLGwpOihvLnB1c2gocy1sKSxzKX0pKTtyZXR1cm4gMD09PWk/ZTpuLm1hcCgoZnVuY3Rpb24oZSxuKXt2YXIgcj1lO2lmKGk+MCYmb1tuXS1pPjApe3ZhciBzPU1hdGgubWluKGksb1tuXS1pKTtpLT1zLHI9ZS1zfXJldHVybiByL3QqMTAwfSkpfWZ1bmN0aW9uIEQoKXt2YXIgZT10aGlzLGk9YVtlLmFdLmVsZW1lbnQsbz1hW2UuYl0uZWxlbWVudDtlLmRyYWdnaW5nJiZZdCh0LCJvbkRyYWdFbmQiLFd0KShJKCkpLGUuZHJhZ2dpbmc9ITEsRnRbVXRdKCJtb3VzZXVwIixlLnN0b3ApLEZ0W1V0XSgidG91Y2hlbmQiLGUuc3RvcCksRnRbVXRdKCJ0b3VjaGNhbmNlbCIsZS5zdG9wKSxGdFtVdF0oIm1vdXNlbW92ZSIsZS5tb3ZlKSxGdFtVdF0oInRvdWNobW92ZSIsZS5tb3ZlKSxlLnN0b3A9bnVsbCxlLm1vdmU9bnVsbCxpW1V0XSgic2VsZWN0c3RhcnQiLFd0KSxpW1V0XSgiZHJhZ3N0YXJ0IixXdCksb1tVdF0oInNlbGVjdHN0YXJ0IixXdCksb1tVdF0oImRyYWdzdGFydCIsV3QpLGkuc3R5bGUudXNlclNlbGVjdD0iIixpLnN0eWxlLndlYmtpdFVzZXJTZWxlY3Q9IiIsaS5zdHlsZS5Nb3pVc2VyU2VsZWN0PSIiLGkuc3R5bGUucG9pbnRlckV2ZW50cz0iIixvLnN0eWxlLnVzZXJTZWxlY3Q9IiIsby5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSIiLG8uc3R5bGUuTW96VXNlclNlbGVjdD0iIixvLnN0eWxlLnBvaW50ZXJFdmVudHM9IiIsZS5ndXR0ZXIuc3R5bGUuY3Vyc29yPSIiLGUucGFyZW50LnN0eWxlLmN1cnNvcj0iIixSdC5ib2R5LnN0eWxlLmN1cnNvcj0iIn1mdW5jdGlvbiBGKGUpe2lmKCEoImJ1dHRvbiJpbiBlKXx8MD09PWUuYnV0dG9uKXt2YXIgaT10aGlzLG89YVtpLmFdLmVsZW1lbnQsbj1hW2kuYl0uZWxlbWVudDtpLmRyYWdnaW5nfHxZdCh0LCJvbkRyYWdTdGFydCIsV3QpKEkoKSksZS5wcmV2ZW50RGVmYXVsdCgpLGkuZHJhZ2dpbmc9ITAsaS5tb3ZlPUEuYmluZChpKSxpLnN0b3A9RC5iaW5kKGkpLEZ0W090XSgibW91c2V1cCIsaS5zdG9wKSxGdFtPdF0oInRvdWNoZW5kIixpLnN0b3ApLEZ0W090XSgidG91Y2hjYW5jZWwiLGkuc3RvcCksRnRbT3RdKCJtb3VzZW1vdmUiLGkubW92ZSksRnRbT3RdKCJ0b3VjaG1vdmUiLGkubW92ZSksb1tPdF0oInNlbGVjdHN0YXJ0IixXdCksb1tPdF0oImRyYWdzdGFydCIsV3QpLG5bT3RdKCJzZWxlY3RzdGFydCIsV3QpLG5bT3RdKCJkcmFnc3RhcnQiLFd0KSxvLnN0eWxlLnVzZXJTZWxlY3Q9Im5vbmUiLG8uc3R5bGUud2Via2l0VXNlclNlbGVjdD0ibm9uZSIsby5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIixvLnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLG4uc3R5bGUudXNlclNlbGVjdD0ibm9uZSIsbi5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PSJub25lIixuLnN0eWxlLk1velVzZXJTZWxlY3Q9Im5vbmUiLG4uc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsaS5ndXR0ZXIuc3R5bGUuY3Vyc29yPVMsaS5wYXJlbnQuc3R5bGUuY3Vyc29yPVMsUnQuYm9keS5zdHlsZS5jdXJzb3I9UyxULmNhbGwoaSksaS5kcmFnT2Zmc2V0PUwoZSktaS5lbmR9fWs9PT1IdD8oaT0id2lkdGgiLG89ImNsaWVudFgiLG49ImxlZnQiLHI9InJpZ2h0IixzPSJjbGllbnRXaWR0aCIpOiJ2ZXJ0aWNhbCI9PT1rJiYoaT0iaGVpZ2h0IixvPSJjbGllbnRZIixuPSJ0b3AiLHI9ImJvdHRvbSIscz0iY2xpZW50SGVpZ2h0IiksdT1QKHUpO3ZhciBNPVtdO2Z1bmN0aW9uIFIoZSl7dmFyIHQ9ZS5pPT09TS5sZW5ndGgsaT10P01bZS5pLTFdOk1bZS5pXTtULmNhbGwoaSk7dmFyIG89dD9pLnNpemUtZS5taW5TaXplLWlbanRdOmUubWluU2l6ZStpW3F0XTtFLmNhbGwoaSxvKX1yZXR1cm4gYT1sLm1hcCgoZnVuY3Rpb24oZSx0KXt2YXIgbyxuPXtlbGVtZW50Okt0KGUpLHNpemU6dVt0XSxtaW5TaXplOnBbdF0sbWF4U2l6ZTpiW3RdLGk6dH07aWYodD4wJiYoKG89e2E6dC0xLGI6dCxkcmFnZ2luZzohMSxkaXJlY3Rpb246ayxwYXJlbnQ6Y30pW3F0XT1RdCh2LHQtMT09MCwhMSx3KSxvW2p0XT1RdCh2LCExLHQ9PT1sLmxlbmd0aC0xLHcpLCJyb3ctcmV2ZXJzZSI9PT1ofHwiY29sdW1uLXJldmVyc2UiPT09aCkpe3ZhciByPW8uYTtvLmE9by5iLG8uYj1yfWlmKHQ+MCl7dmFyIHM9JCh0LGssbi5lbGVtZW50KTshZnVuY3Rpb24oZSx0LG8pe3ZhciBuPV8oaSx0LG8pO09iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe2Uuc3R5bGVbdF09blt0XX0pKX0ocyx2LHQpLG9bTnRdPUYuYmluZChvKSxzW090XSgibW91c2Vkb3duIixvW050XSksc1tPdF0oInRvdWNoc3RhcnQiLG9bTnRdKSxjLmluc2VydEJlZm9yZShzLG4uZWxlbWVudCksby5ndXR0ZXI9c31yZXR1cm4gQyhuLmVsZW1lbnQsbi5zaXplLFF0KHYsMD09PXQsdD09PWwubGVuZ3RoLTEsdyksdCksdD4wJiZNLnB1c2gobyksbn0pKSxhLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUuZWxlbWVudFtCdF0oKVtpXTt0PGUubWluU2l6ZSYmKGc/UihlKTplLm1pblNpemU9dCl9KSkse3NldFNpemVzOmZ1bmN0aW9uKGUpe3ZhciB0PVAoZSk7dC5mb3JFYWNoKChmdW5jdGlvbihlLGkpe2lmKGk+MCl7dmFyIG89TVtpLTFdLG49YVtvLmFdLHI9YVtvLmJdO24uc2l6ZT10W2ktMV0sci5zaXplPWUsQyhuLmVsZW1lbnQsbi5zaXplLG9bcXRdLG4uaSksQyhyLmVsZW1lbnQsci5zaXplLG9banRdLHIuaSl9fSkpfSxnZXRTaXplczpJLGNvbGxhcHNlOmZ1bmN0aW9uKGUpe1IoYVtlXSl9LGRlc3Ryb3k6ZnVuY3Rpb24oZSx0KXtNLmZvckVhY2goKGZ1bmN0aW9uKG8pe2lmKCEwIT09dD9vLnBhcmVudC5yZW1vdmVDaGlsZChvLmd1dHRlcik6KG8uZ3V0dGVyW1V0XSgibW91c2Vkb3duIixvW050XSksby5ndXR0ZXJbVXRdKCJ0b3VjaHN0YXJ0IixvW050XSkpLCEwIT09ZSl7dmFyIG49eihpLG8uYS5zaXplLG9bcXRdKTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbihlKXthW28uYV0uZWxlbWVudC5zdHlsZVtlXT0iIixhW28uYl0uZWxlbWVudC5zdHlsZVtlXT0iIn0pKX19KSl9LHBhcmVudDpjLHBhaXJzOk19fTt2YXIgdGk9IiI7ZnVuY3Rpb24gaWkoZSl7dGk9ZX12YXIgb2k9e25hbWU6ImRlZmF1bHQiLHJlc29sdmVyOmU9PmZ1bmN0aW9uKGU9IiIpe2lmKCF0aSl7Y29uc3QgZT1bLi4uZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpXSx0PWUuZmluZCgoZT0+ZS5oYXNBdHRyaWJ1dGUoImRhdGEtc2hvZWxhY2UiKSkpO2lmKHQpaWkodC5nZXRBdHRyaWJ1dGUoImRhdGEtc2hvZWxhY2UiKSk7ZWxzZXtjb25zdCB0PWUuZmluZCgoZT0+L3Nob2VsYWNlKFwubWluKT9cLmpzKCR8XD8pLy50ZXN0KGUuc3JjKXx8L3Nob2VsYWNlLWF1dG9sb2FkZXIoXC5taW4pP1wuanMoJHxcPykvLnRlc3QoZS5zcmMpKSk7bGV0IGk9IiI7dCYmKGk9dC5nZXRBdHRyaWJ1dGUoInNyYyIpKSxpaShpLnNwbGl0KCIvIikuc2xpY2UoMCwtMSkuam9pbigiLyIpKX19cmV0dXJuIHRpLnJlcGxhY2UoL1wvJC8sIiIpKyhlP2AvJHtlLnJlcGxhY2UoL15cLy8sIiIpfWA6IiIpfShgYXNzZXRzL2ljb25zLyR7ZX0uc3ZnYCl9LG5pPXtjYXJldDonXG4gICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+XG4gICAgICA8cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT5cbiAgICA8L3N2Zz5cbiAgJyxjaGVjazonXG4gICAgPHN2ZyBwYXJ0PSJjaGVja2VkLWljb24iIGNsYXNzPSJjaGVja2JveF9faWNvbiIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+XG4gICAgICAgIDxnIHN0cm9rZT0iY3VycmVudENvbG9yIj5cbiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzLjQyODU3MSwgMy40Mjg1NzEpIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLDUuNzE0Mjg1NzEgTDMuNDI4NTcxNDMsOS4xNDI4NTcxNCI+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGggZD0iTTkuMTQyODU3MTQsMCBMMy40Mjg1NzE0Myw5LjE0Mjg1NzE0Ij48L3BhdGg+XG4gICAgICAgICAgPC9nPlxuICAgICAgICA8L2c+XG4gICAgICA8L2c+XG4gICAgPC9zdmc+XG4gICcsImNoZXZyb24tZG93biI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLWNoZXZyb24tZG93biIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggMTAuMjkzbDUuNjQ2LTUuNjQ3YS41LjUgMCAwIDEgLjcwOC43MDhsLTYgNmEuNS41IDAgMCAxLS43MDggMGwtNi02YS41LjUgMCAwIDEgMC0uNzA4eiIvPlxuICAgIDwvc3ZnPlxuICAnLCJjaGV2cm9uLWxlZnQiOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1jaGV2cm9uLWxlZnQiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS4zNTQgMS42NDZhLjUuNSAwIDAgMSAwIC43MDhMNS43MDcgOGw1LjY0NyA1LjY0NmEuNS41IDAgMCAxLS43MDguNzA4bC02LTZhLjUuNSAwIDAgMSAwLS43MDhsNi02YS41LjUgMCAwIDEgLjcwOCAweiIvPlxuICAgIDwvc3ZnPlxuICAnLCJjaGV2cm9uLXJpZ2h0IjonXG4gICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2hldnJvbi1yaWdodCIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQuNjQ2IDEuNjQ2YS41LjUgMCAwIDEgLjcwOCAwbDYgNmEuNS41IDAgMCAxIDAgLjcwOGwtNiA2YS41LjUgMCAwIDEtLjcwOC0uNzA4TDEwLjI5MyA4IDQuNjQ2IDIuMzU0YS41LjUgMCAwIDEgMC0uNzA4eiIvPlxuICAgIDwvc3ZnPlxuICAnLGNvcHk6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLWNvcHkiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlYyWm0yLTFhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjJhMSAxIDAgMCAwLTEtMUg2Wk0yIDVhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xdi0xaDF2MWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMXYxSDJaIi8+XG4gICAgPC9zdmc+XG4gICcsZXllOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1leWUiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMTYgOHMtMy01LjUtOC01LjVTMCA4IDAgOHMzIDUuNSA4IDUuNVMxNiA4IDE2IDh6TTEuMTczIDhhMTMuMTMzIDEzLjEzMyAwIDAgMSAxLjY2LTIuMDQzQzQuMTIgNC42NjggNS44OCAzLjUgOCAzLjVjMi4xMiAwIDMuODc5IDEuMTY4IDUuMTY4IDIuNDU3QTEzLjEzMyAxMy4xMzMgMCAwIDEgMTQuODI4IDhjLS4wNTguMDg3LS4xMjIuMTgzLS4xOTUuMjg4LS4zMzUuNDgtLjgzIDEuMTItMS40NjUgMS43NTVDMTEuODc5IDExLjMzMiAxMC4xMTkgMTIuNSA4IDEyLjVjLTIuMTIgMC0zLjg3OS0xLjE2OC01LjE2OC0yLjQ1N0ExMy4xMzQgMTMuMTM0IDAgMCAxIDEuMTcyIDh6Ii8+XG4gICAgICA8cGF0aCBkPSJNOCA1LjVhMi41IDIuNSAwIDEgMCAwIDUgMi41IDIuNSAwIDAgMCAwLTV6TTQuNSA4YTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAwIDEtNyAweiIvPlxuICAgIDwvc3ZnPlxuICAnLCJleWUtc2xhc2giOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1leWUtc2xhc2giIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMTMuMzU5IDExLjIzOEMxNS4wNiA5LjcyIDE2IDggMTYgOHMtMy01LjUtOC01LjVhNy4wMjggNy4wMjggMCAwIDAtMi43OS41ODhsLjc3Ljc3MUE1Ljk0NCA1Ljk0NCAwIDAgMSA4IDMuNWMyLjEyIDAgMy44NzkgMS4xNjggNS4xNjggMi40NTdBMTMuMTM0IDEzLjEzNCAwIDAgMSAxNC44MjggOGMtLjA1OC4wODctLjEyMi4xODMtLjE5NS4yODgtLjMzNS40OC0uODMgMS4xMi0xLjQ2NSAxLjc1NS0uMTY1LjE2NS0uMzM3LjMyOC0uNTE3LjQ4NmwuNzA4LjcwOXoiLz5cbiAgICAgIDxwYXRoIGQ9Ik0xMS4yOTcgOS4xNzZhMy41IDMuNSAwIDAgMC00LjQ3NC00LjQ3NGwuODIzLjgyM2EyLjUgMi41IDAgMCAxIDIuODI5IDIuODI5bC44MjIuODIyem0tMi45NDMgMS4yOTkuODIyLjgyMmEzLjUgMy41IDAgMCAxLTQuNDc0LTQuNDc0bC44MjMuODIzYTIuNSAyLjUgMCAwIDAgMi44MjkgMi44Mjl6Ii8+XG4gICAgICA8cGF0aCBkPSJNMy4zNSA1LjQ3Yy0uMTguMTYtLjM1My4zMjItLjUxOC40ODdBMTMuMTM0IDEzLjEzNCAwIDAgMCAxLjE3MiA4bC4xOTUuMjg4Yy4zMzUuNDguODMgMS4xMiAxLjQ2NSAxLjc1NUM0LjEyMSAxMS4zMzIgNS44ODEgMTIuNSA4IDEyLjVjLjcxNiAwIDEuMzktLjEzMyAyLjAyLS4zNmwuNzcuNzcyQTcuMDI5IDcuMDI5IDAgMCAxIDggMTMuNUMzIDEzLjUgMCA4IDAgOHMuOTM5LTEuNzIxIDIuNjQxLTMuMjM4bC43MDguNzA5em0xMC4yOTYgOC44ODQtMTItMTIgLjcwOC0uNzA4IDEyIDEyLS43MDguNzA4eiIvPlxuICAgIDwvc3ZnPlxuICAnLGV5ZWRyb3BwZXI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLWV5ZWRyb3BwZXIiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMTMuMzU0LjY0NmExLjIwNyAxLjIwNyAwIDAgMC0xLjcwOCAwTDguNSAzLjc5M2wtLjY0Ni0uNjQ3YS41LjUgMCAxIDAtLjcwOC43MDhMOC4yOTMgNWwtNy4xNDcgNy4xNDZBLjUuNSAwIDAgMCAxIDEyLjV2MS43OTNsLS44NTQuODUzYS41LjUgMCAxIDAgLjcwOC43MDdMMS43MDcgMTVIMy41YS41LjUgMCAwIDAgLjM1NC0uMTQ2TDExIDcuNzA3bDEuMTQ2IDEuMTQ3YS41LjUgMCAwIDAgLjcwOC0uNzA4bC0uNjQ3LS42NDYgMy4xNDctMy4xNDZhMS4yMDcgMS4yMDcgMCAwIDAgMC0xLjcwOGwtMi0yek0yIDEyLjcwN2w3LTdMMTAuMjkzIDdsLTcgN0gydi0xLjI5M3oiPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgJywiZ3JpcC12ZXJ0aWNhbCI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLWdyaXAtdmVydGljYWwiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNNyAyYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptMyAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpNNyA1YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptMyAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHpNNyA4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptMyAwYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMHptLTMgM2ExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bTMgMGExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDB6bS0zIDNhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwem0zIDBhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAweiI+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICAnLGluZGV0ZXJtaW5hdGU6J1xuICAgIDxzdmcgcGFydD0iaW5kZXRlcm1pbmF0ZS1pY29uIiBjbGFzcz0iY2hlY2tib3hfX2ljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPlxuICAgICAgICA8ZyBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj5cbiAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLjI4NTcxNCwgNi44NTcxNDMpIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yODU3MTQzLDEuMTQyODU3MTQgTDEuMTQyODU3MTQsMS4xNDI4NTcxNCI+PC9wYXRoPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuICAnLCJwZXJzb24tZmlsbCI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLXBlcnNvbi1maWxsIiB2aWV3Qm94PSIwIDAgMTYgMTYiPlxuICAgICAgPHBhdGggZD0iTTMgMTRzLTEgMC0xLTEgMS00IDYtNCA2IDMgNiA0LTEgMS0xIDFIM3ptNS02YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoiLz5cbiAgICA8L3N2Zz5cbiAgJywicGxheS1maWxsIjonXG4gICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktcGxheS1maWxsIiB2aWV3Qm94PSIwIDAgMTYgMTYiPlxuICAgICAgPHBhdGggZD0ibTExLjU5NiA4LjY5Ny02LjM2MyAzLjY5MmMtLjU0LjMxMy0xLjIzMy0uMDY2LTEuMjMzLS42OTdWNC4zMDhjMC0uNjMuNjkyLTEuMDEgMS4yMzMtLjY5Nmw2LjM2MyAzLjY5MmEuODAyLjgwMiAwIDAgMSAwIDEuMzkzeiI+PC9wYXRoPlxuICAgIDwvc3ZnPlxuICAnLCJwYXVzZS1maWxsIjonXG4gICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktcGF1c2UtZmlsbCIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxwYXRoIGQ9Ik01LjUgMy41QTEuNSAxLjUgMCAwIDEgNyA1djZhMS41IDEuNSAwIDAgMS0zIDBWNWExLjUgMS41IDAgMCAxIDEuNS0xLjV6bTUgMEExLjUgMS41IDAgMCAxIDEyIDV2NmExLjUgMS41IDAgMCAxLTMgMFY1YTEuNSAxLjUgMCAwIDEgMS41LTEuNXoiPjwvcGF0aD5cbiAgICA8L3N2Zz5cbiAgJyxyYWRpbzonXG4gICAgPHN2ZyBwYXJ0PSJjaGVja2VkLWljb24iIGNsYXNzPSJyYWRpb19faWNvbiIgdmlld0JveD0iMCAwIDE2IDE2Ij5cbiAgICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPlxuICAgICAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9IjgiIGN5PSI4IiByPSIzLjQyODU3MTQzIj48L2NpcmNsZT5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuICAnLCJzdGFyLWZpbGwiOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS1zdGFyLWZpbGwiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMy42MTIgMTUuNDQzYy0uMzg2LjE5OC0uODI0LS4xNDktLjc0Ni0uNTkybC44My00LjczTC4xNzMgNi43NjVjLS4zMjktLjMxNC0uMTU4LS44ODguMjgzLS45NWw0Ljg5OC0uNjk2TDcuNTM4Ljc5MmMuMTk3LS4zOS43My0uMzkuOTI3IDBsMi4xODQgNC4zMjcgNC44OTguNjk2Yy40NDEuMDYyLjYxMi42MzYuMjgyLjk1bC0zLjUyMiAzLjM1Ni44MyA0LjczYy4wNzguNDQzLS4zNi43OS0uNzQ2LjU5Mkw4IDEzLjE4N2wtNC4zODkgMi4yNTZ6Ii8+XG4gICAgPC9zdmc+XG4gICcsIngtbGciOidcbiAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJjdXJyZW50Q29sb3IiIGNsYXNzPSJiaSBiaS14LWxnIiB2aWV3Qm94PSIwIDAgMTYgMTYiPlxuICAgICAgPHBhdGggZD0iTTIuMTQ2IDIuODU0YS41LjUgMCAxIDEgLjcwOC0uNzA4TDggNy4yOTNsNS4xNDYtNS4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDUuMTQ3IDUuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtNS4xNDYgNS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCAyLjE0NiAyLjg1NFoiLz5cbiAgICA8L3N2Zz5cbiAgJywieC1jaXJjbGUtZmlsbCI6J1xuICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9ImJpIGJpLXgtY2lyY2xlLWZpbGwiIHZpZXdCb3g9IjAgMCAxNiAxNiI+XG4gICAgICA8cGF0aCBkPSJNMTYgOEE4IDggMCAxIDEgMCA4YTggOCAwIDAgMSAxNiAwek01LjM1NCA0LjY0NmEuNS41IDAgMSAwLS43MDguNzA4TDcuMjkzIDhsLTIuNjQ3IDIuNjQ2YS41LjUgMCAwIDAgLjcwOC43MDhMOCA4LjcwN2wyLjY0NiAyLjY0N2EuNS41IDAgMCAwIC43MDgtLjcwOEw4LjcwNyA4bDIuNjQ3LTIuNjQ2YS41LjUgMCAwIDAtLjcwOC0uNzA4TDggNy4yOTMgNS4zNTQgNC42NDZ6Ij48L3BhdGg+XG4gICAgPC9zdmc+XG4gICd9LHJpPXtuYW1lOiJzeXN0ZW0iLHJlc29sdmVyOmU9PmUgaW4gbmk/YGRhdGE6aW1hZ2Uvc3ZnK3htbCwke2VuY29kZVVSSUNvbXBvbmVudChuaVtlXSl9YDoiIn0sc2k9W29pLHJpXSxhaT1bXTtmdW5jdGlvbiBsaShlKXtyZXR1cm4gc2kuZmluZCgodD0+dC5uYW1lPT09ZSkpfXZhciBjaSxkaT1PYmplY3QuZGVmaW5lUHJvcGVydHksaGk9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsdWk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixmaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyxwaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLG1pPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYmk9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxnaT0oZSx0KT0+KHQ9U3ltYm9sW2VdKT90OlN5bWJvbC5mb3IoIlN5bWJvbC4iK2UpLHZpPShlLHQsaSk9PnQgaW4gZT9kaShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOml9KTplW3RdPWksd2k9KGUsdCk9Pntmb3IodmFyIGkgaW4gdHx8KHQ9e30pKW1pLmNhbGwodCxpKSYmdmkoZSxpLHRbaV0pO2lmKHBpKWZvcih2YXIgaSBvZiBwaSh0KSliaS5jYWxsKHQsaSkmJnZpKGUsaSx0W2ldKTtyZXR1cm4gZX0seWk9KGUsdCk9PmhpKGUsZmkodCkpLHhpPShlLHQsaSxvKT0+e2Zvcih2YXIgbixyPW8+MT92b2lkIDA6bz91aSh0LGkpOnQscz1lLmxlbmd0aC0xO3M+PTA7cy0tKShuPWVbc10pJiYocj0obz9uKHQsaSxyKTpuKHIpKXx8cik7cmV0dXJuIG8mJnImJmRpKHQsaSxyKSxyfSxraT1mdW5jdGlvbihlLHQpe3RoaXNbMF09ZSx0aGlzWzFdPXR9LFNpPWU9Pnt2YXIgdCxpPWVbZ2koImFzeW5jSXRlcmF0b3IiKV0sbz0hMSxuPXt9O3JldHVybiBudWxsPT1pPyhpPWVbZ2koIml0ZXJhdG9yIildKCksdD1lPT5uW2VdPXQ9PmlbZV0odCkpOihpPWkuY2FsbChlKSx0PWU9Pm5bZV09dD0+e2lmKG8pe2lmKG89ITEsInRocm93Ij09PWUpdGhyb3cgdDtyZXR1cm4gdH1yZXR1cm4gbz0hMCx7ZG9uZTohMSx2YWx1ZTpuZXcga2kobmV3IFByb21pc2UoKG89Pnt2YXIgbj1pW2VdKHQpO2lmKCEobiBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTtvKG4pfSkpLDEpfX0pLG5bZ2koIml0ZXJhdG9yIildPSgpPT5uLHQoIm5leHQiKSwidGhyb3ciaW4gaT90KCJ0aHJvdyIpOm4udGhyb3c9ZT0+e3Rocm93IGV9LCJyZXR1cm4iaW4gaSYmdCgicmV0dXJuIiksbn07IWZ1bmN0aW9uKGUsdCl7IWZ1bmN0aW9uKGUpe3NpPXNpLmZpbHRlcigodD0+dC5uYW1lIT09ZSkpfShlKSxzaS5wdXNoKHtuYW1lOmUscmVzb2x2ZXI6dC5yZXNvbHZlcixtdXRhdG9yOnQubXV0YXRvcixzcHJpdGVTaGVldDp0LnNwcml0ZVNoZWV0fSksYWkuZm9yRWFjaCgodD0+e3QubGlicmFyeT09PWUmJnQuc2V0SWNvbigpfSkpfSgic3lzdGVtIix7cmVzb2x2ZXI6ZT0+IngtbGciPT09ZT9yaS5yZXNvbHZlcihlKToiIn0pO2xldCAkaT1jaT1jbGFzcyBleHRlbmRzIG1le3N0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKGNpLmNvbXBTdHlsZXMpfXN0YXRpYyBnZXQgY29tcFN0eWxlcygpe3JldHVybiBoYAogICAgICA6aG9zdCB7CiAgICAgICAgbWluLXdpZHRoOiB1bnNldDsgLyogQHRvZG8oZW1tYSwgMjAyMy0xMS0wNikgc2VlIGFib3V0IHJlbW92aW5nIHRoaXMsIGlmIHRoZSBtaW4td2lkdGggc2V0IG9uIGFsbCB3ZWIgY29tcG9uZW50cyBpcyB1bm5lY2Vzc2FyeSAqLwogICAgICB9CgogICAgICAvKiBAdG9kbyhlbW1hLCAyMDIzLTExLTA2KSBhZGQgb3B0aW9uIGZvciBtb25vc3BhY2UgdHJlYXRtZW50LCByYXRoZXIgdGhhbiBtYWtpbmcgZXZlcnl0aGluZyBtb25vLiB0aGlzIGNvdWxkIGFsc28gYmUgYSBjbGFzcyBvbiB0aGUgaG9zdCBlbGVtZW50PyAqLwogICAgICAuY29sLWNvbnRlbnQgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAjMWYyOTM3OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICAubWluaWhlYWQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KICAgIGB9cmVuZGVyKCl7cmV0dXJuIFFgJHt0aGlzLmxhYmVsP1FgPHAgY2xhc3M9Im1pbmloZWFkIj4ke3RoaXMubGFiZWx9PC9wPmA6WH0KICAgICAgPGRpdiBjbGFzcz0iY29sLWNvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICAke3RoaXMuY29weT9RYCA8c2wtY29weS1idXR0b24gLnZhbHVlPSR7dGhpcy5jb3B5fHwiIn0+CiAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgIHNsb3Q9ImNvcHktaWNvbiIKICAgICAgICAgICAgICAgIC5zdmc9JHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNNDY0IDBIMTQ0Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djQ4SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djMyMGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDMyMGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di00OGg0OGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTM2MiA0NjRINTRhNiA2IDAgMCAxLTYtNlYxNTBhNiA2IDAgMCAxIDYtNmg0MnYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyMjR2NDJhNiA2IDAgMCAxLTYgNnptOTYtOTZIMTUwYTYgNiAwIDAgMS02LTZWNTRhNiA2IDAgMCAxIDYtNmgzMDhhNiA2IDAgMCAxIDYgNnYzMDhhNiA2IDAgMCAxLTYgNnoiLz48L3N2Zz4nfQogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgc2xvdD0ic3VjY2Vzcy1pY29uIgogICAgICAgICAgICAgICAgLnN2Zz0keyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0xNzMuODk4IDQzOS40MDRsLTE2Ni40LTE2Ni40Yy05Ljk5Ny05Ljk5Ny05Ljk5Ny0yNi4yMDYgMC0zNi4yMDRsMzYuMjAzLTM2LjIwNGM5Ljk5Ny05Ljk5OCAyNi4yMDctOS45OTggMzYuMjA0IDBMMTkyIDMxMi42OSA0MzIuMDk1IDcyLjU5NmM5Ljk5Ny05Ljk5NyAyNi4yMDctOS45OTcgMzYuMjA0IDBsMzYuMjAzIDM2LjIwNGM5Ljk5NyA5Ljk5NyA5Ljk5NyAyNi4yMDYgMCAzNi4yMDRsLTI5NC40IDI5NC40MDFjLTkuOTk4IDkuOTk3LTI2LjIwNyA5Ljk5Ny0zNi4yMDQtLjAwMXoiLz48L3N2Zz4nfQogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgc2xvdD0iZXJyb3ItaWNvbiIKICAgICAgICAgICAgICAgIC5zdmc9JHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNTIgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNMjQyLjcyIDI1NmwxMDAuMDctMTAwLjA3YzEyLjI4LTEyLjI4IDEyLjI4LTMyLjE5IDAtNDQuNDhsLTIyLjI0LTIyLjI0Yy0xMi4yOC0xMi4yOC0zMi4xOS0xMi4yOC00NC40OCAwTDE3NiAxODkuMjggNzUuOTMgODkuMjFjLTEyLjI4LTEyLjI4LTMyLjE5LTEyLjI4LTQ0LjQ4IDBMOS4yMSAxMTEuNDVjLTEyLjI4IDEyLjI4LTEyLjI4IDMyLjE5IDAgNDQuNDhMMTA5LjI4IDI1NiA5LjIxIDM1Ni4wN2MtMTIuMjggMTIuMjgtMTIuMjggMzIuMTkgMCA0NC40OGwyMi4yNCAyMi4yNGMxMi4yOCAxMi4yOCAzMi4yIDEyLjI4IDQ0LjQ4IDBMMTc2IDMyMi43MmwxMDAuMDcgMTAwLjA3YzEyLjI4IDEyLjI4IDMyLjIgMTIuMjggNDQuNDggMGwyMi4yNC0yMi4yNGMxMi4yOC0xMi4yOCAxMi4yOC0zMi4xOSAwLTQ0LjQ4TDI0Mi43MiAyNTZ6Ii8+PC9zdmc+J30KICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgIDwvc2wtY29weS1idXR0b24+YDpYfQogICAgICA8L2Rpdj5gfX07dChbeWUoe3R5cGU6U3RyaW5nfSldLCRpLnByb3RvdHlwZSwiY29weSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sJGkucHJvdG90eXBlLCJsYWJlbCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sJGkucHJvdG90eXBlLCJjbGFzcyIsdm9pZCAwKSwkaT1jaT10KFtnZSgid3ItbGFiZWxlZC1maWVsZCIpXSwkaSk7Y2xhc3MgemkgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pdGVtPW51bGwsdGhpcy5kZXRhaWxlZD0hMSx0aGlzLmNhbkRlbGV0ZT0hMX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZSh6aS5jb21wU3R5bGVzKX1zdGF0aWMgZ2V0IGNvbXBTdHlsZXMoKXtyZXR1cm4gaGAKICAgICAgLmNvbHVtbnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5jb2x1bW4gewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMHB4OwogICAgICB9CgogICAgICA6aG9zdCguaXMtbGlzdCkgLmNvbHVtbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICA6aG9zdCguaXMtbGlzdCkgLmNvbHVtbiB7CiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICAgICAgfQoKICAgICAgLmNvbC10aXRsZTpob3ZlciB7CiAgICAgIH0KICAgICAgLmNvbC10aXRsZSBhIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLmNvbHVtbjpob3ZlciA+IC5jb3B5LAogICAgICAuY29sLWNvbnRlbnQ6aG92ZXIgLmNvcHksCiAgICAgIC5jb3B5OmhvdmVyIHsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgfQogICAgICAuY29weSB7CiAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIG1hcmdpbjogLTRweCAwIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDAuNGVtOwogICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQogICAgICAuY29weTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKICAgICAgfQogICAgICAuY29sLWNvbnRlbnQgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAjMWYyOTM3OwogICAgICB9CiAgICAgIC5taW5paGVhZCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQogICAgYH1yZW5kZXJTb3VyY2UoZT0hMCl7Y29uc3QgdD10aGlzLml0ZW07cmV0dXJuIFFgCiAgICAgIDx3ci1sYWJlbGVkLWZpZWxkCiAgICAgICAgbGFiZWw9IlNvdXJjZSIKICAgICAgICBjb3B5PSIke3Quc291cmNlVXJsfSIKICAgICAgICBjbGFzcz0iY29sdW1uIGlzLTQiCiAgICAgICAgPiR7dC5zb3VyY2VVcmwmJih0LnNvdXJjZVVybC5zdGFydHNXaXRoKCJodHRwOi8vIil8fHQuc291cmNlVXJsLnN0YXJ0c1dpdGgoImh0dHBzOi8vIikpP1FgIDxhIGhyZWY9IiR7dC5zb3VyY2VVcmx9Ij4ke3Quc291cmNlVXJsfTwvYT4gYDpRYCAke3Quc291cmNlVXJsfWB9CiAgICAgICAgJHt0LnNvdXJjZVVybCYmdC5zb3VyY2VVcmwuc3RhcnRzV2l0aCgiZ29vZ2xlZHJpdmU6Ly8iKT9RYCA8aT4oJHt0LmZpbGVuYW1lfSk8L2k+YDpYfQogICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CiAgICAgICR7ZT9RYDx3ci1sYWJlbGVkLWZpZWxkCiAgICAgICAgICAgIGxhYmVsPSJBcmNoaXZlZCBJdGVtIElEIgogICAgICAgICAgICAuY29weT0ke3QuY29sbH0KICAgICAgICAgICAgY2xhc3M9ImNvbHVtbiIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0LmNvbGx8fCJObyBJRCJ9CiAgICAgICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+YDpYfQogICAgICA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iRGF0ZSBMb2FkZWQiIGNsYXNzPSJjb2x1bW4gaXMtMiI+CiAgICAgICAgJHt0LmN0aW1lP0F0LmZvcm1hdChuZXcgRGF0ZSh0LmN0aW1lKSk6WH0KICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPgogICAgICA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iVG90YWwgU2l6ZSIgY2xhc3M9ImNvbHVtbiBpcy0yIj4KICAgICAgICAke0V0KCkoTnVtYmVyKHQudG90YWxTaXplfHx0LnNpemV8fDApKX0KICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPgogICAgYH1yZW5kZXJTdW1tYXJ5Vmlldygpe2NvbnN0IGU9dGhpcy5pdGVtO3JldHVybiBRYCA8ZGl2IGNsYXNzPSJjb2x1bW5zIj4KICAgICAgPGRpdiBjbGFzcz0iY29sdW1uIGNvbC10aXRsZSBpcy00Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ic3VidGl0bGUgaGFzLXRleHQtd2VpZ2h0LWJvbGQiPgogICAgICAgICAgPGEgaHJlZj0iP3NvdXJjZT0ke2VuY29kZVVSSUNvbXBvbmVudChlLnNvdXJjZVVybCl9IgogICAgICAgICAgICA+JHtlLm5hbWV8fGUudGl0bGV8fGUuZmlsZW5hbWV9PC9hCiAgICAgICAgICA+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnJlbmRlclNvdXJjZSghMSl9CiAgICA8L2Rpdj5gfXJlbmRlckRldGFpbGVkKCl7Y29uc3QgZT10aGlzLml0ZW0se251bVZhbGlkOnQ9MCxudW1JbnZhbGlkOmk9MCxkb21haW46byxjZXJ0RmluZ2VycHJpbnQ6bixkYXRhcGFja2FnZUhhc2g6cixwdWJsaWNLZXk6cyxzb2Z0d2FyZTphfT10aGlzLml0ZW0udmVyaWZ5fHx7fSxsPW4/YGh0dHBzOi8vY3J0LnNoLz9xPSR7bn1gOiIiO3JldHVybiBRYCA8ZGl2IGNsYXNzPSJjb2x1bW5zIj4KICAgICAgJHtlLm5hbWV8fGUudGl0bGU/UWA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iVGl0bGUiIGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICAke2UubmFtZXx8ZS50aXRsZX0KICAgICAgICAgIDwvd3ItbGFiZWxlZC1maWVsZD5gOlh9CiAgICAgIDx3ci1sYWJlbGVkLWZpZWxkIGxhYmVsPSJGaWxlbmFtZSIgY2xhc3M9ImNvbHVtbiI+CiAgICAgICAgJHtlLmZpbGVuYW1lfQogICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CiAgICAgICR7ZS5yZXNvdXJjZXM/UWA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iRmlsZXMiIGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICA8b2wgc3R5bGU9InBhZGRpbmc6IHJldmVydCI+CiAgICAgICAgICAgICAgJHsKLyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTEMKICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKi8KZnVuY3Rpb24qKGUsdCl7aWYodm9pZCAwIT09ZSl7bGV0IGk9MDtmb3IoY29uc3QgbyBvZiBlKXlpZWxkIHQobyxpKyspfX0oZS5yZXNvdXJjZXMsKGU9PlFgPGxpPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7ZS5wYXRofSI+JHtlLm5hbWUrIlxuIn08L2E+CiAgICAgICAgICAgICAgICAgIDwvbGk+YCkpfQogICAgICAgICAgICA8L29sPgogICAgICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPmA6WH0KICAgICAgJHt0aGlzLnJlbmRlclNvdXJjZSgpfQogICAgICAke28/UWAKICAgICAgICAgICAgPHdyLWxhYmVsZWQtZmllbGQgbGFiZWw9Ik9ic2VydmVkIEJ5IiBjbGFzcz0iY29sdW1uIj4KICAgICAgICAgICAgICA8cD4ke299PC9wPgogICAgICAgICAgICAgICR7bD9RYDxzcGFuCiAgICAgICAgICAgICAgICAgICAgPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIke2x9IgogICAgICAgICAgICAgICAgICAgICAgPiZuYnNwO1ZpZXcgQ2VydGlmaWNhdGU8L2EKICAgICAgICAgICAgICAgICAgICA+PC9zcGFuCiAgICAgICAgICAgICAgICAgID5gOlh9CiAgICAgICAgICAgIDwvd3ItbGFiZWxlZC1maWVsZD4KICAgICAgICAgIGA6WH0KICAgICAgJHthP1FgCiAgICAgICAgICAgIDx3ci1sYWJlbGVkLWZpZWxkIGxhYmVsPSJDcmVhdGVkIFdpdGgiIGNsYXNzPSJjb2x1bW4iPgogICAgICAgICAgICAgICR7YXx8IlVua25vd24ifQogICAgICAgICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CiAgICAgICAgICBgOlh9CgogICAgICA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iVmFsaWRhdGlvbiIgY2xhc3M9ImNvbHVtbiI+CiAgICAgICAgJHt0PjB8fGk+MD9RYCA8cD4KICAgICAgICAgICAgICAke3R9IGhhc2hlcwogICAgICAgICAgICAgIHZlcmlmaWVkJHtpP1FgLCAke2l9IGludmFsaWRgOlh9CiAgICAgICAgICAgIDwvcD5gOlFgIE5vdCBBdmFpbGFibGVgfQogICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CgogICAgICA8d3ItbGFiZWxlZC1maWVsZAogICAgICAgIGxhYmVsPSJQYWNrYWdlIEhhc2giCiAgICAgICAgY2xhc3M9ImNvbHVtbiIKICAgICAgICAuY29weT0ke3J9CiAgICAgID4KICAgICAgICAke3J8fCJOb3QgQXZhaWxhYmxlIn0KICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPgoKICAgICAgPHdyLWxhYmVsZWQtZmllbGQKICAgICAgICBsYWJlbD0iT2JzZXJ2ZXIgUHVibGljIEtleSIKICAgICAgICBjbGFzcz0iY29sdW1uIgogICAgICAgIC5jb3B5PSR7c30KICAgICAgPgogICAgICAgICR7c3x8Ik5vdCBBdmFpbGFibGUifQogICAgICA8L3dyLWxhYmVsZWQtZmllbGQ+CgogICAgICA8d3ItbGFiZWxlZC1maWVsZCBsYWJlbD0iTG9hZGluZyBNb2RlIiBjbGFzcz0iY29sdW1uIj4KICAgICAgICAke2Uub25EZW1hbmQ/IkRvd25sb2FkIE9uLURlbWFuZCI6IkZ1bGx5IExvY2FsIn0KICAgICAgPC93ci1sYWJlbGVkLWZpZWxkPgogICAgPC9kaXY+YH1yZW5kZXIoKXtyZXR1cm4gdGhpcy5kZXRhaWxlZD90aGlzLnJlbmRlckRldGFpbGVkKCk6dGhpcy5yZW5kZXJTdW1tYXJ5VmlldygpfW9uQ29weShlLHQpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0JiZuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0KSwhMX1vblB1cmdlKGUpe2NvbnN0IHQ9e3JlbG9hZDplfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXB1cmdlIix7ZGV0YWlsOnR9KSl9fXQoW3llKHt0eXBlOk9iamVjdH0pXSx6aS5wcm90b3R5cGUsIml0ZW0iLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSx6aS5wcm90b3R5cGUsImRldGFpbGVkIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0semkucHJvdG90eXBlLCJjYW5EZWxldGUiLHZvaWQgMCksY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ3ci1pdGVtLWluZm8iLHppKTtjb25zdCBfaT0ic2VhcmNoOi8vIjtjbGFzcyBDaSBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmluaXRlZD0hMSx0aGlzLnNvdXJjZVVybD1udWxsLHRoaXMuZG93bmxvYWRVcmw9bnVsbCx0aGlzLmxvYWRJbmZvPW51bGwsdGhpcy5zaG93U2lkZWJhcj1udWxsLHRoaXMuaXRlbUluZm89bnVsbCx0aGlzLml0ZW09IiIsdGhpcy5oYXNTdG9yeT0hMSx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLnRhYkRhdGE9e30sdGhpcy51cmw9IiIsdGhpcy50cz0iIix0aGlzLmlzRnVsbHNjcmVlbj1udWxsLHRoaXMubWVudUFjdGl2ZT0hMSx0aGlzLmVtYmVkPW51bGwsdGhpcy5lbWJlZERyb3Bkb3duQWN0aXZlPSExLHRoaXMuZWRpdGFibGU9ITEsdGhpcy5icm93c2FibGU9ITAsdGhpcy5jbGVhcmFibGU9ITAsdGhpcy5pc1Zpc2libGU9ITAsdGhpcy5mYXZJY29uVXJsPSIiLHRoaXMuYXBwTmFtZT0iUmVwbGF5V2ViLnBhZ2UiLHRoaXMuYXBwVmVyc2lvbj1qZSx0aGlzLmF1dG9VcGRhdGVJbnRlcnZhbD0xMCx0aGlzLnN3TmFtZT1udWxsLHRoaXMucmVwbGF5Tm90Rm91bmRFcnJvcj0hMSx0aGlzLm11bHRpVHM9W10sdGhpcy5zcGxpdHRlcj1udWxsLHRoaXMuX3JlcGxhY2VMb2M9ITEsdGhpcy5fbG9jVXBkYXRlTmVlZGVkPSExLHRoaXMuX2xvY2F0aW9uSGFzaD0iIix0aGlzLl9hdXRvVXBkYXRlcj1udWxsLHRoaXMuYXJjaGl2ZUluZm9EaWFsb2c9dXQoKSx0aGlzLnRhYk5hbWVzPVsicGFnZXMiLCJzdG9yeSIsInJlc291cmNlcyIsImluZm8iXSx0aGlzLnRhYkxhYmVscz17cGFnZXM6IlBhZ2VzIixzdG9yeToiU3RvcnkiLHJlc291cmNlczoiVVJMcyJ9LHRoaXMuX2xhc3RVcmxVcGRhdGU9bnVsbCx0aGlzLnNob3dTaWRlYmFyPSIxIj09PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJwYWdlczpzaG93U2lkZWJhciIpJiZ0aGlzLmJyb3dzYWJsZX1maXJzdFVwZGF0ZWQoKXt0aGlzLmluaXRlZD0hMCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsKCgpPT50aGlzLm9uSGFzaENoYW5nZSgpKSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJmdWxsc2NyZWVuY2hhbmdlIiwoKCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fSkpLHRoaXMuZW1iZWQmJnRoaXMubG9hZEluZm8mJnRoaXMubG9hZEluZm8uaGlkZU9mZnNjcmVlbiYmKHRoaXMub2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlPT57dGhpcy5pc1Zpc2libGU9ZVswXS5pc0ludGVyc2VjdGluZ30pKSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcykpfXJ1blVwZGF0ZUxvb3AoKXt2YXIgZTtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RyeXtmb3IoO3RoaXMuZWRpdGFibGUmJnRoaXMuYXV0b1VwZGF0ZUludGVydmFsJiYoIShudWxsPT09KGU9dGhpcy5pdGVtSW5mbyl8fHZvaWQgMD09PWU/dm9pZCAwOmUucGFnZXMpfHx0aGlzLml0ZW1JbmZvLnBhZ2VzLmxlbmd0aDwxMDApOyl5aWVsZCBuZXcgUHJvbWlzZSgoZT0+c2V0VGltZW91dChlLDFlMyp0aGlzLmF1dG9VcGRhdGVJbnRlcnZhbCkpKSx5aWVsZCB0aGlzLmRvVXBkYXRlSW5mbyghMCl9ZmluYWxseXt0aGlzLl9hdXRvVXBkYXRlcj1udWxsfX0pKX1nZXRNdWx0aVRpbWVzdGFtcHMoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKCF0aGlzLnRhYkRhdGEudXJsKXJldHVybjtjb25zdCBlPXlpZWxkIGZldGNoKE9lKyIvYy8iK3RoaXMuaXRlbSsiL3RzLz91cmw9Iit3aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMudGFiRGF0YS51cmwpKTtpZigyMDAhPT1lLnN0YXR1cylyZXR1cm4gdm9pZCh0aGlzLm11bHRpVHM9W10pO2NvbnN0IHQ9eWllbGQgZS5qc29uKCk7dGhpcy5tdWx0aVRzPXQudGltZXN0YW1wc30pKX13aWxsVXBkYXRlKGUpe2lmKGUuaGFzKCJ0YWJEYXRhIikpe2NvbnN0IHQ9e307T2JqZWN0LmVudHJpZXModGhpcy50YWJEYXRhKS5mb3JFYWNoKCgoW2UsaV0pPT57aSYmKHRbZV09aSl9KSksdGhpcy50YWJEYXRhPXQ7Y29uc3QgaT1lLmdldCgidGFiRGF0YSIpO3RoaXMudGFiRGF0YS51cmwmJnRoaXMudGFiRGF0YS51cmwhPT0obnVsbD09aT92b2lkIDA6aS51cmwpJiZ0aGlzLmdldE11bHRpVGltZXN0YW1wcygpfX11cGRhdGVkKGUpe3ZhciB0O2lmKGUuaGFzKCJzb3VyY2VVcmwiKSYmdGhpcy5kb1VwZGF0ZUluZm8oKSxlLmhhcygiZWRpdGFibGUiKSYmdGhpcy5lZGl0YWJsZSYmdGhpcy5hdXRvVXBkYXRlSW50ZXJ2YWwmJiF0aGlzLl9hdXRvVXBkYXRlciYmKHRoaXMuX2F1dG9VcGRhdGVyPXRoaXMucnVuVXBkYXRlTG9vcCgpKSxlLmhhcygidGFiRGF0YSIpKXtpZighKG51bGw9PT0odD10aGlzLml0ZW1JbmZvKXx8dm9pZCAwPT09dD92b2lkIDA6dC5jb2xsKSlyZXR1cm47Y29uc3QgaT0iIyIrbmV3IFVSTFNlYXJjaFBhcmFtcyh0aGlzLnRhYkRhdGEpLnRvU3RyaW5nKCk7aWYodGhpcy50YWJEYXRhLnVybHx8KHRoaXMudXJsPV9pK2RlY29kZVVSSUNvbXBvbmVudCh0aGlzLl9wYXJhbXNUb1N0cmluZyh0aGlzLnRhYkRhdGEpKSksaSE9PXRoaXMuX2xvY2F0aW9uSGFzaCl7aWYodGhpcy5fbG9jYXRpb25IYXNoPWksdGhpcy5fcmVwbGFjZUxvY3x8MD09PU9iamVjdC5rZXlzKGUuZ2V0KCJ0YWJEYXRhIil8fHt9KS5sZW5ndGgpe2NvbnN0IGU9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7ZS5oYXNoPXRoaXMuX2xvY2F0aW9uSGFzaCx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sIiIsZS5ocmVmKSx0aGlzLl9yZXBsYWNlTG9jPSExfWVsc2UgaWYod2luZG93LmxvY2F0aW9uLmhhc2g9dGhpcy5fbG9jYXRpb25IYXNoLCF0aGlzLnNob3dTaWRlYmFyKXtjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJ3ci1jb2xsLXJlcGxheSIpO2UmJmUuZm9jdXMoKX1pZih0aGlzLmVtYmVkJiZ3aW5kb3cucGFyZW50IT09d2luZG93KXtjb25zdHt1cmw6ZSx0czp0LHZpZXc6aSxxdWVyeTpvLHRpdGxlOm59PXRoaXMudGFiRGF0YSxyPXRoaXMuX2xhc3RVcmxVcGRhdGUscz10aGlzLnJlcGxheU5vdEZvdW5kRXJyb3I7aWYoIXJ8fHIudXJsIT09ZXx8ci50cyE9PXR8fHIudmlldyE9PWl8fHIucXVlcnkhPT1vfHxyLnRpdGxlIT09bil7Y29uc3Qgcj17dHlwZToidXJsY2hhbmdlIix1cmw6ZSx0czp0LHZpZXc6aSxxdWVyeTpvLHRpdGxlOm4scmVwbGF5Tm90Rm91bmRFcnJvcjpzfTt3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHIsIioiKSx0aGlzLl9sYXN0VXJsVXBkYXRlPXJ9fX10aGlzLl9sb2NVcGRhdGVOZWVkZWQ9ITF9ZS5oYXMoInNob3dTaWRlYmFyIikmJih0aGlzLmVtYmVkfHxsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgicGFnZXM6c2hvd1NpZGViYXIiLHRoaXMuc2hvd1NpZGViYXI/IjEiOiIwIikpLChlLmhhcygidGFiRGF0YSIpfHxlLmhhcygic2hvd1NpZGViYXIiKSkmJnRoaXMuY29uZmlndXJlU3BsaXR0ZXIoKX1jb25maWd1cmVTcGxpdHRlcigpe2lmKHRoaXMudGFiRGF0YS51cmwmJnRoaXMuc2hvd1NpZGViYXIpe2NvbnN0IGU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIiNjb250ZW50cyIpLHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIndyLWNvbGwtcmVwbGF5Iik7aWYoZSYmdCYmIXRoaXMuc3BsaXR0ZXIpe2NvbnN0IGk9e3NpemVzOlszMCw3MF0sbWluU2l6ZTpbMzAwLDMwMF0sZ3V0dGVyU2l6ZTo0LG9uRHJhZ1N0YXJ0KCl7dC5zZXREaXNhYmxlUG9pbnRlcighMCl9LG9uRHJhZ0VuZCgpe3Quc2V0RGlzYWJsZVBvaW50ZXIoITEpfX07dGhpcy5zcGxpdHRlcj1laShbZSx0XSxpKX19ZWxzZSBpZih0aGlzLnNwbGl0dGVyKXt0cnl7dGhpcy5zcGxpdHRlci5kZXN0cm95KCl9Y2F0Y2goZSl7fXRoaXMuc3BsaXR0ZXI9bnVsbH19ZG9VcGRhdGVJbmZvKGU9ITEpe3ZhciB0LG8sbixyO3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoZSYmdGhpcy50YWJEYXRhLnVybCYmIXRoaXMuc2hvd1NpZGViYXIpcmV0dXJuO2xldCBpPW51bGw9PT0odD10aGlzLmxvYWRJbmZvKXx8dm9pZCAwPT09dD92b2lkIDA6dC5jdXN0b21Db2xsO2lmKCFpKXtpPSh5aWVsZCBTdCh0aGlzLnNvdXJjZVVybCkpLml0ZW19dGhpcy5pdGVtPWk7Y29uc3Qgcz1PZSsiL2MvIitpLGE9VWUrIi8iK2ksbD15aWVsZCBmZXRjaChzKyI/YWxsPTEiKTtpZigyMDAhPWwuc3RhdHVzKXJldHVybiB2b2lkKHRoaXMuaXRlbUluZm89e30pO2NvbnN0IGM9eWllbGQgbC5qc29uKCk7aWYodGhpcy5pdGVtSW5mbz1PYmplY3QuYXNzaWduKHthcGlQcmVmaXg6cyxyZXBsYXlQcmVmaXg6YSxjb2xsOml9LGMpLG51bGw9PT0obj1udWxsPT09KG89dGhpcy5sb2FkSW5mbyl8fHZvaWQgMD09PW8/dm9pZCAwOm8uZXh0cmFDb25maWcpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmhlYWRlcnMpe2NvbnN0IGU9dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZy5oZWFkZXJzO3lpZWxkIGZldGNoKGAke3N9L3VwZGF0ZUF1dGhgLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2hlYWRlcnM6ZX0pfSl9Y29uc3R7dGl0bGU6ZCxuYW1lOmgsZmlsZW5hbWU6dSxkb3dubG9hZFVybDpmfT10aGlzLml0ZW1JbmZvO2R8fCh0aGlzLml0ZW1JbmZvLnRpdGxlPWh8fHUpLHRoaXMuZG93bmxvYWRVcmw9bnVsbD09PWY/bnVsbDpmfHx0aGlzLnNvdXJjZVVybCwicmVwbGF5b25seSIhPT10aGlzLmVtYmVkJiYicmVwbGF5LXdpdGgtaW5mbyIhPT10aGlzLmVtYmVkfHwodGhpcy5zaG93U2lkZWJhcj0hMSksdGhpcy5oYXNTdG9yeT1Cb29sZWFuKHRoaXMuaXRlbUluZm8uZGVzY3x8KG51bGw9PT0ocj10aGlzLml0ZW1JbmZvLmxpc3RzKXx8dm9pZCAwPT09cj92b2lkIDA6ci5sZW5ndGgpKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsLWxvYWRlZCIse2RldGFpbDp7Y29sbEluZm86dGhpcy5pdGVtSW5mbyxhbHJlYWR5TG9hZGVkOiEwfX0pKSx0aGlzLm9uSGFzaENoYW5nZSgpfSkpfW9uSXRlbUxvYWRlZChlKXt0aGlzLmRvVXBkYXRlSW5mbygpLHRoaXMubG9hZEluZm89bnVsbCxlLmRldGFpbC5zb3VyY2VVcmwmJih0aGlzLnNvdXJjZVVybD1lLmRldGFpbC5zb3VyY2VVcmwpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGwtbG9hZGVkIix7ZGV0YWlsOntzb3VyY2VVcmw6dGhpcy5zb3VyY2VVcmwsY29sbEluZm86dGhpcy5pdGVtSW5mb319KSl9b25JdGVtVXBkYXRlKGUpe3RoaXMuZWRpdGFibGUmJih0aGlzLml0ZW1JbmZvPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLml0ZW1JbmZvKSxlLmRldGFpbCkpfW9uSGFzaENoYW5nZSgpe3ZhciBlLHQsaTtjb25zdCBvPXdpbmRvdy5sb2NhdGlvbi5oYXNoO2lmKG8mJm8hPT10aGlzLl9sb2NhdGlvbkhhc2gmJih0aGlzLnRhYkRhdGE9T2JqZWN0LmZyb21FbnRyaWVzKG5ldyBVUkxTZWFyY2hQYXJhbXMoby5zbGljZSgxKSkuZW50cmllcygpKSx0aGlzLl9sb2NhdGlvbkhhc2g9byksKG51bGw9PT0oZT10aGlzLml0ZW1JbmZvKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jb2xsKSYmKCF0aGlzLnRhYkRhdGEudmlld3x8IXRoaXMudGFiTmFtZXMuaW5jbHVkZXModGhpcy50YWJEYXRhLnZpZXcpKSl7Y29uc3QgZT10aGlzLmhhc1N0b3J5PyJzdG9yeSI6dGhpcy5lZGl0YWJsZXx8KG51bGw9PT0odD10aGlzLml0ZW1JbmZvLnBhZ2VzKXx8dm9pZCAwPT09dD92b2lkIDA6dC5sZW5ndGgpPyJwYWdlcyI6InJlc291cmNlcyI7dGhpcy50YWJEYXRhPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnRhYkRhdGEpLHt2aWV3OmV9KX1pZih0aGlzLnRhYkRhdGEudXJsJiZ0aGlzLnRhYkRhdGEudXJsLnN0YXJ0c1dpdGgoInBhZ2U6Iikpe2NvbnN0IGU9TnVtYmVyKHRoaXMudGFiRGF0YS51cmwuc2xpY2UoNSkpO2lmKChudWxsPT09KGk9dGhpcy5pdGVtSW5mbyl8fHZvaWQgMD09PWk/dm9pZCAwOmkucGFnZXMpJiYhaXNOYU4oZSkmJmU8dGhpcy5pdGVtSW5mby5wYWdlcy5sZW5ndGgpe2NvbnN0IHQ9dGhpcy5pdGVtSW5mby5wYWdlc1tlXTt0aGlzLnRhYkRhdGEudXJsPXQudXJsLHRoaXMudGFiRGF0YS50cz15dCh0KS50aW1lc3RhbXB9fXRoaXMuaGFzU3Rvcnl8fCJzdG9yeSIhPT10aGlzLnRhYkRhdGEudmlld3x8KHRoaXMudGFiRGF0YS52aWV3PSJwYWdlcyIpLHRoaXMudGFiRGF0YS51cmwmJnRoaXMudGFiRGF0YS5xdWVyeSYmdGhpcy5icm93c2FibGUmJih0aGlzLnNob3dTaWRlYmFyPSEwKX1vblRhYkNsaWNrKGUpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImhyZWYiKTtyZXR1cm4gdGhpcy50YWJEYXRhPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnRhYkRhdGEpLHt2aWV3OnQuc2xpY2UoMSl9KSwhMX1vbkl0ZW1UYWJOYXYoZSl7aWYoZS5kZXRhaWwucmVsb2FkKXJldHVybiB2b2lkIHRoaXMub25SZWZyZXNoKG51bGwsITApO2NvbnN0IHQ9ZS50YXJnZXQuaWQse2RhdGE6aSxyZXBsYWNlTG9jOm8scmVwbGF5Tm90Rm91bmRFcnJvcjpufT1lLmRldGFpbDt0aGlzLnJlcGxheU5vdEZvdW5kRXJyb3I9biwodD09PXRoaXMudGFiRGF0YS52aWV3fHwicmVwbGF5Ij09PXQmJnRoaXMudGFiRGF0YS51cmx8fHRoaXMuc2hvd1NpZGViYXImJnRoaXMudGFiRGF0YS51cmwpJiZ0aGlzLnVwZGF0ZVRhYkRhdGEoaSxvKX11cGRhdGVUYWJEYXRhKGUsdD0hMSl7dGhpcy50YWJEYXRhPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnRhYkRhdGEpLGUpLHRoaXMudGFiRGF0YS51cmwmJih0aGlzLnVybD10aGlzLnRhYkRhdGEudXJsfHwiIiksdGhpcy50YWJEYXRhLnRzJiYodGhpcy50cz10aGlzLnRhYkRhdGEudHN8fCIiKSx0aGlzLl9yZXBsYWNlTG9jPSF0aGlzLl9sb2NVcGRhdGVOZWVkZWQmJnQsdGhpcy5fbG9jVXBkYXRlTmVlZGVkPSEwfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKENpLmNvbXBTdHlsZXMpfXN0YXRpYyBnZXQgY29tcFN0eWxlcygpe3JldHVybiBoYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtaW4td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLmljb24gewogICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsKICAgICAgfQoKICAgICAgLmJhY2sgZmEtaWNvbiB7CiAgICAgICAgd2lkdGg6IDEuNWVtOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207CiAgICAgICAgbGluZS1oZWlnaHQ6IDAuNWVtOwogICAgICB9CgogICAgICBsaS5pcy1hY3RpdmUgewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7cWU/aGAxMTYzcHhgOmhgMTA1M3B4YH0pIHsKICAgICAgICAudGFiLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubWFpbi50YWJzIHNwYW4uaWNvbiB7CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tYWluLnRhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IHVuc2V0OwogICAgICB9CgogICAgICAubWFpbi50YWJzIHVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tYWluLnRhYnMgbGkgewogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgcGFkZGluZzogNnB4IDAgNHB4IDA7CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDMxOXB4KSB7CiAgICAgICAgLm1haW4udGFicyBsaSBhIHsKICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDsKICAgICAgICAgIHBhZGRpbmctbGVmdDogNHB4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNpZGViYXIubWFpbi50YWJzIGxpIGEgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDZweDsKICAgICAgfQoKICAgICAgI2NvbnRlbnRzIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG1pbi1oZWlnaHQ6IDBweDsKICAgICAgICBmbGV4OiBhdXRvOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAjdGFiQ29udGVudHMgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgbWluLWhlaWdodDogMHB4OwogICAgICAgIGZsZXg6IGF1dG87CiAgICAgIH0KCiAgICAgIHJ3cC1lbWJlZC1yZWNlaXB0IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIH0KCiAgICAgICR7RHQuZW1iZWRTdHlsZXN9CgogICAgICAke0NpLnJlcGxheUJhclN0eWxlc30KICAgIGB9c3RhdGljIGdldCByZXBsYXlCYXJTdHlsZXMoKXtyZXR1cm4gaGAKICAgICAgLmJyZWFkYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAzNXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IGFsaWNlYmx1ZTsKICAgICAgICBwYWRkaW5nOiAwLjVlbTsKICAgICAgfQoKICAgICAgLnJlcGxheS1iYXIgewogICAgICAgIHBhZGRpbmc6IDAuNWVtOwogICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAwLjFyZW0gIzk3OTg5YTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgaW5wdXQjdXJsIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5mYXZpY29uIGltZyB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIG1hcmdpbjogOHB4OwogICAgICAgIC8qZmlsdGVyOiBkcm9wLXNoYWRvdygxcHggMXB4IDJweCBncmV5KTsqLwogICAgICB9CgogICAgICAjZGF0ZXRpbWUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMC41cmVtOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgdG9wOiAxcHg7CiAgICAgICAgYm90dG9tOiAxcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyOwogICAgICB9CgogICAgICAvKiBHcmFkaWVudCB0byBpbmRpY2F0ZSBVUkwgY2xpcHBpbmcgKi8KICAgICAgI2RhdGV0aW1lOmJlZm9yZSB7CiAgICAgICAgY29udGVudDogIiI7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMmVtOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAgIDkwZGVnLAogICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSwKICAgICAgICAgICNmZmYgNTAlLAogICAgICAgICAgI2ZmZgogICAgICAgICk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAtZHJvcGRvd24tYnRuIHsKICAgICAgICBhbGw6IHVuc2V0OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogdmFyKC0tc2wtc3BhY2luZy14LXNtYWxsKTsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tc2wtdHJhbnNpdGlvbi1mYXN0KTsKICAgICAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC02MDApOwogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAtZHJvcGRvd24tYnRuOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC05MDApOwogICAgICB9CgogICAgICAudGltZXN0YW1wLWRyb3Bkb3duLWJ0bjpob3ZlciAudGltZXN0YW1wLWNvdW50LWJhZGdlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1ibHVlLTYwMCk7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAtY291bnQtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGdhcDogdmFyKC0tc2wtc3BhY2luZy0yeC1zbWFsbCk7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3ItYmx1ZS01MDApOwogICAgICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmctM3gtc21hbGwpIHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtYm9yZGVyLXJhZGl1cy1zbWFsbCk7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1zbC10cmFuc2l0aW9uLWZhc3QpOwogICAgICB9CgogICAgICAudGltZXN0YW1wLWNvdW50IHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjA3NWVtKTsKICAgICAgfQoKICAgICAgLnRpbWVzdGFtcC1tZW51LWl0ZW0gewogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAtbWVudS1pdGVtW2FyaWEtc2VsZWN0ZWQ9InRydWUiXTo6cGFydChsYWJlbCkgewogICAgICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1ibHVlLTYwMCk7CiAgICAgIH0KCiAgICAgIC5tZW51LWhlYWQgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAubWVudS1sb2dvIHsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CiAgICAgIC5tZW51LXZlcnNpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgfQogICAgICAuZHJvcGRvd24taXRlbS5pbmZvIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzICsgI2RhdGV0aW1lIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAuZ3JleS1kaXNhYmxlZCB7CiAgICAgICAgLS1mYS1pY29uLWZpbGwtY29sb3I6IGxpZ2h0Z3JleTsKICAgICAgICBjb2xvcjogbGlnaHRncmV5OwogICAgICB9CgogICAgICAucmVwbGF5LWJhciAuYnV0dG9uOmZvY3VzIHsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAuaXMtYm9yZGVybGVzcyB7CiAgICAgICAgYm9yZGVyOiAwcHg7CiAgICAgIH0KCiAgICAgIC5uYXJyb3cgewogICAgICAgIHBhZGRpbmc6IGNhbGMoMC41ZW0gLSAxcHgpIDAuOGVtOwogICAgICB9CgogICAgICBmb3JtIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW46IDAgMCAwIDAuNWVtOwogICAgICB9CgogICAgICAuZ3V0dGVyLmd1dHRlci1ob3Jpem9udGFsIHsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1MSwgMTUyLCAxNTQpOwogICAgICB9CgogICAgICAuZ3V0dGVyLmd1dHRlci1ob3Jpem9udGFsOmhvdmVyIHsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgIH0KCiAgICAgIG1haW4sCiAgICAgIHdyLWNvbGwtcmVwbGF5IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmlzLWxpc3QgewogICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgIH0KCiAgICAgICNjb250ZW50cy5mdWxsLXBhZ2VzIHsKICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuc2lkZWJhci1uYXYgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAuc2lkZWJhci1uYXYgYSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJvcmRlci1ib3R0b206IDBweDsKICAgICAgfQoKICAgICAgLnNpZGViYXItbmF2IHNwYW4ubmF2LWhvdmVyIHsKICAgICAgICBmb250LXNpemU6IHNtYWxsZXI7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnNpZGViYXItbmF2OmhvdmVyIHNwYW4ubmF2LWhvdmVyLAogICAgICAuc2lkZWJhci1uYXY6Zm9jdXMtd2l0aGluIHNwYW4ubmF2LWhvdmVyIHsKICAgICAgICBkaXNwbGF5OiBpbml0aWFsOwogICAgICAgIGNvbG9yOiByZ2IoNzIsIDExOCwgMjU1KTsKICAgICAgfQoKICAgICAgLnNpZGViYXItbmF2IGZhLWljb24gewogICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLW5hdjpob3ZlciBmYS1pY29uIHsKICAgICAgICBjb2xvcjogcmdiKDcyLCAxMTgsIDI1NSk7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLW5hdi5sZWZ0IHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLW5hdi5yaWdodCB7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgfQoKICAgICAgLyogU2luY2UgdGhlIHJlcGxheSBzb21ldGltZXMgcHJvZ3JhbW1hdGljYWxseSByZWNlaXZlcyBrZXlib2FyZCBmb2N1cywKICAgICAgIGFuZCB0aGF0IGlzIHZpc3VhbGx5IHVuZXhwZWN0ZWQgZm9yIG1vdXNlLXVzZXJzLCBhbmQgc2luY2UgdGhpcyB3b24ndAogICAgICAgcGFydGljdWxhcmx5IHRyaXAgdXAga2V5Ym9hcmQgdXNlcnMsIGp1c3QgcmVtb3ZlIHRoZSBmb2N1cyBzdHlsZS4gKi8KICAgICAgd3ItY29sbC1yZXBsYXk6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgLyogU29tZSBrZXlib2FyZC11c2VycyBtYXkgc2VlIHRoaXMgcmVwbGFjZW1lbnQgc3R5bGUgKi8KICAgICAgd3ItY29sbC1yZXBsYXk6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYig3MiwgMTE4LCAyNTUpOwogICAgICB9CiAgICBgfXJlbmRlcigpe3ZhciBlO2lmKCF0aGlzLmluaXRlZClyZXR1cm4gUWBgO2NvbnN0IHQ9ISF0aGlzLnRhYkRhdGEudXJsLGk9dCYmdGhpcy5zaG93U2lkZWJhcjtpZighdCYmKG51bGw9PT0oZT10aGlzLnRhYkRhdGEpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZpZXcpKXtjb25zdCBlPXt0aXRsZTp0aGlzLnRhYkxhYmVsc1t0aGlzLnRhYkRhdGEudmlld10scmVwbGF5VGl0bGU6ITF9O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVwZGF0ZS10aXRsZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOmV9KSl9cmV0dXJuIHRoaXMuaXRlbUluZm8mJiF0aGlzLml0ZW1JbmZvLmNvbGw/UWAgPHdyLWxvYWRlcgogICAgICAgIC5sb2FkSW5mbz0iJHt0aGlzLmxvYWRJbmZvfSIKICAgICAgICBlbWJlZD0iJHt0aGlzLmVtYmVkfHwiIn0iCiAgICAgICAgc3dOYW1lPSIkeyRlKG51bGw9PT10aGlzLnN3TmFtZT92b2lkIDA6dGhpcy5zd05hbWUpfSIKICAgICAgICAuY29sbD0iJHt0aGlzLml0ZW19IgogICAgICAgIHNvdXJjZVVybD0iJHt0aGlzLnNvdXJjZVVybHx8IiJ9IgogICAgICAgIEBjb2xsLWxvYWRlZD0ke3RoaXMub25JdGVtTG9hZGVkfQogICAgICA+PC93ci1sb2FkZXI+YDp0aGlzLml0ZW1JbmZvP1FgCiAgICAgICAgJHt0aGlzLnJlbmRlckxvY2F0aW9uQmFyKCl9ICR7dGhpcy5yZW5kZXJWZXJpZnlJbmZvKCl9CiAgICAgICAgPHNsLWRpYWxvZyBsYWJlbD0iQXJjaGl2ZSBJbmZvIiAke210KHRoaXMuYXJjaGl2ZUluZm9EaWFsb2cpfT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJJdGVtSW5mbygpfQogICAgICAgICAgPHNsLWJ1dHRvbgogICAgICAgICAgICBzbG90PSJmb290ZXIiCiAgICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCiAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uSGlkZUluZm9EaWFsb2d9IgogICAgICAgICAgICA+Q2xvc2U8L3NsLWJ1dHRvbgogICAgICAgICAgPgogICAgICAgIDwvc2wtZGlhbG9nPgogICAgICAgIDxkaXYgaWQ9InRhYkNvbnRlbnRzIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgaWQ9ImNvbnRlbnRzIgogICAgICAgICAgICBjbGFzcz0iaXMtbGlnaHQgJHtpPyJzaWRlYmFyIjp0PyJpcy1oaWRkZW4iOiJmdWxsLXBhZ2VzIn0iCiAgICAgICAgICAgIHJvbGU9IiR7JGUoaT8iY29tcGxlbWVudGFyeSI6dm9pZCAwKX0iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IiR7aT8iQnJvd3NlIENvbnRlbnRzIjoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJUYWJIZWFkZXIoaSl9CiAgICAgICAgICAgICR7aXx8IXQ/dGhpcy5yZW5kZXJJdGVtVGFicyhpKTpRYGB9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3QmJnRoaXMuaXNWaXNpYmxlP1FgCiAgICAgICAgICAgICAgICA8d3ItY29sbC1yZXBsYXkKICAgICAgICAgICAgICAgICAgcm9sZT0ibWFpbiIKICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgICAgICAgICAuY29sbEluZm89IiR7dGhpcy5pdGVtSW5mb30iCiAgICAgICAgICAgICAgICAgIHNvdXJjZVVybD0iJHt0aGlzLnNvdXJjZVVybHx8IiJ9IgogICAgICAgICAgICAgICAgICB1cmw9IiR7dGhpcy50YWJEYXRhLnVybHx8IiJ9IgogICAgICAgICAgICAgICAgICB0cz0iJHt0aGlzLnRhYkRhdGEudHN8fCIifSIKICAgICAgICAgICAgICAgICAgd2Fjemhhc2g9IiR7dGhpcy50YWJEYXRhLndhY3poYXNofHwiIn0iCiAgICAgICAgICAgICAgICAgIEBjb2xsLXRhYi1uYXY9IiR7dGhpcy5vbkl0ZW1UYWJOYXZ9IgogICAgICAgICAgICAgICAgICBpZD0icmVwbGF5IgogICAgICAgICAgICAgICAgICBAcmVwbGF5LWxvYWRpbmc9IiR7dGhpcy5vblJlcGxheUxvYWRpbmd9IgogICAgICAgICAgICAgICAgICBAcmVwbGF5LWZhdmljb25zPSIke3RoaXMub25GYXZJY29uc30iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8L3dyLWNvbGwtcmVwbGF5PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6UWBgfXJlbmRlclRhYkhlYWRlcihlKXtyZXR1cm4gUWAgPG5hdgogICAgICBjbGFzcz0ibWFpbiB0YWJzIGlzLWNlbnRlcmVkICR7ZT8ic2lkZWJhciI6IiJ9IgogICAgICBhcmlhLWxhYmVsPSJ0YWJzIgogICAgPgogICAgICA8dWw+CiAgICAgICAgJHtlP1FgIDxsaSBjbGFzcz0ic2lkZWJhci1uYXYgbGVmdCI+CiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkhpZGVTaWRlYmFyfSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBjbGFzcz0iaXMtbWFyZ2lubGVzcyBpcy1zaXplLTYgaXMtcGFkZGluZ2xlc3MiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgdGl0bGU9IkhpZGUiCiAgICAgICAgICAgICAgICAgIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjU2IDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTMxLjcgMjM5bDEzNi0xMzZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjIuNiAyMi42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDEyNy45IDI1Nmw5Ni40IDk2LjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjAxLjcgNDA5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMTM2LTEzNmMtOS41LTkuNC05LjUtMjQuNi0uMS0zNHoiLz48L3N2Zz4nfSIKICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hdi1ob3ZlciIgYXJpYS1oaWRkZW49InRydWUiPkhpZGU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXMtc3Itb25seSI+SGlkZSBTaWRlYmFyPC9zcGFuPgogICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT5gOiIifQogICAgICAgICR7dGhpcy5oYXNTdG9yeT9RYCA8bGkKICAgICAgICAgICAgICBjbGFzcz0iJHsic3RvcnkiPT09dGhpcy50YWJEYXRhLnZpZXc/ImlzLWFjdGl2ZSI6IiJ9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uVGFiQ2xpY2t9IgogICAgICAgICAgICAgICAgaHJlZj0iI3N0b3J5IgogICAgICAgICAgICAgICAgY2xhc3M9ImlzLXNpemUtNiIKICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IlN0b3J5IgogICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PSIkeyRlKCJzdG9yeSI9PT10aGlzLnRhYkRhdGEudmlldz8ibG9jYXRpb24iOnZvaWQgMCl9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgICAgICA+PGZhLWljb24KICAgICAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik00NDggMzYwVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDk2QzQzIDAgMCA0MyAwIDk2djMyMGMwIDUzIDQzIDk2IDk2IDk2aDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMTZjMC03LjUtMy41LTE0LjMtOC45LTE4LjctNC4yLTE1LjQtNC4yLTU5LjMgMC03NC43IDUuNC00LjMgOC45LTExLjEgOC45LTE4LjZ6TTEyOCAxMzRjMC0zLjMgMi43LTYgNi02aDIxMmMzLjMgMCA2IDIuNyA2IDZ2MjBjMCAzLjMtMi43IDYtNiA2SDEzNGMtMy4zIDAtNi0yLjctNi02di0yMHptMCA2NGMwLTMuMyAyLjctNiA2LTZoMjEyYzMuMyAwIDYgMi43IDYgNnYyMGMwIDMuMy0yLjcgNi02IDZIMTM0Yy0zLjMgMC02LTIuNy02LTZ2LTIwem0yNTMuNCAyNTBIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTcuNiAxNC40LTMyIDMyLTMyaDI4NS40Yy0xLjkgMTcuMS0xLjkgNDYuOSAwIDY0eiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgIHRpdGxlPSJTdG9yeSIKICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbgogICAgICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWItbGFiZWwgJHtlPyJpcy1oaWRkZW4iOiIifSIKICAgICAgICAgICAgICAgICAgdGl0bGU9IlN0b3J5IgogICAgICAgICAgICAgICAgICA+U3Rvcnk8L3NwYW4KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+YDoiIn0KCiAgICAgICAgPGxpIGNsYXNzPSIkeyJwYWdlcyI9PT10aGlzLnRhYkRhdGEudmlldz8iaXMtYWN0aXZlIjoiIn0iPgogICAgICAgICAgPGEKICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25UYWJDbGlja30iCiAgICAgICAgICAgIGhyZWY9IiNwYWdlcyIKICAgICAgICAgICAgY2xhc3M9ImlzLXNpemUtNiIKICAgICAgICAgICAgYXJpYS1sYWJlbD0iUGFnZXMiCiAgICAgICAgICAgIGFyaWEtY3VycmVudD0iJHskZSgicGFnZXMiPT09dGhpcy50YWJEYXRhLnZpZXc/ImxvY2F0aW9uIjp2b2lkIDApfSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24iCiAgICAgICAgICAgICAgPjxmYS1pY29uCiAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4NCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0zNjkuOSA5Ny45TDI4NiAxNEMyNzcgNSAyNjQuOC0uMSAyNTIuMS0uMUg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMzEuOWMwLTEyLjctNS4xLTI1LTE0LjEtMzR6TTMzMi4xIDEyOEgyNTZWNTEuOWw3Ni4xIDc2LjF6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEwNHYyODhINDh6bTMyLTQ4aDIyNFYyODhsLTIzLjUtMjMuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDE3NiAzNTJsLTM5LjUtMzkuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDgwIDM1MnY2NHptNDgtMjQwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4IDQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OHoiLz48L3N2Zz4nfSIKICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgICAgdGl0bGU9IlBhZ2VzIgogICAgICAgICAgICAgID48L2ZhLWljb24KICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1sYWJlbCIgdGl0bGU9IlBhZ2VzIj5QYWdlczwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2xpPgoKICAgICAgICA8bGkgY2xhc3M9IiR7InJlc291cmNlcyI9PT10aGlzLnRhYkRhdGEudmlldz8iaXMtYWN0aXZlIjoiIn0iPgogICAgICAgICAgPGEKICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25UYWJDbGlja30iCiAgICAgICAgICAgIGhyZWY9IiNyZXNvdXJjZXMiCiAgICAgICAgICAgIGNsYXNzPSJpcy1zaXplLTYiCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IlVSTHMiCiAgICAgICAgICAgIGFyaWEtY3VycmVudD0iJHskZSgicmVzb3VyY2VzIj09PXRoaXMudGFiRGF0YS52aWV3PyJsb2NhdGlvbiI6dm9pZCAwKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgID48ZmEtaWNvbgogICAgICAgICAgICAgICAgLnN2Zz0iJHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzYgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNNTE5LjQ0MiAyODguNjUxYy00MS41MTkgMC01OS41IDMxLjU5My04Mi4wNTggMzEuNTkzQzM3Ny40MDkgMzIwLjI0NCA0MzIgMTQ0IDQzMiAxNDRzLTE5Ni4yODggODAtMTk2LjI4OC0zLjI5N2MwLTM1LjgyNyAzNi4yODgtNDYuMjUgMzYuMjg4LTg1Ljk4NUMyNzIgMTkuMjE2IDI0My44ODUgMCAyMTAuNTM5IDBjLTM0LjY1NCAwLTY2LjM2NiAxOC44OTEtNjYuMzY2IDU2LjM0NiAwIDQxLjM2NCAzMS43MTEgNTkuMjc3IDMxLjcxMSA4MS43NUMxNzUuODg1IDIwNy43MTkgMCAxNjYuNzU4IDAgMTY2Ljc1OHYzMzMuMjM3czE3OC42MzUgNDEuMDQ3IDE3OC42MzUtMjguNjYyYzAtMjIuNDczLTQwLTQwLjEwNy00MC04MS40NzEgMC0zNy40NTYgMjkuMjUtNTYuMzQ2IDYzLjU3Ny01Ni4zNDYgMzMuNjczIDAgNjEuNzg4IDE5LjIxNiA2MS43ODggNTQuNzE3IDAgMzkuNzM1LTM2LjI4OCA1MC4xNTgtMzYuMjg4IDg1Ljk4NSAwIDYwLjgwMyAxMjkuNjc1IDI1LjczIDE4MS4yMyAyNS43MyAwIDAtMzQuNzI1LTEyMC4xMDEgMjUuODI3LTEyMC4xMDEgMzUuOTYyIDAgNDYuNDIzIDM2LjE1MiA4Ni4zMDggMzYuMTUyQzU1Ni43MTIgNDE2IDU3NiAzODcuOTkgNTc2IDM1NC40NDNjMC0zNC4xOTktMTguOTYyLTY1Ljc5Mi01Ni41NTgtNjUuNzkyeiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICB0aXRsZT0iUmVzb3VyY2VzIgogICAgICAgICAgICAgID48L2ZhLWljb24KICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1sYWJlbCIgdGl0bGU9IlJlc291cmNlcyI+UmVzb3VyY2VzPC9zcGFuPgogICAgICAgICAgPC9hPgogICAgICAgIDwvbGk+CgogICAgICAgICR7ZT9RYCA8bGkgY2xhc3M9InNpZGViYXItbmF2IHJpZ2h0Ij4KICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uRnVsbFBhZ2VWaWV3fSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBjbGFzcz0iaXMtbWFyZ2lubGVzcyBpcy1zaXplLTYgaXMtcGFkZGluZ2xlc3MiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hdi1ob3ZlciIgYXJpYS1oaWRkZW49InRydWUiPkV4cGFuZDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpcy1zci1vbmx5Ij5FeHBhbmQgU2lkZWJhciB0byBGdWxsIFZpZXc8L3NwYW4+CiAgICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgICB0aXRsZT0iRXhwYW5kIgogICAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI1NiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0yMjQuMyAyNzNsLTEzNiAxMzZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0yMi42LTIyLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDk2LjQtOTYuNC05Ni40LTk2LjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDU0LjMgMTAzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDEzNiAxMzZjOS41IDkuNCA5LjUgMjQuNi4xIDM0eiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPmA6IiJ9CiAgICAgIDwvdWw+CiAgICA8L25hdj5gfXJlbmRlclRvb2xiYXJMZWZ0KCl7Y29uc3QgZT0hIXRoaXMudGFiRGF0YS51cmw7cmV0dXJuIFFgICR7dGhpcy5icm93c2FibGU/UWAgPGEKICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0iYnV0dG9uIG5hcnJvdyBpcy1ib3JkZXJsZXNzIGlzLWhpZGRlbi1tb2JpbGUgJHtlPyIiOiJncmV5LWRpc2FibGVkIn0iCiAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uU2hvd1BhZ2VzfSIKICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgP2Rpc2FibGVkPSIkeyFlfSIKICAgICAgICAgICAgdGl0bGU9IkJyb3dzZSBDb250ZW50cyIKICAgICAgICAgICAgYXJpYS1sYWJlbD0iQnJvd3NlIENvbnRlbnRzIgogICAgICAgICAgICBhcmlhLWNvbnRyb2xzPSJjb250ZW50cyIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAuc3ZnPSIke190fSIKICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8L2E+YDoiIn0KICAgICAgPGEKICAgICAgICBocmVmPSIjIgogICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICBjbGFzcz0iYnV0dG9uIG5hcnJvdyBpcy1ib3JkZXJsZXNzIgogICAgICAgIEBjbGljaz0iJHt0aGlzLm9uR29CYWNrfSIKICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgIHRpdGxlPSJCYWNrIgogICAgICAgIGFyaWEtbGFiZWw9IkJhY2siCiAgICAgID4KICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1zbWFsbCI+CiAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgY2xhc3M9Imhhcy10ZXh0LWdyZXkiCiAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAuc3ZnPSIke1llfSIKICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2E+CiAgICAgIDxhCiAgICAgICAgaHJlZj0iIyIKICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgY2xhc3M9ImJ1dHRvbiBuYXJyb3cgaXMtYm9yZGVybGVzcyIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkdvRm9yd2FyZH0iCiAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICB0aXRsZT0iRm9yd2FyZCIKICAgICAgICBhcmlhLWxhYmVsPSJGb3J3YXJkIgogICAgICA+CiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgc2l6ZT0iMS4wZW0iCiAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgLnN2Zz0iJHtRZX0iCiAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9hPgogICAgICA8YQogICAgICAgIGhyZWY9IiMiCiAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgIGNsYXNzPSJidXR0b24gbmFycm93IGlzLWJvcmRlcmxlc3MgJHt0aGlzLmlzTG9hZGluZz8iaXMtbG9hZGluZyI6IiJ9IgogICAgICAgIGlkPSJyZWZyZXNoIgogICAgICAgIEBjbGljaz0iJHt0aGlzLm9uUmVmcmVzaH0iCiAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICB0aXRsZT0iUmVsb2FkIgogICAgICAgIGFyaWEtbGFiZWw9IlJlbG9hZCIKICAgICAgPgogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmc/IiI6UWAKICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgIHNpemU9IjEuMGVtIgogICAgICAgICAgICAgICAgICBjbGFzcz0iaGFzLXRleHQtZ3JleSIKICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTI1Ni40NTUgOGM2Ni4yNjkuMTE5IDEyNi40MzcgMjYuMjMzIDE3MC44NTkgNjguNjg1bDM1LjcxNS0zNS43MTVDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzVjLTMwLjg2NC0yOC44OTktNzAuODAxLTQ0LjkwNy0xMTMuMjMtNDUuMjczLTkyLjM5OC0uNzk4LTE3MC4yODMgNzMuOTc3LTE2OS40ODQgMTY5LjQ0MkM4OC43NjQgMzQ4LjAwOSAxNjIuMTg0IDQyNCAyNTYgNDI0YzQxLjEyNyAwIDc5Ljk5Ny0xNC42NzggMTEwLjYyOS00MS41NTYgNC43NDMtNC4xNjEgMTEuOTA2LTMuOTA4IDE2LjM2OC41NTNsMzkuNjYyIDM5LjY2MmM0Ljg3MiA0Ljg3MiA0LjYzMSAxMi44MTUtLjQ4MiAxNy40MzNDMzc4LjIwMiA0NzkuODEzIDMxOS45MjYgNTA0IDI1NiA1MDQgMTE5LjAzNCA1MDQgOC4wMDEgMzkyLjk2NyA4IDI1Ni4wMDIgNy45OTkgMTE5LjE5MyAxMTkuNjQ2IDcuNzU1IDI1Ni40NTUgOHoiLz48L3N2Zz4nfSIKICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgYH0KICAgICAgICA8L3NwYW4+CiAgICAgIDwvYT5gfXJlbmRlckxvY2F0aW9uQmFyKCl7aWYoInJlcGxheW9ubHkiPT09dGhpcy5lbWJlZHx8InJlcGxheS13aXRoLWluZm8iPT10aGlzLmVtYmVkKXJldHVybiIiO2NvbnN0IGU9ISF0aGlzLnRhYkRhdGEudXJsLHQ9ZSYmdGhpcy5mYXZJY29uVXJsO3JldHVybiBRYCA8YQogICAgICAgIGNsYXNzPSJza2lwLWxpbmsiCiAgICAgICAgaHJlZj0iI3NraXAtcmVwbGF5LXRhcmdldCIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5za2lwTWVudX0iCiAgICAgICAgPlNraXAgcmVwbGF5IG5hdmlnYXRpb248L2EKICAgICAgPgogICAgICA8bmF2IGNsYXNzPSJyZXBsYXktYmFyIiBhcmlhLWxhYmVsPSJyZXBsYXkiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIGhhcy1hZGRvbnMiPgogICAgICAgICAgJHt0aGlzLnJlbmRlclRvb2xiYXJMZWZ0KCl9CiAgICAgICAgICA8Zm9ybSBAc3VibWl0PSIke3RoaXMub25TdWJtaXR9Ij4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJjb250cm9sIGlzLWV4cGFuZGVkICR7dD8iaGFzLWljb25zLWxlZnQiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgaWQ9InVybCIKICAgICAgICAgICAgICAgIGNsYXNzPSJpbnB1dCIKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLm9uS2V5RG93bn0iCiAgICAgICAgICAgICAgICBAYmx1cj0iJHt0aGlzLm9uTG9zdEZvY3VzfSIKICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLnVybH0iCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgdGV4dCB0byBzZWFyY2ggb3IgYSBVUkwgdG8gcmVwbGF5IgogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgJHtlP3RoaXMucmVuZGVyVGltZXN0YW1wKCk6IiJ9CiAgICAgICAgICAgICAgJHt0P1FgIDxzcGFuIGNsYXNzPSJmYXZpY29uIGljb24gaXMtc21hbGwgaXMtbGVmdCI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7dGhpcy5mYXZJY29uVXJsfSIgLz4KICAgICAgICAgICAgICAgICAgPC9zcGFuPmA6UWBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICR7dGhpcy5yZW5kZXJUb29sYmFyUmlnaHQoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9uYXY+CiAgICAgIDxwIGlkPSJza2lwLXJlcGxheS10YXJnZXQiIHRhYmluZGV4PSItMSIgY2xhc3M9ImlzLXNyLW9ubHkiPlNraXBwZWQ8L3A+YH1yZW5kZXJUb29sYmFyUmlnaHQoKXt2YXIgZSx0O2NvbnN0IGk9ISF0aGlzLnRhYkRhdGEudXJsLG89dGhpcy50cz9BdC5mb3JtYXQodnQodGhpcy50cykpOiIiO3JldHVybiBRYCA8ZGl2CiAgICAgIGNsYXNzPSJkcm9wZG93biBpcy1yaWdodCAke3RoaXMubWVudUFjdGl2ZT8iaXMtYWN0aXZlIjoiIn0iCiAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5tZW51QWN0aXZlPSExfSIKICAgID4KICAgICAgPGEKICAgICAgICBocmVmPSIjIgogICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICBjbGFzcz0iYnV0dG9uIG5hcnJvdyBpcy1ib3JkZXJsZXNzIGlzLWhpZGRlbi10b3VjaCIKICAgICAgICBpZD0iZnVsbHNjcmVlbiIKICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkZ1bGxzY3JlZW5Ub2dnbGV9IgogICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgdGl0bGU9IiR7dGhpcy5pc0Z1bGxzY3JlZW4/IkV4aXQgRnVsbCBTY3JlZW4iOiJGdWxsIFNjcmVlbiJ9IgogICAgICAgIGFyaWEtbGFiZWw9IiR7dGhpcy5pc0Z1bGxzY3JlZW4/IkV4aXQgRnVsbHNjcmVlbiI6IkZ1bGxzY3JlZW4ifSIKICAgICAgPgogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgIHNpemU9IjEuMGVtIgogICAgICAgICAgICBjbGFzcz0iaGFzLXRleHQtZ3JleSIKICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgIC5zdmc9IiR7dGhpcy5pc0Z1bGxzY3JlZW4/SXQ6Q3R9IgogICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvYT4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24tdHJpZ2dlciI+CiAgICAgICAgPGJ1dHRvbgogICAgICAgICAgY2xhc3M9ImJ1dHRvbiBpcy1ib3JkZXJsZXNzIgogICAgICAgICAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIKICAgICAgICAgIGFyaWEtY29udHJvbHM9Im1lbnUtZHJvcGRvd24iCiAgICAgICAgICBhcmlhLWV4cGFuZGVkPSIke3RoaXMubWVudUFjdGl2ZX0iCiAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbk1lbnV9IgogICAgICAgICAgYXJpYS1sYWJlbD0ibW9yZSByZXBsYXkgY29udHJvbHMiCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgIHNpemU9IjEuMGVtIgogICAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTkyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTk2IDE4NGMzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3Mi03Mi0zMi4yLTcyLTcyIDMyLjItNzIgNzItNzJ6TTI0IDgwYzAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzJTMTM1LjggOCA5NiA4IDI0IDQwLjIgMjQgODB6bTAgMzUyYzAgMzkuOCAzMi4yIDcyIDcyIDcyczcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03Mi03MiAzMi4yLTcyIDcyeiIvPjwvc3ZnPid9IgogICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgPC9zcGFuPgogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24tbWVudSIgaWQ9Im1lbnUtZHJvcGRvd24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duLWNvbnRlbnQiPgogICAgICAgICAgPGEKICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSBpcy1oaWRkZW4tZGVza3RvcCIKICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25GdWxsc2NyZWVuVG9nZ2xlfSIKICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAuc3ZnPSIke3RoaXMuaXNGdWxsc2NyZWVuP0l0OkN0fSIKICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkZ1bGwgU2NyZWVuPC9zcGFuPgogICAgICAgICAgPC9hPgogICAgICAgICAgJHt0aGlzLmJyb3dzYWJsZT9RYCA8YQogICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1pdGVtIGlzLWhpZGRlbi10YWJsZXQgJHtpPyIiOiJncmV5LWRpc2FibGVkIn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblNob3dQYWdlc30iCiAgICAgICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaGFzLXRleHQtZ3JleSIKICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAuc3ZnPSIke190fSIKICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPkJyb3dzZSBDb250ZW50czwvc3Bhbj4KICAgICAgICAgICAgICA8L2E+YDoiIn0KICAgICAgICAgICR7dGhpcy5jbGVhcmFibGU/UWAgPGhyIGNsYXNzPSJkcm9wZG93bi1kaXZpZGVyIGlzLWhpZGRlbi1kZXNrdG9wIiAvPgogICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25QdXJnZUNhY2hlfSIKICAgICAgICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtc21hbGwiPgogICAgICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjBlbSIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJoYXMtdGV4dC1ncmV5IgogICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0zNzAuNzIgMTMzLjI4QzMzOS40NTggMTA0LjAwOCAyOTguODg4IDg3Ljk2MiAyNTUuODQ4IDg4Yy03Ny40NTguMDY4LTE0NC4zMjggNTMuMTc4LTE2Mi43OTEgMTI2Ljg1LTEuMzQ0IDUuMzYzLTYuMTIyIDkuMTUtMTEuNjUxIDkuMTVIMjQuMTAzYy03LjQ5OCAwLTEzLjE5NC02LjgwNy0xMS44MDctMTQuMTc2QzMzLjkzMyA5NC45MjQgMTM0LjgxMyA4IDI1NiA4YzY2LjQ0OCAwIDEyNi43OTEgMjYuMTM2IDE3MS4zMTUgNjguNjg1TDQ2My4wMyA0MC45N0M0NzguMTQ5IDI1Ljg1MSA1MDQgMzYuNTU5IDUwNCA1Ny45NDFWMTkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgzNDUuOTQxYy0yMS4zODIgMC0zMi4wOS0yNS44NTEtMTYuOTcxLTQwLjk3MWw0MS43NS00MS43NDl6TTMyIDI5NmgxMzQuMDU5YzIxLjM4MiAwIDMyLjA5IDI1Ljg1MSAxNi45NzEgNDAuOTcxbC00MS43NSA0MS43NWMzMS4yNjIgMjkuMjczIDcxLjgzNSA0NS4zMTkgMTE0Ljg3NiA0NS4yOCA3Ny40MTgtLjA3IDE0NC4zMTUtNTMuMTQ0IDE2Mi43ODctMTI2Ljg0OSAxLjM0NC01LjM2MyA2LjEyMi05LjE1IDExLjY1MS05LjE1aDU3LjMwNGM3LjQ5OCAwIDEzLjE5NCA2LjgwNyAxMS44MDcgMTQuMTc2QzQ3OC4wNjcgNDE3LjA3NiAzNzcuMTg3IDUwNCAyNTYgNTA0Yy02Ni40NDggMC0xMjYuNzkxLTI2LjEzNi0xNzEuMzE1LTY4LjY4NUw0OC45NyA0NzEuMDNDMzMuODUxIDQ4Ni4xNDkgOCA0NzUuNDQxIDggNDU0LjA1OVYzMjBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0eiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+UHVyZ2UgQ2FjaGUgKyBGdWxsIFJlbG9hZDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT5gOlFgYH0KICAgICAgICAgICR7IXRoaXMuZWRpdGFibGUmJihudWxsPT09KGU9dGhpcy5kb3dubG9hZFVybCl8fHZvaWQgMD09PWU/dm9pZCAwOmUuc3RhcnRzV2l0aCgiaHR0cDovLyIpKXx8KG51bGw9PT0odD10aGlzLmRvd25sb2FkVXJsKXx8dm9pZCAwPT09dD92b2lkIDA6dC5zdGFydHNXaXRoKCJodHRwczovLyIpKT9RYCA8aHIgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiIC8+CiAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICBocmVmPSIke3RoaXMuZG93bmxvYWRVcmx9IgogICAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1pdGVtIgogICAgICAgICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1zbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICAgIHNpemU9IjEuMGVtIgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imhhcy10ZXh0LWdyZXkiCiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgIC5zdmc9IiR7enR9IgogICAgICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+RG93bmxvYWQgQXJjaGl2ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT5gOlFgYH0KICAgICAgICAgICR7bz9RYCA8aHIgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIgaXMtaGlkZGVuLWRlc2t0b3AiIC8+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93bi1pdGVtIGluZm8gaXMtaGlkZGVuLXRhYmxldCI+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWhlYWQiPkNhcHR1cmUgRGF0ZTwvc3Bhbj4ke299CiAgICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgJHt0aGlzLmVkaXRhYmxlfHx0aGlzLmRvd25sb2FkVXJsIT09dGhpcy5zb3VyY2VVcmwmJnRoaXMuZW1iZWQ/IiI6UWAgPGEKICAgICAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uU2hvd0luZm9EaWFsb2d9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaGFzLXRleHQtZ3JleSIKICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0yNTYgOEMxMTkuMDQzIDggOCAxMTkuMDgzIDggMjU2YzAgMTM2Ljk5NyAxMTEuMDQzIDI0OCAyNDggMjQ4czI0OC0xMTEuMDAzIDI0OC0yNDhDNTA0IDExOS4wODMgMzkyLjk1NyA4IDI1NiA4em0wIDExMGMyMy4xOTYgMCA0MiAxOC44MDQgNDIgNDJzLTE4LjgwNCA0Mi00MiA0Mi00Mi0xOC44MDQtNDItNDIgMTguODA0LTQyIDQyLTQyem01NiAyNTRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTJ2LTY0aC0xMmMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg2NGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjEwMGgxMmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0eiIvPjwvc3ZnPid9IgogICAgICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+QXJjaGl2ZSBJbmZvPC9zcGFuPgogICAgICAgICAgICAgIDwvYT5gfQogICAgICAgICAgPGhyIGNsYXNzPSJkcm9wZG93bi1kaXZpZGVyIiAvPgogICAgICAgICAgPGEKICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSIKICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25BYm91dH0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgY2xhc3M9Imhhcy10ZXh0LWdyZXkiCiAgICAgICAgICAgICAgc2l6ZT0iMS4wcmVtIgogICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgIC5zdmc9JHtidH0KICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgPHNwYW4+Jm5ic3A7QWJvdXQgJHt0aGlzLmFwcE5hbWV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS12ZXJzaW9uIj4oJHt0aGlzLmFwcFZlcnNpb259KTwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj5gfXJlbmRlclRpbWVzdGFtcCgpe3ZhciBlO2NvbnN0IHQ9W107bnVsbD09PShlPXRoaXMubXVsdGlUcyl8fHZvaWQgMD09PWV8fGUuZm9yRWFjaCgoZT0+e3RyeXtjb25zdCBpPXd0KCtlKSxvPWk/QXQuZm9ybWF0KHZ0KGkpKToiIjt0LnB1c2goe2RhdGU6aSxsYWJlbDpvfSl9Y2F0Y2goZSl7fX0pKTtjb25zdCBpPXRoaXMudHM/QXQuZm9ybWF0KHZ0KHRoaXMudHMpKToiIjtyZXR1cm4gUWA8ZGl2IGlkPSJkYXRldGltZSIgY2xhc3M9ImNvbnRyb2wgaXMtaGlkZGVuLW1vYmlsZSI+CiAgICAgICR7dC5sZW5ndGg+MT9RYAogICAgICAgICAgICA8c2wtZHJvcGRvd24gcGxhY2VtZW50PSJ0b3AtZW5kIiBob2lzdD4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJidXR0b24iCiAgICAgICAgICAgICAgICBjbGFzcz0idGltZXN0YW1wLWRyb3Bkb3duLWJ0biIKICAgICAgICAgICAgICAgIHNsb3Q9InRyaWdnZXIiCiAgICAgICAgICAgICAgICBAYmx1cj0ke3RoaXMub25UaW1lc3RhbXBEcm9wZG93bkJ0bkJsdXJ9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdj4ke2l9PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lc3RhbXAtY291bnQtYmFkZ2UiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lc3RhbXAtY291bnQiPiR7dC5sZW5ndGh9PC9kaXY+CiAgICAgICAgICAgICAgICAgIDxmYS1pY29uIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzIwIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTMxLjMgMTkyaDI1Ny4zYzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDE3NC4xIDM1NC44Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMEwxNy4yIDIyNi4xQzQuNiAyMTMuNSAxMy41IDE5MiAzMS4zIDE5MnoiLz48L3N2Zz4nfSIgYXJpYS1oaWRkZW49InRydWUiPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxzbC1tZW51IEBzbC1zZWxlY3Q9JHt0aGlzLm9uU2VsZWN0VGltZXN0YW1wfT4KICAgICAgICAgICAgICAgICR7dC5tYXAoKCh7ZGF0ZTplLGxhYmVsOnR9KT0+e2NvbnN0IGk9dGhpcy50cz09PWU7cmV0dXJuIFFgPHNsLW1lbnUtaXRlbQogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0aW1lc3RhbXAtbWVudS1pdGVtIgogICAgICAgICAgICAgICAgICAgIHZhbHVlPSR7ZX0KICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPSIke2l9IgogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHt0fTwvc2wtbWVudS1pdGVtCiAgICAgICAgICAgICAgICAgID5gfSkpfQogICAgICAgICAgICAgIDwvc2wtbWVudT4KICAgICAgICAgICAgPC9zbC1kcm9wZG93bj4KICAgICAgICAgIGA6aX0KICAgIDwvZGl2PmB9cmVuZGVyVmVyaWZ5SW5mbygpe3JldHVybiJyZXBsYXktd2l0aC1pbmZvIiE9PXRoaXMuZW1iZWQ/IiI6UWA8cndwLWVtYmVkLXJlY2VpcHQKICAgICAgLmNvbGxJbmZvPSR7dGhpcy5pdGVtSW5mb3x8e319CiAgICAgIHVybD0ke3RoaXMudXJsfQogICAgICB0cz0ke3RoaXMudHN9CiAgICA+CiAgICA8L3J3cC1lbWJlZC1yZWNlaXB0PmB9ZHJhZ1N0YXJ0KCl7Y29uc3QgZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3Rvcigid3ItY29sbC1yZXBsYXkiKTtlJiZlLnNldERpc2FibGVQb2ludGVyKCEwKX1kcmFnRW5kKCl7Y29uc3QgZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3Rvcigid3ItY29sbC1yZXBsYXkiKTtlJiZlLnNldERpc2FibGVQb2ludGVyKCExKX1yZW5kZXJJdGVtSW5mbygpe3JldHVybiB0aGlzLml0ZW1JbmZvP1FgPHdyLWl0ZW0taW5mbwogICAgICBjbGFzcz0iaXMtbGlzdCIKICAgICAgLml0ZW09IiR7dGhpcy5pdGVtSW5mb30iCiAgICAgID9kZXRhaWxlZD0iJHshMH0iCiAgICAgID9jYW5EZWxldGU9IiR7IXRoaXMuZW1iZWR9IgogICAgICBAaXRlbS1wdXJnZT0iJHt0aGlzLm9uUHVyZ2VDYWNoZX0iCiAgICA+PC93ci1pdGVtLWluZm8+YDpRYDxzbC1hbGVydCBvcGVuIHZhcmlhbnQ9Indhcm5pbmciPgogICAgICAgIDxmYS1pY29uCiAgICAgICAgICBzbG90PSJpY29uIgogICAgICAgICAgLnN2Zz0keyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU3NiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik01NjkuNTE3IDQ0MC4wMTNDNTg3Ljk3NSA0NzIuMDA3IDU2NC44MDYgNTEyIDUyNy45NCA1MTJINDguMDU0Yy0zNi45MzcgMC01OS45OTktNDAuMDU1LTQxLjU3Ny03MS45ODdMMjQ2LjQyMyAyMy45ODVjMTguNDY3LTMyLjAwOSA2NC43Mi0zMS45NTEgODMuMTU0IDBsMjM5Ljk0IDQxNi4wMjh6TTI4OCAzNTRjLTI1LjQwNSAwLTQ2IDIwLjU5NS00NiA0NnMyMC41OTUgNDYgNDYgNDYgNDYtMjAuNTk1IDQ2LTQ2LTIwLjU5NS00Ni00Ni00NnptLTQzLjY3My0xNjUuMzQ2bDcuNDE4IDEzNmMuMzQ3IDYuMzY0IDUuNjA5IDExLjM0NiAxMS45ODIgMTEuMzQ2aDQ4LjU0NmM2LjM3MyAwIDExLjYzNS00Ljk4MiAxMS45ODItMTEuMzQ2bDcuNDE4LTEzNmMuMzc1LTYuODc0LTUuMDk4LTEyLjY1NC0xMS45ODItMTIuNjU0aC02My4zODNjLTYuODg0IDAtMTIuMzU2IDUuNzgtMTEuOTgxIDEyLjY1NHoiLz48L3N2Zz4nfQogICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICA8c3Ryb25nPkFyY2hpdmUgaW5mbyBpcyBub3QgYXZhaWxhYmxlPC9zdHJvbmc+PGJyIC8+CiAgICAgICAgUGxlYXNlIHJlbG9hZCBhbmQgdHJ5IGFnYWluLgogICAgICA8L3NsLWFsZXJ0PmB9cmVuZGVySXRlbVRhYnMoZSl7Y29uc3QgdD10aGlzLmhhc1N0b3J5JiYic3RvcnkiPT09dGhpcy50YWJEYXRhLnZpZXcsaT0icGFnZXMiPT09dGhpcy50YWJEYXRhLnZpZXcsbz0icmVzb3VyY2VzIj09PXRoaXMudGFiRGF0YS52aWV3O3JldHVybiBRYAogICAgICAke3Q/UWAgPHdyLWNvbGwtc3RvcnkKICAgICAgICAgICAgLmNvbGxJbmZvPSIke3RoaXMuaXRlbUluZm98fHt9fSIKICAgICAgICAgICAgLmFjdGl2ZT0iJHt0fSIKICAgICAgICAgICAgY3Vyckxpc3Q9IiR7dGhpcy50YWJEYXRhLmN1cnJMaXN0fHwwfSIKICAgICAgICAgICAgQGNvbGwtdGFiLW5hdj0iJHt0aGlzLm9uSXRlbVRhYk5hdn0iCiAgICAgICAgICAgIGlkPSJzdG9yeSIKICAgICAgICAgICAgLmlzU2lkZWJhcj0iJHtlfSIKICAgICAgICAgICAgY2xhc3M9IiR7dD8iIjoiaXMtaGlkZGVuIn0gJHtlPyJzaWRlYmFyIjoiIn0iCiAgICAgICAgICAgIHJvbGU9IiR7JGUoZT92b2lkIDA6Im1haW4iKX0iCiAgICAgICAgICA+CiAgICAgICAgICA8L3dyLWNvbGwtc3Rvcnk+YDoiIn0KICAgICAgJHtvP1FgIDx3ci1jb2xsLXJlc291cmNlcwogICAgICAgICAgICAuY29sbEluZm89IiR7dGhpcy5pdGVtSW5mb3x8e319IgogICAgICAgICAgICAuYWN0aXZlPSIke299IgogICAgICAgICAgICBxdWVyeT0iJHt0aGlzLnRhYkRhdGEucXVlcnl8fCIifSIKICAgICAgICAgICAgdXJsU2VhcmNoVHlwZT0iJHt0aGlzLnRhYkRhdGEudXJsU2VhcmNoVHlwZXx8IiJ9IgogICAgICAgICAgICAuY3Vyck1pbWU9IiR7dGhpcy50YWJEYXRhLmN1cnJNaW1lfHwiIn0iCiAgICAgICAgICAgIEBjb2xsLXRhYi1uYXY9IiR7dGhpcy5vbkl0ZW1UYWJOYXZ9IgogICAgICAgICAgICBpZD0icmVzb3VyY2VzIgogICAgICAgICAgICAuaXNTaWRlYmFyPSIke2V9IgogICAgICAgICAgICBjbGFzcz0iaXMtcGFkZGluZ2xlc3MgJHtvPyIiOiJpcy1oaWRkZW4ifSAke2U/InNpZGViYXIiOiIifSIKICAgICAgICAgICAgcm9sZT0iJHskZShlP3ZvaWQgMDoibWFpbiIpfSIKICAgICAgICAgID4KICAgICAgICAgIDwvd3ItY29sbC1yZXNvdXJjZXM+YDoiIn0KICAgICAgJHtpP1FgIDx3ci1wYWdlLXZpZXcKICAgICAgICAgICAgLmNvbGxJbmZvPSIke3RoaXMuaXRlbUluZm99IgogICAgICAgICAgICAuYWN0aXZlPSIke2l9IgogICAgICAgICAgICAuZWRpdGFibGU9IiR7dGhpcy5lZGl0YWJsZX0iCiAgICAgICAgICAgIC5pc1NpZGViYXI9IiR7ZX0iCiAgICAgICAgICAgIGN1cnJMaXN0PSIke3RoaXMudGFiRGF0YS5jdXJyTGlzdHx8MH0iCiAgICAgICAgICAgIHF1ZXJ5PSIke3RoaXMudGFiRGF0YS5xdWVyeXx8IiJ9IgogICAgICAgICAgICAudXJsPSIke3RoaXMudGFiRGF0YS51cmx8fCIifSIKICAgICAgICAgICAgLnRzPSIke3RoaXMudGFiRGF0YS50c3x8IiJ9IgogICAgICAgICAgICBAY29sbC10YWItbmF2PSIke3RoaXMub25JdGVtVGFiTmF2fSIKICAgICAgICAgICAgaWQ9InBhZ2VzIgogICAgICAgICAgICBAY29sbC11cGRhdGU9IiR7dGhpcy5vbkl0ZW1VcGRhdGV9IgogICAgICAgICAgICBjbGFzcz0iJHtpPyIiOiJpcy1oaWRkZW4ifSAke2U/InNpZGViYXIiOiIifSIKICAgICAgICAgICAgcm9sZT0iJHskZShlP3ZvaWQgMDoibWFpbiIpfSIKICAgICAgICAgID4KICAgICAgICAgIDwvd3ItcGFnZS12aWV3PmA6IiJ9CiAgICBgfXNraXBNZW51KGUpe3ZhciB0O2UucHJldmVudERlZmF1bHQoKSxudWxsPT09KHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIiNza2lwLXJlcGxheS10YXJnZXQiKSl8fHZvaWQgMD09PXR8fHQuZm9jdXMoKX1vbktleURvd24oZSl7IkVzYyIhPT1lLmtleSYmIkVzY2FwZSIhPT1lLmtleXx8KGUucHJldmVudERlZmF1bHQoKSxlLmN1cnJlbnRUYXJnZXQudmFsdWU9dGhpcy51cmwpfW9uTWVudShlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubWVudUFjdGl2ZT0hdGhpcy5tZW51QWN0aXZlLHRoaXMubWVudUFjdGl2ZSYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgoKT0+e3RoaXMubWVudUFjdGl2ZT0hMX0pLHtvbmNlOiEwfSl9b25GdWxsc2NyZWVuVG9nZ2xlKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnVBY3RpdmU9ITEsdGhpcy5pc0Z1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTp0aGlzLnJlcXVlc3RGdWxsc2NyZWVuKCl9b25Hb0JhY2soZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubWVudUFjdGl2ZT0hMSx3aW5kb3cuaGlzdG9yeS5iYWNrKCl9b25Hb0ZvcndhcmQoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubWVudUFjdGl2ZT0hMSx3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCl9b25TaG93UGFnZXMoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2hvd1NpZGViYXJ8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aD49NzY5P3RoaXMuc2hvd1NpZGViYXI9IXRoaXMuc2hvd1NpZGViYXI6KHRoaXMuc2hvd1NpZGViYXI9ITEsdGhpcy51cGRhdGVUYWJEYXRhKHt1cmw6IiIsdHM6IiJ9KSksdGhpcy5icm93c2FibGV8fCh0aGlzLnNob3dTaWRlYmFyPSExKX1vbkZ1bGxQYWdlVmlldyhlKXtlLnByZXZlbnREZWZhdWx0KCksdGhpcy51cGRhdGVUYWJEYXRhKHt1cmw6IiIsdHM6IiJ9KX1vbkhpZGVTaWRlYmFyKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNob3dTaWRlYmFyPSExfW9uUmVwbGF5TG9hZGluZyhlKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuZW1iZWQmJndpbmRvdy5wYXJlbnQhPT13aW5kb3cmJnRoaXMuaXNMb2FkaW5nIT09ZS5kZXRhaWwubG9hZGluZyYmd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHt0eXBlOiJwYWdlLWxvYWRpbmcifSxlLmRldGFpbCksIioiKSx0aGlzLmlzTG9hZGluZz1lLmRldGFpbC5sb2FkaW5nfSkpfW9uRmF2SWNvbnMoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt0aGlzLmVtYmVkJiZ3aW5kb3cucGFyZW50IT09d2luZG93JiZ3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe3R5cGU6ImZhdmljb25zIn0sZS5kZXRhaWwpLCIqIik7Zm9yKGNvbnN0IHQgb2YgZS5kZXRhaWwuaWNvbnMpe2NvbnN0IGU9eWllbGQgZmV0Y2godC5ocmVmKTtpZigyMDA9PT1lLnN0YXR1cyl7Y29uc3QgaT1lLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKTtpZihpJiYhaS5zdGFydHNXaXRoKCJ0ZXh0LyIpKXJldHVybiB2b2lkKHRoaXMuZmF2SWNvblVybD10LmhyZWYpfX10aGlzLmZhdkljb25Vcmw9IiJ9KSl9b25QdXJnZUNhY2hlKGUpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PSFlLmRldGFpbHx8dm9pZCAwPT09ZS5kZXRhaWwucmVsb2FkfHxlLmRldGFpbC5yZWxvYWQ7dGhpcy5kZWxldGVGdWxseSh0KX1kZWxldGVGdWxseShlPSExKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9dGhpcy5pdGVtSW5mby5hcGlQcmVmaXgrKGU/Ij9yZWxvYWQ9MSI6IiIpLGk9eWllbGQgZmV0Y2godCx7bWV0aG9kOiJERUxFVEUifSk7MjAwIT09aS5zdGF0dXMmJmNvbnNvbGUud2FybigicHVyZ2UgZmFpbGVkOiAiK2kuc3RhdHVzKSxlfHx0aGlzLmVtYmVkP3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTp3aW5kb3cubG9jYXRpb24uc2VhcmNoPSIifSkpfW9uU3VibWl0KGUpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO3JldHVybiB0LnZhbHVlP3RoaXMubmF2aWdhdGVUbyh0LnZhbHVlKTp0LnZhbHVlPXRoaXMudXJsLCExfW9uTG9zdEZvY3VzKGUpe2UuY3VycmVudFRhcmdldC52YWx1ZXx8KGUuY3VycmVudFRhcmdldC52YWx1ZT10aGlzLnVybCl9b25UaW1lc3RhbXBEcm9wZG93bkJ0bkJsdXIoZSl7Y29uc3QgdD1lLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgic2wtZHJvcGRvd24iKSxpPWUucmVsYXRlZFRhcmdldDtpJiYobnVsbD09dD92b2lkIDA6dC5jb250YWlucyhpKSl8fChudWxsPT10P3ZvaWQgMDp0Lm9wZW4pJiZ0LmhpZGUoKX1vblNlbGVjdFRpbWVzdGFtcChlKXtjb25zdHtpdGVtOnR9PWUuZGV0YWlsO3RoaXMudXBkYXRlVGFiRGF0YSh7dHM6dC52YWx1ZX0pfW5hdmlnYXRlVG8oZSl7bGV0IHQ7aWYoZS5zdGFydHNXaXRoKCJodHRwOi8vIil8fGUuc3RhcnRzV2l0aCgiaHR0cHM6Ly8iKSl7aWYodD17dXJsOmV9LGU9PT10aGlzLnRhYkRhdGEudXJsKXtjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJ3ci1jb2xsLXJlcGxheSIpO3JldHVybiB2b2lkKGUmJmUucmVmcmVzaCgpKX19ZWxzZSB0PWUuc3RhcnRzV2l0aChfaSk/dGhpcy5fc3RyaW5nVG9QYXJhbXMoZSk6e3F1ZXJ5OmUsdmlldzoicGFnZXMifTt0aGlzLnVwZGF0ZVRhYkRhdGEodCl9X3N0cmluZ1RvUGFyYW1zKGUpe2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyhlLnNsaWNlKDkpKSxpPXt1cmw6IiIsdHM6IiJ9O2Zvcihjb25zdCBlIG9mWyJxdWVyeSIsInZpZXciLCJjdXJyTGlzdCIsImN1cnJNaW1lIiwidXJsU2VhcmNoVHlwZSJdKXQuaGFzKGUpJiYoaVtlXT10LmdldChlKSk7cmV0dXJuIGl9X3BhcmFtc1RvU3RyaW5nKGUpe2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcztmb3IoY29uc3QgaSBvZlsicXVlcnkiLCJ2aWV3IiwiY3Vyckxpc3QiLCJjdXJyTWltZSIsInVybFNlYXJjaFR5cGUiXSlpIGluIGUmJnQuc2V0KGksU3RyaW5nKGVbaV0pKTtyZXR1cm4gdC50b1N0cmluZygpfW9uUmVmcmVzaChlLHQ9ITEpe2lmKGUmJmUucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnVBY3RpdmU9ITEsdGhpcy50YWJEYXRhLnVybCl7Y29uc3QgZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3Rvcigid3ItY29sbC1yZXBsYXkiKTtlJiZlLnJlZnJlc2goKX1lbHNlIHR8fHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX1vbkFib3V0KCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWJvdXQtc2hvdyIpKX1vblNob3dJbmZvRGlhbG9nKCl7dmFyIGU7bnVsbD09PShlPXRoaXMuYXJjaGl2ZUluZm9EaWFsb2cudmFsdWUpfHx2b2lkIDA9PT1lfHxlLnNob3coKX1vbkhpZGVJbmZvRGlhbG9nKCl7dmFyIGU7bnVsbD09PShlPXRoaXMuYXJjaGl2ZUluZm9EaWFsb2cudmFsdWUpfHx2b2lkIDA9PT1lfHxlLmhpZGUoKX19dChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDaS5wcm90b3R5cGUsImluaXRlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ2kucHJvdG90eXBlLCJzb3VyY2VVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENpLnByb3RvdHlwZSwiZG93bmxvYWRVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6T2JqZWN0LGF0dHJpYnV0ZTohMX0pXSxDaS5wcm90b3R5cGUsImxvYWRJbmZvIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ2kucHJvdG90eXBlLCJzaG93U2lkZWJhciIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3QsYXR0cmlidXRlOiExfSldLENpLnByb3RvdHlwZSwiaXRlbUluZm8iLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENpLnByb3RvdHlwZSwiaXRlbSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwiaGFzU3RvcnkiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDaS5wcm90b3R5cGUsImlzTG9hZGluZyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3QsYXR0cmlidXRlOiExfSldLENpLnByb3RvdHlwZSwidGFiRGF0YSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ2kucHJvdG90eXBlLCJ1cmwiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENpLnByb3RvdHlwZSwidHMiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDaS5wcm90b3R5cGUsImlzRnVsbHNjcmVlbiIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwibWVudUFjdGl2ZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ2kucHJvdG90eXBlLCJlbWJlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwiZW1iZWREcm9wZG93bkFjdGl2ZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwiZWRpdGFibGUiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDaS5wcm90b3R5cGUsImJyb3dzYWJsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwiY2xlYXJhYmxlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ2kucHJvdG90eXBlLCJpc1Zpc2libGUiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENpLnByb3RvdHlwZSwiZmF2SWNvblVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ2kucHJvdG90eXBlLCJhcHBOYW1lIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxDaS5wcm90b3R5cGUsImFwcFZlcnNpb24iLHZvaWQgMCksdChbeWUoe3R5cGU6TnVtYmVyfSldLENpLnByb3RvdHlwZSwiYXV0b1VwZGF0ZUludGVydmFsIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxDaS5wcm90b3R5cGUsInN3TmFtZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENpLnByb3RvdHlwZSwicmVwbGF5Tm90Rm91bmRFcnJvciIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpBcnJheX0pXSxDaS5wcm90b3R5cGUsIm11bHRpVHMiLHZvaWQgMCksY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ3ci1pdGVtIixDaSk7Y29uc3QgSWk9JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTUwNSA0NDIuN0w0MDUuMyAzNDNjLTQuNS00LjUtMTAuNi03LTE3LTdIMzcyYzI3LjYtMzUuMyA0NC03OS43IDQ0LTEyOEM0MTYgOTMuMSAzMjIuOSAwIDIwOCAwUzAgOTMuMSAwIDIwOHM5My4xIDIwOCAyMDggMjA4YzQ4LjMgMCA5Mi43LTE2LjQgMTI4LTQ0djE2LjNjMCA2LjQgMi41IDEyLjUgNyAxN2w5OS43IDk5LjdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjYuMS0zNHpNMjA4IDMzNmMtNzAuNyAwLTEyOC01Ny4yLTEyOC0xMjggMC03MC43IDU3LjItMTI4IDEyOC0xMjggNzAuNyAwIDEyOCA1Ny4yIDEyOCAxMjggMCA3MC43LTU3LjIgMTI4LTEyOCAxMjh6Ii8+PC9zdmc+JztjbGFzcyBMaSBleHRlbmRzIG1le2dldCB0eXBlRmlsdGVyKCl7cmV0dXJuIiJ9Z2V0IGluZGV4UGFyYW1zKCl7cmV0dXJuIiJ9Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuaXRlbXM9W10sdGhpcy5xdWVyeT0iIix0aGlzLmZpbHRlcmVkSXRlbXM9W10sdGhpcy5zb3J0ZWRJdGVtcz1bXSx0aGlzLmhpZGVIZWFkZXI9ITEsdGhpcy5kYXRlTmFtZT0iRGF0ZSBMb2FkZWQiLHRoaXMuaGVhZGVyTmFtZT0iTG9hZGVkIEFyY2hpdmVzIix0aGlzLl9kZWxldGluZz17fSx0aGlzLmhpZGVIZWFkZXI9IjEiPT09bG9jYWxTdG9yYWdlLmdldEl0ZW0oImluZGV4OmhpZGVIZWFkZXIiKX1nZXQgc29ydEtleXMoKXtyZXR1cm5be2tleToidGl0bGUiLG5hbWU6IlRpdGxlIn0se2tleToic291cmNlVXJsIixuYW1lOiJTb3VyY2UifSx7a2V5OiJjdGltZSIsbmFtZTp0aGlzLmRhdGVOYW1lfSx7a2V5OiJzaXplIixuYW1lOiJUb3RhbCBTaXplIn1dfWZpcnN0VXBkYXRlZCgpe3RoaXMubG9hZEl0ZW1zKCl9dXBkYXRlZChlKXtlLmhhcygiaGlkZUhlYWRlciIpJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiaW5kZXg6aGlkZUhlYWRlciIsdGhpcy5oaWRlSGVhZGVyPyIxIjoiMCIpLChlLmhhcygiaXRlbXMiKXx8ZS5oYXMoInF1ZXJ5IikpJiZ0aGlzLmZpbHRlcigpfWZpbHRlcigpe2lmKHRoaXMucXVlcnkpe3RoaXMuZmlsdGVyZWRJdGVtcz1bXTtmb3IoY29uc3QgZSBvZiB0aGlzLml0ZW1zKShlLnNvdXJjZVVybC5pbmRleE9mKHRoaXMucXVlcnkpPj0wfHxlLmZpbGVuYW1lJiZlLmZpbGVuYW1lLmluZGV4T2YodGhpcy5xdWVyeSk+PTB8fEJvb2xlYW4oZS5sb2FkVXJsJiZlLmxvYWRVcmwuaW5kZXhPZih0aGlzLnF1ZXJ5KT49MCl8fGUudGl0bGUmJmUudGl0bGUuaW5kZXhPZih0aGlzLnF1ZXJ5KT49MCkmJnRoaXMuZmlsdGVyZWRJdGVtcy5wdXNoKGUpfWVsc2UgdGhpcy5maWx0ZXJlZEl0ZW1zPXRoaXMuaXRlbXN9bG9hZEl0ZW1zKCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCBlPXlpZWxkIGZldGNoKGAke09lfS9jb2xsLWluZGV4PyR7dGhpcy5pbmRleFBhcmFtc31gKTt0cnl7aWYoMjAwIT09ZS5zdGF0dXMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEFQSSBSZXNwb25zZSwgUmV0cnkiKTtjb25zdCB0PXlpZWxkIGUuanNvbigpO3RoaXMuaXRlbXM9dC5jb2xscy5tYXAoKGU9Pnt2YXIgdDtyZXR1cm4gZS50aXRsZT1udWxsIT09KHQ9ZS50aXRsZSkmJnZvaWQgMCE9PXQ/dDplLmZpbGVuYW1lLGV9KSksdGhpcy5fZGVsZXRpbmc9e30sdGhpcy5zb3J0ZWRJdGVtcz1bXX1jYXRjaChlKXtzZXRUaW1lb3V0KCgoKT0+dGhpcy5sb2FkSXRlbXMoKSksNTAwKX19KSl9b25EZWxldGVJdGVtKGUpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuc29ydGVkSXRlbXMpcmV0dXJuO2NvbnN0IHQ9TnVtYmVyKGUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtY29sbC1pbmRleCIpKSxpPXRoaXMuc29ydGVkSXRlbXNbdF07aWYoIWl8fHRoaXMuX2RlbGV0aW5nW2kuc291cmNlVXJsXSlyZXR1cm47dGhpcy5fZGVsZXRpbmdbaS5zb3VyY2VVcmxdPSEwLHRoaXMucmVxdWVzdFVwZGF0ZSgpO2NvbnN0IG89eWllbGQgZmV0Y2goYCR7T2V9L2MvJHtpLmlkfWAse21ldGhvZDoiREVMRVRFIn0pO2lmKDIwMD09PW8uc3RhdHVzKXtjb25zdCBlPXlpZWxkIG8uanNvbigpO3RoaXMuaXRlbXM9ZS5jb2xsc31yZXR1cm4hMX0pKX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShMaS5jb21wU3R5bGVzKX1zdGF0aWMgZ2V0IGNvbXBTdHlsZXMoKXtyZXR1cm4gaGAKICAgICAgOmhvc3QgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CiAgICAgIC5zaXplIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CiAgICAgIH0KICAgICAgLmV4dHJhLXBhZGRpbmcgewogICAgICAgIHBhZGRpbmc6IDJlbTsKICAgICAgfQogICAgICAubm8tdG9wLXBhZGRpbmcgewogICAgICAgIHBhZGRpbmctdG9wOiAxZW07CiAgICAgIH0KICAgICAgLnBhbmVsLWhlYWRpbmcgewogICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgICAgfQogICAgICAuaXMtbG9hZGluZyB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtOwogICAgICAgIGhlaWdodDogMS41ZW07CiAgICAgICAgYm9yZGVyOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQogICAgICBkaXYucGFuZWwuaXMtbGlnaHQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTsKICAgICAgfQoKICAgICAgZmEtaWNvbiB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgfQoKICAgICAgLnBhbmVsLWNvbG9yIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEwLCAyNDksIDIxNCk7CiAgICAgIH0KCiAgICAgIC5jb3B5IHsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAwLjRlbTsKICAgICAgICBwYWRkaW5nOiA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIH0KICAgICAgLmNvcHk6YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7CiAgICAgIH0KICAgICAgLnNvcnQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAwLjNyZW0gMC4zcmVtIDAuM3JlbSAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOwogICAgICB9CiAgICAgIC5zb3J0LWhlYWRlciAuY29udHJvbCB7CiAgICAgICAgZmxleDogYXV0bzsKCiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjNyZW07CiAgICAgICAgd2lkdGg6IGluaXRpYWw7CiAgICAgIH0KICAgICAgd3Itc29ydGVyIHsKICAgICAgICBwYWRkaW5nOiAwLjNyZW07CiAgICAgIH0KICAgICAgYS5idXR0b24uaXMtc21hbGwuY29sbGFwc2UgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQogICAgICAuaWNvbi5pcy1sZWZ0IHsKICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOwogICAgICB9CiAgICAgIC5jb2xsLWJsb2NrIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgLmRlbGV0ZS1idXR0b24gewogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwcHg7CiAgICAgICAgcmlnaHQ6IDEwcHg7CiAgICAgIH0KICAgICAgI3NvcnQtc2VsZWN0OjphZnRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICBoZWFkZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CiAgICAgIGhlYWRlci5jbG9zZWQgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDBzOwogICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICAgICAgaGVpZ2h0OiAyNjlweDsKICAgICAgICBtYXJnaW4tdG9wOiAtMjY5cHg7CiAgICAgIH0KICAgIGB9cmVuZGVySGVhZGVyKCl7cmV0dXJuIFFgPGgyIGNsYXNzPSJwYW5lbC1oZWFkaW5nIHBhbmVsLWNvbG9yIj4KICAgICAgPHNwYW4+JHt0aGlzLmhlYWRlck5hbWV9PC9zcGFuPgogICAgPC9oMj5gfXJlbmRlclNlYXJjaEhlYWRlcigpe3JldHVybiIifXJlbmRlcigpe3ZhciBlO2NvbnN0IHQ9dGhpcy5jaGlsZEVsZW1lbnRDb3VudD4wO3JldHVybiBRYAogICAgICA8aGVhZGVyIGNsYXNzPSIke3RoaXMuaGlkZUhlYWRlcj8iY2xvc2VkIjoiIn0iPgogICAgICAgIDxzbG90IG5hbWU9ImhlYWRlciI+PC9zbG90PgogICAgICA8L2hlYWRlcj4KICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24gbm8tdG9wLXBhZGRpbmciPgogICAgICAgIDxkaXYgY2xhc3M9InNvcnQtaGVhZGVyIGlzLXNtYWxsIj4KICAgICAgICAgICR7dD9RYAogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuaGlkZUhlYWRlcj0hdGhpcy5oaWRlSGVhZGVyfSBjbGFzcz0iY29sbGFwc2UgYnV0dG9uIGlzLXNtYWxsIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIj48ZmEtaWNvbiAuc3ZnPSR7dGhpcy5oaWRlSGVhZGVyPyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMyMCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0xNDMgMjU2LjNMNyAxMjAuM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMjIuNi0yMi42YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDk2LjQgOTYuNCA5Ni40LTk2LjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzEzIDg2LjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTEzNiAxMzZjLTkuNCA5LjUtMjQuNiA5LjUtMzQgLjF6bTM0IDE5MmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC0yMi42LTIyLjZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDE2MCAzNTIuMWwtOTYuNC05Ni40Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDI3OC4zYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwxMzYgMTM2YzkuNCA5LjUgMjQuNiA5LjUgMzQgLjF6Ii8+PC9zdmc+JzonPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNMTc3IDI1NS43bDEzNiAxMzZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTIyLjYgMjIuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTYwIDM1MS45bC05Ni40IDk2LjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDcgNDI1LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDEzNi0xMzZjOS40LTkuNSAyNC42LTkuNSAzNC0uMXptLTM0LTE5Mkw3IDE5OS43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyMi42IDIyLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsOTYuNC05Ni40IDk2LjQgOTYuNGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyMi42LTIyLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTEzNi0xMzZjLTkuMi05LjQtMjQuNC05LjQtMzMuOCAweiIvPjwvc3ZnPid9Pjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPiR7dGhpcy5oaWRlSGVhZGVyPyJTaG93ICI6IkhpZGUifSA8c3BhbiBjbGFzcz0iaXMtc3Itb25seSI+SGVhZGVyPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8L2J1dHRvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhbmVsIj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJIZWFkZXIoKX0KICAgICAgICAgICR7dGhpcy5pdGVtcy5sZW5ndGg/UWAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWJsb2NrIHNvcnQtaGVhZGVyIGlzLXNtYWxsIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclNlYXJjaEhlYWRlcigpfQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIGhhcy1pY29ucy1sZWZ0IGhhcy1hZGRvbnMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpbnB1dCBpcy1zbWFsbCIKICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHtlPT50aGlzLnF1ZXJ5PWUuY3VycmVudFRhcmdldC52YWx1ZX0iCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5xdWVyeX0iCiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGJ5IEFyY2hpdmUgVGl0bGUgb3IgU291cmNlIgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtbGVmdCBpcy1zbWFsbCI+CiAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbiAuc3ZnPSIke0lpfSI+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDx3ci1zb3J0ZXIKICAgICAgICAgICAgICAgICAgICBpZD0iaW5kZXgiCiAgICAgICAgICAgICAgICAgICAgc29ydEtleT0iY3RpbWUiCiAgICAgICAgICAgICAgICAgICAgP3NvcnREZXNjPSIkeyEwfSIKICAgICAgICAgICAgICAgICAgICAuc29ydEtleXM9IiR7dGhpcy5zb3J0S2V5c30iCiAgICAgICAgICAgICAgICAgICAgLmRhdGE9IiR7dGhpcy5maWx0ZXJlZEl0ZW1zfSIKICAgICAgICAgICAgICAgICAgICBAc29ydC1jaGFuZ2VkPSIke2U9PnRoaXMuc29ydGVkSXRlbXM9ZS5kZXRhaWwuc29ydGVkRGF0YX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgPC93ci1zb3J0ZXI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2xsLWxpc3QiPgogICAgICAgICAgICAgICAgICAke251bGw9PT0oZT10aGlzLnNvcnRlZEl0ZW1zKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tYXAoKChlLHQpPT5RYAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sbC1ibG9jayBwYW5lbC1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJJdGVtSW5mbyhlKX0KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLl9kZWxldGluZ1tlLnNvdXJjZVVybF0/UWAgPHNwYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImJ1dHRvbiBkZWxldGUtYnV0dG9uIGlzLWxvYWRpbmcgaXMtc3RhdGljIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWxldGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPmA6UWAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJkZWxldGUgZGVsZXRlLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJVbmxvYWQgSXRlbSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iVW5sb2FkIEl0ZW0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1jb2xsLWluZGV4PSIke3R9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uRGVsZXRlSXRlbX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICBgKSl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOlFgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ibG9jayBleHRyYS1wYWRkaW5nIj4KICAgICAgICAgICAgICAgICAgJHtudWxsPT09dGhpcy5zb3J0ZWRJdGVtcz9RYDxpPkxvYWRpbmcgQXJjaGl2ZXMuLi48L2k+YDp0aGlzLnJlbmRlckVtcHR5KCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L3NlY3Rpb24+CiAgICBgfXJlbmRlckl0ZW1JbmZvKGUpe3JldHVybiBRYDx3ci1pdGVtLWluZm8gLml0ZW09JHtlfT48L3dyLWl0ZW0taW5mbz5gfXJlbmRlckVtcHR5KCl7cmV0dXJuIFFgCiAgICAgIDxwPgogICAgICAgIERvbid0IGhhdmUgYW55IHdlYiBhcmNoaXZlcyB5ZXQ/IENoZWNrIG91dAogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd2VicmVjb3JkZXIubmV0L2FyY2hpdmV3ZWJwYWdlIiB0YXJnZXQ9Il9ibGFuayIKICAgICAgICAgID5BcmNoaXZlV2ViLnBhZ2U8L2EKICAgICAgICA+CiAgICAgICAgdG8gc2F2ZSBwYWdlcyBhcyB5b3UgYnJvd3NlIHRoZSB3ZWIsIG9yCiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93ZWJyZWNvcmRlci5uZXQvYnJvd3NlcnRyaXgiIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgPnNpZ24gdXAgZm9yIEJyb3dzZXJ0cml4PC9hCiAgICAgICAgPgogICAgICAgIHRvIGFyY2hpdmUgZW50aXJlIHdlYnNpdGVzIHdpdGggYXV0b21hdGVkIGNyYXdsaW5nIQogICAgICA8L3A+CiAgICBgfX10KFt5ZSh7dHlwZTpBcnJheX0pXSxMaS5wcm90b3R5cGUsIml0ZW1zIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxMaS5wcm90b3R5cGUsInF1ZXJ5Iix2b2lkIDApLHQoW3llKHt0eXBlOkFycmF5fSldLExpLnByb3RvdHlwZSwiZmlsdGVyZWRJdGVtcyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpBcnJheX0pXSxMaS5wcm90b3R5cGUsInNvcnRlZEl0ZW1zIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sTGkucHJvdG90eXBlLCJoaWRlSGVhZGVyIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxMaS5wcm90b3R5cGUsImRhdGVOYW1lIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxMaS5wcm90b3R5cGUsImhlYWRlck5hbWUiLHZvaWQgMCksdChbeGUoKV0sTGkucHJvdG90eXBlLCJfZGVsZXRpbmciLHZvaWQgMCksY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ3ci1pdGVtLWluZGV4IixMaSk7bGV0IEVpPWNsYXNzIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuZmlsZURpc3BsYXlOYW1lPSIiLHRoaXMuZmlsZT1udWxsLHRoaXMuZHJvcHBlZEZpbGU9bnVsbCx0aGlzLmhhc05hdGl2ZUZTPSEhd2luZG93LnNob3dPcGVuRmlsZVBpY2tlciYmIXFlLHRoaXMuc2hvd09wZW5GaWxlUGlja2VyT3B0aW9ucz17dHlwZXM6W3tkZXNjcmlwdGlvbjoiV0FSQywgV0FDWiwgYW5kIEhBUiBGaWxlcyIsYWNjZXB0OnsiYXBwbGljYXRpb24vd2FyYyI6WyIud2FyYyIsIi5neiJdLCJhcHBsaWNhdGlvbi9oYXIiOlsiLmhhciJdLCJhcHBsaWNhdGlvbi93YWN6IjpbIi53YWN6Il0sImFwcGxpY2F0aW9uL2pzb24iOlsiLmpzb24iXX19XX0sdGhpcy5uZXdGdWxsSW1wb3J0PSExLHRoaXMubm9IZWFkPSExfXVwZGF0ZWQoZSl7ZS5oYXMoImRyb3BwZWRGaWxlIikmJnRoaXMuZHJvcHBlZEZpbGUmJnRoaXMub25Ecm9wRmlsZSgpfW9uRHJvcEZpbGUoKXtjb25zdCBlPXRoaXMuc2hvd09wZW5GaWxlUGlja2VyT3B0aW9ucy50eXBlcy5tYXAoKGU9PmUuYWNjZXB0KSkubWFwKE9iamVjdC52YWx1ZXMpLmZsYXQoMikuc29tZSgoZT0+e3ZhciB0O3JldHVybiBudWxsPT09KHQ9dGhpcy5kcm9wcGVkRmlsZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQubmFtZS5lbmRzV2l0aChlKX0pKTtpZihlKXtpZihudWxsPT09dGhpcy5kcm9wcGVkRmlsZSlyZXR1cm47dGhpcy5zZXRGaWxlKHRoaXMuZHJvcHBlZEZpbGUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZC1kcm9wLWZpbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMub25TdGFydExvYWQoKX19b25DaG9vc2VGaWxlKGUpezAhPT1lLmN1cnJlbnRUYXJnZXQuZmlsZXMubGVuZ3RoJiZ0aGlzLnNldEZpbGUoZS5jdXJyZW50VGFyZ2V0LmZpbGVzWzBdKX1zZXRGaWxlKGUpe3ZhciB0O3RoaXMuZmlsZT1lLHFlJiYobnVsbD09PSh0PXdpbmRvdy5lbGVjdHJvbil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZ2V0UGF0aCkmJih0aGlzLmZpbGUucGF0aD13aW5kb3cuZWxlY3Ryb24uZ2V0UGF0aCh0aGlzLmZpbGUpKSx0aGlzLmZpbGVEaXNwbGF5TmFtZT0iZmlsZTovLyIrKGUucGF0aHx8ZS5uYW1lKX1vbkNob29zZU5hdGl2ZUZpbGUoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKCF0aGlzLmhhc05hdGl2ZUZTKXJldHVybjtjb25zdFtlXT15aWVsZCB3aW5kb3cuc2hvd09wZW5GaWxlUGlja2VyKHRoaXMuc2hvd09wZW5GaWxlUGlja2VyT3B0aW9ucyk7dGhpcy5maWxlSGFuZGxlPWUsdGhpcy5maWxlPXlpZWxkIGUuZ2V0RmlsZSgpLHRoaXMuZmlsZURpc3BsYXlOYW1lPSJmaWxlOi8vIitlLm5hbWV9KSl9cmFuZG9tSWQoKXtyZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTUpK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDE1KX1vblN0YXJ0TG9hZChlKXtlJiZlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD17c291cmNlVXJsOnRoaXMuZmlsZURpc3BsYXlOYW1lLG5ld0Z1bGxJbXBvcnQ6dGhpcy5uZXdGdWxsSW1wb3J0fTtyZXR1cm4gdGhpcy5maWxlJiYodC5pc0ZpbGU9ITAsdGhpcy5maWxlLnBhdGg/KHQubG9hZFVybD0iZmlsZTI6Ly8iK3RoaXMuZmlsZS5wYXRoLHQubm9DYWNoZT0hMCk6dGhpcy5maWxlSGFuZGxlPyh0LmxvYWRVcmw9dGhpcy5maWxlRGlzcGxheU5hbWUsdC5leHRyYT17ZmlsZUhhbmRsZTp0aGlzLmZpbGVIYW5kbGV9LHQubm9DYWNoZT0hMSk6KHQubG9hZFVybD1VUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMuZmlsZSksdC5ibG9iPXRoaXMuZmlsZSx0Lm5vQ2FjaGU9ITEpLHQuc2l6ZT10aGlzLmZpbGUuc2l6ZSx0Lm5hbWU9dGhpcy5maWxlRGlzcGxheU5hbWUpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvYWQtc3RhcnQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp0fSkpLCExfW9uSW5wdXQoZSl7dGhpcy5maWxlRGlzcGxheU5hbWU9ZS5jdXJyZW50VGFyZ2V0LnZhbHVlLHRoaXMuZmlsZSYmdGhpcy5maWxlRGlzcGxheU5hbWUmJnRoaXMuZmlsZURpc3BsYXlOYW1lLnN0YXJ0c1dpdGgoImZpbGU6Ly8iKSYmKHRoaXMuZmlsZT1udWxsLHRoaXMuZmlsZURpc3BsYXlOYW1lPSIiKX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShoYAogICAgICA6aG9zdCB7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CiAgICAgIC5leHRyYS1wYWRkaW5nIHsKICAgICAgICBwYWRkaW5nOiAxLjVlbTsKICAgICAgfQogICAgICAubGVzcy1wYWRkaW5nIHsKICAgICAgICBwYWRkaW5nLXRvcDogMWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAxZW07CiAgICAgIH0KICAgICAgZGl2LmZpZWxkLmhhcy1hZGRvbnMgewogICAgICAgIGZsZXg6IGF1dG87CiAgICAgIH0KICAgICAgLnBhbmVsLWhlYWRpbmcgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZmYzZmY7CiAgICAgIH0KICAgICAgLm1lc3NhZ2UtaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZmM2ZmOwogICAgICAgIGNvbG9yOiBibGFjazsKICAgICAgfQogICAgICAuaGVhZGluZy1zaXplIHsKICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgIH0KICAgICAgZm9ybSB7CiAgICAgICAgZmxleC1ncm93OiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgcC5jb250cm9sLmlzLWV4cGFuZGVkIHsKICAgICAgICB3aWR0aDogbWluLWNvbnRlbnQ7CiAgICAgIH0KICAgICAgaW5wdXQuaW5wdXQuZmlsZS1uYW1lOmludmFsaWQgewogICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZWQ7CiAgICAgIH0KICAgICAgaW5wdXQuaW5wdXQuZmlsZS1uYW1lIHsKICAgICAgICBib3JkZXItd2lkdGg6IDFweDsKICAgICAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7CiAgICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgI2ZpbGVuYW1lIHsKICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7CiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OwogICAgICAgIH0KICAgICAgfQogICAgYCl9cmVuZGVyKCl7cmV0dXJuIFFgIDxzZWN0aW9uCiAgICAgIGNsYXNzPSJzZWN0aW9uICR7dGhpcy5ub0hlYWQ/ImlzLXBhZGRpbmdsZXNzIjoibGVzcy1wYWRkaW5nIn0iCiAgICA+CiAgICAgIDxkaXYgY2xhc3M9IiR7dGhpcy5ub0hlYWQ/IiI6InBhbmVsIn0iPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSIke3RoaXMubm9IZWFkPyJpcy1oaWRkZW4iOiJwYW5lbC1oZWFkaW5nIn0gaGVhZGluZy1zaXplIgogICAgICAgID4KICAgICAgICAgICR7dGhpcy5uZXdGdWxsSW1wb3J0PyJJbXBvcnQgRXhpc3RpbmciOiJMb2FkIn0gV2ViIEFyY2hpdmUKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iJHt0aGlzLm5vSGVhZD8iIjoicGFuZWwtYm9keSBleHRyYS1wYWRkaW5nIn0gZmlsZSBoYXMtbmFtZSIKICAgICAgICA+CiAgICAgICAgICA8Zm9ybSBjbGFzcz0iaXMtZmxleCIgQHN1Ym1pdD0iJHt0aGlzLm9uU3RhcnRMb2FkfSI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmlsZS1sYWJlbCI+CiAgICAgICAgICAgICAgJHt0aGlzLmhhc05hdGl2ZUZTPyIiOlFgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJmaWxlLWlucHV0IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHtlPT5lLmN1cnJlbnRUYXJnZXQudmFsdWU9bnVsbH0iCiAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMub25DaG9vc2VGaWxlfQogICAgICAgICAgICAgICAgICAgIHR5cGU9ImZpbGUiCiAgICAgICAgICAgICAgICAgICAgaWQ9ImZpbGV1cGxvYWQiCiAgICAgICAgICAgICAgICAgICAgbmFtZT0iZmlsZXVwbG9hZCIKICAgICAgICAgICAgICAgICAgLz5gfQogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWN0YSIgQGNsaWNrPSIke3RoaXMub25DaG9vc2VOYXRpdmVGaWxlfSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1pY29uIj4KICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICBzaXplPSIwLjllbSIKICAgICAgICAgICAgICAgICAgICAuc3ZnPSR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTI5NiAzODRoLTgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYxOTJoLTg3LjdjLTE3LjggMC0yNi43LTIxLjUtMTQuMS0zNC4xTDI0Mi4zIDUuN2M3LjUtNy41IDE5LjgtNy41IDI3LjMgMGwxNTIuMiAxNTIuMmMxMi42IDEyLjYgMy43IDM0LjEtMTQuMSAzNC4xSDMyMHYxNjhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6bTIxNi04djExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMzc2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDEzNnY4YzAgMzAuOSAyNS4xIDU2IDU2IDU2aDgwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2di04aDEzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHptLTEyNCA4OGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIwem02NCAwYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMCA5IDIwIDIwIDIwIDIwLTkgMjAtMjB6Ii8+PC9zdmc+J30KICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj0idHJ1ZSIKICAgICAgICAgICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLWxhYmVsIGlzLWhpZGRlbi10b3VjaCI+IENob29zZSBGaWxlLi4uIDwvc3Bhbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWVsZCBoYXMtYWRkb25zIj4KICAgICAgICAgICAgICA8cCBjbGFzcz0iY29udHJvbCBpcy1leHBhbmRlZCI+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgY2xhc3M9ImZpbGUtbmFtZSBpbnB1dCIKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgbmFtZT0iZmlsZW5hbWUiCiAgICAgICAgICAgICAgICAgIGlkPSJmaWxlbmFtZSIKICAgICAgICAgICAgICAgICAgcGF0dGVybj0iKChmaWxlfGh0dHB8aHR0cHN8aXBmc3xzMyk6Ly8uKi4od2FyY3x3YXJjLmd6fHppcHx3YWN6fGhhcnxqc29ufGNkeHxjZHhqKShbPyNdLiopPyl8KGdvb2dsZWRyaXZlOi8vLispfChzc2I6Ly8uKykiCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLmZpbGVEaXNwbGF5TmFtZX0iCiAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLm9uSW5wdXR9IgogICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9Im9mZiIKICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IiR7dGhpcy5uZXdGdWxsSW1wb3J0PyJDbGljayAnQ2hvb3NlIEZpbGUnIHRvIHNlbGVjdCBhIGxvY2FsIGFyY2hpdmUgdG8gaW1wb3J0IjoiRW50ZXIgYSBVUkwgb3IgY2xpY2sgJ0Nob29zZSBGaWxlJyB0byBzZWxlY3QgYSBXQVJDLCBXQUNaLCBDRFgsIG9yIEhBUiBmaWxlIn0iCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIGlzLXByaW1hcnkiPgogICAgICAgICAgICAgICAgICAke3RoaXMubmV3RnVsbEltcG9ydD8iSW1wb3J0IjoiTG9hZCJ9CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPmB9fTt2YXIgQWk7dChbeWUoe3R5cGU6U3RyaW5nfSldLEVpLnByb3RvdHlwZSwiZmlsZURpc3BsYXlOYW1lIix2b2lkIDApLHQoW3llKHthdHRyaWJ1dGU6ITF9KV0sRWkucHJvdG90eXBlLCJmaWxlIix2b2lkIDApLHQoW3llKHthdHRyaWJ1dGU6ITF9KV0sRWkucHJvdG90eXBlLCJkcm9wcGVkRmlsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLEVpLnByb3RvdHlwZSwiaGFzTmF0aXZlRlMiLHZvaWQgMCksdChbeWUoe3R5cGU6T2JqZWN0fSldLEVpLnByb3RvdHlwZSwic2hvd09wZW5GaWxlUGlja2VyT3B0aW9ucyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLEVpLnByb3RvdHlwZSwibmV3RnVsbEltcG9ydCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLEVpLnByb3RvdHlwZSwibm9IZWFkIix2b2lkIDApLEVpPXQoW2dlKCJ3ci1jaG9vc2VyIildLEVpKTtsZXQgVGk9QWk9Y2xhc3MgZXh0ZW5kcyBtZXtjb25zdHJ1Y3RvcihlPSJzdy5qcyIpe3N1cGVyKCksdGhpcy5pbml0ZWQ9ITEsdGhpcy5wYWdlUGFyYW1zPW5ldyBVUkxTZWFyY2hQYXJhbXMsdGhpcy5zb3VyY2VVcmw9bnVsbCx0aGlzLm5hdk1lbnVTaG93bj0hMSx0aGlzLnNob3dBYm91dD0hMSx0aGlzLnNob3dGaWxlRHJvcE92ZXJsYXk9ITEsdGhpcy5jb2xsVGl0bGU9bnVsbCx0aGlzLmxvYWRJbmZvPW51bGwsdGhpcy5lbWJlZD1udWxsLHRoaXMuY29sbFBhZ2VVcmw9IiIsdGhpcy5wYWdlVGl0bGU9IiIsdGhpcy5wYWdlUmVwbGF5PSExLHRoaXMuc291cmNlPW51bGwsdGhpcy5za2lwUnVmZmxlPSExLHRoaXMuc3dFcnJvck1zZz1udWxsLHRoaXMudXNlUnVmZmxlPSExLHRoaXMuZHJvcHBlZEZpbGU9bnVsbCx0aGlzLm1heWJlU3RhcnRGaWxlRHJvcD1lPT57dGhpcy5zb3VyY2VVcmx8fCh0aGlzLnNob3dGaWxlRHJvcE92ZXJsYXk9ITAsZS5wcmV2ZW50RGVmYXVsdCgpKX0sdGhpcy5zd05hbWU9ZSx0aGlzLnN3bWFuYWdlcj1udWxsLHRoaXMuc2tpcFJ1ZmZsZT0hMSx0aGlzLnVzZVJ1ZmZsZT0hMSx0aGlzLnNhZmFyaUtleWZyYW1lcygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwoZT0+e3RoaXMubWF5YmVTdGFydEZpbGVEcm9wKGUpfSkpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLChlPT57dGhpcy5tYXliZVN0YXJ0RmlsZURyb3AoZSl9KSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCgoKT0+e3RoaXMuc2hvd0ZpbGVEcm9wT3ZlcmxheT0hMX0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLCgoKT0+e3RoaXMuc2hvd0ZpbGVEcm9wT3ZlcmxheT0hMX0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLChlPT57dmFyIHQ7dGhpcy5kcm9wcGVkRmlsZT0obnVsbD09PSh0PWUuZGF0YVRyYW5zZmVyKXx8dm9pZCAwPT09dD92b2lkIDA6dC5maWxlc1swXSl8fG51bGwsdGhpcy5zaG93RmlsZURyb3BPdmVybGF5PSExLGUucHJldmVudERlZmF1bHQoKX0pKX1nZXQgYXBwTmFtZSgpe3JldHVybiJSZXBsYXlXZWIucGFnZSJ9Z2V0IGhvbWVVcmwoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKEFpLmFwcFN0eWxlcyl9c3RhdGljIGdldCBhcHBTdHlsZXMoKXtyZXR1cm4gaGAKICAgICAgI3dybG9nbyB7CiAgICAgICAgbWF4LWhlaWdodDogMXJlbTsKICAgICAgfQogICAgICAubmF2YmFyIHsKICAgICAgICBoZWlnaHQ6IDEuNXJlbTsKICAgICAgfQogICAgICAubmF2YmFyLWJyYW5kIHsKICAgICAgICBoZWlnaHQ6IDEuNXJlbTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLndyLWxvZ28taXRlbSB7CiAgICAgICAgcGFkZGluZzogMCAwLjVyZW0gMCAwOwoKICAgICAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsKICAgICAgICAta2h0bWwtdXNlci1kcmFnOiBub25lOwogICAgICAgIC1tb3otdXNlci1kcmFnOiBub25lOwogICAgICAgIC1vLXVzZXItZHJhZzogbm9uZTsKICAgICAgICB1c2VyLWRyYWc6IG5vbmU7CiAgICAgIH0KICAgICAgLm5vLXdyYXAgewogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CiAgICAgIC5oYXMtYWxsY2FwcyB7CiAgICAgICAgZm9udC12YXJpYW50LWNhcHM6IHNtYWxsLWNhcHM7CiAgICAgIH0KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIG1pbi13aWR0aDogMHB4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KICAgICAgd3ItaXRlbSB7CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAubmF2YmFyIHsKICAgICAgICBwYWRkaW5nOiAwIDAuNWVtOwogICAgICB9CgogICAgICBkaXYubmF2YmFyLW1lbnUgZmEtaWNvbiB7CiAgICAgICAgdmVydGljYWwtYWxpZ246IHN1YjsKICAgICAgfQogICAgICAudGFnbGluZSB7CiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTsKICAgICAgfQoKICAgICAgLmRyb3AtZmlsZS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBpbnNldDogMDsKICAgICAgICB6LWluZGV4OiA1MDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7CiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7CiAgICAgIH0KCiAgICAgIC5kcm9wLWZpbGUtb3ZlcmxheTphZnRlciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgY29udGVudDogIiAiOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBpbnNldDogMDsKICAgICAgICBib3JkZXI6IDVweCBkYXNoZWQgI2FhYTsKICAgICAgICBtYXJnaW46IDE1cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg0MHB4KSB7CiAgICAgICAgLm1lbnUtb25seSB7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgYS5hcnJvdy1idXR0b24gewogICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7CiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7CiAgICAgICAgfQoKICAgICAgICAuaW5mby1tZW51IHsKICAgICAgICAgIHBhZGRpbmc6IDAgMWVtOwogICAgICAgIH0KCiAgICAgICAgLmxvZ28tdGV4dCB7CiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICAgICAgfQoKICAgICAgICBhLm5hdmJhci1pdGVtLmxvZ28tdGV4dDpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOwogICAgICAgIH0KICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODQwcHgpIHsKICAgICAgICAud2lkZS1vbmx5IHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB9CiAgICAgIH0KICAgIGB9Z2V0IG1haW5Mb2dvKCl7cmV0dXJuIEtlfXJlbmRlck5hdkJyYW5kKCl7cmV0dXJuIFFgIDxmYS1pY29uCiAgICAgIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjIiIHZpZXdCb3g9IjAgMCAxODkgMjQiPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZD0iTTAtLjAwMWgxODguODh2MjMuMDRIMHoiLz48L2NsaXBQYXRoPjxnIGNsaXAtcGF0aD0idXJsKCNhKSI+PHBhdGggZD0iTTMyLjk5NyAxMy43Mjh2NC40MzdoLTMuMDE0VjQuODc0aDUuOTM0cTIuMDQgMCAzLjA4OSAxLjAxIDEuMDY3IDEuMDExIDEuMDY3IDIuODA4IDAgMS41MTYtLjgwNSAyLjY1OWE3LjEgNy4xIDAgMCAxLTEuMzYyIDEuNDI5bDIuMjYgNC42NzN2LjcxMmgtMi45NTdsLTIuMzU0LTQuNDM3em0wLTYuNDc3djQuMzI0aDIuODI0cS41MzYtLjM4Ny44NDUtLjk3My4zNzQtLjY3NC4zNzQtMS41MzUgMC0uODgtLjQxMi0xLjM0OC0uMzkyLS40NjgtMS4xNDItLjQ2OHptMTcuOTMyIDEwLjkxNGgtOC4yMThWNC44NzRoOC4yMTh2Mi42NThoLTUuMjA0djIuOTJoNC43NzN2Mi4xMTZoLTQuNzczdjIuOTM5aDUuMjA0em01LjYwNC0zLjI5NXYzLjI5NUg1My41MlY0Ljg3NGg1LjIyMnExLjU5MiAwIDIuNjQuNTYxYTMuNDcgMy40NyAwIDAgMSAxLjU1NCAxLjY4NXEuNTI0IDEuMTA0LjUyNCAyLjc1MiAwIDEuNjEtLjUyNCAyLjczM2EzLjU4IDMuNTggMCAwIDEtMS41NTQgMS42ODVxLTEuMDQ4LjU4LTIuNjQuNTh6bTAtNy42MTl2NS4yNDJoMi4xMzVxLjg2IDAgMS4zMS0uNjc0LjQ2OC0uNjc1LjQ2OC0xLjk0NyAwLS44MjMtLjIwNi0xLjQwNC0uMjA2LS42LS42MTgtLjg5OWExLjQ3IDEuNDcgMCAwIDAtLjk1NC0uMzE4em0xNy4xOTQgMTAuOTE0aC03LjlWNC44NzRoMy4wMTR2MTAuNTU4aDQuODg2em0zNC4xNzggMGgtMi4zMDNsLTEuNzAzLTEyLjQ4NnYtLjgwNWgyLjkzOWwuOTcxIDcuNjEyIDIuMTE3LTUuNTE2aDEuMjE3bDIuMDg1IDUuNDExIDEuMDA0LTcuNTA3aDIuOTAydi44MDVsLTEuNjg1IDEyLjQ4NmgtMi4zNTlsLTIuNTI3LTYuMTIyLS4wNDctLjE1LS4wNDcuMTV6bTE5LjY5OSAwaC04LjIxOFY0Ljg3NGg4LjIxOHYyLjY1OEgxMjIuNHYyLjkyaDQuNzc0djIuMTE2SDEyMi40djIuOTM5aDUuMjA0em05LjAzIDBoLTYuNDM5VjQuODc0aDYuNDk2cTEuNjg0IDAgMi41ODMuODQyLjg5OC44MjQuODk4IDIuMjY1YTMuMjcgMy4yNyAwIDAgMS0uNzY3IDIuMTM0IDQuNSA0LjUgMCAwIDEtMS4wMzkuOTM5cS43ODUuMzM4IDEuMjgyLjkxNC44MjQuOTU1LjgyNCAyLjQzNCAwIDEuNzQxLS45NzMgMi43NTItLjk3NCAxLjAxMS0yLjg2NSAxLjAxMW0tMy40MjUtMTEuMDI2djMuNDQ0aDMuMDM1cS4zOC0uMzQ2LjYxNS0uNzg2LjI4LS41MjQuMjgxLTEuMTIzIDAtLjY5My0uMzU2LTEuMTA1LS4zMzYtLjQzLS45MzYtLjQzem0wIDUuMzE2djMuMzdoMi44NDVxLjY3MyAwIDEuMDExLS40MTIuMzU2LS40My4zNTYtMS4yMzYgMC0uODIzLS4zNTYtMS4yNzNhMS4xNSAxLjE1IDAgMCAwLS43NzMtLjQ0OXptMTIuODAxIDIuNDE1djMuMjk1aC0zLjAxNFY0Ljg3NGg1LjIyM3ExLjU5MSAwIDIuNjM5LjU2MWEzLjQ3IDMuNDcgMCAwIDEgMS41NTQgMS42ODVxLjUyNCAxLjEwNC41MjQgMi43NTIgMCAxLjYxLS41MjQgMi43MzNhMy41OCAzLjU4IDAgMCAxLTEuNTU0IDEuNjg1cS0xLjA0OC41OC0yLjYzOS41OHptMC03LjYxOXY1LjI0MmgyLjEzNHEuODYxIDAgMS4zMS0uNjc0LjQ2OC0uNjc1LjQ2OC0xLjk0NyAwLS44MjMtLjIwNi0xLjQwNC0uMjA2LS42LS42MTctLjg5OWExLjQ3IDEuNDcgMCAwIDAtLjk1NS0uMzE4em00MS43MDcgMTAuOTE0aC04LjIxOFY0Ljg3NGg4LjIxOHYyLjY1OGgtNS4yMDR2Mi45Mmg0Ljc3NHYyLjExNmgtNC43NzR2Mi45MzloNS4yMDR6TTc4Ljg0MiAxNS44NjJsLS43MzMgMi4zMDNoLTIuODY0di0uNjU1bDQuMjY4LTEyLjYzNmgyLjk5Nmw0LjIxMiAxMi41Nzl2LjcxMmgtMi45NzdsLS43MDYtMi4zMDN6bTMuNi0xLjk0N0w4MC45OCA5LjE0NmwtMS41MTggNC43Njl6bTguMjgzLS41MjJMODYuODUgNS42NnYtLjc4NmgyLjc3bDIuNTQ2IDUuODc0IDIuNTY1LTUuODc0aDIuNzUxdi44MDVsLTMuODcxIDcuNzQyLjAxNSA0Ljc0NGgtMi45MDF6bTY2Ljc5IDIuNDY5LS43MzMgMi4zMDNoLTIuODY0di0uNjU1bDQuMjY4LTEyLjYzNmgyLjk5Nmw0LjIxMiAxMi41Nzl2LjcxMmgtMi45NzdsLS43MDYtMi4zMDN6bTMuNi0xLjk0Ny0xLjQ2Mi00Ljc2OS0xLjUxOCA0Ljc2OXptMTEuNzA2IDQuNDM3cS0xLjk4NSAwLTMuMzMyLS42OTMtMS4zNDgtLjcxLTIuMDQxLTIuMjI3LS42OTMtMS41MzYtLjY5Mi0zLjk1IDAtMi4yODQuNzMtMy43ODIuNzQ5LTEuNTE2IDIuMTktMi4yNjV0My41NTctLjc0OXExLjYyOCAwIDMuMzEzLjQxMmwtLjUwNSAyLjQ3MWExNCAxNCAwIDAgMC0yLjY3Ny0uMjYycS0xLjIxNiAwLTIuMDIyLjQ0OS0uNzg2LjQzMi0xLjE5OCAxLjM2Ny0uMzkzLjkzNi0uMzkzIDIuNDM0IDAgMS41MzUuMzE4IDIuNDg5LjMxOC45NTYuOTczIDEuNDA0LjY1Ni40MyAxLjcwNC40MzFhOSA5IDAgMCAwIDEuMTQyLS4wNzV2LTMuMDdsLTIuMDIyLS40ODd2LTEuODM0aDQuNzM2djcuMzc1YTEyIDEyIDAgMCAxLTEuODcyLjQxMnEtLjk1NC4xNS0xLjkwOS4xNSIgc3R5bGU9ImZpbGw6IzE0MTIyZCIvPjxwYXRoIGQ9Ik02LjU0NCAxMC43OTZhLjIzOS4yMzkgMCAwIDEtLjIzNi0uMjgzIDUuMzIgNS4zMiAwIDAgMSAyLjk1OS0zLjgwMS4xMi4xMiAwIDAgMSAuMTMzLjAyMy4xMi4xMiAwIDAgMSAuMDI1LjEzM2MtLjQwOS45OTItLjY5IDIuMjc1LS43NzcgMy43MDJhLjI0LjI0IDAgMCAxLS4yMzkuMjI1em03LjA3LTMuOTI4YS4xMi4xMiAwIDAgMSAuMTU5LS4xNTcgNS4zMiA1LjMyIDAgMCAxIDIuOTU4IDMuODAzLjI0LjI0IDAgMCAxLS4wNTIuMTk1LjI0LjI0IDAgMCAxLS4xODMuMDg1Yy0uNDc1LjAwMi0xLjQyOS4wMDItMS44NjUuMDAyYS4yNC4yNCAwIDAgMS0uMjM5LS4yMjZjLS4wODctMS40MjctLjM2OC0yLjcxLS43NzgtMy43MDJtMi44ODIgNS4zNjhhLjIzOC4yMzggMCAwIDEgLjIzNi4yODIgNS4zMiA1LjMyIDAgMCAxLTIuOTU5IDMuODAxLjEyLjEyIDAgMCAxLS4xMzMtLjAyMy4xMi4xMiAwIDAgMS0uMDI1LS4xMzNjLjQwOS0uOTkyLjY5LTIuMjc1Ljc3Ny0zLjcwMmEuMjQuMjQgMCAwIDEgLjIzOS0uMjI1em0tNy4wNyAzLjkyN2EuMTIuMTIgMCAwIDEtLjE1OS4xNTcgNS4zMiA1LjMyIDAgMCAxLTIuOTU4LTMuODAzLjI0LjI0IDAgMCAxIC4wNTItLjE5NS4yNC4yNCAwIDAgMSAuMTgzLS4wODVsMS44NjUtLjAwMWMuMTI3IDAgLjIzMi4wOTkuMjM5LjIyNS4wODcgMS40MjcuMzY4IDIuNzEuNzc4IDMuNzAybS42NjYtMy42NzJhLjI0LjI0IDAgMCAxIC4yMzktLjI1NWgyLjM3OGEuMjQuMjQgMCAwIDEgLjIzOS4yNTVjLS4xMDIgMS41MTktLjQ0MiAyLjg0My0uOTU3IDMuNzE3YTIuMSAyLjEgMCAwIDEtLjM5Ny41MDkuMTIuMTIgMCAwIDEtLjE0OCAwIDIuMSAyLjEgMCAwIDEtLjM5Ny0uNTA5Yy0uNTE1LS44NzQtLjg1NS0yLjE5OC0uOTU3LTMuNzE3bTIuODU2LTEuOTUxYS4yNC4yNCAwIDAgMS0uMjM5LjI1NWwtMi4zNzguMDAxYS4yNC4yNCAwIDAgMS0uMjM5LS4yNTZjLjEwMi0xLjUxOS40NDItMi44NDMuOTU3LTMuNzE3LjEyMS0uMjA2LjI2MS0uMzkxLjM5Ny0uNTA5YS4xMi4xMiAwIDAgMSAuMTQ4IDBjLjEzNi4xMTguMjc2LjMwMy4zOTcuNTA5LjUxNS44NzQuODU1IDIuMTk4Ljk1NyAzLjcxNyIgc3R5bGU9ImZpbGw6IzA4OTFiMiIvPjxwYXRoIGQ9Ik0yMi44MzMgMTIuNzk5YS4yNC4yNCAwIDAgMSAuMTIyLjI0MWMtLjc0NiA1LjY0LTUuNTc4IDkuOTk5LTExLjQyMSA5Ljk5OS01Ljg2OSAwLTEwLjcxOC00LjM5Ny0xMS40My0xMC4wNzRhLjIzOC4yMzggMCAwIDEgLjM1Ny0uMjMzYy41MTguMyAxLjM4LjgwMyAxLjY5Ny45ODdhLjI0LjI0IDAgMCAwIC4yNDIgMGwxLjcwNi0xLjAwM2EuMjQuMjQgMCAwIDEgLjM1OC4xNjUgNy4yMDQgNy4yMDQgMCAwIDAgNy4wNyA1LjgzOCA3LjIxIDcuMjEgMCAwIDAgNy4wNTctNS43NjcuMjQuMjQgMCAwIDEgLjEyMS0uMTY0bDEuOTYxLTEuMDU5YS4yNC4yNCAwIDAgMSAuMjMuMDAxek0uMjI2IDEwLjIzOWEuMjQuMjQgMCAwIDEtLjEyMi0uMjRjLjc0Ni01LjY0MSA1LjU3OC0xMCAxMS40MjEtMTAgNS44NjkgMCAxMC43MTggNC4zOTggMTEuNDMgMTAuMDc1YS4yNC4yNCAwIDAgMS0uMTA3LjIyNi4yNC4yNCAwIDAgMS0uMjUuMDA3Yy0uNTE4LS4zLTEuMzgtLjgwMy0xLjY5Ny0uOTg4YS4yNC4yNCAwIDAgMC0uMjQyLjAwMWwtMS43MDYgMS4wMDNhLjI0LjI0IDAgMCAxLS4zNTgtLjE2NSA3LjIwNSA3LjIwNSAwIDAgMC03LjA3LTUuODM5IDcuMjEgNy4yMSAwIDAgMC03LjA1NyA1Ljc2Ny4yNC4yNCAwIDAgMS0uMTIxLjE2NGwtMS45NjEgMS4wNmEuMjQuMjQgMCAwIDEtLjIzMS0uMDAyeiIgc3R5bGU9ImZpbGw6IzRkN2MwZiIvPjwvZz48L3N2Zz5cbid9IgogICAgICBzaXplPSIiCiAgICAgIHdpZHRoPSI5LjVyZW0iCiAgICAgIGhlaWdodD0iMS4yNXJlbSIKICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICA+PC9mYS1pY29uPmB9cmVuZGVyTmF2QmFyKCl7cmV0dXJuIFFgIDxhCiAgICAgICAgaHJlZj0iI3NraXAtbWFpbi10YXJnZXQiCiAgICAgICAgQGNsaWNrPSR7dGhpcy5za2lwTWVudX0KICAgICAgICBjbGFzcz0ic2tpcC1saW5rIgogICAgICAgID5Ta2lwIG1haW4gbmF2aWdhdGlvbjwvYQogICAgICA+CiAgICAgIDxuYXYgY2xhc3M9Im5hdmJhciIgYXJpYS1sYWJlbD0ibWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2YmFyLWJyYW5kIj4KICAgICAgICAgICR7dGhpcy5lbWJlZD9RYAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5hdmJhci1pdGVtIHdyLWxvZ28taXRlbSI+CiAgICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgICAgaWQ9IndybG9nbyIKICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjByZW0iCiAgICAgICAgICAgICAgICAgICAgLnN2Zz0ke3RoaXMubWFpbkxvZ299CiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgYDpRYAogICAgICAgICAgICAgICAgPGEKICAgICAgICAgICAgICAgICAgaHJlZj0iJHt0aGlzLmhvbWVVcmx9IgogICAgICAgICAgICAgICAgICBjbGFzcz0ibmF2YmFyLWl0ZW0gd3ItbG9nby1pdGVtIgogICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJSZXBsYXlXZWIucGFnZSBIb21lIgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyTmF2QnJhbmQoKX0KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICR7dGhpcy5jb2xsVGl0bGU/UWAKICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9IiR7dGhpcy5jb2xsUGFnZVVybH0iCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJuby13cmFwIGlzLXNpemUtNiBoYXMtdGV4dC1ibGFjayIKICAgICAgICAgICAgICAgICAgICAgICAgPi8mbmJzcDsmbmJzcDs8aT4ke3RoaXMuY29sbFRpdGxlfTwvaT48L2EKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuby13cmFwIGlzLXNpemUtNiIKICAgICAgICAgICAgICAgICAgICAgICAgPiZuYnNwOyZuYnNwOy8mbmJzcDsKICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnBhZ2VSZXBsYXk/UWA8aT4ke3RoaXMucGFnZVRpdGxlfTwvaT5gOnRoaXMucGFnZVRpdGxlfQogICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgYH0KICAgICAgICAgIDxhCiAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgaWQ9Im1lbnUtYnV0dG9uIgogICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbk5hdk1lbnV9IgogICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICBjbGFzcz0ibmF2YmFyLWJ1cmdlciBidXJnZXIgJHt0aGlzLm5hdk1lbnVTaG93bj8iaXMtYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9Im1haW4gbWVudSIKICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD0idHJ1ZSIKICAgICAgICAgICAgYXJpYS1leHBhbmRlZD0iJHt0aGlzLm5hdk1lbnVTaG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNvdXJjZVVybD9RYGA6UWAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJuYXZiYXItbWVudSAke3RoaXMubmF2TWVudVNob3duPyJpcy1hY3RpdmUiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1zdGFydCI+CiAgICAgICAgICAgICAgICAke3FlP1FgCiAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJuYXZiYXItaXRlbSBhcnJvdy1idXR0b24iCiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJHbyBCYWNrIgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PndpbmRvdy5oaXN0b3J5LmJhY2soKX0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0iMS4wcmVtIgogICAgICAgICAgICAgICAgICAgICAgICAgIC5zdmc9IiR7WWV9IgogICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICA+PC9mYS1pY29uCiAgICAgICAgICAgICAgICAgICAgICAgID48c3BhbiBjbGFzcz0ibWVudS1vbmx5IGlzLXNpemUtNyI+Jm5ic3A7R28gQmFjazwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im5hdmJhci1pdGVtIGFycm93LWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IkdvIEZvcndhcmQiCiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+d2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpfSIKICAgICAgICAgICAgICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSIxLjByZW0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgLnN2Zz0iJHtRZX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49InRydWUiCiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZhLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPSJtZW51LW9ubHkgaXMtc2l6ZS03IgogICAgICAgICAgICAgICAgICAgICAgICAgID4mbmJzcDtHbyBGb3J3YXJkPC9zcGFuCiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICR7dGhpcy5lbWJlZD9RYGA6UWAgPGRpdiBjbGFzcz0ibmF2YmFyLWVuZCI+JHt0aGlzLnJlbmRlck5hdkVuZCgpfTwvZGl2PmB9CiAgICAgICAgICAgIDwvZGl2PmB9CiAgICAgIDwvbmF2PgogICAgICA8cCBpZD0ic2tpcC1tYWluLXRhcmdldCIgdGFiaW5kZXg9Ii0xIiBjbGFzcz0iaXMtc3Itb25seSI+U2tpcHBlZDwvcD5gfXJlbmRlck5hdkVuZCgpe3JldHVybiBRYCA8YSBocmVmPSIvZG9jcyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJuYXZiYXItaXRlbSBpcy1zaXplLTYiPgogICAgICAgIDxmYS1pY29uIC5zdmc9IiR7JzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+XHgzYyEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjQgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkgLS1ceDNlPHBhdGggZD0iTTUwNCAyNTZjMCAxMzYuOTk3LTExMS4wNDMgMjQ4LTI0OCAyNDhTOCAzOTIuOTk3IDggMjU2QzggMTE5LjA4MyAxMTkuMDQzIDggMjU2IDhzMjQ4IDExMS4wODMgMjQ4IDI0OHpNMjYyLjY1NSA5MGMtNTQuNDk3IDAtODkuMjU1IDIyLjk1Ny0xMTYuNTQ5IDYzLjc1OC0zLjUzNiA1LjI4Ni0yLjM1MyAxMi40MTUgMi43MTUgMTYuMjU4bDM0LjY5OSAyNi4zMWM1LjIwNSAzLjk0NyAxMi42MjEgMy4wMDggMTYuNjY1LTIuMTIyIDE3Ljg2NC0yMi42NTggMzAuMTEzLTM1Ljc5NyA1Ny4zMDMtMzUuNzk3IDIwLjQyOSAwIDQ1LjY5OCAxMy4xNDggNDUuNjk4IDMyLjk1OCAwIDE0Ljk3Ni0xMi4zNjMgMjIuNjY3LTMyLjUzNCAzMy45NzZDMjQ3LjEyOCAyMzguNTI4IDIxNiAyNTQuOTQxIDIxNiAyOTZ2NGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDU2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEuMzMzYzAtMjguNDYyIDgzLjE4Ni0yOS42NDcgODMuMTg2LTEwNi42NjcgMC01OC4wMDItNjAuMTY1LTEwMi0xMTYuNTMxLTEwMnpNMjU2IDMzOGMtMjUuMzY1IDAtNDYgMjAuNjM1LTQ2IDQ2IDAgMjUuMzY0IDIwLjYzNSA0NiA0NiA0NnM0Ni0yMC42MzYgNDYtNDZjMC0yNS4zNjUtMjAuNjM1LTQ2LTQ2LTQ2eiIvPjwvc3ZnPid9IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9mYS1pY29uCiAgICAgICAgPjxzcGFuPiZuYnNwO1VzZXIgRG9jczwvc3Bhbj4KICAgICAgPC9hPgogICAgICA8IS0tCiAgICAtLSBOQjogdGhlIEFib3V0IG1vZGFsIGlzIGN1cnJlbnRseSBpbmFjY2Vzc2libGUgdG8gcGVvcGxlIHVzaW5nIGtleWJvYXJkcyBvciBzY3JlZW4gcmVhZGVycy4KICAgIC0tICBTaG91bGQgYWxsIHRoZSBKUyBhbmQgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFjY2Vzc2libGUgbW9kYWxzIGJlIGFkZGVkLCBvciBzaG91bGQgQWJvdXQgYmUgYSBub3JtYWwgcGFnZT8KICAgIC0tPgogICAgICA8YQogICAgICAgIGhyZWY9Ij90ZXJtcyIKICAgICAgICBAY2xpY2s9IiR7ZT0+e2UucHJldmVudERlZmF1bHQoKSx0aGlzLnNob3dBYm91dD0hMH19IgogICAgICAgIGNsYXNzPSJuYXZiYXItaXRlbSBpcy1zaXplLTYiCiAgICAgICAgPkFib3V0CiAgICAgIDwvYT5gfXJlbmRlckNvbGwoKXtyZXR1cm4gUWAgPHdyLWl0ZW0KICAgICAgLmxvYWRJbmZvPSIke3RoaXMubG9hZEluZm99IgogICAgICBzb3VyY2VVcmw9IiR7dGhpcy5zb3VyY2VVcmx8fCIifSIKICAgICAgZW1iZWQ9IiR7JGUobnVsbD09PXRoaXMuZW1iZWQ/dm9pZCAwOnRoaXMuZW1iZWQpfSIKICAgICAgYXBwTmFtZT0iJHt0aGlzLmFwcE5hbWV9IgogICAgICBzd05hbWU9IiR7JGUodGhpcy5zd05hbWUpfSIKICAgICAgQHJlcGxheS1mYXZpY29ucz0ke3RoaXMub25GYXZJY29uc30KICAgICAgQHVwZGF0ZS10aXRsZT0ke3RoaXMub25UaXRsZX0KICAgICAgQGNvbGwtbG9hZGVkPSR7dGhpcy5vbkNvbGxMb2FkZWR9CiAgICAgIEBjb2xsLWxvYWQtY2FuY2VsPSR7dGhpcy5vbkNvbGxMb2FkQ2FuY2VsfQogICAgICBAYWJvdXQtc2hvdz0keygpPT50aGlzLnNob3dBYm91dD0hMH0KICAgID48L3dyLWl0ZW0+YH1yZW5kZXJIb21lSW5kZXgoKXtyZXR1cm4gUWAgPHdyLWl0ZW0taW5kZXg+CiAgICAgICR7cWU/IiI6UWAKICAgICAgICAgICAgPHAgc2xvdD0iaGVhZGVyIiBjbGFzcz0idGFnbGluZSBpcy1zaXplLTUgaGFzLXRleHQtY2VudGVyZWQiPgogICAgICAgICAgICAgIEV4cGxvcmUgYW5kIFJlcGxheSBJbnRlcmFjdGl2ZSBBcmNoaXZlZCBXZWJwYWdlcyBEaXJlY3RseSBpbiB5b3VyCiAgICAgICAgICAgICAgQnJvd3Nlci4KICAgICAgICAgICAgICA8aQogICAgICAgICAgICAgICAgPjxhCiAgICAgICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3dlYnJlY29yZGVyLm5ldC9yZXBsYXl3ZWJwYWdlLyIKICAgICAgICAgICAgICAgICAgPihMZWFybiBNb3JlKTwvYQogICAgICAgICAgICAgICAgPjwvaQogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgYH0KICAgICAgPHdyLWNob29zZXIKICAgICAgICBzbG90PSJoZWFkZXIiCiAgICAgICAgLmRyb3BwZWRGaWxlPSR7dGhpcy5kcm9wcGVkRmlsZX0KICAgICAgICBAZGlkLWRyb3AtZmlsZT0iJHsoKT0+dGhpcy5kcm9wcGVkRmlsZT1udWxsfSIKICAgICAgICBAbG9hZC1zdGFydD0ke3RoaXMub25TdGFydExvYWR9CiAgICAgID48L3dyLWNob29zZXI+CiAgICA8L3dyLWl0ZW0taW5kZXg+YH1yZW5kZXIoKXtyZXR1cm4gdGhpcy5pbml0ZWQ/dGhpcy5lbWJlZCYmdGhpcy5zd0Vycm9yTXNnP3RoaXMuc3dFcnJvck1zZzpRYAogICAgICAke3RoaXMuZW1iZWQmJiJmdWxsIiE9PXRoaXMuZW1iZWQ/IiI6dGhpcy5yZW5kZXJOYXZCYXIoKX0KICAgICAgJHt0aGlzLnNvdXJjZVVybD90aGlzLnJlbmRlckNvbGwoKTp0aGlzLnJlbmRlckhvbWVJbmRleCgpfQogICAgICAke3RoaXMuc2hvd0Fib3V0P3RoaXMucmVuZGVyQWJvdXQoKToiIn0KICAgICAgJHt0aGlzLnNob3dGaWxlRHJvcE92ZXJsYXk/dGhpcy5yZW5kZXJEcm9wRmlsZU92ZXJsYXkoKToiIn0KICAgIGA6UWBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuaW5pdFJvdXRlKCk7bGV0IGU9dGhpcy5zd05hbWU7Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO2xldCBpPSIiO3RoaXMudXNlUnVmZmxlJiZ0LnNldCgiaW5qZWN0U2NyaXB0cyIsInJ1ZmZsZS9ydWZmbGUuanMiKSx0aGlzLmVtYmVkJiZ0LnNldCgic2VydmVJbmRleCIsIjEiKSxpPXQudG9TdHJpbmcoKSxpLmxlbmd0aCYmKGUrPSI/IitpKSx0aGlzLnN3bWFuYWdlcj1uZXcgaXQoe25hbWU6ZSxhcHBOYW1lOnRoaXMuYXBwTmFtZX0pLHRoaXMuc3dtYW5hZ2VyLnJlZ2lzdGVyKCkuY2F0Y2goKCgpPT57dmFyIGU7cmV0dXJuIHRoaXMuc3dFcnJvck1zZz1udWxsPT09KGU9dGhpcy5zd21hbmFnZXIpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnJlbmRlckVycm9yUmVwb3J0KCl9KSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIiwoKCk9Pnt0aGlzLmluaXRSb3V0ZSgpfSkpfXVwZGF0ZWQoZSl7ZS5oYXMoInNvdXJjZVVybCIpJiYodGhpcy5jb2xsVGl0bGU9bnVsbCl9b25GYXZJY29ucyhlKXtXZShlLmRldGFpbCl9c2tpcE1lbnUoZSl7dmFyIHQ7ZS5wcmV2ZW50RGVmYXVsdCgpLG51bGw9PT0odD10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiI3NraXAtbWFpbi10YXJnZXQiKSl8fHZvaWQgMD09PXR8fHQuZm9jdXMoKX1vbk5hdk1lbnUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5uYXZNZW51U2hvd249IXRoaXMubmF2TWVudVNob3duLHRoaXMubmF2TWVudVNob3duJiYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChlPT57dmFyIHQ7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubmF2TWVudVNob3duPSExLG51bGw9PT0odD10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiI21lbnUtYnV0dG9uIikpfHx2b2lkIDA9PT10fHx0LmZvY3VzKCl9KSx7b25jZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIiwoZT0+e3ZhciB0OyJFc2NhcGUiPT1lLmtleSYmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLm5hdk1lbnVTaG93bj0hMSxudWxsPT09KHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIiNtZW51LWJ1dHRvbiIpKXx8dm9pZCAwPT09dHx8dC5mb2N1cygpKX0pLHtvbmNlOiEwfSkpfWluaXRSb3V0ZSgpe3RoaXMuaW5pdGVkPSEwLHRoaXMucGFnZVBhcmFtcz1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2NvbnN0IGU9dGhpcy5wYWdlUGFyYW1zLmdldCgic3RhdGUiKTtpZihlKXRyeXtjb25zdCB0PUpTT04ucGFyc2UoZSk7aWYodC5pZHMgaW5zdGFuY2VvZiBBcnJheSYmdC51c2VySWQmJiJvcGVuIj09PXQuYWN0aW9uKXJldHVybiB0aGlzLnBhZ2VQYXJhbXMuc2V0KCJzb3VyY2UiLCJnb29nbGVkcml2ZTovLyIrdC5pZHNbMF0pLHRoaXMucGFnZVBhcmFtcy5kZWxldGUoInN0YXRlIiksdm9pZCh3aW5kb3cubG9jYXRpb24uc2VhcmNoPXRoaXMucGFnZVBhcmFtcy50b1N0cmluZygpKX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX1pZih0aGlzLnNvdXJjZSl7dGhpcy5wYWdlUGFyYW1zLnNldCgic291cmNlIix0aGlzLnNvdXJjZSk7Y29uc3QgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtlLnNlYXJjaD10aGlzLnBhZ2VQYXJhbXMudG9TdHJpbmcoKSx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsZS5ocmVmKX1pZih0aGlzLnNvdXJjZVVybD10aGlzLnBhZ2VQYXJhbXMuZ2V0KCJzb3VyY2UiKXx8IiIsdGhpcy5lbWJlZD10aGlzLnBhZ2VQYXJhbXMuZ2V0KCJlbWJlZCIpfHwiIix0aGlzLmVtYmVkP3RoaXMudXNlUnVmZmxlPSIxIj09PXRoaXMucGFnZVBhcmFtcy5nZXQoInJ1ZmZsZSIpOnRoaXMudXNlUnVmZmxlPSF0aGlzLnNraXBSdWZmbGUsdGhpcy5wYWdlUGFyYW1zLmhhcygidGVybXMiKSYmKHRoaXMuc2hvd0Fib3V0PSEwKSx0aGlzLnBhZ2VQYXJhbXMuaGFzKCJlbWJlZCIpJiYodGhpcy5sb2FkSW5mb3x8KHRoaXMubG9hZEluZm89e30pKSx0aGlzLnBhZ2VQYXJhbXMuZ2V0KCJjb25maWciKSl0cnl7dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZz1KU09OLnBhcnNlKHRoaXMucGFnZVBhcmFtcy5nZXQoImNvbmZpZyIpfHwiIil9Y2F0Y2goZSl7Y29uc29sZS5sb2coImludmFsaWQgY29uZmlnOiAiK2UpfXRoaXMucGFnZVBhcmFtcy5nZXQoImJhc2VVcmxTb3VyY2VQcmVmaXgiKSYmKHRoaXMubG9hZEluZm8uZXh0cmFDb25maWc9dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZ3x8e30sdGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZy5iYXNlVXJsU291cmNlUHJlZml4PXRoaXMucGFnZVBhcmFtcy5nZXQoImJhc2VVcmxTb3VyY2VQcmVmaXgiKSksdGhpcy5wYWdlUGFyYW1zLmdldCgiYmFzZVBhZ2VVcmwiKSYmKHRoaXMubG9hZEluZm8uZXh0cmFDb25maWc9dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZ3x8e30sdGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZy5iYXNlVXJsPXRoaXMucGFnZVBhcmFtcy5nZXQoImJhc2VQYWdlVXJsIikpLHRoaXMucGFnZVBhcmFtcy5nZXQoImFkYmxvY2tVcmwiKSYmKHRoaXMubG9hZEluZm8uZXh0cmFDb25maWc9dGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZ3x8e30sdGhpcy5sb2FkSW5mby5leHRyYUNvbmZpZy5hZGJsb2NrVXJsPXRoaXMucGFnZVBhcmFtcy5nZXQoImFkYmxvY2tVcmwiKSksdGhpcy5wYWdlUGFyYW1zLmdldCgiY3VzdG9tQ29sbCIpJiYodGhpcy5sb2FkSW5mby5jdXN0b21Db2xsPXRoaXMucGFnZVBhcmFtcy5nZXQoImN1c3RvbUNvbGwiKSksIjEiPT09dGhpcy5wYWdlUGFyYW1zLmdldCgibm9XZWJXb3JrZXIiKSYmKHRoaXMubG9hZEluZm8ubm9XZWJXb3JrZXI9ITApLCIxIj09PXRoaXMucGFnZVBhcmFtcy5nZXQoIm5vQ2FjaGUiKSYmKHRoaXMubG9hZEluZm8ubm9DYWNoZT0hMCksIjEiPT09dGhpcy5wYWdlUGFyYW1zLmdldCgiaGlkZU9mZnNjcmVlbiIpJiYodGhpcy5sb2FkSW5mby5oaWRlT2Zmc2NyZWVuPSEwKSwiZWFnZXIiPT09dGhpcy5wYWdlUGFyYW1zLmdldCgibG9hZGluZyIpJiYodGhpcy5sb2FkSW5mby5sb2FkRWFnZXI9ITApLHRoaXMucGFnZVBhcmFtcy5nZXQoInN3TmFtZSIpJiYodGhpcy5zd05hbWU9dGhpcy5wYWdlUGFyYW1zLmdldCgic3dOYW1lIil8fHZvaWQgMCkscWUmJnRoaXMuc291cmNlVXJsLnN0YXJ0c1dpdGgoImZpbGU6Ly8iKSYmKHRoaXMubG9hZEluZm89e3NvdXJjZVVybDp0aGlzLnNvdXJjZVVybCxsb2FkVXJsOnRoaXMuc291cmNlVXJsLnJlcGxhY2UoImZpbGU6Ly8iLCJmaWxlMjovLyIpfSl9b25TdGFydExvYWQoZSl7dGhpcy5wYWdlUGFyYW1zLnNldCgic291cmNlIixlLmRldGFpbC5zb3VyY2VVcmwpO2NvbnN0IHQ9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7dC5zZWFyY2g9dGhpcy5wYWdlUGFyYW1zLnRvU3RyaW5nKCksdGhpcy5jb2xsUGFnZVVybD10LnRvU3RyaW5nKCksZS5kZXRhaWwuaXNGaWxlPyh3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sIiIsdGhpcy5jb2xsUGFnZVVybCksdGhpcy5zb3VyY2VVcmw9ZS5kZXRhaWwuc291cmNlVXJsLHRoaXMubG9hZEluZm89ZS5kZXRhaWwpOndpbmRvdy5sb2NhdGlvbi5zZWFyY2g9dGhpcy5wYWdlUGFyYW1zLnRvU3RyaW5nKCl9b25Db2xsTG9hZGVkKGUpe3RoaXMubG9hZEluZm89bnVsbCxlLmRldGFpbC5jb2xsSW5mbyYmKHRoaXMuY29sbFRpdGxlPWUuZGV0YWlsLmNvbGxJbmZvLm5hbWV8fGUuZGV0YWlsLmNvbGxJbmZvLnRpdGxlKSxlLmRldGFpbC5hbHJlYWR5TG9hZGVkfHxlLmRldGFpbC5zb3VyY2VVcmwhPT10aGlzLnNvdXJjZVVybCYmKHRoaXMucGFnZVBhcmFtcy5zZXQoInNvdXJjZSIsZS5kZXRhaWwuc291cmNlVXJsKSx3aW5kb3cubG9jYXRpb24uc2VhcmNoPXRoaXMucGFnZVBhcmFtcy50b1N0cmluZygpKX1vbkNvbGxMb2FkQ2FuY2VsKCl7dGhpcy5zb3VyY2VVcmw9bnVsbCx0aGlzLmxvYWRJbmZvPW51bGwsd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCIiLG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLm9yaWdpbil9b25UaXRsZShlKXtlLmRldGFpbC50aXRsZSYmKHRoaXMucGFnZVRpdGxlPWUuZGV0YWlsLnRpdGxlLHRoaXMucGFnZVJlcGxheT1lLmRldGFpbC5yZXBsYXlUaXRsZSxkb2N1bWVudC50aXRsZT0oZS5kZXRhaWwucmVwbGF5VGl0bGU/IkFyY2hpdmUgb2YgIjoiIikrdGhpcy5wYWdlVGl0bGUrIiB8ICIrdGhpcy5hcHBOYW1lKX1zYWZhcmlLZXlmcmFtZXMoKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKSxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiAgICBAa2V5ZnJhbWVzIHNwaW5Bcm91bmQge1xuICAgICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgICAiKSl9cmVuZGVyQWJvdXQoKXtyZXR1cm4gUWAKICAgICAgPGRpdiBjbGFzcz0ibW9kYWwgaXMtYWN0aXZlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1iYWNrZ3JvdW5kIiBAY2xpY2s9IiR7dGhpcy5vbkFib3V0Q2xvc2V9Ij48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNhcmQiPgogICAgICAgICAgICA8aGVhZGVyIGNsYXNzPSJtb2RhbC1jYXJkLWhlYWQiPgogICAgICAgICAgICAgIDxwIGNsYXNzPSJtb2RhbC1jYXJkLXRpdGxlIj5BYm91dCBSZXBsYXlXZWIucGFnZSAke3FlPyJBcHAiOiIifTwvcD4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJkZWxldGUiIGFyaWEtbGFiZWw9ImNsb3NlIiBAY2xpY2s9IiR7dGhpcy5vbkFib3V0Q2xvc2V9Ij48L2J1dHRvbj4KICAgICAgICAgICAgPC9oZWFkZXI+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJtb2RhbC1jYXJkLWJvZHkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGFzLXRleHQtY2VudGVyZWQiIHN0eWxlPSJ3aWR0aDogMjIwcHgiPgogICAgICAgICAgICAgICAgICAgICAgPGZhLWljb24KICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0iM3JlbSIKICAgICAgICAgICAgICAgICAgICAgICAgLnN2Zz0ke0tlfQogICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJSZXBsYXlXZWIucGFnZSBMb2dvIgogICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJpbWciCiAgICAgICAgICAgICAgICAgICAgICA+PC9mYS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiBzbWFsbGVyOyBtYXJnaW4tYm90dG9tOiAxZW0iPiR7cWU/IkFwcCI6IiJ9IHYke2plfTwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAke3FlP1FgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGF5V2ViLnBhZ2UgQXBwIGlzIGEgc3RhbmRhbG9uZSBhcHAgZm9yIE1hYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93cyBhbmQgTGludXggdGhhdCBsb2FkcyB3ZWIgYXJjaGl2ZSBmaWxlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlZCBieSB0aGUgdXNlciBhbmQgcmVuZGVycyB0aGVtIGZvciByZXBsYXkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgYDpRYCA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcmVwbGF5d2ViLnBhZ2UiIHRhcmdldD0iX2JsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+UmVwbGF5V2ViLnBhZ2U8L2EKICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGEgYnJvd3Nlci1iYXNlZCB2aWV3ZXIgdGhhdCBsb2FkcyB3ZWIgYXJjaGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgYW5kIHJlbmRlcnMgdGhlbSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxheSBpbiB0aGUgYnJvd3Nlci4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+YH0KICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICA8cD5GdWxsIHNvdXJjZSBjb2RlIGlzIGF2YWlsYWJsZSAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2VicmVjb3JkZXIvcmVwbGF5d2ViLnBhZ2UiIHRhcmdldD0iX2JsYW5rIj5vbiBHaXRIdWI8L2E+LgogICAgICAgICAgICAgICAgICA8L3A+CgogICAgICAgICAgICAgICAgICA8cD5TZWUgdGhlIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIuL2RvY3MiPmRvY3VtZW50YXRpb248L2E+IGZvciBtb3JlIGluZm8gb24gaG93IGl0IHdvcmtzLjwvcD4KCiAgICAgICAgICAgICAgICAgIDxwPlJlcGxheVdlYi5wYWdlIGlzIGRldmVsb3BlZCBieSA8YSBocmVmPSJodHRwczovL3dlYnJlY29yZGVyLm5ldC8iIHRhcmdldD0iX2JsYW5rIj5XZWJyZWNvcmRlcjwvYT4uPC9wPgoKICAgICAgICAgICAgICAgICAgPGgzPlByaXZhY3k8L2gzPgogICAgICAgICAgICAgICAgICA8cD48Yj5ObyBkYXRhIGlzIHVwbG9hZGVkIGFueXdoZXJlIGFuZCBubyBpbmZvcm1hdGlvbiBpcyBjb2xsZWN0ZWQuPC9iPjwvcD4KICAgICAgICAgICAgICAgICAgPHA+QWxsIGNvbnRlbnQgcmVuZGVyZWQgc3RheXMgZGlyZWN0bHkgaW4geW91ciBicm93c2VyLjxici8+V2hlbiBsb2FkaW5nIGFuIGFyY2hpdmUgZnJvbSBHb29nbGUgRHJpdmUsCiAgICAgICAgICAgICAgICAgIHRoZSBzaXRlIG1heSBhc2sgZm9yIGFjY291bnQgYXV0aG9yaXphdGlvbiB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUgb25seS48L3A+CgogICAgICAgICAgICAgICAgICA8aDQ+RGlzY2xhaW1lciBvZiBXYXJyYW50aWVzPC9oND4KICAgICAgICAgICAgICAgICAgPHA+VGhlIGFwcGxpY2F0aW9uIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgZ3VhcmFudGVlcy48L3A+CiAgICAgICAgICAgICAgICAgIDxkZXRhaWxzPgogICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PkxlZ2FsZXNlOjwvc3VtbWFyeT4KICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAwLjhyZW0iPkRJU0NMQUlNRVIgT0YgU09GVFdBUkUgV0FSUkFOVFkuIFdFQlJFQ09SREVSIFNPRlRXQVJFIFBST1ZJREVTIFRISVMgU09GVFdBUkUgVE8gWU9VICJBUyBBVkFJTEFCTEUiCiAgICAgICAgICAgICAgICAgICAgQU5EIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MsIElNUExJRUQgT1IgT1RIRVJXSVNFLAogICAgICAgICAgICAgICAgICAgIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIFdBUlJBTlRZIE9GIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS48L3A+CiAgICAgICAgICAgICAgICAgIDwvZGV0YWlscz4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGFzLXRleHQtY2VudGVyZWQiPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24gaXMtd2FybmluZyIgaHJlZj0iIyIgQGNsaWNrPSIke3RoaXMub25BYm91dENsb3NlfSI+Q2xvc2U8L2E+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj5gfW9uQWJvdXRDbG9zZSgpe3RoaXMuc2hvd0Fib3V0PSExfXJlbmRlckRyb3BGaWxlT3ZlcmxheSgpe3JldHVybiBRYAogICAgICA8ZGl2IGNsYXNzPSJkcm9wLWZpbGUtb3ZlcmxheSI+RHJvcCB0byBsb2FkIHdlYiBhcmNoaXZlPC9kaXY+CiAgICBgfX07ZnVuY3Rpb24gUGkoKXtyZXR1cm57YmFzZVVybDpudWxsLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2ZtOiEwLGhlYWRlcklkczohMCxoZWFkZXJQcmVmaXg6IiIsaGlnaGxpZ2h0Om51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnRMaXN0czohMSxzbWFydHlwYW50czohMSx0b2tlbml6ZXI6bnVsbCx3YWxrVG9rZW5zOm51bGwseGh0bWw6ITF9fXQoW3llKHt0eXBlOkJvb2xlYW59KV0sVGkucHJvdG90eXBlLCJpbml0ZWQiLHZvaWQgMCksdChbeWUoe3R5cGU6T2JqZWN0fSldLFRpLnByb3RvdHlwZSwicGFnZVBhcmFtcyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVGkucHJvdG90eXBlLCJzb3VyY2VVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxUaS5wcm90b3R5cGUsIm5hdk1lbnVTaG93biIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFRpLnByb3RvdHlwZSwic2hvd0Fib3V0Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sVGkucHJvdG90eXBlLCJzaG93RmlsZURyb3BPdmVybGF5Iix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUaS5wcm90b3R5cGUsImNvbGxUaXRsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3R9KV0sVGkucHJvdG90eXBlLCJsb2FkSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVGkucHJvdG90eXBlLCJlbWJlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVGkucHJvdG90eXBlLCJjb2xsUGFnZVVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVGkucHJvdG90eXBlLCJwYWdlVGl0bGUiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxUaS5wcm90b3R5cGUsInBhZ2VSZXBsYXkiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFRpLnByb3RvdHlwZSwic291cmNlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sVGkucHJvdG90eXBlLCJza2lwUnVmZmxlIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUaS5wcm90b3R5cGUsInN3RXJyb3JNc2ciLHZvaWQgMCksVGk9QWk9dChbZ2UoInJlcGxheS1hcHAtbWFpbiIpXSxUaSk7bGV0IERpPXtiYXNlVXJsOm51bGwsYnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAsaGVhZGVySWRzOiEwLGhlYWRlclByZWZpeDoiIixoaWdobGlnaHQ6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydExpc3RzOiExLHNtYXJ0eXBhbnRzOiExLHRva2VuaXplcjpudWxsLHdhbGtUb2tlbnM6bnVsbCx4aHRtbDohMX07Y29uc3QgRmk9L1smPD4iJ10vLE1pPS9bJjw+IiddL2csUmk9L1s8PiInXXwmKD8hIz9cdys7KS8sT2k9L1s8PiInXXwmKD8hIz9cdys7KS9nLFVpPXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsJyInOiImcXVvdDsiLCInIjoiJiMzOTsifSxCaT1lPT5VaVtlXTtmdW5jdGlvbiBOaShlLHQpe2lmKHQpe2lmKEZpLnRlc3QoZSkpcmV0dXJuIGUucmVwbGFjZShNaSxCaSl9ZWxzZSBpZihSaS50ZXN0KGUpKXJldHVybiBlLnJlcGxhY2UoT2ksQmkpO3JldHVybiBlfWNvbnN0IHFpPS8mKCMoPzpcZCspfCg/OiN4WzAtOUEtRmEtZl0rKXwoPzpcdyspKTs/L2dpO2Z1bmN0aW9uIGppKGUpe3JldHVybiBlLnJlcGxhY2UocWksKChlLHQpPT4iY29sb24iPT09KHQ9dC50b0xvd2VyQ2FzZSgpKT8iOiI6IiMiPT09dC5jaGFyQXQoMCk/IngiPT09dC5jaGFyQXQoMSk/U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh0LnN1YnN0cmluZygyKSwxNikpOlN0cmluZy5mcm9tQ2hhckNvZGUoK3Quc3Vic3RyaW5nKDEpKToiIikpfWNvbnN0IEhpPS8oXnxbXlxbXSlcXi9nO2Z1bmN0aW9uIFdpKGUsdCl7ZT1lLnNvdXJjZXx8ZSx0PXR8fCIiO2NvbnN0IGk9e3JlcGxhY2U6KHQsbyk9PihvPShvPW8uc291cmNlfHxvKS5yZXBsYWNlKEhpLCIkMSIpLGU9ZS5yZXBsYWNlKHQsbyksaSksZ2V0UmVnZXg6KCk9Pm5ldyBSZWdFeHAoZSx0KX07cmV0dXJuIGl9Y29uc3QgVmk9L1teXHc6XS9nLEdpPS9eJHxeW2Etel1bYS16MC05Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rpb24gS2koZSx0LGkpe2lmKGUpe2xldCBlO3RyeXtlPWRlY29kZVVSSUNvbXBvbmVudChqaShpKSkucmVwbGFjZShWaSwiIikudG9Mb3dlckNhc2UoKX1jYXRjaChlKXtyZXR1cm4gbnVsbH1pZigwPT09ZS5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHwwPT09ZS5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PWUuaW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH10JiYhR2kudGVzdChpKSYmKGk9ZnVuY3Rpb24oZSx0KXtZaVsiICIrZV18fChRaS50ZXN0KGUpP1lpWyIgIitlXT1lKyIvIjpZaVsiICIrZV09aW8oZSwiLyIsITApKTtlPVlpWyIgIitlXTtjb25zdCBpPS0xPT09ZS5pbmRleE9mKCI6Iik7cmV0dXJuIi8vIj09PXQuc3Vic3RyaW5nKDAsMik/aT90OmUucmVwbGFjZShaaSwiJDEiKSt0OiIvIj09PXQuY2hhckF0KDApP2k/dDplLnJlcGxhY2UoSmksIiQxIikrdDplK3R9KHQsaSkpO3RyeXtpPWVuY29kZVVSSShpKS5yZXBsYWNlKC8lMjUvZywiJSIpfWNhdGNoKGUpe3JldHVybiBudWxsfXJldHVybiBpfWNvbnN0IFlpPXt9LFFpPS9eW146XSs6XC8qW14vXSokLyxaaT0vXihbXjpdKzopW1xzXFNdKiQvLEppPS9eKFteOl0rOlwvKlteL10qKVtcc1xTXSokLztjb25zdCBYaT17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIGVvKGUpe2xldCB0LGksbz0xO2Zvcig7bzxhcmd1bWVudHMubGVuZ3RoO28rKylmb3IoaSBpbiB0PWFyZ3VtZW50c1tvXSx0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX1mdW5jdGlvbiB0byhlLHQpe2NvbnN0IGk9ZS5yZXBsYWNlKC9cfC9nLCgoZSx0LGkpPT57bGV0IG89ITEsbj10O2Zvcig7LS1uPj0wJiYiXFwiPT09aVtuXTspbz0hbztyZXR1cm4gbz8ifCI6IiB8In0pKSxvPWkuc3BsaXQoLyBcfC8pO2xldCBuPTA7aWYob1swXS50cmltKCl8fG8uc2hpZnQoKSxvW28ubGVuZ3RoLTFdLnRyaW0oKXx8by5wb3AoKSxvLmxlbmd0aD50KW8uc3BsaWNlKHQpO2Vsc2UgZm9yKDtvLmxlbmd0aDx0OylvLnB1c2goIiIpO2Zvcig7bjxvLmxlbmd0aDtuKyspb1tuXT1vW25dLnRyaW0oKS5yZXBsYWNlKC9cXFx8L2csInwiKTtyZXR1cm4gb31mdW5jdGlvbiBpbyhlLHQsaSl7Y29uc3Qgbz1lLmxlbmd0aDtpZigwPT09bylyZXR1cm4iIjtsZXQgbj0wO2Zvcig7bjxvOyl7Y29uc3Qgcj1lLmNoYXJBdChvLW4tMSk7aWYociE9PXR8fGkpe2lmKHI9PT10fHwhaSlicmVhaztuKyt9ZWxzZSBuKyt9cmV0dXJuIGUuc3Vic3RyKDAsby1uKX1mdW5jdGlvbiBvbyhlKXtlJiZlLnNhbml0aXplJiYhZS5zaWxlbnQmJmNvbnNvbGUud2FybigibWFya2VkKCk6IHNhbml0aXplIGFuZCBzYW5pdGl6ZXIgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNy4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnLyMvVVNJTkdfQURWQU5DRUQubWQjb3B0aW9ucyIpfWZ1bmN0aW9uIG5vKGUsdCl7aWYodDwxKXJldHVybiIiO2xldCBpPSIiO2Zvcig7dD4xOykxJnQmJihpKz1lKSx0Pj49MSxlKz1lO3JldHVybiBpK2V9ZnVuY3Rpb24gcm8oZSx0LGksbyl7Y29uc3Qgbj10LmhyZWYscj10LnRpdGxlP05pKHQudGl0bGUpOm51bGwscz1lWzFdLnJlcGxhY2UoL1xcKFtcW1xdXSkvZywiJDEiKTtpZigiISIhPT1lWzBdLmNoYXJBdCgwKSl7by5zdGF0ZS5pbkxpbms9ITA7Y29uc3QgZT17dHlwZToibGluayIscmF3OmksaHJlZjpuLHRpdGxlOnIsdGV4dDpzLHRva2VuczpvLmlubGluZVRva2VucyhzLFtdKX07cmV0dXJuIG8uc3RhdGUuaW5MaW5rPSExLGV9cmV0dXJue3R5cGU6ImltYWdlIixyYXc6aSxocmVmOm4sdGl0bGU6cix0ZXh0Ok5pKHMpfX1jbGFzcyBzb3tjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9ZXx8RGl9c3BhY2UoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLm5ld2xpbmUuZXhlYyhlKTtpZih0JiZ0WzBdLmxlbmd0aD4wKXJldHVybnt0eXBlOiJzcGFjZSIscmF3OnRbMF19fWNvZGUoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLmNvZGUuZXhlYyhlKTtpZih0KXtjb25zdCBlPXRbMF0ucmVwbGFjZSgvXiB7MSw0fS9nbSwiIik7cmV0dXJue3R5cGU6ImNvZGUiLHJhdzp0WzBdLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsdGV4dDp0aGlzLm9wdGlvbnMucGVkYW50aWM/ZTppbyhlLCJcbiIpfX19ZmVuY2VzKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5ibG9jay5mZW5jZXMuZXhlYyhlKTtpZih0KXtjb25zdCBlPXRbMF0saT1mdW5jdGlvbihlLHQpe2NvbnN0IGk9ZS5tYXRjaCgvXihccyspKD86YGBgKS8pO2lmKG51bGw9PT1pKXJldHVybiB0O2NvbnN0IG89aVsxXTtyZXR1cm4gdC5zcGxpdCgiXG4iKS5tYXAoKGU9Pntjb25zdCB0PWUubWF0Y2goL15ccysvKTtpZihudWxsPT09dClyZXR1cm4gZTtjb25zdFtpXT10O3JldHVybiBpLmxlbmd0aD49by5sZW5ndGg/ZS5zbGljZShvLmxlbmd0aCk6ZX0pKS5qb2luKCJcbiIpfShlLHRbM118fCIiKTtyZXR1cm57dHlwZToiY29kZSIscmF3OmUsbGFuZzp0WzJdP3RbMl0udHJpbSgpOnRbMl0sdGV4dDppfX19aGVhZGluZyhlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKGUpO2lmKHQpe2xldCBlPXRbMl0udHJpbSgpO2lmKC8jJC8udGVzdChlKSl7Y29uc3QgdD1pbyhlLCIjIik7dGhpcy5vcHRpb25zLnBlZGFudGljP2U9dC50cmltKCk6dCYmIS8gJC8udGVzdCh0KXx8KGU9dC50cmltKCkpfWNvbnN0IGk9e3R5cGU6ImhlYWRpbmciLHJhdzp0WzBdLGRlcHRoOnRbMV0ubGVuZ3RoLHRleHQ6ZSx0b2tlbnM6W119O3JldHVybiB0aGlzLmxleGVyLmlubGluZShpLnRleHQsaS50b2tlbnMpLGl9fWhyKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5ibG9jay5oci5leGVjKGUpO2lmKHQpcmV0dXJue3R5cGU6ImhyIixyYXc6dFswXX19YmxvY2txdW90ZShlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suYmxvY2txdW90ZS5leGVjKGUpO2lmKHQpe2NvbnN0IGU9dFswXS5yZXBsYWNlKC9eICo+ID8vZ20sIiIpO3JldHVybnt0eXBlOiJibG9ja3F1b3RlIixyYXc6dFswXSx0b2tlbnM6dGhpcy5sZXhlci5ibG9ja1Rva2VucyhlLFtdKSx0ZXh0OmV9fX1saXN0KGUpe2xldCB0PXRoaXMucnVsZXMuYmxvY2subGlzdC5leGVjKGUpO2lmKHQpe2xldCBpLG8sbixyLHMsYSxsLGMsZCxoLHUsZixwPXRbMV0udHJpbSgpO2NvbnN0IG09cC5sZW5ndGg+MSxiPXt0eXBlOiJsaXN0IixyYXc6IiIsb3JkZXJlZDptLHN0YXJ0Om0/K3Auc2xpY2UoMCwtMSk6IiIsbG9vc2U6ITEsaXRlbXM6W119O3A9bT9gXFxkezEsOX1cXCR7cC5zbGljZSgtMSl9YDpgXFwke3B9YCx0aGlzLm9wdGlvbnMucGVkYW50aWMmJihwPW0/cDoiWyorLV0iKTtjb25zdCBnPW5ldyBSZWdFeHAoYF4oIHswLDN9JHtwfSkoKD86IFteXFxuXSopPyg/OlxcbnwkKSlgKTtmb3IoO2UmJihmPSExLHQ9Zy5leGVjKGUpKSYmIXRoaXMucnVsZXMuYmxvY2suaHIudGVzdChlKTspe2lmKGk9dFswXSxlPWUuc3Vic3RyaW5nKGkubGVuZ3RoKSxjPXRbMl0uc3BsaXQoIlxuIiwxKVswXSxkPWUuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWM/KHI9Mix1PWMudHJpbUxlZnQoKSk6KHI9dFsyXS5zZWFyY2goL1teIF0vKSxyPXI+ND8xOnIsdT1jLnNsaWNlKHIpLHIrPXRbMV0ubGVuZ3RoKSxhPSExLCFjJiYvXiAqJC8udGVzdChkKSYmKGkrPWQrIlxuIixlPWUuc3Vic3RyaW5nKGQubGVuZ3RoKzEpLGY9ITApLCFmKXtjb25zdCB0PW5ldyBSZWdFeHAoYF4gezAsJHtNYXRoLm1pbigzLHItMSl9fSg/OlsqKy1dfFxcZHsxLDl9Wy4pXSlgKTtmb3IoO2UmJihoPWUuc3BsaXQoIlxuIiwxKVswXSxjPWgsdGhpcy5vcHRpb25zLnBlZGFudGljJiYoYz1jLnJlcGxhY2UoL14gezEsNH0oPz0oIHs0fSkqW14gXSkvZywiICAiKSksIXQudGVzdChjKSk7KXtpZihjLnNlYXJjaCgvW14gXS8pPj1yfHwhYy50cmltKCkpdSs9IlxuIitjLnNsaWNlKHIpO2Vsc2V7aWYoYSlicmVhazt1Kz0iXG4iK2N9YXx8Yy50cmltKCl8fChhPSEwKSxpKz1oKyJcbiIsZT1lLnN1YnN0cmluZyhoLmxlbmd0aCsxKX19Yi5sb29zZXx8KGw/Yi5sb29zZT0hMDovXG4gKlxuICokLy50ZXN0KGkpJiYobD0hMCkpLHRoaXMub3B0aW9ucy5nZm0mJihvPS9eXFtbIHhYXVxdIC8uZXhlYyh1KSxvJiYobj0iWyBdICIhPT1vWzBdLHU9dS5yZXBsYWNlKC9eXFtbIHhYXVxdICsvLCIiKSkpLGIuaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6aSx0YXNrOiEhbyxjaGVja2VkOm4sbG9vc2U6ITEsdGV4dDp1fSksYi5yYXcrPWl9Yi5pdGVtc1tiLml0ZW1zLmxlbmd0aC0xXS5yYXc9aS50cmltUmlnaHQoKSxiLml0ZW1zW2IuaXRlbXMubGVuZ3RoLTFdLnRleHQ9dS50cmltUmlnaHQoKSxiLnJhdz1iLnJhdy50cmltUmlnaHQoKTtjb25zdCB2PWIuaXRlbXMubGVuZ3RoO2ZvcihzPTA7czx2O3MrKyl7dGhpcy5sZXhlci5zdGF0ZS50b3A9ITEsYi5pdGVtc1tzXS50b2tlbnM9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhiLml0ZW1zW3NdLnRleHQsW10pO2NvbnN0IGU9Yi5pdGVtc1tzXS50b2tlbnMuZmlsdGVyKChlPT4ic3BhY2UiPT09ZS50eXBlKSksdD1lLmV2ZXJ5KChlPT57Y29uc3QgdD1lLnJhdy5zcGxpdCgiIik7bGV0IGk9MDtmb3IoY29uc3QgZSBvZiB0KWlmKCJcbiI9PT1lJiYoaSs9MSksaT4xKXJldHVybiEwO3JldHVybiExfSkpOyFiLmxvb3NlJiZlLmxlbmd0aCYmdCYmKGIubG9vc2U9ITAsYi5pdGVtc1tzXS5sb29zZT0hMCl9cmV0dXJuIGJ9fWh0bWwoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLmh0bWwuZXhlYyhlKTtpZih0KXtjb25zdCBlPXt0eXBlOiJodG1sIixyYXc6dFswXSxwcmU6IXRoaXMub3B0aW9ucy5zYW5pdGl6ZXImJigicHJlIj09PXRbMV18fCJzY3JpcHQiPT09dFsxXXx8InN0eWxlIj09PXRbMV0pLHRleHQ6dFswXX07cmV0dXJuIHRoaXMub3B0aW9ucy5zYW5pdGl6ZSYmKGUudHlwZT0icGFyYWdyYXBoIixlLnRleHQ9dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKHRbMF0pOk5pKHRbMF0pLGUudG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lKGUudGV4dCxlLnRva2VucykpLGV9fWRlZihlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2suZGVmLmV4ZWMoZSk7aWYodCl7dFszXSYmKHRbM109dFszXS5zdWJzdHJpbmcoMSx0WzNdLmxlbmd0aC0xKSk7cmV0dXJue3R5cGU6ImRlZiIsdGFnOnRbMV0udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiICIpLHJhdzp0WzBdLGhyZWY6dFsyXSx0aXRsZTp0WzNdfX19dGFibGUoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLnRhYmxlLmV4ZWMoZSk7aWYodCl7Y29uc3QgZT17dHlwZToidGFibGUiLGhlYWRlcjp0byh0WzFdKS5tYXAoKGU9Pih7dGV4dDplfSkpKSxhbGlnbjp0WzJdLnJlcGxhY2UoL14gKnxcfCAqJC9nLCIiKS5zcGxpdCgvICpcfCAqLykscm93czp0WzNdP3RbM10ucmVwbGFjZSgvXG5bIFx0XSokLywiIikuc3BsaXQoIlxuIik6W119O2lmKGUuaGVhZGVyLmxlbmd0aD09PWUuYWxpZ24ubGVuZ3RoKXtlLnJhdz10WzBdO2xldCBpLG8sbixyLHM9ZS5hbGlnbi5sZW5ndGg7Zm9yKGk9MDtpPHM7aSsrKS9eICotKzogKiQvLnRlc3QoZS5hbGlnbltpXSk/ZS5hbGlnbltpXT0icmlnaHQiOi9eICo6LSs6ICokLy50ZXN0KGUuYWxpZ25baV0pP2UuYWxpZ25baV09ImNlbnRlciI6L14gKjotKyAqJC8udGVzdChlLmFsaWduW2ldKT9lLmFsaWduW2ldPSJsZWZ0IjplLmFsaWduW2ldPW51bGw7Zm9yKHM9ZS5yb3dzLmxlbmd0aCxpPTA7aTxzO2krKyllLnJvd3NbaV09dG8oZS5yb3dzW2ldLGUuaGVhZGVyLmxlbmd0aCkubWFwKChlPT4oe3RleHQ6ZX0pKSk7Zm9yKHM9ZS5oZWFkZXIubGVuZ3RoLG89MDtvPHM7bysrKWUuaGVhZGVyW29dLnRva2Vucz1bXSx0aGlzLmxleGVyLmlubGluZVRva2VucyhlLmhlYWRlcltvXS50ZXh0LGUuaGVhZGVyW29dLnRva2Vucyk7Zm9yKHM9ZS5yb3dzLmxlbmd0aCxvPTA7bzxzO28rKylmb3Iocj1lLnJvd3Nbb10sbj0wO248ci5sZW5ndGg7bisrKXJbbl0udG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKHJbbl0udGV4dCxyW25dLnRva2Vucyk7cmV0dXJuIGV9fX1saGVhZGluZyhlKXtjb25zdCB0PXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyhlKTtpZih0KXtjb25zdCBlPXt0eXBlOiJoZWFkaW5nIixyYXc6dFswXSxkZXB0aDoiPSI9PT10WzJdLmNoYXJBdCgwKT8xOjIsdGV4dDp0WzFdLHRva2VuczpbXX07cmV0dXJuIHRoaXMubGV4ZXIuaW5saW5lKGUudGV4dCxlLnRva2VucyksZX19cGFyYWdyYXBoKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5ibG9jay5wYXJhZ3JhcGguZXhlYyhlKTtpZih0KXtjb25zdCBlPXt0eXBlOiJwYXJhZ3JhcGgiLHJhdzp0WzBdLHRleHQ6IlxuIj09PXRbMV0uY2hhckF0KHRbMV0ubGVuZ3RoLTEpP3RbMV0uc2xpY2UoMCwtMSk6dFsxXSx0b2tlbnM6W119O3JldHVybiB0aGlzLmxleGVyLmlubGluZShlLnRleHQsZS50b2tlbnMpLGV9fXRleHQoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmJsb2NrLnRleHQuZXhlYyhlKTtpZih0KXtjb25zdCBlPXt0eXBlOiJ0ZXh0IixyYXc6dFswXSx0ZXh0OnRbMF0sdG9rZW5zOltdfTtyZXR1cm4gdGhpcy5sZXhlci5pbmxpbmUoZS50ZXh0LGUudG9rZW5zKSxlfX1lc2NhcGUoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmlubGluZS5lc2NhcGUuZXhlYyhlKTtpZih0KXJldHVybnt0eXBlOiJlc2NhcGUiLHJhdzp0WzBdLHRleHQ6TmkodFsxXSl9fXRhZyhlKXtjb25zdCB0PXRoaXMucnVsZXMuaW5saW5lLnRhZy5leGVjKGUpO2lmKHQpcmV0dXJuIXRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxhIC9pLnRlc3QodFswXSk/dGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITA6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmsmJi9ePFwvYT4vaS50ZXN0KHRbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITEpLCF0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePChwcmV8Y29kZXxrYmR8c2NyaXB0KShcc3w+KS9pLnRlc3QodFswXSk/dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jayYmL148XC8ocHJlfGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KHRbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSExKSx7dHlwZTp0aGlzLm9wdGlvbnMuc2FuaXRpemU/InRleHQiOiJodG1sIixyYXc6dFswXSxpbkxpbms6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmssaW5SYXdCbG9jazp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2ssdGV4dDp0aGlzLm9wdGlvbnMuc2FuaXRpemU/dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKHRbMF0pOk5pKHRbMF0pOnRbMF19fWxpbmsoZSl7Y29uc3QgdD10aGlzLnJ1bGVzLmlubGluZS5saW5rLmV4ZWMoZSk7aWYodCl7Y29uc3QgZT10WzJdLnRyaW0oKTtpZighdGhpcy5vcHRpb25zLnBlZGFudGljJiYvXjwvLnRlc3QoZSkpe2lmKCEvPiQvLnRlc3QoZSkpcmV0dXJuO2NvbnN0IHQ9aW8oZS5zbGljZSgwLC0xKSwiXFwiKTtpZigoZS5sZW5ndGgtdC5sZW5ndGgpJTI9PTApcmV0dXJufWVsc2V7Y29uc3QgZT1mdW5jdGlvbihlLHQpe2lmKC0xPT09ZS5pbmRleE9mKHRbMV0pKXJldHVybi0xO2NvbnN0IGk9ZS5sZW5ndGg7bGV0IG89MCxuPTA7Zm9yKDtuPGk7bisrKWlmKCJcXCI9PT1lW25dKW4rKztlbHNlIGlmKGVbbl09PT10WzBdKW8rKztlbHNlIGlmKGVbbl09PT10WzFdJiYoby0tLG88MCkpcmV0dXJuIG47cmV0dXJuLTF9KHRbMl0sIigpIik7aWYoZT4tMSl7Y29uc3QgaT0oMD09PXRbMF0uaW5kZXhPZigiISIpPzU6NCkrdFsxXS5sZW5ndGgrZTt0WzJdPXRbMl0uc3Vic3RyaW5nKDAsZSksdFswXT10WzBdLnN1YnN0cmluZygwLGkpLnRyaW0oKSx0WzNdPSIifX1sZXQgaT10WzJdLG89IiI7aWYodGhpcy5vcHRpb25zLnBlZGFudGljKXtjb25zdCBlPS9eKFteJyJdKlteXHNdKVxzKyhbJyJdKSguKilcMi8uZXhlYyhpKTtlJiYoaT1lWzFdLG89ZVszXSl9ZWxzZSBvPXRbM10/dFszXS5zbGljZSgxLC0xKToiIjtyZXR1cm4gaT1pLnRyaW0oKSwvXjwvLnRlc3QoaSkmJihpPXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmIS8+JC8udGVzdChlKT9pLnNsaWNlKDEpOmkuc2xpY2UoMSwtMSkpLHJvKHQse2hyZWY6aT9pLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIik6aSx0aXRsZTpvP28ucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKTpvfSx0WzBdLHRoaXMubGV4ZXIpfX1yZWZsaW5rKGUsdCl7bGV0IGk7aWYoKGk9dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKGUpKXx8KGk9dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWMoZSkpKXtsZXQgZT0oaVsyXXx8aVsxXSkucmVwbGFjZSgvXHMrL2csIiAiKTtpZihlPXRbZS50b0xvd2VyQ2FzZSgpXSwhZXx8IWUuaHJlZil7Y29uc3QgZT1pWzBdLmNoYXJBdCgwKTtyZXR1cm57dHlwZToidGV4dCIscmF3OmUsdGV4dDplfX1yZXR1cm4gcm8oaSxlLGlbMF0sdGhpcy5sZXhlcil9fWVtU3Ryb25nKGUsdCxpPSIiKXtsZXQgbz10aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5sRGVsaW0uZXhlYyhlKTtpZighbylyZXR1cm47aWYob1szXSYmaS5tYXRjaCgvW1xwe0x9XHB7Tn1dL3UpKXJldHVybjtjb25zdCBuPW9bMV18fG9bMl18fCIiO2lmKCFufHxuJiYoIiI9PT1pfHx0aGlzLnJ1bGVzLmlubGluZS5wdW5jdHVhdGlvbi5leGVjKGkpKSl7Y29uc3QgaT1vWzBdLmxlbmd0aC0xO2xldCBuLHIscz1pLGE9MDtjb25zdCBsPSIqIj09PW9bMF1bMF0/dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltQXN0OnRoaXMucnVsZXMuaW5saW5lLmVtU3Ryb25nLnJEZWxpbVVuZDtmb3IobC5sYXN0SW5kZXg9MCx0PXQuc2xpY2UoLTEqZS5sZW5ndGgraSk7bnVsbCE9KG89bC5leGVjKHQpKTspe2lmKG49b1sxXXx8b1syXXx8b1szXXx8b1s0XXx8b1s1XXx8b1s2XSwhbiljb250aW51ZTtpZihyPW4ubGVuZ3RoLG9bM118fG9bNF0pe3MrPXI7Y29udGludWV9aWYoKG9bNV18fG9bNl0pJiZpJTMmJiEoKGkrciklMykpe2ErPXI7Y29udGludWV9aWYocy09cixzPjApY29udGludWU7aWYocj1NYXRoLm1pbihyLHIrcythKSxNYXRoLm1pbihpLHIpJTIpe2NvbnN0IHQ9ZS5zbGljZSgxLGkrby5pbmRleCtyKTtyZXR1cm57dHlwZToiZW0iLHJhdzplLnNsaWNlKDAsaStvLmluZGV4K3IrMSksdGV4dDp0LHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2Vucyh0LFtdKX19Y29uc3QgdD1lLnNsaWNlKDIsaStvLmluZGV4K3ItMSk7cmV0dXJue3R5cGU6InN0cm9uZyIscmF3OmUuc2xpY2UoMCxpK28uaW5kZXgrcisxKSx0ZXh0OnQsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKHQsW10pfX19fWNvZGVzcGFuKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5pbmxpbmUuY29kZS5leGVjKGUpO2lmKHQpe2xldCBlPXRbMl0ucmVwbGFjZSgvXG4vZywiICIpO2NvbnN0IGk9L1teIF0vLnRlc3QoZSksbz0vXiAvLnRlc3QoZSkmJi8gJC8udGVzdChlKTtyZXR1cm4gaSYmbyYmKGU9ZS5zdWJzdHJpbmcoMSxlLmxlbmd0aC0xKSksZT1OaShlLCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzp0WzBdLHRleHQ6ZX19fWJyKGUpe2NvbnN0IHQ9dGhpcy5ydWxlcy5pbmxpbmUuYnIuZXhlYyhlKTtpZih0KXJldHVybnt0eXBlOiJiciIscmF3OnRbMF19fWRlbChlKXtjb25zdCB0PXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKGUpO2lmKHQpcmV0dXJue3R5cGU6ImRlbCIscmF3OnRbMF0sdGV4dDp0WzJdLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2Vucyh0WzJdLFtdKX19YXV0b2xpbmsoZSx0KXtjb25zdCBpPXRoaXMucnVsZXMuaW5saW5lLmF1dG9saW5rLmV4ZWMoZSk7aWYoaSl7bGV0IGUsbztyZXR1cm4iQCI9PT1pWzJdPyhlPU5pKHRoaXMub3B0aW9ucy5tYW5nbGU/dChpWzFdKTppWzFdKSxvPSJtYWlsdG86IitlKTooZT1OaShpWzFdKSxvPWUpLHt0eXBlOiJsaW5rIixyYXc6aVswXSx0ZXh0OmUsaHJlZjpvLHRva2Vuczpbe3R5cGU6InRleHQiLHJhdzplLHRleHQ6ZX1dfX19dXJsKGUsdCl7bGV0IGk7aWYoaT10aGlzLnJ1bGVzLmlubGluZS51cmwuZXhlYyhlKSl7bGV0IGUsbztpZigiQCI9PT1pWzJdKWU9TmkodGhpcy5vcHRpb25zLm1hbmdsZT90KGlbMF0pOmlbMF0pLG89Im1haWx0bzoiK2U7ZWxzZXtsZXQgdDtkb3t0PWlbMF0saVswXT10aGlzLnJ1bGVzLmlubGluZS5fYmFja3BlZGFsLmV4ZWMoaVswXSlbMF19d2hpbGUodCE9PWlbMF0pO2U9TmkoaVswXSksbz0id3d3LiI9PT1pWzFdPyJodHRwOi8vIitlOmV9cmV0dXJue3R5cGU6ImxpbmsiLHJhdzppWzBdLHRleHQ6ZSxocmVmOm8sdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OmUsdGV4dDplfV19fX1pbmxpbmVUZXh0KGUsdCl7Y29uc3QgaT10aGlzLnJ1bGVzLmlubGluZS50ZXh0LmV4ZWMoZSk7aWYoaSl7bGV0IGU7cmV0dXJuIGU9dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoaVswXSk6TmkoaVswXSk6aVswXTpOaSh0aGlzLm9wdGlvbnMuc21hcnR5cGFudHM/dChpWzBdKTppWzBdKSx7dHlwZToidGV4dCIscmF3OmlbMF0sdGV4dDplfX19fWNvbnN0IGFvPXtuZXdsaW5lOi9eKD86ICooPzpcbnwkKSkrLyxjb2RlOi9eKCB7NH1bXlxuXSsoPzpcbig/OiAqKD86XG58JCkpKik/KSsvLGZlbmNlczovXiB7MCwzfShgezMsfSg/PVteYFxuXSpcbil8fnszLH0pKFteXG5dKilcbig/OnwoW1xzXFNdKj8pXG4pKD86IHswLDN9XDFbfmBdKiAqKD89XG58JCl8JCkvLGhyOi9eIHswLDN9KCg/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlwqICopezMsfSkoPzpcbit8JCkvLGhlYWRpbmc6L14gezAsM30oI3sxLDZ9KSg/PVxzfCQpKC4qKSg/OlxuK3wkKS8sYmxvY2txdW90ZTovXiggezAsM30+ID8ocGFyYWdyYXBofFteXG5dKikoPzpcbnwkKSkrLyxsaXN0Oi9eKCB7MCwzfWJ1bGwpKCBbXlxuXSs/KT8oPzpcbnwkKS8saHRtbDoiXiB7MCwzfSg/Ojwoc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSlbXFxzPl1bXFxzXFxTXSo/KD86PC9cXDE+W15cXG5dKlxcbit8JCl8Y29tbWVudFteXFxuXSooXFxuK3wkKXw8XFw/W1xcc1xcU10qPyg/OlxcPz5cXG4qfCQpfDwhW0EtWl1bXFxzXFxTXSo/KD86Plxcbip8JCl8PCFcXFtDREFUQVxcW1tcXHNcXFNdKj8oPzpcXF1cXF0+XFxuKnwkKXw8Lz8odGFnKSg/OiArfFxcbnwvPz4pW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCl8PCg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpKFthLXpdW1xcdy1dKikoPzphdHRyaWJ1dGUpKj8gKi8/Pig/PVsgXFx0XSooPzpcXG58JCkpW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCl8PC8oPyFzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVthLXpdW1xcdy1dKlxccyo+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKSkiLGRlZjovXiB7MCwzfVxbKGxhYmVsKVxdOiAqKD86XG4gKik/PD8oW15ccz5dKyk+Pyg/Oig/OiArKD86XG4gKik/fCAqXG4gKikodGl0bGUpKT8gKig/OlxuK3wkKS8sdGFibGU6WGksbGhlYWRpbmc6L14oW15cbl0rKVxuIHswLDN9KD0rfC0rKSAqKD86XG4rfCQpLyxfcGFyYWdyYXBoOi9eKFteXG5dKyg/OlxuKD8haHJ8aGVhZGluZ3xsaGVhZGluZ3xibG9ja3F1b3RlfGZlbmNlc3xsaXN0fGh0bWx8dGFibGV8ICtcbilbXlxuXSspKikvLHRleHQ6L15bXlxuXSsvLF9sYWJlbDovKD8hXHMqXF0pKD86XFwufFteXFtcXVxcXSkrLyxfdGl0bGU6Lyg/OiIoPzpcXCI/fFteIlxcXSkqInwnW14nXG5dKig/OlxuW14nXG5dKykqXG4/J3xcKFteKCldKlwpKS99O2FvLmRlZj1XaShhby5kZWYpLnJlcGxhY2UoImxhYmVsIixhby5fbGFiZWwpLnJlcGxhY2UoInRpdGxlIixhby5fdGl0bGUpLmdldFJlZ2V4KCksYW8uYnVsbGV0PS8oPzpbKistXXxcZHsxLDl9Wy4pXSkvLGFvLmxpc3RJdGVtU3RhcnQ9V2koL14oICopKGJ1bGwpICovKS5yZXBsYWNlKCJidWxsIixhby5idWxsZXQpLmdldFJlZ2V4KCksYW8ubGlzdD1XaShhby5saXN0KS5yZXBsYWNlKC9idWxsL2csYW8uYnVsbGV0KS5yZXBsYWNlKCJociIsIlxcbisoPz1cXDE/KD86KD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwqICopezMsfSkoPzpcXG4rfCQpKSIpLnJlcGxhY2UoImRlZiIsIlxcbisoPz0iK2FvLmRlZi5zb3VyY2UrIikiKS5nZXRSZWdleCgpLGFvLl90YWc9ImFkZHJlc3N8YXJ0aWNsZXxhc2lkZXxiYXNlfGJhc2Vmb250fGJsb2NrcXVvdGV8Ym9keXxjYXB0aW9ufGNlbnRlcnxjb2x8Y29sZ3JvdXB8ZGR8ZGV0YWlsc3xkaWFsb2d8ZGlyfGRpdnxkbHxkdHxmaWVsZHNldHxmaWdjYXB0aW9ufGZpZ3VyZXxmb290ZXJ8Zm9ybXxmcmFtZXxmcmFtZXNldHxoWzEtNl18aGVhZHxoZWFkZXJ8aHJ8aHRtbHxpZnJhbWV8bGVnZW5kfGxpfGxpbmt8bWFpbnxtZW51fG1lbnVpdGVtfG1ldGF8bmF2fG5vZnJhbWVzfG9sfG9wdGdyb3VwfG9wdGlvbnxwfHBhcmFtfHNlY3Rpb258c291cmNlfHN1bW1hcnl8dGFibGV8dGJvZHl8dGR8dGZvb3R8dGh8dGhlYWR8dGl0bGV8dHJ8dHJhY2t8dWwiLGFvLl9jb21tZW50PS88IS0tKD8hLT8+KVtcc1xTXSo/KD86LS0+fCQpLyxhby5odG1sPVdpKGFvLmh0bWwsImkiKS5yZXBsYWNlKCJjb21tZW50Iixhby5fY29tbWVudCkucmVwbGFjZSgidGFnIixhby5fdGFnKS5yZXBsYWNlKCJhdHRyaWJ1dGUiLC8gK1thLXpBLVo6X11bXHcuOi1dKig/OiAqPSAqIlteIlxuXSoifCAqPSAqJ1teJ1xuXSonfCAqPSAqW15ccyInPTw+YF0rKT8vKS5nZXRSZWdleCgpLGFvLnBhcmFncmFwaD1XaShhby5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsYW8uaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgifHRhYmxlIiwiIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLGFvLl90YWcpLmdldFJlZ2V4KCksYW8uYmxvY2txdW90ZT1XaShhby5ibG9ja3F1b3RlKS5yZXBsYWNlKCJwYXJhZ3JhcGgiLGFvLnBhcmFncmFwaCkuZ2V0UmVnZXgoKSxhby5ub3JtYWw9ZW8oe30sYW8pLGFvLmdmbT1lbyh7fSxhby5ub3JtYWwse3RhYmxlOiJeICooW15cXG4gXS4qXFx8LiopXFxuIHswLDN9KD86XFx8ICopPyg6Py0rOj8gKig/OlxcfCAqOj8tKzo/ICopKikoPzpcXHwgKik/KD86XFxuKCg/Oig/ISAqXFxufGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0bWwpLiooPzpcXG58JCkpKilcXG4qfCQpIn0pLGFvLmdmbS50YWJsZT1XaShhby5nZm0udGFibGUpLnJlcGxhY2UoImhyIixhby5ocikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSAiKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImNvZGUiLCIgezR9W15cXG5dIikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixhby5fdGFnKS5nZXRSZWdleCgpLGFvLmdmbS5wYXJhZ3JhcGg9V2koYW8uX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLGFvLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIsIiIpLnJlcGxhY2UoInRhYmxlIixhby5nZm0udGFibGUpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixhby5fdGFnKS5nZXRSZWdleCgpLGFvLnBlZGFudGljPWVvKHt9LGFvLm5vcm1hbCx7aHRtbDpXaSgiXiAqKD86Y29tbWVudCAqKD86XFxufFxccyokKXw8KHRhZylbXFxzXFxTXSs/PC9cXDE+ICooPzpcXG57Mix9fFxccyokKXw8dGFnKD86XCJbXlwiXSpcInwnW14nXSonfFxcc1teJ1wiLz5cXHNdKikqPy8/PiAqKD86XFxuezIsfXxcXHMqJCkpIikucmVwbGFjZSgiY29tbWVudCIsYW8uX2NvbW1lbnQpLnJlcGxhY2UoL3RhZy9nLCIoPyEoPzphfGVtfHN0cm9uZ3xzbWFsbHxzfGNpdGV8cXxkZm58YWJicnxkYXRhfHRpbWV8Y29kZXx2YXJ8c2FtcHxrYmR8c3VifHN1cHxpfGJ8dXxtYXJrfHJ1Ynl8cnR8cnB8YmRpfGJkb3xzcGFufGJyfHdicnxpbnN8ZGVsfGltZylcXGIpXFx3Kyg/ITp8W15cXHdcXHNAXSpAKVxcYiIpLmdldFJlZ2V4KCksZGVmOi9eICpcWyhbXlxdXSspXF06ICo8PyhbXlxzPl0rKT4/KD86ICsoWyIoXVteXG5dK1siKV0pKT8gKig/OlxuK3wkKS8saGVhZGluZzovXigjezEsNn0pKC4qKSg/OlxuK3wkKS8sZmVuY2VzOlhpLHBhcmFncmFwaDpXaShhby5ub3JtYWwuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLGFvLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5dIikucmVwbGFjZSgibGhlYWRpbmciLGFvLmxoZWFkaW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBsYWNlKCJ8bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgoKX0pO2NvbnN0IGxvPXtlc2NhcGU6L15cXChbISIjJCUmJygpKissXC0uLzo7PD0+P0BcW1xdXFxeX2B7fH1+XSkvLGF1dG9saW5rOi9ePChzY2hlbWU6W15cc1x4MDAtXHgxZjw+XSp8ZW1haWwpPi8sdXJsOlhpLHRhZzoiXmNvbW1lbnR8XjwvW2EtekEtWl1bXFx3Oi1dKlxccyo+fF48W2EtekEtWl1bXFx3LV0qKD86YXR0cmlidXRlKSo/XFxzKi8/PnxePFxcP1tcXHNcXFNdKj9cXD8+fF48IVthLXpBLVpdK1xcc1tcXHNcXFNdKj8+fF48IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4iLGxpbms6L14hP1xbKGxhYmVsKVxdXChccyooaHJlZikoPzpccysodGl0bGUpKT9ccypcKS8scmVmbGluazovXiE/XFsobGFiZWwpXF1cWyhyZWYpXF0vLG5vbGluazovXiE/XFsocmVmKVxdKD86XFtcXSk/LyxyZWZsaW5rU2VhcmNoOiJyZWZsaW5rfG5vbGluayg/IVxcKCkiLGVtU3Ryb25nOntsRGVsaW06L14oPzpcKisoPzooW3B1bmN0X10pfFteXHMqXSkpfF5fKyg/OihbcHVuY3QqXSl8KFteXHNfXSkpLyxyRGVsaW1Bc3Q6L15bXl8qXSo/XF9cX1teXypdKj9cKlteXypdKj8oPz1cX1xfKXxbcHVuY3RfXShcKispKD89W1xzXXwkKXxbXnB1bmN0Kl9cc10oXCorKSg/PVtwdW5jdF9cc118JCl8W3B1bmN0X1xzXShcKispKD89W15wdW5jdCpfXHNdKXxbXHNdKFwqKykoPz1bcHVuY3RfXSl8W3B1bmN0X10oXCorKSg/PVtwdW5jdF9dKXxbXnB1bmN0Kl9cc10oXCorKSg/PVtecHVuY3QqX1xzXSkvLHJEZWxpbVVuZDovXlteXypdKj9cKlwqW15fKl0qP1xfW15fKl0qPyg/PVwqXCopfFtwdW5jdCpdKFxfKykoPz1bXHNdfCQpfFtecHVuY3QqX1xzXShcXyspKD89W3B1bmN0KlxzXXwkKXxbcHVuY3QqXHNdKFxfKykoPz1bXnB1bmN0Kl9cc10pfFtcc10oXF8rKSg/PVtwdW5jdCpdKXxbcHVuY3QqXShcXyspKD89W3B1bmN0Kl0pL30sY29kZTovXihgKykoW15gXXxbXmBdW1xzXFNdKj9bXmBdKVwxKD8hYCkvLGJyOi9eKCB7Mix9fFxcKVxuKD8hXHMqJCkvLGRlbDpYaSx0ZXh0Oi9eKGArfFteYF0pKD86KD89IHsyLH1cbil8W1xzXFNdKj8oPzooPz1bXFw8IVxbYCpfXXxcYl98JCl8W14gXSg/PSB7Mix9XG4pKSkvLHB1bmN0dWF0aW9uOi9eKFtcc3B1bmN0dWF0aW9uXSkvfTtmdW5jdGlvbiBjbyhlKXtyZXR1cm4gZS5yZXBsYWNlKC8tLS0vZywi4oCUIikucmVwbGFjZSgvLS0vZywi4oCTIikucmVwbGFjZSgvKF58Wy1cdTIwMTQvKFxbeyJcc10pJy9nLCIkMeKAmCIpLnJlcGxhY2UoLycvZywi4oCZIikucmVwbGFjZSgvKF58Wy1cdTIwMTQvKFxbe1x1MjAxOFxzXSkiL2csIiQx4oCcIikucmVwbGFjZSgvIi9nLCLigJ0iKS5yZXBsYWNlKC9cLnszfS9nLCLigKYiKX1mdW5jdGlvbiBobyhlKXtsZXQgdCxpLG89IiI7Y29uc3Qgbj1lLmxlbmd0aDtmb3IodD0wO3Q8bjt0KyspaT1lLmNoYXJDb2RlQXQodCksTWF0aC5yYW5kb20oKT4uNSYmKGk9IngiK2kudG9TdHJpbmcoMTYpKSxvKz0iJiMiK2krIjsiO3JldHVybiBvfWxvLl9wdW5jdHVhdGlvbj0iIVwiIyQlJicoKStcXC0uLC86Ozw9Pj9AXFxbXFxdYF57fH1+Iixsby5wdW5jdHVhdGlvbj1XaShsby5wdW5jdHVhdGlvbikucmVwbGFjZSgvcHVuY3R1YXRpb24vZyxsby5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksbG8uYmxvY2tTa2lwPS9cW1teXF1dKj9cXVwoW15cKV0qP1wpfGBbXmBdKj9gfDxbXj5dKj8+L2csbG8uZXNjYXBlZEVtU3Q9L1xcXCp8XFxfL2csbG8uX2NvbW1lbnQ9V2koYW8uX2NvbW1lbnQpLnJlcGxhY2UoIig/Oi0tXHgzZXwkKSIsIi0tXHgzZSIpLmdldFJlZ2V4KCksbG8uZW1TdHJvbmcubERlbGltPVdpKGxvLmVtU3Ryb25nLmxEZWxpbSkucmVwbGFjZSgvcHVuY3QvZyxsby5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksbG8uZW1TdHJvbmcuckRlbGltQXN0PVdpKGxvLmVtU3Ryb25nLnJEZWxpbUFzdCwiZyIpLnJlcGxhY2UoL3B1bmN0L2csbG8uX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLGxvLmVtU3Ryb25nLnJEZWxpbVVuZD1XaShsby5lbVN0cm9uZy5yRGVsaW1VbmQsImciKS5yZXBsYWNlKC9wdW5jdC9nLGxvLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxsby5fZXNjYXBlcz0vXFwoWyEiIyQlJicoKSorLFwtLi86Ozw9Pj9AXFtcXVxcXl9ge3x9fl0pL2csbG8uX3NjaGVtZT0vW2EtekEtWl1bYS16QS1aMC05Ky4tXXsxLDMxfS8sbG8uX2VtYWlsPS9bYS16QS1aMC05LiEjJCUmJyorLz0/Xl9ge3x9fi1dKyhAKVthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSsoPyFbLV9dKS8sbG8uYXV0b2xpbms9V2kobG8uYXV0b2xpbmspLnJlcGxhY2UoInNjaGVtZSIsbG8uX3NjaGVtZSkucmVwbGFjZSgiZW1haWwiLGxvLl9lbWFpbCkuZ2V0UmVnZXgoKSxsby5fYXR0cmlidXRlPS9ccytbYS16QS1aOl9dW1x3LjotXSooPzpccyo9XHMqIlteIl0qInxccyo9XHMqJ1teJ10qJ3xccyo9XHMqW15ccyInPTw+YF0rKT8vLGxvLnRhZz1XaShsby50YWcpLnJlcGxhY2UoImNvbW1lbnQiLGxvLl9jb21tZW50KS5yZXBsYWNlKCJhdHRyaWJ1dGUiLGxvLl9hdHRyaWJ1dGUpLmdldFJlZ2V4KCksbG8uX2xhYmVsPS8oPzpcWyg/OlxcLnxbXlxbXF1cXF0pKlxdfFxcLnxgW15gXSpgfFteXFtcXVxcYF0pKj8vLGxvLl9ocmVmPS88KD86XFwufFteXG48PlxcXSkrPnxbXlxzXHgwMC1ceDFmXSovLGxvLl90aXRsZT0vIig/OlxcIj98W14iXFxdKSoifCcoPzpcXCc/fFteJ1xcXSkqJ3xcKCg/OlxcXCk/fFteKVxcXSkqXCkvLGxvLmxpbms9V2kobG8ubGluaykucmVwbGFjZSgibGFiZWwiLGxvLl9sYWJlbCkucmVwbGFjZSgiaHJlZiIsbG8uX2hyZWYpLnJlcGxhY2UoInRpdGxlIixsby5fdGl0bGUpLmdldFJlZ2V4KCksbG8ucmVmbGluaz1XaShsby5yZWZsaW5rKS5yZXBsYWNlKCJsYWJlbCIsbG8uX2xhYmVsKS5yZXBsYWNlKCJyZWYiLGFvLl9sYWJlbCkuZ2V0UmVnZXgoKSxsby5ub2xpbms9V2kobG8ubm9saW5rKS5yZXBsYWNlKCJyZWYiLGFvLl9sYWJlbCkuZ2V0UmVnZXgoKSxsby5yZWZsaW5rU2VhcmNoPVdpKGxvLnJlZmxpbmtTZWFyY2gsImciKS5yZXBsYWNlKCJyZWZsaW5rIixsby5yZWZsaW5rKS5yZXBsYWNlKCJub2xpbmsiLGxvLm5vbGluaykuZ2V0UmVnZXgoKSxsby5ub3JtYWw9ZW8oe30sbG8pLGxvLnBlZGFudGljPWVvKHt9LGxvLm5vcm1hbCx7c3Ryb25nOntzdGFydDovXl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMpX18oPyFfKXxeXCpcKig/PVxTKShbXHNcU10qP1xTKVwqXCooPyFcKikvLGVuZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xTXSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8hXykvLGVuZEFzdDovXCooPyFcKikvZyxlbmRVbmQ6L18oPyFfKS9nfSxsaW5rOldpKC9eIT9cWyhsYWJlbClcXVwoKC4qPylcKS8pLnJlcGxhY2UoImxhYmVsIixsby5fbGFiZWwpLmdldFJlZ2V4KCkscmVmbGluazpXaSgvXiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNlKCJsYWJlbCIsbG8uX2xhYmVsKS5nZXRSZWdleCgpfSksbG8uZ2ZtPWVvKHt9LGxvLm5vcm1hbCx7ZXNjYXBlOldpKGxvLmVzY2FwZSkucmVwbGFjZSgiXSkiLCJ+fF0pIikuZ2V0UmVnZXgoKSxfZXh0ZW5kZWRfZW1haWw6L1tBLVphLXowLTkuXystXSsoQClbYS16QS1aMC05LV9dKyg/OlwuW2EtekEtWjAtOS1fXSpbYS16QS1aMC05XSkrKD8hWy1fXSkvLHVybDovXigoPzpmdHB8aHR0cHM/KTpcL1wvfHd3d1wuKSg/OlthLXpBLVowLTlcLV0rXC4/KStbXlxzPF0qfF5lbWFpbC8sX2JhY2twZWRhbDovKD86W14/IS4sOjsqX34oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTldKzskKXxbPyEuLDo7Kl9+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0pKFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSksbG8uZ2ZtLnVybD1XaShsby5nZm0udXJsLCJpIikucmVwbGFjZSgiZW1haWwiLGxvLmdmbS5fZXh0ZW5kZWRfZW1haWwpLmdldFJlZ2V4KCksbG8uYnJlYWtzPWVvKHt9LGxvLmdmbSx7YnI6V2kobG8uYnIpLnJlcGxhY2UoInsyLH0iLCIqIikuZ2V0UmVnZXgoKSx0ZXh0OldpKGxvLmdmbS50ZXh0KS5yZXBsYWNlKCJcXGJfIiwiXFxiX3wgezIsfVxcbiIpLnJlcGxhY2UoL1x7MixcfS9nLCIqIikuZ2V0UmVnZXgoKX0pO2NsYXNzIHVve2NvbnN0cnVjdG9yKGUpe3RoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5zLmxpbmtzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5vcHRpb25zPWV8fERpLHRoaXMub3B0aW9ucy50b2tlbml6ZXI9dGhpcy5vcHRpb25zLnRva2VuaXplcnx8bmV3IHNvLHRoaXMudG9rZW5pemVyPXRoaXMub3B0aW9ucy50b2tlbml6ZXIsdGhpcy50b2tlbml6ZXIub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy50b2tlbml6ZXIubGV4ZXI9dGhpcyx0aGlzLmlubGluZVF1ZXVlPVtdLHRoaXMuc3RhdGU9e2luTGluazohMSxpblJhd0Jsb2NrOiExLHRvcDohMH07Y29uc3QgdD17YmxvY2s6YW8ubm9ybWFsLGlubGluZTpsby5ub3JtYWx9O3RoaXMub3B0aW9ucy5wZWRhbnRpYz8odC5ibG9jaz1hby5wZWRhbnRpYyx0LmlubGluZT1sby5wZWRhbnRpYyk6dGhpcy5vcHRpb25zLmdmbSYmKHQuYmxvY2s9YW8uZ2ZtLHRoaXMub3B0aW9ucy5icmVha3M/dC5pbmxpbmU9bG8uYnJlYWtzOnQuaW5saW5lPWxvLmdmbSksdGhpcy50b2tlbml6ZXIucnVsZXM9dH1zdGF0aWMgZ2V0IHJ1bGVzKCl7cmV0dXJue2Jsb2NrOmFvLGlubGluZTpsb319c3RhdGljIGxleChlLHQpe3JldHVybiBuZXcgdW8odCkubGV4KGUpfXN0YXRpYyBsZXhJbmxpbmUoZSx0KXtyZXR1cm4gbmV3IHVvKHQpLmlubGluZVRva2VucyhlKX1sZXgoZSl7bGV0IHQ7Zm9yKGU9ZS5yZXBsYWNlKC9cclxufFxyL2csIlxuIikucmVwbGFjZSgvXHQvZywiICAgICIpLHRoaXMuYmxvY2tUb2tlbnMoZSx0aGlzLnRva2Vucyk7dD10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRoaXMuaW5saW5lVG9rZW5zKHQuc3JjLHQudG9rZW5zKTtyZXR1cm4gdGhpcy50b2tlbnN9YmxvY2tUb2tlbnMoZSx0PVtdKXtsZXQgaSxvLG4scjtmb3IodGhpcy5vcHRpb25zLnBlZGFudGljJiYoZT1lLnJlcGxhY2UoL14gKyQvZ20sIiIpKTtlOylpZighKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5ibG9jayYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2suc29tZSgobz0+ISEoaT1vLmNhbGwoe2xleGVyOnRoaXN9LGUsdCkpJiYoZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKSwhMCkpKSkpaWYoaT10aGlzLnRva2VuaXplci5zcGFjZShlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksMT09PWkucmF3Lmxlbmd0aCYmdC5sZW5ndGg+MD90W3QubGVuZ3RoLTFdLnJhdys9IlxuIjp0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLmNvZGUoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLG89dFt0Lmxlbmd0aC0xXSwhb3x8InBhcmFncmFwaCIhPT1vLnR5cGUmJiJ0ZXh0IiE9PW8udHlwZT90LnB1c2goaSk6KG8ucmF3Kz0iXG4iK2kucmF3LG8udGV4dCs9IlxuIitpLnRleHQsdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9by50ZXh0KTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuZmVuY2VzKGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLmhlYWRpbmcoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuaHIoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuYmxvY2txdW90ZShlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksdC5wdXNoKGkpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci5saXN0KGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLmh0bWwoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuZGVmKGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSxvPXRbdC5sZW5ndGgtMV0sIW98fCJwYXJhZ3JhcGgiIT09by50eXBlJiYidGV4dCIhPT1vLnR5cGU/dGhpcy50b2tlbnMubGlua3NbaS50YWddfHwodGhpcy50b2tlbnMubGlua3NbaS50YWddPXtocmVmOmkuaHJlZix0aXRsZTppLnRpdGxlfSk6KG8ucmF3Kz0iXG4iK2kucmF3LG8udGV4dCs9IlxuIitpLnJhdyx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1vLnRleHQpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci50YWJsZShlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksdC5wdXNoKGkpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci5saGVhZGluZyhlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksdC5wdXNoKGkpO2Vsc2V7aWYobj1lLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydEJsb2NrKXtsZXQgdD0xLzA7Y29uc3QgaT1lLnNsaWNlKDEpO2xldCBvO3RoaXMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0QmxvY2suZm9yRWFjaCgoZnVuY3Rpb24oZSl7bz1lLmNhbGwoe2xleGVyOnRoaXN9LGkpLCJudW1iZXIiPT10eXBlb2YgbyYmbz49MCYmKHQ9TWF0aC5taW4odCxvKSl9KSksdDwxLzAmJnQ+PTAmJihuPWUuc3Vic3RyaW5nKDAsdCsxKSl9aWYodGhpcy5zdGF0ZS50b3AmJihpPXRoaXMudG9rZW5pemVyLnBhcmFncmFwaChuKSkpbz10W3QubGVuZ3RoLTFdLHImJiJwYXJhZ3JhcGgiPT09by50eXBlPyhvLnJhdys9IlxuIitpLnJhdyxvLnRleHQrPSJcbiIraS50ZXh0LHRoaXMuaW5saW5lUXVldWUucG9wKCksdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9by50ZXh0KTp0LnB1c2goaSkscj1uLmxlbmd0aCE9PWUubGVuZ3RoLGU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIudGV4dChlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksbz10W3QubGVuZ3RoLTFdLG8mJiJ0ZXh0Ij09PW8udHlwZT8oby5yYXcrPSJcbiIraS5yYXcsby50ZXh0Kz0iXG4iK2kudGV4dCx0aGlzLmlubGluZVF1ZXVlLnBvcCgpLHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPW8udGV4dCk6dC5wdXNoKGkpO2Vsc2UgaWYoZSl7Y29uc3QgdD0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK2UuY2hhckNvZGVBdCgwKTtpZih0aGlzLm9wdGlvbnMuc2lsZW50KXtjb25zb2xlLmVycm9yKHQpO2JyZWFrfXRocm93IG5ldyBFcnJvcih0KX19cmV0dXJuIHRoaXMuc3RhdGUudG9wPSEwLHR9aW5saW5lKGUsdCl7dGhpcy5pbmxpbmVRdWV1ZS5wdXNoKHtzcmM6ZSx0b2tlbnM6dH0pfWlubGluZVRva2VucyhlLHQ9W10pe2xldCBpLG8sbixyLHMsYSxsPWU7aWYodGhpcy50b2tlbnMubGlua3Mpe2NvbnN0IGU9T2JqZWN0LmtleXModGhpcy50b2tlbnMubGlua3MpO2lmKGUubGVuZ3RoPjApZm9yKDtudWxsIT0ocj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5leGVjKGwpKTspZS5pbmNsdWRlcyhyWzBdLnNsaWNlKHJbMF0ubGFzdEluZGV4T2YoIlsiKSsxLC0xKSkmJihsPWwuc2xpY2UoMCxyLmluZGV4KSsiWyIrbm8oImEiLHJbMF0ubGVuZ3RoLTIpKyJdIitsLnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmxhc3RJbmRleCkpfWZvcig7bnVsbCE9KHI9dGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5leGVjKGwpKTspbD1sLnNsaWNlKDAsci5pbmRleCkrIlsiK25vKCJhIixyWzBdLmxlbmd0aC0yKSsiXSIrbC5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmxhc3RJbmRleCk7Zm9yKDtudWxsIT0ocj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QuZXhlYyhsKSk7KWw9bC5zbGljZSgwLHIuaW5kZXgpKyIrKyIrbC5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QubGFzdEluZGV4KTtmb3IoO2U7KWlmKHN8fChhPSIiKSxzPSExLCEodGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmlubGluZSYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuaW5saW5lLnNvbWUoKG89PiEhKGk9by5jYWxsKHtsZXhlcjp0aGlzfSxlLHQpKSYmKGU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSksITApKSkpKWlmKGk9dGhpcy50b2tlbml6ZXIuZXNjYXBlKGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLnRhZyhlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksbz10W3QubGVuZ3RoLTFdLG8mJiJ0ZXh0Ij09PWkudHlwZSYmInRleHQiPT09by50eXBlPyhvLnJhdys9aS5yYXcsby50ZXh0Kz1pLnRleHQpOnQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIubGluayhlKSllPWUuc3Vic3RyaW5nKGkucmF3Lmxlbmd0aCksdC5wdXNoKGkpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci5yZWZsaW5rKGUsdGhpcy50b2tlbnMubGlua3MpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSxvPXRbdC5sZW5ndGgtMV0sbyYmInRleHQiPT09aS50eXBlJiYidGV4dCI9PT1vLnR5cGU/KG8ucmF3Kz1pLnJhdyxvLnRleHQrPWkudGV4dCk6dC5wdXNoKGkpO2Vsc2UgaWYoaT10aGlzLnRva2VuaXplci5lbVN0cm9uZyhlLGwsYSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuY29kZXNwYW4oZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuYnIoZSkpZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtlbHNlIGlmKGk9dGhpcy50b2tlbml6ZXIuZGVsKGUpKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZihpPXRoaXMudG9rZW5pemVyLmF1dG9saW5rKGUsaG8pKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSx0LnB1c2goaSk7ZWxzZSBpZih0aGlzLnN0YXRlLmluTGlua3x8IShpPXRoaXMudG9rZW5pemVyLnVybChlLGhvKSkpe2lmKG49ZSx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUpe2xldCB0PTEvMDtjb25zdCBpPWUuc2xpY2UoMSk7bGV0IG87dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7bz1lLmNhbGwoe2xleGVyOnRoaXN9LGkpLCJudW1iZXIiPT10eXBlb2YgbyYmbz49MCYmKHQ9TWF0aC5taW4odCxvKSl9KSksdDwxLzAmJnQ+PTAmJihuPWUuc3Vic3RyaW5nKDAsdCsxKSl9aWYoaT10aGlzLnRva2VuaXplci5pbmxpbmVUZXh0KG4sY28pKWU9ZS5zdWJzdHJpbmcoaS5yYXcubGVuZ3RoKSwiXyIhPT1pLnJhdy5zbGljZSgtMSkmJihhPWkucmF3LnNsaWNlKC0xKSkscz0hMCxvPXRbdC5sZW5ndGgtMV0sbyYmInRleHQiPT09by50eXBlPyhvLnJhdys9aS5yYXcsby50ZXh0Kz1pLnRleHQpOnQucHVzaChpKTtlbHNlIGlmKGUpe2NvbnN0IHQ9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitlLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5vcHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcih0KTticmVha310aHJvdyBuZXcgRXJyb3IodCl9fWVsc2UgZT1lLnN1YnN0cmluZyhpLnJhdy5sZW5ndGgpLHQucHVzaChpKTtyZXR1cm4gdH19Y2xhc3MgZm97Y29uc3RydWN0b3IoZSl7dGhpcy5vcHRpb25zPWV8fERpfWNvZGUoZSx0LGkpe2NvbnN0IG89KHR8fCIiKS5tYXRjaCgvXFMqLylbMF07aWYodGhpcy5vcHRpb25zLmhpZ2hsaWdodCl7Y29uc3QgdD10aGlzLm9wdGlvbnMuaGlnaGxpZ2h0KGUsbyk7bnVsbCE9dCYmdCE9PWUmJihpPSEwLGU9dCl9cmV0dXJuIGU9ZS5yZXBsYWNlKC9cbiQvLCIiKSsiXG4iLG8/JzxwcmU+PGNvZGUgY2xhc3M9IicrdGhpcy5vcHRpb25zLmxhbmdQcmVmaXgrTmkobywhMCkrJyI+JysoaT9lOk5pKGUsITApKSsiPC9jb2RlPjwvcHJlPlxuIjoiPHByZT48Y29kZT4iKyhpP2U6TmkoZSwhMCkpKyI8L2NvZGU+PC9wcmU+XG4ifWJsb2NrcXVvdGUoZSl7cmV0dXJuIjxibG9ja3F1b3RlPlxuIitlKyI8L2Jsb2NrcXVvdGU+XG4ifWh0bWwoZSl7cmV0dXJuIGV9aGVhZGluZyhlLHQsaSxvKXtyZXR1cm4gdGhpcy5vcHRpb25zLmhlYWRlcklkcz8iPGgiK3QrJyBpZD0iJyt0aGlzLm9wdGlvbnMuaGVhZGVyUHJlZml4K28uc2x1ZyhpKSsnIj4nK2UrIjwvaCIrdCsiPlxuIjoiPGgiK3QrIj4iK2UrIjwvaCIrdCsiPlxuIn1ocigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxoci8+XG4iOiI8aHI+XG4ifWxpc3QoZSx0LGkpe2NvbnN0IG89dD8ib2wiOiJ1bCI7cmV0dXJuIjwiK28rKHQmJjEhPT1pPycgc3RhcnQ9IicraSsnIic6IiIpKyI+XG4iK2UrIjwvIitvKyI+XG4ifWxpc3RpdGVtKGUpe3JldHVybiI8bGk+IitlKyI8L2xpPlxuIn1jaGVja2JveChlKXtyZXR1cm4iPGlucHV0ICIrKGU/J2NoZWNrZWQ9IiIgJzoiIikrJ2Rpc2FibGVkPSIiIHR5cGU9ImNoZWNrYm94IicrKHRoaXMub3B0aW9ucy54aHRtbD8iIC8iOiIiKSsiPiAifXBhcmFncmFwaChlKXtyZXR1cm4iPHA+IitlKyI8L3A+XG4ifXRhYmxlKGUsdCl7cmV0dXJuIHQmJih0PSI8dGJvZHk+Iit0KyI8L3Rib2R5PiIpLCI8dGFibGU+XG48dGhlYWQ+XG4iK2UrIjwvdGhlYWQ+XG4iK3QrIjwvdGFibGU+XG4ifXRhYmxlcm93KGUpe3JldHVybiI8dHI+XG4iK2UrIjwvdHI+XG4ifXRhYmxlY2VsbChlLHQpe2NvbnN0IGk9dC5oZWFkZXI/InRoIjoidGQiO3JldHVybih0LmFsaWduPyI8IitpKycgYWxpZ249IicrdC5hbGlnbisnIj4nOiI8IitpKyI+IikrZSsiPC8iK2krIj5cbiJ9c3Ryb25nKGUpe3JldHVybiI8c3Ryb25nPiIrZSsiPC9zdHJvbmc+In1lbShlKXtyZXR1cm4iPGVtPiIrZSsiPC9lbT4ifWNvZGVzcGFuKGUpe3JldHVybiI8Y29kZT4iK2UrIjwvY29kZT4ifWJyKCl7cmV0dXJuIHRoaXMub3B0aW9ucy54aHRtbD8iPGJyLz4iOiI8YnI+In1kZWwoZSl7cmV0dXJuIjxkZWw+IitlKyI8L2RlbD4ifWxpbmsoZSx0LGkpe2lmKG51bGw9PT0oZT1LaSh0aGlzLm9wdGlvbnMuc2FuaXRpemUsdGhpcy5vcHRpb25zLmJhc2VVcmwsZSkpKXJldHVybiBpO2xldCBvPSc8YSBocmVmPSInK05pKGUpKyciJztyZXR1cm4gdCYmKG8rPScgdGl0bGU9IicrdCsnIicpLG8rPSI+IitpKyI8L2E+IixvfWltYWdlKGUsdCxpKXtpZihudWxsPT09KGU9S2kodGhpcy5vcHRpb25zLnNhbml0aXplLHRoaXMub3B0aW9ucy5iYXNlVXJsLGUpKSlyZXR1cm4gaTtsZXQgbz0nPGltZyBzcmM9IicrZSsnIiBhbHQ9IicraSsnIic7cmV0dXJuIHQmJihvKz0nIHRpdGxlPSInK3QrJyInKSxvKz10aGlzLm9wdGlvbnMueGh0bWw/Ii8+IjoiPiIsb310ZXh0KGUpe3JldHVybiBlfX1jbGFzcyBwb3tzdHJvbmcoZSl7cmV0dXJuIGV9ZW0oZSl7cmV0dXJuIGV9Y29kZXNwYW4oZSl7cmV0dXJuIGV9ZGVsKGUpe3JldHVybiBlfWh0bWwoZSl7cmV0dXJuIGV9dGV4dChlKXtyZXR1cm4gZX1saW5rKGUsdCxpKXtyZXR1cm4iIitpfWltYWdlKGUsdCxpKXtyZXR1cm4iIitpfWJyKCl7cmV0dXJuIiJ9fWNsYXNzIG1ve2NvbnN0cnVjdG9yKCl7dGhpcy5zZWVuPXt9fXNlcmlhbGl6ZShlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnRyaW0oKS5yZXBsYWNlKC88WyFcL2Etel0uKj8+L2dpLCIiKS5yZXBsYWNlKC9bXHUyMDAwLVx1MjA2Rlx1MkUwMC1cdTJFN0ZcXCchIiMkJSYoKSorLC4vOjs8PT4/QFtcXV5ge3x9fl0vZywiIikucmVwbGFjZSgvXHMvZywiLSIpfWdldE5leHRTYWZlU2x1ZyhlLHQpe2xldCBpPWUsbz0wO2lmKHRoaXMuc2Vlbi5oYXNPd25Qcm9wZXJ0eShpKSl7bz10aGlzLnNlZW5bZV07ZG97bysrLGk9ZSsiLSIrb313aGlsZSh0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkoaSkpfXJldHVybiB0fHwodGhpcy5zZWVuW2VdPW8sdGhpcy5zZWVuW2ldPTApLGl9c2x1ZyhlLHQ9e30pe2NvbnN0IGk9dGhpcy5zZXJpYWxpemUoZSk7cmV0dXJuIHRoaXMuZ2V0TmV4dFNhZmVTbHVnKGksdC5kcnlydW4pfX1jbGFzcyBib3tjb25zdHJ1Y3RvcihlKXt0aGlzLm9wdGlvbnM9ZXx8RGksdGhpcy5vcHRpb25zLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcnx8bmV3IGZvLHRoaXMucmVuZGVyZXI9dGhpcy5vcHRpb25zLnJlbmRlcmVyLHRoaXMucmVuZGVyZXIub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy50ZXh0UmVuZGVyZXI9bmV3IHBvLHRoaXMuc2x1Z2dlcj1uZXcgbW99c3RhdGljIHBhcnNlKGUsdCl7cmV0dXJuIG5ldyBibyh0KS5wYXJzZShlKX1zdGF0aWMgcGFyc2VJbmxpbmUoZSx0KXtyZXR1cm4gbmV3IGJvKHQpLnBhcnNlSW5saW5lKGUpfXBhcnNlKGUsdD0hMCl7bGV0IGksbyxuLHIscyxhLGwsYyxkLGgsdSxmLHAsbSxiLGcsdix3LHkseD0iIjtjb25zdCBrPWUubGVuZ3RoO2ZvcihpPTA7aTxrO2krKylpZihoPWVbaV0sdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW2gudHlwZV0mJih5PXRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1toLnR5cGVdLmNhbGwoe3BhcnNlcjp0aGlzfSxoKSwhMSE9PXl8fCFbInNwYWNlIiwiaHIiLCJoZWFkaW5nIiwiY29kZSIsInRhYmxlIiwiYmxvY2txdW90ZSIsImxpc3QiLCJodG1sIiwicGFyYWdyYXBoIiwidGV4dCJdLmluY2x1ZGVzKGgudHlwZSkpKXgrPXl8fCIiO2Vsc2Ugc3dpdGNoKGgudHlwZSl7Y2FzZSJzcGFjZSI6Y29udGludWU7Y2FzZSJociI6eCs9dGhpcy5yZW5kZXJlci5ocigpO2NvbnRpbnVlO2Nhc2UiaGVhZGluZyI6eCs9dGhpcy5yZW5kZXJlci5oZWFkaW5nKHRoaXMucGFyc2VJbmxpbmUoaC50b2tlbnMpLGguZGVwdGgsamkodGhpcy5wYXJzZUlubGluZShoLnRva2Vucyx0aGlzLnRleHRSZW5kZXJlcikpLHRoaXMuc2x1Z2dlcik7Y29udGludWU7Y2FzZSJjb2RlIjp4Kz10aGlzLnJlbmRlcmVyLmNvZGUoaC50ZXh0LGgubGFuZyxoLmVzY2FwZWQpO2NvbnRpbnVlO2Nhc2UidGFibGUiOmZvcihjPSIiLGw9IiIscj1oLmhlYWRlci5sZW5ndGgsbz0wO288cjtvKyspbCs9dGhpcy5yZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShoLmhlYWRlcltvXS50b2tlbnMpLHtoZWFkZXI6ITAsYWxpZ246aC5hbGlnbltvXX0pO2ZvcihjKz10aGlzLnJlbmRlcmVyLnRhYmxlcm93KGwpLGQ9IiIscj1oLnJvd3MubGVuZ3RoLG89MDtvPHI7bysrKXtmb3IoYT1oLnJvd3Nbb10sbD0iIixzPWEubGVuZ3RoLG49MDtuPHM7bisrKWwrPXRoaXMucmVuZGVyZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUoYVtuXS50b2tlbnMpLHtoZWFkZXI6ITEsYWxpZ246aC5hbGlnbltuXX0pO2QrPXRoaXMucmVuZGVyZXIudGFibGVyb3cobCl9eCs9dGhpcy5yZW5kZXJlci50YWJsZShjLGQpO2NvbnRpbnVlO2Nhc2UiYmxvY2txdW90ZSI6ZD10aGlzLnBhcnNlKGgudG9rZW5zKSx4Kz10aGlzLnJlbmRlcmVyLmJsb2NrcXVvdGUoZCk7Y29udGludWU7Y2FzZSJsaXN0Ijpmb3IodT1oLm9yZGVyZWQsZj1oLnN0YXJ0LHA9aC5sb29zZSxyPWguaXRlbXMubGVuZ3RoLGQ9IiIsbz0wO288cjtvKyspYj1oLml0ZW1zW29dLGc9Yi5jaGVja2VkLHY9Yi50YXNrLG09IiIsYi50YXNrJiYodz10aGlzLnJlbmRlcmVyLmNoZWNrYm94KGcpLHA/Yi50b2tlbnMubGVuZ3RoPjAmJiJwYXJhZ3JhcGgiPT09Yi50b2tlbnNbMF0udHlwZT8oYi50b2tlbnNbMF0udGV4dD13KyIgIitiLnRva2Vuc1swXS50ZXh0LGIudG9rZW5zWzBdLnRva2VucyYmYi50b2tlbnNbMF0udG9rZW5zLmxlbmd0aD4wJiYidGV4dCI9PT1iLnRva2Vuc1swXS50b2tlbnNbMF0udHlwZSYmKGIudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0PXcrIiAiK2IudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0KSk6Yi50b2tlbnMudW5zaGlmdCh7dHlwZToidGV4dCIsdGV4dDp3fSk6bSs9dyksbSs9dGhpcy5wYXJzZShiLnRva2VucyxwKSxkKz10aGlzLnJlbmRlcmVyLmxpc3RpdGVtKG0sdixnKTt4Kz10aGlzLnJlbmRlcmVyLmxpc3QoZCx1LGYpO2NvbnRpbnVlO2Nhc2UiaHRtbCI6eCs9dGhpcy5yZW5kZXJlci5odG1sKGgudGV4dCk7Y29udGludWU7Y2FzZSJwYXJhZ3JhcGgiOngrPXRoaXMucmVuZGVyZXIucGFyYWdyYXBoKHRoaXMucGFyc2VJbmxpbmUoaC50b2tlbnMpKTtjb250aW51ZTtjYXNlInRleHQiOmZvcihkPWgudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoaC50b2tlbnMpOmgudGV4dDtpKzE8ayYmInRleHQiPT09ZVtpKzFdLnR5cGU7KWg9ZVsrK2ldLGQrPSJcbiIrKGgudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoaC50b2tlbnMpOmgudGV4dCk7eCs9dD90aGlzLnJlbmRlcmVyLnBhcmFncmFwaChkKTpkO2NvbnRpbnVlO2RlZmF1bHQ6e2NvbnN0IGU9J1Rva2VuIHdpdGggIicraC50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihlKTt0aHJvdyBuZXcgRXJyb3IoZSl9fXJldHVybiB4fXBhcnNlSW5saW5lKGUsdCl7dD10fHx0aGlzLnJlbmRlcmVyO2xldCBpLG8sbixyPSIiO2NvbnN0IHM9ZS5sZW5ndGg7Zm9yKGk9MDtpPHM7aSsrKWlmKG89ZVtpXSx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbby50eXBlXSYmKG49dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW28udHlwZV0uY2FsbCh7cGFyc2VyOnRoaXN9LG8pLCExIT09bnx8IVsiZXNjYXBlIiwiaHRtbCIsImxpbmsiLCJpbWFnZSIsInN0cm9uZyIsImVtIiwiY29kZXNwYW4iLCJiciIsImRlbCIsInRleHQiXS5pbmNsdWRlcyhvLnR5cGUpKSlyKz1ufHwiIjtlbHNlIHN3aXRjaChvLnR5cGUpe2Nhc2UiZXNjYXBlIjpjYXNlInRleHQiOnIrPXQudGV4dChvLnRleHQpO2JyZWFrO2Nhc2UiaHRtbCI6cis9dC5odG1sKG8udGV4dCk7YnJlYWs7Y2FzZSJsaW5rIjpyKz10Lmxpbmsoby5ocmVmLG8udGl0bGUsdGhpcy5wYXJzZUlubGluZShvLnRva2Vucyx0KSk7YnJlYWs7Y2FzZSJpbWFnZSI6cis9dC5pbWFnZShvLmhyZWYsby50aXRsZSxvLnRleHQpO2JyZWFrO2Nhc2Uic3Ryb25nIjpyKz10LnN0cm9uZyh0aGlzLnBhcnNlSW5saW5lKG8udG9rZW5zLHQpKTticmVhaztjYXNlImVtIjpyKz10LmVtKHRoaXMucGFyc2VJbmxpbmUoby50b2tlbnMsdCkpO2JyZWFrO2Nhc2UiY29kZXNwYW4iOnIrPXQuY29kZXNwYW4oby50ZXh0KTticmVhaztjYXNlImJyIjpyKz10LmJyKCk7YnJlYWs7Y2FzZSJkZWwiOnIrPXQuZGVsKHRoaXMucGFyc2VJbmxpbmUoby50b2tlbnMsdCkpO2JyZWFrO2RlZmF1bHQ6e2NvbnN0IGU9J1Rva2VuIHdpdGggIicrby50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihlKTt0aHJvdyBuZXcgRXJyb3IoZSl9fXJldHVybiByfX1mdW5jdGlvbiBnbyhlLHQsaSl7aWYobnVsbD09ZSl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZCgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkIG9yIG51bGwiKTtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJtYXJrZWQoKTogaW5wdXQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgIitPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkrIiwgc3RyaW5nIGV4cGVjdGVkIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQmJihpPXQsdD1udWxsKSxvbyh0PWVvKHt9LGdvLmRlZmF1bHRzLHR8fHt9KSksaSl7Y29uc3Qgbz10LmhpZ2hsaWdodDtsZXQgbjt0cnl7bj11by5sZXgoZSx0KX1jYXRjaChlKXtyZXR1cm4gaShlKX1jb25zdCByPWZ1bmN0aW9uKGUpe2xldCByO2lmKCFlKXRyeXt0LndhbGtUb2tlbnMmJmdvLndhbGtUb2tlbnMobix0LndhbGtUb2tlbnMpLHI9Ym8ucGFyc2Uobix0KX1jYXRjaCh0KXtlPXR9cmV0dXJuIHQuaGlnaGxpZ2h0PW8sZT9pKGUpOmkobnVsbCxyKX07aWYoIW98fG8ubGVuZ3RoPDMpcmV0dXJuIHIoKTtpZihkZWxldGUgdC5oaWdobGlnaHQsIW4ubGVuZ3RoKXJldHVybiByKCk7bGV0IHM9MDtyZXR1cm4gZ28ud2Fsa1Rva2VucyhuLChmdW5jdGlvbihlKXsiY29kZSI9PT1lLnR5cGUmJihzKyssc2V0VGltZW91dCgoKCk9PntvKGUudGV4dCxlLmxhbmcsKGZ1bmN0aW9uKHQsaSl7aWYodClyZXR1cm4gcih0KTtudWxsIT1pJiZpIT09ZS50ZXh0JiYoZS50ZXh0PWksZS5lc2NhcGVkPSEwKSxzLS0sMD09PXMmJnIoKX0pKX0pLDApKX0pKSx2b2lkKDA9PT1zJiZyKCkpfXRyeXtjb25zdCBpPXVvLmxleChlLHQpO3JldHVybiB0LndhbGtUb2tlbnMmJmdvLndhbGtUb2tlbnMoaSx0LndhbGtUb2tlbnMpLGJvLnBhcnNlKGksdCl9Y2F0Y2goZSl7aWYoZS5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLHQuc2lsZW50KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK05pKGUubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgZX19Z28ub3B0aW9ucz1nby5zZXRPcHRpb25zPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBlbyhnby5kZWZhdWx0cyxlKSx0PWdvLmRlZmF1bHRzLERpPXQsZ299LGdvLmdldERlZmF1bHRzPVBpLGdvLmRlZmF1bHRzPURpLGdvLnVzZT1mdW5jdGlvbiguLi5lKXtjb25zdCB0PWVvKHt9LC4uLmUpLGk9Z28uZGVmYXVsdHMuZXh0ZW5zaW9uc3x8e3JlbmRlcmVyczp7fSxjaGlsZFRva2Vuczp7fX07bGV0IG87ZS5mb3JFYWNoKChlPT57aWYoZS5leHRlbnNpb25zJiYobz0hMCxlLmV4dGVuc2lvbnMuZm9yRWFjaCgoZT0+e2lmKCFlLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJleHRlbnNpb24gbmFtZSByZXF1aXJlZCIpO2lmKGUucmVuZGVyZXIpe2NvbnN0IHQ9aS5yZW5kZXJlcnM/aS5yZW5kZXJlcnNbZS5uYW1lXTpudWxsO2kucmVuZGVyZXJzW2UubmFtZV09dD9mdW5jdGlvbiguLi5pKXtsZXQgbz1lLnJlbmRlcmVyLmFwcGx5KHRoaXMsaSk7cmV0dXJuITE9PT1vJiYobz10LmFwcGx5KHRoaXMsaSkpLG99OmUucmVuZGVyZXJ9aWYoZS50b2tlbml6ZXIpe2lmKCFlLmxldmVsfHwiYmxvY2siIT09ZS5sZXZlbCYmImlubGluZSIhPT1lLmxldmVsKXRocm93IG5ldyBFcnJvcigiZXh0ZW5zaW9uIGxldmVsIG11c3QgYmUgJ2Jsb2NrJyBvciAnaW5saW5lJyIpO2lbZS5sZXZlbF0/aVtlLmxldmVsXS51bnNoaWZ0KGUudG9rZW5pemVyKTppW2UubGV2ZWxdPVtlLnRva2VuaXplcl0sZS5zdGFydCYmKCJibG9jayI9PT1lLmxldmVsP2kuc3RhcnRCbG9jaz9pLnN0YXJ0QmxvY2sucHVzaChlLnN0YXJ0KTppLnN0YXJ0QmxvY2s9W2Uuc3RhcnRdOiJpbmxpbmUiPT09ZS5sZXZlbCYmKGkuc3RhcnRJbmxpbmU/aS5zdGFydElubGluZS5wdXNoKGUuc3RhcnQpOmkuc3RhcnRJbmxpbmU9W2Uuc3RhcnRdKSl9ZS5jaGlsZFRva2VucyYmKGkuY2hpbGRUb2tlbnNbZS5uYW1lXT1lLmNoaWxkVG9rZW5zKX0pKSksZS5yZW5kZXJlcil7Y29uc3QgaT1nby5kZWZhdWx0cy5yZW5kZXJlcnx8bmV3IGZvO2Zvcihjb25zdCB0IGluIGUucmVuZGVyZXIpe2NvbnN0IG89aVt0XTtpW3RdPSguLi5uKT0+e2xldCByPWUucmVuZGVyZXJbdF0uYXBwbHkoaSxuKTtyZXR1cm4hMT09PXImJihyPW8uYXBwbHkoaSxuKSkscn19dC5yZW5kZXJlcj1pfWlmKGUudG9rZW5pemVyKXtjb25zdCBpPWdvLmRlZmF1bHRzLnRva2VuaXplcnx8bmV3IHNvO2Zvcihjb25zdCB0IGluIGUudG9rZW5pemVyKXtjb25zdCBvPWlbdF07aVt0XT0oLi4ubik9PntsZXQgcj1lLnRva2VuaXplclt0XS5hcHBseShpLG4pO3JldHVybiExPT09ciYmKHI9by5hcHBseShpLG4pKSxyfX10LnRva2VuaXplcj1pfWlmKGUud2Fsa1Rva2Vucyl7Y29uc3QgaT1nby5kZWZhdWx0cy53YWxrVG9rZW5zO3Qud2Fsa1Rva2Vucz1mdW5jdGlvbih0KXtlLndhbGtUb2tlbnMuY2FsbCh0aGlzLHQpLGkmJmkuY2FsbCh0aGlzLHQpfX1vJiYodC5leHRlbnNpb25zPWkpLGdvLnNldE9wdGlvbnModCl9KSl9LGdvLndhbGtUb2tlbnM9ZnVuY3Rpb24oZSx0KXtmb3IoY29uc3QgaSBvZiBlKXN3aXRjaCh0LmNhbGwoZ28saSksaS50eXBlKXtjYXNlInRhYmxlIjpmb3IoY29uc3QgZSBvZiBpLmhlYWRlcilnby53YWxrVG9rZW5zKGUudG9rZW5zLHQpO2Zvcihjb25zdCBlIG9mIGkucm93cylmb3IoY29uc3QgaSBvZiBlKWdvLndhbGtUb2tlbnMoaS50b2tlbnMsdCk7YnJlYWs7Y2FzZSJsaXN0Ijpnby53YWxrVG9rZW5zKGkuaXRlbXMsdCk7YnJlYWs7ZGVmYXVsdDpnby5kZWZhdWx0cy5leHRlbnNpb25zJiZnby5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zJiZnby5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zW2kudHlwZV0/Z28uZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1tpLnR5cGVdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2dvLndhbGtUb2tlbnMoaVtlXSx0KX0pKTppLnRva2VucyYmZ28ud2Fsa1Rva2VucyhpLnRva2Vucyx0KX19LGdvLnBhcnNlSW5saW5lPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZC5wYXJzZUlubGluZSgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkIG9yIG51bGwiKTtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJtYXJrZWQucGFyc2VJbmxpbmUoKTogaW5wdXQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgIitPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkrIiwgc3RyaW5nIGV4cGVjdGVkIik7b28odD1lbyh7fSxnby5kZWZhdWx0cyx0fHx7fSkpO3RyeXtjb25zdCBpPXVvLmxleElubGluZShlLHQpO3JldHVybiB0LndhbGtUb2tlbnMmJmdvLndhbGtUb2tlbnMoaSx0LndhbGtUb2tlbnMpLGJvLnBhcnNlSW5saW5lKGksdCl9Y2F0Y2goZSl7aWYoZS5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLHQuc2lsZW50KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK05pKGUubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgZX19LGdvLlBhcnNlcj1ibyxnby5wYXJzZXI9Ym8ucGFyc2UsZ28uUmVuZGVyZXI9Zm8sZ28uVGV4dFJlbmRlcmVyPXBvLGdvLkxleGVyPXVvLGdvLmxleGVyPXVvLmxleCxnby5Ub2tlbml6ZXI9c28sZ28uU2x1Z2dlcj1tbyxnby5wYXJzZT1nbztnby5vcHRpb25zLGdvLnNldE9wdGlvbnMsZ28udXNlLGdvLndhbGtUb2tlbnMsZ28ucGFyc2VJbmxpbmUsYm8ucGFyc2UsdW8ubGV4O3ZhciB2bztsZXQgd289dm89Y2xhc3MgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2xsSW5mbz1udWxsLHRoaXMuY3VyYXRlZFBhZ2VNYXA9e30sdGhpcy5jdXJyTGlzdD0wLHRoaXMuYWN0aXZlPSExLHRoaXMuaXNTaWRlYmFyPSExLHRoaXMuc3BsaXREaXJlY3Rpb249ITEsdGhpcy5sYXN0U1Q9MCx0aGlzLmNsaWNrVGltZT0wLHRoaXMuc3BsaXR0ZXI9bnVsbH1yZWNhbGNTcGxpdHRlcihlKXt0aGlzLnNwbGl0RGlyZWN0aW9uPXRoaXMuaXNTaWRlYmFyfHxlPDc2OT8idmVydGljYWwiOiJob3Jpem9udGFsIn1maXJzdFVwZGF0ZWQoKXt0aGlzLnJlY2FsY1NwbGl0dGVyKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCksdGhpcy5vYnM9bmV3IFJlc2l6ZU9ic2VydmVyKChlPT57dGhpcy5yZWNhbGNTcGxpdHRlcihlWzBdLmNvbnRlbnRSZWN0LndpZHRoKX0pKSx0aGlzLm9icy5vYnNlcnZlKHRoaXMpfXVwZGF0ZWQoZSl7ZS5oYXMoImNvbGxJbmZvIikmJnRoaXMuZG9Mb2FkQ3VyYXRlZCgpLChlLmhhcygiY29sbEluZm8iKXx8ZS5oYXMoImlzU2lkZWJhciIpKSYmdGhpcy5yZWNhbGNTcGxpdHRlcihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpLGUuaGFzKCJzcGxpdERpcmVjdGlvbiIpJiZ0aGlzLmNvbmZpZ3VyZVNwbGl0dGVyKCksZS5oYXMoImN1cnJMaXN0IikmJnRoaXMuYWN0aXZlJiZ0aGlzLnNlbmRDaGFuZ2VFdmVudCh7Y3Vyckxpc3Q6dGhpcy5jdXJyTGlzdH0pfWNvbmZpZ3VyZVNwbGl0dGVyKCl7Y29uc3QgZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLnNpZGViYXIiKSx0PXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbi1jb250ZW50Iik7aWYodGhpcy5zcGxpdHRlcil7dHJ5e3RoaXMuc3BsaXR0ZXIuZGVzdHJveSgpfWNhdGNoKGUpe310aGlzLnNwbGl0dGVyPW51bGx9aWYoZSYmdCYmIXRoaXMuc3BsaXR0ZXIpe2NvbnN0IGk9e3NpemVzOlsyMCw4MF0sZ3V0dGVyU2l6ZTo0LGRpcmVjdGlvbjp0aGlzLnNwbGl0RGlyZWN0aW9ufTt0aGlzLnNwbGl0dGVyPWVpKFtlLHRdLGkpfX1kb0xvYWRDdXJhdGVkKCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZihudWxsPT10aGlzLmNvbGxJbmZvKXJldHVybjt0aGlzLmN1cmF0ZWRQYWdlTWFwPXt9O2NvbnN0IGU9e307Zm9yKGNvbnN0IHQgb2YgdGhpcy5jb2xsSW5mby5wYWdlcyllW3QuaWRdPXQ7Zm9yKGNvbnN0IGUgb2YgdGhpcy5jb2xsSW5mby5jdXJhdGVkUGFnZXMpe3RoaXMuY3VyYXRlZFBhZ2VNYXBbZS5saXN0XXx8KHRoaXMuY3VyYXRlZFBhZ2VNYXBbZS5saXN0XT1bXSk7Y29uc3QgdD1lLGk9dC51cmwsbz10LnRzLG49dC50aXRsZXx8dC51cmwscj1lLmRlc2M7dGhpcy5jdXJhdGVkUGFnZU1hcFtlLmxpc3RdLnB1c2goe3VybDppLHRzOm8sdGl0bGU6bixkZXNjOnJ9KX10aGlzLnNjcm9sbFRvTGlzdCgpfSkpfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKGhgCiAgICAgIDpob3N0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG1pbi13aWR0aDogMHB4OwoKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgOmhvc3QoLnNpZGViYXIpIC5jb2x1bW5zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgOmhvc3QoLnNpZGViYXIpIC5jb2x1bW4uc2lkZWJhci5pcy1vbmUtZmlmdGggewogICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgICR7dm8uc2lkZWJhclN0eWxlcyhkKCI6aG9zdCguc2lkZWJhcikiKSl9CgogICAgICAuZGVzYyBwIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07CiAgICAgIH0KCiAgICAgIC5jb2x1bW5zIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAganVzdGlmeS1zZWxmOiBzdHJldGNoOwogICAgICAgIG1hcmdpbjogMWVtIDAgMCAwICFpbXBvcnRhbnQ7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmNvbHVtbi5tYWluLWNvbnRlbnQgewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBtYXJnaW4tbGVmdDogMC43NWVtOwogICAgICB9CgogICAgICAuY29sdW1uLm1haW4tY29udGVudC5tYWluLXNjcm9sbCB7CiAgICAgICAgcGFkZGluZy1yaWdodDogMC43NWVtOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgdWwubWVudS1saXN0IGEuaXMtYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTViZTZmOwogICAgICB9CiAgICAgIG9sIHsKICAgICAgICBtYXJnaW4tbGVmdDogMzBweDsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHsKICAgICAgICAuY29sdW1ucyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAwLjc1ZW07CiAgICAgICAgfQoKICAgICAgICAuY29sdW1uLnNpZGViYXIgewogICAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICR7dm8uc2lkZWJhclN0eWxlcygpfQogICAgICB9CgogICAgICAuZ3V0dGVyLmd1dHRlci12ZXJ0aWNhbDpob3ZlciB7CiAgICAgICAgY3Vyc29yOiByb3ctcmVzaXplOwogICAgICB9CgogICAgICAuZ3V0dGVyLmd1dHRlci1ob3Jpem9udGFsOmhvdmVyIHsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgIH0KICAgIGApfXN0YXRpYyBzaWRlYmFyU3R5bGVzKGU9aGBgKXtyZXR1cm4gaGAKICAgICAgJHtlfSAuY29sdW1ucyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAke2V9IC5jb2x1bW4uc2lkZWJhciB7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtYXJnaW4tdG9wOiAwLjc1ZW07CiAgICAgIH0KCiAgICAgICR7ZX0gLmNvbHVtbi5tYWluLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwoKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7CgogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgJHtlfSAubWVudSB7CiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgIH0KICAgIGB9cmVuZGVyKCl7dmFyIGUsdDtjb25zdCBpPXRoaXMuY3Vyckxpc3Q7cmV0dXJuIFFgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iaXMtc3Itb25seSIKICAgICAgICByb2xlPSJoZWFkaW5nIgogICAgICAgIGFyaWEtbGV2ZWw9IiR7dGhpcy5pc1NpZGViYXI/IjIiOiIxIn0iCiAgICAgID4KICAgICAgICBTdG9yeSBmb3IgJHt0aGlzLmNvbGxJbmZvLnRpdGxlfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uIHNpZGViYXIgaXMtb25lLWZpZnRoIj4KICAgICAgICAgIDxhc2lkZSBjbGFzcz0ibWVudSI+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibWVudS1saXN0Ij4KICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICBocmVmPSIjbGlzdC0wIgogICAgICAgICAgICAgICAgICBkYXRhLWxpc3Q9IjAiCiAgICAgICAgICAgICAgICAgIGNsYXNzPSIkezA9PT1pPyJpcy1hY3RpdmUiOiIifSBtZW51LWxhYmVsIGlzLXNpemUtNCIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5vbkNsaWNrU2Nyb2xsfQogICAgICAgICAgICAgICAgICA+JHtudWxsPT09KGU9dGhpcy5jb2xsSW5mbyl8fHZvaWQgMD09PWU/dm9pZCAwOmUudGl0bGV9PC9hCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im1lbnUtbGlzdCI+CiAgICAgICAgICAgICAgICAgICR7bnVsbD09PSh0PXRoaXMuY29sbEluZm8pfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lmxpc3RzLm1hcCgoZT0+UWAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMub25DbGlja1Njcm9sbH0KICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIjbGlzdC0ke2UuaWR9IgogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbGlzdD0iJHtlLmlkfSIKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iJHtpPT09ZS5pZD8iaXMtYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgPiR7ZS50aXRsZX08L2EKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPC9saT5gKSl9CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICA8L2FzaWRlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgQHNjcm9sbD0ke3RoaXMub25TY3JvbGx9IGNsYXNzPSJjb2x1bW4gbWFpbi1jb250ZW50IG1haW4tc2Nyb2xsIj4KICAgICAgICAgIDxzZWN0aW9uIGlkPSJsaXN0LTAiIGNsYXNzPSJkZXNjIj4KICAgICAgICAgICAgPGgyIGNsYXNzPSJoYXMtdGV4dC1jZW50ZXJlZCB0aXRsZSBpcy0zIj4KICAgICAgICAgICAgICAke3RoaXMuY29sbEluZm8udGl0bGV9CiAgICAgICAgICAgIDwvaDI+CgogICAgICAgICAgICAke3RoaXMuY29sbEluZm8uZGVzYz9FZShnbyh0aGlzLmNvbGxJbmZvLmRlc2MpKToiIn0KICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJMaXN0cygpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGlzdHMoKXt2YXIgZSx0O3JldHVybiBRYCAke251bGw9PT0odD1udWxsPT09KGU9dGhpcy5jb2xsSW5mbyl8fHZvaWQgMD09PWU/dm9pZCAwOmUubGlzdHMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lm1hcCgoZT0+UWAKICAgICAgICA8YXJ0aWNsZSBpZD0ibGlzdC0ke2UuaWR9Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgICA8aHIgLz4KICAgICAgICAgICAgPGgzPiR7ZS50aXRsZX08L2gzPgogICAgICAgICAgICA8cD4ke2UuZGVzY308L3A+CiAgICAgICAgICAgIDxvbD4KICAgICAgICAgICAgICAke3RoaXMuY3VyYXRlZFBhZ2VNYXBbZS5pZF0/dGhpcy5jdXJhdGVkUGFnZU1hcFtlLmlkXS5tYXAoKGU9PnRoaXMucmVuZGVyQ1BhZ2UoZSkpKTpRYGB9CiAgICAgICAgICAgIDwvb2w+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2FydGljbGU+CiAgICAgIGApKX1gfXJlbmRlckNQYWdlKGUpe2NvbnN0IHQ9bmV3IERhdGUoZS50cyksaT14dCh0LnRvSVNPU3RyaW5nKCkpO3JldHVybiBRYCA8bGk+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxhCiAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblJlcGxheX0iCiAgICAgICAgICBkYXRhLXVybD0iJHtlLnVybH0iCiAgICAgICAgICBkYXRhLXRzPSIke2l9IgogICAgICAgICAgaHJlZj0iJHtrdCgic3RvcnkiLGUudXJsLGkpfSIKICAgICAgICA+CiAgICAgICAgICA8cCBjbGFzcz0iaXMtc2l6ZS02IGhhcy10ZXh0LXdlaWdodC1ib2xkIGhhcy10ZXh0LWxpbmsiPiR7ZS50aXRsZX08L3A+CiAgICAgICAgICA8cCBjbGFzcz0iaGFzLXRleHQtZGFyayI+JHtlLnVybH08L3A+CiAgICAgICAgPC9hPgogICAgICAgIDxwPiR7QXQuZm9ybWF0KHQpfTwvcD4KICAgICAgICA8cD4ke2UuZGVzY308L3A+CiAgICAgIDwvZGl2PgogICAgICA8aHIgLz4KICAgIDwvbGk+YH1vblJlcGxheShlKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD17dXJsOmUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtdXJsIiksdHM6ZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS10cyIpfTtyZXR1cm4gdGhpcy5zZW5kQ2hhbmdlRXZlbnQodCksITF9c2VuZENoYW5nZUV2ZW50KGUpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGwtdGFiLW5hdiIse2RldGFpbDp7ZGF0YTplfX0pKX1vbkNsaWNrU2Nyb2xsKGUpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jdXJyTGlzdD1OdW1iZXIoZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1saXN0IikpLHRoaXMuc2Nyb2xsVG9MaXN0KCksITF9c2Nyb2xsVG9MaXN0KCl7dmFyIGUsdCxpO3RoaXMuY3Vyckxpc3Q+KG51bGwhPT0oaT1udWxsPT09KHQ9bnVsbD09PShlPXRoaXMuY29sbEluZm8pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmxpc3RzKXx8dm9pZCAwPT09dD92b2lkIDA6dC5sZW5ndGgpJiZ2b2lkIDAhPT1pP2k6MCkmJih0aGlzLmN1cnJMaXN0PTApO2NvbnN0IG89e2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifTt0aGlzLmNsaWNrVGltZT0obmV3IERhdGUpLmdldFRpbWUoKTtjb25zdCBuPXRoaXMucmVuZGVyUm9vdC5nZXRFbGVtZW50QnlJZCgibGlzdC0iK3RoaXMuY3Vyckxpc3QpO24mJm4uc2Nyb2xsSW50b1ZpZXcobyl9b25TY3JvbGwoZSl7Y29uc3QgdD1lLmN1cnJlbnRUYXJnZXQsaT10aGlzLnJlbmRlclJvb3QuZ2V0RWxlbWVudEJ5SWQoImxpc3QtIit0aGlzLmN1cnJMaXN0KTtpZighaSlyZXR1cm47bGV0IG89aTtjb25zdCBuPXQub2Zmc2V0VG9wLHI9dC5zY3JvbGxUb3A7aWYocj50aGlzLmxhc3RTVClmb3IoO28ubmV4dEVsZW1lbnRTaWJsaW5nJiZvLm5leHRFbGVtZW50U2libGluZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A8bjspbz1vLm5leHRFbGVtZW50U2libGluZztlbHNlIGZvcig7by5wcmV2aW91c0VsZW1lbnRTaWJsaW5nJiZvLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tPj1uOylvPW8ucHJldmlvdXNFbGVtZW50U2libGluZztpZih0aGlzLmxhc3RTVD1yLG8mJm8hPWkmJm8uaWQuc3RhcnRzV2l0aCgibGlzdC0iKSYmKHRoaXMuY3Vyckxpc3Q9TnVtYmVyKG8uaWQuc2xpY2UoNSkpKSwobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLmNsaWNrVGltZTwxZTMpcmV0dXJuO2NvbnN0IHM9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoYGFbZGF0YS1saXN0PSIke3RoaXMuY3Vyckxpc3R9Il1gKTtpZihzKXtjb25zdCBlPXtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In07cy5zY3JvbGxJbnRvVmlldyhlKX19fTt0KFt5ZSh7dHlwZTpPYmplY3R9KV0sd28ucHJvdG90eXBlLCJjb2xsSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3R9KV0sd28ucHJvdG90eXBlLCJjdXJhdGVkUGFnZU1hcCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sd28ucHJvdG90eXBlLCJjdXJyTGlzdCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLHdvLnByb3RvdHlwZSwiYWN0aXZlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sd28ucHJvdG90eXBlLCJpc1NpZGViYXIiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSx3by5wcm90b3R5cGUsInNwbGl0RGlyZWN0aW9uIix2b2lkIDApLHdvPXZvPXQoW2dlKCJ3ci1jb2xsLXN0b3J5IildLHdvKTtjbGFzcyB5byBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnN0YXRlPSJ0cnlwdWJsaWMiLHRoaXMuc291cmNlVXJsPSIiLHRoaXMuc2NyaXB0TG9hZGVkPSExLHRoaXMuZXJyb3I9ITF9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue3N0YXRlOnt0eXBlOlN0cmluZ30sc291cmNlVXJsOnt0eXBlOlN0cmluZ30sZXJyb3I6e3R5cGU6Qm9vbGVhbn0scmVhdXRoOnt0eXBlOkJvb2xlYW59fX11cGRhdGVkKGUpe2UuaGFzKCJzb3VyY2VVcmwiKSYmKHRoaXMuZXJyb3I9ITEsdGhpcy5zdGF0ZT0idHJ5cHVibGljIix0aGlzLnRyeVB1YmxpY0FjY2VzcygpLnRoZW4oKGU9PntlfHwodGhpcy5zdGF0ZT0idHJ5YXV0byIsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfSkpKX10cnlQdWJsaWNBY2Nlc3MoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RyeXtjb25zdCBlPXRoaXMuc291cmNlVXJsLHQ9YGh0dHBzOi8vaGVscGVyLXByb3h5LndlYnJlY29yZGVyLndvcmtlcnMuZGV2L2cvJHtlLnNsaWNlKDE0KX1gO2xldCBpPW51bGw7dHJ5e2k9eWllbGQgZmV0Y2godCl9Y2F0Y2goZSl7cmV0dXJuITF9Y29uc3Qgbz15aWVsZCBpLmpzb24oKTtpZighby51cmx8fCFvLm5hbWV8fCFvLnNpemUpcmV0dXJuITE7aWYoby5zaXplPjE1ZTYpcmV0dXJuITE7Y29uc3Qgbj1vLnVybDt0cnl7Y29uc3QgZT1uZXcgQWJvcnRDb250cm9sbGVyLHQ9ZS5zaWduYWw7aWYoaT15aWVsZCBmZXRjaChuLHtzaWduYWw6dH0pLGUuYWJvcnQoKSwyMDAhPWkuc3RhdHVzKXJldHVybiExfWNhdGNoKGUpe3JldHVybiExfWNvbnN0IHI9by5uYW1lLHM9e3B1YmxpY1VybDpufSxhPU51bWJlcihvLnNpemUpO3JldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2FkLXJlYWR5Iix7ZGV0YWlsOntuYW1lOnIsZXh0cmE6cyxzaXplOmEsc291cmNlVXJsOmV9fSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0pKX1vbkxvYWQoKXt0aGlzLnNjcmlwdExvYWRlZD0hMCx0aGlzLmdhdXRoKCJub25lIiwoZT0+e2UuZXJyb3I/ImltcGxpY2l0b25seSIhPT10aGlzLnN0YXRlJiYodGhpcy5zdGF0ZT0idHJ5bWFudWFsIik6dGhpcy5hdXRoZWQoZSl9KSl9b25DbGlja0F1dGgoKXt0aGlzLmdhdXRoKCJzZWxlY3RfYWNjb3VudCIsKGU9PntlLmVycm9yfHx0aGlzLmF1dGhlZChlKX0pKX1hdXRoZWQoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PXRoaXMuc291cmNlVXJsLGk9YGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2RyaXZlL3YzL2ZpbGVzLyR7dC5zbGljZSgxNCl9YCxvPXtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHtlLmFjY2Vzc190b2tlbn1gfSxuPXlpZWxkIGZldGNoKGkrIj9maWVsZHM9bmFtZSxzaXplJnN1cHBvcnRzQWxsRHJpdmVzPXRydWUiLHtoZWFkZXJzOm99KTtpZig0MDQ9PT1uLnN0YXR1c3x8NDAzPT1uLnN0YXR1cylyZXR1cm4iaW1wbGljaXRvbmx5IiE9PXRoaXMuc3RhdGUmJih0aGlzLnN0YXRlPSJ0cnltYW51YWwiKSx2b2lkKHRoaXMuZXJyb3I9ITApO3RoaXMuZXJyb3I9ITE7Y29uc3Qgcj15aWVsZCBuLmpzb24oKSxzPXIubmFtZSxhPU51bWJlcihyLnNpemUpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxvYWQtcmVhZHkiLHtkZXRhaWw6e3NvdXJjZVVybDp0LGhlYWRlcnM6byxzaXplOmEsbmFtZTpzfX0pKX0pKX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShoYGApfXJlbmRlcigpe3JldHVybiBRYCAke3RoaXMuc2NyaXB0KCl9CiAgICAkeyJ0cnltYW51YWwiIT09dGhpcy5zdGF0ZT9RYCA8cD5Db25uZWN0aW5nIHRvIEdvb2dsZSBEcml2ZS4uLjwvcD4gYDpRYAogICAgICAgICAgJHt0aGlzLmVycm9yP1FgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvciBoYXMtdGV4dC1kYW5nZXIiPgogICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVhdXRoPyJTb21lIHJlc291cmNlcyBhcmUgbG9hZGVkIG9uIGRlbWFuZCBmcm9tIEdvb2dsZSBEcml2ZSwgd2hpY2ggcmVxdWlyZXMgcmVhdXRob3JpemF0aW9uLiI6IkNvdWxkIG5vdCBhY2Nlc3MgdGhpcyBmaWxlIHdpdGggdGhlIGN1cnJlbnQgR29vZ2xlIERyaXZlIGFjY291bnQuIn0KICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBHb29nbGUgRHJpdmUgYWNjb3VudHMsIGJlIHN1cmUgdG8KICAgICAgICAgICAgICAgICAgICBzZWxlY3QgdGhlIGNvcnJlY3Qgb25lLgogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxiciAvPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJidXR0b24gaXMtd2FybmluZyBpcy1yb3VuZGVkIgogICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkNsaWNrQXV0aH0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIgogICAgICAgICAgICAgID48ZmEtaWNvbiAuc3ZnPSIkeyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0zMzkgMzE0LjlMMTc1LjQgMzJoMTYxLjJsMTYzLjYgMjgyLjlIMzM5em0tMTM3LjUgMjMuNkwxMjAuOSA0ODBoMzEwLjVMNTEyIDMzOC41SDIwMS41ek0xNTQuMSA2Ny40TDAgMzM4LjUgODAuNiA0ODAgMjM3IDIwOC44IDE1NC4xIDY3LjR6Ii8+PC9zdmc+J30iPjwvZmEtaWNvbgogICAgICAgICAgICA+PC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5BdXRob3JpemUgR29vZ2xlIERyaXZlPC9zcGFuPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgYH1gfXNjcmlwdCgpe2lmKCJ0cnlwdWJsaWMiPT09dGhpcy5zdGF0ZXx8dGhpcy5zY3JpcHRMb2FkZWQpcmV0dXJuIFFgYDtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3JldHVybiBlLm9ubG9hZD0oKT0+dGhpcy5vbkxvYWQoKSxlLnNyYz0iaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvcGxhdGZvcm0uanMiLGV9Z2F1dGgoZSx0KXtzZWxmLmdhcGkubG9hZCgiYXV0aDIiLCgoKT0+e3NlbGYuZ2FwaS5hdXRoMi5hdXRob3JpemUoe2NsaWVudF9pZDoiMTYwNzk4NDEyMjI3LXRrbzRjODJ1b3B1ZDExcTEwNWIybHZib2dzajc3aGxnLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIixzY29wZToiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kcml2ZS5maWxlIixyZXNwb25zZV90eXBlOiJ0b2tlbiIscHJvbXB0OmV9LHQpfSkpfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLWdkcml2ZSIseW8pO2NvbnN0IHhvPSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48c3R5bGU+XG5Aa2V5ZnJhbWVzIGEwX3QgeyAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTsgfSB9XG48L3N0eWxlPjxwYXRoIGQ9Ik02LjgwNyAxMS4yNDZoLTAuMDAxYy0wLjA3NCAwLTAuMTQ0LTAuMDMzLTAuMTkxLTAuMDljLTAuMDQ3LTAuMDU3LTAuMDY3LTAuMTMxLTAuMDU0LTAuMjA0Yy4zMzgtMS43MzUgMS40ODMtMy4yMDYgMy4wODItMy45NTljLjAzOC0wLjAxOCAuMDgzLTAuMDE1IC4xMTggLjAwOGMuMDM2IC4wMjIgLjA1NyAuMDYxIC4wNTggLjEwM2MuMDAxIC4wMTctMC4wMDMgLjAzNS0wLjAxMSAuMDVjLTAuNDI2IDEuMDM1LTAuNzE5IDIuMzcxLTAuODEgMy44NTZjLTAuMDA3IC4xMzItMC4xMTcgLjIzNi0wLjI0OSAuMjM2Wm03LjM2NC00LjA5MWMtMC4wMTktMC4wNDctMC4wMDgtMC4xMDEgLjAyNy0wLjEzOGMuMDM3LTAuMDM1IC4wOTItMC4wNDUgLjEzOS0wLjAyNWMxLjYgLjc1MyAyLjc0NSAyLjIyNCAzLjA4MSAzLjk2Yy4wMTIgLjA3Mi0wLjAwOCAuMTQ2LTAuMDU1IC4yMDNjLTAuMDQ3IC4wNTYtMC4xMTcgLjA4OS0wLjE5IC4wOWwtMS45NDIgLjAwMWMtMC4xMzIgMC0wLjI0Mi0wLjEwNC0wLjI0OS0wLjIzNmMtMC4wOTEtMS40ODUtMC4zODQtMi44MjEtMC44MTEtMy44NTVtMy4wMDIgNS41OTFjLjA3NCAwIC4xNDQgLjAzMyAuMTkyIC4wODljLjA0NyAuMDU3IC4wNjcgLjEzMiAuMDU0IC4yMDVjLTAuMzM2IDEuNzM2LTEuNDgxIDMuMjA4LTMuMDgyIDMuOTZjLTAuMDQ3IC4wMi0wLjEwMiAuMDEtMC4xMzktMC4wMjVjLTAuMDM1LTAuMDM3LTAuMDQ1LTAuMDkxLTAuMDI2LTAuMTM4Yy40MjYtMS4wMzMgLjcxOS0yLjM2OSAuODEtMy44NTZjLjAwOC0wLjEzMiAuMTE3LTAuMjM1IC4yNDktMC4yMzVabS03LjM2NCA0LjA5MWMuMDA3IC4wMTYgLjAxIC4wMzMgLjAxIC4wNWMtMC4wMDEgLjA0Mi0wLjAyMiAuMDgxLTAuMDU3IC4xMDRjLTAuMDM2IC4wMjMtMC4wOCAuMDI3LTAuMTE5IC4wMWMtMS41OTktMC43NTQtMi43NDQtMi4yMjUtMy4wODEtMy45NjFjLTAuMDEzLTAuMDczIC4wMDctMC4xNDcgLjA1NC0wLjIwNGMuMDQ4LTAuMDU2IC4xMTctMC4wODggLjE5MS0wLjA4OGMuNDk1LTAuMDAyIDEuNDg4LTAuMDAyIDEuOTQyLTAuMDAyYy4xMzIgMCAuMjQxIC4xMDMgLjI0OSAuMjM1Yy4wOTEgMS40ODcgLjM4NCAyLjgyMyAuODExIDMuODU2bS42OTQtMy44MjVjLTAuMDA1LTAuMDY5IC4wMTktMC4xMzYgLjA2Ni0wLjE4N2MuMDQ4LTAuMDUgLjExNC0wLjA3OCAuMTgzLTAuMDc4bDIuNDc3LTAuMDAxYy4xMzggLjAwMSAuMjQ5IC4xMTIgLjI0OSAuMjV2LjAxNmMtMC4xMDcgMS41ODMtMC40NjEgMi45NjItMC45OTcgMy44NzJjLTAuMTExIC4xOTgtMC4yNDkgLjM3NS0wLjQxNCAuNTMxYy0wLjA0NSAuMDM1LTAuMTA5IC4wMzUtMC4xNTQgMGMtMC4xNjQtMC4xNTUtMC4zMDQtMC4zMzQtMC40MTQtMC41MzFjLTAuNTM2LTAuOTEtMC44OS0yLjI4OS0wLjk5Ni0zLjg3Mm0yLjk3NS0yLjAzMnYuMDE2YzAgLjEzOC0wLjExMSAuMjQ5LTAuMjQ5IC4yNWgtMi40NzdjLTAuMTM4IDAtMC4yNS0wLjExMi0wLjI1LTAuMjVsLjAwMS0wLjAxNmMuMTA2LTEuNTgzIC40Ni0yLjk2MSAuOTk2LTMuODcyYy4xMjctMC4yMTQgLjI3Mi0wLjQwOCAuNDE0LTAuNTNjLjA0NS0wLjAzNSAuMTA5LTAuMDM1IC4xNTQgMGMuMTQyIC4xMjIgLjI4OCAuMzE2IC40MTQgLjUzYy41MzYgLjkxMSAuODkgMi4yODkgLjk5NyAzLjg3MiIgZmlsbD0iIzA4OTFiMiIvPjxwYXRoIGQ9Ik0yMy43NzQgMTMuMzMzYy4wOSAuMDUgLjE0IC4xNDkgLjEyOCAuMjVjLTAuNzc4IDUuODc2LTUuODExIDEwLjQxNy0xMS44OTcgMTAuNDE3Yy02LjExNCAwLTExLjE2NS00LjU4MS0xMS45MDctMTAuNDk1bC0wLjAwMS0wLjAyOGMuMDAxLTAuMTM3IC4xMTEtMC4yNDcgLjI0OC0wLjI0OGMuMDQ0IDAgLjA4NyAuMDEyIC4xMjUgLjAzNWMuNTQgLjMxMiAxLjQzOCAuODM1IDEuNzY4IDEuMDI4Yy4wNzggLjA0NSAuMTc0IC4wNDUgLjI1Mi0wLjAwMWwxLjc3Ny0xLjA0NGMuMDcxLTAuMDQyIC4xNTctMC4wNDYgLjIzMS0wLjAxMmMuMDc1IC4wMzUgLjEyOCAuMTAzIC4xNDIgLjE4NGMuNjkxIDMuNTI0IDMuNzc0IDYuMDY5IDcuMzY1IDYuMDgxYzMuNTYzLTAuMDExIDYuNjMtMi41MTggNy4zNTEtNi4wMDdjLjAxNC0wLjA3MyAuMDYxLTAuMTM2IC4xMjYtMC4xNzFsMi4wNDItMS4xMDNjLjA3NS0wLjA0MSAuMTY1LTAuMDQgLjI0IC4wMDFabS0yMy41NDgtMi42NjZjLTAuMDktMC4wNDktMC4xNDEtMC4xNDgtMC4xMjgtMC4yNWMuNzc4LTUuODc2IDUuODExLTEwLjQxNyAxMS44OTctMTAuNDE3YzYuMTE0IDAgMTEuMTY1IDQuNTgxIDExLjkwNyAxMC40OTVsLjAwMSAuMDI4Yy0wLjAwMSAuMTM3LTAuMTExIC4yNDctMC4yNDggLjI0OGMtMC4wNDQgMC0wLjA4Ny0wLjAxMi0wLjEyNS0wLjAzNWMtMC41OS0wLjM0MS0xLjE3OS0wLjY4NC0xLjc2OC0xLjAyOGMtMC4wNzgtMC4wNDUtMC4xNzQtMC4wNDUtMC4yNTIgLjAwMWwtMS43NzcgMS4wNDRjLTAuMDcxIC4wNDItMC4xNTcgLjA0Ni0wLjIzMSAuMDEyYy0wLjA3NS0wLjAzNS0wLjEyOC0wLjEwMy0wLjE0Mi0wLjE4NGMtMC42OTEtMy41MjQtMy43NzQtNi4wNjktNy4zNjUtNi4wODFjLTMuNTYzIC4wMTEtNi42MyAyLjUxOC03LjM1MSA2LjAwN2MtMC4wMTQgLjA3My0wLjA2MSAuMTM2LTAuMTI2IC4xNzFsLTIuMDQyIDEuMTAzYy0wLjA3NSAuMDQxLTAuMTY2IC4wNDEtMC4yNDEtMC4wMDFaIiBmaWxsPSIjNGQ3YzBmIiBzdHlsZT0iYW5pbWF0aW9uOiAzcyBsaW5lYXIgaW5maW5pdGUgYm90aCBhMF90O3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyOyIvPjwvc3ZnPlxuJyxrbz1bImVycm9yZWQiLCJnb29nbGVkcml2ZSIsInBlcm1pc3Npb25fbmVlZGVkIl07Y2xhc3MgU28gZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2FkSW5mbz1udWxsLHRoaXMuc3RhdGU9IndhaXRpbmciLHRoaXMucHJvZ3Jlc3M9MCx0aGlzLnBlcmNlbnQ9MCx0aGlzLmN1cnJlbnRTaXplPTAsdGhpcy50b3RhbFNpemU9MCx0aGlzLnRvdGFsPTAsdGhpcy5jb2xsPSIiLHRoaXMudHJ5RmlsZUhhbmRsZT0hIXdpbmRvdy5zaG93T3BlbkZpbGVQaWNrZXIsdGhpcy5lcnJvckFsbG93UmV0cnk9ITEsdGhpcy5waW5nSW50ZXJ2YWw9MCx0aGlzLmZpbGVIYW5kbGU9bnVsbCx0aGlzLm5vV2ViV29ya2VyPSExfWZpcnN0VXBkYXRlZCgpe3RoaXMuaW5pdE1lc3NhZ2VzKCl9aW5pdE1lc3NhZ2VzKCl7aWYodGhpcy5ub1dlYldvcmtlcj1Cb29sZWFuKHRoaXMubG9hZEluZm8mJnRoaXMubG9hZEluZm8ubm9XZWJXb3JrZXIpLHRoaXMubm9XZWJXb3JrZXIpe2lmKCFuYXZpZ2F0b3Iuc2VydmljZVdvcmtlcilyZXR1cm47dGhpcy53b3JrZXI9bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXJ9ZWxzZSB0aGlzLndvcmtlcj1uZXcgV29ya2VyKHRoaXMuc3dOYW1lKTt0aGlzLndvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZT0+e3ZhciB0O3N3aXRjaChlLmRhdGEubXNnX3R5cGUpe2Nhc2UiY29sbFByb2dyZXNzIjppZihlLmRhdGEubmFtZT09PXRoaXMuY29sbCl7aWYodGhpcy5wZXJjZW50PWUuZGF0YS5wZXJjZW50LGUuZGF0YS5lcnJvcilpZih0aGlzLmVycm9yPWUuZGF0YS5lcnJvcix0aGlzLnN0YXRlPSJlcnJvcmVkIix0aGlzLmVycm9yQWxsb3dSZXRyeT0hMCx0aGlzLmZpbGVIYW5kbGU9ZS5kYXRhLmZpbGVIYW5kbGUsIm1pc3NpbmdfbG9jYWxfZmlsZSI9PT10aGlzLmVycm9yKXRoaXMudHJ5RmlsZUhhbmRsZT0hMTtlbHNlIGlmKCJwZXJtaXNzaW9uX25lZWRlZCI9PT10aGlzLmVycm9yJiZlLmRhdGEuZmlsZUhhbmRsZSl7dGhpcy5zdGF0ZT0icGVybWlzc2lvbl9uZWVkZWQiO2JyZWFrfWUuZGF0YS5jdXJyZW50U2l6ZSYmZS5kYXRhLnRvdGFsU2l6ZSYmKHRoaXMuY3VycmVudFNpemU9ZS5kYXRhLmN1cnJlbnRTaXplLHRoaXMudG90YWxTaXplPWUuZGF0YS50b3RhbFNpemUpLHRoaXMuZXh0cmFNc2c9ZS5kYXRhLmV4dHJhTXNnfWJyZWFrO2Nhc2UiY29sbEFkZGVkIjplLmRhdGEubmFtZT09PXRoaXMuY29sbCYmKHRoaXMudG90YWx8fCh0aGlzLnRvdGFsPTEwMCksdGhpcy5wcm9ncmVzcz10aGlzLnRvdGFsLHRoaXMucGVyY2VudD0xMDAsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC1sb2FkZWQiLHtkZXRhaWw6ZS5kYXRhfSkpLHRoaXMubm9XZWJXb3JrZXI/dGhpcy5waW5nSW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5waW5nSW50ZXJ2YWwpOm51bGw9PT0odD10aGlzLndvcmtlcil8fHZvaWQgMD09PXR8fHQudGVybWluYXRlKCksdGhpcy53b3JrZXI9bnVsbCl9fSkpfWRvTG9hZCgpe3ZhciBlLHQ7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtsZXQgaSxvLG49dGhpcy5zb3VyY2VVcmwscj1udWxsO2lmKHRoaXMucGVyY2VudD10aGlzLmN1cnJlbnRTaXplPXRoaXMudG90YWxTaXplPTAsbnVsbD09PShlPXRoaXMubG9hZEluZm8pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnN3RXJyb3IpcmV0dXJuIHRoaXMuc3RhdGU9ImVycm9yZWQiLHRoaXMuZXJyb3I9dGhpcy5sb2FkSW5mby5zd0Vycm9yLHZvaWQodGhpcy5lcnJvckFsbG93UmV0cnk9ITEpO3RyeXtjb25zdHtzY2hlbWU6ZSxob3N0OmkscGF0aDpvfT0kdChuKTtzd2l0Y2goZSl7Y2FzZSJnb29nbGVkcml2ZSI6dGhpcy5zdGF0ZT0iZ29vZ2xlZHJpdmUiLHI9bnVsbCE9PSh0PXlpZWxkIHRoaXMuZ29vZ2xlZHJpdmVJbml0KCkpJiZ2b2lkIDAhPT10P3Q6bnVsbDticmVhaztjYXNlInMzIjpyPXtzb3VyY2VVcmw6bixsb2FkVXJsOmBodHRwczovLyR7aX0uczMuYW1hem9uYXdzLmNvbSR7b31gLG5hbWU6dGhpcy5zb3VyY2VVcmx9O2JyZWFrO2Nhc2UiZmlsZSI6aWYoIXRoaXMubG9hZEluZm8mJiF0aGlzLnRyeUZpbGVIYW5kbGUpcmV0dXJuIHRoaXMuc3RhdGU9ImVycm9yZWQiLHRoaXMuZXJyb3I9IkZpbGUgVVJMcyBjYW4gbm90IGJlIGVudGVyZWQgZGlyZWN0bHkgb3Igc2hhcmVkLlxuWW91IGNhbiBzZWxlY3QgYSBmaWxlIHRvIHVwbG9hZCBmcm9tIHRoZSBtYWluIHBhZ2UgYnkgY2xpY2tpbmcgdGhlICdDaG9vc2UgRmlsZS4uLicgYnV0dG9uLiIsdm9pZCh0aGlzLmVycm9yQWxsb3dSZXRyeT0hMSk7cj10aGlzLmxvYWRJbmZvO2JyZWFrO2Nhc2UicHJveHkiOm49InByb3h5OiIrbi5zbGljZSg4KX19Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9cnx8KHI9e3NvdXJjZVVybDpufSksdGhpcy5zdGF0ZT0ic3RhcnRlZCIsdGhpcy5sb2FkSW5mbyYmKHIubmV3RnVsbEltcG9ydD10aGlzLmxvYWRJbmZvLm5ld0Z1bGxJbXBvcnQsci5sb2FkRWFnZXI9dGhpcy5sb2FkSW5mby5sb2FkRWFnZXIsci5ub0NhY2hlPXRoaXMubG9hZEluZm8ubm9DYWNoZSx0aGlzLmxvYWRJbmZvLmV4dHJhQ29uZmlnJiYobz10aGlzLmxvYWRJbmZvLmV4dHJhQ29uZmlnKSxuLnN0YXJ0c1dpdGgoInByb3h5OiIpJiYobnVsbD09bz92b2lkIDA6by5yZWNvcmRpbmcpJiYoaT0icmVjb3JkaW5ncHJveHkiKSk7Y29uc3Qgcz17bXNnX3R5cGU6ImFkZENvbGwiLG5hbWU6dGhpcy5jb2xsLGV4dHJhQ29uZmlnOm8sdHlwZTppLHNraXBFeGlzdGluZzohMCxmaWxlOnJ9O3lpZWxkIG90KCksdGhpcy53b3JrZXImJih0aGlzLm5vV2ViV29ya2VyPyhuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKHMpLHRoaXMucGluZ0ludGVydmFsPXNldEludGVydmFsKCgoKT0+e25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2Uoe21zZ190eXBlOiJwaW5nIn0pfSksMTVlMykpOnRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHMpKX0pKX1nb29nbGVkcml2ZUluaXQoKXtyZXR1cm4gdGhpcy5fZ2RXYWl0PW5ldyBQcm9taXNlKChlPT50aGlzLl9nZFJlc29sdmU9ZSkpLHRoaXMuX2dkV2FpdH1vbkxvYWRSZWFkeShlKXt0aGlzLl9nZFJlc29sdmUmJnRoaXMuX2dkUmVzb2x2ZShlLmRldGFpbCl9b25DYW5jZWwoKXt2YXIgZTtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKCF0aGlzLndvcmtlcilyZXR1cm47Y29uc3QgdD17bXNnX3R5cGU6ImNhbmNlbExvYWQiLG5hbWU6dGhpcy5jb2xsfTtpZighdGhpcy5ub1dlYldvcmtlcilyZXR1cm4gdGhpcy53b3JrZXIucG9zdE1lc3NhZ2UodCkseWllbGQgdGhpcy51cGRhdGVDb21wbGV0ZSx2b2lkIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGwtbG9hZC1jYW5jZWwiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpOyhudWxsPT09KGU9bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNvbnRyb2xsZXIpJiYobmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh0KSx0aGlzLnBpbmdJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLnBpbmdJbnRlcnZhbCkpfSkpfXVwZGF0ZWQoZSl7KEJvb2xlYW4odGhpcy5zb3VyY2VVcmwmJmUuaGFzKCJzb3VyY2VVcmwiKSl8fGUuaGFzKCJ0cnlGaWxlSGFuZGxlIikpJiZ0aGlzLmRvTG9hZCgpfXN0YXRpYyBnZXQgc3R5bGVzKCl7cmV0dXJuIE5lKGhgCiAgICAgIDpob3N0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWRpdiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiA0MDBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtbGFiZWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBmb250LXNpemU6IGNhbGMoMS41cmVtIC8gMS41KTsKICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtOwogICAgICB9CgogICAgICAubG9hZGVkLXByb2cgewogICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTsKICAgICAgfQoKICAgICAgLmVycm9yIHsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMmVtOwogICAgICB9CgogICAgICBzZWN0aW9uLmNvbnRhaW5lciB7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICB9CgogICAgICAuZXh0cmEtbXNnIHsKICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgfQogICAgYCl9cmVuZGVyKCl7cmV0dXJuIFFgCiAgICAgIDxzZWN0aW9uIGNsYXNzPSJjb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImlzLWp1c3RpZnktY29udGVudC1jZW50ZXIgaXMtZmxleCI+CiAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICBzaXplPSI1cmVtIgogICAgICAgICAgICBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMXJlbTsiCiAgICAgICAgICAgIC5zdmc9JHtrby5pbmNsdWRlcyh0aGlzLnN0YXRlKT9LZTp4b30KICAgICAgICAgICAgYXJpYS1sYWJlbD0iUmVwbGF5V2ViLnBhZ2UgTG9nbyIKICAgICAgICAgICAgcm9sZT0iaW1nIgogICAgICAgICAgPjwvZmEtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZW1iZWQ/IiI6UWAgPGRpdiBjbGFzcz0ibGV2ZWwiPgogICAgICAgICAgICAgIDxwIGNsYXNzPSJsZXZlbC1pdGVtIj5Mb2FkaW5nJm5ic3A7PGI+JHt0aGlzLnNvdXJjZVVybH08L2I+Li4uPC9wPgogICAgICAgICAgICA8L2Rpdj5gfQogICAgICAgIDxkaXYgY2xhc3M9ImxldmVsIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxldmVsLWl0ZW0gaGFzLXRleHQtY2VudGVyZWQiPgogICAgICAgICAgICAke3RoaXMucmVuZGVyQ29udGVudCgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIGB9cmVuZGVyQ29udGVudCgpe3N3aXRjaCh0aGlzLnN0YXRlKXtjYXNlImdvb2dsZWRyaXZlIjpyZXR1cm4gUWA8d3ItZ2RyaXZlCiAgICAgICAgICAuc291cmNlVXJsPSR7dGhpcy5zb3VyY2VVcmx9CiAgICAgICAgICBAbG9hZC1yZWFkeT0ke3RoaXMub25Mb2FkUmVhZHl9CiAgICAgICAgPjwvd3ItZ2RyaXZlPmA7Y2FzZSJzdGFydGVkIjpyZXR1cm4gUWAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtZGl2Ij4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U2l6ZT90aGlzLnJlbmRlclByb2dyZXNzQmFyKCk6WH0KICAgICAgICAgICR7dGhpcy5lbWJlZD8iIjpRYCA8YnV0dG9uIEBjbGljaz0iJHt0aGlzLm9uQ2FuY2VsfSIgY2xhc3M9ImJ1dHRvbiBpcy1kYW5nZXIiPgogICAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgICAgPC9idXR0b24+YH0KICAgICAgICA8L2Rpdj5gO2Nhc2UiZXJyb3JlZCI6cmV0dXJuIFFgIDxkaXYgY2xhc3M9Imhhcy10ZXh0LWxlZnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3IgaGFzLXRleHQtZGFuZ2VyIj4ke3RoaXMuZXJyb3J9PC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAke3RoaXMuZXJyb3JBbGxvd1JldHJ5P1FgIDxhCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJidXR0b24gaXMtd2FybmluZyIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PndpbmRvdy5wYXJlbnQubG9jYXRpb24ucmVsb2FkKCl9CiAgICAgICAgICAgICAgICAgID5UcnkgQWdhaW48L2EKICAgICAgICAgICAgICAgID5gOiIifQogICAgICAgICAgICAke3RoaXMuZW1iZWQ/UWBgOlFgIDxhIGhyZWY9Ii8iIGNsYXNzPSJidXR0b24gaXMtd2FybmluZyI+QmFjazwvYT5gfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+YDtjYXNlInBlcm1pc3Npb25fbmVlZGVkIjpyZXR1cm4gUWAgPGRpdiBjbGFzcz0iaGFzLXRleHQtbGVmdCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSIiPgogICAgICAgICAgICBQZXJtaXNzaW9uIGlzIG5lZWRlZCB0byByZWxvYWQgdGhlIGFyY2hpdmUgZmlsZS4gKENsaWNrCiAgICAgICAgICAgIDxpPkNhbmNlbDwvaT4gdG8gY2FuY2VsIGxvYWRpbmcgdGhpcyBhcmNoaXZlLikKICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9IiR7dGhpcy5vbkFza1Blcm1pc3Npb259IiBjbGFzcz0iYnV0dG9uIGlzLXByaW1hcnkiPgogICAgICAgICAgICBTaG93IFBlcm1pc3Npb24KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9ImJ1dHRvbiBpcy1kYW5nZXIiPkNhbmNlbDwvYT4KICAgICAgICA8L2Rpdj5gO2RlZmF1bHQ6cmV0dXJuIFFgYH19cmVuZGVyUHJvZ3Jlc3NCYXIoKXtjb25zdCBlPXRoaXMuY3VycmVudFNpemUmJnRoaXMudG90YWxTaXplP01hdGgubWF4KHRoaXMucGVyY2VudCx0aGlzLmN1cnJlbnRTaXplL3RoaXMudG90YWxTaXplKjEwMCk6dGhpcy5wZXJjZW50LHQ9ZT9NYXRoLm1heChlLDEpOnZvaWQgMDtyZXR1cm4gUWAKICAgICAgPHByb2dyZXNzCiAgICAgICAgaWQ9InByb2dyZXNzIgogICAgICAgIGNsYXNzPSJwcm9ncmVzcyBpcy1wcmltYXJ5IGlzLWxhcmdlIgogICAgICAgIHZhbHVlPSR7JGUodCl9CiAgICAgICAgbWF4PSIxMDAiCiAgICAgID48L3Byb2dyZXNzPgogICAgICAke3Q/UWAKICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJwcm9ncmVzcy1sYWJlbCIgZm9yPSJwcm9ncmVzcyIKICAgICAgICAgICAgICA+JHt0fSU8L2xhYmVsCiAgICAgICAgICAgID4KICAgICAgICAgIGA6WH0KICAgICAgJHt0aGlzLmN1cnJlbnRTaXplJiZ0aGlzLnRvdGFsU2l6ZT9RYCA8ZGl2IGNsYXNzPSJsb2FkZWQtcHJvZyI+CiAgICAgICAgICAgIExvYWRlZAogICAgICAgICAgICA8Yj4ke0V0KCkodGhpcy5jdXJyZW50U2l6ZSl9PC9iPgogICAgICAgICAgICBvZgoKICAgICAgICAgICAgPGI+JHtFdCgpKHRoaXMudG90YWxTaXplKX08L2I+CgogICAgICAgICAgICAke3RoaXMuZXh0cmFNc2cmJlFgIDxwIGNsYXNzPSJleHRyYS1tc2ciPigke3RoaXMuZXh0cmFNc2d9KTwvcD4gYH0KICAgICAgICAgIDwvZGl2PmA6UWBgfQogICAgYH1vbkFza1Blcm1pc3Npb24oKXt2YXIgZTtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpeyJncmFudGVkIj09PSh5aWVsZCBudWxsPT09KGU9dGhpcy5maWxlSGFuZGxlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5yZXF1ZXN0UGVybWlzc2lvbih7bW9kZToicmVhZCJ9KSkmJnRoaXMuZG9Mb2FkKCl9KSl9fXQoW3llKHt0eXBlOlN0cmluZ30pXSxTby5wcm90b3R5cGUsInNvdXJjZVVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3R9KV0sU28ucHJvdG90eXBlLCJsb2FkSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sU28ucHJvdG90eXBlLCJzdGF0ZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sU28ucHJvdG90eXBlLCJwcm9ncmVzcyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sU28ucHJvdG90eXBlLCJwZXJjZW50Iix2b2lkIDApLHQoW3llKHt0eXBlOk51bWJlcn0pXSxTby5wcm90b3R5cGUsImN1cnJlbnRTaXplIix2b2lkIDApLHQoW3llKHt0eXBlOk51bWJlcn0pXSxTby5wcm90b3R5cGUsInRvdGFsU2l6ZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sU28ucHJvdG90eXBlLCJlcnJvciIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sU28ucHJvdG90eXBlLCJ0b3RhbCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sU28ucHJvdG90eXBlLCJzdGF0dXMiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFNvLnByb3RvdHlwZSwiY29sbCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sU28ucHJvdG90eXBlLCJlbWJlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFNvLnByb3RvdHlwZSwidHJ5RmlsZUhhbmRsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFNvLnByb3RvdHlwZSwiZXJyb3JBbGxvd1JldHJ5Iix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxTby5wcm90b3R5cGUsImV4dHJhTXNnIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxTby5wcm90b3R5cGUsInN3TmFtZSIsdm9pZCAwKSxjdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLWxvYWRlciIsU28pO3ZhciAkbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU2Myksem89X193ZWJwYWNrX3JlcXVpcmVfXy5uKCRvKSxfbz1fX3dlYnBhY2tfcmVxdWlyZV9fKDExMik7Y2xhc3MgQ28gZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5maWx0ZXJlZFBhZ2VzPVtdLHRoaXMuc29ydGVkUGFnZXM9W10sdGhpcy5xdWVyeT0iIix0aGlzLmZsZXg9bnVsbCx0aGlzLnRleHRQYWdlcz1udWxsLHRoaXMubmV3UXVlcnk9bnVsbCx0aGlzLmxvYWRpbmc9ITEsdGhpcy51cGRhdGluZ1NlYXJjaD0hMSx0aGlzLnNob3dBbGxQYWdlcz0hMSx0aGlzLmhhc0V4dHJhUGFnZXM9ITEsdGhpcy5jdXJyTGlzdD0wLHRoaXMuYWN0aXZlPSExLHRoaXMuZWRpdGFibGU9ITEsdGhpcy5jaGFuZ2VOZWVkZWQ9ITEsdGhpcy5zZWxlY3RlZFBhZ2VzPW5ldyBTZXQsdGhpcy5tZW51QWN0aXZlPSExLHRoaXMuc29ydEtleT0iZGF0ZSIsdGhpcy5zb3J0RGVzYz0hMCx0aGlzLmlzU2lkZWJhcj0hMSx0aGlzLnVybD0iIix0aGlzLnRzPSIiLHRoaXMuZWRpdGluZz0hMSx0aGlzLnRvRGVsZXRlUGFnZXM9bnVsbCx0aGlzLnRvRGVsZXRlUGFnZT1udWxsLHRoaXMuY29sbEluZm89bnVsbCx0aGlzLmFsbFNlbGVjdGVkPSExLHRoaXMuZGVmYXVsdEtleT0iIix0aGlzLmR5bmFtaWNQYWdlc1F1ZXJ5PSExLHRoaXMudG90YWxQYWdlcz0wLHRoaXMuZHluYW1pY1BhZ2VDb3VudD0xLHRoaXMuc2tpcFNjcm9sbE1vcmU9ITF9c3RhdGljIGdldCBzb3J0S2V5cygpe3JldHVyblt7a2V5OiIiLG5hbWU6IkJlc3QgTWF0Y2gifSx7a2V5OiJ0aXRsZSIsbmFtZToiVGl0bGUifSx7a2V5OiJkYXRlIixuYW1lOiJEYXRlIn1dfV90aW1lZFVwZGF0ZSgpe251bGwhPT10aGlzLm5ld1F1ZXJ5JiYodGhpcy5xdWVyeT10aGlzLm5ld1F1ZXJ5LHRoaXMubmV3UXVlcnk9bnVsbCx0aGlzLmZpbHRlcigpKX11cGRhdGVkKGUpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoZS5oYXMoImNvbGxJbmZvIik/dGhpcy51cGRhdGVUZXh0U2VhcmNoKCk6KGUuaGFzKCJxdWVyeSIpfHxlLmhhcygiY3Vyckxpc3QiKXx8ZS5oYXMoInNob3dBbGxQYWdlcyIpKSYmdGhpcy5maWx0ZXIoKSxlLmhhcygiYWN0aXZlIikmJnRoaXMuYWN0aXZlJiZ0aGlzLmNoYW5nZU5lZWRlZCYmdGhpcy5maWx0ZXIoKSxlLmhhcygicXVlcnkiKSl7dGhpcy5xdWVyeT8odGhpcy5zb3J0S2V5PSIiLHRoaXMuc29ydERlc2M9ITEpOih0aGlzLnNvcnRLZXk9ImRhdGUiLHRoaXMuc29ydERlc2M9ITApO2NvbnN0IGU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIndyLXNvcnRlciIpO2UmJihlLnNvcnRLZXk9dGhpcy5zb3J0S2V5LGUuc29ydERlc2M9dGhpcy5zb3J0RGVzYyl9aWYoZS5oYXMoInNvcnRlZFBhZ2VzIikmJnRoaXMuaXNTaWRlYmFyKXtjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCIuY3VycmVudCIpO2lmKGUpe2NvbnN0IHQ9e2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifTtzZXRUaW1lb3V0KCgoKT0+ZS5zY3JvbGxJbnRvVmlldyh0KSksMTAwKX19fSkpfW9uQ2hhbmdlUXVlcnkoZSl7dGhpcy5uZXdRdWVyeT1lLmN1cnJlbnRUYXJnZXQudmFsdWUsdGhpcy5faXZhbCYmd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9pdmFsKSx0aGlzLl9pdmFsPXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5fdGltZWRVcGRhdGUoKSksMjUwKX1maWx0ZXIoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKHRoaXMubG9hZGluZylyZXR1cm47aWYodGhpcy5hY3RpdmV8fCh0aGlzLmNoYW5nZU5lZWRlZD0hMCksdGhpcy5sb2FkaW5nPSEwLHRoaXMuZmxleCYmdGhpcy5xdWVyeSYmdGhpcy50ZXh0UGFnZXMpe2NvbnN0IGU9eWllbGQgdGhpcy5mbGV4LnNlYXJjaEFzeW5jKHRoaXMucXVlcnksMjUpO3RoaXMuZmlsdGVyZWRQYWdlcz1lLm1hcCgoZT0+dGhpcy50ZXh0UGFnZXNbZV0pKX1lbHNlIHRoaXMuc2hvd0FsbFBhZ2VzJiZ0aGlzLmhhc0V4dHJhUGFnZXM/dGhpcy5maWx0ZXJlZFBhZ2VzPVsuLi50aGlzLnRleHRQYWdlc106dGhpcy5keW5hbWljUGFnZXNRdWVyeXx8KHRoaXMuZmlsdGVyZWRQYWdlcz1bLi4udGhpcy5jb2xsSW5mby5wYWdlc10pO2lmKHRoaXMudG90YWxQYWdlcz10aGlzLmZpbHRlcmVkUGFnZXMubGVuZ3RoLHRoaXMuZHluYW1pY1BhZ2VzUXVlcnkpe2lmKHRoaXMucXVlcnkpdGhpcy5oYXNFeHRyYVBhZ2VzPSExO2Vsc2V7Y29uc3QgZT10aGlzLmNvbGxJbmZvLnBhZ2VzLmZpbHRlcigoZT0+ZS5pc1NlZWQpKTt0aGlzLmZpbHRlcmVkUGFnZXM9dGhpcy5zaG93QWxsUGFnZXN8fCFlLmxlbmd0aD9bLi4udGhpcy5jb2xsSW5mby5wYWdlc106ZSx0aGlzLmhhc0V4dHJhUGFnZXM9ZS5sZW5ndGg8dGhpcy5jb2xsSW5mby5wYWdlcy5sZW5ndGh9dGhpcy5keW5hbWljUGFnZUNvdW50PTEseWllbGQgdGhpcy5hZGREeW5hbWljUGFnZXMoKX0wIT09dGhpcy5jdXJyTGlzdCYmKHlpZWxkIHRoaXMuZmlsdGVyQ3VyYXRlZCgpKTtmb3IoY29uc3QgZSBvZiB0aGlzLmZpbHRlcmVkUGFnZXMpe2NvbnN0e3RpbWVzdGFtcDp0LGRhdGU6aX09eXQoZSk7aWYobnVsbD09aSl0aHJvdyBuZXcgRXJyb3IoIlBhZ2UgZGF0ZSBpcyBudWxsIik7ZS50aW1lc3RhbXA9dCxlLmRhdGU9aX10aGlzLmxvYWRpbmc9ITEsdGhpcy5jaGFuZ2VOZWVkZWQ9ITE7Y29uc3QgZT17cXVlcnk6dGhpcy5xdWVyeSxjdXJyTGlzdDp0aGlzLmN1cnJMaXN0fTt0aGlzLnNlbmRDaGFuZ2VFdmVudChlKX0pKX1hZGREeW5hbWljUGFnZXMoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtczt0aGlzLnF1ZXJ5JiZlLnNldCgic2VhcmNoIix0aGlzLnF1ZXJ5KSxlLnNldCgicGFnZSIsdGhpcy5keW5hbWljUGFnZUNvdW50KyIiKSxlLnNldCgicGFnZVNpemUiLCIyNSIpO2NvbnN0IHQ9eWllbGQgZmV0Y2goYCR7dGhpcy5jb2xsSW5mby5hcGlQcmVmaXh9L3BhZ2VzPyR7ZS50b1N0cmluZygpfWApLGk9eWllbGQgdC5qc29uKCk7aWYoIWkucGFnZXMpcmV0dXJuO2kucGFnZXMubGVuZ3RofHwodGhpcy5za2lwU2Nyb2xsTW9yZT0hMCk7Y29uc3Qgbz1uZXcgU2V0O3RoaXMuZmlsdGVyZWRQYWdlcy5mb3JFYWNoKChlPT5vLmFkZChlLmlkKSkpO2NvbnN0IG49W107Zm9yKGNvbnN0e2lkOmUsdXJsOnQsdGl0bGU6cixtaW1lOnMsc3RhdHVzOmEsdHM6bCxmYXZJY29uVXJsOmMsd2Fjemhhc2g6ZCxpc1NlZWQ6aH1vZiBpLnBhZ2VzKXtpZihvLmhhcyhlKSljb250aW51ZTtpZighdGhpcy5zaG93QWxsUGFnZXMmJnRoaXMuaGFzRXh0cmFQYWdlcyYmIXRoaXMucXVlcnkmJiFoKWNvbnRpbnVlO2xldCBpO2k9InN0cmluZyI9PXR5cGVvZiBsP25ldyBEYXRlKGwpLmdldFRpbWUoKTpsO2NvbnN0IHU9e2lkOmUsdXJsOnQsdGl0bGU6cixtaW1lOnMsc3RhdHVzOmEsdHM6aSxmYXZJY29uVXJsOmMsd2Fjemhhc2g6ZH07bi5wdXNoKHUpfW4ubGVuZ3RoJiYodGhpcy5maWx0ZXJlZFBhZ2VzPVsuLi50aGlzLmZpbHRlcmVkUGFnZXMsLi4ubl0pLHRoaXMudG90YWxQYWdlcz10aGlzLmZpbHRlcmVkUGFnZXMubGVuZ3RofSkpfWZpbHRlckN1cmF0ZWQoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9eWllbGQgZmV0Y2goYCR7dGhpcy5jb2xsSW5mby5hcGlQcmVmaXh9L2N1cmF0ZWQvJHt0aGlzLmN1cnJMaXN0fWApLHQ9KHlpZWxkIGUuanNvbigpKS5jdXJhdGVkO3RoaXMuZmlsdGVyZWRQYWdlcz10fSkpfXNlbmRDaGFuZ2VFdmVudChlKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsLXRhYi1uYXYiLHtkZXRhaWw6e2RhdGE6ZX19KSl9YWRkUGFnZXMoZSl7dmFyIHQ7Y29uc3QgaT1uZXcgX28uSW5kZXg7cmV0dXJuIHRoaXMuZmxleD1pLHRoaXMudGV4dFBhZ2VzPWUsdGhpcy5keW5hbWljUGFnZXNRdWVyeXx8KHRoaXMuaGFzRXh0cmFQYWdlcz1Cb29sZWFuKHRoaXMudGV4dFBhZ2VzJiYobnVsbD09PSh0PXRoaXMuY29sbEluZm8pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnBhZ2VzKSYmdGhpcy50ZXh0UGFnZXMubGVuZ3RoPnRoaXMuY29sbEluZm8ucGFnZXMubGVuZ3RoKSksdGhpcy5jb2xsSW5mbyYmKHRoaXMuZHluYW1pY1BhZ2VzUXVlcnk9dGhpcy5jb2xsSW5mby5jYW5RdWVyeVBhZ2VzfHwhMSksUHJvbWlzZS5hbGwoZS5tYXAoKChlLHQpPT57bGV0IG89ZS51cmw7cmV0dXJuIGUudGl0bGUmJihvKz0iICIrZS50aXRsZSksZS50ZXh0JiYobys9IiAiK2UudGV4dCksaS5hZGRBc3luYyh0LG8pfSkpKX11cGRhdGVUZXh0U2VhcmNoKCl7dmFyIGUsdCxvLHI7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZih0aGlzLnVwZGF0aW5nU2VhcmNoKXJldHVybjt0aGlzLnVwZGF0aW5nU2VhcmNoPSEwO2xldCBpPTA7dHJ5e2NvbnN0IGM9eWllbGQgY2FjaGVzLm9wZW4oImNhY2hlOiIrdGhpcy5jb2xsSW5mby5jb2xsKSxkPWAke3RoaXMuY29sbEluZm8uYXBpUHJlZml4fS90ZXh0SW5kZXhgO2xldCBoPXlpZWxkIGMubWF0Y2goZCk7aCYmTnVtYmVyKGguaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikpfHwoaD15aWVsZCBmZXRjaChkKSwyMDA9PT1oLnN0YXR1cyYmTnVtYmVyKGguaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIikpJiZjLnB1dChkLGguY2xvbmUoKSkpO2NvbnN0IHU9W107dHJ5e2Zvcih2YXIgcyxhPSEwLGw9bih6bygpKGguYm9keS5nZXRSZWFkZXIoKSkpO3M9eWllbGQgbC5uZXh0KCksIShlPXMuZG9uZSk7YT0hMCl7cj1zLnZhbHVlLGE9ITE7Y29uc3QgZT1yO2UudXJsJiYoZS5pZD0rK2ksdS5wdXNoKGUpKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7YXx8ZXx8IShvPWwucmV0dXJuKXx8KHlpZWxkIG8uY2FsbChsKSl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fXlpZWxkIHRoaXMuYWRkUGFnZXModSl9Y2F0Y2goZSl7Y29uc29sZS53YXJuKGUpfWZpbmFsbHl7MD09PWkmJih5aWVsZCB0aGlzLmFkZFBhZ2VzKHRoaXMuY29sbEluZm8ucGFnZXMpKSx0aGlzLnVwZGF0aW5nU2VhcmNoPSExfXlpZWxkIHRoaXMuZmlsdGVyKCl9KSl9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgOmhvc3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGZsZXg6IDEgMSBhdXRvOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBtaW4td2lkdGg6IDBweDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgZGl2W3JvbGU9Im1haW4iXSwKICAgICAgI2NvbnRlbnRzIGRpdltyb2xlPSJjb21wbGVtZW50YXJ5Il0gewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1haW4uY29sdW1ucyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAganVzdGlmeS1zZWxmOiBzdHJldGNoOwogICAgICAgIG1pbi1oZWlnaHQ6IDBweDsKICAgICAgICBtYXJnaW46IDBweDsKICAgICAgfQoKICAgICAgLmhlYWRlci5jb2x1bW5zIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7CiAgICAgIH0KICAgICAgLmhlYWRlciBhIHsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgLmNvbHVtbi5wYWdldGl0bGUgewogICAgICAgIHBhZGRpbmctbGVmdDogMC4yNWVtOwogICAgICB9CgogICAgICAuY29sdW1uLm1haW4tY29udGVudCB7CiAgICAgICAgbWluLWhlaWdodDogMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgbWFyZ2luLXRvcDogMC41ZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTsKICAgICAgfQoKICAgICAgLnRodW1ibmFpbCB7CiAgICAgICAgd2lkdGg6IDZyZW07CiAgICAgICAgZmxleDogMCAwIGF1dG87CiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7CiAgICAgIH0KCiAgICAgIC5pbmRleC1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCByZ2IoMjM3LCAyMzcsIDIzNyk7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5kZXgtYmFyLWxhYmVsIHsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtZm9udC1zaXplLXgtc21hbGwpOwogICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1zZW1pYm9sZCk7CiAgICAgICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNTAwKTsKICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zbC1zcGFjaW5nLTJ4LXNtYWxsKTsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQoKICAgICAgLmluZGV4LWJhci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbGFyZ2UpOwogICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1zZW1pYm9sZCk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2wtc3BhY2luZy1sYXJnZSk7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLmluZGV4LWJhci10aXRsZTpob3ZlciArIC5lZGl0SWNvbiB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5lZGl0SWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICB0b3A6IDhweDsKICAgICAgfQoKICAgICAgLmluZGV4LWJhci1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICAgICAgcGFkZGluZy1yaWdodDogMC43NWVtOwogICAgICB9CgogICAgICAuaW5kZXgtYmFyLW1lbnUgewogICAgICAgIG1hcmdpbi10b3A6IDFyZW07CiAgICAgIH0KCiAgICAgICNmaWx0ZXItbGFiZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsKICAgICAgfQoKICAgICAgLm51bS1yZXN1bHRzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICBsaW5lLWhlaWdodDogMi41OwogICAgICB9CgogICAgICAuYXNjOmFmdGVyIHsKICAgICAgICBjb250ZW50OiAi4pa8IjsKICAgICAgICBmb250LXNpemU6IDAuNzVlbTsKICAgICAgfQogICAgICAuZGVzYzphZnRlciB7CiAgICAgICAgY29udGVudDogIuKWsiI7CiAgICAgICAgZm9udC1zaXplOiAwLjc1ZW07CiAgICAgIH0KCiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7CiAgICAgICAgLm1haW4uY29sdW1ucyB7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KICAgICAgICAuaW5kZXgtYmFyLW1lbnUgewogICAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICR7Q28uc2lkZWJhclN0eWxlcygpfQogICAgICB9CgogICAgICAke0NvLnNpZGViYXJTdHlsZXMoZGA6aG9zdCguc2lkZWJhcilgKX0KCiAgICAgIC5tb2JpbGUtbGlzdHMgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuY29sdW1ucy5pcy1oaWRkZW4tbW9iaWxlLAogICAgICA6aG9zdCguc2lkZWJhcikgLmlzLWhpZGRlbi1tb2JpbGUgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgOmhvc3QoLnNpZGViYXIpIC5tb2JpbGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuY29sdW1ucyB7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuc2Nyb2xsZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiBhdXRvOwoKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtOwogICAgICAgIG1pbi1oZWlnaHQ6IDBweDsKICAgICAgfQoKICAgICAgLnBhZ2UtZW50cnkgewogICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNywgMjQzLCAyNTUpOwogICAgICB9CgogICAgICAuaXMtZGlzYWJsZWQgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDAuNjU7CiAgICAgIH0KCiAgICAgIC5wYWdlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiBmaXQtY29udGVudDsKCiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtOwogICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCByZ2IoMjM3LCAyMzcsIDIzNyk7CiAgICAgIH0KCiAgICAgIC5jaGVjay1zZWxlY3QgewogICAgICAgIHBhZGRpbmc6IDAgMWVtIDAgMC41ZW07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYmFyIHsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC5mbGV4LWF1dG8gewogICAgICAgIGZsZXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5pbmRleC1iYXItZGVzY3JpcHRpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXNsLWxpbmUtaGVpZ2h0LW5vcm1hbCk7CiAgICAgICAgZmxleDogMSAxIGF1dG87CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXNsLXBhbmVsLWJvcmRlci1jb2xvcik7CiAgICAgIH0KICAgIGApfXN0YXRpYyBzaWRlYmFyU3R5bGVzKGU9aGBgKXtyZXR1cm4gaGAKICAgICAgJHtlfSAubWFpbi5jb2x1bW5zIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWF4LWhlaWdodDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgICR7ZX0gLmluZGV4LWJhci1tZW51IHsKICAgICAgICBtYXgtaGVpZ2h0OiA3NXB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWFyZ2luLXRvcDogMC43NWVtOwogICAgICB9CgogICAgICAke2V9IC5jb2x1bW4ubWFpbi1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKCiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgIH0KCiAgICAgICR7ZX0gLm1vYmlsZS1oZWFkZXIgewogICAgICAgIG1hcmdpbjogMC41cmVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDsKICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAke2V9IC5tZW51IHsKICAgICAgICBmb250LXNpemU6IDAuOHJlbTsKICAgICAgfQogICAgYH1vblNlbGVjdExpc3QoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY3Vyckxpc3Q9TnVtYmVyKGUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtbGlzdCIpKX1vblNlbGVjdExpc3REcm9wKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmN1cnJMaXN0PU51bWJlcihlLmN1cnJlbnRUYXJnZXQudmFsdWUpfXJlbmRlcigpe2NvbnN0IGU9dGhpcy5jdXJyTGlzdDtyZXR1cm4gUWAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJpcy1zci1vbmx5IgogICAgICAgIHJvbGU9ImhlYWRpbmciCiAgICAgICAgYXJpYS1sZXZlbD0iJHt0aGlzLmlzU2lkZWJhcj8iMiI6IjEifSIKICAgICAgPgogICAgICAgIFBhZ2VzIGluICR7dGhpcy5jb2xsSW5mby50aXRsZX0KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1iYXIgbm90aWZpY2F0aW9uIGlzLW1hcmdpbmxlc3MiPgogICAgICAgICR7dGhpcy5pc1NpZGViYXI/UWA8aDMgY2xhc3M9ImlzLXNyLW9ubHkiPlNlYXJjaCBhbmQgRmlsdGVyIFBhZ2VzPC9oMz5gOiIifQogICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIGZsZXgtYXV0byI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJjb250cm9sIGhhcy1pY29ucy1sZWZ0ICR7dGhpcy5sb2FkaW5nPyJpcy1sb2FkaW5nIjoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgIGNsYXNzPSJpbnB1dCIKICAgICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy5vbkNoYW5nZVF1ZXJ5fSIKICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5xdWVyeX0iCiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGJ5IFBhZ2UgVVJMLCBUaXRsZSwgb3IgVGV4dCIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gaXMtbGVmdCIKICAgICAgICAgICAgICA+PGZhLWljb24gLnN2Zz0iJHtJaX0iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2ZhLWljb24KICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbiBjb2x1bW5zIj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iY29sdW1uIGluZGV4LWJhciBpcy1vbmUtZmlmdGggJHt0aGlzLmlzU2lkZWJhcj8iaXMtaGlkZGVuLW1vYmlsZSI6IiJ9IgogICAgICAgID4KICAgICAgICAgICR7dGhpcy5lZGl0YWJsZSYmdGhpcy5lZGl0aW5nP1FgCiAgICAgICAgICAgICAgICA8Zm9ybSBAc3VibWl0PSIke3RoaXMub25VcGRhdGVUaXRsZX0iPgogICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICBpZD0idGl0bGVFZGl0IgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpbnB1dCIKICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iJHskZSh0aGlzLmNvbGxJbmZvLnRpdGxlKX0iCiAgICAgICAgICAgICAgICAgICAgQGJsdXI9IiR7dGhpcy5vblVwZGF0ZVRpdGxlfSIKICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICBgOlFgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9ImluZGV4LWJhci1sYWJlbCAke3RoaXMuY29sbEluZm8uZGVzY3JpcHRpb24/ImlzLWhpZGRlbi1tb2JpbGUiOiJpcy1zci1vbmx5In0iCiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIENvbGxlY3Rpb24gTmFtZQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJpbmRleC1iYXItdGl0bGUiCiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0iJHsoKT0+dGhpcy5lZGl0aW5nPSEwfSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmNvbGxJbmZvLm5hbWV8fHRoaXMuY29sbEluZm8udGl0bGV9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy5jb2xsSW5mby5kZXNjcmlwdGlvbj9RYCA8ZGl2IGNsYXNzPSJpbmRleC1iYXItbGFiZWwgIGlzLWhpZGRlbi1tb2JpbGUiPgogICAgICAgICAgICAgICAgICAgICAgICBBYm91dCBUaGlzIENvbGxlY3Rpb24KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaW5kZXgtYmFyLWRlc2NyaXB0aW9uICBpcy1oaWRkZW4tbW9iaWxlIgogICAgICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9IiR7KCk9PnRoaXMuZWRpdGluZz0hMH0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDx3ci1jb2xsLWRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9JHt0aGlzLmNvbGxJbmZvLmRlc2NyaXB0aW9ufQogICAgICAgICAgICAgICAgICAgICAgICA+PC93ci1jb2xsLWRlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDpRYGB9YH0KICAgICAgICAgICR7dGhpcy5lZGl0YWJsZT9RYDxmYS1pY29uIGNsYXNzPSJlZGl0SWNvbiIgLnN2Zz0iJHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1NzYgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNNDAyLjYgODMuMmw5MC4yIDkwLjJjMy44IDMuOCAzLjggMTAgMCAxMy44TDI3NC40IDQwNS42bC05Mi44IDEwLjNjLTEyLjQgMS40LTIyLjktOS4xLTIxLjUtMjEuNWwxMC4zLTkyLjhMMzg4LjggODMuMmMzLjgtMy44IDEwLTMuOCAxMy44IDB6bTE2Mi0yMi45bC00OC44LTQ4LjhjLTE1LjItMTUuMi0zOS45LTE1LjItNTUuMiAwbC0zNS40IDM1LjRjLTMuOCAzLjgtMy44IDEwIDAgMTMuOGw5MC4yIDkwLjJjMy44IDMuOCAxMCAzLjggMTMuOCAwbDM1LjQtMzUuNGMxNS4yLTE1LjMgMTUuMi00MCAwLTU1LjJ6TTM4NCAzNDYuMlY0NDhINjRWMTI4aDIyOS44YzMuMiAwIDYuMi0xLjMgOC41LTMuNWw0MC00MGM3LjYtNy42IDIuMi0yMC41LTguNS0yMC41SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA2LjJjMC0xMC43LTEyLjktMTYtMjAuNS04LjVsLTQwIDQwYy0yLjIgMi4zLTMuNSA1LjMtMy41IDguNXoiLz48L3N2Zz4nfSI+PC9mYS1pY29uPmA6UWBgfQogICAgICAgICAgJHt0aGlzLmhhc0V4dHJhUGFnZXM/UWAgPHNwYW4gY2xhc3M9ImNoZWNrLXNlbGVjdCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNoZWNrYm94Ij4KICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke2U9PnRoaXMuc2hvd0FsbFBhZ2VzPWUuY3VycmVudFRhcmdldC5jaGVja2VkfQogICAgICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgICAgIC5jaGVja2VkPSIke3RoaXMuc2hvd0FsbFBhZ2VzfSIKICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgU2hvdyBOb24tU2VlZCBQYWdlcwogICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICA8L3NwYW4+YDoiIn0KCiAgICAgICAgICA8c3BhbgogICAgICAgICAgICBjbGFzcz0ibnVtLXJlc3VsdHMgaXMtaGlkZGVuLW1vYmlsZSIKICAgICAgICAgICAgYXJpYS1saXZlPSJwb2xpdGUiCiAgICAgICAgICAgIGFyaWEtYXRvbWljPSJ0cnVlIgogICAgICAgICAgICA+JHt0aGlzLmZvcm1hdFJlc3VsdHMoKX08L3NwYW4KICAgICAgICAgID4KICAgICAgICAgICR7dGhpcy5lZGl0YWJsZT9RYCA8ZGl2IGNsYXNzPSJpbmRleC1iYXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyRG93bmxvYWRNZW51KCl9CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5jb2xsSW5mby5saXN0cy5sZW5ndGg/UWAKICAgICAgICAgICAgICAgIDxwIGlkPSJmaWx0ZXItbGFiZWwiIGNsYXNzPSJtZW51LWxhYmVsIj5GaWx0ZXIgQnkgTGlzdDo8L3A+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmRleC1iYXItbWVudSBtZW51Ij4KICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJtZW51LWxpc3QiPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9IiNsaXN0LTAiCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbGlzdD0iMCIKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7MD09PWU/ImlzLWFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9uU2VsZWN0TGlzdH0KICAgICAgICAgICAgICAgICAgICAgICAgPjxpPkFsbCBQYWdlczwvaT48L2EKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5jb2xsSW5mby5saXN0cy5tYXAoKHQ9PlFgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5vblNlbGVjdExpc3R9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPSIjbGlzdC0ke3QuaWR9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1saXN0PSIke3QuaWR9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7ZT09PXQuaWQ/ImlzLWFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPiR7dC50aXRsZX08L2EKICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+YCkpfQogICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4gbWFpbi1jb250ZW50Ij4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9ImlzLXNyLW9ubHkiCiAgICAgICAgICAgIHJvbGU9ImhlYWRpbmciCiAgICAgICAgICAgIGFyaWEtbGV2ZWw9IiR7dGhpcy5pc1NpZGViYXI/IjMiOiIyIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIFBhZ2UgTGlzdAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuZGVyUGFnZXMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5yZW5kZXJEZWxldGVNb2RhbCgpfQogICAgYH1yZW5kZXJEb3dubG9hZE1lbnUoKXtyZXR1cm4gUWAgPGRpdiBjbGFzcz0iZHJvcGRvd24gJHt0aGlzLm1lbnVBY3RpdmU/ImlzLWFjdGl2ZSI6IiJ9Ij4KICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24tdHJpZ2dlciI+CiAgICAgICAgPGJ1dHRvbgogICAgICAgICAgQGNsaWNrPSIke3RoaXMub25NZW51fSIKICAgICAgICAgIGNsYXNzPSJidXR0b24gaXMtc21hbGwiCiAgICAgICAgICBhcmlhLWhhc3BvcHVwPSJ0cnVlIgogICAgICAgICAgYXJpYS1leHBhbmRlZD0iJHt0aGlzLm1lbnVBY3RpdmV9IgogICAgICAgICAgYXJpYS1jb250cm9scz0iZHJvcGRvd24tbWVudSIKICAgICAgICA+CiAgICAgICAgICA8c3Bhbj5Eb3dubG9hZDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGlzLXNtYWxsIj4KICAgICAgICAgICAgPGZhLWljb24gLnN2Zz0iJHsnPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgNTEyIj5ceDNjIS0tIEZvbnQgQXdlc29tZSBGcmVlIDUuMTUuNCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbSBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZS9mcmVlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKSAtLVx4M2U8cGF0aCBkPSJNMTQzIDM1Mi4zTDcgMjE2LjNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDIyLjYtMjIuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw5Ni40IDk2LjQgOTYuNC05Ni40YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjYgMjIuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTM2IDEzNmMtOS4yIDkuNC0yNC40IDkuNC0zMy44IDB6Ii8+PC9zdmc+J30iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2ZhLWljb24+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93bi1tZW51IiBpZD0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZHJvcGRvd24tY29udGVudCI+CiAgICAgICAgICA8YQogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgIEBjbGljaz0iJHtlPT50aGlzLm9uRG93bmxvYWQoZSwid2FjeiIpfSIKICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iCiAgICAgICAgICA+CiAgICAgICAgICAgIERvd25sb2FkICR7MD09PXRoaXMuc2VsZWN0ZWRQYWdlcy5zaXplPyJBbGwiOiJTZWxlY3RlZCJ9IGFzCiAgICAgICAgICAgIFdBQ1ogKFdlYiBBcmNoaXZlIENvbGxlY3Rpb24gWmlwKQogICAgICAgICAgPC9hPgogICAgICAgICAgPGEKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBocmVmPSIjIgogICAgICAgICAgICBAY2xpY2s9IiR7ZT0+dGhpcy5vbkRvd25sb2FkKGUsIndhcmMiKX0iCiAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgIGNsYXNzPSJkcm9wZG93bi1pdGVtIgogICAgICAgICAgPgogICAgICAgICAgICBEb3dubG9hZCAkezA9PT10aGlzLnNlbGVjdGVkUGFnZXMuc2l6ZT8iQWxsIjoiU2VsZWN0ZWQifSBhcwogICAgICAgICAgICBXQVJDIDEuMSBPbmx5CiAgICAgICAgICA8L2E+CiAgICAgICAgICA8YQogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgIEBjbGljaz0iJHtlPT50aGlzLm9uRG93bmxvYWQoZSwid2FyYzEuMCIpfSIKICAgICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0iCiAgICAgICAgICA+CiAgICAgICAgICAgIERvd25sb2FkICR7MD09PXRoaXMuc2VsZWN0ZWRQYWdlcy5zaXplPyJBbGwiOiJTZWxlY3RlZCJ9IGFzCiAgICAgICAgICAgIFdBUkMgMS4wIE9ubHkKICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj5gfXJlbmRlclBhZ2VIZWFkZXIoKXtyZXR1cm4gUWAKICAgICAgJHshdGhpcy5pc1NpZGViYXImJnRoaXMuZWRpdGFibGUmJnRoaXMuZmlsdGVyZWRQYWdlcy5sZW5ndGg/UWAgPGRpdiBjbGFzcz0iY2hlY2stc2VsZWN0Ij4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjaGVja2JveCI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5vblNlbGVjdEFsbH0KICAgICAgICAgICAgICAgIHR5cGU9ImNoZWNrYm94IgogICAgICAgICAgICAgICAgLmNoZWNrZWQ9IiR7dGhpcy5hbGxTZWxlY3RlZH0iCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDwvZGl2PmA6UWBgfQoKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIGNvbHVtbnMgaXMtaGlkZGVuLW1vYmlsZSI+CiAgICAgICAgJHt0aGlzLnF1ZXJ5P1FgIDxhCiAgICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25Tb3J0fSIKICAgICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICAgIGRhdGEta2V5PSIiCiAgICAgICAgICAgICAgY2xhc3M9ImNvbHVtbiBpcy0xICR7IiI9PT10aGlzLnNvcnRLZXk/dGhpcy5zb3J0RGVzYz8iZGVzYyI6ImFzYyI6IiJ9IgogICAgICAgICAgICAgID5NYXRjaDwvYQogICAgICAgICAgICA+YDoiIn0KCiAgICAgICAgPGEKICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblNvcnR9IgogICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgIGRhdGEta2V5PSJkYXRlIgogICAgICAgICAgY2xhc3M9ImNvbHVtbiBpcy0yICR7ImRhdGUiPT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2M/ImRlc2MiOiJhc2MiOiIifSIKICAgICAgICAgID5EYXRlPC9hCiAgICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbiB0aHVtYm5haWwiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InNyLW9ubHkiPlBhZ2UgdGh1bWJuYWlsIG9yIGZhdmljb248L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGEKICAgICAgICAgIHJvbGU9ImJ1dHRvbiIKICAgICAgICAgIGhyZWY9IiMiCiAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblNvcnR9IgogICAgICAgICAgQGtleXVwPSIke0hlfSIKICAgICAgICAgIGRhdGEta2V5PSJ0aXRsZSIKICAgICAgICAgIGNsYXNzPSJjb2x1bW4gaXMtNiBwYWdldGl0bGUgJHt0aGlzLnF1ZXJ5PyJpcy01IjoiaXMtNiJ9ICR7InRpdGxlIj09PXRoaXMuc29ydEtleT90aGlzLnNvcnREZXNjPyJkZXNjIjoiYXNjIjoiIn0iCiAgICAgICAgICA+UGFnZSBUaXRsZTwvYQogICAgICAgID4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJpcy1oaWRkZW4tdGFibGV0IG1vYmlsZS1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im51bS1yZXN1bHRzIiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1hdG9taWM9InRydWUiPgogICAgICAgICAgJHt0aGlzLmZvcm1hdFJlc3VsdHMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8d3Itc29ydGVyCiAgICAgICAgICBpZD0icGFnZXMiCiAgICAgICAgICAuc29ydEtleT0iJHt0aGlzLnNvcnRLZXl9IgogICAgICAgICAgLnNvcnREZXNjPSIke3RoaXMuc29ydERlc2N9IgogICAgICAgICAgLnNvcnRLZXlzPSIke0NvLnNvcnRLZXlzfSIKICAgICAgICAgIC5kYXRhPSIke3RoaXMuZmlsdGVyZWRQYWdlc30iCiAgICAgICAgICAucGFnZVJlc3VsdHM9IiR7dGhpcy5keW5hbWljUGFnZXNRdWVyeT90aGlzLnRvdGFsUGFnZXM6MTAwfSIKICAgICAgICAgIEBzb3J0LWNoYW5nZWQ9IiR7dGhpcy5vblNvcnRDaGFuZ2VkfSIKICAgICAgICAgIGNsYXNzPSIke3RoaXMuZmlsdGVyZWRQYWdlcy5sZW5ndGg/IiI6ImlzLWhpZGRlbiJ9IgogICAgICAgID4KICAgICAgICA8L3dyLXNvcnRlcj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRlbGV0ZU1vZGFsKCl7cmV0dXJuIHRoaXMudG9EZWxldGVQYWdlcz9RYCA8d3ItbW9kYWwKICAgICAgYmdDbGFzcz0iaGFzLWJhY2tncm91bmQtZ3JleS1saWdodGVyIgogICAgICBAbW9kYWwtY2xvc2VkPSIkeygpPT50aGlzLnRvRGVsZXRlUGFnZXM9dGhpcy50b0RlbGV0ZVBhZ2U9bnVsbH0iCiAgICAgIHRpdGxlPSJDb25maXJtIERlbGV0ZSIKICAgID4KICAgICAgJHt0aGlzLnRvRGVsZXRlUGFnZT9RYCA8cD4KICAgICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgcGFnZQogICAgICAgICAgICA8Yj4ke3RoaXMudG9EZWxldGVQYWdlLnRpdGxlfTwvYj4/IChTaXplOgogICAgICAgICAgICA8Yj4ke0V0KCkodGhpcy50b0RlbGV0ZVBhZ2Uuc2l6ZSl9PC9iPikKICAgICAgICAgIDwvcD5gOlFgCiAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlCiAgICAgICAgICAgICAgPGIKICAgICAgICAgICAgICAgID4ke0FycmF5LmlzQXJyYXkodGhpcy50b0RlbGV0ZVBhZ2VzKT9uZXcgU2V0KHRoaXMudG9EZWxldGVQYWdlKS5zaXplOnRoaXMudG9EZWxldGVQYWdlcy5zaXplfTwvYgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICBzZWxlY3RlZCBwYWdlcz8KICAgICAgICAgICAgPC9wPgogICAgICAgICAgYH0KICAgICAgPHA+VGhpcyBvcGVyYXRpb24gY2FuIG5vdCBiZSB1bmRvbmUuPC9wPgoKICAgICAgPGJ1dHRvbiBAY2xpY2s9IiR7dGhpcy5vbkRlbGV0ZVBhZ2VzfSIgY2xhc3M9ImJ1dHRvbiBpcy1kYW5nZXIiPgogICAgICAgIERlbGV0ZQogICAgICA8L2J1dHRvbj4KICAgICAgPGJ1dHRvbgogICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy50b0RlbGV0ZVBhZ2VzPXRoaXMudG9EZWxldGVQYWdlPW51bGx9IgogICAgICAgIGNsYXNzPSJidXR0b24iCiAgICAgID4KICAgICAgICBDYW5jZWwKICAgICAgPC9idXR0b24+CiAgICA8L3dyLW1vZGFsPmA6UWBgfWlzQ3VyclBhZ2UoZSl7aWYodGhpcy5pc1NpZGViYXImJmUudXJsPT09dGhpcy51cmwpe2xldCB0PWUudGltZXN0YW1wO3JldHVybiF0JiZlLmRhdGU/dD14dChlLmRhdGUpOiJzdHJpbmciPT10eXBlb2YgZS50cyYmKHQ9eHQoZS50cykpLHQ9PT10aGlzLnRzfXJldHVybiExfXJlbmRlclBhZ2VzKCl7cmV0dXJuIFFgCiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIGhhcy10ZXh0LXdlaWdodC1ib2xkIj4KICAgICAgICAke3RoaXMucmVuZGVyUGFnZUhlYWRlcigpfQogICAgICA8L2Rpdj4KICAgICAgPHVsIGNsYXNzPSJzY3JvbGxlciIgQHNjcm9sbD0iJHt0aGlzLm9uU2Nyb2xsfSI+CiAgICAgICAgJHt0aGlzLnNvcnRlZFBhZ2VzLmxlbmd0aD9RYCAke3RoaXMuc29ydGVkUGFnZXMubWFwKCgoZSx0KT0+e2NvbnN0IGk9dGhpcy5zZWxlY3RlZFBhZ2VzLmhhcyhlLmlkKTtyZXR1cm4gUWAgPGxpIGNsYXNzPSJwYWdlLWVudHJ5ICR7aT8ic2VsZWN0ZWQiOiIifSI+CiAgICAgICAgICAgICAgICA8d3ItcGFnZS1lbnRyeQogICAgICAgICAgICAgICAgICAuaW5kZXg9IiR7dGhpcy5xdWVyeXx8dGhpcy5pc1NpZGViYXI/dCsxOjB9IgogICAgICAgICAgICAgICAgICA/ZWRpdGFibGU9IiR7dGhpcy5lZGl0YWJsZX0iCiAgICAgICAgICAgICAgICAgID9zZWxlY3RlZD0iJHtpfSIKICAgICAgICAgICAgICAgICAgP2lzQ3VycmVudD0iJHt0aGlzLmlzQ3VyclBhZ2UoZSl9IgogICAgICAgICAgICAgICAgICA/aXNTaWRlYmFyPSIke3RoaXMuaXNTaWRlYmFyfSIKICAgICAgICAgICAgICAgICAgLnBhZ2U9IiR7ZX0iCiAgICAgICAgICAgICAgICAgIHBpZD0iJHtlLmlkfSIKICAgICAgICAgICAgICAgICAgQHNlbC1wYWdlPSIke3RoaXMub25TZWxlY3RUb2dnbGV9IgogICAgICAgICAgICAgICAgICBAZGVsZXRlLXBhZ2U9IiR7dGhpcy5vbkRlbGV0ZUNvbmZpcm19IgogICAgICAgICAgICAgICAgICByZXBsYXlQcmVmaXg9IiR7dGhpcy5jb2xsSW5mby5yZXBsYXlQcmVmaXh9IgogICAgICAgICAgICAgICAgICBxdWVyeT0iJHt0aGlzLnF1ZXJ5fSIKICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pc1NpZGViYXI/InNpZGViYXIiOiIifSIKICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDwvd3ItcGFnZS1lbnRyeT4KICAgICAgICAgICAgICA8L2xpPmB9KSl9YDpRYDxwIGNsYXNzPSJtb2JpbGUtaGVhZGVyIj4ke3RoaXMuZ2V0Tm9SZXN1bHRzTWVzc2FnZSgpfTwvcD5gfQogICAgICA8L3VsPgogICAgYH1vblVwZGF0ZVRpdGxlKGUpe2lmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLmVkaXRpbmc9ITEsIXRoaXMuZWRpdGFibGUpcmV0dXJuO2NvbnN0IHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIiN0aXRsZUVkaXQiKTtpZighKG51bGw9PXQ/dm9pZCAwOnQudmFsdWUudHJpbSgpKSlyZXR1cm47Y29uc3QgaT10LnZhbHVlLG89SlNPTi5zdHJpbmdpZnkoe3RpdGxlOml9KTtmZXRjaChgJHt0aGlzLmNvbGxJbmZvLmFwaVByZWZpeH0vbWV0YWRhdGFgLHttZXRob2Q6IlBPU1QiLGJvZHk6b30pLnRoZW4oKGU9PnsyMDA9PT1lLnN0YXR1cyYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC11cGRhdGUiLHtkZXRhaWw6e3RpdGxlOml9fSkpfSkpfW9uTWVudShlKXtlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubWVudUFjdGl2ZT0hdGhpcy5tZW51QWN0aXZlLHRoaXMubWVudUFjdGl2ZSYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgoKT0+e3RoaXMubWVudUFjdGl2ZT0hMX0pLHtvbmNlOiEwfSl9b25Tb3J0KGUpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCB0PWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEta2V5Iil8fCIiO3Q9PT10aGlzLnNvcnRLZXk/dGhpcy5zb3J0RGVzYz0hdGhpcy5zb3J0RGVzYzoodGhpcy5zb3J0RGVzYz0hMSx0aGlzLnNvcnRLZXk9dCl9b25Tb3J0Q2hhbmdlZChlKXt0aGlzLnNvcnRlZFBhZ2VzPWUuZGV0YWlsLnNvcnRlZERhdGEsdGhpcy5zb3J0S2V5PWUuZGV0YWlsLnNvcnRLZXksdGhpcy5zb3J0RGVzYz1lLmRldGFpbC5zb3J0RGVzYyx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCgpPT50aGlzLnNraXBTY3JvbGxNb3JlPSExKSl9b25TZWxlY3RUb2dnbGUoZSl7Y29uc3R7cGFnZTp0LHNlbGVjdGVkOml9PWUuZGV0YWlsO2k/dGhpcy5zZWxlY3RlZFBhZ2VzLmFkZCh0KTp0aGlzLnNlbGVjdGVkUGFnZXMuZGVsZXRlKHQpLHRoaXMuYWxsU2VsZWN0ZWQ9dGhpcy5zZWxlY3RlZFBhZ2VzLnNpemU9PT10aGlzLnNvcnRlZFBhZ2VzLmxlbmd0aCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1vblNlbGVjdEFsbChlKXt0aGlzLmFsbFNlbGVjdGVkPWUuY3VycmVudFRhcmdldC5jaGVja2VkLHRoaXMuYWxsU2VsZWN0ZWQ/dGhpcy5zb3J0ZWRQYWdlcy5mb3JFYWNoKChlPT57dGhpcy5zZWxlY3RlZFBhZ2VzLmFkZChlLmlkKX0pKTp0aGlzLnNlbGVjdGVkUGFnZXMuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1vbkRvd25sb2FkKGUsdCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgaT10aGlzLnNlbGVjdGVkUGFnZXMuc2l6ZT4wLG89bmV3IFVSTFNlYXJjaFBhcmFtcztvLnNldCgicGFnZXMiLGk/QXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkUGFnZXMua2V5cygpKS5qb2luKCIsIik6ImFsbCIpLG8uc2V0KCJmb3JtYXQiLHQpLHRoaXMuY29sbEluZm8uZmlsZW5hbWUmJm8uc2V0KCJmaWxlbmFtZSIsdGhpcy5jb2xsSW5mby5maWxlbmFtZSksd2luZG93LmxvY2F0aW9uLmhyZWY9YCR7dGhpcy5jb2xsSW5mby5hcGlQcmVmaXh9L2RsP2Arby50b1N0cmluZygpfSkpfW9uRGVsZXRlQ29uZmlybShlKXtjb25zdCB0PWUuY3VycmVudFRhcmdldC5wYWdlO3RoaXMuc2VsZWN0ZWRQYWdlcy5oYXModC5pZCk/KHRoaXMudG9EZWxldGVQYWdlcz10aGlzLnNlbGVjdGVkUGFnZXMsdGhpcy50b0RlbGV0ZVBhZ2U9bnVsbCk6KHRoaXMudG9EZWxldGVQYWdlcz1bdC5pZF0sdGhpcy50b0RlbGV0ZVBhZ2U9dCl9b25EZWxldGVQYWdlcygpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT17fTtmb3IoY29uc3QgdCBvZiB0aGlzLnRvRGVsZXRlUGFnZXMpe2NvbnN0IGk9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoYHdyLXBhZ2UtZW50cnlbcGlkPSIke3R9Il1gKTtpJiYoaS5kZWxldGluZz0hMCxlW3RdPWkpfWZvcihjb25zdCB0IG9mIHRoaXMudG9EZWxldGVQYWdlcyl7Y29uc3QgaT15aWVsZCBmZXRjaChgJHt0aGlzLmNvbGxJbmZvLmFwaVByZWZpeH0vcGFnZS8ke3R9YCx7bWV0aG9kOiJERUxFVEUifSksbz15aWVsZCBpLmpzb24oKTtpZihvLmVycm9yKXtjb25zb2xlLndhcm4oby5lcnJvcik7Y29udGludWV9Y29uc3Qgbj1lW3RdO2lmKCFuKWNvbnRpbnVlO2NvbnN0IHI9dGhpcy5jb2xsSW5mby5wYWdlcy5pbmRleE9mKG4pO3I8MHx8dGhpcy5jb2xsSW5mby5wYWdlcy5zcGxpY2UociwxKX10aGlzLnRvRGVsZXRlUGFnZXM9bnVsbCx0aGlzLnRvRGVsZXRlUGFnZT1udWxsLHRoaXMudXBkYXRlVGV4dFNlYXJjaCgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfSkpfWZvcm1hdFJlc3VsdHMoKXtjb25zdCBlPXRoaXMudG90YWxQYWdlcztyZXR1cm4gZT09PXRoaXMuc29ydGVkUGFnZXMubGVuZ3RoP2Ake2V9IFBhZ2UkezEhPT1lPyJzIjoiIn1gOmAke3RoaXMuc29ydGVkUGFnZXMubGVuZ3RofSBvZiAke2V9IFBhZ2VzIFNob3duYH1nZXROb1Jlc3VsdHNNZXNzYWdlKCl7dmFyIGU7cmV0dXJuKG51bGw9PT0oZT10aGlzLmNvbGxJbmZvKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wYWdlcy5sZW5ndGgpP3RoaXMudXBkYXRpbmdTZWFyY2g/IkluaXRpYWxpemluZyBTZWFyY2guLi4iOnRoaXMubG9hZGluZz8iU2VhcmNoaW5nLi4uIjp0aGlzLnF1ZXJ5P1FgPHNwYW4gY2xhc3M9ImZpeC10ZXh0LXdyYXBwaW5nIgogICAgICAgID5ObyBtYXRjaGluZyBwYWdlcyBmb3VuZC4gVHJ5IGNoYW5naW5nIHRoZSBzZWFyY2ggcXVlcnksIG9yCiAgICAgICAgPGEgaHJlZj0iI3ZpZXc9cmVzb3VyY2VzIj5icm93c2UgYnkgVVJMPC9hPi48L3NwYW4KICAgICAgPmA6Ik5vIFBhZ2VzIEZvdW5kIjpRYDxzcGFuIGNsYXNzPSJmaXgtdGV4dC13cmFwcGluZyIKICAgICAgICA+Tm8gUGFnZXMgYXJlIGRlZmluZWQgaW4gdGhpcyBhcmNoaXZlLiBUaGUgYXJjaGl2ZSBtYXkgYmUgZW1wdHkuCiAgICAgICAgPGEgaHJlZj0iI3ZpZXc9cmVzb3VyY2VzIj5UcnkgYnJvd3NpbmcgYnkgVVJMPC9hPi48L3NwYW4KICAgICAgPmB9b25TY3JvbGwoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PWUuY3VycmVudFRhcmdldDtpZih0LnNjcm9sbEhlaWdodC10LnNjcm9sbFRvcC10LmNsaWVudEhlaWdodDw0MCYmIXRoaXMuc2tpcFNjcm9sbE1vcmUpe3RoaXMuc2tpcFNjcm9sbE1vcmU9ITAsdGhpcy5keW5hbWljUGFnZXNRdWVyeSYmKHRoaXMuZHluYW1pY1BhZ2VDb3VudCs9MSx5aWVsZCB0aGlzLmFkZER5bmFtaWNQYWdlcygpKTtjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJ3ci1zb3J0ZXIiKTtlJiZlLmdldE1vcmUoMjUpfX0pKX19dChbeWUoe3R5cGU6QXJyYXl9KV0sQ28ucHJvdG90eXBlLCJmaWx0ZXJlZFBhZ2VzIix2b2lkIDApLHQoW3llKHt0eXBlOkFycmF5fSldLENvLnByb3RvdHlwZSwic29ydGVkUGFnZXMiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENvLnByb3RvdHlwZSwicXVlcnkiLHZvaWQgMCksdChbeWUoe2F0dHJpYnV0ZTohMX0pXSxDby5wcm90b3R5cGUsImZsZXgiLHZvaWQgMCksdChbeWUoe2F0dHJpYnV0ZTohMX0pXSxDby5wcm90b3R5cGUsInRleHRQYWdlcyIsdm9pZCAwKSx0KFt5ZSgpXSxDby5wcm90b3R5cGUsIm5ld1F1ZXJ5Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJsb2FkaW5nIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJ1cGRhdGluZ1NlYXJjaCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENvLnByb3RvdHlwZSwic2hvd0FsbFBhZ2VzIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJoYXNFeHRyYVBhZ2VzIix2b2lkIDApLHQoW3llKHt0eXBlOk51bWJlcn0pXSxDby5wcm90b3R5cGUsImN1cnJMaXN0Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJhY3RpdmUiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDby5wcm90b3R5cGUsImVkaXRhYmxlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJjaGFuZ2VOZWVkZWQiLHZvaWQgMCksdChbeWUoe2F0dHJpYnV0ZTohMX0pXSxDby5wcm90b3R5cGUsInNlbGVjdGVkUGFnZXMiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDby5wcm90b3R5cGUsIm1lbnVBY3RpdmUiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENvLnByb3RvdHlwZSwic29ydEtleSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENvLnByb3RvdHlwZSwic29ydERlc2MiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDby5wcm90b3R5cGUsImlzU2lkZWJhciIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sQ28ucHJvdG90eXBlLCJ1cmwiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENvLnByb3RvdHlwZSwidHMiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxDby5wcm90b3R5cGUsImVkaXRpbmciLHZvaWQgMCksdChbeWUoe3R5cGU6QXJyYXl9KV0sQ28ucHJvdG90eXBlLCJ0b0RlbGV0ZVBhZ2VzIix2b2lkIDApLHQoW3llKHt0eXBlOk9iamVjdH0pXSxDby5wcm90b3R5cGUsInRvRGVsZXRlUGFnZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpPYmplY3R9KV0sQ28ucHJvdG90eXBlLCJjb2xsSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENvLnByb3RvdHlwZSwiYWxsU2VsZWN0ZWQiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLENvLnByb3RvdHlwZSwiZGVmYXVsdEtleSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLENvLnByb3RvdHlwZSwiZHluYW1pY1BhZ2VzUXVlcnkiLHZvaWQgMCksdChbeWUoe3R5cGU6TnVtYmVyfSldLENvLnByb3RvdHlwZSwidG90YWxQYWdlcyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sQ28ucHJvdG90eXBlLCJkeW5hbWljUGFnZUNvdW50Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQ28ucHJvdG90eXBlLCJza2lwU2Nyb2xsTW9yZSIsdm9pZCAwKSxjdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLXBhZ2UtdmlldyIsQ28pO2NvbnN0IElvPW5ldyBSZWdFeHAoYFske1siLSIsIlsiLCJdIiwiLyIsInsiLCJ9IiwiKCIsIikiLCIqIiwiKyIsIj8iLCIuIiwiXFwiLCJeIiwiJCIsInwiXS5qb2luKCJcXCIpfV1gLCJnIiksTG89ZT0+ZS5yZXBsYWNlKElvLCJcXCQmIik7Y2xhc3MgRW8gZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm5bImtleXdvcmRzIiwiZGVsaW1pdGVyIl19Z2V0IGtleXdvcmRzKCl7dmFyIGU7cmV0dXJuIG51bGwhPT0oZT10aGlzLmdldEF0dHJpYnV0ZSgia2V5d29yZHMiKSkmJnZvaWQgMCE9PWU/ZToiIn1zZXQga2V5d29yZHMoZSl7dGhpcy5zZXRBdHRyaWJ1dGUoImtleXdvcmRzIixlKX1nZXQgZGVsaW1pdGVyKCl7dmFyIGU7cmV0dXJuIG51bGwhPT0oZT10aGlzLmdldEF0dHJpYnV0ZSgiZGVsaW1pdGVyIikpJiZ2b2lkIDAhPT1lP2U6IiJ9c2V0IGRlbGltaXRlcihlKXt0aGlzLnNldEF0dHJpYnV0ZSgiZGVsaW1pdGVyIixlKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSx0LGkpeyJrZXl3b3JkcyIhPT1lJiYiZGVsaW1pdGVyIiE9PWV8fGkhPT10JiZ0aGlzLl9yZW5kZXIoKX1jb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuX3JlbmRlcigpLHRoaXMuX19vYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcigoKCk9Pnt0aGlzLl9yZW5kZXIoKX0pKSx0aGlzLl9fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLHtjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLl9fb2JzZXJ2ZXImJih0aGlzLl9fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuX19vYnNlcnZlcj12b2lkIDApfV9yZW5kZXIoKXtpZighdGhpcy5zaGFkb3dSb290KXJldHVybjtjb25zdCBlPXRoaXMudGV4dENvbnRlbnR8fCIiLHQ9dGhpcy5nZXRBdHRyaWJ1dGUoImtleXdvcmRzIiksaT10aGlzLmdldEF0dHJpYnV0ZSgiZGVsaW1pdGVyIil8fC9ccysvO2lmKCF0KXJldHVybiB2b2lkKHRoaXMuc2hhZG93Um9vdC50ZXh0Q29udGVudD1lKTtjb25zdCBvPWUudG9Mb3dlckNhc2UoKSxuPXQudG9Mb3dlckNhc2UoKS5zcGxpdChpKS5zb3J0KCgoZSx0KT0+dC5sZW5ndGgtZS5sZW5ndGgpKSxyPW5ldyBSZWdFeHAoYCR7bi5tYXAoTG8pLmpvaW4oInwiKX1gLCJnaSIpLHM9ZS5zcGxpdChyKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2xldCBsPTA7Zm9yKGNvbnN0IHQgb2YgcylpZihhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpKSxsKz10Lmxlbmd0aCxsPG8ubGVuZ3RoKXtjb25zdCB0PW8uc3Vic3RyaW5nKGwpLGk9bi5maW5kKChlPT50LnN0YXJ0c1dpdGgoZSkpKTtpZihpKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1hcmsiKTt0LnRleHRDb250ZW50PWUuc3Vic3RyKGwsaS5sZW5ndGgpLGEuYXBwZW5kQ2hpbGQodCksbCs9aS5sZW5ndGh9fXRoaXMuc2hhZG93Um9vdC5pbm5lckhUTUw9YFxuICAgICAgPHN0eWxlPlxuICAgICAgICBtYXJrIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0ta2V5d29yZC1tYXJrLWNvbG9yKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1rZXl3b3JkLW1hcmstYmFja2dyb3VuZCwgeWVsbG93KTtcbiAgICAgICAgfVxuICAgICAgPC9zdHlsZT5cbiAgICAgICR7YS5pbm5lckhUTUx9XG4gICAgYH19Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJrZXl3b3JkLW1hcmsiLEVvKTtjbGFzcyBBbyBleHRlbmRzIG1le2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnF1ZXJ5PSIiLHRoaXMudGV4dFNuaXBwZXQ9IiIsdGhpcy5wYWdlPW51bGwsdGhpcy5yZXBsYXlQcmVmaXg9IiIsdGhpcy5kZWxldGluZz0hMSx0aGlzLnNlbGVjdGVkPSExLHRoaXMuZWRpdGFibGU9ITEsdGhpcy5pbmRleD0wLHRoaXMuaXNDdXJyZW50PSExLHRoaXMuaXNTaWRlYmFyPSExLHRoaXMudGh1bWJuYWlsVmFsaWQ9ITAsdGhpcy5pY29uVmFsaWQ9ITB9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgOmhvc3QgewogICAgICAgIG1pbi1oZWlnaHQ6IG1pbi1jb250ZW50OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICA6aG9zdCguc2lkZWJhcikgLmNvbHVtbiB7CiAgICAgICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jaGVjay1zZWxlY3QgewogICAgICAgIHBhZGRpbmc6IDAgMWVtIDAgMC41ZW07CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1hcmdpbjogYXV0byAwIGF1dG8gMDsKICAgICAgfQoKICAgICAgLmNvbHVtbnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBPdmVycmlkZSBCdWxtYSB0byBhZGQgdGhlIHRpbmllc3QgbWFyZ2luLCBzbyB0aGUgZm9jdXMgaW5kaWNhdG9yIGlzbid0IG9ic2N1cmVkICovCiAgICAgIC5jb2x1bW5zIHsKICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKC0wLjc1cmVtICsgMnB4KTsKICAgICAgfQogICAgICAuY29sdW1uczpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKC0wLjc1cmVtICsgMnB4KTsKICAgICAgfQoKICAgICAgLmZhdmljb24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207CiAgICAgIH0KCiAgICAgIC5tZWRpYS1sZWZ0IC5mYXZpY29uIHsKICAgICAgICB3aWR0aDogMnJlbTsKICAgICAgICBoZWlnaHQ6IDJyZW07CiAgICAgIH0KICAgICAgLm1lZGlhLWxlZnQgaW1nLmZhdmljb24gewogICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMXB4IDFweCAycHggZ3JleSk7CiAgICAgIH0KCiAgICAgIC5tZWRpYS1jb250ZW50IC5mYXZpY29uIHsKICAgICAgICB3aWR0aDogMS4xNXJlbTsKICAgICAgICBoZWlnaHQ6IDEuMTVyZW07CiAgICAgICAgbWFyZ2luOiAwIDAuMjVyZW07CiAgICAgIH0KCiAgICAgIC5tZWRpYS1sZWZ0IHsKICAgICAgICB3aWR0aDogNnJlbTsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuZGVsZXRlLWJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDEsIDcwLCAxMDQpOwogICAgICB9CgogICAgICAuaXMtbG9hZGluZyB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtOwogICAgICAgIGhlaWdodDogMS41ZW07CiAgICAgICAgYm9yZGVyOiAwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgICB3aWR0aDogYXV0bzsKICAgICAgfQoKICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAke0FvLnNpZGViYXJTdHlsZXMoKX0KICAgICAgfQoKICAgICAgJHtBby5zaWRlYmFyU3R5bGVzKGRgOmhvc3QoLnNpZGViYXIpYCl9CgogICAgICAuY3VycmVudCBhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA3LCAyNDMsIDI1NSk7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuY3VycmVudCAuY3Vyci1wYWdlIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICB9CgogICAgICAuaXMtaW5saW5lLWRhdGUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZWRpYS1jb250ZW50IGEgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuY29sLWRhdGUgewogICAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICAgIH0KICAgIGApfXN0YXRpYyBzaWRlYmFyU3R5bGVzKGU9aGBgKXtyZXR1cm4gaGAKICAgICAgJHtlfSAuY29sLWRhdGUgewogICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI0cHggKyAxcmVtKTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CiAgICAgICR7ZX0gLmNvbC1kYXRlIGRpdiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lOwogICAgICB9CiAgICAgICR7ZX0gLmNvbC1pbmRleCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgICAke2V9IC5jb2x1bW5zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICAgICAgfQogICAgICAke2V9IC5pcy1pbmxpbmUtZGF0ZSB7CiAgICAgICAgZGlzcGxheTogaW5pdGlhbCAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAke2V9IC5tZWRpYS1sZWZ0IHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07CiAgICAgIH0KICAgIGB9dXBkYXRlZChlKXsoZS5oYXMoInBhZ2UiKXx8ZS5oYXMoInF1ZXJ5IikpJiYodGhpcy51cGRhdGVTbmlwcGV0KCksdGhpcy5kZWxldGluZz0hMSl9cmVuZGVyKCl7Y29uc3QgZT10aGlzLnBhZ2Use2RhdGU6dH09eXQoZSksaT0ibnVtYmVyIj09dHlwZW9mIGUuc2l6ZSxvPXRoaXMuZWRpdGFibGUmJiF0aGlzLmlzU2lkZWJhcjtyZXR1cm4gUWAKICAgICAgJHtvP1FgIDxkaXYgY2xhc3M9ImNoZWNrLXNlbGVjdCI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY2hlY2tib3giPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMub25TZW5kU2VsVG9nZ2xlfQogICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICAuY2hlY2tlZD0iJHt0aGlzLnNlbGVjdGVkfSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgPC9kaXY+YDoiIn0KCiAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbnMiPgogICAgICAgICR7dGhpcy5pbmRleD9RYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbiBjb2wtaW5kZXggaXMtMSBpcy1zaXplLTciPiR7dGhpcy5pbmRleH0uPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1uIGNvbC1kYXRlIGlzLTIiPgogICAgICAgICAgPGRpdj4ke3Q/VHQuZm9ybWF0KHQpOiIifTwvZGl2PgogICAgICAgICAgPGRpdj4ke3Q/UHQuZm9ybWF0KHQpOiIifTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYSI+CiAgICAgICAgICAgIDxmaWd1cmUgY2xhc3M9Im1lZGlhLWxlZnQiPiR7dGhpcy5yZW5kZXJQYWdlSWNvbigpfTwvZmlndXJlPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jb250ZW50ICR7dGhpcy5pc0N1cnJlbnQ/ImN1cnJlbnQiOiIifSI+CiAgICAgICAgICAgICAgPGRpdiByb2xlPSJoZWFkaW5nIiBhcmlhLWxldmVsPSIke3RoaXMuaXNTaWRlYmFyPyI0IjoiMyJ9Ij4KICAgICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICAgIEBkYmxjbGljaz0iJHt0aGlzLm9uUmVsb2FkfSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25SZXBsYXl9IgogICAgICAgICAgICAgICAgICBocmVmPSIke2t0KCJwYWdlcyIsdGhpcy5wYWdlLnVybCx0aGlzLnBhZ2UudGltZXN0YW1wLHRoaXMucGFnZS53YWN6aGFzaCl9IgogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaXMtc2l6ZS02IGhhcy10ZXh0LXdlaWdodC1ib2xkIGhhcy10ZXh0LWxpbmsgdGV4dCI+CiAgICAgICAgICAgICAgICAgICAgPGtleXdvcmQtbWFyayBrZXl3b3Jkcz0iJHt0aGlzLnF1ZXJ5fSIKICAgICAgICAgICAgICAgICAgICAgID4ke2UudGl0bGV8fGUudXJsfTwva2V5d29yZC1tYXJrCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJoYXMtdGV4dC1kYXJrIHRleHQiPgogICAgICAgICAgICAgICAgICAgIDxrZXl3b3JkLW1hcmsga2V5d29yZHM9IiR7dGhpcy5xdWVyeX0iCiAgICAgICAgICAgICAgICAgICAgICA+JHtlLnVybH08L2tleXdvcmQtbWFyawogICAgICAgICAgICAgICAgICAgID4ke3RoaXMudGh1bWJuYWlsVmFsaWQ/dGhpcy5yZW5kZXJGYXZpY29uKCk6IiJ9CiAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Imhhcy10ZXh0LWdyZXktZGFyayB0ZXh0IGlzLWlubGluZS1kYXRlIj4KICAgICAgICAgICAgICAgICAgICAke3Q/QXQuZm9ybWF0KHQpOiIifQogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAke3RoaXMudGV4dFNuaXBwZXQ/UWAgPGRpdiBjbGFzcz0idGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICA8a2V5d29yZC1tYXJrIGtleXdvcmRzPSIke3RoaXMucXVlcnl9IgogICAgICAgICAgICAgICAgICAgICAgICA+JHt0aGlzLnRleHRTbmlwcGV0fTwva2V5d29yZC1tYXJrCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDpRYGB9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgJHtpP1FgIDxkaXYgY2xhc3M9Im1lZGlhLXJpZ2h0IiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiAyZW0iPgogICAgICAgICAgICAgICAgICAgICR7RXQoKShlLnNpemUpfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICAke28/UWAgJHt0aGlzLmRlbGV0aW5nP1FgCiAgICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnV0dG9uIGlzLWxvYWRpbmcgZGVsZXRlLWJ1dHRvbiBpcy1zdGF0aWMiCiAgICAgICAgICAgICAgICAgID48L2J1dHRvbj4KICAgICAgICAgICAgICAgIGA6UWAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblNlbmREZWxldGVQYWdlfSIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRlbGV0ZSBkZWxldGUtYnV0dG9uIgogICAgICAgICAgICAgICAgPjwvYnV0dG9uPmB9YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldFJlcGxheVByZWZpeCgpe2NvbnN0IGU9dGhpcy5wYWdlLndhY3poYXNoP2A6JHt0aGlzLnBhZ2Uud2Fjemhhc2h9L2A6IiIsdD10aGlzLnBhZ2UudGltZXN0YW1wfHwiIjtyZXR1cm4gdGhpcy5yZXBsYXlQcmVmaXgrIi8iK2UrdCsiaWRfIn1yZW5kZXJQYWdlSWNvbigpe3JldHVybiB0aGlzLnRodW1ibmFpbFZhbGlkP1FgPGltZwogICAgICBjbGFzcz0idGh1bWJuYWlsIgogICAgICBAZXJyb3I9JHsoKT0+dGhpcy50aHVtYm5haWxWYWxpZD0hMX0KICAgICAgc3JjPSR7YCR7dGhpcy5nZXRSZXBsYXlQcmVmaXgoKX0vdXJuOnRodW1ibmFpbDoke3RoaXMucGFnZS51cmx9YH0KICAgICAgbG9hZGluZz0ibGF6eSIKICAgIC8+YDp0aGlzLnJlbmRlckZhdmljb24oKX1yZW5kZXJGYXZpY29uKCl7aWYodGhpcy5pY29uVmFsaWQmJnRoaXMucGFnZS5mYXZJY29uVXJsKXJldHVybiBRYDxpbWcKICAgICAgY2xhc3M9ImZhdmljb24iCiAgICAgIEBlcnJvcj0keygpPT50aGlzLmljb25WYWxpZD0hMX0KICAgICAgc3JjPSR7YCR7dGhpcy5nZXRSZXBsYXlQcmVmaXgoKX0vJHt0aGlzLnBhZ2UuZmF2SWNvblVybH1gfQogICAgICBsb2FkaW5nPSJsYXp5IgogICAgLz5gfXVwZGF0ZVNuaXBwZXQoKXtjb25zdCBlPXRoaXMudGV4dFNuaXBwZXQ7aWYoIXRoaXMucXVlcnl8fCF0aGlzLnBhZ2UudGV4dClyZXR1cm4gdGhpcy50ZXh0U25pcHBldD1udWxsLHZvaWQgdGhpcy5yZXF1ZXN0VXBkYXRlKCJ0ZXh0U25pcHBldCIsZSk7bGV0IHQ9dGhpcy5wYWdlLnRleHQsaT10aGlzLnF1ZXJ5LG89dC5pbmRleE9mKHRoaXMucXVlcnkpO2lmKG88MCl7Y29uc3Qgbj10LnRvTG93ZXJDYXNlKCkscj1pLnRvTG93ZXJDYXNlKCk7aWYobz1uLmluZGV4T2YociksbzwwKXJldHVybiB0aGlzLnRleHRTbmlwcGV0PW51bGwsdm9pZCB0aGlzLnJlcXVlc3RVcGRhdGUoInRleHRTbmlwcGV0IixlKTt0PW4saT1yfWxldCBuPW87bz1NYXRoLm1heChvLTEwMCwwKSxuPU1hdGgubWluKG4rMjAwLHQubGVuZ3RoKSwwPT09byYmbj09PXQubGVuZ3RoP3RoaXMudGV4dFNuaXBwZXQ9dDp0aGlzLnRleHRTbmlwcGV0PSIuLi4iK3Quc2xpY2UobyxuKSsiLi4uIix0aGlzLnJlcXVlc3RVcGRhdGUoInRleHRTbmlwcGV0IixlKX1vblJlcGxheShlLHQ9ITEpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCBpPXt1cmw6dGhpcy5wYWdlLnVybCx0czp0aGlzLnBhZ2UudGltZXN0YW1wLHdhY3poYXNoOnRoaXMucGFnZS53YWN6aGFzaH07cmV0dXJuIHRoaXMuc2VuZENoYW5nZUV2ZW50KGksdCksITF9b25SZWxvYWQoZSl7cmV0dXJuIHRoaXMub25SZXBsYXkoZSwhMCl9c2VuZENoYW5nZUV2ZW50KGUsdCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC10YWItbmF2Iix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e2RhdGE6ZSxyZWxvYWQ6dH19KSl9b25TZW5kRGVsZXRlUGFnZSgpe2NvbnN0IGU9dGhpcy5wYWdlO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlbGV0ZS1wYWdlIix7ZGV0YWlsOntwYWdlOmV9fSkpfW9uU2VuZFNlbFRvZ2dsZShlKXtjb25zdCB0PXRoaXMucGFnZS5pZCxpPWUuY3VycmVudFRhcmdldC5jaGVja2VkO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbC1wYWdlIix7ZGV0YWlsOntwYWdlOnQsc2VsZWN0ZWQ6aX19KSl9fXQoW3llKHt0eXBlOlN0cmluZ30pXSxBby5wcm90b3R5cGUsInF1ZXJ5Iix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxBby5wcm90b3R5cGUsInRleHRTbmlwcGV0Iix2b2lkIDApLHQoW3llKHt0eXBlOk9iamVjdH0pXSxBby5wcm90b3R5cGUsInBhZ2UiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLEFvLnByb3RvdHlwZSwicmVwbGF5UHJlZml4Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQW8ucHJvdG90eXBlLCJkZWxldGluZyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLEFvLnByb3RvdHlwZSwic2VsZWN0ZWQiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxBby5wcm90b3R5cGUsImVkaXRhYmxlIix2b2lkIDApLHQoW3llKHt0eXBlOk51bWJlcn0pXSxBby5wcm90b3R5cGUsImluZGV4Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sQW8ucHJvdG90eXBlLCJpc0N1cnJlbnQiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxBby5wcm90b3R5cGUsImlzU2lkZWJhciIsdm9pZCAwKSx0KFt4ZSgpXSxBby5wcm90b3R5cGUsInRodW1ibmFpbFZhbGlkIix2b2lkIDApLHQoW3hlKCldLEFvLnByb3RvdHlwZSwiaWNvblZhbGlkIix2b2lkIDApLGN1c3RvbUVsZW1lbnRzLmRlZmluZSgid3ItcGFnZS1lbnRyeSIsQW8pO2NsYXNzIFRvIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29sbEluZm89bnVsbCx0aGlzLnNvdXJjZVVybD1udWxsLHRoaXMudXJsPSIiLHRoaXMudHM9IiIsdGhpcy53YWN6aGFzaD0iIix0aGlzLnJlcGxheVVybD0iIix0aGlzLnJlcGxheVRTPSIiLHRoaXMuYWN0dWFsVFM9IiIsdGhpcy50aXRsZT0iIix0aGlzLmlmcmFtZVVybD1udWxsLHRoaXMuc2hvd0F1dGg9ITEsdGhpcy5yZXBsYXlOb3RGb3VuZEVycm9yPSExLHRoaXMuYXV0aEZpbGVIYW5kbGU9bnVsbCx0aGlzLnJlYXV0aFdhaXQ9bnVsbCx0aGlzLl9sb2FkUG9sbD1udWxsfWZpcnN0VXBkYXRlZCgpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZT0+dGhpcy5vblJlcGxheU1lc3NhZ2UoZSkpKSxuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoZT0+dGhpcy5oYW5kbGVTV01lc3NhZ2UoZSkpKX1oYW5kbGVTV01lc3NhZ2UoZSl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZigiYXV0aG5lZWRlZCI9PT1lLmRhdGEudHlwZSYmdGhpcy5jb2xsSW5mbyYmZS5kYXRhLmNvbGw9PT10aGlzLmNvbGxJbmZvLmNvbGwpe2lmKGUuZGF0YS5maWxlSGFuZGxlKXt0aGlzLmF1dGhGaWxlSGFuZGxlPWUuZGF0YS5maWxlSGFuZGxlO3RyeXtpZigiZ3JhbnRlZCI9PT0oeWllbGQgdGhpcy5hdXRoRmlsZUhhbmRsZS5yZXF1ZXN0UGVybWlzc2lvbih7bW9kZToicmVhZCJ9KSkpcmV0dXJuIHRoaXMuc2hvd0F1dGg9ITEsdGhpcy5yZWF1dGhXYWl0PW51bGwsdm9pZCB0aGlzLnJlZnJlc2goKX1jYXRjaChlKXtjb25zb2xlLndhcm4oZSl9fWVsc2UgdGhpcy5hdXRoRmlsZUhhbmRsZT1udWxsO3RoaXMucmVhdXRoV2FpdD95aWVsZCB0aGlzLnJlYXV0aFdhaXQ6dGhpcy5zaG93QXV0aD0hMH1lbHNlIGUuZGF0YS50eXBlJiZ3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGUuZGF0YSl9KSl9ZG9TZXRJZnJhbWVVcmwoKXt0aGlzLmlmcmFtZVVybD10aGlzLnVybCYmdGhpcy5jb2xsSW5mbz9gJHt0aGlzLmNvbGxJbmZvLnJlcGxheVByZWZpeH0vJHt0aGlzLndhY3poYXNoP2A6JHt0aGlzLndhY3poYXNofS9gOiIifSR7dGhpcy50c3x8IiJ9bXBfLyR7dGhpcy51cmx9YDoiIn11cGRhdGVkKGUpe2lmKChlLmhhcygic291cmNlVXJsIil8fGUuaGFzKCJjb2xsSW5mbyIpKSYmKHRoaXMucmVhdXRoV2FpdD1udWxsKSwhdGhpcy51cmx8fHRoaXMucmVwbGF5VXJsPT10aGlzLnVybCYmdGhpcy5yZXBsYXlUUz09dGhpcy50c3x8IWUuaGFzKCJ1cmwiKSYmIWUuaGFzKCJ0cyIpfHwodGhpcy5yZXBsYXlVcmw9dGhpcy51cmwsdGhpcy5yZXBsYXlUUz10aGlzLnRzLHRoaXMuc2hvd0F1dGg9ITEsdGhpcy5yZWF1dGhXYWl0PW51bGwsdGhpcy5kb1NldElmcmFtZVVybCgpKSx0aGlzLmlmcmFtZVVybCYmZS5oYXMoImlmcmFtZVVybCIpKXt0aGlzLndhaXRGb3JMb2FkKCk7Y29uc3QgZT17dGl0bGU6IkFyY2hpdmVkIFBhZ2UiLHJlcGxheVRpdGxlOiExfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1cGRhdGUtdGl0bGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDplfSkpfWlmKHRoaXMucmVwbGF5VXJsJiZlLmhhcygicmVwbGF5VXJsIil8fHRoaXMucmVwbGF5VFMmJmUuaGFzKCJyZXBsYXlUUyIpKXtjb25zdCBlPXt1cmw6dGhpcy5yZXBsYXlVcmwsdHM6dGhpcy5yZXBsYXlUU307dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC10YWItbmF2Iix7ZGV0YWlsOntyZXBsYWNlTG9jOiEwLGRhdGE6ZSxyZXBsYXlOb3RGb3VuZEVycm9yOnRoaXMucmVwbGF5Tm90Rm91bmRFcnJvcn19KSl9aWYodGhpcy50aXRsZSYmKGUuaGFzKCJ0aXRsZSIpfHxlLmhhcygiYWN0dWFsVFMiKSkpe2NvbnN0IGU9e3RpdGxlOnRoaXMudGl0bGUsdXJsOnRoaXMucmVwbGF5VXJsLHRzOnRoaXMuYWN0dWFsVFMscmVwbGF5VGl0bGU6ITB9O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInVwZGF0ZS10aXRsZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOmV9KSl9fXNldERpc2FibGVQb2ludGVyKGUpe2NvbnN0IHQ9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoImlmcmFtZSIpO3QmJih0LnN0eWxlLnBvaW50ZXJFdmVudHM9ZT8ibm9uZSI6ImFsbCIpfW9uUmVwbGF5TWVzc2FnZShlKXtjb25zdCB0PXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJpZnJhbWUiKTtpZih0JiZlLnNvdXJjZT09PXQuY29udGVudFdpbmRvdylpZigibG9hZCI9PT1lLmRhdGEud2JfdHlwZXx8InJlcGxhY2UtdXJsIj09PWUuZGF0YS53Yl90eXBlfHwiYXJjaGl2ZS1ub3QtZm91bmQiPT09ZS5kYXRhLndiX3R5cGUpe2lmKHRoaXMucmVwbGF5VFM9ZS5kYXRhLmlzX2xpdmU/IiI6ZS5kYXRhLnRzLHRoaXMuYWN0dWFsVFM9ZS5kYXRhLnRzLHRoaXMucmVwbGF5VXJsPWUuZGF0YS51cmwsdGhpcy50aXRsZT1lLmRhdGEudGl0bGV8fHRoaXMudGl0bGUsdGhpcy5yZXBsYXlOb3RGb3VuZEVycm9yPSJhcmNoaXZlLW5vdC1mb3VuZCI9PT1lLmRhdGEud2JfdHlwZSx0aGlzLmNsZWFyTG9hZGluZyh0LmNvbnRlbnRXaW5kb3cpLGUuZGF0YS5pY29ucyl7Y29uc3QgdD1lLmRhdGEuaWNvbnM7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicmVwbGF5LWZhdmljb25zIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e2ljb25zOnR9fSkpfX1lbHNlIGlmKCJ0aXRsZSI9PT1lLmRhdGEud2JfdHlwZSl0aGlzLnRpdGxlPWUuZGF0YS50aXRsZTtlbHNle2NvbnN0IHQ9T2JqZWN0LmFzc2lnbih7dHlwZTplLmRhdGEud2JfdHlwZX0sZS5kYXRhKTtkZWxldGUgdC53Yl90eXBlLHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UodCl9fW9uUmVBdXRoZWQoZSl7dGhpcy5yZWF1dGhXYWl0PSgoKT0+aSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKHRoaXMuYXV0aEZpbGVIYW5kbGUpe2lmKCJncmFudGVkIiE9PSh5aWVsZCB0aGlzLmF1dGhGaWxlSGFuZGxlLnJlcXVlc3RQZXJtaXNzaW9uKHttb2RlOiJyZWFkIn0pKSlyZXR1cm4gdm9pZCh0aGlzLnJlYXV0aFdhaXQ9bnVsbCk7dGhpcy5hdXRoRmlsZUhhbmRsZT1udWxsfWVsc2V7Y29uc3QgdD1lLmRldGFpbC5oZWFkZXJzO3lpZWxkIGZldGNoKGAke3RoaXMuY29sbEluZm8uYXBpUHJlZml4fS91cGRhdGVBdXRoYCx7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtoZWFkZXJzOnR9KX0pfXRoaXMuc2hvd0F1dGgmJih0aGlzLnNob3dBdXRoPSExLHRoaXMucmVhdXRoV2FpdD1udWxsKSx0aGlzLnJlZnJlc2goKX0pKSkoKX13YWl0Rm9yTG9hZCgpe3RoaXMuc2V0TG9hZGluZygpLHRoaXMuX2xvYWRQb2xsPXdpbmRvdy5zZXRJbnRlcnZhbCgoKCk9Pntjb25zdCBlPXRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yKCJpZnJhbWUiKTsobnVsbD09ZT92b2lkIDA6ZS5jb250ZW50RG9jdW1lbnQpJiZlLmNvbnRlbnRXaW5kb3cmJigiY29tcGxldGUiIT09ZS5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZXx8ZS5jb250ZW50V2luZG93Ll9XQldvbWJhdCl8fHRoaXMuY2xlYXJMb2FkaW5nKG51bGw9PWU/dm9pZCAwOmUuY29udGVudFdpbmRvdyl9KSw1ZTMpfWNsZWFyTG9hZGluZyhlKXtpZih0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXBsYXktbG9hZGluZyIse2RldGFpbDp7bG9hZGluZzohMX19KSksdGhpcy5fbG9hZFBvbGwmJih3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9sb2FkUG9sbCksdGhpcy5fbG9hZFBvbGw9bnVsbCksZSl0cnl7ZS5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCgoKT0+e3RoaXMuc2V0TG9hZGluZygpfSkpfWNhdGNoKGUpe319c2V0TG9hZGluZygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJlcGxheS1sb2FkaW5nIix7ZGV0YWlsOntsb2FkaW5nOiEwfX0pKX1yZWZyZXNoKCl7dmFyIGU7Y29uc3QgdD10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiaWZyYW1lIik7aWYoIXQpcmV0dXJuO2NvbnN0IGk9dGhpcy5pZnJhbWVVcmw7dGhpcy5kb1NldElmcmFtZVVybCgpLGkhPT10aGlzLmlmcmFtZVVybCYmdGhpcy51cmwhPT10aGlzLnJlcGxheVVybHx8KHRoaXMud2FpdEZvckxvYWQoKSxudWxsPT09KGU9dC5jb250ZW50V2luZG93KXx8dm9pZCAwPT09ZXx8ZS5sb2NhdGlvbi5yZWxvYWQoKSl9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5pZnJhbWUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMHB4OwogICAgICB9CgogICAgICAuaWZyYW1lLW1haW4gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5pbnRyby1wYW5lbCAucGFuZWwtaGVhZGluZyB7CiAgICAgICAgZm9udC1zaXplOiAxZW07CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICAuaWZyYW1lLW1haW4ubW9kYWwtYmcgewogICAgICAgIHotaW5kZXg6IDIwMDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNyk7CiAgICAgIH0KCiAgICAgICN3cmxvZ28gewogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC5pbnRyby1wYW5lbCAucGFuZWwtYmxvY2sgewogICAgICAgIHBhZGRpbmc6IDFlbTsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVlbTsKICAgICAgfQoKICAgICAgZGl2LmludHJvLXBhbmVsLnBhbmVsIHsKICAgICAgICBtaW4td2lkdGg6IDQwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWFyZ2luOiAzZW07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIGApfXJlbmRlcigpe2NvbnN0IGU9YFJlcGxheSBvZiAke3RoaXMudGl0bGU/YCR7dGhpcy50aXRsZX06YDoiIn0gJHt0aGlzLnVybH1gO3JldHVybiBRYCA8aDEgaWQ9InJlcGxheS1oZWFkaW5nIiBjbGFzcz0iaXMtc3Itb25seSI+JHtlfTwvaDE+CgogICAgICAke3RoaXMuaWZyYW1lVXJsP1FgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlmcmFtZS1jb250YWluZXIiPgogICAgICAgICAgICAgIDxpZnJhbWUKICAgICAgICAgICAgICAgIGNsYXNzPSJpZnJhbWUtbWFpbiIKICAgICAgICAgICAgICAgIG5hbWU9Il9fX3diX3JlcGxheV90b3BfZnJhbWUiCiAgICAgICAgICAgICAgICBAbWVzc2FnZT0iJHt0aGlzLm9uUmVwbGF5TWVzc2FnZX0iCiAgICAgICAgICAgICAgICBhbGxvdz0iYXV0b3BsYXkgJ3NlbGYnOyBmdWxsc2NyZWVuIgogICAgICAgICAgICAgICAgYWxsb3dmdWxsc2NyZWVuCiAgICAgICAgICAgICAgICBzcmM9IiR7dGhpcy5pZnJhbWVVcmx9IgogICAgICAgICAgICAgICAgdGl0bGU9IiR7ZX0iCiAgICAgICAgICAgICAgPjwvaWZyYW1lPgoKICAgICAgICAgICAgICAke3RoaXMuc2hvd0F1dGg/UWAKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpZnJhbWUtbWFpbiBtb2RhbC1iZyI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbCBpbnRyby1wYW5lbCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwYW5lbC1oZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IndybG9nbyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9IjEuNXJlbSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdmc9JHtLZX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZhLWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbiBOZWVkZWQKICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ibG9jayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmF1dGhGaWxlSGFuZGxlP1FgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGFyY2hpdmUgaXMgbG9hZGVkIGZyb20gYSBsb2NhbCBmaWxlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+JHt0aGlzLmF1dGhGaWxlSGFuZGxlLm5hbWV9PC9iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBicm93c2VyIG5lZWRzIHRvIGNvbmZpcm0geW91ciBwZXJtaXNzaW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBjb250aW51ZSBsb2FkaW5nIGZyb20gdGhpcyBmaWxlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYnV0dG9uIGlzLXdhcm5pbmcgaXMtcm91bmRlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uUmVBdXRoZWR9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgQ29uZmlybWF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGA6UWAgPHdyLWdkcml2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zb3VyY2VVcmw9IiR7dGhpcy5zb3VyY2VVcmx9IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPSJ0cnltYW51YWwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlYXV0aD0iJHshMH0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGxvYWQtcmVhZHk9IiR7dGhpcy5vblJlQXV0aGVkfSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvd3ItZ2RyaXZlPmB9CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDpRYCA8ZGl2IGNsYXNzPSJwYW5lbCBpbnRyby1wYW5lbCI+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYW5lbC1oZWFkaW5nIj5SZXBsYXkgV2ViIFBhZ2U8L3A+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWJsb2NrIj4KICAgICAgICAgICAgICA8cD5FbnRlciBhIFVSTCBhYm92ZSB0byByZXBsYXkgaXQgZnJvbSB0aGUgd2ViIGFyY2hpdmUhPC9wPgogICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgKE9yLCBjaGVjayBvdXQgPGEgaHJlZj0iI3ZpZXc9cGFnZXMiPlBhZ2VzPC9hPiBvcgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3ZpZXc9cmVzb3VyY2VzIj5VUkxzPC9hPiB0byBleHBsb3JlIHRoZSBjb250ZW50cyBvZgogICAgICAgICAgICAgICAgdGhpcyBhcmNoaXZlLikKICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+YH1gfX10KFt5ZSh7dHlwZTpPYmplY3R9KV0sVG8ucHJvdG90eXBlLCJjb2xsSW5mbyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJzb3VyY2VVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFRvLnByb3RvdHlwZSwidXJsIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUby5wcm90b3R5cGUsInRzIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUby5wcm90b3R5cGUsIndhY3poYXNoIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxUby5wcm90b3R5cGUsInJlcGxheVVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJyZXBsYXlUUyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJhY3R1YWxUUyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJ0aXRsZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sVG8ucHJvdG90eXBlLCJpZnJhbWVVcmwiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxUby5wcm90b3R5cGUsInNob3dBdXRoIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sVG8ucHJvdG90eXBlLCJyZXBsYXlOb3RGb3VuZEVycm9yIix2b2lkIDApLHQoW3llKHt0eXBlOk9iamVjdH0pXSxUby5wcm90b3R5cGUsImF1dGhGaWxlSGFuZGxlIix2b2lkIDApLGN1c3RvbUVsZW1lbnRzLmRlZmluZSgid3ItY29sbC1yZXBsYXkiLFRvKTtsZXQgUG89Y2xhc3MgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zb3J0ZWREYXRhPVtdLHRoaXMuZGF0YT1bXSx0aGlzLnBhZ2VSZXN1bHRzPTAsdGhpcy5udW1SZXN1bHRzPTAsdGhpcy5zb3J0S2V5PW51bGwsdGhpcy5zb3J0RGVzYz1udWxsfWZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuaWQpe2NvbnN0IGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5pZH06c29ydEtleWApO251bGwhPT1lJiYodGhpcy5zb3J0S2V5PWUpO2NvbnN0IHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5pZH06c29ydERlc2NgKTtudWxsIT09dCYmKHRoaXMuc29ydERlc2M9IjEiPT09dCl9fXVwZGF0ZWQoZSl7Y29uc3QgdD1lLmhhcygic29ydEtleSIpLGk9ZS5oYXMoInNvcnREZXNjIiksbz1lLmhhcygiZGF0YSIpO3QmJm51bGwhPT10aGlzLnNvcnRLZXkmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke3RoaXMuaWR9OnNvcnRLZXlgLHRoaXMuc29ydEtleSksaSYmbnVsbCE9PXRoaXMuc29ydERlc2MmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke3RoaXMuaWR9OnNvcnREZXNjYCx0aGlzLnNvcnREZXNjPyIxIjoiMCIpLCh0fHxpfHxvKSYmdGhpcy5zb3J0RGF0YSgpfXNvcnREYXRhKCl7dGhpcy5zb3J0ZWREYXRhPVsuLi50aGlzLmRhdGFdLHRoaXMubnVtUmVzdWx0cz10aGlzLnBhZ2VSZXN1bHRzLCIiPT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2MmJnRoaXMuc29ydGVkRGF0YS5yZXZlcnNlKCk6dGhpcy5zb3J0ZWREYXRhLnNvcnQoKChlLHQpPT5lW3RoaXMuc29ydEtleV09PT10W3RoaXMuc29ydEtleV0/MDp0aGlzLnNvcnREZXNjPT1lW3RoaXMuc29ydEtleV08dFt0aGlzLnNvcnRLZXldPzE6LTEpKSx0aGlzLnNlbmRTb3J0Q2hhbmdlZCgpfXNlbmRTb3J0Q2hhbmdlZCgpe2NvbnN0IGU9e3NvcnRLZXk6dGhpcy5zb3J0S2V5LHNvcnREZXNjOnRoaXMuc29ydERlc2Msc29ydGVkRGF0YTp0aGlzLm51bVJlc3VsdHM/dGhpcy5zb3J0ZWREYXRhLnNsaWNlKDAsdGhpcy5udW1SZXN1bHRzKTp0aGlzLnNvcnRlZERhdGF9O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNvcnQtY2hhbmdlZCIse2RldGFpbDplfSkpfWdldE1vcmUoZT0xMDApe3RoaXMucGFnZVJlc3VsdHMmJnRoaXMubnVtUmVzdWx0cz49dGhpcy5zb3J0ZWREYXRhLmxlbmd0aHx8KHRoaXMubnVtUmVzdWx0cys9ZSx0aGlzLnNlbmRTb3J0Q2hhbmdlZCgpKX1zdGF0aWMgZ2V0IHN0eWxlcygpe3JldHVybiBOZShoYAogICAgICA6aG9zdCB7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgYnV0dG9uLmJ1dHRvbi5pcy1zbWFsbCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICBgKX1yZW5kZXIoKXt2YXIgZTtyZXR1cm4gUWAKICAgIDxkaXYgY2xhc3M9InNlbGVjdCBpcy1zbWFsbCI+CiAgICAgIDxzZWxlY3QgaWQ9InNvcnQtc2VsZWN0IiBAY2hhbmdlPSR7ZT0+dGhpcy5zb3J0S2V5PWUuY3VycmVudFRhcmdldC52YWx1ZX0+CgogICAgICAke251bGw9PT0oZT10aGlzLnNvcnRLZXlzKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tYXAoKGU9PlFgCiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIke2Uua2V5fSIgP3NlbGVjdGVkPSIke2Uua2V5PT09dGhpcy5zb3J0S2V5fSI+CiAgICAgICAgICAgIFNvcnQgQnk6ICR7ZS5uYW1lfQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgYCkpfQogICAgICA8L3NlbGVjdD4KICAgIDwvZGl2PgogICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5zb3J0RGVzYz0hdGhpcy5zb3J0RGVzY30gY2xhc3M9ImJ1dHRvbiBpcy1zbWFsbCI+CiAgICAgIDxzcGFuPk9yZGVyOjwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9ImlzLXNyLW9ubHkiPiR7dGhpcy5zb3J0RGVzYz8iQXNjZW5kaW5nIjoiRGVzY2VuZGluZyJ9PC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0iaWNvbiI+PGZhLWljb24gYXJpYS1oaWRkZW49InRydWUiIC5zdmc9JHt0aGlzLnNvcnREZXNjPyc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMyMCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik0yNzkgMjI0SDQxYy0yMS40IDAtMzIuMS0yNS45LTE3LTQxTDE0MyA2NGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMTkgMTE5YzE1LjIgMTUuMSA0LjUgNDEtMTYuOSA0MXoiLz48L3N2Zz4nOic8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMyMCA1MTIiPlx4M2MhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tXHgzZTxwYXRoIGQ9Ik00MSAyODhoMjM4YzIxLjQgMCAzMi4xIDI1LjkgMTcgNDFMMTc3IDQ0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMjQgMzI5Yy0xNS4xLTE1LjEtNC40LTQxIDE3LTQxeiIvPjwvc3ZnPid9Pjwvc3Bhbj4KICAgIDwvYnV0dG9uPmB9fTt0KFt5ZSh7YXR0cmlidXRlOiExfSldLFBvLnByb3RvdHlwZSwic29ydGVkRGF0YSIsdm9pZCAwKSx0KFt5ZSh7YXR0cmlidXRlOiExfSldLFBvLnByb3RvdHlwZSwiZGF0YSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUG8ucHJvdG90eXBlLCJpZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpOdW1iZXJ9KV0sUG8ucHJvdG90eXBlLCJwYWdlUmVzdWx0cyIsdm9pZCAwKSx0KFt5ZSh7YXR0cmlidXRlOiExfSldLFBvLnByb3RvdHlwZSwibnVtUmVzdWx0cyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUG8ucHJvdG90eXBlLCJzb3J0S2V5Iix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sUG8ucHJvdG90eXBlLCJzb3J0RGVzYyIsdm9pZCAwKSx0KFt5ZSh7YXR0cmlidXRlOiExfSldLFBvLnByb3RvdHlwZSwic29ydEtleXMiLHZvaWQgMCksUG89dChbZ2UoIndyLXNvcnRlciIpXSxQbyk7Y2xhc3MgRG8gZXh0ZW5kcyBtZXtzdGF0aWMgZ2V0IGZpbHRlcnMoKXtyZXR1cm5be25hbWU6IkhUTUwiLGZpbHRlcjoidGV4dC9odG1sLHRleHQveGh0bWwifSx7bmFtZToiSW1hZ2VzIixmaWx0ZXI6ImltYWdlLyJ9LHtuYW1lOiJBdWRpby9WaWRlbyIsZmlsdGVyOiJhdWRpby8sdmlkZW8vIn0se25hbWU6IlBERiIsZmlsdGVyOiJhcHBsaWNhdGlvbi9wZGYifSx7bmFtZToiSmF2YXNjcmlwdCIsZmlsdGVyOiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCJ9LHtuYW1lOiJDU1MiLGZpbHRlcjoidGV4dC9jc3MifSx7bmFtZToiRm9udHMiLGZpbHRlcjoiZm9udC8sYXBwbGljYXRpb24vZm9udC13b2ZmIn0se25hbWU6IlBsYWluIFRleHQiLGZpbHRlcjoidGV4dC9wbGFpbiJ9LHtuYW1lOiJKU09OIixmaWx0ZXI6ImFwcGxpY2F0aW9uL2pzb24ifSx7bmFtZToiREFTSC9ITFMiLGZpbHRlcjoiYXBwbGljYXRpb24vZGFzaCt4bWwsYXBwbGljYXRpb24veC1tcGVnVVJMLGFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsIn0se25hbWU6IkFsbCBVUkxzIixmaWx0ZXI6IiJ9XX1zdGF0aWMgZ2V0IHNvcnRLZXlzKCl7cmV0dXJuW3trZXk6InVybCIsbmFtZToiVVJMIn0se2tleToidHMiLG5hbWU6IkRhdGUifSx7a2V5OiJtaW1lIixuYW1lOiJNZWRpYSBUeXBlIn0se2tleToic3RhdHVzIixuYW1lOiJTdGF0dXMifV19Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuY29sbEluZm89bnVsbCx0aGlzLmlzU2lkZWJhcj0hMSx0aGlzLmN1cnJNaW1lPSIiLHRoaXMucXVlcnk9IiIsdGhpcy51cmxTZWFyY2hUeXBlPSIiLHRoaXMuZmlsdGVyZWRSZXN1bHRzPVtdLHRoaXMuc29ydGVkUmVzdWx0cz1bXSx0aGlzLnJlc3VsdHM9W10sdGhpcy5uZXdRdWVyeT1udWxsLHRoaXMudHJ5TW9yZT0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5zb3J0S2V5PSJ1cmwiLHRoaXMuc29ydERlc2M9ITF9c3RhdGljIGdldCBwcm9wZXJ0aWVzKCl7cmV0dXJue2NvbGxJbmZvOnt0eXBlOk9iamVjdH0saXNTaWRlYmFyOnt0eXBlOkJvb2xlYW59LGN1cnJNaW1lOnt0eXBlOlN0cmluZ30scXVlcnk6e3R5cGU6U3RyaW5nfSx1cmxTZWFyY2hUeXBlOnt0eXBlOlN0cmluZ30sZmlsdGVyZWRSZXN1bHRzOnt0eXBlOkFycmF5fSxzb3J0ZWRSZXN1bHRzOnt0eXBlOkFycmF5fSxsb2FkaW5nOnt0eXBlOkJvb2xlYW59LHNvcnRLZXk6e3R5cGU6U3RyaW5nfSxzb3J0RGVzYzp7dHlwZTpCb29sZWFufX19Zmlyc3RVcGRhdGVkKCl7IiI9PT10aGlzLnVybFNlYXJjaFR5cGUmJih0aGlzLnVybFNlYXJjaFR5cGU9InByZWZpeCIpfV90aW1lZFVwZGF0ZSgpe251bGwhPT10aGlzLm5ld1F1ZXJ5JiYodGhpcy5xdWVyeT10aGlzLm5ld1F1ZXJ5LHRoaXMubmV3UXVlcnk9bnVsbCl9dXBkYXRlZChlKXtpZihlLmhhcygicXVlcnkiKXx8ZS5oYXMoInVybFNlYXJjaFR5cGUiKXx8ZS5oYXMoImN1cnJNaW1lIikpe3RoaXMuZG9Mb2FkUmVzb3VyY2VzKCk7Y29uc3QgdD17cXVlcnk6dGhpcy5xdWVyeSx1cmxTZWFyY2hUeXBlOnRoaXMudXJsU2VhcmNoVHlwZSxjdXJyTWltZTp0aGlzLmN1cnJNaW1lfSxpPSFlLmhhcygiY3Vyck1pbWUiKSYmIWUuaGFzKCJ1cmxTZWFyY2hUeXBlIik7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC10YWItbmF2Iix7ZGV0YWlsOntyZXBsYWNlTG9jOmksZGF0YTp0fX0pKX0oZS5oYXMoInNvcnRLZXkiKXx8ZS5oYXMoInNvcnREZXNjIikpJiZ0aGlzLmZpbHRlcigpfWRvTG9hZFJlc291cmNlcyhlPSExKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKGUmJighdGhpcy50cnlNb3JlfHwhdGhpcy5yZXN1bHRzLmxlbmd0aCkpcmV0dXJuO2lmKHRoaXMubG9hZGluZylyZXR1cm47dGhpcy5sb2FkaW5nPSEwO2NvbnN0IHQ9ImNvbnRhaW5zIiE9PXRoaXMudXJsU2VhcmNoVHlwZT90aGlzLnF1ZXJ5OiIiLGk9dCYmInByZWZpeCI9PT10aGlzLnVybFNlYXJjaFR5cGU/MTowLG89dGhpcy5jdXJyTWltZSxuPW5ldyBVUkxTZWFyY2hQYXJhbXMoe21pbWU6byx1cmw6dCxwcmVmaXg6U3RyaW5nKGkpLGNvdW50OlN0cmluZygxMDApfSk7aWYoZSl7Y29uc3QgZT10aGlzLnJlc3VsdHNbdGhpcy5yZXN1bHRzLmxlbmd0aC0xXTtuLnNldCgiZnJvbU1pbWUiLGUubWltZSksbi5zZXQoImZyb21VcmwiLGUudXJsKSxuLnNldCgiZnJvbVN0YXR1cyIsZS5zdGF0dXMpLG4uc2V0KCJmcm9tVHMiLFN0cmluZyhuZXcgRGF0ZShlLmRhdGUpLmdldFRpbWUoKSkpfWNvbnN0IHI9eWllbGQgZmV0Y2goYCR7dGhpcy5jb2xsSW5mby5hcGlQcmVmaXh9L3VybHM/JHtuLnRvU3RyaW5nKCl9YCkscz15aWVsZCByLmpzb24oKTt0aGlzLnJlc3VsdHM9ZT90aGlzLnJlc3VsdHMuY29uY2F0KHMudXJscyk6cy51cmxzLHRoaXMudHJ5TW9yZT1zLnVybHMubGVuZ3RoPj0xMDAsdGhpcy5maWx0ZXIoKSx0aGlzLmxvYWRpbmc9ITF9KSl9b25DaGFuZ2VUeXBlU2VhcmNoKGUpe3RoaXMuY3Vyck1pbWU9ZS5jdXJyZW50VGFyZ2V0LnZhbHVlfW9uQ2hhbmdlUXVlcnkoZSl7dGhpcy5uZXdRdWVyeT1lLmN1cnJlbnRUYXJnZXQudmFsdWUsdGhpcy5faXZhbCYmd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9pdmFsKSx0aGlzLl9pdmFsPXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5fdGltZWRVcGRhdGUoKSksMjUwKX1vbkNsaWNrVXJsVHlwZShlKXt0aGlzLnVybFNlYXJjaFR5cGU9ZS5jdXJyZW50VGFyZ2V0LnZhbHVlfWZpbHRlcigpe2NvbnN0IGU9W10sdD0iY29udGFpbnMiPT09dGhpcy51cmxTZWFyY2hUeXBlP3RoaXMucXVlcnk6IiI7Zm9yKGNvbnN0IGkgb2YgdGhpcy5yZXN1bHRzKSghdHx8aS51cmwuaW5kZXhPZih0KT49MCkmJmUucHVzaChpKTt0aGlzLmZpbHRlcmVkUmVzdWx0cz1lfW9uU2Nyb2xsKGUpe2NvbnN0IHQ9ZS5jdXJyZW50VGFyZ2V0LGk9dC5zY3JvbGxIZWlnaHQtdC5zY3JvbGxUb3AtdC5jbGllbnRIZWlnaHQ7dGhpcy50cnlNb3JlJiZpPDQwJiZ0aGlzLmRvTG9hZFJlc291cmNlcyghMCl9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgOmhvc3QgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIG1pbi13aWR0aDogMHB4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KICAgICAgOmhvc3QoLnNpZGViYXIpIC5pcy1oaWRkZW4tdGFibGV0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuaXMtaGlkZGVuLW1vYmlsZSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdCguc2lkZWJhcikgLmxldmVsLAogICAgICA6aG9zdCguc2lkZWJhcikgLmxldmVsLWxlZnQsCiAgICAgIDpob3N0KC5zaWRlYmFyKSAubGV2ZWwtcmlnaHQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuY29sdW1ucyB7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIDpob3N0KC5zaWRlYmFyKSAuY29sdW1uIHsKICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAubm90aWZpY2F0aW9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgICAuYWxsLXJlc3VsdHMgewogICAgICAgIG1hcmdpbjogMCAwIDAgMC41ZW07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KICAgICAgLm1haW4tc2Nyb2xsIHsKICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAgIH0KICAgICAgLm1pbmloZWFkIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgICAgLmNvbHVtbnMgewogICAgICAgIG1hcmdpbjogMHB4OwogICAgICB9CiAgICAgIHRoZWFkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIHRhYmxlIHRoOm5vdChbYWxpZ25dKSB7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAucmVzdWx0IHsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggI2RiZGJkYiBzb2xpZDsKICAgICAgICBtaW4taGVpZ2h0OiBmaXQtY29udGVudDsKICAgICAgfQogICAgICAucmVzdWx0cy1oZWFkIHsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggI2RiZGJkYiBzb2xpZDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWluLWhlaWdodDogZml0LWNvbnRlbnQ7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgICAgLnJlc3VsdHMtaGVhZCBhIHsKICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgIH0KICAgICAgLmFsbC1yZXN1bHRzIC5jb2x1bW4gewogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KICAgICAgZGl2LnNvcnQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50OwogICAgICAgIG1pbi1oZWlnaHQ6IGZpdC1jb250ZW50OwogICAgICB9CiAgICAgIC5mbGV4LWF1dG8gewogICAgICAgIGZsZXg6IGF1dG87CiAgICAgIH0KICAgICAgLmFzYzphZnRlciB7CiAgICAgICAgY29udGVudDogIuKWvCI7CiAgICAgICAgZm9udC1zaXplOiAwLjc1ZW07CiAgICAgIH0KICAgICAgLmRlc2M6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICLilrIiOwogICAgICAgIGZvbnQtc2l6ZTogMC43NWVtOwogICAgICB9CiAgICAgIC5udW0tcmVzdWx0cyB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgIGApfXJlbmRlcigpe3JldHVybiBRYAogICAgICA8ZGl2CiAgICAgICAgcm9sZT0iaGVhZGluZyIKICAgICAgICBhcmlhLWxldmVsPSIke3RoaXMuaXNTaWRlYmFyPyIyIjoiMSJ9IgogICAgICAgIGNsYXNzPSJpcy1zci1vbmx5IgogICAgICA+CiAgICAgICAgVVJMcyBpbiAke3RoaXMuY29sbEluZm8udGl0bGV9CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdgogICAgICAgIHJvbGU9ImhlYWRpbmciCiAgICAgICAgYXJpYS1sZXZlbD0iJHt0aGlzLmlzU2lkZWJhcj8iMyI6IjIifSIKICAgICAgICBjbGFzcz0iaXMtc3Itb25seSIKICAgICAgPgogICAgICAgIFNlYXJjaCBhbmQgRmlsdGVyCiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24gbGV2ZWwgaXMtbWFyZ2lubGVzcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGV2ZWwtbGVmdCBmbGV4LWF1dG8iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGV2ZWwtaXRlbSBmbGV4LWF1dG8iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaXMtaGlkZGVuLW1vYmlsZSI+U2VhcmNoOiZuYnNwOyZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0Ij4KICAgICAgICAgICAgICA8c2VsZWN0IEBjaGFuZ2U9IiR7dGhpcy5vbkNoYW5nZVR5cGVTZWFyY2h9Ij4KICAgICAgICAgICAgICAgICR7RG8uZmlsdGVycy5tYXAoKGU9PlFgCiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbgogICAgICAgICAgICAgICAgICAgICAgdmFsdWU9IiR7ZS5maWx0ZXJ9IgogICAgICAgICAgICAgICAgICAgICAgP3NlbGVjdGVkPSIke2UuZmlsdGVyPT09dGhpcy5jdXJyTWltZX0iCiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtlLm5hbWV9CiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgIGApKX0KICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpZWxkIGZsZXgtYXV0byI+CiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9ImNvbnRyb2wgaGFzLWljb25zLWxlZnQgJHt0aGlzLmxvYWRpbmc/ImlzLWxvYWRpbmciOiIifSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImlucHV0IgogICAgICAgICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy5vbkNoYW5nZVF1ZXJ5fSIKICAgICAgICAgICAgICAgICAgLnZhbHVlPSIke3RoaXMucXVlcnl9IgogICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgVVJMIHRvIFNlYXJjaCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpcy1sZWZ0IgogICAgICAgICAgICAgICAgICA+PGZhLWljb24gLnN2Zz0iJHtJaX0iPjwvZmEtaWNvbgogICAgICAgICAgICAgICAgPjwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sIGxldmVsLXJpZ2h0Ij4KICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAxZW0iIGNsYXNzPSJjb250cm9sIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJyYWRpbyBoYXMtdGV4dC1sZWZ0IgogICAgICAgICAgICAgID48aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InJhZGlvIgogICAgICAgICAgICAgICAgbmFtZT0idXJsdHlwZSIKICAgICAgICAgICAgICAgIHZhbHVlPSJjb250YWlucyIKICAgICAgICAgICAgICAgID9jaGVja2VkPSIkeyJjb250YWlucyI9PT10aGlzLnVybFNlYXJjaFR5cGV9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25DbGlja1VybFR5cGV9IgogICAgICAgICAgICAgIC8+Jm5ic3A7Q29udGFpbnM8L2xhYmVsCiAgICAgICAgICAgID4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJyYWRpbyBoYXMtdGV4dC1sZWZ0IgogICAgICAgICAgICAgID48aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InJhZGlvIgogICAgICAgICAgICAgICAgbmFtZT0idXJsdHlwZSIKICAgICAgICAgICAgICAgIHZhbHVlPSJwcmVmaXgiCiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0iJHsicHJlZml4Ij09PXRoaXMudXJsU2VhcmNoVHlwZX0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vbkNsaWNrVXJsVHlwZX0iCiAgICAgICAgICAgICAgLz4mbmJzcDtQcmVmaXg8L2xhYmVsCiAgICAgICAgICAgID4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJyYWRpbyBoYXMtdGV4dC1sZWZ0IgogICAgICAgICAgICAgID48aW5wdXQKICAgICAgICAgICAgICAgIHR5cGU9InJhZGlvIgogICAgICAgICAgICAgICAgbmFtZT0idXJsdHlwZSIKICAgICAgICAgICAgICAgIHZhbHVlPSJleGFjdCIKICAgICAgICAgICAgICAgID9jaGVja2VkPSIkeyJleGFjdCI9PT10aGlzLnVybFNlYXJjaFR5cGV9IgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25DbGlja1VybFR5cGV9IgogICAgICAgICAgICAgIC8+Jm5ic3A7RXhhY3Q8L2xhYmVsCiAgICAgICAgICAgID4KICAgICAgICAgICAgPHNwYW4KICAgICAgICAgICAgICBpZD0ibnVtLXJlc3VsdHMiCiAgICAgICAgICAgICAgY2xhc3M9Im51bS1yZXN1bHRzIgogICAgICAgICAgICAgIGlzLXB1bGxlZC1yaWdodAogICAgICAgICAgICAgIGFyaWEtbGl2ZT0icG9saXRlIgogICAgICAgICAgICAgIGFyaWEtYXRvbWljPSJ0cnVlIgogICAgICAgICAgICAgID4ke3RoaXMuZmlsdGVyZWRSZXN1bHRzLmxlbmd0aH0gUmVzdWx0KHMpPC9zcGFuCiAgICAgICAgICAgID4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNvcnQtaGVhZGVyIGlzLWhpZGRlbi10YWJsZXQiPgogICAgICAgIDx3ci1zb3J0ZXIKICAgICAgICAgIGlkPSJ1cmxzIgogICAgICAgICAgLnNvcnRLZXk9IiR7dGhpcy5zb3J0S2V5fSIKICAgICAgICAgIC5zb3J0RGVzYz0iJHt0aGlzLnNvcnREZXNjfSIKICAgICAgICAgIC5zb3J0S2V5cz0iJHtEby5zb3J0S2V5c30iCiAgICAgICAgICAuZGF0YT0iJHt0aGlzLmZpbHRlcmVkUmVzdWx0c30iCiAgICAgICAgICBAc29ydC1jaGFuZ2VkPSIke3RoaXMub25Tb3J0Q2hhbmdlZH0iCiAgICAgICAgPgogICAgICAgIDwvd3Itc29ydGVyPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYKICAgICAgICByb2xlPSJoZWFkaW5nIgogICAgICAgIGFyaWEtbGV2ZWw9IiR7dGhpcy5pc1NpZGViYXI/IjMiOiIyIn0iCiAgICAgICAgaWQ9InJlc3VsdHMtaGVhZGluZyIKICAgICAgICBjbGFzcz0iaXMtc3Itb25seSIKICAgICAgPgogICAgICAgIFJlc3VsdHMKICAgICAgPC9kaXY+CgogICAgICA8dGFibGUgY2xhc3M9ImFsbC1yZXN1bHRzIiBhcmlhLWxhYmVsbGVkYnk9InJlc3VsdHMtaGVhZGluZyBudW0tcmVzdWx0cyI+CiAgICAgICAgPHRoZWFkPgogICAgICAgICAgPHRyIGNsYXNzPSJjb2x1bW5zIHJlc3VsdHMtaGVhZCBoYXMtdGV4dC13ZWlnaHQtYm9sZCI+CiAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0iY29sdW1uIGNvbC11cmwgaXMtNiBpcy1oaWRkZW4tbW9iaWxlIj4KICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgaHJlZj0iIyIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHt0aGlzLm9uU29ydH0iCiAgICAgICAgICAgICAgICBAa2V5dXA9IiR7SGV9IgogICAgICAgICAgICAgICAgZGF0YS1rZXk9InVybCIKICAgICAgICAgICAgICAgIGNsYXNzPSIkeyJ1cmwiPT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2M/ImRlc2MiOiJhc2MiOiIifSIKICAgICAgICAgICAgICAgID5VUkw8L2EKICAgICAgICAgICAgICA+CiAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIiBjbGFzcz0iY29sdW1uIGNvbC10cyBpcy0yIGlzLWhpZGRlbi1tb2JpbGUiPgogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICBocmVmPSIjIgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25Tb3J0fSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBkYXRhLWtleT0idHMiCiAgICAgICAgICAgICAgICBjbGFzcz0iJHsidHMiPT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2M/ImRlc2MiOiJhc2MiOiIifSIKICAgICAgICAgICAgICAgID5EYXRlPC9hCiAgICAgICAgICAgICAgPgogICAgICAgICAgICA8L3RoPgogICAgICAgICAgICA8dGggc2NvcGU9ImNvbCIgY2xhc3M9ImNvbHVtbiBjb2wtbWltZSBpcy0zIGlzLWhpZGRlbi1tb2JpbGUiPgogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICBocmVmPSIjIgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25Tb3J0fSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBkYXRhLWtleT0ibWltZSIKICAgICAgICAgICAgICAgIGNsYXNzPSIkeyJtaW1lIj09PXRoaXMuc29ydEtleT90aGlzLnNvcnREZXNjPyJkZXNjIjoiYXNjIjoiIn0iCiAgICAgICAgICAgICAgICA+TWVkaWEgVHlwZTwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgPHRoIHNjb3BlPSJjb2wiIGNsYXNzPSJjb2x1bW4gY29sLXN0YXR1cyBpcy0xIGlzLWhpZGRlbi1tb2JpbGUiPgogICAgICAgICAgICAgIDxhCiAgICAgICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgICAgICBocmVmPSIjIgogICAgICAgICAgICAgICAgQGNsaWNrPSIke3RoaXMub25Tb3J0fSIKICAgICAgICAgICAgICAgIEBrZXl1cD0iJHtIZX0iCiAgICAgICAgICAgICAgICBkYXRhLWtleT0ic3RhdHVzIgogICAgICAgICAgICAgICAgY2xhc3M9IiR7InN0YXR1cyI9PT10aGlzLnNvcnRLZXk/dGhpcy5zb3J0RGVzYz8iZGVzYyI6ImFzYyI6IiJ9IgogICAgICAgICAgICAgICAgPlN0YXR1czwvYQogICAgICAgICAgICAgID4KICAgICAgICAgICAgPC90aD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90aGVhZD4KCiAgICAgICAgPHRib2R5IGNsYXNzPSJtYWluLXNjcm9sbCIgQHNjcm9sbD0iJHt0aGlzLm9uU2Nyb2xsfSI+CiAgICAgICAgICAke3RoaXMuc29ydGVkUmVzdWx0cy5sZW5ndGg/dGhpcy5zb3J0ZWRSZXN1bHRzLm1hcCgoZT0+UWAKICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJjb2x1bW5zIHJlc3VsdCI+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2x1bW4gY29sLXVybCBpcy02Ij4KICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJtaW5paGVhZCBpcy1oaWRkZW4tdGFibGV0Ij5VUkw8L3A+CiAgICAgICAgICAgICAgICAgICAgICA8YQogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7dGhpcy5vblJlcGxheX0iCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdXJsPSIke2UudXJsfSIKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cz0iJHtlLnRzfSIKICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj0iJHtrdCgicmVzb3VyY2VzIixlLnVybCxlLnRzKX0iCiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDxrZXl3b3JkLW1hcmsga2V5d29yZHM9IiR7dGhpcy5xdWVyeX0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgPiR7ZS51cmx9PC9rZXl3b3JkLW1hcmsKICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjb2x1bW4gY29sLXRzIGlzLTIiPgogICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1pbmloZWFkIGlzLWhpZGRlbi10YWJsZXQiPkRhdGU8L3A+CiAgICAgICAgICAgICAgICAgICAgICAke0F0LmZvcm1hdChuZXcgRGF0ZShlLmRhdGUpKX0KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sdW1uIGNvbC1taW1lIGlzLTMiPgogICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1pbmloZWFkIGlzLWhpZGRlbi10YWJsZXQiPk1lZGlhIFR5cGU8L3A+CiAgICAgICAgICAgICAgICAgICAgICAke2UubWltZX0KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY29sdW1uIGNvbC1zdGF0dXMgaXMtMSI+CiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWluaWhlYWQgaXMtaGlkZGVuLXRhYmxldCI+U3RhdHVzPC9wPgogICAgICAgICAgICAgICAgICAgICAgJHtlLnN0YXR1c30KICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgYCkpOlFgPHRyIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI0Ij48aT5ObyBSZXN1bHRzIEZvdW5kLjwvaT48L3RkPgogICAgICAgICAgICAgIDwvdHI+YH0KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgYH1vblNvcnQoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHQ9ZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1rZXkiKTt0PT09dGhpcy5zb3J0S2V5P3RoaXMuc29ydERlc2M9IXRoaXMuc29ydERlc2M6KHRoaXMuc29ydERlc2M9ITEsdGhpcy5zb3J0S2V5PXQpfW9uU29ydENoYW5nZWQoZSl7dGhpcy5zb3J0ZWRSZXN1bHRzPWUuZGV0YWlsLnNvcnRlZERhdGEsdGhpcy5zb3J0S2V5PWUuZGV0YWlsLnNvcnRLZXksdGhpcy5zb3J0RGVzYz1lLmRldGFpbC5zb3J0RGVzY31vblJlcGxheShlKXtlLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgdD17dXJsOmUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtdXJsIiksdHM6ZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS10cyIpfTtyZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29sbC10YWItbmF2Iix7ZGV0YWlsOntkYXRhOnR9fSkpLCExfX1jdXN0b21FbGVtZW50cy5kZWZpbmUoIndyLWNvbGwtcmVzb3VyY2VzIixEbyk7Y29uc3QgRm89ZG9jdW1lbnQuY3VycmVudFNjcmlwdCYmZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7bGV0IE1vPSIiO2NsYXNzIFJvIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudXJsPSIiLHRoaXMudHM9IiIsdGhpcy5xdWVyeT0iIix0aGlzLnZpZXc9InJlcGxheSIsdGhpcy5lbWJlZD1udWxsLHRoaXMucmVwbGF5YmFzZT0iLi9yZXBsYXkvIix0aGlzLnN3TmFtZT0ic3cuanMiLHRoaXMuY29sbD0iIix0aGlzLmNvbmZpZz0iIix0aGlzLmluaXRlZD0hMSx0aGlzLnBhcmFtU3RyaW5nPW51bGwsdGhpcy5kZWVwTGluaz0hMSx0aGlzLnVwZGF0ZUZhdmljb25zPSExLHRoaXMuc2FuZGJveD0hMSx0aGlzLm5vU2FuZGJveD1udWxsLHRoaXMubm9XZWJXb3JrZXI9ITEsdGhpcy5ub0NhY2hlPSExLHRoaXMudXNlQWRibG9jaz0hMSx0aGlzLmFkYmxvY2tSdWxlc1VybD0iLi9hZGJsb2NrL2FkYmxvY2suZ3oiLHRoaXMubmV3V2luZG93QmFzZT0iIix0aGlzLmxvYWRpbmc9IiIsdGhpcy51c2VSdWZmbGU9ITEsdGhpcy5yZXBsYXlmaWxlPU1vLHRoaXMubWFpbkVsZW1lbnROYW1lPSJyZXBsYXktYXBwLW1haW4iLHRoaXMuYXBwTmFtZT0iUmVwbGF5V2ViLnBhZ2UiLHRoaXMuY3VzdG9tQ29uZmlnPW51bGwsdGhpcy5yZWxvYWRDb3VudD0wfXN0YXRpYyBzZXREZWZhdWx0UmVwbGF5RmlsZShlKXtNbz1lfWRvUmVnaXN0ZXIoKXtyZXR1cm4gaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9bmV3IFVSTCh0aGlzLnJlcGxheWJhc2Usd2luZG93LmxvY2F0aW9uLmhyZWYpO2lmKHRoaXMuaXNDcm9zc09yaWdpbj1lLm9yaWdpbiE9PXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sdGhpcy5pc0Nyb3NzT3JpZ2luKXJldHVybiB2b2lkKHRoaXMuaW5pdGVkPSEwKTtjb25zdCB0PXRoaXMuc3dOYW1lKyI/c2VydmVJbmRleD0xIixpPXRoaXMuYXBwTmFtZSxvPXRoaXMucmVwbGF5YmFzZSxuPXRoaXMucmVxdWlyZVN1YmRvbWFpbklmcmFtZTt0aGlzLnN3bWFuYWdlcj1uZXcgaXQoe25hbWU6dCxzY29wZTpvLHJlcXVpcmVTdWJkb21haW5JZnJhbWU6bixhcHBOYW1lOml9KTt0cnl7eWllbGQgdGhpcy5zd21hbmFnZXIucmVnaXN0ZXIoKSx0aGlzLmluaXRlZD0hMH1jYXRjaChlKXt0aGlzLmVycm9yTWVzc2FnZT10aGlzLnN3bWFuYWdlci5yZW5kZXJFcnJvclJlcG9ydCgpfX0pKX1mdWxsUmVsb2FkKCl7dmFyIGU7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZighKG51bGw9PT0oZT10aGlzLmlmcmFtZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuY29udGVudFdpbmRvdykpcmV0dXJuITE7Y29uc3QgdD1PZSsiL2MvIit0aGlzLmNvbGwrIj9yZWxvYWQ9MSI7cmV0dXJuIDIwMD09PSh5aWVsZCB0aGlzLmlmcmFtZS5jb250ZW50V2luZG93LmZldGNoKHQse21ldGhvZDoiREVMRVRFIn0pKS5zdGF0dXMmJih0aGlzLmlmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlbG9hZCgpLCEwKX0pKX1oYW5kbGVNZXNzYWdlKGUpe2lmKHRoaXMuaWZyYW1lJiZlLnNvdXJjZT09PXRoaXMuaWZyYW1lLmNvbnRlbnRXaW5kb3cpc3dpdGNoKGUuZGF0YS50eXBlKXtjYXNlInVybGNoYW5nZSI6dGhpcy5kZWVwTGluayYmdGhpcy5oYW5kbGVVcmxDaGFuZ2VNZXNzYWdlKGUuZGF0YSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicndwLXVybC1jaGFuZ2UiLHtkZXRhaWw6ZS5kYXRhfSkpO2JyZWFrO2Nhc2UicGFnZS1sb2FkaW5nIjp0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyd3AtcGFnZS1sb2FkaW5nIix7ZGV0YWlsOmUuZGF0YX0pKTticmVhaztjYXNlImZhdmljb25zIjp0aGlzLnVwZGF0ZUZhdmljb25zJiZXZShlLmRhdGEpfX1oYW5kbGVVcmxDaGFuZ2VNZXNzYWdlKGUpe2NvbnN0e3VybDp0LHRzOmksdmlldzpvLHF1ZXJ5Om4sdGl0bGU6cn09ZTtyJiYodGhpcy50aXRsZT1yKTtjb25zdCBzPXt9O3QmJihzLnVybD10KSxpJiYocy50cz1pKSxuJiYocy5xdWVyeT1uKSxvJiYhdCYmKHMudmlldz1vKTtjb25zdCBhPW5ldyBVUkxTZWFyY2hQYXJhbXMocyksbD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtsLmhhc2g9IiMiK2EudG9TdHJpbmcoKSx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sIiIsbCl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5ub1NhbmRib3gmJmNvbnNvbGUud2FybigiVGhlIG5vU2FuZGJveCBmbGFnIGlzIGRlcHJlY2F0ZWQuIFJlcGxheVdlYi5wYWdlIGRvZXMgbm90IGFkZCBhIHNhbmRib3ggYnkgZGVmYXVsdC4gVG8gZW5hYmxlIHNhbmRib3hpbmcsIHVzZSAnc2FuZGJveCcgZmxhZyBpbnN0ZWFkLiBUaGlzIG1heSByZXN1bHQgaW4gUERGcyBub3QgbG9hZGluZyBhbmQgcGFnZXMgb3BlbmluZyBpbiBuZXcgd2luZG93cywgYnV0IG1heSBiZSBtb3JlIHNlY3VyZSBpbiBzb21lIHNpdHVhdGlvbnMiKSx0aGlzLmRvUmVnaXN0ZXIoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKGU9PnRoaXMuaGFuZGxlTWVzc2FnZShlKSkpLHRoaXMuZGVlcExpbmsmJih0aGlzLnVwZGF0ZUZyb21IYXNoKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLCgoKT0+dGhpcy51cGRhdGVGcm9tSGFzaCgpKSkpLHRoaXMubG9hZEJyb3dzZXJEZWZhdWx0cygpfWxvYWRCcm93c2VyRGVmYXVsdHMoKXt2YXIgZTt2b2lkIDAhPT13aW5kb3cuR2VzdHVyZUV2ZW50JiZ2b2lkIDA9PT13aW5kb3cuU2hhcmVkV29ya2VyJiYodGhpcy5ub1dlYldvcmtlcj0hMCksKG51bGw9PT0oZT1uYXZpZ2F0b3Iuc3RvcmFnZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZXN0aW1hdGUpfHwodGhpcy5ub0NhY2hlPSEwKX11cGRhdGVGcm9tSGFzaCgpe2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKSk7ZS5oYXMoInVybCIpJiYodGhpcy51cmw9ZS5nZXQoInVybCIpKSxlLmhhcygidHMiKSYmKHRoaXMudHM9ZS5nZXQoInRzIikpLGUuaGFzKCJxdWVyeSIpJiYodGhpcy5xdWVyeT1lLmdldCgicXVlcnkiKSksZS5oYXMoInZpZXciKSYmKHRoaXMudmlldz1lLmdldCgidmlldyIpKX1tZXJnZUNvbmZpZ3MoKXtpZighdGhpcy5jdXN0b21Db25maWcpcmV0dXJuIHRoaXMuY29uZmlnO2lmKHRoaXMuY29uZmlnKXtjb25zdCBlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmN1c3RvbUNvbmZpZyksSlNPTi5wYXJzZSh0aGlzLmNvbmZpZykpO3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1yZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21Db25maWcpfXVwZGF0ZWQoZSl7aWYoZS5oYXMoInVybCIpfHxlLmhhcygidHMiKXx8ZS5oYXMoInF1ZXJ5Iil8fGUuaGFzKCJ2aWV3Iil8fGUuaGFzKCJzb3VyY2UiKXx8ZS5oYXMoInNyYyIpKXt0aGlzLmVtYmVkPXRoaXMuZW1iZWR8fCJkZWZhdWx0Iix0aGlzLnNyYyYmKHRoaXMuc291cmNlPXRoaXMuc3JjKTtjb25zdCBlPW5ldyBVUkwodGhpcy5zb3VyY2UsZG9jdW1lbnQuYmFzZVVSSSksdD10aGlzLm1lcmdlQ29uZmlncygpLGk9e3NvdXJjZTplLGN1c3RvbUNvbGw6dGhpcy5jb2xsLGNvbmZpZzp0LGJhc2VQYWdlVXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0sYmFzZVVybFNvdXJjZVByZWZpeDp0aGlzLm5ld1dpbmRvd0Jhc2UsZW1iZWQ6dGhpcy5lbWJlZH07dGhpcy5kZWVwTGlua3x8aS5iYXNlVXJsU291cmNlUHJlZml4fHwoaS5iYXNlVXJsU291cmNlUHJlZml4PSJodHRwczovL3JlcGxheXdlYi5wYWdlLyIpLHRoaXMubm9XZWJXb3JrZXImJihpLm5vV2ViV29ya2VyPSIxIiksdGhpcy5ub0NhY2hlJiYoaS5ub0NhY2hlPSIxIiksdGhpcy5oaWRlT2Zmc2NyZWVuJiYoaS5oaWRlT2Zmc2NyZWVuPSIxIiksImVhZ2VyIj09PXRoaXMubG9hZGluZyYmKGkubG9hZGluZz0iZWFnZXIiKSwic3cuanMiIT09dGhpcy5zd05hbWUmJihpLnN3TmFtZT10aGlzLnN3TmFtZSksdGhpcy51c2VSdWZmbGUmJihpLnJ1ZmZsZT0iMSIpLHRoaXMudXNlQWRibG9jayYmdGhpcy5hZGJsb2NrUnVsZXNVcmwmJihpLmFkYmxvY2tVcmw9dGhpcy5hZGJsb2NrUnVsZXNVcmwpLHRoaXMucGFyYW1TdHJpbmc9bmV3IFVSTFNlYXJjaFBhcmFtcyhpKS50b1N0cmluZygpO2NvbnN0IG89e3VybDp0aGlzLnVybCx0czp0aGlzLnRzLHF1ZXJ5OnRoaXMucXVlcnl9O3RoaXMudXJsfHwoby52aWV3PXRoaXMudmlldyksdGhpcy5oYXNoU3RyaW5nPW5ldyBVUkxTZWFyY2hQYXJhbXMobykudG9TdHJpbmcoKX19c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm4gTmUoaGAKICAgICAgLmxvZ28gewogICAgICAgIG1hcmdpbjogMWVtOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgfQogICAgICAuZXJyb3IgewogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLmZ1bGwtd2lkdGggewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIGlmcmFtZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBtYXJnaW46IDBweDsKICAgICAgfQogICAgICA6aG9zdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICBgKX1yZW5kZXIoKXtyZXR1cm4gUWAKICAgICAgJHt0aGlzLnBhcmFtU3RyaW5nJiZ0aGlzLmhhc2hTdHJpbmcmJnRoaXMuaW5pdGVkP1FgCiAgICAgICAgICAgIDxpZnJhbWUKICAgICAgICAgICAgICBzYW5kYm94PSIkeyRlKHRoaXMuc2FuZGJveD8iYWxsb3ctZG93bmxvYWRzIGFsbG93LW1vZGFscyBhbGxvdy1vcmllbnRhdGlvbi1sb2NrIGFsbG93LXBvaW50ZXItbG9jayAgICAgICAgIGFsbG93LXBvcHVwcyBhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3ggYWxsb3ctcHJlc2VudGF0aW9uIGFsbG93LXNjcmlwdHMgICAgICAgICBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1mb3JtcyI6dm9pZCAwKX0iCiAgICAgICAgICAgICAgQGxvYWQ9IiR7dGhpcy5vbkxvYWR9IgogICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnJlcGxheWJhc2V9JHt0aGlzLnJlcGxheWZpbGV9PyR7dGhpcy5wYXJhbVN0cmluZ30jJHt0aGlzLmhhc2hTdHJpbmd9IgogICAgICAgICAgICAgIGFsbG93PSJhdXRvcGxheSAqOyBmdWxsc2NyZWVuIgogICAgICAgICAgICAgIHRpdGxlPSJSZXBsYXkgb2YgJHt0aGlzLnRpdGxlP2Ake3RoaXMudGl0bGV9OmA6IiJ9ICR7dGhpcy51cmx9IgogICAgICAgICAgICA+PC9pZnJhbWU+CiAgICAgICAgICBgOlFgYH0KICAgICAgJHt0aGlzLmVycm9yTWVzc2FnZX0KICAgIGB9b25Mb2FkKGUpe2lmKHRoaXMuaXNDcm9zc09yaWdpbilyZXR1cm47Y29uc3QgdD1lLnRhcmdldC5jb250ZW50V2luZG93LGk9ZS50YXJnZXQuY29udGVudERvY3VtZW50O2lmKHQubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXImJiF0Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXImJnRoaXMucmVsb2FkQ291bnQ8PTIpcmV0dXJuIHRoaXMucmVsb2FkQ291bnQrKyx2b2lkIHNldFRpbWVvdXQoKCgpPT50LmxvY2F0aW9uLnJlbG9hZCgpKSwxMDApO2lmKHRoaXMucmVsb2FkQ291bnQ9MCx0LmN1c3RvbUVsZW1lbnRzLmdldCh0aGlzLm1haW5FbGVtZW50TmFtZSkpcmV0dXJuO2NvbnN0IG89aS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtvLnNyYz1GbyxpLmhlYWQuYXBwZW5kQ2hpbGQobyl9fXQoW3llKHt0eXBlOlN0cmluZ30pXSxSby5wcm90b3R5cGUsInVybCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJ0cyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJxdWVyeSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJzb3VyY2UiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwic3JjIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxSby5wcm90b3R5cGUsInZpZXciLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwiZW1iZWQiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwicmVwbGF5YmFzZSIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJzd05hbWUiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwidGl0bGUiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwiY29sbCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJjb25maWciLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsImluaXRlZCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJwYXJhbVN0cmluZyIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpTdHJpbmd9KV0sUm8ucHJvdG90eXBlLCJoYXNoU3RyaW5nIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sUm8ucHJvdG90eXBlLCJkZWVwTGluayIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFJvLnByb3RvdHlwZSwidXBkYXRlRmF2aWNvbnMiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsInNhbmRib3giLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsIm5vU2FuZGJveCIsdm9pZCAwKSx0KFt5ZSh7dHlwZTpCb29sZWFufSldLFJvLnByb3RvdHlwZSwibm9XZWJXb3JrZXIiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsIm5vQ2FjaGUiLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsImhpZGVPZmZzY3JlZW4iLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsInVzZUFkYmxvY2siLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwiYWRibG9ja1J1bGVzVXJsIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxSby5wcm90b3R5cGUsIm5ld1dpbmRvd0Jhc2UiLHZvaWQgMCksdChbeWUoe3R5cGU6U3RyaW5nfSldLFJvLnByb3RvdHlwZSwiZXJyb3JNZXNzYWdlIix2b2lkIDApLHQoW3llKHt0eXBlOkJvb2xlYW59KV0sUm8ucHJvdG90eXBlLCJyZXF1aXJlU3ViZG9tYWluSWZyYW1lIix2b2lkIDApLHQoW3llKHt0eXBlOlN0cmluZ30pXSxSby5wcm90b3R5cGUsImxvYWRpbmciLHZvaWQgMCksdChbeWUoe3R5cGU6Qm9vbGVhbn0pXSxSby5wcm90b3R5cGUsInVzZVJ1ZmZsZSIsdm9pZCAwKSx0KFtTZSgiaWZyYW1lIildLFJvLnByb3RvdHlwZSwiaWZyYW1lIix2b2lkIDApLGZ1bmN0aW9uKCl7aSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2N1c3RvbUVsZW1lbnRzLmRlZmluZSgicmVwbGF5LXdlYi1wYWdlIixSbyl9KSl9KCk7Ci8qKgogKiBAbGljZW5zZQogKiBDb3B5cmlnaHQgMjAyMCBHb29nbGUgTExDCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICovCmNvbnN0IE9vPVN5bWJvbC5mb3IoIiIpLFVvPWU9PntpZihlPy5yPT09T28pcmV0dXJuIGU/Ll8kbGl0U3RhdGljJH0sQm89KGUsLi4udCk9Pih7XyRsaXRTdGF0aWMkOnQucmVkdWNlKCgodCxpLG8pPT50KyhlPT57aWYodm9pZCAwIT09ZS5fJGxpdFN0YXRpYyQpcmV0dXJuIGUuXyRsaXRTdGF0aWMkO3Rocm93IEVycm9yKGBWYWx1ZSBwYXNzZWQgdG8gJ2xpdGVyYWwnIGZ1bmN0aW9uIG11c3QgYmUgYSAnbGl0ZXJhbCcgcmVzdWx0OiAke2V9LiBVc2UgJ3Vuc2FmZVN0YXRpYycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dFxuICAgICAgICAgICAgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LmApfSkoaSkrZVtvKzFdKSxlWzBdKSxyOk9vfSksTm89bmV3IE1hcCxxbz1lPT4odCwuLi5pKT0+e2NvbnN0IG89aS5sZW5ndGg7bGV0IG4scjtjb25zdCBzPVtdLGE9W107bGV0IGwsYz0wLGQ9ITE7Zm9yKDtjPG87KXtmb3IobD10W2NdO2M8byYmdm9pZCAwIT09KHI9aVtjXSxuPVVvKHIpKTspbCs9bit0WysrY10sZD0hMDtjIT09byYmYS5wdXNoKHIpLHMucHVzaChsKSxjKyt9aWYoYz09PW8mJnMucHVzaCh0W29dKSxkKXtjb25zdCBlPXMuam9pbigiJCRsaXQkJCIpO3ZvaWQgMD09PSh0PU5vLmdldChlKSkmJihzLnJhdz1zLE5vLnNldChlLHQ9cykpLGk9YX1yZXR1cm4gZSh0LC4uLmkpfSxqbz1xbyhRKSxIbz0ocW8oWiksZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpKTtmdW5jdGlvbiBXbyhlKXtjb25zdCB0PSImIitlKyI7IjtIby5pbm5lckhUTUw9dDtjb25zdCBpPUhvLnRleHRDb250ZW50O3JldHVybig1OSE9PWkuY2hhckNvZGVBdChpLmxlbmd0aC0xKXx8InNlbWkiPT09ZSkmJihpIT09dCYmaSl9ZnVuY3Rpb24gVm8oZSx0LGksbyl7Y29uc3Qgbj1lLmxlbmd0aDtsZXQgcixzPTA7aWYodD10PDA/LXQ+bj8wOm4rdDp0Pm4/bjp0LGk9aT4wP2k6MCxvLmxlbmd0aDwxZTQpcj1BcnJheS5mcm9tKG8pLHIudW5zaGlmdCh0LGkpLGUuc3BsaWNlKC4uLnIpO2Vsc2UgZm9yKGkmJmUuc3BsaWNlKHQsaSk7czxvLmxlbmd0aDspcj1vLnNsaWNlKHMscysxZTQpLHIudW5zaGlmdCh0LDApLGUuc3BsaWNlKC4uLnIpLHMrPTFlNCx0Kz0xZTR9ZnVuY3Rpb24gR28oZSx0KXtyZXR1cm4gZS5sZW5ndGg+MD8oVm8oZSxlLmxlbmd0aCwwLHQpLGUpOnR9Y29uc3QgS289e30uaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gWW8oZSx0KXtsZXQgaTtmb3IoaSBpbiB0KXtjb25zdCBvPShLby5jYWxsKGUsaSk/ZVtpXTp2b2lkIDApfHwoZVtpXT17fSksbj10W2ldO2xldCByO2lmKG4pZm9yKHIgaW4gbil7S28uY2FsbChvLHIpfHwob1tyXT1bXSk7Y29uc3QgZT1uW3JdO1FvKG9bcl0sQXJyYXkuaXNBcnJheShlKT9lOmU/W2VdOltdKX19fWZ1bmN0aW9uIFFvKGUsdCl7bGV0IGk9LTE7Y29uc3Qgbz1bXTtmb3IoOysraTx0Lmxlbmd0aDspKCJhZnRlciI9PT10W2ldLmFkZD9lOm8pLnB1c2godFtpXSk7Vm8oZSwwLDAsbyl9ZnVuY3Rpb24gWm8oZSx0KXtsZXQgaTtmb3IoaSBpbiB0KXtjb25zdCBvPShLby5jYWxsKGUsaSk/ZVtpXTp2b2lkIDApfHwoZVtpXT17fSksbj10W2ldO2xldCByO2lmKG4pZm9yKHIgaW4gbilvW3JdPW5bcl19fWNvbnN0IEpvPXsnIic6InF1b3QiLCImIjoiYW1wIiwiPCI6Imx0IiwiPiI6Imd0In07ZnVuY3Rpb24gWG8oZSl7cmV0dXJuIGUucmVwbGFjZSgvWyImPD5dL2csKGZ1bmN0aW9uKGUpe3JldHVybiImIitKb1tlXSsiOyJ9KSl9ZnVuY3Rpb24gZW4oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvXiB8ICQvZywiIikudG9Mb3dlckNhc2UoKS50b1VwcGVyQ2FzZSgpfWNvbnN0IHRuPXBuKC9bQS1aYS16XS8pLG9uPXBuKC9bXGRBLVphLXpdLyksbm49cG4oL1sjLScqK1wtLTk9P0EtWl4tfl0vKTtmdW5jdGlvbiBybihlKXtyZXR1cm4gbnVsbCE9PWUmJihlPDMyfHwxMjc9PT1lKX1jb25zdCBzbj1wbigvXGQvKSxhbj1wbigvW1xkQS1GYS1mXS8pLGxuPXBuKC9bIS0vOi1AWy1gey1+XS8pO2Z1bmN0aW9uIGNuKGUpe3JldHVybiBudWxsIT09ZSYmZTwtMn1mdW5jdGlvbiBkbihlKXtyZXR1cm4gbnVsbCE9PWUmJihlPDB8fDMyPT09ZSl9ZnVuY3Rpb24gaG4oZSl7cmV0dXJuLTI9PT1lfHwtMT09PWV8fDMyPT09ZX1jb25zdCB1bj1wbigvXHB7UH18XHB7U30vdSksZm49cG4oL1xzLyk7ZnVuY3Rpb24gcG4oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dCYmdD4tMSYmZS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUodCkpfX1mdW5jdGlvbiBtbihlLHQpe2NvbnN0IGk9WG8oZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtsZXQgaT0tMSxvPTAsbj0wO2Zvcig7KytpPGUubGVuZ3RoOyl7Y29uc3Qgcj1lLmNoYXJDb2RlQXQoaSk7bGV0IHM9IiI7aWYoMzc9PT1yJiZvbihlLmNoYXJDb2RlQXQoaSsxKSkmJm9uKGUuY2hhckNvZGVBdChpKzIpKSluPTI7ZWxzZSBpZihyPDEyOCkvWyEjJCYtOz0/LVpfYS16fl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShyKSl8fChzPVN0cmluZy5mcm9tQ2hhckNvZGUocikpO2Vsc2UgaWYocj41NTI5NSYmcjw1NzM0NCl7Y29uc3QgdD1lLmNoYXJDb2RlQXQoaSsxKTtyPDU2MzIwJiZ0PjU2MzE5JiZ0PDU3MzQ0PyhzPVN0cmluZy5mcm9tQ2hhckNvZGUocix0KSxuPTEpOnM9Iu+/vSJ9ZWxzZSBzPVN0cmluZy5mcm9tQ2hhckNvZGUocik7cyYmKHQucHVzaChlLnNsaWNlKG8saSksZW5jb2RlVVJJQ29tcG9uZW50KHMpKSxvPWkrbisxLHM9IiIpLG4mJihpKz1uLG49MCl9cmV0dXJuIHQuam9pbigiIikrZS5zbGljZShvKX0oZXx8IiIpKTtpZighdClyZXR1cm4gaTtjb25zdCBvPWkuaW5kZXhPZigiOiIpLG49aS5pbmRleE9mKCI/Iikscj1pLmluZGV4T2YoIiMiKSxzPWkuaW5kZXhPZigiLyIpO3JldHVybiBvPDB8fHM+LTEmJm8+c3x8bj4tMSYmbz5ufHxyPi0xJiZvPnJ8fHQudGVzdChpLnNsaWNlKDAsbykpP2k6IiJ9Y29uc3QgYm49e30uaGFzT3duUHJvcGVydHksZ249L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSx2bj0vXmh0dHBzPyQvaTtmdW5jdGlvbiB3bihlKXtjb25zdCB0PWV8fHt9O2xldCBpPSEwO2NvbnN0IG89e30sbj1bW11dLHI9W10scz1bXSxhPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9e307bGV0IGk9LTE7Zm9yKDsrK2k8ZS5sZW5ndGg7KVpvKHQsZVtpXSk7cmV0dXJuIHR9KFt7ZW50ZXI6e2Jsb2NrUXVvdGU6ZnVuY3Rpb24oKXtzLnB1c2goITEpLHcoKSxiKCI8YmxvY2txdW90ZT4iKX0sY29kZUZlbmNlZDpmdW5jdGlvbigpe3coKSxiKCI8cHJlPjxjb2RlIiksdSgiZmVuY2VzQ291bnQiLDApfSxjb2RlRmVuY2VkRmVuY2VJbmZvOnAsY29kZUZlbmNlZEZlbmNlTWV0YTpwLGNvZGVJbmRlbnRlZDpmdW5jdGlvbigpe3coKSxiKCI8cHJlPjxjb2RlPiIpfSxjb2RlVGV4dDpmdW5jdGlvbigpe3UoImluQ29kZVRleHQiLCEwKSxiKCI8Y29kZT4iKX0sY29udGVudDpmdW5jdGlvbigpe3UoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX0sZGVmaW5pdGlvbjpmdW5jdGlvbigpe3AoKSxyLnB1c2goe30pfSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6ZnVuY3Rpb24oKXtwKCksdSgiaWdub3JlRW5jb2RlIiwhMCl9LGRlZmluaXRpb25MYWJlbFN0cmluZzpwLGRlZmluaXRpb25UaXRsZVN0cmluZzpwLGVtcGhhc2lzOmZ1bmN0aW9uKCl7YigiPGVtPiIpfSxodG1sRmxvdzpmdW5jdGlvbigpe3coKSxJKCl9LGh0bWxUZXh0OkksaW1hZ2U6ZnVuY3Rpb24oKXtyLnB1c2goe2ltYWdlOiEwfSksaT12b2lkIDB9LGxhYmVsOnAsbGluazpmdW5jdGlvbigpe3IucHVzaCh7fSl9LGxpc3RJdGVtTWFya2VyOmZ1bmN0aW9uKCl7ZigiZXhwZWN0Rmlyc3RJdGVtIik/YigiPiIpOmsoKTt3KCksYigiPGxpPiIpLHUoImV4cGVjdEZpcnN0SXRlbSIpLHUoImxhc3RXYXNUYWciKX0sbGlzdEl0ZW1WYWx1ZTpmdW5jdGlvbihlKXtpZihmKCJleHBlY3RGaXJzdEl0ZW0iKSl7Y29uc3QgdD1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZShlKSwxMCk7MSE9PXQmJmIoJyBzdGFydD0iJyt5KFN0cmluZyh0KSkrJyInKX19LGxpc3RPcmRlcmVkOmZ1bmN0aW9uKGUpe3MucHVzaCghZS5fbG9vc2UpLHcoKSxiKCI8b2wiKSx1KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX0sbGlzdFVub3JkZXJlZDpmdW5jdGlvbihlKXtzLnB1c2goIWUuX2xvb3NlKSx3KCksYigiPHVsIiksdSgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9LHBhcmFncmFwaDpmdW5jdGlvbigpe3Nbcy5sZW5ndGgtMV18fCh3KCksYigiPHA+IikpO3UoInNsdXJwQWxsTGluZUVuZGluZ3MiKX0scmVmZXJlbmNlOnAscmVzb3VyY2U6ZnVuY3Rpb24oKXtwKCkscltyLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj0iIn0scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpmdW5jdGlvbigpe3AoKSx1KCJpZ25vcmVFbmNvZGUiLCEwKX0scmVzb3VyY2VUaXRsZVN0cmluZzpwLHNldGV4dEhlYWRpbmc6ZnVuY3Rpb24oKXtwKCksdSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfSxzdHJvbmc6ZnVuY3Rpb24oKXtiKCI8c3Ryb25nPiIpfX0sZXhpdDp7YXR4SGVhZGluZzpmdW5jdGlvbigpe2IoIjwvaCIrZigiaGVhZGluZ1JhbmsiKSsiPiIpLHUoImhlYWRpbmdSYW5rIil9LGF0eEhlYWRpbmdTZXF1ZW5jZTpmdW5jdGlvbihlKXtpZihmKCJoZWFkaW5nUmFuayIpKXJldHVybjt1KCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShlKS5sZW5ndGgpLHcoKSxiKCI8aCIrZigiaGVhZGluZ1JhbmsiKSsiPiIpfSxhdXRvbGlua0VtYWlsOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5zbGljZVNlcmlhbGl6ZShlKTtiKCc8YSBocmVmPSInK21uKCJtYWlsdG86Iit0KSsnIj4nKSxnKHkodCkpLGIoIjwvYT4iKX0sYXV0b2xpbmtQcm90b2NvbDpmdW5jdGlvbihlKXtjb25zdCBpPXRoaXMuc2xpY2VTZXJpYWxpemUoZSk7YignPGEgaHJlZj0iJyttbihpLHQuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6Z24pKyciPicpLGcoeShpKSksYigiPC9hPiIpfSxibG9ja1F1b3RlOmZ1bmN0aW9uKCl7cy5wb3AoKSx3KCksYigiPC9ibG9ja3F1b3RlPiIpLHUoInNsdXJwQWxsTGluZUVuZGluZ3MiKX0sY2hhcmFjdGVyRXNjYXBlVmFsdWU6eixjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpMLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6TCxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpmdW5jdGlvbihlKXtjb25zdCB0PXRoaXMuc2xpY2VTZXJpYWxpemUoZSk7Zyh5KGYoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT9mdW5jdGlvbihlLHQpe2NvbnN0IGk9TnVtYmVyLnBhcnNlSW50KGUsdCk7cmV0dXJuIGk8OXx8MTE9PT1pfHxpPjEzJiZpPDMyfHxpPjEyNiYmaTwxNjB8fGk+NTUyOTUmJmk8NTczNDR8fGk+NjQ5NzUmJmk8NjUwMDh8fCEoNjU1MzUmfmkpfHw2NTUzND09KDY1NTM1JmkpfHxpPjExMTQxMTE/Iu+/vSI6U3RyaW5nLmZyb21Db2RlUG9pbnQoaSl9KHQsImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPT09ZigiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpPzEwOjE2KTpXbyh0KSkpLHUoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKX0sY29kZUZlbmNlZDpTLGNvZGVGZW5jZWRGZW5jZTpmdW5jdGlvbigpe2NvbnN0IGU9ZigiZmVuY2VzQ291bnQiKXx8MDtlfHwoYigiPiIpLHUoInNsdXJwT25lTGluZUVuZGluZyIsITApKTt1KCJmZW5jZXNDb3VudCIsZSsxKX0sY29kZUZlbmNlZEZlbmNlSW5mbzpmdW5jdGlvbigpe2IoJyBjbGFzcz0ibGFuZ3VhZ2UtJyttKCkrJyInKX0sY29kZUZlbmNlZEZlbmNlTWV0YTp4LGNvZGVGbG93VmFsdWU6ZnVuY3Rpb24oZSl7Zyh5KHRoaXMuc2xpY2VTZXJpYWxpemUoZSkpKSx1KCJmbG93Q29kZVNlZW5EYXRhIiwhMCl9LGNvZGVJbmRlbnRlZDpTLGNvZGVUZXh0OmZ1bmN0aW9uKCl7dSgiaW5Db2RlVGV4dCIpLGIoIjwvY29kZT4iKX0sY29kZVRleHREYXRhOnosZGF0YTp6LGRlZmluaXRpb246ZnVuY3Rpb24oKXtjb25zdCBlPWVuKHJbci5sZW5ndGgtMV0ubGFiZWxJZCk7bSgpLGJuLmNhbGwobyxlKXx8KG9bZV09cltyLmxlbmd0aC0xXSk7ci5wb3AoKX0sZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOmZ1bmN0aW9uKCl7cltyLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj1tKCksdSgiaWdub3JlRW5jb2RlIil9LGRlZmluaXRpb25MYWJlbFN0cmluZzpmdW5jdGlvbihlKXttKCkscltyLmxlbmd0aC0xXS5sYWJlbElkPXRoaXMuc2xpY2VTZXJpYWxpemUoZSl9LGRlZmluaXRpb25UaXRsZVN0cmluZzpmdW5jdGlvbigpe3Jbci5sZW5ndGgtMV0udGl0bGU9bSgpfSxlbXBoYXNpczpmdW5jdGlvbigpe2IoIjwvZW0+Iil9LGhhcmRCcmVha0VzY2FwZTpfLGhhcmRCcmVha1RyYWlsaW5nOl8saHRtbEZsb3c6QyxodG1sRmxvd0RhdGE6eixodG1sVGV4dDpDLGh0bWxUZXh0RGF0YTp6LGltYWdlOiQsbGFiZWw6ZnVuY3Rpb24oKXtyW3IubGVuZ3RoLTFdLmxhYmVsPW0oKX0sbGFiZWxUZXh0OmZ1bmN0aW9uKGUpe3Jbci5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKGUpfSxsaW5lRW5kaW5nOmZ1bmN0aW9uKGUpe2lmKGYoInNsdXJwQWxsTGluZUVuZGluZ3MiKSlyZXR1cm47aWYoZigic2x1cnBPbmVMaW5lRW5kaW5nIikpcmV0dXJuIHZvaWQgdSgic2x1cnBPbmVMaW5lRW5kaW5nIik7aWYoZigiaW5Db2RlVGV4dCIpKXJldHVybiB2b2lkIGcoIiAiKTtnKHkodGhpcy5zbGljZVNlcmlhbGl6ZShlKSkpfSxsaW5rOiQsbGlzdE9yZGVyZWQ6ZnVuY3Rpb24oKXtrKCkscy5wb3AoKSx2KCksYigiPC9vbD4iKX0sbGlzdFVub3JkZXJlZDpmdW5jdGlvbigpe2soKSxzLnBvcCgpLHYoKSxiKCI8L3VsPiIpfSxwYXJhZ3JhcGg6ZnVuY3Rpb24oKXtzW3MubGVuZ3RoLTFdP3UoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKTpiKCI8L3A+Iil9LHJlZmVyZW5jZTp4LHJlZmVyZW5jZVN0cmluZzpmdW5jdGlvbihlKXtyW3IubGVuZ3RoLTFdLnJlZmVyZW5jZUlkPXRoaXMuc2xpY2VTZXJpYWxpemUoZSl9LHJlc291cmNlOngscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpmdW5jdGlvbigpe3Jbci5sZW5ndGgtMV0uZGVzdGluYXRpb249bSgpLHUoImlnbm9yZUVuY29kZSIpfSxyZXNvdXJjZVRpdGxlU3RyaW5nOmZ1bmN0aW9uKCl7cltyLmxlbmd0aC0xXS50aXRsZT1tKCl9LHNldGV4dEhlYWRpbmc6ZnVuY3Rpb24oKXtjb25zdCBlPW0oKTt3KCksYigiPGgiK2YoImhlYWRpbmdSYW5rIikrIj4iKSxnKGUpLGIoIjwvaCIrZigiaGVhZGluZ1JhbmsiKSsiPiIpLHUoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx1KCJoZWFkaW5nUmFuayIpfSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOmZ1bmN0aW9uKGUpe3UoImhlYWRpbmdSYW5rIiw2MT09PXRoaXMuc2xpY2VTZXJpYWxpemUoZSkuY2hhckNvZGVBdCgwKT8xOjIpfSxzZXRleHRIZWFkaW5nVGV4dDpmdW5jdGlvbigpe3UoInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX0sc3Ryb25nOmZ1bmN0aW9uKCl7YigiPC9zdHJvbmc+Iil9LHRoZW1hdGljQnJlYWs6ZnVuY3Rpb24oKXt3KCksYigiPGhyIC8+Iil9fX0sLi4udC5odG1sRXh0ZW5zaW9uc3x8W11dKSxsPXtkZWZpbml0aW9uczpvLHRpZ2h0U3RhY2s6c30sYz17YnVmZmVyOnAsZW5jb2RlOnksZ2V0RGF0YTpmLGxpbmVFbmRpbmdJZk5lZWRlZDp3LG9wdGlvbnM6dCxyYXc6ZyxyZXN1bWU6bSxzZXREYXRhOnUsdGFnOmJ9O2xldCBkPXQuZGVmYXVsdExpbmVFbmRpbmc7cmV0dXJuIGZ1bmN0aW9uKGUpe2xldCB0PS0xLGk9MDtjb25zdCBvPVtdO2xldCByPVtdLHM9W107Zm9yKDsrK3Q8ZS5sZW5ndGg7KWR8fCJsaW5lRW5kaW5nIiE9PWVbdF1bMV0udHlwZSYmImxpbmVFbmRpbmdCbGFuayIhPT1lW3RdWzFdLnR5cGV8fChkPWVbdF1bMl0uc2xpY2VTZXJpYWxpemUoZVt0XVsxXSkpLCJsaXN0T3JkZXJlZCIhPT1lW3RdWzFdLnR5cGUmJiJsaXN0VW5vcmRlcmVkIiE9PWVbdF1bMV0udHlwZXx8KCJlbnRlciI9PT1lW3RdWzBdP28ucHVzaCh0KTpoKGUuc2xpY2Uoby5wb3AoKSx0KSkpLCJkZWZpbml0aW9uIj09PWVbdF1bMV0udHlwZSYmKCJlbnRlciI9PT1lW3RdWzBdPyhzPUdvKHMsZS5zbGljZShpLHQpKSxpPXQpOihyPUdvKHIsZS5zbGljZShpLHQrMSkpLGk9dCsxKSk7cj1HbyhyLHMpLHI9R28ocixlLnNsaWNlKGkpKSx0PS0xO2NvbnN0IGw9cjthLmVudGVyLm51bGwmJmEuZW50ZXIubnVsbC5jYWxsKGMpO2Zvcig7Kyt0PGUubGVuZ3RoOyl7Y29uc3QgZT1hW2xbdF1bMF1dLGk9bFt0XVsxXS50eXBlLG89ZVtpXTtibi5jYWxsKGUsaSkmJm8mJm8uY2FsbCh7c2xpY2VTZXJpYWxpemU6bFt0XVsyXS5zbGljZVNlcmlhbGl6ZSwuLi5jfSxsW3RdWzFdKX1hLmV4aXQubnVsbCYmYS5leGl0Lm51bGwuY2FsbChjKTtyZXR1cm4gblswXS5qb2luKCIiKX07ZnVuY3Rpb24gaChlKXtjb25zdCB0PWUubGVuZ3RoO2xldCBpLG89MCxuPTAscj0hMTtmb3IoOysrbzx0Oyl7Y29uc3QgdD1lW29dO2lmKHRbMV0uX2NvbnRhaW5lcilpPXZvaWQgMCwiZW50ZXIiPT09dFswXT9uKys6bi0tO2Vsc2Ugc3dpdGNoKHRbMV0udHlwZSl7Y2FzZSJsaXN0SXRlbVByZWZpeCI6ImV4aXQiPT09dFswXSYmKGk9ITApO2JyZWFrO2Nhc2UibGluZVByZWZpeCI6YnJlYWs7Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOiJlbnRlciIhPT10WzBdfHxufHwoaT9pPXZvaWQgMDpyPSEwKTticmVhaztkZWZhdWx0Omk9dm9pZCAwfX1lWzBdWzFdLl9sb29zZT1yfWZ1bmN0aW9uIHUoZSx0KXtsW2VdPXR9ZnVuY3Rpb24gZihlKXtyZXR1cm4gbFtlXX1mdW5jdGlvbiBwKCl7bi5wdXNoKFtdKX1mdW5jdGlvbiBtKCl7cmV0dXJuIG4ucG9wKCkuam9pbigiIil9ZnVuY3Rpb24gYihlKXtpJiYodSgibGFzdFdhc1RhZyIsITApLG5bbi5sZW5ndGgtMV0ucHVzaChlKSl9ZnVuY3Rpb24gZyhlKXt1KCJsYXN0V2FzVGFnIiksbltuLmxlbmd0aC0xXS5wdXNoKGUpfWZ1bmN0aW9uIHYoKXtnKGR8fCJcbiIpfWZ1bmN0aW9uIHcoKXtjb25zdCBlPW5bbi5sZW5ndGgtMV0sdD1lW2UubGVuZ3RoLTFdLGk9dD90LmNoYXJDb2RlQXQodC5sZW5ndGgtMSk6bnVsbDsxMCE9PWkmJjEzIT09aSYmbnVsbCE9PWkmJnYoKX1mdW5jdGlvbiB5KGUpe3JldHVybiBmKCJpZ25vcmVFbmNvZGUiKT9lOlhvKGUpfWZ1bmN0aW9uIHgoKXttKCl9ZnVuY3Rpb24gaygpe2YoImxhc3RXYXNUYWciKSYmIWYoInNsdXJwQWxsTGluZUVuZGluZ3MiKSYmdygpLGIoIjwvbGk+IiksdSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFMoKXtjb25zdCBlPWYoImZlbmNlc0NvdW50Iik7dm9pZCAwIT09ZSYmZTwyJiZsLnRpZ2h0U3RhY2subGVuZ3RoPjAmJiFmKCJsYXN0V2FzVGFnIikmJnYoKSxmKCJmbG93Q29kZVNlZW5EYXRhIikmJncoKSxiKCI8L2NvZGU+PC9wcmU+Iiksdm9pZCAwIT09ZSYmZTwyJiZ3KCksdSgiZmxvd0NvZGVTZWVuRGF0YSIpLHUoImZlbmNlc0NvdW50IiksdSgic2x1cnBPbmVMaW5lRW5kaW5nIil9ZnVuY3Rpb24gJCgpe2xldCBlPXIubGVuZ3RoLTE7Y29uc3Qgbj1yW2VdLHM9bi5yZWZlcmVuY2VJZHx8bi5sYWJlbElkLGE9dm9pZCAwPT09bi5kZXN0aW5hdGlvbj9vW2VuKHMpXTpuO2ZvcihpPSEwO2UtLTspaWYocltlXS5pbWFnZSl7aT12b2lkIDA7YnJlYWt9bi5pbWFnZT8oYignPGltZyBzcmM9IicrbW4oYS5kZXN0aW5hdGlvbix0LmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOnZuKSsnIiBhbHQ9IicpLGcobi5sYWJlbCksYignIicpKTpiKCc8YSBocmVmPSInK21uKGEuZGVzdGluYXRpb24sdC5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpnbikrJyInKSxiKGEudGl0bGU/JyB0aXRsZT0iJythLnRpdGxlKyciJzoiIiksbi5pbWFnZT9iKCIgLz4iKTooYigiPiIpLGcobi5sYWJlbCksYigiPC9hPiIpKSxyLnBvcCgpfWZ1bmN0aW9uIHooZSl7Zyh5KHRoaXMuc2xpY2VTZXJpYWxpemUoZSkpKX1mdW5jdGlvbiBfKCl7YigiPGJyIC8+Iil9ZnVuY3Rpb24gQygpe3UoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIEkoKXt0LmFsbG93RGFuZ2Vyb3VzSHRtbCYmdSgiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gTChlKXt1KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixlLnR5cGUpfX1mdW5jdGlvbiB5bihlLHQsaSxvKXtjb25zdCBuPW8/by0xOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtsZXQgcj0wO3JldHVybiBmdW5jdGlvbihvKXtpZihobihvKSlyZXR1cm4gZS5lbnRlcihpKSxzKG8pO3JldHVybiB0KG8pfTtmdW5jdGlvbiBzKG8pe3JldHVybiBobihvKSYmcisrPG4/KGUuY29uc3VtZShvKSxzKTooZS5leGl0KGkpLHQobykpfX1jb25zdCB4bj17dG9rZW5pemU6ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5jb250ZW50SW5pdGlhbCwoZnVuY3Rpb24oaSl7aWYobnVsbD09PWkpcmV0dXJuIHZvaWQgZS5jb25zdW1lKGkpO3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGkpLGUuZXhpdCgibGluZUVuZGluZyIpLHluKGUsdCwibGluZVByZWZpeCIpfSksKGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJwYXJhZ3JhcGgiKSxvKHQpfSkpO2xldCBpO3JldHVybiB0O2Z1bmN0aW9uIG8odCl7Y29uc3Qgbz1lLmVudGVyKCJjaHVua1RleHQiLHtjb250ZW50VHlwZToidGV4dCIscHJldmlvdXM6aX0pO3JldHVybiBpJiYoaS5uZXh0PW8pLGk9byxuKHQpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIG51bGw9PT10PyhlLmV4aXQoImNodW5rVGV4dCIpLGUuZXhpdCgicGFyYWdyYXBoIiksdm9pZCBlLmNvbnN1bWUodCkpOmNuKHQpPyhlLmNvbnN1bWUodCksZS5leGl0KCJjaHVua1RleHQiKSxvKTooZS5jb25zdW1lKHQpLG4pfX19O2NvbnN0IGtuPXt0b2tlbml6ZTpmdW5jdGlvbihlKXtjb25zdCB0PXRoaXMsaT1bXTtsZXQgbyxuLHIscz0wO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7aWYoczxpLmxlbmd0aCl7Y29uc3Qgbj1pW3NdO3JldHVybiB0LmNvbnRhaW5lclN0YXRlPW5bMV0sZS5hdHRlbXB0KG5bMF0uY29udGludWF0aW9uLGwsYykobyl9cmV0dXJuIGMobyl9ZnVuY3Rpb24gbChlKXtpZihzKyssdC5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93KXt0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLG8mJnYoKTtjb25zdCBpPXQuZXZlbnRzLmxlbmd0aDtsZXQgbixyPWk7Zm9yKDtyLS07KWlmKCJleGl0Ij09PXQuZXZlbnRzW3JdWzBdJiYiY2h1bmtGbG93Ij09PXQuZXZlbnRzW3JdWzFdLnR5cGUpe249dC5ldmVudHNbcl1bMV0uZW5kO2JyZWFrfWcocyk7bGV0IGE9aTtmb3IoO2E8dC5ldmVudHMubGVuZ3RoOyl0LmV2ZW50c1thXVsxXS5lbmQ9ey4uLm59LGErKztyZXR1cm4gVm8odC5ldmVudHMscisxLDAsdC5ldmVudHMuc2xpY2UoaSkpLHQuZXZlbnRzLmxlbmd0aD1hLGMoZSl9cmV0dXJuIGEoZSl9ZnVuY3Rpb24gYyhuKXtpZihzPT09aS5sZW5ndGgpe2lmKCFvKXJldHVybiB1KG4pO2lmKG8uY3VycmVudENvbnN0cnVjdCYmby5jdXJyZW50Q29uc3RydWN0LmNvbmNyZXRlKXJldHVybiBwKG4pO3QuaW50ZXJydXB0PUJvb2xlYW4oby5jdXJyZW50Q29uc3RydWN0JiYhby5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5jaGVjayhTbixkLGgpKG4pfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIG8mJnYoKSxnKHMpLHUoZSl9ZnVuY3Rpb24gaChlKXtyZXR1cm4gdC5wYXJzZXIubGF6eVt0Lm5vdygpLmxpbmVdPXMhPT1pLmxlbmd0aCxyPXQubm93KCkub2Zmc2V0LHAoZSl9ZnVuY3Rpb24gdShpKXtyZXR1cm4gdC5jb250YWluZXJTdGF0ZT17fSxlLmF0dGVtcHQoU24sZixwKShpKX1mdW5jdGlvbiBmKGUpe3JldHVybiBzKyssaS5wdXNoKFt0LmN1cnJlbnRDb25zdHJ1Y3QsdC5jb250YWluZXJTdGF0ZV0pLHUoZSl9ZnVuY3Rpb24gcChpKXtyZXR1cm4gbnVsbD09PWk/KG8mJnYoKSxnKDApLHZvaWQgZS5jb25zdW1lKGkpKToobz1vfHx0LnBhcnNlci5mbG93KHQubm93KCkpLGUuZW50ZXIoImNodW5rRmxvdyIse190b2tlbml6ZXI6byxjb250ZW50VHlwZToiZmxvdyIscHJldmlvdXM6bn0pLG0oaSkpfWZ1bmN0aW9uIG0oaSl7cmV0dXJuIG51bGw9PT1pPyhiKGUuZXhpdCgiY2h1bmtGbG93IiksITApLGcoMCksdm9pZCBlLmNvbnN1bWUoaSkpOmNuKGkpPyhlLmNvbnN1bWUoaSksYihlLmV4aXQoImNodW5rRmxvdyIpKSxzPTAsdC5pbnRlcnJ1cHQ9dm9pZCAwLGEpOihlLmNvbnN1bWUoaSksbSl9ZnVuY3Rpb24gYihlLGkpe2NvbnN0IGE9dC5zbGljZVN0cmVhbShlKTtpZihpJiZhLnB1c2gobnVsbCksZS5wcmV2aW91cz1uLG4mJihuLm5leHQ9ZSksbj1lLG8uZGVmaW5lU2tpcChlLnN0YXJ0KSxvLndyaXRlKGEpLHQucGFyc2VyLmxhenlbZS5zdGFydC5saW5lXSl7bGV0IGU9by5ldmVudHMubGVuZ3RoO2Zvcig7ZS0tOylpZihvLmV2ZW50c1tlXVsxXS5zdGFydC5vZmZzZXQ8ciYmKCFvLmV2ZW50c1tlXVsxXS5lbmR8fG8uZXZlbnRzW2VdWzFdLmVuZC5vZmZzZXQ+cikpcmV0dXJuO2NvbnN0IGk9dC5ldmVudHMubGVuZ3RoO2xldCBuLGEsbD1pO2Zvcig7bC0tOylpZigiZXhpdCI9PT10LmV2ZW50c1tsXVswXSYmImNodW5rRmxvdyI9PT10LmV2ZW50c1tsXVsxXS50eXBlKXtpZihuKXthPXQuZXZlbnRzW2xdWzFdLmVuZDticmVha31uPSEwfWZvcihnKHMpLGU9aTtlPHQuZXZlbnRzLmxlbmd0aDspdC5ldmVudHNbZV1bMV0uZW5kPXsuLi5hfSxlKys7Vm8odC5ldmVudHMsbCsxLDAsdC5ldmVudHMuc2xpY2UoaSkpLHQuZXZlbnRzLmxlbmd0aD1lfX1mdW5jdGlvbiBnKG8pe2xldCBuPWkubGVuZ3RoO2Zvcig7bi0tID5vOyl7Y29uc3Qgbz1pW25dO3QuY29udGFpbmVyU3RhdGU9b1sxXSxvWzBdLmV4aXQuY2FsbCh0LGUpfWkubGVuZ3RoPW99ZnVuY3Rpb24gdigpe28ud3JpdGUoW251bGxdKSxuPXZvaWQgMCxvPXZvaWQgMCx0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwfX19LFNuPXt0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIHluKGUsZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZG9jdW1lbnQsdCxpKSwibGluZVByZWZpeCIsdGhpcy5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KX19O2NvbnN0ICRuPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGhuKHQpP3luKGUsbywibGluZVByZWZpeCIpKHQpOm8odCl9O2Z1bmN0aW9uIG8oZSl7cmV0dXJuIG51bGw9PT1lfHxjbihlKT90KGUpOmkoZSl9fX07Y2xhc3Mgem57Y29uc3RydWN0b3IoZSl7dGhpcy5sZWZ0PWU/Wy4uLmVdOltdLHRoaXMucmlnaHQ9W119Z2V0KGUpe2lmKGU8MHx8ZT49dGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ2Fubm90IGFjY2VzcyBpbmRleCBgIitlKyJgIGluIGEgc3BsaWNlIGJ1ZmZlciBvZiBzaXplIGAiKyh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKSsiYCIpO3JldHVybiBlPHRoaXMubGVmdC5sZW5ndGg/dGhpcy5sZWZ0W2VdOnRoaXMucmlnaHRbdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoLTFdfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aH1zaGlmdCgpe3JldHVybiB0aGlzLnNldEN1cnNvcigwKSx0aGlzLnJpZ2h0LnBvcCgpfXNsaWNlKGUsdCl7Y29uc3QgaT1udWxsPT10P051bWJlci5QT1NJVElWRV9JTkZJTklUWTp0O3JldHVybiBpPHRoaXMubGVmdC5sZW5ndGg/dGhpcy5sZWZ0LnNsaWNlKGUsaSk6ZT50aGlzLmxlZnQubGVuZ3RoP3RoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtaSt0aGlzLmxlZnQubGVuZ3RoLHRoaXMucmlnaHQubGVuZ3RoLWUrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpOnRoaXMubGVmdC5zbGljZShlKS5jb25jYXQodGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pK3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKSl9c3BsaWNlKGUsdCxpKXtjb25zdCBvPXR8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyhlKSk7Y29uc3Qgbj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1vLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7cmV0dXJuIGkmJl9uKHRoaXMubGVmdCxpKSxuLnJldmVyc2UoKX1wb3AoKXtyZXR1cm4gdGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucG9wKCl9cHVzaChlKXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHRoaXMubGVmdC5wdXNoKGUpfXB1c2hNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksX24odGhpcy5sZWZ0LGUpfXVuc2hpZnQoZSl7dGhpcy5zZXRDdXJzb3IoMCksdGhpcy5yaWdodC5wdXNoKGUpfXVuc2hpZnRNYW55KGUpe3RoaXMuc2V0Q3Vyc29yKDApLF9uKHRoaXMucmlnaHQsZS5yZXZlcnNlKCkpfXNldEN1cnNvcihlKXtpZighKGU9PT10aGlzLmxlZnQubGVuZ3RofHxlPnRoaXMubGVmdC5sZW5ndGgmJjA9PT10aGlzLnJpZ2h0Lmxlbmd0aHx8ZTwwJiYwPT09dGhpcy5sZWZ0Lmxlbmd0aCkpaWYoZTx0aGlzLmxlZnQubGVuZ3RoKXtjb25zdCB0PXRoaXMubGVmdC5zcGxpY2UoZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO19uKHRoaXMucmlnaHQsdC5yZXZlcnNlKCkpfWVsc2V7Y29uc3QgdD10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLWUsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtfbih0aGlzLmxlZnQsdC5yZXZlcnNlKCkpfX19ZnVuY3Rpb24gX24oZSx0KXtsZXQgaT0wO2lmKHQubGVuZ3RoPDFlNCllLnB1c2goLi4udCk7ZWxzZSBmb3IoO2k8dC5sZW5ndGg7KWUucHVzaCguLi50LnNsaWNlKGksaSsxZTQpKSxpKz0xZTR9ZnVuY3Rpb24gQ24oZSl7Y29uc3QgdD17fTtsZXQgaSxvLG4scixzLGEsbCxjPS0xO2NvbnN0IGQ9bmV3IHpuKGUpO2Zvcig7KytjPGQubGVuZ3RoOyl7Zm9yKDtjIGluIHQ7KWM9dFtjXTtpZihpPWQuZ2V0KGMpLGMmJiJjaHVua0Zsb3ciPT09aVsxXS50eXBlJiYibGlzdEl0ZW1QcmVmaXgiPT09ZC5nZXQoYy0xKVsxXS50eXBlJiYoYT1pWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPGEubGVuZ3RoJiYibGluZUVuZGluZ0JsYW5rIj09PWFbbl1bMV0udHlwZSYmKG4rPTIpLG48YS5sZW5ndGgmJiJjb250ZW50Ij09PWFbbl1bMV0udHlwZSkpZm9yKDsrK248YS5sZW5ndGgmJiJjb250ZW50IiE9PWFbbl1bMV0udHlwZTspImNodW5rVGV4dCI9PT1hW25dWzFdLnR5cGUmJihhW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKCJlbnRlciI9PT1pWzBdKWlbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKHQsSW4oZCxjKSksYz10W2NdLGw9ITApO2Vsc2UgaWYoaVsxXS5fY29udGFpbmVyKXtmb3Iobj1jLG89dm9pZCAwO24tLSYmKHI9ZC5nZXQobiksImxpbmVFbmRpbmciPT09clsxXS50eXBlfHwibGluZUVuZGluZ0JsYW5rIj09PXJbMV0udHlwZSk7KSJlbnRlciI9PT1yWzBdJiYobyYmKGQuZ2V0KG8pWzFdLnR5cGU9ImxpbmVFbmRpbmdCbGFuayIpLHJbMV0udHlwZT0ibGluZUVuZGluZyIsbz1uKTtvJiYoaVsxXS5lbmQ9ey4uLmQuZ2V0KG8pWzFdLnN0YXJ0fSxzPWQuc2xpY2UobyxjKSxzLnVuc2hpZnQoaSksZC5zcGxpY2UobyxjLW8rMSxzKSl9fXJldHVybiBWbyhlLDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGQuc2xpY2UoMCkpLCFsfWZ1bmN0aW9uIEluKGUsdCl7Y29uc3QgaT1lLmdldCh0KVsxXSxvPWUuZ2V0KHQpWzJdO2xldCBuPXQtMTtjb25zdCByPVtdLHM9aS5fdG9rZW5pemVyfHxvLnBhcnNlcltpLmNvbnRlbnRUeXBlXShpLnN0YXJ0KSxhPXMuZXZlbnRzLGw9W10sYz17fTtsZXQgZCxoLHU9LTEsZj1pLHA9MCxtPTA7Y29uc3QgYj1bbV07Zm9yKDtmOyl7Zm9yKDtlLmdldCgrK24pWzFdIT09ZjspO3IucHVzaChuKSxmLl90b2tlbml6ZXJ8fChkPW8uc2xpY2VTdHJlYW0oZiksZi5uZXh0fHxkLnB1c2gobnVsbCksaCYmcy5kZWZpbmVTa2lwKGYuc3RhcnQpLGYuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtJiYocy5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtPSEwKSxzLndyaXRlKGQpLGYuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtJiYocy5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtPXZvaWQgMCkpLGg9ZixmPWYubmV4dH1mb3IoZj1pOysrdTxhLmxlbmd0aDspImV4aXQiPT09YVt1XVswXSYmImVudGVyIj09PWFbdS0xXVswXSYmYVt1XVsxXS50eXBlPT09YVt1LTFdWzFdLnR5cGUmJmFbdV1bMV0uc3RhcnQubGluZSE9PWFbdV1bMV0uZW5kLmxpbmUmJihtPXUrMSxiLnB1c2gobSksZi5fdG9rZW5pemVyPXZvaWQgMCxmLnByZXZpb3VzPXZvaWQgMCxmPWYubmV4dCk7Zm9yKHMuZXZlbnRzPVtdLGY/KGYuX3Rva2VuaXplcj12b2lkIDAsZi5wcmV2aW91cz12b2lkIDApOmIucG9wKCksdT1iLmxlbmd0aDt1LS07KXtjb25zdCB0PWEuc2xpY2UoYlt1XSxiW3UrMV0pLGk9ci5wb3AoKTtsLnB1c2goW2ksaSt0Lmxlbmd0aC0xXSksZS5zcGxpY2UoaSwyLHQpfWZvcihsLnJldmVyc2UoKSx1PS0xOysrdTxsLmxlbmd0aDspY1twK2xbdV1bMF1dPXArbFt1XVsxXSxwKz1sW3VdWzFdLWxbdV1bMF0tMTtyZXR1cm4gY31jb25zdCBMbj17cmVzb2x2ZTpmdW5jdGlvbihlKXtyZXR1cm4gQ24oZSksZX0sdG9rZW5pemU6ZnVuY3Rpb24oZSx0KXtsZXQgaTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoImNvbnRlbnQiKSxpPWUuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLG8odCl9O2Z1bmN0aW9uIG8odCl7cmV0dXJuIG51bGw9PT10P24odCk6Y24odCk/ZS5jaGVjayhFbixyLG4pKHQpOihlLmNvbnN1bWUodCksbyl9ZnVuY3Rpb24gbihpKXtyZXR1cm4gZS5leGl0KCJjaHVua0NvbnRlbnQiKSxlLmV4aXQoImNvbnRlbnQiKSx0KGkpfWZ1bmN0aW9uIHIodCl7cmV0dXJuIGUuY29uc3VtZSh0KSxlLmV4aXQoImNodW5rQ29udGVudCIpLGkubmV4dD1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6aX0pLGk9aS5uZXh0LG99fX0sRW49e3BhcnRpYWw6ITAsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZXhpdCgiY2h1bmtDb250ZW50IiksZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxpbmVFbmRpbmciKSx5bihlLG4sImxpbmVQcmVmaXgiKX07ZnVuY3Rpb24gbihuKXtpZihudWxsPT09bnx8Y24obikpcmV0dXJuIGkobik7Y29uc3Qgcj1vLmV2ZW50c1tvLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIW8ucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKSYmciYmImxpbmVQcmVmaXgiPT09clsxXS50eXBlJiZyWzJdLnNsaWNlU2VyaWFsaXplKHJbMV0sITApLmxlbmd0aD49ND90KG4pOmUuaW50ZXJydXB0KG8ucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxpLHQpKG4pfX19O2NvbnN0IEFuPXt0b2tlbml6ZTpmdW5jdGlvbihlKXtjb25zdCB0PXRoaXMsaT1lLmF0dGVtcHQoJG4sKGZ1bmN0aW9uKG8pe2lmKG51bGw9PT1vKXJldHVybiB2b2lkIGUuY29uc3VtZShvKTtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZ0JsYW5rIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZ0JsYW5rIiksdC5jdXJyZW50Q29uc3RydWN0PXZvaWQgMCxpfSksZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsbyx5bihlLGUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csbyxlLmF0dGVtcHQoTG4sbykpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gaTtmdW5jdGlvbiBvKG8pe2lmKG51bGwhPT1vKXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLHQuY3VycmVudENvbnN0cnVjdD12b2lkIDAsaTtlLmNvbnN1bWUobyl9fX07Y29uc3QgVG49e3Jlc29sdmVBbGw6TW4oKX0sUG49Rm4oInN0cmluZyIpLERuPUZuKCJ0ZXh0Iik7ZnVuY3Rpb24gRm4oZSl7cmV0dXJue3Jlc29sdmVBbGw6TW4oInRleHQiPT09ZT9Sbjp2b2lkIDApLHRva2VuaXplOmZ1bmN0aW9uKHQpe2NvbnN0IGk9dGhpcyxvPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbZV0sbj10LmF0dGVtcHQobyxyLHMpO3JldHVybiByO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGwoZSk/bihlKTpzKGUpfWZ1bmN0aW9uIHMoZSl7aWYobnVsbCE9PWUpcmV0dXJuIHQuZW50ZXIoImRhdGEiKSx0LmNvbnN1bWUoZSksYTt0LmNvbnN1bWUoZSl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gbChlKT8odC5leGl0KCJkYXRhIiksbihlKSk6KHQuY29uc3VtZShlKSxhKX1mdW5jdGlvbiBsKGUpe2lmKG51bGw9PT1lKXJldHVybiEwO2NvbnN0IHQ9b1tlXTtsZXQgbj0tMTtpZih0KWZvcig7KytuPHQubGVuZ3RoOyl7Y29uc3QgZT10W25dO2lmKCFlLnByZXZpb3VzfHxlLnByZXZpb3VzLmNhbGwoaSxpLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fX1mdW5jdGlvbiBNbihlKXtyZXR1cm4gZnVuY3Rpb24odCxpKXtsZXQgbyxuPS0xO2Zvcig7KytuPD10Lmxlbmd0aDspdm9pZCAwPT09bz90W25dJiYiZGF0YSI9PT10W25dWzFdLnR5cGUmJihvPW4sbisrKTp0W25dJiYiZGF0YSI9PT10W25dWzFdLnR5cGV8fChuIT09bysyJiYodFtvXVsxXS5lbmQ9dFtuLTFdWzFdLmVuZCx0LnNwbGljZShvKzIsbi1vLTIpLG49bysyKSxvPXZvaWQgMCk7cmV0dXJuIGU/ZSh0LGkpOnR9fWZ1bmN0aW9uIFJuKGUsdCl7bGV0IGk9MDtmb3IoOysraTw9ZS5sZW5ndGg7KWlmKChpPT09ZS5sZW5ndGh8fCJsaW5lRW5kaW5nIj09PWVbaV1bMV0udHlwZSkmJiJkYXRhIj09PWVbaS0xXVsxXS50eXBlKXtjb25zdCBvPWVbaS0xXVsxXSxuPXQuc2xpY2VTdHJlYW0obyk7bGV0IHIscz1uLmxlbmd0aCxhPS0xLGw9MDtmb3IoO3MtLTspe2NvbnN0IGU9bltzXTtpZigic3RyaW5nIj09dHlwZW9mIGUpe2ZvcihhPWUubGVuZ3RoOzMyPT09ZS5jaGFyQ29kZUF0KGEtMSk7KWwrKyxhLS07aWYoYSlicmVhazthPS0xfWVsc2UgaWYoLTI9PT1lKXI9ITAsbCsrO2Vsc2UgaWYoLTEhPT1lKXtzKys7YnJlYWt9fWlmKGwpe2NvbnN0IG49e3R5cGU6aT09PWUubGVuZ3RofHxyfHxsPDI/ImxpbmVTdWZmaXgiOiJoYXJkQnJlYWtUcmFpbGluZyIsc3RhcnQ6e19idWZmZXJJbmRleDpzP2E6by5zdGFydC5fYnVmZmVySW5kZXgrYSxfaW5kZXg6by5zdGFydC5faW5kZXgrcyxsaW5lOm8uZW5kLmxpbmUsY29sdW1uOm8uZW5kLmNvbHVtbi1sLG9mZnNldDpvLmVuZC5vZmZzZXQtbH0sZW5kOnsuLi5vLmVuZH19O28uZW5kPXsuLi5uLnN0YXJ0fSxvLnN0YXJ0Lm9mZnNldD09PW8uZW5kLm9mZnNldD9PYmplY3QuYXNzaWduKG8sbik6KGUuc3BsaWNlKGksMCxbImVudGVyIixuLHRdLFsiZXhpdCIsbix0XSksaSs9Mil9aSsrfXJldHVybiBlfWNvbnN0IE9uPXtuYW1lOiJ0aGVtYXRpY0JyZWFrIix0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7bGV0IG8sbj0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigidGhlbWF0aWNCcmVhayIpLGZ1bmN0aW9uKGUpe3JldHVybiBvPWUscihlKX0odCl9O2Z1bmN0aW9uIHIocil7cmV0dXJuIHI9PT1vPyhlLmVudGVyKCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxzKHIpKTpuPj0zJiYobnVsbD09PXJ8fGNuKHIpKT8oZS5leGl0KCJ0aGVtYXRpY0JyZWFrIiksdChyKSk6aShyKX1mdW5jdGlvbiBzKHQpe3JldHVybiB0PT09bz8oZS5jb25zdW1lKHQpLG4rKyxzKTooZS5leGl0KCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxobih0KT95bihlLHIsIndoaXRlc3BhY2UiKSh0KTpyKHQpKX19fTtjb25zdCBVbj17Y29udGludWF0aW9uOnt0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO3JldHVybiBvLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLGUuY2hlY2soJG4sKGZ1bmN0aW9uKGkpe3JldHVybiBvLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPW8uY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fG8uY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSx5bihlLHQsImxpc3RJdGVtSW5kZW50IixvLmNvbnRhaW5lclN0YXRlLnNpemUrMSkoaSl9KSwoZnVuY3Rpb24oaSl7aWYoby5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8IWhuKGkpKXJldHVybiBvLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxvLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLG4oaSk7cmV0dXJuIG8uY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXM9dm9pZCAwLG8uY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT12b2lkIDAsZS5hdHRlbXB0KE5uLHQsbikoaSl9KSk7ZnVuY3Rpb24gbihuKXtyZXR1cm4gby5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PSEwLG8uaW50ZXJydXB0PXZvaWQgMCx5bihlLGUuYXR0ZW1wdChVbix0LGkpLCJsaW5lUHJlZml4IixvLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG4pfX19LGV4aXQ6ZnVuY3Rpb24oZSl7ZS5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSl9LG5hbWU6Imxpc3QiLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXMsbj1vLmV2ZW50c1tvLmV2ZW50cy5sZW5ndGgtMV07bGV0IHI9biYmImxpbmVQcmVmaXgiPT09blsxXS50eXBlP25bMl0uc2xpY2VTZXJpYWxpemUoblsxXSwhMCkubGVuZ3RoOjAscz0wO3JldHVybiBmdW5jdGlvbih0KXtjb25zdCBuPW8uY29udGFpbmVyU3RhdGUudHlwZXx8KDQyPT09dHx8NDM9PT10fHw0NT09PXQ/Imxpc3RVbm9yZGVyZWQiOiJsaXN0T3JkZXJlZCIpO2lmKCJsaXN0VW5vcmRlcmVkIj09PW4/IW8uY29udGFpbmVyU3RhdGUubWFya2VyfHx0PT09by5jb250YWluZXJTdGF0ZS5tYXJrZXI6c24odCkpe2lmKG8uY29udGFpbmVyU3RhdGUudHlwZXx8KG8uY29udGFpbmVyU3RhdGUudHlwZT1uLGUuZW50ZXIobix7X2NvbnRhaW5lcjohMH0pKSwibGlzdFVub3JkZXJlZCI9PT1uKXJldHVybiBlLmVudGVyKCJsaXN0SXRlbVByZWZpeCIpLDQyPT09dHx8NDU9PT10P2UuY2hlY2soT24saSxsKSh0KTpsKHQpO2lmKCFvLmludGVycnVwdHx8NDk9PT10KXJldHVybiBlLmVudGVyKCJsaXN0SXRlbVByZWZpeCIpLGUuZW50ZXIoImxpc3RJdGVtVmFsdWUiKSxhKHQpfXJldHVybiBpKHQpfTtmdW5jdGlvbiBhKHQpe3JldHVybiBzbih0KSYmKytzPDEwPyhlLmNvbnN1bWUodCksYSk6KCFvLmludGVycnVwdHx8czwyKSYmKG8uY29udGFpbmVyU3RhdGUubWFya2VyP3Q9PT1vLmNvbnRhaW5lclN0YXRlLm1hcmtlcjo0MT09PXR8fDQ2PT09dCk/KGUuZXhpdCgibGlzdEl0ZW1WYWx1ZSIpLGwodCkpOmkodCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZS5lbnRlcigibGlzdEl0ZW1NYXJrZXIiKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaXN0SXRlbU1hcmtlciIpLG8uY29udGFpbmVyU3RhdGUubWFya2VyPW8uY29udGFpbmVyU3RhdGUubWFya2VyfHx0LGUuY2hlY2soJG4sby5pbnRlcnJ1cHQ/aTpjLGUuYXR0ZW1wdChCbixoLGQpKX1mdW5jdGlvbiBjKGUpe3JldHVybiBvLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9ITAscisrLGgoZSl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gaG4odCk/KGUuZW50ZXIoImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIpLGgpOmkodCl9ZnVuY3Rpb24gaChpKXtyZXR1cm4gby5jb250YWluZXJTdGF0ZS5zaXplPXIrby5zbGljZVNlcmlhbGl6ZShlLmV4aXQoImxpc3RJdGVtUHJlZml4IiksITApLmxlbmd0aCx0KGkpfX19LEJuPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIHluKGUsKGZ1bmN0aW9uKGUpe2NvbnN0IG49by5ldmVudHNbby5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFobihlKSYmbiYmImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSI9PT1uWzFdLnR5cGU/dChlKTppKGUpfSksImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsby5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo1KX19LE5uPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIHluKGUsKGZ1bmN0aW9uKGUpe2NvbnN0IG49by5ldmVudHNbby5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBuJiYibGlzdEl0ZW1JbmRlbnQiPT09blsxXS50eXBlJiZuWzJdLnNsaWNlU2VyaWFsaXplKG5bMV0sITApLmxlbmd0aD09PW8uY29udGFpbmVyU3RhdGUuc2l6ZT90KGUpOmkoZSl9KSwibGlzdEl0ZW1JbmRlbnQiLG8uY29udGFpbmVyU3RhdGUuc2l6ZSsxKX19O2NvbnN0IHFuPXtjb250aW51YXRpb246e3Rva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKGhuKHQpKXJldHVybiB5bihlLG4sImxpbmVQcmVmaXgiLG8ucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkodCk7cmV0dXJuIG4odCl9O2Z1bmN0aW9uIG4obyl7cmV0dXJuIGUuYXR0ZW1wdChxbix0LGkpKG8pfX19LGV4aXQ6ZnVuY3Rpb24oZSl7ZS5leGl0KCJibG9ja1F1b3RlIil9LG5hbWU6ImJsb2NrUXVvdGUiLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDYyPT09dCl7Y29uc3QgaT1vLmNvbnRhaW5lclN0YXRlO3JldHVybiBpLm9wZW58fChlLmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLGkub3Blbj0hMCksZS5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLGUuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSxlLmNvbnN1bWUodCksZS5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksbn1yZXR1cm4gaSh0KX07ZnVuY3Rpb24gbihpKXtyZXR1cm4gaG4oaSk/KGUuZW50ZXIoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksZS5jb25zdW1lKGkpLGUuZXhpdCgiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSxlLmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSx0KTooZS5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksdChpKSl9fX07ZnVuY3Rpb24gam4oZSx0LGksbyxuLHIscyxhLGwpe2NvbnN0IGM9bHx8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2xldCBkPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDYwPT09dClyZXR1cm4gZS5lbnRlcihvKSxlLmVudGVyKG4pLGUuZW50ZXIociksZS5jb25zdW1lKHQpLGUuZXhpdChyKSxoO2lmKG51bGw9PT10fHwzMj09PXR8fDQxPT09dHx8cm4odCkpcmV0dXJuIGkodCk7cmV0dXJuIGUuZW50ZXIobyksZS5lbnRlcihzKSxlLmVudGVyKGEpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxwKHQpfTtmdW5jdGlvbiBoKGkpe3JldHVybiA2Mj09PWk/KGUuZW50ZXIociksZS5jb25zdW1lKGkpLGUuZXhpdChyKSxlLmV4aXQobiksZS5leGl0KG8pLHQpOihlLmVudGVyKGEpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx1KGkpKX1mdW5jdGlvbiB1KHQpe3JldHVybiA2Mj09PXQ/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoYSksaCh0KSk6bnVsbD09PXR8fDYwPT09dHx8Y24odCk/aSh0KTooZS5jb25zdW1lKHQpLDkyPT09dD9mOnUpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIDYwPT09dHx8NjI9PT10fHw5Mj09PXQ/KGUuY29uc3VtZSh0KSx1KTp1KHQpfWZ1bmN0aW9uIHAobil7cmV0dXJuIGR8fG51bGwhPT1uJiY0MSE9PW4mJiFkbihuKT9kPGMmJjQwPT09bj8oZS5jb25zdW1lKG4pLGQrKyxwKTo0MT09PW4/KGUuY29uc3VtZShuKSxkLS0scCk6bnVsbD09PW58fDMyPT09bnx8NDA9PT1ufHxybihuKT9pKG4pOihlLmNvbnN1bWUobiksOTI9PT1uP206cCk6KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoYSksZS5leGl0KHMpLGUuZXhpdChvKSx0KG4pKX1mdW5jdGlvbiBtKHQpe3JldHVybiA0MD09PXR8fDQxPT09dHx8OTI9PT10PyhlLmNvbnN1bWUodCkscCk6cCh0KX19ZnVuY3Rpb24gSG4oZSx0LGksbyxuLHIpe2NvbnN0IHM9dGhpcztsZXQgYSxsPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKG8pLGUuZW50ZXIobiksZS5jb25zdW1lKHQpLGUuZXhpdChuKSxlLmVudGVyKHIpLGN9O2Z1bmN0aW9uIGMoaCl7cmV0dXJuIGw+OTk5fHxudWxsPT09aHx8OTE9PT1ofHw5Mz09PWgmJiFhfHw5ND09PWgmJiFsJiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBzLnBhcnNlci5jb25zdHJ1Y3RzP2koaCk6OTM9PT1oPyhlLmV4aXQociksZS5lbnRlcihuKSxlLmNvbnN1bWUoaCksZS5leGl0KG4pLGUuZXhpdChvKSx0KTpjbihoKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShoKSxlLmV4aXQoImxpbmVFbmRpbmciKSxjKTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGQoaCkpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIG51bGw9PT10fHw5MT09PXR8fDkzPT09dHx8Y24odCl8fGwrKz45OTk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxjKHQpKTooZS5jb25zdW1lKHQpLGF8fChhPSFobih0KSksOTI9PT10P2g6ZCl9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gOTE9PT10fHw5Mj09PXR8fDkzPT09dD8oZS5jb25zdW1lKHQpLGwrKyxkKTpkKHQpfX1mdW5jdGlvbiBXbihlLHQsaSxvLG4scil7bGV0IHM7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDM0PT09dHx8Mzk9PT10fHw0MD09PXQpcmV0dXJuIGUuZW50ZXIobyksZS5lbnRlcihuKSxlLmNvbnN1bWUodCksZS5leGl0KG4pLHM9NDA9PT10PzQxOnQsYTtyZXR1cm4gaSh0KX07ZnVuY3Rpb24gYShpKXtyZXR1cm4gaT09PXM/KGUuZW50ZXIobiksZS5jb25zdW1lKGkpLGUuZXhpdChuKSxlLmV4aXQobyksdCk6KGUuZW50ZXIociksbChpKSl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdD09PXM/KGUuZXhpdChyKSxhKHMpKTpudWxsPT09dD9pKHQpOmNuKHQpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHQpLGUuZXhpdCgibGluZUVuZGluZyIpLHluKGUsbCwibGluZVByZWZpeCIpKTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGModCkpfWZ1bmN0aW9uIGModCl7cmV0dXJuIHQ9PT1zfHxudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxsKHQpKTooZS5jb25zdW1lKHQpLDkyPT09dD9kOmMpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQ9PT1zfHw5Mj09PXQ/KGUuY29uc3VtZSh0KSxjKTpjKHQpfX1mdW5jdGlvbiBWbihlLHQpe2xldCBpO3JldHVybiBmdW5jdGlvbiBvKG4pe2lmKGNuKG4pKXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG4pLGUuZXhpdCgibGluZUVuZGluZyIpLGk9ITAsbztpZihobihuKSlyZXR1cm4geW4oZSxvLGk/ImxpbmVQcmVmaXgiOiJsaW5lU3VmZml4Iikobik7cmV0dXJuIHQobil9fWNvbnN0IEduPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO2xldCBuO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiZGVmaW5pdGlvbiIpLGZ1bmN0aW9uKHQpe3JldHVybiBIbi5jYWxsKG8sZSxyLGksImRlZmluaXRpb25MYWJlbCIsImRlZmluaXRpb25MYWJlbE1hcmtlciIsImRlZmluaXRpb25MYWJlbFN0cmluZyIpKHQpfSh0KX07ZnVuY3Rpb24gcih0KXtyZXR1cm4gbj1lbihvLnNsaWNlU2VyaWFsaXplKG8uZXZlbnRzW28uZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpLDU4PT09dD8oZS5lbnRlcigiZGVmaW5pdGlvbk1hcmtlciIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImRlZmluaXRpb25NYXJrZXIiKSxzKTppKHQpfWZ1bmN0aW9uIHModCl7cmV0dXJuIGRuKHQpP1ZuKGUsYSkodCk6YSh0KX1mdW5jdGlvbiBhKHQpe3JldHVybiBqbihlLGwsaSwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWxNYXJrZXIiLCJkZWZpbml0aW9uRGVzdGluYXRpb25SYXciLCJkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmciKSh0KX1mdW5jdGlvbiBsKHQpe3JldHVybiBlLmF0dGVtcHQoS24sYyxjKSh0KX1mdW5jdGlvbiBjKHQpe3JldHVybiBobih0KT95bihlLGQsIndoaXRlc3BhY2UiKSh0KTpkKHQpfWZ1bmN0aW9uIGQocil7cmV0dXJuIG51bGw9PT1yfHxjbihyKT8oZS5leGl0KCJkZWZpbml0aW9uIiksby5wYXJzZXIuZGVmaW5lZC5wdXNoKG4pLHQocikpOmkocil9fX0sS249e3BhcnRpYWw6ITAsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZG4odCk/Vm4oZSxvKSh0KTppKHQpfTtmdW5jdGlvbiBvKHQpe3JldHVybiBXbihlLG4saSwiZGVmaW5pdGlvblRpdGxlIiwiZGVmaW5pdGlvblRpdGxlTWFya2VyIiwiZGVmaW5pdGlvblRpdGxlU3RyaW5nIikodCl9ZnVuY3Rpb24gbih0KXtyZXR1cm4gaG4odCk/eW4oZSxyLCJ3aGl0ZXNwYWNlIikodCk6cih0KX1mdW5jdGlvbiByKGUpe3JldHVybiBudWxsPT09ZXx8Y24oZSk/dChlKTppKGUpfX19O2NvbnN0IFluPXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJjb2RlSW5kZW50ZWQiKSx5bihlLG4sImxpbmVQcmVmaXgiLDUpKHQpfTtmdW5jdGlvbiBuKGUpe2NvbnN0IHQ9by5ldmVudHNbby5ldmVudHMubGVuZ3RoLTFdO3JldHVybiB0JiYibGluZVByZWZpeCI9PT10WzFdLnR5cGUmJnRbMl0uc2xpY2VTZXJpYWxpemUodFsxXSwhMCkubGVuZ3RoPj00P3IoZSk6aShlKX1mdW5jdGlvbiByKHQpe3JldHVybiBudWxsPT09dD9hKHQpOmNuKHQpP2UuYXR0ZW1wdChRbixyLGEpKHQpOihlLmVudGVyKCJjb2RlRmxvd1ZhbHVlIikscyh0KSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gbnVsbD09PXR8fGNuKHQpPyhlLmV4aXQoImNvZGVGbG93VmFsdWUiKSxyKHQpKTooZS5jb25zdW1lKHQpLHMpfWZ1bmN0aW9uIGEoaSl7cmV0dXJuIGUuZXhpdCgiY29kZUluZGVudGVkIiksdChpKX19fSxRbj17cGFydGlhbDohMCx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO3JldHVybiBuO2Z1bmN0aW9uIG4odCl7cmV0dXJuIG8ucGFyc2VyLmxhenlbby5ub3coKS5saW5lXT9pKHQpOmNuKHQpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHQpLGUuZXhpdCgibGluZUVuZGluZyIpLG4pOnluKGUsciwibGluZVByZWZpeCIsNSkodCl9ZnVuY3Rpb24gcihlKXtjb25zdCByPW8uZXZlbnRzW28uZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gciYmImxpbmVQcmVmaXgiPT09clsxXS50eXBlJiZyWzJdLnNsaWNlU2VyaWFsaXplKHJbMV0sITApLmxlbmd0aD49ND90KGUpOmNuKGUpP24oZSk6aShlKX19fTtjb25zdCBabj17bmFtZToiaGVhZGluZ0F0eCIscmVzb2x2ZTpmdW5jdGlvbihlLHQpe2xldCBpLG8sbj1lLmxlbmd0aC0yLHI9Mzsid2hpdGVzcGFjZSI9PT1lW3JdWzFdLnR5cGUmJihyKz0yKTtuLTI+ciYmIndoaXRlc3BhY2UiPT09ZVtuXVsxXS50eXBlJiYobi09Mik7ImF0eEhlYWRpbmdTZXF1ZW5jZSI9PT1lW25dWzFdLnR5cGUmJihyPT09bi0xfHxuLTQ+ciYmIndoaXRlc3BhY2UiPT09ZVtuLTJdWzFdLnR5cGUpJiYobi09cisxPT09bj8yOjQpO24+ciYmKGk9e3R5cGU6ImF0eEhlYWRpbmdUZXh0IixzdGFydDplW3JdWzFdLnN0YXJ0LGVuZDplW25dWzFdLmVuZH0sbz17dHlwZToiY2h1bmtUZXh0IixzdGFydDplW3JdWzFdLnN0YXJ0LGVuZDplW25dWzFdLmVuZCxjb250ZW50VHlwZToidGV4dCJ9LFZvKGUscixuLXIrMSxbWyJlbnRlciIsaSx0XSxbImVudGVyIixvLHRdLFsiZXhpdCIsbyx0XSxbImV4aXQiLGksdF1dKSk7cmV0dXJuIGV9LHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtsZXQgbz0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiYXR4SGVhZGluZyIpLGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxuKHQpfSh0KX07ZnVuY3Rpb24gbih0KXtyZXR1cm4gMzU9PT10JiZvKys8Nj8oZS5jb25zdW1lKHQpLG4pOm51bGw9PT10fHxkbih0KT8oZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxyKHQpKTppKHQpfWZ1bmN0aW9uIHIoaSl7cmV0dXJuIDM1PT09aT8oZS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIikscyhpKSk6bnVsbD09PWl8fGNuKGkpPyhlLmV4aXQoImF0eEhlYWRpbmciKSx0KGkpKTpobihpKT95bihlLHIsIndoaXRlc3BhY2UiKShpKTooZS5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxhKGkpKX1mdW5jdGlvbiBzKHQpe3JldHVybiAzNT09PXQ/KGUuY29uc3VtZSh0KSxzKTooZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxyKHQpKX1mdW5jdGlvbiBhKHQpe3JldHVybiBudWxsPT09dHx8MzU9PT10fHxkbih0KT8oZS5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLHIodCkpOihlLmNvbnN1bWUodCksYSl9fX07Y29uc3QgSm49e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOmZ1bmN0aW9uKGUsdCl7bGV0IGksbyxuLHI9ZS5sZW5ndGg7Zm9yKDtyLS07KWlmKCJlbnRlciI9PT1lW3JdWzBdKXtpZigiY29udGVudCI9PT1lW3JdWzFdLnR5cGUpe2k9cjticmVha30icGFyYWdyYXBoIj09PWVbcl1bMV0udHlwZSYmKG89cil9ZWxzZSJjb250ZW50Ij09PWVbcl1bMV0udHlwZSYmZS5zcGxpY2UociwxKSxufHwiZGVmaW5pdGlvbiIhPT1lW3JdWzFdLnR5cGV8fChuPXIpO2NvbnN0IHM9e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi5lW29dWzFdLnN0YXJ0fSxlbmQ6ey4uLmVbZS5sZW5ndGgtMV1bMV0uZW5kfX07ZVtvXVsxXS50eXBlPSJzZXRleHRIZWFkaW5nVGV4dCIsbj8oZS5zcGxpY2UobywwLFsiZW50ZXIiLHMsdF0pLGUuc3BsaWNlKG4rMSwwLFsiZXhpdCIsZVtpXVsxXSx0XSksZVtpXVsxXS5lbmQ9ey4uLmVbbl1bMV0uZW5kfSk6ZVtpXVsxXT1zO3JldHVybiBlLnB1c2goWyJleGl0IixzLHRdKSxlfSx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO2xldCBuO3JldHVybiBmdW5jdGlvbih0KXtsZXQgcyxhPW8uZXZlbnRzLmxlbmd0aDtmb3IoO2EtLTspaWYoImxpbmVFbmRpbmciIT09by5ldmVudHNbYV1bMV0udHlwZSYmImxpbmVQcmVmaXgiIT09by5ldmVudHNbYV1bMV0udHlwZSYmImNvbnRlbnQiIT09by5ldmVudHNbYV1bMV0udHlwZSl7cz0icGFyYWdyYXBoIj09PW8uZXZlbnRzW2FdWzFdLnR5cGU7YnJlYWt9aWYoIW8ucGFyc2VyLmxhenlbby5ub3coKS5saW5lXSYmKG8uaW50ZXJydXB0fHxzKSlyZXR1cm4gZS5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmUiKSxuPXQsZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxyKHQpfSh0KTtyZXR1cm4gaSh0KX07ZnVuY3Rpb24gcih0KXtyZXR1cm4gdD09PW4/KGUuY29uc3VtZSh0KSxyKTooZS5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksaG4odCk/eW4oZSxzLCJsaW5lU3VmZml4IikodCk6cyh0KSl9ZnVuY3Rpb24gcyhvKXtyZXR1cm4gbnVsbD09PW98fGNuKG8pPyhlLmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksdChvKSk6aShvKX19fTtjb25zdCBYbj1bImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQiLCJibG9ja3F1b3RlIiwiYm9keSIsImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0YWlscyIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiZnJhbWUiLCJmcmFtZXNldCIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJociIsImh0bWwiLCJpZnJhbWUiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYWluIiwibWVudSIsIm1lbnVpdGVtIiwibmF2Iiwibm9mcmFtZXMiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwicCIsInBhcmFtIiwic2VhcmNoIiwic2VjdGlvbiIsInN1bW1hcnkiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCJdLGVyPVsicHJlIiwic2NyaXB0Iiwic3R5bGUiLCJ0ZXh0YXJlYSJdLHRyPXtjb25jcmV0ZTohMCxuYW1lOiJodG1sRmxvdyIscmVzb2x2ZVRvOmZ1bmN0aW9uKGUpe2xldCB0PWUubGVuZ3RoO2Zvcig7dC0tJiYoImVudGVyIiE9PWVbdF1bMF18fCJodG1sRmxvdyIhPT1lW3RdWzFdLnR5cGUpOyk7dD4xJiYibGluZVByZWZpeCI9PT1lW3QtMl1bMV0udHlwZSYmKGVbdF1bMV0uc3RhcnQ9ZVt0LTJdWzFdLnN0YXJ0LGVbdCsxXVsxXS5zdGFydD1lW3QtMl1bMV0uc3RhcnQsZS5zcGxpY2UodC0yLDIpKTtyZXR1cm4gZX0sdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztsZXQgbixyLHMsYSxsO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoImh0bWxGbG93IiksZS5lbnRlcigiaHRtbEZsb3dEYXRhIiksZS5jb25zdW1lKHQpLGN9KHQpfTtmdW5jdGlvbiBjKGEpe3JldHVybiAzMz09PWE/KGUuY29uc3VtZShhKSxkKTo0Nz09PWE/KGUuY29uc3VtZShhKSxyPSEwLGYpOjYzPT09YT8oZS5jb25zdW1lKGEpLG49MyxvLmludGVycnVwdD90OkQpOnRuKGEpPyhlLmNvbnN1bWUoYSkscz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEpLHApOmkoYSl9ZnVuY3Rpb24gZChyKXtyZXR1cm4gNDU9PT1yPyhlLmNvbnN1bWUociksbj0yLGgpOjkxPT09cj8oZS5jb25zdW1lKHIpLG49NSxhPTAsdSk6dG4ocik/KGUuY29uc3VtZShyKSxuPTQsby5pbnRlcnJ1cHQ/dDpEKTppKHIpfWZ1bmN0aW9uIGgobil7cmV0dXJuIDQ1PT09bj8oZS5jb25zdW1lKG4pLG8uaW50ZXJydXB0P3Q6RCk6aShuKX1mdW5jdGlvbiB1KG4pe2NvbnN0IHI9IkNEQVRBWyI7cmV0dXJuIG49PT1yLmNoYXJDb2RlQXQoYSsrKT8oZS5jb25zdW1lKG4pLDY9PT1hP28uaW50ZXJydXB0P3Q6Xzp1KTppKG4pfWZ1bmN0aW9uIGYodCl7cmV0dXJuIHRuKHQpPyhlLmNvbnN1bWUodCkscz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLHApOmkodCl9ZnVuY3Rpb24gcChhKXtpZihudWxsPT09YXx8NDc9PT1hfHw2Mj09PWF8fGRuKGEpKXtjb25zdCBsPTQ3PT09YSxjPXMudG9Mb3dlckNhc2UoKTtyZXR1cm4gbHx8cnx8IWVyLmluY2x1ZGVzKGMpP1huLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSk/KG49NixsPyhlLmNvbnN1bWUoYSksbSk6by5pbnRlcnJ1cHQ/dChhKTpfKGEpKToobj03LG8uaW50ZXJydXB0JiYhby5wYXJzZXIubGF6eVtvLm5vdygpLmxpbmVdP2koYSk6cj9iKGEpOmcoYSkpOihuPTEsby5pbnRlcnJ1cHQ/dChhKTpfKGEpKX1yZXR1cm4gNDU9PT1hfHxvbihhKT8oZS5jb25zdW1lKGEpLHMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYSkscCk6aShhKX1mdW5jdGlvbiBtKG4pe3JldHVybiA2Mj09PW4/KGUuY29uc3VtZShuKSxvLmludGVycnVwdD90Ol8pOmkobil9ZnVuY3Rpb24gYih0KXtyZXR1cm4gaG4odCk/KGUuY29uc3VtZSh0KSxiKTokKHQpfWZ1bmN0aW9uIGcodCl7cmV0dXJuIDQ3PT09dD8oZS5jb25zdW1lKHQpLCQpOjU4PT09dHx8OTU9PT10fHx0bih0KT8oZS5jb25zdW1lKHQpLHYpOmhuKHQpPyhlLmNvbnN1bWUodCksZyk6JCh0KX1mdW5jdGlvbiB2KHQpe3JldHVybiA0NT09PXR8fDQ2PT09dHx8NTg9PT10fHw5NT09PXR8fG9uKHQpPyhlLmNvbnN1bWUodCksdik6dyh0KX1mdW5jdGlvbiB3KHQpe3JldHVybiA2MT09PXQ/KGUuY29uc3VtZSh0KSx5KTpobih0KT8oZS5jb25zdW1lKHQpLHcpOmcodCl9ZnVuY3Rpb24geSh0KXtyZXR1cm4gbnVsbD09PXR8fDYwPT09dHx8NjE9PT10fHw2Mj09PXR8fDk2PT09dD9pKHQpOjM0PT09dHx8Mzk9PT10PyhlLmNvbnN1bWUodCksbD10LHgpOmhuKHQpPyhlLmNvbnN1bWUodCkseSk6ayh0KX1mdW5jdGlvbiB4KHQpe3JldHVybiB0PT09bD8oZS5jb25zdW1lKHQpLGw9bnVsbCxTKTpudWxsPT09dHx8Y24odCk/aSh0KTooZS5jb25zdW1lKHQpLHgpfWZ1bmN0aW9uIGsodCl7cmV0dXJuIG51bGw9PT10fHwzND09PXR8fDM5PT09dHx8NDc9PT10fHw2MD09PXR8fDYxPT09dHx8NjI9PT10fHw5Nj09PXR8fGRuKHQpP3codCk6KGUuY29uc3VtZSh0KSxrKX1mdW5jdGlvbiBTKGUpe3JldHVybiA0Nz09PWV8fDYyPT09ZXx8aG4oZSk/ZyhlKTppKGUpfWZ1bmN0aW9uICQodCl7cmV0dXJuIDYyPT09dD8oZS5jb25zdW1lKHQpLHopOmkodCl9ZnVuY3Rpb24geih0KXtyZXR1cm4gbnVsbD09PXR8fGNuKHQpP18odCk6aG4odCk/KGUuY29uc3VtZSh0KSx6KTppKHQpfWZ1bmN0aW9uIF8odCl7cmV0dXJuIDQ1PT09dCYmMj09PW4/KGUuY29uc3VtZSh0KSxFKTo2MD09PXQmJjE9PT1uPyhlLmNvbnN1bWUodCksQSk6NjI9PT10JiY0PT09bj8oZS5jb25zdW1lKHQpLEYpOjYzPT09dCYmMz09PW4/KGUuY29uc3VtZSh0KSxEKTo5Mz09PXQmJjU9PT1uPyhlLmNvbnN1bWUodCksUCk6IWNuKHQpfHw2IT09biYmNyE9PW4/bnVsbD09PXR8fGNuKHQpPyhlLmV4aXQoImh0bWxGbG93RGF0YSIpLEModCkpOihlLmNvbnN1bWUodCksXyk6KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksZS5jaGVjayhpcixNLEMpKHQpKX1mdW5jdGlvbiBDKHQpe3JldHVybiBlLmNoZWNrKG9yLEksTSkodCl9ZnVuY3Rpb24gSSh0KXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxpbmVFbmRpbmciKSxMfWZ1bmN0aW9uIEwodCl7cmV0dXJuIG51bGw9PT10fHxjbih0KT9DKHQpOihlLmVudGVyKCJodG1sRmxvd0RhdGEiKSxfKHQpKX1mdW5jdGlvbiBFKHQpe3JldHVybiA0NT09PXQ/KGUuY29uc3VtZSh0KSxEKTpfKHQpfWZ1bmN0aW9uIEEodCl7cmV0dXJuIDQ3PT09dD8oZS5jb25zdW1lKHQpLHM9IiIsVCk6Xyh0KX1mdW5jdGlvbiBUKHQpe2lmKDYyPT09dCl7Y29uc3QgaT1zLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGVyLmluY2x1ZGVzKGkpPyhlLmNvbnN1bWUodCksRik6Xyh0KX1yZXR1cm4gdG4odCkmJnMubGVuZ3RoPDg/KGUuY29uc3VtZSh0KSxzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpLFQpOl8odCl9ZnVuY3Rpb24gUCh0KXtyZXR1cm4gOTM9PT10PyhlLmNvbnN1bWUodCksRCk6Xyh0KX1mdW5jdGlvbiBEKHQpe3JldHVybiA2Mj09PXQ/KGUuY29uc3VtZSh0KSxGKTo0NT09PXQmJjI9PT1uPyhlLmNvbnN1bWUodCksRCk6Xyh0KX1mdW5jdGlvbiBGKHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksTSh0KSk6KGUuY29uc3VtZSh0KSxGKX1mdW5jdGlvbiBNKGkpe3JldHVybiBlLmV4aXQoImh0bWxGbG93IiksdChpKX19fSxpcj17cGFydGlhbDohMCx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLGUuYXR0ZW1wdCgkbix0LGkpfX19LG9yPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKGNuKHQpKXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHQpLGUuZXhpdCgibGluZUVuZGluZyIpLG47cmV0dXJuIGkodCl9O2Z1bmN0aW9uIG4oZSl7cmV0dXJuIG8ucGFyc2VyLmxhenlbby5ub3coKS5saW5lXT9pKGUpOnQoZSl9fX07Y29uc3QgbnI9e3BhcnRpYWw6ITAsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztyZXR1cm4gZnVuY3Rpb24odCl7aWYobnVsbD09PXQpcmV0dXJuIGkodCk7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaW5lRW5kaW5nIiksbn07ZnVuY3Rpb24gbihlKXtyZXR1cm4gby5wYXJzZXIubGF6eVtvLm5vdygpLmxpbmVdP2koZSk6dChlKX19fSxycj17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcyxuPXtwYXJ0aWFsOiEwLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtsZXQgbj0wO3JldHVybiBzO2Z1bmN0aW9uIHModCl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaW5lRW5kaW5nIiksbH1mdW5jdGlvbiBsKHQpe3JldHVybiBlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSxobih0KT95bihlLGMsImxpbmVQcmVmaXgiLG8ucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkodCk6Yyh0KX1mdW5jdGlvbiBjKHQpe3JldHVybiB0PT09cj8oZS5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxkKHQpKTppKHQpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQ9PT1yPyhuKyssZS5jb25zdW1lKHQpLGQpOm4+PWE/KGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxobih0KT95bihlLGgsIndoaXRlc3BhY2UiKSh0KTpoKHQpKTppKHQpfWZ1bmN0aW9uIGgobyl7cmV0dXJuIG51bGw9PT1vfHxjbihvKT8oZS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSx0KG8pKTppKG8pfX19O2xldCByLHM9MCxhPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtjb25zdCBpPW8uZXZlbnRzW28uZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gcz1pJiYibGluZVByZWZpeCI9PT1pWzFdLnR5cGU/aVsyXS5zbGljZVNlcmlhbGl6ZShpWzFdLCEwKS5sZW5ndGg6MCxyPXQsZS5lbnRlcigiY29kZUZlbmNlZCIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksbCh0KX0odCl9O2Z1bmN0aW9uIGwodCl7cmV0dXJuIHQ9PT1yPyhhKyssZS5jb25zdW1lKHQpLGwpOmE8Mz9pKHQpOihlLmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksaG4odCk/eW4oZSxjLCJ3aGl0ZXNwYWNlIikodCk6Yyh0KSl9ZnVuY3Rpb24gYyhpKXtyZXR1cm4gbnVsbD09PWl8fGNuKGkpPyhlLmV4aXQoImNvZGVGZW5jZWRGZW5jZSIpLG8uaW50ZXJydXB0P3QoaSk6ZS5jaGVjayhucixmLHYpKGkpKTooZS5lbnRlcigiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxkKGkpKX1mdW5jdGlvbiBkKHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxjKHQpKTpobih0KT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLHluKGUsaCwid2hpdGVzcGFjZSIpKHQpKTo5Nj09PXQmJnQ9PT1yP2kodCk6KGUuY29uc3VtZSh0KSxkKX1mdW5jdGlvbiBoKHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/Yyh0KTooZS5lbnRlcigiY29kZUZlbmNlZEZlbmNlTWV0YSIpLGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx1KHQpKX1mdW5jdGlvbiB1KHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxlLmV4aXQoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxjKHQpKTo5Nj09PXQmJnQ9PT1yP2kodCk6KGUuY29uc3VtZSh0KSx1KX1mdW5jdGlvbiBmKHQpe3JldHVybiBlLmF0dGVtcHQobix2LHApKHQpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaW5lRW5kaW5nIiksbX1mdW5jdGlvbiBtKHQpe3JldHVybiBzPjAmJmhuKHQpP3luKGUsYiwibGluZVByZWZpeCIscysxKSh0KTpiKHQpfWZ1bmN0aW9uIGIodCl7cmV0dXJuIG51bGw9PT10fHxjbih0KT9lLmNoZWNrKG5yLGYsdikodCk6KGUuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxnKHQpKX1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsPT09dHx8Y24odCk/KGUuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLGIodCkpOihlLmNvbnN1bWUodCksZyl9ZnVuY3Rpb24gdihpKXtyZXR1cm4gZS5leGl0KCJjb2RlRmVuY2VkIiksdChpKX19fTtjb25zdCBzcj17bmFtZToiY2hhcmFjdGVyUmVmZXJlbmNlIix0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO2xldCBuLHIscz0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKHQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksYX07ZnVuY3Rpb24gYSh0KXtyZXR1cm4gMzU9PT10PyhlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksZS5jb25zdW1lKHQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLGwpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49MzEscj1vbixjKHQpKX1mdW5jdGlvbiBsKHQpe3JldHVybiA4OD09PXR8fDEyMD09PXQ/KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksZS5jb25zdW1lKHQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NixyPWFuLGMpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxyPXNuLGModCkpfWZ1bmN0aW9uIGMoYSl7aWYoNTk9PT1hJiZzKXtjb25zdCBuPWUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKTtyZXR1cm4gciE9PW9ufHxXbyhvLnNsaWNlU2VyaWFsaXplKG4pKT8oZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGEpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2UiKSx0KTppKGEpfXJldHVybiByKGEpJiZzKys8bj8oZS5jb25zdW1lKGEpLGMpOmkoYSl9fX07Y29uc3QgYXI9e25hbWU6ImNoYXJhY3RlckVzY2FwZSIsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIiksZS5lbnRlcigiZXNjYXBlTWFya2VyIiksZS5jb25zdW1lKHQpLGUuZXhpdCgiZXNjYXBlTWFya2VyIiksb307ZnVuY3Rpb24gbyhvKXtyZXR1cm4gbG4obyk/KGUuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksZS5jb25zdW1lKG8pLGUuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxlLmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLHQpOmkobyl9fX07Y29uc3QgbHI9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGkpLGUuZXhpdCgibGluZUVuZGluZyIpLHluKGUsdCwibGluZVByZWZpeCIpfX19O2Z1bmN0aW9uIGNyKGUsdCxpKXtjb25zdCBvPVtdO2xldCBuPS0xO2Zvcig7KytuPGUubGVuZ3RoOyl7Y29uc3Qgcj1lW25dLnJlc29sdmVBbGw7ciYmIW8uaW5jbHVkZXMocikmJih0PXIodCxpKSxvLnB1c2gocikpfXJldHVybiB0fWNvbnN0IGRyPXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDpmdW5jdGlvbihlKXtsZXQgdD0tMTtjb25zdCBpPVtdO2Zvcig7Kyt0PGUubGVuZ3RoOyl7Y29uc3Qgbz1lW3RdWzFdO2lmKGkucHVzaChlW3RdKSwibGFiZWxJbWFnZSI9PT1vLnR5cGV8fCJsYWJlbExpbmsiPT09by50eXBlfHwibGFiZWxFbmQiPT09by50eXBlKXtjb25zdCBlPSJsYWJlbEltYWdlIj09PW8udHlwZT80OjI7by50eXBlPSJkYXRhIix0Kz1lfX1lLmxlbmd0aCE9PWkubGVuZ3RoJiZWbyhlLDAsZS5sZW5ndGgsaSk7cmV0dXJuIGV9LHJlc29sdmVUbzpmdW5jdGlvbihlLHQpe2xldCBpLG8sbixyLHM9ZS5sZW5ndGgsYT0wO2Zvcig7cy0tOylpZihpPWVbc11bMV0sbyl7aWYoImxpbmsiPT09aS50eXBlfHwibGFiZWxMaW5rIj09PWkudHlwZSYmaS5faW5hY3RpdmUpYnJlYWs7ImVudGVyIj09PWVbc11bMF0mJiJsYWJlbExpbmsiPT09aS50eXBlJiYoaS5faW5hY3RpdmU9ITApfWVsc2UgaWYobil7aWYoImVudGVyIj09PWVbc11bMF0mJigibGFiZWxJbWFnZSI9PT1pLnR5cGV8fCJsYWJlbExpbmsiPT09aS50eXBlKSYmIWkuX2JhbGFuY2VkJiYobz1zLCJsYWJlbExpbmsiIT09aS50eXBlKSl7YT0yO2JyZWFrfX1lbHNlImxhYmVsRW5kIj09PWkudHlwZSYmKG49cyk7Y29uc3QgbD17dHlwZToibGFiZWxMaW5rIj09PWVbb11bMV0udHlwZT8ibGluayI6ImltYWdlIixzdGFydDp7Li4uZVtvXVsxXS5zdGFydH0sZW5kOnsuLi5lW2UubGVuZ3RoLTFdWzFdLmVuZH19LGM9e3R5cGU6ImxhYmVsIixzdGFydDp7Li4uZVtvXVsxXS5zdGFydH0sZW5kOnsuLi5lW25dWzFdLmVuZH19LGQ9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLmVbbythKzJdWzFdLmVuZH0sZW5kOnsuLi5lW24tMl1bMV0uc3RhcnR9fTtyZXR1cm4gcj1bWyJlbnRlciIsbCx0XSxbImVudGVyIixjLHRdXSxyPUdvKHIsZS5zbGljZShvKzEsbythKzMpKSxyPUdvKHIsW1siZW50ZXIiLGQsdF1dKSxyPUdvKHIsY3IodC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsZS5zbGljZShvK2ErNCxuLTMpLHQpKSxyPUdvKHIsW1siZXhpdCIsZCx0XSxlW24tMl0sZVtuLTFdLFsiZXhpdCIsYyx0XV0pLHI9R28ocixlLnNsaWNlKG4rMSkpLHI9R28ocixbWyJleGl0IixsLHRdXSksVm8oZSxvLGUubGVuZ3RoLHIpLGV9LHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtjb25zdCBvPXRoaXM7bGV0IG4scixzPW8uZXZlbnRzLmxlbmd0aDtmb3IoO3MtLTspaWYoKCJsYWJlbEltYWdlIj09PW8uZXZlbnRzW3NdWzFdLnR5cGV8fCJsYWJlbExpbmsiPT09by5ldmVudHNbc11bMV0udHlwZSkmJiFvLmV2ZW50c1tzXVsxXS5fYmFsYW5jZWQpe249by5ldmVudHNbc11bMV07YnJlYWt9cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKCFuKXJldHVybiBpKHQpO2lmKG4uX2luYWN0aXZlKXJldHVybiBkKHQpO3JldHVybiByPW8ucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoZW4oby5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOm8ubm93KCl9KSkpLGUuZW50ZXIoImxhYmVsRW5kIiksZS5lbnRlcigibGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUodCksZS5leGl0KCJsYWJlbE1hcmtlciIpLGUuZXhpdCgibGFiZWxFbmQiKSxhfTtmdW5jdGlvbiBhKHQpe3JldHVybiA0MD09PXQ/ZS5hdHRlbXB0KGhyLGMscj9jOmQpKHQpOjkxPT09dD9lLmF0dGVtcHQodXIsYyxyP2w6ZCkodCk6cj9jKHQpOmQodCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZS5hdHRlbXB0KGZyLGMsZCkodCl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gdChlKX1mdW5jdGlvbiBkKGUpe3JldHVybiBuLl9iYWxhbmNlZD0hMCxpKGUpfX19LGhyPXt0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJyZXNvdXJjZSIpLGUuZW50ZXIoInJlc291cmNlTWFya2VyIiksZS5jb25zdW1lKHQpLGUuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxvfTtmdW5jdGlvbiBvKHQpe3JldHVybiBkbih0KT9WbihlLG4pKHQpOm4odCl9ZnVuY3Rpb24gbih0KXtyZXR1cm4gNDE9PT10P2ModCk6am4oZSxyLHMsInJlc291cmNlRGVzdGluYXRpb24iLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwicmVzb3VyY2VEZXN0aW5hdGlvblJhdyIsInJlc291cmNlRGVzdGluYXRpb25TdHJpbmciLDMyKSh0KX1mdW5jdGlvbiByKHQpe3JldHVybiBkbih0KT9WbihlLGEpKHQpOmModCl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gaShlKX1mdW5jdGlvbiBhKHQpe3JldHVybiAzND09PXR8fDM5PT09dHx8NDA9PT10P1duKGUsbCxpLCJyZXNvdXJjZVRpdGxlIiwicmVzb3VyY2VUaXRsZU1hcmtlciIsInJlc291cmNlVGl0bGVTdHJpbmciKSh0KTpjKHQpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIGRuKHQpP1ZuKGUsYykodCk6Yyh0KX1mdW5jdGlvbiBjKG8pe3JldHVybiA0MT09PW8/KGUuZW50ZXIoInJlc291cmNlTWFya2VyIiksZS5jb25zdW1lKG8pLGUuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxlLmV4aXQoInJlc291cmNlIiksdCk6aShvKX19fSx1cj17dG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEhuLmNhbGwobyxlLG4sciwicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIikodCl9O2Z1bmN0aW9uIG4oZSl7cmV0dXJuIG8ucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoZW4oby5zbGljZVNlcmlhbGl6ZShvLmV2ZW50c1tvLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSk/dChlKTppKGUpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGkoZSl9fX0sZnI9e3Rva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoInJlZmVyZW5jZSIpLGUuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZSh0KSxlLmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLG99O2Z1bmN0aW9uIG8obyl7cmV0dXJuIDkzPT09bz8oZS5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKG8pLGUuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksZS5leGl0KCJyZWZlcmVuY2UiKSx0KTppKG8pfX19O2NvbnN0IHByPXtuYW1lOiJsYWJlbFN0YXJ0SW1hZ2UiLHJlc29sdmVBbGw6ZHIucmVzb2x2ZUFsbCx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigibGFiZWxJbWFnZSIpLGUuZW50ZXIoImxhYmVsSW1hZ2VNYXJrZXIiKSxlLmNvbnN1bWUodCksZS5leGl0KCJsYWJlbEltYWdlTWFya2VyIiksbn07ZnVuY3Rpb24gbih0KXtyZXR1cm4gOTE9PT10PyhlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbEltYWdlIikscik6aSh0KX1mdW5jdGlvbiByKGUpe3JldHVybiA5ND09PWUmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIG8ucGFyc2VyLmNvbnN0cnVjdHM/aShlKTp0KGUpfX19O2Z1bmN0aW9uIG1yKGUpe3JldHVybiBudWxsPT09ZXx8ZG4oZSl8fGZuKGUpPzE6dW4oZSk/Mjp2b2lkIDB9Y29uc3QgYnI9e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDpmdW5jdGlvbihlLHQpe2xldCBpLG8sbixyLHMsYSxsLGMsZD0tMTtmb3IoOysrZDxlLmxlbmd0aDspaWYoImVudGVyIj09PWVbZF1bMF0mJiJhdHRlbnRpb25TZXF1ZW5jZSI9PT1lW2RdWzFdLnR5cGUmJmVbZF1bMV0uX2Nsb3NlKWZvcihpPWQ7aS0tOylpZigiZXhpdCI9PT1lW2ldWzBdJiYiYXR0ZW50aW9uU2VxdWVuY2UiPT09ZVtpXVsxXS50eXBlJiZlW2ldWzFdLl9vcGVuJiZ0LnNsaWNlU2VyaWFsaXplKGVbaV1bMV0pLmNoYXJDb2RlQXQoMCk9PT10LnNsaWNlU2VyaWFsaXplKGVbZF1bMV0pLmNoYXJDb2RlQXQoMCkpe2lmKChlW2ldWzFdLl9jbG9zZXx8ZVtkXVsxXS5fb3BlbikmJihlW2RdWzFdLmVuZC5vZmZzZXQtZVtkXVsxXS5zdGFydC5vZmZzZXQpJTMmJiEoKGVbaV1bMV0uZW5kLm9mZnNldC1lW2ldWzFdLnN0YXJ0Lm9mZnNldCtlW2RdWzFdLmVuZC5vZmZzZXQtZVtkXVsxXS5zdGFydC5vZmZzZXQpJTMpKWNvbnRpbnVlO2E9ZVtpXVsxXS5lbmQub2Zmc2V0LWVbaV1bMV0uc3RhcnQub2Zmc2V0PjEmJmVbZF1bMV0uZW5kLm9mZnNldC1lW2RdWzFdLnN0YXJ0Lm9mZnNldD4xPzI6MTtjb25zdCBoPXsuLi5lW2ldWzFdLmVuZH0sdT17Li4uZVtkXVsxXS5zdGFydH07Z3IoaCwtYSksZ3IodSxhKSxyPXt0eXBlOmE+MT8ic3Ryb25nU2VxdWVuY2UiOiJlbXBoYXNpc1NlcXVlbmNlIixzdGFydDpoLGVuZDp7Li4uZVtpXVsxXS5lbmR9fSxzPXt0eXBlOmE+MT8ic3Ryb25nU2VxdWVuY2UiOiJlbXBoYXNpc1NlcXVlbmNlIixzdGFydDp7Li4uZVtkXVsxXS5zdGFydH0sZW5kOnV9LG49e3R5cGU6YT4xPyJzdHJvbmdUZXh0IjoiZW1waGFzaXNUZXh0IixzdGFydDp7Li4uZVtpXVsxXS5lbmR9LGVuZDp7Li4uZVtkXVsxXS5zdGFydH19LG89e3R5cGU6YT4xPyJzdHJvbmciOiJlbXBoYXNpcyIsc3RhcnQ6ey4uLnIuc3RhcnR9LGVuZDp7Li4ucy5lbmR9fSxlW2ldWzFdLmVuZD17Li4uci5zdGFydH0sZVtkXVsxXS5zdGFydD17Li4ucy5lbmR9LGw9W10sZVtpXVsxXS5lbmQub2Zmc2V0LWVbaV1bMV0uc3RhcnQub2Zmc2V0JiYobD1HbyhsLFtbImVudGVyIixlW2ldWzFdLHRdLFsiZXhpdCIsZVtpXVsxXSx0XV0pKSxsPUdvKGwsW1siZW50ZXIiLG8sdF0sWyJlbnRlciIscix0XSxbImV4aXQiLHIsdF0sWyJlbnRlciIsbix0XV0pLGw9R28obCxjcih0LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbCxlLnNsaWNlKGkrMSxkKSx0KSksbD1HbyhsLFtbImV4aXQiLG4sdF0sWyJlbnRlciIscyx0XSxbImV4aXQiLHMsdF0sWyJleGl0IixvLHRdXSksZVtkXVsxXS5lbmQub2Zmc2V0LWVbZF1bMV0uc3RhcnQub2Zmc2V0PyhjPTIsbD1HbyhsLFtbImVudGVyIixlW2RdWzFdLHRdLFsiZXhpdCIsZVtkXVsxXSx0XV0pKTpjPTAsVm8oZSxpLTEsZC1pKzMsbCksZD1pK2wubGVuZ3RoLWMtMjticmVha31kPS0xO2Zvcig7KytkPGUubGVuZ3RoOykiYXR0ZW50aW9uU2VxdWVuY2UiPT09ZVtkXVsxXS50eXBlJiYoZVtkXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIGV9LHRva2VuaXplOmZ1bmN0aW9uKGUsdCl7Y29uc3QgaT10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxvPXRoaXMucHJldmlvdXMsbj1tcihvKTtsZXQgcjtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxlLmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLHModCl9O2Z1bmN0aW9uIHMoYSl7aWYoYT09PXIpcmV0dXJuIGUuY29uc3VtZShhKSxzO2NvbnN0IGw9ZS5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLGM9bXIoYSksZD0hY3x8Mj09PWMmJm58fGkuaW5jbHVkZXMoYSksaD0hbnx8Mj09PW4mJmN8fGkuaW5jbHVkZXMobyk7cmV0dXJuIGwuX29wZW49Qm9vbGVhbig0Mj09PXI/ZDpkJiYobnx8IWgpKSxsLl9jbG9zZT1Cb29sZWFuKDQyPT09cj9oOmgmJihjfHwhZCkpLHQoYSl9fX07ZnVuY3Rpb24gZ3IoZSx0KXtlLmNvbHVtbis9dCxlLm9mZnNldCs9dCxlLl9idWZmZXJJbmRleCs9dH1jb25zdCB2cj17bmFtZToiYXV0b2xpbmsiLHRva2VuaXplOmZ1bmN0aW9uKGUsdCxpKXtsZXQgbz0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiYXV0b2xpbmsiKSxlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5lbnRlcigiYXV0b2xpbmtQcm90b2NvbCIpLG59O2Z1bmN0aW9uIG4odCl7cmV0dXJuIHRuKHQpPyhlLmNvbnN1bWUodCkscik6NjQ9PT10P2kodCk6bCh0KX1mdW5jdGlvbiByKGUpe3JldHVybiA0Mz09PWV8fDQ1PT09ZXx8NDY9PT1lfHxvbihlKT8obz0xLHMoZSkpOmwoZSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gNTg9PT10PyhlLmNvbnN1bWUodCksbz0wLGEpOig0Mz09PXR8fDQ1PT09dHx8NDY9PT10fHxvbih0KSkmJm8rKzwzMj8oZS5jb25zdW1lKHQpLHMpOihvPTAsbCh0KSl9ZnVuY3Rpb24gYShvKXtyZXR1cm4gNjI9PT1vPyhlLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKSxlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShvKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5leGl0KCJhdXRvbGluayIpLHQpOm51bGw9PT1vfHwzMj09PW98fDYwPT09b3x8cm4obyk/aShvKTooZS5jb25zdW1lKG8pLGEpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIDY0PT09dD8oZS5jb25zdW1lKHQpLGMpOm5uKHQpPyhlLmNvbnN1bWUodCksbCk6aSh0KX1mdW5jdGlvbiBjKGUpe3JldHVybiBvbihlKT9kKGUpOmkoZSl9ZnVuY3Rpb24gZChpKXtyZXR1cm4gNDY9PT1pPyhlLmNvbnN1bWUoaSksbz0wLGMpOjYyPT09aT8oZS5leGl0KCJhdXRvbGlua1Byb3RvY29sIikudHlwZT0iYXV0b2xpbmtFbWFpbCIsZS5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxlLmNvbnN1bWUoaSksZS5leGl0KCJhdXRvbGlua01hcmtlciIpLGUuZXhpdCgiYXV0b2xpbmsiKSx0KTpoKGkpfWZ1bmN0aW9uIGgodCl7aWYoKDQ1PT09dHx8b24odCkpJiZvKys8NjMpe2NvbnN0IGk9NDU9PT10P2g6ZDtyZXR1cm4gZS5jb25zdW1lKHQpLGl9cmV0dXJuIGkodCl9fX07Y29uc3Qgd3I9e25hbWU6Imh0bWxUZXh0Iix0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz10aGlzO2xldCBuLHIscztyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoImh0bWxUZXh0IiksZS5lbnRlcigiaHRtbFRleHREYXRhIiksZS5jb25zdW1lKHQpLGF9O2Z1bmN0aW9uIGEodCl7cmV0dXJuIDMzPT09dD8oZS5jb25zdW1lKHQpLGwpOjQ3PT09dD8oZS5jb25zdW1lKHQpLHkpOjYzPT09dD8oZS5jb25zdW1lKHQpLHYpOnRuKHQpPyhlLmNvbnN1bWUodCksUyk6aSh0KX1mdW5jdGlvbiBsKHQpe3JldHVybiA0NT09PXQ/KGUuY29uc3VtZSh0KSxjKTo5MT09PXQ/KGUuY29uc3VtZSh0KSxyPTAsZik6dG4odCk/KGUuY29uc3VtZSh0KSxnKTppKHQpfWZ1bmN0aW9uIGModCl7cmV0dXJuIDQ1PT09dD8oZS5jb25zdW1lKHQpLHUpOmkodCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbnVsbD09PXQ/aSh0KTo0NT09PXQ/KGUuY29uc3VtZSh0KSxoKTpjbih0KT8ocz1kLFQodCkpOihlLmNvbnN1bWUodCksZCl9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gNDU9PT10PyhlLmNvbnN1bWUodCksdSk6ZCh0KX1mdW5jdGlvbiB1KGUpe3JldHVybiA2Mj09PWU/QShlKTo0NT09PWU/aChlKTpkKGUpfWZ1bmN0aW9uIGYodCl7Y29uc3Qgbz0iQ0RBVEFbIjtyZXR1cm4gdD09PW8uY2hhckNvZGVBdChyKyspPyhlLmNvbnN1bWUodCksNj09PXI/cDpmKTppKHQpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIG51bGw9PT10P2kodCk6OTM9PT10PyhlLmNvbnN1bWUodCksbSk6Y24odCk/KHM9cCxUKHQpKTooZS5jb25zdW1lKHQpLHApfWZ1bmN0aW9uIG0odCl7cmV0dXJuIDkzPT09dD8oZS5jb25zdW1lKHQpLGIpOnAodCl9ZnVuY3Rpb24gYih0KXtyZXR1cm4gNjI9PT10P0EodCk6OTM9PT10PyhlLmNvbnN1bWUodCksYik6cCh0KX1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsPT09dHx8NjI9PT10P0EodCk6Y24odCk/KHM9ZyxUKHQpKTooZS5jb25zdW1lKHQpLGcpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PT10P2kodCk6NjM9PT10PyhlLmNvbnN1bWUodCksdyk6Y24odCk/KHM9dixUKHQpKTooZS5jb25zdW1lKHQpLHYpfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIDYyPT09ZT9BKGUpOnYoZSl9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdG4odCk/KGUuY29uc3VtZSh0KSx4KTppKHQpfWZ1bmN0aW9uIHgodCl7cmV0dXJuIDQ1PT09dHx8b24odCk/KGUuY29uc3VtZSh0KSx4KTprKHQpfWZ1bmN0aW9uIGsodCl7cmV0dXJuIGNuKHQpPyhzPWssVCh0KSk6aG4odCk/KGUuY29uc3VtZSh0KSxrKTpBKHQpfWZ1bmN0aW9uIFModCl7cmV0dXJuIDQ1PT09dHx8b24odCk/KGUuY29uc3VtZSh0KSxTKTo0Nz09PXR8fDYyPT09dHx8ZG4odCk/JCh0KTppKHQpfWZ1bmN0aW9uICQodCl7cmV0dXJuIDQ3PT09dD8oZS5jb25zdW1lKHQpLEEpOjU4PT09dHx8OTU9PT10fHx0bih0KT8oZS5jb25zdW1lKHQpLHopOmNuKHQpPyhzPSQsVCh0KSk6aG4odCk/KGUuY29uc3VtZSh0KSwkKTpBKHQpfWZ1bmN0aW9uIHoodCl7cmV0dXJuIDQ1PT09dHx8NDY9PT10fHw1OD09PXR8fDk1PT09dHx8b24odCk/KGUuY29uc3VtZSh0KSx6KTpfKHQpfWZ1bmN0aW9uIF8odCl7cmV0dXJuIDYxPT09dD8oZS5jb25zdW1lKHQpLEMpOmNuKHQpPyhzPV8sVCh0KSk6aG4odCk/KGUuY29uc3VtZSh0KSxfKTokKHQpfWZ1bmN0aW9uIEModCl7cmV0dXJuIG51bGw9PT10fHw2MD09PXR8fDYxPT09dHx8NjI9PT10fHw5Nj09PXQ/aSh0KTozND09PXR8fDM5PT09dD8oZS5jb25zdW1lKHQpLG49dCxJKTpjbih0KT8ocz1DLFQodCkpOmhuKHQpPyhlLmNvbnN1bWUodCksQyk6KGUuY29uc3VtZSh0KSxMKX1mdW5jdGlvbiBJKHQpe3JldHVybiB0PT09bj8oZS5jb25zdW1lKHQpLG49dm9pZCAwLEUpOm51bGw9PT10P2kodCk6Y24odCk/KHM9SSxUKHQpKTooZS5jb25zdW1lKHQpLEkpfWZ1bmN0aW9uIEwodCl7cmV0dXJuIG51bGw9PT10fHwzND09PXR8fDM5PT09dHx8NjA9PT10fHw2MT09PXR8fDk2PT09dD9pKHQpOjQ3PT09dHx8NjI9PT10fHxkbih0KT8kKHQpOihlLmNvbnN1bWUodCksTCl9ZnVuY3Rpb24gRShlKXtyZXR1cm4gNDc9PT1lfHw2Mj09PWV8fGRuKGUpPyQoZSk6aShlKX1mdW5jdGlvbiBBKG8pe3JldHVybiA2Mj09PW8/KGUuY29uc3VtZShvKSxlLmV4aXQoImh0bWxUZXh0RGF0YSIpLGUuZXhpdCgiaHRtbFRleHQiKSx0KTppKG8pfWZ1bmN0aW9uIFQodCl7cmV0dXJuIGUuZXhpdCgiaHRtbFRleHREYXRhIiksZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZSh0KSxlLmV4aXQoImxpbmVFbmRpbmciKSxQfWZ1bmN0aW9uIFAodCl7cmV0dXJuIGhuKHQpP3luKGUsRCwibGluZVByZWZpeCIsby5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KSh0KTpEKHQpfWZ1bmN0aW9uIEQodCl7cmV0dXJuIGUuZW50ZXIoImh0bWxUZXh0RGF0YSIpLHModCl9fX07Y29uc3QgeXI9e25hbWU6ImxhYmVsU3RhcnRMaW5rIixyZXNvbHZlQWxsOmRyLnJlc29sdmVBbGwsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe2NvbnN0IG89dGhpcztyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuZW50ZXIoImxhYmVsTGluayIpLGUuZW50ZXIoImxhYmVsTWFya2VyIiksZS5jb25zdW1lKHQpLGUuZXhpdCgibGFiZWxNYXJrZXIiKSxlLmV4aXQoImxhYmVsTGluayIpLG59O2Z1bmN0aW9uIG4oZSl7cmV0dXJuIDk0PT09ZSYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gby5wYXJzZXIuY29uc3RydWN0cz9pKGUpOnQoZSl9fX07Y29uc3QgeHI9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5lbnRlcigiaGFyZEJyZWFrRXNjYXBlIiksZS5jb25zdW1lKHQpLG99O2Z1bmN0aW9uIG8obyl7cmV0dXJuIGNuKG8pPyhlLmV4aXQoImhhcmRCcmVha0VzY2FwZSIpLHQobykpOmkobyl9fX07Y29uc3Qga3I9e25hbWU6ImNvZGVUZXh0IixwcmV2aW91czpmdW5jdGlvbihlKXtyZXR1cm4gOTYhPT1lfHwiY2hhcmFjdGVyRXNjYXBlIj09PXRoaXMuZXZlbnRzW3RoaXMuZXZlbnRzLmxlbmd0aC0xXVsxXS50eXBlfSxyZXNvbHZlOmZ1bmN0aW9uKGUpe2xldCB0LGksbz1lLmxlbmd0aC00LG49MztpZighKCJsaW5lRW5kaW5nIiE9PWVbbl1bMV0udHlwZSYmInNwYWNlIiE9PWVbbl1bMV0udHlwZXx8ImxpbmVFbmRpbmciIT09ZVtvXVsxXS50eXBlJiYic3BhY2UiIT09ZVtvXVsxXS50eXBlKSlmb3IodD1uOysrdDxvOylpZigiY29kZVRleHREYXRhIj09PWVbdF1bMV0udHlwZSl7ZVtuXVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLGVbb11bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixuKz0yLG8tPTI7YnJlYWt9dD1uLTEsbysrO2Zvcig7Kyt0PD1vOyl2b2lkIDA9PT1pP3QhPT1vJiYibGluZUVuZGluZyIhPT1lW3RdWzFdLnR5cGUmJihpPXQpOnQhPT1vJiYibGluZUVuZGluZyIhPT1lW3RdWzFdLnR5cGV8fChlW2ldWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsdCE9PWkrMiYmKGVbaV1bMV0uZW5kPWVbdC0xXVsxXS5lbmQsZS5zcGxpY2UoaSsyLHQtaS0yKSxvLT10LWktMix0PWkrMiksaT12b2lkIDApO3JldHVybiBlfSx0b2tlbml6ZTpmdW5jdGlvbihlLHQsaSl7bGV0IG8sbixyPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmVudGVyKCJjb2RlVGV4dCIpLGUuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxzKHQpfTtmdW5jdGlvbiBzKHQpe3JldHVybiA5Nj09PXQ/KGUuY29uc3VtZSh0KSxyKysscyk6KGUuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGEodCkpfWZ1bmN0aW9uIGEodCl7cmV0dXJuIG51bGw9PT10P2kodCk6MzI9PT10PyhlLmVudGVyKCJzcGFjZSIpLGUuY29uc3VtZSh0KSxlLmV4aXQoInNwYWNlIiksYSk6OTY9PT10PyhuPWUuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxvPTAsYyh0KSk6Y24odCk/KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUodCksZS5leGl0KCJsaW5lRW5kaW5nIiksYSk6KGUuZW50ZXIoImNvZGVUZXh0RGF0YSIpLGwodCkpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIG51bGw9PT10fHwzMj09PXR8fDk2PT09dHx8Y24odCk/KGUuZXhpdCgiY29kZVRleHREYXRhIiksYSh0KSk6KGUuY29uc3VtZSh0KSxsKX1mdW5jdGlvbiBjKGkpe3JldHVybiA5Nj09PWk/KGUuY29uc3VtZShpKSxvKyssYyk6bz09PXI/KGUuZXhpdCgiY29kZVRleHRTZXF1ZW5jZSIpLGUuZXhpdCgiY29kZVRleHQiKSx0KGkpKToobi50eXBlPSJjb2RlVGV4dERhdGEiLGwoaSkpfX19O2NvbnN0IFNyPXs0MjpVbiw0MzpVbiw0NTpVbiw0ODpVbiw0OTpVbiw1MDpVbiw1MTpVbiw1MjpVbiw1MzpVbiw1NDpVbiw1NTpVbiw1NjpVbiw1NzpVbiw2Mjpxbn0sJHI9ezkxOkdufSx6cj17Wy0yXTpZbixbLTFdOlluLDMyOllufSxfcj17MzU6Wm4sNDI6T24sNDU6W0puLE9uXSw2MDp0ciw2MTpKbiw5NTpPbiw5NjpyciwxMjY6cnJ9LENyPXszODpzciw5Mjphcn0sSXI9e1stNV06bHIsWy00XTpscixbLTNdOmxyLDMzOnByLDM4OnNyLDQyOmJyLDYwOlt2cix3cl0sOTE6eXIsOTI6W3hyLGFyXSw5Mzpkciw5NTpiciw5Njprcn0sTHI9e251bGw6W2JyLFRuXX0sRXI9e251bGw6WzQyLDk1XX0sQXI9e251bGw6W119O2Z1bmN0aW9uIFRyKGUsdCxpKXtsZXQgbz17X2J1ZmZlckluZGV4Oi0xLF9pbmRleDowLGxpbmU6aSYmaS5saW5lfHwxLGNvbHVtbjppJiZpLmNvbHVtbnx8MSxvZmZzZXQ6aSYmaS5vZmZzZXR8fDB9O2NvbnN0IG49e30scj1bXTtsZXQgcz1bXSxhPVtdLGw9ITA7Y29uc3QgYz17YXR0ZW1wdDp2KChmdW5jdGlvbihlLHQpe3coZSx0LmZyb20pfSkpLGNoZWNrOnYoZyksY29uc3VtZTpmdW5jdGlvbihlKXtjbihlKT8oby5saW5lKyssby5jb2x1bW49MSxvLm9mZnNldCs9LTM9PT1lPzI6MSx5KCkpOi0xIT09ZSYmKG8uY29sdW1uKyssby5vZmZzZXQrKyk7by5fYnVmZmVySW5kZXg8MD9vLl9pbmRleCsrOihvLl9idWZmZXJJbmRleCsrLG8uX2J1ZmZlckluZGV4PT09c1tvLl9pbmRleF0ubGVuZ3RoJiYoby5fYnVmZmVySW5kZXg9LTEsby5faW5kZXgrKykpO2QucHJldmlvdXM9ZSxsPSEwfSxlbnRlcjpmdW5jdGlvbihlLHQpe2NvbnN0IGk9dHx8e307cmV0dXJuIGkudHlwZT1lLGkuc3RhcnQ9cCgpLGQuZXZlbnRzLnB1c2goWyJlbnRlciIsaSxkXSksYS5wdXNoKGkpLGl9LGV4aXQ6ZnVuY3Rpb24oZSl7Y29uc3QgdD1hLnBvcCgpO3JldHVybiB0LmVuZD1wKCksZC5ldmVudHMucHVzaChbImV4aXQiLHQsZF0pLHR9LGludGVycnVwdDp2KGcse2ludGVycnVwdDohMH0pfSxkPXtjb2RlOm51bGwsY29udGFpbmVyU3RhdGU6e30sZGVmaW5lU2tpcDpmdW5jdGlvbihlKXtuW2UubGluZV09ZS5jb2x1bW4seSgpfSxldmVudHM6W10sbm93OnAscGFyc2VyOmUscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTpmdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihlLHQpe2xldCBpPS0xO2NvbnN0IG89W107bGV0IG47Zm9yKDsrK2k8ZS5sZW5ndGg7KXtjb25zdCByPWVbaV07bGV0IHM7aWYoInN0cmluZyI9PXR5cGVvZiByKXM9cjtlbHNlIHN3aXRjaChyKXtjYXNlLTU6cz0iXHIiO2JyZWFrO2Nhc2UtNDpzPSJcbiI7YnJlYWs7Y2FzZS0zOnM9IlxyXG4iO2JyZWFrO2Nhc2UtMjpzPXQ/IiAiOiJcdCI7YnJlYWs7Y2FzZS0xOmlmKCF0JiZuKWNvbnRpbnVlO3M9IiAiO2JyZWFrO2RlZmF1bHQ6cz1TdHJpbmcuZnJvbUNoYXJDb2RlKHIpfW49LTI9PT1yLG8ucHVzaChzKX1yZXR1cm4gby5qb2luKCIiKX0oZihlKSx0KX0sc2xpY2VTdHJlYW06Zix3cml0ZTpmdW5jdGlvbihlKXtpZihzPUdvKHMsZSksbSgpLG51bGwhPT1zW3MubGVuZ3RoLTFdKXJldHVybltdO3JldHVybiB3KHQsMCksZC5ldmVudHM9Y3IocixkLmV2ZW50cyxkKSxkLmV2ZW50c319O2xldCBoLHU9dC50b2tlbml6ZS5jYWxsKGQsYyk7cmV0dXJuIHQucmVzb2x2ZUFsbCYmci5wdXNoKHQpLGQ7ZnVuY3Rpb24gZihlKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtjb25zdCBpPXQuc3RhcnQuX2luZGV4LG89dC5zdGFydC5fYnVmZmVySW5kZXgsbj10LmVuZC5faW5kZXgscj10LmVuZC5fYnVmZmVySW5kZXg7bGV0IHM7aWYoaT09PW4pcz1bZVtpXS5zbGljZShvLHIpXTtlbHNle2lmKHM9ZS5zbGljZShpLG4pLG8+LTEpe2NvbnN0IGU9c1swXTsic3RyaW5nIj09dHlwZW9mIGU/c1swXT1lLnNsaWNlKG8pOnMuc2hpZnQoKX1yPjAmJnMucHVzaChlW25dLnNsaWNlKDAscikpfXJldHVybiBzfShzLGUpfWZ1bmN0aW9uIHAoKXtjb25zdHtfYnVmZmVySW5kZXg6ZSxfaW5kZXg6dCxsaW5lOmksY29sdW1uOm4sb2Zmc2V0OnJ9PW87cmV0dXJue19idWZmZXJJbmRleDplLF9pbmRleDp0LGxpbmU6aSxjb2x1bW46bixvZmZzZXQ6cn19ZnVuY3Rpb24gbSgpe2xldCBlO2Zvcig7by5faW5kZXg8cy5sZW5ndGg7KXtjb25zdCB0PXNbby5faW5kZXhdO2lmKCJzdHJpbmciPT10eXBlb2YgdClmb3IoZT1vLl9pbmRleCxvLl9idWZmZXJJbmRleDwwJiYoby5fYnVmZmVySW5kZXg9MCk7by5faW5kZXg9PT1lJiZvLl9idWZmZXJJbmRleDx0Lmxlbmd0aDspYih0LmNoYXJDb2RlQXQoby5fYnVmZmVySW5kZXgpKTtlbHNlIGIodCl9fWZ1bmN0aW9uIGIoZSl7bD12b2lkIDAsaD1lLHU9dShlKX1mdW5jdGlvbiBnKGUsdCl7dC5yZXN0b3JlKCl9ZnVuY3Rpb24gdihlLHQpe3JldHVybiBmdW5jdGlvbihpLG4scil7bGV0IHMsaCx1LGY7cmV0dXJuIEFycmF5LmlzQXJyYXkoaSk/bShpKToidG9rZW5pemUiaW4gaT9tKFtpXSk6ZnVuY3Rpb24oZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdCh0KXtjb25zdCBpPW51bGwhPT10JiZlW3RdLG89bnVsbCE9PXQmJmUubnVsbDtyZXR1cm4gbShbLi4uQXJyYXkuaXNBcnJheShpKT9pOmk/W2ldOltdLC4uLkFycmF5LmlzQXJyYXkobyk/bzpvP1tvXTpbXV0pKHQpfX0oaSk7ZnVuY3Rpb24gbShlKXtyZXR1cm4gcz1lLGg9MCwwPT09ZS5sZW5ndGg/cjpiKGVbaF0pfWZ1bmN0aW9uIGIoZSl7cmV0dXJuIGZ1bmN0aW9uKGkpe2Y9ZnVuY3Rpb24oKXtjb25zdCBlPXAoKSx0PWQucHJldmlvdXMsaT1kLmN1cnJlbnRDb25zdHJ1Y3Qsbj1kLmV2ZW50cy5sZW5ndGgscj1BcnJheS5mcm9tKGEpO3JldHVybntmcm9tOm4scmVzdG9yZTpzfTtmdW5jdGlvbiBzKCl7bz1lLGQucHJldmlvdXM9dCxkLmN1cnJlbnRDb25zdHJ1Y3Q9aSxkLmV2ZW50cy5sZW5ndGg9bixhPXIseSgpfX0oKSx1PWUsZS5wYXJ0aWFsfHwoZC5jdXJyZW50Q29uc3RydWN0PWUpO2lmKGUubmFtZSYmZC5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoZS5uYW1lKSlyZXR1cm4gdihpKTtyZXR1cm4gZS50b2tlbml6ZS5jYWxsKHQ/T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKGQpLHQpOmQsYyxnLHYpKGkpfX1mdW5jdGlvbiBnKHQpe3JldHVybiBsPSEwLGUodSxmKSxufWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGw9ITAsZi5yZXN0b3JlKCksKytoPHMubGVuZ3RoP2Ioc1toXSk6cn19fWZ1bmN0aW9uIHcoZSx0KXtlLnJlc29sdmVBbGwmJiFyLmluY2x1ZGVzKGUpJiZyLnB1c2goZSksZS5yZXNvbHZlJiZWbyhkLmV2ZW50cyx0LGQuZXZlbnRzLmxlbmd0aC10LGUucmVzb2x2ZShkLmV2ZW50cy5zbGljZSh0KSxkKSksZS5yZXNvbHZlVG8mJihkLmV2ZW50cz1lLnJlc29sdmVUbyhkLmV2ZW50cyxkKSl9ZnVuY3Rpb24geSgpe28ubGluZSBpbiBuJiZvLmNvbHVtbjwyJiYoby5jb2x1bW49bltvLmxpbmVdLG8ub2Zmc2V0Kz1uW28ubGluZV0tMSl9fWZ1bmN0aW9uIFByKHQpe2NvbnN0IGk9e2NvbnN0cnVjdHM6ZnVuY3Rpb24oZSl7Y29uc3QgdD17fTtsZXQgaT0tMTtmb3IoOysraTxlLmxlbmd0aDspWW8odCxlW2ldKTtyZXR1cm4gdH0oW2UsLi4uKHR8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6byh4biksZGVmaW5lZDpbXSxkb2N1bWVudDpvKGtuKSxmbG93Om8oQW4pLGxhenk6e30sc3RyaW5nOm8oUG4pLHRleHQ6byhEbil9O3JldHVybiBpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBUcihpLGUsdCl9fX1jb25zdCBEcj0vW1wwXHRcblxyXS9nO2Z1bmN0aW9uIEZyKGUsdCxpKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihpPXQsdD12b2lkIDApLHduKGkpKGZ1bmN0aW9uKGUpe2Zvcig7IUNuKGUpOyk7cmV0dXJuIGV9KFByKGkpLmRvY3VtZW50KCkud3JpdGUoZnVuY3Rpb24oKXtsZXQgZSx0PTEsaT0iIixvPSEwO3JldHVybiBmdW5jdGlvbihuLHIscyl7Y29uc3QgYT1bXTtsZXQgbCxjLGQsaCx1O2ZvcihuPWkrKCJzdHJpbmciPT10eXBlb2Ygbj9uLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKHJ8fHZvaWQgMCkuZGVjb2RlKG4pKSxkPTAsaT0iIixvJiYoNjUyNzk9PT1uLmNoYXJDb2RlQXQoMCkmJmQrKyxvPXZvaWQgMCk7ZDxuLmxlbmd0aDspe2lmKERyLmxhc3RJbmRleD1kLGw9RHIuZXhlYyhuKSxoPWwmJnZvaWQgMCE9PWwuaW5kZXg/bC5pbmRleDpuLmxlbmd0aCx1PW4uY2hhckNvZGVBdChoKSwhbCl7aT1uLnNsaWNlKGQpO2JyZWFrfWlmKDEwPT09dSYmZD09PWgmJmUpYS5wdXNoKC0zKSxlPXZvaWQgMDtlbHNlIHN3aXRjaChlJiYoYS5wdXNoKC01KSxlPXZvaWQgMCksZDxoJiYoYS5wdXNoKG4uc2xpY2UoZCxoKSksdCs9aC1kKSx1KXtjYXNlIDA6YS5wdXNoKDY1NTMzKSx0Kys7YnJlYWs7Y2FzZSA5OmZvcihjPTQqTWF0aC5jZWlsKHQvNCksYS5wdXNoKC0yKTt0Kys8YzspYS5wdXNoKC0xKTticmVhaztjYXNlIDEwOmEucHVzaCgtNCksdD0xO2JyZWFrO2RlZmF1bHQ6ZT0hMCx0PTF9ZD1oKzF9cmV0dXJuIHMmJihlJiZhLnB1c2goLTUpLGkmJmEucHVzaChpKSxhLnB1c2gobnVsbCkpLGF9fSgpKGUsdCwhMCkpKSl9ZnVuY3Rpb24gTXIoZSl7bGV0IHQ9KGV8fHt9KS5zaW5nbGVUaWxkZTtjb25zdCBpPXtuYW1lOiJzdHJpa2V0aHJvdWdoIix0b2tlbml6ZTpmdW5jdGlvbihlLGksbyl7Y29uc3Qgbj10aGlzLnByZXZpb3VzLHI9dGhpcy5ldmVudHM7bGV0IHM9MDtyZXR1cm4gZnVuY3Rpb24odCl7aWYoMTI2PT09biYmImNoYXJhY3RlckVzY2FwZSIhPT1yW3IubGVuZ3RoLTFdWzFdLnR5cGUpcmV0dXJuIG8odCk7cmV0dXJuIGUuZW50ZXIoInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSIpLGEodCl9O2Z1bmN0aW9uIGEocil7Y29uc3QgbD1tcihuKTtpZigxMjY9PT1yKXJldHVybiBzPjE/byhyKTooZS5jb25zdW1lKHIpLHMrKyxhKTtpZihzPDImJiF0KXJldHVybiBvKHIpO2NvbnN0IGM9ZS5leGl0KCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSxkPW1yKHIpO3JldHVybiBjLl9vcGVuPSFkfHwyPT09ZCYmQm9vbGVhbihsKSxjLl9jbG9zZT0hbHx8Mj09PWwmJkJvb2xlYW4oZCksaShyKX19LHJlc29sdmVBbGw6ZnVuY3Rpb24oZSx0KXtsZXQgaT0tMTtmb3IoOysraTxlLmxlbmd0aDspaWYoImVudGVyIj09PWVbaV1bMF0mJiJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiPT09ZVtpXVsxXS50eXBlJiZlW2ldWzFdLl9jbG9zZSl7bGV0IG89aTtmb3IoO28tLTspaWYoImV4aXQiPT09ZVtvXVswXSYmInN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSI9PT1lW29dWzFdLnR5cGUmJmVbb11bMV0uX29wZW4mJmVbaV1bMV0uZW5kLm9mZnNldC1lW2ldWzFdLnN0YXJ0Lm9mZnNldD09ZVtvXVsxXS5lbmQub2Zmc2V0LWVbb11bMV0uc3RhcnQub2Zmc2V0KXtlW2ldWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSIsZVtvXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiO2NvbnN0IG49e3R5cGU6InN0cmlrZXRocm91Z2giLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZVtvXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sZVtpXVsxXS5lbmQpfSxyPXt0eXBlOiJzdHJpa2V0aHJvdWdoVGV4dCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxlW29dWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sZVtpXVsxXS5zdGFydCl9LHM9W1siZW50ZXIiLG4sdF0sWyJlbnRlciIsZVtvXVsxXSx0XSxbImV4aXQiLGVbb11bMV0sdF0sWyJlbnRlciIscix0XV0sYT10LnBhcnNlci5jb25zdHJ1Y3RzLmluc2lkZVNwYW4ubnVsbDthJiZWbyhzLHMubGVuZ3RoLDAsY3IoYSxlLnNsaWNlKG8rMSxpKSx0KSksVm8ocyxzLmxlbmd0aCwwLFtbImV4aXQiLHIsdF0sWyJlbnRlciIsZVtpXVsxXSx0XSxbImV4aXQiLGVbaV1bMV0sdF0sWyJleGl0IixuLHRdXSksVm8oZSxvLTEsaS1vKzMscyksaT1vK3MubGVuZ3RoLTI7YnJlYWt9fWk9LTE7Zm9yKDsrK2k8ZS5sZW5ndGg7KSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiPT09ZVtpXVsxXS50eXBlJiYoZVtpXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIGV9fTtyZXR1cm4gbnVsbD09dCYmKHQ9ITApLHt0ZXh0OnsxMjY6aX0saW5zaWRlU3Bhbjp7bnVsbDpbaV19LGF0dGVudGlvbk1hcmtlcnM6e251bGw6WzEyNl19fX1sZXQgUnI9Y2xhc3MgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy52YWx1ZT0iIn1yZW5kZXIoKXtyZXR1cm4gam9gJHsoZT0+KHtfJGxpdFN0YXRpYyQ6ZSxyOk9vfSkpKEZyKHRoaXMudmFsdWUse2V4dGVuc2lvbnM6W01yKCldLGh0bWxFeHRlbnNpb25zOlt7ZW50ZXI6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPGRlbD4iKX19LGV4aXQ6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPC9kZWw+Iil9fX1dfSkpfWB9fTtSci5zdHlsZXM9W2hgCiAgICAgIGgxLAogICAgICBoMiwKICAgICAgaDMsCiAgICAgIGg0LAogICAgICBoNSwKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgfQoKICAgICAgYSB7CiAgICAgICAgY29sb3I6IHZhcigtLWxpbmspOwogICAgICB9CgogICAgICBhOmhvdmVyLAogICAgICBhOmFjdGl2ZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgcCB7CiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIHA6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgYF0sdChbeWUoe3R5cGU6U3RyaW5nfSldLFJyLnByb3RvdHlwZSwidmFsdWUiLHZvaWQgMCksUnI9dChbZ2UoIndyLWNvbGwtZGVzY3JpcHRpb24iKV0sUnIpO3ZhciBPcj1oYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTYwMCk7CiAgfQoKICAuaWNvbi1idXR0b24gewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICBjb2xvcjogaW5oZXJpdDsKICAgIHBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgY29sb3I7CiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgfQoKICAuaWNvbi1idXR0b246aG92ZXI6bm90KC5pY29uLWJ1dHRvbi0tZGlzYWJsZWQpLAogIC5pY29uLWJ1dHRvbjpmb2N1cy12aXNpYmxlOm5vdCguaWNvbi1idXR0b24tLWRpc2FibGVkKSB7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApOwogIH0KCiAgLmljb24tYnV0dG9uOmFjdGl2ZTpub3QoLmljb24tYnV0dG9uLS1kaXNhYmxlZCkgewogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNzAwKTsKICB9CgogIC5pY29uLWJ1dHRvbjpmb2N1cyB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgLmljb24tYnV0dG9uLS1kaXNhYmxlZCB7CiAgICBvcGFjaXR5OiAwLjU7CiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogIH0KCiAgLmljb24tYnV0dG9uOmZvY3VzLXZpc2libGUgewogICAgb3V0bGluZTogdmFyKC0tc2wtZm9jdXMtcmluZyk7CiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tc2wtZm9jdXMtcmluZy1vZmZzZXQpOwogIH0KCiAgLmljb24tYnV0dG9uX19pY29uIHsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KYCxVcj1oYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiAxZW07CiAgICBoZWlnaHQ6IDFlbTsKICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7CiAgfQoKICBzdmcgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB3aWR0aDogMTAwJTsKICB9CmA7ZnVuY3Rpb24gQnIoZSx0KXtjb25zdCBpPXdpKHt3YWl0VW50aWxGaXJzdFVwZGF0ZTohMX0sdCk7cmV0dXJuKHQsbyk9Pntjb25zdHt1cGRhdGU6bn09dCxyPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07dC51cGRhdGU9ZnVuY3Rpb24oZSl7ci5mb3JFYWNoKCh0PT57Y29uc3Qgbj10O2lmKGUuaGFzKG4pKXtjb25zdCB0PWUuZ2V0KG4pLHI9dGhpc1tuXTt0IT09ciYmKGkud2FpdFVudGlsRmlyc3RVcGRhdGUmJiF0aGlzLmhhc1VwZGF0ZWR8fHRoaXNbb10odCxyKSl9fSkpLG4uY2FsbCh0aGlzLGUpfX19dmFyIE5yPWhgCiAgOmhvc3QgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIDpob3N0ICosCiAgOmhvc3QgKjo6YmVmb3JlLAogIDpob3N0ICo6OmFmdGVyIHsKICAgIGJveC1zaXppbmc6IGluaGVyaXQ7CiAgfQoKICBbaGlkZGVuXSB7CiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgfQpgLHFyPWNsYXNzIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9iamVjdC5lbnRyaWVzKHRoaXMuY29uc3RydWN0b3IuZGVwZW5kZW5jaWVzKS5mb3JFYWNoKCgoW2UsdF0pPT57dGhpcy5jb25zdHJ1Y3Rvci5kZWZpbmUoZSx0KX0pKX1lbWl0KGUsdCl7Y29uc3QgaT1uZXcgQ3VzdG9tRXZlbnQoZSx3aSh7YnViYmxlczohMCxjYW5jZWxhYmxlOiExLGNvbXBvc2VkOiEwLGRldGFpbDp7fX0sdCkpO3JldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoaSksaX1zdGF0aWMgZGVmaW5lKGUsdD10aGlzLGk9e30pe2NvbnN0IG89Y3VzdG9tRWxlbWVudHMuZ2V0KGUpO2lmKCFvKXJldHVybiB2b2lkIGN1c3RvbUVsZW1lbnRzLmRlZmluZShlLGNsYXNzIGV4dGVuZHMgdHt9LGkpO2xldCBuPSIgKHVua25vd24gdmVyc2lvbikiLHI9bjsidmVyc2lvbiJpbiB0JiZ0LnZlcnNpb24mJihuPSIgdiIrdC52ZXJzaW9uKSwidmVyc2lvbiJpbiBvJiZvLnZlcnNpb24mJihyPSIgdiIrby52ZXJzaW9uKSxuJiZyJiZuPT09cnx8Y29uc29sZS53YXJuKGBBdHRlbXB0ZWQgdG8gcmVnaXN0ZXIgPCR7ZX0+JHtufSwgYnV0IDwke2V9PiR7cn0gaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkLmApfX07cXIudmVyc2lvbj0iMi4xNS4xIixxci5kZXBlbmRlbmNpZXM9e30seGkoW3llKCldLHFyLnByb3RvdHlwZSwiZGlyIiwyKSx4aShbeWUoKV0scXIucHJvdG90eXBlLCJsYW5nIiwyKTt2YXIganIsSHI9U3ltYm9sKCksV3I9U3ltYm9sKCksVnI9bmV3IE1hcCxHcj1jbGFzcyBleHRlbmRzIHFye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmluaXRpYWxSZW5kZXI9ITEsdGhpcy5zdmc9bnVsbCx0aGlzLmxhYmVsPSIiLHRoaXMubGlicmFyeT0iZGVmYXVsdCJ9YXN5bmMgcmVzb2x2ZUljb24oZSx0KXt2YXIgaTtsZXQgbztpZihudWxsPT10P3ZvaWQgMDp0LnNwcml0ZVNoZWV0KXt0aGlzLnN2Zz1RYDxzdmcgcGFydD0ic3ZnIj4KICAgICAgICA8dXNlIHBhcnQ9InVzZSIgaHJlZj0iJHtlfSI+PC91c2U+CiAgICAgIDwvc3ZnPmAsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtjb25zdCBpPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJbcGFydD0nc3ZnJ10iKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdC5tdXRhdG9yJiZ0Lm11dGF0b3IoaSksdGhpcy5zdmd9dHJ5e2lmKG89YXdhaXQgZmV0Y2goZSx7bW9kZToiY29ycyJ9KSwhby5vaylyZXR1cm4gNDEwPT09by5zdGF0dXM/SHI6V3J9Y2F0Y2goZSl7cmV0dXJuIFdyfXRyeXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuaW5uZXJIVE1MPWF3YWl0IG8udGV4dCgpO2NvbnN0IHQ9ZS5maXJzdEVsZW1lbnRDaGlsZDtpZigic3ZnIiE9PShudWxsPT0oaT1udWxsPT10P3ZvaWQgMDp0LnRhZ05hbWUpP3ZvaWQgMDppLnRvTG93ZXJDYXNlKCkpKXJldHVybiBIcjtqcnx8KGpyPW5ldyBET01QYXJzZXIpO2NvbnN0IG49anIucGFyc2VGcm9tU3RyaW5nKHQub3V0ZXJIVE1MLCJ0ZXh0L2h0bWwiKS5ib2R5LnF1ZXJ5U2VsZWN0b3IoInN2ZyIpO3JldHVybiBuPyhuLnBhcnQuYWRkKCJzdmciKSxkb2N1bWVudC5hZG9wdE5vZGUobikpOkhyfWNhdGNoKGUpe3JldHVybiBIcn19Y29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZTtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGU9dGhpcyxhaS5wdXNoKGUpfWZpcnN0VXBkYXRlZCgpe3RoaXMuaW5pdGlhbFJlbmRlcj0hMCx0aGlzLnNldEljb24oKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBlO3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZT10aGlzLGFpPWFpLmZpbHRlcigodD0+dCE9PWUpKX1nZXRJY29uU291cmNlKCl7Y29uc3QgZT1saSh0aGlzLmxpYnJhcnkpO3JldHVybiB0aGlzLm5hbWUmJmU/e3VybDplLnJlc29sdmVyKHRoaXMubmFtZSksZnJvbUxpYnJhcnk6ITB9Ont1cmw6dGhpcy5zcmMsZnJvbUxpYnJhcnk6ITF9fWhhbmRsZUxhYmVsQ2hhbmdlKCl7InN0cmluZyI9PXR5cGVvZiB0aGlzLmxhYmVsJiZ0aGlzLmxhYmVsLmxlbmd0aD4wPyh0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsImltZyIpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0aGlzLmxhYmVsKSx0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSk6KHRoaXMucmVtb3ZlQXR0cmlidXRlKCJyb2xlIiksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbGFiZWwiKSx0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIikpfWFzeW5jIHNldEljb24oKXt2YXIgZTtjb25zdHt1cmw6dCxmcm9tTGlicmFyeTppfT10aGlzLmdldEljb25Tb3VyY2UoKSxvPWk/bGkodGhpcy5saWJyYXJ5KTp2b2lkIDA7aWYoIXQpcmV0dXJuIHZvaWQodGhpcy5zdmc9bnVsbCk7bGV0IG49VnIuZ2V0KHQpO2lmKG58fChuPXRoaXMucmVzb2x2ZUljb24odCxvKSxWci5zZXQodCxuKSksIXRoaXMuaW5pdGlhbFJlbmRlcilyZXR1cm47Y29uc3Qgcj1hd2FpdCBuO2lmKHI9PT1XciYmVnIuZGVsZXRlKHQpLHQ9PT10aGlzLmdldEljb25Tb3VyY2UoKS51cmwpaWYoKChlLHQpPT52b2lkIDA9PT10P3ZvaWQgMCE9PWU/Ll8kbGl0VHlwZSQ6ZT8uXyRsaXRUeXBlJD09PXQpKHIpKXRoaXMuc3ZnPXI7ZWxzZSBzd2l0Y2gocil7Y2FzZSBXcjpjYXNlIEhyOnRoaXMuc3ZnPW51bGwsdGhpcy5lbWl0KCJzbC1lcnJvciIpO2JyZWFrO2RlZmF1bHQ6dGhpcy5zdmc9ci5jbG9uZU5vZGUoITApLG51bGw9PShlPW51bGw9PW8/dm9pZCAwOm8ubXV0YXRvcil8fGUuY2FsbChvLHRoaXMuc3ZnKSx0aGlzLmVtaXQoInNsLWxvYWQiKX19cmVuZGVyKCl7cmV0dXJuIHRoaXMuc3ZnfX07R3Iuc3R5bGVzPVtOcixVcl0seGkoW3hlKCldLEdyLnByb3RvdHlwZSwic3ZnIiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sR3IucHJvdG90eXBlLCJuYW1lIiwyKSx4aShbeWUoKV0sR3IucHJvdG90eXBlLCJzcmMiLDIpLHhpKFt5ZSgpXSxHci5wcm90b3R5cGUsImxhYmVsIiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sR3IucHJvdG90eXBlLCJsaWJyYXJ5IiwyKSx4aShbQnIoImxhYmVsIildLEdyLnByb3RvdHlwZSwiaGFuZGxlTGFiZWxDaGFuZ2UiLDEpLHhpKFtCcihbIm5hbWUiLCJzcmMiLCJsaWJyYXJ5Il0pXSxHci5wcm90b3R5cGUsInNldEljb24iLDEpOwovKioKICogQGxpY2Vuc2UKICogQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQwogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqLwpjb25zdCBLcj1DZShjbGFzcyBleHRlbmRzIElle2NvbnN0cnVjdG9yKGUpe2lmKHN1cGVyKGUpLGUudHlwZSE9PXplfHwiY2xhc3MiIT09ZS5uYW1lfHxlLnN0cmluZ3M/Lmxlbmd0aD4yKXRocm93IEVycm9yKCJgY2xhc3NNYXAoKWAgY2FuIG9ubHkgYmUgdXNlZCBpbiB0aGUgYGNsYXNzYCBhdHRyaWJ1dGUgYW5kIG11c3QgYmUgdGhlIG9ubHkgcGFydCBpbiB0aGUgYXR0cmlidXRlLiIpfXJlbmRlcihlKXtyZXR1cm4iICIrT2JqZWN0LmtleXMoZSkuZmlsdGVyKCh0PT5lW3RdKSkuam9pbigiICIpKyIgIn11cGRhdGUoZSxbdF0pe2lmKHZvaWQgMD09PXRoaXMuc3Qpe3RoaXMuc3Q9bmV3IFNldCx2b2lkIDAhPT1lLnN0cmluZ3MmJih0aGlzLm50PW5ldyBTZXQoZS5zdHJpbmdzLmpvaW4oIiAiKS5zcGxpdCgvXHMvKS5maWx0ZXIoKGU9PiIiIT09ZSkpKSk7Zm9yKGNvbnN0IGUgaW4gdCl0W2VdJiYhdGhpcy5udD8uaGFzKGUpJiZ0aGlzLnN0LmFkZChlKTtyZXR1cm4gdGhpcy5yZW5kZXIodCl9Y29uc3QgaT1lLmVsZW1lbnQuY2xhc3NMaXN0O2Zvcihjb25zdCBlIG9mIHRoaXMuc3QpZSBpbiB0fHwoaS5yZW1vdmUoZSksdGhpcy5zdC5kZWxldGUoZSkpO2Zvcihjb25zdCBlIGluIHQpe2NvbnN0IG89ISF0W2VdO289PT10aGlzLnN0LmhhcyhlKXx8dGhpcy5udD8uaGFzKGUpfHwobz8oaS5hZGQoZSksdGhpcy5zdC5hZGQoZSkpOihpLnJlbW92ZShlKSx0aGlzLnN0LmRlbGV0ZShlKSkpfXJldHVybiBKfX0pO3ZhciBZcj1jbGFzcyBleHRlbmRzIHFye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmhhc0ZvY3VzPSExLHRoaXMubGFiZWw9IiIsdGhpcy5kaXNhYmxlZD0hMX1oYW5kbGVCbHVyKCl7dGhpcy5oYXNGb2N1cz0hMSx0aGlzLmVtaXQoInNsLWJsdXIiKX1oYW5kbGVGb2N1cygpe3RoaXMuaGFzRm9jdXM9ITAsdGhpcy5lbWl0KCJzbC1mb2N1cyIpfWhhbmRsZUNsaWNrKGUpe3RoaXMuZGlzYWJsZWQmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSl9Y2xpY2soKXt0aGlzLmJ1dHRvbi5jbGljaygpfWZvY3VzKGUpe3RoaXMuYnV0dG9uLmZvY3VzKGUpfWJsdXIoKXt0aGlzLmJ1dHRvbi5ibHVyKCl9cmVuZGVyKCl7Y29uc3QgZT0hIXRoaXMuaHJlZix0PWU/Qm9gYWA6Qm9gYnV0dG9uYDtyZXR1cm4gam9gCiAgICAgIDwke3R9CiAgICAgICAgcGFydD0iYmFzZSIKICAgICAgICBjbGFzcz0ke0tyKHsiaWNvbi1idXR0b24iOiEwLCJpY29uLWJ1dHRvbi0tZGlzYWJsZWQiOiFlJiZ0aGlzLmRpc2FibGVkLCJpY29uLWJ1dHRvbi0tZm9jdXNlZCI6dGhpcy5oYXNGb2N1c30pfQogICAgICAgID9kaXNhYmxlZD0keyRlKGU/dm9pZCAwOnRoaXMuZGlzYWJsZWQpfQogICAgICAgIHR5cGU9JHskZShlP3ZvaWQgMDoiYnV0dG9uIil9CiAgICAgICAgaHJlZj0keyRlKGU/dGhpcy5ocmVmOnZvaWQgMCl9CiAgICAgICAgdGFyZ2V0PSR7JGUoZT90aGlzLnRhcmdldDp2b2lkIDApfQogICAgICAgIGRvd25sb2FkPSR7JGUoZT90aGlzLmRvd25sb2FkOnZvaWQgMCl9CiAgICAgICAgcmVsPSR7JGUoZSYmdGhpcy50YXJnZXQ/Im5vcmVmZXJyZXIgbm9vcGVuZXIiOnZvaWQgMCl9CiAgICAgICAgcm9sZT0keyRlKGU/dm9pZCAwOiJidXR0b24iKX0KICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZD8idHJ1ZSI6ImZhbHNlIn0KICAgICAgICBhcmlhLWxhYmVsPSIke3RoaXMubGFiZWx9IgogICAgICAgIHRhYmluZGV4PSR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0KICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlQmx1cn0KICAgICAgICBAZm9jdXM9JHt0aGlzLmhhbmRsZUZvY3VzfQogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgID4KICAgICAgICA8c2wtaWNvbgogICAgICAgICAgY2xhc3M9Imljb24tYnV0dG9uX19pY29uIgogICAgICAgICAgbmFtZT0keyRlKHRoaXMubmFtZSl9CiAgICAgICAgICBsaWJyYXJ5PSR7JGUodGhpcy5saWJyYXJ5KX0KICAgICAgICAgIHNyYz0keyRlKHRoaXMuc3JjKX0KICAgICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgogICAgICAgID48L3NsLWljb24+CiAgICAgIDwvJHt0fT4KICAgIGB9fTtZci5zdHlsZXM9W05yLE9yXSxZci5kZXBlbmRlbmNpZXM9eyJzbC1pY29uIjpHcn0seGkoW1NlKCIuaWNvbi1idXR0b24iKV0sWXIucHJvdG90eXBlLCJidXR0b24iLDIpLHhpKFt4ZSgpXSxZci5wcm90b3R5cGUsImhhc0ZvY3VzIiwyKSx4aShbeWUoKV0sWXIucHJvdG90eXBlLCJuYW1lIiwyKSx4aShbeWUoKV0sWXIucHJvdG90eXBlLCJsaWJyYXJ5IiwyKSx4aShbeWUoKV0sWXIucHJvdG90eXBlLCJzcmMiLDIpLHhpKFt5ZSgpXSxZci5wcm90b3R5cGUsImhyZWYiLDIpLHhpKFt5ZSgpXSxZci5wcm90b3R5cGUsInRhcmdldCIsMikseGkoW3llKCldLFlyLnByb3RvdHlwZSwiZG93bmxvYWQiLDIpLHhpKFt5ZSgpXSxZci5wcm90b3R5cGUsImxhYmVsIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFlyLnByb3RvdHlwZSwiZGlzYWJsZWQiLDIpO3ZhciBRcj1uZXcgTWFwLFpyPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEpyKGUpe3JldHVybiBudWxsIT1lP2U6e2tleWZyYW1lczpbXSxvcHRpb25zOntkdXJhdGlvbjowfX19ZnVuY3Rpb24gWHIoZSx0KXtyZXR1cm4icnRsIj09PXQudG9Mb3dlckNhc2UoKT97a2V5ZnJhbWVzOmUucnRsS2V5ZnJhbWVzfHxlLmtleWZyYW1lcyxvcHRpb25zOmUub3B0aW9uc306ZX1mdW5jdGlvbiBlcyhlLHQpe1FyLnNldChlLEpyKHQpKX1mdW5jdGlvbiB0cyhlLHQsaSl7Y29uc3Qgbz1aci5nZXQoZSk7aWYobnVsbD09bz92b2lkIDA6b1t0XSlyZXR1cm4gWHIob1t0XSxpLmRpcik7Y29uc3Qgbj1Rci5nZXQodCk7cmV0dXJuIG4/WHIobixpLmRpcik6e2tleWZyYW1lczpbXSxvcHRpb25zOntkdXJhdGlvbjowfX19ZnVuY3Rpb24gaXMoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoKGk9PntlLmFkZEV2ZW50TGlzdGVuZXIodCwoZnVuY3Rpb24gbyhuKXtuLnRhcmdldD09PWUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxvKSxpKCkpfSkpfSkpfWZ1bmN0aW9uIG9zKGUsdCxpKXtyZXR1cm4gbmV3IFByb21pc2UoKG89PntpZigobnVsbD09aT92b2lkIDA6aS5kdXJhdGlvbik9PT0xLzApdGhyb3cgbmV3IEVycm9yKCJQcm9taXNlLWJhc2VkIGFuaW1hdGlvbnMgbXVzdCBiZSBmaW5pdGUuIik7Y29uc3Qgbj1lLmFuaW1hdGUodCx5aSh3aSh7fSxpKSx7ZHVyYXRpb246cnMoKT8wOmkuZHVyYXRpb259KSk7bi5hZGRFdmVudExpc3RlbmVyKCJjYW5jZWwiLG8se29uY2U6ITB9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaCIsbyx7b25jZTohMH0pfSkpfWZ1bmN0aW9uIG5zKGUpe3JldHVybihlPWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKS5pbmRleE9mKCJtcyIpPi0xP3BhcnNlRmxvYXQoZSk6ZS5pbmRleE9mKCJzIik+LTE/MWUzKnBhcnNlRmxvYXQoZSk6cGFyc2VGbG9hdChlKX1mdW5jdGlvbiBycygpe3JldHVybiB3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzfWZ1bmN0aW9uIHNzKGUpe3JldHVybiBQcm9taXNlLmFsbChlLmdldEFuaW1hdGlvbnMoKS5tYXAoKGU9Pm5ldyBQcm9taXNlKCh0PT57ZS5jYW5jZWwoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KSkpKSl9Y29uc3QgYXM9bmV3IFNldCxscz1uZXcgTXV0YXRpb25PYnNlcnZlcihwcyksY3M9bmV3IE1hcDtsZXQgZHMsaHM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcnx8Imx0ciIsdXM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmd8fG5hdmlnYXRvci5sYW5ndWFnZTtmdW5jdGlvbiBmcyguLi5lKXtlLm1hcCgoZT0+e2NvbnN0IHQ9ZS4kY29kZS50b0xvd2VyQ2FzZSgpO2NzLmhhcyh0KT9jcy5zZXQodCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sY3MuZ2V0KHQpKSxlKSk6Y3Muc2V0KHQsZSksZHN8fChkcz1lKX0pKSxwcygpfWZ1bmN0aW9uIHBzKCl7aHM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcnx8Imx0ciIsdXM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmd8fG5hdmlnYXRvci5sYW5ndWFnZSxbLi4uYXMua2V5cygpXS5tYXAoKGU9PnsiZnVuY3Rpb24iPT10eXBlb2YgZS5yZXF1ZXN0VXBkYXRlJiZlLnJlcXVlc3RVcGRhdGUoKX0pKX1scy5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJkaXIiLCJsYW5nIl19KTtjbGFzcyBtc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmhvc3Q9ZSx0aGlzLmhvc3QuYWRkQ29udHJvbGxlcih0aGlzKX1ob3N0Q29ubmVjdGVkKCl7YXMuYWRkKHRoaXMuaG9zdCl9aG9zdERpc2Nvbm5lY3RlZCgpe2FzLmRlbGV0ZSh0aGlzLmhvc3QpfWRpcigpe3JldHVybmAke3RoaXMuaG9zdC5kaXJ8fGhzfWAudG9Mb3dlckNhc2UoKX1sYW5nKCl7cmV0dXJuYCR7dGhpcy5ob3N0Lmxhbmd8fHVzfWAudG9Mb3dlckNhc2UoKX1nZXRUcmFuc2xhdGlvbkRhdGEoZSl7dmFyIHQsaTtjb25zdCBvPW5ldyBJbnRsLkxvY2FsZShlLnJlcGxhY2UoL18vZywiLSIpKSxuPW51bGw9PW8/dm9pZCAwOm8ubGFuZ3VhZ2UudG9Mb3dlckNhc2UoKSxyPW51bGwhPT0oaT1udWxsPT09KHQ9bnVsbD09bz92b2lkIDA6by5yZWdpb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnRvTG93ZXJDYXNlKCkpJiZ2b2lkIDAhPT1pP2k6IiI7cmV0dXJue2xvY2FsZTpvLGxhbmd1YWdlOm4scmVnaW9uOnIscHJpbWFyeTpjcy5nZXQoYCR7bn0tJHtyfWApLHNlY29uZGFyeTpjcy5nZXQobil9fWV4aXN0cyhlLHQpe3ZhciBpO2NvbnN0e3ByaW1hcnk6byxzZWNvbmRhcnk6bn09dGhpcy5nZXRUcmFuc2xhdGlvbkRhdGEobnVsbCE9PShpPXQubGFuZykmJnZvaWQgMCE9PWk/aTp0aGlzLmxhbmcoKSk7cmV0dXJuIHQ9T2JqZWN0LmFzc2lnbih7aW5jbHVkZUZhbGxiYWNrOiExfSx0KSwhIShvJiZvW2VdfHxuJiZuW2VdfHx0LmluY2x1ZGVGYWxsYmFjayYmZHMmJmRzW2VdKX10ZXJtKGUsLi4udCl7Y29uc3R7cHJpbWFyeTppLHNlY29uZGFyeTpvfT10aGlzLmdldFRyYW5zbGF0aW9uRGF0YSh0aGlzLmxhbmcoKSk7bGV0IG47aWYoaSYmaVtlXSluPWlbZV07ZWxzZSBpZihvJiZvW2VdKW49b1tlXTtlbHNle2lmKCFkc3x8IWRzW2VdKXJldHVybiBjb25zb2xlLmVycm9yKGBObyB0cmFuc2xhdGlvbiBmb3VuZCBmb3I6ICR7U3RyaW5nKGUpfWApLFN0cmluZyhlKTtuPWRzW2VdfXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuP24oLi4udCk6bn1kYXRlKGUsdCl7cmV0dXJuIGU9bmV3IERhdGUoZSksbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sYW5nKCksdCkuZm9ybWF0KGUpfW51bWJlcihlLHQpe3JldHVybiBlPU51bWJlcihlKSxpc05hTihlKT8iIjpuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5sYW5nKCksdCkuZm9ybWF0KGUpfXJlbGF0aXZlVGltZShlLHQsaSl7cmV0dXJuIG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdCh0aGlzLmxhbmcoKSxpKS5mb3JtYXQoZSx0KX19dmFyIGJzPXskY29kZToiZW4iLCRuYW1lOiJFbmdsaXNoIiwkZGlyOiJsdHIiLGNhcm91c2VsOiJDYXJvdXNlbCIsY2xlYXJFbnRyeToiQ2xlYXIgZW50cnkiLGNsb3NlOiJDbG9zZSIsY29waWVkOiJDb3BpZWQiLGNvcHk6IkNvcHkiLGN1cnJlbnRWYWx1ZToiQ3VycmVudCB2YWx1ZSIsZXJyb3I6IkVycm9yIixnb1RvU2xpZGU6KGUsdCk9PmBHbyB0byBzbGlkZSAke2V9IG9mICR7dH1gLGhpZGVQYXNzd29yZDoiSGlkZSBwYXNzd29yZCIsbG9hZGluZzoiTG9hZGluZyIsbmV4dFNsaWRlOiJOZXh0IHNsaWRlIixudW1PcHRpb25zU2VsZWN0ZWQ6ZT0+MD09PWU/Ik5vIG9wdGlvbnMgc2VsZWN0ZWQiOjE9PT1lPyIxIG9wdGlvbiBzZWxlY3RlZCI6YCR7ZX0gb3B0aW9ucyBzZWxlY3RlZGAscHJldmlvdXNTbGlkZToiUHJldmlvdXMgc2xpZGUiLHByb2dyZXNzOiJQcm9ncmVzcyIscmVtb3ZlOiJSZW1vdmUiLHJlc2l6ZToiUmVzaXplIixzY3JvbGxUb0VuZDoiU2Nyb2xsIHRvIGVuZCIsc2Nyb2xsVG9TdGFydDoiU2Nyb2xsIHRvIHN0YXJ0IixzZWxlY3RBQ29sb3JGcm9tVGhlU2NyZWVuOiJTZWxlY3QgYSBjb2xvciBmcm9tIHRoZSBzY3JlZW4iLHNob3dQYXNzd29yZDoiU2hvdyBwYXNzd29yZCIsc2xpZGVOdW06ZT0+YFNsaWRlICR7ZX1gLHRvZ2dsZUNvbG9yRm9ybWF0OiJUb2dnbGUgY29sb3IgZm9ybWF0In07ZnMoYnMpO3ZhciBncz1icyx2cz1jbGFzcyBleHRlbmRzIG1ze307ZnMoZ3MpO3ZhciB3cz1jbGFzc3tjb25zdHJ1Y3RvcihlLC4uLnQpe3RoaXMuc2xvdE5hbWVzPVtdLHRoaXMuaGFuZGxlU2xvdENoYW5nZT1lPT57Y29uc3QgdD1lLnRhcmdldDsodGhpcy5zbG90TmFtZXMuaW5jbHVkZXMoIltkZWZhdWx0XSIpJiYhdC5uYW1lfHx0Lm5hbWUmJnRoaXMuc2xvdE5hbWVzLmluY2x1ZGVzKHQubmFtZSkpJiZ0aGlzLmhvc3QucmVxdWVzdFVwZGF0ZSgpfSwodGhpcy5ob3N0PWUpLmFkZENvbnRyb2xsZXIodGhpcyksdGhpcy5zbG90TmFtZXM9dH1oYXNEZWZhdWx0U2xvdCgpe3JldHVyblsuLi50aGlzLmhvc3QuY2hpbGROb2Rlc10uc29tZSgoZT0+e2lmKGUubm9kZVR5cGU9PT1lLlRFWFRfTk9ERSYmIiIhPT1lLnRleHRDb250ZW50LnRyaW0oKSlyZXR1cm4hMDtpZihlLm5vZGVUeXBlPT09ZS5FTEVNRU5UX05PREUpe2NvbnN0IHQ9ZTtpZigic2wtdmlzdWFsbHktaGlkZGVuIj09PXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiExO2lmKCF0Lmhhc0F0dHJpYnV0ZSgic2xvdCIpKXJldHVybiEwfXJldHVybiExfSkpfWhhc05hbWVkU2xvdChlKXtyZXR1cm4gbnVsbCE9PXRoaXMuaG9zdC5xdWVyeVNlbGVjdG9yKGA6c2NvcGUgPiBbc2xvdD0iJHtlfSJdYCl9dGVzdChlKXtyZXR1cm4iW2RlZmF1bHRdIj09PWU/dGhpcy5oYXNEZWZhdWx0U2xvdCgpOnRoaXMuaGFzTmFtZWRTbG90KGUpfWhvc3RDb25uZWN0ZWQoKXt0aGlzLmhvc3Quc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCJzbG90Y2hhbmdlIix0aGlzLmhhbmRsZVNsb3RDaGFuZ2UpfWhvc3REaXNjb25uZWN0ZWQoKXt0aGlzLmhvc3Quc2hhZG93Um9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJzbG90Y2hhbmdlIix0aGlzLmhhbmRsZVNsb3RDaGFuZ2UpfX07dmFyIHlzPWhgCiAgOmhvc3QgewogICAgZGlzcGxheTogY29udGVudHM7CgogICAgLyogRm9yIGJldHRlciBEWCwgd2UnbGwgcmVzZXQgdGhlIG1hcmdpbiBoZXJlIHNvIHRoZSBiYXNlIHBhcnQgY2FuIGluaGVyaXQgaXQgKi8KICAgIG1hcmdpbjogMDsKICB9CgogIC5hbGVydCB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgIGJvcmRlcjogc29saWQgdmFyKC0tc2wtcGFuZWwtYm9yZGVyLXdpZHRoKSB2YXIoLS1zbC1wYW5lbC1ib3JkZXItY29sb3IpOwogICAgYm9yZGVyLXRvcC13aWR0aDogY2FsYyh2YXIoLS1zbC1wYW5lbC1ib3JkZXItd2lkdGgpICogMyk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgICBmb250LWZhbWlseTogdmFyKC0tc2wtZm9udC1zYW5zKTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtZm9udC1zaXplLXNtYWxsKTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpOwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgICBtYXJnaW46IGluaGVyaXQ7CiAgfQoKICAuYWxlcnQ6bm90KC5hbGVydC0taGFzLWljb24pIC5hbGVydF9faWNvbiwKICAuYWxlcnQ6bm90KC5hbGVydC0tY2xvc2FibGUpIC5hbGVydF9fY2xvc2UtYnV0dG9uIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAuYWxlcnRfX2ljb24gewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtZm9udC1zaXplLWxhcmdlKTsKICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zbC1zcGFjaW5nLWxhcmdlKTsKICB9CgogIC5hbGVydC0tcHJpbWFyeSB7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgfQoKICAuYWxlcnQtLXByaW1hcnkgLmFsZXJ0X19pY29uIHsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgfQoKICAuYWxlcnQtLXN1Y2Nlc3MgewogICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc2wtY29sb3Itc3VjY2Vzcy02MDApOwogIH0KCiAgLmFsZXJ0LS1zdWNjZXNzIC5hbGVydF9faWNvbiB7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3Itc3VjY2Vzcy02MDApOwogIH0KCiAgLmFsZXJ0LS1uZXV0cmFsIHsKICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICB9CgogIC5hbGVydC0tbmV1dHJhbCAuYWxlcnRfX2ljb24gewogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICB9CgogIC5hbGVydC0td2FybmluZyB7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTYwMCk7CiAgfQoKICAuYWxlcnQtLXdhcm5pbmcgLmFsZXJ0X19pY29uIHsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTYwMCk7CiAgfQoKICAuYWxlcnQtLWRhbmdlciB7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICB9CgogIC5hbGVydC0tZGFuZ2VyIC5hbGVydF9faWNvbiB7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItZGFuZ2VyLTYwMCk7CiAgfQoKICAuYWxlcnRfX21lc3NhZ2UgewogICAgZmxleDogMSAxIGF1dG87CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmctbGFyZ2UpOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CgogIC5hbGVydF9fY2xvc2UtYnV0dG9uIHsKICAgIGZsZXg6IDAgMCBhdXRvOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBmb250LXNpemU6IHZhcigtLXNsLWZvbnQtc2l6ZS1tZWRpdW0pOwogICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1zbC1zcGFjaW5nLW1lZGl1bSk7CiAgfQpgLHhzPU9iamVjdC5hc3NpZ24oZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikse2NsYXNzTmFtZToic2wtdG9hc3Qtc3RhY2sifSksa3M9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5oYXNTbG90Q29udHJvbGxlcj1uZXcgd3ModGhpcywiaWNvbiIsInN1ZmZpeCIpLHRoaXMubG9jYWxpemU9bmV3IHZzKHRoaXMpLHRoaXMub3Blbj0hMSx0aGlzLmNsb3NhYmxlPSExLHRoaXMudmFyaWFudD0icHJpbWFyeSIsdGhpcy5kdXJhdGlvbj0xLzB9Zmlyc3RVcGRhdGVkKCl7dGhpcy5iYXNlLmhpZGRlbj0hdGhpcy5vcGVufXJlc3RhcnRBdXRvSGlkZSgpe2NsZWFyVGltZW91dCh0aGlzLmF1dG9IaWRlVGltZW91dCksdGhpcy5vcGVuJiZ0aGlzLmR1cmF0aW9uPDEvMCYmKHRoaXMuYXV0b0hpZGVUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5oaWRlKCkpLHRoaXMuZHVyYXRpb24pKX1oYW5kbGVDbG9zZUNsaWNrKCl7dGhpcy5oaWRlKCl9aGFuZGxlTW91c2VNb3ZlKCl7dGhpcy5yZXN0YXJ0QXV0b0hpZGUoKX1hc3luYyBoYW5kbGVPcGVuQ2hhbmdlKCl7aWYodGhpcy5vcGVuKXt0aGlzLmVtaXQoInNsLXNob3ciKSx0aGlzLmR1cmF0aW9uPDEvMCYmdGhpcy5yZXN0YXJ0QXV0b0hpZGUoKSxhd2FpdCBzcyh0aGlzLmJhc2UpLHRoaXMuYmFzZS5oaWRkZW49ITE7Y29uc3R7a2V5ZnJhbWVzOmUsb3B0aW9uczp0fT10cyh0aGlzLCJhbGVydC5zaG93Iix7ZGlyOnRoaXMubG9jYWxpemUuZGlyKCl9KTthd2FpdCBvcyh0aGlzLmJhc2UsZSx0KSx0aGlzLmVtaXQoInNsLWFmdGVyLXNob3ciKX1lbHNle3RoaXMuZW1pdCgic2wtaGlkZSIpLGNsZWFyVGltZW91dCh0aGlzLmF1dG9IaWRlVGltZW91dCksYXdhaXQgc3ModGhpcy5iYXNlKTtjb25zdHtrZXlmcmFtZXM6ZSxvcHRpb25zOnR9PXRzKHRoaXMsImFsZXJ0LmhpZGUiLHtkaXI6dGhpcy5sb2NhbGl6ZS5kaXIoKX0pO2F3YWl0IG9zKHRoaXMuYmFzZSxlLHQpLHRoaXMuYmFzZS5oaWRkZW49ITAsdGhpcy5lbWl0KCJzbC1hZnRlci1oaWRlIil9fWhhbmRsZUR1cmF0aW9uQ2hhbmdlKCl7dGhpcy5yZXN0YXJ0QXV0b0hpZGUoKX1hc3luYyBzaG93KCl7aWYoIXRoaXMub3BlbilyZXR1cm4gdGhpcy5vcGVuPSEwLGlzKHRoaXMsInNsLWFmdGVyLXNob3ciKX1hc3luYyBoaWRlKCl7aWYodGhpcy5vcGVuKXJldHVybiB0aGlzLm9wZW49ITEsaXModGhpcywic2wtYWZ0ZXItaGlkZSIpfWFzeW5jIHRvYXN0KCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT57bnVsbD09PXhzLnBhcmVudEVsZW1lbnQmJmRvY3VtZW50LmJvZHkuYXBwZW5kKHhzKSx4cy5hcHBlbmRDaGlsZCh0aGlzKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5jbGllbnRXaWR0aCx0aGlzLnNob3coKX0pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInNsLWFmdGVyLWhpZGUiLCgoKT0+e3hzLnJlbW92ZUNoaWxkKHRoaXMpLGUoKSxudWxsPT09eHMucXVlcnlTZWxlY3Rvcigic2wtYWxlcnQiKSYmeHMucmVtb3ZlKCl9KSx7b25jZTohMH0pfSkpfXJlbmRlcigpe3JldHVybiBRYAogICAgICA8ZGl2CiAgICAgICAgcGFydD0iYmFzZSIKICAgICAgICBjbGFzcz0ke0tyKHthbGVydDohMCwiYWxlcnQtLW9wZW4iOnRoaXMub3BlbiwiYWxlcnQtLWNsb3NhYmxlIjp0aGlzLmNsb3NhYmxlLCJhbGVydC0taGFzLWljb24iOnRoaXMuaGFzU2xvdENvbnRyb2xsZXIudGVzdCgiaWNvbiIpLCJhbGVydC0tcHJpbWFyeSI6InByaW1hcnkiPT09dGhpcy52YXJpYW50LCJhbGVydC0tc3VjY2VzcyI6InN1Y2Nlc3MiPT09dGhpcy52YXJpYW50LCJhbGVydC0tbmV1dHJhbCI6Im5ldXRyYWwiPT09dGhpcy52YXJpYW50LCJhbGVydC0td2FybmluZyI6Indhcm5pbmciPT09dGhpcy52YXJpYW50LCJhbGVydC0tZGFuZ2VyIjoiZGFuZ2VyIj09PXRoaXMudmFyaWFudH0pfQogICAgICAgIHJvbGU9ImFsZXJ0IgogICAgICAgIGFyaWEtaGlkZGVuPSR7dGhpcy5vcGVuPyJmYWxzZSI6InRydWUifQogICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLmhhbmRsZU1vdXNlTW92ZX0KICAgICAgPgogICAgICAgIDxkaXYgcGFydD0iaWNvbiIgY2xhc3M9ImFsZXJ0X19pY29uIj4KICAgICAgICAgIDxzbG90IG5hbWU9Imljb24iPjwvc2xvdD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBwYXJ0PSJtZXNzYWdlIiBjbGFzcz0iYWxlcnRfX21lc3NhZ2UiIGFyaWEtbGl2ZT0icG9saXRlIj4KICAgICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmNsb3NhYmxlP1FgCiAgICAgICAgICAgICAgPHNsLWljb24tYnV0dG9uCiAgICAgICAgICAgICAgICBwYXJ0PSJjbG9zZS1idXR0b24iCiAgICAgICAgICAgICAgICBleHBvcnRwYXJ0cz0iYmFzZTpjbG9zZS1idXR0b25fX2Jhc2UiCiAgICAgICAgICAgICAgICBjbGFzcz0iYWxlcnRfX2Nsb3NlLWJ1dHRvbiIKICAgICAgICAgICAgICAgIG5hbWU9IngtbGciCiAgICAgICAgICAgICAgICBsaWJyYXJ5PSJzeXN0ZW0iCiAgICAgICAgICAgICAgICBsYWJlbD0ke3RoaXMubG9jYWxpemUudGVybSgiY2xvc2UiKX0KICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xvc2VDbGlja30KICAgICAgICAgICAgICA+PC9zbC1pY29uLWJ1dHRvbj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfX07a3Muc3R5bGVzPVtOcix5c10sa3MuZGVwZW5kZW5jaWVzPXsic2wtaWNvbi1idXR0b24iOllyfSx4aShbU2UoJ1twYXJ0fj0iYmFzZSJdJyldLGtzLnByb3RvdHlwZSwiYmFzZSIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxrcy5wcm90b3R5cGUsIm9wZW4iLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sa3MucHJvdG90eXBlLCJjbG9zYWJsZSIsMikseGkoW3llKHtyZWZsZWN0OiEwfSldLGtzLnByb3RvdHlwZSwidmFyaWFudCIsMikseGkoW3llKHt0eXBlOk51bWJlcn0pXSxrcy5wcm90b3R5cGUsImR1cmF0aW9uIiwyKSx4aShbQnIoIm9wZW4iLHt3YWl0VW50aWxGaXJzdFVwZGF0ZTohMH0pXSxrcy5wcm90b3R5cGUsImhhbmRsZU9wZW5DaGFuZ2UiLDEpLHhpKFtCcigiZHVyYXRpb24iKV0sa3MucHJvdG90eXBlLCJoYW5kbGVEdXJhdGlvbkNoYW5nZSIsMSksZXMoImFsZXJ0LnNob3ciLHtrZXlmcmFtZXM6W3tvcGFjaXR5OjAsc2NhbGU6Ljh9LHtvcGFjaXR5OjEsc2NhbGU6MX1dLG9wdGlvbnM6e2R1cmF0aW9uOjI1MCxlYXNpbmc6ImVhc2UifX0pLGVzKCJhbGVydC5oaWRlIix7a2V5ZnJhbWVzOlt7b3BhY2l0eToxLHNjYWxlOjF9LHtvcGFjaXR5OjAsc2NhbGU6Ljh9XSxvcHRpb25zOntkdXJhdGlvbjoyNTAsZWFzaW5nOiJlYXNlIn19KTtrcy5kZWZpbmUoInNsLWFsZXJ0Iik7dmFyIFNzPWhgCiAgOmhvc3QgewogICAgLS10cmFjay13aWR0aDogMnB4OwogICAgLS10cmFjay1jb2xvcjogcmdiKDEyOCAxMjggMTI4IC8gMjUlKTsKICAgIC0taW5kaWNhdG9yLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgICAtLXNwZWVkOiAyczsKCiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIHdpZHRoOiAxZW07CiAgICBoZWlnaHQ6IDFlbTsKICAgIGZsZXg6IG5vbmU7CiAgfQoKICAuc3Bpbm5lciB7CiAgICBmbGV4OiAxIDEgYXV0bzsKICAgIGhlaWdodDogMTAwJTsKICAgIHdpZHRoOiAxMDAlOwogIH0KCiAgLnNwaW5uZXJfX3RyYWNrLAogIC5zcGlubmVyX19pbmRpY2F0b3IgewogICAgZmlsbDogbm9uZTsKICAgIHN0cm9rZS13aWR0aDogdmFyKC0tdHJhY2std2lkdGgpOwogICAgcjogY2FsYygwLjVlbSAtIHZhcigtLXRyYWNrLXdpZHRoKSAvIDIpOwogICAgY3g6IDAuNWVtOwogICAgY3k6IDAuNWVtOwogICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICB9CgogIC5zcGlubmVyX190cmFjayB7CiAgICBzdHJva2U6IHZhcigtLXRyYWNrLWNvbG9yKTsKICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlOwogIH0KCiAgLnNwaW5uZXJfX2luZGljYXRvciB7CiAgICBzdHJva2U6IHZhcigtLWluZGljYXRvci1jb2xvcik7CiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICBzdHJva2UtZGFzaGFycmF5OiAxNTAlIDc1JTsKICAgIGFuaW1hdGlvbjogc3BpbiB2YXIoLS1zcGVlZCkgbGluZWFyIGluZmluaXRlOwogIH0KCiAgQGtleWZyYW1lcyBzcGluIHsKICAgIDAlIHsKICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAuMDVlbSwgM2VtOwogICAgfQoKICAgIDUwJSB7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1MGRlZyk7CiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEuMzc1ZW0sIDEuMzc1ZW07CiAgICB9CgogICAgMTAwJSB7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEwODBkZWcpOwogICAgICBzdHJva2UtZGFzaGFycmF5OiAwLjA1ZW0sIDNlbTsKICAgIH0KICB9CmAsJHM9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2NhbGl6ZT1uZXcgdnModGhpcyl9cmVuZGVyKCl7cmV0dXJuIFFgCiAgICAgIDxzdmcgcGFydD0iYmFzZSIgY2xhc3M9InNwaW5uZXIiIHJvbGU9InByb2dyZXNzYmFyIiBhcmlhLWxhYmVsPSR7dGhpcy5sb2NhbGl6ZS50ZXJtKCJsb2FkaW5nIil9PgogICAgICAgIDxjaXJjbGUgY2xhc3M9InNwaW5uZXJfX3RyYWNrIj48L2NpcmNsZT4KICAgICAgICA8Y2lyY2xlIGNsYXNzPSJzcGlubmVyX19pbmRpY2F0b3IiPjwvY2lyY2xlPgogICAgICA8L3N2Zz4KICAgIGB9fTskcy5zdHlsZXM9W05yLFNzXTt2YXIgenM9bmV3IFdlYWtNYXAsX3M9bmV3IFdlYWtNYXAsQ3M9bmV3IFdlYWtNYXAsSXM9bmV3IFdlYWtTZXQsTHM9bmV3IFdlYWtNYXAsRXM9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmhhbmRsZUZvcm1EYXRhPWU9Pntjb25zdCB0PXRoaXMub3B0aW9ucy5kaXNhYmxlZCh0aGlzLmhvc3QpLGk9dGhpcy5vcHRpb25zLm5hbWUodGhpcy5ob3N0KSxvPXRoaXMub3B0aW9ucy52YWx1ZSh0aGlzLmhvc3QpLG49InNsLWJ1dHRvbiI9PT10aGlzLmhvc3QudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3RoaXMuaG9zdC5pc0Nvbm5lY3RlZCYmIXQmJiFuJiYic3RyaW5nIj09dHlwZW9mIGkmJmkubGVuZ3RoPjAmJnZvaWQgMCE9PW8mJihBcnJheS5pc0FycmF5KG8pP28uZm9yRWFjaCgodD0+e2UuZm9ybURhdGEuYXBwZW5kKGksdC50b1N0cmluZygpKX0pKTplLmZvcm1EYXRhLmFwcGVuZChpLG8udG9TdHJpbmcoKSkpfSx0aGlzLmhhbmRsZUZvcm1TdWJtaXQ9ZT0+e3ZhciB0O2NvbnN0IGk9dGhpcy5vcHRpb25zLmRpc2FibGVkKHRoaXMuaG9zdCksbz10aGlzLm9wdGlvbnMucmVwb3J0VmFsaWRpdHk7dGhpcy5mb3JtJiYhdGhpcy5mb3JtLm5vVmFsaWRhdGUmJihudWxsPT0odD16cy5nZXQodGhpcy5mb3JtKSl8fHQuZm9yRWFjaCgoZT0+e3RoaXMuc2V0VXNlckludGVyYWN0ZWQoZSwhMCl9KSkpLCF0aGlzLmZvcm18fHRoaXMuZm9ybS5ub1ZhbGlkYXRlfHxpfHxvKHRoaXMuaG9zdCl8fChlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9LHRoaXMuaGFuZGxlRm9ybVJlc2V0PSgpPT57dGhpcy5vcHRpb25zLnNldFZhbHVlKHRoaXMuaG9zdCx0aGlzLm9wdGlvbnMuZGVmYXVsdFZhbHVlKHRoaXMuaG9zdCkpLHRoaXMuc2V0VXNlckludGVyYWN0ZWQodGhpcy5ob3N0LCExKSxMcy5zZXQodGhpcy5ob3N0LFtdKX0sdGhpcy5oYW5kbGVJbnRlcmFjdGlvbj1lPT57Y29uc3QgdD1Mcy5nZXQodGhpcy5ob3N0KTt0LmluY2x1ZGVzKGUudHlwZSl8fHQucHVzaChlLnR5cGUpLHQubGVuZ3RoPT09dGhpcy5vcHRpb25zLmFzc3VtZUludGVyYWN0aW9uT24ubGVuZ3RoJiZ0aGlzLnNldFVzZXJJbnRlcmFjdGVkKHRoaXMuaG9zdCwhMCl9LHRoaXMuY2hlY2tGb3JtVmFsaWRpdHk9KCk9PntpZih0aGlzLmZvcm0mJiF0aGlzLmZvcm0ubm9WYWxpZGF0ZSl7Y29uc3QgZT10aGlzLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgiKiIpO2Zvcihjb25zdCB0IG9mIGUpaWYoImZ1bmN0aW9uIj09dHlwZW9mIHQuY2hlY2tWYWxpZGl0eSYmIXQuY2hlY2tWYWxpZGl0eSgpKXJldHVybiExfXJldHVybiEwfSx0aGlzLnJlcG9ydEZvcm1WYWxpZGl0eT0oKT0+e2lmKHRoaXMuZm9ybSYmIXRoaXMuZm9ybS5ub1ZhbGlkYXRlKXtjb25zdCBlPXRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIqIik7Zm9yKGNvbnN0IHQgb2YgZSlpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5yZXBvcnRWYWxpZGl0eSYmIXQucmVwb3J0VmFsaWRpdHkoKSlyZXR1cm4hMX1yZXR1cm4hMH0sKHRoaXMuaG9zdD1lKS5hZGRDb250cm9sbGVyKHRoaXMpLHRoaXMub3B0aW9ucz13aSh7Zm9ybTplPT57Y29uc3QgdD1lLmZvcm07aWYodCl7Y29uc3QgaT1lLmdldFJvb3ROb2RlKCkucXVlcnlTZWxlY3RvcihgIyR7dH1gKTtpZihpKXJldHVybiBpfXJldHVybiBlLmNsb3Nlc3QoImZvcm0iKX0sbmFtZTplPT5lLm5hbWUsdmFsdWU6ZT0+ZS52YWx1ZSxkZWZhdWx0VmFsdWU6ZT0+ZS5kZWZhdWx0VmFsdWUsZGlzYWJsZWQ6ZT0+e3ZhciB0O3JldHVybiBudWxsIT0odD1lLmRpc2FibGVkKSYmdH0scmVwb3J0VmFsaWRpdHk6ZT0+ImZ1bmN0aW9uIiE9dHlwZW9mIGUucmVwb3J0VmFsaWRpdHl8fGUucmVwb3J0VmFsaWRpdHkoKSxjaGVja1ZhbGlkaXR5OmU9PiJmdW5jdGlvbiIhPXR5cGVvZiBlLmNoZWNrVmFsaWRpdHl8fGUuY2hlY2tWYWxpZGl0eSgpLHNldFZhbHVlOihlLHQpPT5lLnZhbHVlPXQsYXNzdW1lSW50ZXJhY3Rpb25PbjpbInNsLWlucHV0Il19LHQpfWhvc3RDb25uZWN0ZWQoKXtjb25zdCBlPXRoaXMub3B0aW9ucy5mb3JtKHRoaXMuaG9zdCk7ZSYmdGhpcy5hdHRhY2hGb3JtKGUpLExzLnNldCh0aGlzLmhvc3QsW10pLHRoaXMub3B0aW9ucy5hc3N1bWVJbnRlcmFjdGlvbk9uLmZvckVhY2goKGU9Pnt0aGlzLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcihlLHRoaXMuaGFuZGxlSW50ZXJhY3Rpb24pfSkpfWhvc3REaXNjb25uZWN0ZWQoKXt0aGlzLmRldGFjaEZvcm0oKSxMcy5kZWxldGUodGhpcy5ob3N0KSx0aGlzLm9wdGlvbnMuYXNzdW1lSW50ZXJhY3Rpb25Pbi5mb3JFYWNoKChlPT57dGhpcy5ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0aGlzLmhhbmRsZUludGVyYWN0aW9uKX0pKX1ob3N0VXBkYXRlZCgpe2NvbnN0IGU9dGhpcy5vcHRpb25zLmZvcm0odGhpcy5ob3N0KTtlfHx0aGlzLmRldGFjaEZvcm0oKSxlJiZ0aGlzLmZvcm0hPT1lJiYodGhpcy5kZXRhY2hGb3JtKCksdGhpcy5hdHRhY2hGb3JtKGUpKSx0aGlzLmhvc3QuaGFzVXBkYXRlZCYmdGhpcy5zZXRWYWxpZGl0eSh0aGlzLmhvc3QudmFsaWRpdHkudmFsaWQpfWF0dGFjaEZvcm0oZSl7ZT8odGhpcy5mb3JtPWUsenMuaGFzKHRoaXMuZm9ybSk/enMuZ2V0KHRoaXMuZm9ybSkuYWRkKHRoaXMuaG9zdCk6enMuc2V0KHRoaXMuZm9ybSxuZXcgU2V0KFt0aGlzLmhvc3RdKSksdGhpcy5mb3JtLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1kYXRhIix0aGlzLmhhbmRsZUZvcm1EYXRhKSx0aGlzLmZvcm0uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0Iix0aGlzLmhhbmRsZUZvcm1TdWJtaXQpLHRoaXMuZm9ybS5hZGRFdmVudExpc3RlbmVyKCJyZXNldCIsdGhpcy5oYW5kbGVGb3JtUmVzZXQpLF9zLmhhcyh0aGlzLmZvcm0pfHwoX3Muc2V0KHRoaXMuZm9ybSx0aGlzLmZvcm0ucmVwb3J0VmFsaWRpdHkpLHRoaXMuZm9ybS5yZXBvcnRWYWxpZGl0eT0oKT0+dGhpcy5yZXBvcnRGb3JtVmFsaWRpdHkoKSksQ3MuaGFzKHRoaXMuZm9ybSl8fChDcy5zZXQodGhpcy5mb3JtLHRoaXMuZm9ybS5jaGVja1ZhbGlkaXR5KSx0aGlzLmZvcm0uY2hlY2tWYWxpZGl0eT0oKT0+dGhpcy5jaGVja0Zvcm1WYWxpZGl0eSgpKSk6dGhpcy5mb3JtPXZvaWQgMH1kZXRhY2hGb3JtKCl7aWYoIXRoaXMuZm9ybSlyZXR1cm47Y29uc3QgZT16cy5nZXQodGhpcy5mb3JtKTtlJiYoZS5kZWxldGUodGhpcy5ob3N0KSxlLnNpemU8PTAmJih0aGlzLmZvcm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9ybWRhdGEiLHRoaXMuaGFuZGxlRm9ybURhdGEpLHRoaXMuZm9ybS5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWJtaXQiLHRoaXMuaGFuZGxlRm9ybVN1Ym1pdCksdGhpcy5mb3JtLnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2V0Iix0aGlzLmhhbmRsZUZvcm1SZXNldCksX3MuaGFzKHRoaXMuZm9ybSkmJih0aGlzLmZvcm0ucmVwb3J0VmFsaWRpdHk9X3MuZ2V0KHRoaXMuZm9ybSksX3MuZGVsZXRlKHRoaXMuZm9ybSkpLENzLmhhcyh0aGlzLmZvcm0pJiYodGhpcy5mb3JtLmNoZWNrVmFsaWRpdHk9Q3MuZ2V0KHRoaXMuZm9ybSksQ3MuZGVsZXRlKHRoaXMuZm9ybSkpLHRoaXMuZm9ybT12b2lkIDApKX1zZXRVc2VySW50ZXJhY3RlZChlLHQpe3Q/SXMuYWRkKGUpOklzLmRlbGV0ZShlKSxlLnJlcXVlc3RVcGRhdGUoKX1kb0FjdGlvbihlLHQpe2lmKHRoaXMuZm9ybSl7Y29uc3QgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtpLnR5cGU9ZSxpLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS5zdHlsZS53aWR0aD0iMCIsaS5zdHlsZS5oZWlnaHQ9IjAiLGkuc3R5bGUuY2xpcFBhdGg9Imluc2V0KDUwJSkiLGkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsaS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiLHQmJihpLm5hbWU9dC5uYW1lLGkudmFsdWU9dC52YWx1ZSxbImZvcm1hY3Rpb24iLCJmb3JtZW5jdHlwZSIsImZvcm1tZXRob2QiLCJmb3Jtbm92YWxpZGF0ZSIsImZvcm10YXJnZXQiXS5mb3JFYWNoKChlPT57dC5oYXNBdHRyaWJ1dGUoZSkmJmkuc2V0QXR0cmlidXRlKGUsdC5nZXRBdHRyaWJ1dGUoZSkpfSkpKSx0aGlzLmZvcm0uYXBwZW5kKGkpLGkuY2xpY2soKSxpLnJlbW92ZSgpfX1nZXRGb3JtKCl7dmFyIGU7cmV0dXJuIG51bGwhPShlPXRoaXMuZm9ybSk/ZTpudWxsfXJlc2V0KGUpe3RoaXMuZG9BY3Rpb24oInJlc2V0IixlKX1zdWJtaXQoZSl7dGhpcy5kb0FjdGlvbigic3VibWl0IixlKX1zZXRWYWxpZGl0eShlKXtjb25zdCB0PXRoaXMuaG9zdCxpPUJvb2xlYW4oSXMuaGFzKHQpKSxvPUJvb2xlYW4odC5yZXF1aXJlZCk7dC50b2dnbGVBdHRyaWJ1dGUoImRhdGEtcmVxdWlyZWQiLG8pLHQudG9nZ2xlQXR0cmlidXRlKCJkYXRhLW9wdGlvbmFsIiwhbyksdC50b2dnbGVBdHRyaWJ1dGUoImRhdGEtaW52YWxpZCIsIWUpLHQudG9nZ2xlQXR0cmlidXRlKCJkYXRhLXZhbGlkIixlKSx0LnRvZ2dsZUF0dHJpYnV0ZSgiZGF0YS11c2VyLWludmFsaWQiLCFlJiZpKSx0LnRvZ2dsZUF0dHJpYnV0ZSgiZGF0YS11c2VyLXZhbGlkIixlJiZpKX11cGRhdGVWYWxpZGl0eSgpe2NvbnN0IGU9dGhpcy5ob3N0O3RoaXMuc2V0VmFsaWRpdHkoZS52YWxpZGl0eS52YWxpZCl9ZW1pdEludmFsaWRFdmVudChlKXtjb25zdCB0PW5ldyBDdXN0b21FdmVudCgic2wtaW52YWxpZCIse2J1YmJsZXM6ITEsY29tcG9zZWQ6ITEsY2FuY2VsYWJsZTohMCxkZXRhaWw6e319KTtlfHx0LnByZXZlbnREZWZhdWx0KCksdGhpcy5ob3N0LmRpc3BhdGNoRXZlbnQodCl8fG51bGw9PWV8fGUucHJldmVudERlZmF1bHQoKX19LEFzPU9iamVjdC5mcmVlemUoe2JhZElucHV0OiExLGN1c3RvbUVycm9yOiExLHBhdHRlcm5NaXNtYXRjaDohMSxyYW5nZU92ZXJmbG93OiExLHJhbmdlVW5kZXJmbG93OiExLHN0ZXBNaXNtYXRjaDohMSx0b29Mb25nOiExLHRvb1Nob3J0OiExLHR5cGVNaXNtYXRjaDohMSx2YWxpZDohMCx2YWx1ZU1pc3Npbmc6ITF9KSxUcz0oT2JqZWN0LmZyZWV6ZSh5aSh3aSh7fSxBcykse3ZhbGlkOiExLHZhbHVlTWlzc2luZzohMH0pKSxPYmplY3QuZnJlZXplKHlpKHdpKHt9LEFzKSx7dmFsaWQ6ITEsY3VzdG9tRXJyb3I6ITB9KSksaGAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogYXV0bzsKICAgIGN1cnNvcjogcG9pbnRlcjsKICB9CgogIC5idXR0b24gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItc3R5bGU6IHNvbGlkOwogICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1zbC1pbnB1dC1ib3JkZXItd2lkdGgpOwogICAgZm9udC1mYW1pbHk6IHZhcigtLXNsLWlucHV0LWZvbnQtZmFtaWx5KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1zZW1pYm9sZCk7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIHBhZGRpbmc6IDA7CiAgICB0cmFuc2l0aW9uOgogICAgICB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgYmFja2dyb3VuZC1jb2xvciwKICAgICAgdmFyKC0tc2wtdHJhbnNpdGlvbi14LWZhc3QpIGNvbG9yLAogICAgICB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgYm9yZGVyLAogICAgICB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgYm94LXNoYWRvdzsKICAgIGN1cnNvcjogaW5oZXJpdDsKICB9CgogIC5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIgewogICAgYm9yZGVyOiAwOwogIH0KCiAgLmJ1dHRvbjpmb2N1cyB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgLmJ1dHRvbjpmb2N1cy12aXNpYmxlIHsKICAgIG91dGxpbmU6IHZhcigtLXNsLWZvY3VzLXJpbmcpOwogICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXNsLWZvY3VzLXJpbmctb2Zmc2V0KTsKICB9CgogIC5idXR0b24tLWRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNTsKICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgfQoKICAvKiBXaGVuIGRpc2FibGVkLCBwcmV2ZW50IG1vdXNlIGV2ZW50cyBmcm9tIGJ1YmJsaW5nIHVwIGZyb20gY2hpbGRyZW4gKi8KICAuYnV0dG9uLS1kaXNhYmxlZCAqIHsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmJ1dHRvbl9fcHJlZml4LAogIC5idXR0b25fX3N1ZmZpeCB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYnV0dG9uX19sYWJlbCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgfQoKICAuYnV0dG9uX19sYWJlbDo6c2xvdHRlZChzbC1pY29uKSB7CiAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDsKICB9CgogIC8qCiAgICogU3RhbmRhcmQgYnV0dG9ucwogICAqLwoKICAvKiBEZWZhdWx0ICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1kZWZhdWx0IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMzAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLWRlZmF1bHQ6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTUwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS0zMDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNzAwKTsKICB9CgogIC5idXR0b24tLXN0YW5kYXJkLmJ1dHRvbi0tZGVmYXVsdDphY3RpdmU6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTEwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNDAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgfQoKICAvKiBQcmltYXJ5ICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1wcmltYXJ5IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLXByaW1hcnk6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTUwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNTAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1wcmltYXJ5OmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAvKiBTdWNjZXNzICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1zdWNjZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3Itc3VjY2Vzcy02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLXN1Y2Nlc3M6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTUwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNTAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1zdWNjZXNzOmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3Itc3VjY2Vzcy02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAvKiBOZXV0cmFsICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1uZXV0cmFsIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLW5ldXRyYWw6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTUwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNTAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1uZXV0cmFsOmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAvKiBXYXJuaW5nICovCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXdhcm5pbmctNjAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3Itd2FybmluZy02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQogIC5idXR0b24tLXN0YW5kYXJkLmJ1dHRvbi0td2FybmluZzpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXdhcm5pbmctNTAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3Itd2FybmluZy01MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1zdGFuZGFyZC5idXR0b24tLXdhcm5pbmc6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtY29sb3Itd2FybmluZy02MDApOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTYwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIERhbmdlciAqLwogIC5idXR0b24tLXN0YW5kYXJkLmJ1dHRvbi0tZGFuZ2VyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLWRhbmdlci02MDApOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tc3RhbmRhcmQuYnV0dG9uLS1kYW5nZXI6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNTAwKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItZGFuZ2VyLTUwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC5idXR0b24tLXN0YW5kYXJkLmJ1dHRvbi0tZGFuZ2VyOmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLWRhbmdlci02MDApOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLyoKICAgKiBPdXRsaW5lIGJ1dHRvbnMKICAgKi8KCiAgLmJ1dHRvbi0tb3V0bGluZSB7CiAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgYm9yZGVyOiBzb2xpZCAxcHg7CiAgfQoKICAvKiBEZWZhdWx0ICovCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLWRlZmF1bHQgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTMwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC03MDApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLWRlZmF1bHQ6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSwKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tZGVmYXVsdC5idXR0b24tLWNoZWNrZWQ6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLWRlZmF1bHQ6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIFByaW1hcnkgKi8KICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tcHJpbWFyeSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tcHJpbWFyeTpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpLAogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1wcmltYXJ5LmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXByaW1hcnktNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLXByaW1hcnk6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIFN1Y2Nlc3MgKi8KICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tc3VjY2VzcyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTYwMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tc3VjY2Vzczpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpLAogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1zdWNjZXNzLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXN1Y2Nlc3MtNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLXN1Y2Nlc3M6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIE5ldXRyYWwgKi8KICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tbmV1dHJhbCB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTYwMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tbmV1dHJhbDpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpLAogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1uZXV0cmFsLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLW5ldXRyYWw6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIFdhcm5pbmcgKi8KICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0td2FybmluZyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXNsLWNvbG9yLXdhcm5pbmctNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTYwMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0td2FybmluZzpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpLAogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS13YXJuaW5nLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLXdhcm5pbmctNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgLmJ1dHRvbi0tb3V0bGluZS5idXR0b24tLXdhcm5pbmc6YWN0aXZlOm5vdCguYnV0dG9uLS1kaXNhYmxlZCkgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci13YXJuaW5nLTcwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICB9CgogIC8qIERhbmdlciAqLwogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1kYW5nZXIgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNjAwKTsKICB9CgogIC5idXR0b24tLW91dGxpbmUuYnV0dG9uLS1kYW5nZXI6aG92ZXI6bm90KC5idXR0b24tLWRpc2FibGVkKSwKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tZGFuZ2VyLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLWNvbG9yLWRhbmdlci02MDApOwogICAgY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMCk7CiAgfQoKICAuYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tZGFuZ2VyOmFjdGl2ZTpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2wtY29sb3ItZGFuZ2VyLTcwMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1kYW5nZXItNzAwKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTApOwogIH0KCiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsKICAgIC5idXR0b24uYnV0dG9uLS1vdXRsaW5lLmJ1dHRvbi0tY2hlY2tlZDpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgICAgb3V0bGluZTogc29saWQgMnB4IHRyYW5zcGFyZW50OwogICAgfQogIH0KCiAgLyoKICAgKiBUZXh0IGJ1dHRvbnMKICAgKi8KCiAgLmJ1dHRvbi0tdGV4dCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS02MDApOwogIH0KCiAgLmJ1dHRvbi0tdGV4dDpob3Zlcjpub3QoLmJ1dHRvbi0tZGlzYWJsZWQpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTUwMCk7CiAgfQoKICAuYnV0dG9uLS10ZXh0OmZvY3VzLXZpc2libGU6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS01MDApOwogIH0KCiAgLmJ1dHRvbi0tdGV4dDphY3RpdmU6bm90KC5idXR0b24tLWRpc2FibGVkKSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItcHJpbWFyeS03MDApOwogIH0KCiAgLyoKICAgKiBTaXplIG1vZGlmaWVycwogICAqLwoKICAuYnV0dG9uLS1zbWFsbCB7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiB2YXIoLS1zbC1pbnB1dC1oZWlnaHQtc21hbGwpOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1idXR0b24tZm9udC1zaXplLXNtYWxsKTsKICAgIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLXNsLWlucHV0LWhlaWdodC1zbWFsbCkgLSB2YXIoLS1zbC1pbnB1dC1ib3JkZXItd2lkdGgpICogMik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1pbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsKTsKICB9CgogIC5idXR0b24tLW1lZGl1bSB7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiB2YXIoLS1zbC1pbnB1dC1oZWlnaHQtbWVkaXVtKTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0pOwogICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tc2wtaW5wdXQtaGVpZ2h0LW1lZGl1bSkgLSB2YXIoLS1zbC1pbnB1dC1ib3JkZXItd2lkdGgpICogMik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1pbnB1dC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgfQoKICAuYnV0dG9uLS1sYXJnZSB7CiAgICBoZWlnaHQ6IGF1dG87CiAgICBtaW4taGVpZ2h0OiB2YXIoLS1zbC1pbnB1dC1oZWlnaHQtbGFyZ2UpOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1idXR0b24tZm9udC1zaXplLWxhcmdlKTsKICAgIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLXNsLWlucHV0LWhlaWdodC1sYXJnZSkgLSB2YXIoLS1zbC1pbnB1dC1ib3JkZXItd2lkdGgpICogMik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1pbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlKTsKICB9CgogIC8qCiAgICogUGlsbCBtb2RpZmllcgogICAqLwoKICAuYnV0dG9uLS1waWxsLmJ1dHRvbi0tc21hbGwgewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtaW5wdXQtaGVpZ2h0LXNtYWxsKTsKICB9CgogIC5idXR0b24tLXBpbGwuYnV0dG9uLS1tZWRpdW0gewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtaW5wdXQtaGVpZ2h0LW1lZGl1bSk7CiAgfQoKICAuYnV0dG9uLS1waWxsLmJ1dHRvbi0tbGFyZ2UgewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtaW5wdXQtaGVpZ2h0LWxhcmdlKTsKICB9CgogIC8qCiAgICogQ2lyY2xlIG1vZGlmaWVyCiAgICovCgogIC5idXR0b24tLWNpcmNsZSB7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgICBwYWRkaW5nLXJpZ2h0OiAwOwogIH0KCiAgLmJ1dHRvbi0tY2lyY2xlLmJ1dHRvbi0tc21hbGwgewogICAgd2lkdGg6IHZhcigtLXNsLWlucHV0LWhlaWdodC1zbWFsbCk7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgfQoKICAuYnV0dG9uLS1jaXJjbGUuYnV0dG9uLS1tZWRpdW0gewogICAgd2lkdGg6IHZhcigtLXNsLWlucHV0LWhlaWdodC1tZWRpdW0pOwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogIH0KCiAgLmJ1dHRvbi0tY2lyY2xlLmJ1dHRvbi0tbGFyZ2UgewogICAgd2lkdGg6IHZhcigtLXNsLWlucHV0LWhlaWdodC1sYXJnZSk7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgfQoKICAuYnV0dG9uLS1jaXJjbGUgLmJ1dHRvbl9fcHJlZml4LAogIC5idXR0b24tLWNpcmNsZSAuYnV0dG9uX19zdWZmaXgsCiAgLmJ1dHRvbi0tY2lyY2xlIC5idXR0b25fX2NhcmV0IHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAvKgogICAqIENhcmV0IG1vZGlmaWVyCiAgICovCgogIC5idXR0b24tLWNhcmV0IC5idXR0b25fX3N1ZmZpeCB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KCiAgLmJ1dHRvbi0tY2FyZXQgLmJ1dHRvbl9fY2FyZXQgewogICAgaGVpZ2h0OiBhdXRvOwogIH0KCiAgLyoKICAgKiBMb2FkaW5nIG1vZGlmaWVyCiAgICovCgogIC5idXR0b24tLWxvYWRpbmcgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgY3Vyc29yOiB3YWl0OwogIH0KCiAgLmJ1dHRvbi0tbG9hZGluZyAuYnV0dG9uX19wcmVmaXgsCiAgLmJ1dHRvbi0tbG9hZGluZyAuYnV0dG9uX19sYWJlbCwKICAuYnV0dG9uLS1sb2FkaW5nIC5idXR0b25fX3N1ZmZpeCwKICAuYnV0dG9uLS1sb2FkaW5nIC5idXR0b25fX2NhcmV0IHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICB9CgogIC5idXR0b24tLWxvYWRpbmcgc2wtc3Bpbm5lciB7CiAgICAtLWluZGljYXRvci1jb2xvcjogY3VycmVudENvbG9yOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgZm9udC1zaXplOiAxZW07CiAgICBoZWlnaHQ6IDFlbTsKICAgIHdpZHRoOiAxZW07CiAgICB0b3A6IGNhbGMoNTAlIC0gMC41ZW0pOwogICAgbGVmdDogY2FsYyg1MCUgLSAwLjVlbSk7CiAgfQoKICAvKgogICAqIEJhZGdlcwogICAqLwoKICAuYnV0dG9uIDo6c2xvdHRlZChzbC1iYWRnZSkgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgcmlnaHQ6IDA7CiAgICB0cmFuc2xhdGU6IDUwJSAtNTAlOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQoKICAuYnV0dG9uLS1ydGwgOjpzbG90dGVkKHNsLWJhZGdlKSB7CiAgICByaWdodDogYXV0bzsKICAgIGxlZnQ6IDA7CiAgICB0cmFuc2xhdGU6IC01MCUgLTUwJTsKICB9CgogIC8qCiAgICogQnV0dG9uIHNwYWNpbmcKICAgKi8KCiAgLmJ1dHRvbi0taGFzLWxhYmVsLmJ1dHRvbi0tc21hbGwgLmJ1dHRvbl9fbGFiZWwgewogICAgcGFkZGluZzogMCB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTsKICB9CgogIC5idXR0b24tLWhhcy1sYWJlbC5idXR0b24tLW1lZGl1bSAuYnV0dG9uX19sYWJlbCB7CiAgICBwYWRkaW5nOiAwIHZhcigtLXNsLXNwYWNpbmctbWVkaXVtKTsKICB9CgogIC5idXR0b24tLWhhcy1sYWJlbC5idXR0b24tLWxhcmdlIC5idXR0b25fX2xhYmVsIHsKICAgIHBhZGRpbmc6IDAgdmFyKC0tc2wtc3BhY2luZy1sYXJnZSk7CiAgfQoKICAuYnV0dG9uLS1oYXMtcHJlZml4LmJ1dHRvbi0tc21hbGwgewogICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtcHJlZml4LmJ1dHRvbi0tc21hbGwgLmJ1dHRvbl9fbGFiZWwgewogICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtcHJlZml4LmJ1dHRvbi0tbWVkaXVtIHsKICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTsKICB9CgogIC5idXR0b24tLWhhcy1wcmVmaXguYnV0dG9uLS1tZWRpdW0gLmJ1dHRvbl9fbGFiZWwgewogICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNsLXNwYWNpbmctc21hbGwpOwogIH0KCiAgLmJ1dHRvbi0taGFzLXByZWZpeC5idXR0b24tLWxhcmdlIHsKICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTsKICB9CgogIC5idXR0b24tLWhhcy1wcmVmaXguYnV0dG9uLS1sYXJnZSAuYnV0dG9uX19sYWJlbCB7CiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2wtc3BhY2luZy1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tc21hbGwsCiAgLmJ1dHRvbi0tY2FyZXQuYnV0dG9uLS1zbWFsbCB7CiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tc21hbGwgLmJ1dHRvbl9fbGFiZWwsCiAgLmJ1dHRvbi0tY2FyZXQuYnV0dG9uLS1zbWFsbCAuYnV0dG9uX19sYWJlbCB7CiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tbWVkaXVtLAogIC5idXR0b24tLWNhcmV0LmJ1dHRvbi0tbWVkaXVtIHsKICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2wtc3BhY2luZy1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tbWVkaXVtIC5idXR0b25fX2xhYmVsLAogIC5idXR0b24tLWNhcmV0LmJ1dHRvbi0tbWVkaXVtIC5idXR0b25fX2xhYmVsIHsKICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2wtc3BhY2luZy1zbWFsbCk7CiAgfQoKICAuYnV0dG9uLS1oYXMtc3VmZml4LmJ1dHRvbi0tbGFyZ2UsCiAgLmJ1dHRvbi0tY2FyZXQuYnV0dG9uLS1sYXJnZSB7CiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNsLXNwYWNpbmctc21hbGwpOwogIH0KCiAgLmJ1dHRvbi0taGFzLXN1ZmZpeC5idXR0b24tLWxhcmdlIC5idXR0b25fX2xhYmVsLAogIC5idXR0b24tLWNhcmV0LmJ1dHRvbi0tbGFyZ2UgLmJ1dHRvbl9fbGFiZWwgewogICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1zbC1zcGFjaW5nLXNtYWxsKTsKICB9CgogIC8qCiAgICogQnV0dG9uIGdyb3VwcyBzdXBwb3J0IGEgdmFyaWV0eSBvZiBidXR0b24gdHlwZXMgKGUuZy4gYnV0dG9ucyB3aXRoIHRvb2x0aXBzLCBidXR0b25zIGFzIGRyb3Bkb3duIHRyaWdnZXJzLCBldGMuKS4KICAgKiBUaGlzIG1lYW5zIGJ1dHRvbnMgYXJlbid0IGFsd2F5cyBkaXJlY3QgZGVzY2VuZGFudHMgb2YgdGhlIGJ1dHRvbiBncm91cCwgdGh1cyB3ZSBjYW4ndCB0YXJnZXQgdGhlbSB3aXRoIHRoZQogICAqIDo6c2xvdHRlZCBzZWxlY3Rvci4gVG8gd29yayBhcm91bmQgdGhpcywgdGhlIGJ1dHRvbiBncm91cCBjb21wb25lbnQgZG9lcyBzb21lIG1hZ2ljIHRvIGFkZCB0aGVzZSBzcGVjaWFsIGNsYXNzZXMgdG8KICAgKiBidXR0b25zIGFuZCB3ZSBzdHlsZSB0aGVtIGhlcmUgaW5zdGVhZC4KICAgKi8KCiAgOmhvc3QoW2RhdGEtc2wtYnV0dG9uLWdyb3VwX19idXR0b24tLWZpcnN0XTpub3QoW2RhdGEtc2wtYnV0dG9uLWdyb3VwX19idXR0b24tLWxhc3RdKSkgLmJ1dHRvbiB7CiAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogMDsKICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogMDsKICB9CgogIDpob3N0KFtkYXRhLXNsLWJ1dHRvbi1ncm91cF9fYnV0dG9uLS1pbm5lcl0pIC5idXR0b24gewogICAgYm9yZGVyLXJhZGl1czogMDsKICB9CgogIDpob3N0KFtkYXRhLXNsLWJ1dHRvbi1ncm91cF9fYnV0dG9uLS1sYXN0XTpub3QoW2RhdGEtc2wtYnV0dG9uLWdyb3VwX19idXR0b24tLWZpcnN0XSkpIC5idXR0b24gewogICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogMDsKICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiAwOwogIH0KCiAgLyogQWxsIGV4Y2VwdCB0aGUgZmlyc3QgKi8KICA6aG9zdChbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbl06bm90KFtkYXRhLXNsLWJ1dHRvbi1ncm91cF9fYnV0dG9uLS1maXJzdF0pKSB7CiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tc2wtaW5wdXQtYm9yZGVyLXdpZHRoKSk7CiAgfQoKICAvKiBBZGQgYSB2aXN1YWwgc2VwYXJhdG9yIGJldHdlZW4gc29saWQgYnV0dG9ucyAqLwogIDpob3N0KAogICAgICBbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbl06bm90KAogICAgICAgICAgW2RhdGEtc2wtYnV0dG9uLWdyb3VwX19idXR0b24tLWZpcnN0XSwKICAgICAgICAgIFtkYXRhLXNsLWJ1dHRvbi1ncm91cF9fYnV0dG9uLS1yYWRpb10sCiAgICAgICAgICBbdmFyaWFudD0nZGVmYXVsdCddCiAgICAgICAgKTpub3QoOmhvdmVyKQogICAgKQogICAgLmJ1dHRvbjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGluc2V0LWlubGluZS1zdGFydDogMDsKICAgIGJvdHRvbTogMDsKICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiKDEyOCAxMjggMTI4IC8gMzMlKTsKICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsKICB9CgogIC8qIEJ1bXAgaG92ZXJlZCwgZm9jdXNlZCwgYW5kIGNoZWNrZWQgYnV0dG9ucyB1cCBzbyB0aGVpciBmb2N1cyByaW5nIGlzbid0IGNsaXBwZWQgKi8KICA6aG9zdChbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbi0taG92ZXJdKSB7CiAgICB6LWluZGV4OiAxOwogIH0KCiAgLyogRm9jdXMgYW5kIGNoZWNrZWQgYXJlIGFsd2F5cyBvbiB0b3AgKi8KICA6aG9zdChbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbi0tZm9jdXNdKSwKICA6aG9zdChbZGF0YS1zbC1idXR0b24tZ3JvdXBfX2J1dHRvbl1bY2hlY2tlZF0pIHsKICAgIHotaW5kZXg6IDI7CiAgfQpgKSxQcz1jbGFzcyBleHRlbmRzIHFye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmZvcm1Db250cm9sQ29udHJvbGxlcj1uZXcgRXModGhpcyx7YXNzdW1lSW50ZXJhY3Rpb25PbjpbImNsaWNrIl19KSx0aGlzLmhhc1Nsb3RDb250cm9sbGVyPW5ldyB3cyh0aGlzLCJbZGVmYXVsdF0iLCJwcmVmaXgiLCJzdWZmaXgiKSx0aGlzLmxvY2FsaXplPW5ldyB2cyh0aGlzKSx0aGlzLmhhc0ZvY3VzPSExLHRoaXMuaW52YWxpZD0hMSx0aGlzLnRpdGxlPSIiLHRoaXMudmFyaWFudD0iZGVmYXVsdCIsdGhpcy5zaXplPSJtZWRpdW0iLHRoaXMuY2FyZXQ9ITEsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5vdXRsaW5lPSExLHRoaXMucGlsbD0hMSx0aGlzLmNpcmNsZT0hMSx0aGlzLnR5cGU9ImJ1dHRvbiIsdGhpcy5uYW1lPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5ocmVmPSIiLHRoaXMucmVsPSJub3JlZmVycmVyIG5vb3BlbmVyIn1nZXQgdmFsaWRpdHkoKXtyZXR1cm4gdGhpcy5pc0J1dHRvbigpP3RoaXMuYnV0dG9uLnZhbGlkaXR5OkFzfWdldCB2YWxpZGF0aW9uTWVzc2FnZSgpe3JldHVybiB0aGlzLmlzQnV0dG9uKCk/dGhpcy5idXR0b24udmFsaWRhdGlvbk1lc3NhZ2U6IiJ9Zmlyc3RVcGRhdGVkKCl7dGhpcy5pc0J1dHRvbigpJiZ0aGlzLmZvcm1Db250cm9sQ29udHJvbGxlci51cGRhdGVWYWxpZGl0eSgpfWhhbmRsZUJsdXIoKXt0aGlzLmhhc0ZvY3VzPSExLHRoaXMuZW1pdCgic2wtYmx1ciIpfWhhbmRsZUZvY3VzKCl7dGhpcy5oYXNGb2N1cz0hMCx0aGlzLmVtaXQoInNsLWZvY3VzIil9aGFuZGxlQ2xpY2soKXsic3VibWl0Ij09PXRoaXMudHlwZSYmdGhpcy5mb3JtQ29udHJvbENvbnRyb2xsZXIuc3VibWl0KHRoaXMpLCJyZXNldCI9PT10aGlzLnR5cGUmJnRoaXMuZm9ybUNvbnRyb2xDb250cm9sbGVyLnJlc2V0KHRoaXMpfWhhbmRsZUludmFsaWQoZSl7dGhpcy5mb3JtQ29udHJvbENvbnRyb2xsZXIuc2V0VmFsaWRpdHkoITEpLHRoaXMuZm9ybUNvbnRyb2xDb250cm9sbGVyLmVtaXRJbnZhbGlkRXZlbnQoZSl9aXNCdXR0b24oKXtyZXR1cm4hdGhpcy5ocmVmfWlzTGluaygpe3JldHVybiEhdGhpcy5ocmVmfWhhbmRsZURpc2FibGVkQ2hhbmdlKCl7dGhpcy5pc0J1dHRvbigpJiZ0aGlzLmZvcm1Db250cm9sQ29udHJvbGxlci5zZXRWYWxpZGl0eSh0aGlzLmRpc2FibGVkKX1jbGljaygpe3RoaXMuYnV0dG9uLmNsaWNrKCl9Zm9jdXMoZSl7dGhpcy5idXR0b24uZm9jdXMoZSl9Ymx1cigpe3RoaXMuYnV0dG9uLmJsdXIoKX1jaGVja1ZhbGlkaXR5KCl7cmV0dXJuIXRoaXMuaXNCdXR0b24oKXx8dGhpcy5idXR0b24uY2hlY2tWYWxpZGl0eSgpfWdldEZvcm0oKXtyZXR1cm4gdGhpcy5mb3JtQ29udHJvbENvbnRyb2xsZXIuZ2V0Rm9ybSgpfXJlcG9ydFZhbGlkaXR5KCl7cmV0dXJuIXRoaXMuaXNCdXR0b24oKXx8dGhpcy5idXR0b24ucmVwb3J0VmFsaWRpdHkoKX1zZXRDdXN0b21WYWxpZGl0eShlKXt0aGlzLmlzQnV0dG9uKCkmJih0aGlzLmJ1dHRvbi5zZXRDdXN0b21WYWxpZGl0eShlKSx0aGlzLmZvcm1Db250cm9sQ29udHJvbGxlci51cGRhdGVWYWxpZGl0eSgpKX1yZW5kZXIoKXtjb25zdCBlPXRoaXMuaXNMaW5rKCksdD1lP0JvYGFgOkJvYGJ1dHRvbmA7cmV0dXJuIGpvYAogICAgICA8JHt0fQogICAgICAgIHBhcnQ9ImJhc2UiCiAgICAgICAgY2xhc3M9JHtLcih7YnV0dG9uOiEwLCJidXR0b24tLWRlZmF1bHQiOiJkZWZhdWx0Ij09PXRoaXMudmFyaWFudCwiYnV0dG9uLS1wcmltYXJ5IjoicHJpbWFyeSI9PT10aGlzLnZhcmlhbnQsImJ1dHRvbi0tc3VjY2VzcyI6InN1Y2Nlc3MiPT09dGhpcy52YXJpYW50LCJidXR0b24tLW5ldXRyYWwiOiJuZXV0cmFsIj09PXRoaXMudmFyaWFudCwiYnV0dG9uLS13YXJuaW5nIjoid2FybmluZyI9PT10aGlzLnZhcmlhbnQsImJ1dHRvbi0tZGFuZ2VyIjoiZGFuZ2VyIj09PXRoaXMudmFyaWFudCwiYnV0dG9uLS10ZXh0IjoidGV4dCI9PT10aGlzLnZhcmlhbnQsImJ1dHRvbi0tc21hbGwiOiJzbWFsbCI9PT10aGlzLnNpemUsImJ1dHRvbi0tbWVkaXVtIjoibWVkaXVtIj09PXRoaXMuc2l6ZSwiYnV0dG9uLS1sYXJnZSI6ImxhcmdlIj09PXRoaXMuc2l6ZSwiYnV0dG9uLS1jYXJldCI6dGhpcy5jYXJldCwiYnV0dG9uLS1jaXJjbGUiOnRoaXMuY2lyY2xlLCJidXR0b24tLWRpc2FibGVkIjp0aGlzLmRpc2FibGVkLCJidXR0b24tLWZvY3VzZWQiOnRoaXMuaGFzRm9jdXMsImJ1dHRvbi0tbG9hZGluZyI6dGhpcy5sb2FkaW5nLCJidXR0b24tLXN0YW5kYXJkIjohdGhpcy5vdXRsaW5lLCJidXR0b24tLW91dGxpbmUiOnRoaXMub3V0bGluZSwiYnV0dG9uLS1waWxsIjp0aGlzLnBpbGwsImJ1dHRvbi0tcnRsIjoicnRsIj09PXRoaXMubG9jYWxpemUuZGlyKCksImJ1dHRvbi0taGFzLWxhYmVsIjp0aGlzLmhhc1Nsb3RDb250cm9sbGVyLnRlc3QoIltkZWZhdWx0XSIpLCJidXR0b24tLWhhcy1wcmVmaXgiOnRoaXMuaGFzU2xvdENvbnRyb2xsZXIudGVzdCgicHJlZml4IiksImJ1dHRvbi0taGFzLXN1ZmZpeCI6dGhpcy5oYXNTbG90Q29udHJvbGxlci50ZXN0KCJzdWZmaXgiKX0pfQogICAgICAgID9kaXNhYmxlZD0keyRlKGU/dm9pZCAwOnRoaXMuZGlzYWJsZWQpfQogICAgICAgIHR5cGU9JHskZShlP3ZvaWQgMDp0aGlzLnR5cGUpfQogICAgICAgIHRpdGxlPSR7dGhpcy50aXRsZX0KICAgICAgICBuYW1lPSR7JGUoZT92b2lkIDA6dGhpcy5uYW1lKX0KICAgICAgICB2YWx1ZT0keyRlKGU/dm9pZCAwOnRoaXMudmFsdWUpfQogICAgICAgIGhyZWY9JHskZShlP3RoaXMuaHJlZjp2b2lkIDApfQogICAgICAgIHRhcmdldD0keyRlKGU/dGhpcy50YXJnZXQ6dm9pZCAwKX0KICAgICAgICBkb3dubG9hZD0keyRlKGU/dGhpcy5kb3dubG9hZDp2b2lkIDApfQogICAgICAgIHJlbD0keyRlKGU/dGhpcy5yZWw6dm9pZCAwKX0KICAgICAgICByb2xlPSR7JGUoZT92b2lkIDA6ImJ1dHRvbiIpfQogICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkPyJ0cnVlIjoiZmFsc2UifQogICAgICAgIHRhYmluZGV4PSR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0KICAgICAgICBAYmx1cj0ke3RoaXMuaGFuZGxlQmx1cn0KICAgICAgICBAZm9jdXM9JHt0aGlzLmhhbmRsZUZvY3VzfQogICAgICAgIEBpbnZhbGlkPSR7dGhpcy5pc0J1dHRvbigpP3RoaXMuaGFuZGxlSW52YWxpZDpudWxsfQogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgID4KICAgICAgICA8c2xvdCBuYW1lPSJwcmVmaXgiIHBhcnQ9InByZWZpeCIgY2xhc3M9ImJ1dHRvbl9fcHJlZml4Ij48L3Nsb3Q+CiAgICAgICAgPHNsb3QgcGFydD0ibGFiZWwiIGNsYXNzPSJidXR0b25fX2xhYmVsIj48L3Nsb3Q+CiAgICAgICAgPHNsb3QgbmFtZT0ic3VmZml4IiBwYXJ0PSJzdWZmaXgiIGNsYXNzPSJidXR0b25fX3N1ZmZpeCI+PC9zbG90PgogICAgICAgICR7dGhpcy5jYXJldD9qb2AgPHNsLWljb24gcGFydD0iY2FyZXQiIGNsYXNzPSJidXR0b25fX2NhcmV0IiBsaWJyYXJ5PSJzeXN0ZW0iIG5hbWU9ImNhcmV0Ij48L3NsLWljb24+IGA6IiJ9CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/am9gPHNsLXNwaW5uZXIgcGFydD0ic3Bpbm5lciI+PC9zbC1zcGlubmVyPmA6IiJ9CiAgICAgIDwvJHt0fT4KICAgIGB9fTtQcy5zdHlsZXM9W05yLFRzXSxQcy5kZXBlbmRlbmNpZXM9eyJzbC1pY29uIjpHciwic2wtc3Bpbm5lciI6JHN9LHhpKFtTZSgiLmJ1dHRvbiIpXSxQcy5wcm90b3R5cGUsImJ1dHRvbiIsMikseGkoW3hlKCldLFBzLnByb3RvdHlwZSwiaGFzRm9jdXMiLDIpLHhpKFt4ZSgpXSxQcy5wcm90b3R5cGUsImludmFsaWQiLDIpLHhpKFt5ZSgpXSxQcy5wcm90b3R5cGUsInRpdGxlIiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sUHMucHJvdG90eXBlLCJ2YXJpYW50IiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sUHMucHJvdG90eXBlLCJzaXplIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFBzLnByb3RvdHlwZSwiY2FyZXQiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sUHMucHJvdG90eXBlLCJkaXNhYmxlZCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxQcy5wcm90b3R5cGUsImxvYWRpbmciLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sUHMucHJvdG90eXBlLCJvdXRsaW5lIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFBzLnByb3RvdHlwZSwicGlsbCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxQcy5wcm90b3R5cGUsImNpcmNsZSIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwidHlwZSIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwibmFtZSIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwidmFsdWUiLDIpLHhpKFt5ZSgpXSxQcy5wcm90b3R5cGUsImhyZWYiLDIpLHhpKFt5ZSgpXSxQcy5wcm90b3R5cGUsInRhcmdldCIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwicmVsIiwyKSx4aShbeWUoKV0sUHMucHJvdG90eXBlLCJkb3dubG9hZCIsMikseGkoW3llKCldLFBzLnByb3RvdHlwZSwiZm9ybSIsMikseGkoW3llKHthdHRyaWJ1dGU6ImZvcm1hY3Rpb24ifSldLFBzLnByb3RvdHlwZSwiZm9ybUFjdGlvbiIsMikseGkoW3llKHthdHRyaWJ1dGU6ImZvcm1lbmN0eXBlIn0pXSxQcy5wcm90b3R5cGUsImZvcm1FbmN0eXBlIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiZm9ybW1ldGhvZCJ9KV0sUHMucHJvdG90eXBlLCJmb3JtTWV0aG9kIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiZm9ybW5vdmFsaWRhdGUiLHR5cGU6Qm9vbGVhbn0pXSxQcy5wcm90b3R5cGUsImZvcm1Ob1ZhbGlkYXRlIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiZm9ybXRhcmdldCJ9KV0sUHMucHJvdG90eXBlLCJmb3JtVGFyZ2V0IiwyKSx4aShbQnIoImRpc2FibGVkIix7d2FpdFVudGlsRmlyc3RVcGRhdGU6ITB9KV0sUHMucHJvdG90eXBlLCJoYW5kbGVEaXNhYmxlZENoYW5nZSIsMSk7UHMuZGVmaW5lKCJzbC1idXR0b24iKTt2YXIgRHM9aGAKICA6aG9zdCB7CiAgICAtLW1heC13aWR0aDogMjByZW07CiAgICAtLWhpZGUtZGVsYXk6IDBtczsKICAgIC0tc2hvdy1kZWxheTogMTUwbXM7CgogICAgZGlzcGxheTogY29udGVudHM7CiAgfQoKICAudG9vbHRpcCB7CiAgICAtLWFycm93LXNpemU6IHZhcigtLXNsLXRvb2x0aXAtYXJyb3ctc2l6ZSk7CiAgICAtLWFycm93LWNvbG9yOiB2YXIoLS1zbC10b29sdGlwLWJhY2tncm91bmQtY29sb3IpOwogIH0KCiAgLnRvb2x0aXA6OnBhcnQocG9wdXApIHsKICAgIHotaW5kZXg6IHZhcigtLXNsLXotaW5kZXgtdG9vbHRpcCk7CiAgfQoKICAudG9vbHRpcFtwbGFjZW1lbnRePSd0b3AnXTo6cGFydChwb3B1cCkgewogICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tOwogIH0KCiAgLnRvb2x0aXBbcGxhY2VtZW50Xj0nYm90dG9tJ106OnBhcnQocG9wdXApIHsKICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsKICB9CgogIC50b29sdGlwW3BsYWNlbWVudF49J2xlZnQnXTo6cGFydChwb3B1cCkgewogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7CiAgfQoKICAudG9vbHRpcFtwbGFjZW1lbnRePSdyaWdodCddOjpwYXJ0KHBvcHVwKSB7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0OwogIH0KCiAgLnRvb2x0aXBfX2JvZHkgewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC10b29sdGlwLWJvcmRlci1yYWRpdXMpOwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2wtdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1zbC10b29sdGlwLWZvbnQtZmFtaWx5KTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tc2wtdG9vbHRpcC1mb250LXNpemUpOwogICAgZm9udC13ZWlnaHQ6IHZhcigtLXNsLXRvb2x0aXAtZm9udC13ZWlnaHQpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLXNsLXRvb2x0aXAtbGluZS1oZWlnaHQpOwogICAgdGV4dC1hbGlnbjogc3RhcnQ7CiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOwogICAgY29sb3I6IHZhcigtLXNsLXRvb2x0aXAtY29sb3IpOwogICAgcGFkZGluZzogdmFyKC0tc2wtdG9vbHRpcC1wYWRkaW5nKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogIH0KYCxGcz1oYAogIDpob3N0IHsKICAgIC0tYXJyb3ctY29sb3I6IHZhcigtLXNsLWNvbG9yLW5ldXRyYWwtMTAwMCk7CiAgICAtLWFycm93LXNpemU6IDZweDsKCiAgICAvKgogICAgICogVGhlc2UgcHJvcGVydGllcyBhcmUgY29tcHV0ZWQgdG8gYWNjb3VudCBmb3IgdGhlIGFycm93J3MgZGltZW5zaW9ucyBhZnRlciBiZWluZyByb3RhdGVkIDQ1wrouIFRoZSBjb25zdGFudAogICAgICogMC43MDcxIGlzIGRlcml2ZWQgZnJvbSBzaW4oNDUpLCB3aGljaCBpcyB0aGUgZGlhZ29uYWwgc2l6ZSBvZiB0aGUgYXJyb3cncyBjb250YWluZXIgYWZ0ZXIgcm90YXRpbmcuCiAgICAgKi8KICAgIC0tYXJyb3ctc2l6ZS1kaWFnb25hbDogY2FsYyh2YXIoLS1hcnJvdy1zaXplKSAqIDAuNzA3MSk7CiAgICAtLWFycm93LXBhZGRpbmctb2Zmc2V0OiBjYWxjKHZhcigtLWFycm93LXNpemUtZGlhZ29uYWwpIC0gdmFyKC0tYXJyb3ctc2l6ZSkpOwoKICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogIH0KCiAgLnBvcHVwIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGlzb2xhdGlvbjogaXNvbGF0ZTsKICAgIG1heC13aWR0aDogdmFyKC0tYXV0by1zaXplLWF2YWlsYWJsZS13aWR0aCwgbm9uZSk7CiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1hdXRvLXNpemUtYXZhaWxhYmxlLWhlaWdodCwgbm9uZSk7CiAgfQoKICAucG9wdXAtLWZpeGVkIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICB9CgogIC5wb3B1cDpub3QoLnBvcHVwLS1hY3RpdmUpIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAucG9wdXBfX2Fycm93IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHdpZHRoOiBjYWxjKHZhcigtLWFycm93LXNpemUtZGlhZ29uYWwpICogMik7CiAgICBoZWlnaHQ6IGNhbGModmFyKC0tYXJyb3ctc2l6ZS1kaWFnb25hbCkgKiAyKTsKICAgIHJvdGF0ZTogNDVkZWc7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hcnJvdy1jb2xvcik7CiAgICB6LWluZGV4OiAtMTsKICB9CgogIC8qIEhvdmVyIGJyaWRnZSAqLwogIC5wb3B1cC1ob3Zlci1icmlkZ2U6bm90KC5wb3B1cC1ob3Zlci1icmlkZ2UtLXZpc2libGUpIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAucG9wdXAtaG92ZXItYnJpZGdlIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IGNhbGModmFyKC0tc2wtei1pbmRleC1kcm9wZG93bikgLSAxKTsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogMDsKICAgIGNsaXAtcGF0aDogcG9seWdvbigKICAgICAgdmFyKC0taG92ZXItYnJpZGdlLXRvcC1sZWZ0LXgsIDApIHZhcigtLWhvdmVyLWJyaWRnZS10b3AtbGVmdC15LCAwKSwKICAgICAgdmFyKC0taG92ZXItYnJpZGdlLXRvcC1yaWdodC14LCAwKSB2YXIoLS1ob3Zlci1icmlkZ2UtdG9wLXJpZ2h0LXksIDApLAogICAgICB2YXIoLS1ob3Zlci1icmlkZ2UtYm90dG9tLXJpZ2h0LXgsIDApIHZhcigtLWhvdmVyLWJyaWRnZS1ib3R0b20tcmlnaHQteSwgMCksCiAgICAgIHZhcigtLWhvdmVyLWJyaWRnZS1ib3R0b20tbGVmdC14LCAwKSB2YXIoLS1ob3Zlci1icmlkZ2UtYm90dG9tLWxlZnQteSwgMCkKICAgICk7CiAgfQpgO2NvbnN0IE1zPU1hdGgubWluLFJzPU1hdGgubWF4LE9zPU1hdGgucm91bmQsVXM9TWF0aC5mbG9vcixCcz1lPT4oe3g6ZSx5OmV9KSxOcz17bGVmdDoicmlnaHQiLHJpZ2h0OiJsZWZ0Iixib3R0b206InRvcCIsdG9wOiJib3R0b20ifSxxcz17c3RhcnQ6ImVuZCIsZW5kOiJzdGFydCJ9O2Z1bmN0aW9uIGpzKGUsdCxpKXtyZXR1cm4gUnMoZSxNcyh0LGkpKX1mdW5jdGlvbiBIcyhlLHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2UodCk6ZX1mdW5jdGlvbiBXcyhlKXtyZXR1cm4gZS5zcGxpdCgiLSIpWzBdfWZ1bmN0aW9uIFZzKGUpe3JldHVybiBlLnNwbGl0KCItIilbMV19ZnVuY3Rpb24gR3MoZSl7cmV0dXJuIngiPT09ZT8ieSI6IngifWZ1bmN0aW9uIEtzKGUpe3JldHVybiJ5Ij09PWU/ImhlaWdodCI6IndpZHRoIn1mdW5jdGlvbiBZcyhlKXtyZXR1cm5bInRvcCIsImJvdHRvbSJdLmluY2x1ZGVzKFdzKGUpKT8ieSI6IngifWZ1bmN0aW9uIFFzKGUpe3JldHVybiBHcyhZcyhlKSl9ZnVuY3Rpb24gWnMoZSl7cmV0dXJuIGUucmVwbGFjZSgvc3RhcnR8ZW5kL2csKGU9PnFzW2VdKSl9ZnVuY3Rpb24gSnMoZSl7cmV0dXJuIGUucmVwbGFjZSgvbGVmdHxyaWdodHxib3R0b218dG9wL2csKGU9Pk5zW2VdKSl9ZnVuY3Rpb24gWHMoZSl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBlP2Z1bmN0aW9uKGUpe3JldHVybnt0b3A6MCxyaWdodDowLGJvdHRvbTowLGxlZnQ6MCwuLi5lfX0oZSk6e3RvcDplLHJpZ2h0OmUsYm90dG9tOmUsbGVmdDplfX1mdW5jdGlvbiBlYShlKXtjb25zdHt4OnQseTppLHdpZHRoOm8saGVpZ2h0Om59PWU7cmV0dXJue3dpZHRoOm8saGVpZ2h0Om4sdG9wOmksbGVmdDp0LHJpZ2h0OnQrbyxib3R0b206aStuLHg6dCx5Oml9fWZ1bmN0aW9uIHRhKGUsdCxpKXtsZXR7cmVmZXJlbmNlOm8sZmxvYXRpbmc6bn09ZTtjb25zdCByPVlzKHQpLHM9UXModCksYT1LcyhzKSxsPVdzKHQpLGM9InkiPT09cixkPW8ueCtvLndpZHRoLzItbi53aWR0aC8yLGg9by55K28uaGVpZ2h0LzItbi5oZWlnaHQvMix1PW9bYV0vMi1uW2FdLzI7bGV0IGY7c3dpdGNoKGwpe2Nhc2UidG9wIjpmPXt4OmQseTpvLnktbi5oZWlnaHR9O2JyZWFrO2Nhc2UiYm90dG9tIjpmPXt4OmQseTpvLnkrby5oZWlnaHR9O2JyZWFrO2Nhc2UicmlnaHQiOmY9e3g6by54K28ud2lkdGgseTpofTticmVhaztjYXNlImxlZnQiOmY9e3g6by54LW4ud2lkdGgseTpofTticmVhaztkZWZhdWx0OmY9e3g6by54LHk6by55fX1zd2l0Y2goVnModCkpe2Nhc2Uic3RhcnQiOmZbc10tPXUqKGkmJmM/LTE6MSk7YnJlYWs7Y2FzZSJlbmQiOmZbc10rPXUqKGkmJmM/LTE6MSl9cmV0dXJuIGZ9YXN5bmMgZnVuY3Rpb24gaWEoZSx0KXt2YXIgaTt2b2lkIDA9PT10JiYodD17fSk7Y29uc3R7eDpvLHk6bixwbGF0Zm9ybTpyLHJlY3RzOnMsZWxlbWVudHM6YSxzdHJhdGVneTpsfT1lLHtib3VuZGFyeTpjPSJjbGlwcGluZ0FuY2VzdG9ycyIscm9vdEJvdW5kYXJ5OmQ9InZpZXdwb3J0IixlbGVtZW50Q29udGV4dDpoPSJmbG9hdGluZyIsYWx0Qm91bmRhcnk6dT0hMSxwYWRkaW5nOmY9MH09SHModCxlKSxwPVhzKGYpLG09YVt1PyJmbG9hdGluZyI9PT1oPyJyZWZlcmVuY2UiOiJmbG9hdGluZyI6aF0sYj1lYShhd2FpdCByLmdldENsaXBwaW5nUmVjdCh7ZWxlbWVudDpudWxsPT0oaT1hd2FpdChudWxsPT1yLmlzRWxlbWVudD92b2lkIDA6ci5pc0VsZW1lbnQobSkpKXx8aT9tOm0uY29udGV4dEVsZW1lbnR8fGF3YWl0KG51bGw9PXIuZ2V0RG9jdW1lbnRFbGVtZW50P3ZvaWQgMDpyLmdldERvY3VtZW50RWxlbWVudChhLmZsb2F0aW5nKSksYm91bmRhcnk6Yyxyb290Qm91bmRhcnk6ZCxzdHJhdGVneTpsfSkpLGc9ImZsb2F0aW5nIj09PWg/e3g6byx5Om4sd2lkdGg6cy5mbG9hdGluZy53aWR0aCxoZWlnaHQ6cy5mbG9hdGluZy5oZWlnaHR9OnMucmVmZXJlbmNlLHY9YXdhaXQobnVsbD09ci5nZXRPZmZzZXRQYXJlbnQ/dm9pZCAwOnIuZ2V0T2Zmc2V0UGFyZW50KGEuZmxvYXRpbmcpKSx3PWF3YWl0KG51bGw9PXIuaXNFbGVtZW50P3ZvaWQgMDpyLmlzRWxlbWVudCh2KSkmJmF3YWl0KG51bGw9PXIuZ2V0U2NhbGU/dm9pZCAwOnIuZ2V0U2NhbGUodikpfHx7eDoxLHk6MX0seT1lYShyLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0P2F3YWl0IHIuY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3Qoe2VsZW1lbnRzOmEscmVjdDpnLG9mZnNldFBhcmVudDp2LHN0cmF0ZWd5Omx9KTpnKTtyZXR1cm57dG9wOihiLnRvcC15LnRvcCtwLnRvcCkvdy55LGJvdHRvbTooeS5ib3R0b20tYi5ib3R0b20rcC5ib3R0b20pL3cueSxsZWZ0OihiLmxlZnQteS5sZWZ0K3AubGVmdCkvdy54LHJpZ2h0Oih5LnJpZ2h0LWIucmlnaHQrcC5yaWdodCkvdy54fX1mdW5jdGlvbiBvYShlKXtyZXR1cm4gc2EoZSk/KGUubm9kZU5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpOiIjZG9jdW1lbnQifWZ1bmN0aW9uIG5hKGUpe3ZhciB0O3JldHVybihudWxsPT1lfHxudWxsPT0odD1lLm93bmVyRG9jdW1lbnQpP3ZvaWQgMDp0LmRlZmF1bHRWaWV3KXx8d2luZG93fWZ1bmN0aW9uIHJhKGUpe3ZhciB0O3JldHVybiBudWxsPT0odD0oc2EoZSk/ZS5vd25lckRvY3VtZW50OmUuZG9jdW1lbnQpfHx3aW5kb3cuZG9jdW1lbnQpP3ZvaWQgMDp0LmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBzYShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIE5vZGV8fGUgaW5zdGFuY2VvZiBuYShlKS5Ob2RlfWZ1bmN0aW9uIGFhKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRWxlbWVudHx8ZSBpbnN0YW5jZW9mIG5hKGUpLkVsZW1lbnR9ZnVuY3Rpb24gbGEoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8ZSBpbnN0YW5jZW9mIG5hKGUpLkhUTUxFbGVtZW50fWZ1bmN0aW9uIGNhKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgU2hhZG93Um9vdCYmKGUgaW5zdGFuY2VvZiBTaGFkb3dSb290fHxlIGluc3RhbmNlb2YgbmEoZSkuU2hhZG93Um9vdCl9ZnVuY3Rpb24gZGEoZSl7Y29uc3R7b3ZlcmZsb3c6dCxvdmVyZmxvd1g6aSxvdmVyZmxvd1k6byxkaXNwbGF5Om59PW1hKGUpO3JldHVybi9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbnxjbGlwLy50ZXN0KHQrbytpKSYmIVsiaW5saW5lIiwiY29udGVudHMiXS5pbmNsdWRlcyhuKX1mdW5jdGlvbiBoYShlKXtyZXR1cm5bInRhYmxlIiwidGQiLCJ0aCJdLmluY2x1ZGVzKG9hKGUpKX1mdW5jdGlvbiB1YShlKXtjb25zdCB0PWZhKCksaT1tYShlKTtyZXR1cm4ibm9uZSIhPT1pLnRyYW5zZm9ybXx8Im5vbmUiIT09aS5wZXJzcGVjdGl2ZXx8ISFpLmNvbnRhaW5lclR5cGUmJiJub3JtYWwiIT09aS5jb250YWluZXJUeXBlfHwhdCYmISFpLmJhY2tkcm9wRmlsdGVyJiYibm9uZSIhPT1pLmJhY2tkcm9wRmlsdGVyfHwhdCYmISFpLmZpbHRlciYmIm5vbmUiIT09aS5maWx0ZXJ8fFsidHJhbnNmb3JtIiwicGVyc3BlY3RpdmUiLCJmaWx0ZXIiXS5zb21lKChlPT4oaS53aWxsQ2hhbmdlfHwiIikuaW5jbHVkZXMoZSkpKXx8WyJwYWludCIsImxheW91dCIsInN0cmljdCIsImNvbnRlbnQiXS5zb21lKChlPT4oaS5jb250YWlufHwiIikuaW5jbHVkZXMoZSkpKX1mdW5jdGlvbiBmYSgpe3JldHVybiEoInVuZGVmaW5lZCI9PXR5cGVvZiBDU1N8fCFDU1Muc3VwcG9ydHMpJiZDU1Muc3VwcG9ydHMoIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIiwibm9uZSIpfWZ1bmN0aW9uIHBhKGUpe3JldHVyblsiaHRtbCIsImJvZHkiLCIjZG9jdW1lbnQiXS5pbmNsdWRlcyhvYShlKSl9ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIG5hKGUpLmdldENvbXB1dGVkU3R5bGUoZSl9ZnVuY3Rpb24gYmEoZSl7cmV0dXJuIGFhKGUpP3tzY3JvbGxMZWZ0OmUuc2Nyb2xsTGVmdCxzY3JvbGxUb3A6ZS5zY3JvbGxUb3B9OntzY3JvbGxMZWZ0OmUucGFnZVhPZmZzZXQsc2Nyb2xsVG9wOmUucGFnZVlPZmZzZXR9fWZ1bmN0aW9uIGdhKGUpe2lmKCJodG1sIj09PW9hKGUpKXJldHVybiBlO2NvbnN0IHQ9ZS5hc3NpZ25lZFNsb3R8fGUucGFyZW50Tm9kZXx8Y2EoZSkmJmUuaG9zdHx8cmEoZSk7cmV0dXJuIGNhKHQpP3QuaG9zdDp0fWZ1bmN0aW9uIHZhKGUpe2NvbnN0IHQ9Z2EoZSk7cmV0dXJuIHBhKHQpP2Uub3duZXJEb2N1bWVudD9lLm93bmVyRG9jdW1lbnQuYm9keTplLmJvZHk6bGEodCkmJmRhKHQpP3Q6dmEodCl9ZnVuY3Rpb24gd2EoZSx0LGkpe3ZhciBvO3ZvaWQgMD09PXQmJih0PVtdKSx2b2lkIDA9PT1pJiYoaT0hMCk7Y29uc3Qgbj12YShlKSxyPW49PT0obnVsbD09KG89ZS5vd25lckRvY3VtZW50KT92b2lkIDA6by5ib2R5KSxzPW5hKG4pO3JldHVybiByP3QuY29uY2F0KHMscy52aXN1YWxWaWV3cG9ydHx8W10sZGEobik/bjpbXSxzLmZyYW1lRWxlbWVudCYmaT93YShzLmZyYW1lRWxlbWVudCk6W10pOnQuY29uY2F0KG4sd2EobixbXSxpKSl9ZnVuY3Rpb24geWEoZSl7Y29uc3QgdD1tYShlKTtsZXQgaT1wYXJzZUZsb2F0KHQud2lkdGgpfHwwLG89cGFyc2VGbG9hdCh0LmhlaWdodCl8fDA7Y29uc3Qgbj1sYShlKSxyPW4/ZS5vZmZzZXRXaWR0aDppLHM9bj9lLm9mZnNldEhlaWdodDpvLGE9T3MoaSkhPT1yfHxPcyhvKSE9PXM7cmV0dXJuIGEmJihpPXIsbz1zKSx7d2lkdGg6aSxoZWlnaHQ6bywkOmF9fWZ1bmN0aW9uIHhhKGUpe3JldHVybiBhYShlKT9lOmUuY29udGV4dEVsZW1lbnR9ZnVuY3Rpb24ga2EoZSl7Y29uc3QgdD14YShlKTtpZighbGEodCkpcmV0dXJuIEJzKDEpO2NvbnN0IGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7d2lkdGg6byxoZWlnaHQ6biwkOnJ9PXlhKHQpO2xldCBzPShyP09zKGkud2lkdGgpOmkud2lkdGgpL28sYT0ocj9PcyhpLmhlaWdodCk6aS5oZWlnaHQpL247cmV0dXJuIHMmJk51bWJlci5pc0Zpbml0ZShzKXx8KHM9MSksYSYmTnVtYmVyLmlzRmluaXRlKGEpfHwoYT0xKSx7eDpzLHk6YX19Y29uc3QgU2E9QnMoMCk7ZnVuY3Rpb24gJGEoZSl7Y29uc3QgdD1uYShlKTtyZXR1cm4gZmEoKSYmdC52aXN1YWxWaWV3cG9ydD97eDp0LnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQseTp0LnZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcH06U2F9ZnVuY3Rpb24gemEoZSx0LGksbyl7dm9pZCAwPT09dCYmKHQ9ITEpLHZvaWQgMD09PWkmJihpPSExKTtjb25zdCBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj14YShlKTtsZXQgcz1CcygxKTt0JiYobz9hYShvKSYmKHM9a2EobykpOnM9a2EoZSkpO2NvbnN0IGE9ZnVuY3Rpb24oZSx0LGkpe3JldHVybiB2b2lkIDA9PT10JiYodD0hMSksISghaXx8dCYmaSE9PW5hKGUpKSYmdH0ocixpLG8pPyRhKHIpOkJzKDApO2xldCBsPShuLmxlZnQrYS54KS9zLngsYz0obi50b3ArYS55KS9zLnksZD1uLndpZHRoL3MueCxoPW4uaGVpZ2h0L3MueTtpZihyKXtjb25zdCBlPW5hKHIpLHQ9byYmYWEobyk/bmEobyk6bztsZXQgaT1lLG49aS5mcmFtZUVsZW1lbnQ7Zm9yKDtuJiZvJiZ0IT09aTspe2NvbnN0IGU9a2EobiksdD1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89bWEobikscj10LmxlZnQrKG4uY2xpZW50TGVmdCtwYXJzZUZsb2F0KG8ucGFkZGluZ0xlZnQpKSplLngscz10LnRvcCsobi5jbGllbnRUb3ArcGFyc2VGbG9hdChvLnBhZGRpbmdUb3ApKSplLnk7bCo9ZS54LGMqPWUueSxkKj1lLngsaCo9ZS55LGwrPXIsYys9cyxpPW5hKG4pLG49aS5mcmFtZUVsZW1lbnR9fXJldHVybiBlYSh7d2lkdGg6ZCxoZWlnaHQ6aCx4OmwseTpjfSl9Y29uc3QgX2E9WyI6cG9wb3Zlci1vcGVuIiwiOm1vZGFsIl07ZnVuY3Rpb24gQ2EoZSl7cmV0dXJuIF9hLnNvbWUoKHQ9Pnt0cnl7cmV0dXJuIGUubWF0Y2hlcyh0KX1jYXRjaChlKXtyZXR1cm4hMX19KSl9ZnVuY3Rpb24gSWEoZSl7cmV0dXJuIHphKHJhKGUpKS5sZWZ0K2JhKGUpLnNjcm9sbExlZnR9ZnVuY3Rpb24gTGEoZSx0LGkpe2xldCBvO2lmKCJ2aWV3cG9ydCI9PT10KW89ZnVuY3Rpb24oZSx0KXtjb25zdCBpPW5hKGUpLG89cmEoZSksbj1pLnZpc3VhbFZpZXdwb3J0O2xldCByPW8uY2xpZW50V2lkdGgscz1vLmNsaWVudEhlaWdodCxhPTAsbD0wO2lmKG4pe3I9bi53aWR0aCxzPW4uaGVpZ2h0O2NvbnN0IGU9ZmEoKTsoIWV8fGUmJiJmaXhlZCI9PT10KSYmKGE9bi5vZmZzZXRMZWZ0LGw9bi5vZmZzZXRUb3ApfXJldHVybnt3aWR0aDpyLGhlaWdodDpzLHg6YSx5Omx9fShlLGkpO2Vsc2UgaWYoImRvY3VtZW50Ij09PXQpbz1mdW5jdGlvbihlKXtjb25zdCB0PXJhKGUpLGk9YmEoZSksbz1lLm93bmVyRG9jdW1lbnQuYm9keSxuPVJzKHQuc2Nyb2xsV2lkdGgsdC5jbGllbnRXaWR0aCxvLnNjcm9sbFdpZHRoLG8uY2xpZW50V2lkdGgpLHI9UnModC5zY3JvbGxIZWlnaHQsdC5jbGllbnRIZWlnaHQsby5zY3JvbGxIZWlnaHQsby5jbGllbnRIZWlnaHQpO2xldCBzPS1pLnNjcm9sbExlZnQrSWEoZSk7Y29uc3QgYT0taS5zY3JvbGxUb3A7cmV0dXJuInJ0bCI9PT1tYShvKS5kaXJlY3Rpb24mJihzKz1Scyh0LmNsaWVudFdpZHRoLG8uY2xpZW50V2lkdGgpLW4pLHt3aWR0aDpuLGhlaWdodDpyLHg6cyx5OmF9fShyYShlKSk7ZWxzZSBpZihhYSh0KSlvPWZ1bmN0aW9uKGUsdCl7Y29uc3QgaT16YShlLCEwLCJmaXhlZCI9PT10KSxvPWkudG9wK2UuY2xpZW50VG9wLG49aS5sZWZ0K2UuY2xpZW50TGVmdCxyPWxhKGUpP2thKGUpOkJzKDEpO3JldHVybnt3aWR0aDplLmNsaWVudFdpZHRoKnIueCxoZWlnaHQ6ZS5jbGllbnRIZWlnaHQqci55LHg6bipyLngseTpvKnIueX19KHQsaSk7ZWxzZXtjb25zdCBpPSRhKGUpO289ey4uLnQseDp0LngtaS54LHk6dC55LWkueX19cmV0dXJuIGVhKG8pfWZ1bmN0aW9uIEVhKGUsdCl7Y29uc3QgaT1nYShlKTtyZXR1cm4hKGk9PT10fHwhYWEoaSl8fHBhKGkpKSYmKCJmaXhlZCI9PT1tYShpKS5wb3NpdGlvbnx8RWEoaSx0KSl9ZnVuY3Rpb24gQWEoZSx0LGkpe2NvbnN0IG89bGEodCksbj1yYSh0KSxyPSJmaXhlZCI9PT1pLHM9emEoZSwhMCxyLHQpO2xldCBhPXtzY3JvbGxMZWZ0OjAsc2Nyb2xsVG9wOjB9O2NvbnN0IGw9QnMoMCk7aWYob3x8IW8mJiFyKWlmKCgiYm9keSIhPT1vYSh0KXx8ZGEobikpJiYoYT1iYSh0KSksbyl7Y29uc3QgZT16YSh0LCEwLHIsdCk7bC54PWUueCt0LmNsaWVudExlZnQsbC55PWUueSt0LmNsaWVudFRvcH1lbHNlIG4mJihsLng9SWEobikpO3JldHVybnt4OnMubGVmdCthLnNjcm9sbExlZnQtbC54LHk6cy50b3ArYS5zY3JvbGxUb3AtbC55LHdpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fX1mdW5jdGlvbiBUYShlKXtyZXR1cm4ic3RhdGljIj09PW1hKGUpLnBvc2l0aW9ufWZ1bmN0aW9uIFBhKGUsdCl7cmV0dXJuIGxhKGUpJiYiZml4ZWQiIT09bWEoZSkucG9zaXRpb24/dD90KGUpOmUub2Zmc2V0UGFyZW50Om51bGx9ZnVuY3Rpb24gRGEoZSx0KXtjb25zdCBpPW5hKGUpO2lmKENhKGUpKXJldHVybiBpO2lmKCFsYShlKSl7bGV0IHQ9Z2EoZSk7Zm9yKDt0JiYhcGEodCk7KXtpZihhYSh0KSYmIVRhKHQpKXJldHVybiB0O3Q9Z2EodCl9cmV0dXJuIGl9bGV0IG89UGEoZSx0KTtmb3IoO28mJmhhKG8pJiZUYShvKTspbz1QYShvLHQpO3JldHVybiBvJiZwYShvKSYmVGEobykmJiF1YShvKT9pOm98fGZ1bmN0aW9uKGUpe2xldCB0PWdhKGUpO2Zvcig7bGEodCkmJiFwYSh0KTspe2lmKHVhKHQpKXJldHVybiB0O3Q9Z2EodCl9cmV0dXJuIG51bGx9KGUpfHxpfWNvbnN0IEZhPXtjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdDpmdW5jdGlvbihlKXtsZXR7ZWxlbWVudHM6dCxyZWN0Omksb2Zmc2V0UGFyZW50Om8sc3RyYXRlZ3k6bn09ZTtjb25zdCByPSJmaXhlZCI9PT1uLHM9cmEobyksYT0hIXQmJkNhKHQuZmxvYXRpbmcpO2lmKG89PT1zfHxhJiZyKXJldHVybiBpO2xldCBsPXtzY3JvbGxMZWZ0OjAsc2Nyb2xsVG9wOjB9LGM9QnMoMSk7Y29uc3QgZD1CcygwKSxoPWxhKG8pO2lmKChofHwhaCYmIXIpJiYoKCJib2R5IiE9PW9hKG8pfHxkYShzKSkmJihsPWJhKG8pKSxsYShvKSkpe2NvbnN0IGU9emEobyk7Yz1rYShvKSxkLng9ZS54K28uY2xpZW50TGVmdCxkLnk9ZS55K28uY2xpZW50VG9wfXJldHVybnt3aWR0aDppLndpZHRoKmMueCxoZWlnaHQ6aS5oZWlnaHQqYy55LHg6aS54KmMueC1sLnNjcm9sbExlZnQqYy54K2QueCx5OmkueSpjLnktbC5zY3JvbGxUb3AqYy55K2QueX19LGdldERvY3VtZW50RWxlbWVudDpyYSxnZXRDbGlwcGluZ1JlY3Q6ZnVuY3Rpb24oZSl7bGV0e2VsZW1lbnQ6dCxib3VuZGFyeTppLHJvb3RCb3VuZGFyeTpvLHN0cmF0ZWd5Om59PWU7Y29uc3Qgcj1bLi4uImNsaXBwaW5nQW5jZXN0b3JzIj09PWk/Q2EodCk/W106ZnVuY3Rpb24oZSx0KXtjb25zdCBpPXQuZ2V0KGUpO2lmKGkpcmV0dXJuIGk7bGV0IG89d2EoZSxbXSwhMSkuZmlsdGVyKChlPT5hYShlKSYmImJvZHkiIT09b2EoZSkpKSxuPW51bGw7Y29uc3Qgcj0iZml4ZWQiPT09bWEoZSkucG9zaXRpb247bGV0IHM9cj9nYShlKTplO2Zvcig7YWEocykmJiFwYShzKTspe2NvbnN0IHQ9bWEocyksaT11YShzKTtpfHwiZml4ZWQiIT09dC5wb3NpdGlvbnx8KG49bnVsbCksKHI/IWkmJiFuOiFpJiYic3RhdGljIj09PXQucG9zaXRpb24mJm4mJlsiYWJzb2x1dGUiLCJmaXhlZCJdLmluY2x1ZGVzKG4ucG9zaXRpb24pfHxkYShzKSYmIWkmJkVhKGUscykpP289by5maWx0ZXIoKGU9PmUhPT1zKSk6bj10LHM9Z2Eocyl9cmV0dXJuIHQuc2V0KGUsbyksb30odCx0aGlzLl9jKTpbXS5jb25jYXQoaSksb10scz1yWzBdLGE9ci5yZWR1Y2UoKChlLGkpPT57Y29uc3Qgbz1MYSh0LGksbik7cmV0dXJuIGUudG9wPVJzKG8udG9wLGUudG9wKSxlLnJpZ2h0PU1zKG8ucmlnaHQsZS5yaWdodCksZS5ib3R0b209TXMoby5ib3R0b20sZS5ib3R0b20pLGUubGVmdD1ScyhvLmxlZnQsZS5sZWZ0KSxlfSksTGEodCxzLG4pKTtyZXR1cm57d2lkdGg6YS5yaWdodC1hLmxlZnQsaGVpZ2h0OmEuYm90dG9tLWEudG9wLHg6YS5sZWZ0LHk6YS50b3B9fSxnZXRPZmZzZXRQYXJlbnQ6RGEsZ2V0RWxlbWVudFJlY3RzOmFzeW5jIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5nZXRPZmZzZXRQYXJlbnR8fERhLGk9dGhpcy5nZXREaW1lbnNpb25zLG89YXdhaXQgaShlLmZsb2F0aW5nKTtyZXR1cm57cmVmZXJlbmNlOkFhKGUucmVmZXJlbmNlLGF3YWl0IHQoZS5mbG9hdGluZyksZS5zdHJhdGVneSksZmxvYXRpbmc6e3g6MCx5OjAsd2lkdGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHR9fX0sZ2V0Q2xpZW50UmVjdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LmZyb20oZS5nZXRDbGllbnRSZWN0cygpKX0sZ2V0RGltZW5zaW9uczpmdW5jdGlvbihlKXtjb25zdHt3aWR0aDp0LGhlaWdodDppfT15YShlKTtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6aX19LGdldFNjYWxlOmthLGlzRWxlbWVudDphYSxpc1JUTDpmdW5jdGlvbihlKXtyZXR1cm4icnRsIj09PW1hKGUpLmRpcmVjdGlvbn19O2Z1bmN0aW9uIE1hKGUsdCxpLG8pe3ZvaWQgMD09PW8mJihvPXt9KTtjb25zdHthbmNlc3RvclNjcm9sbDpuPSEwLGFuY2VzdG9yUmVzaXplOnI9ITAsZWxlbWVudFJlc2l6ZTpzPSJmdW5jdGlvbiI9PXR5cGVvZiBSZXNpemVPYnNlcnZlcixsYXlvdXRTaGlmdDphPSJmdW5jdGlvbiI9PXR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcixhbmltYXRpb25GcmFtZTpsPSExfT1vLGM9eGEoZSksZD1ufHxyP1suLi5jP3dhKGMpOltdLC4uLndhKHQpXTpbXTtkLmZvckVhY2goKGU9PntuJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaSx7cGFzc2l2ZTohMH0pLHImJmUuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixpKX0pKTtjb25zdCBoPWMmJmE/ZnVuY3Rpb24oZSx0KXtsZXQgaSxvPW51bGw7Y29uc3Qgbj1yYShlKTtmdW5jdGlvbiByKCl7dmFyIGU7Y2xlYXJUaW1lb3V0KGkpLG51bGw9PShlPW8pfHxlLmRpc2Nvbm5lY3QoKSxvPW51bGx9cmV0dXJuIGZ1bmN0aW9uIHMoYSxsKXt2b2lkIDA9PT1hJiYoYT0hMSksdm9pZCAwPT09bCYmKGw9MSkscigpO2NvbnN0e2xlZnQ6Yyx0b3A6ZCx3aWR0aDpoLGhlaWdodDp1fT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGF8fHQoKSwhaHx8IXUpcmV0dXJuO2NvbnN0IGY9e3Jvb3RNYXJnaW46LVVzKGQpKyJweCAiKy1VcyhuLmNsaWVudFdpZHRoLShjK2gpKSsicHggIistVXMobi5jbGllbnRIZWlnaHQtKGQrdSkpKyJweCAiKy1VcyhjKSsicHgiLHRocmVzaG9sZDpScygwLE1zKDEsbCkpfHwxfTtsZXQgcD0hMDtmdW5jdGlvbiBtKGUpe2NvbnN0IHQ9ZVswXS5pbnRlcnNlY3Rpb25SYXRpbztpZih0IT09bCl7aWYoIXApcmV0dXJuIHMoKTt0P3MoITEsdCk6aT1zZXRUaW1lb3V0KCgoKT0+e3MoITEsMWUtNyl9KSwxZTMpfXA9ITF9dHJ5e289bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKG0sey4uLmYscm9vdDpuLm93bmVyRG9jdW1lbnR9KX1jYXRjaChlKXtvPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihtLGYpfW8ub2JzZXJ2ZShlKX0oITApLHJ9KGMsaSk6bnVsbDtsZXQgdSxmPS0xLHA9bnVsbDtzJiYocD1uZXcgUmVzaXplT2JzZXJ2ZXIoKGU9PntsZXRbb109ZTtvJiZvLnRhcmdldD09PWMmJnAmJihwLnVub2JzZXJ2ZSh0KSxjYW5jZWxBbmltYXRpb25GcmFtZShmKSxmPXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9Pnt2YXIgZTtudWxsPT0oZT1wKXx8ZS5vYnNlcnZlKHQpfSkpKSxpKCl9KSksYyYmIWwmJnAub2JzZXJ2ZShjKSxwLm9ic2VydmUodCkpO2xldCBtPWw/emEoZSk6bnVsbDtyZXR1cm4gbCYmZnVuY3Rpb24gdCgpe2NvbnN0IG89emEoZSk7IW18fG8ueD09PW0ueCYmby55PT09bS55JiZvLndpZHRoPT09bS53aWR0aCYmby5oZWlnaHQ9PT1tLmhlaWdodHx8aSgpO209byx1PXJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX0oKSxpKCksKCk9Pnt2YXIgZTtkLmZvckVhY2goKGU9PntuJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaSksciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGkpfSkpLG51bGw9PWh8fGgoKSxudWxsPT0oZT1wKXx8ZS5kaXNjb25uZWN0KCkscD1udWxsLGwmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHUpfX1jb25zdCBSYT1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9MCkse25hbWU6Im9mZnNldCIsb3B0aW9uczplLGFzeW5jIGZuKHQpe3ZhciBpLG87Y29uc3R7eDpuLHk6cixwbGFjZW1lbnQ6cyxtaWRkbGV3YXJlRGF0YTphfT10LGw9YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSx0KXtjb25zdHtwbGFjZW1lbnQ6aSxwbGF0Zm9ybTpvLGVsZW1lbnRzOm59PWUscj1hd2FpdChudWxsPT1vLmlzUlRMP3ZvaWQgMDpvLmlzUlRMKG4uZmxvYXRpbmcpKSxzPVdzKGkpLGE9VnMoaSksbD0ieSI9PT1ZcyhpKSxjPVsibGVmdCIsInRvcCJdLmluY2x1ZGVzKHMpPy0xOjEsZD1yJiZsPy0xOjEsaD1Icyh0LGUpO2xldHttYWluQXhpczp1LGNyb3NzQXhpczpmLGFsaWdubWVudEF4aXM6cH09Im51bWJlciI9PXR5cGVvZiBoP3ttYWluQXhpczpoLGNyb3NzQXhpczowLGFsaWdubWVudEF4aXM6bnVsbH06e21haW5BeGlzOjAsY3Jvc3NBeGlzOjAsYWxpZ25tZW50QXhpczpudWxsLC4uLmh9O3JldHVybiBhJiYibnVtYmVyIj09dHlwZW9mIHAmJihmPSJlbmQiPT09YT8tMSpwOnApLGw/e3g6ZipkLHk6dSpjfTp7eDp1KmMseTpmKmR9fSh0LGUpO3JldHVybiBzPT09KG51bGw9PShpPWEub2Zmc2V0KT92b2lkIDA6aS5wbGFjZW1lbnQpJiZudWxsIT0obz1hLmFycm93KSYmby5hbGlnbm1lbnRPZmZzZXQ/e306e3g6bitsLngseTpyK2wueSxkYXRhOnsuLi5sLHBsYWNlbWVudDpzfX19fX0sT2E9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSx7bmFtZToic2hpZnQiLG9wdGlvbnM6ZSxhc3luYyBmbih0KXtjb25zdHt4OmkseTpvLHBsYWNlbWVudDpufT10LHttYWluQXhpczpyPSEwLGNyb3NzQXhpczpzPSExLGxpbWl0ZXI6YT17Zm46ZT0+e2xldHt4OnQseTppfT1lO3JldHVybnt4OnQseTppfX19LC4uLmx9PUhzKGUsdCksYz17eDppLHk6b30sZD1hd2FpdCBpYSh0LGwpLGg9WXMoV3MobikpLHU9R3MoaCk7bGV0IGY9Y1t1XSxwPWNbaF07aWYocil7Y29uc3QgZT0ieSI9PT11PyJib3R0b20iOiJyaWdodCI7Zj1qcyhmK2RbInkiPT09dT8idG9wIjoibGVmdCJdLGYsZi1kW2VdKX1pZihzKXtjb25zdCBlPSJ5Ij09PWg/ImJvdHRvbSI6InJpZ2h0IjtwPWpzKHArZFsieSI9PT1oPyJ0b3AiOiJsZWZ0Il0scCxwLWRbZV0pfWNvbnN0IG09YS5mbih7Li4udCxbdV06ZixbaF06cH0pO3JldHVybnsuLi5tLGRhdGE6e3g6bS54LWkseTptLnktb319fX19LFVhPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSkse25hbWU6ImZsaXAiLG9wdGlvbnM6ZSxhc3luYyBmbih0KXt2YXIgaSxvO2NvbnN0e3BsYWNlbWVudDpuLG1pZGRsZXdhcmVEYXRhOnIscmVjdHM6cyxpbml0aWFsUGxhY2VtZW50OmEscGxhdGZvcm06bCxlbGVtZW50czpjfT10LHttYWluQXhpczpkPSEwLGNyb3NzQXhpczpoPSEwLGZhbGxiYWNrUGxhY2VtZW50czp1LGZhbGxiYWNrU3RyYXRlZ3k6Zj0iYmVzdEZpdCIsZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbjpwPSJub25lIixmbGlwQWxpZ25tZW50Om09ITAsLi4uYn09SHMoZSx0KTtpZihudWxsIT0oaT1yLmFycm93KSYmaS5hbGlnbm1lbnRPZmZzZXQpcmV0dXJue307Y29uc3QgZz1XcyhuKSx2PVdzKGEpPT09YSx3PWF3YWl0KG51bGw9PWwuaXNSVEw/dm9pZCAwOmwuaXNSVEwoYy5mbG9hdGluZykpLHk9dXx8KHZ8fCFtP1tKcyhhKV06ZnVuY3Rpb24oZSl7Y29uc3QgdD1KcyhlKTtyZXR1cm5bWnMoZSksdCxacyh0KV19KGEpKTt1fHwibm9uZSI9PT1wfHx5LnB1c2goLi4uZnVuY3Rpb24oZSx0LGksbyl7Y29uc3Qgbj1WcyhlKTtsZXQgcj1mdW5jdGlvbihlLHQsaSl7Y29uc3Qgbz1bImxlZnQiLCJyaWdodCJdLG49WyJyaWdodCIsImxlZnQiXSxyPVsidG9wIiwiYm90dG9tIl0scz1bImJvdHRvbSIsInRvcCJdO3N3aXRjaChlKXtjYXNlInRvcCI6Y2FzZSJib3R0b20iOnJldHVybiBpP3Q/bjpvOnQ/bzpuO2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6cmV0dXJuIHQ/cjpzO2RlZmF1bHQ6cmV0dXJuW119fShXcyhlKSwic3RhcnQiPT09aSxvKTtyZXR1cm4gbiYmKHI9ci5tYXAoKGU9PmUrIi0iK24pKSx0JiYocj1yLmNvbmNhdChyLm1hcChacykpKSkscn0oYSxtLHAsdykpO2NvbnN0IHg9W2EsLi4ueV0saz1hd2FpdCBpYSh0LGIpLFM9W107bGV0ICQ9KG51bGw9PShvPXIuZmxpcCk/dm9pZCAwOm8ub3ZlcmZsb3dzKXx8W107aWYoZCYmUy5wdXNoKGtbZ10pLGgpe2NvbnN0IGU9ZnVuY3Rpb24oZSx0LGkpe3ZvaWQgMD09PWkmJihpPSExKTtjb25zdCBvPVZzKGUpLG49UXMoZSkscj1LcyhuKTtsZXQgcz0ieCI9PT1uP289PT0oaT8iZW5kIjoic3RhcnQiKT8icmlnaHQiOiJsZWZ0Ijoic3RhcnQiPT09bz8iYm90dG9tIjoidG9wIjtyZXR1cm4gdC5yZWZlcmVuY2Vbcl0+dC5mbG9hdGluZ1tyXSYmKHM9SnMocykpLFtzLEpzKHMpXX0obixzLHcpO1MucHVzaChrW2VbMF1dLGtbZVsxXV0pfWlmKCQ9Wy4uLiQse3BsYWNlbWVudDpuLG92ZXJmbG93czpTfV0sIVMuZXZlcnkoKGU9PmU8PTApKSl7dmFyIHosXztjb25zdCBlPSgobnVsbD09KHo9ci5mbGlwKT92b2lkIDA6ei5pbmRleCl8fDApKzEsdD14W2VdO2lmKHQpcmV0dXJue2RhdGE6e2luZGV4OmUsb3ZlcmZsb3dzOiR9LHJlc2V0OntwbGFjZW1lbnQ6dH19O2xldCBpPW51bGw9PShfPSQuZmlsdGVyKChlPT5lLm92ZXJmbG93c1swXTw9MCkpLnNvcnQoKChlLHQpPT5lLm92ZXJmbG93c1sxXS10Lm92ZXJmbG93c1sxXSkpWzBdKT92b2lkIDA6Xy5wbGFjZW1lbnQ7aWYoIWkpc3dpdGNoKGYpe2Nhc2UiYmVzdEZpdCI6e3ZhciBDO2NvbnN0IGU9bnVsbD09KEM9JC5tYXAoKGU9PltlLnBsYWNlbWVudCxlLm92ZXJmbG93cy5maWx0ZXIoKGU9PmU+MCkpLnJlZHVjZSgoKGUsdCk9PmUrdCksMCldKSkuc29ydCgoKGUsdCk9PmVbMV0tdFsxXSkpWzBdKT92b2lkIDA6Q1swXTtlJiYoaT1lKTticmVha31jYXNlImluaXRpYWxQbGFjZW1lbnQiOmk9YX1pZihuIT09aSlyZXR1cm57cmVzZXQ6e3BsYWNlbWVudDppfX19cmV0dXJue319fX0sQmE9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSx7bmFtZToic2l6ZSIsb3B0aW9uczplLGFzeW5jIGZuKHQpe2NvbnN0e3BsYWNlbWVudDppLHJlY3RzOm8scGxhdGZvcm06bixlbGVtZW50czpyfT10LHthcHBseTpzPSgoKT0+e30pLC4uLmF9PUhzKGUsdCksbD1hd2FpdCBpYSh0LGEpLGM9V3MoaSksZD1WcyhpKSxoPSJ5Ij09PVlzKGkpLHt3aWR0aDp1LGhlaWdodDpmfT1vLmZsb2F0aW5nO2xldCBwLG07InRvcCI9PT1jfHwiYm90dG9tIj09PWM/KHA9YyxtPWQ9PT0oYXdhaXQobnVsbD09bi5pc1JUTD92b2lkIDA6bi5pc1JUTChyLmZsb2F0aW5nKSk/InN0YXJ0IjoiZW5kIik/ImxlZnQiOiJyaWdodCIpOihtPWMscD0iZW5kIj09PWQ/InRvcCI6ImJvdHRvbSIpO2NvbnN0IGI9Zi1sLnRvcC1sLmJvdHRvbSxnPXUtbC5sZWZ0LWwucmlnaHQsdj1NcyhmLWxbcF0sYiksdz1Ncyh1LWxbbV0sZykseT0hdC5taWRkbGV3YXJlRGF0YS5zaGlmdDtsZXQgeD12LGs9dztpZihoP2s9ZHx8eT9Ncyh3LGcpOmc6eD1kfHx5P01zKHYsYik6Yix5JiYhZCl7Y29uc3QgZT1ScyhsLmxlZnQsMCksdD1ScyhsLnJpZ2h0LDApLGk9UnMobC50b3AsMCksbz1ScyhsLmJvdHRvbSwwKTtoP2s9dS0yKigwIT09ZXx8MCE9PXQ/ZSt0OlJzKGwubGVmdCxsLnJpZ2h0KSk6eD1mLTIqKDAhPT1pfHwwIT09bz9pK286UnMobC50b3AsbC5ib3R0b20pKX1hd2FpdCBzKHsuLi50LGF2YWlsYWJsZVdpZHRoOmssYXZhaWxhYmxlSGVpZ2h0Onh9KTtjb25zdCBTPWF3YWl0IG4uZ2V0RGltZW5zaW9ucyhyLmZsb2F0aW5nKTtyZXR1cm4gdSE9PVMud2lkdGh8fGYhPT1TLmhlaWdodD97cmVzZXQ6e3JlY3RzOiEwfX06e319fX0sTmE9ZT0+KHtuYW1lOiJhcnJvdyIsb3B0aW9uczplLGFzeW5jIGZuKHQpe2NvbnN0e3g6aSx5Om8scGxhY2VtZW50Om4scmVjdHM6cixwbGF0Zm9ybTpzLGVsZW1lbnRzOmEsbWlkZGxld2FyZURhdGE6bH09dCx7ZWxlbWVudDpjLHBhZGRpbmc6ZD0wfT1IcyhlLHQpfHx7fTtpZihudWxsPT1jKXJldHVybnt9O2NvbnN0IGg9WHMoZCksdT17eDppLHk6b30sZj1RcyhuKSxwPUtzKGYpLG09YXdhaXQgcy5nZXREaW1lbnNpb25zKGMpLGI9InkiPT09ZixnPWI/InRvcCI6ImxlZnQiLHY9Yj8iYm90dG9tIjoicmlnaHQiLHc9Yj8iY2xpZW50SGVpZ2h0IjoiY2xpZW50V2lkdGgiLHk9ci5yZWZlcmVuY2VbcF0rci5yZWZlcmVuY2VbZl0tdVtmXS1yLmZsb2F0aW5nW3BdLHg9dVtmXS1yLnJlZmVyZW5jZVtmXSxrPWF3YWl0KG51bGw9PXMuZ2V0T2Zmc2V0UGFyZW50P3ZvaWQgMDpzLmdldE9mZnNldFBhcmVudChjKSk7bGV0IFM9az9rW3ddOjA7UyYmYXdhaXQobnVsbD09cy5pc0VsZW1lbnQ/dm9pZCAwOnMuaXNFbGVtZW50KGspKXx8KFM9YS5mbG9hdGluZ1t3XXx8ci5mbG9hdGluZ1twXSk7Y29uc3QgJD15LzIteC8yLHo9Uy8yLW1bcF0vMi0xLF89TXMoaFtnXSx6KSxDPU1zKGhbdl0seiksST1fLEw9Uy1tW3BdLUMsRT1TLzItbVtwXS8yKyQsQT1qcyhJLEUsTCksVD0hbC5hcnJvdyYmbnVsbCE9VnMobikmJkUhPT1BJiZyLnJlZmVyZW5jZVtwXS8yLShFPEk/XzpDKS1tW3BdLzI8MCxQPVQ/RTxJP0UtSTpFLUw6MDtyZXR1cm57W2ZdOnVbZl0rUCxkYXRhOntbZl06QSxjZW50ZXJPZmZzZXQ6RS1BLVAsLi4uVCYme2FsaWdubWVudE9mZnNldDpQfX0scmVzZXQ6VH19fSkscWE9KGUsdCxpKT0+e2NvbnN0IG89bmV3IE1hcCxuPXtwbGF0Zm9ybTpGYSwuLi5pfSxyPXsuLi5uLnBsYXRmb3JtLF9jOm99O3JldHVybihhc3luYyhlLHQsaSk9Pntjb25zdHtwbGFjZW1lbnQ6bz0iYm90dG9tIixzdHJhdGVneTpuPSJhYnNvbHV0ZSIsbWlkZGxld2FyZTpyPVtdLHBsYXRmb3JtOnN9PWksYT1yLmZpbHRlcihCb29sZWFuKSxsPWF3YWl0KG51bGw9PXMuaXNSVEw/dm9pZCAwOnMuaXNSVEwodCkpO2xldCBjPWF3YWl0IHMuZ2V0RWxlbWVudFJlY3RzKHtyZWZlcmVuY2U6ZSxmbG9hdGluZzp0LHN0cmF0ZWd5Om59KSx7eDpkLHk6aH09dGEoYyxvLGwpLHU9byxmPXt9LHA9MDtmb3IobGV0IGk9MDtpPGEubGVuZ3RoO2krKyl7Y29uc3R7bmFtZTpyLGZuOm19PWFbaV0se3g6Yix5OmcsZGF0YTp2LHJlc2V0Ond9PWF3YWl0IG0oe3g6ZCx5OmgsaW5pdGlhbFBsYWNlbWVudDpvLHBsYWNlbWVudDp1LHN0cmF0ZWd5Om4sbWlkZGxld2FyZURhdGE6ZixyZWN0czpjLHBsYXRmb3JtOnMsZWxlbWVudHM6e3JlZmVyZW5jZTplLGZsb2F0aW5nOnR9fSk7ZD1udWxsIT1iP2I6ZCxoPW51bGwhPWc/ZzpoLGY9ey4uLmYsW3JdOnsuLi5mW3JdLC4uLnZ9fSx3JiZwPD01MCYmKHArKywib2JqZWN0Ij09dHlwZW9mIHcmJih3LnBsYWNlbWVudCYmKHU9dy5wbGFjZW1lbnQpLHcucmVjdHMmJihjPSEwPT09dy5yZWN0cz9hd2FpdCBzLmdldEVsZW1lbnRSZWN0cyh7cmVmZXJlbmNlOmUsZmxvYXRpbmc6dCxzdHJhdGVneTpufSk6dy5yZWN0cyksKHt4OmQseTpofT10YShjLHUsbCkpKSxpPS0xKX1yZXR1cm57eDpkLHk6aCxwbGFjZW1lbnQ6dSxzdHJhdGVneTpuLG1pZGRsZXdhcmVEYXRhOmZ9fSkoZSx0LHsuLi5uLHBsYXRmb3JtOnJ9KX07ZnVuY3Rpb24gamEoZSl7cmV0dXJuIFdhKGUpfWZ1bmN0aW9uIEhhKGUpe3JldHVybiBlLmFzc2lnbmVkU2xvdD9lLmFzc2lnbmVkU2xvdDplLnBhcmVudE5vZGUgaW5zdGFuY2VvZiBTaGFkb3dSb290P2UucGFyZW50Tm9kZS5ob3N0OmUucGFyZW50Tm9kZX1mdW5jdGlvbiBXYShlKXtmb3IobGV0IHQ9ZTt0O3Q9SGEodCkpaWYodCBpbnN0YW5jZW9mIEVsZW1lbnQmJiJub25lIj09PWdldENvbXB1dGVkU3R5bGUodCkuZGlzcGxheSlyZXR1cm4gbnVsbDtmb3IobGV0IHQ9SGEoZSk7dDt0PUhhKHQpKXtpZighKHQgaW5zdGFuY2VvZiBFbGVtZW50KSljb250aW51ZTtjb25zdCBlPWdldENvbXB1dGVkU3R5bGUodCk7aWYoImNvbnRlbnRzIiE9PWUuZGlzcGxheSl7aWYoInN0YXRpYyIhPT1lLnBvc2l0aW9ufHwibm9uZSIhPT1lLmZpbHRlcilyZXR1cm4gdDtpZigiQk9EWSI9PT10LnRhZ05hbWUpcmV0dXJuIHR9fXJldHVybiBudWxsfXZhciBWYT1jbGFzcyBleHRlbmRzIHFye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmFjdGl2ZT0hMSx0aGlzLnBsYWNlbWVudD0idG9wIix0aGlzLnN0cmF0ZWd5PSJhYnNvbHV0ZSIsdGhpcy5kaXN0YW5jZT0wLHRoaXMuc2tpZGRpbmc9MCx0aGlzLmFycm93PSExLHRoaXMuYXJyb3dQbGFjZW1lbnQ9ImFuY2hvciIsdGhpcy5hcnJvd1BhZGRpbmc9MTAsdGhpcy5mbGlwPSExLHRoaXMuZmxpcEZhbGxiYWNrUGxhY2VtZW50cz0iIix0aGlzLmZsaXBGYWxsYmFja1N0cmF0ZWd5PSJiZXN0LWZpdCIsdGhpcy5mbGlwUGFkZGluZz0wLHRoaXMuc2hpZnQ9ITEsdGhpcy5zaGlmdFBhZGRpbmc9MCx0aGlzLmF1dG9TaXplUGFkZGluZz0wLHRoaXMuaG92ZXJCcmlkZ2U9ITEsdGhpcy51cGRhdGVIb3ZlckJyaWRnZT0oKT0+e2lmKHRoaXMuaG92ZXJCcmlkZ2UmJnRoaXMuYW5jaG9yRWwpe2NvbnN0IGU9dGhpcy5hbmNob3JFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0PXRoaXMucG9wdXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IGk9MCxvPTAsbj0wLHI9MCxzPTAsYT0wLGw9MCxjPTA7dGhpcy5wbGFjZW1lbnQuaW5jbHVkZXMoInRvcCIpfHx0aGlzLnBsYWNlbWVudC5pbmNsdWRlcygiYm90dG9tIik/ZS50b3A8dC50b3A/KGk9ZS5sZWZ0LG89ZS5ib3R0b20sbj1lLnJpZ2h0LHI9ZS5ib3R0b20scz10LmxlZnQsYT10LnRvcCxsPXQucmlnaHQsYz10LnRvcCk6KGk9dC5sZWZ0LG89dC5ib3R0b20sbj10LnJpZ2h0LHI9dC5ib3R0b20scz1lLmxlZnQsYT1lLnRvcCxsPWUucmlnaHQsYz1lLnRvcCk6ZS5sZWZ0PHQubGVmdD8oaT1lLnJpZ2h0LG89ZS50b3Asbj10LmxlZnQscj10LnRvcCxzPWUucmlnaHQsYT1lLmJvdHRvbSxsPXQubGVmdCxjPXQuYm90dG9tKTooaT10LnJpZ2h0LG89dC50b3Asbj1lLmxlZnQscj1lLnRvcCxzPXQucmlnaHQsYT10LmJvdHRvbSxsPWUubGVmdCxjPWUuYm90dG9tKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLWhvdmVyLWJyaWRnZS10b3AtbGVmdC14IixgJHtpfXB4YCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ob3Zlci1icmlkZ2UtdG9wLWxlZnQteSIsYCR7b31weGApLHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0taG92ZXItYnJpZGdlLXRvcC1yaWdodC14IixgJHtufXB4YCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ob3Zlci1icmlkZ2UtdG9wLXJpZ2h0LXkiLGAke3J9cHhgKSx0aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLWhvdmVyLWJyaWRnZS1ib3R0b20tbGVmdC14IixgJHtzfXB4YCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ob3Zlci1icmlkZ2UtYm90dG9tLWxlZnQteSIsYCR7YX1weGApLHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0taG92ZXItYnJpZGdlLWJvdHRvbS1yaWdodC14IixgJHtsfXB4YCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1ob3Zlci1icmlkZ2UtYm90dG9tLXJpZ2h0LXkiLGAke2N9cHhgKX19fWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuc3RhcnQoKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdG9wKCl9YXN5bmMgdXBkYXRlZChlKXtzdXBlci51cGRhdGVkKGUpLGUuaGFzKCJhY3RpdmUiKSYmKHRoaXMuYWN0aXZlP3RoaXMuc3RhcnQoKTp0aGlzLnN0b3AoKSksZS5oYXMoImFuY2hvciIpJiZ0aGlzLmhhbmRsZUFuY2hvckNoYW5nZSgpLHRoaXMuYWN0aXZlJiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlcG9zaXRpb24oKSl9YXN5bmMgaGFuZGxlQW5jaG9yQ2hhbmdlKCl7aWYoYXdhaXQgdGhpcy5zdG9wKCksdGhpcy5hbmNob3ImJiJzdHJpbmciPT10eXBlb2YgdGhpcy5hbmNob3Ipe2NvbnN0IGU9dGhpcy5nZXRSb290Tm9kZSgpO3RoaXMuYW5jaG9yRWw9ZS5nZXRFbGVtZW50QnlJZCh0aGlzLmFuY2hvcil9ZWxzZSB0aGlzLmFuY2hvciBpbnN0YW5jZW9mIEVsZW1lbnR8fGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYiZ2V0Qm91bmRpbmdDbGllbnRSZWN0ImluIGUmJighKCJjb250ZXh0RWxlbWVudCJpbiBlKXx8ZSBpbnN0YW5jZW9mIEVsZW1lbnQpfSh0aGlzLmFuY2hvcik/dGhpcy5hbmNob3JFbD10aGlzLmFuY2hvcjp0aGlzLmFuY2hvckVsPXRoaXMucXVlcnlTZWxlY3RvcignW3Nsb3Q9ImFuY2hvciJdJyk7dGhpcy5hbmNob3JFbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCYmKHRoaXMuYW5jaG9yRWw9dGhpcy5hbmNob3JFbC5hc3NpZ25lZEVsZW1lbnRzKHtmbGF0dGVuOiEwfSlbMF0pLHRoaXMuYW5jaG9yRWwmJnRoaXMuc3RhcnQoKX1zdGFydCgpe3RoaXMuYW5jaG9yRWwmJih0aGlzLmNsZWFudXA9TWEodGhpcy5hbmNob3JFbCx0aGlzLnBvcHVwLCgoKT0+e3RoaXMucmVwb3NpdGlvbigpfSkpKX1hc3luYyBzdG9wKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT57dGhpcy5jbGVhbnVwPyh0aGlzLmNsZWFudXAoKSx0aGlzLmNsZWFudXA9dm9pZCAwLHRoaXMucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWN1cnJlbnQtcGxhY2VtZW50IiksdGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1hdXRvLXNpemUtYXZhaWxhYmxlLXdpZHRoIiksdGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1hdXRvLXNpemUtYXZhaWxhYmxlLWhlaWdodCIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PmUoKSkpKTplKCl9KSl9cmVwb3NpdGlvbigpe2lmKCF0aGlzLmFjdGl2ZXx8IXRoaXMuYW5jaG9yRWwpcmV0dXJuO2NvbnN0IGU9W1JhKHttYWluQXhpczp0aGlzLmRpc3RhbmNlLGNyb3NzQXhpczp0aGlzLnNraWRkaW5nfSldO3RoaXMuc3luYz9lLnB1c2goQmEoe2FwcGx5Oih7cmVjdHM6ZX0pPT57Y29uc3QgdD0id2lkdGgiPT09dGhpcy5zeW5jfHwiYm90aCI9PT10aGlzLnN5bmMsaT0iaGVpZ2h0Ij09PXRoaXMuc3luY3x8ImJvdGgiPT09dGhpcy5zeW5jO3RoaXMucG9wdXAuc3R5bGUud2lkdGg9dD9gJHtlLnJlZmVyZW5jZS53aWR0aH1weGA6IiIsdGhpcy5wb3B1cC5zdHlsZS5oZWlnaHQ9aT9gJHtlLnJlZmVyZW5jZS5oZWlnaHR9cHhgOiIifX0pKToodGhpcy5wb3B1cC5zdHlsZS53aWR0aD0iIix0aGlzLnBvcHVwLnN0eWxlLmhlaWdodD0iIiksdGhpcy5mbGlwJiZlLnB1c2goVWEoe2JvdW5kYXJ5OnRoaXMuZmxpcEJvdW5kYXJ5LGZhbGxiYWNrUGxhY2VtZW50czp0aGlzLmZsaXBGYWxsYmFja1BsYWNlbWVudHMsZmFsbGJhY2tTdHJhdGVneToiYmVzdC1maXQiPT09dGhpcy5mbGlwRmFsbGJhY2tTdHJhdGVneT8iYmVzdEZpdCI6ImluaXRpYWxQbGFjZW1lbnQiLHBhZGRpbmc6dGhpcy5mbGlwUGFkZGluZ30pKSx0aGlzLnNoaWZ0JiZlLnB1c2goT2Eoe2JvdW5kYXJ5OnRoaXMuc2hpZnRCb3VuZGFyeSxwYWRkaW5nOnRoaXMuc2hpZnRQYWRkaW5nfSkpLHRoaXMuYXV0b1NpemU/ZS5wdXNoKEJhKHtib3VuZGFyeTp0aGlzLmF1dG9TaXplQm91bmRhcnkscGFkZGluZzp0aGlzLmF1dG9TaXplUGFkZGluZyxhcHBseTooe2F2YWlsYWJsZVdpZHRoOmUsYXZhaWxhYmxlSGVpZ2h0OnR9KT0+eyJ2ZXJ0aWNhbCI9PT10aGlzLmF1dG9TaXplfHwiYm90aCI9PT10aGlzLmF1dG9TaXplP3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tYXV0by1zaXplLWF2YWlsYWJsZS1oZWlnaHQiLGAke3R9cHhgKTp0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWF1dG8tc2l6ZS1hdmFpbGFibGUtaGVpZ2h0IiksImhvcml6b250YWwiPT09dGhpcy5hdXRvU2l6ZXx8ImJvdGgiPT09dGhpcy5hdXRvU2l6ZT90aGlzLnN0eWxlLnNldFByb3BlcnR5KCItLWF1dG8tc2l6ZS1hdmFpbGFibGUtd2lkdGgiLGAke2V9cHhgKTp0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWF1dG8tc2l6ZS1hdmFpbGFibGUtd2lkdGgiKX19KSk6KHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tYXV0by1zaXplLWF2YWlsYWJsZS13aWR0aCIpLHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tYXV0by1zaXplLWF2YWlsYWJsZS1oZWlnaHQiKSksdGhpcy5hcnJvdyYmZS5wdXNoKE5hKHtlbGVtZW50OnRoaXMuYXJyb3dFbCxwYWRkaW5nOnRoaXMuYXJyb3dQYWRkaW5nfSkpO2NvbnN0IHQ9ImFic29sdXRlIj09PXRoaXMuc3RyYXRlZ3k/ZT0+RmEuZ2V0T2Zmc2V0UGFyZW50KGUsamEpOkZhLmdldE9mZnNldFBhcmVudDtxYSh0aGlzLmFuY2hvckVsLHRoaXMucG9wdXAse3BsYWNlbWVudDp0aGlzLnBsYWNlbWVudCxtaWRkbGV3YXJlOmUsc3RyYXRlZ3k6dGhpcy5zdHJhdGVneSxwbGF0Zm9ybTp5aSh3aSh7fSxGYSkse2dldE9mZnNldFBhcmVudDp0fSl9KS50aGVuKCgoe3g6ZSx5OnQsbWlkZGxld2FyZURhdGE6aSxwbGFjZW1lbnQ6b30pPT57Y29uc3Qgbj0icnRsIj09PWdldENvbXB1dGVkU3R5bGUodGhpcykuZGlyZWN0aW9uLHI9e3RvcDoiYm90dG9tIixyaWdodDoibGVmdCIsYm90dG9tOiJ0b3AiLGxlZnQ6InJpZ2h0In1bby5zcGxpdCgiLSIpWzBdXTtpZih0aGlzLnNldEF0dHJpYnV0ZSgiZGF0YS1jdXJyZW50LXBsYWNlbWVudCIsbyksT2JqZWN0LmFzc2lnbih0aGlzLnBvcHVwLnN0eWxlLHtsZWZ0OmAke2V9cHhgLHRvcDpgJHt0fXB4YH0pLHRoaXMuYXJyb3cpe2NvbnN0IGU9aS5hcnJvdy54LHQ9aS5hcnJvdy55O2xldCBvPSIiLHM9IiIsYT0iIixsPSIiO2lmKCJzdGFydCI9PT10aGlzLmFycm93UGxhY2VtZW50KXtjb25zdCBpPSJudW1iZXIiPT10eXBlb2YgZT9gY2FsYygke3RoaXMuYXJyb3dQYWRkaW5nfXB4IC0gdmFyKC0tYXJyb3ctcGFkZGluZy1vZmZzZXQpKWA6IiI7bz0ibnVtYmVyIj09dHlwZW9mIHQ/YGNhbGMoJHt0aGlzLmFycm93UGFkZGluZ31weCAtIHZhcigtLWFycm93LXBhZGRpbmctb2Zmc2V0KSlgOiIiLHM9bj9pOiIiLGw9bj8iIjppfWVsc2UgaWYoImVuZCI9PT10aGlzLmFycm93UGxhY2VtZW50KXtjb25zdCBpPSJudW1iZXIiPT10eXBlb2YgZT9gY2FsYygke3RoaXMuYXJyb3dQYWRkaW5nfXB4IC0gdmFyKC0tYXJyb3ctcGFkZGluZy1vZmZzZXQpKWA6IiI7cz1uPyIiOmksbD1uP2k6IiIsYT0ibnVtYmVyIj09dHlwZW9mIHQ/YGNhbGMoJHt0aGlzLmFycm93UGFkZGluZ31weCAtIHZhcigtLWFycm93LXBhZGRpbmctb2Zmc2V0KSlgOiIifWVsc2UiY2VudGVyIj09PXRoaXMuYXJyb3dQbGFjZW1lbnQ/KGw9Im51bWJlciI9PXR5cGVvZiBlPyJjYWxjKDUwJSAtIHZhcigtLWFycm93LXNpemUtZGlhZ29uYWwpKSI6IiIsbz0ibnVtYmVyIj09dHlwZW9mIHQ/ImNhbGMoNTAlIC0gdmFyKC0tYXJyb3ctc2l6ZS1kaWFnb25hbCkpIjoiIik6KGw9Im51bWJlciI9PXR5cGVvZiBlP2Ake2V9cHhgOiIiLG89Im51bWJlciI9PXR5cGVvZiB0P2Ake3R9cHhgOiIiKTtPYmplY3QuYXNzaWduKHRoaXMuYXJyb3dFbC5zdHlsZSx7dG9wOm8scmlnaHQ6cyxib3R0b206YSxsZWZ0OmwsW3JdOiJjYWxjKHZhcigtLWFycm93LXNpemUtZGlhZ29uYWwpICogLTEpIn0pfX0pKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT50aGlzLnVwZGF0ZUhvdmVyQnJpZGdlKCkpKSx0aGlzLmVtaXQoInNsLXJlcG9zaXRpb24iKX1yZW5kZXIoKXtyZXR1cm4gUWAKICAgICAgPHNsb3QgbmFtZT0iYW5jaG9yIiBAc2xvdGNoYW5nZT0ke3RoaXMuaGFuZGxlQW5jaG9yQ2hhbmdlfT48L3Nsb3Q+CgogICAgICA8c3BhbgogICAgICAgIHBhcnQ9ImhvdmVyLWJyaWRnZSIKICAgICAgICBjbGFzcz0ke0tyKHsicG9wdXAtaG92ZXItYnJpZGdlIjohMCwicG9wdXAtaG92ZXItYnJpZGdlLS12aXNpYmxlIjp0aGlzLmhvdmVyQnJpZGdlJiZ0aGlzLmFjdGl2ZX0pfQogICAgICA+PC9zcGFuPgoKICAgICAgPGRpdgogICAgICAgIHBhcnQ9InBvcHVwIgogICAgICAgIGNsYXNzPSR7S3Ioe3BvcHVwOiEwLCJwb3B1cC0tYWN0aXZlIjp0aGlzLmFjdGl2ZSwicG9wdXAtLWZpeGVkIjoiZml4ZWQiPT09dGhpcy5zdHJhdGVneSwicG9wdXAtLWhhcy1hcnJvdyI6dGhpcy5hcnJvd30pfQogICAgICA+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgICR7dGhpcy5hcnJvdz9RYDxkaXYgcGFydD0iYXJyb3ciIGNsYXNzPSJwb3B1cF9fYXJyb3ciIHJvbGU9InByZXNlbnRhdGlvbiI+PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfX07VmEuc3R5bGVzPVtOcixGc10seGkoW1NlKCIucG9wdXAiKV0sVmEucHJvdG90eXBlLCJwb3B1cCIsMikseGkoW1NlKCIucG9wdXBfX2Fycm93IildLFZhLnByb3RvdHlwZSwiYXJyb3dFbCIsMikseGkoW3llKCldLFZhLnByb3RvdHlwZSwiYW5jaG9yIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFZhLnByb3RvdHlwZSwiYWN0aXZlIiwyKSx4aShbeWUoe3JlZmxlY3Q6ITB9KV0sVmEucHJvdG90eXBlLCJwbGFjZW1lbnQiLDIpLHhpKFt5ZSh7cmVmbGVjdDohMH0pXSxWYS5wcm90b3R5cGUsInN0cmF0ZWd5IiwyKSx4aShbeWUoe3R5cGU6TnVtYmVyfSldLFZhLnByb3RvdHlwZSwiZGlzdGFuY2UiLDIpLHhpKFt5ZSh7dHlwZTpOdW1iZXJ9KV0sVmEucHJvdG90eXBlLCJza2lkZGluZyIsMikseGkoW3llKHt0eXBlOkJvb2xlYW59KV0sVmEucHJvdG90eXBlLCJhcnJvdyIsMikseGkoW3llKHthdHRyaWJ1dGU6ImFycm93LXBsYWNlbWVudCJ9KV0sVmEucHJvdG90eXBlLCJhcnJvd1BsYWNlbWVudCIsMikseGkoW3llKHthdHRyaWJ1dGU6ImFycm93LXBhZGRpbmciLHR5cGU6TnVtYmVyfSldLFZhLnByb3RvdHlwZSwiYXJyb3dQYWRkaW5nIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbn0pXSxWYS5wcm90b3R5cGUsImZsaXAiLDIpLHhpKFt5ZSh7YXR0cmlidXRlOiJmbGlwLWZhbGxiYWNrLXBsYWNlbWVudHMiLGNvbnZlcnRlcjp7ZnJvbUF0dHJpYnV0ZTplPT5lLnNwbGl0KCIgIikubWFwKChlPT5lLnRyaW0oKSkpLmZpbHRlcigoZT0+IiIhPT1lKSksdG9BdHRyaWJ1dGU6ZT0+ZS5qb2luKCIgIil9fSldLFZhLnByb3RvdHlwZSwiZmxpcEZhbGxiYWNrUGxhY2VtZW50cyIsMikseGkoW3llKHthdHRyaWJ1dGU6ImZsaXAtZmFsbGJhY2stc3RyYXRlZ3kifSldLFZhLnByb3RvdHlwZSwiZmxpcEZhbGxiYWNrU3RyYXRlZ3kiLDIpLHhpKFt5ZSh7dHlwZTpPYmplY3R9KV0sVmEucHJvdG90eXBlLCJmbGlwQm91bmRhcnkiLDIpLHhpKFt5ZSh7YXR0cmlidXRlOiJmbGlwLXBhZGRpbmciLHR5cGU6TnVtYmVyfSldLFZhLnByb3RvdHlwZSwiZmxpcFBhZGRpbmciLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFufSldLFZhLnByb3RvdHlwZSwic2hpZnQiLDIpLHhpKFt5ZSh7dHlwZTpPYmplY3R9KV0sVmEucHJvdG90eXBlLCJzaGlmdEJvdW5kYXJ5IiwyKSx4aShbeWUoe2F0dHJpYnV0ZToic2hpZnQtcGFkZGluZyIsdHlwZTpOdW1iZXJ9KV0sVmEucHJvdG90eXBlLCJzaGlmdFBhZGRpbmciLDIpLHhpKFt5ZSh7YXR0cmlidXRlOiJhdXRvLXNpemUifSldLFZhLnByb3RvdHlwZSwiYXV0b1NpemUiLDIpLHhpKFt5ZSgpXSxWYS5wcm90b3R5cGUsInN5bmMiLDIpLHhpKFt5ZSh7dHlwZTpPYmplY3R9KV0sVmEucHJvdG90eXBlLCJhdXRvU2l6ZUJvdW5kYXJ5IiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiYXV0by1zaXplLXBhZGRpbmciLHR5cGU6TnVtYmVyfSldLFZhLnByb3RvdHlwZSwiYXV0b1NpemVQYWRkaW5nIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiaG92ZXItYnJpZGdlIix0eXBlOkJvb2xlYW59KV0sVmEucHJvdG90eXBlLCJob3ZlckJyaWRnZSIsMik7dmFyIEdhPWNsYXNzIGV4dGVuZHMgcXJ7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMubG9jYWxpemU9bmV3IHZzKHRoaXMpLHRoaXMuY29udGVudD0iIix0aGlzLnBsYWNlbWVudD0idG9wIix0aGlzLmRpc2FibGVkPSExLHRoaXMuZGlzdGFuY2U9OCx0aGlzLm9wZW49ITEsdGhpcy5za2lkZGluZz0wLHRoaXMudHJpZ2dlcj0iaG92ZXIgZm9jdXMiLHRoaXMuaG9pc3Q9ITEsdGhpcy5oYW5kbGVCbHVyPSgpPT57dGhpcy5oYXNUcmlnZ2VyKCJmb2N1cyIpJiZ0aGlzLmhpZGUoKX0sdGhpcy5oYW5kbGVDbGljaz0oKT0+e3RoaXMuaGFzVHJpZ2dlcigiY2xpY2siKSYmKHRoaXMub3Blbj90aGlzLmhpZGUoKTp0aGlzLnNob3coKSl9LHRoaXMuaGFuZGxlRm9jdXM9KCk9Pnt0aGlzLmhhc1RyaWdnZXIoImZvY3VzIikmJnRoaXMuc2hvdygpfSx0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93bj1lPT57IkVzY2FwZSI9PT1lLmtleSYmKGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5oaWRlKCkpfSx0aGlzLmhhbmRsZU1vdXNlT3Zlcj0oKT0+e2lmKHRoaXMuaGFzVHJpZ2dlcigiaG92ZXIiKSl7Y29uc3QgZT1ucyhnZXRDb21wdXRlZFN0eWxlKHRoaXMpLmdldFByb3BlcnR5VmFsdWUoIi0tc2hvdy1kZWxheSIpKTtjbGVhclRpbWVvdXQodGhpcy5ob3ZlclRpbWVvdXQpLHRoaXMuaG92ZXJUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5zaG93KCkpLGUpfX0sdGhpcy5oYW5kbGVNb3VzZU91dD0oKT0+e2lmKHRoaXMuaGFzVHJpZ2dlcigiaG92ZXIiKSl7Y29uc3QgZT1ucyhnZXRDb21wdXRlZFN0eWxlKHRoaXMpLmdldFByb3BlcnR5VmFsdWUoIi0taGlkZS1kZWxheSIpKTtjbGVhclRpbWVvdXQodGhpcy5ob3ZlclRpbWVvdXQpLHRoaXMuaG92ZXJUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+dGhpcy5oaWRlKCkpLGUpfX0sdGhpcy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmhhbmRsZUJsdXIsITApLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuaGFuZGxlRm9jdXMsITApLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2spLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIix0aGlzLmhhbmRsZU1vdXNlT3ZlciksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsdGhpcy5oYW5kbGVNb3VzZU91dCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgZTtudWxsPT0oZT10aGlzLmNsb3NlV2F0Y2hlcil8fGUuZGVzdHJveSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRLZXlEb3duKX1maXJzdFVwZGF0ZWQoKXt0aGlzLmJvZHkuaGlkZGVuPSF0aGlzLm9wZW4sdGhpcy5vcGVuJiYodGhpcy5wb3B1cC5hY3RpdmU9ITAsdGhpcy5wb3B1cC5yZXBvc2l0aW9uKCkpfWhhc1RyaWdnZXIoZSl7cmV0dXJuIHRoaXMudHJpZ2dlci5zcGxpdCgiICIpLmluY2x1ZGVzKGUpfWFzeW5jIGhhbmRsZU9wZW5DaGFuZ2UoKXt2YXIgZSx0O2lmKHRoaXMub3Blbil7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47dGhpcy5lbWl0KCJzbC1zaG93IiksIkNsb3NlV2F0Y2hlciJpbiB3aW5kb3c/KG51bGw9PShlPXRoaXMuY2xvc2VXYXRjaGVyKXx8ZS5kZXN0cm95KCksdGhpcy5jbG9zZVdhdGNoZXI9bmV3IENsb3NlV2F0Y2hlcix0aGlzLmNsb3NlV2F0Y2hlci5vbmNsb3NlPSgpPT57dGhpcy5oaWRlKCl9KTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93biksYXdhaXQgc3ModGhpcy5ib2R5KSx0aGlzLmJvZHkuaGlkZGVuPSExLHRoaXMucG9wdXAuYWN0aXZlPSEwO2NvbnN0e2tleWZyYW1lczp0LG9wdGlvbnM6aX09dHModGhpcywidG9vbHRpcC5zaG93Iix7ZGlyOnRoaXMubG9jYWxpemUuZGlyKCl9KTthd2FpdCBvcyh0aGlzLnBvcHVwLnBvcHVwLHQsaSksdGhpcy5wb3B1cC5yZXBvc2l0aW9uKCksdGhpcy5lbWl0KCJzbC1hZnRlci1zaG93Iil9ZWxzZXt0aGlzLmVtaXQoInNsLWhpZGUiKSxudWxsPT0odD10aGlzLmNsb3NlV2F0Y2hlcil8fHQuZGVzdHJveSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRLZXlEb3duKSxhd2FpdCBzcyh0aGlzLmJvZHkpO2NvbnN0e2tleWZyYW1lczplLG9wdGlvbnM6aX09dHModGhpcywidG9vbHRpcC5oaWRlIix7ZGlyOnRoaXMubG9jYWxpemUuZGlyKCl9KTthd2FpdCBvcyh0aGlzLnBvcHVwLnBvcHVwLGUsaSksdGhpcy5wb3B1cC5hY3RpdmU9ITEsdGhpcy5ib2R5LmhpZGRlbj0hMCx0aGlzLmVtaXQoInNsLWFmdGVyLWhpZGUiKX19YXN5bmMgaGFuZGxlT3B0aW9uc0NoYW5nZSgpe3RoaXMuaGFzVXBkYXRlZCYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5wb3B1cC5yZXBvc2l0aW9uKCkpfWhhbmRsZURpc2FibGVkQ2hhbmdlKCl7dGhpcy5kaXNhYmxlZCYmdGhpcy5vcGVuJiZ0aGlzLmhpZGUoKX1hc3luYyBzaG93KCl7aWYoIXRoaXMub3BlbilyZXR1cm4gdGhpcy5vcGVuPSEwLGlzKHRoaXMsInNsLWFmdGVyLXNob3ciKX1hc3luYyBoaWRlKCl7aWYodGhpcy5vcGVuKXJldHVybiB0aGlzLm9wZW49ITEsaXModGhpcywic2wtYWZ0ZXItaGlkZSIpfXJlbmRlcigpe3JldHVybiBRYAogICAgICA8c2wtcG9wdXAKICAgICAgICBwYXJ0PSJiYXNlIgogICAgICAgIGV4cG9ydHBhcnRzPSIKICAgICAgICAgIHBvcHVwOmJhc2VfX3BvcHVwLAogICAgICAgICAgYXJyb3c6YmFzZV9fYXJyb3cKICAgICAgICAiCiAgICAgICAgY2xhc3M9JHtLcih7dG9vbHRpcDohMCwidG9vbHRpcC0tb3BlbiI6dGhpcy5vcGVufSl9CiAgICAgICAgcGxhY2VtZW50PSR7dGhpcy5wbGFjZW1lbnR9CiAgICAgICAgZGlzdGFuY2U9JHt0aGlzLmRpc3RhbmNlfQogICAgICAgIHNraWRkaW5nPSR7dGhpcy5za2lkZGluZ30KICAgICAgICBzdHJhdGVneT0ke3RoaXMuaG9pc3Q/ImZpeGVkIjoiYWJzb2x1dGUifQogICAgICAgIGZsaXAKICAgICAgICBzaGlmdAogICAgICAgIGFycm93CiAgICAgICAgaG92ZXItYnJpZGdlCiAgICAgID4KICAgICAgICAkeyIifQogICAgICAgIDxzbG90IHNsb3Q9ImFuY2hvciIgYXJpYS1kZXNjcmliZWRieT0idG9vbHRpcCI+PC9zbG90PgoKICAgICAgICAkeyIifQogICAgICAgIDxkaXYgcGFydD0iYm9keSIgaWQ9InRvb2x0aXAiIGNsYXNzPSJ0b29sdGlwX19ib2R5IiByb2xlPSJ0b29sdGlwIiBhcmlhLWxpdmU9JHt0aGlzLm9wZW4/InBvbGl0ZSI6Im9mZiJ9PgogICAgICAgICAgPHNsb3QgbmFtZT0iY29udGVudCI+JHt0aGlzLmNvbnRlbnR9PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICA8L3NsLXBvcHVwPgogICAgYH19O0dhLnN0eWxlcz1bTnIsRHNdLEdhLmRlcGVuZGVuY2llcz17InNsLXBvcHVwIjpWYX0seGkoW1NlKCJzbG90Om5vdChbbmFtZV0pIildLEdhLnByb3RvdHlwZSwiZGVmYXVsdFNsb3QiLDIpLHhpKFtTZSgiLnRvb2x0aXBfX2JvZHkiKV0sR2EucHJvdG90eXBlLCJib2R5IiwyKSx4aShbU2UoInNsLXBvcHVwIildLEdhLnByb3RvdHlwZSwicG9wdXAiLDIpLHhpKFt5ZSgpXSxHYS5wcm90b3R5cGUsImNvbnRlbnQiLDIpLHhpKFt5ZSgpXSxHYS5wcm90b3R5cGUsInBsYWNlbWVudCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxHYS5wcm90b3R5cGUsImRpc2FibGVkIiwyKSx4aShbeWUoe3R5cGU6TnVtYmVyfSldLEdhLnByb3RvdHlwZSwiZGlzdGFuY2UiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sR2EucHJvdG90eXBlLCJvcGVuIiwyKSx4aShbeWUoe3R5cGU6TnVtYmVyfSldLEdhLnByb3RvdHlwZSwic2tpZGRpbmciLDIpLHhpKFt5ZSgpXSxHYS5wcm90b3R5cGUsInRyaWdnZXIiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFufSldLEdhLnByb3RvdHlwZSwiaG9pc3QiLDIpLHhpKFtCcigib3BlbiIse3dhaXRVbnRpbEZpcnN0VXBkYXRlOiEwfSldLEdhLnByb3RvdHlwZSwiaGFuZGxlT3BlbkNoYW5nZSIsMSkseGkoW0JyKFsiY29udGVudCIsImRpc3RhbmNlIiwiaG9pc3QiLCJwbGFjZW1lbnQiLCJza2lkZGluZyJdKV0sR2EucHJvdG90eXBlLCJoYW5kbGVPcHRpb25zQ2hhbmdlIiwxKSx4aShbQnIoImRpc2FibGVkIildLEdhLnByb3RvdHlwZSwiaGFuZGxlRGlzYWJsZWRDaGFuZ2UiLDEpLGVzKCJ0b29sdGlwLnNob3ciLHtrZXlmcmFtZXM6W3tvcGFjaXR5OjAsc2NhbGU6Ljh9LHtvcGFjaXR5OjEsc2NhbGU6MX1dLG9wdGlvbnM6e2R1cmF0aW9uOjE1MCxlYXNpbmc6ImVhc2UifX0pLGVzKCJ0b29sdGlwLmhpZGUiLHtrZXlmcmFtZXM6W3tvcGFjaXR5OjEsc2NhbGU6MX0se29wYWNpdHk6MCxzY2FsZTouOH1dLG9wdGlvbnM6e2R1cmF0aW9uOjE1MCxlYXNpbmc6ImVhc2UifX0pO3ZhciBLYT1oYAogIDpob3N0IHsKICAgIC0tZXJyb3ItY29sb3I6IHZhcigtLXNsLWNvbG9yLWRhbmdlci02MDApOwogICAgLS1zdWNjZXNzLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1zdWNjZXNzLTYwMCk7CgogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIH0KCiAgLmNvcHktYnV0dG9uX19idXR0b24gewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICBjb2xvcjogaW5oZXJpdDsKICAgIHBhZGRpbmc6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS1zbC10cmFuc2l0aW9uLXgtZmFzdCkgY29sb3I7CiAgfQoKICAuY29weS1idXR0b24tLXN1Y2Nlc3MgLmNvcHktYnV0dG9uX19idXR0b24gewogICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MtY29sb3IpOwogIH0KCiAgLmNvcHktYnV0dG9uLS1lcnJvciAuY29weS1idXR0b25fX2J1dHRvbiB7CiAgICBjb2xvcjogdmFyKC0tZXJyb3ItY29sb3IpOwogIH0KCiAgLmNvcHktYnV0dG9uX19idXR0b246Zm9jdXMtdmlzaWJsZSB7CiAgICBvdXRsaW5lOiB2YXIoLS1zbC1mb2N1cy1yaW5nKTsKICAgIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1zbC1mb2N1cy1yaW5nLW9mZnNldCk7CiAgfQoKICAuY29weS1idXR0b25fX2J1dHRvbltkaXNhYmxlZF0gewogICAgb3BhY2l0eTogMC41OwogICAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50OwogIH0KCiAgc2xvdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICB9CmAsWWE9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2NhbGl6ZT1uZXcgdnModGhpcyksdGhpcy5pc0NvcHlpbmc9ITEsdGhpcy5zdGF0dXM9InJlc3QiLHRoaXMudmFsdWU9IiIsdGhpcy5mcm9tPSIiLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5jb3B5TGFiZWw9IiIsdGhpcy5zdWNjZXNzTGFiZWw9IiIsdGhpcy5lcnJvckxhYmVsPSIiLHRoaXMuZmVlZGJhY2tEdXJhdGlvbj0xZTMsdGhpcy50b29sdGlwUGxhY2VtZW50PSJ0b3AiLHRoaXMuaG9pc3Q9ITF9YXN5bmMgaGFuZGxlQ29weSgpe2lmKHRoaXMuZGlzYWJsZWR8fHRoaXMuaXNDb3B5aW5nKXJldHVybjt0aGlzLmlzQ29weWluZz0hMDtsZXQgZT10aGlzLnZhbHVlO2lmKHRoaXMuZnJvbSl7Y29uc3QgdD10aGlzLmdldFJvb3ROb2RlKCksaT10aGlzLmZyb20uaW5jbHVkZXMoIi4iKSxvPXRoaXMuZnJvbS5pbmNsdWRlcygiWyIpJiZ0aGlzLmZyb20uaW5jbHVkZXMoIl0iKTtsZXQgbj10aGlzLmZyb20scj0iIjtpP1tuLHJdPXRoaXMuZnJvbS50cmltKCkuc3BsaXQoIi4iKTpvJiYoW24scl09dGhpcy5mcm9tLnRyaW0oKS5yZXBsYWNlKC9cXSQvLCIiKS5zcGxpdCgiWyIpKTtjb25zdCBzPSJnZXRFbGVtZW50QnlJZCJpbiB0P3QuZ2V0RWxlbWVudEJ5SWQobik6bnVsbDtzP2U9bz9zLmdldEF0dHJpYnV0ZShyKXx8IiI6aT9zW3JdfHwiIjpzLnRleHRDb250ZW50fHwiIjoodGhpcy5zaG93U3RhdHVzKCJlcnJvciIpLHRoaXMuZW1pdCgic2wtZXJyb3IiKSl9aWYoZSl0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZSksdGhpcy5zaG93U3RhdHVzKCJzdWNjZXNzIiksdGhpcy5lbWl0KCJzbC1jb3B5Iix7ZGV0YWlsOnt2YWx1ZTplfX0pfWNhdGNoKGUpe3RoaXMuc2hvd1N0YXR1cygiZXJyb3IiKSx0aGlzLmVtaXQoInNsLWVycm9yIil9ZWxzZSB0aGlzLnNob3dTdGF0dXMoImVycm9yIiksdGhpcy5lbWl0KCJzbC1lcnJvciIpfWFzeW5jIHNob3dTdGF0dXMoZSl7Y29uc3QgdD10aGlzLmNvcHlMYWJlbHx8dGhpcy5sb2NhbGl6ZS50ZXJtKCJjb3B5IiksaT10aGlzLnN1Y2Nlc3NMYWJlbHx8dGhpcy5sb2NhbGl6ZS50ZXJtKCJjb3BpZWQiKSxvPXRoaXMuZXJyb3JMYWJlbHx8dGhpcy5sb2NhbGl6ZS50ZXJtKCJlcnJvciIpLG49InN1Y2Nlc3MiPT09ZT90aGlzLnN1Y2Nlc3NJY29uOnRoaXMuZXJyb3JJY29uLHI9dHModGhpcywiY29weS5pbiIse2RpcjoibHRyIn0pLHM9dHModGhpcywiY29weS5vdXQiLHtkaXI6Imx0ciJ9KTt0aGlzLnRvb2x0aXAuY29udGVudD0ic3VjY2VzcyI9PT1lP2k6byxhd2FpdCB0aGlzLmNvcHlJY29uLmFuaW1hdGUocy5rZXlmcmFtZXMscy5vcHRpb25zKS5maW5pc2hlZCx0aGlzLmNvcHlJY29uLmhpZGRlbj0hMCx0aGlzLnN0YXR1cz1lLG4uaGlkZGVuPSExLGF3YWl0IG4uYW5pbWF0ZShyLmtleWZyYW1lcyxyLm9wdGlvbnMpLmZpbmlzaGVkLHNldFRpbWVvdXQoKGFzeW5jKCk9Pnthd2FpdCBuLmFuaW1hdGUocy5rZXlmcmFtZXMscy5vcHRpb25zKS5maW5pc2hlZCxuLmhpZGRlbj0hMCx0aGlzLnN0YXR1cz0icmVzdCIsdGhpcy5jb3B5SWNvbi5oaWRkZW49ITEsYXdhaXQgdGhpcy5jb3B5SWNvbi5hbmltYXRlKHIua2V5ZnJhbWVzLHIub3B0aW9ucykuZmluaXNoZWQsdGhpcy50b29sdGlwLmNvbnRlbnQ9dCx0aGlzLmlzQ29weWluZz0hMX0pLHRoaXMuZmVlZGJhY2tEdXJhdGlvbil9cmVuZGVyKCl7Y29uc3QgZT10aGlzLmNvcHlMYWJlbHx8dGhpcy5sb2NhbGl6ZS50ZXJtKCJjb3B5Iik7cmV0dXJuIFFgCiAgICAgIDxzbC10b29sdGlwCiAgICAgICAgY2xhc3M9JHtLcih7ImNvcHktYnV0dG9uIjohMCwiY29weS1idXR0b24tLXN1Y2Nlc3MiOiJzdWNjZXNzIj09PXRoaXMuc3RhdHVzLCJjb3B5LWJ1dHRvbi0tZXJyb3IiOiJlcnJvciI9PT10aGlzLnN0YXR1c30pfQogICAgICAgIGNvbnRlbnQ9JHtlfQogICAgICAgIHBsYWNlbWVudD0ke3RoaXMudG9vbHRpcFBsYWNlbWVudH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgID9ob2lzdD0ke3RoaXMuaG9pc3R9CiAgICAgICAgZXhwb3J0cGFydHM9IgogICAgICAgICAgYmFzZTp0b29sdGlwX19iYXNlLAogICAgICAgICAgYmFzZV9fcG9wdXA6dG9vbHRpcF9fYmFzZV9fcG9wdXAsCiAgICAgICAgICBiYXNlX19hcnJvdzp0b29sdGlwX19iYXNlX19hcnJvdywKICAgICAgICAgIGJvZHk6dG9vbHRpcF9fYm9keQogICAgICAgICIKICAgICAgPgogICAgICAgIDxidXR0b24KICAgICAgICAgIGNsYXNzPSJjb3B5LWJ1dHRvbl9fYnV0dG9uIgogICAgICAgICAgcGFydD0iYnV0dG9uIgogICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29weX0KICAgICAgICA+CiAgICAgICAgICA8c2xvdCBwYXJ0PSJjb3B5LWljb24iIG5hbWU9ImNvcHktaWNvbiI+CiAgICAgICAgICAgIDxzbC1pY29uIGxpYnJhcnk9InN5c3RlbSIgbmFtZT0iY29weSI+PC9zbC1pY29uPgogICAgICAgICAgPC9zbG90PgogICAgICAgICAgPHNsb3QgcGFydD0ic3VjY2Vzcy1pY29uIiBuYW1lPSJzdWNjZXNzLWljb24iIGhpZGRlbj4KICAgICAgICAgICAgPHNsLWljb24gbGlicmFyeT0ic3lzdGVtIiBuYW1lPSJjaGVjayI+PC9zbC1pY29uPgogICAgICAgICAgPC9zbG90PgogICAgICAgICAgPHNsb3QgcGFydD0iZXJyb3ItaWNvbiIgbmFtZT0iZXJyb3ItaWNvbiIgaGlkZGVuPgogICAgICAgICAgICA8c2wtaWNvbiBsaWJyYXJ5PSJzeXN0ZW0iIG5hbWU9IngtbGciPjwvc2wtaWNvbj4KICAgICAgICAgIDwvc2xvdD4KICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9zbC10b29sdGlwPgogICAgYH19O1lhLnN0eWxlcz1bTnIsS2FdLFlhLmRlcGVuZGVuY2llcz17InNsLWljb24iOkdyLCJzbC10b29sdGlwIjpHYX0seGkoW1NlKCdzbG90W25hbWU9ImNvcHktaWNvbiJdJyldLFlhLnByb3RvdHlwZSwiY29weUljb24iLDIpLHhpKFtTZSgnc2xvdFtuYW1lPSJzdWNjZXNzLWljb24iXScpXSxZYS5wcm90b3R5cGUsInN1Y2Nlc3NJY29uIiwyKSx4aShbU2UoJ3Nsb3RbbmFtZT0iZXJyb3ItaWNvbiJdJyldLFlhLnByb3RvdHlwZSwiZXJyb3JJY29uIiwyKSx4aShbU2UoInNsLXRvb2x0aXAiKV0sWWEucHJvdG90eXBlLCJ0b29sdGlwIiwyKSx4aShbeGUoKV0sWWEucHJvdG90eXBlLCJpc0NvcHlpbmciLDIpLHhpKFt4ZSgpXSxZYS5wcm90b3R5cGUsInN0YXR1cyIsMikseGkoW3llKCldLFlhLnByb3RvdHlwZSwidmFsdWUiLDIpLHhpKFt5ZSgpXSxZYS5wcm90b3R5cGUsImZyb20iLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sWWEucHJvdG90eXBlLCJkaXNhYmxlZCIsMikseGkoW3llKHthdHRyaWJ1dGU6ImNvcHktbGFiZWwifSldLFlhLnByb3RvdHlwZSwiY29weUxhYmVsIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToic3VjY2Vzcy1sYWJlbCJ9KV0sWWEucHJvdG90eXBlLCJzdWNjZXNzTGFiZWwiLDIpLHhpKFt5ZSh7YXR0cmlidXRlOiJlcnJvci1sYWJlbCJ9KV0sWWEucHJvdG90eXBlLCJlcnJvckxhYmVsIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToiZmVlZGJhY2stZHVyYXRpb24iLHR5cGU6TnVtYmVyfSldLFlhLnByb3RvdHlwZSwiZmVlZGJhY2tEdXJhdGlvbiIsMikseGkoW3llKHthdHRyaWJ1dGU6InRvb2x0aXAtcGxhY2VtZW50In0pXSxZYS5wcm90b3R5cGUsInRvb2x0aXBQbGFjZW1lbnQiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFufSldLFlhLnByb3RvdHlwZSwiaG9pc3QiLDIpLGVzKCJjb3B5LmluIix7a2V5ZnJhbWVzOlt7c2NhbGU6Ii4yNSIsb3BhY2l0eToiLjI1In0se3NjYWxlOiIxIixvcGFjaXR5OiIxIn1dLG9wdGlvbnM6e2R1cmF0aW9uOjEwMH19KSxlcygiY29weS5vdXQiLHtrZXlmcmFtZXM6W3tzY2FsZToiMSIsb3BhY2l0eToiMSJ9LHtzY2FsZToiLjI1IixvcGFjaXR5OiIwIn1dLG9wdGlvbnM6e2R1cmF0aW9uOjEwMH19KTtZYS5kZWZpbmUoInNsLWNvcHktYnV0dG9uIik7dmFyIFFhPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIFphKGUpe2xldCB0PVFhLmdldChlKTtyZXR1cm4gdHx8KHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSxudWxsKSxRYS5zZXQoZSx0KSksdH1mdW5jdGlvbiBKYShlKXtjb25zdCB0PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpLGk9TnVtYmVyKGUuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKTtpZihlLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKSYmKGlzTmFOKGkpfHxpPD0tMSkpcmV0dXJuITE7aWYoZS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpcmV0dXJuITE7aWYoZS5jbG9zZXN0KCJbaW5lcnRdIikpcmV0dXJuITE7aWYoImlucHV0Ij09PXQmJiJyYWRpbyI9PT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpJiYhZS5oYXNBdHRyaWJ1dGUoImNoZWNrZWQiKSlyZXR1cm4hMTtpZighZnVuY3Rpb24oZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUuY2hlY2tWaXNpYmlsaXR5KXJldHVybiBlLmNoZWNrVmlzaWJpbGl0eSh7Y2hlY2tPcGFjaXR5OiExLGNoZWNrVmlzaWJpbGl0eUNTUzohMH0pO2NvbnN0IHQ9WmEoZSk7cmV0dXJuImhpZGRlbiIhPT10LnZpc2liaWxpdHkmJiJub25lIiE9PXQuZGlzcGxheX0oZSkpcmV0dXJuITE7aWYoKCJhdWRpbyI9PT10fHwidmlkZW8iPT09dCkmJmUuaGFzQXR0cmlidXRlKCJjb250cm9scyIpKXJldHVybiEwO2lmKGUuaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpKXJldHVybiEwO2lmKGUuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKSYmImZhbHNlIiE9PWUuZ2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKSlyZXR1cm4hMDtyZXR1cm4hIVsiYnV0dG9uIiwiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSIsImEiLCJhdWRpbyIsInZpZGVvIiwic3VtbWFyeSIsImlmcmFtZSJdLmluY2x1ZGVzKHQpfHxmdW5jdGlvbihlKXtjb25zdCB0PVphKGUpLHtvdmVyZmxvd1k6aSxvdmVyZmxvd1g6b309dDtyZXR1cm4ic2Nyb2xsIj09PWl8fCJzY3JvbGwiPT09b3x8ImF1dG8iPT09aSYmImF1dG8iPT09byYmKGUuc2Nyb2xsSGVpZ2h0PmUuY2xpZW50SGVpZ2h0JiYiYXV0byI9PT1pfHwhKCEoZS5zY3JvbGxXaWR0aD5lLmNsaWVudFdpZHRoKXx8ImF1dG8iIT09bykpfShlKX1mdW5jdGlvbiBYYShlKXtjb25zdCB0PW5ldyBXZWFrTWFwLGk9W107cmV0dXJuIGZ1bmN0aW9uIG8obil7aWYobiBpbnN0YW5jZW9mIEVsZW1lbnQpe2lmKG4uaGFzQXR0cmlidXRlKCJpbmVydCIpfHxuLmNsb3Nlc3QoIltpbmVydF0iKSlyZXR1cm47aWYodC5oYXMobikpcmV0dXJuO3Quc2V0KG4sITApLCFpLmluY2x1ZGVzKG4pJiZKYShuKSYmaS5wdXNoKG4pLG4gaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnQmJmZ1bmN0aW9uKGUsdCl7dmFyIGk7cmV0dXJuKG51bGw9PShpPWUuZ2V0Um9vdE5vZGUoe2NvbXBvc2VkOiEwfSkpP3ZvaWQgMDppLmhvc3QpIT09dH0obixlKSYmbi5hc3NpZ25lZEVsZW1lbnRzKHtmbGF0dGVuOiEwfSkuZm9yRWFjaCgoZT0+e28oZSl9KSksbnVsbCE9PW4uc2hhZG93Um9vdCYmIm9wZW4iPT09bi5zaGFkb3dSb290Lm1vZGUmJm8obi5zaGFkb3dSb290KX1mb3IoY29uc3QgZSBvZiBuLmNoaWxkcmVuKW8oZSl9KGUpLGkuc29ydCgoKGUsdCk9Pntjb25zdCBpPU51bWJlcihlLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSl8fDA7cmV0dXJuKE51bWJlcih0LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSl8fDApLWl9KSl9ZnVuY3Rpb24qZWwoZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50KXtudWxsIT1lJiYoeWllbGQgZSwic2hhZG93Um9vdCJpbiBlJiZlLnNoYWRvd1Jvb3QmJiJjbG9zZWQiIT09ZS5zaGFkb3dSb290Lm1vZGUmJih5aWVsZCpTaShlbChlLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCkpKSl9dmFyIHRsPVtdLGlsPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMudGFiRGlyZWN0aW9uPSJmb3J3YXJkIix0aGlzLmhhbmRsZUZvY3VzSW49KCk9Pnt0aGlzLmlzQWN0aXZlKCkmJnRoaXMuY2hlY2tGb2N1cygpfSx0aGlzLmhhbmRsZUtleURvd249ZT0+e3ZhciB0O2lmKCJUYWIiIT09ZS5rZXl8fHRoaXMuaXNFeHRlcm5hbEFjdGl2YXRlZClyZXR1cm47aWYoIXRoaXMuaXNBY3RpdmUoKSlyZXR1cm47Y29uc3QgaT1bLi4uZWwoKV0ucG9wKCk7aWYodGhpcy5wcmV2aW91c0ZvY3VzPWksdGhpcy5wcmV2aW91c0ZvY3VzJiZ0aGlzLnBvc3NpYmx5SGFzVGFiYmFibGVDaGlsZHJlbih0aGlzLnByZXZpb3VzRm9jdXMpKXJldHVybjtlLnNoaWZ0S2V5P3RoaXMudGFiRGlyZWN0aW9uPSJiYWNrd2FyZCI6dGhpcy50YWJEaXJlY3Rpb249ImZvcndhcmQiO2NvbnN0IG89WGEodGhpcy5lbGVtZW50KTtsZXQgbj1vLmZpbmRJbmRleCgoZT0+ZT09PWkpKTt0aGlzLnByZXZpb3VzRm9jdXM9dGhpcy5jdXJyZW50Rm9jdXM7Y29uc3Qgcj0iZm9yd2FyZCI9PT10aGlzLnRhYkRpcmVjdGlvbj8xOi0xO2Zvcig7Oyl7bityPj1vLmxlbmd0aD9uPTA6bityPDA/bj1vLmxlbmd0aC0xOm4rPXIsdGhpcy5wcmV2aW91c0ZvY3VzPXRoaXMuY3VycmVudEZvY3VzO2NvbnN0IGk9b1tuXTtpZigiYmFja3dhcmQiPT09dGhpcy50YWJEaXJlY3Rpb24mJnRoaXMucHJldmlvdXNGb2N1cyYmdGhpcy5wb3NzaWJseUhhc1RhYmJhYmxlQ2hpbGRyZW4odGhpcy5wcmV2aW91c0ZvY3VzKSlyZXR1cm47aWYoaSYmdGhpcy5wb3NzaWJseUhhc1RhYmJhYmxlQ2hpbGRyZW4oaSkpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSx0aGlzLmN1cnJlbnRGb2N1cz1pLG51bGw9PSh0PXRoaXMuY3VycmVudEZvY3VzKXx8dC5mb2N1cyh7cHJldmVudFNjcm9sbDohMX0pO2NvbnN0IHM9Wy4uLmVsKCldO2lmKHMuaW5jbHVkZXModGhpcy5jdXJyZW50Rm9jdXMpfHwhcy5pbmNsdWRlcyh0aGlzLnByZXZpb3VzRm9jdXMpKWJyZWFrfXNldFRpbWVvdXQoKCgpPT50aGlzLmNoZWNrRm9jdXMoKSkpfSx0aGlzLmhhbmRsZUtleVVwPSgpPT57dGhpcy50YWJEaXJlY3Rpb249ImZvcndhcmQifSx0aGlzLmVsZW1lbnQ9ZSx0aGlzLmVsZW1lbnRzV2l0aFRhYmJhYmxlQ29udHJvbHM9WyJpZnJhbWUiXX1hY3RpdmF0ZSgpe3RsLnB1c2godGhpcy5lbGVtZW50KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIix0aGlzLmhhbmRsZUZvY3VzSW4pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuaGFuZGxlS2V5VXApfWRlYWN0aXZhdGUoKXt0bD10bC5maWx0ZXIoKGU9PmUhPT10aGlzLmVsZW1lbnQpKSx0aGlzLmN1cnJlbnRGb2N1cz1udWxsLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLHRoaXMuaGFuZGxlRm9jdXNJbiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5oYW5kbGVLZXlVcCl9aXNBY3RpdmUoKXtyZXR1cm4gdGxbdGwubGVuZ3RoLTFdPT09dGhpcy5lbGVtZW50fWFjdGl2YXRlRXh0ZXJuYWwoKXt0aGlzLmlzRXh0ZXJuYWxBY3RpdmF0ZWQ9ITB9ZGVhY3RpdmF0ZUV4dGVybmFsKCl7dGhpcy5pc0V4dGVybmFsQWN0aXZhdGVkPSExfWNoZWNrRm9jdXMoKXtpZih0aGlzLmlzQWN0aXZlKCkmJiF0aGlzLmlzRXh0ZXJuYWxBY3RpdmF0ZWQpe2NvbnN0IGU9WGEodGhpcy5lbGVtZW50KTtpZighdGhpcy5lbGVtZW50Lm1hdGNoZXMoIjpmb2N1cy13aXRoaW4iKSl7Y29uc3QgdD1lWzBdLGk9ZVtlLmxlbmd0aC0xXSxvPSJmb3J3YXJkIj09PXRoaXMudGFiRGlyZWN0aW9uP3Q6aTsiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09bz92b2lkIDA6by5mb2N1cykmJih0aGlzLmN1cnJlbnRGb2N1cz1vLG8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITF9KSl9fX1wb3NzaWJseUhhc1RhYmJhYmxlQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuZWxlbWVudHNXaXRoVGFiYmFibGVDb250cm9scy5pbmNsdWRlcyhlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl8fGUuaGFzQXR0cmlidXRlKCJjb250cm9scyIpfX07dmFyIG9sPW5ldyBTZXQ7ZnVuY3Rpb24gbmwoZSl7aWYob2wuYWRkKGUpLCFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJzbC1zY3JvbGwtbG9jayIpKXtjb25zdCBlPWZ1bmN0aW9uKCl7Y29uc3QgZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7cmV0dXJuIE1hdGguYWJzKHdpbmRvdy5pbm5lcldpZHRoLWUpfSgpK2Z1bmN0aW9uKCl7Y29uc3QgZT1OdW1iZXIoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5wYWRkaW5nUmlnaHQucmVwbGFjZSgvcHgvLCIiKSk7cmV0dXJuIGlzTmFOKGUpfHwhZT8wOmV9KCk7bGV0IHQ9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLnNjcm9sbGJhckd1dHRlcjt0JiYiYXV0byIhPT10fHwodD0ic3RhYmxlIiksZTw9MCYmKHQ9InJldmVydCIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zbC1zY3JvbGwtbG9jay1ndXR0ZXIiLHQpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzbC1zY3JvbGwtbG9jayIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zbC1zY3JvbGwtbG9jay1zaXplIixgJHtlfXB4YCl9fWZ1bmN0aW9uIHJsKGUpe29sLmRlbGV0ZShlKSwwPT09b2wuc2l6ZSYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJzbC1zY3JvbGwtbG9jayIpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1zbC1zY3JvbGwtbG9jay1zaXplIikpfXZhciBzbD1oYAogIDpob3N0IHsKICAgIC0td2lkdGg6IDMxcmVtOwogICAgLS1oZWFkZXItc3BhY2luZzogdmFyKC0tc2wtc3BhY2luZy1sYXJnZSk7CiAgICAtLWJvZHktc3BhY2luZzogdmFyKC0tc2wtc3BhY2luZy1sYXJnZSk7CiAgICAtLWZvb3Rlci1zcGFjaW5nOiB2YXIoLS1zbC1zcGFjaW5nLWxhcmdlKTsKCiAgICBkaXNwbGF5OiBjb250ZW50czsKICB9CgogIC5kaWFsb2cgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogMDsKICAgIHotaW5kZXg6IHZhcigtLXNsLXotaW5kZXgtZGlhbG9nKTsKICB9CgogIC5kaWFsb2dfX3BhbmVsIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgei1pbmRleDogMjsKICAgIHdpZHRoOiB2YXIoLS13aWR0aCk7CiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNsLXNwYWNpbmctMngtbGFyZ2UpKTsKICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLXNsLXNwYWNpbmctMngtbGFyZ2UpKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNsLXBhbmVsLWJhY2tncm91bmQtY29sb3IpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2wtYm9yZGVyLXJhZGl1cy1tZWRpdW0pOwogICAgYm94LXNoYWRvdzogdmFyKC0tc2wtc2hhZG93LXgtbGFyZ2UpOwogIH0KCiAgLmRpYWxvZ19fcGFuZWw6Zm9jdXMgewogICAgb3V0bGluZTogbm9uZTsKICB9CgogIC8qIEVuc3VyZSB0aGVyZSdzIGVub3VnaCB2ZXJ0aWNhbCBwYWRkaW5nIGZvciBwaG9uZXMgdGhhdCBkb24ndCB1cGRhdGUgdmggd2hlbiBjaHJvbWUgYXBwZWFycyAoZS5nLiBpUGhvbmUpICovCiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHsKICAgIC5kaWFsb2dfX3BhbmVsIHsKICAgICAgbWF4LWhlaWdodDogODB2aDsKICAgIH0KICB9CgogIC5kaWFsb2ctLW9wZW4gLmRpYWxvZ19fcGFuZWwgewogICAgZGlzcGxheTogZmxleDsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAuZGlhbG9nX19oZWFkZXIgewogICAgZmxleDogMCAwIGF1dG87CiAgICBkaXNwbGF5OiBmbGV4OwogIH0KCiAgLmRpYWxvZ19fdGl0bGUgewogICAgZmxleDogMSAxIGF1dG87CiAgICBmb250OiBpbmhlcml0OwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbGFyZ2UpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLXNsLWxpbmUtaGVpZ2h0LWRlbnNlKTsKICAgIHBhZGRpbmc6IHZhcigtLWhlYWRlci1zcGFjaW5nKTsKICAgIG1hcmdpbjogMDsKICB9CgogIC5kaWFsb2dfX2hlYWRlci1hY3Rpb25zIHsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGp1c3RpZnktY29udGVudDogZW5kOwogICAgZ2FwOiB2YXIoLS1zbC1zcGFjaW5nLTJ4LXNtYWxsKTsKICAgIHBhZGRpbmc6IDAgdmFyKC0taGVhZGVyLXNwYWNpbmcpOwogIH0KCiAgLmRpYWxvZ19faGVhZGVyLWFjdGlvbnMgc2wtaWNvbi1idXR0b24sCiAgLmRpYWxvZ19faGVhZGVyLWFjdGlvbnMgOjpzbG90dGVkKHNsLWljb24tYnV0dG9uKSB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbWVkaXVtKTsKICB9CgogIC5kaWFsb2dfX2JvZHkgewogICAgZmxleDogMSAxIGF1dG87CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmc6IHZhcigtLWJvZHktc3BhY2luZyk7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKICB9CgogIC5kaWFsb2dfX2Zvb3RlciB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgcGFkZGluZzogdmFyKC0tZm9vdGVyLXNwYWNpbmcpOwogIH0KCiAgLmRpYWxvZ19fZm9vdGVyIDo6c2xvdHRlZChzbC1idXR0b246bm90KDpmaXJzdC1vZi10eXBlKSkgewogICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2wtc3BhY2luZy14LXNtYWxsKTsKICB9CgogIC5kaWFsb2c6bm90KC5kaWFsb2ctLWhhcy1mb290ZXIpIC5kaWFsb2dfX2Zvb3RlciB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KCiAgLmRpYWxvZ19fb3ZlcmxheSB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIGJvdHRvbTogMDsKICAgIGxlZnQ6IDA7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1vdmVybGF5LWJhY2tncm91bmQtY29sb3IpOwogIH0KCiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsKICAgIC5kaWFsb2dfX3BhbmVsIHsKICAgICAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICAgIH0KICB9CmAsYWw9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5oYXNTbG90Q29udHJvbGxlcj1uZXcgd3ModGhpcywiZm9vdGVyIiksdGhpcy5sb2NhbGl6ZT1uZXcgdnModGhpcyksdGhpcy5tb2RhbD1uZXcgaWwodGhpcyksdGhpcy5vcGVuPSExLHRoaXMubGFiZWw9IiIsdGhpcy5ub0hlYWRlcj0hMSx0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93bj1lPT57IkVzY2FwZSI9PT1lLmtleSYmdGhpcy5tb2RhbC5pc0FjdGl2ZSgpJiZ0aGlzLm9wZW4mJihlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMucmVxdWVzdENsb3NlKCJrZXlib2FyZCIpKX19Zmlyc3RVcGRhdGVkKCl7dGhpcy5kaWFsb2cuaGlkZGVuPSF0aGlzLm9wZW4sdGhpcy5vcGVuJiYodGhpcy5hZGRPcGVuTGlzdGVuZXJzKCksdGhpcy5tb2RhbC5hY3RpdmF0ZSgpLG5sKHRoaXMpKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBlO3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb2RhbC5kZWFjdGl2YXRlKCkscmwodGhpcyksbnVsbD09KGU9dGhpcy5jbG9zZVdhdGNoZXIpfHxlLmRlc3Ryb3koKX1yZXF1ZXN0Q2xvc2UoZSl7aWYodGhpcy5lbWl0KCJzbC1yZXF1ZXN0LWNsb3NlIix7Y2FuY2VsYWJsZTohMCxkZXRhaWw6e3NvdXJjZTplfX0pLmRlZmF1bHRQcmV2ZW50ZWQpe2NvbnN0IGU9dHModGhpcywiZGlhbG9nLmRlbnlDbG9zZSIse2Rpcjp0aGlzLmxvY2FsaXplLmRpcigpfSk7b3ModGhpcy5wYW5lbCxlLmtleWZyYW1lcyxlLm9wdGlvbnMpfWVsc2UgdGhpcy5oaWRlKCl9YWRkT3Blbkxpc3RlbmVycygpe3ZhciBlOyJDbG9zZVdhdGNoZXIiaW4gd2luZG93PyhudWxsPT0oZT10aGlzLmNsb3NlV2F0Y2hlcil8fGUuZGVzdHJveSgpLHRoaXMuY2xvc2VXYXRjaGVyPW5ldyBDbG9zZVdhdGNoZXIsdGhpcy5jbG9zZVdhdGNoZXIub25jbG9zZT0oKT0+dGhpcy5yZXF1ZXN0Q2xvc2UoImtleWJvYXJkIikpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRLZXlEb3duKX1yZW1vdmVPcGVuTGlzdGVuZXJzKCl7dmFyIGU7bnVsbD09KGU9dGhpcy5jbG9zZVdhdGNoZXIpfHxlLmRlc3Ryb3koKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93bil9YXN5bmMgaGFuZGxlT3BlbkNoYW5nZSgpe2lmKHRoaXMub3Blbil7dGhpcy5lbWl0KCJzbC1zaG93IiksdGhpcy5hZGRPcGVuTGlzdGVuZXJzKCksdGhpcy5vcmlnaW5hbFRyaWdnZXI9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCx0aGlzLm1vZGFsLmFjdGl2YXRlKCksbmwodGhpcyk7Y29uc3QgZT10aGlzLnF1ZXJ5U2VsZWN0b3IoIlthdXRvZm9jdXNdIik7ZSYmZS5yZW1vdmVBdHRyaWJ1dGUoImF1dG9mb2N1cyIpLGF3YWl0IFByb21pc2UuYWxsKFtzcyh0aGlzLmRpYWxvZyksc3ModGhpcy5vdmVybGF5KV0pLHRoaXMuZGlhbG9nLmhpZGRlbj0hMSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dGhpcy5lbWl0KCJzbC1pbml0aWFsLWZvY3VzIix7Y2FuY2VsYWJsZTohMH0pLmRlZmF1bHRQcmV2ZW50ZWR8fChlP2UuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KTp0aGlzLnBhbmVsLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSkpLGUmJmUuc2V0QXR0cmlidXRlKCJhdXRvZm9jdXMiLCIiKX0pKTtjb25zdCB0PXRzKHRoaXMsImRpYWxvZy5zaG93Iix7ZGlyOnRoaXMubG9jYWxpemUuZGlyKCl9KSxpPXRzKHRoaXMsImRpYWxvZy5vdmVybGF5LnNob3ciLHtkaXI6dGhpcy5sb2NhbGl6ZS5kaXIoKX0pO2F3YWl0IFByb21pc2UuYWxsKFtvcyh0aGlzLnBhbmVsLHQua2V5ZnJhbWVzLHQub3B0aW9ucyksb3ModGhpcy5vdmVybGF5LGkua2V5ZnJhbWVzLGkub3B0aW9ucyldKSx0aGlzLmVtaXQoInNsLWFmdGVyLXNob3ciKX1lbHNle3RoaXMuZW1pdCgic2wtaGlkZSIpLHRoaXMucmVtb3ZlT3Blbkxpc3RlbmVycygpLHRoaXMubW9kYWwuZGVhY3RpdmF0ZSgpLGF3YWl0IFByb21pc2UuYWxsKFtzcyh0aGlzLmRpYWxvZyksc3ModGhpcy5vdmVybGF5KV0pO2NvbnN0IGU9dHModGhpcywiZGlhbG9nLmhpZGUiLHtkaXI6dGhpcy5sb2NhbGl6ZS5kaXIoKX0pLHQ9dHModGhpcywiZGlhbG9nLm92ZXJsYXkuaGlkZSIse2Rpcjp0aGlzLmxvY2FsaXplLmRpcigpfSk7YXdhaXQgUHJvbWlzZS5hbGwoW29zKHRoaXMub3ZlcmxheSx0LmtleWZyYW1lcyx0Lm9wdGlvbnMpLnRoZW4oKCgpPT57dGhpcy5vdmVybGF5LmhpZGRlbj0hMH0pKSxvcyh0aGlzLnBhbmVsLGUua2V5ZnJhbWVzLGUub3B0aW9ucykudGhlbigoKCk9Pnt0aGlzLnBhbmVsLmhpZGRlbj0hMH0pKV0pLHRoaXMuZGlhbG9nLmhpZGRlbj0hMCx0aGlzLm92ZXJsYXkuaGlkZGVuPSExLHRoaXMucGFuZWwuaGlkZGVuPSExLHJsKHRoaXMpO2NvbnN0IGk9dGhpcy5vcmlnaW5hbFRyaWdnZXI7ImZ1bmN0aW9uIj09dHlwZW9mKG51bGw9PWk/dm9pZCAwOmkuZm9jdXMpJiZzZXRUaW1lb3V0KCgoKT0+aS5mb2N1cygpKSksdGhpcy5lbWl0KCJzbC1hZnRlci1oaWRlIil9fWFzeW5jIHNob3coKXtpZighdGhpcy5vcGVuKXJldHVybiB0aGlzLm9wZW49ITAsaXModGhpcywic2wtYWZ0ZXItc2hvdyIpfWFzeW5jIGhpZGUoKXtpZih0aGlzLm9wZW4pcmV0dXJuIHRoaXMub3Blbj0hMSxpcyh0aGlzLCJzbC1hZnRlci1oaWRlIil9cmVuZGVyKCl7cmV0dXJuIFFgCiAgICAgIDxkaXYKICAgICAgICBwYXJ0PSJiYXNlIgogICAgICAgIGNsYXNzPSR7S3Ioe2RpYWxvZzohMCwiZGlhbG9nLS1vcGVuIjp0aGlzLm9wZW4sImRpYWxvZy0taGFzLWZvb3RlciI6dGhpcy5oYXNTbG90Q29udHJvbGxlci50ZXN0KCJmb290ZXIiKX0pfQogICAgICA+CiAgICAgICAgPGRpdiBwYXJ0PSJvdmVybGF5IiBjbGFzcz0iZGlhbG9nX19vdmVybGF5IiBAY2xpY2s9JHsoKT0+dGhpcy5yZXF1ZXN0Q2xvc2UoIm92ZXJsYXkiKX0gdGFiaW5kZXg9Ii0xIj48L2Rpdj4KCiAgICAgICAgPGRpdgogICAgICAgICAgcGFydD0icGFuZWwiCiAgICAgICAgICBjbGFzcz0iZGlhbG9nX19wYW5lbCIKICAgICAgICAgIHJvbGU9ImRpYWxvZyIKICAgICAgICAgIGFyaWEtbW9kYWw9InRydWUiCiAgICAgICAgICBhcmlhLWhpZGRlbj0ke3RoaXMub3Blbj8iZmFsc2UiOiJ0cnVlIn0KICAgICAgICAgIGFyaWEtbGFiZWw9JHskZSh0aGlzLm5vSGVhZGVyP3RoaXMubGFiZWw6dm9pZCAwKX0KICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0keyRlKHRoaXMubm9IZWFkZXI/dm9pZCAwOiJ0aXRsZSIpfQogICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgID4KICAgICAgICAgICR7dGhpcy5ub0hlYWRlcj8iIjpRYAogICAgICAgICAgICAgICAgPGhlYWRlciBwYXJ0PSJoZWFkZXIiIGNsYXNzPSJkaWFsb2dfX2hlYWRlciI+CiAgICAgICAgICAgICAgICAgIDxoMiBwYXJ0PSJ0aXRsZSIgY2xhc3M9ImRpYWxvZ19fdGl0bGUiIGlkPSJ0aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT0ibGFiZWwiPiAke3RoaXMubGFiZWwubGVuZ3RoPjA/dGhpcy5sYWJlbDpTdHJpbmcuZnJvbUNoYXJDb2RlKDY1Mjc5KX0gPC9zbG90PgogICAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICAgICAgICA8ZGl2IHBhcnQ9ImhlYWRlci1hY3Rpb25zIiBjbGFzcz0iZGlhbG9nX19oZWFkZXItYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT0iaGVhZGVyLWFjdGlvbnMiPjwvc2xvdD4KICAgICAgICAgICAgICAgICAgICA8c2wtaWNvbi1idXR0b24KICAgICAgICAgICAgICAgICAgICAgIHBhcnQ9ImNsb3NlLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydHBhcnRzPSJiYXNlOmNsb3NlLWJ1dHRvbl9fYmFzZSIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaWFsb2dfX2Nsb3NlIgogICAgICAgICAgICAgICAgICAgICAgbmFtZT0ieC1sZyIKICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPSR7dGhpcy5sb2NhbGl6ZS50ZXJtKCJjbG9zZSIpfQogICAgICAgICAgICAgICAgICAgICAgbGlicmFyeT0ic3lzdGVtIgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnJlcXVlc3RDbG9zZSgiY2xvc2UtYnV0dG9uIil9IgogICAgICAgICAgICAgICAgICAgID48L3NsLWljb24tYnV0dG9uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvaGVhZGVyPgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAkeyIifQogICAgICAgICAgPGRpdiBwYXJ0PSJib2R5IiBjbGFzcz0iZGlhbG9nX19ib2R5IiB0YWJpbmRleD0iLTEiPjxzbG90Pjwvc2xvdD48L2Rpdj4KCiAgICAgICAgICA8Zm9vdGVyIHBhcnQ9ImZvb3RlciIgY2xhc3M9ImRpYWxvZ19fZm9vdGVyIj4KICAgICAgICAgICAgPHNsb3QgbmFtZT0iZm9vdGVyIj48L3Nsb3Q+CiAgICAgICAgICA8L2Zvb3Rlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX07YWwuc3R5bGVzPVtOcixzbF0sYWwuZGVwZW5kZW5jaWVzPXsic2wtaWNvbi1idXR0b24iOllyfSx4aShbU2UoIi5kaWFsb2ciKV0sYWwucHJvdG90eXBlLCJkaWFsb2ciLDIpLHhpKFtTZSgiLmRpYWxvZ19fcGFuZWwiKV0sYWwucHJvdG90eXBlLCJwYW5lbCIsMikseGkoW1NlKCIuZGlhbG9nX19vdmVybGF5IildLGFsLnByb3RvdHlwZSwib3ZlcmxheSIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxhbC5wcm90b3R5cGUsIm9wZW4iLDIpLHhpKFt5ZSh7cmVmbGVjdDohMH0pXSxhbC5wcm90b3R5cGUsImxhYmVsIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToibm8taGVhZGVyIix0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxhbC5wcm90b3R5cGUsIm5vSGVhZGVyIiwyKSx4aShbQnIoIm9wZW4iLHt3YWl0VW50aWxGaXJzdFVwZGF0ZTohMH0pXSxhbC5wcm90b3R5cGUsImhhbmRsZU9wZW5DaGFuZ2UiLDEpLGVzKCJkaWFsb2cuc2hvdyIse2tleWZyYW1lczpbe29wYWNpdHk6MCxzY2FsZTouOH0se29wYWNpdHk6MSxzY2FsZToxfV0sb3B0aW9uczp7ZHVyYXRpb246MjUwLGVhc2luZzoiZWFzZSJ9fSksZXMoImRpYWxvZy5oaWRlIix7a2V5ZnJhbWVzOlt7b3BhY2l0eToxLHNjYWxlOjF9LHtvcGFjaXR5OjAsc2NhbGU6Ljh9XSxvcHRpb25zOntkdXJhdGlvbjoyNTAsZWFzaW5nOiJlYXNlIn19KSxlcygiZGlhbG9nLmRlbnlDbG9zZSIse2tleWZyYW1lczpbe3NjYWxlOjF9LHtzY2FsZToxLjAyfSx7c2NhbGU6MX1dLG9wdGlvbnM6e2R1cmF0aW9uOjI1MH19KSxlcygiZGlhbG9nLm92ZXJsYXkuc2hvdyIse2tleWZyYW1lczpbe29wYWNpdHk6MH0se29wYWNpdHk6MX1dLG9wdGlvbnM6e2R1cmF0aW9uOjI1MH19KSxlcygiZGlhbG9nLm92ZXJsYXkuaGlkZSIse2tleWZyYW1lczpbe29wYWNpdHk6MX0se29wYWNpdHk6MH1dLG9wdGlvbnM6e2R1cmF0aW9uOjI1MH19KTthbC5kZWZpbmUoInNsLWRpYWxvZyIpO3ZhciBsbD1oYAogIDpob3N0IHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB9CgogIC5kcm9wZG93bjo6cGFydChwb3B1cCkgewogICAgei1pbmRleDogdmFyKC0tc2wtei1pbmRleC1kcm9wZG93bik7CiAgfQoKICAuZHJvcGRvd25bZGF0YS1jdXJyZW50LXBsYWNlbWVudF49J3RvcCddOjpwYXJ0KHBvcHVwKSB7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207CiAgfQoKICAuZHJvcGRvd25bZGF0YS1jdXJyZW50LXBsYWNlbWVudF49J2JvdHRvbSddOjpwYXJ0KHBvcHVwKSB7CiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7CiAgfQoKICAuZHJvcGRvd25bZGF0YS1jdXJyZW50LXBsYWNlbWVudF49J2xlZnQnXTo6cGFydChwb3B1cCkgewogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7CiAgfQoKICAuZHJvcGRvd25bZGF0YS1jdXJyZW50LXBsYWNlbWVudF49J3JpZ2h0J106OnBhcnQocG9wdXApIHsKICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7CiAgfQoKICAuZHJvcGRvd25fX3RyaWdnZXIgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQoKICAuZHJvcGRvd25fX3BhbmVsIHsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1zbC1mb250LXNhbnMpOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbWVkaXVtKTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpOwogICAgYm94LXNoYWRvdzogdmFyKC0tc2wtc2hhZG93LWxhcmdlKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNsLWJvcmRlci1yYWRpdXMtbWVkaXVtKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmRyb3Bkb3duLS1vcGVuIC5kcm9wZG93bl9fcGFuZWwgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb2ludGVyLWV2ZW50czogYWxsOwogIH0KCiAgLyogV2hlbiB1c2VycyBzbG90IGEgbWVudSwgbWFrZSBzdXJlIGl0IGNvbmZvcm1zIHRvIHRoZSBwb3B1cCdzIGF1dG8tc2l6ZSAqLwogIDo6c2xvdHRlZChzbC1tZW51KSB7CiAgICBtYXgtd2lkdGg6IHZhcigtLWF1dG8tc2l6ZS1hdmFpbGFibGUtd2lkdGgpICFpbXBvcnRhbnQ7CiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1hdXRvLXNpemUtYXZhaWxhYmxlLWhlaWdodCkgIWltcG9ydGFudDsKICB9CmAsY2w9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sb2NhbGl6ZT1uZXcgdnModGhpcyksdGhpcy5vcGVuPSExLHRoaXMucGxhY2VtZW50PSJib3R0b20tc3RhcnQiLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5zdGF5T3Blbk9uU2VsZWN0PSExLHRoaXMuZGlzdGFuY2U9MCx0aGlzLnNraWRkaW5nPTAsdGhpcy5ob2lzdD0hMSx0aGlzLnN5bmM9dm9pZCAwLHRoaXMuaGFuZGxlS2V5RG93bj1lPT57dGhpcy5vcGVuJiYiRXNjYXBlIj09PWUua2V5JiYoZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhpZGUoKSx0aGlzLmZvY3VzT25UcmlnZ2VyKCkpfSx0aGlzLmhhbmRsZURvY3VtZW50S2V5RG93bj1lPT57dmFyIHQ7aWYoIkVzY2FwZSI9PT1lLmtleSYmdGhpcy5vcGVuJiYhdGhpcy5jbG9zZVdhdGNoZXIpcmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5mb2N1c09uVHJpZ2dlcigpLHZvaWQgdGhpcy5oaWRlKCk7aWYoIlRhYiI9PT1lLmtleSl7aWYodGhpcy5vcGVuJiYic2wtbWVudS1pdGVtIj09PShudWxsPT0odD1kb2N1bWVudC5hY3RpdmVFbGVtZW50KT92b2lkIDA6dC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWRlKCksdm9pZCB0aGlzLmZvY3VzT25UcmlnZ2VyKCk7c2V0VGltZW91dCgoKCk9Pnt2YXIgZSx0LGk7Y29uc3Qgbz0obnVsbD09KGU9dGhpcy5jb250YWluaW5nRWxlbWVudCk/dm9pZCAwOmUuZ2V0Um9vdE5vZGUoKSlpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/bnVsbD09KGk9bnVsbD09KHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk/dm9pZCAwOnQuc2hhZG93Um9vdCk/dm9pZCAwOmkuYWN0aXZlRWxlbWVudDpkb2N1bWVudC5hY3RpdmVFbGVtZW50O3RoaXMuY29udGFpbmluZ0VsZW1lbnQmJihudWxsPT1vP3ZvaWQgMDpvLmNsb3Nlc3QodGhpcy5jb250YWluaW5nRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKT09PXRoaXMuY29udGFpbmluZ0VsZW1lbnR8fHRoaXMuaGlkZSgpfSkpfX0sdGhpcy5oYW5kbGVEb2N1bWVudE1vdXNlRG93bj1lPT57Y29uc3QgdD1lLmNvbXBvc2VkUGF0aCgpO3RoaXMuY29udGFpbmluZ0VsZW1lbnQmJiF0LmluY2x1ZGVzKHRoaXMuY29udGFpbmluZ0VsZW1lbnQpJiZ0aGlzLmhpZGUoKX0sdGhpcy5oYW5kbGVQYW5lbFNlbGVjdD1lPT57Y29uc3QgdD1lLnRhcmdldDt0aGlzLnN0YXlPcGVuT25TZWxlY3R8fCJzbC1tZW51IiE9PXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpfHwodGhpcy5oaWRlKCksdGhpcy5mb2N1c09uVHJpZ2dlcigpKX19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29udGFpbmluZ0VsZW1lbnR8fCh0aGlzLmNvbnRhaW5pbmdFbGVtZW50PXRoaXMpfWZpcnN0VXBkYXRlZCgpe3RoaXMucGFuZWwuaGlkZGVuPSF0aGlzLm9wZW4sdGhpcy5vcGVuJiYodGhpcy5hZGRPcGVuTGlzdGVuZXJzKCksdGhpcy5wb3B1cC5hY3RpdmU9ITApfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJlbW92ZU9wZW5MaXN0ZW5lcnMoKSx0aGlzLmhpZGUoKX1mb2N1c09uVHJpZ2dlcigpe2NvbnN0IGU9dGhpcy50cmlnZ2VyLmFzc2lnbmVkRWxlbWVudHMoe2ZsYXR0ZW46ITB9KVswXTsiZnVuY3Rpb24iPT10eXBlb2YobnVsbD09ZT92b2lkIDA6ZS5mb2N1cykmJmUuZm9jdXMoKX1nZXRNZW51KCl7cmV0dXJuIHRoaXMucGFuZWwuYXNzaWduZWRFbGVtZW50cyh7ZmxhdHRlbjohMH0pLmZpbmQoKGU9PiJzbC1tZW51Ij09PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSl9aGFuZGxlVHJpZ2dlckNsaWNrKCl7dGhpcy5vcGVuP3RoaXMuaGlkZSgpOih0aGlzLnNob3coKSx0aGlzLmZvY3VzT25UcmlnZ2VyKCkpfWFzeW5jIGhhbmRsZVRyaWdnZXJLZXlEb3duKGUpe2lmKFsiICIsIkVudGVyIl0uaW5jbHVkZXMoZS5rZXkpKXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksdm9pZCB0aGlzLmhhbmRsZVRyaWdnZXJDbGljaygpO2NvbnN0IHQ9dGhpcy5nZXRNZW51KCk7aWYodCl7Y29uc3QgaT10LmdldEFsbEl0ZW1zKCksbz1pWzBdLG49aVtpLmxlbmd0aC0xXTtbIkFycm93RG93biIsIkFycm93VXAiLCJIb21lIiwiRW5kIl0uaW5jbHVkZXMoZS5rZXkpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub3Blbnx8KHRoaXMuc2hvdygpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUpLGkubGVuZ3RoPjAmJnRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKCk9PnsiQXJyb3dEb3duIiE9PWUua2V5JiYiSG9tZSIhPT1lLmtleXx8KHQuc2V0Q3VycmVudEl0ZW0obyksby5mb2N1cygpKSwiQXJyb3dVcCIhPT1lLmtleSYmIkVuZCIhPT1lLmtleXx8KHQuc2V0Q3VycmVudEl0ZW0obiksbi5mb2N1cygpKX0pKSl9fWhhbmRsZVRyaWdnZXJLZXlVcChlKXsiICI9PT1lLmtleSYmZS5wcmV2ZW50RGVmYXVsdCgpfWhhbmRsZVRyaWdnZXJTbG90Q2hhbmdlKCl7dGhpcy51cGRhdGVBY2Nlc3NpYmxlVHJpZ2dlcigpfXVwZGF0ZUFjY2Vzc2libGVUcmlnZ2VyKCl7Y29uc3QgZT10aGlzLnRyaWdnZXIuYXNzaWduZWRFbGVtZW50cyh7ZmxhdHRlbjohMH0pLmZpbmQoKGU9PmZ1bmN0aW9uKGUpe3ZhciB0LGk7Y29uc3Qgbz1YYShlKTtyZXR1cm57c3RhcnQ6bnVsbCE9KHQ9b1swXSk/dDpudWxsLGVuZDpudWxsIT0oaT1vW28ubGVuZ3RoLTFdKT9pOm51bGx9fShlKS5zdGFydCkpO2xldCB0O2lmKGUpe3N3aXRjaChlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl7Y2FzZSJzbC1idXR0b24iOmNhc2Uic2wtaWNvbi1idXR0b24iOnQ9ZS5idXR0b247YnJlYWs7ZGVmYXVsdDp0PWV9dC5zZXRBdHRyaWJ1dGUoImFyaWEtaGFzcG9wdXAiLCJ0cnVlIiksdC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLHRoaXMub3Blbj8idHJ1ZSI6ImZhbHNlIil9fWFzeW5jIHNob3coKXtpZighdGhpcy5vcGVuKXJldHVybiB0aGlzLm9wZW49ITAsaXModGhpcywic2wtYWZ0ZXItc2hvdyIpfWFzeW5jIGhpZGUoKXtpZih0aGlzLm9wZW4pcmV0dXJuIHRoaXMub3Blbj0hMSxpcyh0aGlzLCJzbC1hZnRlci1oaWRlIil9cmVwb3NpdGlvbigpe3RoaXMucG9wdXAucmVwb3NpdGlvbigpfWFkZE9wZW5MaXN0ZW5lcnMoKXt2YXIgZTt0aGlzLnBhbmVsLmFkZEV2ZW50TGlzdGVuZXIoInNsLXNlbGVjdCIsdGhpcy5oYW5kbGVQYW5lbFNlbGVjdCksIkNsb3NlV2F0Y2hlciJpbiB3aW5kb3c/KG51bGw9PShlPXRoaXMuY2xvc2VXYXRjaGVyKXx8ZS5kZXN0cm95KCksdGhpcy5jbG9zZVdhdGNoZXI9bmV3IENsb3NlV2F0Y2hlcix0aGlzLmNsb3NlV2F0Y2hlci5vbmNsb3NlPSgpPT57dGhpcy5oaWRlKCksdGhpcy5mb2N1c09uVHJpZ2dlcigpfSk6dGhpcy5wYW5lbC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRLZXlEb3duKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuaGFuZGxlRG9jdW1lbnRNb3VzZURvd24pfXJlbW92ZU9wZW5MaXN0ZW5lcnMoKXt2YXIgZTt0aGlzLnBhbmVsJiYodGhpcy5wYW5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJzbC1zZWxlY3QiLHRoaXMuaGFuZGxlUGFuZWxTZWxlY3QpLHRoaXMucGFuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVEb2N1bWVudEtleURvd24pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5oYW5kbGVEb2N1bWVudE1vdXNlRG93biksbnVsbD09KGU9dGhpcy5jbG9zZVdhdGNoZXIpfHxlLmRlc3Ryb3koKX1hc3luYyBoYW5kbGVPcGVuQ2hhbmdlKCl7aWYodGhpcy5kaXNhYmxlZCl0aGlzLm9wZW49ITE7ZWxzZSBpZih0aGlzLnVwZGF0ZUFjY2Vzc2libGVUcmlnZ2VyKCksdGhpcy5vcGVuKXt0aGlzLmVtaXQoInNsLXNob3ciKSx0aGlzLmFkZE9wZW5MaXN0ZW5lcnMoKSxhd2FpdCBzcyh0aGlzKSx0aGlzLnBhbmVsLmhpZGRlbj0hMSx0aGlzLnBvcHVwLmFjdGl2ZT0hMDtjb25zdHtrZXlmcmFtZXM6ZSxvcHRpb25zOnR9PXRzKHRoaXMsImRyb3Bkb3duLnNob3ciLHtkaXI6dGhpcy5sb2NhbGl6ZS5kaXIoKX0pO2F3YWl0IG9zKHRoaXMucG9wdXAucG9wdXAsZSx0KSx0aGlzLmVtaXQoInNsLWFmdGVyLXNob3ciKX1lbHNle3RoaXMuZW1pdCgic2wtaGlkZSIpLHRoaXMucmVtb3ZlT3Blbkxpc3RlbmVycygpLGF3YWl0IHNzKHRoaXMpO2NvbnN0e2tleWZyYW1lczplLG9wdGlvbnM6dH09dHModGhpcywiZHJvcGRvd24uaGlkZSIse2Rpcjp0aGlzLmxvY2FsaXplLmRpcigpfSk7YXdhaXQgb3ModGhpcy5wb3B1cC5wb3B1cCxlLHQpLHRoaXMucGFuZWwuaGlkZGVuPSEwLHRoaXMucG9wdXAuYWN0aXZlPSExLHRoaXMuZW1pdCgic2wtYWZ0ZXItaGlkZSIpfX1yZW5kZXIoKXtyZXR1cm4gUWAKICAgICAgPHNsLXBvcHVwCiAgICAgICAgcGFydD0iYmFzZSIKICAgICAgICBpZD0iZHJvcGRvd24iCiAgICAgICAgcGxhY2VtZW50PSR7dGhpcy5wbGFjZW1lbnR9CiAgICAgICAgZGlzdGFuY2U9JHt0aGlzLmRpc3RhbmNlfQogICAgICAgIHNraWRkaW5nPSR7dGhpcy5za2lkZGluZ30KICAgICAgICBzdHJhdGVneT0ke3RoaXMuaG9pc3Q/ImZpeGVkIjoiYWJzb2x1dGUifQogICAgICAgIGZsaXAKICAgICAgICBzaGlmdAogICAgICAgIGF1dG8tc2l6ZT0idmVydGljYWwiCiAgICAgICAgYXV0by1zaXplLXBhZGRpbmc9IjEwIgogICAgICAgIHN5bmM9JHskZSh0aGlzLnN5bmM/dGhpcy5zeW5jOnZvaWQgMCl9CiAgICAgICAgY2xhc3M9JHtLcih7ZHJvcGRvd246ITAsImRyb3Bkb3duLS1vcGVuIjp0aGlzLm9wZW59KX0KICAgICAgPgogICAgICAgIDxzbG90CiAgICAgICAgICBuYW1lPSJ0cmlnZ2VyIgogICAgICAgICAgc2xvdD0iYW5jaG9yIgogICAgICAgICAgcGFydD0idHJpZ2dlciIKICAgICAgICAgIGNsYXNzPSJkcm9wZG93bl9fdHJpZ2dlciIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlVHJpZ2dlckNsaWNrfQogICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZVRyaWdnZXJLZXlEb3dufQogICAgICAgICAgQGtleXVwPSR7dGhpcy5oYW5kbGVUcmlnZ2VyS2V5VXB9CiAgICAgICAgICBAc2xvdGNoYW5nZT0ke3RoaXMuaGFuZGxlVHJpZ2dlclNsb3RDaGFuZ2V9CiAgICAgICAgPjwvc2xvdD4KCiAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj0ke3RoaXMub3Blbj8iZmFsc2UiOiJ0cnVlIn0gYXJpYS1sYWJlbGxlZGJ5PSJkcm9wZG93biI+CiAgICAgICAgICA8c2xvdCBwYXJ0PSJwYW5lbCIgY2xhc3M9ImRyb3Bkb3duX19wYW5lbCI+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICA8L3NsLXBvcHVwPgogICAgYH19O2NsLnN0eWxlcz1bTnIsbGxdLGNsLmRlcGVuZGVuY2llcz17InNsLXBvcHVwIjpWYX0seGkoW1NlKCIuZHJvcGRvd24iKV0sY2wucHJvdG90eXBlLCJwb3B1cCIsMikseGkoW1NlKCIuZHJvcGRvd25fX3RyaWdnZXIiKV0sY2wucHJvdG90eXBlLCJ0cmlnZ2VyIiwyKSx4aShbU2UoIi5kcm9wZG93bl9fcGFuZWwiKV0sY2wucHJvdG90eXBlLCJwYW5lbCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxjbC5wcm90b3R5cGUsIm9wZW4iLDIpLHhpKFt5ZSh7cmVmbGVjdDohMH0pXSxjbC5wcm90b3R5cGUsInBsYWNlbWVudCIsMikseGkoW3llKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxjbC5wcm90b3R5cGUsImRpc2FibGVkIiwyKSx4aShbeWUoe2F0dHJpYnV0ZToic3RheS1vcGVuLW9uLXNlbGVjdCIsdHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sY2wucHJvdG90eXBlLCJzdGF5T3Blbk9uU2VsZWN0IiwyKSx4aShbeWUoe2F0dHJpYnV0ZTohMX0pXSxjbC5wcm90b3R5cGUsImNvbnRhaW5pbmdFbGVtZW50IiwyKSx4aShbeWUoe3R5cGU6TnVtYmVyfSldLGNsLnByb3RvdHlwZSwiZGlzdGFuY2UiLDIpLHhpKFt5ZSh7dHlwZTpOdW1iZXJ9KV0sY2wucHJvdG90eXBlLCJza2lkZGluZyIsMikseGkoW3llKHt0eXBlOkJvb2xlYW59KV0sY2wucHJvdG90eXBlLCJob2lzdCIsMikseGkoW3llKHtyZWZsZWN0OiEwfSldLGNsLnByb3RvdHlwZSwic3luYyIsMikseGkoW0JyKCJvcGVuIix7d2FpdFVudGlsRmlyc3RVcGRhdGU6ITB9KV0sY2wucHJvdG90eXBlLCJoYW5kbGVPcGVuQ2hhbmdlIiwxKSxlcygiZHJvcGRvd24uc2hvdyIse2tleWZyYW1lczpbe29wYWNpdHk6MCxzY2FsZTouOX0se29wYWNpdHk6MSxzY2FsZToxfV0sb3B0aW9uczp7ZHVyYXRpb246MTAwLGVhc2luZzoiZWFzZSJ9fSksZXMoImRyb3Bkb3duLmhpZGUiLHtrZXlmcmFtZXM6W3tvcGFjaXR5OjEsc2NhbGU6MX0se29wYWNpdHk6MCxzY2FsZTouOX1dLG9wdGlvbnM6e2R1cmF0aW9uOjEwMCxlYXNpbmc6ImVhc2UifX0pO2NsLmRlZmluZSgic2wtZHJvcGRvd24iKTt2YXIgZGw9aGAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJhY2tncm91bmQ6IHZhcigtLXNsLXBhbmVsLWJhY2tncm91bmQtY29sb3IpOwogICAgYm9yZGVyOiBzb2xpZCB2YXIoLS1zbC1wYW5lbC1ib3JkZXItd2lkdGgpIHZhcigtLXNsLXBhbmVsLWJvcmRlci1jb2xvcik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zbC1ib3JkZXItcmFkaXVzLW1lZGl1bSk7CiAgICBwYWRkaW5nOiB2YXIoLS1zbC1zcGFjaW5nLXgtc21hbGwpIDA7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7CiAgfQoKICA6OnNsb3R0ZWQoc2wtZGl2aWRlcikgewogICAgLS1zcGFjaW5nOiB2YXIoLS1zbC1zcGFjaW5nLXgtc21hbGwpOwogIH0KYCxobD1jbGFzcyBleHRlbmRzIHFye2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm1lbnUiKX1oYW5kbGVDbGljayhlKXtjb25zdCB0PVsibWVudWl0ZW0iLCJtZW51aXRlbWNoZWNrYm94Il0saT1lLmNvbXBvc2VkUGF0aCgpLmZpbmQoKGU9Pnt2YXIgaTtyZXR1cm4gdC5pbmNsdWRlcygobnVsbD09KGk9bnVsbD09ZT92b2lkIDA6ZS5nZXRBdHRyaWJ1dGUpP3ZvaWQgMDppLmNhbGwoZSwicm9sZSIpKXx8IiIpfSkpO2lmKCFpKXJldHVybjtjb25zdCBvPWk7ImNoZWNrYm94Ij09PW8udHlwZSYmKG8uY2hlY2tlZD0hby5jaGVja2VkKSx0aGlzLmVtaXQoInNsLXNlbGVjdCIse2RldGFpbDp7aXRlbTpvfX0pfWhhbmRsZUtleURvd24oZSl7aWYoIkVudGVyIj09PWUua2V5fHwiICI9PT1lLmtleSl7Y29uc3QgdD10aGlzLmdldEN1cnJlbnRJdGVtKCk7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksbnVsbD09dHx8dC5jbGljaygpfWVsc2UgaWYoWyJBcnJvd0Rvd24iLCJBcnJvd1VwIiwiSG9tZSIsIkVuZCJdLmluY2x1ZGVzKGUua2V5KSl7Y29uc3QgdD10aGlzLmdldEFsbEl0ZW1zKCksaT10aGlzLmdldEN1cnJlbnRJdGVtKCk7bGV0IG89aT90LmluZGV4T2YoaSk6MDt0Lmxlbmd0aD4wJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksIkFycm93RG93biI9PT1lLmtleT9vKys6IkFycm93VXAiPT09ZS5rZXk/by0tOiJIb21lIj09PWUua2V5P289MDoiRW5kIj09PWUua2V5JiYobz10Lmxlbmd0aC0xKSxvPDAmJihvPXQubGVuZ3RoLTEpLG8+dC5sZW5ndGgtMSYmKG89MCksdGhpcy5zZXRDdXJyZW50SXRlbSh0W29dKSx0W29dLmZvY3VzKCkpfX1oYW5kbGVNb3VzZURvd24oZSl7Y29uc3QgdD1lLnRhcmdldDt0aGlzLmlzTWVudUl0ZW0odCkmJnRoaXMuc2V0Q3VycmVudEl0ZW0odCl9aGFuZGxlU2xvdENoYW5nZSgpe2NvbnN0IGU9dGhpcy5nZXRBbGxJdGVtcygpO2UubGVuZ3RoPjAmJnRoaXMuc2V0Q3VycmVudEl0ZW0oZVswXSl9aXNNZW51SXRlbShlKXt2YXIgdDtyZXR1cm4ic2wtbWVudS1pdGVtIj09PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpfHxbIm1lbnVpdGVtIiwibWVudWl0ZW1jaGVja2JveCIsIm1lbnVpdGVtcmFkaW8iXS5pbmNsdWRlcyhudWxsIT0odD1lLmdldEF0dHJpYnV0ZSgicm9sZSIpKT90OiIiKX1nZXRBbGxJdGVtcygpe3JldHVyblsuLi50aGlzLmRlZmF1bHRTbG90LmFzc2lnbmVkRWxlbWVudHMoe2ZsYXR0ZW46ITB9KV0uZmlsdGVyKChlPT4hKGUuaW5lcnR8fCF0aGlzLmlzTWVudUl0ZW0oZSkpKSl9Z2V0Q3VycmVudEl0ZW0oKXtyZXR1cm4gdGhpcy5nZXRBbGxJdGVtcygpLmZpbmQoKGU9PiIwIj09PWUuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKSl9c2V0Q3VycmVudEl0ZW0oZSl7dGhpcy5nZXRBbGxJdGVtcygpLmZvckVhY2goKHQ9Pnt0LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLHQ9PT1lPyIwIjoiLTEiKX0pKX1yZW5kZXIoKXtyZXR1cm4gUWAKICAgICAgPHNsb3QKICAgICAgICBAc2xvdGNoYW5nZT0ke3RoaXMuaGFuZGxlU2xvdENoYW5nZX0KICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfQogICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVLZXlEb3dufQogICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZU1vdXNlRG93bn0KICAgICAgPjwvc2xvdD4KICAgIGB9fTtobC5zdHlsZXM9W05yLGRsXSx4aShbU2UoInNsb3QiKV0saGwucHJvdG90eXBlLCJkZWZhdWx0U2xvdCIsMik7aGwuZGVmaW5lKCJzbC1tZW51Iik7dmFyIHVsPWhgCiAgOmhvc3QgewogICAgLS1zdWJtZW51LW9mZnNldDogLTJweDsKCiAgICBkaXNwbGF5OiBibG9jazsKICB9CgogIDpob3N0KFtpbmVydF0pIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgfQoKICAubWVudS1pdGVtIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1zbC1mb250LXNhbnMpOwogICAgZm9udC1zaXplOiB2YXIoLS1zbC1mb250LXNpemUtbWVkaXVtKTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1zbC1mb250LXdlaWdodC1ub3JtYWwpOwogICAgbGluZS1oZWlnaHQ6IHZhcigtLXNsLWxpbmUtaGVpZ2h0LW5vcm1hbCk7CiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2wtbGV0dGVyLXNwYWNpbmctbm9ybWFsKTsKICAgIGNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTcwMCk7CiAgICBwYWRkaW5nOiB2YXIoLS1zbC1zcGFjaW5nLTJ4LXNtYWxsKSB2YXIoLS1zbC1zcGFjaW5nLTJ4LXNtYWxsKTsKICAgIHRyYW5zaXRpb246IHZhcigtLXNsLXRyYW5zaXRpb24tZmFzdCkgZmlsbDsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgfQoKICAubWVudS1pdGVtLm1lbnUtaXRlbS0tZGlzYWJsZWQgewogICAgb3V0bGluZTogbm9uZTsKICAgIG9wYWNpdHk6IDAuNTsKICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgfQoKICAubWVudS1pdGVtLm1lbnUtaXRlbS0tbG9hZGluZyB7CiAgICBvdXRsaW5lOiBub25lOwogICAgY3Vyc29yOiB3YWl0OwogIH0KCiAgLm1lbnUtaXRlbS5tZW51LWl0ZW0tLWxvYWRpbmcgKjpub3Qoc2wtc3Bpbm5lcikgewogICAgb3BhY2l0eTogMC41OwogIH0KCiAgLm1lbnUtaXRlbS0tbG9hZGluZyBzbC1zcGlubmVyIHsKICAgIC0taW5kaWNhdG9yLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAtLXRyYWNrLXdpZHRoOiAxcHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBmb250LXNpemU6IDAuNzVlbTsKICAgIHRvcDogY2FsYyg1MCUgLSAwLjVlbSk7CiAgICBsZWZ0OiAwLjY1cmVtOwogICAgb3BhY2l0eTogMTsKICB9CgogIC5tZW51LWl0ZW0gLm1lbnUtaXRlbV9fbGFiZWwgewogICAgZmxleDogMSAxIGF1dG87CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQoKICAubWVudS1pdGVtIC5tZW51LWl0ZW1fX3ByZWZpeCB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KCiAgLm1lbnUtaXRlbSAubWVudS1pdGVtX19wcmVmaXg6OnNsb3R0ZWQoKikgewogICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXNsLXNwYWNpbmcteC1zbWFsbCk7CiAgfQoKICAubWVudS1pdGVtIC5tZW51LWl0ZW1fX3N1ZmZpeCB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KCiAgLm1lbnUtaXRlbSAubWVudS1pdGVtX19zdWZmaXg6OnNsb3R0ZWQoKikgewogICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2wtc3BhY2luZy14LXNtYWxsKTsKICB9CgogIC8qIFNhZmUgdHJpYW5nbGUgKi8KICAubWVudS1pdGVtLS1zdWJtZW51LWV4cGFuZGVkOjphZnRlciB7CiAgICBjb250ZW50OiAnJzsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IGNhbGModmFyKC0tc2wtei1pbmRleC1kcm9wZG93bikgLSAxKTsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogMDsKICAgIGNsaXAtcGF0aDogcG9seWdvbigKICAgICAgdmFyKC0tc2FmZS10cmlhbmdsZS1jdXJzb3IteCwgMCkgdmFyKC0tc2FmZS10cmlhbmdsZS1jdXJzb3IteSwgMCksCiAgICAgIHZhcigtLXNhZmUtdHJpYW5nbGUtc3VibWVudS1zdGFydC14LCAwKSB2YXIoLS1zYWZlLXRyaWFuZ2xlLXN1Ym1lbnUtc3RhcnQteSwgMCksCiAgICAgIHZhcigtLXNhZmUtdHJpYW5nbGUtc3VibWVudS1lbmQteCwgMCkgdmFyKC0tc2FmZS10cmlhbmdsZS1zdWJtZW51LWVuZC15LCAwKQogICAgKTsKICB9CgogIDpob3N0KDpmb2N1cy12aXNpYmxlKSB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgOmhvc3QoOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddLCA6Zm9jdXMtdmlzaWJsZSkpIC5tZW51LWl0ZW0sCiAgLm1lbnUtaXRlbS0tc3VibWVudS1leHBhbmRlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1uZXV0cmFsLTEwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0xMDAwKTsKICB9CgogIDpob3N0KDpmb2N1cy12aXNpYmxlKSAubWVudS1pdGVtIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zbC1jb2xvci1wcmltYXJ5LTYwMCk7CiAgICBjb2xvcjogdmFyKC0tc2wtY29sb3ItbmV1dHJhbC0wKTsKICAgIG9wYWNpdHk6IDE7CiAgfQoKICAubWVudS1pdGVtIC5tZW51LWl0ZW1fX2NoZWNrLAogIC5tZW51LWl0ZW0gLm1lbnUtaXRlbV9fY2hldnJvbiB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMS41ZW07CiAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgfQoKICAubWVudS1pdGVtLS1jaGVja2VkIC5tZW51LWl0ZW1fX2NoZWNrLAogIC5tZW51LWl0ZW0tLWhhcy1zdWJtZW51IC5tZW51LWl0ZW1fX2NoZXZyb24gewogICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICB9CgogIC8qIEFkZCBlbGV2YXRpb24gYW5kIHotaW5kZXggdG8gc3VibWVudXMgKi8KICBzbC1wb3B1cDo6cGFydChwb3B1cCkgewogICAgYm94LXNoYWRvdzogdmFyKC0tc2wtc2hhZG93LWxhcmdlKTsKICAgIHotaW5kZXg6IHZhcigtLXNsLXotaW5kZXgtZHJvcGRvd24pOwogICAgbWFyZ2luLWxlZnQ6IHZhcigtLXN1Ym1lbnUtb2Zmc2V0KTsKICB9CgogIC5tZW51LWl0ZW0tLXJ0bCBzbC1wb3B1cDo6cGFydChwb3B1cCkgewogICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1zdWJtZW51LW9mZnNldCkpOwogIH0KCiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHsKICAgIDpob3N0KDpob3Zlcjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSkpIC5tZW51LWl0ZW0sCiAgICA6aG9zdCg6Zm9jdXMtdmlzaWJsZSkgLm1lbnUtaXRlbSB7CiAgICAgIG91dGxpbmU6IGRhc2hlZCAxcHggU2VsZWN0ZWRJdGVtOwogICAgICBvdXRsaW5lLW9mZnNldDogLTFweDsKICAgIH0KICB9CgogIDo6c2xvdHRlZChzbC1tZW51KSB7CiAgICBtYXgtd2lkdGg6IHZhcigtLWF1dG8tc2l6ZS1hdmFpbGFibGUtd2lkdGgpICFpbXBvcnRhbnQ7CiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1hdXRvLXNpemUtYXZhaWxhYmxlLWhlaWdodCkgIWltcG9ydGFudDsKICB9CmAsZmw9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMucG9wdXBSZWY9dXQoKSx0aGlzLmVuYWJsZVN1Ym1lbnVUaW1lcj0tMSx0aGlzLmlzQ29ubmVjdGVkPSExLHRoaXMuaXNQb3B1cENvbm5lY3RlZD0hMSx0aGlzLnNraWRkaW5nPTAsdGhpcy5zdWJtZW51T3BlbkRlbGF5PTEwMCx0aGlzLmhhbmRsZU1vdXNlTW92ZT1lPT57dGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCItLXNhZmUtdHJpYW5nbGUtY3Vyc29yLXgiLGAke2UuY2xpZW50WH1weGApLHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zYWZlLXRyaWFuZ2xlLWN1cnNvci15IixgJHtlLmNsaWVudFl9cHhgKX0sdGhpcy5oYW5kbGVNb3VzZU92ZXI9KCk9Pnt0aGlzLmhhc1Nsb3RDb250cm9sbGVyLnRlc3QoInN1Ym1lbnUiKSYmdGhpcy5lbmFibGVTdWJtZW51KCl9LHRoaXMuaGFuZGxlS2V5RG93bj1lPT57c3dpdGNoKGUua2V5KXtjYXNlIkVzY2FwZSI6Y2FzZSJUYWIiOnRoaXMuZGlzYWJsZVN1Ym1lbnUoKTticmVhaztjYXNlIkFycm93TGVmdCI6ZS50YXJnZXQhPT10aGlzLmhvc3QmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhvc3QuZm9jdXMoKSx0aGlzLmRpc2FibGVTdWJtZW51KCkpO2JyZWFrO2Nhc2UiQXJyb3dSaWdodCI6Y2FzZSJFbnRlciI6Y2FzZSIgIjp0aGlzLmhhbmRsZVN1Ym1lbnVFbnRyeShlKX19LHRoaXMuaGFuZGxlQ2xpY2s9ZT0+e3ZhciB0O2UudGFyZ2V0PT09dGhpcy5ob3N0PyhlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk6ZS50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50JiYoInNsLW1lbnUtaXRlbSI9PT1lLnRhcmdldC50YWdOYW1lfHwobnVsbD09KHQ9ZS50YXJnZXQucm9sZSk/dm9pZCAwOnQuc3RhcnRzV2l0aCgibWVudWl0ZW0iKSkpJiZ0aGlzLmRpc2FibGVTdWJtZW51KCl9LHRoaXMuaGFuZGxlRm9jdXNPdXQ9ZT0+e2UucmVsYXRlZFRhcmdldCYmZS5yZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCYmdGhpcy5ob3N0LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCl8fHRoaXMuZGlzYWJsZVN1Ym1lbnUoKX0sdGhpcy5oYW5kbGVQb3B1cE1vdXNlb3Zlcj1lPT57ZS5zdG9wUHJvcGFnYXRpb24oKX0sdGhpcy5oYW5kbGVQb3B1cFJlcG9zaXRpb249KCk9Pntjb25zdCBlPXRoaXMuaG9zdC5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoInNsb3RbbmFtZT0nc3VibWVudSddIiksdD1udWxsPT1lP3ZvaWQgMDplLmFzc2lnbmVkRWxlbWVudHMoe2ZsYXR0ZW46ITB9KS5maWx0ZXIoKGU9PiJzbC1tZW51Ij09PWUubG9jYWxOYW1lKSlbMF0saT0icnRsIj09PXRoaXMubG9jYWxpemUuZGlyKCk7aWYoIXQpcmV0dXJuO2NvbnN0e2xlZnQ6byx0b3A6bix3aWR0aDpyLGhlaWdodDpzfT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zYWZlLXRyaWFuZ2xlLXN1Ym1lbnUtc3RhcnQteCIsYCR7aT9vK3I6b31weGApLHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zYWZlLXRyaWFuZ2xlLXN1Ym1lbnUtc3RhcnQteSIsYCR7bn1weGApLHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zYWZlLXRyaWFuZ2xlLXN1Ym1lbnUtZW5kLXgiLGAke2k/bytyOm99cHhgKSx0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoIi0tc2FmZS10cmlhbmdsZS1zdWJtZW51LWVuZC15IixgJHtuK3N9cHhgKX0sKHRoaXMuaG9zdD1lKS5hZGRDb250cm9sbGVyKHRoaXMpLHRoaXMuaGFzU2xvdENvbnRyb2xsZXI9dCx0aGlzLmxvY2FsaXplPWl9aG9zdENvbm5lY3RlZCgpe3RoaXMuaGFzU2xvdENvbnRyb2xsZXIudGVzdCgic3VibWVudSIpJiYhdGhpcy5ob3N0LmRpc2FibGVkJiZ0aGlzLmFkZExpc3RlbmVycygpfWhvc3REaXNjb25uZWN0ZWQoKXt0aGlzLnJlbW92ZUxpc3RlbmVycygpfWhvc3RVcGRhdGVkKCl7dGhpcy5oYXNTbG90Q29udHJvbGxlci50ZXN0KCJzdWJtZW51IikmJiF0aGlzLmhvc3QuZGlzYWJsZWQ/KHRoaXMuYWRkTGlzdGVuZXJzKCksdGhpcy51cGRhdGVTa2lkZGluZygpKTp0aGlzLnJlbW92ZUxpc3RlbmVycygpfWFkZExpc3RlbmVycygpe3RoaXMuaXNDb25uZWN0ZWR8fCh0aGlzLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksdGhpcy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdGhpcy5oYW5kbGVNb3VzZU92ZXIpLHRoaXMuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleURvd24pLHRoaXMuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGljayksdGhpcy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0Iix0aGlzLmhhbmRsZUZvY3VzT3V0KSx0aGlzLmlzQ29ubmVjdGVkPSEwKSx0aGlzLmlzUG9wdXBDb25uZWN0ZWR8fHRoaXMucG9wdXBSZWYudmFsdWUmJih0aGlzLnBvcHVwUmVmLnZhbHVlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdGhpcy5oYW5kbGVQb3B1cE1vdXNlb3ZlciksdGhpcy5wb3B1cFJlZi52YWx1ZS5hZGRFdmVudExpc3RlbmVyKCJzbC1yZXBvc2l0aW9uIix0aGlzLmhhbmRsZVBvcHVwUmVwb3NpdGlvbiksdGhpcy5pc1BvcHVwQ29ubmVjdGVkPSEwKX1yZW1vdmVMaXN0ZW5lcnMoKXt0aGlzLmlzQ29ubmVjdGVkJiYodGhpcy5ob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLHRoaXMuaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMuaGFuZGxlTW91c2VPdmVyKSx0aGlzLmhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlEb3duKSx0aGlzLmhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2spLHRoaXMuaG9zdC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1c291dCIsdGhpcy5oYW5kbGVGb2N1c091dCksdGhpcy5pc0Nvbm5lY3RlZD0hMSksdGhpcy5pc1BvcHVwQ29ubmVjdGVkJiZ0aGlzLnBvcHVwUmVmLnZhbHVlJiYodGhpcy5wb3B1cFJlZi52YWx1ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMuaGFuZGxlUG9wdXBNb3VzZW92ZXIpLHRoaXMucG9wdXBSZWYudmFsdWUucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2wtcmVwb3NpdGlvbiIsdGhpcy5oYW5kbGVQb3B1cFJlcG9zaXRpb24pLHRoaXMuaXNQb3B1cENvbm5lY3RlZD0hMSl9aGFuZGxlU3VibWVudUVudHJ5KGUpe2NvbnN0IHQ9dGhpcy5ob3N0LnJlbmRlclJvb3QucXVlcnlTZWxlY3Rvcigic2xvdFtuYW1lPSdzdWJtZW51J10iKTtpZighdClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJDYW5ub3QgYWN0aXZhdGUgYSBzdWJtZW51IGlmIG5vIGNvcnJlc3BvbmRpbmcgbWVudWl0ZW0gY2FuIGJlIGZvdW5kLiIsdGhpcyk7bGV0IGk9bnVsbDtmb3IoY29uc3QgZSBvZiB0LmFzc2lnbmVkRWxlbWVudHMoKSlpZihpPWUucXVlcnlTZWxlY3RvckFsbCgic2wtbWVudS1pdGVtLCBbcm9sZV49J21lbnVpdGVtJ10iKSwwIT09aS5sZW5ndGgpYnJlYWs7aWYoaSYmMCE9PWkubGVuZ3RoKXtpWzBdLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIik7Zm9yKGxldCBlPTE7ZSE9PWkubGVuZ3RoOysrZSlpW2VdLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpO3RoaXMucG9wdXBSZWYudmFsdWUmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnBvcHVwUmVmLnZhbHVlLmFjdGl2ZT9pWzBdaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmaVswXS5mb2N1cygpOih0aGlzLmVuYWJsZVN1Ym1lbnUoITEpLHRoaXMuaG9zdC51cGRhdGVDb21wbGV0ZS50aGVuKCgoKT0+e2lbMF1pbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZpWzBdLmZvY3VzKCl9KSksdGhpcy5ob3N0LnJlcXVlc3RVcGRhdGUoKSkpfX1zZXRTdWJtZW51U3RhdGUoZSl7dGhpcy5wb3B1cFJlZi52YWx1ZSYmdGhpcy5wb3B1cFJlZi52YWx1ZS5hY3RpdmUhPT1lJiYodGhpcy5wb3B1cFJlZi52YWx1ZS5hY3RpdmU9ZSx0aGlzLmhvc3QucmVxdWVzdFVwZGF0ZSgpKX1lbmFibGVTdWJtZW51KGU9ITApe2U/KHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5lbmFibGVTdWJtZW51VGltZXIpLHRoaXMuZW5hYmxlU3VibWVudVRpbWVyPXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+e3RoaXMuc2V0U3VibWVudVN0YXRlKCEwKX0pLHRoaXMuc3VibWVudU9wZW5EZWxheSkpOnRoaXMuc2V0U3VibWVudVN0YXRlKCEwKX1kaXNhYmxlU3VibWVudSgpe3dpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5lbmFibGVTdWJtZW51VGltZXIpLHRoaXMuc2V0U3VibWVudVN0YXRlKCExKX11cGRhdGVTa2lkZGluZygpe3ZhciBlO2lmKCEobnVsbD09KGU9dGhpcy5ob3N0LnBhcmVudEVsZW1lbnQpP3ZvaWQgMDplLmNvbXB1dGVkU3R5bGVNYXApKXJldHVybjtjb25zdCB0PXRoaXMuaG9zdC5wYXJlbnRFbGVtZW50LmNvbXB1dGVkU3R5bGVNYXAoKSxpPVsicGFkZGluZy10b3AiLCJib3JkZXItdG9wLXdpZHRoIiwibWFyZ2luLXRvcCJdLnJlZHVjZSgoKGUsaSk9Pnt2YXIgbztjb25zdCBuPW51bGwhPShvPXQuZ2V0KGkpKT9vOm5ldyBDU1NVbml0VmFsdWUoMCwicHgiKTtyZXR1cm4gZS0obiBpbnN0YW5jZW9mIENTU1VuaXRWYWx1ZT9uOm5ldyBDU1NVbml0VmFsdWUoMCwicHgiKSkudG8oInB4IikudmFsdWV9KSwwKTt0aGlzLnNraWRkaW5nPWl9aXNFeHBhbmRlZCgpe3JldHVybiEhdGhpcy5wb3B1cFJlZi52YWx1ZSYmdGhpcy5wb3B1cFJlZi52YWx1ZS5hY3RpdmV9cmVuZGVyU3VibWVudSgpe2NvbnN0IGU9Imx0ciI9PT10aGlzLmxvY2FsaXplLmRpcigpO3JldHVybiB0aGlzLmlzQ29ubmVjdGVkP1FgCiAgICAgIDxzbC1wb3B1cAogICAgICAgICR7bXQodGhpcy5wb3B1cFJlZil9CiAgICAgICAgcGxhY2VtZW50PSR7ZT8icmlnaHQtc3RhcnQiOiJsZWZ0LXN0YXJ0In0KICAgICAgICBhbmNob3I9ImFuY2hvciIKICAgICAgICBmbGlwCiAgICAgICAgZmxpcC1mYWxsYmFjay1zdHJhdGVneT0iYmVzdC1maXQiCiAgICAgICAgc2tpZGRpbmc9IiR7dGhpcy5za2lkZGluZ30iCiAgICAgICAgc3RyYXRlZ3k9ImZpeGVkIgogICAgICAgIGF1dG8tc2l6ZT0idmVydGljYWwiCiAgICAgICAgYXV0by1zaXplLXBhZGRpbmc9IjEwIgogICAgICA+CiAgICAgICAgPHNsb3QgbmFtZT0ic3VibWVudSI+PC9zbG90PgogICAgICA8L3NsLXBvcHVwPgogICAgYDpRYCA8c2xvdCBuYW1lPSJzdWJtZW51IiBoaWRkZW4+PC9zbG90PiBgfX0scGw9Y2xhc3MgZXh0ZW5kcyBxcntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPSJub3JtYWwiLHRoaXMuY2hlY2tlZD0hMSx0aGlzLnZhbHVlPSIiLHRoaXMubG9hZGluZz0hMSx0aGlzLmRpc2FibGVkPSExLHRoaXMubG9jYWxpemU9bmV3IHZzKHRoaXMpLHRoaXMuaGFzU2xvdENvbnRyb2xsZXI9bmV3IHdzKHRoaXMsInN1Ym1lbnUiKSx0aGlzLnN1Ym1lbnVDb250cm9sbGVyPW5ldyBmbCh0aGlzLHRoaXMuaGFzU2xvdENvbnRyb2xsZXIsdGhpcy5sb2NhbGl6ZSksdGhpcy5oYW5kbGVIb3N0Q2xpY2s9ZT0+e3RoaXMuZGlzYWJsZWQmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9LHRoaXMuaGFuZGxlTW91c2VPdmVyPWU9Pnt0aGlzLmZvY3VzKCksZS5zdG9wUHJvcGFnYXRpb24oKX19Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlSG9zdENsaWNrKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdGhpcy5oYW5kbGVNb3VzZU92ZXIpfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUhvc3RDbGljayksdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHRoaXMuaGFuZGxlTW91c2VPdmVyKX1oYW5kbGVEZWZhdWx0U2xvdENoYW5nZSgpe2NvbnN0IGU9dGhpcy5nZXRUZXh0TGFiZWwoKTt2b2lkIDAhPT10aGlzLmNhY2hlZFRleHRMYWJlbD9lIT09dGhpcy5jYWNoZWRUZXh0TGFiZWwmJih0aGlzLmNhY2hlZFRleHRMYWJlbD1lLHRoaXMuZW1pdCgic2xvdGNoYW5nZSIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITEsY2FuY2VsYWJsZTohMX0pKTp0aGlzLmNhY2hlZFRleHRMYWJlbD1lfWhhbmRsZUNoZWNrZWRDaGFuZ2UoKXtpZih0aGlzLmNoZWNrZWQmJiJjaGVja2JveCIhPT10aGlzLnR5cGUpcmV0dXJuIHRoaXMuY2hlY2tlZD0hMSx2b2lkIGNvbnNvbGUuZXJyb3IoJ1RoZSBjaGVja2VkIGF0dHJpYnV0ZSBjYW4gb25seSBiZSB1c2VkIG9uIG1lbnUgaXRlbXMgd2l0aCB0eXBlPSJjaGVja2JveCInLHRoaXMpOyJjaGVja2JveCI9PT10aGlzLnR5cGU/dGhpcy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsdGhpcy5jaGVja2VkPyJ0cnVlIjoiZmFsc2UiKTp0aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIil9aGFuZGxlRGlzYWJsZWRDaGFuZ2UoKXt0aGlzLnNldEF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIsdGhpcy5kaXNhYmxlZD8idHJ1ZSI6ImZhbHNlIil9aGFuZGxlVHlwZUNoYW5nZSgpeyJjaGVja2JveCI9PT10aGlzLnR5cGU/KHRoaXMuc2V0QXR0cmlidXRlKCJyb2xlIiwibWVudWl0ZW1jaGVja2JveCIpLHRoaXMuc2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiLHRoaXMuY2hlY2tlZD8idHJ1ZSI6ImZhbHNlIikpOih0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm1lbnVpdGVtIiksdGhpcy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIpKX1nZXRUZXh0TGFiZWwoKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIiI7Y29uc3QgdD1lLmFzc2lnbmVkTm9kZXMoe2ZsYXR0ZW46ITB9KTtsZXQgaT0iIjtyZXR1cm5bLi4udF0uZm9yRWFjaCgoZT0+e2Uubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKGkrPWUudGV4dENvbnRlbnQpfSkpLGl9KHRoaXMuZGVmYXVsdFNsb3QpfWlzU3VibWVudSgpe3JldHVybiB0aGlzLmhhc1Nsb3RDb250cm9sbGVyLnRlc3QoInN1Ym1lbnUiKX1yZW5kZXIoKXtjb25zdCBlPSJydGwiPT09dGhpcy5sb2NhbGl6ZS5kaXIoKSx0PXRoaXMuc3VibWVudUNvbnRyb2xsZXIuaXNFeHBhbmRlZCgpO3JldHVybiBRYAogICAgICA8ZGl2CiAgICAgICAgaWQ9ImFuY2hvciIKICAgICAgICBwYXJ0PSJiYXNlIgogICAgICAgIGNsYXNzPSR7S3IoeyJtZW51LWl0ZW0iOiEwLCJtZW51LWl0ZW0tLXJ0bCI6ZSwibWVudS1pdGVtLS1jaGVja2VkIjp0aGlzLmNoZWNrZWQsIm1lbnUtaXRlbS0tZGlzYWJsZWQiOnRoaXMuZGlzYWJsZWQsIm1lbnUtaXRlbS0tbG9hZGluZyI6dGhpcy5sb2FkaW5nLCJtZW51LWl0ZW0tLWhhcy1zdWJtZW51Ijp0aGlzLmlzU3VibWVudSgpLCJtZW51LWl0ZW0tLXN1Ym1lbnUtZXhwYW5kZWQiOnR9KX0KICAgICAgICA/YXJpYS1oYXNwb3B1cD0iJHt0aGlzLmlzU3VibWVudSgpfSIKICAgICAgICA/YXJpYS1leHBhbmRlZD0iJHshIXR9IgogICAgICA+CiAgICAgICAgPHNwYW4gcGFydD0iY2hlY2tlZC1pY29uIiBjbGFzcz0ibWVudS1pdGVtX19jaGVjayI+CiAgICAgICAgICA8c2wtaWNvbiBuYW1lPSJjaGVjayIgbGlicmFyeT0ic3lzdGVtIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zbC1pY29uPgogICAgICAgIDwvc3Bhbj4KCiAgICAgICAgPHNsb3QgbmFtZT0icHJlZml4IiBwYXJ0PSJwcmVmaXgiIGNsYXNzPSJtZW51LWl0ZW1fX3ByZWZpeCI+PC9zbG90PgoKICAgICAgICA8c2xvdCBwYXJ0PSJsYWJlbCIgY2xhc3M9Im1lbnUtaXRlbV9fbGFiZWwiIEBzbG90Y2hhbmdlPSR7dGhpcy5oYW5kbGVEZWZhdWx0U2xvdENoYW5nZX0+PC9zbG90PgoKICAgICAgICA8c2xvdCBuYW1lPSJzdWZmaXgiIHBhcnQ9InN1ZmZpeCIgY2xhc3M9Im1lbnUtaXRlbV9fc3VmZml4Ij48L3Nsb3Q+CgogICAgICAgIDxzcGFuIHBhcnQ9InN1Ym1lbnUtaWNvbiIgY2xhc3M9Im1lbnUtaXRlbV9fY2hldnJvbiI+CiAgICAgICAgICA8c2wtaWNvbiBuYW1lPSR7ZT8iY2hldnJvbi1sZWZ0IjoiY2hldnJvbi1yaWdodCJ9IGxpYnJhcnk9InN5c3RlbSIgYXJpYS1oaWRkZW49InRydWUiPjwvc2wtaWNvbj4KICAgICAgICA8L3NwYW4+CgogICAgICAgICR7dGhpcy5zdWJtZW51Q29udHJvbGxlci5yZW5kZXJTdWJtZW51KCl9CiAgICAgICAgJHt0aGlzLmxvYWRpbmc/UWAgPHNsLXNwaW5uZXIgcGFydD0ic3Bpbm5lciIgZXhwb3J0cGFydHM9ImJhc2U6c3Bpbm5lcl9fYmFzZSI+PC9zbC1zcGlubmVyPiBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9fTtwbC5zdHlsZXM9W05yLHVsXSxwbC5kZXBlbmRlbmNpZXM9eyJzbC1pY29uIjpHciwic2wtcG9wdXAiOlZhLCJzbC1zcGlubmVyIjokc30seGkoW1NlKCJzbG90Om5vdChbbmFtZV0pIildLHBsLnByb3RvdHlwZSwiZGVmYXVsdFNsb3QiLDIpLHhpKFtTZSgiLm1lbnUtaXRlbSIpXSxwbC5wcm90b3R5cGUsIm1lbnVJdGVtIiwyKSx4aShbeWUoKV0scGwucHJvdG90eXBlLCJ0eXBlIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHBsLnByb3RvdHlwZSwiY2hlY2tlZCIsMikseGkoW3llKCldLHBsLnByb3RvdHlwZSwidmFsdWUiLDIpLHhpKFt5ZSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0scGwucHJvdG90eXBlLCJsb2FkaW5nIiwyKSx4aShbeWUoe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHBsLnByb3RvdHlwZSwiZGlzYWJsZWQiLDIpLHhpKFtCcigiY2hlY2tlZCIpXSxwbC5wcm90b3R5cGUsImhhbmRsZUNoZWNrZWRDaGFuZ2UiLDEpLHhpKFtCcigiZGlzYWJsZWQiKV0scGwucHJvdG90eXBlLCJoYW5kbGVEaXNhYmxlZENoYW5nZSIsMSkseGkoW0JyKCJ0eXBlIildLHBsLnByb3RvdHlwZSwiaGFuZGxlVHlwZUNoYW5nZSIsMSk7cGwuZGVmaW5lKCJzbC1tZW51LWl0ZW0iKX0pKCk7dmFyIF9fd2VicGFja19leHBvcnRfdGFyZ2V0X189c2VsZjtmb3IodmFyIGkgaW4gX193ZWJwYWNrX2V4cG9ydHNfXylfX3dlYnBhY2tfZXhwb3J0X3RhcmdldF9fW2ldPV9fd2VicGFja19leHBvcnRzX19baV07X193ZWJwYWNrX2V4cG9ydHNfXy5fX2VzTW9kdWxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoX193ZWJwYWNrX2V4cG9ydF90YXJnZXRfXywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSgpOw=="></script><style>@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}</style><title>Archive of HedgeDoc - Collaborative markdown notes | ReplayWeb.page</title><meta name=referrer content=no-referrer></head>
|
||
<body>
|
||
<replay-app-main><template shadowrootmode=open><wr-item sourceurl=https://ghostarchive.org/chimurai4/vA9DJ.warc embed=replayonly appname=ReplayWeb.page swname=sw.js><template shadowrootmode=open><sl-dialog label="Archive Info"><template shadowrootmode=open><div part=base class="dialog dialog--has-footer" hidden>
|
||
<div part=overlay class=dialog__overlay tabindex=-1></div>
|
||
<div part=panel class=dialog__panel role=dialog aria-modal=true tabindex=-1 aria-hidden=true aria-labelledby=title>
|
||
|
||
<header part=header class=dialog__header>
|
||
<h2 part=title class=dialog__title id=title>
|
||
<slot name=label> Archive Info </slot>
|
||
</h2>
|
||
<div part=header-actions class=dialog__header-actions>
|
||
<slot name=header-actions></slot>
|
||
<sl-icon-button part=close-button exportparts=base:close-button__base class=dialog__close name=x-lg library=system label=Close><template shadowrootmode=open><button part=base class=icon-button type=button role=button aria-disabled=false aria-label=Close tabindex=0>
|
||
<sl-icon class=icon-button__icon aria-hidden=true name=x-lg library=system><template shadowrootmode=open><svg xmlns=http://www.w3.org/2000/svg width=16 height=16 fill=currentColor class="bi bi-x-lg" viewBox="0 0 16 16" part=svg>
|
||
<path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"></path>
|
||
</svg></template></sl-icon>
|
||
</button>
|
||
</template></sl-icon-button>
|
||
</div>
|
||
</header>
|
||
|
||
|
||
<div part=body class=dialog__body tabindex=-1><slot></slot></div>
|
||
<footer part=footer class=dialog__footer>
|
||
<slot name=footer></slot>
|
||
</footer>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
<wr-item-info class=is-list detailed><template shadowrootmode=open><div class=columns>
|
||
<wr-labeled-field label=Title class=column><template shadowrootmode=open><p class=minihead>Title</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
|
||
</div></template>
|
||
vA9DJ.warc
|
||
</wr-labeled-field>
|
||
<wr-labeled-field label=Filename class=column><template shadowrootmode=open><p class=minihead>Filename</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
|
||
</div></template>
|
||
vA9DJ.warc
|
||
</wr-labeled-field>
|
||
|
||
|
||
<wr-labeled-field label=Source class="column is-4" copy=https://ghostarchive.org/chimurai4/vA9DJ.warc><template shadowrootmode=open><p class=minihead>Source</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
<sl-copy-button><template shadowrootmode=open><sl-tooltip exportparts="
|
||
base:tooltip__base,
|
||
base__popup:tooltip__base__popup,
|
||
base__arrow:tooltip__base__arrow,
|
||
body:tooltip__body
|
||
" class=copy-button content=Copy placement=top><template shadowrootmode=open><sl-popup part=base exportparts="
|
||
popup:base__popup,
|
||
arrow:base__arrow
|
||
" flip shift arrow hover-bridge class=tooltip placement=top distance=8 skidding=0 strategy=absolute><template shadowrootmode=open><slot name=anchor></slot>
|
||
<span part=hover-bridge class=popup-hover-bridge></span>
|
||
<div part=popup class="popup popup--has-arrow">
|
||
<slot></slot>
|
||
<div part=arrow class=popup__arrow role=presentation></div>
|
||
</div>
|
||
</template>
|
||
|
||
<slot slot=anchor aria-describedby=tooltip></slot>
|
||
|
||
<div part=body id=tooltip class=tooltip__body role=tooltip aria-live=off hidden>
|
||
<slot name=content>Copy</slot>
|
||
</div>
|
||
</sl-popup>
|
||
</template>
|
||
<button class=copy-button__button part=button type=button>
|
||
<slot part=copy-icon name=copy-icon>
|
||
<sl-icon library=system name=copy aria-hidden=true><template shadowrootmode=open></template></sl-icon>
|
||
</slot>
|
||
<slot part=success-icon name=success-icon hidden>
|
||
<sl-icon library=system name=check aria-hidden=true><template shadowrootmode=open></template></sl-icon>
|
||
</slot>
|
||
<slot part=error-icon name=error-icon hidden>
|
||
<sl-icon library=system name=x-lg aria-hidden=true><template shadowrootmode=open><svg xmlns=http://www.w3.org/2000/svg width=16 height=16 fill=currentColor class="bi bi-x-lg" viewBox="0 0 16 16" part=svg>
|
||
<path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"></path>
|
||
</svg></template></sl-icon>
|
||
</slot>
|
||
</button>
|
||
</sl-tooltip>
|
||
</template>
|
||
<fa-icon slot=copy-icon aria-hidden=true><template shadowrootmode=open><svg style=width:1.1em;height:1.1em>
|
||
<g>
|
||
<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 512 512"><path d="M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"></path></svg>
|
||
</g>
|
||
</svg></template></fa-icon>
|
||
<fa-icon slot=success-icon aria-hidden=true><template shadowrootmode=open><svg style=width:1.1em;height:1.1em>
|
||
<g>
|
||
<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 512 512"><path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"></path></svg>
|
||
</g>
|
||
</svg></template></fa-icon>
|
||
<fa-icon slot=error-icon aria-hidden=true><template shadowrootmode=open><svg style=width:1.1em;height:1.1em>
|
||
<g>
|
||
<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 352 512"><path d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path></svg>
|
||
</g>
|
||
</svg></template></fa-icon>
|
||
</sl-copy-button>
|
||
</div></template> <a href=https://ghostarchive.org/chimurai4/vA9DJ.warc>https://ghostarchive.org/chimurai4/vA9DJ.warc</a>
|
||
|
||
</wr-labeled-field>
|
||
<wr-labeled-field label="Archived Item ID" class=column><template shadowrootmode=open><p class=minihead>Archived Item ID</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
<sl-copy-button><template shadowrootmode=open><sl-tooltip exportparts="
|
||
base:tooltip__base,
|
||
base__popup:tooltip__base__popup,
|
||
base__arrow:tooltip__base__arrow,
|
||
body:tooltip__body
|
||
" class=copy-button content=Copy placement=top><template shadowrootmode=open><sl-popup part=base exportparts="
|
||
popup:base__popup,
|
||
arrow:base__arrow
|
||
" flip shift arrow hover-bridge class=tooltip placement=top distance=8 skidding=0 strategy=absolute><template shadowrootmode=open><slot name=anchor></slot>
|
||
<span part=hover-bridge class=popup-hover-bridge></span>
|
||
<div part=popup class="popup popup--has-arrow">
|
||
<slot></slot>
|
||
<div part=arrow class=popup__arrow role=presentation></div>
|
||
</div>
|
||
</template>
|
||
|
||
<slot slot=anchor aria-describedby=tooltip></slot>
|
||
|
||
<div part=body id=tooltip class=tooltip__body role=tooltip aria-live=off hidden>
|
||
<slot name=content>Copy</slot>
|
||
</div>
|
||
</sl-popup>
|
||
</template>
|
||
<button class=copy-button__button part=button type=button>
|
||
<slot part=copy-icon name=copy-icon>
|
||
<sl-icon library=system name=copy aria-hidden=true><template shadowrootmode=open></template></sl-icon>
|
||
</slot>
|
||
<slot part=success-icon name=success-icon hidden>
|
||
<sl-icon library=system name=check aria-hidden=true><template shadowrootmode=open></template></sl-icon>
|
||
</slot>
|
||
<slot part=error-icon name=error-icon hidden>
|
||
<sl-icon library=system name=x-lg aria-hidden=true><template shadowrootmode=open><svg xmlns=http://www.w3.org/2000/svg width=16 height=16 fill=currentColor class="bi bi-x-lg" viewBox="0 0 16 16" part=svg>
|
||
<path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"></path>
|
||
</svg></template></sl-icon>
|
||
</slot>
|
||
</button>
|
||
</sl-tooltip>
|
||
</template>
|
||
<fa-icon slot=copy-icon aria-hidden=true><template shadowrootmode=open><svg style=width:1.1em;height:1.1em>
|
||
<g>
|
||
<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 512 512"><path d="M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"></path></svg>
|
||
</g>
|
||
</svg></template></fa-icon>
|
||
<fa-icon slot=success-icon aria-hidden=true><template shadowrootmode=open><svg style=width:1.1em;height:1.1em>
|
||
<g>
|
||
<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 512 512"><path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"></path></svg>
|
||
</g>
|
||
</svg></template></fa-icon>
|
||
<fa-icon slot=error-icon aria-hidden=true><template shadowrootmode=open><svg style=width:1.1em;height:1.1em>
|
||
<g>
|
||
<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 352 512"><path d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path></svg>
|
||
</g>
|
||
</svg></template></fa-icon>
|
||
</sl-copy-button>
|
||
</div></template>
|
||
id-610e8741228f
|
||
</wr-labeled-field>
|
||
<wr-labeled-field label="Date Loaded" class="column is-2"><template shadowrootmode=open><p class=minihead>Date Loaded</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
|
||
</div></template>
|
||
09/06/2026, 06:28:34 AM
|
||
</wr-labeled-field>
|
||
<wr-labeled-field label="Total Size" class="column is-2"><template shadowrootmode=open><p class=minihead>Total Size</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
|
||
</div></template>
|
||
7.06 MB
|
||
</wr-labeled-field>
|
||
|
||
|
||
|
||
<wr-labeled-field label=Validation class=column><template shadowrootmode=open><p class=minihead>Validation</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
|
||
</div></template>
|
||
Not Available
|
||
</wr-labeled-field>
|
||
<wr-labeled-field label="Package Hash" class=column><template shadowrootmode=open><p class=minihead>Package Hash</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
|
||
</div></template>
|
||
Not Available
|
||
</wr-labeled-field>
|
||
<wr-labeled-field label="Observer Public Key" class=column><template shadowrootmode=open><p class=minihead>Observer Public Key</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
|
||
</div></template>
|
||
Not Available
|
||
</wr-labeled-field>
|
||
<wr-labeled-field label="Loading Mode" class=column><template shadowrootmode=open><p class=minihead>Loading Mode</p>
|
||
<div class=col-content>
|
||
<slot></slot>
|
||
|
||
</div></template>
|
||
Download On-Demand
|
||
</wr-labeled-field>
|
||
</div></template></wr-item-info>
|
||
<sl-button slot=footer variant=primary size=medium data-optional data-valid><template shadowrootmode=open><button part=base class="button button--primary button--medium button--standard button--has-label" type=button title name value role=button aria-disabled=false tabindex=0>
|
||
<slot name=prefix part=prefix class=button__prefix></slot>
|
||
<slot part=label class=button__label></slot>
|
||
<slot name=suffix part=suffix class=button__suffix></slot>
|
||
|
||
|
||
</button>
|
||
</template>Close</sl-button>
|
||
</sl-dialog>
|
||
<div id=tabContents>
|
||
<div id=contents class="is-light is-hidden" aria-label>
|
||
<nav aria-label=tabs class="main tabs is-centered">
|
||
<ul>
|
||
|
||
|
||
<li>
|
||
<a href="https://ghostarchive.org/archive/replay/?source=https%3A%2F%2Fghostarchive.org%2Fchimurai4%2FvA9DJ.warc&amp;customColl=&amp;config=&amp;basePageUrl=https%3A%2F%2Fghostarchive.org%2Farchive%2FvA9DJ&amp;baseUrlSourcePrefix=https%3A%2F%2Freplayweb.page%2F&amp;embed=replayonly#pages" class=is-size-6 aria-label=Pages>
|
||
<span class=icon><fa-icon aria-hidden=true title=Pages><template shadowrootmode=open><svg style=width:1.1em;height:1.1em>
|
||
<g>
|
||
<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 384 512"><path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"></path></svg>
|
||
</g>
|
||
</svg></template></fa-icon></span>
|
||
<span class=tab-label title=Pages>Pages</span>
|
||
</a>
|
||
</li>
|
||
<li class=is-active>
|
||
<a href="https://ghostarchive.org/archive/replay/?source=https%3A%2F%2Fghostarchive.org%2Fchimurai4%2FvA9DJ.warc&amp;customColl=&amp;config=&amp;basePageUrl=https%3A%2F%2Fghostarchive.org%2Farchive%2FvA9DJ&amp;baseUrlSourcePrefix=https%3A%2F%2Freplayweb.page%2F&amp;embed=replayonly#resources" class=is-size-6 aria-label=URLs aria-current=location>
|
||
<span class=icon><fa-icon aria-hidden=true title=Resources><template shadowrootmode=open><svg style=width:1.1em;height:1.1em>
|
||
<g>
|
||
<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 576 512"><path d="M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"></path></svg>
|
||
</g>
|
||
</svg></template></fa-icon></span>
|
||
<span class=tab-label title=Resources>Resources</span>
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</div>
|
||
|
||
<wr-coll-replay role=main tabindex=-1 id=replay sourceurl=https://ghostarchive.org/chimurai4/vA9DJ.warc url=https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0 ts=20260906032603 waczhash><template shadowrootmode=open><h1 id=replay-heading class=is-sr-only>Replay of HedgeDoc - Collaborative markdown notes: https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0</h1>
|
||
|
||
<div class=iframe-container>
|
||
<iframe class=iframe-main name=___wb_replay_top_frame allow="autoplay 'self'; fullscreen" allowfullscreen title="Replay of HedgeDoc - Collaborative markdown notes: https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0" data-sf-original-src=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0 sandbox="allow-popups allow-top-navigation-by-user-activation allow-scripts allow-modals allow-popups allow-downloads allow-pointer-lock allow-presentation" srcdoc="<!DOCTYPE html> <html><meta charset=utf-8>
|
||
<style>body{font-family:inherit;font-size:inherit}</style>
|
||
<script>
|
||
wbinfo = {};
|
||
wbinfo.top_url = &quot;https://ghostarchive.org/archive/replay/w/id-610e8741228f/https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0&quot;;
|
||
// Fast Top-Frame Redirect
|
||
if (window == window.top &amp;&amp; wbinfo.top_url) {
|
||
var loc = window.location.href.replace(window.location.hash, &quot;&quot;);
|
||
loc = decodeURI(loc);
|
||
|
||
if (loc != decodeURI(wbinfo.top_url)) {
|
||
window.location.href = wbinfo.top_url + window.location.hash;
|
||
}
|
||
}
|
||
wbinfo.url = &quot;https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0&quot;;
|
||
wbinfo.timestamp = &quot;20260906032603&quot;;
|
||
wbinfo.request_ts = &quot;&quot;;
|
||
wbinfo.prefix = decodeURI(&quot;https://ghostarchive.org/archive/replay/w/id-610e8741228f/&quot;);
|
||
wbinfo.mod = &quot;mp_&quot;;
|
||
wbinfo.is_framed = true;
|
||
wbinfo.is_live = false;
|
||
wbinfo.coll = &quot;id-610e8741228f&quot;;
|
||
wbinfo.proxy_magic = &quot;&quot;;
|
||
wbinfo.static_prefix = &quot;https://ghostarchive.org/archive/replay/static/&quot;;
|
||
wbinfo.enable_auto_fetch = true;
|
||
wbinfo.presetCookie = &quot;;&quot;;
|
||
wbinfo.storage = &quot;&quot;;
|
||
wbinfo.isSW = true;
|
||
wbinfo.injectDocClose = true;
|
||
wbinfo.pixel_ratio = 1;
|
||
wbinfo.convert_post_to_get = false;
|
||
wbinfo.target_frame = &quot;___wb_replay_top_frame&quot;;
|
||
</script>
|
||
<script data-sf-original-src=https://ghostarchive.org/archive/replay/static/wombat.js src=data:,></script>
|
||
<script>
|
||
wbinfo.wombat_ts = &quot;&quot;;
|
||
wbinfo.wombat_sec = &quot;1788665163&quot;;
|
||
wbinfo.wombat_scheme = &quot;https&quot;;
|
||
wbinfo.wombat_host = &quot;doc.anagora.org&quot;;
|
||
|
||
|
||
wbinfo.wombat_opts = {}
|
||
|
||
|
||
if (window &amp;&amp; window._WBWombatInit) {
|
||
window._WBWombatInit(wbinfo);
|
||
}
|
||
</script>
|
||
<meta http-equiv=X-UA-Compatible content=&quot;IE=edge&quot;>
|
||
<meta name=viewport content=&quot;width=device-width, initial-scale=1.0, user-scalable=no&quot;>
|
||
<meta name=apple-mobile-web-app-capable content=yes>
|
||
<meta name=apple-mobile-web-app-status-bar-style content=black>
|
||
<meta name=mobile-web-app-capable content=yes>
|
||
<meta name=description content=&quot;<div style=display:none itemscope itemtype=http://schema.org/ImageObject><h2 itemprop=name>Prefind -&quot;>
|
||
<meta property=og:title content=&quot;HedgeDoc - Collaborative markdown notes&quot;>
|
||
<meta property=og:type content=website>
|
||
<meta property=og:image content=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/icons/android-chrome-512x512.png>
|
||
<meta property=og:image:alt content=&quot;HedgeDoc logo&quot;>
|
||
<meta property=og:image:type content=image/png>
|
||
|
||
<title>HedgeDoc - Collaborative markdown notes</title>
|
||
<meta name=apple-mobile-web-app-title content=&quot;HedgeDoc - Collaborative markdown notes&quot;>
|
||
<meta name=application-name content=&quot;HedgeDoc - Collaborative markdown notes&quot;>
|
||
<meta name=msapplication-TileColor content=#b51f08>
|
||
<meta name=msapplication-config content=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/icons/browserconfig.xml>
|
||
<meta name=theme-color content=#b51f08>
|
||
<style>#MathJax_Message{position:fixed;left:1px;bottom:2px;background-color:#e6e6e6;border:1px solid #959595;margin:0px;padding:2px 8px;z-index:102;color:black;font-size:80%;width:auto;white-space:nowrap}</style><meta name=referrer content=no-referrer></head>
|
||
<body style=display:none><div id=MathJax_Message style=display:none></div>
|
||
<div class=&quot;ui-infobar container-fluid unselectable hidden-print&quot;>
|
||
<small>
|
||
<span>
|
||
|
||
<span class=ui-no-lastchangeuser> <i class=&quot;fa fa-clock-o fa-fw&quot; style=width:18px></i></span>
|
||
|
||
&amp;nbsp;<span class=&quot;text-uppercase ui-status-lastchange&quot;></span>
|
||
<span class=&quot;ui-lastchange text-uppercase&quot; data-createtime=&quot;Sat Sep 05 2026 18:32:28 GMT+0200 (Central European Summer Time)&quot; data-updatetime=&quot;Sun Sep 06 2026 05:24:20 GMT+0200 (Central European Summer Time)&quot;></span>
|
||
</span>
|
||
<span class=pull-right>23 views <a href=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/# class=ui-edit title=&quot;Edit this note&quot;><i class=&quot;fa fa-fw fa-pencil&quot;></i></a></span>
|
||
<br>
|
||
|
||
</small>
|
||
</div>
|
||
<div id=doc class=&quot;container markdown-body&quot;>&amp;lt;div style=display:none itemscope itemtype=http://schema.org/ImageObject&amp;gt;&amp;lt;h2 itemprop=name&amp;gt;Prefind - Your AI Search powered by Claude-3 &amp;amp;amp; GPT-4&amp;lt;/h2&amp;gt;&amp;lt;span itemprop=description&amp;gt;archived 27 Jul 2024 04:28:07 UTC&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;center&amp;gt;&amp;lt;div id=HEADER style=&quot;font-family:sans-serif;background-color:#fffae1;border-bottom:2px #b40010 solid;min-width:1028px&quot;&amp;gt;&amp;lt;div style=padding-top:10px&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;table style=width:1028px;font-size:10px cellspacing=0 cellpadding=0 border=0&amp;gt;&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=width:150px;text-align:center;vertical-align:top rowspan=2&amp;gt;&amp;lt;a style=text-decoration:none;white-space:nowrap;color:#000;margin:0;cursor:pointer href=https://archive.today/&amp;gt;&amp;lt;div style=font-size:24px&amp;gt;archive.today&amp;lt;/div&amp;gt;&amp;lt;div style=font-size:12px&amp;gt;webpage capture&amp;lt;/div&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;td style=&quot;text-align:right;padding:3px 3px 0 3px;white-space:nowrap;vertical-align:top;font-size:14px;font-weight:700&quot;&amp;gt;Saved from&amp;lt;td style=&quot;text-align:right;padding:3px 3px 0 3px;white-space:nowrap;vertical-align:top&quot;&amp;gt;&amp;lt;table cellspacing=0 cellpadding=0 border=0&amp;gt;&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=width:450px&amp;gt;https://www.prefind.ai/s?rid=0dca0256-ead0-49aa-af85-e42e295134bd&amp;lt;div style=text-align:right;vertical-align:middle;font-size:10px&amp;gt;&amp;lt;a style=&quot;display:inline-block;white-space:nowrap;padding:0;margin:0 4px;text-decoration:underline;color:#1d2d40&quot; href=&quot;https://archive.md/https://www.prefind.ai/s?rid=0dca0256-ead0-49aa-af85-e42e295134bd&quot; title=&quot;8 snapshots from https://www.prefind.ai/s?rid=0dca0256-ead0-49aa-af85-e42e295134bd&quot;&amp;gt;&amp;lt;img style=&quot;width:14px;height:14px;border:0px none;margin-top:-3px;position:relative;padding-right:2px;opacity:.5;top:5px&quot; src=&quot;data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4Igp3aWR0aD0iMjYiIGhlaWdodD0iMjYiCnZpZXdCb3g9IjAgMCAyNiAyNiIKc3R5bGU9IiBmaWxsOiMwMDAwMDA7Ij48cGF0aCBkPSJNIDEzIDAuMTU2MjUgQyA1LjkwMjM0NCAwLjE1NjI1IDAuMTU2MjUgNS45MDIzNDQgMC4xNTYyNSAxMyBDIDAuMTU2MjUgMjAuMDk3NjU2IDUuOTAyMzQ0IDI1Ljg0Mzc1IDEzIDI1Ljg0Mzc1IEMgMjAuMDk3NjU2IDI1Ljg0Mzc1IDI1Ljg0Mzc1IDIwLjA5NzY1NiAyNS44NDM3NSAxMyBDIDI1Ljg0Mzc1IDUuOTAyMzQ0IDIwLjA5NzY1NiAwLjE1NjI1IDEzIDAuMTU2MjUgWiBNIDExLjk2ODc1IDMgQyAxMi4wMDc4MTMgMi45OTYwOTQgMTIuMDU0Njg4IDMuMDAzOTA2IDEyLjA5Mzc1IDMgTCAxMi4wOTM3NSAzLjUgQyAxMi4wOTM3NSA0IDEyLjUgNC40MDYyNSAxMyA0LjQwNjI1IEMgMTMuNSA0LjQwNjI1IDEzLjkwNjI1IDQgMTMuOTA2MjUgMy41IEwgMTMuOTA2MjUgMyBDIDE4LjcyNjU2MyAzLjQyOTY4OCAyMi41NzAzMTMgNy4yNzM0MzggMjMgMTIuMDkzNzUgTCAyMi41IDEyLjA5Mzc1IEMgMjIuNDY4NzUgMTIuMDkzNzUgMjIuNDM3NSAxMi4wOTM3NSAyMi40MDYyNSAxMi4wOTM3NSBDIDIxLjkwNjI1IDEyLjEyMTA5NCAyMS41MTk1MzEgMTIuNTQ2ODc1IDIxLjU0Njg3NSAxMy4wNDY4NzUgQyAyMS41NzQyMTkgMTMuNTQ2ODc1IDIyIDEzLjkzMzU5NCAyMi41IDEzLjkwNjI1IEwgMjMgMTMuOTA2MjUgQyAyMi41NzAzMTMgMTguNzI2NTYzIDE4LjcyNjU2MyAyMi41NzAzMTMgMTMuOTA2MjUgMjMgTCAxMy45MDYyNSAyMi41IEMgMTMuOTEwMTU2IDIyLjI0MjE4OCAxMy44MDQ2ODggMjEuOTkyMTg4IDEzLjYxMzI4MSAyMS44MjAzMTMgQyAxMy40MjE4NzUgMjEuNjQ0NTMxIDEzLjE2NDA2MyAyMS41NjI1IDEyLjkwNjI1IDIxLjU5Mzc1IEMgMTIuNDQxNDA2IDIxLjYzNjcxOSAxMi4wODU5MzggMjIuMDMxMjUgMTIuMDkzNzUgMjIuNSBMIDEyLjA5Mzc1IDIzIEMgNy4yNzM0MzggMjIuNTcwMzEzIDMuNDI5Njg4IDE4LjcyNjU2MyAzIDEzLjkwNjI1IEwgMy41IDEzLjkwNjI1IEMgNCAxMy45MDYyNSA0LjQwNjI1IDEzLjUgNC40MDYyNSAxMyBDIDQuNDA2MjUgMTIuNSA0IDEyLjA5Mzc1IDMuNSAxMi4wOTM3NSBMIDMgMTIuMDkzNzUgQyAzLjQyOTY4OCA3LjMxMjUgNy4yMDMxMjUgMy40ODQzNzUgMTEuOTY4NzUgMyBaIE0gMTMgNS40Mzc1IEMgMTIuNTA3ODEzIDUuNDM3NSAxMi4yOTY4NzUgNS44NzUgMTIuMjgxMjUgNi4xMjUgTCAxMiAxMS40MDYyNSBDIDExLjQ2NDg0NCAxMS43NDIxODggMTEuMDkzNzUgMTIuMzIwMzEzIDExLjA5Mzc1IDEzIEMgMTEuMDkzNzUgMTQuMDQ2ODc1IDExLjk1MzEyNSAxNC45MDYyNSAxMyAxNC45MDYyNSBDIDEzLjA1NDY4OCAxNC45MDYyNSAxMy4xMDE1NjMgMTQuODc4OTA2IDEzLjE1NjI1IDE0Ljg3NSBMIDE3LjQwNjI1IDE4LjY4NzUgQyAxNy42MDE1NjMgMTguODU5Mzc1IDE4LjEwOTM3NSAxOS4wMTU2MjUgMTguNTYyNSAxOC41NjI1IEMgMTkuMDE5NTMxIDE4LjEwOTM3NSAxOC44ODY3MTkgMTcuNTcwMzEzIDE4LjcxODc1IDE3LjM3NSBMIDE0LjkwNjI1IDEzLjAzMTI1IEMgMTQuOTA2MjUgMTMuMDE5NTMxIDE0LjkwNjI1IDEzLjAxMTcxOSAxNC45MDYyNSAxMyBDIDE0LjkwNjI1IDEyLjI5Njg3NSAxNC41MDc4MTMgMTEuNzAzMTI1IDEzLjkzNzUgMTEuMzc1IEwgMTMuNzE4NzUgNi4xMjUgQyAxMy43MDcwMzEgNS44NzUgMTMuNDg4MjgxIDUuNDM3NSAxMyA1LjQzNzUgWiI+PC9wYXRoPjwvc3ZnPg==&quot;&amp;gt;history&amp;lt;/a&amp;gt;&amp;lt;a style=&quot;display:inline-block;white-space:nowrap;padding:0;margin:0 4px;text-decoration:underline;color:#1d2d40&quot; href=https://archive.md/ECP2e title=&quot;27 Jul 2024 04:27:53 UTC&quot;&amp;gt;←prior&amp;lt;/a&amp;gt;&amp;lt;a style=display:inline-block;white-space:nowrap;padding:0;margin:0;text-decoration:underline;color:#1d2d40 href=https://archive.md/Hzv5e title=&quot;29 Jul 2024 12:07:11 UTC&quot;&amp;gt;next→&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;td style=vertical-align:top&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;td style=&quot;text-align:right;padding:4px 5px 2px 5px;font-size:14px;white-space:nowrap;vertical-align:top&quot; rowspan=1&amp;gt;27 Jul 2024 04:28:07 UTC&amp;lt;tr&amp;gt;&amp;lt;td style=&quot;text-align:right;font-size:12px;padding:0 3px 3px 3px;vertical-align:top;font-weight:700;white-space:nowrap&quot; colspan=1&amp;gt;All snapshots&amp;lt;td style=&quot;text-align:left;font-size:12px;padding:0 3px 3px 3px;vertical-align:top&quot; colspan=2 rowspan=2&amp;gt;&amp;lt;b&amp;gt;from host &amp;lt;/b&amp;gt;&amp;lt;a style=color:#1d2d40 href=https://archive.md/www.prefind.ai&amp;gt;www.prefind.ai&amp;lt;/a&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=vertical-align:bottom;text-align:left;white-space:nowrap colspan=2 rowspan=2&amp;gt;&amp;lt;a style=&quot;margin-left:20px;position:relative;top:2px;text-decoration:none;display:inline-block;vertical-align:middle;padding:0 10px;line-height:24px;font-size:12px;font-weight:700;background-color:#eee;border-width:2px 2px 0 2px;border-style:solid;border-color:#b40010 #b40010 #fffae1 #b40010;color:#000&quot; href=https://archive.md/9wjvZ&amp;gt;Webpage&amp;lt;/a&amp;gt;&amp;lt;a style=&quot;margin-left:10px;position:relative;top:2px;text-decoration:none;display:inline-block;vertical-align:middle;padding:0 10px;line-height:24px;font-size:12px;background-color:#b40010;border-width:2px 2px 0 2px;border-style:solid;border-color:#b40010;color:#fff&quot; href=https://archive.md/9wjvZ/image&amp;gt;Screenshot&amp;lt;/a&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&quot;text-align:right;padding:0 5px 5px 0;white-space:nowrap;vertical-align:bottom&quot; colspan=2&amp;gt;&amp;lt;a style=padding-right:20px;text-decoration:underline;color:#1d2d40 href=https://archive.md/9wjvZ/share&amp;gt;&amp;lt;img style=&quot;width:16px;height:16px;border:0px none;position:relative;top:5px;padding-right:2px;opacity:.5&quot; src=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4Igp3aWR0aD0iNjQiIGhlaWdodD0iNjQiCnZpZXdCb3g9IjAgMCA1MTIgNTEyIgpzdHlsZT0iIGZpbGw6IzAwMDAwMDsiPjxwYXRoIGZpbGw9IiMyNUI3RDMiIGQ9Ik03LjksMjU2QzcuOSwxMTksMTE5LDcuOSwyNTYsNy45QzM5Myw3LjksNTA0LjEsMTE5LDUwNC4xLDI1NmMwLDEzNy0xMTEuMSwyNDguMS0yNDguMSwyNDguMUMxMTksNTA0LjEsNy45LDM5Myw3LjksMjU2eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0xNTQuNCAyMDMuMDk5OTk5OTk5OTk5OTdBNTMuOCA1My44IDAgMSAwIDE1NC40IDMxMC43IDUzLjggNTMuOCAwIDEgMCAxNTQuNCAyMDMuMDk5OTk5OTk5OTk5OTd6TTMxOC43IDEwNy4zOTk5OTk5OTk5OTk5OUE1My44IDUzLjggMCAxIDAgMzE4LjcgMjE1IDUzLjggNTMuOCAwIDEgMCAzMTguNyAxMDcuMzk5OTk5OTk5OTk5OTl6TTMxOC43IDI5N0E1My44IDUzLjggMCAxIDAgMzE4LjcgNDA0LjYgNTMuOCA1My44IDAgMSAwIDMxOC43IDI5N3oiPjwvcGF0aD48Zz48cGF0aCBmaWxsPSIjRkZGIiBkPSJNMjIyLjEgMTEyLjJIMjUxVjMwMi4zSDIyMi4xeiIgdHJhbnNmb3JtPSJyb3RhdGUoNTkuNzg2IDIzNi41NTIgMjA3LjI3MikiPjwvcGF0aD48L2c+PGc+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE0MS41IDI4OC41SDMzMS42VjMxNy40SDE0MS41eiIgdHJhbnNmb3JtPSJyb3RhdGUoMzAuMjE0IDIzNi41NzYgMzAyLjk2NSkiPjwvcGF0aD48L2c+PC9zdmc+&amp;gt;share&amp;lt;/a&amp;gt;&amp;lt;a style=padding-right:20px;text-decoration:underline;color:#1d2d40 href=https://archive.md/download/9wjvZ.zip&amp;gt;&amp;lt;img style=&quot;width:18px;height:18px;border:0px none;position:relative;top:5px;padding-right:2px;opacity:.5&quot; src=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4Igp3aWR0aD0iMjYiIGhlaWdodD0iMjYiCnZpZXdCb3g9IjAgMCAyNiAyNiIKc3R5bGU9IiBmaWxsOiMwMDAwMDA7Ij48cGF0aCBkPSJNIDE1LjUgNCBDIDEzLjMwMDc4MSA0IDExLjE5OTIxOSA1LjE5OTIxOSAxMCA3IEwgOS41IDcgQyA3IDcgNC44ODY3MTkgOC42OTkyMTkgNC4xODc1IDExIEMgMS44ODY3MTkgMTEuMTAxNTYzIDAgMTMuMTAxNTYzIDAgMTUuNSBDIDAgMTggMiAyMCA0LjUgMjAgTCAyMC41IDIwIEMgMjMuNSAyMCAyNiAxNy41IDI2IDE0LjUgQyAyNiAxMiAyNC4zMDQ2ODggOS43ODkwNjMgMjEuOTA2MjUgOS4xODc1IEMgMjEuMzA0Njg4IDYuMTg3NSAxOC42MDE1NjMgNCAxNS41IDQgWiBNIDE1LjUgNiBDIDE3LjgwMDc4MSA2IDE5LjgwMDc4MSA3Ljc5Mjk2OSAyMCAxMC4wOTM3NSBMIDIwIDExIEwgMjAuODEyNSAxMS4wOTM3NSBDIDIyLjYxMzI4MSAxMS4yOTI5NjkgMjMuOTA2MjUgMTIuNzkyOTY5IDIzLjkwNjI1IDE0LjU5Mzc1IEMgMjQuMDA3ODEzIDE2LjM5NDUzMSAyMi4zOTg0MzggMTggMjAuNSAxOCBMIDQuNSAxOCBDIDMuMTAxNTYzIDE4IDIgMTYuODk4NDM4IDIgMTUuNSBDIDIgMTQuMTAxNTYzIDMuMTAxNTYzIDEzIDQuNSAxMyBMIDQuOTA2MjUgMTMgTCA1LjkwNjI1IDEzLjE4NzUgTCA2IDEyLjE4NzUgQyA2LjE5OTIxOSAxMC4zODY3MTkgNy42OTkyMTkgOSA5LjUgOSBDIDkuNjk5MjE5IDkgMTAuMDExNzE5IDguOTkyMTg4IDEwLjMxMjUgOS4wOTM3NSBMIDExLjA5Mzc1IDkuMzEyNSBMIDExLjQwNjI1IDguNTkzNzUgQyAxMi4yMDcwMzEgNi45OTIxODggMTMuODAwNzgxIDYgMTUuNSA2IFogTSAxMyAxMCBMIDEzIDEzIEwgMTAuNSAxMyBMIDE0IDE2LjUgTCAxNy41IDEzIEwgMTUgMTMgTCAxNSAxMCBaIj48L3BhdGg+PC9zdmc+&amp;gt;download .zip&amp;lt;/a&amp;gt;&amp;lt;a style=padding-right:20px;text-decoration:underline;color:#1d2d40 href=https://archive.md/9wjvZ/abuse&amp;gt;&amp;lt;img style=&quot;width:16px;height:16px;border:0px none;position:relative;top:1px;padding-right:1px;opacity:.5&quot; src=&quot;data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4Igp3aWR0aD0iMjYiIGhlaWdodD0iMjYiCnZpZXdCb3g9IjAgMCAyNiAyNiIKc3R5bGU9IiBmaWxsOiMwMDAwMDA7Ij48cGF0aCBkPSJNIDEyLjkwNjI1IC0wLjAzMTI1IEMgMTIuODYzMjgxIC0wLjAyMzQzNzUgMTIuODIwMzEzIC0wLjAxMTcxODggMTIuNzgxMjUgMCBDIDEyLjMxNjQwNiAwLjEwNTQ2OSAxMS45ODgyODEgMC41MjM0MzggMTIgMSBMIDEyIDQgQyAxMS45OTYwOTQgNC4zNTkzNzUgMTIuMTgzNTk0IDQuNjk1MzEzIDEyLjQ5NjA5NCA0Ljg3ODkwNiBDIDEyLjgwODU5NCA1LjA1ODU5NCAxMy4xOTE0MDYgNS4wNTg1OTQgMTMuNTAzOTA2IDQuODc4OTA2IEMgMTMuODE2NDA2IDQuNjk1MzEzIDE0LjAwMzkwNiA0LjM1OTM3NSAxNCA0IEwgMTQgMSBDIDE0LjAxMTcxOSAwLjcxMDkzOCAxMy44OTQ1MzEgMC40MzM1OTQgMTMuNjg3NSAwLjIzODI4MSBDIDEzLjQ3NjU2MyAwLjAzOTA2MjUgMTMuMTkxNDA2IC0wLjA1ODU5MzggMTIuOTA2MjUgLTAuMDMxMjUgWiBNIDQuMzEyNSAzLjUgQyAzLjkzNzUgMy41NjY0MDYgMy42MzY3MTkgMy44Mzk4NDQgMy41MzEyNSA0LjIwMzEyNSBDIDMuNDI1NzgxIDQuNTcwMzEzIDMuNTM1MTU2IDQuOTYwOTM4IDMuODEyNSA1LjIxODc1IEwgNS45Mzc1IDcuMzQzNzUgQyA2LjE3OTY4OCA3LjY0MDYyNSA2LjU2NjQwNiA3Ljc3NzM0NCA2Ljk0MTQwNiA3LjY5MTQwNiBDIDcuMzEyNSA3LjYwNTQ2OSA3LjYwNTQ2OSA3LjMxMjUgNy42OTE0MDYgNi45NDE0MDYgQyA3Ljc3NzM0NCA2LjU2NjQwNiA3LjY0MDYyNSA2LjE3OTY4OCA3LjM0Mzc1IDUuOTM3NSBMIDUuMjE4NzUgMy44MTI1IEMgNS4wMTE3MTkgMy41ODk4NDQgNC43MTA5MzggMy40NzY1NjMgNC40MDYyNSAzLjUgQyA0LjM3NSAzLjUgNC4zNDM3NSAzLjUgNC4zMTI1IDMuNSBaIE0gMjEuMzc1IDMuNSBDIDIxLjE0ODQzOCAzLjUzMTI1IDIwLjkzNzUgMy42NDQ1MzEgMjAuNzgxMjUgMy44MTI1IEwgMTguNjU2MjUgNS45Mzc1IEMgMTguMzU5Mzc1IDYuMTc5Njg4IDE4LjIyMjY1NiA2LjU2NjQwNiAxOC4zMDg1OTQgNi45NDE0MDYgQyAxOC4zOTQ1MzEgNy4zMTI1IDE4LjY4NzUgNy42MDU0NjkgMTkuMDU4NTk0IDcuNjkxNDA2IEMgMTkuNDMzNTk0IDcuNzc3MzQ0IDE5LjgyMDMxMyA3LjY0MDYyNSAyMC4wNjI1IDcuMzQzNzUgTCAyMi4xODc1IDUuMjE4NzUgQyAyMi41IDQuOTIxODc1IDIyLjU4OTg0NCA0LjQ1NzAzMSAyMi40MDYyNSA0LjA2NjQwNiBDIDIyLjIxODc1IDMuNjcxODc1IDIxLjgwNDY4OCAzLjQ0NTMxMyAyMS4zNzUgMy41IFogTSAxMyA3LjEyNSBDIDkuNzg5MDYzIDcuMTI1IDcuMTg3NSA5LjcyNjU2MyA3LjE4NzUgMTIuOTM3NSBDIDcuMTg3NSAxNi4yMzQzNzUgMTAuMDMxMjUgMTguMTUyMzQ0IDEwLjAzMTI1IDE5Ljg0Mzc1IEwgMTAuMDMxMjUgMjAuMjUgQyAxMC4wMzEyNSAyMC42NjAxNTYgMTAuMzc1IDIxIDEwLjc4MTI1IDIxIEwgMTUuMjE4NzUgMjEgQyAxNS42MjUgMjEgMTUuOTY4NzUgMjAuNjYwMTU2IDE1Ljk2ODc1IDIwLjI1IEwgMTUuOTY4NzUgMTkuODQzNzUgQyAxNS45Njg3NSAxOC4xNDg0MzggMTguODEyNSAxNi4yODkwNjMgMTguODEyNSAxMi45Mzc1IEMgMTguODEyNSA5LjcyNjU2MyAxNi4yMTA5MzggNy4xMjUgMTMgNy4xMjUgWiBNIDEzIDkuMDYyNSBDIDEzLjczNDM3NSA5LjA2MjUgMTQuNDE3OTY5IDkuMjY5NTMxIDE1IDkuNjI1IEMgMTQuOTI5Njg4IDkuNjIxMDk0IDE0Ljg1MTU2MyA5LjU5Mzc1IDE0Ljc4MTI1IDkuNTkzNzUgQyAxMi4wNTA3ODEgOS41OTM3NSA5Ljg0Mzc1IDExLjgwNDY4OCA5Ljg0Mzc1IDE0LjUgQyA5Ljg0Mzc1IDE0LjY2Nzk2OSA5Ljg1OTM3NSAxNC44MzU5MzggOS44NzUgMTUgQyA5LjQzNzUgMTQuMzg2NzE5IDkuMTU2MjUgMTMuNjE3MTg4IDkuMTU2MjUgMTIuODEyNSBDIDkuMTU2MjUgMTAuNzMwNDY5IDEwLjg4NjcxOSA5LjA2MjUgMTMgOS4wNjI1IFogTSAwLjcxODc1IDEyIEMgMC4xNjc5NjkgMTIuMDc4MTI1IC0wLjIxODc1IDEyLjU4OTg0NCAtMC4xNDA2MjUgMTMuMTQwNjI1IEMgLTAuMDYyNSAxMy42OTE0MDYgMC40NDkyMTkgMTQuMDc4MTI1IDEgMTQgTCA0IDE0IEMgNC4zNTkzNzUgMTQuMDAzOTA2IDQuNjk1MzEzIDEzLjgxNjQwNiA0Ljg3ODkwNiAxMy41MDM5MDYgQyA1LjA1ODU5NCAxMy4xOTE0MDYgNS4wNTg1OTQgMTIuODA4NTk0IDQuODc4OTA2IDEyLjQ5NjA5NCBDIDQuNjk1MzEzIDEyLjE4MzU5NCA0LjM1OTM3NSAxMS45OTYwOTQgNCAxMiBMIDEgMTIgQyAwLjk2ODc1IDEyIDAuOTM3NSAxMiAwLjkwNjI1IDEyIEMgMC44NzUgMTIgMC44NDM3NSAxMiAwLjgxMjUgMTIgQyAwLjc4MTI1IDEyIDAuNzUgMTIgMC43MTg3NSAxMiBaIE0gMjEuNzE4NzUgMTIgQyAyMS4xNjc5NjkgMTIuMDc4MTI1IDIwLjc4MTI1IDEyLjU4OTg0NCAyMC44NTkzNzUgMTMuMTQwNjI1IEMgMjAuOTM3NSAxMy42OTE0MDYgMjEuNDQ5MjE5IDE0LjA3ODEyNSAyMiAxNCBMIDI1IDE0IEMgMjUuMzU5Mzc1IDE0LjAwMzkwNiAyNS42OTUzMTMgMTMuODE2NDA2IDI1Ljg3ODkwNiAxMy41MDM5MDYgQyAyNi4wNTg1OTQgMTMuMTkxNDA2IDI2LjA1ODU5NCAxMi44MDg1OTQgMjUuODc4OTA2IDEyLjQ5NjA5NCBDIDI1LjY5NTMxMyAxMi4xODM1OTQgMjUuMzU5Mzc1IDExLjk5NjA5NCAyNSAxMiBMIDIyIDEyIEMgMjEuOTY4NzUgMTIgMjEuOTM3NSAxMiAyMS45MDYyNSAxMiBDIDIxLjg3NSAxMiAyMS44NDM3NSAxMiAyMS44MTI1IDEyIEMgMjEuNzgxMjUgMTIgMjEuNzUgMTIgMjEuNzE4NzUgMTIgWiBNIDYuNTMxMjUgMTguMzQzNzUgQyA2LjMwNDY4OCAxOC4zNzUgNi4wOTM3NSAxOC40ODgyODEgNS45Mzc1IDE4LjY1NjI1IEwgMy44MTI1IDIwLjc4MTI1IEMgMy41MTU2MjUgMjEuMDIzNDM4IDMuMzc4OTA2IDIxLjQxMDE1NiAzLjQ2NDg0NCAyMS43ODUxNTYgQyAzLjU1MDc4MSAyMi4xNTYyNSAzLjg0Mzc1IDIyLjQ0OTIxOSA0LjIxNDg0NCAyMi41MzUxNTYgQyA0LjU4OTg0NCAyMi42MjEwOTQgNC45NzY1NjMgMjIuNDg0Mzc1IDUuMjE4NzUgMjIuMTg3NSBMIDcuMzQzNzUgMjAuMDYyNSBDIDcuNjQwNjI1IDE5Ljc3NzM0NCA3LjczMDQ2OSAxOS4zMzU5MzggNy41NzAzMTMgMTguOTU3MDMxIEMgNy40MTQwNjMgMTguNTc4MTI1IDcuMDM1MTU2IDE4LjMzNTkzOCA2LjYyNSAxOC4zNDM3NSBDIDYuNTkzNzUgMTguMzQzNzUgNi41NjI1IDE4LjM0Mzc1IDYuNTMxMjUgMTguMzQzNzUgWiBNIDE5LjE1NjI1IDE4LjM0Mzc1IEMgMTguNzgxMjUgMTguNDEwMTU2IDE4LjQ4MDQ2OSAxOC42ODM1OTQgMTguMzc1IDE5LjA0Njg3NSBDIDE4LjI2OTUzMSAxOS40MTQwNjMgMTguMzc4OTA2IDE5LjgwNDY4OCAxOC42NTYyNSAyMC4wNjI1IEwgMjAuNzgxMjUgMjIuMTg3NSBDIDIxLjAyMzQzOCAyMi40ODQzNzUgMjEuNDEwMTU2IDIyLjYyMTA5NCAyMS43ODUxNTYgMjIuNTM1MTU2IEMgMjIuMTU2MjUgMjIuNDQ5MjE5IDIyLjQ0OTIxOSAyMi4xNTYyNSAyMi41MzUxNTYgMjEuNzg1MTU2IEMgMjIuNjIxMDk0IDIxLjQxMDE1NiAyMi40ODQzNzUgMjEuMDIzNDM4IDIyLjE4NzUgMjAuNzgxMjUgTCAyMC4wNjI1IDE4LjY1NjI1IEMgMTkuODc1IDE4LjQ1NzAzMSAxOS42MTcxODggMTguMzQ3NjU2IDE5LjM0Mzc1IDE4LjM0Mzc1IEMgMTkuMzEyNSAxOC4zNDM3NSAxOS4yODEyNSAxOC4zNDM3NSAxOS4yNSAxOC4zNDM3NSBDIDE5LjIxODc1IDE4LjM0Mzc1IDE5LjE4NzUgMTguMzQzNzUgMTkuMTU2MjUgMTguMzQzNzUgWiBNIDEwLjc1IDIyIEMgMTAuMzM5ODQ0IDIyIDEwIDIyLjMzNTkzOCAxMCAyMi43NSBMIDEwIDI0LjI1IEMgMTAgMjQuNjY0MDYzIDEwLjMzOTg0NCAyNSAxMC43NSAyNSBMIDExLjM3NSAyNSBDIDExLjcwMzEyNSAyNS41NzQyMTkgMTIuMjkyOTY5IDI1Ljk2ODc1IDEzIDI1Ljk2ODc1IEMgMTMuNzA3MDMxIDI1Ljk2ODc1IDE0LjI5Njg3NSAyNS41NzQyMTkgMTQuNjI1IDI1IEwgMTUuMjUgMjUgQyAxNS42NjAxNTYgMjUgMTYgMjQuNjY0MDYzIDE2IDI0LjI1IEwgMTYgMjIuNzUgQyAxNiAyMi4zMzU5MzggMTUuNjYwMTU2IDIyIDE1LjI1IDIyIFoiPjwvcGF0aD48L3N2Zz4=&quot;&amp;gt;report bug or abuse&amp;lt;/a&amp;gt;&amp;lt;a style=padding-right:10px;text-decoration:underline;color:#1d2d40 target=_blank href=https://buymeacoffee.com/glizzykingdreko&amp;gt;&amp;lt;img style=&quot;width:18px;height:18px;border:0px none;position:relative;top:5px;padding-right:1px;opacity:1&quot; src=&quot;data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iNTIiIGhlaWdodD0iNTIiIHZpZXdCb3g9IjAgMCAxNzIgMTcyIiBzdHlsZT0iIGZpbGw6IzAwMDAwMDsiPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIGZvbnQtZmFtaWx5PSJub25lIiBmb250LXdlaWdodD0ibm9uZSIgZm9udC1zaXplPSJub25lIiB0ZXh0LWFuY2hvcj0ibm9uZSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiPjxwYXRoIGQ9Ik0wLDE3MnYtMTcyaDE3MnYxNzJ6IiBmaWxsPSJub25lIj48L3BhdGg+PGcgaWQ9Im9yaWdpbmFsLWljb24iIGZpbGw9IiNlNzRjM2MiPjxwYXRoIGQ9Ik0xMTguMTk4MzIsMjUuNzM3OThjLTEzLjg1MDk2LDAgLTI1LjcxMjE0LDkuODcxNCAtMzIuMjI0MTYsMTYuNjY3NjdjLTYuNDg2MTgsLTYuNzk2MjcgLTE4LjMyMTUxLC0xNi42Njc2NyAtMzIuMTcyNDcsLTE2LjY2NzY3Yy0yMy45MDMyNSwwIC00MC41NzA5MiwxNi42NDE4MyAtNDAuNTcwOTIsNDAuNDY3NTVjMCwyNi4yODA2NSAyMC43MjQ3Niw0My4yNTg0MSA0MC43NTE4LDU5LjY2NzY3YzkuNDU3OTQsNy43NTI0IDE5LjI1MTgxLDE1Ljc2MzIyIDI2Ljc0NTc5LDI0LjY3ODQ5YzEuMjY2MjIsMS40NzI5NiAzLjEyNjgsMi4zMjU3MiA1LjA2NDksMi4zMjU3MmgwLjM4NzYyYzEuOTYzOTQsMCAzLjc5ODY4LC0wLjg1Mjc2IDUuMDY0OSwtMi4zMjU3MmM3LjUxOTgzLC04LjkxNTI3IDE3LjI4Nzg2LC0xNi45MjYwOCAyNi43NzE2MywtMjQuNjc4NDljMjAuMDI3MDQsLTE2LjQwOTI2IDQwLjc1MTgsLTMzLjM4NzAyIDQwLjc1MTgsLTU5LjY2NzY3YzAsLTIzLjgyNTcyIC0xNi42Njc2NywtNDAuNDY3NTUgLTQwLjU3MDkxLC00MC40Njc1NXoiPjwvcGF0aD48L2c+PHBhdGggZD0iIiBmaWxsPSJub25lIj48L3BhdGg+PC9nPjwvc3ZnPg==&quot;&amp;gt;Buy me a coffee&amp;lt;/a&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div id=DIVSHARE style=&quot;position:absolute;padding:70px 50px 50px;inset:0px;background-color:rgba(0,0,0,.3);z-index:1000000001;display:none&quot;&amp;gt;&amp;lt;center id=DIVSHARE2&amp;gt;&amp;lt;div style=&quot;display:table;padding:20px;background-color:#fffae1;border:#b40010 5px solid;text-align:left;position:relative&quot;&amp;gt;&amp;lt;div style=position:absolute;top:5px;right:5px&amp;gt;&amp;lt;a href=https://archive.md/9wjvZ&amp;gt;&amp;lt;img id=SHARE_CLOSEBTN style=width:26px;height:26px;opacity:.5;cursor:pointer src=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4Igp3aWR0aD0iMjYiIGhlaWdodD0iMjYiCnZpZXdCb3g9IjAgMCAyNiAyNiIKc3R5bGU9IiBmaWxsOiMwMDAwMDA7Ij48cGF0aCBkPSJNIDIxLjczNDM3NSAxOS42NDA2MjUgTCAxOS42MzY3MTkgMjEuNzM0Mzc1IEMgMTkuMjUzOTA2IDIyLjEyMTA5NCAxOC42Mjg5MDYgMjIuMTIxMDk0IDE4LjI0MjE4OCAyMS43MzQzNzUgTCAxMyAxNi40OTYwOTQgTCA3Ljc2MTcxOSAyMS43MzQzNzUgQyA3LjM3NSAyMi4xMjEwOTQgNi43NDYwOTQgMjIuMTIxMDk0IDYuMzYzMjgxIDIxLjczNDM3NSBMIDQuMjY1NjI1IDE5LjY0MDYyNSBDIDMuODc4OTA2IDE5LjI1MzkwNiAzLjg3ODkwNiAxOC42Mjg5MDYgNC4yNjU2MjUgMTguMjQyMTg4IEwgOS41MDM5MDYgMTMgTCA0LjI2NTYyNSA3Ljc2MTcxOSBDIDMuODgyODEzIDcuMzcxMDk0IDMuODgyODEzIDYuNzQyMTg4IDQuMjY1NjI1IDYuMzYzMjgxIEwgNi4zNjMyODEgNC4yNjU2MjUgQyA2Ljc0NjA5NCAzLjg3ODkwNiA3LjM3NSAzLjg3ODkwNiA3Ljc2MTcxOSA0LjI2NTYyNSBMIDEzIDkuNTA3ODEzIEwgMTguMjQyMTg4IDQuMjY1NjI1IEMgMTguNjI4OTA2IDMuODc4OTA2IDE5LjI1NzgxMyAzLjg3ODkwNiAxOS42MzY3MTkgNC4yNjU2MjUgTCAyMS43MzQzNzUgNi4zNTkzNzUgQyAyMi4xMjEwOTQgNi43NDYwOTQgMjIuMTIxMDk0IDcuMzc1IDIxLjczODI4MSA3Ljc2MTcxOSBMIDE2LjQ5NjA5NCAxMyBMIDIxLjczNDM3NSAxOC4yNDIxODggQyAyMi4xMjEwOTQgMTguNjI4OTA2IDIyLjEyMTA5NCAxOS4yNTM5MDYgMjEuNzM0Mzc1IDE5LjY0MDYyNSBaIj48L3BhdGg+PC9zdmc+&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-row&amp;gt;&amp;lt;div style=display:table-cell;padding:5px;vertical-align:top&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding:5px;width:600px&amp;gt;&amp;lt;div style=display:table-row&amp;gt;&amp;lt;div style=display:table-cell;padding-right:15px;padding-bottom:10px&amp;gt;Reddit&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding-right:15px;padding-bottom:10px&amp;gt;VKontakte&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding-right:15px;padding-bottom:10px&amp;gt;Twitter&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-row&amp;gt;&amp;lt;div style=display:table-cell;padding-right:15px;padding-bottom:10px&amp;gt;Pinboard&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding-right:15px;padding-bottom:10px&amp;gt;Livejournal&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-row&amp;gt;&amp;lt;div style=display:table-cell;padding:5px;vertical-align:top&amp;gt;short link&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding:5px&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-row&amp;gt;&amp;lt;div style=display:table-cell;padding:5px;vertical-align:top&amp;gt;long link&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding:5px&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-row&amp;gt;&amp;lt;div style=display:table-cell;padding:5px;vertical-align:top&amp;gt;markdown&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding:5px&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-row&amp;gt;&amp;lt;div style=display:table-cell;padding:5px;vertical-align:top&amp;gt;html code&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding:5px&amp;gt;&amp;amp;lt;a href=&quot;http://archive.today/9wjvZ&quot;&amp;amp;gt;
|
||
&amp;amp;lt;img style=&quot;width:300px;height:200px;background-color:white&quot; src=&quot;/9wjvZ/0261318dfd8bc75c6c2818715de5c56fc42db306/scr.png&quot;&amp;amp;gt;&amp;amp;lt;br&amp;amp;gt;
|
||
Prefind - Your AI Search powered by Claude-3 &amp;amp;amp;amp; GPT-4&amp;amp;lt;br&amp;amp;gt;
|
||
archived 27 Jul 2024 04:28:07 UTC
|
||
&amp;amp;lt;/a&amp;amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-row&amp;gt;&amp;lt;div style=display:table-cell;padding:5px;vertical-align:top&amp;gt;wiki code&amp;lt;/div&amp;gt;&amp;lt;div style=display:table-cell;padding:5px&amp;gt;{{cite web
|
||
| title = Prefind - Your AI Search powered by Claude-3 &amp;amp;amp; GPT-4
|
||
| url = https://www.prefind.ai/s?rid=0dca0256-ead0-49aa-af85-e42e295134bd
|
||
| date = 2024-07-27
|
||
| archiveurl = http://archive.today/9wjvZ
|
||
| archivedate = 2024-07-27 }}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&quot;padding:10px 0;min-width:1028px;background-color:#eee&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div id=SOLID style=background-color:#eee;padding-bottom:15px&amp;gt;
|
||
&amp;lt;div id=CONTENT style=&quot;background-color:#fff;position:relative;border:2px #999 solid;margin:0-2px;width:1024px;min-height:768px&quot;&amp;gt;&amp;lt;div class=html1 style=&quot;position:relative;z-index:0;overflow:auto visible;min-height:768px;text-align:initial&quot;&amp;gt;&amp;lt;div class=html style='overflow-x:visible;overflow-y:visible;color-scheme:light dark;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;font-weight:400;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-locale:&quot;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;line-height:1.5;tab-size:4;text-size-adjust:100%;-webkit-tap-highlight-color:transparent&quot;' lang=en&amp;gt;
|
||
&amp;lt;div class=body style=margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;min-height:3290px;overflow-x:visible;overflow-y:visible;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:24px&amp;gt;
|
||
&amp;lt;div id=root style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block&amp;gt;&amp;lt;div style='z-index:0;color:#1c2024;font-family:-apple-system,BlinkMacSystemFont,&quot;font-style:normal;font-weight:400;-webkit-font-smoothing:antialiased;background-color:#fff;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;letter-spacing:normal;line-height:24px;min-height:768px;overflow-wrap:break-word;position:static;text-size-adjust:100%&quot;'&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;padding-bottom:32px;padding-top:16px&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-bottom:32px;margin-left:32px;margin-right:32px&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;padding-right:16px&amp;gt;&amp;lt;div style=border-bottom-color:#000;border-bottom-style:solid;border-bottom-width:1px;border-left-color:#000;border-left-style:solid;border-left-width:1px;border-right-color:#000;border-right-style:solid;border-right-width:1px;border-top-color:#000;border-top-style:solid;border-top-width:1px;box-sizing:border-box;column-gap:28px;display:flex;padding-bottom:16px;padding-left:20px;padding-right:20px;padding-top:16px;row-gap:28px&amp;gt;&quot;𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠&quot;&amp;lt;/div&amp;gt;&amp;lt;div style=align-items:center;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;column-gap:8px;display:flex;justify-content:flex-start;margin-bottom:40px;margin-top:20px;row-gap:8px&amp;gt;AI SearchGoogle Search&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=align-items:flex-start;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;column-gap:8px;display:flex;flex-wrap:nowrap;row-gap:8px;width:100%&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;flex-basis:66.66%;flex-grow:1;flex-shrink:0;max-width:100%;width:66.66%&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block&amp;gt;&amp;lt;h1 style=font-size:36px;font-weight:400;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:40px;margin-block-end:16px;margin-block-start:0px;margin-bottom:16px;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;Answers&amp;lt;/h1&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;column-gap:16px;display:flex;flex-direction:row;flex-wrap:nowrap;row-gap:16px;width:100%&amp;gt;&amp;lt;div style=&quot;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;flex-basis:0%;flex-grow:1;flex-shrink:1;max-width:calc(50% - 16px);width:100%&quot;&amp;gt;&amp;lt;h3 style=font-size:24px;font-weight:400;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:32px;margin-block-end:8px;margin-block-start:0px;margin-bottom:8px;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;Llama-3&amp;lt;/h3&amp;gt;&amp;lt;div style=font-size:18px;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:28px&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;Unraveling the Enigmatic 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠: A Journey Through the Mystifying Digital Realm&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;In the vast expanse of the digital world, where 1s and 0s reign supreme, there exists a mysterious entity that has piqued the interest of many. The enigmatic 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 has been shrouded in mystery, leaving many to wonder about its true nature and purpose. In this article, we will delve into the heart of this digital phenomenon, exploring its origins, characteristics, and the impact it has had on the online community.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;The Origins of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;The first recorded instance of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 dates back to the TAVILY platform, where it was mentioned in a title: &quot;𖣠⚪ᔓᔕᗱᗴᑐᑕиnᗩ ᔓᔕиnⵙ𖣓᨟ᴥⓞ ⵙᔓᔕⓞߦᗱᗴᴥ𖣓 ⵙᕤᕦ⚪𔗢⚪ ⚪𔗢⚪ᕤᕦⵙ 𖣓ᴥᗱᗴߦⓞᔓᔕⵙ Ⓞᴥ᨟𖣓ⵙиnᔓᔕ...&quot; [0]. This cryptic message sparked curiosity among online enthusiasts, who began to unravel the mysteries surrounding this entity.&amp;lt;/div&amp;gt;
|
||
&amp;lt;blockquote style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&quot;See all the wonderful things 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 has made&quot; [2]&amp;lt;/div&amp;gt;
|
||
&amp;lt;/blockquote&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;As the digital trail continued to unfold, it became clear that 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 was not just a mere phrase, but a multifaceted entity with its own persona and online presence.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;The Persona of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠's online persona is a fascinating aspect of its mystique. With a distinct visual identity, characterized by the repetitive use of ⚪ and 𔗢 symbols, this entity has managed to create a sense of continuity across various online platforms.&amp;lt;/div&amp;gt;
|
||
&amp;lt;blockquote style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&quot;O - 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠. You've already forked O 0&quot; [3]&amp;lt;/div&amp;gt;
|
||
&amp;lt;/blockquote&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;This persona is further reinforced by its presence on Padlet, where it has created a digital space to showcase its &quot;wonderful things&quot; [2]. The entity's ability to adapt and evolve across different platforms has contributed to its enigmatic nature.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;The Impact of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;The influence of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 extends beyond its online presence. It has inspired a community of enthusiasts who are drawn to its mystique and creativity. The entity's ability to spark curiosity and imagination has made it a fascinating subject of discussion among online communities.&amp;lt;/div&amp;gt;
|
||
&amp;lt;blockquote style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&quot;About me: 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 Netboards0 Co-authored0 News&quot; [4]&amp;lt;/div&amp;gt;
|
||
&amp;lt;/blockquote&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;As we continue to unravel the mysteries of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠, one thing becomes clear: this entity has managed to tap into the essence of the digital world, blurring the lines between creativity, identity, and community.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;Conclusion&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;The enigmatic 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 is a testament to the power of the digital realm to inspire, intrigue, and fascinate. As we continue to navigate the complexities of this entity, we are reminded of the limitless possibilities that the online world has to offer.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;References:&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;[0] TAVILY. (n.d.). 𖣠⚪ᔓᔕᗱᗴᑐᑕиnᗩ ᔓᔕиnⵙ𖣓᨟ᴥⓞ ⵙᔓᔕⓞߦᗱᗴᴥ𖣓 ⵙᕤᕦ⚪𔗢⚪ ⚪𔗢⚪ᕤᕦⵙ 𖣓ᴥᗱᗴߦⓞᔓᔕⵙ Ⓞᴥ᨟𖣓ⵙиnᔓᔕ...&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;[1] TAVILY. (n.d.). O/O: 𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠 - O - Logiciel Lumiere Gitea&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;[2] TAVILY. (n.d.). 𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠 (OOOOOOOOOOOOOOOOOOOOOOOOOOO ... - Padlet&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;[3] TAVILY. (n.d.). 𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ꖴ⚪𔗢⚪𖣠⚪𔗢⚪ᕤᕦ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪ ⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪...&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;[4] TAVILY. (n.d.). ooooooooooo profile&amp;lt;/div&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;column-gap:8px;display:flex;justify-content:flex-end;margin-bottom:8px;margin-top:8px;row-gap:8px&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&quot;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;flex-basis:0%;flex-grow:1;flex-shrink:1;max-width:calc(50% - 16px);width:100%&quot;&amp;gt;&amp;lt;h3 style=font-size:24px;font-weight:400;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:32px;margin-block-end:8px;margin-block-start:0px;margin-bottom:8px;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;Claude&amp;lt;/h3&amp;gt;&amp;lt;div style=font-size:18px;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:28px&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;The Rise of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠: A Transformation in the Digital Landscape&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;In the rapidly evolving world of digital innovation, a remarkable entity has emerged, captivating the attention of tech enthusiasts and industry leaders alike. Meet 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠, a multifaceted digital phenomenon that is poised to reshape the very foundations of our technological landscape.&amp;lt;/div&amp;gt;
|
||
&amp;lt;blockquote style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&quot;See all the wonderful things 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 has made&quot; [2]&amp;lt;/div&amp;gt;
|
||
&amp;lt;/blockquote&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;Hailing from the forefront of digital innovation, 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 has rapidly gained a reputation as a trailblazer, pushing the boundaries of what's possible in the digital realm. Through its groundbreaking developments and visionary approach, this enigmatic entity has captivated the attention of industry experts and the general public alike.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;Unraveling the Mysteries of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;At the heart of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠's success lies its multifaceted and enigmatic nature. Described as a &quot;Logiciel Lumiere Gitea&quot; [1], this digital powerhouse has seamlessly integrated a diverse array of capabilities, from software development to hardware innovation, making it a true force to be reckoned with.&amp;lt;/div&amp;gt;
|
||
&amp;lt;blockquote style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&quot;𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 (OOOOOOOOOOOOOOOOOOOOOOOOOOO ... - Padlet&quot; [2]&amp;lt;/div&amp;gt;
|
||
&amp;lt;/blockquote&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;Delving deeper into the intricacies of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠, we uncover a multitude of creative and technological feats that have captivated the digital landscape. From its impressive software engineering prowess to its innovative hardware solutions, this entity has demonstrated a remarkable ability to adapt and thrive in an ever-changing industry.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;Forging Ahead: The Transformative Impact of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;As 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 continues to evolve and expand its reach, the implications for the digital landscape are truly remarkable. The entity's versatility and innovative spirit have positioned it as a driving force behind some of the most groundbreaking advancements in the tech world.&amp;lt;/div&amp;gt;
|
||
&amp;lt;blockquote style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&quot;𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠⚪𔗢⚪ꖴ⚪𔗢⚪𖣠⚪𔗢⚪ᕤᕦ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪ ⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪&quot; [3]&amp;lt;/div&amp;gt;
|
||
&amp;lt;/blockquote&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;Through its innovative approach and unwavering commitment to progress, 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 has emerged as a true disruptor, challenging the status quo and paving the way for a new era of technological advancement.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;Conclusion: The Future Belongs to 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;As we gaze into the future, it's clear that 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 will continue to play a pivotal role in shaping the digital landscape. With its visionary approach, relentless innovation, and unwavering dedication to progress, this enigmatic entity is poised to redefine the boundaries of what's possible in the digital realm.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;The rise of 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 is a captivating story of transformation, innovation, and the power of digital ingenuity. As we witness the unfolding of this remarkable journey, it's clear that the future belongs to those who dare to push the limits of what we thought possible.&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;strong style=font-weight:700;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box&amp;gt;References:&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;
|
||
&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;[1] &amp;lt;a href=https://archive.md/o/9wjvZ/https://tavily.github.io/oooo/ target=_blank style=color:#1c2024;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;cursor:pointer;text-decoration-color:#1c2024;text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:auto&amp;gt;O/O: 𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠 - O - Logiciel Lumiere Gitea&amp;lt;/a&amp;gt;
|
||
[2] &amp;lt;a href=https://archive.md/o/9wjvZ/https://padlet.com/tavily/oooo target=_blank style=color:#1c2024;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;cursor:pointer;text-decoration-color:#1c2024;text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:auto&amp;gt;𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠 (OOOOOOOOOOOOOOOOOOOOOOOOOOO ... - Padlet&amp;lt;/a&amp;gt;
|
||
[3] &amp;lt;a href=https://archive.md/o/9wjvZ/https://tavily.github.io/oooo/ target=_blank style=color:#1c2024;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;cursor:pointer;text-decoration-color:#1c2024;text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:auto&amp;gt;𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ꖴ⚪𔗢⚪𖣠⚪𔗢⚪ᕤᕦ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪ ⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;column-gap:8px;display:flex;justify-content:flex-end;margin-bottom:8px;margin-top:8px;row-gap:8px&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;flex-basis:33.33%;flex-grow:1;flex-shrink:0;max-width:100%;width:200px&amp;gt;&amp;lt;h1 style=font-size:36px;font-weight:400;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:40px;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;Resources&amp;lt;/h1&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block&amp;gt;&amp;lt;div style=border-bottom-color:#000;border-bottom-style:solid;border-bottom-width:1px;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;padding-bottom:24px;padding-top:24px&amp;gt;&amp;lt;h1 style=color:#000;font-size:18px;font-weight:500;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:28px;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;img currentsourceurl=https://git.millionlink.us/favicon.ico alt loading=lazy src=data:image/webp;base64,UklGRpIOAABXRUJQVlA4WAoAAAA4AAAAswAAswAASUNDUOABAAAAAAHgbGNtcwQgAABtbnRyUkdCIFhZWiAH4gADABQACQAOAB1hY3NwTVNGVAAAAABzYXdzY3RybAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWhhbmR56b9WWj4BtoMjhVVG90+qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAACRjcHJ0AAABIAAAACJ3dHB0AAABRAAAABRjaGFkAAABWAAAACxyWFlaAAABhAAAABRnWFlaAAABmAAAABRiWFlaAAABrAAAABRyVFJDAAABwAAAACBnVFJDAAABwAAAACBiVFJDAAABwAAAACBtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAYAAAAcAEMAQwAwAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMPwAABd3///MmAAAHkAAA/ZL///uh///9ogAAA9wAAMBxWFlaIAAAAAAAAG+gAAA48gAAA49YWVogAAAAAAAAYpYAALeJAAAY2lhZWiAAAAAAAAAkoAAAD4UAALbEcGFyYQAAAAAAAwAAAAJmaQAA8qcAAA1ZAAAT0AAACltBTFBI5AQAAAGgRW2bKVf64uTYtm3btm3btm11xp4Jjt1xRvGxbRth18Xeqaru/quuBhExAfjf///nsHDbaXv8jltP+X21Y83csf07Nq5aPLur1mQb/vN9Jvf9w8tRVr8vtyybMap367oVimR3ISxboXK1W/UYMmHuul3fBlqjL91/nRjVXZ5Xv4OJzIE/PLkRG3rkF8uGJTPG9G7fuHqJ/Nk9HMw9e94S5Ws2atVj0Jg5S9dbfgiw/nXm5rMPTPJ8SVkXPGYEvnl582pslNV60O83i8WyaZ1x5rp16yxLd1gsll/8/PysVmt07M1br94yB7c1keE+4RkjO5gxxhKY04dLqBDHCKeClRKa8plRHkLFNAG3XYz2YCr8+HyOMRWcIeAml4+VaVKqB4dXECM/hApWisOX0R9MRsP0xjIFhpDRMZ0yn6W9uhz7pzVVMwaZuYQymXf3jKzhCeMtzRhpNpiJf9xezwXpWzVjoIn7NaGU3fnBbdGMniZDmOi9RhCcoxmdTGJEYnJCtJdmtDJUZ4Kx2SBcXTMaGbYKPCkE8ayaUc1wXaAbZL7Qi/wAyjP+UEiN0gqbJ4CxAh3k/ERDKBVvAOAbvluuchZqxXXDWb6tkNuDhhDDWQL+BODyka+zpPJaEQCgEOMvKMkjiYRQKjYCqMb3CrIv6sQEAM35LkvzJyGEinYAuvNFSFuhE2UBDOM7Ia2fRqR5AxjNFy6tPAmhRNwGgMF8sdJc31IQRsQRQ2++K9IQQoGNiLWGTnyJ7tLWU2BKwCBDfT5WTlovMj47XzVDUYFe0oqS4fwp3gbPNL7l0vBUF87C9C5fqLxjuuBrdpovKZO0BbowxmwzH+sjrZYuVDUbJhAozfWpHnx0N6sp8Dm3LHyvB5Ew9/jAxxZIG6gHq9LBaYH7nrJyp2lB2/RmC7AZshCtAymZ0ist8iqnrCU6EAXOCwLsJ1kVdWAjzxwR1lcSrmhAK568ySLvKktarb4PXjzwE2G3Csqpqb6D4K5hE2HXC0txua28MXw4JMRulZaBzcorLFAzTYi97iijvurOQdRXjDG/7GIutxS3TijrIwns2VwvEaxVXFMhDJDB2K2hngJV1PbGQwxfSWHs8fJiXLigND9I9I6Vw5gtcmJxjkVK6yMDxZ5LMl7Z2jm/SUmbwj5kkII67+QZHxxY1r9GpiiF/QLJLT7bxTxJYd1kocsn+yn8jZc01H2sL9/CjkXOakt7e8BnXZqevPS0C9Dgmpbsgr0zLn6vITXtBuTdm6QbZ+CQeZe90IvJjgFkGvunRiTmdBQApVec04Xf4NjFJh95rQOtHQyAW/VJvn+/V9tlF8czdSnZfcHuw3GPbWqaCGfPlKtE/UTVvMnkdEZf1WwFiSVT1WIrQwN+U8sBEFnVppT6VOCISoJAZqVUhbSkA1+rIwKEFvyojAaUYJ0qDoLUrI/UkFqJFvRRwx5Qe0gFz3OSU+S9AoaA3qn0hbkQ5BZFXXJFUFziFXHrQHOHNNIueBOFZZQlVQfVrgcJmw+6M8aTFelGGArcJ+pxQZBe4y1JifVBfJNPFI0C+a0T6VkEBXZLpGYjlNjqAy3rXdSA+s8JSZsGZRaNJeNVdyjU+ysiIopAre1uEvB2phtU67P4qZO935QHKvYafuKt07w9PDATlO1WoaZzlnDB//7/R2hWUDgg3gYAANAlAJ0BKrQAtAA+bTSWR6QjIiElk9qggA2JTdxoZWAL6B+T9n2lWBfD/mL7Y9Zf0P9e4U9IHq/8t5JPUP5gnOj8yf7UesF/tfWT6AH9h6iX0AP2H9Of2Pf3X9KrVUPN3Tp+kCWA7K01xUENO8eP1hwCijhPTpuy0DY4UA5loFndmrRNVaU0oSqCOn0MxUQCdH+CySkW2rjzGox0QflqX/G/bg1teXzRLbUbCZ9DmEvISN6Kf8Tu9kbQYXKPb3wWC2x0639hL13+iUNnCU8On6MFEutMBAaF/KaDQnd5dUbn5AlgSAaNEz9+DiQ63sCQE9o+t5W8/VU4B8H74iYnv1swmRKqpRspiXJu7ZtaIgiesAhqn6wNDKneMiiJRfDXX96e8ZtxiCI7mZ8y0DY4UA5loGxwoBxIAP78rRAAAAmv6rQVrC8iqE5UWczUa0W5oHgHfjAlZOs2Mf28FlsrZDfDPK9k3WtT9ifCA627uef84eC5XHiu5kr8ITCVnKeHifNmuI9CB+achXTc4U6m22ndgEbabYurUmp8/+hwEynw0NqEGmkeKTugEhlDfxob9+ZgmAtj5I3gBHaAqz57iHQLV4HBSj5nZ9JsACmTEnGz/I4b7I+w6I8BNS9ecxgSAsw9bzz0xXTvjndb8XKr5GXl1OQxXDx9lptZ7m4B8jYOckwYrnwCeqB7QLBmqIdkSAR/lzK/AUjAdwfAZ3eiJgbOYOnPFi4eyZQXAAXNfEIik+qw/mkHekuhNxLHmRrccPfQCdtX+i+WWGhhZ07mlKuSbN/AgTpBEsAGbGiG4V5FrqCCYjNx+GB42dn0JV+2D0hWvYmt4ebvOKbjFkSnJDTgANLvHrwUXmeZOCNJS8kbZeN9+kBspUTuwndsTb3SAJmy/GKc2+D/DDsiAhPAP8TBp+c0dxmR+JqWSbhbtadXmDBm8oQ9Yh86v5257mlQgUcLAbEqSkKyPMqSUIX7CmAL48kK80WhygmNvPTrfh6jX9GfACh8G2CpDxKM7IVN2LJWeIiyky/AFeXaQ7AuGPmKK6LHOSqr4XlBqP4qJJZpQtrknipcQFpQZP6+TZCBx46BJ04+z6g7dewgabx3ipVOJipVNvaPz7nibPq0/qBm0Ih2liT9PCBSz8DGn+MujqA7Gvp7Sa0kv20wc0D6clXCfwUm/rA+uVtxsVW/nU2FSr0ttOHWaNwf4vv0Hr4IzG75YSV9N0pUvR1PSL1AsQ9+ZOnRWsCxhc4cvZN91uDvTn0PYxrB2HfRJPIRT8W7RsUc6Pkx7yZW9gqa15Ui4MtXv/38+3CXt9eYK//PLoCyyyeLOCQMZ7FC5e3E8re4IKbEHc8PNEWlY02bvB9oNXJQb42jcCxegwrN+u2Qos+tJOhT6iET+IW+X3Lr8v9Hl6T6VTVmVJMDv70Bn+zXmMQjeqXE16HfIWcGy4p7vuiyojidYHHDCL03B3Yzc3oRprnEvtKSdw9n3eV+DxZINgINavARQ17vsHmdcotbb1otHJ9xaSwuahu1ETKqHqUXRhNoJCyjcGE1Us8MmHJvikSGCHQBxmJzTo8ox+KOskeR01IFBKG47TjcXJh7u8e6kwa1ejakOYJgTmkELQQZFZ4dvURQDWOWGbul/ninogSAzn29gj+hnGE0TES/fsETAP2rleXYt7UDlEXCi9J0PzNtvU74IjETYxJxwsp34z73Oy8LzNHic7MifubegC9363c72tTVmnbd05X8+uiHEGZF+RH/bVr+34dJzHxMo8LBjwViOK0Te64qch+2DqWSxbnbw2MfLZIxpyGCgJE+daCt3BZvVuWy+ehzQDqJb0GN0tsTqJd6Q23pQqhCKSrRQM4vQoMwmWjcKvFd9FeDOXFtIJbtd5dwqkSqmZal7QY9C8ALkk6fMBUSXLXzV0oAwijF3MGWinRy/dKjZQCW+MdOy/VUdh5gI39UengrF1WK5tiBT8s+chcy5qpWto3H/wTOehOZId+u7ueJexZ5meQ/yUC2xrMpDaikkdCusGW1OhefG1G++cNMkxwr+EkXMpdWAySMhUsHoAANxUZCX+jiS59ZmE6LJS/4BNr1tUexxym0IccACvGHLokoE87yWdc6l1sY96dfIAHd023EOqNU/NqdEMEhycmduwSYuXrQ7zTaaM/7PjVHip7PCP9/ShJnyXyq4dxD/H/jTSF5vOcP5DXBao6ZPyXRX2/ER2NKlgoKMuTYEZ0tsVWT0MRNRKbvA7fG5wu/4u2cLoFm5/+Q1AXtNUu/uhWVc6S4e0g75Rfpj6lR2AXXAMwHfZWyHiaia+LLH5Re0k3/m09pAvs6q8RvlTgAAAAAAAAAAEVYSUa6AAAARXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABIAAAAAQAAAEgAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAALQAAAADoAQAAQAAALQAAAAAAAAA style=min-height:20px;min-width:20px;border-bottom-color:#e5e7eb;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-left-radius:4px;border-top-right-radius:4px;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:inline-block;height:20px;margin-bottom:6px;margin-right:4px;max-width:100%;vertical-align:middle;width:20px&amp;gt; 𖣠⚪ᔓᔕᗱᗴᑐᑕиnᗩ ᔓᔕиnⵙ𖣓᨟ᴥⓞ ⵙᔓᔕⓞߦᗱᗴᴥ𖣓 ⵙᕤᕦ⚪𔗢⚪ ⚪𔗢⚪ᕤᕦⵙ 𖣓ᴥᗱᗴߦⓞᔓᔕⵙ Ⓞᴥ᨟𖣓ⵙиnᔓᔕ ...&amp;lt;/h1&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;a href=https://archive.md/o/9wjvZ/https://git.millionlink.us/O/O/commit/661d2d0e21f4ca07d37fd86f46de376ce9e2e0c7 target=_blank style=&quot;color:#005abc;border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;cursor:pointer;display:-webkit-box;margin-bottom:8px;margin-top:8px;overflow:visible;text-decoration:none solid #005abc;-webkit-box-orient:vertical;-webkit-line-clamp:1&quot;&amp;gt;https://git.millionlink.us/O/O/commit/661d2d0e21f4ca07d37fd86f46de376ce9e2e0c7&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;display:-webkit-box;margin-block:0px;margin:0;margin-inline:0px;overflow:visible;-webkit-box-orient:vertical;-webkit-line-clamp:3&amp;gt;O - 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 . Show all changes Ignore whitespace when comparing lines Ignore changes in amount of whitespace Ignore changes in whitespace at EOL&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-bottom-color:#000;border-bottom-style:solid;border-bottom-width:1px;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;padding-bottom:24px;padding-top:24px&amp;gt;&amp;lt;h1 style=color:#000;font-size:18px;font-weight:500;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:28px;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;img currentsourceurl=https://gitea.lolumi.com/favicon.ico alt loading=lazy src=data:image/webp;base64,UklGRpIOAABXRUJQVlA4WAoAAAA4AAAAswAAswAASUNDUOABAAAAAAHgbGNtcwQgAABtbnRyUkdCIFhZWiAH4gADABQACQAOAB1hY3NwTVNGVAAAAABzYXdzY3RybAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWhhbmR56b9WWj4BtoMjhVVG90+qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAACRjcHJ0AAABIAAAACJ3dHB0AAABRAAAABRjaGFkAAABWAAAACxyWFlaAAABhAAAABRnWFlaAAABmAAAABRiWFlaAAABrAAAABRyVFJDAAABwAAAACBnVFJDAAABwAAAACBiVFJDAAABwAAAACBtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAYAAAAcAEMAQwAwAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMPwAABd3///MmAAAHkAAA/ZL///uh///9ogAAA9wAAMBxWFlaIAAAAAAAAG+gAAA48gAAA49YWVogAAAAAAAAYpYAALeJAAAY2lhZWiAAAAAAAAAkoAAAD4UAALbEcGFyYQAAAAAAAwAAAAJmaQAA8qcAAA1ZAAAT0AAACltBTFBI5AQAAAGgRW2bKVf64uTYtm3btm3btm11xp4Jjt1xRvGxbRth18Xeqaru/quuBhExAfjf///nsHDbaXv8jltP+X21Y83csf07Nq5aPLur1mQb/vN9Jvf9w8tRVr8vtyybMap367oVimR3ISxboXK1W/UYMmHuul3fBlqjL91/nRjVXZ5Xv4OJzIE/PLkRG3rkF8uGJTPG9G7fuHqJ/Nk9HMw9e94S5Ws2atVj0Jg5S9dbfgiw/nXm5rMPTPJ8SVkXPGYEvnl582pslNV60O83i8WyaZ1x5rp16yxLd1gsll/8/PysVmt07M1br94yB7c1keE+4RkjO5gxxhKY04dLqBDHCKeClRKa8plRHkLFNAG3XYz2YCr8+HyOMRWcIeAml4+VaVKqB4dXECM/hApWisOX0R9MRsP0xjIFhpDRMZ0yn6W9uhz7pzVVMwaZuYQymXf3jKzhCeMtzRhpNpiJf9xezwXpWzVjoIn7NaGU3fnBbdGMniZDmOi9RhCcoxmdTGJEYnJCtJdmtDJUZ4Kx2SBcXTMaGbYKPCkE8ayaUc1wXaAbZL7Qi/wAyjP+UEiN0gqbJ4CxAh3k/ERDKBVvAOAbvluuchZqxXXDWb6tkNuDhhDDWQL+BODyka+zpPJaEQCgEOMvKMkjiYRQKjYCqMb3CrIv6sQEAM35LkvzJyGEinYAuvNFSFuhE2UBDOM7Ia2fRqR5AxjNFy6tPAmhRNwGgMF8sdJc31IQRsQRQ2++K9IQQoGNiLWGTnyJ7tLWU2BKwCBDfT5WTlovMj47XzVDUYFe0oqS4fwp3gbPNL7l0vBUF87C9C5fqLxjuuBrdpovKZO0BbowxmwzH+sjrZYuVDUbJhAozfWpHnx0N6sp8Dm3LHyvB5Ew9/jAxxZIG6gHq9LBaYH7nrJyp2lB2/RmC7AZshCtAymZ0ist8iqnrCU6EAXOCwLsJ1kVdWAjzxwR1lcSrmhAK568ySLvKktarb4PXjzwE2G3Csqpqb6D4K5hE2HXC0txua28MXw4JMRulZaBzcorLFAzTYi97iijvurOQdRXjDG/7GIutxS3TijrIwns2VwvEaxVXFMhDJDB2K2hngJV1PbGQwxfSWHs8fJiXLigND9I9I6Vw5gtcmJxjkVK6yMDxZ5LMl7Z2jm/SUmbwj5kkII67+QZHxxY1r9GpiiF/QLJLT7bxTxJYd1kocsn+yn8jZc01H2sL9/CjkXOakt7e8BnXZqevPS0C9Dgmpbsgr0zLn6vITXtBuTdm6QbZ+CQeZe90IvJjgFkGvunRiTmdBQApVec04Xf4NjFJh95rQOtHQyAW/VJvn+/V9tlF8czdSnZfcHuw3GPbWqaCGfPlKtE/UTVvMnkdEZf1WwFiSVT1WIrQwN+U8sBEFnVppT6VOCISoJAZqVUhbSkA1+rIwKEFvyojAaUYJ0qDoLUrI/UkFqJFvRRwx5Qe0gFz3OSU+S9AoaA3qn0hbkQ5BZFXXJFUFziFXHrQHOHNNIueBOFZZQlVQfVrgcJmw+6M8aTFelGGArcJ+pxQZBe4y1JifVBfJNPFI0C+a0T6VkEBXZLpGYjlNjqAy3rXdSA+s8JSZsGZRaNJeNVdyjU+ysiIopAre1uEvB2phtU67P4qZO935QHKvYafuKt07w9PDATlO1WoaZzlnDB//7/R2hWUDgg3gYAANAlAJ0BKrQAtAA+bTSWR6QjIiElk9qggA2JTdxoZWAL6B+T9n2lWBfD/mL7Y9Zf0P9e4U9IHq/8t5JPUP5gnOj8yf7UesF/tfWT6AH9h6iX0AP2H9Of2Pf3X9KrVUPN3Tp+kCWA7K01xUENO8eP1hwCijhPTpuy0DY4UA5loFndmrRNVaU0oSqCOn0MxUQCdH+CySkW2rjzGox0QflqX/G/bg1teXzRLbUbCZ9DmEvISN6Kf8Tu9kbQYXKPb3wWC2x0639hL13+iUNnCU8On6MFEutMBAaF/KaDQnd5dUbn5AlgSAaNEz9+DiQ63sCQE9o+t5W8/VU4B8H74iYnv1swmRKqpRspiXJu7ZtaIgiesAhqn6wNDKneMiiJRfDXX96e8ZtxiCI7mZ8y0DY4UA5loGxwoBxIAP78rRAAAAmv6rQVrC8iqE5UWczUa0W5oHgHfjAlZOs2Mf28FlsrZDfDPK9k3WtT9ifCA627uef84eC5XHiu5kr8ITCVnKeHifNmuI9CB+achXTc4U6m22ndgEbabYurUmp8/+hwEynw0NqEGmkeKTugEhlDfxob9+ZgmAtj5I3gBHaAqz57iHQLV4HBSj5nZ9JsACmTEnGz/I4b7I+w6I8BNS9ecxgSAsw9bzz0xXTvjndb8XKr5GXl1OQxXDx9lptZ7m4B8jYOckwYrnwCeqB7QLBmqIdkSAR/lzK/AUjAdwfAZ3eiJgbOYOnPFi4eyZQXAAXNfEIik+qw/mkHekuhNxLHmRrccPfQCdtX+i+WWGhhZ07mlKuSbN/AgTpBEsAGbGiG4V5FrqCCYjNx+GB42dn0JV+2D0hWvYmt4ebvOKbjFkSnJDTgANLvHrwUXmeZOCNJS8kbZeN9+kBspUTuwndsTb3SAJmy/GKc2+D/DDsiAhPAP8TBp+c0dxmR+JqWSbhbtadXmDBm8oQ9Yh86v5257mlQgUcLAbEqSkKyPMqSUIX7CmAL48kK80WhygmNvPTrfh6jX9GfACh8G2CpDxKM7IVN2LJWeIiyky/AFeXaQ7AuGPmKK6LHOSqr4XlBqP4qJJZpQtrknipcQFpQZP6+TZCBx46BJ04+z6g7dewgabx3ipVOJipVNvaPz7nibPq0/qBm0Ih2liT9PCBSz8DGn+MujqA7Gvp7Sa0kv20wc0D6clXCfwUm/rA+uVtxsVW/nU2FSr0ttOHWaNwf4vv0Hr4IzG75YSV9N0pUvR1PSL1AsQ9+ZOnRWsCxhc4cvZN91uDvTn0PYxrB2HfRJPIRT8W7RsUc6Pkx7yZW9gqa15Ui4MtXv/38+3CXt9eYK//PLoCyyyeLOCQMZ7FC5e3E8re4IKbEHc8PNEWlY02bvB9oNXJQb42jcCxegwrN+u2Qos+tJOhT6iET+IW+X3Lr8v9Hl6T6VTVmVJMDv70Bn+zXmMQjeqXE16HfIWcGy4p7vuiyojidYHHDCL03B3Yzc3oRprnEvtKSdw9n3eV+DxZINgINavARQ17vsHmdcotbb1otHJ9xaSwuahu1ETKqHqUXRhNoJCyjcGE1Us8MmHJvikSGCHQBxmJzTo8ox+KOskeR01IFBKG47TjcXJh7u8e6kwa1ejakOYJgTmkELQQZFZ4dvURQDWOWGbul/ninogSAzn29gj+hnGE0TES/fsETAP2rleXYt7UDlEXCi9J0PzNtvU74IjETYxJxwsp34z73Oy8LzNHic7MifubegC9363c72tTVmnbd05X8+uiHEGZF+RH/bVr+34dJzHxMo8LBjwViOK0Te64qch+2DqWSxbnbw2MfLZIxpyGCgJE+daCt3BZvVuWy+ehzQDqJb0GN0tsTqJd6Q23pQqhCKSrRQM4vQoMwmWjcKvFd9FeDOXFtIJbtd5dwqkSqmZal7QY9C8ALkk6fMBUSXLXzV0oAwijF3MGWinRy/dKjZQCW+MdOy/VUdh5gI39UengrF1WK5tiBT8s+chcy5qpWto3H/wTOehOZId+u7ueJexZ5meQ/yUC2xrMpDaikkdCusGW1OhefG1G++cNMkxwr+EkXMpdWAySMhUsHoAANxUZCX+jiS59ZmE6LJS/4BNr1tUexxym0IccACvGHLokoE87yWdc6l1sY96dfIAHd023EOqNU/NqdEMEhycmduwSYuXrQ7zTaaM/7PjVHip7PCP9/ShJnyXyq4dxD/H/jTSF5vOcP5DXBao6ZPyXRX2/ER2NKlgoKMuTYEZ0tsVWT0MRNRKbvA7fG5wu/4u2cLoFm5/+Q1AXtNUu/uhWVc6S4e0g75Rfpj6lR2AXXAMwHfZWyHiaia+LLH5Re0k3/m09pAvs6q8RvlTgAAAAAAAAAAEVYSUa6AAAARXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABIAAAAAQAAAEgAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAALQAAAADoAQAAQAAALQAAAAAAAAA style=min-height:20px;min-width:20px;border-bottom-color:#e5e7eb;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-left-radius:4px;border-top-right-radius:4px;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:inline-block;height:20px;margin-bottom:6px;margin-right:4px;max-width:100%;vertical-align:middle;width:20px&amp;gt; O/O: 𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠 - O - Logiciel Lumiere Gitea&amp;lt;/h1&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;a href=https://archive.md/o/9wjvZ/https://gitea.lolumi.com/O/O target=_blank style=&quot;color:#005abc;border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;cursor:pointer;display:-webkit-box;margin-bottom:8px;margin-top:8px;overflow:visible;text-decoration:none solid #005abc;-webkit-box-orient:vertical;-webkit-line-clamp:1&quot;&amp;gt;https://gitea.lolumi.com/O/O&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;display:-webkit-box;margin-block:0px;margin:0;margin-inline:0px;overflow:visible;-webkit-box-orient:vertical;-webkit-line-clamp:3&amp;gt;𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 4,447 Commits 1 Branch 0 Tags 4.4 GiB ⠀ Go to file HTTPS O - 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-bottom-color:#000;border-bottom-style:solid;border-bottom-width:1px;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;padding-bottom:24px;padding-top:24px&amp;gt;&amp;lt;h1 style=color:#000;font-size:18px;font-weight:500;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:28px;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;img currentsourceurl=https://padlet.com/favicon.ico alt loading=lazy src=data:image/x-icon;base64,AAABAAMAICAAAAEAIAAoEQAANgAAACAgAAABACAAKBEAAF4RAAAQEAAAAQAgAGgEAACGIgAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAEwsAABMLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAMAAAADAACAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAVQBVAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAABwBVqgMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAD0AAAC2CwYIuQAAAJEAAABcAAAAXgAAAJMDBgS5AAAAswAAADMAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAXAAEA0LtSd//PXIX/pEdo/3k2Uf8jR43/LF22/zh14/8wZsj/AAAAxgAAIBAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHdrLkT/7GiW++1omPzzapn9z1+N/j188P4/iP/9QYf//D+E//wYNGj/AAAAawAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAABHHiorAAAA6qRHaP/rZ5b+5WWT/+tnlv+6Unf/J27X/0CE//8+gv3/PoX//SlYq/8AAADhGChYIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAC6MAAAD/vlR5/O1ol//lZZL/7mmZ/6pIY/8AZcb/RIb//z6C/P8/hv//MmnN/AAAAP8ACQqWAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAxBQSsG9UkmKf/SXIf+62iW/+Vmkv/wbJv/n0FS/wBduP9Gif//PYL8/z+G//82dOL+GhxC/yQOSfIABAA+AAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAz0iFrleQwD/ejlL/elolf/taZf/6GaU/+hjlv+KLz7/AEqZ/0OB/f8+g///P4b//zyC+/8iPn/9RhWB/xoSQMMAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAABjeE4h/2xMAf6VL2P/21qM/7lQd/+TRl7/VVI8/xUyAP8RMkP/I1R8/ytbrP8za9H/PHr0/xZNl/9MF439Time/wAAAH0AAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAGCUZB9S/fzH/cEEZ/VyLUP9gu1X/I7pB/x/CQv871VL/JX4A/y98of9Lyu//RLjZ/0Ky1f9Htur/Koas/0MAf/13Pev/JxNS6gAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAB7k2Al/+eZPP2OTR7/AIQq/0fmU/9M5FX/TONV/03rXP8sjQD/NIqy/1Pg//9Q2P//UNn//1HY//8heIP/VQCk/4hI//xmMsn/AAAArgAAAAAAAAARAAAATwAAADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAKz8oD+zMhjX/5Jc7/s2FNP8mLRX/P8ZK/0njVP9G3FL/SeZa/yyPAP81jLL/Udv//07R+/9R2P//RLrd/x8aQf95O+//g0L//34/+v9AH37+AAAApzc0PcRvbWz/PTw73gAAABEAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAACno2sp/+SWO/zbkDj/5Jg7/ZBOH/0AnTn/TONU/0beUv9J51n/LpUA/zeTuf9R3P//TtP9/1HY//8tkqb+WACn/YZH//2BP/7+g0L//3Q65P8AACL/trOv/7i0s/8AAAC/VStVBgAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAQ2ZCGPXXjjj/45U6/eKVOv3Sizf/eUca/wBNGv9J3FL/R+BT/0nmWP8wmxf/OprA/1Hb//9P1f//Tc33/w5CRv9DEIT/dTvm/4JB//+FQv/8iEX//GIoxvmwq6r7b25u+gAAAEsAAAAAAAAAAwAAAAAAAAABAAAAAJlmAAUAAAC4uXkv/+mZPPrPiTb/n2go/zcjDOQAAAB9CAAAuDewQf9J5Vb9SeVX/zKhI/88oMb/Udr//1Ha//07nr7/AAAAtAAWAHMDBQDMSSOQ/Wo00v9vONz/aC/O/25ihf8VGwC0AABVBgAAAAAAAAABAAAAAAAAAAIAAAAAAAAAaXlPHv/ajzj/qG4q/0QsD/cAAACLAAAAJwAAAAAAAABHH2cl/0XZUf9J51f/Nacw/z6ly/9R3f/+TMz0/x9Za/wAAAA6AAAAAAAAABQAAABPAAAAnAAAAK8ABgCuAAAAqAUFADEAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAACCcUkc/3JJG/MAAACpAAAANQAAAAAAAAAAAP8AAQCAAAQBAADCPL5H/0vrWP03rjr/QazS/1Pf//1CsdT/AAAAtQAAAAAAgIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAADEYABUAAABeAAAAQ///AAEAAAAAAAAAAgAAAAIAAAADAAAAAAAAAF8qiDP/SedV/jq4Q/5Ettv+Udr//yx4j/8AAABUAAAAAAAAAAMAAAACAAAAAgAA/wEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAHAsmEtdE107/PcFI/Ui+5f1Kx+3/BgsA0AAAABUAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAjTCcM/9CzFL9S8bs/TKKp/8AAACCAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAqF1IA80HGZ/9HwNz/F0BW6wAAAB8AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAACaMZVa/zaVpP8AAACOAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAHBycAAACyAAAArAAQECAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAABAAAQAQIAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAGAwO4BQMEvwAAAIUAAABPAAAAUgAAAIgBBAe+AQMEtgAAACYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQYI27lSd//OW4P/m0Vk/2QuQv8fPXb/K1qu/zh14/8wZcP/AgUK0AAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH1EHiz/6GaU/+hmlP/oZpT/0F6J/z598f8+g///PoP//z6D/v8QID//AAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAA74U7Vf/oZpT/6GaU/+hmlP++VXz/N3Lc/z6D//8+g///PoP//yBEg/8AAADpAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQICAKEJBgP/wFV7/+hmlP/oZpT/6GaU/6xNb/8yas3/PoP//z6D//8+g///MWfH/wIBA/8AAACSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6NCMO+y0XGP/kZJH/6GaU/+hmlP/oZpT/mURi/y1ft/8+g///PoP//z6D//88f/b/EBAq/xsNM/oAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQgFA8R+UyH/WSg5/+hmlP/oZpT/6GaU/+Zmk/9/OFH/Jk+Z/z6C/f8+g///PoP//z6D//8VLFX/UCid/wYEDM4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWDoX/2xIHP+ZRGL/4WOQ/7JQcv9wOEn/Ojcr/w0gDf8OJS3/GTpZ/yJJiP8xaMj/PYH6/yZPmv9FIof/Ph96/wAAAHYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBAKBeDKhTT/Ri4T/2eGU/9IqUn/Pb1H/0TWUP9H3lP/KYAw/zOHov9P0/z/TMz0/0O12f8/pM7/NYK4/zAYXf97PfL/Fgwr8gAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDfVIh/96SOf+FWCP/JG8q/0fgU/9H4FP/R+BT/0fgU/8tizT/N5Gt/0/V//9P1f//T9X//0/V//8kX3H/VSqn/4FA//9iMcH/AwEEugAAAAQAAAAGAAAASgAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHyUYCvHVjDf/3pI5/9WMN/8ZIw7/Q9RP/0fgU/9H4FP/R+BT/y6PNf83k7D/T9X//0/V//9P1f//SsXs/xYXMv99Pvf/gUD//4FA/v8yGWL+AAAAmhISEtlZV1f/GhkZ6gAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgCmmGQo/96SOf/ekjn/3pI5/2tHHP8tjjX/R+BT/0fgU/9H4FP/MZg5/zucuv9P1f//T9X//0/V//8vfpb/RSOI/4FA//+BQP//gUD//3c76/8cFSv/vrq5/7GurP8KCgrIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEErEfrckTn/3pI5/96SOf/Uizf/ZUIa/w4sEP9H3lP/R+BT/0fgU/8ynjv/PaLC/0/V//9P1f//TtH6/w0jKv88Hnb/dTrn/4FA//+BQP//gUD//1crqv+rqKb/RENC/gAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYKBwPEtHYu/96SOf/akDj/jFwk/x0TB+8AAAB3AQMBsjapP/9H4FP/R+BT/zSkPf8/p8j/T9X//0/V//84l7X/AAICqAAAAG8IBRDZNRpo/mYzyP9xON7/cDjc/2NSfv8EBAS4AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWVo7GP/dkTn/nWgp/y4eC/kCAgCRAAAAGQAAAAAAAAA8GU4d/kffU/9H4FP/OK5C/0Kv0v9P1f//T9T+/xhATPsAAAAwAAAAAAAAAAcAAABKAQABrAMBBLsDAQS7AQEDtgAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4WDoX/0IsEfsDAgKpAAAAKwAAAAEAAAAAAAAAAAAAAAQCBwLOPsFI/0fgU/85skT/RLTY/0/V//9Cr9L/AQQFwgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAABmAAAAOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGMiayj/R+BT/z29Sf9HveH/T9X//yJbbP8AAABTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAgXCeVE1lD/PsJL/0jB5v9Kxu3/BhAU2gAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhyyIM/9ByU//S8jt/ytziv8AAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfDy8R+EPQUv9My/D/DiQr9AAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgCmLYk4/zGCmP8AAACYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEBAwG4AQMDsgAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABAAAAAgAAAAAQAgAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBQMDXgAAADUAAAA3AwMFXQAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQ8WmdZeiP+uTnH/MmbF/zl46f8JECCRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMVUnNvvoZpT/zlyF/zl56v8+g///FixV+QAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT4oEL6UQl7/6GaU/7lSd/80bdP/PoP//yhQnf8lE0i/AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGA1J1TR//inZk/2mHVf8ubS//Km6J/zmMx/82fsb/TCaU/w0IGmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhsRxzcxYIz/zKRN/9H4FP/OrZE/0Oz1/9P1f//NYSj/3U65/9LJpPtCwsLXy8vL5kAAAADAAAAAAAAAAAiFwl4zIY1/9uQOf9DUR//R99T/zy9R/9Gut7/T9T+/y85cP9+P/n/fz/6/3dpjf9SUVHDAAAAAQAAAAAAAAAYhVci8KFrKf1BKxGmAAMAWTetQf8/xEn/SMDm/zyhwP4AAABSHA83ikEgftk/KWbcBAQEOQAAAAAAAAAAAAAAITomD6YFAAA1AAAAAAAAAAEfYCTMQcxN/0rH7v8gV2nFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ4FXjy6R/9CsNL/AwwMVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgjbCvnJ2h64gAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUANgAFBTMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA style=min-height:20px;min-width:20px;border-bottom-color:#e5e7eb;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-left-radius:4px;border-top-right-radius:4px;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:inline-block;height:20px;margin-bottom:6px;margin-right:4px;max-width:100%;vertical-align:middle;width:20px&amp;gt; 𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠 (OOOOOOOOOOOOOOOOOOOOOOOOOOO ... - Padlet&amp;lt;/h1&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;a href=https://archive.md/o/9wjvZ/https://padlet.com/OOOOOOOOOOOOOOOOOOOOOOOOOOO target=_blank style=&quot;color:#005abc;border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;cursor:pointer;display:-webkit-box;margin-bottom:8px;margin-top:8px;overflow:visible;text-decoration:none solid #005abc;-webkit-box-orient:vertical;-webkit-line-clamp:1&quot;&amp;gt;https://padlet.com/OOOOOOOOOOOOOOOOOOOOOOOOOOO&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;display:-webkit-box;margin-block:0px;margin:0;margin-inline:0px;overflow:visible;-webkit-box-orient:vertical;-webkit-line-clamp:3&amp;gt;See all the wonderful things 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 has made&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-bottom-color:#000;border-bottom-style:solid;border-bottom-width:1px;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;padding-bottom:24px;padding-top:24px&amp;gt;&amp;lt;h1 style=color:#000;font-size:18px;font-weight:500;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:28px;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;img currentsourceurl=https://www.cambridgetechweek.com/favicon.ico alt loading=lazy src=data:image/webp;base64,UklGRsYQAABXRUJQVlA4WAoAAAA4AAAAswAAswAASUNDUOABAAAAAAHgbGNtcwQgAABtbnRyUkdCIFhZWiAH4gADABQACQAOAB1hY3NwTVNGVAAAAABzYXdzY3RybAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWhhbmR56b9WWj4BtoMjhVVG90+qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAACRjcHJ0AAABIAAAACJ3dHB0AAABRAAAABRjaGFkAAABWAAAACxyWFlaAAABhAAAABRnWFlaAAABmAAAABRiWFlaAAABrAAAABRyVFJDAAABwAAAACBnVFJDAAABwAAAACBiVFJDAAABwAAAACBtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAYAAAAcAEMAQwAwAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMPwAABd3///MmAAAHkAAA/ZL///uh///9ogAAA9wAAMBxWFlaIAAAAAAAAG+gAAA48gAAA49YWVogAAAAAAAAYpYAALeJAAAY2lhZWiAAAAAAAAAkoAAAD4UAALbEcGFyYQAAAAAAAwAAAAJmaQAA8qcAAA1ZAAAT0AAACltBTFBIigYAAAGwhv7/+rbWN0lpM8sMGkIoc3dNZ4XuSOW4zN1y5N5eOqGzI5OyBcqRHKked3e3kiudFcLxciSTkklpyYMQKv8m3yfr9yf5/b8PLxExAWDbzml37z3xWOjQlsBgYHLe6vc7ceCeyF4fgwYfTqBo/+tjmePcEkeZfQ1ezvjPoexEKV/mt6P8/v1cWdeNSl/IYcmNFip+miNTEqj8fn6M/APV961gRy3qGMuzN9fY4nu3VOwPERvTWmClbY2448T7v/RgliZG2lFeac25ftSzuWLF7MDGl1MieNx+5oc7UdfWZXB9/wsiV3LsxXckhvq+nQfEnf00LLWTMeFu1DiSC+RKgcftY/JLfahzMh8Ev6ZF7WLwkR7U+wiIzqf15djDbRdQ97FCECXhRDvwf4Hat4P407RlNrDyCurfImEfrdR4OUfSmIX/kbCXVma6/P9gVsYk1NBWGG7sH5idGa9YC22a2Wa0Y7ZWCo1Nk/pzjVbYiVl7bajI60j+HUweSGEWvyRwd4ZWb7IZnZjVJxyUlSmk32sw/0XM8o8KBsg7ZCE9kWeu0b9j1nfXl/lcIwMPX0TRWjC24yM0drffXPtQTyvW2vzZOwN/p8lxMHZhn7p0tOauKTkg+LYWncOMNfIiqm65fzTILLimQWY1GLsR1fa9MAVkL+1RdxyMXZhWkq4vAIVblH3kNJYriiqjhaD2oYya5qFg7ApUaD3kBNX3plQ05ICxRyQUxFeAhnMuSLP2g8EfQvm/+EHLoUe65Xw3Bww+9Jq8M6NBV39Dv9i5YjD6XpR+ZihoPPahHzOUeMMyBxg9Ly7t99Ggef4d+xve+fr9l45vnAbGX42yO8cAYz+TlbkDGJtvyXoMOFuJki8OZU2rrFuBs96MpC+AtetQ8jLeNEhqBt7+IekO3vhRbmcub26V9DTwdq+klcxplNMzmDkROc3A3CtyQlnimldR++XZH1ubXz1UMsRoOSh3e1Ysb0og1fpyg9tcoyUtzYJFzSjeHnSZaowkv3bj38mg1B9LDDVD0jDdShIoPewyUqGcjFOzoIUKv/SY6EY5KdDaUY9qf8k30M1yknodRtUtbobcmVaGL/JjehI1rGDHt6hj0mtr+UXB6tpXP/j2bOvAf6CetXY16s7wmQRq2d2RlGBNsiHH0prWNOrZcWi6E8C7+awIvmo7Bfv/QG3DHri+Y0NSoNtjK857/5tBfR8A6qwOGm6yEeeqNtQ5BPQii/aibTh3xFDrWK4APEOL2cW8FtR8B4h6LVJ6sC2MCFuouTVCCL4n4Sw7KL+K2reB+ElakQ0cSaP+EQmVtHLz9WM2npZQRSsxX3Z2SKinLeUJThf7gzaWKWGhYiR3O5nSO17AeYZ2GpiC0SG0ENJPsgWbRxEcR1CwiC94Ya3jenO+RcGYgzGIfzy2qWTV4UgaRauANbLjg20u/n1T6KE9wYGruvXYCjYWrSn3gHC1Fj+6bOtC9VSQ6j6tQXIW2NQvm10g29uuLH072FP7KgconJdSdQhsyaoZAmqLu5RkjjhsqX0pKB//i4LuDWBiDb4cBRp6PpYWmwe29Gou6Hljq5Su/W6wpcccoKtzQ5tQ4uQIMLWqOtA68NiPmYHir65yg7kVvePUCwA8i1YFqx7YVOwDs6v50Q1MVZKcCgzbDAyLOBjWOxUYVgsMs8Zy7EXgWIBjbcCxh1g2j2NdTo59ABw7wpxbJa1hzipJc5izRZKXOfdLGsycPZIczDkgJwPMPfj/ns35Qw7WjOJM0ELZ8UVscT2DCrs3MMUTQaWZh1ji/BhVBzkSQuVWET82oIZXC7gxoksHfJMbIdQyE+CFP6UHRnhRh6IXDi3yOLzl9d0ieCMn3AkBq8oN1y/4QORNTqxCerIYiI6TAt1DGNFES98J9JdpWMKIP2gvg6Cng1bNB7dFSo8VgT20j/kwHckREPZlSG18KKLViMEFUgcfymmVEv5L6mbKHgktpBQfltPCEuKkq3yYRIuKTUTyj3xw9ZJwnlA17R0+wI+0L0V8SdpDjHiShv+iub5H+lJGlApYOyjud5DelcsI11Ua4ou+AYqiKFgHnKwWwdSrmwJziisjKJqZx4oRXSLS3wRe7tHDmsiM3JgWYeDm8l4N2jzsgK3qEpOAoc+ossqBo64X1XSvBaYGLQXxALC1NCHttA8YOyrULSUedAFvx75qCSX2u4G/vj2RXkLHO/e6gcmDF206FHqses+dUx1g21ZQOCBsBwAAcCgAnQEqtAC0AD5tMJZIJDqiISaxqmNQDYlibtl+nDKCZA0wWJN/gF78YAIncQv8V+SveyYg7L/Xf2R/Mbpyt+++H5TfIDxIkXetHth+R+4n6G/1r/GexXzAP0o/zH9u/If4jv4B7C/MB+mn/W/1nvVf3j9gPdZ+UfuAf0P+q//P2kP+R7A37e+wT/KP8R6sv+k/7P+Z+B79rf22+A7+ff2L/1ewB6AHoAeovxEov8WBq+2QCAZ1P3f6F/kfPHGh2GWzCsRuh0ba3iF3BD6+RAy67bPYJgngUEqBW2QO+Jg5h3di+FeYtIt3bxqBwmDBZSD5NRyYPGJc7bKAX05zF6AnN78xolGajkYawpO0EG1w/E801lrYmTKb5AoqZH5bDmcE+ts261DmH0AMoBc0BoVQxk4FAYL/6bvc2Gu2FRwl2hlhLOGrm3HCfYAA+gyunXCWqLIvqQp7HdbaOBUTjrS4JgGxO8TKLoq4Eh0+VPUROM4jIJTkr+Ah4yPpEtUkLo+6He6egf+z8dhFZ+Pkq4VHN1XoWQ9bIIjiVaqIJTSn6LeKDm6ZEoyJLeyJF9j3DWIF8QFchaK0a4gO9/tTSDi0RuIGOtKl5eYACPrUHk5p0VmIHAudx1HrC7wYUe0AH91HtKOk7ZpaTaK7HbgO64jihkYBI56lpiJxOL9wJeQL37psEVjIuhhix/fPH/QsHjt48MuKv0FlOMtHgR290NS9eKNEN7TQwZ6ryW6fvsVyhuPZFPYjhz+Xq7PxvZb/eexUCC+lzaGjpyTZYuCsdhkvuwH8srx2d0Ic5K+7P4fu59QybLiAZ8RisIwA/iH3g3Np+OVuWSnksIEPPeYuksbdLaDt6/YNMHRaJFFZJZNDAbPmPNC69WVwW0c6FMY/zVwTo+nmyWXPI/fwc2V7QN96H7I2heI1V8HBN32EC9fioMMH49qq+o7u2GxZQj4MxgrgOD4G981aPca5oRCvjDDF4MVxzlgPlQkhqeRWKykKkJH+S0Ao8oLNlHIZvU2QxDy9//6Rk6czAk3VKftPmzekG4eKB8MhOmt7ZdsBZkLNZu87/dV/UGWkDVkjtv/PS5Kr1w65o8xtbUusRzwwcsBZpXXdWTRf4/SxWsjblqvgA1SpjQocgwFkXd8PRH0HaQ+8iOxF1LQ+wv8uprV/1Z+ueaQ7nKQypICtab0Yyf2rF2GDldbwwIXJVjIEMupNoMTL7Nvj6BUF38oMdQYBpA6KPYfQwP587EA6pkLTN1g6JkF96f+kTcVLMmci591pmyO/z0nGWPN2FwXT7YTWwGT7DZ1+VRV7qHBHjdKi2XnHGbppZBQ8Oc7WFPvBPonz5MEtEFFmyrJhgeXINczvKEZQIlmehbeUzikQSY3Yh/4Mdc358BGJADX6KflcO7SPBZLMAufAspuiojOM5fEaIpo4TYG72343IjYwgsQ1nSCMxEi9FuzeKO9/rICYBntcC+36fAum+LgXhXAk+5bKfBfe+QyVqq88mCwCabcC8/xihMhgaBdepdVZD9Qzf5xPtkfN9KCmU8cFcumIGGO8F5TIrGQfDAGOHyQjArEUCcWTZrvET5lb29rrDwYUYiprds+zCGX//UdElC+RynRXcC3F0x7GWFyLsTgAYU7tCqN1HRikFhWtwdcG7btnKg0X8fl5sCT9SORfsBe9kLW5QazKFqL8QjNovuxDQsiinA1g9fnBN93qXysNIDhax5mJmsBodaJHMe8uFIWPR7NIqDigTLF3Rn7IGrkZ2+lNgfkzk8943F0UMTbzCw1fVR7Paw3PrTmAk8v/391ZYajHdjRKDRMmSOb28FinOtz5l0uL5PjjPQT/xvcq9JOXCBt5/soD0HTj+HOxoDGHXwqeUKUKpPFsMMsjcSWJT5oEcDBhT3p6JuNd/XxYF8IRsDmscisyBWQL6d/RgiUQhIyQ0Q6AY3Y9NPOmak7nW8mmBwkZ6ufItP5+3YT1boYXp6PYqlQkjnf5H9vmXSha5/HfciFkgz5SaNq+JsN7HjnumRVKiypoFh0x7T/y2FiQdvB4IH729LeoSltZOfzgYLdQUTUO8xJIzhW3cD9X2W55+FsRtoECLrgFJXrnA54p6CpV2jfRASfThaOY+IUhiURXgsevm6AAACWbUAjooOzWi/aNcWTsVk2C5hPplkpoT0K+r+EQTXtisdNnQ+MKultPz2GwGqHB42x/cn4G2hsZU1wATcL3kmzp+Bsot5EqKFSc6jHhCT0uUqWBC8Wb7+7JE9EhoRmOytKkMrEafIhGRYLMj2+sjc6ks//BY8fwlDwmdyJOnznbyT8WSy5Jj2H/HE+KOoHyHr2K1rysgYQAATHhY44GlZgQZb/O+v5yEHBVjweRTw973aBn+qO97BjUH7ZdKZd75pfPMCzxgrOnQvQrMRL0flPpy/h5s0ymekJTasd8kvTop9d9zgr5a0c2HmFgw8BABRyTAmORRjfLQ+jKvyogczVSdxJ9eO060d+6Tas9Z/l9VsoICTxptjcHNKmYFegZdLcqAAAAAEVYSUa6AAAARXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABIAAAAAQAAAEgAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAALQAAAADoAQAAQAAALQAAAAAAAAA style=min-height:20px;min-width:20px;border-bottom-color:#e5e7eb;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-left-radius:4px;border-top-right-radius:4px;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:inline-block;height:20px;margin-bottom:6px;margin-right:4px;max-width:100%;vertical-align:middle;width:20px&amp;gt; 𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ꖴ⚪𔗢⚪𖣠⚪𔗢⚪ᕤᕦ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪𔗢⚪ ⚪𔗢⚪ ⚪𔗢⚪𖣠⚪𔗢⚪ ⚪ ...&amp;lt;/h1&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;a href=https://archive.md/o/9wjvZ/https://www.cambridgetechweek.com/O/O/commit/deb882f4f03ecb56334dcce5d7b34167ff0216f7 target=_blank style=&quot;color:#005abc;border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;cursor:pointer;display:-webkit-box;margin-bottom:8px;margin-top:8px;overflow:visible;text-decoration:none solid #005abc;-webkit-box-orient:vertical;-webkit-line-clamp:1&quot;&amp;gt;https://www.cambridgetechweek.com/O/O/commit/deb882f4f03ecb56334dcce5d7b34167ff0216f7&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;display:-webkit-box;margin-block:0px;margin:0;margin-inline:0px;overflow:visible;-webkit-box-orient:vertical;-webkit-line-clamp:3&amp;gt;O - 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 . You've already forked O 0&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-bottom-color:#000;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;padding-bottom:24px;padding-top:24px&amp;gt;&amp;lt;h1 style=color:#000;font-size:18px;font-weight:500;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;line-height:28px;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;img currentsourceurl=https://oooooooooooooooo.netboard.me/favicon.ico alt loading=lazy src=&quot;data:image/x-icon;base64,AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xIMA/8SEAP/FhAz/xYR2/8WEyP/EhPf/xIP//8SD///Eg///xIP//8SD///Dgf//xIP//8SE///EhP//xIH//8SB///Egf//xIH//8SB///Egf//xIH//8SB///Egf//xIH//8OB///Egff/xIPI/8WFdv/Fhgz/xYUA/8SEAP/FhAD/xYQ+/8WEu//EhP//xIT//8SD///Egf//xIH//8OB///Dgf//w4D//8OA///Dgf//w4H//8OB///DgP//w4D//8OA///DgP//w4D//8OA///DgP//w4D//8OA///DgP//w4D//8OA///Egf//xYT//8WFu//FhT7/xIQA/8SDDP/Eg7v/xIP//8SD///Egf//wX///8B7//+/ef//v3n//793//+/ef//v3n//795//+/ef//v3n//793//+/ef//vnf//795//++d///vnf//753//++ef//vnn//753//++d///vnb//796///Bfv//xIP//8WEu//FhQz/xIF2/8SB///Egf//xIH//8F////Ae///t2n//7Ji//+xXv//sV7//7Fe//+wXv//sF///7Bh//6wYf/8rmH//K5f//yuX//8rl///K5f//ytXv/8rV7//K1e//utXf/7rFz/+6ta//6uXv//tmj//752///DgP//xYT//8WEdv/Dgcj/w4D//8OA///DgP//v3r/+6lY/+eQOf/iiTH/34gu/9+GLf/fhi7/34gu/96GMP/chjD/2IQw/9SBLv/TgC3/1IAt/9OALf/Sfyz/0n8r/9J/LP/TgCz/04As/9SALP/VgSz/3Yk0//KhTv//uW3//8B8///Eg///xITI/8N/9//Df///wX///8F+///Pn//3nl//8HUA/+5xAP/ucAD/7XAA/+5wAP/tcAD/7HAA/+tuAP/nq4j/6NLF/+jSxf/o0sX/6NLF/+jSxf/o0sX/6NLF/+jSxf/o0sX/6NLF/+nSxP/apoP/45A8//+0Z///v3r//8OB///Egff/wX7//8F////Bfv//wHz//927///n2f//eQD//3kA//95AP//eQD//3cA//93AP//dgD//3UA//6PSf///////////////////////////////////////////////////////////+PAqf/eizn//7Rn//+/ev//w4D//8SD///Bfv//wX7//8F8///Ae///2bT///////+sfP//egD//3oA//97AP//egD//3kA//95AP//dwD//3UA///Yxf//////////////////////////////////////////////////////4r+o/96LOf//tGf//8B6///Dgf//xIP//8F+///Bfv//wXz//8B7//+sYf//+fL///Lp//97AP//fAD//3wA//98AP//ewD//3oA//95AP//dgD//o9G///////////////////////////////////////////////////////iv6j/3os3//+0Z///wHr//8OB///Eg///wX///8F+///BfP//wHv//6dT//+7kv///////LeS//98AP//fAD//3wA//98AP//fAD//3sA//95AP//dgD//9jE/////////////////////////////////////////////////+LAqf/eizf//7Rn///Aev//xIH//8SD///Bf///wX7//8F+///Ae///p1P//4QG///07P//9/H//H4O//9/AP//fgD//3wA//98AP//fAD//3oA//93AP//jT7/////////////////////////////////////////////////4sCo/96LN///tGf//8B6///Egf//xIT//8F+///Bfv//wX7//8F8//+oVP//hAP//7aF///////5w6T//34A//+AAP//fwD//34A//9+AP//ewD//3oA//95AP//1b/////////////////////////////////////////////iv6j/3os3//+0Z///wHr//8SB///EhP//wX7//8F8///Bfv//wHz//6hT//+FBf//hQb//+7i////+//5hSv//4AA//+AAP//gAD//38A//9+AP//ewD//3sA//+LNP///////////////////////////////////////////+K/qP/eijf//7Jn///Aev//xIH//8SD///Bfv//wHz//8F8///AfP//qFT//4gK//+GCP//rHD///////fPuv//fwD//4EA//+BAP//gAD//38A//9+AP//fAD//3wA///Suv//////////////////////////////////////4r+o/96LN///smf//8B7///Egf//xIP//8F+///AfP//wXz//8B7//+pVP//ig///4kO//+JC///49L///////WNP///hAP//4QD//+DAP//gQD//4AA//9/AP//fgD//400///////////////////////////////////////iwKn/3os5//+0Z///wHr//8OB///Eg///wX7//8F+///BfP//wHz//6lU//+LEP//ig///4oO//+hVf///////vDn//+AAP//hgb//4UG//+EBP//gwP//4EA//+AAP//fwD//8+0/////////////////////////////////+LAqf/eizf//7Jk//+/ev//w4H//8SB///Bf///wX7//8F8///AfP//q1f//44V//+NE///jRL//4sQ///y6P//////7pNT//+ICv//iAr//4YK//+FCf//hQb//4QE//+BAP//jSz/////////////////////////////////4r+o/96LOf//smb//796///Dgf//xIH//8N////DgP//w3///8F+//+tWf//jxn//44Y//+OF///jhf//5xE/////P/54dP/934E//+KEP//iQ///4gO//+GC///hgv//4UK//+ECP//y63////////////////////////////iv6j/3os5//+yZ///wHr//8OB///Eg///w3///8N////DgP//wX7//61a//+SHf//kh3//5Id//+QHP//kBz//9Kx///////pnGv//4oT//+LFf//ihP//4oT//+KEv//iRD//4gO//+PLP///////////////////////////+LAqP/fjTr//7Rn///Ae///xIP//8SE///Df///w3///8F////Bfv//rVr//5Mh//+TH///kyH//5Mf//+TH///mjz///75//vp4f/uewn//44a//+NGf//ixf//4sV//+LFP//ihP//4kQ///Lq///////////////////////4sCp/9+NO//+tGn//8B7///Dgf//xIP//8F////Df///w3///8F+//+uXP//lST//5Qk//+UI///lCL//5Qj//+UI///zaf//////+eog//+jR3//48f//+OHf//jhz//44a//+NGP//ixX//5Ir///////////////////////jwKj/3407//+0aP//wHv//8OB///Eg///w4D//8N////Df///wX///7Be//+YK///mCv//5gr//+XKP//lyj//5Un//+ZNP//9+7//vLs/+h8Ff//kiL//5Ii//+QIv//kCH//48f//+PHf//jhr//8ij/////////////////+TAqP/ijzz//7Vp///AfP//xIH//8SD///DgP//w3///8OA///Bf///sV///5ow//+aLv//mS7//5ou//+ZLv//mC3//5cr///EmP//////6LaY//uNHv//kyT//5Ij//+SI///kiP//5Ii//+QIf//kyv////+////////////5MGo/+OQPv//tmz//8F8///Egf//xIP//8OA///DgP//w4D//8N///+xX///nDH//5wx//+cMf//nDL//5wy//+aMf//mS7//5gw///06P//+fT/54Af//+VK///lSn//5Qn//+UKP//lCf//5Mm//+SIv//xZ3////////////nw6n/5JI///+3bf//wX7//8SB///EhP//w4D//8OA///DgP//wX///7Ff//+dNP//nTT//501//+dNP//nTT//500//+cMv//mjH//8CO///////pvKL//JIn//+YLv//ly3//5cs//+XK///lSn//5Qo//+UK/////v//////+vFqf/rmUj//7px///DgP//xIH//8SE///Df///w3///8N////Bf///smL//501//+dNf//nTb//502//+dNf//nTX//500//+cMv//mjL///Dj///79//srYT/97KD//awgP/2sID/9bCA//awgP/1roD/9a5////x5///////9Muu//mrXf//v3r//8SB///Eg///xYT//8OA9//Df///w3///8N///+yYv//njb//542//+eNv//njb//501//+dNf//nTT//501//+cNP//tnn/////////////////////////////////////////////////////////////2rr//753///Dgf//xIP//8SD///EhPf/w4DI/8OA///Df///w4D//8F+//+7cv//unH//7ty//+7cv//u3L//7ty//+6cf//unH//7px//+5cP//zZn//8+e///Onv//z57//8+f///Pn///z5///8+f///Pnv//z57//8+f///Ijv//w4D//8SB///EhP//xIP//8SDyP/DgHb/w4D//8OA///DgP//w4D//8N////Bf///wX///8OA///DgP//w3///8N////Df///w3///8N////Bfv//wHz//8F8///BfP//wXz//8F8///BfP//wXz//8F8///BfP//wX7//8F+///Dgf//xIP//8WE///FhP//xIR2/8OADP/Df7v/w4D//8OA///DgP//w4D//8N////DgP//w4D//8OA///DgP//w3///8N////DgP//w4D//8OA///Df///wX///8F////Bfv//wX7//8F+///Bfv//wX///8F////Df///w3///8OB///Eg///xIT//8WEu//FhAz/w4AA/8OAPv/DgLv/w4D//8N////DgP//w4D//8OA///Dgf//w4D//8OA///Df///w3///8OA///DgP//w3///8N////Df///wX///8F////Bf///wX7//8N////Df///wX///8N////Df///xIH//8SD///FhLv/xYQ+/8WEAP/DgAD/w4AA/8OADP/Df3b/w3/I/8N/9//Df///w4D//8OA///DgP//w4D//8N////Df///w4D//8OA///Df///w3///8N////Df///wX///8N////Bf///wX///8N////Df///w3///8N/9//Dgcj/xIR2/8SEDP/EhAD/xIQAwAAAA4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAM=&quot; style=min-height:20px;min-width:20px;border-bottom-color:#e5e7eb;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-left-radius:4px;border-top-right-radius:4px;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:inline-block;height:20px;margin-bottom:6px;margin-right:4px;max-width:100%;vertical-align:middle;width:20px&amp;gt; oooooooooooooooo profile&amp;lt;/h1&amp;gt;&amp;lt;div style=border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;display:block;margin-block-end:0px;margin-block-start:0px;margin-bottom:0;margin-inline-end:0;margin-inline-start:0;margin-left:0;margin-right:0;margin-top:0&amp;gt;&amp;lt;a href=https://archive.md/o/9wjvZ/https://oooooooooooooooo.netboard.me/ target=_blank style=&quot;color:#005abc;border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;cursor:pointer;display:-webkit-box;margin-bottom:8px;margin-top:8px;overflow:visible;text-decoration:none solid #005abc;-webkit-box-orient:vertical;-webkit-line-clamp:1&quot;&amp;gt;https://oooooooooooooooo.netboard.me/&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=border-color:#e5e7eb;border-style:solid;border-width:0;box-sizing:border-box;display:-webkit-box;margin-block:0px;margin:0;margin-inline:0px;overflow:visible;-webkit-box-orient:vertical;-webkit-line-clamp:3&amp;gt;oooooooooooooooo Copy profile link About me: 𖣠⚪𔗢⚪🞋⚪𔗢⚪𖣠 Netboards0 Co-authored0 News&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=color:#3e63dd;align-items:center;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;column-gap:8px;display:flex;justify-content:center;row-gap:8px&amp;gt;&amp;lt;a style=color:#3e63dd;border-bottom-color:#e5e7eb;border-bottom-style:solid;border-bottom-width:0;border-left-color:#e5e7eb;border-left-style:solid;border-left-width:0;border-right-color:#e5e7eb;border-right-style:solid;border-right-width:0;border-top-color:#e5e7eb;border-top-style:solid;border-top-width:0;box-sizing:border-box;cursor:pointer;text-decoration-color:#3e63dd;text-decoration-line:none;text-decoration-style:solid;text-decoration-thickness:auto&amp;gt;Give feedback&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;
|
||
|
||
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--[if !IE]&amp;gt;&amp;lt;!--&amp;gt;&amp;lt;/center&amp;gt;</div>
|
||
<div class=&quot;ui-toc dropup unselectable hidden-print&quot; style=display:none>
|
||
<div class=&quot;pull-right dropdown&quot;>
|
||
<a id=tocLabel class=&quot;ui-toc-label btn btn-default&quot; data-toggle=dropdown href=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/# role=button aria-haspopup=true aria-expanded=false title=&quot;Table of content&quot;>
|
||
<i class=&quot;fa fa-bars&quot;></i>
|
||
</a>
|
||
<ul id=ui-toc class=&quot;ui-toc-dropdown dropdown-menu&quot; aria-labelledby=tocLabel>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div id=ui-toc-affix class=&quot;ui-affix-toc ui-toc-dropdown unselectable hidden-print&quot; data-spy=affix style=display:none></div>
|
||
|
||
<script data-sf-original-src=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/js/mathjax-config-extra.js src=data:,></script>
|
||
<script defer data-sf-original-src=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/build/MathJax/MathJax.js src=data:,></script>
|
||
<script defer data-sf-original-src=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/build/MathJax/config/TeX-AMS-MML_HTMLorMML.js src=data:,></script>
|
||
<script defer data-sf-original-src=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/build/MathJax/config/Safe.js src=data:,></script>
|
||
<script __wb_orig_src=config data-sf-original-src=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/config src=data:,></script><script defer __wb_orig_src=build/common.9a80e4667cfe74cd3793.js data-sf-original-src=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/build/common.9a80e4667cfe74cd3793.js src=data:,></script><script defer __wb_orig_src=build/pretty-pack.8678126729e8932ef579.js data-sf-original-src=https://ghostarchive.org/archive/replay/w/id-610e8741228f/mp_/https://doc.anagora.org/build/pretty-pack.8678126729e8932ef579.js src=data:,></script>
|
||
"></iframe>
|
||
|
||
</div>
|
||
</template>
|
||
</wr-coll-replay>
|
||
|
||
</div>
|
||
</template></wr-item>
|
||
|
||
|
||
</template></replay-app-main>
|
||
"></iframe>
|
||
|
||
|
||
</template></replay-web-page></div></div></div></div></div><div id=mw-site-navigation><div id=p-logo role=banner class=mw-portlet><a href=https://ghostarchive.org/ title="Visit the main page" class="mw-wiki-logo timeless-logo"></a></div><div id=site-navigation class=sidebar-chunk><h2><span>Main menu</span></h2><div class=sidebar-inner><div id=p-navigation role=navigation aria-labelledby=p-navigation-label class=mw-portlet><h3 id=p-navigation-label dir=ltr lang=en>Main menu</h3><div class=mw-portlet-body><ul dir=ltr lang=en><li><a href=https://ghostarchive.org/ icon=home><span>Main page</span></a><li><a href=https://ghostarchive.org/about.html><span>About Ghostarchive</span></a><li><a rel=nofollow href=https://forms.gle/mWkDZeN6e2rHVV4s6><span>Report a bug or provide feedback</span></a><li> <a href=https://ghostarchive.org/archive/vA9DJ# rel=nofollow onclick="document.cookie = 'theme=original'; location.reload();"><span>Switch to the old website look</span></a><li id=n-mw-extensions class=mw-list-item><a href="https://ghostarchive.org/archive/vA9DJ?wr=false"><span>Archived page not showing up? Click here.</span></a></ul></div></div><div id=p-navigation class=mw-portlet><h3 id=p-navigation-label dir=ltr lang=en>General info</h3><div class=mw-portlet-body><ul dir=ltr lang=en><li class=mw-list-item><span>Archive date: Sun, 06 Sep 2026 03:26:03 GMT</span><li class=mw-list-item><a rel=nofollow href=https://forms.gle/JoUvFFWcUioeUM5W8><span>Report abuse</span></a></ul></div></div><div id=p-navigation class=mw-portlet><h3 id=p-navigation-label dir=ltr lang=en>Pages like this</h3><div class=mw-portlet-body><ul dir=ltr lang=en><li class=mw-list-item><a href="https://ghostarchive.org/search?term=https://doc.anagora.org/s/%F0%96%A3%A0%E2%9A%AA%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E1%B3%80%E2%86%80%D0%B8n%E2%B5%99%EA%97%B3%F0%96%A3%93%E1%97%B1%E1%97%B4%E1%B4%A5%DF%A6%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%DF%A6%E1%B4%A5%E1%97%B1%E1%97%B4%F0%96%A3%93%EA%97%B3%E2%B5%99%D0%B8n%E2%86%80%E1%B3%80%E2%8A%9A%F0%96%A3%A0%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%9F%9E%8B%E2%9A%AA%F0%94%97%A2%E2%9A%AA%F0%96%A3%A0%E2%8A%9A%E2%9A%AA%F0%96%A3%A0"><span>See other archives of this page</span></a><li class=mw-list-item><a href="https://ghostarchive.org/search?term=https://doc.anagora.org"><span>See other archives of doc.anagora.org</span></a></ul></div></div></div></div></div></div><div class=visualClear></div></div></div><div id=mw-footer-container class="mw-footer-container ts-container"><div id=mw-footer role=contentinfo dir=ltr class="mw-footer ts-inner" lang=en><ul> <li> <a href="https://ghostarchive.org/archive/vA9DJ?wr=false"><span>Archived page not showing up? Click here.</span></a><span style="float:right;margin:0 0 0 1em">Archive system: ReplayWeb.Page</span></ul><div class=visualClear></div></div></div><script data-sf-original-src=/timeless/timeless.js src="data:application/javascript;base64,ZnVuY3Rpb24gZHJvcGRvd25qcygpIHsKCS8vIHNpZGViYXItY2h1bmsgb25seSBhcHBsaWVzIHRvIGRlc2t0b3Atc21hbGwsIGJ1dCB0aGUgdG9nZ2xlcyBhcmUgaGlkZGVuIGF0CgkvLyBvdGhlciByZXNvbHV0aW9ucyByZWdhcmRsZXNzIGFuZCB0aGUgY3NzIG92ZXJyaWRlcyBhbnkgdmlzaWJsZSBlZmZlY3RzLgoJdmFyIGRyb3Bkb3ducyA9IFsnI3BlcnNvbmFsLCAjcC12YXJpYW50cy1kZXNrdG9wLCAuc2lkZWJhci1jaHVuayddOwoKCS8qKgoJICogRGVza3RvcCBtZW51IGNsaWNrLXRvZ2dsaW5nCgkgKgoJICogV2UncmUgbm90IGV2ZW4gY2hlY2tpbmcgaWYgaXQncyBkZXNrdG9wIGJlY2F1c2UgdGhlIGNsYXNzZXMgaW4gcGxheSBoYXZlIG5vIGVmZmVjdAoJICogb24gbW9iaWxlIHJlZ2FyZGxlc3MuLi4gdGhpcyBtYXkgYnJlYWsgdGhpbmdzIGF0IHNvbWUgcG9pbnQsIHRob3VnaC4KCSAqLwoKCS8qKgoJICogQ2xvc2UgYWxsIGRyb3Bkb3ducwoJICovCglmdW5jdGlvbiBjbG9zZU9wZW4oKSB7CgkJZm9yIChkcm9wIG9mIGRyb3Bkb3ducykgewoJCQl2YXIgb2JqcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZHJvcCkKCQkJZm9yIChvYmogb2Ygb2JqcykgewoJCQkJb2JqLmNsYXNzTGlzdC5yZW1vdmUoImRyb3Bkb3duLWFjdGl2ZSIpCgkJCX0KCQl9Cgl9CgoJLyoqCgkgKiBDbGljayBiZWhhdmlvdXIKCSAqLwoJZnVuY3Rpb24gY2xpY2tyZWFjdChlejApIHsKCQlleiA9IGV6MC5jdXJyZW50VGFyZ2V0CgkJaWYgKGV6LmNsYXNzTGlzdC5jb250YWlucygiZHJvcGRvd24tYWN0aXZlIikpIHsKCQkJZXogPSBlejAudGFyZ2V0CgkJCWlmIChlei5jbG9zZXN0KCJoMiwgI3AtdmFyaWFudHMtZGVza3RvcCwgaDMiKSAhPSBudWxsKSB7CgkJCQljbG9zZU9wZW4oKTsKCgkJCX0KCQl9IGVsc2UgewoJCQljbG9zZU9wZW4oKTsKCQkJZXouY2xhc3NMaXN0LmFkZCgiZHJvcGRvd24tYWN0aXZlIikKCQl9CgoJfQoJZnVuY3Rpb24gY2xpY2tyZWFjdDIoZXozKSB7CgkJZXogPSBlejMudGFyZ2V0CgkJaWYgKGV6LmNsb3Nlc3QoZHJvcGRvd25zWzBdLnRvU3RyaW5nKCkpICE9IG51bGwpIHsKCQl9IGVsc2UgewoJCQljbG9zZU9wZW4oKTsKCQl9CgoJfQoJZm9yIChkcm9wIG9mIGRyb3Bkb3ducykgewoJCXZhciBvYmpzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChkcm9wKQoJCWZvciAob2JqIG9mIG9ianMpIHsKCQkJb2JqLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgY2xpY2tyZWFjdCkKCQl9Cgl9Cglkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGNsaWNrcmVhY3QyKQoJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3NpdGUtbmF2aWdhdGlvbiBoMiIpLmZvckVhY2goZnVuY3Rpb24oZ3opIHsKCQlnei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKGZ6ZSkgewoJCQlmeiA9IGZ6ZS5jdXJyZW50VGFyZ2V0CgkJCXZhciB3aWR0aGVsID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKGZ6LCBudWxsKS53aWR0aC5yZXBsYWNlKCJweCIsICIiKSkKCQkJaWYgKHdpZHRoZWwgPCA4NTEpIHsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNzaXRlLW5hdmlnYXRpb24gLnNpZGViYXItaW5uZXIsICNtZW51cy1jb3ZlciIpLmZvckVhY2goZnVuY3Rpb24oYXopIHsKCQkJCQl2YXIgc3R5ID0gYXouc3R5bGUuZGlzcGxheQoJCQkJCWlmIChzdHkgPT0gIiIpIHsKCQkJCQkJYXouc3R5bGUuZGlzcGxheSA9ICJibG9jayIKCQkJCQl9IGVsc2UgewoJCQkJCQlhei5zdHlsZS5kaXNwbGF5ID0gIiIKCQkJCQl9CgoJCQkJfSkKCQkJfQoJCX0pCgl9KQoJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3NpdGUtdG9vbHMgaDIiKS5mb3JFYWNoKGZ1bmN0aW9uKGd6KSB7CgkJZ3ouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihmemUpIHsKCQkJZnogPSBmemUuY3VycmVudFRhcmdldAoJCQl2YXIgd2lkdGhlbCA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShmeiwgbnVsbCkud2lkdGgucmVwbGFjZSgicHgiLCAiIikpCgkJCWlmICh3aWR0aGVsIDwgODUxKSB7CgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjc2l0ZS10b29scyAuc2lkZWJhci1pbm5lciwgI21lbnVzLWNvdmVyIikuZm9yRWFjaChmdW5jdGlvbihheikgewoJCQkJCXZhciBzdHkgPSBhei5zdHlsZS5kaXNwbGF5CgkJCQkJaWYgKHN0eSA9PSAiIikgewoJCQkJCQlhei5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIgoJCQkJCX0gZWxzZSB7CgkJCQkJCWF6LnN0eWxlLmRpc3BsYXkgPSAiIgoJCQkJCX0KCgkJCQl9KQoJCQl9CgkJfSkKCX0pCglkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKGN0cykgewoJCXZhciB0YXJnZXQgPSBjdHMudGFyZ2V0CgkJaWYgKHRhcmdldC5jbG9zZXN0KCIjbWVudXMtY292ZXIiKSkgewoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjcGVyc29uYWwtaW5uZXIsIC5zaWRlYmFyLWlubmVyLCAjbWVudXMtY292ZXIiKS5mb3JFYWNoKGZ1bmN0aW9uKGF6MikgewoJCQkJdmFyIHN0eSA9IGF6Mi5zdHlsZS5kaXNwbGF5CgkJCQlhejIuc3R5bGUuZGlzcGxheSA9ICIiCgoJCQl9KQoJCX0KCX0pCgp9CmRyb3Bkb3duanMoKQo="></script> |